create-mern-omar 1.1.0 → 1.2.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 (1561) hide show
  1. package/README.md +10 -18
  2. package/index.js +37 -10
  3. package/package.json +9 -2
  4. package/templates/.env.example +1 -1
  5. package/templates/db/index.js +1 -0
  6. package/templates/server.js +2 -2
  7. package/templates/node_modules/.package-lock.json +0 -1105
  8. package/templates/node_modules/@mongodb-js/saslprep/LICENSE +0 -22
  9. package/templates/node_modules/@mongodb-js/saslprep/dist/.esm-wrapper.mjs +0 -4
  10. package/templates/node_modules/@mongodb-js/saslprep/dist/browser.d.ts +0 -5
  11. package/templates/node_modules/@mongodb-js/saslprep/dist/browser.d.ts.map +0 -1
  12. package/templates/node_modules/@mongodb-js/saslprep/dist/browser.js +0 -12
  13. package/templates/node_modules/@mongodb-js/saslprep/dist/browser.js.map +0 -1
  14. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-data-browser.d.ts +0 -3
  15. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-data-browser.d.ts.map +0 -1
  16. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-data-browser.js +0 -5
  17. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-data-browser.js.map +0 -1
  18. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-data.d.ts +0 -3
  19. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-data.d.ts.map +0 -1
  20. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-data.js +0 -5
  21. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-data.js.map +0 -1
  22. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-src.d.ts +0 -7
  23. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-src.d.ts.map +0 -1
  24. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-src.js +0 -881
  25. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-src.js.map +0 -1
  26. package/templates/node_modules/@mongodb-js/saslprep/dist/generate-code-points.d.ts +0 -2
  27. package/templates/node_modules/@mongodb-js/saslprep/dist/generate-code-points.d.ts.map +0 -1
  28. package/templates/node_modules/@mongodb-js/saslprep/dist/generate-code-points.js +0 -83
  29. package/templates/node_modules/@mongodb-js/saslprep/dist/generate-code-points.js.map +0 -1
  30. package/templates/node_modules/@mongodb-js/saslprep/dist/index.d.ts +0 -11
  31. package/templates/node_modules/@mongodb-js/saslprep/dist/index.d.ts.map +0 -1
  32. package/templates/node_modules/@mongodb-js/saslprep/dist/index.js +0 -65
  33. package/templates/node_modules/@mongodb-js/saslprep/dist/index.js.map +0 -1
  34. package/templates/node_modules/@mongodb-js/saslprep/dist/memory-code-points.d.ts +0 -10
  35. package/templates/node_modules/@mongodb-js/saslprep/dist/memory-code-points.d.ts.map +0 -1
  36. package/templates/node_modules/@mongodb-js/saslprep/dist/memory-code-points.js +0 -32
  37. package/templates/node_modules/@mongodb-js/saslprep/dist/memory-code-points.js.map +0 -1
  38. package/templates/node_modules/@mongodb-js/saslprep/dist/node.d.ts +0 -10
  39. package/templates/node_modules/@mongodb-js/saslprep/dist/node.d.ts.map +0 -1
  40. package/templates/node_modules/@mongodb-js/saslprep/dist/node.js +0 -15
  41. package/templates/node_modules/@mongodb-js/saslprep/dist/node.js.map +0 -1
  42. package/templates/node_modules/@mongodb-js/saslprep/dist/util.d.ts +0 -2
  43. package/templates/node_modules/@mongodb-js/saslprep/dist/util.d.ts.map +0 -1
  44. package/templates/node_modules/@mongodb-js/saslprep/dist/util.js +0 -11
  45. package/templates/node_modules/@mongodb-js/saslprep/dist/util.js.map +0 -1
  46. package/templates/node_modules/@mongodb-js/saslprep/package.json +0 -87
  47. package/templates/node_modules/@mongodb-js/saslprep/readme.md +0 -29
  48. package/templates/node_modules/@types/webidl-conversions/LICENSE +0 -21
  49. package/templates/node_modules/@types/webidl-conversions/README.md +0 -15
  50. package/templates/node_modules/@types/webidl-conversions/index.d.ts +0 -91
  51. package/templates/node_modules/@types/webidl-conversions/package.json +0 -30
  52. package/templates/node_modules/@types/whatwg-url/LICENSE +0 -21
  53. package/templates/node_modules/@types/whatwg-url/README.md +0 -15
  54. package/templates/node_modules/@types/whatwg-url/index.d.ts +0 -172
  55. package/templates/node_modules/@types/whatwg-url/lib/URL-impl.d.ts +0 -22
  56. package/templates/node_modules/@types/whatwg-url/lib/URL.d.ts +0 -66
  57. package/templates/node_modules/@types/whatwg-url/lib/URLSearchParams-impl.d.ts +0 -20
  58. package/templates/node_modules/@types/whatwg-url/lib/URLSearchParams.d.ts +0 -92
  59. package/templates/node_modules/@types/whatwg-url/package.json +0 -38
  60. package/templates/node_modules/@types/whatwg-url/webidl2js-wrapper.d.ts +0 -4
  61. package/templates/node_modules/accepts/HISTORY.md +0 -250
  62. package/templates/node_modules/accepts/LICENSE +0 -23
  63. package/templates/node_modules/accepts/README.md +0 -140
  64. package/templates/node_modules/accepts/index.js +0 -238
  65. package/templates/node_modules/accepts/package.json +0 -47
  66. package/templates/node_modules/basic-auth/HISTORY.md +0 -52
  67. package/templates/node_modules/basic-auth/LICENSE +0 -24
  68. package/templates/node_modules/basic-auth/README.md +0 -113
  69. package/templates/node_modules/basic-auth/index.js +0 -133
  70. package/templates/node_modules/basic-auth/package.json +0 -41
  71. package/templates/node_modules/body-parser/LICENSE +0 -23
  72. package/templates/node_modules/body-parser/README.md +0 -494
  73. package/templates/node_modules/body-parser/index.js +0 -80
  74. package/templates/node_modules/body-parser/lib/read.js +0 -250
  75. package/templates/node_modules/body-parser/lib/types/json.js +0 -166
  76. package/templates/node_modules/body-parser/lib/types/raw.js +0 -43
  77. package/templates/node_modules/body-parser/lib/types/text.js +0 -37
  78. package/templates/node_modules/body-parser/lib/types/urlencoded.js +0 -142
  79. package/templates/node_modules/body-parser/lib/utils.js +0 -96
  80. package/templates/node_modules/body-parser/package.json +0 -52
  81. package/templates/node_modules/bson/LICENSE.md +0 -201
  82. package/templates/node_modules/bson/README.md +0 -291
  83. package/templates/node_modules/bson/bson.d.ts +0 -1729
  84. package/templates/node_modules/bson/etc/prepare.js +0 -19
  85. package/templates/node_modules/bson/lib/bson.bundle.js +0 -4675
  86. package/templates/node_modules/bson/lib/bson.bundle.js.map +0 -1
  87. package/templates/node_modules/bson/lib/bson.cjs +0 -4670
  88. package/templates/node_modules/bson/lib/bson.cjs.map +0 -1
  89. package/templates/node_modules/bson/lib/bson.mjs +0 -4639
  90. package/templates/node_modules/bson/lib/bson.mjs.map +0 -1
  91. package/templates/node_modules/bson/lib/bson.node.mjs +0 -4639
  92. package/templates/node_modules/bson/lib/bson.node.mjs.map +0 -1
  93. package/templates/node_modules/bson/lib/bson.rn.cjs +0 -4680
  94. package/templates/node_modules/bson/lib/bson.rn.cjs.map +0 -1
  95. package/templates/node_modules/bson/package.json +0 -118
  96. package/templates/node_modules/bson/src/binary.ts +0 -751
  97. package/templates/node_modules/bson/src/bson.ts +0 -248
  98. package/templates/node_modules/bson/src/bson_value.ts +0 -55
  99. package/templates/node_modules/bson/src/code.ts +0 -69
  100. package/templates/node_modules/bson/src/constants.ts +0 -147
  101. package/templates/node_modules/bson/src/db_ref.ts +0 -128
  102. package/templates/node_modules/bson/src/decimal128.ts +0 -855
  103. package/templates/node_modules/bson/src/double.ts +0 -115
  104. package/templates/node_modules/bson/src/error.ts +0 -105
  105. package/templates/node_modules/bson/src/extended_json.ts +0 -513
  106. package/templates/node_modules/bson/src/index.ts +0 -19
  107. package/templates/node_modules/bson/src/int_32.ts +0 -101
  108. package/templates/node_modules/bson/src/long.ts +0 -1240
  109. package/templates/node_modules/bson/src/max_key.ts +0 -31
  110. package/templates/node_modules/bson/src/min_key.ts +0 -31
  111. package/templates/node_modules/bson/src/objectid.ts +0 -382
  112. package/templates/node_modules/bson/src/parse_utf8.ts +0 -35
  113. package/templates/node_modules/bson/src/parser/calculate_size.ts +0 -218
  114. package/templates/node_modules/bson/src/parser/deserializer.ts +0 -627
  115. package/templates/node_modules/bson/src/parser/on_demand/index.ts +0 -32
  116. package/templates/node_modules/bson/src/parser/on_demand/parse_to_elements.ts +0 -190
  117. package/templates/node_modules/bson/src/parser/serializer.ts +0 -954
  118. package/templates/node_modules/bson/src/parser/utils.ts +0 -69
  119. package/templates/node_modules/bson/src/regexp.ts +0 -114
  120. package/templates/node_modules/bson/src/symbol.ts +0 -55
  121. package/templates/node_modules/bson/src/timestamp.ts +0 -176
  122. package/templates/node_modules/bson/src/utils/byte_utils.ts +0 -63
  123. package/templates/node_modules/bson/src/utils/latin.ts +0 -104
  124. package/templates/node_modules/bson/src/utils/node_byte_utils.ts +0 -161
  125. package/templates/node_modules/bson/src/utils/number_utils.ts +0 -204
  126. package/templates/node_modules/bson/src/utils/string_utils.ts +0 -44
  127. package/templates/node_modules/bson/src/utils/web_byte_utils.ts +0 -216
  128. package/templates/node_modules/bytes/History.md +0 -97
  129. package/templates/node_modules/bytes/LICENSE +0 -23
  130. package/templates/node_modules/bytes/Readme.md +0 -152
  131. package/templates/node_modules/bytes/index.js +0 -170
  132. package/templates/node_modules/bytes/package.json +0 -42
  133. package/templates/node_modules/call-bind-apply-helpers/.eslintrc +0 -17
  134. package/templates/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +0 -12
  135. package/templates/node_modules/call-bind-apply-helpers/.nycrc +0 -9
  136. package/templates/node_modules/call-bind-apply-helpers/CHANGELOG.md +0 -30
  137. package/templates/node_modules/call-bind-apply-helpers/LICENSE +0 -21
  138. package/templates/node_modules/call-bind-apply-helpers/README.md +0 -62
  139. package/templates/node_modules/call-bind-apply-helpers/actualApply.d.ts +0 -1
  140. package/templates/node_modules/call-bind-apply-helpers/actualApply.js +0 -10
  141. package/templates/node_modules/call-bind-apply-helpers/applyBind.d.ts +0 -19
  142. package/templates/node_modules/call-bind-apply-helpers/applyBind.js +0 -10
  143. package/templates/node_modules/call-bind-apply-helpers/functionApply.d.ts +0 -1
  144. package/templates/node_modules/call-bind-apply-helpers/functionApply.js +0 -4
  145. package/templates/node_modules/call-bind-apply-helpers/functionCall.d.ts +0 -1
  146. package/templates/node_modules/call-bind-apply-helpers/functionCall.js +0 -4
  147. package/templates/node_modules/call-bind-apply-helpers/index.d.ts +0 -64
  148. package/templates/node_modules/call-bind-apply-helpers/index.js +0 -15
  149. package/templates/node_modules/call-bind-apply-helpers/package.json +0 -85
  150. package/templates/node_modules/call-bind-apply-helpers/reflectApply.d.ts +0 -3
  151. package/templates/node_modules/call-bind-apply-helpers/reflectApply.js +0 -4
  152. package/templates/node_modules/call-bind-apply-helpers/test/index.js +0 -63
  153. package/templates/node_modules/call-bind-apply-helpers/tsconfig.json +0 -9
  154. package/templates/node_modules/call-bound/.eslintrc +0 -13
  155. package/templates/node_modules/call-bound/.github/FUNDING.yml +0 -12
  156. package/templates/node_modules/call-bound/.nycrc +0 -9
  157. package/templates/node_modules/call-bound/CHANGELOG.md +0 -42
  158. package/templates/node_modules/call-bound/LICENSE +0 -21
  159. package/templates/node_modules/call-bound/README.md +0 -53
  160. package/templates/node_modules/call-bound/index.d.ts +0 -94
  161. package/templates/node_modules/call-bound/index.js +0 -19
  162. package/templates/node_modules/call-bound/package.json +0 -99
  163. package/templates/node_modules/call-bound/test/index.js +0 -61
  164. package/templates/node_modules/call-bound/tsconfig.json +0 -10
  165. package/templates/node_modules/content-disposition/HISTORY.md +0 -72
  166. package/templates/node_modules/content-disposition/LICENSE +0 -22
  167. package/templates/node_modules/content-disposition/README.md +0 -142
  168. package/templates/node_modules/content-disposition/index.js +0 -458
  169. package/templates/node_modules/content-disposition/package.json +0 -43
  170. package/templates/node_modules/content-type/HISTORY.md +0 -29
  171. package/templates/node_modules/content-type/LICENSE +0 -22
  172. package/templates/node_modules/content-type/README.md +0 -94
  173. package/templates/node_modules/content-type/index.js +0 -225
  174. package/templates/node_modules/content-type/package.json +0 -42
  175. package/templates/node_modules/cookie/LICENSE +0 -24
  176. package/templates/node_modules/cookie/README.md +0 -317
  177. package/templates/node_modules/cookie/SECURITY.md +0 -25
  178. package/templates/node_modules/cookie/index.js +0 -335
  179. package/templates/node_modules/cookie/package.json +0 -44
  180. package/templates/node_modules/cookie-signature/History.md +0 -70
  181. package/templates/node_modules/cookie-signature/LICENSE +0 -22
  182. package/templates/node_modules/cookie-signature/Readme.md +0 -23
  183. package/templates/node_modules/cookie-signature/index.js +0 -47
  184. package/templates/node_modules/cookie-signature/package.json +0 -24
  185. package/templates/node_modules/debug/LICENSE +0 -20
  186. package/templates/node_modules/debug/README.md +0 -481
  187. package/templates/node_modules/debug/package.json +0 -64
  188. package/templates/node_modules/debug/src/browser.js +0 -272
  189. package/templates/node_modules/debug/src/common.js +0 -292
  190. package/templates/node_modules/debug/src/index.js +0 -10
  191. package/templates/node_modules/debug/src/node.js +0 -263
  192. package/templates/node_modules/depd/History.md +0 -103
  193. package/templates/node_modules/depd/LICENSE +0 -22
  194. package/templates/node_modules/depd/Readme.md +0 -280
  195. package/templates/node_modules/depd/index.js +0 -538
  196. package/templates/node_modules/depd/lib/browser/index.js +0 -77
  197. package/templates/node_modules/depd/package.json +0 -45
  198. package/templates/node_modules/dotenv/CHANGELOG.md +0 -598
  199. package/templates/node_modules/dotenv/LICENSE +0 -23
  200. package/templates/node_modules/dotenv/README-es.md +0 -405
  201. package/templates/node_modules/dotenv/README.md +0 -692
  202. package/templates/node_modules/dotenv/SECURITY.md +0 -1
  203. package/templates/node_modules/dotenv/config.d.ts +0 -1
  204. package/templates/node_modules/dotenv/config.js +0 -9
  205. package/templates/node_modules/dotenv/lib/cli-options.js +0 -17
  206. package/templates/node_modules/dotenv/lib/env-options.js +0 -28
  207. package/templates/node_modules/dotenv/lib/main.d.ts +0 -179
  208. package/templates/node_modules/dotenv/lib/main.js +0 -434
  209. package/templates/node_modules/dotenv/package.json +0 -62
  210. package/templates/node_modules/dunder-proto/.eslintrc +0 -5
  211. package/templates/node_modules/dunder-proto/.github/FUNDING.yml +0 -12
  212. package/templates/node_modules/dunder-proto/.nycrc +0 -13
  213. package/templates/node_modules/dunder-proto/CHANGELOG.md +0 -24
  214. package/templates/node_modules/dunder-proto/LICENSE +0 -21
  215. package/templates/node_modules/dunder-proto/README.md +0 -54
  216. package/templates/node_modules/dunder-proto/get.d.ts +0 -5
  217. package/templates/node_modules/dunder-proto/get.js +0 -30
  218. package/templates/node_modules/dunder-proto/package.json +0 -76
  219. package/templates/node_modules/dunder-proto/set.d.ts +0 -5
  220. package/templates/node_modules/dunder-proto/set.js +0 -35
  221. package/templates/node_modules/dunder-proto/test/get.js +0 -34
  222. package/templates/node_modules/dunder-proto/test/index.js +0 -4
  223. package/templates/node_modules/dunder-proto/test/set.js +0 -50
  224. package/templates/node_modules/dunder-proto/tsconfig.json +0 -9
  225. package/templates/node_modules/ee-first/LICENSE +0 -22
  226. package/templates/node_modules/ee-first/README.md +0 -80
  227. package/templates/node_modules/ee-first/index.js +0 -95
  228. package/templates/node_modules/ee-first/package.json +0 -29
  229. package/templates/node_modules/encodeurl/LICENSE +0 -22
  230. package/templates/node_modules/encodeurl/README.md +0 -109
  231. package/templates/node_modules/encodeurl/index.js +0 -60
  232. package/templates/node_modules/encodeurl/package.json +0 -40
  233. package/templates/node_modules/es-define-property/.eslintrc +0 -13
  234. package/templates/node_modules/es-define-property/.github/FUNDING.yml +0 -12
  235. package/templates/node_modules/es-define-property/.nycrc +0 -9
  236. package/templates/node_modules/es-define-property/CHANGELOG.md +0 -29
  237. package/templates/node_modules/es-define-property/LICENSE +0 -21
  238. package/templates/node_modules/es-define-property/README.md +0 -49
  239. package/templates/node_modules/es-define-property/index.d.ts +0 -3
  240. package/templates/node_modules/es-define-property/index.js +0 -14
  241. package/templates/node_modules/es-define-property/package.json +0 -81
  242. package/templates/node_modules/es-define-property/test/index.js +0 -56
  243. package/templates/node_modules/es-define-property/tsconfig.json +0 -10
  244. package/templates/node_modules/es-errors/.eslintrc +0 -5
  245. package/templates/node_modules/es-errors/.github/FUNDING.yml +0 -12
  246. package/templates/node_modules/es-errors/CHANGELOG.md +0 -40
  247. package/templates/node_modules/es-errors/LICENSE +0 -21
  248. package/templates/node_modules/es-errors/README.md +0 -55
  249. package/templates/node_modules/es-errors/eval.d.ts +0 -3
  250. package/templates/node_modules/es-errors/eval.js +0 -4
  251. package/templates/node_modules/es-errors/index.d.ts +0 -3
  252. package/templates/node_modules/es-errors/index.js +0 -4
  253. package/templates/node_modules/es-errors/package.json +0 -80
  254. package/templates/node_modules/es-errors/range.d.ts +0 -3
  255. package/templates/node_modules/es-errors/range.js +0 -4
  256. package/templates/node_modules/es-errors/ref.d.ts +0 -3
  257. package/templates/node_modules/es-errors/ref.js +0 -4
  258. package/templates/node_modules/es-errors/syntax.d.ts +0 -3
  259. package/templates/node_modules/es-errors/syntax.js +0 -4
  260. package/templates/node_modules/es-errors/test/index.js +0 -19
  261. package/templates/node_modules/es-errors/tsconfig.json +0 -49
  262. package/templates/node_modules/es-errors/type.d.ts +0 -3
  263. package/templates/node_modules/es-errors/type.js +0 -4
  264. package/templates/node_modules/es-errors/uri.d.ts +0 -3
  265. package/templates/node_modules/es-errors/uri.js +0 -4
  266. package/templates/node_modules/es-object-atoms/.eslintrc +0 -16
  267. package/templates/node_modules/es-object-atoms/.github/FUNDING.yml +0 -12
  268. package/templates/node_modules/es-object-atoms/CHANGELOG.md +0 -37
  269. package/templates/node_modules/es-object-atoms/LICENSE +0 -21
  270. package/templates/node_modules/es-object-atoms/README.md +0 -63
  271. package/templates/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +0 -3
  272. package/templates/node_modules/es-object-atoms/RequireObjectCoercible.js +0 -11
  273. package/templates/node_modules/es-object-atoms/ToObject.d.ts +0 -7
  274. package/templates/node_modules/es-object-atoms/ToObject.js +0 -10
  275. package/templates/node_modules/es-object-atoms/index.d.ts +0 -3
  276. package/templates/node_modules/es-object-atoms/index.js +0 -4
  277. package/templates/node_modules/es-object-atoms/isObject.d.ts +0 -3
  278. package/templates/node_modules/es-object-atoms/isObject.js +0 -6
  279. package/templates/node_modules/es-object-atoms/package.json +0 -80
  280. package/templates/node_modules/es-object-atoms/test/index.js +0 -38
  281. package/templates/node_modules/es-object-atoms/tsconfig.json +0 -6
  282. package/templates/node_modules/escape-html/LICENSE +0 -24
  283. package/templates/node_modules/escape-html/Readme.md +0 -43
  284. package/templates/node_modules/escape-html/index.js +0 -78
  285. package/templates/node_modules/escape-html/package.json +0 -24
  286. package/templates/node_modules/etag/HISTORY.md +0 -83
  287. package/templates/node_modules/etag/LICENSE +0 -22
  288. package/templates/node_modules/etag/README.md +0 -159
  289. package/templates/node_modules/etag/index.js +0 -131
  290. package/templates/node_modules/etag/package.json +0 -47
  291. package/templates/node_modules/express/LICENSE +0 -24
  292. package/templates/node_modules/express/Readme.md +0 -276
  293. package/templates/node_modules/express/index.js +0 -11
  294. package/templates/node_modules/express/lib/application.js +0 -631
  295. package/templates/node_modules/express/lib/express.js +0 -81
  296. package/templates/node_modules/express/lib/request.js +0 -514
  297. package/templates/node_modules/express/lib/response.js +0 -1053
  298. package/templates/node_modules/express/lib/utils.js +0 -271
  299. package/templates/node_modules/express/lib/view.js +0 -205
  300. package/templates/node_modules/express/package.json +0 -99
  301. package/templates/node_modules/finalhandler/HISTORY.md +0 -239
  302. package/templates/node_modules/finalhandler/LICENSE +0 -22
  303. package/templates/node_modules/finalhandler/README.md +0 -150
  304. package/templates/node_modules/finalhandler/index.js +0 -293
  305. package/templates/node_modules/finalhandler/package.json +0 -47
  306. package/templates/node_modules/forwarded/HISTORY.md +0 -21
  307. package/templates/node_modules/forwarded/LICENSE +0 -22
  308. package/templates/node_modules/forwarded/README.md +0 -57
  309. package/templates/node_modules/forwarded/index.js +0 -90
  310. package/templates/node_modules/forwarded/package.json +0 -45
  311. package/templates/node_modules/fresh/HISTORY.md +0 -80
  312. package/templates/node_modules/fresh/LICENSE +0 -23
  313. package/templates/node_modules/fresh/README.md +0 -117
  314. package/templates/node_modules/fresh/index.js +0 -136
  315. package/templates/node_modules/fresh/package.json +0 -46
  316. package/templates/node_modules/function-bind/.eslintrc +0 -21
  317. package/templates/node_modules/function-bind/.github/FUNDING.yml +0 -12
  318. package/templates/node_modules/function-bind/.github/SECURITY.md +0 -3
  319. package/templates/node_modules/function-bind/.nycrc +0 -13
  320. package/templates/node_modules/function-bind/CHANGELOG.md +0 -136
  321. package/templates/node_modules/function-bind/LICENSE +0 -20
  322. package/templates/node_modules/function-bind/README.md +0 -46
  323. package/templates/node_modules/function-bind/implementation.js +0 -84
  324. package/templates/node_modules/function-bind/index.js +0 -5
  325. package/templates/node_modules/function-bind/package.json +0 -87
  326. package/templates/node_modules/function-bind/test/.eslintrc +0 -9
  327. package/templates/node_modules/function-bind/test/index.js +0 -252
  328. package/templates/node_modules/get-intrinsic/.eslintrc +0 -42
  329. package/templates/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
  330. package/templates/node_modules/get-intrinsic/.nycrc +0 -9
  331. package/templates/node_modules/get-intrinsic/CHANGELOG.md +0 -186
  332. package/templates/node_modules/get-intrinsic/LICENSE +0 -21
  333. package/templates/node_modules/get-intrinsic/README.md +0 -71
  334. package/templates/node_modules/get-intrinsic/index.js +0 -378
  335. package/templates/node_modules/get-intrinsic/package.json +0 -97
  336. package/templates/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
  337. package/templates/node_modules/get-proto/.eslintrc +0 -10
  338. package/templates/node_modules/get-proto/.github/FUNDING.yml +0 -12
  339. package/templates/node_modules/get-proto/.nycrc +0 -9
  340. package/templates/node_modules/get-proto/CHANGELOG.md +0 -21
  341. package/templates/node_modules/get-proto/LICENSE +0 -21
  342. package/templates/node_modules/get-proto/Object.getPrototypeOf.d.ts +0 -5
  343. package/templates/node_modules/get-proto/Object.getPrototypeOf.js +0 -6
  344. package/templates/node_modules/get-proto/README.md +0 -50
  345. package/templates/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +0 -3
  346. package/templates/node_modules/get-proto/Reflect.getPrototypeOf.js +0 -4
  347. package/templates/node_modules/get-proto/index.d.ts +0 -5
  348. package/templates/node_modules/get-proto/index.js +0 -27
  349. package/templates/node_modules/get-proto/package.json +0 -81
  350. package/templates/node_modules/get-proto/test/index.js +0 -68
  351. package/templates/node_modules/get-proto/tsconfig.json +0 -9
  352. package/templates/node_modules/gopd/.eslintrc +0 -16
  353. package/templates/node_modules/gopd/.github/FUNDING.yml +0 -12
  354. package/templates/node_modules/gopd/CHANGELOG.md +0 -45
  355. package/templates/node_modules/gopd/LICENSE +0 -21
  356. package/templates/node_modules/gopd/README.md +0 -40
  357. package/templates/node_modules/gopd/gOPD.d.ts +0 -1
  358. package/templates/node_modules/gopd/gOPD.js +0 -4
  359. package/templates/node_modules/gopd/index.d.ts +0 -5
  360. package/templates/node_modules/gopd/index.js +0 -15
  361. package/templates/node_modules/gopd/package.json +0 -77
  362. package/templates/node_modules/gopd/test/index.js +0 -36
  363. package/templates/node_modules/gopd/tsconfig.json +0 -9
  364. package/templates/node_modules/has-symbols/.eslintrc +0 -11
  365. package/templates/node_modules/has-symbols/.github/FUNDING.yml +0 -12
  366. package/templates/node_modules/has-symbols/.nycrc +0 -9
  367. package/templates/node_modules/has-symbols/CHANGELOG.md +0 -91
  368. package/templates/node_modules/has-symbols/LICENSE +0 -21
  369. package/templates/node_modules/has-symbols/README.md +0 -46
  370. package/templates/node_modules/has-symbols/index.d.ts +0 -3
  371. package/templates/node_modules/has-symbols/index.js +0 -14
  372. package/templates/node_modules/has-symbols/package.json +0 -111
  373. package/templates/node_modules/has-symbols/shams.d.ts +0 -3
  374. package/templates/node_modules/has-symbols/shams.js +0 -45
  375. package/templates/node_modules/has-symbols/test/index.js +0 -22
  376. package/templates/node_modules/has-symbols/test/shams/core-js.js +0 -29
  377. package/templates/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -29
  378. package/templates/node_modules/has-symbols/test/tests.js +0 -58
  379. package/templates/node_modules/has-symbols/tsconfig.json +0 -10
  380. package/templates/node_modules/hasown/.eslintrc +0 -5
  381. package/templates/node_modules/hasown/.github/FUNDING.yml +0 -12
  382. package/templates/node_modules/hasown/.nycrc +0 -13
  383. package/templates/node_modules/hasown/CHANGELOG.md +0 -40
  384. package/templates/node_modules/hasown/LICENSE +0 -21
  385. package/templates/node_modules/hasown/README.md +0 -40
  386. package/templates/node_modules/hasown/index.d.ts +0 -3
  387. package/templates/node_modules/hasown/index.js +0 -8
  388. package/templates/node_modules/hasown/package.json +0 -92
  389. package/templates/node_modules/hasown/tsconfig.json +0 -6
  390. package/templates/node_modules/http-errors/HISTORY.md +0 -186
  391. package/templates/node_modules/http-errors/LICENSE +0 -23
  392. package/templates/node_modules/http-errors/README.md +0 -169
  393. package/templates/node_modules/http-errors/index.js +0 -290
  394. package/templates/node_modules/http-errors/package.json +0 -54
  395. package/templates/node_modules/iconv-lite/Changelog.md +0 -241
  396. package/templates/node_modules/iconv-lite/LICENSE +0 -21
  397. package/templates/node_modules/iconv-lite/README.md +0 -138
  398. package/templates/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -532
  399. package/templates/node_modules/iconv-lite/encodings/dbcs-data.js +0 -185
  400. package/templates/node_modules/iconv-lite/encodings/index.js +0 -23
  401. package/templates/node_modules/iconv-lite/encodings/internal.js +0 -218
  402. package/templates/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -75
  403. package/templates/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
  404. package/templates/node_modules/iconv-lite/encodings/sbcs-data.js +0 -178
  405. package/templates/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
  406. package/templates/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
  407. package/templates/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
  408. package/templates/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
  409. package/templates/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
  410. package/templates/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
  411. package/templates/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -56
  412. package/templates/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
  413. package/templates/node_modules/iconv-lite/encodings/utf16.js +0 -187
  414. package/templates/node_modules/iconv-lite/encodings/utf32.js +0 -307
  415. package/templates/node_modules/iconv-lite/encodings/utf7.js +0 -283
  416. package/templates/node_modules/iconv-lite/lib/bom-handling.js +0 -48
  417. package/templates/node_modules/iconv-lite/lib/helpers/merge-exports.js +0 -13
  418. package/templates/node_modules/iconv-lite/lib/index.d.ts +0 -131
  419. package/templates/node_modules/iconv-lite/lib/index.js +0 -183
  420. package/templates/node_modules/iconv-lite/lib/streams.js +0 -105
  421. package/templates/node_modules/iconv-lite/package.json +0 -65
  422. package/templates/node_modules/iconv-lite/types/encodings.d.ts +0 -423
  423. package/templates/node_modules/inherits/LICENSE +0 -16
  424. package/templates/node_modules/inherits/README.md +0 -42
  425. package/templates/node_modules/inherits/inherits.js +0 -9
  426. package/templates/node_modules/inherits/inherits_browser.js +0 -27
  427. package/templates/node_modules/inherits/package.json +0 -29
  428. package/templates/node_modules/ipaddr.js/LICENSE +0 -19
  429. package/templates/node_modules/ipaddr.js/README.md +0 -233
  430. package/templates/node_modules/ipaddr.js/ipaddr.min.js +0 -1
  431. package/templates/node_modules/ipaddr.js/lib/ipaddr.js +0 -673
  432. package/templates/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +0 -68
  433. package/templates/node_modules/ipaddr.js/package.json +0 -35
  434. package/templates/node_modules/is-promise/LICENSE +0 -19
  435. package/templates/node_modules/is-promise/index.d.ts +0 -2
  436. package/templates/node_modules/is-promise/index.js +0 -6
  437. package/templates/node_modules/is-promise/index.mjs +0 -3
  438. package/templates/node_modules/is-promise/package.json +0 -30
  439. package/templates/node_modules/is-promise/readme.md +0 -33
  440. package/templates/node_modules/kareem/.nyc_output/fa57d6c4-9e78-4624-9229-f77b87a07481.json +0 -1
  441. package/templates/node_modules/kareem/.nyc_output/processinfo/fa57d6c4-9e78-4624-9229-f77b87a07481.json +0 -1
  442. package/templates/node_modules/kareem/.nyc_output/processinfo/index.json +0 -1
  443. package/templates/node_modules/kareem/CHANGELOG.md +0 -830
  444. package/templates/node_modules/kareem/LICENSE +0 -202
  445. package/templates/node_modules/kareem/README.md +0 -408
  446. package/templates/node_modules/kareem/SECURITY.md +0 -5
  447. package/templates/node_modules/kareem/coverage/lcov-report/base.css +0 -224
  448. package/templates/node_modules/kareem/coverage/lcov-report/block-navigation.js +0 -87
  449. package/templates/node_modules/kareem/coverage/lcov-report/favicon.png +0 -0
  450. package/templates/node_modules/kareem/coverage/lcov-report/index.html +0 -116
  451. package/templates/node_modules/kareem/coverage/lcov-report/index.js.html +0 -1603
  452. package/templates/node_modules/kareem/coverage/lcov-report/prettify.css +0 -1
  453. package/templates/node_modules/kareem/coverage/lcov-report/prettify.js +0 -2
  454. package/templates/node_modules/kareem/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  455. package/templates/node_modules/kareem/coverage/lcov-report/sorter.js +0 -196
  456. package/templates/node_modules/kareem/coverage/lcov.info +0 -423
  457. package/templates/node_modules/kareem/index.d.ts +0 -31
  458. package/templates/node_modules/kareem/index.js +0 -509
  459. package/templates/node_modules/kareem/package.json +0 -28
  460. package/templates/node_modules/math-intrinsics/.eslintrc +0 -16
  461. package/templates/node_modules/math-intrinsics/.github/FUNDING.yml +0 -12
  462. package/templates/node_modules/math-intrinsics/CHANGELOG.md +0 -24
  463. package/templates/node_modules/math-intrinsics/LICENSE +0 -21
  464. package/templates/node_modules/math-intrinsics/README.md +0 -50
  465. package/templates/node_modules/math-intrinsics/abs.d.ts +0 -1
  466. package/templates/node_modules/math-intrinsics/abs.js +0 -4
  467. package/templates/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +0 -3
  468. package/templates/node_modules/math-intrinsics/constants/maxArrayLength.js +0 -4
  469. package/templates/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +0 -3
  470. package/templates/node_modules/math-intrinsics/constants/maxSafeInteger.js +0 -5
  471. package/templates/node_modules/math-intrinsics/constants/maxValue.d.ts +0 -3
  472. package/templates/node_modules/math-intrinsics/constants/maxValue.js +0 -5
  473. package/templates/node_modules/math-intrinsics/floor.d.ts +0 -1
  474. package/templates/node_modules/math-intrinsics/floor.js +0 -4
  475. package/templates/node_modules/math-intrinsics/isFinite.d.ts +0 -3
  476. package/templates/node_modules/math-intrinsics/isFinite.js +0 -12
  477. package/templates/node_modules/math-intrinsics/isInteger.d.ts +0 -3
  478. package/templates/node_modules/math-intrinsics/isInteger.js +0 -16
  479. package/templates/node_modules/math-intrinsics/isNaN.d.ts +0 -1
  480. package/templates/node_modules/math-intrinsics/isNaN.js +0 -6
  481. package/templates/node_modules/math-intrinsics/isNegativeZero.d.ts +0 -3
  482. package/templates/node_modules/math-intrinsics/isNegativeZero.js +0 -6
  483. package/templates/node_modules/math-intrinsics/max.d.ts +0 -1
  484. package/templates/node_modules/math-intrinsics/max.js +0 -4
  485. package/templates/node_modules/math-intrinsics/min.d.ts +0 -1
  486. package/templates/node_modules/math-intrinsics/min.js +0 -4
  487. package/templates/node_modules/math-intrinsics/mod.d.ts +0 -3
  488. package/templates/node_modules/math-intrinsics/mod.js +0 -9
  489. package/templates/node_modules/math-intrinsics/package.json +0 -86
  490. package/templates/node_modules/math-intrinsics/pow.d.ts +0 -1
  491. package/templates/node_modules/math-intrinsics/pow.js +0 -4
  492. package/templates/node_modules/math-intrinsics/round.d.ts +0 -1
  493. package/templates/node_modules/math-intrinsics/round.js +0 -4
  494. package/templates/node_modules/math-intrinsics/sign.d.ts +0 -3
  495. package/templates/node_modules/math-intrinsics/sign.js +0 -11
  496. package/templates/node_modules/math-intrinsics/test/index.js +0 -192
  497. package/templates/node_modules/math-intrinsics/tsconfig.json +0 -3
  498. package/templates/node_modules/media-typer/HISTORY.md +0 -50
  499. package/templates/node_modules/media-typer/LICENSE +0 -22
  500. package/templates/node_modules/media-typer/README.md +0 -93
  501. package/templates/node_modules/media-typer/index.js +0 -143
  502. package/templates/node_modules/media-typer/package.json +0 -33
  503. package/templates/node_modules/memory-pager/.travis.yml +0 -4
  504. package/templates/node_modules/memory-pager/LICENSE +0 -21
  505. package/templates/node_modules/memory-pager/README.md +0 -65
  506. package/templates/node_modules/memory-pager/index.js +0 -160
  507. package/templates/node_modules/memory-pager/package.json +0 -24
  508. package/templates/node_modules/memory-pager/test.js +0 -80
  509. package/templates/node_modules/merge-descriptors/index.d.ts +0 -11
  510. package/templates/node_modules/merge-descriptors/index.js +0 -26
  511. package/templates/node_modules/merge-descriptors/license +0 -11
  512. package/templates/node_modules/merge-descriptors/package.json +0 -50
  513. package/templates/node_modules/merge-descriptors/readme.md +0 -55
  514. package/templates/node_modules/mime-db/HISTORY.md +0 -541
  515. package/templates/node_modules/mime-db/LICENSE +0 -23
  516. package/templates/node_modules/mime-db/README.md +0 -109
  517. package/templates/node_modules/mime-db/db.json +0 -9342
  518. package/templates/node_modules/mime-db/index.js +0 -12
  519. package/templates/node_modules/mime-db/package.json +0 -56
  520. package/templates/node_modules/mime-types/HISTORY.md +0 -428
  521. package/templates/node_modules/mime-types/LICENSE +0 -23
  522. package/templates/node_modules/mime-types/README.md +0 -126
  523. package/templates/node_modules/mime-types/index.js +0 -211
  524. package/templates/node_modules/mime-types/mimeScore.js +0 -57
  525. package/templates/node_modules/mime-types/package.json +0 -49
  526. package/templates/node_modules/mongodb/LICENSE.md +0 -201
  527. package/templates/node_modules/mongodb/README.md +0 -355
  528. package/templates/node_modules/mongodb/etc/prepare.js +0 -12
  529. package/templates/node_modules/mongodb/lib/admin.js +0 -136
  530. package/templates/node_modules/mongodb/lib/admin.js.map +0 -1
  531. package/templates/node_modules/mongodb/lib/bson.js +0 -84
  532. package/templates/node_modules/mongodb/lib/bson.js.map +0 -1
  533. package/templates/node_modules/mongodb/lib/bulk/common.js +0 -835
  534. package/templates/node_modules/mongodb/lib/bulk/common.js.map +0 -1
  535. package/templates/node_modules/mongodb/lib/bulk/ordered.js +0 -67
  536. package/templates/node_modules/mongodb/lib/bulk/ordered.js.map +0 -1
  537. package/templates/node_modules/mongodb/lib/bulk/unordered.js +0 -92
  538. package/templates/node_modules/mongodb/lib/bulk/unordered.js.map +0 -1
  539. package/templates/node_modules/mongodb/lib/change_stream.js +0 -511
  540. package/templates/node_modules/mongodb/lib/change_stream.js.map +0 -1
  541. package/templates/node_modules/mongodb/lib/client-side-encryption/auto_encrypter.js +0 -272
  542. package/templates/node_modules/mongodb/lib/client-side-encryption/auto_encrypter.js.map +0 -1
  543. package/templates/node_modules/mongodb/lib/client-side-encryption/client_encryption.js +0 -609
  544. package/templates/node_modules/mongodb/lib/client-side-encryption/client_encryption.js.map +0 -1
  545. package/templates/node_modules/mongodb/lib/client-side-encryption/errors.js +0 -138
  546. package/templates/node_modules/mongodb/lib/client-side-encryption/errors.js.map +0 -1
  547. package/templates/node_modules/mongodb/lib/client-side-encryption/mongocryptd_manager.js +0 -85
  548. package/templates/node_modules/mongodb/lib/client-side-encryption/mongocryptd_manager.js.map +0 -1
  549. package/templates/node_modules/mongodb/lib/client-side-encryption/providers/aws.js +0 -23
  550. package/templates/node_modules/mongodb/lib/client-side-encryption/providers/aws.js.map +0 -1
  551. package/templates/node_modules/mongodb/lib/client-side-encryption/providers/azure.js +0 -132
  552. package/templates/node_modules/mongodb/lib/client-side-encryption/providers/azure.js.map +0 -1
  553. package/templates/node_modules/mongodb/lib/client-side-encryption/providers/gcp.js +0 -16
  554. package/templates/node_modules/mongodb/lib/client-side-encryption/providers/gcp.js.map +0 -1
  555. package/templates/node_modules/mongodb/lib/client-side-encryption/providers/index.js +0 -43
  556. package/templates/node_modules/mongodb/lib/client-side-encryption/providers/index.js.map +0 -1
  557. package/templates/node_modules/mongodb/lib/client-side-encryption/state_machine.js +0 -426
  558. package/templates/node_modules/mongodb/lib/client-side-encryption/state_machine.js.map +0 -1
  559. package/templates/node_modules/mongodb/lib/cmap/auth/auth_provider.js +0 -51
  560. package/templates/node_modules/mongodb/lib/cmap/auth/auth_provider.js.map +0 -1
  561. package/templates/node_modules/mongodb/lib/cmap/auth/aws_temporary_credentials.js +0 -102
  562. package/templates/node_modules/mongodb/lib/cmap/auth/aws_temporary_credentials.js.map +0 -1
  563. package/templates/node_modules/mongodb/lib/cmap/auth/gssapi.js +0 -154
  564. package/templates/node_modules/mongodb/lib/cmap/auth/gssapi.js.map +0 -1
  565. package/templates/node_modules/mongodb/lib/cmap/auth/mongo_credentials.js +0 -168
  566. package/templates/node_modules/mongodb/lib/cmap/auth/mongo_credentials.js.map +0 -1
  567. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_aws.js +0 -133
  568. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_aws.js.map +0 -1
  569. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.js +0 -84
  570. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.js.map +0 -1
  571. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.js +0 -62
  572. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.js.map +0 -1
  573. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/callback_workflow.js +0 -141
  574. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/callback_workflow.js.map +0 -1
  575. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/command_builders.js +0 -44
  576. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/command_builders.js.map +0 -1
  577. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.js +0 -39
  578. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.js.map +0 -1
  579. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/human_callback_workflow.js +0 -122
  580. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/human_callback_workflow.js.map +0 -1
  581. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.js +0 -31
  582. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.js.map +0 -1
  583. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_cache.js +0 -52
  584. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_cache.js.map +0 -1
  585. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.js +0 -22
  586. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.js.map +0 -1
  587. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc.js +0 -73
  588. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc.js.map +0 -1
  589. package/templates/node_modules/mongodb/lib/cmap/auth/plain.js +0 -26
  590. package/templates/node_modules/mongodb/lib/cmap/auth/plain.js.map +0 -1
  591. package/templates/node_modules/mongodb/lib/cmap/auth/providers.js +0 -22
  592. package/templates/node_modules/mongodb/lib/cmap/auth/providers.js.map +0 -1
  593. package/templates/node_modules/mongodb/lib/cmap/auth/scram.js +0 -254
  594. package/templates/node_modules/mongodb/lib/cmap/auth/scram.js.map +0 -1
  595. package/templates/node_modules/mongodb/lib/cmap/auth/x509.js +0 -36
  596. package/templates/node_modules/mongodb/lib/cmap/auth/x509.js.map +0 -1
  597. package/templates/node_modules/mongodb/lib/cmap/command_monitoring_events.js +0 -223
  598. package/templates/node_modules/mongodb/lib/cmap/command_monitoring_events.js.map +0 -1
  599. package/templates/node_modules/mongodb/lib/cmap/commands.js +0 -535
  600. package/templates/node_modules/mongodb/lib/cmap/commands.js.map +0 -1
  601. package/templates/node_modules/mongodb/lib/cmap/connect.js +0 -366
  602. package/templates/node_modules/mongodb/lib/cmap/connect.js.map +0 -1
  603. package/templates/node_modules/mongodb/lib/cmap/connection.js +0 -571
  604. package/templates/node_modules/mongodb/lib/cmap/connection.js.map +0 -1
  605. package/templates/node_modules/mongodb/lib/cmap/connection_pool.js +0 -558
  606. package/templates/node_modules/mongodb/lib/cmap/connection_pool.js.map +0 -1
  607. package/templates/node_modules/mongodb/lib/cmap/connection_pool_events.js +0 -190
  608. package/templates/node_modules/mongodb/lib/cmap/connection_pool_events.js.map +0 -1
  609. package/templates/node_modules/mongodb/lib/cmap/errors.js +0 -108
  610. package/templates/node_modules/mongodb/lib/cmap/errors.js.map +0 -1
  611. package/templates/node_modules/mongodb/lib/cmap/handshake/client_metadata.js +0 -241
  612. package/templates/node_modules/mongodb/lib/cmap/handshake/client_metadata.js.map +0 -1
  613. package/templates/node_modules/mongodb/lib/cmap/metrics.js +0 -62
  614. package/templates/node_modules/mongodb/lib/cmap/metrics.js.map +0 -1
  615. package/templates/node_modules/mongodb/lib/cmap/stream_description.js +0 -70
  616. package/templates/node_modules/mongodb/lib/cmap/stream_description.js.map +0 -1
  617. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/compression.js +0 -163
  618. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/compression.js.map +0 -1
  619. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/constants.js +0 -21
  620. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/constants.js.map +0 -1
  621. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/on_data.js +0 -111
  622. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/on_data.js.map +0 -1
  623. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/on_demand/document.js +0 -222
  624. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/on_demand/document.js.map +0 -1
  625. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/responses.js +0 -315
  626. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/responses.js.map +0 -1
  627. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/shared.js +0 -35
  628. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/shared.js.map +0 -1
  629. package/templates/node_modules/mongodb/lib/collection.js +0 -751
  630. package/templates/node_modules/mongodb/lib/collection.js.map +0 -1
  631. package/templates/node_modules/mongodb/lib/connection_string.js +0 -1089
  632. package/templates/node_modules/mongodb/lib/connection_string.js.map +0 -1
  633. package/templates/node_modules/mongodb/lib/constants.js +0 -170
  634. package/templates/node_modules/mongodb/lib/constants.js.map +0 -1
  635. package/templates/node_modules/mongodb/lib/cursor/abstract_cursor.js +0 -924
  636. package/templates/node_modules/mongodb/lib/cursor/abstract_cursor.js.map +0 -1
  637. package/templates/node_modules/mongodb/lib/cursor/aggregation_cursor.js +0 -164
  638. package/templates/node_modules/mongodb/lib/cursor/aggregation_cursor.js.map +0 -1
  639. package/templates/node_modules/mongodb/lib/cursor/change_stream_cursor.js +0 -104
  640. package/templates/node_modules/mongodb/lib/cursor/change_stream_cursor.js.map +0 -1
  641. package/templates/node_modules/mongodb/lib/cursor/client_bulk_write_cursor.js +0 -52
  642. package/templates/node_modules/mongodb/lib/cursor/client_bulk_write_cursor.js.map +0 -1
  643. package/templates/node_modules/mongodb/lib/cursor/explainable_cursor.js +0 -36
  644. package/templates/node_modules/mongodb/lib/cursor/explainable_cursor.js.map +0 -1
  645. package/templates/node_modules/mongodb/lib/cursor/find_cursor.js +0 -399
  646. package/templates/node_modules/mongodb/lib/cursor/find_cursor.js.map +0 -1
  647. package/templates/node_modules/mongodb/lib/cursor/list_collections_cursor.js +0 -34
  648. package/templates/node_modules/mongodb/lib/cursor/list_collections_cursor.js.map +0 -1
  649. package/templates/node_modules/mongodb/lib/cursor/list_indexes_cursor.js +0 -32
  650. package/templates/node_modules/mongodb/lib/cursor/list_indexes_cursor.js.map +0 -1
  651. package/templates/node_modules/mongodb/lib/cursor/list_search_indexes_cursor.js +0 -14
  652. package/templates/node_modules/mongodb/lib/cursor/list_search_indexes_cursor.js.map +0 -1
  653. package/templates/node_modules/mongodb/lib/cursor/run_command_cursor.js +0 -94
  654. package/templates/node_modules/mongodb/lib/cursor/run_command_cursor.js.map +0 -1
  655. package/templates/node_modules/mongodb/lib/db.js +0 -420
  656. package/templates/node_modules/mongodb/lib/db.js.map +0 -1
  657. package/templates/node_modules/mongodb/lib/deps.js +0 -125
  658. package/templates/node_modules/mongodb/lib/deps.js.map +0 -1
  659. package/templates/node_modules/mongodb/lib/encrypter.js +0 -106
  660. package/templates/node_modules/mongodb/lib/encrypter.js.map +0 -1
  661. package/templates/node_modules/mongodb/lib/error.js +0 -1383
  662. package/templates/node_modules/mongodb/lib/error.js.map +0 -1
  663. package/templates/node_modules/mongodb/lib/explain.js +0 -59
  664. package/templates/node_modules/mongodb/lib/explain.js.map +0 -1
  665. package/templates/node_modules/mongodb/lib/gridfs/download.js +0 -305
  666. package/templates/node_modules/mongodb/lib/gridfs/download.js.map +0 -1
  667. package/templates/node_modules/mongodb/lib/gridfs/index.js +0 -164
  668. package/templates/node_modules/mongodb/lib/gridfs/index.js.map +0 -1
  669. package/templates/node_modules/mongodb/lib/gridfs/upload.js +0 -358
  670. package/templates/node_modules/mongodb/lib/gridfs/upload.js.map +0 -1
  671. package/templates/node_modules/mongodb/lib/index.js +0 -193
  672. package/templates/node_modules/mongodb/lib/index.js.map +0 -1
  673. package/templates/node_modules/mongodb/lib/mongo_client.js +0 -557
  674. package/templates/node_modules/mongodb/lib/mongo_client.js.map +0 -1
  675. package/templates/node_modules/mongodb/lib/mongo_client_auth_providers.js +0 -80
  676. package/templates/node_modules/mongodb/lib/mongo_client_auth_providers.js.map +0 -1
  677. package/templates/node_modules/mongodb/lib/mongo_logger.js +0 -649
  678. package/templates/node_modules/mongodb/lib/mongo_logger.js.map +0 -1
  679. package/templates/node_modules/mongodb/lib/mongo_types.js +0 -56
  680. package/templates/node_modules/mongodb/lib/mongo_types.js.map +0 -1
  681. package/templates/node_modules/mongodb/lib/operations/aggregate.js +0 -90
  682. package/templates/node_modules/mongodb/lib/operations/aggregate.js.map +0 -1
  683. package/templates/node_modules/mongodb/lib/operations/client_bulk_write/client_bulk_write.js +0 -51
  684. package/templates/node_modules/mongodb/lib/operations/client_bulk_write/client_bulk_write.js.map +0 -1
  685. package/templates/node_modules/mongodb/lib/operations/client_bulk_write/command_builder.js +0 -340
  686. package/templates/node_modules/mongodb/lib/operations/client_bulk_write/command_builder.js.map +0 -1
  687. package/templates/node_modules/mongodb/lib/operations/client_bulk_write/common.js +0 -3
  688. package/templates/node_modules/mongodb/lib/operations/client_bulk_write/common.js.map +0 -1
  689. package/templates/node_modules/mongodb/lib/operations/client_bulk_write/executor.js +0 -120
  690. package/templates/node_modules/mongodb/lib/operations/client_bulk_write/executor.js.map +0 -1
  691. package/templates/node_modules/mongodb/lib/operations/client_bulk_write/results_merger.js +0 -204
  692. package/templates/node_modules/mongodb/lib/operations/client_bulk_write/results_merger.js.map +0 -1
  693. package/templates/node_modules/mongodb/lib/operations/command.js +0 -83
  694. package/templates/node_modules/mongodb/lib/operations/command.js.map +0 -1
  695. package/templates/node_modules/mongodb/lib/operations/count.js +0 -45
  696. package/templates/node_modules/mongodb/lib/operations/count.js.map +0 -1
  697. package/templates/node_modules/mongodb/lib/operations/create_collection.js +0 -109
  698. package/templates/node_modules/mongodb/lib/operations/create_collection.js.map +0 -1
  699. package/templates/node_modules/mongodb/lib/operations/delete.js +0 -125
  700. package/templates/node_modules/mongodb/lib/operations/delete.js.map +0 -1
  701. package/templates/node_modules/mongodb/lib/operations/distinct.js +0 -61
  702. package/templates/node_modules/mongodb/lib/operations/distinct.js.map +0 -1
  703. package/templates/node_modules/mongodb/lib/operations/drop.js +0 -93
  704. package/templates/node_modules/mongodb/lib/operations/drop.js.map +0 -1
  705. package/templates/node_modules/mongodb/lib/operations/end_sessions.js +0 -34
  706. package/templates/node_modules/mongodb/lib/operations/end_sessions.js.map +0 -1
  707. package/templates/node_modules/mongodb/lib/operations/estimated_document_count.js +0 -41
  708. package/templates/node_modules/mongodb/lib/operations/estimated_document_count.js.map +0 -1
  709. package/templates/node_modules/mongodb/lib/operations/execute_operation.js +0 -238
  710. package/templates/node_modules/mongodb/lib/operations/execute_operation.js.map +0 -1
  711. package/templates/node_modules/mongodb/lib/operations/find.js +0 -148
  712. package/templates/node_modules/mongodb/lib/operations/find.js.map +0 -1
  713. package/templates/node_modules/mongodb/lib/operations/find_and_modify.js +0 -158
  714. package/templates/node_modules/mongodb/lib/operations/find_and_modify.js.map +0 -1
  715. package/templates/node_modules/mongodb/lib/operations/get_more.js +0 -62
  716. package/templates/node_modules/mongodb/lib/operations/get_more.js.map +0 -1
  717. package/templates/node_modules/mongodb/lib/operations/indexes.js +0 -186
  718. package/templates/node_modules/mongodb/lib/operations/indexes.js.map +0 -1
  719. package/templates/node_modules/mongodb/lib/operations/insert.js +0 -70
  720. package/templates/node_modules/mongodb/lib/operations/insert.js.map +0 -1
  721. package/templates/node_modules/mongodb/lib/operations/kill_cursors.js +0 -43
  722. package/templates/node_modules/mongodb/lib/operations/kill_cursors.js.map +0 -1
  723. package/templates/node_modules/mongodb/lib/operations/list_collections.js +0 -53
  724. package/templates/node_modules/mongodb/lib/operations/list_collections.js.map +0 -1
  725. package/templates/node_modules/mongodb/lib/operations/list_databases.js +0 -40
  726. package/templates/node_modules/mongodb/lib/operations/list_databases.js.map +0 -1
  727. package/templates/node_modules/mongodb/lib/operations/operation.js +0 -102
  728. package/templates/node_modules/mongodb/lib/operations/operation.js.map +0 -1
  729. package/templates/node_modules/mongodb/lib/operations/profiling_level.js +0 -43
  730. package/templates/node_modules/mongodb/lib/operations/profiling_level.js.map +0 -1
  731. package/templates/node_modules/mongodb/lib/operations/remove_user.js +0 -27
  732. package/templates/node_modules/mongodb/lib/operations/remove_user.js.map +0 -1
  733. package/templates/node_modules/mongodb/lib/operations/rename.js +0 -38
  734. package/templates/node_modules/mongodb/lib/operations/rename.js.map +0 -1
  735. package/templates/node_modules/mongodb/lib/operations/run_command.js +0 -47
  736. package/templates/node_modules/mongodb/lib/operations/run_command.js.map +0 -1
  737. package/templates/node_modules/mongodb/lib/operations/search_indexes/create.js +0 -33
  738. package/templates/node_modules/mongodb/lib/operations/search_indexes/create.js.map +0 -1
  739. package/templates/node_modules/mongodb/lib/operations/search_indexes/drop.js +0 -43
  740. package/templates/node_modules/mongodb/lib/operations/search_indexes/drop.js.map +0 -1
  741. package/templates/node_modules/mongodb/lib/operations/search_indexes/update.js +0 -35
  742. package/templates/node_modules/mongodb/lib/operations/search_indexes/update.js.map +0 -1
  743. package/templates/node_modules/mongodb/lib/operations/set_profiling_level.js +0 -53
  744. package/templates/node_modules/mongodb/lib/operations/set_profiling_level.js.map +0 -1
  745. package/templates/node_modules/mongodb/lib/operations/stats.js +0 -27
  746. package/templates/node_modules/mongodb/lib/operations/stats.js.map +0 -1
  747. package/templates/node_modules/mongodb/lib/operations/update.js +0 -188
  748. package/templates/node_modules/mongodb/lib/operations/update.js.map +0 -1
  749. package/templates/node_modules/mongodb/lib/operations/validate_collection.js +0 -37
  750. package/templates/node_modules/mongodb/lib/operations/validate_collection.js.map +0 -1
  751. package/templates/node_modules/mongodb/lib/read_concern.js +0 -73
  752. package/templates/node_modules/mongodb/lib/read_concern.js.map +0 -1
  753. package/templates/node_modules/mongodb/lib/read_preference.js +0 -191
  754. package/templates/node_modules/mongodb/lib/read_preference.js.map +0 -1
  755. package/templates/node_modules/mongodb/lib/sdam/common.js +0 -49
  756. package/templates/node_modules/mongodb/lib/sdam/common.js.map +0 -1
  757. package/templates/node_modules/mongodb/lib/sdam/events.js +0 -146
  758. package/templates/node_modules/mongodb/lib/sdam/events.js.map +0 -1
  759. package/templates/node_modules/mongodb/lib/sdam/monitor.js +0 -544
  760. package/templates/node_modules/mongodb/lib/sdam/monitor.js.map +0 -1
  761. package/templates/node_modules/mongodb/lib/sdam/server.js +0 -392
  762. package/templates/node_modules/mongodb/lib/sdam/server.js.map +0 -1
  763. package/templates/node_modules/mongodb/lib/sdam/server_description.js +0 -204
  764. package/templates/node_modules/mongodb/lib/sdam/server_description.js.map +0 -1
  765. package/templates/node_modules/mongodb/lib/sdam/server_selection.js +0 -231
  766. package/templates/node_modules/mongodb/lib/sdam/server_selection.js.map +0 -1
  767. package/templates/node_modules/mongodb/lib/sdam/server_selection_events.js +0 -85
  768. package/templates/node_modules/mongodb/lib/sdam/server_selection_events.js.map +0 -1
  769. package/templates/node_modules/mongodb/lib/sdam/srv_polling.js +0 -108
  770. package/templates/node_modules/mongodb/lib/sdam/srv_polling.js.map +0 -1
  771. package/templates/node_modules/mongodb/lib/sdam/topology.js +0 -650
  772. package/templates/node_modules/mongodb/lib/sdam/topology.js.map +0 -1
  773. package/templates/node_modules/mongodb/lib/sdam/topology_description.js +0 -383
  774. package/templates/node_modules/mongodb/lib/sdam/topology_description.js.map +0 -1
  775. package/templates/node_modules/mongodb/lib/sessions.js +0 -828
  776. package/templates/node_modules/mongodb/lib/sessions.js.map +0 -1
  777. package/templates/node_modules/mongodb/lib/sort.js +0 -103
  778. package/templates/node_modules/mongodb/lib/sort.js.map +0 -1
  779. package/templates/node_modules/mongodb/lib/timeout.js +0 -296
  780. package/templates/node_modules/mongodb/lib/timeout.js.map +0 -1
  781. package/templates/node_modules/mongodb/lib/transactions.js +0 -135
  782. package/templates/node_modules/mongodb/lib/transactions.js.map +0 -1
  783. package/templates/node_modules/mongodb/lib/utils.js +0 -1189
  784. package/templates/node_modules/mongodb/lib/utils.js.map +0 -1
  785. package/templates/node_modules/mongodb/lib/write_concern.js +0 -100
  786. package/templates/node_modules/mongodb/lib/write_concern.js.map +0 -1
  787. package/templates/node_modules/mongodb/mongodb.d.ts +0 -9010
  788. package/templates/node_modules/mongodb/package.json +0 -175
  789. package/templates/node_modules/mongodb/src/admin.ts +0 -173
  790. package/templates/node_modules/mongodb/src/bson.ts +0 -148
  791. package/templates/node_modules/mongodb/src/bulk/common.ts +0 -1251
  792. package/templates/node_modules/mongodb/src/bulk/ordered.ts +0 -83
  793. package/templates/node_modules/mongodb/src/bulk/unordered.ts +0 -115
  794. package/templates/node_modules/mongodb/src/change_stream.ts +0 -1158
  795. package/templates/node_modules/mongodb/src/client-side-encryption/auto_encrypter.ts +0 -469
  796. package/templates/node_modules/mongodb/src/client-side-encryption/client_encryption.ts +0 -1150
  797. package/templates/node_modules/mongodb/src/client-side-encryption/errors.ts +0 -144
  798. package/templates/node_modules/mongodb/src/client-side-encryption/mongocryptd_manager.ts +0 -100
  799. package/templates/node_modules/mongodb/src/client-side-encryption/providers/aws.ts +0 -33
  800. package/templates/node_modules/mongodb/src/client-side-encryption/providers/azure.ts +0 -181
  801. package/templates/node_modules/mongodb/src/client-side-encryption/providers/gcp.ts +0 -16
  802. package/templates/node_modules/mongodb/src/client-side-encryption/providers/index.ts +0 -207
  803. package/templates/node_modules/mongodb/src/client-side-encryption/state_machine.ts +0 -650
  804. package/templates/node_modules/mongodb/src/cmap/auth/auth_provider.ts +0 -77
  805. package/templates/node_modules/mongodb/src/cmap/auth/aws_temporary_credentials.ts +0 -127
  806. package/templates/node_modules/mongodb/src/cmap/auth/gssapi.ts +0 -202
  807. package/templates/node_modules/mongodb/src/cmap/auth/mongo_credentials.ts +0 -291
  808. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_aws.ts +0 -186
  809. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_oidc/automated_callback_workflow.ts +0 -88
  810. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_oidc/azure_machine_workflow.ts +0 -73
  811. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_oidc/callback_workflow.ts +0 -188
  812. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_oidc/command_builders.ts +0 -53
  813. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_oidc/gcp_machine_workflow.ts +0 -46
  814. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_oidc/human_callback_workflow.ts +0 -141
  815. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_oidc/k8s_machine_workflow.ts +0 -30
  816. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_oidc/token_cache.ts +0 -62
  817. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_oidc/token_machine_workflow.ts +0 -21
  818. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_oidc.ts +0 -185
  819. package/templates/node_modules/mongodb/src/cmap/auth/plain.ts +0 -25
  820. package/templates/node_modules/mongodb/src/cmap/auth/providers.ts +0 -22
  821. package/templates/node_modules/mongodb/src/cmap/auth/scram.ts +0 -344
  822. package/templates/node_modules/mongodb/src/cmap/auth/x509.ts +0 -43
  823. package/templates/node_modules/mongodb/src/cmap/command_monitoring_events.ts +0 -316
  824. package/templates/node_modules/mongodb/src/cmap/commands.ts +0 -788
  825. package/templates/node_modules/mongodb/src/cmap/connect.ts +0 -499
  826. package/templates/node_modules/mongodb/src/cmap/connection.ts +0 -931
  827. package/templates/node_modules/mongodb/src/cmap/connection_pool.ts +0 -831
  828. package/templates/node_modules/mongodb/src/cmap/connection_pool_events.ts +0 -300
  829. package/templates/node_modules/mongodb/src/cmap/errors.ts +0 -119
  830. package/templates/node_modules/mongodb/src/cmap/handshake/client_metadata.ts +0 -352
  831. package/templates/node_modules/mongodb/src/cmap/metrics.ts +0 -58
  832. package/templates/node_modules/mongodb/src/cmap/stream_description.ts +0 -96
  833. package/templates/node_modules/mongodb/src/cmap/wire_protocol/compression.ts +0 -197
  834. package/templates/node_modules/mongodb/src/cmap/wire_protocol/constants.ts +0 -17
  835. package/templates/node_modules/mongodb/src/cmap/wire_protocol/on_data.ts +0 -139
  836. package/templates/node_modules/mongodb/src/cmap/wire_protocol/on_demand/document.ts +0 -358
  837. package/templates/node_modules/mongodb/src/cmap/wire_protocol/responses.ts +0 -393
  838. package/templates/node_modules/mongodb/src/cmap/wire_protocol/shared.ts +0 -48
  839. package/templates/node_modules/mongodb/src/collection.ts +0 -1314
  840. package/templates/node_modules/mongodb/src/connection_string.ts +0 -1296
  841. package/templates/node_modules/mongodb/src/constants.ts +0 -176
  842. package/templates/node_modules/mongodb/src/cursor/abstract_cursor.ts +0 -1247
  843. package/templates/node_modules/mongodb/src/cursor/aggregation_cursor.ts +0 -245
  844. package/templates/node_modules/mongodb/src/cursor/change_stream_cursor.ts +0 -171
  845. package/templates/node_modules/mongodb/src/cursor/client_bulk_write_cursor.ts +0 -83
  846. package/templates/node_modules/mongodb/src/cursor/explainable_cursor.ts +0 -51
  847. package/templates/node_modules/mongodb/src/cursor/find_cursor.ts +0 -497
  848. package/templates/node_modules/mongodb/src/cursor/list_collections_cursor.ts +0 -50
  849. package/templates/node_modules/mongodb/src/cursor/list_indexes_cursor.ts +0 -37
  850. package/templates/node_modules/mongodb/src/cursor/list_search_indexes_cursor.ts +0 -20
  851. package/templates/node_modules/mongodb/src/cursor/run_command_cursor.ts +0 -178
  852. package/templates/node_modules/mongodb/src/db.ts +0 -622
  853. package/templates/node_modules/mongodb/src/deps.ts +0 -287
  854. package/templates/node_modules/mongodb/src/encrypter.ts +0 -127
  855. package/templates/node_modules/mongodb/src/error.ts +0 -1571
  856. package/templates/node_modules/mongodb/src/explain.ts +0 -124
  857. package/templates/node_modules/mongodb/src/gridfs/download.ts +0 -483
  858. package/templates/node_modules/mongodb/src/gridfs/index.ts +0 -264
  859. package/templates/node_modules/mongodb/src/gridfs/upload.ts +0 -537
  860. package/templates/node_modules/mongodb/src/index.ts +0 -633
  861. package/templates/node_modules/mongodb/src/mongo_client.ts +0 -1155
  862. package/templates/node_modules/mongodb/src/mongo_client_auth_providers.ts +0 -87
  863. package/templates/node_modules/mongodb/src/mongo_logger.ts +0 -1076
  864. package/templates/node_modules/mongodb/src/mongo_types.ts +0 -678
  865. package/templates/node_modules/mongodb/src/operations/aggregate.ts +0 -153
  866. package/templates/node_modules/mongodb/src/operations/client_bulk_write/client_bulk_write.ts +0 -72
  867. package/templates/node_modules/mongodb/src/operations/client_bulk_write/command_builder.ts +0 -487
  868. package/templates/node_modules/mongodb/src/operations/client_bulk_write/common.ts +0 -276
  869. package/templates/node_modules/mongodb/src/operations/client_bulk_write/executor.ts +0 -149
  870. package/templates/node_modules/mongodb/src/operations/client_bulk_write/results_merger.ts +0 -260
  871. package/templates/node_modules/mongodb/src/operations/command.ts +0 -171
  872. package/templates/node_modules/mongodb/src/operations/count.ts +0 -74
  873. package/templates/node_modules/mongodb/src/operations/create_collection.ts +0 -218
  874. package/templates/node_modules/mongodb/src/operations/delete.ts +0 -183
  875. package/templates/node_modules/mongodb/src/operations/distinct.ts +0 -92
  876. package/templates/node_modules/mongodb/src/operations/drop.ts +0 -130
  877. package/templates/node_modules/mongodb/src/operations/end_sessions.ts +0 -44
  878. package/templates/node_modules/mongodb/src/operations/estimated_document_count.ts +0 -61
  879. package/templates/node_modules/mongodb/src/operations/execute_operation.ts +0 -318
  880. package/templates/node_modules/mongodb/src/operations/find.ts +0 -254
  881. package/templates/node_modules/mongodb/src/operations/find_and_modify.ts +0 -319
  882. package/templates/node_modules/mongodb/src/operations/get_more.ts +0 -108
  883. package/templates/node_modules/mongodb/src/operations/indexes.ts +0 -418
  884. package/templates/node_modules/mongodb/src/operations/insert.ts +0 -108
  885. package/templates/node_modules/mongodb/src/operations/kill_cursors.ts +0 -64
  886. package/templates/node_modules/mongodb/src/operations/list_collections.ts +0 -108
  887. package/templates/node_modules/mongodb/src/operations/list_databases.ts +0 -68
  888. package/templates/node_modules/mongodb/src/operations/operation.ts +0 -181
  889. package/templates/node_modules/mongodb/src/operations/profiling_level.ts +0 -46
  890. package/templates/node_modules/mongodb/src/operations/remove_user.ts +0 -36
  891. package/templates/node_modules/mongodb/src/operations/rename.ts +0 -55
  892. package/templates/node_modules/mongodb/src/operations/run_command.ts +0 -79
  893. package/templates/node_modules/mongodb/src/operations/search_indexes/create.ts +0 -56
  894. package/templates/node_modules/mongodb/src/operations/search_indexes/drop.ts +0 -58
  895. package/templates/node_modules/mongodb/src/operations/search_indexes/update.ts +0 -45
  896. package/templates/node_modules/mongodb/src/operations/set_profiling_level.ts +0 -74
  897. package/templates/node_modules/mongodb/src/operations/stats.ts +0 -37
  898. package/templates/node_modules/mongodb/src/operations/update.ts +0 -318
  899. package/templates/node_modules/mongodb/src/operations/validate_collection.ts +0 -50
  900. package/templates/node_modules/mongodb/src/read_concern.ts +0 -88
  901. package/templates/node_modules/mongodb/src/read_preference.ts +0 -256
  902. package/templates/node_modules/mongodb/src/sdam/common.ts +0 -74
  903. package/templates/node_modules/mongodb/src/sdam/events.ts +0 -219
  904. package/templates/node_modules/mongodb/src/sdam/monitor.ts +0 -771
  905. package/templates/node_modules/mongodb/src/sdam/server.ts +0 -577
  906. package/templates/node_modules/mongodb/src/sdam/server_description.ts +0 -291
  907. package/templates/node_modules/mongodb/src/sdam/server_selection.ts +0 -323
  908. package/templates/node_modules/mongodb/src/sdam/server_selection_events.ts +0 -142
  909. package/templates/node_modules/mongodb/src/sdam/srv_polling.ts +0 -146
  910. package/templates/node_modules/mongodb/src/sdam/topology.ts +0 -1096
  911. package/templates/node_modules/mongodb/src/sdam/topology_description.ts +0 -548
  912. package/templates/node_modules/mongodb/src/sessions.ts +0 -1160
  913. package/templates/node_modules/mongodb/src/sort.ts +0 -141
  914. package/templates/node_modules/mongodb/src/timeout.ts +0 -405
  915. package/templates/node_modules/mongodb/src/transactions.ts +0 -181
  916. package/templates/node_modules/mongodb/src/utils.ts +0 -1491
  917. package/templates/node_modules/mongodb/src/write_concern.ts +0 -183
  918. package/templates/node_modules/mongodb/tsconfig.json +0 -46
  919. package/templates/node_modules/mongodb-connection-string-url/.esm-wrapper.mjs +0 -6
  920. package/templates/node_modules/mongodb-connection-string-url/LICENSE +0 -192
  921. package/templates/node_modules/mongodb-connection-string-url/README.md +0 -25
  922. package/templates/node_modules/mongodb-connection-string-url/lib/index.d.ts +0 -63
  923. package/templates/node_modules/mongodb-connection-string-url/lib/index.js +0 -239
  924. package/templates/node_modules/mongodb-connection-string-url/lib/index.js.map +0 -1
  925. package/templates/node_modules/mongodb-connection-string-url/lib/redact.d.ts +0 -7
  926. package/templates/node_modules/mongodb-connection-string-url/lib/redact.js +0 -97
  927. package/templates/node_modules/mongodb-connection-string-url/lib/redact.js.map +0 -1
  928. package/templates/node_modules/mongodb-connection-string-url/package.json +0 -71
  929. package/templates/node_modules/mongoose/LICENSE.md +0 -22
  930. package/templates/node_modules/mongoose/README.md +0 -397
  931. package/templates/node_modules/mongoose/SECURITY.md +0 -1
  932. package/templates/node_modules/mongoose/eslint.config.mjs +0 -198
  933. package/templates/node_modules/mongoose/index.js +0 -64
  934. package/templates/node_modules/mongoose/lib/aggregate.js +0 -1189
  935. package/templates/node_modules/mongoose/lib/cast/bigint.js +0 -46
  936. package/templates/node_modules/mongoose/lib/cast/boolean.js +0 -32
  937. package/templates/node_modules/mongoose/lib/cast/date.js +0 -41
  938. package/templates/node_modules/mongoose/lib/cast/decimal128.js +0 -39
  939. package/templates/node_modules/mongoose/lib/cast/double.js +0 -50
  940. package/templates/node_modules/mongoose/lib/cast/int32.js +0 -36
  941. package/templates/node_modules/mongoose/lib/cast/number.js +0 -42
  942. package/templates/node_modules/mongoose/lib/cast/objectid.js +0 -29
  943. package/templates/node_modules/mongoose/lib/cast/string.js +0 -37
  944. package/templates/node_modules/mongoose/lib/cast/uuid.js +0 -35
  945. package/templates/node_modules/mongoose/lib/cast.js +0 -444
  946. package/templates/node_modules/mongoose/lib/collection.js +0 -321
  947. package/templates/node_modules/mongoose/lib/connection.js +0 -1849
  948. package/templates/node_modules/mongoose/lib/connectionState.js +0 -26
  949. package/templates/node_modules/mongoose/lib/constants.js +0 -73
  950. package/templates/node_modules/mongoose/lib/cursor/aggregationCursor.js +0 -466
  951. package/templates/node_modules/mongoose/lib/cursor/changeStream.js +0 -198
  952. package/templates/node_modules/mongoose/lib/cursor/queryCursor.js +0 -622
  953. package/templates/node_modules/mongoose/lib/document.js +0 -5481
  954. package/templates/node_modules/mongoose/lib/driver.js +0 -15
  955. package/templates/node_modules/mongoose/lib/drivers/SPEC.md +0 -4
  956. package/templates/node_modules/mongoose/lib/drivers/node-mongodb-native/bulkWriteResult.js +0 -5
  957. package/templates/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js +0 -405
  958. package/templates/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js +0 -521
  959. package/templates/node_modules/mongoose/lib/drivers/node-mongodb-native/index.js +0 -10
  960. package/templates/node_modules/mongoose/lib/error/browserMissingSchema.js +0 -29
  961. package/templates/node_modules/mongoose/lib/error/bulkSaveIncompleteError.js +0 -44
  962. package/templates/node_modules/mongoose/lib/error/bulkWriteError.js +0 -41
  963. package/templates/node_modules/mongoose/lib/error/cast.js +0 -158
  964. package/templates/node_modules/mongoose/lib/error/createCollectionsError.js +0 -26
  965. package/templates/node_modules/mongoose/lib/error/divergentArray.js +0 -40
  966. package/templates/node_modules/mongoose/lib/error/eachAsyncMultiError.js +0 -41
  967. package/templates/node_modules/mongoose/lib/error/index.js +0 -237
  968. package/templates/node_modules/mongoose/lib/error/invalidSchemaOption.js +0 -32
  969. package/templates/node_modules/mongoose/lib/error/messages.js +0 -47
  970. package/templates/node_modules/mongoose/lib/error/missingSchema.js +0 -33
  971. package/templates/node_modules/mongoose/lib/error/mongooseError.js +0 -13
  972. package/templates/node_modules/mongoose/lib/error/notFound.js +0 -47
  973. package/templates/node_modules/mongoose/lib/error/objectExpected.js +0 -31
  974. package/templates/node_modules/mongoose/lib/error/objectParameter.js +0 -31
  975. package/templates/node_modules/mongoose/lib/error/overwriteModel.js +0 -31
  976. package/templates/node_modules/mongoose/lib/error/parallelSave.js +0 -33
  977. package/templates/node_modules/mongoose/lib/error/parallelValidate.js +0 -33
  978. package/templates/node_modules/mongoose/lib/error/serverSelection.js +0 -62
  979. package/templates/node_modules/mongoose/lib/error/setOptionError.js +0 -103
  980. package/templates/node_modules/mongoose/lib/error/strict.js +0 -35
  981. package/templates/node_modules/mongoose/lib/error/strictPopulate.js +0 -31
  982. package/templates/node_modules/mongoose/lib/error/syncIndexes.js +0 -30
  983. package/templates/node_modules/mongoose/lib/error/validation.js +0 -97
  984. package/templates/node_modules/mongoose/lib/error/validator.js +0 -100
  985. package/templates/node_modules/mongoose/lib/error/version.js +0 -38
  986. package/templates/node_modules/mongoose/lib/helpers/aggregate/prepareDiscriminatorPipeline.js +0 -39
  987. package/templates/node_modules/mongoose/lib/helpers/aggregate/stringifyFunctionOperators.js +0 -50
  988. package/templates/node_modules/mongoose/lib/helpers/arrayDepth.js +0 -33
  989. package/templates/node_modules/mongoose/lib/helpers/clone.js +0 -204
  990. package/templates/node_modules/mongoose/lib/helpers/common.js +0 -127
  991. package/templates/node_modules/mongoose/lib/helpers/createJSONSchemaTypeDefinition.js +0 -24
  992. package/templates/node_modules/mongoose/lib/helpers/cursor/eachAsync.js +0 -225
  993. package/templates/node_modules/mongoose/lib/helpers/discriminator/applyEmbeddedDiscriminators.js +0 -36
  994. package/templates/node_modules/mongoose/lib/helpers/discriminator/areDiscriminatorValuesEqual.js +0 -16
  995. package/templates/node_modules/mongoose/lib/helpers/discriminator/checkEmbeddedDiscriminatorKeyProjection.js +0 -12
  996. package/templates/node_modules/mongoose/lib/helpers/discriminator/getConstructor.js +0 -29
  997. package/templates/node_modules/mongoose/lib/helpers/discriminator/getDiscriminatorByValue.js +0 -28
  998. package/templates/node_modules/mongoose/lib/helpers/discriminator/getSchemaDiscriminatorByValue.js +0 -27
  999. package/templates/node_modules/mongoose/lib/helpers/discriminator/mergeDiscriminatorSchema.js +0 -91
  1000. package/templates/node_modules/mongoose/lib/helpers/document/applyDefaults.js +0 -132
  1001. package/templates/node_modules/mongoose/lib/helpers/document/applyTimestamps.js +0 -105
  1002. package/templates/node_modules/mongoose/lib/helpers/document/applyVirtuals.js +0 -146
  1003. package/templates/node_modules/mongoose/lib/helpers/document/cleanModifiedSubpaths.js +0 -45
  1004. package/templates/node_modules/mongoose/lib/helpers/document/compile.js +0 -238
  1005. package/templates/node_modules/mongoose/lib/helpers/document/getDeepestSubdocumentForPath.js +0 -38
  1006. package/templates/node_modules/mongoose/lib/helpers/document/getEmbeddedDiscriminatorPath.js +0 -53
  1007. package/templates/node_modules/mongoose/lib/helpers/document/handleSpreadDoc.js +0 -35
  1008. package/templates/node_modules/mongoose/lib/helpers/each.js +0 -25
  1009. package/templates/node_modules/mongoose/lib/helpers/error/combinePathErrors.js +0 -22
  1010. package/templates/node_modules/mongoose/lib/helpers/firstKey.js +0 -8
  1011. package/templates/node_modules/mongoose/lib/helpers/get.js +0 -65
  1012. package/templates/node_modules/mongoose/lib/helpers/getConstructorName.js +0 -16
  1013. package/templates/node_modules/mongoose/lib/helpers/getDefaultBulkwriteResult.js +0 -18
  1014. package/templates/node_modules/mongoose/lib/helpers/getFunctionName.js +0 -10
  1015. package/templates/node_modules/mongoose/lib/helpers/immediate.js +0 -16
  1016. package/templates/node_modules/mongoose/lib/helpers/indexes/applySchemaCollation.js +0 -13
  1017. package/templates/node_modules/mongoose/lib/helpers/indexes/decorateDiscriminatorIndexOptions.js +0 -14
  1018. package/templates/node_modules/mongoose/lib/helpers/indexes/getRelatedIndexes.js +0 -63
  1019. package/templates/node_modules/mongoose/lib/helpers/indexes/isDefaultIdIndex.js +0 -18
  1020. package/templates/node_modules/mongoose/lib/helpers/indexes/isIndexEqual.js +0 -95
  1021. package/templates/node_modules/mongoose/lib/helpers/indexes/isIndexSpecEqual.js +0 -32
  1022. package/templates/node_modules/mongoose/lib/helpers/indexes/isTextIndex.js +0 -16
  1023. package/templates/node_modules/mongoose/lib/helpers/indexes/isTimeseriesIndex.js +0 -16
  1024. package/templates/node_modules/mongoose/lib/helpers/isAsyncFunction.js +0 -9
  1025. package/templates/node_modules/mongoose/lib/helpers/isBsonType.js +0 -15
  1026. package/templates/node_modules/mongoose/lib/helpers/isMongooseObject.js +0 -22
  1027. package/templates/node_modules/mongoose/lib/helpers/isObject.js +0 -16
  1028. package/templates/node_modules/mongoose/lib/helpers/isPOJO.js +0 -12
  1029. package/templates/node_modules/mongoose/lib/helpers/isPromise.js +0 -6
  1030. package/templates/node_modules/mongoose/lib/helpers/isSimpleValidator.js +0 -22
  1031. package/templates/node_modules/mongoose/lib/helpers/minimize.js +0 -41
  1032. package/templates/node_modules/mongoose/lib/helpers/model/applyDefaultsToPOJO.js +0 -52
  1033. package/templates/node_modules/mongoose/lib/helpers/model/applyHooks.js +0 -140
  1034. package/templates/node_modules/mongoose/lib/helpers/model/applyMethods.js +0 -70
  1035. package/templates/node_modules/mongoose/lib/helpers/model/applyStaticHooks.js +0 -33
  1036. package/templates/node_modules/mongoose/lib/helpers/model/applyStatics.js +0 -13
  1037. package/templates/node_modules/mongoose/lib/helpers/model/castBulkWrite.js +0 -320
  1038. package/templates/node_modules/mongoose/lib/helpers/model/decorateBulkWriteResult.js +0 -8
  1039. package/templates/node_modules/mongoose/lib/helpers/model/discriminator.js +0 -265
  1040. package/templates/node_modules/mongoose/lib/helpers/model/pushNestedArrayPaths.js +0 -15
  1041. package/templates/node_modules/mongoose/lib/helpers/omitUndefined.js +0 -20
  1042. package/templates/node_modules/mongoose/lib/helpers/once.js +0 -12
  1043. package/templates/node_modules/mongoose/lib/helpers/parallelLimit.js +0 -37
  1044. package/templates/node_modules/mongoose/lib/helpers/path/parentPaths.js +0 -18
  1045. package/templates/node_modules/mongoose/lib/helpers/path/setDottedPath.js +0 -33
  1046. package/templates/node_modules/mongoose/lib/helpers/pluralize.js +0 -95
  1047. package/templates/node_modules/mongoose/lib/helpers/populate/assignRawDocsToIdStructure.js +0 -129
  1048. package/templates/node_modules/mongoose/lib/helpers/populate/assignVals.js +0 -360
  1049. package/templates/node_modules/mongoose/lib/helpers/populate/createPopulateQueryFilter.js +0 -97
  1050. package/templates/node_modules/mongoose/lib/helpers/populate/getModelsMapForPopulate.js +0 -774
  1051. package/templates/node_modules/mongoose/lib/helpers/populate/getSchemaTypes.js +0 -229
  1052. package/templates/node_modules/mongoose/lib/helpers/populate/getVirtual.js +0 -103
  1053. package/templates/node_modules/mongoose/lib/helpers/populate/leanPopulateMap.js +0 -7
  1054. package/templates/node_modules/mongoose/lib/helpers/populate/lookupLocalFields.js +0 -40
  1055. package/templates/node_modules/mongoose/lib/helpers/populate/markArraySubdocsPopulated.js +0 -49
  1056. package/templates/node_modules/mongoose/lib/helpers/populate/modelNamesFromRefPath.js +0 -66
  1057. package/templates/node_modules/mongoose/lib/helpers/populate/removeDeselectedForeignField.js +0 -31
  1058. package/templates/node_modules/mongoose/lib/helpers/populate/setPopulatedVirtualValue.js +0 -33
  1059. package/templates/node_modules/mongoose/lib/helpers/populate/skipPopulateValue.js +0 -10
  1060. package/templates/node_modules/mongoose/lib/helpers/populate/validateRef.js +0 -19
  1061. package/templates/node_modules/mongoose/lib/helpers/printJestWarning.js +0 -21
  1062. package/templates/node_modules/mongoose/lib/helpers/processConnectionOptions.js +0 -65
  1063. package/templates/node_modules/mongoose/lib/helpers/projection/applyProjection.js +0 -83
  1064. package/templates/node_modules/mongoose/lib/helpers/projection/hasIncludedChildren.js +0 -41
  1065. package/templates/node_modules/mongoose/lib/helpers/projection/isDefiningProjection.js +0 -18
  1066. package/templates/node_modules/mongoose/lib/helpers/projection/isExclusive.js +0 -37
  1067. package/templates/node_modules/mongoose/lib/helpers/projection/isInclusive.js +0 -39
  1068. package/templates/node_modules/mongoose/lib/helpers/projection/isNestedProjection.js +0 -8
  1069. package/templates/node_modules/mongoose/lib/helpers/projection/isPathExcluded.js +0 -40
  1070. package/templates/node_modules/mongoose/lib/helpers/projection/isPathSelectedInclusive.js +0 -28
  1071. package/templates/node_modules/mongoose/lib/helpers/projection/isSubpath.js +0 -14
  1072. package/templates/node_modules/mongoose/lib/helpers/projection/parseProjection.js +0 -33
  1073. package/templates/node_modules/mongoose/lib/helpers/query/applyGlobalOption.js +0 -29
  1074. package/templates/node_modules/mongoose/lib/helpers/query/cast$expr.js +0 -287
  1075. package/templates/node_modules/mongoose/lib/helpers/query/castFilterPath.js +0 -54
  1076. package/templates/node_modules/mongoose/lib/helpers/query/castUpdate.js +0 -643
  1077. package/templates/node_modules/mongoose/lib/helpers/query/getEmbeddedDiscriminatorPath.js +0 -103
  1078. package/templates/node_modules/mongoose/lib/helpers/query/handleImmutable.js +0 -44
  1079. package/templates/node_modules/mongoose/lib/helpers/query/handleReadPreferenceAliases.js +0 -23
  1080. package/templates/node_modules/mongoose/lib/helpers/query/hasDollarKeys.js +0 -23
  1081. package/templates/node_modules/mongoose/lib/helpers/query/isOperator.js +0 -14
  1082. package/templates/node_modules/mongoose/lib/helpers/query/sanitizeFilter.js +0 -38
  1083. package/templates/node_modules/mongoose/lib/helpers/query/sanitizeProjection.js +0 -14
  1084. package/templates/node_modules/mongoose/lib/helpers/query/selectPopulatedFields.js +0 -62
  1085. package/templates/node_modules/mongoose/lib/helpers/query/trusted.js +0 -13
  1086. package/templates/node_modules/mongoose/lib/helpers/query/validOps.js +0 -3
  1087. package/templates/node_modules/mongoose/lib/helpers/schema/addAutoId.js +0 -7
  1088. package/templates/node_modules/mongoose/lib/helpers/schema/applyBuiltinPlugins.js +0 -12
  1089. package/templates/node_modules/mongoose/lib/helpers/schema/applyPlugins.js +0 -55
  1090. package/templates/node_modules/mongoose/lib/helpers/schema/applyReadConcern.js +0 -20
  1091. package/templates/node_modules/mongoose/lib/helpers/schema/applyWriteConcern.js +0 -37
  1092. package/templates/node_modules/mongoose/lib/helpers/schema/cleanPositionalOperators.js +0 -12
  1093. package/templates/node_modules/mongoose/lib/helpers/schema/getIndexes.js +0 -171
  1094. package/templates/node_modules/mongoose/lib/helpers/schema/getKeysInSchemaOrder.js +0 -28
  1095. package/templates/node_modules/mongoose/lib/helpers/schema/getPath.js +0 -43
  1096. package/templates/node_modules/mongoose/lib/helpers/schema/getSubdocumentStrictValue.js +0 -32
  1097. package/templates/node_modules/mongoose/lib/helpers/schema/handleIdOption.js +0 -20
  1098. package/templates/node_modules/mongoose/lib/helpers/schema/handleTimestampOption.js +0 -24
  1099. package/templates/node_modules/mongoose/lib/helpers/schema/idGetter.js +0 -34
  1100. package/templates/node_modules/mongoose/lib/helpers/schema/merge.js +0 -36
  1101. package/templates/node_modules/mongoose/lib/helpers/schematype/handleImmutable.js +0 -50
  1102. package/templates/node_modules/mongoose/lib/helpers/setDefaultsOnInsert.js +0 -161
  1103. package/templates/node_modules/mongoose/lib/helpers/specialProperties.js +0 -3
  1104. package/templates/node_modules/mongoose/lib/helpers/symbols.js +0 -20
  1105. package/templates/node_modules/mongoose/lib/helpers/timers.js +0 -3
  1106. package/templates/node_modules/mongoose/lib/helpers/timestamps/setDocumentTimestamps.js +0 -26
  1107. package/templates/node_modules/mongoose/lib/helpers/timestamps/setupTimestamps.js +0 -107
  1108. package/templates/node_modules/mongoose/lib/helpers/topology/allServersUnknown.js +0 -12
  1109. package/templates/node_modules/mongoose/lib/helpers/topology/isAtlas.js +0 -31
  1110. package/templates/node_modules/mongoose/lib/helpers/topology/isSSLError.js +0 -16
  1111. package/templates/node_modules/mongoose/lib/helpers/update/applyTimestampsToChildren.js +0 -193
  1112. package/templates/node_modules/mongoose/lib/helpers/update/applyTimestampsToUpdate.js +0 -130
  1113. package/templates/node_modules/mongoose/lib/helpers/update/castArrayFilters.js +0 -113
  1114. package/templates/node_modules/mongoose/lib/helpers/update/decorateUpdateWithVersionKey.js +0 -35
  1115. package/templates/node_modules/mongoose/lib/helpers/update/modifiedPaths.js +0 -33
  1116. package/templates/node_modules/mongoose/lib/helpers/update/moveImmutableProperties.js +0 -53
  1117. package/templates/node_modules/mongoose/lib/helpers/update/removeUnusedArrayFilters.js +0 -32
  1118. package/templates/node_modules/mongoose/lib/helpers/update/updatedPathsByArrayFilter.js +0 -27
  1119. package/templates/node_modules/mongoose/lib/helpers/updateValidators.js +0 -193
  1120. package/templates/node_modules/mongoose/lib/index.js +0 -17
  1121. package/templates/node_modules/mongoose/lib/internal.js +0 -46
  1122. package/templates/node_modules/mongoose/lib/model.js +0 -5021
  1123. package/templates/node_modules/mongoose/lib/modifiedPathsSnapshot.js +0 -9
  1124. package/templates/node_modules/mongoose/lib/mongoose.js +0 -1411
  1125. package/templates/node_modules/mongoose/lib/options/populateOptions.js +0 -36
  1126. package/templates/node_modules/mongoose/lib/options/propertyOptions.js +0 -8
  1127. package/templates/node_modules/mongoose/lib/options/saveOptions.js +0 -16
  1128. package/templates/node_modules/mongoose/lib/options/schemaArrayOptions.js +0 -78
  1129. package/templates/node_modules/mongoose/lib/options/schemaBufferOptions.js +0 -38
  1130. package/templates/node_modules/mongoose/lib/options/schemaDateOptions.js +0 -71
  1131. package/templates/node_modules/mongoose/lib/options/schemaDocumentArrayOptions.js +0 -68
  1132. package/templates/node_modules/mongoose/lib/options/schemaMapOptions.js +0 -43
  1133. package/templates/node_modules/mongoose/lib/options/schemaNumberOptions.js +0 -101
  1134. package/templates/node_modules/mongoose/lib/options/schemaObjectIdOptions.js +0 -64
  1135. package/templates/node_modules/mongoose/lib/options/schemaStringOptions.js +0 -138
  1136. package/templates/node_modules/mongoose/lib/options/schemaSubdocumentOptions.js +0 -66
  1137. package/templates/node_modules/mongoose/lib/options/schemaTypeOptions.js +0 -244
  1138. package/templates/node_modules/mongoose/lib/options/schemaUnionOptions.js +0 -32
  1139. package/templates/node_modules/mongoose/lib/options/virtualOptions.js +0 -164
  1140. package/templates/node_modules/mongoose/lib/options.js +0 -17
  1141. package/templates/node_modules/mongoose/lib/plugins/index.js +0 -6
  1142. package/templates/node_modules/mongoose/lib/plugins/saveSubdocs.js +0 -75
  1143. package/templates/node_modules/mongoose/lib/plugins/sharding.js +0 -84
  1144. package/templates/node_modules/mongoose/lib/plugins/trackTransaction.js +0 -85
  1145. package/templates/node_modules/mongoose/lib/plugins/validateBeforeSave.js +0 -41
  1146. package/templates/node_modules/mongoose/lib/query.js +0 -5649
  1147. package/templates/node_modules/mongoose/lib/queryHelpers.js +0 -390
  1148. package/templates/node_modules/mongoose/lib/schema/array.js +0 -701
  1149. package/templates/node_modules/mongoose/lib/schema/bigint.js +0 -282
  1150. package/templates/node_modules/mongoose/lib/schema/boolean.js +0 -332
  1151. package/templates/node_modules/mongoose/lib/schema/buffer.js +0 -343
  1152. package/templates/node_modules/mongoose/lib/schema/date.js +0 -467
  1153. package/templates/node_modules/mongoose/lib/schema/decimal128.js +0 -263
  1154. package/templates/node_modules/mongoose/lib/schema/documentArray.js +0 -664
  1155. package/templates/node_modules/mongoose/lib/schema/documentArrayElement.js +0 -107
  1156. package/templates/node_modules/mongoose/lib/schema/double.js +0 -246
  1157. package/templates/node_modules/mongoose/lib/schema/index.js +0 -31
  1158. package/templates/node_modules/mongoose/lib/schema/int32.js +0 -289
  1159. package/templates/node_modules/mongoose/lib/schema/map.js +0 -201
  1160. package/templates/node_modules/mongoose/lib/schema/mixed.js +0 -146
  1161. package/templates/node_modules/mongoose/lib/schema/number.js +0 -492
  1162. package/templates/node_modules/mongoose/lib/schema/objectId.js +0 -333
  1163. package/templates/node_modules/mongoose/lib/schema/operators/bitwise.js +0 -38
  1164. package/templates/node_modules/mongoose/lib/schema/operators/exists.js +0 -12
  1165. package/templates/node_modules/mongoose/lib/schema/operators/geospatial.js +0 -107
  1166. package/templates/node_modules/mongoose/lib/schema/operators/helpers.js +0 -32
  1167. package/templates/node_modules/mongoose/lib/schema/operators/text.js +0 -39
  1168. package/templates/node_modules/mongoose/lib/schema/operators/type.js +0 -20
  1169. package/templates/node_modules/mongoose/lib/schema/string.js +0 -733
  1170. package/templates/node_modules/mongoose/lib/schema/subdocument.js +0 -439
  1171. package/templates/node_modules/mongoose/lib/schema/symbols.js +0 -5
  1172. package/templates/node_modules/mongoose/lib/schema/union.js +0 -113
  1173. package/templates/node_modules/mongoose/lib/schema/uuid.js +0 -305
  1174. package/templates/node_modules/mongoose/lib/schema.js +0 -3227
  1175. package/templates/node_modules/mongoose/lib/schemaType.js +0 -1835
  1176. package/templates/node_modules/mongoose/lib/stateMachine.js +0 -232
  1177. package/templates/node_modules/mongoose/lib/types/array/index.js +0 -119
  1178. package/templates/node_modules/mongoose/lib/types/array/isMongooseArray.js +0 -5
  1179. package/templates/node_modules/mongoose/lib/types/array/methods/index.js +0 -1065
  1180. package/templates/node_modules/mongoose/lib/types/arraySubdocument.js +0 -197
  1181. package/templates/node_modules/mongoose/lib/types/buffer.js +0 -294
  1182. package/templates/node_modules/mongoose/lib/types/decimal128.js +0 -13
  1183. package/templates/node_modules/mongoose/lib/types/documentArray/index.js +0 -113
  1184. package/templates/node_modules/mongoose/lib/types/documentArray/isMongooseDocumentArray.js +0 -5
  1185. package/templates/node_modules/mongoose/lib/types/documentArray/methods/index.js +0 -415
  1186. package/templates/node_modules/mongoose/lib/types/double.js +0 -13
  1187. package/templates/node_modules/mongoose/lib/types/index.js +0 -23
  1188. package/templates/node_modules/mongoose/lib/types/map.js +0 -419
  1189. package/templates/node_modules/mongoose/lib/types/objectid.js +0 -41
  1190. package/templates/node_modules/mongoose/lib/types/subdocument.js +0 -454
  1191. package/templates/node_modules/mongoose/lib/types/uuid.js +0 -13
  1192. package/templates/node_modules/mongoose/lib/utils.js +0 -1038
  1193. package/templates/node_modules/mongoose/lib/validOptions.js +0 -42
  1194. package/templates/node_modules/mongoose/lib/virtualType.js +0 -204
  1195. package/templates/node_modules/mongoose/package.json +0 -143
  1196. package/templates/node_modules/mongoose/types/aggregate.d.ts +0 -180
  1197. package/templates/node_modules/mongoose/types/augmentations.d.ts +0 -9
  1198. package/templates/node_modules/mongoose/types/callback.d.ts +0 -8
  1199. package/templates/node_modules/mongoose/types/collection.d.ts +0 -49
  1200. package/templates/node_modules/mongoose/types/connection.d.ts +0 -297
  1201. package/templates/node_modules/mongoose/types/cursor.d.ts +0 -67
  1202. package/templates/node_modules/mongoose/types/document.d.ts +0 -374
  1203. package/templates/node_modules/mongoose/types/error.d.ts +0 -143
  1204. package/templates/node_modules/mongoose/types/expressions.d.ts +0 -3053
  1205. package/templates/node_modules/mongoose/types/helpers.d.ts +0 -32
  1206. package/templates/node_modules/mongoose/types/index.d.ts +0 -1046
  1207. package/templates/node_modules/mongoose/types/indexes.d.ts +0 -97
  1208. package/templates/node_modules/mongoose/types/inferhydrateddoctype.d.ts +0 -115
  1209. package/templates/node_modules/mongoose/types/inferrawdoctype.d.ts +0 -135
  1210. package/templates/node_modules/mongoose/types/inferschematype.d.ts +0 -337
  1211. package/templates/node_modules/mongoose/types/middlewares.d.ts +0 -48
  1212. package/templates/node_modules/mongoose/types/models.d.ts +0 -1291
  1213. package/templates/node_modules/mongoose/types/mongooseoptions.d.ts +0 -228
  1214. package/templates/node_modules/mongoose/types/pipelinestage.d.ts +0 -333
  1215. package/templates/node_modules/mongoose/types/populate.d.ts +0 -53
  1216. package/templates/node_modules/mongoose/types/query.d.ts +0 -934
  1217. package/templates/node_modules/mongoose/types/schemaoptions.d.ts +0 -280
  1218. package/templates/node_modules/mongoose/types/schematypes.d.ts +0 -645
  1219. package/templates/node_modules/mongoose/types/session.d.ts +0 -32
  1220. package/templates/node_modules/mongoose/types/types.d.ts +0 -109
  1221. package/templates/node_modules/mongoose/types/utility.d.ts +0 -175
  1222. package/templates/node_modules/mongoose/types/validation.d.ts +0 -39
  1223. package/templates/node_modules/mongoose/types/virtuals.d.ts +0 -14
  1224. package/templates/node_modules/morgan/HISTORY.md +0 -221
  1225. package/templates/node_modules/morgan/LICENSE +0 -23
  1226. package/templates/node_modules/morgan/README.md +0 -436
  1227. package/templates/node_modules/morgan/index.js +0 -544
  1228. package/templates/node_modules/morgan/node_modules/debug/.coveralls.yml +0 -1
  1229. package/templates/node_modules/morgan/node_modules/debug/.eslintrc +0 -11
  1230. package/templates/node_modules/morgan/node_modules/debug/.travis.yml +0 -14
  1231. package/templates/node_modules/morgan/node_modules/debug/CHANGELOG.md +0 -362
  1232. package/templates/node_modules/morgan/node_modules/debug/LICENSE +0 -19
  1233. package/templates/node_modules/morgan/node_modules/debug/Makefile +0 -50
  1234. package/templates/node_modules/morgan/node_modules/debug/README.md +0 -312
  1235. package/templates/node_modules/morgan/node_modules/debug/component.json +0 -19
  1236. package/templates/node_modules/morgan/node_modules/debug/karma.conf.js +0 -70
  1237. package/templates/node_modules/morgan/node_modules/debug/node.js +0 -1
  1238. package/templates/node_modules/morgan/node_modules/debug/package.json +0 -49
  1239. package/templates/node_modules/morgan/node_modules/debug/src/browser.js +0 -185
  1240. package/templates/node_modules/morgan/node_modules/debug/src/debug.js +0 -202
  1241. package/templates/node_modules/morgan/node_modules/debug/src/index.js +0 -10
  1242. package/templates/node_modules/morgan/node_modules/debug/src/inspector-log.js +0 -15
  1243. package/templates/node_modules/morgan/node_modules/debug/src/node.js +0 -248
  1244. package/templates/node_modules/morgan/node_modules/ms/index.js +0 -152
  1245. package/templates/node_modules/morgan/node_modules/ms/license.md +0 -21
  1246. package/templates/node_modules/morgan/node_modules/ms/package.json +0 -37
  1247. package/templates/node_modules/morgan/node_modules/ms/readme.md +0 -51
  1248. package/templates/node_modules/morgan/node_modules/on-finished/HISTORY.md +0 -88
  1249. package/templates/node_modules/morgan/node_modules/on-finished/LICENSE +0 -23
  1250. package/templates/node_modules/morgan/node_modules/on-finished/README.md +0 -154
  1251. package/templates/node_modules/morgan/node_modules/on-finished/index.js +0 -196
  1252. package/templates/node_modules/morgan/node_modules/on-finished/package.json +0 -31
  1253. package/templates/node_modules/morgan/package.json +0 -52
  1254. package/templates/node_modules/mpath/.travis.yml +0 -9
  1255. package/templates/node_modules/mpath/History.md +0 -88
  1256. package/templates/node_modules/mpath/LICENSE +0 -22
  1257. package/templates/node_modules/mpath/README.md +0 -278
  1258. package/templates/node_modules/mpath/SECURITY.md +0 -5
  1259. package/templates/node_modules/mpath/index.js +0 -3
  1260. package/templates/node_modules/mpath/lib/index.js +0 -336
  1261. package/templates/node_modules/mpath/lib/stringToParts.js +0 -48
  1262. package/templates/node_modules/mpath/package.json +0 -144
  1263. package/templates/node_modules/mpath/test/.eslintrc.yml +0 -4
  1264. package/templates/node_modules/mpath/test/index.js +0 -1879
  1265. package/templates/node_modules/mpath/test/stringToParts.js +0 -30
  1266. package/templates/node_modules/mquery/.github/ISSUE_TEMPLATE.md +0 -11
  1267. package/templates/node_modules/mquery/.github/PULL_REQUEST_TEMPLATE.md +0 -9
  1268. package/templates/node_modules/mquery/History.md +0 -393
  1269. package/templates/node_modules/mquery/LICENSE +0 -22
  1270. package/templates/node_modules/mquery/README.md +0 -1387
  1271. package/templates/node_modules/mquery/SECURITY.md +0 -1
  1272. package/templates/node_modules/mquery/lib/collection/collection.js +0 -47
  1273. package/templates/node_modules/mquery/lib/collection/index.js +0 -13
  1274. package/templates/node_modules/mquery/lib/collection/node.js +0 -128
  1275. package/templates/node_modules/mquery/lib/env.js +0 -22
  1276. package/templates/node_modules/mquery/lib/mquery.js +0 -2748
  1277. package/templates/node_modules/mquery/lib/permissions.js +0 -93
  1278. package/templates/node_modules/mquery/lib/utils.js +0 -297
  1279. package/templates/node_modules/mquery/package.json +0 -35
  1280. package/templates/node_modules/ms/index.js +0 -162
  1281. package/templates/node_modules/ms/license.md +0 -21
  1282. package/templates/node_modules/ms/package.json +0 -38
  1283. package/templates/node_modules/ms/readme.md +0 -59
  1284. package/templates/node_modules/negotiator/HISTORY.md +0 -114
  1285. package/templates/node_modules/negotiator/LICENSE +0 -24
  1286. package/templates/node_modules/negotiator/README.md +0 -212
  1287. package/templates/node_modules/negotiator/index.js +0 -83
  1288. package/templates/node_modules/negotiator/lib/charset.js +0 -169
  1289. package/templates/node_modules/negotiator/lib/encoding.js +0 -205
  1290. package/templates/node_modules/negotiator/lib/language.js +0 -179
  1291. package/templates/node_modules/negotiator/lib/mediaType.js +0 -294
  1292. package/templates/node_modules/negotiator/package.json +0 -43
  1293. package/templates/node_modules/object-inspect/.eslintrc +0 -53
  1294. package/templates/node_modules/object-inspect/.github/FUNDING.yml +0 -12
  1295. package/templates/node_modules/object-inspect/.nycrc +0 -13
  1296. package/templates/node_modules/object-inspect/CHANGELOG.md +0 -424
  1297. package/templates/node_modules/object-inspect/LICENSE +0 -21
  1298. package/templates/node_modules/object-inspect/example/all.js +0 -23
  1299. package/templates/node_modules/object-inspect/example/circular.js +0 -6
  1300. package/templates/node_modules/object-inspect/example/fn.js +0 -5
  1301. package/templates/node_modules/object-inspect/example/inspect.js +0 -10
  1302. package/templates/node_modules/object-inspect/index.js +0 -544
  1303. package/templates/node_modules/object-inspect/package-support.json +0 -20
  1304. package/templates/node_modules/object-inspect/package.json +0 -105
  1305. package/templates/node_modules/object-inspect/readme.markdown +0 -84
  1306. package/templates/node_modules/object-inspect/test/bigint.js +0 -58
  1307. package/templates/node_modules/object-inspect/test/browser/dom.js +0 -15
  1308. package/templates/node_modules/object-inspect/test/circular.js +0 -16
  1309. package/templates/node_modules/object-inspect/test/deep.js +0 -12
  1310. package/templates/node_modules/object-inspect/test/element.js +0 -53
  1311. package/templates/node_modules/object-inspect/test/err.js +0 -48
  1312. package/templates/node_modules/object-inspect/test/fakes.js +0 -29
  1313. package/templates/node_modules/object-inspect/test/fn.js +0 -76
  1314. package/templates/node_modules/object-inspect/test/global.js +0 -17
  1315. package/templates/node_modules/object-inspect/test/has.js +0 -15
  1316. package/templates/node_modules/object-inspect/test/holes.js +0 -15
  1317. package/templates/node_modules/object-inspect/test/indent-option.js +0 -271
  1318. package/templates/node_modules/object-inspect/test/inspect.js +0 -139
  1319. package/templates/node_modules/object-inspect/test/lowbyte.js +0 -12
  1320. package/templates/node_modules/object-inspect/test/number.js +0 -58
  1321. package/templates/node_modules/object-inspect/test/quoteStyle.js +0 -26
  1322. package/templates/node_modules/object-inspect/test/toStringTag.js +0 -40
  1323. package/templates/node_modules/object-inspect/test/undef.js +0 -12
  1324. package/templates/node_modules/object-inspect/test/values.js +0 -261
  1325. package/templates/node_modules/object-inspect/test-core-js.js +0 -26
  1326. package/templates/node_modules/object-inspect/util.inspect.js +0 -1
  1327. package/templates/node_modules/on-finished/HISTORY.md +0 -98
  1328. package/templates/node_modules/on-finished/LICENSE +0 -23
  1329. package/templates/node_modules/on-finished/README.md +0 -162
  1330. package/templates/node_modules/on-finished/index.js +0 -234
  1331. package/templates/node_modules/on-finished/package.json +0 -39
  1332. package/templates/node_modules/on-headers/HISTORY.md +0 -26
  1333. package/templates/node_modules/on-headers/LICENSE +0 -22
  1334. package/templates/node_modules/on-headers/README.md +0 -81
  1335. package/templates/node_modules/on-headers/index.js +0 -180
  1336. package/templates/node_modules/on-headers/package.json +0 -44
  1337. package/templates/node_modules/once/LICENSE +0 -15
  1338. package/templates/node_modules/once/README.md +0 -79
  1339. package/templates/node_modules/once/once.js +0 -42
  1340. package/templates/node_modules/once/package.json +0 -33
  1341. package/templates/node_modules/parseurl/HISTORY.md +0 -58
  1342. package/templates/node_modules/parseurl/LICENSE +0 -24
  1343. package/templates/node_modules/parseurl/README.md +0 -133
  1344. package/templates/node_modules/parseurl/index.js +0 -158
  1345. package/templates/node_modules/parseurl/package.json +0 -40
  1346. package/templates/node_modules/path-to-regexp/LICENSE +0 -21
  1347. package/templates/node_modules/path-to-regexp/Readme.md +0 -224
  1348. package/templates/node_modules/path-to-regexp/dist/index.d.ts +0 -144
  1349. package/templates/node_modules/path-to-regexp/dist/index.js +0 -409
  1350. package/templates/node_modules/path-to-regexp/dist/index.js.map +0 -1
  1351. package/templates/node_modules/path-to-regexp/package.json +0 -64
  1352. package/templates/node_modules/proxy-addr/HISTORY.md +0 -161
  1353. package/templates/node_modules/proxy-addr/LICENSE +0 -22
  1354. package/templates/node_modules/proxy-addr/README.md +0 -139
  1355. package/templates/node_modules/proxy-addr/index.js +0 -327
  1356. package/templates/node_modules/proxy-addr/package.json +0 -47
  1357. package/templates/node_modules/punycode/LICENSE-MIT.txt +0 -20
  1358. package/templates/node_modules/punycode/README.md +0 -148
  1359. package/templates/node_modules/punycode/package.json +0 -58
  1360. package/templates/node_modules/punycode/punycode.es6.js +0 -444
  1361. package/templates/node_modules/punycode/punycode.js +0 -443
  1362. package/templates/node_modules/qs/.editorconfig +0 -46
  1363. package/templates/node_modules/qs/.eslintrc +0 -39
  1364. package/templates/node_modules/qs/.github/FUNDING.yml +0 -12
  1365. package/templates/node_modules/qs/.nycrc +0 -13
  1366. package/templates/node_modules/qs/CHANGELOG.md +0 -622
  1367. package/templates/node_modules/qs/LICENSE.md +0 -29
  1368. package/templates/node_modules/qs/README.md +0 -733
  1369. package/templates/node_modules/qs/dist/qs.js +0 -141
  1370. package/templates/node_modules/qs/lib/formats.js +0 -23
  1371. package/templates/node_modules/qs/lib/index.js +0 -11
  1372. package/templates/node_modules/qs/lib/parse.js +0 -328
  1373. package/templates/node_modules/qs/lib/stringify.js +0 -356
  1374. package/templates/node_modules/qs/lib/utils.js +0 -268
  1375. package/templates/node_modules/qs/package.json +0 -93
  1376. package/templates/node_modules/qs/test/empty-keys-cases.js +0 -267
  1377. package/templates/node_modules/qs/test/parse.js +0 -1276
  1378. package/templates/node_modules/qs/test/stringify.js +0 -1306
  1379. package/templates/node_modules/qs/test/utils.js +0 -262
  1380. package/templates/node_modules/range-parser/HISTORY.md +0 -56
  1381. package/templates/node_modules/range-parser/LICENSE +0 -23
  1382. package/templates/node_modules/range-parser/README.md +0 -84
  1383. package/templates/node_modules/range-parser/index.js +0 -162
  1384. package/templates/node_modules/range-parser/package.json +0 -44
  1385. package/templates/node_modules/raw-body/LICENSE +0 -22
  1386. package/templates/node_modules/raw-body/README.md +0 -223
  1387. package/templates/node_modules/raw-body/index.d.ts +0 -85
  1388. package/templates/node_modules/raw-body/index.js +0 -336
  1389. package/templates/node_modules/raw-body/package.json +0 -46
  1390. package/templates/node_modules/router/HISTORY.md +0 -228
  1391. package/templates/node_modules/router/LICENSE +0 -23
  1392. package/templates/node_modules/router/README.md +0 -416
  1393. package/templates/node_modules/router/index.js +0 -748
  1394. package/templates/node_modules/router/lib/layer.js +0 -247
  1395. package/templates/node_modules/router/lib/route.js +0 -242
  1396. package/templates/node_modules/router/package.json +0 -44
  1397. package/templates/node_modules/safe-buffer/LICENSE +0 -21
  1398. package/templates/node_modules/safe-buffer/README.md +0 -584
  1399. package/templates/node_modules/safe-buffer/index.d.ts +0 -187
  1400. package/templates/node_modules/safe-buffer/index.js +0 -62
  1401. package/templates/node_modules/safe-buffer/package.json +0 -37
  1402. package/templates/node_modules/safer-buffer/LICENSE +0 -21
  1403. package/templates/node_modules/safer-buffer/Porting-Buffer.md +0 -268
  1404. package/templates/node_modules/safer-buffer/Readme.md +0 -156
  1405. package/templates/node_modules/safer-buffer/dangerous.js +0 -58
  1406. package/templates/node_modules/safer-buffer/package.json +0 -34
  1407. package/templates/node_modules/safer-buffer/safer.js +0 -77
  1408. package/templates/node_modules/safer-buffer/tests.js +0 -406
  1409. package/templates/node_modules/send/LICENSE +0 -23
  1410. package/templates/node_modules/send/README.md +0 -317
  1411. package/templates/node_modules/send/index.js +0 -997
  1412. package/templates/node_modules/send/package.json +0 -63
  1413. package/templates/node_modules/serve-static/LICENSE +0 -25
  1414. package/templates/node_modules/serve-static/README.md +0 -253
  1415. package/templates/node_modules/serve-static/index.js +0 -208
  1416. package/templates/node_modules/serve-static/package.json +0 -44
  1417. package/templates/node_modules/setprototypeof/LICENSE +0 -13
  1418. package/templates/node_modules/setprototypeof/README.md +0 -31
  1419. package/templates/node_modules/setprototypeof/index.d.ts +0 -2
  1420. package/templates/node_modules/setprototypeof/index.js +0 -17
  1421. package/templates/node_modules/setprototypeof/package.json +0 -38
  1422. package/templates/node_modules/setprototypeof/test/index.js +0 -24
  1423. package/templates/node_modules/side-channel/.editorconfig +0 -9
  1424. package/templates/node_modules/side-channel/.eslintrc +0 -12
  1425. package/templates/node_modules/side-channel/.github/FUNDING.yml +0 -12
  1426. package/templates/node_modules/side-channel/.nycrc +0 -13
  1427. package/templates/node_modules/side-channel/CHANGELOG.md +0 -110
  1428. package/templates/node_modules/side-channel/LICENSE +0 -21
  1429. package/templates/node_modules/side-channel/README.md +0 -61
  1430. package/templates/node_modules/side-channel/index.d.ts +0 -14
  1431. package/templates/node_modules/side-channel/index.js +0 -43
  1432. package/templates/node_modules/side-channel/package.json +0 -85
  1433. package/templates/node_modules/side-channel/test/index.js +0 -104
  1434. package/templates/node_modules/side-channel/tsconfig.json +0 -9
  1435. package/templates/node_modules/side-channel-list/.editorconfig +0 -9
  1436. package/templates/node_modules/side-channel-list/.eslintrc +0 -11
  1437. package/templates/node_modules/side-channel-list/.github/FUNDING.yml +0 -12
  1438. package/templates/node_modules/side-channel-list/.nycrc +0 -13
  1439. package/templates/node_modules/side-channel-list/CHANGELOG.md +0 -15
  1440. package/templates/node_modules/side-channel-list/LICENSE +0 -21
  1441. package/templates/node_modules/side-channel-list/README.md +0 -62
  1442. package/templates/node_modules/side-channel-list/index.d.ts +0 -13
  1443. package/templates/node_modules/side-channel-list/index.js +0 -113
  1444. package/templates/node_modules/side-channel-list/list.d.ts +0 -14
  1445. package/templates/node_modules/side-channel-list/package.json +0 -77
  1446. package/templates/node_modules/side-channel-list/test/index.js +0 -104
  1447. package/templates/node_modules/side-channel-list/tsconfig.json +0 -9
  1448. package/templates/node_modules/side-channel-map/.editorconfig +0 -9
  1449. package/templates/node_modules/side-channel-map/.eslintrc +0 -11
  1450. package/templates/node_modules/side-channel-map/.github/FUNDING.yml +0 -12
  1451. package/templates/node_modules/side-channel-map/.nycrc +0 -13
  1452. package/templates/node_modules/side-channel-map/CHANGELOG.md +0 -22
  1453. package/templates/node_modules/side-channel-map/LICENSE +0 -21
  1454. package/templates/node_modules/side-channel-map/README.md +0 -62
  1455. package/templates/node_modules/side-channel-map/index.d.ts +0 -15
  1456. package/templates/node_modules/side-channel-map/index.js +0 -68
  1457. package/templates/node_modules/side-channel-map/package.json +0 -80
  1458. package/templates/node_modules/side-channel-map/test/index.js +0 -114
  1459. package/templates/node_modules/side-channel-map/tsconfig.json +0 -9
  1460. package/templates/node_modules/side-channel-weakmap/.editorconfig +0 -9
  1461. package/templates/node_modules/side-channel-weakmap/.eslintrc +0 -12
  1462. package/templates/node_modules/side-channel-weakmap/.github/FUNDING.yml +0 -12
  1463. package/templates/node_modules/side-channel-weakmap/.nycrc +0 -13
  1464. package/templates/node_modules/side-channel-weakmap/CHANGELOG.md +0 -28
  1465. package/templates/node_modules/side-channel-weakmap/LICENSE +0 -21
  1466. package/templates/node_modules/side-channel-weakmap/README.md +0 -62
  1467. package/templates/node_modules/side-channel-weakmap/index.d.ts +0 -15
  1468. package/templates/node_modules/side-channel-weakmap/index.js +0 -84
  1469. package/templates/node_modules/side-channel-weakmap/package.json +0 -87
  1470. package/templates/node_modules/side-channel-weakmap/test/index.js +0 -114
  1471. package/templates/node_modules/side-channel-weakmap/tsconfig.json +0 -9
  1472. package/templates/node_modules/sift/MIT-LICENSE.txt +0 -20
  1473. package/templates/node_modules/sift/README.md +0 -465
  1474. package/templates/node_modules/sift/es/index.js +0 -632
  1475. package/templates/node_modules/sift/es/index.js.map +0 -1
  1476. package/templates/node_modules/sift/es5m/index.js +0 -743
  1477. package/templates/node_modules/sift/es5m/index.js.map +0 -1
  1478. package/templates/node_modules/sift/index.d.ts +0 -4
  1479. package/templates/node_modules/sift/index.js +0 -4
  1480. package/templates/node_modules/sift/lib/core.d.ts +0 -116
  1481. package/templates/node_modules/sift/lib/index.d.ts +0 -6
  1482. package/templates/node_modules/sift/lib/index.js +0 -781
  1483. package/templates/node_modules/sift/lib/index.js.map +0 -1
  1484. package/templates/node_modules/sift/lib/operations.d.ts +0 -88
  1485. package/templates/node_modules/sift/lib/utils.d.ts +0 -11
  1486. package/templates/node_modules/sift/package.json +0 -61
  1487. package/templates/node_modules/sift/sift.csp.min.js +0 -778
  1488. package/templates/node_modules/sift/sift.csp.min.js.map +0 -1
  1489. package/templates/node_modules/sift/sift.min.js +0 -2
  1490. package/templates/node_modules/sift/sift.min.js.map +0 -1
  1491. package/templates/node_modules/sift/src/core.ts +0 -494
  1492. package/templates/node_modules/sift/src/index.ts +0 -54
  1493. package/templates/node_modules/sift/src/operations.ts +0 -422
  1494. package/templates/node_modules/sift/src/utils.ts +0 -74
  1495. package/templates/node_modules/sparse-bitfield/.travis.yml +0 -6
  1496. package/templates/node_modules/sparse-bitfield/LICENSE +0 -21
  1497. package/templates/node_modules/sparse-bitfield/README.md +0 -62
  1498. package/templates/node_modules/sparse-bitfield/index.js +0 -95
  1499. package/templates/node_modules/sparse-bitfield/package.json +0 -27
  1500. package/templates/node_modules/sparse-bitfield/test.js +0 -79
  1501. package/templates/node_modules/statuses/HISTORY.md +0 -87
  1502. package/templates/node_modules/statuses/LICENSE +0 -23
  1503. package/templates/node_modules/statuses/README.md +0 -139
  1504. package/templates/node_modules/statuses/codes.json +0 -65
  1505. package/templates/node_modules/statuses/index.js +0 -146
  1506. package/templates/node_modules/statuses/package.json +0 -49
  1507. package/templates/node_modules/toidentifier/HISTORY.md +0 -9
  1508. package/templates/node_modules/toidentifier/LICENSE +0 -21
  1509. package/templates/node_modules/toidentifier/README.md +0 -61
  1510. package/templates/node_modules/toidentifier/index.js +0 -32
  1511. package/templates/node_modules/toidentifier/package.json +0 -38
  1512. package/templates/node_modules/tr46/LICENSE.md +0 -21
  1513. package/templates/node_modules/tr46/README.md +0 -76
  1514. package/templates/node_modules/tr46/index.js +0 -344
  1515. package/templates/node_modules/tr46/lib/mappingTable.json +0 -1
  1516. package/templates/node_modules/tr46/lib/regexes.js +0 -29
  1517. package/templates/node_modules/tr46/lib/statusMapping.js +0 -9
  1518. package/templates/node_modules/tr46/package.json +0 -44
  1519. package/templates/node_modules/type-is/HISTORY.md +0 -292
  1520. package/templates/node_modules/type-is/LICENSE +0 -23
  1521. package/templates/node_modules/type-is/README.md +0 -198
  1522. package/templates/node_modules/type-is/index.js +0 -250
  1523. package/templates/node_modules/type-is/package.json +0 -47
  1524. package/templates/node_modules/unpipe/HISTORY.md +0 -4
  1525. package/templates/node_modules/unpipe/LICENSE +0 -22
  1526. package/templates/node_modules/unpipe/README.md +0 -43
  1527. package/templates/node_modules/unpipe/index.js +0 -69
  1528. package/templates/node_modules/unpipe/package.json +0 -27
  1529. package/templates/node_modules/vary/HISTORY.md +0 -39
  1530. package/templates/node_modules/vary/LICENSE +0 -22
  1531. package/templates/node_modules/vary/README.md +0 -101
  1532. package/templates/node_modules/vary/index.js +0 -149
  1533. package/templates/node_modules/vary/package.json +0 -43
  1534. package/templates/node_modules/webidl-conversions/LICENSE.md +0 -12
  1535. package/templates/node_modules/webidl-conversions/README.md +0 -99
  1536. package/templates/node_modules/webidl-conversions/lib/index.js +0 -450
  1537. package/templates/node_modules/webidl-conversions/package.json +0 -35
  1538. package/templates/node_modules/whatwg-url/LICENSE.txt +0 -21
  1539. package/templates/node_modules/whatwg-url/README.md +0 -106
  1540. package/templates/node_modules/whatwg-url/index.js +0 -27
  1541. package/templates/node_modules/whatwg-url/lib/Function.js +0 -42
  1542. package/templates/node_modules/whatwg-url/lib/URL-impl.js +0 -233
  1543. package/templates/node_modules/whatwg-url/lib/URL.js +0 -499
  1544. package/templates/node_modules/whatwg-url/lib/URLSearchParams-impl.js +0 -135
  1545. package/templates/node_modules/whatwg-url/lib/URLSearchParams.js +0 -505
  1546. package/templates/node_modules/whatwg-url/lib/VoidFunction.js +0 -26
  1547. package/templates/node_modules/whatwg-url/lib/encoding.js +0 -16
  1548. package/templates/node_modules/whatwg-url/lib/infra.js +0 -26
  1549. package/templates/node_modules/whatwg-url/lib/percent-encoding.js +0 -142
  1550. package/templates/node_modules/whatwg-url/lib/url-state-machine.js +0 -1274
  1551. package/templates/node_modules/whatwg-url/lib/urlencoded.js +0 -89
  1552. package/templates/node_modules/whatwg-url/lib/utils.js +0 -190
  1553. package/templates/node_modules/whatwg-url/package.json +0 -53
  1554. package/templates/node_modules/whatwg-url/webidl2js-wrapper.js +0 -7
  1555. package/templates/node_modules/wrappy/LICENSE +0 -15
  1556. package/templates/node_modules/wrappy/README.md +0 -36
  1557. package/templates/node_modules/wrappy/package.json +0 -29
  1558. package/templates/node_modules/wrappy/wrappy.js +0 -33
  1559. package/templates/package-lock.json +0 -1139
  1560. package/templates/package.json +0 -20
  1561. /package/templates/controllers/{users.routes.js → index.routes.js} +0 -0
@@ -1,3227 +0,0 @@
1
- 'use strict';
2
-
3
- /*!
4
- * Module dependencies.
5
- */
6
-
7
- const EventEmitter = require('events').EventEmitter;
8
- const Kareem = require('kareem');
9
- const MongooseError = require('./error/mongooseError');
10
- const SchemaType = require('./schemaType');
11
- const SchemaTypeOptions = require('./options/schemaTypeOptions');
12
- const VirtualOptions = require('./options/virtualOptions');
13
- const VirtualType = require('./virtualType');
14
- const addAutoId = require('./helpers/schema/addAutoId');
15
- const clone = require('./helpers/clone');
16
- const get = require('./helpers/get');
17
- const getConstructorName = require('./helpers/getConstructorName');
18
- const getIndexes = require('./helpers/schema/getIndexes');
19
- const handleReadPreferenceAliases = require('./helpers/query/handleReadPreferenceAliases');
20
- const idGetter = require('./helpers/schema/idGetter');
21
- const isIndexSpecEqual = require('./helpers/indexes/isIndexSpecEqual');
22
- const merge = require('./helpers/schema/merge');
23
- const mpath = require('mpath');
24
- const setPopulatedVirtualValue = require('./helpers/populate/setPopulatedVirtualValue');
25
- const setupTimestamps = require('./helpers/timestamps/setupTimestamps');
26
- const symbols = require('./schema/symbols');
27
- const utils = require('./utils');
28
- const validateRef = require('./helpers/populate/validateRef');
29
-
30
- const hasNumericSubpathRegex = /\.\d+(\.|$)/;
31
-
32
- let MongooseTypes;
33
-
34
- const queryHooks = require('./constants').queryMiddlewareFunctions;
35
- const documentHooks = require('./constants').documentMiddlewareFunctions;
36
- const hookNames = queryHooks.concat(documentHooks).
37
- reduce((s, hook) => s.add(hook), new Set());
38
-
39
- const isPOJO = utils.isPOJO;
40
-
41
- let id = 0;
42
-
43
- const numberRE = /^\d+$/;
44
-
45
- /**
46
- * Schema constructor.
47
- *
48
- * #### Example:
49
- *
50
- * const child = new Schema({ name: String });
51
- * const schema = new Schema({ name: String, age: Number, children: [child] });
52
- * const Tree = mongoose.model('Tree', schema);
53
- *
54
- * // setting schema options
55
- * new Schema({ name: String }, { id: false, autoIndex: false })
56
- *
57
- * #### Options:
58
- *
59
- * - [autoIndex](https://mongoosejs.com/docs/guide.html#autoIndex): bool - defaults to null (which means use the connection's autoIndex option)
60
- * - [autoCreate](https://mongoosejs.com/docs/guide.html#autoCreate): bool - defaults to null (which means use the connection's autoCreate option)
61
- * - [bufferCommands](https://mongoosejs.com/docs/guide.html#bufferCommands): bool - defaults to true
62
- * - [bufferTimeoutMS](https://mongoosejs.com/docs/guide.html#bufferTimeoutMS): number - defaults to 10000 (10 seconds). If `bufferCommands` is enabled, the amount of time Mongoose will wait for connectivity to be restablished before erroring out.
63
- * - [capped](https://mongoosejs.com/docs/guide.html#capped): bool | number | object - defaults to false
64
- * - [collection](https://mongoosejs.com/docs/guide.html#collection): string - no default
65
- * - [discriminatorKey](https://mongoosejs.com/docs/guide.html#discriminatorKey): string - defaults to `__t`
66
- * - [id](https://mongoosejs.com/docs/guide.html#id): bool - defaults to true
67
- * - [_id](https://mongoosejs.com/docs/guide.html#_id): bool - defaults to true
68
- * - [minimize](https://mongoosejs.com/docs/guide.html#minimize): bool - controls [document#toObject](https://mongoosejs.com/docs/api/document.html#Document.prototype.toObject()) behavior when called manually - defaults to true
69
- * - [read](https://mongoosejs.com/docs/guide.html#read): string
70
- * - [readConcern](https://mongoosejs.com/docs/guide.html#readConcern): object - defaults to null, use to set a default [read concern](https://www.mongodb.com/docs/manual/reference/read-concern/) for all queries.
71
- * - [writeConcern](https://mongoosejs.com/docs/guide.html#writeConcern): object - defaults to null, use to override [the MongoDB server's default write concern settings](https://www.mongodb.com/docs/manual/reference/write-concern/)
72
- * - [shardKey](https://mongoosejs.com/docs/guide.html#shardKey): object - defaults to `null`
73
- * - [strict](https://mongoosejs.com/docs/guide.html#strict): bool - defaults to true
74
- * - [strictQuery](https://mongoosejs.com/docs/guide.html#strictQuery): bool - defaults to false
75
- * - [toJSON](https://mongoosejs.com/docs/guide.html#toJSON) - object - no default
76
- * - [toObject](https://mongoosejs.com/docs/guide.html#toObject) - object - no default
77
- * - [typeKey](https://mongoosejs.com/docs/guide.html#typeKey) - string - defaults to 'type'
78
- * - [validateBeforeSave](https://mongoosejs.com/docs/guide.html#validateBeforeSave) - bool - defaults to `true`
79
- * - [validateModifiedOnly](https://mongoosejs.com/docs/api/document.html#Document.prototype.validate()) - bool - defaults to `false`
80
- * - [versionKey](https://mongoosejs.com/docs/guide.html#versionKey): string or object - defaults to "__v"
81
- * - [optimisticConcurrency](https://mongoosejs.com/docs/guide.html#optimisticConcurrency): bool or string[] or { exclude: string[] } - defaults to false. Set to true to enable [optimistic concurrency](https://thecodebarbarian.com/whats-new-in-mongoose-5-10-optimistic-concurrency.html). Set to string array to enable optimistic concurrency for only certain fields, or `{ exclude: string[] }` to define a list of fields to ignore for optimistic concurrency.
82
- * - [collation](https://mongoosejs.com/docs/guide.html#collation): object - defaults to null (which means use no collation)
83
- * - [timeseries](https://mongoosejs.com/docs/guide.html#timeseries): object - defaults to null (which means this schema's collection won't be a timeseries collection)
84
- * - [selectPopulatedPaths](https://mongoosejs.com/docs/guide.html#selectPopulatedPaths): boolean - defaults to `true`
85
- * - [skipVersioning](https://mongoosejs.com/docs/guide.html#skipVersioning): object - paths to exclude from versioning
86
- * - [timestamps](https://mongoosejs.com/docs/guide.html#timestamps): object or boolean - defaults to `false`. If true, Mongoose adds `createdAt` and `updatedAt` properties to your schema and manages those properties for you.
87
- * - [pluginTags](https://mongoosejs.com/docs/guide.html#pluginTags): array of strings - defaults to `undefined`. If set and plugin called with `tags` option, will only apply that plugin to schemas with a matching tag.
88
- * - [virtuals](https://mongoosejs.com/docs/tutorials/virtuals.html#virtuals-via-schema-options): object - virtuals to define, alias for [`.virtual`](https://mongoosejs.com/docs/api/schema.html#Schema.prototype.virtual())
89
- * - [collectionOptions]: object with options passed to [`createCollection()`](https://www.mongodb.com/docs/manual/reference/method/db.createCollection/) when calling `Model.createCollection()` or `autoCreate` set to true.
90
- * - [encryptionType]: the encryption type for the schema. Valid options are `csfle` or `queryableEncryption`. See https://mongoosejs.com/docs/field-level-encryption.
91
- *
92
- * #### Options for Nested Schemas:
93
- *
94
- * - `excludeIndexes`: bool - defaults to `false`. If `true`, skip building indexes on this schema's paths.
95
- *
96
- * #### Note:
97
- *
98
- * _When nesting schemas, (`children` in the example above), always declare the child schema first before passing it into its parent._
99
- *
100
- * @param {Object|Schema|Array} [definition] Can be one of: object describing schema paths, or schema to copy, or array of objects and schemas
101
- * @param {Object} [options]
102
- * @inherits NodeJS EventEmitter https://nodejs.org/api/events.html#class-eventemitter
103
- * @event `init`: Emitted after the schema is compiled into a `Model`.
104
- * @api public
105
- */
106
-
107
- function Schema(obj, options) {
108
- if (!(this instanceof Schema)) {
109
- return new Schema(obj, options);
110
- }
111
-
112
- this.obj = obj;
113
- this.paths = {};
114
- this.aliases = {};
115
- this.subpaths = {};
116
- this.virtuals = {};
117
- this.singleNestedPaths = {};
118
- this.nested = {};
119
- this.inherits = {};
120
- this.callQueue = [];
121
- this._indexes = [];
122
- this._searchIndexes = [];
123
- this.methods = (options && options.methods) || {};
124
- this.methodOptions = {};
125
- this.statics = (options && options.statics) || {};
126
- this.tree = {};
127
- this.query = (options && options.query) || {};
128
- this.childSchemas = [];
129
- this.plugins = [];
130
- // For internal debugging. Do not use this to try to save a schema in MDB.
131
- this.$id = ++id;
132
- this.mapPaths = [];
133
- this.encryptedFields = {};
134
-
135
- this.s = {
136
- hooks: new Kareem()
137
- };
138
- this.options = this.defaultOptions(options);
139
-
140
- // build paths
141
- if (Array.isArray(obj)) {
142
- for (const definition of obj) {
143
- this.add(definition);
144
- }
145
- } else if (obj) {
146
- this.add(obj);
147
- }
148
-
149
- // build virtual paths
150
- if (options && options.virtuals) {
151
- const virtuals = options.virtuals;
152
- const pathNames = Object.keys(virtuals);
153
- for (const pathName of pathNames) {
154
- const pathOptions = virtuals[pathName].options ? virtuals[pathName].options : undefined;
155
- const virtual = this.virtual(pathName, pathOptions);
156
-
157
- if (virtuals[pathName].get) {
158
- virtual.get(virtuals[pathName].get);
159
- }
160
-
161
- if (virtuals[pathName].set) {
162
- virtual.set(virtuals[pathName].set);
163
- }
164
- }
165
- }
166
-
167
- // check if _id's value is a subdocument (gh-2276)
168
- const _idSubDoc = obj && obj._id && utils.isObject(obj._id);
169
-
170
- // ensure the documents get an auto _id unless disabled
171
- const auto_id = !this.paths['_id'] &&
172
- (this.options._id) && !_idSubDoc;
173
-
174
- if (auto_id) {
175
- addAutoId(this);
176
- }
177
-
178
- this.setupTimestamp(this.options.timestamps);
179
- }
180
-
181
- /**
182
- * Create virtual properties with alias field
183
- * @api private
184
- */
185
- function aliasFields(schema, paths) {
186
- for (const path of Object.keys(paths)) {
187
- let alias = null;
188
- if (paths[path] != null) {
189
- alias = paths[path];
190
- } else {
191
- const options = get(schema.paths[path], 'options');
192
- if (options == null) {
193
- continue;
194
- }
195
-
196
- alias = options.alias;
197
- }
198
-
199
- if (!alias) {
200
- continue;
201
- }
202
-
203
- const prop = schema.paths[path].path;
204
- if (Array.isArray(alias)) {
205
- for (const a of alias) {
206
- if (typeof a !== 'string') {
207
- throw new Error('Invalid value for alias option on ' + prop + ', got ' + a);
208
- }
209
-
210
- schema.aliases[a] = prop;
211
-
212
- schema.
213
- virtual(a).
214
- get((function(p) {
215
- return function() {
216
- if (typeof this.get === 'function') {
217
- return this.get(p);
218
- }
219
- return this[p];
220
- };
221
- })(prop)).
222
- set((function(p) {
223
- return function(v) {
224
- return this.$set(p, v);
225
- };
226
- })(prop));
227
- }
228
-
229
- continue;
230
- }
231
-
232
- if (typeof alias !== 'string') {
233
- throw new Error('Invalid value for alias option on ' + prop + ', got ' + alias);
234
- }
235
-
236
- schema.aliases[alias] = prop;
237
-
238
- schema.
239
- virtual(alias).
240
- get((function(p) {
241
- return function() {
242
- if (typeof this.get === 'function') {
243
- return this.get(p);
244
- }
245
- return this[p];
246
- };
247
- })(prop)).
248
- set((function(p) {
249
- return function(v) {
250
- return this.$set(p, v);
251
- };
252
- })(prop));
253
- }
254
- }
255
-
256
- /*!
257
- * Inherit from EventEmitter.
258
- */
259
- Schema.prototype = Object.create(EventEmitter.prototype);
260
- Schema.prototype.constructor = Schema;
261
- Schema.prototype.instanceOfSchema = true;
262
-
263
- /*!
264
- * ignore
265
- */
266
-
267
- Object.defineProperty(Schema.prototype, '$schemaType', {
268
- configurable: false,
269
- enumerable: false,
270
- writable: true
271
- });
272
-
273
- /**
274
- * Array of child schemas (from document arrays and single nested subdocs)
275
- * and their corresponding compiled models. Each element of the array is
276
- * an object with 2 properties: `schema` and `model`.
277
- *
278
- * This property is typically only useful for plugin authors and advanced users.
279
- * You do not need to interact with this property at all to use mongoose.
280
- *
281
- * @api public
282
- * @property childSchemas
283
- * @memberOf Schema
284
- * @instance
285
- */
286
-
287
- Object.defineProperty(Schema.prototype, 'childSchemas', {
288
- configurable: false,
289
- enumerable: true,
290
- writable: true
291
- });
292
-
293
- /**
294
- * Object containing all virtuals defined on this schema.
295
- * The objects' keys are the virtual paths and values are instances of `VirtualType`.
296
- *
297
- * This property is typically only useful for plugin authors and advanced users.
298
- * You do not need to interact with this property at all to use mongoose.
299
- *
300
- * #### Example:
301
- *
302
- * const schema = new Schema({});
303
- * schema.virtual('answer').get(() => 42);
304
- *
305
- * console.log(schema.virtuals); // { answer: VirtualType { path: 'answer', ... } }
306
- * console.log(schema.virtuals['answer'].getters[0].call()); // 42
307
- *
308
- * @api public
309
- * @property virtuals
310
- * @memberOf Schema
311
- * @instance
312
- */
313
-
314
- Object.defineProperty(Schema.prototype, 'virtuals', {
315
- configurable: false,
316
- enumerable: true,
317
- writable: true
318
- });
319
-
320
- /**
321
- * The original object passed to the schema constructor
322
- *
323
- * #### Example:
324
- *
325
- * const schema = new Schema({ a: String }).add({ b: String });
326
- * schema.obj; // { a: String }
327
- *
328
- * @api public
329
- * @property obj
330
- * @memberOf Schema
331
- * @instance
332
- */
333
-
334
- Schema.prototype.obj;
335
-
336
- /**
337
- * The paths defined on this schema. The keys are the top-level paths
338
- * in this schema, and the values are instances of the SchemaType class.
339
- *
340
- * #### Example:
341
- *
342
- * const schema = new Schema({ name: String }, { _id: false });
343
- * schema.paths; // { name: SchemaString { ... } }
344
- *
345
- * schema.add({ age: Number });
346
- * schema.paths; // { name: SchemaString { ... }, age: SchemaNumber { ... } }
347
- *
348
- * @api public
349
- * @property paths
350
- * @memberOf Schema
351
- * @instance
352
- */
353
-
354
- Schema.prototype.paths;
355
-
356
- /**
357
- * Schema as a tree
358
- *
359
- * #### Example:
360
- *
361
- * {
362
- * '_id' : ObjectId
363
- * , 'nested' : {
364
- * 'key' : String
365
- * }
366
- * }
367
- *
368
- * @api private
369
- * @property tree
370
- * @memberOf Schema
371
- * @instance
372
- */
373
-
374
- Schema.prototype.tree;
375
-
376
- /**
377
- * Creates a new schema with the given definition and options. Equivalent to `new Schema(definition, options)`.
378
- *
379
- * `Schema.create()` is primarily useful for automatic schema type inference in TypeScript.
380
- *
381
- * #### Example:
382
- *
383
- * const schema = Schema.create({ name: String }, { toObject: { virtuals: true } });
384
- * // Equivalent:
385
- * const schema2 = new Schema({ name: String }, { toObject: { virtuals: true } });
386
- *
387
- * @param {Object} definition
388
- * @param {Object} [options]
389
- * @return {Schema} the new schema
390
- * @api public
391
- * @memberOf Schema
392
- * @static
393
- */
394
-
395
- Schema.create = function create(definition, options) {
396
- return new Schema(definition, options);
397
- };
398
-
399
- /**
400
- * Returns a deep copy of the schema
401
- *
402
- * #### Example:
403
- *
404
- * const schema = new Schema({ name: String });
405
- * const clone = schema.clone();
406
- * clone === schema; // false
407
- * clone.path('name'); // SchemaString { ... }
408
- *
409
- * @return {Schema} the cloned schema
410
- * @api public
411
- * @memberOf Schema
412
- * @instance
413
- */
414
-
415
- Schema.prototype.clone = function() {
416
- const s = this._clone();
417
-
418
- // Bubble up `init` for backwards compat
419
- s.on('init', v => this.emit('init', v));
420
-
421
- return s;
422
- };
423
-
424
- /*!
425
- * ignore
426
- */
427
-
428
- Schema.prototype._clone = function _clone(Constructor) {
429
- Constructor = Constructor || (this.base == null ? Schema : this.base.Schema);
430
-
431
- const s = new Constructor({}, this._userProvidedOptions);
432
- s.base = this.base;
433
- s.obj = this.obj;
434
- s.options = clone(this.options);
435
- s.callQueue = this.callQueue.map(function(f) { return f; });
436
- s.methods = clone(this.methods);
437
- s.methodOptions = clone(this.methodOptions);
438
- s.statics = clone(this.statics);
439
- s.query = clone(this.query);
440
- s.plugins = Array.prototype.slice.call(this.plugins);
441
- s._indexes = clone(this._indexes);
442
- s._searchIndexes = clone(this._searchIndexes);
443
- s.s.hooks = this.s.hooks.clone();
444
-
445
- s.tree = clone(this.tree);
446
- s.paths = Object.fromEntries(
447
- Object.entries(this.paths).map(([key, value]) => ([key, value.clone()]))
448
- );
449
- s.nested = clone(this.nested);
450
- s.subpaths = clone(this.subpaths);
451
- for (const schemaType of Object.values(s.paths)) {
452
- if (schemaType.$isSingleNested) {
453
- const path = schemaType.path;
454
- for (const key of Object.keys(schemaType.schema.paths)) {
455
- s.singleNestedPaths[path + '.' + key] = schemaType.schema.paths[key];
456
- }
457
- for (const key of Object.keys(schemaType.schema.singleNestedPaths)) {
458
- s.singleNestedPaths[path + '.' + key] =
459
- schemaType.schema.singleNestedPaths[key];
460
- }
461
- for (const key of Object.keys(schemaType.schema.subpaths)) {
462
- s.singleNestedPaths[path + '.' + key] =
463
- schemaType.schema.subpaths[key];
464
- }
465
- for (const key of Object.keys(schemaType.schema.nested)) {
466
- s.singleNestedPaths[path + '.' + key] = 'nested';
467
- }
468
- }
469
- }
470
- s._gatherChildSchemas();
471
-
472
- s.virtuals = clone(this.virtuals);
473
- s.$globalPluginsApplied = this.$globalPluginsApplied;
474
- s.$isRootDiscriminator = this.$isRootDiscriminator;
475
- s.$implicitlyCreated = this.$implicitlyCreated;
476
- s.$id = ++id;
477
- s.$originalSchemaId = this.$id;
478
- s.mapPaths = [].concat(this.mapPaths);
479
-
480
- if (this.discriminatorMapping != null) {
481
- s.discriminatorMapping = Object.assign({}, this.discriminatorMapping);
482
- }
483
- if (this.discriminators != null) {
484
- s.discriminators = Object.assign({}, this.discriminators);
485
- }
486
- if (this._applyDiscriminators != null) {
487
- s._applyDiscriminators = new Map(this._applyDiscriminators);
488
- }
489
-
490
- s.aliases = Object.assign({}, this.aliases);
491
-
492
- s.encryptedFields = clone(this.encryptedFields);
493
-
494
- return s;
495
- };
496
-
497
- /**
498
- * Returns a new schema that has the picked `paths` from this schema.
499
- *
500
- * This method is analagous to [Lodash's `pick()` function](https://lodash.com/docs/4.17.15#pick) for Mongoose schemas.
501
- *
502
- * #### Example:
503
- *
504
- * const schema = Schema({ name: String, age: Number });
505
- * // Creates a new schema with the same `name` path as `schema`,
506
- * // but no `age` path.
507
- * const newSchema = schema.pick(['name']);
508
- *
509
- * newSchema.path('name'); // SchemaString { ... }
510
- * newSchema.path('age'); // undefined
511
- *
512
- * @param {String[]} paths List of Paths to pick for the new Schema
513
- * @param {Object} [options] Options to pass to the new Schema Constructor (same as `new Schema(.., Options)`). Defaults to `this.options` if not set.
514
- * @return {Schema}
515
- * @api public
516
- */
517
-
518
- Schema.prototype.pick = function(paths, options) {
519
- const newSchema = new Schema({}, options || this.options);
520
- if (!Array.isArray(paths)) {
521
- throw new MongooseError('Schema#pick() only accepts an array argument, ' +
522
- 'got "' + typeof paths + '"');
523
- }
524
-
525
- for (const path of paths) {
526
- if (this._hasEncryptedField(path)) {
527
- const encrypt = this.encryptedFields[path];
528
- const schemaType = this.path(path);
529
- newSchema.add({
530
- [path]: {
531
- encrypt,
532
- [this.options.typeKey]: schemaType
533
- }
534
- });
535
- } else if (this.nested[path]) {
536
- newSchema.add({ [path]: get(this.tree, path) });
537
- } else {
538
- const schematype = this.path(path);
539
- if (schematype == null) {
540
- throw new MongooseError('Path `' + path + '` is not in the schema');
541
- }
542
- newSchema.add({ [path]: schematype });
543
- }
544
- }
545
-
546
- if (!this._hasEncryptedFields()) {
547
- newSchema.options.encryptionType = null;
548
- }
549
-
550
- return newSchema;
551
- };
552
-
553
- /**
554
- * Returns a new schema that has the `paths` from the original schema, minus the omitted ones.
555
- *
556
- * This method is analagous to [Lodash's `omit()` function](https://lodash.com/docs/#omit) for Mongoose schemas.
557
- *
558
- * #### Example:
559
- *
560
- * const schema = Schema({ name: String, age: Number });
561
- * // Creates a new schema omitting the `age` path
562
- * const newSchema = schema.omit(['age']);
563
- *
564
- * newSchema.path('name'); // SchemaString { ... }
565
- * newSchema.path('age'); // undefined
566
- *
567
- * @param {String[]} paths List of Paths to omit for the new Schema
568
- * @param {Object} [options] Options to pass to the new Schema Constructor (same as `new Schema(.., Options)`). Defaults to `this.options` if not set.
569
- * @return {Schema}
570
- * @api public
571
- */
572
-
573
- Schema.prototype.omit = function(paths, options) {
574
- const newSchema = new Schema(this, options || this.options);
575
- if (!Array.isArray(paths)) {
576
- throw new MongooseError(
577
- 'Schema#omit() only accepts an array argument, ' +
578
- 'got "' +
579
- typeof paths +
580
- '"'
581
- );
582
- }
583
-
584
- newSchema.remove(paths);
585
-
586
- for (const nested in newSchema.singleNestedPaths) {
587
- if (paths.includes(nested)) {
588
- delete newSchema.singleNestedPaths[nested];
589
- }
590
- }
591
-
592
- return newSchema;
593
- };
594
-
595
- /**
596
- * Returns default options for this schema, merged with `options`.
597
- *
598
- * @param {Object} [options] Options to overwrite the default options
599
- * @return {Object} The merged options of `options` and the default options
600
- * @api private
601
- */
602
-
603
- Schema.prototype.defaultOptions = function(options) {
604
- this._userProvidedOptions = options == null ? {} : clone(options);
605
- const baseOptions = this.base && this.base.options || {};
606
- const strict = 'strict' in baseOptions ? baseOptions.strict : true;
607
- const strictQuery = 'strictQuery' in baseOptions ? baseOptions.strictQuery : false;
608
- const id = 'id' in baseOptions ? baseOptions.id : true;
609
- options = {
610
- strict,
611
- strictQuery,
612
- bufferCommands: true,
613
- capped: false, // { size, max, autoIndexId }
614
- versionKey: '__v',
615
- optimisticConcurrency: false,
616
- minimize: true,
617
- autoIndex: null,
618
- discriminatorKey: '__t',
619
- shardKey: null,
620
- read: null,
621
- validateBeforeSave: true,
622
- validateModifiedOnly: false,
623
- // the following are only applied at construction time
624
- _id: true,
625
- id: id,
626
- typeKey: 'type',
627
- ...options
628
- };
629
-
630
- if (options.versionKey && typeof options.versionKey !== 'string') {
631
- throw new MongooseError('`versionKey` must be falsy or string, got `' + (typeof options.versionKey) + '`');
632
- }
633
-
634
- if (typeof options.read === 'string') {
635
- options.read = handleReadPreferenceAliases(options.read);
636
- } else if (Array.isArray(options.read) && typeof options.read[0] === 'string') {
637
- options.read = {
638
- mode: handleReadPreferenceAliases(options.read[0]),
639
- tags: options.read[1]
640
- };
641
- }
642
-
643
- if (options.optimisticConcurrency && !options.versionKey) {
644
- throw new MongooseError('Must set `versionKey` if using `optimisticConcurrency`');
645
- }
646
-
647
- return options;
648
- };
649
-
650
- /**
651
- * Inherit a Schema by applying a discriminator on an existing Schema.
652
- *
653
- *
654
- * #### Example:
655
- *
656
- * const eventSchema = new mongoose.Schema({ timestamp: Date }, { discriminatorKey: 'kind' });
657
- *
658
- * const clickedEventSchema = new mongoose.Schema({ element: String }, { discriminatorKey: 'kind' });
659
- * const ClickedModel = eventSchema.discriminator('clicked', clickedEventSchema);
660
- *
661
- * const Event = mongoose.model('Event', eventSchema);
662
- *
663
- * Event.discriminators['clicked']; // Model { clicked }
664
- *
665
- * const doc = await Event.create({ kind: 'clicked', element: '#hero' });
666
- * doc.element; // '#hero'
667
- * doc instanceof ClickedModel; // true
668
- *
669
- * @param {String} name the name of the discriminator
670
- * @param {Schema} schema the discriminated Schema
671
- * @param {Object} [options] discriminator options
672
- * @param {String} [options.value] the string stored in the `discriminatorKey` property. If not specified, Mongoose uses the `name` parameter.
673
- * @param {Boolean} [options.clone=true] By default, `discriminator()` clones the given `schema`. Set to `false` to skip cloning.
674
- * @param {Boolean} [options.overwriteModels=false] by default, Mongoose does not allow you to define a discriminator with the same name as another discriminator. Set this to allow overwriting discriminators with the same name.
675
- * @param {Boolean} [options.mergeHooks=true] By default, Mongoose merges the base schema's hooks with the discriminator schema's hooks. Set this option to `false` to make Mongoose use the discriminator schema's hooks instead.
676
- * @param {Boolean} [options.mergePlugins=true] By default, Mongoose merges the base schema's plugins with the discriminator schema's plugins. Set this option to `false` to make Mongoose use the discriminator schema's plugins instead.
677
- * @return {Schema} the Schema instance
678
- * @api public
679
- */
680
- Schema.prototype.discriminator = function(name, schema, options) {
681
- this._applyDiscriminators = this._applyDiscriminators || new Map();
682
- this._applyDiscriminators.set(name, { schema, options });
683
-
684
- return this;
685
- };
686
-
687
- /*!
688
- * Get the document middleware for this schema, filtering out any hooks that are specific to queries.
689
- */
690
- Schema.prototype._getDocumentMiddleware = function _getDocumentMiddleware() {
691
- return this.s.hooks.
692
- filter(hook => {
693
- if (hook.name === 'updateOne' || hook.name === 'deleteOne') {
694
- return !!hook['document'];
695
- }
696
- if (hook.name === 'remove' || hook.name === 'init') {
697
- return hook['document'] == null || !!hook['document'];
698
- }
699
- if (hook.query != null || hook.document != null) {
700
- return hook.document !== false;
701
- }
702
- return true;
703
- }).
704
- filter(hook => {
705
- // If user has overwritten the method, don't apply built-in middleware
706
- if (this.methods[hook.name]) {
707
- return !hook.fn[symbols.builtInMiddleware];
708
- }
709
-
710
- return true;
711
- });
712
- };
713
-
714
- /*!
715
- * Get this schema's default toObject/toJSON options, including Mongoose global
716
- * options.
717
- */
718
-
719
- Schema.prototype._defaultToObjectOptions = function(json) {
720
- const path = json ? 'toJSON' : 'toObject';
721
- if (this._defaultToObjectOptionsMap && this._defaultToObjectOptionsMap[path]) {
722
- return this._defaultToObjectOptionsMap[path];
723
- }
724
-
725
- const baseOptions = this.base &&
726
- this.base.options &&
727
- this.base.options[path] || {};
728
- const schemaOptions = this.options[path] || {};
729
- // merge base default options with Schema's set default options if available.
730
- // `clone` is necessary here because `utils.options` directly modifies the second input.
731
- const defaultOptions = Object.assign({}, baseOptions, schemaOptions);
732
-
733
- this._defaultToObjectOptionsMap = this._defaultToObjectOptionsMap || {};
734
- this._defaultToObjectOptionsMap[path] = defaultOptions;
735
- return defaultOptions;
736
- };
737
-
738
- /**
739
- * Sets the encryption type of the schema, if a value is provided, otherwise
740
- * returns the encryption type.
741
- *
742
- * @param {'csfle' | 'queryableEncryption' | null | undefined} encryptionType plain object with paths to add, or another schema
743
- */
744
- Schema.prototype.encryptionType = function encryptionType(encryptionType) {
745
- if (arguments.length === 0) {
746
- return this.options.encryptionType;
747
- }
748
- if (!(typeof encryptionType === 'string' || encryptionType === null)) {
749
- throw new Error('invalid `encryptionType`: ${encryptionType}');
750
- }
751
- this.options.encryptionType = encryptionType;
752
- };
753
-
754
- /**
755
- * Adds key path / schema type pairs to this schema.
756
- *
757
- * #### Example:
758
- *
759
- * const ToySchema = new Schema();
760
- * ToySchema.add({ name: 'string', color: 'string', price: 'number' });
761
- *
762
- * const TurboManSchema = new Schema();
763
- * // You can also `add()` another schema and copy over all paths, virtuals,
764
- * // getters, setters, indexes, methods, and statics.
765
- * TurboManSchema.add(ToySchema).add({ year: Number });
766
- *
767
- * @param {Object|Schema} obj plain object with paths to add, or another schema
768
- * @param {String} [prefix] path to prefix the newly added paths with
769
- * @return {Schema} the Schema instance
770
- * @api public
771
- */
772
-
773
- Schema.prototype.add = function add(obj, prefix) {
774
- if (obj instanceof Schema || (obj != null && obj.instanceOfSchema)) {
775
- merge(this, obj);
776
- return this;
777
- }
778
-
779
- // Special case: setting top-level `_id` to false should convert to disabling
780
- // the `_id` option. This behavior never worked before 5.4.11 but numerous
781
- // codebases use it (see gh-7516, gh-7512).
782
- if (obj._id === false && prefix == null) {
783
- this.options._id = false;
784
- }
785
-
786
- prefix = prefix || '';
787
- // avoid prototype pollution
788
- if (prefix === '__proto__.' || prefix === 'constructor.' || prefix === 'prototype.') {
789
- return this;
790
- }
791
-
792
- const keys = Object.keys(obj);
793
- const typeKey = this.options.typeKey;
794
- for (const key of keys) {
795
- if (utils.specialProperties.has(key)) {
796
- continue;
797
- }
798
-
799
- const fullPath = prefix + key;
800
- const val = obj[key];
801
-
802
- if (val == null) {
803
- throw new TypeError('Invalid value for schema path `' + fullPath +
804
- '`, got value "' + val + '"');
805
- }
806
- // Retain `_id: false` but don't set it as a path, re: gh-8274.
807
- if (key === '_id' && val === false) {
808
- continue;
809
- }
810
- // Deprecate setting schema paths to primitive types (gh-7558)
811
- let isMongooseTypeString = false;
812
- if (typeof val === 'string') {
813
- // Handle the case in which the type is specified as a string (eg. 'date', 'oid', ...)
814
- const MongooseTypes = this.base != null ? this.base.Schema.Types : Schema.Types;
815
- const upperVal = val.charAt(0).toUpperCase() + val.substring(1);
816
- isMongooseTypeString = MongooseTypes[upperVal] != null;
817
- }
818
- if (
819
- key !== '_id' &&
820
- ((typeof val !== 'object' && typeof val !== 'function' && !isMongooseTypeString) ||
821
- val == null)
822
- ) {
823
- throw new TypeError(`Invalid schema configuration: \`${val}\` is not ` +
824
- `a valid type at path \`${key}\`. See ` +
825
- 'https://bit.ly/mongoose-schematypes for a list of valid schema types.');
826
- }
827
- if (val instanceof VirtualType || (val.constructor && val.constructor.name || null) === 'VirtualType') {
828
- this.virtual(val);
829
- continue;
830
- }
831
-
832
- if (Array.isArray(val) && val.length === 1 && val[0] == null) {
833
- throw new TypeError('Invalid value for schema Array path `' + fullPath +
834
- '`, got value "' + val[0] + '"');
835
- }
836
-
837
- if (!(isPOJO(val) || val instanceof SchemaTypeOptions)) {
838
- // Special-case: Non-options definitely a path so leaf at this node
839
- // Examples: Schema instances, SchemaType instances
840
- if (prefix) {
841
- this.nested[prefix.substring(0, prefix.length - 1)] = true;
842
- }
843
- this.path(prefix + key, val);
844
- if (val[0] != null && !(val[0].instanceOfSchema) && utils.isPOJO(val[0].discriminators)) {
845
- const schemaType = this.path(prefix + key);
846
- for (const key in val[0].discriminators) {
847
- schemaType.discriminator(key, val[0].discriminators[key]);
848
- }
849
- }
850
- } else if (Object.keys(val).length < 1) {
851
- // Special-case: {} always interpreted as Mixed path so leaf at this node
852
- if (prefix) {
853
- this.nested[prefix.substring(0, prefix.length - 1)] = true;
854
- }
855
- this.path(fullPath, val); // mixed type
856
- } else if (!val[typeKey] || (typeKey === 'type' && isPOJO(val.type) && val.type.type)) {
857
- // Special-case: POJO with no bona-fide type key - interpret as tree of deep paths so recurse
858
- // nested object `{ last: { name: String } }`. Avoid functions with `.type` re: #10807 because
859
- // NestJS sometimes adds `Date.type`.
860
- this.nested[fullPath] = true;
861
- this.add(val, fullPath + '.');
862
- } else {
863
- // There IS a bona-fide type key that may also be a POJO
864
- const _typeDef = val[typeKey];
865
- if (isPOJO(_typeDef) && Object.keys(_typeDef).length > 0) {
866
- // If a POJO is the value of a type key, make it a subdocument
867
- if (prefix) {
868
- this.nested[prefix.substring(0, prefix.length - 1)] = true;
869
- }
870
-
871
- const childSchemaOptions = {};
872
- if (this._userProvidedOptions.typeKey) {
873
- childSchemaOptions.typeKey = this._userProvidedOptions.typeKey;
874
- }
875
- // propagate 'strict' option to child schema
876
- if (this._userProvidedOptions.strict != null) {
877
- childSchemaOptions.strict = this._userProvidedOptions.strict;
878
- }
879
- if (this._userProvidedOptions.toObject != null) {
880
- childSchemaOptions.toObject = utils.omit(this._userProvidedOptions.toObject, ['transform']);
881
- }
882
- if (this._userProvidedOptions.toJSON != null) {
883
- childSchemaOptions.toJSON = utils.omit(this._userProvidedOptions.toJSON, ['transform']);
884
- }
885
-
886
- const _schema = new Schema(_typeDef, childSchemaOptions);
887
- _schema.$implicitlyCreated = true;
888
- const schemaWrappedPath = Object.assign({}, val, { [typeKey]: _schema });
889
- this.path(prefix + key, schemaWrappedPath);
890
- } else {
891
- // Either the type is non-POJO or we interpret it as Mixed anyway
892
- if (prefix) {
893
- this.nested[prefix.substring(0, prefix.length - 1)] = true;
894
- }
895
- this.path(prefix + key, val);
896
- if (val != null && !(val.instanceOfSchema) && utils.isPOJO(val.discriminators)) {
897
- const schemaType = this.path(prefix + key);
898
- for (const key in val.discriminators) {
899
- schemaType.discriminator(key, val.discriminators[key]);
900
- }
901
- }
902
- }
903
- }
904
-
905
- if (val.instanceOfSchema && val.encryptionType() != null) {
906
- // schema.add({ field: <instance of encrypted schema> })
907
- if (this.encryptionType() != val.encryptionType()) {
908
- throw new Error('encryptionType of a nested schema must match the encryption type of the parent schema.');
909
- }
910
-
911
- for (const [encryptedField, encryptedFieldConfig] of Object.entries(val.encryptedFields)) {
912
- const path = fullPath + '.' + encryptedField;
913
- this._addEncryptedField(path, encryptedFieldConfig);
914
- }
915
- } else if (typeof val === 'object' && 'encrypt' in val) {
916
- // schema.add({ field: { type: <schema type>, encrypt: { ... }}})
917
- const { encrypt } = val;
918
-
919
- if (this.encryptionType() == null) {
920
- throw new Error('encryptionType must be provided');
921
- }
922
-
923
- this._addEncryptedField(fullPath, encrypt);
924
- } else {
925
- // if the field was already encrypted and we re-configure it to be unencrypted, remove
926
- // the encrypted field configuration
927
- this._removeEncryptedField(fullPath);
928
- }
929
- }
930
-
931
- const aliasObj = Object.fromEntries(
932
- Object.entries(obj).map(([key]) => ([prefix + key, null]))
933
- );
934
- aliasFields(this, aliasObj);
935
- return this;
936
- };
937
-
938
- /**
939
- * @param {string} path
940
- * @param {object} fieldConfig
941
- *
942
- * @api private
943
- */
944
- Schema.prototype._addEncryptedField = function _addEncryptedField(path, fieldConfig) {
945
- const type = this.path(path).autoEncryptionType();
946
- if (type == null) {
947
- throw new Error(`Invalid BSON type for FLE field: '${path}'`);
948
- }
949
-
950
- this.encryptedFields[path] = clone(fieldConfig);
951
- };
952
-
953
- /**
954
- * @param {string} path
955
- *
956
- * @api private
957
- */
958
- Schema.prototype._removeEncryptedField = function _removeEncryptedField(path) {
959
- delete this.encryptedFields[path];
960
- };
961
-
962
- /**
963
- * @api private
964
- *
965
- * @returns {boolean}
966
- */
967
- Schema.prototype._hasEncryptedFields = function _hasEncryptedFields() {
968
- return Object.keys(this.encryptedFields).length > 0;
969
- };
970
-
971
- /**
972
- * @param {string} path
973
- * @returns {boolean}
974
- *
975
- * @api private
976
- */
977
- Schema.prototype._hasEncryptedField = function _hasEncryptedField(path) {
978
- return path in this.encryptedFields;
979
- };
980
-
981
-
982
- /**
983
- * Builds an encryptedFieldsMap for the schema.
984
- *
985
- * @api private
986
- */
987
- Schema.prototype._buildEncryptedFields = function() {
988
- const fields = Object.entries(this.encryptedFields).map(
989
- ([path, config]) => {
990
- const bsonType = this.path(path).autoEncryptionType();
991
- // { path, bsonType, keyId, queries? }
992
- return { path, bsonType, ...config };
993
- });
994
-
995
- return { fields };
996
- };
997
-
998
- /**
999
- * Builds a schemaMap for the schema, if the schema is configured for client-side field level encryption.
1000
- *
1001
- * @api private
1002
- */
1003
- Schema.prototype._buildSchemaMap = function() {
1004
- /**
1005
- * `schemaMap`s are JSON schemas, which use the following structure to represent objects:
1006
- * { field: { bsonType: 'object', properties: { ... } } }
1007
- *
1008
- * for example, a schema that looks like this `{ a: { b: int32 } }` would be encoded as
1009
- * `{ a: { bsonType: 'object', properties: { b: < encryption configuration > } } }`
1010
- *
1011
- * This function takes an array of path segments, an output object (that gets mutated) and
1012
- * a value to be associated with the full path, and constructs a valid CSFLE JSON schema path for
1013
- * the object. This works for deeply nested properties as well.
1014
- *
1015
- * @param {string[]} path array of path components
1016
- * @param {object} object the object in which to build a JSON schema of `path`'s properties
1017
- * @param {object} value the value to associate with the path in object
1018
- */
1019
- function buildNestedPath(path, object, value) {
1020
- let i = 0, component = path[i];
1021
- for (; i < path.length - 1; ++i, component = path[i]) {
1022
- object[component] = object[component] == null ? {
1023
- bsonType: 'object',
1024
- properties: {}
1025
- } : object[component];
1026
- object = object[component].properties;
1027
- }
1028
- object[component] = value;
1029
- }
1030
-
1031
- const schemaMapPropertyReducer = (accum, [path, propertyConfig]) => {
1032
- const bsonType = this.path(path).autoEncryptionType();
1033
- const pathComponents = path.split('.');
1034
- const configuration = { encrypt: { ...propertyConfig, bsonType } };
1035
- buildNestedPath(pathComponents, accum, configuration);
1036
- return accum;
1037
- };
1038
-
1039
- const properties = Object.entries(this.encryptedFields).reduce(
1040
- schemaMapPropertyReducer,
1041
- {});
1042
-
1043
- return {
1044
- bsonType: 'object',
1045
- properties
1046
- };
1047
- };
1048
-
1049
- /**
1050
- * Add an alias for `path`. This means getting or setting the `alias`
1051
- * is equivalent to getting or setting the `path`.
1052
- *
1053
- * #### Example:
1054
- *
1055
- * const toySchema = new Schema({ n: String });
1056
- *
1057
- * // Make 'name' an alias for 'n'
1058
- * toySchema.alias('n', 'name');
1059
- *
1060
- * const Toy = mongoose.model('Toy', toySchema);
1061
- * const turboMan = new Toy({ n: 'Turbo Man' });
1062
- *
1063
- * turboMan.name; // 'Turbo Man'
1064
- * turboMan.n; // 'Turbo Man'
1065
- *
1066
- * turboMan.name = 'Turbo Man Action Figure';
1067
- * turboMan.n; // 'Turbo Man Action Figure'
1068
- *
1069
- * await turboMan.save(); // Saves { _id: ..., n: 'Turbo Man Action Figure' }
1070
- *
1071
- *
1072
- * @param {String} path real path to alias
1073
- * @param {String|String[]} alias the path(s) to use as an alias for `path`
1074
- * @return {Schema} the Schema instance
1075
- * @api public
1076
- */
1077
-
1078
- Schema.prototype.alias = function alias(path, alias) {
1079
- aliasFields(this, { [path]: alias });
1080
- return this;
1081
- };
1082
-
1083
- /**
1084
- * Remove an index by name or index specification.
1085
- *
1086
- * removeIndex only removes indexes from your schema object. Does **not** affect the indexes
1087
- * in MongoDB.
1088
- *
1089
- * #### Example:
1090
- *
1091
- * const ToySchema = new Schema({ name: String, color: String, price: Number });
1092
- *
1093
- * // Add a new index on { name, color }
1094
- * ToySchema.index({ name: 1, color: 1 });
1095
- *
1096
- * // Remove index on { name, color }
1097
- * // Keep in mind that order matters! `removeIndex({ color: 1, name: 1 })` won't remove the index
1098
- * ToySchema.removeIndex({ name: 1, color: 1 });
1099
- *
1100
- * // Add an index with a custom name
1101
- * ToySchema.index({ color: 1 }, { name: 'my custom index name' });
1102
- * // Remove index by name
1103
- * ToySchema.removeIndex('my custom index name');
1104
- *
1105
- * @param {Object|string} index name or index specification
1106
- * @return {Schema} the Schema instance
1107
- * @api public
1108
- */
1109
-
1110
- Schema.prototype.removeIndex = function removeIndex(index) {
1111
- if (arguments.length > 1) {
1112
- throw new Error('removeIndex() takes only 1 argument');
1113
- }
1114
-
1115
- if (typeof index !== 'object' && typeof index !== 'string') {
1116
- throw new Error('removeIndex() may only take either an object or a string as an argument');
1117
- }
1118
-
1119
- if (typeof index === 'object') {
1120
- for (let i = this._indexes.length - 1; i >= 0; --i) {
1121
- if (isIndexSpecEqual(this._indexes[i][0], index)) {
1122
- this._indexes.splice(i, 1);
1123
- }
1124
- }
1125
- } else {
1126
- for (let i = this._indexes.length - 1; i >= 0; --i) {
1127
- if (this._indexes[i][1] != null && this._indexes[i][1].name === index) {
1128
- this._indexes.splice(i, 1);
1129
- }
1130
- }
1131
- }
1132
-
1133
- return this;
1134
- };
1135
-
1136
- /**
1137
- * Remove all indexes from this schema.
1138
- *
1139
- * clearIndexes only removes indexes from your schema object. Does **not** affect the indexes
1140
- * in MongoDB.
1141
- *
1142
- * #### Example:
1143
- *
1144
- * const ToySchema = new Schema({ name: String, color: String, price: Number });
1145
- * ToySchema.index({ name: 1 });
1146
- * ToySchema.index({ color: 1 });
1147
- *
1148
- * // Remove all indexes on this schema
1149
- * ToySchema.clearIndexes();
1150
- *
1151
- * ToySchema.indexes(); // []
1152
- *
1153
- * @return {Schema} the Schema instance
1154
- * @api public
1155
- */
1156
-
1157
- Schema.prototype.clearIndexes = function clearIndexes() {
1158
- this._indexes.length = 0;
1159
-
1160
- return this;
1161
- };
1162
-
1163
- /**
1164
- * Add an [Atlas search index](https://www.mongodb.com/docs/atlas/atlas-search/create-index/) that Mongoose will create using `Model.createSearchIndex()`.
1165
- * This function only works when connected to MongoDB Atlas.
1166
- *
1167
- * #### Example:
1168
- *
1169
- * const ToySchema = new Schema({ name: String, color: String, price: Number });
1170
- * ToySchema.searchIndex({ name: 'test', definition: { mappings: { dynamic: true } } });
1171
- *
1172
- * @param {Object} description index options, including `name` and `definition`
1173
- * @param {String} description.name
1174
- * @param {Object} description.definition
1175
- * @return {Schema} the Schema instance
1176
- * @api public
1177
- */
1178
-
1179
- Schema.prototype.searchIndex = function searchIndex(description) {
1180
- this._searchIndexes.push(description);
1181
-
1182
- return this;
1183
- };
1184
-
1185
- /**
1186
- * Reserved document keys.
1187
- *
1188
- * Keys in this object are names that are warned in schema declarations
1189
- * because they have the potential to break Mongoose/ Mongoose plugins functionality. If you create a schema
1190
- * using `new Schema()` with one of these property names, Mongoose will log a warning.
1191
- *
1192
- * - _posts
1193
- * - _pres
1194
- * - collection
1195
- * - emit
1196
- * - errors
1197
- * - get
1198
- * - init
1199
- * - isModified
1200
- * - isNew
1201
- * - listeners
1202
- * - modelName
1203
- * - on
1204
- * - once
1205
- * - populated
1206
- * - prototype
1207
- * - remove
1208
- * - removeListener
1209
- * - save
1210
- * - schema
1211
- * - toObject
1212
- * - validate
1213
- *
1214
- * _NOTE:_ Use of these terms as method names is permitted, but play at your own risk, as they may be existing mongoose document methods you are stomping on.
1215
- *
1216
- * const schema = new Schema(..);
1217
- * schema.methods.init = function () {} // potentially breaking
1218
- *
1219
- * @property reserved
1220
- * @memberOf Schema
1221
- * @static
1222
- */
1223
-
1224
- Schema.reserved = Object.create(null);
1225
- Schema.prototype.reserved = Schema.reserved;
1226
-
1227
- const reserved = Schema.reserved;
1228
- // Core object
1229
- reserved['prototype'] =
1230
- // EventEmitter
1231
- reserved.emit =
1232
- reserved.listeners =
1233
- reserved.removeListener =
1234
-
1235
- // document properties and functions
1236
- reserved.collection =
1237
- reserved.errors =
1238
- reserved.get =
1239
- reserved.init =
1240
- reserved.isModified =
1241
- reserved.isNew =
1242
- reserved.populated =
1243
- reserved.remove =
1244
- reserved.save =
1245
- reserved.toObject =
1246
- reserved.validate = 1;
1247
- reserved.collection = 1;
1248
-
1249
- /**
1250
- * Gets/sets schema paths.
1251
- *
1252
- * Sets a path (if arity 2)
1253
- * Gets a path (if arity 1)
1254
- *
1255
- * #### Example:
1256
- *
1257
- * schema.path('name') // returns a SchemaType
1258
- * schema.path('name', Number) // changes the schemaType of `name` to Number
1259
- *
1260
- * @param {String} path The name of the Path to get / set
1261
- * @param {Object} [obj] The Type to set the path to, if provided the path will be SET, otherwise the path will be GET
1262
- * @api public
1263
- */
1264
-
1265
- Schema.prototype.path = function(path, obj) {
1266
- if (obj === undefined) {
1267
- if (this.paths[path] != null) {
1268
- return this.paths[path];
1269
- }
1270
- // Convert to '.$' to check subpaths re: gh-6405
1271
- const cleanPath = _pathToPositionalSyntax(path);
1272
- let schematype = _getPath(this, path, cleanPath);
1273
- if (schematype != null) {
1274
- return schematype;
1275
- }
1276
-
1277
- // Look for maps
1278
- const mapPath = getMapPath(this, path);
1279
- if (mapPath != null) {
1280
- return mapPath;
1281
- }
1282
-
1283
- // Look if a parent of this path is mixed
1284
- schematype = this.hasMixedParent(cleanPath);
1285
- if (schematype != null) {
1286
- return schematype;
1287
- }
1288
-
1289
- // subpaths?
1290
- return hasNumericSubpathRegex.test(path)
1291
- ? getPositionalPath(this, path, cleanPath)
1292
- : undefined;
1293
- }
1294
-
1295
- // some path names conflict with document methods
1296
- const firstPieceOfPath = path.split('.')[0];
1297
- if (reserved[firstPieceOfPath] && !this.options.suppressReservedKeysWarning) {
1298
- const errorMessage = `\`${firstPieceOfPath}\` is a reserved schema pathname and may break some functionality. ` +
1299
- 'You are allowed to use it, but use at your own risk. ' +
1300
- 'To disable this warning pass `suppressReservedKeysWarning` as a schema option.';
1301
-
1302
- utils.warn(errorMessage);
1303
- }
1304
-
1305
- if (typeof obj === 'object' && utils.hasUserDefinedProperty(obj, 'ref')) {
1306
- validateRef(obj.ref, path);
1307
- }
1308
-
1309
- // update the tree
1310
- const subpaths = path.split(/\./);
1311
- const last = subpaths.pop();
1312
- let branch = this.tree;
1313
- let fullPath = '';
1314
-
1315
- for (const sub of subpaths) {
1316
- if (utils.specialProperties.has(sub)) {
1317
- throw new Error('Cannot set special property `' + sub + '` on a schema');
1318
- }
1319
- fullPath = fullPath += (fullPath.length > 0 ? '.' : '') + sub;
1320
- if (!branch[sub]) {
1321
- this.nested[fullPath] = true;
1322
- branch[sub] = {};
1323
- }
1324
- if (typeof branch[sub] !== 'object') {
1325
- const msg = 'Cannot set nested path `' + path + '`. '
1326
- + 'Parent path `'
1327
- + fullPath
1328
- + '` already set to type ' + branch[sub].name
1329
- + '.';
1330
- throw new Error(msg);
1331
- }
1332
- branch = branch[sub];
1333
- }
1334
-
1335
- branch[last] = clone(obj);
1336
-
1337
- this.paths[path] = this.interpretAsType(path, obj, this.options);
1338
- const schemaType = this.paths[path];
1339
-
1340
- // If overwriting an existing path, make sure to clear the childSchemas
1341
- this.childSchemas = this.childSchemas.filter(childSchema => childSchema.path !== path);
1342
-
1343
- if (schemaType.$isSchemaMap) {
1344
- // Maps can have arbitrary keys, so `$*` is internal shorthand for "any key"
1345
- // The '$' is to imply this path should never be stored in MongoDB so we
1346
- // can easily build a regexp out of this path, and '*' to imply "any key."
1347
- const mapPath = path + '.$*';
1348
-
1349
- this.paths[mapPath] = schemaType.$__schemaType;
1350
- this.mapPaths.push(this.paths[mapPath]);
1351
- if (schemaType.$__schemaType.$isSingleNested) {
1352
- this.childSchemas.push({
1353
- schema: schemaType.$__schemaType.schema,
1354
- model: schemaType.$__schemaType.Constructor,
1355
- path: path
1356
- });
1357
- }
1358
- }
1359
-
1360
- if (schemaType.$isSingleNested) {
1361
- for (const key of Object.keys(schemaType.schema.paths)) {
1362
- this.singleNestedPaths[path + '.' + key] = schemaType.schema.paths[key];
1363
- }
1364
- for (const key of Object.keys(schemaType.schema.singleNestedPaths)) {
1365
- this.singleNestedPaths[path + '.' + key] =
1366
- schemaType.schema.singleNestedPaths[key];
1367
- }
1368
- for (const key of Object.keys(schemaType.schema.subpaths)) {
1369
- this.singleNestedPaths[path + '.' + key] =
1370
- schemaType.schema.subpaths[key];
1371
- }
1372
- for (const key of Object.keys(schemaType.schema.nested)) {
1373
- this.singleNestedPaths[path + '.' + key] = 'nested';
1374
- }
1375
-
1376
- Object.defineProperty(schemaType.schema, 'base', {
1377
- configurable: true,
1378
- enumerable: false,
1379
- writable: false,
1380
- value: this.base
1381
- });
1382
-
1383
- schemaType.Constructor.base = this.base;
1384
- this.childSchemas.push({
1385
- schema: schemaType.schema,
1386
- model: schemaType.Constructor,
1387
- path: path
1388
- });
1389
- } else if (schemaType.$isMongooseDocumentArray) {
1390
- Object.defineProperty(schemaType.schema, 'base', {
1391
- configurable: true,
1392
- enumerable: false,
1393
- writable: false,
1394
- value: this.base
1395
- });
1396
-
1397
- schemaType.Constructor.base = this.base;
1398
- this.childSchemas.push({
1399
- schema: schemaType.schema,
1400
- model: schemaType.Constructor,
1401
- path: path
1402
- });
1403
- }
1404
-
1405
- if (schemaType.$isMongooseArray && !schemaType.$isMongooseDocumentArray) {
1406
- let arrayPath = path;
1407
- let _schemaType = schemaType;
1408
-
1409
- const toAdd = [];
1410
- while (_schemaType.$isMongooseArray) {
1411
- arrayPath = arrayPath + '.$';
1412
-
1413
- _schemaType.embeddedSchemaType._arrayPath = arrayPath;
1414
- _schemaType.embeddedSchemaType._arrayParentPath = path;
1415
- _schemaType = _schemaType.embeddedSchemaType;
1416
-
1417
- this.subpaths[arrayPath] = _schemaType;
1418
- }
1419
-
1420
- for (const _schemaType of toAdd) {
1421
- this.subpaths[_schemaType.path] = _schemaType;
1422
- }
1423
- }
1424
-
1425
- if (schemaType.$isMongooseDocumentArray) {
1426
- for (const key of Object.keys(schemaType.schema.paths)) {
1427
- const _schemaType = schemaType.schema.paths[key];
1428
- this.subpaths[path + '.' + key] = _schemaType;
1429
- if (typeof _schemaType === 'object' && _schemaType != null && _schemaType.$parentSchemaDocArray == null) {
1430
- _schemaType.$parentSchemaDocArray = schemaType;
1431
- }
1432
- }
1433
- for (const key of Object.keys(schemaType.schema.subpaths)) {
1434
- const _schemaType = schemaType.schema.subpaths[key];
1435
- this.subpaths[path + '.' + key] = _schemaType;
1436
- if (typeof _schemaType === 'object' && _schemaType != null && _schemaType.$parentSchemaDocArray == null) {
1437
- _schemaType.$parentSchemaDocArray = schemaType;
1438
- }
1439
- }
1440
- for (const key of Object.keys(schemaType.schema.singleNestedPaths)) {
1441
- const _schemaType = schemaType.schema.singleNestedPaths[key];
1442
- this.subpaths[path + '.' + key] = _schemaType;
1443
- if (typeof _schemaType === 'object' && _schemaType != null && _schemaType.$parentSchemaDocArray == null) {
1444
- _schemaType.$parentSchemaDocArray = schemaType;
1445
- }
1446
- }
1447
- }
1448
-
1449
- return this;
1450
- };
1451
-
1452
- /*!
1453
- * ignore
1454
- */
1455
-
1456
- Schema.prototype._gatherChildSchemas = function _gatherChildSchemas() {
1457
- const childSchemas = [];
1458
-
1459
- for (const path of Object.keys(this.paths)) {
1460
- if (typeof path !== 'string') {
1461
- continue;
1462
- }
1463
- const schematype = this.paths[path];
1464
- if (schematype.$isMongooseDocumentArray || schematype.$isSingleNested) {
1465
- childSchemas.push({
1466
- schema: schematype.schema,
1467
- model: schematype.Constructor,
1468
- path: path
1469
- });
1470
- } else if (schematype.$isSchemaMap && schematype.$__schemaType.$isSingleNested) {
1471
- childSchemas.push({
1472
- schema: schematype.$__schemaType.schema,
1473
- model: schematype.$__schemaType.Constructor,
1474
- path: path
1475
- });
1476
- }
1477
- }
1478
-
1479
- this.childSchemas = childSchemas;
1480
- return childSchemas;
1481
- };
1482
-
1483
- /*!
1484
- * ignore
1485
- */
1486
-
1487
- function _getPath(schema, path, cleanPath) {
1488
- if (Object.hasOwn(schema.paths, path)) {
1489
- return schema.paths[path];
1490
- }
1491
- if (Object.hasOwn(schema.subpaths, cleanPath)) {
1492
- const subpath = schema.subpaths[cleanPath];
1493
- if (subpath === 'nested') {
1494
- return undefined;
1495
- }
1496
- return subpath;
1497
- }
1498
- if (Object.hasOwn(schema.singleNestedPaths, cleanPath) && typeof schema.singleNestedPaths[cleanPath] === 'object') {
1499
- const singleNestedPath = schema.singleNestedPaths[cleanPath];
1500
- if (singleNestedPath === 'nested') {
1501
- return undefined;
1502
- }
1503
- return singleNestedPath;
1504
- }
1505
-
1506
- return null;
1507
- }
1508
-
1509
- /*!
1510
- * ignore
1511
- */
1512
-
1513
- function _pathToPositionalSyntax(path) {
1514
- if (!/\.\d+/.test(path)) {
1515
- return path;
1516
- }
1517
- return path.replace(/\.\d+\./g, '.$.').replace(/\.\d+$/, '.$');
1518
- }
1519
-
1520
- /*!
1521
- * ignore
1522
- */
1523
-
1524
- function getMapPath(schema, path) {
1525
- if (schema.mapPaths.length === 0) {
1526
- return null;
1527
- }
1528
- for (const val of schema.mapPaths) {
1529
- const cleanPath = val.path.replace(/\.\$\*/g, '');
1530
- if (path === cleanPath || (path.startsWith(cleanPath + '.') && path.slice(cleanPath.length + 1).indexOf('.') === -1)) {
1531
- return val;
1532
- } else if (val.schema && path.startsWith(cleanPath + '.')) {
1533
- let remnant = path.slice(cleanPath.length + 1);
1534
- remnant = remnant.slice(remnant.indexOf('.') + 1);
1535
- return val.schema.paths[remnant];
1536
- } else if (val.$isSchemaMap && path.startsWith(cleanPath + '.')) {
1537
- let remnant = path.slice(cleanPath.length + 1);
1538
- remnant = remnant.slice(remnant.indexOf('.') + 1);
1539
- const presplitPath = val.$__schemaType._presplitPath;
1540
- if (remnant.indexOf('.') === -1 && presplitPath[presplitPath.length - 1] === '$*') {
1541
- // Handle map of map of primitives
1542
- return val.$__schemaType;
1543
- } else if (remnant.indexOf('.') !== -1 && val.$__schemaType.schema && presplitPath[presplitPath.length - 1] === '$*') {
1544
- // map of map of subdocs (recursive)
1545
- return val.$__schemaType.schema.path(remnant.slice(remnant.indexOf('.') + 1));
1546
- }
1547
- }
1548
- }
1549
-
1550
- return null;
1551
- }
1552
-
1553
- /**
1554
- * The Mongoose instance this schema is associated with
1555
- *
1556
- * @property base
1557
- * @api private
1558
- */
1559
-
1560
- Object.defineProperty(Schema.prototype, 'base', {
1561
- configurable: true,
1562
- enumerable: false,
1563
- writable: true,
1564
- value: null
1565
- });
1566
-
1567
- /**
1568
- * Converts type arguments into Mongoose Types.
1569
- *
1570
- * @param {String} path
1571
- * @param {Object} obj constructor
1572
- * @param {Object} options schema options
1573
- * @api private
1574
- */
1575
-
1576
- Schema.prototype.interpretAsType = function(path, obj, options) {
1577
- if (obj instanceof SchemaType) {
1578
- if (obj.path === path) {
1579
- return obj;
1580
- }
1581
- const clone = obj.clone();
1582
- clone.path = path;
1583
- return clone;
1584
- }
1585
-
1586
- // If this schema has an associated Mongoose object, use the Mongoose object's
1587
- // copy of SchemaTypes re: gh-7158 gh-6933
1588
- const MongooseTypes = this.base != null ? this.base.Schema.Types : Schema.Types;
1589
- const Types = this.base != null ? this.base.Types : require('./types');
1590
-
1591
- if (!utils.isPOJO(obj) && !(obj instanceof SchemaTypeOptions)) {
1592
- const constructorName = utils.getFunctionName(obj.constructor);
1593
- if (constructorName !== 'Object') {
1594
- const oldObj = obj;
1595
- obj = {};
1596
- obj[options.typeKey] = oldObj;
1597
- }
1598
- }
1599
-
1600
- // Get the type making sure to allow keys named "type"
1601
- // and default to mixed if not specified.
1602
- // { type: { type: String, default: 'freshcut' } }
1603
- let type = obj[options.typeKey] && (obj[options.typeKey] instanceof Function || options.typeKey !== 'type' || !obj.type.type)
1604
- ? obj[options.typeKey]
1605
- : {};
1606
-
1607
- if (type instanceof SchemaType) {
1608
- if (type.path === path) {
1609
- return type;
1610
- }
1611
- const clone = type.clone();
1612
- clone.path = path;
1613
- return clone;
1614
- }
1615
-
1616
- let name;
1617
-
1618
- if (utils.isPOJO(type) || type === 'mixed') {
1619
- return new MongooseTypes.Mixed(path, obj, null, this);
1620
- }
1621
-
1622
- if (Array.isArray(type) || type === Array || type === 'array' || type === MongooseTypes.Array) {
1623
- // if it was specified through { type } look for `cast`
1624
- let cast = (type === Array || type === 'array')
1625
- ? obj.cast || obj.of
1626
- : type[0];
1627
-
1628
- // new Schema({ path: [new Schema({ ... })] })
1629
- if (cast && cast.instanceOfSchema) {
1630
- if (!(cast instanceof Schema)) {
1631
- if (this.options._isMerging) {
1632
- cast = new Schema(cast);
1633
- } else {
1634
- throw new TypeError('Schema for array path `' + path +
1635
- '` is from a different copy of the Mongoose module. ' +
1636
- 'Please make sure you\'re using the same version ' +
1637
- 'of Mongoose everywhere with `npm list mongoose`. If you are still ' +
1638
- 'getting this error, please add `new Schema()` around the path: ' +
1639
- `${path}: new Schema(...)`);
1640
- }
1641
- }
1642
- return new MongooseTypes.DocumentArray(path, cast, obj, null, this);
1643
- }
1644
- if (cast &&
1645
- cast[options.typeKey] &&
1646
- cast[options.typeKey].instanceOfSchema) {
1647
- if (!(cast[options.typeKey] instanceof Schema)) {
1648
- if (this.options._isMerging) {
1649
- cast[options.typeKey] = new Schema(cast[options.typeKey]);
1650
- } else {
1651
- throw new TypeError('Schema for array path `' + path +
1652
- '` is from a different copy of the Mongoose module. ' +
1653
- 'Please make sure you\'re using the same version ' +
1654
- 'of Mongoose everywhere with `npm list mongoose`. If you are still ' +
1655
- 'getting this error, please add `new Schema()` around the path: ' +
1656
- `${path}: new Schema(...)`);
1657
- }
1658
- }
1659
- return new MongooseTypes.DocumentArray(path, cast[options.typeKey], obj, cast, this);
1660
- }
1661
- if (typeof cast !== 'undefined') {
1662
- if (Array.isArray(cast) || cast.type === Array || cast.type == 'Array') {
1663
- if (cast && cast.type == 'Array') {
1664
- cast.type = Array;
1665
- }
1666
- return new MongooseTypes.Array(path, this.interpretAsType(path, cast, options), obj, null, this);
1667
- }
1668
- }
1669
-
1670
- // Handle both `new Schema({ arr: [{ subpath: String }] })` and `new Schema({ arr: [{ type: { subpath: string } }] })`
1671
- const castFromTypeKey = (cast != null && cast[options.typeKey] && (options.typeKey !== 'type' || !cast.type.type)) ?
1672
- cast[options.typeKey] :
1673
- cast;
1674
- if (typeof cast === 'string') {
1675
- cast = MongooseTypes[cast.charAt(0).toUpperCase() + cast.substring(1)];
1676
- } else if (utils.isPOJO(castFromTypeKey)) {
1677
- if (Object.keys(castFromTypeKey).length) {
1678
- // The `minimize` and `typeKey` options propagate to child schemas
1679
- // declared inline, like `{ arr: [{ val: { $type: String } }] }`.
1680
- // See gh-3560
1681
- const childSchemaOptions = { minimize: options.minimize };
1682
- if (options.typeKey) {
1683
- childSchemaOptions.typeKey = options.typeKey;
1684
- }
1685
- // propagate 'strict' option to child schema
1686
- if (Object.hasOwn(options, 'strict')) {
1687
- childSchemaOptions.strict = options.strict;
1688
- }
1689
- if (Object.hasOwn(options, 'strictQuery')) {
1690
- childSchemaOptions.strictQuery = options.strictQuery;
1691
- }
1692
- if (Object.hasOwn(options, 'toObject')) {
1693
- childSchemaOptions.toObject = utils.omit(options.toObject, ['transform']);
1694
- }
1695
- if (Object.hasOwn(options, 'toJSON')) {
1696
- childSchemaOptions.toJSON = utils.omit(options.toJSON, ['transform']);
1697
- }
1698
-
1699
- if (Object.hasOwn(this._userProvidedOptions, '_id')) {
1700
- childSchemaOptions._id = this._userProvidedOptions._id;
1701
- } else if (Schema.Types.DocumentArray.defaultOptions._id != null) {
1702
- childSchemaOptions._id = Schema.Types.DocumentArray.defaultOptions._id;
1703
- }
1704
-
1705
- const childSchema = new Schema(castFromTypeKey, childSchemaOptions);
1706
- childSchema.$implicitlyCreated = true;
1707
- return new MongooseTypes.DocumentArray(path, childSchema, obj, null, this);
1708
- } else {
1709
- // Special case: empty object becomes mixed
1710
- return new MongooseTypes.Array(path, MongooseTypes.Mixed, obj, null, this);
1711
- }
1712
- }
1713
-
1714
- if (cast) {
1715
- type = cast[options.typeKey] && (options.typeKey !== 'type' || !cast.type.type)
1716
- ? cast[options.typeKey]
1717
- : cast;
1718
- if (Array.isArray(type)) {
1719
- return new MongooseTypes.Array(path, this.interpretAsType(path, type, options), obj, null, this);
1720
- }
1721
-
1722
- name = typeof type === 'string'
1723
- ? type
1724
- : type.schemaName || utils.getFunctionName(type);
1725
-
1726
- // For Jest 26+, see #10296
1727
- if (name === 'ClockDate') {
1728
- name = 'Date';
1729
- }
1730
-
1731
- if (name === void 0) {
1732
- throw new TypeError('Invalid schema configuration: ' +
1733
- `Could not determine the embedded type for array \`${path}\`. ` +
1734
- 'See https://mongoosejs.com/docs/guide.html#definition for more info on supported schema syntaxes.');
1735
- }
1736
- if (!Object.hasOwn(MongooseTypes, name)) {
1737
- throw new TypeError('Invalid schema configuration: ' +
1738
- `\`${name}\` is not a valid type within the array \`${path}\`.` +
1739
- 'See https://bit.ly/mongoose-schematypes for a list of valid schema types.');
1740
- }
1741
-
1742
- if (name === 'Union' && typeof cast === 'object') {
1743
- cast.parentSchema = this;
1744
- }
1745
- }
1746
-
1747
- return new MongooseTypes.Array(path, cast || MongooseTypes.Mixed, obj, options, this);
1748
- }
1749
-
1750
- if (type && type.instanceOfSchema) {
1751
- return new MongooseTypes.Subdocument(type, path, obj, this);
1752
- }
1753
-
1754
- if (Buffer.isBuffer(type)) {
1755
- name = 'Buffer';
1756
- } else if (typeof type === 'function' || typeof type === 'object') {
1757
- name = type.schemaName || utils.getFunctionName(type);
1758
- } else if (type === Types.ObjectId) {
1759
- name = 'ObjectId';
1760
- } else if (type === Types.Decimal128) {
1761
- name = 'Decimal128';
1762
- } else {
1763
- name = type == null ? '' + type : type.toString();
1764
- }
1765
-
1766
- if (name) {
1767
- name = name.charAt(0).toUpperCase() + name.substring(1);
1768
- }
1769
- // Special case re: gh-7049 because the bson `ObjectID` class' capitalization
1770
- // doesn't line up with Mongoose's.
1771
- if (name === 'ObjectID') {
1772
- name = 'ObjectId';
1773
- }
1774
- // For Jest 26+, see #10296
1775
- if (name === 'ClockDate') {
1776
- name = 'Date';
1777
- }
1778
-
1779
- if (name === void 0) {
1780
- throw new TypeError(`Invalid schema configuration: \`${path}\` schematype definition is ` +
1781
- 'invalid. See ' +
1782
- 'https://mongoosejs.com/docs/guide.html#definition for more info on supported schema syntaxes.');
1783
- }
1784
- if (MongooseTypes[name] == null) {
1785
- throw new TypeError(`Invalid schema configuration: \`${name}\` is not ` +
1786
- `a valid type at path \`${path}\`. See ` +
1787
- 'https://bit.ly/mongoose-schematypes for a list of valid schema types.');
1788
- }
1789
-
1790
- const schemaType = new MongooseTypes[name](path, obj, options, this);
1791
-
1792
- return schemaType;
1793
- };
1794
-
1795
- /**
1796
- * Iterates the schemas paths similar to Array#forEach.
1797
- *
1798
- * The callback is passed the pathname and the schemaType instance.
1799
- *
1800
- * #### Example:
1801
- *
1802
- * const userSchema = new Schema({ name: String, registeredAt: Date });
1803
- * userSchema.eachPath((pathname, schematype) => {
1804
- * // Prints twice:
1805
- * // name SchemaString { ... }
1806
- * // registeredAt SchemaDate { ... }
1807
- * console.log(pathname, schematype);
1808
- * });
1809
- *
1810
- * @param {Function} fn callback function
1811
- * @return {Schema} this
1812
- * @api public
1813
- */
1814
-
1815
- Schema.prototype.eachPath = function(fn) {
1816
- const keys = Object.keys(this.paths);
1817
- const len = keys.length;
1818
-
1819
- for (let i = 0; i < len; ++i) {
1820
- fn(keys[i], this.paths[keys[i]]);
1821
- }
1822
-
1823
- return this;
1824
- };
1825
-
1826
- /**
1827
- * Returns an Array of path strings that are required by this schema.
1828
- *
1829
- * #### Example:
1830
- *
1831
- * const s = new Schema({
1832
- * name: { type: String, required: true },
1833
- * age: { type: String, required: true },
1834
- * notes: String
1835
- * });
1836
- * s.requiredPaths(); // [ 'age', 'name' ]
1837
- *
1838
- * @api public
1839
- * @param {Boolean} invalidate Refresh the cache
1840
- * @return {Array}
1841
- */
1842
-
1843
- Schema.prototype.requiredPaths = function requiredPaths(invalidate) {
1844
- if (this._requiredpaths && !invalidate) {
1845
- return this._requiredpaths;
1846
- }
1847
-
1848
- const paths = Object.keys(this.paths);
1849
- let i = paths.length;
1850
- const ret = [];
1851
-
1852
- while (i--) {
1853
- const path = paths[i];
1854
- if (this.paths[path].isRequired) {
1855
- ret.push(path);
1856
- }
1857
- }
1858
- this._requiredpaths = ret;
1859
- return this._requiredpaths;
1860
- };
1861
-
1862
- /**
1863
- * Returns indexes from fields and schema-level indexes (cached).
1864
- *
1865
- * @api private
1866
- * @return {Array}
1867
- */
1868
-
1869
- Schema.prototype.indexedPaths = function indexedPaths() {
1870
- if (this._indexedpaths) {
1871
- return this._indexedpaths;
1872
- }
1873
- this._indexedpaths = this.indexes();
1874
- return this._indexedpaths;
1875
- };
1876
-
1877
- /**
1878
- * Returns the pathType of `path` for this schema.
1879
- *
1880
- * Given a path, returns whether it is a real, virtual, nested, or ad-hoc/undefined path.
1881
- *
1882
- * #### Example:
1883
- *
1884
- * const s = new Schema({ name: String, nested: { foo: String } });
1885
- * s.virtual('foo').get(() => 42);
1886
- * s.pathType('name'); // "real"
1887
- * s.pathType('nested'); // "nested"
1888
- * s.pathType('foo'); // "virtual"
1889
- * s.pathType('fail'); // "adhocOrUndefined"
1890
- *
1891
- * @param {String} path
1892
- * @return {String}
1893
- * @api public
1894
- */
1895
-
1896
- Schema.prototype.pathType = function(path) {
1897
- if (Object.hasOwn(this.paths, path)) {
1898
- return 'real';
1899
- }
1900
- if (Object.hasOwn(this.virtuals, path)) {
1901
- return 'virtual';
1902
- }
1903
- if (Object.hasOwn(this.nested, path)) {
1904
- return 'nested';
1905
- }
1906
-
1907
- // Convert to '.$' to check subpaths re: gh-6405
1908
- const cleanPath = _pathToPositionalSyntax(path);
1909
-
1910
- if (Object.hasOwn(this.subpaths, cleanPath) || Object.hasOwn(this.subpaths, path)) {
1911
- return 'real';
1912
- }
1913
-
1914
- const singleNestedPath = Object.hasOwn(this.singleNestedPaths, cleanPath) || Object.hasOwn(this.singleNestedPaths, path);
1915
- if (singleNestedPath) {
1916
- return singleNestedPath === 'nested' ? 'nested' : 'real';
1917
- }
1918
-
1919
- // Look for maps
1920
- const mapPath = getMapPath(this, path);
1921
- if (mapPath != null) {
1922
- return 'real';
1923
- }
1924
-
1925
- if (/\.\d+\.|\.\d+$/.test(path)) {
1926
- return getPositionalPathType(this, path, cleanPath);
1927
- }
1928
- return 'adhocOrUndefined';
1929
- };
1930
-
1931
- /**
1932
- * Returns true iff this path is a child of a mixed schema.
1933
- *
1934
- * @param {String} path
1935
- * @return {Boolean}
1936
- * @api private
1937
- */
1938
-
1939
- Schema.prototype.hasMixedParent = function(path) {
1940
- const subpaths = path.split(/\./g);
1941
- path = '';
1942
- for (let i = 0; i < subpaths.length; ++i) {
1943
- path = i > 0 ? path + '.' + subpaths[i] : subpaths[i];
1944
- if (Object.hasOwn(this.paths, path) &&
1945
- this.paths[path] instanceof MongooseTypes.Mixed) {
1946
- return this.paths[path];
1947
- }
1948
- }
1949
-
1950
- return null;
1951
- };
1952
-
1953
- /**
1954
- * Setup updatedAt and createdAt timestamps to documents if enabled
1955
- *
1956
- * @param {Boolean|Object} timestamps timestamps options
1957
- * @api private
1958
- */
1959
- Schema.prototype.setupTimestamp = function(timestamps) {
1960
- return setupTimestamps(this, timestamps);
1961
- };
1962
-
1963
- /**
1964
- * ignore. Deprecated re: #6405
1965
- * @param {Any} self
1966
- * @param {String} path
1967
- * @api private
1968
- */
1969
-
1970
- function getPositionalPathType(self, path, cleanPath) {
1971
- const subpaths = path.split(/\.(\d+)\.|\.(\d+)$/).filter(Boolean);
1972
- if (subpaths.length < 2) {
1973
- return Object.hasOwn(self.paths, subpaths[0]) ?
1974
- self.paths[subpaths[0]] :
1975
- 'adhocOrUndefined';
1976
- }
1977
-
1978
- let val = self.path(subpaths[0]);
1979
- let isNested = false;
1980
- if (!val) {
1981
- return 'adhocOrUndefined';
1982
- }
1983
-
1984
- const last = subpaths.length - 1;
1985
-
1986
- for (let i = 1; i < subpaths.length; ++i) {
1987
- isNested = false;
1988
- const subpath = subpaths[i];
1989
-
1990
- if (i === last && val && !/\D/.test(subpath)) {
1991
- if (val.$isMongooseDocumentArray) {
1992
- val = val.embeddedSchemaType;
1993
- } else if (val instanceof MongooseTypes.Array) {
1994
- // StringSchema, NumberSchema, etc
1995
- val = val.embeddedSchemaType;
1996
- } else {
1997
- val = undefined;
1998
- }
1999
- break;
2000
- }
2001
-
2002
- // ignore if its just a position segment: path.0.subpath
2003
- if (!/\D/.test(subpath)) {
2004
- // Nested array
2005
- if (val instanceof MongooseTypes.Array && i !== last) {
2006
- val = val.embeddedSchemaType;
2007
- }
2008
- continue;
2009
- }
2010
-
2011
- if (!(val && val.schema)) {
2012
- val = undefined;
2013
- break;
2014
- }
2015
-
2016
- const type = val.schema.pathType(subpath);
2017
- isNested = (type === 'nested');
2018
- val = val.schema.path(subpath);
2019
- }
2020
-
2021
- self.subpaths[cleanPath] = val;
2022
- if (val) {
2023
- return 'real';
2024
- }
2025
- if (isNested) {
2026
- return 'nested';
2027
- }
2028
- return 'adhocOrUndefined';
2029
- }
2030
-
2031
-
2032
- /*!
2033
- * ignore
2034
- */
2035
-
2036
- function getPositionalPath(self, path, cleanPath) {
2037
- getPositionalPathType(self, path, cleanPath);
2038
- return self.subpaths[cleanPath];
2039
- }
2040
-
2041
- /**
2042
- * Adds a method call to the queue.
2043
- *
2044
- * #### Example:
2045
- *
2046
- * schema.methods.print = function() { console.log(this); };
2047
- * schema.queue('print', []); // Print the doc every one is instantiated
2048
- *
2049
- * const Model = mongoose.model('Test', schema);
2050
- * new Model({ name: 'test' }); // Prints '{"_id": ..., "name": "test" }'
2051
- *
2052
- * @param {String} name name of the document method to call later
2053
- * @param {Array} args arguments to pass to the method
2054
- * @api public
2055
- */
2056
-
2057
- Schema.prototype.queue = function(name, args) {
2058
- this.callQueue.push([name, args]);
2059
- return this;
2060
- };
2061
-
2062
- /**
2063
- * Defines a pre hook for the model.
2064
- *
2065
- * #### Example:
2066
- *
2067
- * const toySchema = new Schema({ name: String, created: Date });
2068
- *
2069
- * toySchema.pre('save', function() {
2070
- * if (!this.created) this.created = new Date;
2071
- * });
2072
- *
2073
- * toySchema.pre('validate', function() {
2074
- * if (this.name !== 'Woody') this.name = 'Woody';
2075
- * });
2076
- *
2077
- * // Equivalent to calling `pre()` on `find`, `findOne`, `findOneAndUpdate`.
2078
- * toySchema.pre(/^find/, function() {
2079
- * console.log(this.getFilter());
2080
- * });
2081
- *
2082
- * // Equivalent to calling `pre()` on `updateOne`, `findOneAndUpdate`.
2083
- * toySchema.pre(['updateOne', 'findOneAndUpdate'], function() {
2084
- * console.log(this.getFilter());
2085
- * });
2086
- *
2087
- * toySchema.pre('deleteOne', function() {
2088
- * // Runs when you call `Toy.deleteOne()`
2089
- * });
2090
- *
2091
- * toySchema.pre('deleteOne', { document: true }, function() {
2092
- * // Runs when you call `doc.deleteOne()`
2093
- * });
2094
- *
2095
- * @param {String|RegExp|String[]} methodName The method name or regular expression to match method name
2096
- * @param {Object} [options]
2097
- * @param {Boolean} [options.document] If `name` is a hook for both document and query middleware, set to `true` to run on document middleware. For example, set `options.document` to `true` to apply this hook to `Document#deleteOne()` rather than `Query#deleteOne()`.
2098
- * @param {Boolean} [options.query] If `name` is a hook for both document and query middleware, set to `true` to run on query middleware.
2099
- * @param {Function} callback
2100
- * @api public
2101
- */
2102
-
2103
- Schema.prototype.pre = function(name) {
2104
- if (name instanceof RegExp) {
2105
- const remainingArgs = Array.prototype.slice.call(arguments, 1);
2106
- for (const fn of hookNames) {
2107
- if (name.test(fn)) {
2108
- this.pre.apply(this, [fn].concat(remainingArgs));
2109
- }
2110
- }
2111
- return this;
2112
- }
2113
- if (Array.isArray(name)) {
2114
- const remainingArgs = Array.prototype.slice.call(arguments, 1);
2115
- for (const el of name) {
2116
- this.pre.apply(this, [el].concat(remainingArgs));
2117
- }
2118
- return this;
2119
- }
2120
- this.s.hooks.pre.apply(this.s.hooks, arguments);
2121
- return this;
2122
- };
2123
-
2124
- /**
2125
- * Defines a post hook for the document
2126
- *
2127
- * const schema = new Schema(..);
2128
- * schema.post('save', function (doc) {
2129
- * console.log('this fired after a document was saved');
2130
- * });
2131
- *
2132
- * schema.post('find', function(docs) {
2133
- * console.log('this fired after you ran a find query');
2134
- * });
2135
- *
2136
- * schema.post(/Many$/, function(res) {
2137
- * console.log('this fired after you ran `updateMany()` or `deleteMany()`');
2138
- * });
2139
- *
2140
- * const Model = mongoose.model('Model', schema);
2141
- *
2142
- * const m = new Model(..);
2143
- * await m.save();
2144
- * console.log('this fires after the `post` hook');
2145
- *
2146
- * await m.find();
2147
- * console.log('this fires after the post find hook');
2148
- *
2149
- * @param {String|RegExp|String[]} methodName The method name or regular expression to match method name
2150
- * @param {Object} [options]
2151
- * @param {Boolean} [options.document] If `name` is a hook for both document and query middleware, set to `true` to run on document middleware.
2152
- * @param {Boolean} [options.query] If `name` is a hook for both document and query middleware, set to `true` to run on query middleware.
2153
- * @param {Function} fn callback
2154
- * @see middleware https://mongoosejs.com/docs/middleware.html
2155
- * @see kareem https://npmjs.org/package/kareem
2156
- * @api public
2157
- */
2158
-
2159
- Schema.prototype.post = function(name) {
2160
- if (name instanceof RegExp) {
2161
- const remainingArgs = Array.prototype.slice.call(arguments, 1);
2162
- for (const fn of hookNames) {
2163
- if (name.test(fn)) {
2164
- this.post.apply(this, [fn].concat(remainingArgs));
2165
- }
2166
- }
2167
- return this;
2168
- }
2169
- if (Array.isArray(name)) {
2170
- const remainingArgs = Array.prototype.slice.call(arguments, 1);
2171
- for (const el of name) {
2172
- this.post.apply(this, [el].concat(remainingArgs));
2173
- }
2174
- return this;
2175
- }
2176
- this.s.hooks.post.apply(this.s.hooks, arguments);
2177
- return this;
2178
- };
2179
-
2180
- /**
2181
- * Registers a plugin for this schema.
2182
- *
2183
- * #### Example:
2184
- *
2185
- * const s = new Schema({ name: String });
2186
- * s.plugin(schema => console.log(schema.path('name').path));
2187
- * mongoose.model('Test', s); // Prints 'name'
2188
- *
2189
- * Or with Options:
2190
- *
2191
- * const s = new Schema({ name: String });
2192
- * s.plugin((schema, opts) => console.log(opts.text, schema.path('name').path), { text: "Schema Path Name:" });
2193
- * mongoose.model('Test', s); // Prints 'Schema Path Name: name'
2194
- *
2195
- * @param {Function} plugin The Plugin's callback
2196
- * @param {Object} [opts] Options to pass to the plugin
2197
- * @param {Boolean} [opts.deduplicate=false] If true, ignore duplicate plugins (same `fn` argument using `===`)
2198
- * @see plugins https://mongoosejs.com/docs/plugins.html
2199
- * @api public
2200
- */
2201
-
2202
- Schema.prototype.plugin = function(fn, opts) {
2203
- if (typeof fn !== 'function') {
2204
- throw new Error('First param to `schema.plugin()` must be a function, ' +
2205
- 'got "' + (typeof fn) + '"');
2206
- }
2207
-
2208
-
2209
- if (opts && opts.deduplicate) {
2210
- for (const plugin of this.plugins) {
2211
- if (plugin.fn === fn) {
2212
- return this;
2213
- }
2214
- }
2215
- }
2216
- this.plugins.push({ fn: fn, opts: opts });
2217
-
2218
- fn(this, opts);
2219
- return this;
2220
- };
2221
-
2222
- /**
2223
- * Adds an instance method to documents constructed from Models compiled from this schema.
2224
- *
2225
- * #### Example:
2226
- *
2227
- * const schema = kittySchema = new Schema(..);
2228
- *
2229
- * schema.method('meow', function () {
2230
- * console.log('meeeeeoooooooooooow');
2231
- * })
2232
- *
2233
- * const Kitty = mongoose.model('Kitty', schema);
2234
- *
2235
- * const fizz = new Kitty;
2236
- * fizz.meow(); // meeeeeooooooooooooow
2237
- *
2238
- * If a hash of name/fn pairs is passed as the only argument, each name/fn pair will be added as methods.
2239
- *
2240
- * schema.method({
2241
- * purr: function () {}
2242
- * , scratch: function () {}
2243
- * });
2244
- *
2245
- * // later
2246
- * const fizz = new Kitty;
2247
- * fizz.purr();
2248
- * fizz.scratch();
2249
- *
2250
- * NOTE: `Schema.method()` adds instance methods to the `Schema.methods` object. You can also add instance methods directly to the `Schema.methods` object as seen in the [guide](https://mongoosejs.com/docs/guide.html#methods)
2251
- *
2252
- * @param {String|Object} name The Method Name for a single function, or a Object of "string-function" pairs.
2253
- * @param {Function} [fn] The Function in a single-function definition.
2254
- * @api public
2255
- */
2256
-
2257
- Schema.prototype.method = function(name, fn, options) {
2258
- if (typeof name !== 'string') {
2259
- for (const i in name) {
2260
- this.methods[i] = name[i];
2261
- this.methodOptions[i] = clone(options);
2262
- }
2263
- } else {
2264
- this.methods[name] = fn;
2265
- this.methodOptions[name] = clone(options);
2266
- }
2267
- return this;
2268
- };
2269
-
2270
- /**
2271
- * Adds static "class" methods to Models compiled from this schema.
2272
- *
2273
- * #### Example:
2274
- *
2275
- * const schema = new Schema(..);
2276
- * // Equivalent to `schema.statics.findByName = function(name) {}`;
2277
- * schema.static('findByName', function(name) {
2278
- * return this.find({ name: name });
2279
- * });
2280
- *
2281
- * const Drink = mongoose.model('Drink', schema);
2282
- * await Drink.findByName('LaCroix');
2283
- *
2284
- * If a hash of name/fn pairs is passed as the only argument, each name/fn pair will be added as methods.
2285
- *
2286
- * schema.static({
2287
- * findByName: function () {..}
2288
- * , findByCost: function () {..}
2289
- * });
2290
- *
2291
- * const Drink = mongoose.model('Drink', schema);
2292
- * await Drink.findByName('LaCroix');
2293
- * await Drink.findByCost(3);
2294
- *
2295
- * If a hash of name/fn pairs is passed as the only argument, each name/fn pair will be added as statics.
2296
- *
2297
- * @param {String|Object} name The Method Name for a single function, or a Object of "string-function" pairs.
2298
- * @param {Function} [fn] The Function in a single-function definition.
2299
- * @api public
2300
- * @see Statics https://mongoosejs.com/docs/guide.html#statics
2301
- */
2302
-
2303
- Schema.prototype.static = function(name, fn) {
2304
- if (typeof name !== 'string') {
2305
- for (const i in name) {
2306
- this.statics[i] = name[i];
2307
- }
2308
- } else {
2309
- this.statics[name] = fn;
2310
- }
2311
- return this;
2312
- };
2313
-
2314
- /**
2315
- * Defines an index (most likely compound) for this schema.
2316
- *
2317
- * #### Example:
2318
- *
2319
- * schema.index({ first: 1, last: -1 })
2320
- *
2321
- * @param {Object} fields The Fields to index, with the order, available values: `1 | -1 | '2d' | '2dsphere' | 'geoHaystack' | 'hashed' | 'text'`
2322
- * @param {Object} [options] Options to pass to [MongoDB driver's `createIndex()` function](https://mongodb.github.io/node-mongodb-native/4.9/classes/Collection.html#createIndex)
2323
- * @param {String | number} [options.expires=null] Mongoose-specific syntactic sugar, uses [ms](https://www.npmjs.com/package/ms) to convert `expires` option into seconds for the `expireAfterSeconds` in the above link.
2324
- * @param {String} [options.language_override=null] Tells mongodb to use the specified field instead of `language` for parsing text indexes.
2325
- * @api public
2326
- */
2327
-
2328
- Schema.prototype.index = function(fields, options) {
2329
- fields || (fields = {});
2330
- options || (options = {});
2331
-
2332
- if (options.expires) {
2333
- utils.expires(options);
2334
- }
2335
- for (const key in fields) {
2336
- if (this.aliases[key]) {
2337
- fields = utils.renameObjKey(fields, key, this.aliases[key]);
2338
- }
2339
- }
2340
- for (const field of Object.keys(fields)) {
2341
- if (fields[field] === 'ascending' || fields[field] === 'asc') {
2342
- fields[field] = 1;
2343
- } else if (fields[field] === 'descending' || fields[field] === 'desc') {
2344
- fields[field] = -1;
2345
- }
2346
- }
2347
-
2348
- for (const existingIndex of this.indexes()) {
2349
- if (options.name == null && existingIndex[1].name == null && isIndexSpecEqual(existingIndex[0], fields)) {
2350
- utils.warn(`Duplicate schema index on ${JSON.stringify(fields)} found. This is often due to declaring an index using both "index: true" and "schema.index()". Please remove the duplicate index definition.`);
2351
- }
2352
- }
2353
-
2354
- this._indexes.push([fields, options]);
2355
- return this;
2356
- };
2357
-
2358
- /**
2359
- * Sets a schema option.
2360
- *
2361
- * #### Example:
2362
- *
2363
- * schema.set('strict'); // 'true' by default
2364
- * schema.set('strict', false); // Sets 'strict' to false
2365
- * schema.set('strict'); // 'false'
2366
- *
2367
- * @param {String} key The name of the option to set the value to
2368
- * @param {Object} [value] The value to set the option to, if not passed, the option will be reset to default
2369
- * @param {Array<string>} [tags] tags to add to read preference if key === 'read'
2370
- * @see Schema https://mongoosejs.com/docs/api/schema.html#Schema()
2371
- * @api public
2372
- */
2373
-
2374
- Schema.prototype.set = function(key, value, tags) {
2375
- if (arguments.length === 1) {
2376
- return this.options[key];
2377
- }
2378
-
2379
- switch (key) {
2380
- case 'read':
2381
- if (typeof value === 'string') {
2382
- this.options[key] = { mode: handleReadPreferenceAliases(value), tags };
2383
- } else if (Array.isArray(value) && typeof value[0] === 'string') {
2384
- this.options[key] = {
2385
- mode: handleReadPreferenceAliases(value[0]),
2386
- tags: value[1]
2387
- };
2388
- } else {
2389
- this.options[key] = value;
2390
- }
2391
- this._userProvidedOptions[key] = this.options[key];
2392
- break;
2393
- case 'timestamps':
2394
- this.setupTimestamp(value);
2395
- this.options[key] = value;
2396
- this._userProvidedOptions[key] = this.options[key];
2397
- break;
2398
- case '_id':
2399
- this.options[key] = value;
2400
- this._userProvidedOptions[key] = this.options[key];
2401
-
2402
- if (value && !this.paths['_id']) {
2403
- addAutoId(this);
2404
- } else if (!value && this.paths['_id'] != null && this.paths['_id'].auto) {
2405
- this.remove('_id');
2406
- }
2407
- break;
2408
- default:
2409
- this.options[key] = value;
2410
- this._userProvidedOptions[key] = this.options[key];
2411
- break;
2412
- }
2413
-
2414
- // Propagate `strict` and `strictQuery` changes down to implicitly created schemas
2415
- if (key === 'strict') {
2416
- _propagateOptionsToImplicitlyCreatedSchemas(this, { strict: value });
2417
- }
2418
- if (key === 'strictQuery') {
2419
- _propagateOptionsToImplicitlyCreatedSchemas(this, { strictQuery: value });
2420
- }
2421
- if (key === 'toObject') {
2422
- value = { ...value };
2423
- // Avoid propagating transform to implicitly created schemas re: gh-3279
2424
- delete value.transform;
2425
- _propagateOptionsToImplicitlyCreatedSchemas(this, { toObject: value });
2426
- }
2427
- if (key === 'toJSON') {
2428
- value = { ...value };
2429
- // Avoid propagating transform to implicitly created schemas re: gh-3279
2430
- delete value.transform;
2431
- _propagateOptionsToImplicitlyCreatedSchemas(this, { toJSON: value });
2432
- }
2433
-
2434
- return this;
2435
- };
2436
-
2437
- /*!
2438
- * Recursively set options on implicitly created schemas
2439
- */
2440
-
2441
- function _propagateOptionsToImplicitlyCreatedSchemas(baseSchema, options) {
2442
- for (const { schema } of baseSchema.childSchemas) {
2443
- if (!schema.$implicitlyCreated) {
2444
- continue;
2445
- }
2446
- Object.assign(schema.options, options);
2447
- _propagateOptionsToImplicitlyCreatedSchemas(schema, options);
2448
- }
2449
- }
2450
-
2451
- /**
2452
- * Gets a schema option.
2453
- *
2454
- * #### Example:
2455
- *
2456
- * schema.get('strict'); // true
2457
- * schema.set('strict', false);
2458
- * schema.get('strict'); // false
2459
- *
2460
- * @param {String} key The name of the Option to get the current value for
2461
- * @api public
2462
- * @return {Any} the option's value
2463
- */
2464
-
2465
- Schema.prototype.get = function(key) {
2466
- return this.options[key];
2467
- };
2468
-
2469
- const indexTypes = '2d 2dsphere hashed text'.split(' ');
2470
-
2471
- /**
2472
- * The allowed index types
2473
- *
2474
- * @property {String[]} indexTypes
2475
- * @memberOf Schema
2476
- * @static
2477
- * @api public
2478
- */
2479
-
2480
- Object.defineProperty(Schema, 'indexTypes', {
2481
- get: function() {
2482
- return indexTypes;
2483
- },
2484
- set: function() {
2485
- throw new Error('Cannot overwrite Schema.indexTypes');
2486
- }
2487
- });
2488
-
2489
- /**
2490
- * Returns a list of indexes that this schema declares, via `schema.index()` or by `index: true` in a path's options.
2491
- * Indexes are expressed as an array `[spec, options]`.
2492
- *
2493
- * #### Example:
2494
- *
2495
- * const userSchema = new Schema({
2496
- * email: { type: String, required: true, unique: true },
2497
- * registeredAt: { type: Date, index: true }
2498
- * });
2499
- *
2500
- * // [ [ { email: 1 }, { unique: true } ],
2501
- * // [ { registeredAt: 1 }, {} ] ]
2502
- * userSchema.indexes();
2503
- *
2504
- * [Plugins](https://mongoosejs.com/docs/plugins.html) can use the return value of this function to modify a schema's indexes.
2505
- * For example, the below plugin makes every index unique by default.
2506
- *
2507
- * function myPlugin(schema) {
2508
- * for (const index of schema.indexes()) {
2509
- * if (index[1].unique === undefined) {
2510
- * index[1].unique = true;
2511
- * }
2512
- * }
2513
- * }
2514
- *
2515
- * @api public
2516
- * @return {Array} list of indexes defined in the schema
2517
- */
2518
-
2519
- Schema.prototype.indexes = function() {
2520
- return getIndexes(this);
2521
- };
2522
-
2523
- /**
2524
- * Creates a virtual type with the given name.
2525
- *
2526
- * @param {String} name The name of the Virtual
2527
- * @param {Object} [options]
2528
- * @param {String|Model} [options.ref] model name or model instance. Marks this as a [populate virtual](https://mongoosejs.com/docs/populate.html#populate-virtuals).
2529
- * @param {String|Function} [options.localField] Required for populate virtuals. See [populate virtual docs](https://mongoosejs.com/docs/populate.html#populate-virtuals) for more information.
2530
- * @param {String|Function} [options.foreignField] Required for populate virtuals. See [populate virtual docs](https://mongoosejs.com/docs/populate.html#populate-virtuals) for more information.
2531
- * @param {Boolean|Function} [options.justOne=false] Only works with populate virtuals. If [truthy](https://masteringjs.io/tutorials/fundamentals/truthy), will be a single doc or `null`. Otherwise, the populate virtual will be an array.
2532
- * @param {Boolean} [options.count=false] Only works with populate virtuals. If [truthy](https://masteringjs.io/tutorials/fundamentals/truthy), this populate virtual will contain the number of documents rather than the documents themselves when you `populate()`.
2533
- * @param {Function|null} [options.get=null] Adds a [getter](https://mongoosejs.com/docs/tutorials/getters-setters.html) to this virtual to transform the populated doc.
2534
- * @param {Object|Function} [options.match=null] Apply a default [`match` option to populate](https://mongoosejs.com/docs/populate.html#match), adding an additional filter to the populate query.
2535
- * @param {Boolean} [options.applyToArray=false] If true and the given `name` is a direct child of an array, apply the virtual to the array rather than the elements.
2536
- * @return {VirtualType}
2537
- */
2538
-
2539
- Schema.prototype.virtual = function(name, options) {
2540
- if (name instanceof VirtualType || getConstructorName(name) === 'VirtualType') {
2541
- return this.virtual(name.path, name.options);
2542
- }
2543
- options = new VirtualOptions(options);
2544
-
2545
- if (utils.hasUserDefinedProperty(options, ['ref', 'refPath'])) {
2546
- if (options.localField == null) {
2547
- throw new Error('Reference virtuals require `localField` option');
2548
- }
2549
-
2550
- if (options.foreignField == null) {
2551
- throw new Error('Reference virtuals require `foreignField` option');
2552
- }
2553
-
2554
- const virtual = this.virtual(name);
2555
- virtual.options = options;
2556
-
2557
- this.pre('init', function virtualPreInit(obj, opts) {
2558
- if (mpath.has(name, obj)) {
2559
- const _v = mpath.get(name, obj);
2560
- if (!this.$$populatedVirtuals) {
2561
- this.$$populatedVirtuals = {};
2562
- }
2563
-
2564
- if (options.justOne || options.count) {
2565
- this.$$populatedVirtuals[name] = Array.isArray(_v) ?
2566
- _v[0] :
2567
- _v;
2568
- } else {
2569
- this.$$populatedVirtuals[name] = Array.isArray(_v) ?
2570
- _v :
2571
- _v == null ? [] : [_v];
2572
- }
2573
-
2574
- if (opts?.hydratedPopulatedDocs && !options.count) {
2575
- const modelNames = virtual._getModelNamesForPopulate(this);
2576
- const populatedVal = this.$$populatedVirtuals[name];
2577
- if (!Array.isArray(populatedVal) && !populatedVal.$__ && modelNames?.length === 1) {
2578
- const PopulateModel = this.db.model(modelNames[0]);
2579
- this.$$populatedVirtuals[name] = PopulateModel.hydrate(populatedVal);
2580
- } else if (Array.isArray(populatedVal) && modelNames?.length === 1) {
2581
- const PopulateModel = this.db.model(modelNames[0]);
2582
- for (let i = 0; i < populatedVal.length; ++i) {
2583
- if (!populatedVal[i].$__) {
2584
- populatedVal[i] = PopulateModel.hydrate(populatedVal[i], null, { hydratedPopulatedDocs: true });
2585
- }
2586
- }
2587
- const foreignField = options.foreignField;
2588
- this.$populated(
2589
- name,
2590
- populatedVal.map(doc => doc == null ? doc : doc.get(typeof foreignField === 'function' ? foreignField.call(doc, doc) : foreignField)),
2591
- { populateModelSymbol: PopulateModel }
2592
- );
2593
- }
2594
- }
2595
-
2596
- mpath.unset(name, obj);
2597
- }
2598
- });
2599
-
2600
- virtual.
2601
- set(function(v) {
2602
- if (!this.$$populatedVirtuals) {
2603
- this.$$populatedVirtuals = {};
2604
- }
2605
-
2606
- return setPopulatedVirtualValue(
2607
- this.$$populatedVirtuals,
2608
- name,
2609
- v,
2610
- options
2611
- );
2612
- });
2613
-
2614
- if (typeof options.get === 'function') {
2615
- virtual.get(options.get);
2616
- }
2617
-
2618
- // Workaround for gh-8198: if virtual is under document array, make a fake
2619
- // virtual. See gh-8210, gh-13189
2620
- const parts = name.split('.');
2621
- let cur = parts[0];
2622
- for (let i = 0; i < parts.length - 1; ++i) {
2623
- if (this.paths[cur] == null) {
2624
- continue;
2625
- }
2626
-
2627
- if (this.paths[cur].$isMongooseDocumentArray || this.paths[cur].$isSingleNested) {
2628
- const remnant = parts.slice(i + 1).join('.');
2629
- this.paths[cur].schema.virtual(remnant, options);
2630
- break;
2631
- } else if (this.paths[cur].$isSchemaMap) {
2632
- const remnant = parts.slice(i + 2).join('.');
2633
- this.paths[cur].$__schemaType.schema.virtual(remnant, options);
2634
- break;
2635
- }
2636
-
2637
- cur += '.' + parts[i + 1];
2638
- }
2639
-
2640
- return virtual;
2641
- }
2642
-
2643
- const virtuals = this.virtuals;
2644
- const parts = name.split('.');
2645
-
2646
- if (this.pathType(name) === 'real') {
2647
- throw new Error('Virtual path "' + name + '"' +
2648
- ' conflicts with a real path in the schema');
2649
- }
2650
-
2651
- virtuals[name] = parts.reduce(function(mem, part, i) {
2652
- mem[part] || (mem[part] = (i === parts.length - 1)
2653
- ? new VirtualType(options, name)
2654
- : {});
2655
- return mem[part];
2656
- }, this.tree);
2657
-
2658
- if (options && options.applyToArray && parts.length > 1) {
2659
- const path = this.path(parts.slice(0, -1).join('.'));
2660
- if (path && path.$isMongooseArray) {
2661
- return path.virtual(parts[parts.length - 1], options);
2662
- } else {
2663
- throw new MongooseError(`Path "${path}" is not an array`);
2664
- }
2665
- }
2666
-
2667
- return virtuals[name];
2668
- };
2669
-
2670
- /**
2671
- * Returns the virtual type with the given `name`.
2672
- *
2673
- * @param {String} name The name of the Virtual to get
2674
- * @return {VirtualType|null}
2675
- */
2676
-
2677
- Schema.prototype.virtualpath = function(name) {
2678
- return Object.hasOwn(this.virtuals, name) ? this.virtuals[name] : null;
2679
- };
2680
-
2681
- /**
2682
- * Removes the given `path` (or [`paths`]).
2683
- *
2684
- * #### Example:
2685
- *
2686
- * const schema = new Schema({ name: String, age: Number });
2687
- * schema.remove('name');
2688
- * schema.path('name'); // Undefined
2689
- * schema.path('age'); // SchemaNumber { ... }
2690
- *
2691
- * Or as a Array:
2692
- *
2693
- * schema.remove(['name', 'age']);
2694
- * schema.path('name'); // Undefined
2695
- * schema.path('age'); // Undefined
2696
- *
2697
- * @param {String|Array} path The Path(s) to remove
2698
- * @return {Schema} the Schema instance
2699
- * @api public
2700
- */
2701
- Schema.prototype.remove = function(path) {
2702
- if (typeof path === 'string') {
2703
- path = [path];
2704
- }
2705
- if (Array.isArray(path)) {
2706
- path.forEach(function(name) {
2707
- if (this.path(name) == null && !this.nested[name]) {
2708
- return;
2709
- }
2710
- if (this.nested[name]) {
2711
- const allKeys = Object.keys(this.paths).
2712
- concat(Object.keys(this.nested));
2713
- for (const path of allKeys) {
2714
- if (path.startsWith(name + '.')) {
2715
- delete this.paths[path];
2716
- delete this.nested[path];
2717
- _deletePath(this, path);
2718
- }
2719
- }
2720
-
2721
- delete this.nested[name];
2722
- _deletePath(this, name);
2723
- return;
2724
- }
2725
-
2726
- delete this.paths[name];
2727
- _deletePath(this, name);
2728
-
2729
- this._removeEncryptedField(name);
2730
- }, this);
2731
- }
2732
- return this;
2733
- };
2734
-
2735
- /*!
2736
- * ignore
2737
- */
2738
-
2739
- function _deletePath(schema, name) {
2740
- const pieces = name.split('.');
2741
- const last = pieces.pop();
2742
-
2743
- let branch = schema.tree;
2744
-
2745
- for (const piece of pieces) {
2746
- branch = branch[piece];
2747
- }
2748
-
2749
- delete branch[last];
2750
- }
2751
-
2752
- /**
2753
- * Removes the given virtual or virtuals from the schema.
2754
- *
2755
- * @param {String|Array} path The virutal path(s) to remove.
2756
- * @returns {Schema} the Schema instance, or a mongoose error if the virtual does not exist.
2757
- * @api public
2758
- */
2759
-
2760
- Schema.prototype.removeVirtual = function(path) {
2761
- if (typeof path === 'string') {
2762
- path = [path];
2763
- }
2764
- if (Array.isArray(path)) {
2765
- for (const virtual of path) {
2766
- if (this.virtuals[virtual] == null) {
2767
- throw new MongooseError(`Attempting to remove virtual "${virtual}" that does not exist.`);
2768
- }
2769
- }
2770
-
2771
- for (const virtual of path) {
2772
- delete this.paths[virtual];
2773
- delete this.virtuals[virtual];
2774
- if (virtual.indexOf('.') !== -1) {
2775
- mpath.unset(virtual, this.tree);
2776
- } else {
2777
- delete this.tree[virtual];
2778
- }
2779
- }
2780
- }
2781
- return this;
2782
- };
2783
-
2784
- /**
2785
- * Loads an ES6 class into a schema. Maps [setters](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set) + [getters](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get), [static methods](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static),
2786
- * and [instance methods](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes#Class_body_and_method_definitions)
2787
- * to schema [virtuals](https://mongoosejs.com/docs/guide.html#virtuals),
2788
- * [statics](https://mongoosejs.com/docs/guide.html#statics), and
2789
- * [methods](https://mongoosejs.com/docs/guide.html#methods).
2790
- *
2791
- * #### Example:
2792
- *
2793
- * ```javascript
2794
- * const md5 = require('md5');
2795
- * const userSchema = new Schema({ email: String });
2796
- * class UserClass {
2797
- * // `gravatarImage` becomes a virtual
2798
- * get gravatarImage() {
2799
- * const hash = md5(this.email.toLowerCase());
2800
- * return `https://www.gravatar.com/avatar/${hash}`;
2801
- * }
2802
- *
2803
- * // `getProfileUrl()` becomes a document method
2804
- * getProfileUrl() {
2805
- * return `https://mysite.com/${this.email}`;
2806
- * }
2807
- *
2808
- * // `findByEmail()` becomes a static
2809
- * static findByEmail(email) {
2810
- * return this.findOne({ email });
2811
- * }
2812
- * }
2813
- *
2814
- * // `schema` will now have a `gravatarImage` virtual, a `getProfileUrl()` method,
2815
- * // and a `findByEmail()` static
2816
- * userSchema.loadClass(UserClass);
2817
- * ```
2818
- *
2819
- * @param {Function} model The Class to load
2820
- * @param {Boolean} [virtualsOnly] if truthy, only pulls virtuals from the class, not methods or statics
2821
- */
2822
- Schema.prototype.loadClass = function(model, virtualsOnly) {
2823
- // Stop copying when hit certain base classes
2824
- if (model === Object.prototype ||
2825
- model === Function.prototype ||
2826
- Object.hasOwn(model.prototype, '$isMongooseModelPrototype') ||
2827
- Object.hasOwn(model.prototype, '$isMongooseDocumentPrototype')) {
2828
- return this;
2829
- }
2830
-
2831
- this.loadClass(Object.getPrototypeOf(model), virtualsOnly);
2832
-
2833
- // Add static methods
2834
- if (!virtualsOnly) {
2835
- Object.getOwnPropertyNames(model).forEach(function(name) {
2836
- if (name.match(/^(length|name|prototype|constructor|__proto__)$/)) {
2837
- return;
2838
- }
2839
- const prop = Object.getOwnPropertyDescriptor(model, name);
2840
- if (Object.hasOwn(prop, 'value')) {
2841
- this.static(name, prop.value);
2842
- }
2843
- }, this);
2844
- }
2845
-
2846
- // Add methods and virtuals
2847
- Object.getOwnPropertyNames(model.prototype).forEach(function(name) {
2848
- if (name.match(/^(constructor)$/)) {
2849
- return;
2850
- }
2851
- const method = Object.getOwnPropertyDescriptor(model.prototype, name);
2852
- if (!virtualsOnly) {
2853
- if (typeof method.value === 'function') {
2854
- this.method(name, method.value);
2855
- }
2856
- }
2857
- if (typeof method.get === 'function') {
2858
- if (this.virtuals[name]) {
2859
- this.virtuals[name].getters = [];
2860
- }
2861
- this.virtual(name).get(method.get);
2862
- }
2863
- if (typeof method.set === 'function') {
2864
- if (this.virtuals[name]) {
2865
- this.virtuals[name].setters = [];
2866
- }
2867
- this.virtual(name).set(method.set);
2868
- }
2869
- }, this);
2870
-
2871
- return this;
2872
- };
2873
-
2874
- /*!
2875
- * ignore
2876
- */
2877
-
2878
- Schema.prototype._getSchema = function(path) {
2879
- const _this = this;
2880
- const pathschema = _this.path(path);
2881
- const resultPath = [];
2882
-
2883
- if (pathschema) {
2884
- pathschema.$fullPath = path;
2885
- return pathschema;
2886
- }
2887
-
2888
- function search(parts, schema) {
2889
- let p = parts.length + 1;
2890
- let foundschema;
2891
- let trypath;
2892
-
2893
- while (p--) {
2894
- trypath = parts.slice(0, p).join('.');
2895
- foundschema = schema.path(trypath);
2896
- if (foundschema) {
2897
- resultPath.push(trypath);
2898
-
2899
- if (foundschema.embeddedSchemaType || foundschema.Constructor) {
2900
- // array of Mixed?
2901
- if (foundschema.embeddedSchemaType instanceof MongooseTypes.Mixed) {
2902
- foundschema.embeddedSchemaType.$fullPath = resultPath.join('.');
2903
- return foundschema.embeddedSchemaType;
2904
- }
2905
-
2906
- // Now that we found the array, we need to check if there
2907
- // are remaining document paths to look up for casting.
2908
- // Also we need to handle array.$.path since schema.path
2909
- // doesn't work for that.
2910
- // If there is no foundschema.schema we are dealing with
2911
- // a path like array.$
2912
- if (p !== parts.length) {
2913
- if (p + 1 === parts.length && foundschema.embeddedSchemaType && (parts[p] === '$' || isArrayFilter(parts[p]))) {
2914
- return foundschema.embeddedSchemaType;
2915
- }
2916
-
2917
- if (foundschema.schema) {
2918
- let ret;
2919
- if (parts[p] === '$' || isArrayFilter(parts[p])) {
2920
- if (p + 1 === parts.length) {
2921
- // comments.$
2922
- return foundschema.embeddedSchemaType;
2923
- }
2924
- // comments.$.comments.$.title
2925
- ret = search(parts.slice(p + 1), foundschema.schema);
2926
- if (ret) {
2927
- ret.$parentSchemaDocArray = ret.$parentSchemaDocArray ||
2928
- (foundschema.schema.$isSingleNested ? null : foundschema);
2929
- }
2930
- return ret;
2931
- }
2932
- // this is the last path of the selector
2933
- ret = search(parts.slice(p), foundschema.schema);
2934
- if (ret) {
2935
- ret.$parentSchemaDocArray = ret.$parentSchemaDocArray ||
2936
- (foundschema.schema.$isSingleNested ? null : foundschema);
2937
- }
2938
- return ret;
2939
- }
2940
- }
2941
- } else if (foundschema.$isSchemaMap) {
2942
- if (p >= parts.length) {
2943
- return foundschema;
2944
- }
2945
- // Any path in the map will be an instance of the map's embedded schematype
2946
- if (p + 1 >= parts.length) {
2947
- return foundschema.$__schemaType;
2948
- }
2949
-
2950
- if (foundschema.$__schemaType instanceof MongooseTypes.Mixed) {
2951
- return foundschema.$__schemaType;
2952
- }
2953
- if (foundschema.$__schemaType.schema != null) {
2954
- // Map of docs
2955
- const ret = search(parts.slice(p + 1), foundschema.$__schemaType.schema);
2956
- return ret;
2957
- }
2958
- }
2959
-
2960
- foundschema.$fullPath = resultPath.join('.');
2961
-
2962
- return foundschema;
2963
- }
2964
- }
2965
- }
2966
-
2967
- // look for arrays
2968
- const parts = path.split('.');
2969
- for (let i = 0; i < parts.length; ++i) {
2970
- if (parts[i] === '$' || isArrayFilter(parts[i])) {
2971
- // Re: gh-5628, because `schema.path()` doesn't take $ into account.
2972
- parts[i] = '0';
2973
- }
2974
- if (numberRE.test(parts[i])) {
2975
- parts[i] = '$';
2976
- }
2977
- }
2978
- return search(parts, _this);
2979
- };
2980
-
2981
- /*!
2982
- * ignore
2983
- */
2984
-
2985
- Schema.prototype._getPathType = function(path) {
2986
- const _this = this;
2987
- const pathschema = _this.path(path);
2988
-
2989
- if (pathschema) {
2990
- return 'real';
2991
- }
2992
-
2993
- function search(parts, schema) {
2994
- let p = parts.length + 1,
2995
- foundschema,
2996
- trypath;
2997
-
2998
- while (p--) {
2999
- trypath = parts.slice(0, p).join('.');
3000
- foundschema = schema.path(trypath);
3001
- if (foundschema) {
3002
- if (foundschema.embeddedSchemaType || foundschema.Constructor) {
3003
- // array of Mixed?
3004
- if (foundschema.embeddedSchemaType instanceof MongooseTypes.Mixed) {
3005
- return { schema: foundschema, pathType: 'mixed' };
3006
- }
3007
-
3008
- // Now that we found the array, we need to check if there
3009
- // are remaining document paths to look up for casting.
3010
- // Also we need to handle array.$.path since schema.path
3011
- // doesn't work for that.
3012
- // If there is no foundschema.schema we are dealing with
3013
- // a path like array.$
3014
- if (p !== parts.length && foundschema.schema) {
3015
- if (parts[p] === '$' || isArrayFilter(parts[p])) {
3016
- if (p === parts.length - 1) {
3017
- return { schema: foundschema, pathType: 'nested' };
3018
- }
3019
- // comments.$.comments.$.title
3020
- return search(parts.slice(p + 1), foundschema.schema);
3021
- }
3022
- // this is the last path of the selector
3023
- return search(parts.slice(p), foundschema.schema);
3024
- }
3025
- return {
3026
- schema: foundschema,
3027
- pathType: foundschema.$isSingleNested ? 'nested' : 'array'
3028
- };
3029
- }
3030
- return { schema: foundschema, pathType: 'real' };
3031
- } else if (p === parts.length && schema.nested[trypath]) {
3032
- return { schema: schema, pathType: 'nested' };
3033
- }
3034
- }
3035
- return { schema: foundschema || schema, pathType: 'undefined' };
3036
- }
3037
-
3038
- // look for arrays
3039
- return search(path.split('.'), _this);
3040
- };
3041
-
3042
- /**
3043
- * Transforms the duplicate key error by checking for duplicate key error messages by path.
3044
- * If no duplicate key error messages are found, returns the original error.
3045
- *
3046
- * @param {Error} error The error to transform
3047
- * @returns {Error} The transformed error
3048
- * @api private
3049
- */
3050
-
3051
- Schema.prototype._transformDuplicateKeyError = function _transformDuplicateKeyError(error) {
3052
- if (!this._duplicateKeyErrorMessagesByPath) {
3053
- return error;
3054
- }
3055
- if (error.code !== 11000 && error.code !== 11001) {
3056
- return error;
3057
- }
3058
-
3059
- if (error.keyPattern != null) {
3060
- const keyPattern = error.keyPattern;
3061
- const keys = Object.keys(keyPattern);
3062
- if (keys.length !== 1) {
3063
- return error;
3064
- }
3065
- const firstKey = keys[0];
3066
- if (!Object.hasOwn(this._duplicateKeyErrorMessagesByPath, firstKey)) {
3067
- return error;
3068
- }
3069
- return new MongooseError(this._duplicateKeyErrorMessagesByPath[firstKey], { cause: error });
3070
- }
3071
-
3072
- return error;
3073
- };
3074
-
3075
- /*!
3076
- * ignore
3077
- */
3078
-
3079
- function isArrayFilter(piece) {
3080
- return piece.startsWith('$[') && piece.endsWith(']');
3081
- }
3082
-
3083
- /**
3084
- * Called by `compile()` _right before_ compiling. Good for making any changes to
3085
- * the schema that should respect options set by plugins, like `id`
3086
- * @method _preCompile
3087
- * @memberOf Schema
3088
- * @instance
3089
- * @api private
3090
- */
3091
-
3092
- Schema.prototype._preCompile = function _preCompile() {
3093
- this.plugin(idGetter, { deduplicate: true });
3094
- };
3095
-
3096
- /**
3097
- * Returns a JSON schema representation of this Schema.
3098
- *
3099
- * By default, returns normal [JSON schema representation](https://json-schema.org/learn/getting-started-step-by-step), which is not typically what you want to use with
3100
- * [MongoDB's `$jsonSchema` collection option](https://www.mongodb.com/docs/manual/core/schema-validation/specify-json-schema/).
3101
- * Use the `useBsonType: true` option to return MongoDB `$jsonSchema` syntax instead.
3102
- *
3103
- * In addition to types, `jsonSchema()` supports the following Mongoose validators:
3104
- * - `enum` for strings and numbers
3105
- *
3106
- * #### Example:
3107
- * const schema = new Schema({ name: String });
3108
- * // { required: ['_id'], properties: { name: { type: ['string', 'null'] }, _id: { type: 'string' } } }
3109
- * schema.toJSONSchema();
3110
- *
3111
- * // { required: ['_id'], properties: { name: { bsonType: ['string', 'null'] }, _id: { bsonType: 'objectId' } } }
3112
- * schema.toJSONSchema({ useBsonType: true });
3113
- *
3114
- * @param {Object} [options]
3115
- * @param [Boolean] [options.useBsonType=false] if true, specify each path's type using `bsonType` rather than `type` for MongoDB $jsonSchema support
3116
- */
3117
-
3118
- Schema.prototype.toJSONSchema = function toJSONSchema(options) {
3119
- const useBsonType = options?.useBsonType ?? false;
3120
- const result = useBsonType ? { required: [], properties: {} } : { type: 'object', required: [], properties: {} };
3121
- for (const path of Object.keys(this.paths)) {
3122
- const schemaType = this.paths[path];
3123
-
3124
- // Skip Map embedded paths, maps will be handled seperately.
3125
- if (schemaType._presplitPath.indexOf('$*') !== -1) {
3126
- continue;
3127
- }
3128
-
3129
- // Nested paths are stored as `nested.path` in the schema type, so create nested paths in the json schema
3130
- // when necessary.
3131
- const isNested = schemaType._presplitPath.length > 1;
3132
- let jsonSchemaForPath = result;
3133
- if (isNested) {
3134
- for (let i = 0; i < schemaType._presplitPath.length - 1; ++i) {
3135
- const subpath = schemaType._presplitPath[i];
3136
- if (jsonSchemaForPath.properties[subpath] == null) {
3137
- jsonSchemaForPath.properties[subpath] = useBsonType
3138
- ? {
3139
- bsonType: ['object', 'null'],
3140
- properties: {}
3141
- }
3142
- : {
3143
- type: ['object', 'null'],
3144
- properties: {}
3145
- };
3146
- }
3147
- jsonSchemaForPath = jsonSchemaForPath.properties[subpath];
3148
- }
3149
- }
3150
-
3151
- const lastSubpath = schemaType._presplitPath[schemaType._presplitPath.length - 1];
3152
- let isRequired = false;
3153
- if (path === '_id') {
3154
- if (!jsonSchemaForPath.required) {
3155
- jsonSchemaForPath.required = [];
3156
- }
3157
- jsonSchemaForPath.required.push('_id');
3158
- isRequired = true;
3159
- } else if (schemaType.options.required && typeof schemaType.options.required !== 'function') {
3160
- if (!jsonSchemaForPath.required) {
3161
- jsonSchemaForPath.required = [];
3162
- }
3163
- // Only `required: true` paths are required, conditional required is not required
3164
- jsonSchemaForPath.required.push(lastSubpath);
3165
- isRequired = true;
3166
- }
3167
- jsonSchemaForPath.properties[lastSubpath] = schemaType.toJSONSchema(options);
3168
- if (schemaType.options.enum) {
3169
- jsonSchemaForPath.properties[lastSubpath].enum = isRequired
3170
- ? schemaType.options.enum
3171
- : [...schemaType.options.enum, null];
3172
- }
3173
- }
3174
-
3175
- // Otherwise MongoDB errors with "$jsonSchema keyword 'required' cannot be an empty array"
3176
- if (result.required.length === 0) {
3177
- delete result.required;
3178
- }
3179
- return result;
3180
- };
3181
-
3182
- /*!
3183
- * Module exports.
3184
- */
3185
-
3186
- module.exports = exports = Schema;
3187
-
3188
- // require down here because of reference issues
3189
-
3190
- /**
3191
- * The various built-in Mongoose Schema Types.
3192
- *
3193
- * #### Example:
3194
- *
3195
- * const mongoose = require('mongoose');
3196
- * const ObjectId = mongoose.Schema.Types.ObjectId;
3197
- *
3198
- * #### Types:
3199
- *
3200
- * - [String](https://mongoosejs.com/docs/schematypes.html#strings)
3201
- * - [Number](https://mongoosejs.com/docs/schematypes.html#numbers)
3202
- * - [Boolean](https://mongoosejs.com/docs/schematypes.html#booleans) | Bool
3203
- * - [Array](https://mongoosejs.com/docs/schematypes.html#arrays)
3204
- * - [Buffer](https://mongoosejs.com/docs/schematypes.html#buffers)
3205
- * - [Date](https://mongoosejs.com/docs/schematypes.html#dates)
3206
- * - [ObjectId](https://mongoosejs.com/docs/schematypes.html#objectids) | Oid
3207
- * - [Mixed](https://mongoosejs.com/docs/schematypes.html#mixed)
3208
- * - [UUID](https://mongoosejs.com/docs/schematypes.html#uuid)
3209
- * - [BigInt](https://mongoosejs.com/docs/schematypes.html#bigint)
3210
- * - [Double] (https://mongoosejs.com/docs/schematypes.html#double)
3211
- * - [Int32](https://mongoosejs.com/docs/schematypes.html#int32)
3212
- *
3213
- * Using this exposed access to the `Mixed` SchemaType, we can use them in our schema.
3214
- *
3215
- * const Mixed = mongoose.Schema.Types.Mixed;
3216
- * new mongoose.Schema({ _user: Mixed })
3217
- *
3218
- * @api public
3219
- */
3220
-
3221
- Schema.Types = MongooseTypes = require('./schema/index');
3222
-
3223
- /*!
3224
- * ignore
3225
- */
3226
-
3227
- exports.ObjectId = MongooseTypes.ObjectId;