create-mern-omar 1.0.0 → 1.1.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 (1565) hide show
  1. package/README.md +34 -0
  2. package/index.js +26 -22
  3. package/package.json +3 -11
  4. package/templates/.env.example +2 -0
  5. package/templates/.gitignore.template +2 -0
  6. package/templates/controllers/users.routes.js +10 -0
  7. package/templates/models/User.js +26 -0
  8. package/{test-proj/package-lock.json → templates/node_modules/.package-lock.json} +0 -11
  9. package/templates/node_modules/@mongodb-js/saslprep/LICENSE +22 -0
  10. package/templates/node_modules/@mongodb-js/saslprep/dist/.esm-wrapper.mjs +4 -0
  11. package/templates/node_modules/@mongodb-js/saslprep/dist/browser.d.ts +5 -0
  12. package/templates/node_modules/@mongodb-js/saslprep/dist/browser.d.ts.map +1 -0
  13. package/templates/node_modules/@mongodb-js/saslprep/dist/browser.js +12 -0
  14. package/templates/node_modules/@mongodb-js/saslprep/dist/browser.js.map +1 -0
  15. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-data-browser.d.ts +3 -0
  16. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-data-browser.d.ts.map +1 -0
  17. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-data-browser.js +5 -0
  18. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-data-browser.js.map +1 -0
  19. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-data.d.ts +3 -0
  20. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-data.d.ts.map +1 -0
  21. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-data.js +5 -0
  22. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-data.js.map +1 -0
  23. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-src.d.ts +7 -0
  24. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-src.d.ts.map +1 -0
  25. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-src.js +881 -0
  26. package/templates/node_modules/@mongodb-js/saslprep/dist/code-points-src.js.map +1 -0
  27. package/templates/node_modules/@mongodb-js/saslprep/dist/generate-code-points.d.ts +2 -0
  28. package/templates/node_modules/@mongodb-js/saslprep/dist/generate-code-points.d.ts.map +1 -0
  29. package/templates/node_modules/@mongodb-js/saslprep/dist/generate-code-points.js +83 -0
  30. package/templates/node_modules/@mongodb-js/saslprep/dist/generate-code-points.js.map +1 -0
  31. package/templates/node_modules/@mongodb-js/saslprep/dist/index.d.ts +11 -0
  32. package/templates/node_modules/@mongodb-js/saslprep/dist/index.d.ts.map +1 -0
  33. package/templates/node_modules/@mongodb-js/saslprep/dist/index.js +65 -0
  34. package/templates/node_modules/@mongodb-js/saslprep/dist/index.js.map +1 -0
  35. package/templates/node_modules/@mongodb-js/saslprep/dist/memory-code-points.d.ts +10 -0
  36. package/templates/node_modules/@mongodb-js/saslprep/dist/memory-code-points.d.ts.map +1 -0
  37. package/templates/node_modules/@mongodb-js/saslprep/dist/memory-code-points.js +32 -0
  38. package/templates/node_modules/@mongodb-js/saslprep/dist/memory-code-points.js.map +1 -0
  39. package/templates/node_modules/@mongodb-js/saslprep/dist/node.d.ts +10 -0
  40. package/templates/node_modules/@mongodb-js/saslprep/dist/node.d.ts.map +1 -0
  41. package/templates/node_modules/@mongodb-js/saslprep/dist/node.js +15 -0
  42. package/templates/node_modules/@mongodb-js/saslprep/dist/node.js.map +1 -0
  43. package/templates/node_modules/@mongodb-js/saslprep/dist/util.d.ts +2 -0
  44. package/templates/node_modules/@mongodb-js/saslprep/dist/util.d.ts.map +1 -0
  45. package/templates/node_modules/@mongodb-js/saslprep/dist/util.js +11 -0
  46. package/templates/node_modules/@mongodb-js/saslprep/dist/util.js.map +1 -0
  47. package/templates/node_modules/@mongodb-js/saslprep/package.json +87 -0
  48. package/templates/node_modules/@mongodb-js/saslprep/readme.md +29 -0
  49. package/templates/node_modules/@types/webidl-conversions/LICENSE +21 -0
  50. package/templates/node_modules/@types/webidl-conversions/README.md +15 -0
  51. package/templates/node_modules/@types/webidl-conversions/index.d.ts +91 -0
  52. package/templates/node_modules/@types/webidl-conversions/package.json +30 -0
  53. package/templates/node_modules/@types/whatwg-url/LICENSE +21 -0
  54. package/templates/node_modules/@types/whatwg-url/README.md +15 -0
  55. package/templates/node_modules/@types/whatwg-url/index.d.ts +172 -0
  56. package/templates/node_modules/@types/whatwg-url/lib/URL-impl.d.ts +22 -0
  57. package/templates/node_modules/@types/whatwg-url/lib/URL.d.ts +66 -0
  58. package/templates/node_modules/@types/whatwg-url/lib/URLSearchParams-impl.d.ts +20 -0
  59. package/templates/node_modules/@types/whatwg-url/lib/URLSearchParams.d.ts +92 -0
  60. package/templates/node_modules/@types/whatwg-url/package.json +38 -0
  61. package/templates/node_modules/@types/whatwg-url/webidl2js-wrapper.d.ts +4 -0
  62. package/templates/node_modules/accepts/HISTORY.md +250 -0
  63. package/templates/node_modules/accepts/LICENSE +23 -0
  64. package/templates/node_modules/accepts/README.md +140 -0
  65. package/templates/node_modules/accepts/index.js +238 -0
  66. package/templates/node_modules/accepts/package.json +47 -0
  67. package/templates/node_modules/basic-auth/HISTORY.md +52 -0
  68. package/templates/node_modules/basic-auth/LICENSE +24 -0
  69. package/templates/node_modules/basic-auth/README.md +113 -0
  70. package/templates/node_modules/basic-auth/index.js +133 -0
  71. package/templates/node_modules/basic-auth/package.json +41 -0
  72. package/templates/node_modules/body-parser/LICENSE +23 -0
  73. package/templates/node_modules/body-parser/README.md +494 -0
  74. package/templates/node_modules/body-parser/index.js +80 -0
  75. package/templates/node_modules/body-parser/lib/read.js +250 -0
  76. package/templates/node_modules/body-parser/lib/types/json.js +166 -0
  77. package/templates/node_modules/body-parser/lib/types/raw.js +43 -0
  78. package/templates/node_modules/body-parser/lib/types/text.js +37 -0
  79. package/templates/node_modules/body-parser/lib/types/urlencoded.js +142 -0
  80. package/templates/node_modules/body-parser/lib/utils.js +96 -0
  81. package/templates/node_modules/body-parser/package.json +52 -0
  82. package/templates/node_modules/bson/LICENSE.md +201 -0
  83. package/templates/node_modules/bson/README.md +291 -0
  84. package/templates/node_modules/bson/bson.d.ts +1729 -0
  85. package/templates/node_modules/bson/etc/prepare.js +19 -0
  86. package/templates/node_modules/bson/lib/bson.bundle.js +4675 -0
  87. package/templates/node_modules/bson/lib/bson.bundle.js.map +1 -0
  88. package/templates/node_modules/bson/lib/bson.cjs +4670 -0
  89. package/templates/node_modules/bson/lib/bson.cjs.map +1 -0
  90. package/templates/node_modules/bson/lib/bson.mjs +4639 -0
  91. package/templates/node_modules/bson/lib/bson.mjs.map +1 -0
  92. package/templates/node_modules/bson/lib/bson.node.mjs +4639 -0
  93. package/templates/node_modules/bson/lib/bson.node.mjs.map +1 -0
  94. package/templates/node_modules/bson/lib/bson.rn.cjs +4680 -0
  95. package/templates/node_modules/bson/lib/bson.rn.cjs.map +1 -0
  96. package/templates/node_modules/bson/package.json +118 -0
  97. package/templates/node_modules/bson/src/binary.ts +751 -0
  98. package/templates/node_modules/bson/src/bson.ts +248 -0
  99. package/templates/node_modules/bson/src/bson_value.ts +55 -0
  100. package/templates/node_modules/bson/src/code.ts +69 -0
  101. package/templates/node_modules/bson/src/constants.ts +147 -0
  102. package/templates/node_modules/bson/src/db_ref.ts +128 -0
  103. package/templates/node_modules/bson/src/decimal128.ts +855 -0
  104. package/templates/node_modules/bson/src/double.ts +115 -0
  105. package/templates/node_modules/bson/src/error.ts +105 -0
  106. package/templates/node_modules/bson/src/extended_json.ts +513 -0
  107. package/templates/node_modules/bson/src/index.ts +19 -0
  108. package/templates/node_modules/bson/src/int_32.ts +101 -0
  109. package/templates/node_modules/bson/src/long.ts +1240 -0
  110. package/templates/node_modules/bson/src/max_key.ts +31 -0
  111. package/templates/node_modules/bson/src/min_key.ts +31 -0
  112. package/templates/node_modules/bson/src/objectid.ts +382 -0
  113. package/templates/node_modules/bson/src/parse_utf8.ts +35 -0
  114. package/templates/node_modules/bson/src/parser/calculate_size.ts +218 -0
  115. package/templates/node_modules/bson/src/parser/deserializer.ts +627 -0
  116. package/templates/node_modules/bson/src/parser/on_demand/index.ts +32 -0
  117. package/templates/node_modules/bson/src/parser/on_demand/parse_to_elements.ts +190 -0
  118. package/templates/node_modules/bson/src/parser/serializer.ts +954 -0
  119. package/templates/node_modules/bson/src/parser/utils.ts +69 -0
  120. package/templates/node_modules/bson/src/regexp.ts +114 -0
  121. package/templates/node_modules/bson/src/symbol.ts +55 -0
  122. package/templates/node_modules/bson/src/timestamp.ts +176 -0
  123. package/templates/node_modules/bson/src/utils/byte_utils.ts +63 -0
  124. package/templates/node_modules/bson/src/utils/latin.ts +104 -0
  125. package/templates/node_modules/bson/src/utils/node_byte_utils.ts +161 -0
  126. package/templates/node_modules/bson/src/utils/number_utils.ts +204 -0
  127. package/templates/node_modules/bson/src/utils/string_utils.ts +44 -0
  128. package/templates/node_modules/bson/src/utils/web_byte_utils.ts +216 -0
  129. package/templates/node_modules/bytes/History.md +97 -0
  130. package/templates/node_modules/bytes/LICENSE +23 -0
  131. package/templates/node_modules/bytes/Readme.md +152 -0
  132. package/templates/node_modules/bytes/index.js +170 -0
  133. package/templates/node_modules/bytes/package.json +42 -0
  134. package/templates/node_modules/call-bind-apply-helpers/.eslintrc +17 -0
  135. package/templates/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
  136. package/templates/node_modules/call-bind-apply-helpers/.nycrc +9 -0
  137. package/templates/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
  138. package/templates/node_modules/call-bind-apply-helpers/LICENSE +21 -0
  139. package/templates/node_modules/call-bind-apply-helpers/README.md +62 -0
  140. package/templates/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
  141. package/templates/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
  142. package/templates/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
  143. package/templates/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
  144. package/templates/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
  145. package/templates/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
  146. package/templates/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
  147. package/templates/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
  148. package/templates/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
  149. package/templates/node_modules/call-bind-apply-helpers/index.js +15 -0
  150. package/templates/node_modules/call-bind-apply-helpers/package.json +85 -0
  151. package/templates/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
  152. package/templates/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
  153. package/templates/node_modules/call-bind-apply-helpers/test/index.js +63 -0
  154. package/templates/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
  155. package/templates/node_modules/call-bound/.eslintrc +13 -0
  156. package/templates/node_modules/call-bound/.github/FUNDING.yml +12 -0
  157. package/templates/node_modules/call-bound/.nycrc +9 -0
  158. package/templates/node_modules/call-bound/CHANGELOG.md +42 -0
  159. package/templates/node_modules/call-bound/LICENSE +21 -0
  160. package/templates/node_modules/call-bound/README.md +53 -0
  161. package/templates/node_modules/call-bound/index.d.ts +94 -0
  162. package/templates/node_modules/call-bound/index.js +19 -0
  163. package/templates/node_modules/call-bound/package.json +99 -0
  164. package/templates/node_modules/call-bound/test/index.js +61 -0
  165. package/templates/node_modules/call-bound/tsconfig.json +10 -0
  166. package/templates/node_modules/content-disposition/HISTORY.md +72 -0
  167. package/templates/node_modules/content-disposition/LICENSE +22 -0
  168. package/templates/node_modules/content-disposition/README.md +142 -0
  169. package/templates/node_modules/content-disposition/index.js +458 -0
  170. package/templates/node_modules/content-disposition/package.json +43 -0
  171. package/templates/node_modules/content-type/HISTORY.md +29 -0
  172. package/templates/node_modules/content-type/LICENSE +22 -0
  173. package/templates/node_modules/content-type/README.md +94 -0
  174. package/templates/node_modules/content-type/index.js +225 -0
  175. package/templates/node_modules/content-type/package.json +42 -0
  176. package/templates/node_modules/cookie/LICENSE +24 -0
  177. package/templates/node_modules/cookie/README.md +317 -0
  178. package/templates/node_modules/cookie/SECURITY.md +25 -0
  179. package/templates/node_modules/cookie/index.js +335 -0
  180. package/templates/node_modules/cookie/package.json +44 -0
  181. package/templates/node_modules/cookie-signature/History.md +70 -0
  182. package/templates/node_modules/cookie-signature/LICENSE +22 -0
  183. package/templates/node_modules/cookie-signature/Readme.md +23 -0
  184. package/templates/node_modules/cookie-signature/index.js +47 -0
  185. package/templates/node_modules/cookie-signature/package.json +24 -0
  186. package/templates/node_modules/debug/LICENSE +20 -0
  187. package/templates/node_modules/debug/README.md +481 -0
  188. package/templates/node_modules/debug/package.json +64 -0
  189. package/templates/node_modules/debug/src/browser.js +272 -0
  190. package/templates/node_modules/debug/src/common.js +292 -0
  191. package/templates/node_modules/debug/src/index.js +10 -0
  192. package/templates/node_modules/debug/src/node.js +263 -0
  193. package/templates/node_modules/depd/History.md +103 -0
  194. package/templates/node_modules/depd/LICENSE +22 -0
  195. package/templates/node_modules/depd/Readme.md +280 -0
  196. package/templates/node_modules/depd/index.js +538 -0
  197. package/templates/node_modules/depd/lib/browser/index.js +77 -0
  198. package/templates/node_modules/depd/package.json +45 -0
  199. package/templates/node_modules/dotenv/CHANGELOG.md +598 -0
  200. package/templates/node_modules/dotenv/LICENSE +23 -0
  201. package/templates/node_modules/dotenv/README-es.md +405 -0
  202. package/templates/node_modules/dotenv/README.md +692 -0
  203. package/templates/node_modules/dotenv/SECURITY.md +1 -0
  204. package/templates/node_modules/dotenv/config.d.ts +1 -0
  205. package/templates/node_modules/dotenv/config.js +9 -0
  206. package/templates/node_modules/dotenv/lib/cli-options.js +17 -0
  207. package/templates/node_modules/dotenv/lib/env-options.js +28 -0
  208. package/templates/node_modules/dotenv/lib/main.d.ts +179 -0
  209. package/templates/node_modules/dotenv/lib/main.js +434 -0
  210. package/templates/node_modules/dotenv/package.json +62 -0
  211. package/templates/node_modules/dunder-proto/.eslintrc +5 -0
  212. package/templates/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
  213. package/templates/node_modules/dunder-proto/.nycrc +13 -0
  214. package/templates/node_modules/dunder-proto/CHANGELOG.md +24 -0
  215. package/templates/node_modules/dunder-proto/LICENSE +21 -0
  216. package/templates/node_modules/dunder-proto/README.md +54 -0
  217. package/templates/node_modules/dunder-proto/get.d.ts +5 -0
  218. package/templates/node_modules/dunder-proto/get.js +30 -0
  219. package/templates/node_modules/dunder-proto/package.json +76 -0
  220. package/templates/node_modules/dunder-proto/set.d.ts +5 -0
  221. package/templates/node_modules/dunder-proto/set.js +35 -0
  222. package/templates/node_modules/dunder-proto/test/get.js +34 -0
  223. package/templates/node_modules/dunder-proto/test/index.js +4 -0
  224. package/templates/node_modules/dunder-proto/test/set.js +50 -0
  225. package/templates/node_modules/dunder-proto/tsconfig.json +9 -0
  226. package/templates/node_modules/ee-first/LICENSE +22 -0
  227. package/templates/node_modules/ee-first/README.md +80 -0
  228. package/templates/node_modules/ee-first/index.js +95 -0
  229. package/templates/node_modules/ee-first/package.json +29 -0
  230. package/templates/node_modules/encodeurl/LICENSE +22 -0
  231. package/templates/node_modules/encodeurl/README.md +109 -0
  232. package/templates/node_modules/encodeurl/index.js +60 -0
  233. package/templates/node_modules/encodeurl/package.json +40 -0
  234. package/templates/node_modules/es-define-property/.eslintrc +13 -0
  235. package/templates/node_modules/es-define-property/.github/FUNDING.yml +12 -0
  236. package/templates/node_modules/es-define-property/.nycrc +9 -0
  237. package/templates/node_modules/es-define-property/CHANGELOG.md +29 -0
  238. package/templates/node_modules/es-define-property/LICENSE +21 -0
  239. package/templates/node_modules/es-define-property/README.md +49 -0
  240. package/templates/node_modules/es-define-property/index.d.ts +3 -0
  241. package/templates/node_modules/es-define-property/index.js +14 -0
  242. package/templates/node_modules/es-define-property/package.json +81 -0
  243. package/templates/node_modules/es-define-property/test/index.js +56 -0
  244. package/templates/node_modules/es-define-property/tsconfig.json +10 -0
  245. package/templates/node_modules/es-errors/.eslintrc +5 -0
  246. package/templates/node_modules/es-errors/.github/FUNDING.yml +12 -0
  247. package/templates/node_modules/es-errors/CHANGELOG.md +40 -0
  248. package/templates/node_modules/es-errors/LICENSE +21 -0
  249. package/templates/node_modules/es-errors/README.md +55 -0
  250. package/templates/node_modules/es-errors/eval.d.ts +3 -0
  251. package/templates/node_modules/es-errors/eval.js +4 -0
  252. package/templates/node_modules/es-errors/index.d.ts +3 -0
  253. package/templates/node_modules/es-errors/index.js +4 -0
  254. package/templates/node_modules/es-errors/package.json +80 -0
  255. package/templates/node_modules/es-errors/range.d.ts +3 -0
  256. package/templates/node_modules/es-errors/range.js +4 -0
  257. package/templates/node_modules/es-errors/ref.d.ts +3 -0
  258. package/templates/node_modules/es-errors/ref.js +4 -0
  259. package/templates/node_modules/es-errors/syntax.d.ts +3 -0
  260. package/templates/node_modules/es-errors/syntax.js +4 -0
  261. package/templates/node_modules/es-errors/test/index.js +19 -0
  262. package/templates/node_modules/es-errors/tsconfig.json +49 -0
  263. package/templates/node_modules/es-errors/type.d.ts +3 -0
  264. package/templates/node_modules/es-errors/type.js +4 -0
  265. package/templates/node_modules/es-errors/uri.d.ts +3 -0
  266. package/templates/node_modules/es-errors/uri.js +4 -0
  267. package/templates/node_modules/es-object-atoms/.eslintrc +16 -0
  268. package/templates/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
  269. package/templates/node_modules/es-object-atoms/CHANGELOG.md +37 -0
  270. package/templates/node_modules/es-object-atoms/LICENSE +21 -0
  271. package/templates/node_modules/es-object-atoms/README.md +63 -0
  272. package/templates/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
  273. package/templates/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
  274. package/templates/node_modules/es-object-atoms/ToObject.d.ts +7 -0
  275. package/templates/node_modules/es-object-atoms/ToObject.js +10 -0
  276. package/templates/node_modules/es-object-atoms/index.d.ts +3 -0
  277. package/templates/node_modules/es-object-atoms/index.js +4 -0
  278. package/templates/node_modules/es-object-atoms/isObject.d.ts +3 -0
  279. package/templates/node_modules/es-object-atoms/isObject.js +6 -0
  280. package/templates/node_modules/es-object-atoms/package.json +80 -0
  281. package/templates/node_modules/es-object-atoms/test/index.js +38 -0
  282. package/templates/node_modules/es-object-atoms/tsconfig.json +6 -0
  283. package/templates/node_modules/escape-html/LICENSE +24 -0
  284. package/templates/node_modules/escape-html/Readme.md +43 -0
  285. package/templates/node_modules/escape-html/index.js +78 -0
  286. package/templates/node_modules/escape-html/package.json +24 -0
  287. package/templates/node_modules/etag/HISTORY.md +83 -0
  288. package/templates/node_modules/etag/LICENSE +22 -0
  289. package/templates/node_modules/etag/README.md +159 -0
  290. package/templates/node_modules/etag/index.js +131 -0
  291. package/templates/node_modules/etag/package.json +47 -0
  292. package/templates/node_modules/express/LICENSE +24 -0
  293. package/templates/node_modules/express/Readme.md +276 -0
  294. package/templates/node_modules/express/index.js +11 -0
  295. package/templates/node_modules/express/lib/application.js +631 -0
  296. package/templates/node_modules/express/lib/express.js +81 -0
  297. package/templates/node_modules/express/lib/request.js +514 -0
  298. package/templates/node_modules/express/lib/response.js +1053 -0
  299. package/templates/node_modules/express/lib/utils.js +271 -0
  300. package/templates/node_modules/express/lib/view.js +205 -0
  301. package/templates/node_modules/express/package.json +99 -0
  302. package/templates/node_modules/finalhandler/HISTORY.md +239 -0
  303. package/templates/node_modules/finalhandler/LICENSE +22 -0
  304. package/templates/node_modules/finalhandler/README.md +150 -0
  305. package/templates/node_modules/finalhandler/index.js +293 -0
  306. package/templates/node_modules/finalhandler/package.json +47 -0
  307. package/templates/node_modules/forwarded/HISTORY.md +21 -0
  308. package/templates/node_modules/forwarded/LICENSE +22 -0
  309. package/templates/node_modules/forwarded/README.md +57 -0
  310. package/templates/node_modules/forwarded/index.js +90 -0
  311. package/templates/node_modules/forwarded/package.json +45 -0
  312. package/templates/node_modules/fresh/HISTORY.md +80 -0
  313. package/templates/node_modules/fresh/LICENSE +23 -0
  314. package/templates/node_modules/fresh/README.md +117 -0
  315. package/templates/node_modules/fresh/index.js +136 -0
  316. package/templates/node_modules/fresh/package.json +46 -0
  317. package/templates/node_modules/function-bind/.eslintrc +21 -0
  318. package/templates/node_modules/function-bind/.github/FUNDING.yml +12 -0
  319. package/templates/node_modules/function-bind/.github/SECURITY.md +3 -0
  320. package/templates/node_modules/function-bind/.nycrc +13 -0
  321. package/templates/node_modules/function-bind/CHANGELOG.md +136 -0
  322. package/templates/node_modules/function-bind/LICENSE +20 -0
  323. package/templates/node_modules/function-bind/README.md +46 -0
  324. package/templates/node_modules/function-bind/implementation.js +84 -0
  325. package/templates/node_modules/function-bind/index.js +5 -0
  326. package/templates/node_modules/function-bind/package.json +87 -0
  327. package/templates/node_modules/function-bind/test/.eslintrc +9 -0
  328. package/templates/node_modules/function-bind/test/index.js +252 -0
  329. package/templates/node_modules/get-intrinsic/.eslintrc +42 -0
  330. package/templates/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
  331. package/templates/node_modules/get-intrinsic/.nycrc +9 -0
  332. package/templates/node_modules/get-intrinsic/CHANGELOG.md +186 -0
  333. package/templates/node_modules/get-intrinsic/LICENSE +21 -0
  334. package/templates/node_modules/get-intrinsic/README.md +71 -0
  335. package/templates/node_modules/get-intrinsic/index.js +378 -0
  336. package/templates/node_modules/get-intrinsic/package.json +97 -0
  337. package/templates/node_modules/get-intrinsic/test/GetIntrinsic.js +274 -0
  338. package/templates/node_modules/get-proto/.eslintrc +10 -0
  339. package/templates/node_modules/get-proto/.github/FUNDING.yml +12 -0
  340. package/templates/node_modules/get-proto/.nycrc +9 -0
  341. package/templates/node_modules/get-proto/CHANGELOG.md +21 -0
  342. package/templates/node_modules/get-proto/LICENSE +21 -0
  343. package/templates/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
  344. package/templates/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
  345. package/templates/node_modules/get-proto/README.md +50 -0
  346. package/templates/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
  347. package/templates/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
  348. package/templates/node_modules/get-proto/index.d.ts +5 -0
  349. package/templates/node_modules/get-proto/index.js +27 -0
  350. package/templates/node_modules/get-proto/package.json +81 -0
  351. package/templates/node_modules/get-proto/test/index.js +68 -0
  352. package/templates/node_modules/get-proto/tsconfig.json +9 -0
  353. package/templates/node_modules/gopd/.eslintrc +16 -0
  354. package/templates/node_modules/gopd/.github/FUNDING.yml +12 -0
  355. package/templates/node_modules/gopd/CHANGELOG.md +45 -0
  356. package/templates/node_modules/gopd/LICENSE +21 -0
  357. package/templates/node_modules/gopd/README.md +40 -0
  358. package/templates/node_modules/gopd/gOPD.d.ts +1 -0
  359. package/templates/node_modules/gopd/gOPD.js +4 -0
  360. package/templates/node_modules/gopd/index.d.ts +5 -0
  361. package/templates/node_modules/gopd/index.js +15 -0
  362. package/templates/node_modules/gopd/package.json +77 -0
  363. package/templates/node_modules/gopd/test/index.js +36 -0
  364. package/templates/node_modules/gopd/tsconfig.json +9 -0
  365. package/templates/node_modules/has-symbols/.eslintrc +11 -0
  366. package/templates/node_modules/has-symbols/.github/FUNDING.yml +12 -0
  367. package/templates/node_modules/has-symbols/.nycrc +9 -0
  368. package/templates/node_modules/has-symbols/CHANGELOG.md +91 -0
  369. package/templates/node_modules/has-symbols/LICENSE +21 -0
  370. package/templates/node_modules/has-symbols/README.md +46 -0
  371. package/templates/node_modules/has-symbols/index.d.ts +3 -0
  372. package/templates/node_modules/has-symbols/index.js +14 -0
  373. package/templates/node_modules/has-symbols/package.json +111 -0
  374. package/templates/node_modules/has-symbols/shams.d.ts +3 -0
  375. package/templates/node_modules/has-symbols/shams.js +45 -0
  376. package/templates/node_modules/has-symbols/test/index.js +22 -0
  377. package/templates/node_modules/has-symbols/test/shams/core-js.js +29 -0
  378. package/templates/node_modules/has-symbols/test/shams/get-own-property-symbols.js +29 -0
  379. package/templates/node_modules/has-symbols/test/tests.js +58 -0
  380. package/templates/node_modules/has-symbols/tsconfig.json +10 -0
  381. package/templates/node_modules/hasown/.eslintrc +5 -0
  382. package/templates/node_modules/hasown/.github/FUNDING.yml +12 -0
  383. package/templates/node_modules/hasown/.nycrc +13 -0
  384. package/templates/node_modules/hasown/CHANGELOG.md +40 -0
  385. package/templates/node_modules/hasown/LICENSE +21 -0
  386. package/templates/node_modules/hasown/README.md +40 -0
  387. package/templates/node_modules/hasown/index.d.ts +3 -0
  388. package/templates/node_modules/hasown/index.js +8 -0
  389. package/templates/node_modules/hasown/package.json +92 -0
  390. package/templates/node_modules/hasown/tsconfig.json +6 -0
  391. package/templates/node_modules/http-errors/HISTORY.md +186 -0
  392. package/templates/node_modules/http-errors/LICENSE +23 -0
  393. package/templates/node_modules/http-errors/README.md +169 -0
  394. package/templates/node_modules/http-errors/index.js +290 -0
  395. package/templates/node_modules/http-errors/package.json +54 -0
  396. package/templates/node_modules/iconv-lite/Changelog.md +241 -0
  397. package/templates/node_modules/iconv-lite/LICENSE +21 -0
  398. package/templates/node_modules/iconv-lite/README.md +138 -0
  399. package/templates/node_modules/iconv-lite/encodings/dbcs-codec.js +532 -0
  400. package/templates/node_modules/iconv-lite/encodings/dbcs-data.js +185 -0
  401. package/templates/node_modules/iconv-lite/encodings/index.js +23 -0
  402. package/templates/node_modules/iconv-lite/encodings/internal.js +218 -0
  403. package/templates/node_modules/iconv-lite/encodings/sbcs-codec.js +75 -0
  404. package/templates/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
  405. package/templates/node_modules/iconv-lite/encodings/sbcs-data.js +178 -0
  406. package/templates/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
  407. package/templates/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
  408. package/templates/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
  409. package/templates/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
  410. package/templates/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
  411. package/templates/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
  412. package/templates/node_modules/iconv-lite/encodings/tables/gbk-added.json +56 -0
  413. package/templates/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
  414. package/templates/node_modules/iconv-lite/encodings/utf16.js +187 -0
  415. package/templates/node_modules/iconv-lite/encodings/utf32.js +307 -0
  416. package/templates/node_modules/iconv-lite/encodings/utf7.js +283 -0
  417. package/templates/node_modules/iconv-lite/lib/bom-handling.js +48 -0
  418. package/templates/node_modules/iconv-lite/lib/helpers/merge-exports.js +13 -0
  419. package/templates/node_modules/iconv-lite/lib/index.d.ts +131 -0
  420. package/templates/node_modules/iconv-lite/lib/index.js +183 -0
  421. package/templates/node_modules/iconv-lite/lib/streams.js +105 -0
  422. package/templates/node_modules/iconv-lite/package.json +65 -0
  423. package/templates/node_modules/iconv-lite/types/encodings.d.ts +423 -0
  424. package/templates/node_modules/inherits/LICENSE +16 -0
  425. package/templates/node_modules/inherits/README.md +42 -0
  426. package/templates/node_modules/inherits/inherits.js +9 -0
  427. package/templates/node_modules/inherits/inherits_browser.js +27 -0
  428. package/templates/node_modules/inherits/package.json +29 -0
  429. package/templates/node_modules/ipaddr.js/LICENSE +19 -0
  430. package/templates/node_modules/ipaddr.js/README.md +233 -0
  431. package/templates/node_modules/ipaddr.js/ipaddr.min.js +1 -0
  432. package/templates/node_modules/ipaddr.js/lib/ipaddr.js +673 -0
  433. package/templates/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +68 -0
  434. package/templates/node_modules/ipaddr.js/package.json +35 -0
  435. package/templates/node_modules/is-promise/LICENSE +19 -0
  436. package/templates/node_modules/is-promise/index.d.ts +2 -0
  437. package/templates/node_modules/is-promise/index.js +6 -0
  438. package/templates/node_modules/is-promise/index.mjs +3 -0
  439. package/templates/node_modules/is-promise/package.json +30 -0
  440. package/templates/node_modules/is-promise/readme.md +33 -0
  441. package/templates/node_modules/kareem/.nyc_output/fa57d6c4-9e78-4624-9229-f77b87a07481.json +1 -0
  442. package/templates/node_modules/kareem/.nyc_output/processinfo/fa57d6c4-9e78-4624-9229-f77b87a07481.json +1 -0
  443. package/templates/node_modules/kareem/.nyc_output/processinfo/index.json +1 -0
  444. package/templates/node_modules/kareem/CHANGELOG.md +830 -0
  445. package/templates/node_modules/kareem/LICENSE +202 -0
  446. package/templates/node_modules/kareem/README.md +408 -0
  447. package/templates/node_modules/kareem/SECURITY.md +5 -0
  448. package/templates/node_modules/kareem/coverage/lcov-report/base.css +224 -0
  449. package/templates/node_modules/kareem/coverage/lcov-report/block-navigation.js +87 -0
  450. package/templates/node_modules/kareem/coverage/lcov-report/favicon.png +0 -0
  451. package/templates/node_modules/kareem/coverage/lcov-report/index.html +116 -0
  452. package/templates/node_modules/kareem/coverage/lcov-report/index.js.html +1603 -0
  453. package/templates/node_modules/kareem/coverage/lcov-report/prettify.css +1 -0
  454. package/templates/node_modules/kareem/coverage/lcov-report/prettify.js +2 -0
  455. package/templates/node_modules/kareem/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  456. package/templates/node_modules/kareem/coverage/lcov-report/sorter.js +196 -0
  457. package/templates/node_modules/kareem/coverage/lcov.info +423 -0
  458. package/templates/node_modules/kareem/index.d.ts +31 -0
  459. package/templates/node_modules/kareem/index.js +509 -0
  460. package/templates/node_modules/kareem/package.json +28 -0
  461. package/templates/node_modules/math-intrinsics/.eslintrc +16 -0
  462. package/templates/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
  463. package/templates/node_modules/math-intrinsics/CHANGELOG.md +24 -0
  464. package/templates/node_modules/math-intrinsics/LICENSE +21 -0
  465. package/templates/node_modules/math-intrinsics/README.md +50 -0
  466. package/templates/node_modules/math-intrinsics/abs.d.ts +1 -0
  467. package/templates/node_modules/math-intrinsics/abs.js +4 -0
  468. package/templates/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
  469. package/templates/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
  470. package/templates/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
  471. package/templates/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
  472. package/templates/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
  473. package/templates/node_modules/math-intrinsics/constants/maxValue.js +5 -0
  474. package/templates/node_modules/math-intrinsics/floor.d.ts +1 -0
  475. package/templates/node_modules/math-intrinsics/floor.js +4 -0
  476. package/templates/node_modules/math-intrinsics/isFinite.d.ts +3 -0
  477. package/templates/node_modules/math-intrinsics/isFinite.js +12 -0
  478. package/templates/node_modules/math-intrinsics/isInteger.d.ts +3 -0
  479. package/templates/node_modules/math-intrinsics/isInteger.js +16 -0
  480. package/templates/node_modules/math-intrinsics/isNaN.d.ts +1 -0
  481. package/templates/node_modules/math-intrinsics/isNaN.js +6 -0
  482. package/templates/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
  483. package/templates/node_modules/math-intrinsics/isNegativeZero.js +6 -0
  484. package/templates/node_modules/math-intrinsics/max.d.ts +1 -0
  485. package/templates/node_modules/math-intrinsics/max.js +4 -0
  486. package/templates/node_modules/math-intrinsics/min.d.ts +1 -0
  487. package/templates/node_modules/math-intrinsics/min.js +4 -0
  488. package/templates/node_modules/math-intrinsics/mod.d.ts +3 -0
  489. package/templates/node_modules/math-intrinsics/mod.js +9 -0
  490. package/templates/node_modules/math-intrinsics/package.json +86 -0
  491. package/templates/node_modules/math-intrinsics/pow.d.ts +1 -0
  492. package/templates/node_modules/math-intrinsics/pow.js +4 -0
  493. package/templates/node_modules/math-intrinsics/round.d.ts +1 -0
  494. package/templates/node_modules/math-intrinsics/round.js +4 -0
  495. package/templates/node_modules/math-intrinsics/sign.d.ts +3 -0
  496. package/templates/node_modules/math-intrinsics/sign.js +11 -0
  497. package/templates/node_modules/math-intrinsics/test/index.js +192 -0
  498. package/templates/node_modules/math-intrinsics/tsconfig.json +3 -0
  499. package/templates/node_modules/media-typer/HISTORY.md +50 -0
  500. package/templates/node_modules/media-typer/LICENSE +22 -0
  501. package/templates/node_modules/media-typer/README.md +93 -0
  502. package/templates/node_modules/media-typer/index.js +143 -0
  503. package/templates/node_modules/media-typer/package.json +33 -0
  504. package/templates/node_modules/memory-pager/.travis.yml +4 -0
  505. package/templates/node_modules/memory-pager/LICENSE +21 -0
  506. package/templates/node_modules/memory-pager/README.md +65 -0
  507. package/templates/node_modules/memory-pager/index.js +160 -0
  508. package/templates/node_modules/memory-pager/package.json +24 -0
  509. package/templates/node_modules/memory-pager/test.js +80 -0
  510. package/templates/node_modules/merge-descriptors/index.d.ts +11 -0
  511. package/templates/node_modules/merge-descriptors/index.js +26 -0
  512. package/templates/node_modules/merge-descriptors/license +11 -0
  513. package/templates/node_modules/merge-descriptors/package.json +50 -0
  514. package/templates/node_modules/merge-descriptors/readme.md +55 -0
  515. package/templates/node_modules/mime-db/HISTORY.md +541 -0
  516. package/templates/node_modules/mime-db/LICENSE +23 -0
  517. package/templates/node_modules/mime-db/README.md +109 -0
  518. package/templates/node_modules/mime-db/db.json +9342 -0
  519. package/templates/node_modules/mime-db/index.js +12 -0
  520. package/templates/node_modules/mime-db/package.json +56 -0
  521. package/templates/node_modules/mime-types/HISTORY.md +428 -0
  522. package/templates/node_modules/mime-types/LICENSE +23 -0
  523. package/templates/node_modules/mime-types/README.md +126 -0
  524. package/templates/node_modules/mime-types/index.js +211 -0
  525. package/templates/node_modules/mime-types/mimeScore.js +57 -0
  526. package/templates/node_modules/mime-types/package.json +49 -0
  527. package/templates/node_modules/mongodb/LICENSE.md +201 -0
  528. package/templates/node_modules/mongodb/README.md +355 -0
  529. package/templates/node_modules/mongodb/etc/prepare.js +12 -0
  530. package/templates/node_modules/mongodb/lib/admin.js +136 -0
  531. package/templates/node_modules/mongodb/lib/admin.js.map +1 -0
  532. package/templates/node_modules/mongodb/lib/bson.js +84 -0
  533. package/templates/node_modules/mongodb/lib/bson.js.map +1 -0
  534. package/templates/node_modules/mongodb/lib/bulk/common.js +835 -0
  535. package/templates/node_modules/mongodb/lib/bulk/common.js.map +1 -0
  536. package/templates/node_modules/mongodb/lib/bulk/ordered.js +67 -0
  537. package/templates/node_modules/mongodb/lib/bulk/ordered.js.map +1 -0
  538. package/templates/node_modules/mongodb/lib/bulk/unordered.js +92 -0
  539. package/templates/node_modules/mongodb/lib/bulk/unordered.js.map +1 -0
  540. package/templates/node_modules/mongodb/lib/change_stream.js +511 -0
  541. package/templates/node_modules/mongodb/lib/change_stream.js.map +1 -0
  542. package/templates/node_modules/mongodb/lib/client-side-encryption/auto_encrypter.js +272 -0
  543. package/templates/node_modules/mongodb/lib/client-side-encryption/auto_encrypter.js.map +1 -0
  544. package/templates/node_modules/mongodb/lib/client-side-encryption/client_encryption.js +609 -0
  545. package/templates/node_modules/mongodb/lib/client-side-encryption/client_encryption.js.map +1 -0
  546. package/templates/node_modules/mongodb/lib/client-side-encryption/errors.js +138 -0
  547. package/templates/node_modules/mongodb/lib/client-side-encryption/errors.js.map +1 -0
  548. package/templates/node_modules/mongodb/lib/client-side-encryption/mongocryptd_manager.js +85 -0
  549. package/templates/node_modules/mongodb/lib/client-side-encryption/mongocryptd_manager.js.map +1 -0
  550. package/templates/node_modules/mongodb/lib/client-side-encryption/providers/aws.js +23 -0
  551. package/templates/node_modules/mongodb/lib/client-side-encryption/providers/aws.js.map +1 -0
  552. package/templates/node_modules/mongodb/lib/client-side-encryption/providers/azure.js +132 -0
  553. package/templates/node_modules/mongodb/lib/client-side-encryption/providers/azure.js.map +1 -0
  554. package/templates/node_modules/mongodb/lib/client-side-encryption/providers/gcp.js +16 -0
  555. package/templates/node_modules/mongodb/lib/client-side-encryption/providers/gcp.js.map +1 -0
  556. package/templates/node_modules/mongodb/lib/client-side-encryption/providers/index.js +43 -0
  557. package/templates/node_modules/mongodb/lib/client-side-encryption/providers/index.js.map +1 -0
  558. package/templates/node_modules/mongodb/lib/client-side-encryption/state_machine.js +426 -0
  559. package/templates/node_modules/mongodb/lib/client-side-encryption/state_machine.js.map +1 -0
  560. package/templates/node_modules/mongodb/lib/cmap/auth/auth_provider.js +51 -0
  561. package/templates/node_modules/mongodb/lib/cmap/auth/auth_provider.js.map +1 -0
  562. package/templates/node_modules/mongodb/lib/cmap/auth/aws_temporary_credentials.js +102 -0
  563. package/templates/node_modules/mongodb/lib/cmap/auth/aws_temporary_credentials.js.map +1 -0
  564. package/templates/node_modules/mongodb/lib/cmap/auth/gssapi.js +154 -0
  565. package/templates/node_modules/mongodb/lib/cmap/auth/gssapi.js.map +1 -0
  566. package/templates/node_modules/mongodb/lib/cmap/auth/mongo_credentials.js +168 -0
  567. package/templates/node_modules/mongodb/lib/cmap/auth/mongo_credentials.js.map +1 -0
  568. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_aws.js +133 -0
  569. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_aws.js.map +1 -0
  570. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.js +84 -0
  571. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.js.map +1 -0
  572. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.js +62 -0
  573. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.js.map +1 -0
  574. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/callback_workflow.js +141 -0
  575. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/callback_workflow.js.map +1 -0
  576. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/command_builders.js +44 -0
  577. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/command_builders.js.map +1 -0
  578. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.js +39 -0
  579. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.js.map +1 -0
  580. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/human_callback_workflow.js +122 -0
  581. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/human_callback_workflow.js.map +1 -0
  582. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.js +31 -0
  583. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.js.map +1 -0
  584. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_cache.js +52 -0
  585. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_cache.js.map +1 -0
  586. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.js +22 -0
  587. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.js.map +1 -0
  588. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc.js +73 -0
  589. package/templates/node_modules/mongodb/lib/cmap/auth/mongodb_oidc.js.map +1 -0
  590. package/templates/node_modules/mongodb/lib/cmap/auth/plain.js +26 -0
  591. package/templates/node_modules/mongodb/lib/cmap/auth/plain.js.map +1 -0
  592. package/templates/node_modules/mongodb/lib/cmap/auth/providers.js +22 -0
  593. package/templates/node_modules/mongodb/lib/cmap/auth/providers.js.map +1 -0
  594. package/templates/node_modules/mongodb/lib/cmap/auth/scram.js +254 -0
  595. package/templates/node_modules/mongodb/lib/cmap/auth/scram.js.map +1 -0
  596. package/templates/node_modules/mongodb/lib/cmap/auth/x509.js +36 -0
  597. package/templates/node_modules/mongodb/lib/cmap/auth/x509.js.map +1 -0
  598. package/templates/node_modules/mongodb/lib/cmap/command_monitoring_events.js +223 -0
  599. package/templates/node_modules/mongodb/lib/cmap/command_monitoring_events.js.map +1 -0
  600. package/templates/node_modules/mongodb/lib/cmap/commands.js +535 -0
  601. package/templates/node_modules/mongodb/lib/cmap/commands.js.map +1 -0
  602. package/templates/node_modules/mongodb/lib/cmap/connect.js +366 -0
  603. package/templates/node_modules/mongodb/lib/cmap/connect.js.map +1 -0
  604. package/templates/node_modules/mongodb/lib/cmap/connection.js +571 -0
  605. package/templates/node_modules/mongodb/lib/cmap/connection.js.map +1 -0
  606. package/templates/node_modules/mongodb/lib/cmap/connection_pool.js +558 -0
  607. package/templates/node_modules/mongodb/lib/cmap/connection_pool.js.map +1 -0
  608. package/templates/node_modules/mongodb/lib/cmap/connection_pool_events.js +190 -0
  609. package/templates/node_modules/mongodb/lib/cmap/connection_pool_events.js.map +1 -0
  610. package/templates/node_modules/mongodb/lib/cmap/errors.js +108 -0
  611. package/templates/node_modules/mongodb/lib/cmap/errors.js.map +1 -0
  612. package/templates/node_modules/mongodb/lib/cmap/handshake/client_metadata.js +241 -0
  613. package/templates/node_modules/mongodb/lib/cmap/handshake/client_metadata.js.map +1 -0
  614. package/templates/node_modules/mongodb/lib/cmap/metrics.js +62 -0
  615. package/templates/node_modules/mongodb/lib/cmap/metrics.js.map +1 -0
  616. package/templates/node_modules/mongodb/lib/cmap/stream_description.js +70 -0
  617. package/templates/node_modules/mongodb/lib/cmap/stream_description.js.map +1 -0
  618. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/compression.js +163 -0
  619. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/compression.js.map +1 -0
  620. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/constants.js +21 -0
  621. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/constants.js.map +1 -0
  622. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/on_data.js +111 -0
  623. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/on_data.js.map +1 -0
  624. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/on_demand/document.js +222 -0
  625. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/on_demand/document.js.map +1 -0
  626. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/responses.js +315 -0
  627. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/responses.js.map +1 -0
  628. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/shared.js +35 -0
  629. package/templates/node_modules/mongodb/lib/cmap/wire_protocol/shared.js.map +1 -0
  630. package/templates/node_modules/mongodb/lib/collection.js +751 -0
  631. package/templates/node_modules/mongodb/lib/collection.js.map +1 -0
  632. package/templates/node_modules/mongodb/lib/connection_string.js +1089 -0
  633. package/templates/node_modules/mongodb/lib/connection_string.js.map +1 -0
  634. package/templates/node_modules/mongodb/lib/constants.js +170 -0
  635. package/templates/node_modules/mongodb/lib/constants.js.map +1 -0
  636. package/templates/node_modules/mongodb/lib/cursor/abstract_cursor.js +924 -0
  637. package/templates/node_modules/mongodb/lib/cursor/abstract_cursor.js.map +1 -0
  638. package/templates/node_modules/mongodb/lib/cursor/aggregation_cursor.js +164 -0
  639. package/templates/node_modules/mongodb/lib/cursor/aggregation_cursor.js.map +1 -0
  640. package/templates/node_modules/mongodb/lib/cursor/change_stream_cursor.js +104 -0
  641. package/templates/node_modules/mongodb/lib/cursor/change_stream_cursor.js.map +1 -0
  642. package/templates/node_modules/mongodb/lib/cursor/client_bulk_write_cursor.js +52 -0
  643. package/templates/node_modules/mongodb/lib/cursor/client_bulk_write_cursor.js.map +1 -0
  644. package/templates/node_modules/mongodb/lib/cursor/explainable_cursor.js +36 -0
  645. package/templates/node_modules/mongodb/lib/cursor/explainable_cursor.js.map +1 -0
  646. package/templates/node_modules/mongodb/lib/cursor/find_cursor.js +399 -0
  647. package/templates/node_modules/mongodb/lib/cursor/find_cursor.js.map +1 -0
  648. package/templates/node_modules/mongodb/lib/cursor/list_collections_cursor.js +34 -0
  649. package/templates/node_modules/mongodb/lib/cursor/list_collections_cursor.js.map +1 -0
  650. package/templates/node_modules/mongodb/lib/cursor/list_indexes_cursor.js +32 -0
  651. package/templates/node_modules/mongodb/lib/cursor/list_indexes_cursor.js.map +1 -0
  652. package/templates/node_modules/mongodb/lib/cursor/list_search_indexes_cursor.js +14 -0
  653. package/templates/node_modules/mongodb/lib/cursor/list_search_indexes_cursor.js.map +1 -0
  654. package/templates/node_modules/mongodb/lib/cursor/run_command_cursor.js +94 -0
  655. package/templates/node_modules/mongodb/lib/cursor/run_command_cursor.js.map +1 -0
  656. package/templates/node_modules/mongodb/lib/db.js +420 -0
  657. package/templates/node_modules/mongodb/lib/db.js.map +1 -0
  658. package/templates/node_modules/mongodb/lib/deps.js +125 -0
  659. package/templates/node_modules/mongodb/lib/deps.js.map +1 -0
  660. package/templates/node_modules/mongodb/lib/encrypter.js +106 -0
  661. package/templates/node_modules/mongodb/lib/encrypter.js.map +1 -0
  662. package/templates/node_modules/mongodb/lib/error.js +1383 -0
  663. package/templates/node_modules/mongodb/lib/error.js.map +1 -0
  664. package/templates/node_modules/mongodb/lib/explain.js +59 -0
  665. package/templates/node_modules/mongodb/lib/explain.js.map +1 -0
  666. package/templates/node_modules/mongodb/lib/gridfs/download.js +305 -0
  667. package/templates/node_modules/mongodb/lib/gridfs/download.js.map +1 -0
  668. package/templates/node_modules/mongodb/lib/gridfs/index.js +164 -0
  669. package/templates/node_modules/mongodb/lib/gridfs/index.js.map +1 -0
  670. package/templates/node_modules/mongodb/lib/gridfs/upload.js +358 -0
  671. package/templates/node_modules/mongodb/lib/gridfs/upload.js.map +1 -0
  672. package/templates/node_modules/mongodb/lib/index.js +193 -0
  673. package/templates/node_modules/mongodb/lib/index.js.map +1 -0
  674. package/templates/node_modules/mongodb/lib/mongo_client.js +557 -0
  675. package/templates/node_modules/mongodb/lib/mongo_client.js.map +1 -0
  676. package/templates/node_modules/mongodb/lib/mongo_client_auth_providers.js +80 -0
  677. package/templates/node_modules/mongodb/lib/mongo_client_auth_providers.js.map +1 -0
  678. package/templates/node_modules/mongodb/lib/mongo_logger.js +649 -0
  679. package/templates/node_modules/mongodb/lib/mongo_logger.js.map +1 -0
  680. package/templates/node_modules/mongodb/lib/mongo_types.js +56 -0
  681. package/templates/node_modules/mongodb/lib/mongo_types.js.map +1 -0
  682. package/templates/node_modules/mongodb/lib/operations/aggregate.js +90 -0
  683. package/templates/node_modules/mongodb/lib/operations/aggregate.js.map +1 -0
  684. package/templates/node_modules/mongodb/lib/operations/client_bulk_write/client_bulk_write.js +51 -0
  685. package/templates/node_modules/mongodb/lib/operations/client_bulk_write/client_bulk_write.js.map +1 -0
  686. package/templates/node_modules/mongodb/lib/operations/client_bulk_write/command_builder.js +340 -0
  687. package/templates/node_modules/mongodb/lib/operations/client_bulk_write/command_builder.js.map +1 -0
  688. package/templates/node_modules/mongodb/lib/operations/client_bulk_write/common.js +3 -0
  689. package/templates/node_modules/mongodb/lib/operations/client_bulk_write/common.js.map +1 -0
  690. package/templates/node_modules/mongodb/lib/operations/client_bulk_write/executor.js +120 -0
  691. package/templates/node_modules/mongodb/lib/operations/client_bulk_write/executor.js.map +1 -0
  692. package/templates/node_modules/mongodb/lib/operations/client_bulk_write/results_merger.js +204 -0
  693. package/templates/node_modules/mongodb/lib/operations/client_bulk_write/results_merger.js.map +1 -0
  694. package/templates/node_modules/mongodb/lib/operations/command.js +83 -0
  695. package/templates/node_modules/mongodb/lib/operations/command.js.map +1 -0
  696. package/templates/node_modules/mongodb/lib/operations/count.js +45 -0
  697. package/templates/node_modules/mongodb/lib/operations/count.js.map +1 -0
  698. package/templates/node_modules/mongodb/lib/operations/create_collection.js +109 -0
  699. package/templates/node_modules/mongodb/lib/operations/create_collection.js.map +1 -0
  700. package/templates/node_modules/mongodb/lib/operations/delete.js +125 -0
  701. package/templates/node_modules/mongodb/lib/operations/delete.js.map +1 -0
  702. package/templates/node_modules/mongodb/lib/operations/distinct.js +61 -0
  703. package/templates/node_modules/mongodb/lib/operations/distinct.js.map +1 -0
  704. package/templates/node_modules/mongodb/lib/operations/drop.js +93 -0
  705. package/templates/node_modules/mongodb/lib/operations/drop.js.map +1 -0
  706. package/templates/node_modules/mongodb/lib/operations/end_sessions.js +34 -0
  707. package/templates/node_modules/mongodb/lib/operations/end_sessions.js.map +1 -0
  708. package/templates/node_modules/mongodb/lib/operations/estimated_document_count.js +41 -0
  709. package/templates/node_modules/mongodb/lib/operations/estimated_document_count.js.map +1 -0
  710. package/templates/node_modules/mongodb/lib/operations/execute_operation.js +238 -0
  711. package/templates/node_modules/mongodb/lib/operations/execute_operation.js.map +1 -0
  712. package/templates/node_modules/mongodb/lib/operations/find.js +148 -0
  713. package/templates/node_modules/mongodb/lib/operations/find.js.map +1 -0
  714. package/templates/node_modules/mongodb/lib/operations/find_and_modify.js +158 -0
  715. package/templates/node_modules/mongodb/lib/operations/find_and_modify.js.map +1 -0
  716. package/templates/node_modules/mongodb/lib/operations/get_more.js +62 -0
  717. package/templates/node_modules/mongodb/lib/operations/get_more.js.map +1 -0
  718. package/templates/node_modules/mongodb/lib/operations/indexes.js +186 -0
  719. package/templates/node_modules/mongodb/lib/operations/indexes.js.map +1 -0
  720. package/templates/node_modules/mongodb/lib/operations/insert.js +70 -0
  721. package/templates/node_modules/mongodb/lib/operations/insert.js.map +1 -0
  722. package/templates/node_modules/mongodb/lib/operations/kill_cursors.js +43 -0
  723. package/templates/node_modules/mongodb/lib/operations/kill_cursors.js.map +1 -0
  724. package/templates/node_modules/mongodb/lib/operations/list_collections.js +53 -0
  725. package/templates/node_modules/mongodb/lib/operations/list_collections.js.map +1 -0
  726. package/templates/node_modules/mongodb/lib/operations/list_databases.js +40 -0
  727. package/templates/node_modules/mongodb/lib/operations/list_databases.js.map +1 -0
  728. package/templates/node_modules/mongodb/lib/operations/operation.js +102 -0
  729. package/templates/node_modules/mongodb/lib/operations/operation.js.map +1 -0
  730. package/templates/node_modules/mongodb/lib/operations/profiling_level.js +43 -0
  731. package/templates/node_modules/mongodb/lib/operations/profiling_level.js.map +1 -0
  732. package/templates/node_modules/mongodb/lib/operations/remove_user.js +27 -0
  733. package/templates/node_modules/mongodb/lib/operations/remove_user.js.map +1 -0
  734. package/templates/node_modules/mongodb/lib/operations/rename.js +38 -0
  735. package/templates/node_modules/mongodb/lib/operations/rename.js.map +1 -0
  736. package/templates/node_modules/mongodb/lib/operations/run_command.js +47 -0
  737. package/templates/node_modules/mongodb/lib/operations/run_command.js.map +1 -0
  738. package/templates/node_modules/mongodb/lib/operations/search_indexes/create.js +33 -0
  739. package/templates/node_modules/mongodb/lib/operations/search_indexes/create.js.map +1 -0
  740. package/templates/node_modules/mongodb/lib/operations/search_indexes/drop.js +43 -0
  741. package/templates/node_modules/mongodb/lib/operations/search_indexes/drop.js.map +1 -0
  742. package/templates/node_modules/mongodb/lib/operations/search_indexes/update.js +35 -0
  743. package/templates/node_modules/mongodb/lib/operations/search_indexes/update.js.map +1 -0
  744. package/templates/node_modules/mongodb/lib/operations/set_profiling_level.js +53 -0
  745. package/templates/node_modules/mongodb/lib/operations/set_profiling_level.js.map +1 -0
  746. package/templates/node_modules/mongodb/lib/operations/stats.js +27 -0
  747. package/templates/node_modules/mongodb/lib/operations/stats.js.map +1 -0
  748. package/templates/node_modules/mongodb/lib/operations/update.js +188 -0
  749. package/templates/node_modules/mongodb/lib/operations/update.js.map +1 -0
  750. package/templates/node_modules/mongodb/lib/operations/validate_collection.js +37 -0
  751. package/templates/node_modules/mongodb/lib/operations/validate_collection.js.map +1 -0
  752. package/templates/node_modules/mongodb/lib/read_concern.js +73 -0
  753. package/templates/node_modules/mongodb/lib/read_concern.js.map +1 -0
  754. package/templates/node_modules/mongodb/lib/read_preference.js +191 -0
  755. package/templates/node_modules/mongodb/lib/read_preference.js.map +1 -0
  756. package/templates/node_modules/mongodb/lib/sdam/common.js +49 -0
  757. package/templates/node_modules/mongodb/lib/sdam/common.js.map +1 -0
  758. package/templates/node_modules/mongodb/lib/sdam/events.js +146 -0
  759. package/templates/node_modules/mongodb/lib/sdam/events.js.map +1 -0
  760. package/templates/node_modules/mongodb/lib/sdam/monitor.js +544 -0
  761. package/templates/node_modules/mongodb/lib/sdam/monitor.js.map +1 -0
  762. package/templates/node_modules/mongodb/lib/sdam/server.js +392 -0
  763. package/templates/node_modules/mongodb/lib/sdam/server.js.map +1 -0
  764. package/templates/node_modules/mongodb/lib/sdam/server_description.js +204 -0
  765. package/templates/node_modules/mongodb/lib/sdam/server_description.js.map +1 -0
  766. package/templates/node_modules/mongodb/lib/sdam/server_selection.js +231 -0
  767. package/templates/node_modules/mongodb/lib/sdam/server_selection.js.map +1 -0
  768. package/templates/node_modules/mongodb/lib/sdam/server_selection_events.js +85 -0
  769. package/templates/node_modules/mongodb/lib/sdam/server_selection_events.js.map +1 -0
  770. package/templates/node_modules/mongodb/lib/sdam/srv_polling.js +108 -0
  771. package/templates/node_modules/mongodb/lib/sdam/srv_polling.js.map +1 -0
  772. package/templates/node_modules/mongodb/lib/sdam/topology.js +650 -0
  773. package/templates/node_modules/mongodb/lib/sdam/topology.js.map +1 -0
  774. package/templates/node_modules/mongodb/lib/sdam/topology_description.js +383 -0
  775. package/templates/node_modules/mongodb/lib/sdam/topology_description.js.map +1 -0
  776. package/templates/node_modules/mongodb/lib/sessions.js +828 -0
  777. package/templates/node_modules/mongodb/lib/sessions.js.map +1 -0
  778. package/templates/node_modules/mongodb/lib/sort.js +103 -0
  779. package/templates/node_modules/mongodb/lib/sort.js.map +1 -0
  780. package/templates/node_modules/mongodb/lib/timeout.js +296 -0
  781. package/templates/node_modules/mongodb/lib/timeout.js.map +1 -0
  782. package/templates/node_modules/mongodb/lib/transactions.js +135 -0
  783. package/templates/node_modules/mongodb/lib/transactions.js.map +1 -0
  784. package/templates/node_modules/mongodb/lib/utils.js +1189 -0
  785. package/templates/node_modules/mongodb/lib/utils.js.map +1 -0
  786. package/templates/node_modules/mongodb/lib/write_concern.js +100 -0
  787. package/templates/node_modules/mongodb/lib/write_concern.js.map +1 -0
  788. package/templates/node_modules/mongodb/mongodb.d.ts +9010 -0
  789. package/templates/node_modules/mongodb/package.json +175 -0
  790. package/templates/node_modules/mongodb/src/admin.ts +173 -0
  791. package/templates/node_modules/mongodb/src/bson.ts +148 -0
  792. package/templates/node_modules/mongodb/src/bulk/common.ts +1251 -0
  793. package/templates/node_modules/mongodb/src/bulk/ordered.ts +83 -0
  794. package/templates/node_modules/mongodb/src/bulk/unordered.ts +115 -0
  795. package/templates/node_modules/mongodb/src/change_stream.ts +1158 -0
  796. package/templates/node_modules/mongodb/src/client-side-encryption/auto_encrypter.ts +469 -0
  797. package/templates/node_modules/mongodb/src/client-side-encryption/client_encryption.ts +1150 -0
  798. package/templates/node_modules/mongodb/src/client-side-encryption/errors.ts +144 -0
  799. package/templates/node_modules/mongodb/src/client-side-encryption/mongocryptd_manager.ts +100 -0
  800. package/templates/node_modules/mongodb/src/client-side-encryption/providers/aws.ts +33 -0
  801. package/templates/node_modules/mongodb/src/client-side-encryption/providers/azure.ts +181 -0
  802. package/templates/node_modules/mongodb/src/client-side-encryption/providers/gcp.ts +16 -0
  803. package/templates/node_modules/mongodb/src/client-side-encryption/providers/index.ts +207 -0
  804. package/templates/node_modules/mongodb/src/client-side-encryption/state_machine.ts +650 -0
  805. package/templates/node_modules/mongodb/src/cmap/auth/auth_provider.ts +77 -0
  806. package/templates/node_modules/mongodb/src/cmap/auth/aws_temporary_credentials.ts +127 -0
  807. package/templates/node_modules/mongodb/src/cmap/auth/gssapi.ts +202 -0
  808. package/templates/node_modules/mongodb/src/cmap/auth/mongo_credentials.ts +291 -0
  809. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_aws.ts +186 -0
  810. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_oidc/automated_callback_workflow.ts +88 -0
  811. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_oidc/azure_machine_workflow.ts +73 -0
  812. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_oidc/callback_workflow.ts +188 -0
  813. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_oidc/command_builders.ts +53 -0
  814. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_oidc/gcp_machine_workflow.ts +46 -0
  815. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_oidc/human_callback_workflow.ts +141 -0
  816. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_oidc/k8s_machine_workflow.ts +30 -0
  817. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_oidc/token_cache.ts +62 -0
  818. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_oidc/token_machine_workflow.ts +21 -0
  819. package/templates/node_modules/mongodb/src/cmap/auth/mongodb_oidc.ts +185 -0
  820. package/templates/node_modules/mongodb/src/cmap/auth/plain.ts +25 -0
  821. package/templates/node_modules/mongodb/src/cmap/auth/providers.ts +22 -0
  822. package/templates/node_modules/mongodb/src/cmap/auth/scram.ts +344 -0
  823. package/templates/node_modules/mongodb/src/cmap/auth/x509.ts +43 -0
  824. package/templates/node_modules/mongodb/src/cmap/command_monitoring_events.ts +316 -0
  825. package/templates/node_modules/mongodb/src/cmap/commands.ts +788 -0
  826. package/templates/node_modules/mongodb/src/cmap/connect.ts +499 -0
  827. package/templates/node_modules/mongodb/src/cmap/connection.ts +931 -0
  828. package/templates/node_modules/mongodb/src/cmap/connection_pool.ts +831 -0
  829. package/templates/node_modules/mongodb/src/cmap/connection_pool_events.ts +300 -0
  830. package/templates/node_modules/mongodb/src/cmap/errors.ts +119 -0
  831. package/templates/node_modules/mongodb/src/cmap/handshake/client_metadata.ts +352 -0
  832. package/templates/node_modules/mongodb/src/cmap/metrics.ts +58 -0
  833. package/templates/node_modules/mongodb/src/cmap/stream_description.ts +96 -0
  834. package/templates/node_modules/mongodb/src/cmap/wire_protocol/compression.ts +197 -0
  835. package/templates/node_modules/mongodb/src/cmap/wire_protocol/constants.ts +17 -0
  836. package/templates/node_modules/mongodb/src/cmap/wire_protocol/on_data.ts +139 -0
  837. package/templates/node_modules/mongodb/src/cmap/wire_protocol/on_demand/document.ts +358 -0
  838. package/templates/node_modules/mongodb/src/cmap/wire_protocol/responses.ts +393 -0
  839. package/templates/node_modules/mongodb/src/cmap/wire_protocol/shared.ts +48 -0
  840. package/templates/node_modules/mongodb/src/collection.ts +1314 -0
  841. package/templates/node_modules/mongodb/src/connection_string.ts +1296 -0
  842. package/templates/node_modules/mongodb/src/constants.ts +176 -0
  843. package/templates/node_modules/mongodb/src/cursor/abstract_cursor.ts +1247 -0
  844. package/templates/node_modules/mongodb/src/cursor/aggregation_cursor.ts +245 -0
  845. package/templates/node_modules/mongodb/src/cursor/change_stream_cursor.ts +171 -0
  846. package/templates/node_modules/mongodb/src/cursor/client_bulk_write_cursor.ts +83 -0
  847. package/templates/node_modules/mongodb/src/cursor/explainable_cursor.ts +51 -0
  848. package/templates/node_modules/mongodb/src/cursor/find_cursor.ts +497 -0
  849. package/templates/node_modules/mongodb/src/cursor/list_collections_cursor.ts +50 -0
  850. package/templates/node_modules/mongodb/src/cursor/list_indexes_cursor.ts +37 -0
  851. package/templates/node_modules/mongodb/src/cursor/list_search_indexes_cursor.ts +20 -0
  852. package/templates/node_modules/mongodb/src/cursor/run_command_cursor.ts +178 -0
  853. package/templates/node_modules/mongodb/src/db.ts +622 -0
  854. package/templates/node_modules/mongodb/src/deps.ts +287 -0
  855. package/templates/node_modules/mongodb/src/encrypter.ts +127 -0
  856. package/templates/node_modules/mongodb/src/error.ts +1571 -0
  857. package/templates/node_modules/mongodb/src/explain.ts +124 -0
  858. package/templates/node_modules/mongodb/src/gridfs/download.ts +483 -0
  859. package/templates/node_modules/mongodb/src/gridfs/index.ts +264 -0
  860. package/templates/node_modules/mongodb/src/gridfs/upload.ts +537 -0
  861. package/templates/node_modules/mongodb/src/index.ts +633 -0
  862. package/templates/node_modules/mongodb/src/mongo_client.ts +1155 -0
  863. package/templates/node_modules/mongodb/src/mongo_client_auth_providers.ts +87 -0
  864. package/templates/node_modules/mongodb/src/mongo_logger.ts +1076 -0
  865. package/templates/node_modules/mongodb/src/mongo_types.ts +678 -0
  866. package/templates/node_modules/mongodb/src/operations/aggregate.ts +153 -0
  867. package/templates/node_modules/mongodb/src/operations/client_bulk_write/client_bulk_write.ts +72 -0
  868. package/templates/node_modules/mongodb/src/operations/client_bulk_write/command_builder.ts +487 -0
  869. package/templates/node_modules/mongodb/src/operations/client_bulk_write/common.ts +276 -0
  870. package/templates/node_modules/mongodb/src/operations/client_bulk_write/executor.ts +149 -0
  871. package/templates/node_modules/mongodb/src/operations/client_bulk_write/results_merger.ts +260 -0
  872. package/templates/node_modules/mongodb/src/operations/command.ts +171 -0
  873. package/templates/node_modules/mongodb/src/operations/count.ts +74 -0
  874. package/templates/node_modules/mongodb/src/operations/create_collection.ts +218 -0
  875. package/templates/node_modules/mongodb/src/operations/delete.ts +183 -0
  876. package/templates/node_modules/mongodb/src/operations/distinct.ts +92 -0
  877. package/templates/node_modules/mongodb/src/operations/drop.ts +130 -0
  878. package/templates/node_modules/mongodb/src/operations/end_sessions.ts +44 -0
  879. package/templates/node_modules/mongodb/src/operations/estimated_document_count.ts +61 -0
  880. package/templates/node_modules/mongodb/src/operations/execute_operation.ts +318 -0
  881. package/templates/node_modules/mongodb/src/operations/find.ts +254 -0
  882. package/templates/node_modules/mongodb/src/operations/find_and_modify.ts +319 -0
  883. package/templates/node_modules/mongodb/src/operations/get_more.ts +108 -0
  884. package/templates/node_modules/mongodb/src/operations/indexes.ts +418 -0
  885. package/templates/node_modules/mongodb/src/operations/insert.ts +108 -0
  886. package/templates/node_modules/mongodb/src/operations/kill_cursors.ts +64 -0
  887. package/templates/node_modules/mongodb/src/operations/list_collections.ts +108 -0
  888. package/templates/node_modules/mongodb/src/operations/list_databases.ts +68 -0
  889. package/templates/node_modules/mongodb/src/operations/operation.ts +181 -0
  890. package/templates/node_modules/mongodb/src/operations/profiling_level.ts +46 -0
  891. package/templates/node_modules/mongodb/src/operations/remove_user.ts +36 -0
  892. package/templates/node_modules/mongodb/src/operations/rename.ts +55 -0
  893. package/templates/node_modules/mongodb/src/operations/run_command.ts +79 -0
  894. package/templates/node_modules/mongodb/src/operations/search_indexes/create.ts +56 -0
  895. package/templates/node_modules/mongodb/src/operations/search_indexes/drop.ts +58 -0
  896. package/templates/node_modules/mongodb/src/operations/search_indexes/update.ts +45 -0
  897. package/templates/node_modules/mongodb/src/operations/set_profiling_level.ts +74 -0
  898. package/templates/node_modules/mongodb/src/operations/stats.ts +37 -0
  899. package/templates/node_modules/mongodb/src/operations/update.ts +318 -0
  900. package/templates/node_modules/mongodb/src/operations/validate_collection.ts +50 -0
  901. package/templates/node_modules/mongodb/src/read_concern.ts +88 -0
  902. package/templates/node_modules/mongodb/src/read_preference.ts +256 -0
  903. package/templates/node_modules/mongodb/src/sdam/common.ts +74 -0
  904. package/templates/node_modules/mongodb/src/sdam/events.ts +219 -0
  905. package/templates/node_modules/mongodb/src/sdam/monitor.ts +771 -0
  906. package/templates/node_modules/mongodb/src/sdam/server.ts +577 -0
  907. package/templates/node_modules/mongodb/src/sdam/server_description.ts +291 -0
  908. package/templates/node_modules/mongodb/src/sdam/server_selection.ts +323 -0
  909. package/templates/node_modules/mongodb/src/sdam/server_selection_events.ts +142 -0
  910. package/templates/node_modules/mongodb/src/sdam/srv_polling.ts +146 -0
  911. package/templates/node_modules/mongodb/src/sdam/topology.ts +1096 -0
  912. package/templates/node_modules/mongodb/src/sdam/topology_description.ts +548 -0
  913. package/templates/node_modules/mongodb/src/sessions.ts +1160 -0
  914. package/templates/node_modules/mongodb/src/sort.ts +141 -0
  915. package/templates/node_modules/mongodb/src/timeout.ts +405 -0
  916. package/templates/node_modules/mongodb/src/transactions.ts +181 -0
  917. package/templates/node_modules/mongodb/src/utils.ts +1491 -0
  918. package/templates/node_modules/mongodb/src/write_concern.ts +183 -0
  919. package/templates/node_modules/mongodb/tsconfig.json +46 -0
  920. package/templates/node_modules/mongodb-connection-string-url/.esm-wrapper.mjs +6 -0
  921. package/templates/node_modules/mongodb-connection-string-url/LICENSE +192 -0
  922. package/templates/node_modules/mongodb-connection-string-url/README.md +25 -0
  923. package/templates/node_modules/mongodb-connection-string-url/lib/index.d.ts +63 -0
  924. package/templates/node_modules/mongodb-connection-string-url/lib/index.js +239 -0
  925. package/templates/node_modules/mongodb-connection-string-url/lib/index.js.map +1 -0
  926. package/templates/node_modules/mongodb-connection-string-url/lib/redact.d.ts +7 -0
  927. package/templates/node_modules/mongodb-connection-string-url/lib/redact.js +97 -0
  928. package/templates/node_modules/mongodb-connection-string-url/lib/redact.js.map +1 -0
  929. package/templates/node_modules/mongodb-connection-string-url/package.json +71 -0
  930. package/templates/node_modules/mongoose/LICENSE.md +22 -0
  931. package/templates/node_modules/mongoose/README.md +397 -0
  932. package/templates/node_modules/mongoose/SECURITY.md +1 -0
  933. package/templates/node_modules/mongoose/eslint.config.mjs +198 -0
  934. package/templates/node_modules/mongoose/index.js +64 -0
  935. package/templates/node_modules/mongoose/lib/aggregate.js +1189 -0
  936. package/templates/node_modules/mongoose/lib/cast/bigint.js +46 -0
  937. package/templates/node_modules/mongoose/lib/cast/boolean.js +32 -0
  938. package/templates/node_modules/mongoose/lib/cast/date.js +41 -0
  939. package/templates/node_modules/mongoose/lib/cast/decimal128.js +39 -0
  940. package/templates/node_modules/mongoose/lib/cast/double.js +50 -0
  941. package/templates/node_modules/mongoose/lib/cast/int32.js +36 -0
  942. package/templates/node_modules/mongoose/lib/cast/number.js +42 -0
  943. package/templates/node_modules/mongoose/lib/cast/objectid.js +29 -0
  944. package/templates/node_modules/mongoose/lib/cast/string.js +37 -0
  945. package/templates/node_modules/mongoose/lib/cast/uuid.js +35 -0
  946. package/templates/node_modules/mongoose/lib/cast.js +444 -0
  947. package/templates/node_modules/mongoose/lib/collection.js +321 -0
  948. package/templates/node_modules/mongoose/lib/connection.js +1849 -0
  949. package/templates/node_modules/mongoose/lib/connectionState.js +26 -0
  950. package/templates/node_modules/mongoose/lib/constants.js +73 -0
  951. package/templates/node_modules/mongoose/lib/cursor/aggregationCursor.js +466 -0
  952. package/templates/node_modules/mongoose/lib/cursor/changeStream.js +198 -0
  953. package/templates/node_modules/mongoose/lib/cursor/queryCursor.js +622 -0
  954. package/templates/node_modules/mongoose/lib/document.js +5481 -0
  955. package/templates/node_modules/mongoose/lib/driver.js +15 -0
  956. package/templates/node_modules/mongoose/lib/drivers/SPEC.md +4 -0
  957. package/templates/node_modules/mongoose/lib/drivers/node-mongodb-native/bulkWriteResult.js +5 -0
  958. package/templates/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js +405 -0
  959. package/templates/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js +521 -0
  960. package/templates/node_modules/mongoose/lib/drivers/node-mongodb-native/index.js +10 -0
  961. package/templates/node_modules/mongoose/lib/error/browserMissingSchema.js +29 -0
  962. package/templates/node_modules/mongoose/lib/error/bulkSaveIncompleteError.js +44 -0
  963. package/templates/node_modules/mongoose/lib/error/bulkWriteError.js +41 -0
  964. package/templates/node_modules/mongoose/lib/error/cast.js +158 -0
  965. package/templates/node_modules/mongoose/lib/error/createCollectionsError.js +26 -0
  966. package/templates/node_modules/mongoose/lib/error/divergentArray.js +40 -0
  967. package/templates/node_modules/mongoose/lib/error/eachAsyncMultiError.js +41 -0
  968. package/templates/node_modules/mongoose/lib/error/index.js +237 -0
  969. package/templates/node_modules/mongoose/lib/error/invalidSchemaOption.js +32 -0
  970. package/templates/node_modules/mongoose/lib/error/messages.js +47 -0
  971. package/templates/node_modules/mongoose/lib/error/missingSchema.js +33 -0
  972. package/templates/node_modules/mongoose/lib/error/mongooseError.js +13 -0
  973. package/templates/node_modules/mongoose/lib/error/notFound.js +47 -0
  974. package/templates/node_modules/mongoose/lib/error/objectExpected.js +31 -0
  975. package/templates/node_modules/mongoose/lib/error/objectParameter.js +31 -0
  976. package/templates/node_modules/mongoose/lib/error/overwriteModel.js +31 -0
  977. package/templates/node_modules/mongoose/lib/error/parallelSave.js +33 -0
  978. package/templates/node_modules/mongoose/lib/error/parallelValidate.js +33 -0
  979. package/templates/node_modules/mongoose/lib/error/serverSelection.js +62 -0
  980. package/templates/node_modules/mongoose/lib/error/setOptionError.js +103 -0
  981. package/templates/node_modules/mongoose/lib/error/strict.js +35 -0
  982. package/templates/node_modules/mongoose/lib/error/strictPopulate.js +31 -0
  983. package/templates/node_modules/mongoose/lib/error/syncIndexes.js +30 -0
  984. package/templates/node_modules/mongoose/lib/error/validation.js +97 -0
  985. package/templates/node_modules/mongoose/lib/error/validator.js +100 -0
  986. package/templates/node_modules/mongoose/lib/error/version.js +38 -0
  987. package/templates/node_modules/mongoose/lib/helpers/aggregate/prepareDiscriminatorPipeline.js +39 -0
  988. package/templates/node_modules/mongoose/lib/helpers/aggregate/stringifyFunctionOperators.js +50 -0
  989. package/templates/node_modules/mongoose/lib/helpers/arrayDepth.js +33 -0
  990. package/templates/node_modules/mongoose/lib/helpers/clone.js +204 -0
  991. package/templates/node_modules/mongoose/lib/helpers/common.js +127 -0
  992. package/templates/node_modules/mongoose/lib/helpers/createJSONSchemaTypeDefinition.js +24 -0
  993. package/templates/node_modules/mongoose/lib/helpers/cursor/eachAsync.js +225 -0
  994. package/templates/node_modules/mongoose/lib/helpers/discriminator/applyEmbeddedDiscriminators.js +36 -0
  995. package/templates/node_modules/mongoose/lib/helpers/discriminator/areDiscriminatorValuesEqual.js +16 -0
  996. package/templates/node_modules/mongoose/lib/helpers/discriminator/checkEmbeddedDiscriminatorKeyProjection.js +12 -0
  997. package/templates/node_modules/mongoose/lib/helpers/discriminator/getConstructor.js +29 -0
  998. package/templates/node_modules/mongoose/lib/helpers/discriminator/getDiscriminatorByValue.js +28 -0
  999. package/templates/node_modules/mongoose/lib/helpers/discriminator/getSchemaDiscriminatorByValue.js +27 -0
  1000. package/templates/node_modules/mongoose/lib/helpers/discriminator/mergeDiscriminatorSchema.js +91 -0
  1001. package/templates/node_modules/mongoose/lib/helpers/document/applyDefaults.js +132 -0
  1002. package/templates/node_modules/mongoose/lib/helpers/document/applyTimestamps.js +105 -0
  1003. package/templates/node_modules/mongoose/lib/helpers/document/applyVirtuals.js +146 -0
  1004. package/templates/node_modules/mongoose/lib/helpers/document/cleanModifiedSubpaths.js +45 -0
  1005. package/templates/node_modules/mongoose/lib/helpers/document/compile.js +238 -0
  1006. package/templates/node_modules/mongoose/lib/helpers/document/getDeepestSubdocumentForPath.js +38 -0
  1007. package/templates/node_modules/mongoose/lib/helpers/document/getEmbeddedDiscriminatorPath.js +53 -0
  1008. package/templates/node_modules/mongoose/lib/helpers/document/handleSpreadDoc.js +35 -0
  1009. package/templates/node_modules/mongoose/lib/helpers/each.js +25 -0
  1010. package/templates/node_modules/mongoose/lib/helpers/error/combinePathErrors.js +22 -0
  1011. package/templates/node_modules/mongoose/lib/helpers/firstKey.js +8 -0
  1012. package/templates/node_modules/mongoose/lib/helpers/get.js +65 -0
  1013. package/templates/node_modules/mongoose/lib/helpers/getConstructorName.js +16 -0
  1014. package/templates/node_modules/mongoose/lib/helpers/getDefaultBulkwriteResult.js +18 -0
  1015. package/templates/node_modules/mongoose/lib/helpers/getFunctionName.js +10 -0
  1016. package/templates/node_modules/mongoose/lib/helpers/immediate.js +16 -0
  1017. package/templates/node_modules/mongoose/lib/helpers/indexes/applySchemaCollation.js +13 -0
  1018. package/templates/node_modules/mongoose/lib/helpers/indexes/decorateDiscriminatorIndexOptions.js +14 -0
  1019. package/templates/node_modules/mongoose/lib/helpers/indexes/getRelatedIndexes.js +63 -0
  1020. package/templates/node_modules/mongoose/lib/helpers/indexes/isDefaultIdIndex.js +18 -0
  1021. package/templates/node_modules/mongoose/lib/helpers/indexes/isIndexEqual.js +95 -0
  1022. package/templates/node_modules/mongoose/lib/helpers/indexes/isIndexSpecEqual.js +32 -0
  1023. package/templates/node_modules/mongoose/lib/helpers/indexes/isTextIndex.js +16 -0
  1024. package/templates/node_modules/mongoose/lib/helpers/indexes/isTimeseriesIndex.js +16 -0
  1025. package/templates/node_modules/mongoose/lib/helpers/isAsyncFunction.js +9 -0
  1026. package/templates/node_modules/mongoose/lib/helpers/isBsonType.js +15 -0
  1027. package/templates/node_modules/mongoose/lib/helpers/isMongooseObject.js +22 -0
  1028. package/templates/node_modules/mongoose/lib/helpers/isObject.js +16 -0
  1029. package/templates/node_modules/mongoose/lib/helpers/isPOJO.js +12 -0
  1030. package/templates/node_modules/mongoose/lib/helpers/isPromise.js +6 -0
  1031. package/templates/node_modules/mongoose/lib/helpers/isSimpleValidator.js +22 -0
  1032. package/templates/node_modules/mongoose/lib/helpers/minimize.js +41 -0
  1033. package/templates/node_modules/mongoose/lib/helpers/model/applyDefaultsToPOJO.js +52 -0
  1034. package/templates/node_modules/mongoose/lib/helpers/model/applyHooks.js +140 -0
  1035. package/templates/node_modules/mongoose/lib/helpers/model/applyMethods.js +70 -0
  1036. package/templates/node_modules/mongoose/lib/helpers/model/applyStaticHooks.js +33 -0
  1037. package/templates/node_modules/mongoose/lib/helpers/model/applyStatics.js +13 -0
  1038. package/templates/node_modules/mongoose/lib/helpers/model/castBulkWrite.js +320 -0
  1039. package/templates/node_modules/mongoose/lib/helpers/model/decorateBulkWriteResult.js +8 -0
  1040. package/templates/node_modules/mongoose/lib/helpers/model/discriminator.js +265 -0
  1041. package/templates/node_modules/mongoose/lib/helpers/model/pushNestedArrayPaths.js +15 -0
  1042. package/templates/node_modules/mongoose/lib/helpers/omitUndefined.js +20 -0
  1043. package/templates/node_modules/mongoose/lib/helpers/once.js +12 -0
  1044. package/templates/node_modules/mongoose/lib/helpers/parallelLimit.js +37 -0
  1045. package/templates/node_modules/mongoose/lib/helpers/path/parentPaths.js +18 -0
  1046. package/templates/node_modules/mongoose/lib/helpers/path/setDottedPath.js +33 -0
  1047. package/templates/node_modules/mongoose/lib/helpers/pluralize.js +95 -0
  1048. package/templates/node_modules/mongoose/lib/helpers/populate/assignRawDocsToIdStructure.js +129 -0
  1049. package/templates/node_modules/mongoose/lib/helpers/populate/assignVals.js +360 -0
  1050. package/templates/node_modules/mongoose/lib/helpers/populate/createPopulateQueryFilter.js +97 -0
  1051. package/templates/node_modules/mongoose/lib/helpers/populate/getModelsMapForPopulate.js +774 -0
  1052. package/templates/node_modules/mongoose/lib/helpers/populate/getSchemaTypes.js +229 -0
  1053. package/templates/node_modules/mongoose/lib/helpers/populate/getVirtual.js +103 -0
  1054. package/templates/node_modules/mongoose/lib/helpers/populate/leanPopulateMap.js +7 -0
  1055. package/templates/node_modules/mongoose/lib/helpers/populate/lookupLocalFields.js +40 -0
  1056. package/templates/node_modules/mongoose/lib/helpers/populate/markArraySubdocsPopulated.js +49 -0
  1057. package/templates/node_modules/mongoose/lib/helpers/populate/modelNamesFromRefPath.js +66 -0
  1058. package/templates/node_modules/mongoose/lib/helpers/populate/removeDeselectedForeignField.js +31 -0
  1059. package/templates/node_modules/mongoose/lib/helpers/populate/setPopulatedVirtualValue.js +33 -0
  1060. package/templates/node_modules/mongoose/lib/helpers/populate/skipPopulateValue.js +10 -0
  1061. package/templates/node_modules/mongoose/lib/helpers/populate/validateRef.js +19 -0
  1062. package/templates/node_modules/mongoose/lib/helpers/printJestWarning.js +21 -0
  1063. package/templates/node_modules/mongoose/lib/helpers/processConnectionOptions.js +65 -0
  1064. package/templates/node_modules/mongoose/lib/helpers/projection/applyProjection.js +83 -0
  1065. package/templates/node_modules/mongoose/lib/helpers/projection/hasIncludedChildren.js +41 -0
  1066. package/templates/node_modules/mongoose/lib/helpers/projection/isDefiningProjection.js +18 -0
  1067. package/templates/node_modules/mongoose/lib/helpers/projection/isExclusive.js +37 -0
  1068. package/templates/node_modules/mongoose/lib/helpers/projection/isInclusive.js +39 -0
  1069. package/templates/node_modules/mongoose/lib/helpers/projection/isNestedProjection.js +8 -0
  1070. package/templates/node_modules/mongoose/lib/helpers/projection/isPathExcluded.js +40 -0
  1071. package/templates/node_modules/mongoose/lib/helpers/projection/isPathSelectedInclusive.js +28 -0
  1072. package/templates/node_modules/mongoose/lib/helpers/projection/isSubpath.js +14 -0
  1073. package/templates/node_modules/mongoose/lib/helpers/projection/parseProjection.js +33 -0
  1074. package/templates/node_modules/mongoose/lib/helpers/query/applyGlobalOption.js +29 -0
  1075. package/templates/node_modules/mongoose/lib/helpers/query/cast$expr.js +287 -0
  1076. package/templates/node_modules/mongoose/lib/helpers/query/castFilterPath.js +54 -0
  1077. package/templates/node_modules/mongoose/lib/helpers/query/castUpdate.js +643 -0
  1078. package/templates/node_modules/mongoose/lib/helpers/query/getEmbeddedDiscriminatorPath.js +103 -0
  1079. package/templates/node_modules/mongoose/lib/helpers/query/handleImmutable.js +44 -0
  1080. package/templates/node_modules/mongoose/lib/helpers/query/handleReadPreferenceAliases.js +23 -0
  1081. package/templates/node_modules/mongoose/lib/helpers/query/hasDollarKeys.js +23 -0
  1082. package/templates/node_modules/mongoose/lib/helpers/query/isOperator.js +14 -0
  1083. package/templates/node_modules/mongoose/lib/helpers/query/sanitizeFilter.js +38 -0
  1084. package/templates/node_modules/mongoose/lib/helpers/query/sanitizeProjection.js +14 -0
  1085. package/templates/node_modules/mongoose/lib/helpers/query/selectPopulatedFields.js +62 -0
  1086. package/templates/node_modules/mongoose/lib/helpers/query/trusted.js +13 -0
  1087. package/templates/node_modules/mongoose/lib/helpers/query/validOps.js +3 -0
  1088. package/templates/node_modules/mongoose/lib/helpers/schema/addAutoId.js +7 -0
  1089. package/templates/node_modules/mongoose/lib/helpers/schema/applyBuiltinPlugins.js +12 -0
  1090. package/templates/node_modules/mongoose/lib/helpers/schema/applyPlugins.js +55 -0
  1091. package/templates/node_modules/mongoose/lib/helpers/schema/applyReadConcern.js +20 -0
  1092. package/templates/node_modules/mongoose/lib/helpers/schema/applyWriteConcern.js +37 -0
  1093. package/templates/node_modules/mongoose/lib/helpers/schema/cleanPositionalOperators.js +12 -0
  1094. package/templates/node_modules/mongoose/lib/helpers/schema/getIndexes.js +171 -0
  1095. package/templates/node_modules/mongoose/lib/helpers/schema/getKeysInSchemaOrder.js +28 -0
  1096. package/templates/node_modules/mongoose/lib/helpers/schema/getPath.js +43 -0
  1097. package/templates/node_modules/mongoose/lib/helpers/schema/getSubdocumentStrictValue.js +32 -0
  1098. package/templates/node_modules/mongoose/lib/helpers/schema/handleIdOption.js +20 -0
  1099. package/templates/node_modules/mongoose/lib/helpers/schema/handleTimestampOption.js +24 -0
  1100. package/templates/node_modules/mongoose/lib/helpers/schema/idGetter.js +34 -0
  1101. package/templates/node_modules/mongoose/lib/helpers/schema/merge.js +36 -0
  1102. package/templates/node_modules/mongoose/lib/helpers/schematype/handleImmutable.js +50 -0
  1103. package/templates/node_modules/mongoose/lib/helpers/setDefaultsOnInsert.js +161 -0
  1104. package/templates/node_modules/mongoose/lib/helpers/specialProperties.js +3 -0
  1105. package/templates/node_modules/mongoose/lib/helpers/symbols.js +20 -0
  1106. package/templates/node_modules/mongoose/lib/helpers/timers.js +3 -0
  1107. package/templates/node_modules/mongoose/lib/helpers/timestamps/setDocumentTimestamps.js +26 -0
  1108. package/templates/node_modules/mongoose/lib/helpers/timestamps/setupTimestamps.js +107 -0
  1109. package/templates/node_modules/mongoose/lib/helpers/topology/allServersUnknown.js +12 -0
  1110. package/templates/node_modules/mongoose/lib/helpers/topology/isAtlas.js +31 -0
  1111. package/templates/node_modules/mongoose/lib/helpers/topology/isSSLError.js +16 -0
  1112. package/templates/node_modules/mongoose/lib/helpers/update/applyTimestampsToChildren.js +193 -0
  1113. package/templates/node_modules/mongoose/lib/helpers/update/applyTimestampsToUpdate.js +130 -0
  1114. package/templates/node_modules/mongoose/lib/helpers/update/castArrayFilters.js +113 -0
  1115. package/templates/node_modules/mongoose/lib/helpers/update/decorateUpdateWithVersionKey.js +35 -0
  1116. package/templates/node_modules/mongoose/lib/helpers/update/modifiedPaths.js +33 -0
  1117. package/templates/node_modules/mongoose/lib/helpers/update/moveImmutableProperties.js +53 -0
  1118. package/templates/node_modules/mongoose/lib/helpers/update/removeUnusedArrayFilters.js +32 -0
  1119. package/templates/node_modules/mongoose/lib/helpers/update/updatedPathsByArrayFilter.js +27 -0
  1120. package/templates/node_modules/mongoose/lib/helpers/updateValidators.js +193 -0
  1121. package/templates/node_modules/mongoose/lib/index.js +17 -0
  1122. package/templates/node_modules/mongoose/lib/internal.js +46 -0
  1123. package/templates/node_modules/mongoose/lib/model.js +5021 -0
  1124. package/templates/node_modules/mongoose/lib/modifiedPathsSnapshot.js +9 -0
  1125. package/templates/node_modules/mongoose/lib/mongoose.js +1411 -0
  1126. package/templates/node_modules/mongoose/lib/options/populateOptions.js +36 -0
  1127. package/templates/node_modules/mongoose/lib/options/propertyOptions.js +8 -0
  1128. package/templates/node_modules/mongoose/lib/options/saveOptions.js +16 -0
  1129. package/templates/node_modules/mongoose/lib/options/schemaArrayOptions.js +78 -0
  1130. package/templates/node_modules/mongoose/lib/options/schemaBufferOptions.js +38 -0
  1131. package/templates/node_modules/mongoose/lib/options/schemaDateOptions.js +71 -0
  1132. package/templates/node_modules/mongoose/lib/options/schemaDocumentArrayOptions.js +68 -0
  1133. package/templates/node_modules/mongoose/lib/options/schemaMapOptions.js +43 -0
  1134. package/templates/node_modules/mongoose/lib/options/schemaNumberOptions.js +101 -0
  1135. package/templates/node_modules/mongoose/lib/options/schemaObjectIdOptions.js +64 -0
  1136. package/templates/node_modules/mongoose/lib/options/schemaStringOptions.js +138 -0
  1137. package/templates/node_modules/mongoose/lib/options/schemaSubdocumentOptions.js +66 -0
  1138. package/templates/node_modules/mongoose/lib/options/schemaTypeOptions.js +244 -0
  1139. package/templates/node_modules/mongoose/lib/options/schemaUnionOptions.js +32 -0
  1140. package/templates/node_modules/mongoose/lib/options/virtualOptions.js +164 -0
  1141. package/templates/node_modules/mongoose/lib/options.js +17 -0
  1142. package/templates/node_modules/mongoose/lib/plugins/index.js +6 -0
  1143. package/templates/node_modules/mongoose/lib/plugins/saveSubdocs.js +75 -0
  1144. package/templates/node_modules/mongoose/lib/plugins/sharding.js +84 -0
  1145. package/templates/node_modules/mongoose/lib/plugins/trackTransaction.js +85 -0
  1146. package/templates/node_modules/mongoose/lib/plugins/validateBeforeSave.js +41 -0
  1147. package/templates/node_modules/mongoose/lib/query.js +5649 -0
  1148. package/templates/node_modules/mongoose/lib/queryHelpers.js +390 -0
  1149. package/templates/node_modules/mongoose/lib/schema/array.js +701 -0
  1150. package/templates/node_modules/mongoose/lib/schema/bigint.js +282 -0
  1151. package/templates/node_modules/mongoose/lib/schema/boolean.js +332 -0
  1152. package/templates/node_modules/mongoose/lib/schema/buffer.js +343 -0
  1153. package/templates/node_modules/mongoose/lib/schema/date.js +467 -0
  1154. package/templates/node_modules/mongoose/lib/schema/decimal128.js +263 -0
  1155. package/templates/node_modules/mongoose/lib/schema/documentArray.js +664 -0
  1156. package/templates/node_modules/mongoose/lib/schema/documentArrayElement.js +107 -0
  1157. package/templates/node_modules/mongoose/lib/schema/double.js +246 -0
  1158. package/templates/node_modules/mongoose/lib/schema/index.js +31 -0
  1159. package/templates/node_modules/mongoose/lib/schema/int32.js +289 -0
  1160. package/templates/node_modules/mongoose/lib/schema/map.js +201 -0
  1161. package/templates/node_modules/mongoose/lib/schema/mixed.js +146 -0
  1162. package/templates/node_modules/mongoose/lib/schema/number.js +492 -0
  1163. package/templates/node_modules/mongoose/lib/schema/objectId.js +333 -0
  1164. package/templates/node_modules/mongoose/lib/schema/operators/bitwise.js +38 -0
  1165. package/templates/node_modules/mongoose/lib/schema/operators/exists.js +12 -0
  1166. package/templates/node_modules/mongoose/lib/schema/operators/geospatial.js +107 -0
  1167. package/templates/node_modules/mongoose/lib/schema/operators/helpers.js +32 -0
  1168. package/templates/node_modules/mongoose/lib/schema/operators/text.js +39 -0
  1169. package/templates/node_modules/mongoose/lib/schema/operators/type.js +20 -0
  1170. package/templates/node_modules/mongoose/lib/schema/string.js +733 -0
  1171. package/templates/node_modules/mongoose/lib/schema/subdocument.js +439 -0
  1172. package/templates/node_modules/mongoose/lib/schema/symbols.js +5 -0
  1173. package/templates/node_modules/mongoose/lib/schema/union.js +113 -0
  1174. package/templates/node_modules/mongoose/lib/schema/uuid.js +305 -0
  1175. package/templates/node_modules/mongoose/lib/schema.js +3227 -0
  1176. package/templates/node_modules/mongoose/lib/schemaType.js +1835 -0
  1177. package/templates/node_modules/mongoose/lib/stateMachine.js +232 -0
  1178. package/templates/node_modules/mongoose/lib/types/array/index.js +119 -0
  1179. package/templates/node_modules/mongoose/lib/types/array/isMongooseArray.js +5 -0
  1180. package/templates/node_modules/mongoose/lib/types/array/methods/index.js +1065 -0
  1181. package/templates/node_modules/mongoose/lib/types/arraySubdocument.js +197 -0
  1182. package/templates/node_modules/mongoose/lib/types/buffer.js +294 -0
  1183. package/templates/node_modules/mongoose/lib/types/decimal128.js +13 -0
  1184. package/templates/node_modules/mongoose/lib/types/documentArray/index.js +113 -0
  1185. package/templates/node_modules/mongoose/lib/types/documentArray/isMongooseDocumentArray.js +5 -0
  1186. package/templates/node_modules/mongoose/lib/types/documentArray/methods/index.js +415 -0
  1187. package/templates/node_modules/mongoose/lib/types/double.js +13 -0
  1188. package/templates/node_modules/mongoose/lib/types/index.js +23 -0
  1189. package/templates/node_modules/mongoose/lib/types/map.js +419 -0
  1190. package/templates/node_modules/mongoose/lib/types/objectid.js +41 -0
  1191. package/templates/node_modules/mongoose/lib/types/subdocument.js +454 -0
  1192. package/templates/node_modules/mongoose/lib/types/uuid.js +13 -0
  1193. package/templates/node_modules/mongoose/lib/utils.js +1038 -0
  1194. package/templates/node_modules/mongoose/lib/validOptions.js +42 -0
  1195. package/templates/node_modules/mongoose/lib/virtualType.js +204 -0
  1196. package/templates/node_modules/mongoose/package.json +143 -0
  1197. package/templates/node_modules/mongoose/types/aggregate.d.ts +180 -0
  1198. package/templates/node_modules/mongoose/types/augmentations.d.ts +9 -0
  1199. package/templates/node_modules/mongoose/types/callback.d.ts +8 -0
  1200. package/templates/node_modules/mongoose/types/collection.d.ts +49 -0
  1201. package/templates/node_modules/mongoose/types/connection.d.ts +297 -0
  1202. package/templates/node_modules/mongoose/types/cursor.d.ts +67 -0
  1203. package/templates/node_modules/mongoose/types/document.d.ts +374 -0
  1204. package/templates/node_modules/mongoose/types/error.d.ts +143 -0
  1205. package/templates/node_modules/mongoose/types/expressions.d.ts +3053 -0
  1206. package/templates/node_modules/mongoose/types/helpers.d.ts +32 -0
  1207. package/templates/node_modules/mongoose/types/index.d.ts +1046 -0
  1208. package/templates/node_modules/mongoose/types/indexes.d.ts +97 -0
  1209. package/templates/node_modules/mongoose/types/inferhydrateddoctype.d.ts +115 -0
  1210. package/templates/node_modules/mongoose/types/inferrawdoctype.d.ts +135 -0
  1211. package/templates/node_modules/mongoose/types/inferschematype.d.ts +337 -0
  1212. package/templates/node_modules/mongoose/types/middlewares.d.ts +48 -0
  1213. package/templates/node_modules/mongoose/types/models.d.ts +1291 -0
  1214. package/templates/node_modules/mongoose/types/mongooseoptions.d.ts +228 -0
  1215. package/templates/node_modules/mongoose/types/pipelinestage.d.ts +333 -0
  1216. package/templates/node_modules/mongoose/types/populate.d.ts +53 -0
  1217. package/templates/node_modules/mongoose/types/query.d.ts +934 -0
  1218. package/templates/node_modules/mongoose/types/schemaoptions.d.ts +280 -0
  1219. package/templates/node_modules/mongoose/types/schematypes.d.ts +645 -0
  1220. package/templates/node_modules/mongoose/types/session.d.ts +32 -0
  1221. package/templates/node_modules/mongoose/types/types.d.ts +109 -0
  1222. package/templates/node_modules/mongoose/types/utility.d.ts +175 -0
  1223. package/templates/node_modules/mongoose/types/validation.d.ts +39 -0
  1224. package/templates/node_modules/mongoose/types/virtuals.d.ts +14 -0
  1225. package/templates/node_modules/morgan/HISTORY.md +221 -0
  1226. package/templates/node_modules/morgan/LICENSE +23 -0
  1227. package/templates/node_modules/morgan/README.md +436 -0
  1228. package/templates/node_modules/morgan/index.js +544 -0
  1229. package/templates/node_modules/morgan/node_modules/debug/.coveralls.yml +1 -0
  1230. package/templates/node_modules/morgan/node_modules/debug/.eslintrc +11 -0
  1231. package/templates/node_modules/morgan/node_modules/debug/.travis.yml +14 -0
  1232. package/templates/node_modules/morgan/node_modules/debug/CHANGELOG.md +362 -0
  1233. package/templates/node_modules/morgan/node_modules/debug/LICENSE +19 -0
  1234. package/templates/node_modules/morgan/node_modules/debug/Makefile +50 -0
  1235. package/templates/node_modules/morgan/node_modules/debug/README.md +312 -0
  1236. package/templates/node_modules/morgan/node_modules/debug/component.json +19 -0
  1237. package/templates/node_modules/morgan/node_modules/debug/karma.conf.js +70 -0
  1238. package/templates/node_modules/morgan/node_modules/debug/node.js +1 -0
  1239. package/templates/node_modules/morgan/node_modules/debug/package.json +49 -0
  1240. package/templates/node_modules/morgan/node_modules/debug/src/browser.js +185 -0
  1241. package/templates/node_modules/morgan/node_modules/debug/src/debug.js +202 -0
  1242. package/templates/node_modules/morgan/node_modules/debug/src/index.js +10 -0
  1243. package/templates/node_modules/morgan/node_modules/debug/src/inspector-log.js +15 -0
  1244. package/templates/node_modules/morgan/node_modules/debug/src/node.js +248 -0
  1245. package/templates/node_modules/morgan/node_modules/ms/index.js +152 -0
  1246. package/templates/node_modules/morgan/node_modules/ms/license.md +21 -0
  1247. package/templates/node_modules/morgan/node_modules/ms/package.json +37 -0
  1248. package/templates/node_modules/morgan/node_modules/ms/readme.md +51 -0
  1249. package/templates/node_modules/morgan/node_modules/on-finished/HISTORY.md +88 -0
  1250. package/templates/node_modules/morgan/node_modules/on-finished/LICENSE +23 -0
  1251. package/templates/node_modules/morgan/node_modules/on-finished/README.md +154 -0
  1252. package/templates/node_modules/morgan/node_modules/on-finished/index.js +196 -0
  1253. package/templates/node_modules/morgan/node_modules/on-finished/package.json +31 -0
  1254. package/templates/node_modules/morgan/package.json +52 -0
  1255. package/templates/node_modules/mpath/.travis.yml +9 -0
  1256. package/templates/node_modules/mpath/History.md +88 -0
  1257. package/templates/node_modules/mpath/LICENSE +22 -0
  1258. package/templates/node_modules/mpath/README.md +278 -0
  1259. package/templates/node_modules/mpath/SECURITY.md +5 -0
  1260. package/templates/node_modules/mpath/index.js +3 -0
  1261. package/templates/node_modules/mpath/lib/index.js +336 -0
  1262. package/templates/node_modules/mpath/lib/stringToParts.js +48 -0
  1263. package/templates/node_modules/mpath/package.json +144 -0
  1264. package/templates/node_modules/mpath/test/.eslintrc.yml +4 -0
  1265. package/templates/node_modules/mpath/test/index.js +1879 -0
  1266. package/templates/node_modules/mpath/test/stringToParts.js +30 -0
  1267. package/templates/node_modules/mquery/.github/ISSUE_TEMPLATE.md +11 -0
  1268. package/templates/node_modules/mquery/.github/PULL_REQUEST_TEMPLATE.md +9 -0
  1269. package/templates/node_modules/mquery/History.md +393 -0
  1270. package/templates/node_modules/mquery/LICENSE +22 -0
  1271. package/templates/node_modules/mquery/README.md +1387 -0
  1272. package/templates/node_modules/mquery/SECURITY.md +1 -0
  1273. package/templates/node_modules/mquery/lib/collection/collection.js +47 -0
  1274. package/templates/node_modules/mquery/lib/collection/index.js +13 -0
  1275. package/templates/node_modules/mquery/lib/collection/node.js +128 -0
  1276. package/templates/node_modules/mquery/lib/env.js +22 -0
  1277. package/templates/node_modules/mquery/lib/mquery.js +2748 -0
  1278. package/templates/node_modules/mquery/lib/permissions.js +93 -0
  1279. package/templates/node_modules/mquery/lib/utils.js +297 -0
  1280. package/templates/node_modules/mquery/package.json +35 -0
  1281. package/templates/node_modules/ms/index.js +162 -0
  1282. package/templates/node_modules/ms/license.md +21 -0
  1283. package/templates/node_modules/ms/package.json +38 -0
  1284. package/templates/node_modules/ms/readme.md +59 -0
  1285. package/templates/node_modules/negotiator/HISTORY.md +114 -0
  1286. package/templates/node_modules/negotiator/LICENSE +24 -0
  1287. package/templates/node_modules/negotiator/README.md +212 -0
  1288. package/templates/node_modules/negotiator/index.js +83 -0
  1289. package/templates/node_modules/negotiator/lib/charset.js +169 -0
  1290. package/templates/node_modules/negotiator/lib/encoding.js +205 -0
  1291. package/templates/node_modules/negotiator/lib/language.js +179 -0
  1292. package/templates/node_modules/negotiator/lib/mediaType.js +294 -0
  1293. package/templates/node_modules/negotiator/package.json +43 -0
  1294. package/templates/node_modules/object-inspect/.eslintrc +53 -0
  1295. package/templates/node_modules/object-inspect/.github/FUNDING.yml +12 -0
  1296. package/templates/node_modules/object-inspect/.nycrc +13 -0
  1297. package/templates/node_modules/object-inspect/CHANGELOG.md +424 -0
  1298. package/templates/node_modules/object-inspect/LICENSE +21 -0
  1299. package/templates/node_modules/object-inspect/example/all.js +23 -0
  1300. package/templates/node_modules/object-inspect/example/circular.js +6 -0
  1301. package/templates/node_modules/object-inspect/example/fn.js +5 -0
  1302. package/templates/node_modules/object-inspect/example/inspect.js +10 -0
  1303. package/templates/node_modules/object-inspect/index.js +544 -0
  1304. package/templates/node_modules/object-inspect/package-support.json +20 -0
  1305. package/templates/node_modules/object-inspect/package.json +105 -0
  1306. package/templates/node_modules/object-inspect/readme.markdown +84 -0
  1307. package/templates/node_modules/object-inspect/test/bigint.js +58 -0
  1308. package/templates/node_modules/object-inspect/test/browser/dom.js +15 -0
  1309. package/templates/node_modules/object-inspect/test/circular.js +16 -0
  1310. package/templates/node_modules/object-inspect/test/deep.js +12 -0
  1311. package/templates/node_modules/object-inspect/test/element.js +53 -0
  1312. package/templates/node_modules/object-inspect/test/err.js +48 -0
  1313. package/templates/node_modules/object-inspect/test/fakes.js +29 -0
  1314. package/templates/node_modules/object-inspect/test/fn.js +76 -0
  1315. package/templates/node_modules/object-inspect/test/global.js +17 -0
  1316. package/templates/node_modules/object-inspect/test/has.js +15 -0
  1317. package/templates/node_modules/object-inspect/test/holes.js +15 -0
  1318. package/templates/node_modules/object-inspect/test/indent-option.js +271 -0
  1319. package/templates/node_modules/object-inspect/test/inspect.js +139 -0
  1320. package/templates/node_modules/object-inspect/test/lowbyte.js +12 -0
  1321. package/templates/node_modules/object-inspect/test/number.js +58 -0
  1322. package/templates/node_modules/object-inspect/test/quoteStyle.js +26 -0
  1323. package/templates/node_modules/object-inspect/test/toStringTag.js +40 -0
  1324. package/templates/node_modules/object-inspect/test/undef.js +12 -0
  1325. package/templates/node_modules/object-inspect/test/values.js +261 -0
  1326. package/templates/node_modules/object-inspect/test-core-js.js +26 -0
  1327. package/templates/node_modules/object-inspect/util.inspect.js +1 -0
  1328. package/templates/node_modules/on-finished/HISTORY.md +98 -0
  1329. package/templates/node_modules/on-finished/LICENSE +23 -0
  1330. package/templates/node_modules/on-finished/README.md +162 -0
  1331. package/templates/node_modules/on-finished/index.js +234 -0
  1332. package/templates/node_modules/on-finished/package.json +39 -0
  1333. package/templates/node_modules/on-headers/HISTORY.md +26 -0
  1334. package/templates/node_modules/on-headers/LICENSE +22 -0
  1335. package/templates/node_modules/on-headers/README.md +81 -0
  1336. package/templates/node_modules/on-headers/index.js +180 -0
  1337. package/templates/node_modules/on-headers/package.json +44 -0
  1338. package/templates/node_modules/once/LICENSE +15 -0
  1339. package/templates/node_modules/once/README.md +79 -0
  1340. package/templates/node_modules/once/once.js +42 -0
  1341. package/templates/node_modules/once/package.json +33 -0
  1342. package/templates/node_modules/parseurl/HISTORY.md +58 -0
  1343. package/templates/node_modules/parseurl/LICENSE +24 -0
  1344. package/templates/node_modules/parseurl/README.md +133 -0
  1345. package/templates/node_modules/parseurl/index.js +158 -0
  1346. package/templates/node_modules/parseurl/package.json +40 -0
  1347. package/templates/node_modules/path-to-regexp/LICENSE +21 -0
  1348. package/templates/node_modules/path-to-regexp/Readme.md +224 -0
  1349. package/templates/node_modules/path-to-regexp/dist/index.d.ts +144 -0
  1350. package/templates/node_modules/path-to-regexp/dist/index.js +409 -0
  1351. package/templates/node_modules/path-to-regexp/dist/index.js.map +1 -0
  1352. package/templates/node_modules/path-to-regexp/package.json +64 -0
  1353. package/templates/node_modules/proxy-addr/HISTORY.md +161 -0
  1354. package/templates/node_modules/proxy-addr/LICENSE +22 -0
  1355. package/templates/node_modules/proxy-addr/README.md +139 -0
  1356. package/templates/node_modules/proxy-addr/index.js +327 -0
  1357. package/templates/node_modules/proxy-addr/package.json +47 -0
  1358. package/templates/node_modules/punycode/LICENSE-MIT.txt +20 -0
  1359. package/templates/node_modules/punycode/README.md +148 -0
  1360. package/templates/node_modules/punycode/package.json +58 -0
  1361. package/templates/node_modules/punycode/punycode.es6.js +444 -0
  1362. package/templates/node_modules/punycode/punycode.js +443 -0
  1363. package/templates/node_modules/qs/.editorconfig +46 -0
  1364. package/templates/node_modules/qs/.eslintrc +39 -0
  1365. package/templates/node_modules/qs/.github/FUNDING.yml +12 -0
  1366. package/templates/node_modules/qs/.nycrc +13 -0
  1367. package/templates/node_modules/qs/CHANGELOG.md +622 -0
  1368. package/templates/node_modules/qs/LICENSE.md +29 -0
  1369. package/templates/node_modules/qs/README.md +733 -0
  1370. package/templates/node_modules/qs/dist/qs.js +141 -0
  1371. package/templates/node_modules/qs/lib/formats.js +23 -0
  1372. package/templates/node_modules/qs/lib/index.js +11 -0
  1373. package/templates/node_modules/qs/lib/parse.js +328 -0
  1374. package/templates/node_modules/qs/lib/stringify.js +356 -0
  1375. package/templates/node_modules/qs/lib/utils.js +268 -0
  1376. package/templates/node_modules/qs/package.json +93 -0
  1377. package/templates/node_modules/qs/test/empty-keys-cases.js +267 -0
  1378. package/templates/node_modules/qs/test/parse.js +1276 -0
  1379. package/templates/node_modules/qs/test/stringify.js +1306 -0
  1380. package/templates/node_modules/qs/test/utils.js +262 -0
  1381. package/templates/node_modules/range-parser/HISTORY.md +56 -0
  1382. package/templates/node_modules/range-parser/LICENSE +23 -0
  1383. package/templates/node_modules/range-parser/README.md +84 -0
  1384. package/templates/node_modules/range-parser/index.js +162 -0
  1385. package/templates/node_modules/range-parser/package.json +44 -0
  1386. package/templates/node_modules/raw-body/LICENSE +22 -0
  1387. package/templates/node_modules/raw-body/README.md +223 -0
  1388. package/templates/node_modules/raw-body/index.d.ts +85 -0
  1389. package/templates/node_modules/raw-body/index.js +336 -0
  1390. package/templates/node_modules/raw-body/package.json +46 -0
  1391. package/templates/node_modules/router/HISTORY.md +228 -0
  1392. package/templates/node_modules/router/LICENSE +23 -0
  1393. package/templates/node_modules/router/README.md +416 -0
  1394. package/templates/node_modules/router/index.js +748 -0
  1395. package/templates/node_modules/router/lib/layer.js +247 -0
  1396. package/templates/node_modules/router/lib/route.js +242 -0
  1397. package/templates/node_modules/router/package.json +44 -0
  1398. package/templates/node_modules/safe-buffer/LICENSE +21 -0
  1399. package/templates/node_modules/safe-buffer/README.md +584 -0
  1400. package/templates/node_modules/safe-buffer/index.d.ts +187 -0
  1401. package/templates/node_modules/safe-buffer/index.js +62 -0
  1402. package/templates/node_modules/safe-buffer/package.json +37 -0
  1403. package/templates/node_modules/safer-buffer/LICENSE +21 -0
  1404. package/templates/node_modules/safer-buffer/Porting-Buffer.md +268 -0
  1405. package/templates/node_modules/safer-buffer/Readme.md +156 -0
  1406. package/templates/node_modules/safer-buffer/dangerous.js +58 -0
  1407. package/templates/node_modules/safer-buffer/package.json +34 -0
  1408. package/templates/node_modules/safer-buffer/safer.js +77 -0
  1409. package/templates/node_modules/safer-buffer/tests.js +406 -0
  1410. package/templates/node_modules/send/LICENSE +23 -0
  1411. package/templates/node_modules/send/README.md +317 -0
  1412. package/templates/node_modules/send/index.js +997 -0
  1413. package/templates/node_modules/send/package.json +63 -0
  1414. package/templates/node_modules/serve-static/LICENSE +25 -0
  1415. package/templates/node_modules/serve-static/README.md +253 -0
  1416. package/templates/node_modules/serve-static/index.js +208 -0
  1417. package/templates/node_modules/serve-static/package.json +44 -0
  1418. package/templates/node_modules/setprototypeof/LICENSE +13 -0
  1419. package/templates/node_modules/setprototypeof/README.md +31 -0
  1420. package/templates/node_modules/setprototypeof/index.d.ts +2 -0
  1421. package/templates/node_modules/setprototypeof/index.js +17 -0
  1422. package/templates/node_modules/setprototypeof/package.json +38 -0
  1423. package/templates/node_modules/setprototypeof/test/index.js +24 -0
  1424. package/templates/node_modules/side-channel/.editorconfig +9 -0
  1425. package/templates/node_modules/side-channel/.eslintrc +12 -0
  1426. package/templates/node_modules/side-channel/.github/FUNDING.yml +12 -0
  1427. package/templates/node_modules/side-channel/.nycrc +13 -0
  1428. package/templates/node_modules/side-channel/CHANGELOG.md +110 -0
  1429. package/templates/node_modules/side-channel/LICENSE +21 -0
  1430. package/templates/node_modules/side-channel/README.md +61 -0
  1431. package/templates/node_modules/side-channel/index.d.ts +14 -0
  1432. package/templates/node_modules/side-channel/index.js +43 -0
  1433. package/templates/node_modules/side-channel/package.json +85 -0
  1434. package/templates/node_modules/side-channel/test/index.js +104 -0
  1435. package/templates/node_modules/side-channel/tsconfig.json +9 -0
  1436. package/templates/node_modules/side-channel-list/.editorconfig +9 -0
  1437. package/templates/node_modules/side-channel-list/.eslintrc +11 -0
  1438. package/templates/node_modules/side-channel-list/.github/FUNDING.yml +12 -0
  1439. package/templates/node_modules/side-channel-list/.nycrc +13 -0
  1440. package/templates/node_modules/side-channel-list/CHANGELOG.md +15 -0
  1441. package/templates/node_modules/side-channel-list/LICENSE +21 -0
  1442. package/templates/node_modules/side-channel-list/README.md +62 -0
  1443. package/templates/node_modules/side-channel-list/index.d.ts +13 -0
  1444. package/templates/node_modules/side-channel-list/index.js +113 -0
  1445. package/templates/node_modules/side-channel-list/list.d.ts +14 -0
  1446. package/templates/node_modules/side-channel-list/package.json +77 -0
  1447. package/templates/node_modules/side-channel-list/test/index.js +104 -0
  1448. package/templates/node_modules/side-channel-list/tsconfig.json +9 -0
  1449. package/templates/node_modules/side-channel-map/.editorconfig +9 -0
  1450. package/templates/node_modules/side-channel-map/.eslintrc +11 -0
  1451. package/templates/node_modules/side-channel-map/.github/FUNDING.yml +12 -0
  1452. package/templates/node_modules/side-channel-map/.nycrc +13 -0
  1453. package/templates/node_modules/side-channel-map/CHANGELOG.md +22 -0
  1454. package/templates/node_modules/side-channel-map/LICENSE +21 -0
  1455. package/templates/node_modules/side-channel-map/README.md +62 -0
  1456. package/templates/node_modules/side-channel-map/index.d.ts +15 -0
  1457. package/templates/node_modules/side-channel-map/index.js +68 -0
  1458. package/templates/node_modules/side-channel-map/package.json +80 -0
  1459. package/templates/node_modules/side-channel-map/test/index.js +114 -0
  1460. package/templates/node_modules/side-channel-map/tsconfig.json +9 -0
  1461. package/templates/node_modules/side-channel-weakmap/.editorconfig +9 -0
  1462. package/templates/node_modules/side-channel-weakmap/.eslintrc +12 -0
  1463. package/templates/node_modules/side-channel-weakmap/.github/FUNDING.yml +12 -0
  1464. package/templates/node_modules/side-channel-weakmap/.nycrc +13 -0
  1465. package/templates/node_modules/side-channel-weakmap/CHANGELOG.md +28 -0
  1466. package/templates/node_modules/side-channel-weakmap/LICENSE +21 -0
  1467. package/templates/node_modules/side-channel-weakmap/README.md +62 -0
  1468. package/templates/node_modules/side-channel-weakmap/index.d.ts +15 -0
  1469. package/templates/node_modules/side-channel-weakmap/index.js +84 -0
  1470. package/templates/node_modules/side-channel-weakmap/package.json +87 -0
  1471. package/templates/node_modules/side-channel-weakmap/test/index.js +114 -0
  1472. package/templates/node_modules/side-channel-weakmap/tsconfig.json +9 -0
  1473. package/templates/node_modules/sift/MIT-LICENSE.txt +20 -0
  1474. package/templates/node_modules/sift/README.md +465 -0
  1475. package/templates/node_modules/sift/es/index.js +632 -0
  1476. package/templates/node_modules/sift/es/index.js.map +1 -0
  1477. package/templates/node_modules/sift/es5m/index.js +743 -0
  1478. package/templates/node_modules/sift/es5m/index.js.map +1 -0
  1479. package/templates/node_modules/sift/index.d.ts +4 -0
  1480. package/templates/node_modules/sift/index.js +4 -0
  1481. package/templates/node_modules/sift/lib/core.d.ts +116 -0
  1482. package/templates/node_modules/sift/lib/index.d.ts +6 -0
  1483. package/templates/node_modules/sift/lib/index.js +781 -0
  1484. package/templates/node_modules/sift/lib/index.js.map +1 -0
  1485. package/templates/node_modules/sift/lib/operations.d.ts +88 -0
  1486. package/templates/node_modules/sift/lib/utils.d.ts +11 -0
  1487. package/templates/node_modules/sift/package.json +61 -0
  1488. package/templates/node_modules/sift/sift.csp.min.js +778 -0
  1489. package/templates/node_modules/sift/sift.csp.min.js.map +1 -0
  1490. package/templates/node_modules/sift/sift.min.js +2 -0
  1491. package/templates/node_modules/sift/sift.min.js.map +1 -0
  1492. package/templates/node_modules/sift/src/core.ts +494 -0
  1493. package/templates/node_modules/sift/src/index.ts +54 -0
  1494. package/templates/node_modules/sift/src/operations.ts +422 -0
  1495. package/templates/node_modules/sift/src/utils.ts +74 -0
  1496. package/templates/node_modules/sparse-bitfield/.travis.yml +6 -0
  1497. package/templates/node_modules/sparse-bitfield/LICENSE +21 -0
  1498. package/templates/node_modules/sparse-bitfield/README.md +62 -0
  1499. package/templates/node_modules/sparse-bitfield/index.js +95 -0
  1500. package/templates/node_modules/sparse-bitfield/package.json +27 -0
  1501. package/templates/node_modules/sparse-bitfield/test.js +79 -0
  1502. package/templates/node_modules/statuses/HISTORY.md +87 -0
  1503. package/templates/node_modules/statuses/LICENSE +23 -0
  1504. package/templates/node_modules/statuses/README.md +139 -0
  1505. package/templates/node_modules/statuses/codes.json +65 -0
  1506. package/templates/node_modules/statuses/index.js +146 -0
  1507. package/templates/node_modules/statuses/package.json +49 -0
  1508. package/templates/node_modules/toidentifier/HISTORY.md +9 -0
  1509. package/templates/node_modules/toidentifier/LICENSE +21 -0
  1510. package/templates/node_modules/toidentifier/README.md +61 -0
  1511. package/templates/node_modules/toidentifier/index.js +32 -0
  1512. package/templates/node_modules/toidentifier/package.json +38 -0
  1513. package/templates/node_modules/tr46/LICENSE.md +21 -0
  1514. package/templates/node_modules/tr46/README.md +76 -0
  1515. package/templates/node_modules/tr46/index.js +344 -0
  1516. package/templates/node_modules/tr46/lib/mappingTable.json +1 -0
  1517. package/templates/node_modules/tr46/lib/regexes.js +29 -0
  1518. package/templates/node_modules/tr46/lib/statusMapping.js +9 -0
  1519. package/templates/node_modules/tr46/package.json +44 -0
  1520. package/templates/node_modules/type-is/HISTORY.md +292 -0
  1521. package/templates/node_modules/type-is/LICENSE +23 -0
  1522. package/templates/node_modules/type-is/README.md +198 -0
  1523. package/templates/node_modules/type-is/index.js +250 -0
  1524. package/templates/node_modules/type-is/package.json +47 -0
  1525. package/templates/node_modules/unpipe/HISTORY.md +4 -0
  1526. package/templates/node_modules/unpipe/LICENSE +22 -0
  1527. package/templates/node_modules/unpipe/README.md +43 -0
  1528. package/templates/node_modules/unpipe/index.js +69 -0
  1529. package/templates/node_modules/unpipe/package.json +27 -0
  1530. package/templates/node_modules/vary/HISTORY.md +39 -0
  1531. package/templates/node_modules/vary/LICENSE +22 -0
  1532. package/templates/node_modules/vary/README.md +101 -0
  1533. package/templates/node_modules/vary/index.js +149 -0
  1534. package/templates/node_modules/vary/package.json +43 -0
  1535. package/templates/node_modules/webidl-conversions/LICENSE.md +12 -0
  1536. package/templates/node_modules/webidl-conversions/README.md +99 -0
  1537. package/templates/node_modules/webidl-conversions/lib/index.js +450 -0
  1538. package/templates/node_modules/webidl-conversions/package.json +35 -0
  1539. package/templates/node_modules/whatwg-url/LICENSE.txt +21 -0
  1540. package/templates/node_modules/whatwg-url/README.md +106 -0
  1541. package/templates/node_modules/whatwg-url/index.js +27 -0
  1542. package/templates/node_modules/whatwg-url/lib/Function.js +42 -0
  1543. package/templates/node_modules/whatwg-url/lib/URL-impl.js +233 -0
  1544. package/templates/node_modules/whatwg-url/lib/URL.js +499 -0
  1545. package/templates/node_modules/whatwg-url/lib/URLSearchParams-impl.js +135 -0
  1546. package/templates/node_modules/whatwg-url/lib/URLSearchParams.js +505 -0
  1547. package/templates/node_modules/whatwg-url/lib/VoidFunction.js +26 -0
  1548. package/templates/node_modules/whatwg-url/lib/encoding.js +16 -0
  1549. package/templates/node_modules/whatwg-url/lib/infra.js +26 -0
  1550. package/templates/node_modules/whatwg-url/lib/percent-encoding.js +142 -0
  1551. package/templates/node_modules/whatwg-url/lib/url-state-machine.js +1274 -0
  1552. package/templates/node_modules/whatwg-url/lib/urlencoded.js +89 -0
  1553. package/templates/node_modules/whatwg-url/lib/utils.js +190 -0
  1554. package/templates/node_modules/whatwg-url/package.json +53 -0
  1555. package/templates/node_modules/whatwg-url/webidl2js-wrapper.js +7 -0
  1556. package/templates/node_modules/wrappy/LICENSE +15 -0
  1557. package/templates/node_modules/wrappy/README.md +36 -0
  1558. package/templates/node_modules/wrappy/package.json +29 -0
  1559. package/templates/node_modules/wrappy/wrappy.js +33 -0
  1560. package/templates/package-lock.json +23 -0
  1561. package/templates/package.json +1 -0
  1562. package/templates/server.js +7 -8
  1563. package/test-proj/db/index.js +0 -15
  1564. package/test-proj/package.json +0 -19
  1565. package/test-proj/server.js +0 -55
@@ -0,0 +1,1849 @@
1
+ 'use strict';
2
+
3
+ /*!
4
+ * Module dependencies.
5
+ */
6
+
7
+ const ChangeStream = require('./cursor/changeStream');
8
+ const EventEmitter = require('events').EventEmitter;
9
+ const Schema = require('./schema');
10
+ const STATES = require('./connectionState');
11
+ const MongooseBulkWriteError = require('./error/bulkWriteError');
12
+ const MongooseError = require('./error/index');
13
+ const ServerSelectionError = require('./error/serverSelection');
14
+ const SyncIndexesError = require('./error/syncIndexes');
15
+ const applyPlugins = require('./helpers/schema/applyPlugins');
16
+ const clone = require('./helpers/clone');
17
+ const driver = require('./driver');
18
+ const get = require('./helpers/get');
19
+ const getDefaultBulkwriteResult = require('./helpers/getDefaultBulkwriteResult');
20
+ const immediate = require('./helpers/immediate');
21
+ const utils = require('./utils');
22
+ const CreateCollectionsError = require('./error/createCollectionsError');
23
+ const castBulkWrite = require('./helpers/model/castBulkWrite');
24
+ const { modelSymbol } = require('./helpers/symbols');
25
+ const isPromise = require('./helpers/isPromise');
26
+ const decorateBulkWriteResult = require('./helpers/model/decorateBulkWriteResult');
27
+
28
+ const arrayAtomicsSymbol = require('./helpers/symbols').arrayAtomicsSymbol;
29
+ const sessionNewDocuments = require('./helpers/symbols').sessionNewDocuments;
30
+
31
+ // Snapshot the native Date constructor to ensure both Date.now() and new Date() (and other Date methods)
32
+ // bypass timer mocks such as those set up by useFakeTimers().
33
+ const Date = globalThis.Date;
34
+
35
+ /**
36
+ * A list of authentication mechanisms that don't require a password for authentication.
37
+ * This is used by the authMechanismDoesNotRequirePassword method.
38
+ *
39
+ * @api private
40
+ */
41
+ const noPasswordAuthMechanisms = [
42
+ 'MONGODB-X509'
43
+ ];
44
+
45
+ /**
46
+ * Connection constructor
47
+ *
48
+ * For practical reasons, a Connection equals a Db.
49
+ *
50
+ * @param {Mongoose} base a mongoose instance
51
+ * @inherits NodeJS EventEmitter https://nodejs.org/api/events.html#class-eventemitter
52
+ * @event `connecting`: Emitted when `connection.openUri()` is executed on this connection.
53
+ * @event `connected`: Emitted when this connection successfully connects to the db. May be emitted _multiple_ times in `reconnected` scenarios.
54
+ * @event `open`: Emitted after we `connected` and `onOpen` is executed on all of this connection's models.
55
+ * @event `disconnecting`: Emitted when `connection.close()` was executed.
56
+ * @event `disconnected`: Emitted after getting disconnected from the db.
57
+ * @event `close`: Emitted after we `disconnected` and `onClose` executed on all of this connection's models.
58
+ * @event `reconnected`: Emitted after we `connected` and subsequently `disconnected`, followed by successfully another successful connection.
59
+ * @event `error`: Emitted when an error occurs on this connection.
60
+ * @event `operation-start`: Emitted when a call to the MongoDB Node.js driver, like a `find()` or `insertOne()`, happens on any collection tied to this connection.
61
+ * @event `operation-end`: Emitted when a call to the MongoDB Node.js driver, like a `find()` or `insertOne()`, either succeeds or errors.
62
+ * @api public
63
+ */
64
+
65
+ function Connection(base) {
66
+ this.base = base;
67
+ this.collections = {};
68
+ this.models = {};
69
+ this.config = {};
70
+ this.replica = false;
71
+ this.options = null;
72
+ this.otherDbs = []; // FIXME: To be replaced with relatedDbs
73
+ this.relatedDbs = {}; // Hashmap of other dbs that share underlying connection
74
+ this.states = STATES;
75
+ this._readyState = STATES.disconnected;
76
+ this._closeCalled = false;
77
+ this._hasOpened = false;
78
+ this.plugins = [];
79
+ if (typeof base === 'undefined' || !base.connections.length) {
80
+ this.id = 0;
81
+ } else {
82
+ this.id = base.nextConnectionId;
83
+ }
84
+
85
+ // Internal queue of objects `{ fn, ctx, args }` that Mongoose calls when this connection is successfully
86
+ // opened. In `onOpen()`, Mongoose calls every entry in `_queue` and empties the queue.
87
+ this._queue = [];
88
+ }
89
+
90
+ /*!
91
+ * Inherit from EventEmitter
92
+ */
93
+
94
+ Object.setPrototypeOf(Connection.prototype, EventEmitter.prototype);
95
+
96
+ /**
97
+ * Connection ready state
98
+ *
99
+ * - 0 = disconnected
100
+ * - 1 = connected
101
+ * - 2 = connecting
102
+ * - 3 = disconnecting
103
+ *
104
+ * Each state change emits its associated event name.
105
+ *
106
+ * #### Example:
107
+ *
108
+ * conn.on('connected', callback);
109
+ * conn.on('disconnected', callback);
110
+ *
111
+ * @property readyState
112
+ * @memberOf Connection
113
+ * @instance
114
+ * @api public
115
+ */
116
+
117
+ Object.defineProperty(Connection.prototype, 'readyState', {
118
+ get: function() {
119
+ // If connection thinks it is connected, but we haven't received a heartbeat in 2 heartbeat intervals,
120
+ // that likely means the connection is stale (potentially due to frozen AWS Lambda container)
121
+ if (
122
+ this._readyState === STATES.connected &&
123
+ this._lastHeartbeatAt != null &&
124
+ // LoadBalanced topology (behind haproxy, including Atlas serverless instances) don't use heartbeats,
125
+ // so we can't use this check in that case.
126
+ this.client?.topology?.s?.description?.type !== 'LoadBalanced' &&
127
+ typeof this.client?.topology?.s?.description?.heartbeatFrequencyMS === 'number' &&
128
+ Date.now() - this._lastHeartbeatAt >= this.client.topology.s.description.heartbeatFrequencyMS * 2) {
129
+ return STATES.disconnected;
130
+ }
131
+ return this._readyState;
132
+ },
133
+ set: function(val) {
134
+ if (!(val in STATES)) {
135
+ throw new Error('Invalid connection state: ' + val);
136
+ }
137
+
138
+ if (this._readyState !== val) {
139
+ this._readyState = val;
140
+ // [legacy] loop over the otherDbs on this connection and change their state
141
+ for (const db of this.otherDbs) {
142
+ db.readyState = val;
143
+ }
144
+
145
+ if (STATES.connected === val) {
146
+ this._hasOpened = true;
147
+ }
148
+
149
+ this.emit(STATES[val]);
150
+ }
151
+ }
152
+ });
153
+
154
+ /**
155
+ * Gets the value of the option `key`. Equivalent to `conn.options[key]`
156
+ *
157
+ * #### Example:
158
+ *
159
+ * conn.get('test'); // returns the 'test' value
160
+ *
161
+ * @param {String} key
162
+ * @method get
163
+ * @api public
164
+ */
165
+
166
+ Connection.prototype.get = function getOption(key) {
167
+ if (Object.hasOwn(this.config, key)) {
168
+ return this.config[key];
169
+ }
170
+
171
+ return get(this.options, key);
172
+ };
173
+
174
+ /**
175
+ * Sets the value of the option `key`. Equivalent to `conn.options[key] = val`
176
+ *
177
+ * Supported options include:
178
+ *
179
+ * - `maxTimeMS`: Set [`maxTimeMS`](https://mongoosejs.com/docs/api/query.html#Query.prototype.maxTimeMS()) for all queries on this connection.
180
+ * - 'debug': If `true`, prints the operations mongoose sends to MongoDB to the console. If a writable stream is passed, it will log to that stream, without colorization. If a callback function is passed, it will receive the collection name, the method name, then all arugments passed to the method. For example, if you wanted to replicate the default logging, you could output from the callback `Mongoose: ${collectionName}.${methodName}(${methodArgs.join(', ')})`.
181
+ *
182
+ * #### Example:
183
+ *
184
+ * conn.set('test', 'foo');
185
+ * conn.get('test'); // 'foo'
186
+ * conn.options.test; // 'foo'
187
+ *
188
+ * @param {String} key
189
+ * @param {Any} val
190
+ * @method set
191
+ * @api public
192
+ */
193
+
194
+ Connection.prototype.set = function setOption(key, val) {
195
+ if (Object.hasOwn(this.config, key)) {
196
+ this.config[key] = val;
197
+ return val;
198
+ }
199
+
200
+ this.options = this.options || {};
201
+ this.options[key] = val;
202
+ return val;
203
+ };
204
+
205
+ /**
206
+ * A hash of the collections associated with this connection
207
+ *
208
+ * @property collections
209
+ * @memberOf Connection
210
+ * @instance
211
+ * @api public
212
+ */
213
+
214
+ Connection.prototype.collections;
215
+
216
+ /**
217
+ * The name of the database this connection points to.
218
+ *
219
+ * #### Example:
220
+ *
221
+ * mongoose.createConnection('mongodb://127.0.0.1:27017/mydb').name; // "mydb"
222
+ *
223
+ * @property name
224
+ * @memberOf Connection
225
+ * @instance
226
+ * @api public
227
+ */
228
+
229
+ Connection.prototype.name;
230
+
231
+ /**
232
+ * A [POJO](https://masteringjs.io/tutorials/fundamentals/pojo) containing
233
+ * a map from model names to models. Contains all models that have been
234
+ * added to this connection using [`Connection#model()`](https://mongoosejs.com/docs/api/connection.html#Connection.prototype.model()).
235
+ *
236
+ * #### Example:
237
+ *
238
+ * const conn = mongoose.createConnection();
239
+ * const Test = conn.model('Test', mongoose.Schema({ name: String }));
240
+ *
241
+ * Object.keys(conn.models).length; // 1
242
+ * conn.models.Test === Test; // true
243
+ *
244
+ * @property models
245
+ * @memberOf Connection
246
+ * @instance
247
+ * @api public
248
+ */
249
+
250
+ Connection.prototype.models;
251
+
252
+ /**
253
+ * A number identifier for this connection. Used for debugging when
254
+ * you have [multiple connections](https://mongoosejs.com/docs/connections.html#multiple_connections).
255
+ *
256
+ * #### Example:
257
+ *
258
+ * // The default connection has `id = 0`
259
+ * mongoose.connection.id; // 0
260
+ *
261
+ * // If you create a new connection, Mongoose increments id
262
+ * const conn = mongoose.createConnection();
263
+ * conn.id; // 1
264
+ *
265
+ * @property id
266
+ * @memberOf Connection
267
+ * @instance
268
+ * @api public
269
+ */
270
+
271
+ Connection.prototype.id;
272
+
273
+ /**
274
+ * The plugins that will be applied to all models created on this connection.
275
+ *
276
+ * #### Example:
277
+ *
278
+ * const db = mongoose.createConnection('mongodb://127.0.0.1:27017/mydb');
279
+ * db.plugin(() => console.log('Applied'));
280
+ * db.plugins.length; // 1
281
+ *
282
+ * db.model('Test', new Schema({})); // Prints "Applied"
283
+ *
284
+ * @property plugins
285
+ * @memberOf Connection
286
+ * @instance
287
+ * @api public
288
+ */
289
+
290
+ Object.defineProperty(Connection.prototype, 'plugins', {
291
+ configurable: false,
292
+ enumerable: true,
293
+ writable: true
294
+ });
295
+
296
+ /**
297
+ * The host name portion of the URI. If multiple hosts, such as a replica set,
298
+ * this will contain the first host name in the URI
299
+ *
300
+ * #### Example:
301
+ *
302
+ * mongoose.createConnection('mongodb://127.0.0.1:27017/mydb').host; // "127.0.0.1"
303
+ *
304
+ * @property host
305
+ * @memberOf Connection
306
+ * @instance
307
+ * @api public
308
+ */
309
+
310
+ Object.defineProperty(Connection.prototype, 'host', {
311
+ configurable: true,
312
+ enumerable: true,
313
+ writable: true
314
+ });
315
+
316
+ /**
317
+ * The port portion of the URI. If multiple hosts, such as a replica set,
318
+ * this will contain the port from the first host name in the URI.
319
+ *
320
+ * #### Example:
321
+ *
322
+ * mongoose.createConnection('mongodb://127.0.0.1:27017/mydb').port; // 27017
323
+ *
324
+ * @property port
325
+ * @memberOf Connection
326
+ * @instance
327
+ * @api public
328
+ */
329
+
330
+ Object.defineProperty(Connection.prototype, 'port', {
331
+ configurable: true,
332
+ enumerable: true,
333
+ writable: true
334
+ });
335
+
336
+ /**
337
+ * The username specified in the URI
338
+ *
339
+ * #### Example:
340
+ *
341
+ * mongoose.createConnection('mongodb://val:psw@127.0.0.1:27017/mydb').user; // "val"
342
+ *
343
+ * @property user
344
+ * @memberOf Connection
345
+ * @instance
346
+ * @api public
347
+ */
348
+
349
+ Object.defineProperty(Connection.prototype, 'user', {
350
+ configurable: true,
351
+ enumerable: true,
352
+ writable: true
353
+ });
354
+
355
+ /**
356
+ * The password specified in the URI
357
+ *
358
+ * #### Example:
359
+ *
360
+ * mongoose.createConnection('mongodb://val:psw@127.0.0.1:27017/mydb').pass; // "psw"
361
+ *
362
+ * @property pass
363
+ * @memberOf Connection
364
+ * @instance
365
+ * @api public
366
+ */
367
+
368
+ Object.defineProperty(Connection.prototype, 'pass', {
369
+ configurable: true,
370
+ enumerable: true,
371
+ writable: true
372
+ });
373
+
374
+ /**
375
+ * The mongodb.Db instance, set when the connection is opened
376
+ *
377
+ * @property db
378
+ * @memberOf Connection
379
+ * @instance
380
+ * @api public
381
+ */
382
+
383
+ Connection.prototype.db;
384
+
385
+ /**
386
+ * The MongoClient instance this connection uses to talk to MongoDB. Mongoose automatically sets this property
387
+ * when the connection is opened.
388
+ *
389
+ * @property client
390
+ * @memberOf Connection
391
+ * @instance
392
+ * @api public
393
+ */
394
+
395
+ Connection.prototype.client;
396
+
397
+ /**
398
+ * A hash of the global options that are associated with this connection
399
+ *
400
+ * @property config
401
+ * @memberOf Connection
402
+ * @instance
403
+ * @api public
404
+ */
405
+
406
+ Connection.prototype.config;
407
+
408
+ /**
409
+ * Helper for `createCollection()`. Will explicitly create the given collection
410
+ * with specified options. Used to create [capped collections](https://www.mongodb.com/docs/manual/core/capped-collections/)
411
+ * and [views](https://www.mongodb.com/docs/manual/core/views/) from mongoose.
412
+ *
413
+ * Options are passed down without modification to the [MongoDB driver's `createCollection()` function](https://mongodb.github.io/node-mongodb-native/4.9/classes/Db.html#createCollection)
414
+ *
415
+ * @method createCollection
416
+ * @param {string} collection The collection to create
417
+ * @param {Object} [options] see [MongoDB driver docs](https://mongodb.github.io/node-mongodb-native/4.9/classes/Db.html#createCollection)
418
+ * @return {Promise}
419
+ * @api public
420
+ */
421
+
422
+ Connection.prototype.createCollection = async function createCollection(collection, options) {
423
+ if (typeof options === 'function' || (arguments.length >= 3 && typeof arguments[2] === 'function')) {
424
+ throw new MongooseError('Connection.prototype.createCollection() no longer accepts a callback');
425
+ }
426
+
427
+ await this._waitForConnect();
428
+
429
+ return this.db.createCollection(collection, options);
430
+ };
431
+
432
+ /**
433
+ * _Requires MongoDB Server 8.0 or greater_. Executes bulk write operations across multiple models in a single operation.
434
+ * You must specify the `model` for each operation: Mongoose will use `model` for casting and validation, as well as
435
+ * determining which collection to apply the operation to.
436
+ *
437
+ * #### Example:
438
+ * const Test = mongoose.model('Test', new Schema({ name: String }));
439
+ *
440
+ * await db.bulkWrite([
441
+ * { model: Test, name: 'insertOne', document: { name: 'test1' } }, // Can specify model as a Model class...
442
+ * { model: 'Test', name: 'insertOne', document: { name: 'test2' } } // or as a model name
443
+ * ], { ordered: false });
444
+ *
445
+ * @method bulkWrite
446
+ * @param {Array} ops
447
+ * @param {Object} [options]
448
+ * @param {Boolean} [options.ordered] If false, perform unordered operations. If true, perform ordered operations.
449
+ * @param {Session} [options.session] The session to use for the operation.
450
+ * @return {Promise}
451
+ * @see MongoDB https://www.mongodb.com/docs/manual/reference/command/bulkWrite/#mongodb-dbcommand-dbcmd.bulkWrite
452
+ * @api public
453
+ */
454
+
455
+
456
+ Connection.prototype.bulkWrite = async function bulkWrite(ops, options) {
457
+ await this._waitForConnect();
458
+ options = options || {};
459
+
460
+ const ordered = options.ordered == null ? true : options.ordered;
461
+ const asyncLocalStorage = this.base.transactionAsyncLocalStorage?.getStore();
462
+ if ((!options || !Object.hasOwn(options, 'session')) && asyncLocalStorage?.session != null) {
463
+ options = { ...options, session: asyncLocalStorage.session };
464
+ }
465
+
466
+ const now = this.base.now();
467
+
468
+ let res = null;
469
+ if (ordered) {
470
+ const opsToSend = [];
471
+ for (const op of ops) {
472
+ if (typeof op.model !== 'string' && !op.model?.[modelSymbol]) {
473
+ throw new MongooseError('Must specify model in Connection.prototype.bulkWrite() operations');
474
+ }
475
+ const Model = op.model[modelSymbol] ? op.model : this.model(op.model);
476
+
477
+ if (op.name == null) {
478
+ throw new MongooseError('Must specify operation name in Connection.prototype.bulkWrite()');
479
+ }
480
+ if (!Object.hasOwn(castBulkWrite.cast, op.name)) {
481
+ throw new MongooseError(`Unrecognized bulkWrite() operation name ${op.name}`);
482
+ }
483
+
484
+ await castBulkWrite.cast[op.name](Model, op, options, now);
485
+ opsToSend.push({ ...op, namespace: Model.namespace() });
486
+ }
487
+
488
+ res = await this.client.bulkWrite(opsToSend, options);
489
+ } else {
490
+ const validOps = [];
491
+ const validOpIndexes = [];
492
+ let validationErrors = [];
493
+ const asyncValidations = [];
494
+ const results = [];
495
+ for (let i = 0; i < ops.length; ++i) {
496
+ const op = ops[i];
497
+ if (typeof op.model !== 'string' && !op.model?.[modelSymbol]) {
498
+ const error = new MongooseError('Must specify model in Connection.prototype.bulkWrite() operations');
499
+ validationErrors.push({ index: i, error: error });
500
+ results[i] = error;
501
+ continue;
502
+ }
503
+ let Model;
504
+ try {
505
+ Model = op.model[modelSymbol] ? op.model : this.model(op.model);
506
+ } catch (error) {
507
+ validationErrors.push({ index: i, error: error });
508
+ continue;
509
+ }
510
+ if (op.name == null) {
511
+ const error = new MongooseError('Must specify operation name in Connection.prototype.bulkWrite()');
512
+ validationErrors.push({ index: i, error: error });
513
+ results[i] = error;
514
+ continue;
515
+ }
516
+ if (!Object.hasOwn(castBulkWrite.cast, op.name)) {
517
+ const error = new MongooseError(`Unrecognized bulkWrite() operation name ${op.name}`);
518
+ validationErrors.push({ index: i, error: error });
519
+ results[i] = error;
520
+ continue;
521
+ }
522
+
523
+ let maybePromise = null;
524
+ try {
525
+ maybePromise = castBulkWrite.cast[op.name](Model, op, options, now);
526
+ } catch (error) {
527
+ validationErrors.push({ index: i, error: error });
528
+ results[i] = error;
529
+ continue;
530
+ }
531
+ if (isPromise(maybePromise)) {
532
+ asyncValidations.push(
533
+ maybePromise.then(
534
+ () => {
535
+ validOps.push({ ...op, namespace: Model.namespace() });
536
+ validOpIndexes.push(i);
537
+ },
538
+ error => {
539
+ validationErrors.push({ index: i, error: error });
540
+ results[i] = error;
541
+ }
542
+ )
543
+ );
544
+ } else {
545
+ validOps.push({ ...op, namespace: Model.namespace() });
546
+ validOpIndexes.push(i);
547
+ }
548
+ }
549
+
550
+ if (asyncValidations.length > 0) {
551
+ await Promise.all(asyncValidations);
552
+ }
553
+
554
+ validationErrors = validationErrors.
555
+ sort((v1, v2) => v1.index - v2.index).
556
+ map(v => v.error);
557
+
558
+ if (validOps.length === 0) {
559
+ if (options.throwOnValidationError && validationErrors.length) {
560
+ throw new MongooseBulkWriteError(
561
+ validationErrors,
562
+ results,
563
+ res,
564
+ 'bulkWrite'
565
+ );
566
+ }
567
+ const BulkWriteResult = this.base.driver.get().BulkWriteResult;
568
+ const res = new BulkWriteResult(getDefaultBulkwriteResult(), false);
569
+ return decorateBulkWriteResult(res, validationErrors, results);
570
+ }
571
+
572
+ let error;
573
+ [res, error] = await this.client.bulkWrite(validOps, options).
574
+ then(res => ([res, null])).
575
+ catch(err => ([null, err]));
576
+
577
+ for (let i = 0; i < validOpIndexes.length; ++i) {
578
+ results[validOpIndexes[i]] = null;
579
+ }
580
+ if (error) {
581
+ if (validationErrors.length > 0) {
582
+ decorateBulkWriteResult(error, validationErrors, results);
583
+ error.mongoose = error.mongoose || {};
584
+ error.mongoose.validationErrors = validationErrors;
585
+ }
586
+ }
587
+
588
+ if (validationErrors.length > 0) {
589
+ if (options.throwOnValidationError) {
590
+ throw new MongooseBulkWriteError(
591
+ validationErrors,
592
+ results,
593
+ res,
594
+ 'bulkWrite'
595
+ );
596
+ } else {
597
+ decorateBulkWriteResult(res, validationErrors, results);
598
+ }
599
+ }
600
+ }
601
+
602
+ return res;
603
+ };
604
+
605
+ /**
606
+ * Calls `createCollection()` on a models in a series.
607
+ *
608
+ * @method createCollections
609
+ * @param {Boolean} continueOnError When true, will continue to create collections and create a new error class for the collections that errored.
610
+ * @returns {Promise}
611
+ * @api public
612
+ */
613
+
614
+ Connection.prototype.createCollections = async function createCollections(options = {}) {
615
+ const result = {};
616
+ const errorsMap = { };
617
+
618
+ const { continueOnError } = options;
619
+ delete options.continueOnError;
620
+ for (const model of Object.values(this.models)) {
621
+ try {
622
+ result[model.modelName] = await model.createCollection({});
623
+ } catch (err) {
624
+ if (!continueOnError) {
625
+ errorsMap[model.modelName] = err;
626
+ break;
627
+ } else {
628
+ result[model.modelName] = err;
629
+ }
630
+ }
631
+ }
632
+
633
+ if (!continueOnError && Object.keys(errorsMap).length) {
634
+ const message = Object.entries(errorsMap).map(([modelName, err]) => `${modelName}: ${err.message}`).join(', ');
635
+ const createCollectionsError = new CreateCollectionsError(message, errorsMap);
636
+ throw createCollectionsError;
637
+ }
638
+ return result;
639
+ };
640
+
641
+ /**
642
+ * A convenience wrapper for `connection.client.withSession()`.
643
+ *
644
+ * #### Example:
645
+ *
646
+ * await conn.withSession(async session => {
647
+ * const doc = await TestModel.findOne().session(session);
648
+ * });
649
+ *
650
+ * @method withSession
651
+ * @param {Function} executor called with 1 argument: a `ClientSession` instance
652
+ * @return {Promise} resolves to the return value of the executor function
653
+ * @api public
654
+ */
655
+
656
+ Connection.prototype.withSession = async function withSession(executor) {
657
+ if (arguments.length === 0) {
658
+ throw new Error('Please provide an executor function');
659
+ }
660
+ return await this.client.withSession(executor);
661
+ };
662
+
663
+ /**
664
+ * _Requires MongoDB >= 3.6.0._ Starts a [MongoDB session](https://www.mongodb.com/docs/manual/release-notes/3.6/#client-sessions)
665
+ * for benefits like causal consistency, [retryable writes](https://www.mongodb.com/docs/manual/core/retryable-writes/),
666
+ * and [transactions](https://thecodebarbarian.com/a-node-js-perspective-on-mongodb-4-transactions.html).
667
+ *
668
+ * #### Example:
669
+ *
670
+ * const session = await conn.startSession();
671
+ * let doc = await Person.findOne({ name: 'Ned Stark' }, null, { session });
672
+ * await doc.deleteOne();
673
+ * // `doc` will always be null, even if reading from a replica set
674
+ * // secondary. Without causal consistency, it is possible to
675
+ * // get a doc back from the below query if the query reads from a
676
+ * // secondary that is experiencing replication lag.
677
+ * doc = await Person.findOne({ name: 'Ned Stark' }, null, { session, readPreference: 'secondary' });
678
+ *
679
+ *
680
+ * @method startSession
681
+ * @param {Object} [options] see the [mongodb driver options](https://mongodb.github.io/node-mongodb-native/4.9/classes/MongoClient.html#startSession)
682
+ * @param {Boolean} [options.causalConsistency=true] set to false to disable causal consistency
683
+ * @return {Promise<ClientSession>} promise that resolves to a MongoDB driver `ClientSession`
684
+ * @api public
685
+ */
686
+
687
+ Connection.prototype.startSession = async function startSession(options) {
688
+ if (arguments.length >= 2 && typeof arguments[1] === 'function') {
689
+ throw new MongooseError('Connection.prototype.startSession() no longer accepts a callback');
690
+ }
691
+
692
+ await this._waitForConnect();
693
+
694
+ const session = this.client.startSession(options);
695
+ return session;
696
+ };
697
+
698
+ /**
699
+ * _Requires MongoDB >= 3.6.0._ Executes the wrapped async function
700
+ * in a transaction. Mongoose will commit the transaction if the
701
+ * async function executes successfully and attempt to retry if
702
+ * there was a retriable error.
703
+ *
704
+ * Calls the MongoDB driver's [`session.withTransaction()`](https://mongodb.github.io/node-mongodb-native/4.9/classes/ClientSession.html#withTransaction),
705
+ * but also handles resetting Mongoose document state as shown below.
706
+ *
707
+ * #### Example:
708
+ *
709
+ * const doc = new Person({ name: 'Will Riker' });
710
+ * await db.transaction(async function setRank(session) {
711
+ * doc.rank = 'Captain';
712
+ * await doc.save({ session });
713
+ * doc.isNew; // false
714
+ *
715
+ * // Throw an error to abort the transaction
716
+ * throw new Error('Oops!');
717
+ * },{ readPreference: 'primary' }).catch(() => {});
718
+ *
719
+ * // true, `transaction()` reset the document's state because the
720
+ * // transaction was aborted.
721
+ * doc.isNew;
722
+ *
723
+ * @method transaction
724
+ * @param {Function} fn Function to execute in a transaction
725
+ * @param {mongodb.TransactionOptions} [options] Optional settings for the transaction
726
+ * @return {Promise<Any>} promise that is fulfilled if Mongoose successfully committed the transaction, or rejects if the transaction was aborted or if Mongoose failed to commit the transaction. If fulfilled, the promise resolves to a MongoDB command result.
727
+ * @api public
728
+ */
729
+
730
+ Connection.prototype.transaction = function transaction(fn, options) {
731
+ return this.startSession().then(session => {
732
+ session[sessionNewDocuments] = new Map();
733
+ return session.withTransaction(() => _wrapUserTransaction(fn, session, this.base), options).
734
+ then(res => {
735
+ delete session[sessionNewDocuments];
736
+ return res;
737
+ }).
738
+ catch(err => {
739
+ delete session[sessionNewDocuments];
740
+ throw err;
741
+ }).
742
+ finally(() => {
743
+ session.endSession().catch(() => {});
744
+ });
745
+ });
746
+ };
747
+
748
+ /*!
749
+ * Reset document state in between transaction retries re: gh-13698
750
+ */
751
+
752
+ async function _wrapUserTransaction(fn, session, mongoose) {
753
+ try {
754
+ const res = mongoose.transactionAsyncLocalStorage == null
755
+ ? await fn(session)
756
+ : await new Promise(resolve => {
757
+ mongoose.transactionAsyncLocalStorage.run(
758
+ { session },
759
+ () => resolve(fn(session))
760
+ );
761
+ });
762
+ return res;
763
+ } catch (err) {
764
+ _resetSessionDocuments(session);
765
+ throw err;
766
+ }
767
+ }
768
+
769
+ /*!
770
+ * If transaction was aborted, we need to reset newly inserted documents' `isNew`.
771
+ */
772
+ function _resetSessionDocuments(session) {
773
+ for (const doc of session[sessionNewDocuments].keys()) {
774
+ const state = session[sessionNewDocuments].get(doc);
775
+ if (Object.hasOwn(state, 'isNew')) {
776
+ doc.$isNew = state.isNew;
777
+ }
778
+ if (Object.hasOwn(state, 'versionKey')) {
779
+ doc.set(doc.schema.options.versionKey, state.versionKey);
780
+ }
781
+
782
+ if (state.modifiedPaths.length > 0 && doc.$__.activePaths.states.modify == null) {
783
+ doc.$__.activePaths.states.modify = {};
784
+ }
785
+ for (const path of state.modifiedPaths) {
786
+ const currentState = doc.$__.activePaths.paths[path];
787
+ if (currentState != null) {
788
+ delete doc.$__.activePaths[currentState][path];
789
+ }
790
+ doc.$__.activePaths.paths[path] = 'modify';
791
+ doc.$__.activePaths.states.modify[path] = true;
792
+ }
793
+
794
+ for (const path of state.atomics.keys()) {
795
+ const val = doc.$__getValue(path);
796
+ if (val == null) {
797
+ continue;
798
+ }
799
+ val[arrayAtomicsSymbol] = state.atomics.get(path);
800
+ }
801
+ }
802
+ }
803
+
804
+ /**
805
+ * Helper for `dropCollection()`. Will delete the given collection, including
806
+ * all documents and indexes.
807
+ *
808
+ * @method dropCollection
809
+ * @param {string} collection The collection to delete
810
+ * @return {Promise}
811
+ * @api public
812
+ */
813
+
814
+ Connection.prototype.dropCollection = async function dropCollection(collection) {
815
+ if (arguments.length >= 2 && typeof arguments[1] === 'function') {
816
+ throw new MongooseError('Connection.prototype.dropCollection() no longer accepts a callback');
817
+ }
818
+
819
+ await this._waitForConnect();
820
+
821
+ return this.db.dropCollection(collection);
822
+ };
823
+
824
+ /**
825
+ * Waits for connection to be established, so the connection has a `client`
826
+ *
827
+ * @param {Boolean} [noTimeout=false] if set, don't put a timeout on the operation. Used internally so `mongoose.model()` doesn't leave open handles.
828
+ * @return Promise
829
+ * @api private
830
+ */
831
+
832
+ Connection.prototype._waitForConnect = async function _waitForConnect(noTimeout) {
833
+ if ((this.readyState === STATES.connecting || this.readyState === STATES.disconnected) && this._shouldBufferCommands()) {
834
+ const bufferTimeoutMS = this._getBufferTimeoutMS();
835
+ let timeout = null;
836
+ let timedOut = false;
837
+ // The element that this function pushes onto `_queue`, stored to make it easy to remove later
838
+ const queueElement = {};
839
+
840
+ // Mongoose executes all elements in `_queue` when initial connection succeeds in `onOpen()`.
841
+ const waitForConnectPromise = new Promise(resolve => {
842
+ queueElement.fn = resolve;
843
+ this._queue.push(queueElement);
844
+ });
845
+
846
+ if (noTimeout) {
847
+ await waitForConnectPromise;
848
+ } else {
849
+ await Promise.race([
850
+ waitForConnectPromise,
851
+ new Promise(resolve => {
852
+ timeout = setTimeout(
853
+ () => {
854
+ timedOut = true;
855
+ resolve();
856
+ },
857
+ bufferTimeoutMS
858
+ );
859
+ })
860
+ ]);
861
+ }
862
+
863
+ if (timedOut) {
864
+ const index = this._queue.indexOf(queueElement);
865
+ if (index !== -1) {
866
+ this._queue.splice(index, 1);
867
+ }
868
+ const message = 'Connection operation buffering timed out after ' + bufferTimeoutMS + 'ms';
869
+ throw new MongooseError(message);
870
+ } else if (timeout != null) {
871
+ // Not strictly necessary, but avoid the extra overhead of creating a new MongooseError
872
+ // in case of success
873
+ clearTimeout(timeout);
874
+ }
875
+ }
876
+ };
877
+
878
+ /*!
879
+ * Get the default buffer timeout for this connection
880
+ */
881
+
882
+ Connection.prototype._getBufferTimeoutMS = function _getBufferTimeoutMS() {
883
+ if (this.config.bufferTimeoutMS != null) {
884
+ return this.config.bufferTimeoutMS;
885
+ }
886
+ if (this.base != null && this.base.get('bufferTimeoutMS') != null) {
887
+ return this.base.get('bufferTimeoutMS');
888
+ }
889
+ return 10000;
890
+ };
891
+
892
+ /**
893
+ * Helper for MongoDB Node driver's `listCollections()`.
894
+ * Returns an array of collection objects.
895
+ *
896
+ * @method listCollections
897
+ * @return {Promise<Collection[]>}
898
+ * @api public
899
+ */
900
+
901
+ Connection.prototype.listCollections = async function listCollections() {
902
+ await this._waitForConnect();
903
+
904
+ const cursor = this.db.listCollections();
905
+ return await cursor.toArray();
906
+ };
907
+
908
+ /**
909
+ * Helper for MongoDB Node driver's `listDatabases()`.
910
+ * Returns an object with a `databases` property that contains an
911
+ * array of database objects.
912
+ *
913
+ * #### Example:
914
+ * const { databases } = await mongoose.connection.listDatabases();
915
+ * databases; // [{ name: 'mongoose_test', sizeOnDisk: 0, empty: false }]
916
+ *
917
+ * @method listCollections
918
+ * @return {Promise<{ databases: Array<{ name: string }> }>}
919
+ * @api public
920
+ */
921
+
922
+ Connection.prototype.listDatabases = async function listDatabases() {
923
+ // Implemented in `lib/drivers/node-mongodb-native/connection.js`
924
+ throw new MongooseError('listDatabases() not implemented by driver');
925
+ };
926
+
927
+ /**
928
+ * Helper for `dropDatabase()`. Deletes the given database, including all
929
+ * collections, documents, and indexes.
930
+ *
931
+ * #### Example:
932
+ *
933
+ * const conn = mongoose.createConnection('mongodb://127.0.0.1:27017/mydb');
934
+ * // Deletes the entire 'mydb' database
935
+ * await conn.dropDatabase();
936
+ *
937
+ * @method dropDatabase
938
+ * @return {Promise}
939
+ * @api public
940
+ */
941
+
942
+ Connection.prototype.dropDatabase = async function dropDatabase() {
943
+ if (arguments.length >= 1 && typeof arguments[0] === 'function') {
944
+ throw new MongooseError('Connection.prototype.dropDatabase() no longer accepts a callback');
945
+ }
946
+
947
+ await this._waitForConnect();
948
+
949
+ // If `dropDatabase()` is called, this model's collection will not be
950
+ // init-ed. It is sufficiently common to call `dropDatabase()` after
951
+ // `mongoose.connect()` but before creating models that we want to
952
+ // support this. See gh-6796
953
+ for (const model of Object.values(this.models)) {
954
+ delete model.$init;
955
+ }
956
+
957
+ return this.db.dropDatabase();
958
+ };
959
+
960
+ /*!
961
+ * ignore
962
+ */
963
+
964
+ Connection.prototype._shouldBufferCommands = function _shouldBufferCommands() {
965
+ if (this.config.bufferCommands != null) {
966
+ return this.config.bufferCommands;
967
+ }
968
+ if (this.base.get('bufferCommands') != null) {
969
+ return this.base.get('bufferCommands');
970
+ }
971
+ return true;
972
+ };
973
+
974
+ /**
975
+ * error
976
+ *
977
+ * Graceful error handling, passes error to callback
978
+ * if available, else emits error on the connection.
979
+ *
980
+ * @param {Error} err
981
+ * @param {Function} callback optional
982
+ * @emits "error" Emits the `error` event with the given `err`, unless a callback is specified
983
+ * @returns {Promise|null} Returns a rejected Promise if no `callback` is given.
984
+ * @api private
985
+ */
986
+
987
+ Connection.prototype.error = function error(err, callback) {
988
+ if (callback) {
989
+ callback(err);
990
+ return null;
991
+ }
992
+ if (this.listeners('error').length > 0) {
993
+ this.emit('error', err);
994
+ }
995
+ return Promise.reject(err);
996
+ };
997
+
998
+ /**
999
+ * Called when the connection is opened
1000
+ *
1001
+ * @emits "open"
1002
+ * @api private
1003
+ */
1004
+
1005
+ Connection.prototype.onOpen = function() {
1006
+ this.readyState = STATES.connected;
1007
+
1008
+ for (const d of this._queue) {
1009
+ d.fn.apply(d.ctx, d.args);
1010
+ }
1011
+ this._queue = [];
1012
+
1013
+ // avoid having the collection subscribe to our event emitter
1014
+ // to prevent 0.3 warning
1015
+ for (const i in this.collections) {
1016
+ if (Object.hasOwn(this.collections, i)) {
1017
+ this.collections[i].onOpen();
1018
+ }
1019
+ }
1020
+
1021
+ this.emit('open');
1022
+ };
1023
+
1024
+ /**
1025
+ * Opens the connection with a URI using `MongoClient.connect()`.
1026
+ *
1027
+ * @param {String} uri The URI to connect with.
1028
+ * @param {Object} [options] Passed on to [`MongoClient.connect`](https://mongodb.github.io/node-mongodb-native/4.9/classes/MongoClient.html#connect-1)
1029
+ * @param {Boolean} [options.bufferCommands=true] Mongoose specific option. Set to false to [disable buffering](https://mongoosejs.com/docs/faq.html#callback_never_executes) on all models associated with this connection.
1030
+ * @param {Number} [options.bufferTimeoutMS=10000] Mongoose specific option. If `bufferCommands` is true, Mongoose will throw an error after `bufferTimeoutMS` if the operation is still buffered.
1031
+ * @param {String} [options.dbName] The name of the database we want to use. If not provided, use database name from connection string.
1032
+ * @param {String} [options.user] username for authentication, equivalent to `options.auth.username`. Maintained for backwards compatibility.
1033
+ * @param {String} [options.pass] password for authentication, equivalent to `options.auth.password`. Maintained for backwards compatibility.
1034
+ * @param {Number} [options.maxPoolSize=100] The maximum number of sockets the MongoDB driver will keep open for this connection. Keep in mind that MongoDB only allows one operation per socket at a time, so you may want to increase this if you find you have a few slow queries that are blocking faster queries from proceeding. See [Slow Trains in MongoDB and Node.js](https://thecodebarbarian.com/slow-trains-in-mongodb-and-nodejs).
1035
+ * @param {Number} [options.minPoolSize=0] The minimum number of sockets the MongoDB driver will keep open for this connection. Keep in mind that MongoDB only allows one operation per socket at a time, so you may want to increase this if you find you have a few slow queries that are blocking faster queries from proceeding. See [Slow Trains in MongoDB and Node.js](https://thecodebarbarian.com/slow-trains-in-mongodb-and-nodejs).
1036
+ * @param {Number} [options.serverSelectionTimeoutMS] If `useUnifiedTopology = true`, the MongoDB driver will try to find a server to send any given operation to, and keep retrying for `serverSelectionTimeoutMS` milliseconds before erroring out. If not set, the MongoDB driver defaults to using `30000` (30 seconds).
1037
+ * @param {Number} [options.heartbeatFrequencyMS] If `useUnifiedTopology = true`, the MongoDB driver sends a heartbeat every `heartbeatFrequencyMS` to check on the status of the connection. A heartbeat is subject to `serverSelectionTimeoutMS`, so the MongoDB driver will retry failed heartbeats for up to 30 seconds by default. Mongoose only emits a `'disconnected'` event after a heartbeat has failed, so you may want to decrease this setting to reduce the time between when your server goes down and when Mongoose emits `'disconnected'`. We recommend you do **not** set this setting below 1000, too many heartbeats can lead to performance degradation.
1038
+ * @param {Boolean} [options.autoIndex=true] Mongoose-specific option. Set to false to disable automatic index creation for all models associated with this connection.
1039
+ * @param {Class} [options.promiseLibrary] Sets the [underlying driver's promise library](https://mongodb.github.io/node-mongodb-native/4.9/interfaces/MongoClientOptions.html#promiseLibrary).
1040
+ * @param {Number} [options.socketTimeoutMS=0] How long the MongoDB driver will wait before killing a socket due to inactivity _after initial connection_. A socket may be inactive because of either no activity or a long-running operation. `socketTimeoutMS` defaults to 0, which means Node.js will not time out the socket due to inactivity. This option is passed to [Node.js `socket#setTimeout()` function](https://nodejs.org/api/net.html#net_socket_settimeout_timeout_callback) after the MongoDB driver successfully completes.
1041
+ * @param {Number} [options.family=0] Passed transparently to [Node.js' `dns.lookup()`](https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback) function. May be either `0, `4`, or `6`. `4` means use IPv4 only, `6` means use IPv6 only, `0` means try both.
1042
+ * @param {Boolean} [options.autoCreate=false] Set to `true` to make Mongoose automatically call `createCollection()` on every model created on this connection.
1043
+ * @returns {Promise<Connection>}
1044
+ * @api public
1045
+ */
1046
+
1047
+ Connection.prototype.openUri = async function openUri(uri, options) {
1048
+ if (this.readyState === STATES.connecting || this.readyState === STATES.connected) {
1049
+ if (this._connectionString === uri) {
1050
+ return this;
1051
+ }
1052
+ }
1053
+
1054
+ this._closeCalled = false;
1055
+
1056
+ // Internal option to skip `await this.$initialConnection` in
1057
+ // this function for `createConnection()`. Because otherwise
1058
+ // `createConnection()` would have an uncatchable error.
1059
+ let _fireAndForget = false;
1060
+ if (options && '_fireAndForget' in options) {
1061
+ _fireAndForget = options._fireAndForget;
1062
+ delete options._fireAndForget;
1063
+ }
1064
+
1065
+ try {
1066
+ _validateArgs.apply(arguments);
1067
+ } catch (err) {
1068
+ if (_fireAndForget) {
1069
+ throw err;
1070
+ }
1071
+ this.$initialConnection = Promise.reject(err);
1072
+ throw err;
1073
+ }
1074
+
1075
+ this.$initialConnection = this.createClient(uri, options).
1076
+ then(() => this).
1077
+ catch(err => {
1078
+ this.readyState = STATES.disconnected;
1079
+ if (this.listeners('error').length > 0) {
1080
+ immediate(() => this.emit('error', err));
1081
+ }
1082
+ throw err;
1083
+ });
1084
+
1085
+ for (const model of Object.values(this.models)) {
1086
+ // Errors handled internally, so safe to ignore error
1087
+ model.init().catch(function $modelInitNoop() {});
1088
+ }
1089
+
1090
+ // `createConnection()` calls this `openUri()` function without
1091
+ // awaiting on the result, so we set this option to rely on
1092
+ // `asPromise()` to handle any errors.
1093
+ if (_fireAndForget) {
1094
+ return this;
1095
+ }
1096
+
1097
+ try {
1098
+ await this.$initialConnection;
1099
+ } catch (err) {
1100
+ throw _handleConnectionErrors(err);
1101
+ }
1102
+
1103
+ return this;
1104
+ };
1105
+
1106
+ /**
1107
+ * Listen to events in the Connection
1108
+ *
1109
+ * @param {String} event The event to listen on
1110
+ * @param {Function} callback
1111
+ * @see Connection#readyState https://mongoosejs.com/docs/api/connection.html#Connection.prototype.readyState
1112
+ *
1113
+ * @method on
1114
+ * @instance
1115
+ * @memberOf Connection
1116
+ * @api public
1117
+ */
1118
+
1119
+ // Treat `on('error')` handlers as handling the initialConnection promise
1120
+ // to avoid uncaught exceptions when using `on('error')`. See gh-14377.
1121
+ Connection.prototype.on = function on(event, callback) {
1122
+ if (event === 'error' && this.$initialConnection) {
1123
+ this.$initialConnection.catch(() => {});
1124
+ }
1125
+ return EventEmitter.prototype.on.call(this, event, callback);
1126
+ };
1127
+
1128
+ /**
1129
+ * Listen to a event once in the Connection
1130
+ *
1131
+ * @param {String} event The event to listen on
1132
+ * @param {Function} callback
1133
+ * @see Connection#readyState https://mongoosejs.com/docs/api/connection.html#Connection.prototype.readyState
1134
+ *
1135
+ * @method once
1136
+ * @instance
1137
+ * @memberOf Connection
1138
+ * @api public
1139
+ */
1140
+
1141
+ // Treat `on('error')` handlers as handling the initialConnection promise
1142
+ // to avoid uncaught exceptions when using `on('error')`. See gh-14377.
1143
+ Connection.prototype.once = function on(event, callback) {
1144
+ if (event === 'error' && this.$initialConnection) {
1145
+ this.$initialConnection.catch(() => {});
1146
+ }
1147
+ return EventEmitter.prototype.once.call(this, event, callback);
1148
+ };
1149
+
1150
+ /*!
1151
+ * ignore
1152
+ */
1153
+
1154
+ function _validateArgs(uri, options, callback) {
1155
+ if (typeof options === 'function' && callback == null) {
1156
+ throw new MongooseError('Connection.prototype.openUri() no longer accepts a callback');
1157
+ } else if (typeof callback === 'function') {
1158
+ throw new MongooseError('Connection.prototype.openUri() no longer accepts a callback');
1159
+ }
1160
+ }
1161
+
1162
+ /*!
1163
+ * ignore
1164
+ */
1165
+
1166
+ function _handleConnectionErrors(err) {
1167
+ if (err?.name === 'MongoServerSelectionError') {
1168
+ const originalError = err;
1169
+ err = new ServerSelectionError();
1170
+ err.assimilateError(originalError);
1171
+ }
1172
+
1173
+ return err;
1174
+ }
1175
+
1176
+ /**
1177
+ * Destroy the connection. Similar to [`.close`](https://mongoosejs.com/docs/api/connection.html#Connection.prototype.close()),
1178
+ * but also removes the connection from Mongoose's `connections` list and prevents the
1179
+ * connection from ever being re-opened.
1180
+ *
1181
+ * @param {Boolean} [force]
1182
+ * @returns {Promise}
1183
+ */
1184
+
1185
+ Connection.prototype.destroy = async function destroy(force) {
1186
+ if (typeof force === 'function' || (arguments.length === 2 && typeof arguments[1] === 'function')) {
1187
+ throw new MongooseError('Connection.prototype.destroy() no longer accepts a callback');
1188
+ }
1189
+
1190
+ if (force != null && typeof force === 'object') {
1191
+ this.$wasForceClosed = !!force.force;
1192
+ } else {
1193
+ this.$wasForceClosed = !!force;
1194
+ }
1195
+
1196
+ return this._close(force, true);
1197
+ };
1198
+
1199
+ /**
1200
+ * Closes the connection
1201
+ *
1202
+ * @param {Boolean} [force] optional
1203
+ * @return {Promise}
1204
+ * @api public
1205
+ */
1206
+
1207
+ Connection.prototype.close = async function close(force) {
1208
+ if (typeof force === 'function' || (arguments.length === 2 && typeof arguments[1] === 'function')) {
1209
+ throw new MongooseError('Connection.prototype.close() no longer accepts a callback');
1210
+ }
1211
+
1212
+ if (force != null && typeof force === 'object') {
1213
+ this.$wasForceClosed = !!force.force;
1214
+ } else {
1215
+ this.$wasForceClosed = !!force;
1216
+ }
1217
+
1218
+ if (this._lastHeartbeatAt != null) {
1219
+ this._lastHeartbeatAt = null;
1220
+ }
1221
+
1222
+ for (const model of Object.values(this.models)) {
1223
+ // If manually disconnecting, make sure to clear each model's `$init`
1224
+ // promise, so Mongoose knows to re-run `init()` in case the
1225
+ // connection is re-opened. See gh-12047.
1226
+ delete model.$init;
1227
+ }
1228
+
1229
+ return this._close(force, false);
1230
+ };
1231
+
1232
+ /**
1233
+ * Handles closing the connection
1234
+ *
1235
+ * @param {Boolean} force
1236
+ * @param {Boolean} destroy
1237
+ * @returns {Connection} this
1238
+ * @api private
1239
+ */
1240
+ Connection.prototype._close = async function _close(force, destroy) {
1241
+ const _this = this;
1242
+ const closeCalled = this._closeCalled;
1243
+ this._closeCalled = true;
1244
+ this._destroyCalled = destroy;
1245
+ if (this.client != null) {
1246
+ this.client._closeCalled = true;
1247
+ this.client._destroyCalled = destroy;
1248
+ }
1249
+
1250
+ const conn = this;
1251
+ switch (this.readyState) {
1252
+ case STATES.disconnected:
1253
+ if (destroy && this.base.connections.indexOf(conn) !== -1) {
1254
+ this.base.connections.splice(this.base.connections.indexOf(conn), 1);
1255
+ }
1256
+ if (!closeCalled) {
1257
+ await this.doClose(force);
1258
+ this.onClose(force);
1259
+ }
1260
+ break;
1261
+
1262
+ case STATES.connected:
1263
+ this.readyState = STATES.disconnecting;
1264
+ await this.doClose(force);
1265
+ if (destroy && _this.base.connections.indexOf(conn) !== -1) {
1266
+ this.base.connections.splice(this.base.connections.indexOf(conn), 1);
1267
+ }
1268
+ this.onClose(force);
1269
+
1270
+ break;
1271
+ case STATES.connecting:
1272
+ return new Promise((resolve, reject) => {
1273
+ const _rerunClose = () => {
1274
+ this.removeListener('open', _rerunClose);
1275
+ this.removeListener('error', _rerunClose);
1276
+ if (destroy) {
1277
+ this.destroy(force).then(resolve, reject);
1278
+ } else {
1279
+ this.close(force).then(resolve, reject);
1280
+ }
1281
+ };
1282
+
1283
+ this.once('open', _rerunClose);
1284
+ this.once('error', _rerunClose);
1285
+ });
1286
+
1287
+ case STATES.disconnecting:
1288
+ return new Promise(resolve => {
1289
+ this.once('close', () => {
1290
+ if (destroy && this.base.connections.indexOf(conn) !== -1) {
1291
+ this.base.connections.splice(this.base.connections.indexOf(conn), 1);
1292
+ }
1293
+ resolve();
1294
+ });
1295
+ });
1296
+ }
1297
+
1298
+ return this;
1299
+ };
1300
+
1301
+ /**
1302
+ * Abstract method that drivers must implement.
1303
+ *
1304
+ * @api private
1305
+ */
1306
+
1307
+ Connection.prototype.doClose = function doClose() {
1308
+ throw new Error('Connection#doClose unimplemented by driver');
1309
+ };
1310
+
1311
+ /**
1312
+ * Called when the connection closes
1313
+ *
1314
+ * @emits "close"
1315
+ * @api private
1316
+ */
1317
+
1318
+ Connection.prototype.onClose = function onClose(force) {
1319
+ this.readyState = STATES.disconnected;
1320
+
1321
+ // avoid having the collection subscribe to our event emitter
1322
+ // to prevent 0.3 warning
1323
+ for (const i in this.collections) {
1324
+ if (Object.hasOwn(this.collections, i)) {
1325
+ this.collections[i].onClose(force);
1326
+ }
1327
+ }
1328
+
1329
+ this.emit('close', force);
1330
+
1331
+ const wasForceClosed = typeof force === 'object' && force !== null ? force.force : force;
1332
+
1333
+ for (const db of this.otherDbs) {
1334
+ this._destroyCalled ? db.destroy({ force: wasForceClosed, skipCloseClient: true }) : db.close({ force: wasForceClosed, skipCloseClient: true });
1335
+ }
1336
+ };
1337
+
1338
+ /**
1339
+ * Retrieves a raw collection instance, creating it if not cached.
1340
+ * This method returns a thin wrapper around a [MongoDB Node.js driver collection]([MongoDB Node.js driver collection](https://mongodb.github.io/node-mongodb-native/Next/classes/Collection.html)).
1341
+ * Using a Collection bypasses Mongoose middleware, validation, and casting,
1342
+ * letting you use [MongoDB Node.js driver](https://mongodb.github.io/node-mongodb-native/) functionality directly.
1343
+ *
1344
+ * @param {String} name of the collection
1345
+ * @param {Object} [options] optional collection options
1346
+ * @return {Collection} collection instance
1347
+ * @api public
1348
+ */
1349
+
1350
+ Connection.prototype.collection = function(name, options) {
1351
+ const defaultOptions = {
1352
+ autoIndex: this.config.autoIndex != null ? this.config.autoIndex : this.base.options.autoIndex,
1353
+ autoCreate: this.config.autoCreate != null ? this.config.autoCreate : this.base.options.autoCreate,
1354
+ autoSearchIndex: this.config.autoSearchIndex != null ? this.config.autoSearchIndex : this.base.options.autoSearchIndex
1355
+ };
1356
+ options = Object.assign({}, defaultOptions, options ? clone(options) : {});
1357
+ options.$wasForceClosed = this.$wasForceClosed;
1358
+ const Collection = this.base && this.base.__driver && this.base.__driver.Collection || driver.get().Collection;
1359
+ if (!(name in this.collections)) {
1360
+ this.collections[name] = new Collection(name, this, options);
1361
+ }
1362
+ return this.collections[name];
1363
+ };
1364
+
1365
+ /**
1366
+ * Declares a plugin executed on all schemas you pass to `conn.model()`
1367
+ *
1368
+ * Equivalent to calling `.plugin(fn)` on each schema you create.
1369
+ *
1370
+ * #### Example:
1371
+ *
1372
+ * const db = mongoose.createConnection('mongodb://127.0.0.1:27017/mydb');
1373
+ * db.plugin(() => console.log('Applied'));
1374
+ * db.plugins.length; // 1
1375
+ *
1376
+ * db.model('Test', new Schema({})); // Prints "Applied"
1377
+ *
1378
+ * @param {Function} fn plugin callback
1379
+ * @param {Object} [opts] optional options
1380
+ * @return {Connection} this
1381
+ * @see plugins https://mongoosejs.com/docs/plugins.html
1382
+ * @api public
1383
+ */
1384
+
1385
+ Connection.prototype.plugin = function(fn, opts) {
1386
+ this.plugins.push([fn, opts]);
1387
+ return this;
1388
+ };
1389
+
1390
+ /**
1391
+ * Defines or retrieves a model.
1392
+ *
1393
+ * const mongoose = require('mongoose');
1394
+ * const db = mongoose.createConnection(..);
1395
+ * db.model('Venue', new Schema(..));
1396
+ * const Ticket = db.model('Ticket', new Schema(..));
1397
+ * const Venue = db.model('Venue');
1398
+ *
1399
+ * _When no `collection` argument is passed, Mongoose produces a collection name by passing the model `name` to the `utils.toCollectionName` method. This method pluralizes the name. If you don't like this behavior, either pass a collection name or set your schemas collection name option._
1400
+ *
1401
+ * #### Example:
1402
+ *
1403
+ * const schema = new Schema({ name: String }, { collection: 'actor' });
1404
+ *
1405
+ * // or
1406
+ *
1407
+ * schema.set('collection', 'actor');
1408
+ *
1409
+ * // or
1410
+ *
1411
+ * const collectionName = 'actor'
1412
+ * const M = conn.model('Actor', schema, collectionName)
1413
+ *
1414
+ * @param {String|Function} name the model name or class extending Model
1415
+ * @param {Schema} [schema] a schema. necessary when defining a model
1416
+ * @param {String} [collection] name of mongodb collection (optional) if not given it will be induced from model name
1417
+ * @param {Object} [options]
1418
+ * @param {Boolean} [options.overwriteModels=false] If true, overwrite existing models with the same name to avoid `OverwriteModelError`
1419
+ * @see Mongoose#model https://mongoosejs.com/docs/api/mongoose.html#Mongoose.prototype.model()
1420
+ * @return {Model} The compiled model
1421
+ * @api public
1422
+ */
1423
+
1424
+ Connection.prototype.model = function model(name, schema, collection, options) {
1425
+ if (!(this instanceof Connection)) {
1426
+ throw new MongooseError('`connection.model()` should not be run with ' +
1427
+ '`new`. If you are doing `new db.model(foo)(bar)`, use ' +
1428
+ '`db.model(foo)(bar)` instead');
1429
+ }
1430
+
1431
+ let fn;
1432
+ if (typeof name === 'function') {
1433
+ fn = name;
1434
+ name = fn.name;
1435
+ }
1436
+
1437
+ // collection name discovery
1438
+ if (typeof schema === 'string') {
1439
+ collection = schema;
1440
+ schema = false;
1441
+ }
1442
+
1443
+ if (utils.isObject(schema)) {
1444
+ if (!schema.instanceOfSchema) {
1445
+ schema = new Schema(schema);
1446
+ } else if (!(schema instanceof this.base.Schema)) {
1447
+ schema = schema._clone(this.base.Schema);
1448
+ }
1449
+ }
1450
+ if (schema && !schema.instanceOfSchema) {
1451
+ throw new Error('The 2nd parameter to `mongoose.model()` should be a ' +
1452
+ 'schema or a POJO');
1453
+ }
1454
+
1455
+ const defaultOptions = { cache: false, overwriteModels: this.base.options.overwriteModels };
1456
+ const opts = Object.assign(defaultOptions, options, { connection: this });
1457
+ if (this.models[name] && !collection && opts.overwriteModels !== true) {
1458
+ // model exists but we are not subclassing with custom collection
1459
+ if (schema && schema.instanceOfSchema && schema !== this.models[name].schema) {
1460
+ throw new MongooseError.OverwriteModelError(name);
1461
+ }
1462
+ return this.models[name];
1463
+ }
1464
+
1465
+ let model;
1466
+
1467
+ if (schema && schema.instanceOfSchema) {
1468
+ applyPlugins(schema, this.plugins, null, '$connectionPluginsApplied');
1469
+
1470
+ // compile a model
1471
+ model = this.base._model(fn || name, schema, collection, opts);
1472
+
1473
+ // only the first model with this name is cached to allow
1474
+ // for one-offs with custom collection names etc.
1475
+ if (!this.models[name]) {
1476
+ this.models[name] = model;
1477
+ }
1478
+
1479
+ // Errors handled internally, so safe to ignore error
1480
+ model.init().catch(function $modelInitNoop() {});
1481
+
1482
+ return model;
1483
+ }
1484
+
1485
+ if (this.models[name] && collection) {
1486
+ // subclassing current model with alternate collection
1487
+ model = this.models[name];
1488
+ schema = model.prototype.schema;
1489
+ const sub = model.__subclass(this, schema, collection);
1490
+ // do not cache the sub model
1491
+ return sub;
1492
+ }
1493
+
1494
+ if (arguments.length === 1) {
1495
+ model = this.models[name];
1496
+ if (!model) {
1497
+ throw new MongooseError.MissingSchemaError(name);
1498
+ }
1499
+ return model;
1500
+ }
1501
+
1502
+ if (!model) {
1503
+ throw new MongooseError.MissingSchemaError(name);
1504
+ }
1505
+
1506
+ if (this === model.prototype.db
1507
+ && (!collection || collection === model.collection.name)) {
1508
+ // model already uses this connection.
1509
+
1510
+ // only the first model with this name is cached to allow
1511
+ // for one-offs with custom collection names etc.
1512
+ if (!this.models[name]) {
1513
+ this.models[name] = model;
1514
+ }
1515
+
1516
+ return model;
1517
+ }
1518
+ this.models[name] = model.__subclass(this, schema, collection);
1519
+ return this.models[name];
1520
+ };
1521
+
1522
+ /**
1523
+ * Removes the model named `name` from this connection, if it exists. You can
1524
+ * use this function to clean up any models you created in your tests to
1525
+ * prevent OverwriteModelErrors.
1526
+ *
1527
+ * #### Example:
1528
+ *
1529
+ * conn.model('User', new Schema({ name: String }));
1530
+ * console.log(conn.model('User')); // Model object
1531
+ * conn.deleteModel('User');
1532
+ * console.log(conn.model('User')); // undefined
1533
+ *
1534
+ * // Usually useful in a Mocha `afterEach()` hook
1535
+ * afterEach(function() {
1536
+ * conn.deleteModel(/.+/); // Delete every model
1537
+ * });
1538
+ *
1539
+ * @api public
1540
+ * @param {String|RegExp} name if string, the name of the model to remove. If regexp, removes all models whose name matches the regexp.
1541
+ * @return {Connection} this
1542
+ */
1543
+
1544
+ Connection.prototype.deleteModel = function deleteModel(name) {
1545
+ if (typeof name === 'string') {
1546
+ const model = this.model(name);
1547
+ if (model == null) {
1548
+ return this;
1549
+ }
1550
+ const collectionName = model.collection.name;
1551
+ delete this.models[name];
1552
+ delete this.collections[collectionName];
1553
+
1554
+ this.emit('deleteModel', model);
1555
+ } else if (name instanceof RegExp) {
1556
+ const pattern = name;
1557
+ const names = this.modelNames();
1558
+ for (const name of names) {
1559
+ if (pattern.test(name)) {
1560
+ this.deleteModel(name);
1561
+ }
1562
+ }
1563
+ } else {
1564
+ throw new Error('First parameter to `deleteModel()` must be a string ' +
1565
+ 'or regexp, got "' + name + '"');
1566
+ }
1567
+
1568
+ return this;
1569
+ };
1570
+
1571
+ /**
1572
+ * Watches the entire underlying database for changes. Similar to
1573
+ * [`Model.watch()`](https://mongoosejs.com/docs/api/model.html#Model.watch()).
1574
+ *
1575
+ * This function does **not** trigger any middleware. In particular, it
1576
+ * does **not** trigger aggregate middleware.
1577
+ *
1578
+ * The ChangeStream object is an event emitter that emits the following events:
1579
+ *
1580
+ * - 'change': A change occurred, see below example
1581
+ * - 'error': An unrecoverable error occurred. In particular, change streams currently error out if they lose connection to the replica set primary. Follow [this GitHub issue](https://github.com/Automattic/mongoose/issues/6799) for updates.
1582
+ * - 'end': Emitted if the underlying stream is closed
1583
+ * - 'close': Emitted if the underlying stream is closed
1584
+ *
1585
+ * #### Example:
1586
+ *
1587
+ * const User = conn.model('User', new Schema({ name: String }));
1588
+ *
1589
+ * const changeStream = conn.watch().on('change', data => console.log(data));
1590
+ *
1591
+ * // Triggers a 'change' event on the change stream.
1592
+ * await User.create({ name: 'test' });
1593
+ *
1594
+ * @api public
1595
+ * @param {Array} [pipeline]
1596
+ * @param {Object} [options] passed without changes to [the MongoDB driver's `Db#watch()` function](https://mongodb.github.io/node-mongodb-native/4.9/classes/Db.html#watch)
1597
+ * @return {ChangeStream} mongoose-specific change stream wrapper, inherits from EventEmitter
1598
+ */
1599
+
1600
+ Connection.prototype.watch = function watch(pipeline, options) {
1601
+ const changeStreamThunk = cb => {
1602
+ immediate(() => {
1603
+ if (this.readyState === STATES.connecting) {
1604
+ this.once('open', function() {
1605
+ const driverChangeStream = this.db.watch(pipeline, options);
1606
+ cb(null, driverChangeStream);
1607
+ });
1608
+ } else {
1609
+ const driverChangeStream = this.db.watch(pipeline, options);
1610
+ cb(null, driverChangeStream);
1611
+ }
1612
+ });
1613
+ };
1614
+
1615
+ const changeStream = new ChangeStream(changeStreamThunk, pipeline, options);
1616
+ return changeStream;
1617
+ };
1618
+
1619
+ /**
1620
+ * Returns a promise that resolves when this connection
1621
+ * successfully connects to MongoDB, or rejects if this connection failed
1622
+ * to connect.
1623
+ *
1624
+ * #### Example:
1625
+ *
1626
+ * const conn = await mongoose.createConnection('mongodb://127.0.0.1:27017/test').
1627
+ * asPromise();
1628
+ * conn.readyState; // 1, means Mongoose is connected
1629
+ *
1630
+ * @api public
1631
+ * @return {Promise}
1632
+ */
1633
+
1634
+ Connection.prototype.asPromise = async function asPromise() {
1635
+ try {
1636
+ await this.$initialConnection;
1637
+ return this;
1638
+ } catch (err) {
1639
+ throw _handleConnectionErrors(err);
1640
+ }
1641
+ };
1642
+
1643
+ /**
1644
+ * Returns an array of model names created on this connection.
1645
+ * @api public
1646
+ * @return {String[]}
1647
+ */
1648
+
1649
+ Connection.prototype.modelNames = function modelNames() {
1650
+ return Object.keys(this.models);
1651
+ };
1652
+
1653
+ /**
1654
+ * Returns if the connection requires authentication after it is opened. Generally if a
1655
+ * username and password are both provided than authentication is needed, but in some cases a
1656
+ * password is not required.
1657
+ *
1658
+ * @api private
1659
+ * @return {Boolean} true if the connection should be authenticated after it is opened, otherwise false.
1660
+ */
1661
+ Connection.prototype.shouldAuthenticate = function shouldAuthenticate() {
1662
+ return this.user != null &&
1663
+ (this.pass != null || this.authMechanismDoesNotRequirePassword());
1664
+ };
1665
+
1666
+ /**
1667
+ * Returns a boolean value that specifies if the current authentication mechanism needs a
1668
+ * password to authenticate according to the auth objects passed into the openUri methods.
1669
+ *
1670
+ * @api private
1671
+ * @return {Boolean} true if the authentication mechanism specified in the options object requires
1672
+ * a password, otherwise false.
1673
+ */
1674
+ Connection.prototype.authMechanismDoesNotRequirePassword = function authMechanismDoesNotRequirePassword() {
1675
+ if (this.options && this.options.auth) {
1676
+ return noPasswordAuthMechanisms.indexOf(this.options.auth.authMechanism) >= 0;
1677
+ }
1678
+ return true;
1679
+ };
1680
+
1681
+ /**
1682
+ * Returns a boolean value that specifies if the provided objects object provides enough
1683
+ * data to authenticate with. Generally this is true if the username and password are both specified
1684
+ * but in some authentication methods, a password is not required for authentication so only a username
1685
+ * is required.
1686
+ *
1687
+ * @param {Object} [options] the options object passed into the openUri methods.
1688
+ * @api private
1689
+ * @return {Boolean} true if the provided options object provides enough data to authenticate with,
1690
+ * otherwise false.
1691
+ */
1692
+ Connection.prototype.optionsProvideAuthenticationData = function optionsProvideAuthenticationData(options) {
1693
+ return (options) &&
1694
+ (options.user) &&
1695
+ ((options.pass) || this.authMechanismDoesNotRequirePassword());
1696
+ };
1697
+
1698
+ /**
1699
+ * Returns the [MongoDB driver `MongoClient`](https://mongodb.github.io/node-mongodb-native/4.9/classes/MongoClient.html) instance
1700
+ * that this connection uses to talk to MongoDB.
1701
+ *
1702
+ * #### Example:
1703
+ *
1704
+ * const conn = await mongoose.createConnection('mongodb://127.0.0.1:27017/test').
1705
+ * asPromise();
1706
+ *
1707
+ * conn.getClient(); // MongoClient { ... }
1708
+ *
1709
+ * @api public
1710
+ * @return {MongoClient}
1711
+ */
1712
+
1713
+ Connection.prototype.getClient = function getClient() {
1714
+ return this.client;
1715
+ };
1716
+
1717
+ /**
1718
+ * Set the [MongoDB driver `MongoClient`](https://mongodb.github.io/node-mongodb-native/4.9/classes/MongoClient.html) instance
1719
+ * that this connection uses to talk to MongoDB. This is useful if you already have a MongoClient instance, and want to
1720
+ * reuse it.
1721
+ *
1722
+ * #### Example:
1723
+ *
1724
+ * const client = await mongodb.MongoClient.connect('mongodb://127.0.0.1:27017/test');
1725
+ *
1726
+ * const conn = mongoose.createConnection().setClient(client);
1727
+ *
1728
+ * conn.getClient(); // MongoClient { ... }
1729
+ * conn.readyState; // 1, means 'CONNECTED'
1730
+ *
1731
+ * @api public
1732
+ * @param {MongClient} client The Client to set to be used.
1733
+ * @return {Connection} this
1734
+ */
1735
+
1736
+ Connection.prototype.setClient = function setClient() {
1737
+ throw new MongooseError('Connection#setClient not implemented by driver');
1738
+ };
1739
+
1740
+ /*!
1741
+ * Called internally by `openUri()` to create a MongoClient instance.
1742
+ */
1743
+
1744
+ Connection.prototype.createClient = function createClient() {
1745
+ throw new MongooseError('Connection#createClient not implemented by driver');
1746
+ };
1747
+
1748
+ /**
1749
+ * Syncs all the indexes for the models registered with this connection.
1750
+ *
1751
+ * @param {Object} [options]
1752
+ * @param {Boolean} [options.continueOnError] `false` by default. If set to `true`, mongoose will not throw an error if one model syncing failed, and will return an object where the keys are the names of the models, and the values are the results/errors for each model.
1753
+ * @return {Promise<Object>} Returns a Promise, when the Promise resolves the value is a list of the dropped indexes.
1754
+ */
1755
+ Connection.prototype.syncIndexes = async function syncIndexes(options = {}) {
1756
+ const result = {};
1757
+ const errorsMap = { };
1758
+
1759
+ const { continueOnError } = options;
1760
+ delete options.continueOnError;
1761
+
1762
+ for (const model of Object.values(this.models)) {
1763
+ try {
1764
+ result[model.modelName] = await model.syncIndexes(options);
1765
+ } catch (err) {
1766
+ if (!continueOnError) {
1767
+ errorsMap[model.modelName] = err;
1768
+ break;
1769
+ } else {
1770
+ result[model.modelName] = err;
1771
+ }
1772
+ }
1773
+ }
1774
+
1775
+ if (!continueOnError && Object.keys(errorsMap).length) {
1776
+ const message = Object.entries(errorsMap).map(([modelName, err]) => `${modelName}: ${err.message}`).join(', ');
1777
+ const syncIndexesError = new SyncIndexesError(message, errorsMap);
1778
+ throw syncIndexesError;
1779
+ }
1780
+
1781
+ return result;
1782
+ };
1783
+
1784
+ /**
1785
+ * Switches to a different database using the same [connection pool](https://mongoosejs.com/docs/connections.html#connection_pools).
1786
+ *
1787
+ * Returns a new connection object, with the new db.
1788
+ *
1789
+ * #### Example:
1790
+ *
1791
+ * // Connect to `initialdb` first
1792
+ * const conn = await mongoose.createConnection('mongodb://127.0.0.1:27017/initialdb').asPromise();
1793
+ *
1794
+ * // Creates an un-cached connection to `mydb`
1795
+ * const db = conn.useDb('mydb');
1796
+ * // Creates a cached connection to `mydb2`. All calls to `conn.useDb('mydb2', { useCache: true })` will return the same
1797
+ * // connection instance as opposed to creating a new connection instance
1798
+ * const db2 = conn.useDb('mydb2', { useCache: true });
1799
+ *
1800
+ * @method useDb
1801
+ * @memberOf Connection
1802
+ * @param {String} name The database name
1803
+ * @param {Object} [options]
1804
+ * @param {Boolean} [options.useCache=false] If true, cache results so calling `useDb()` multiple times with the same name only creates 1 connection object.
1805
+ * @return {Connection} New Connection Object
1806
+ * @api public
1807
+ */
1808
+
1809
+ /**
1810
+ * Runs a [db-level aggregate()](https://www.mongodb.com/docs/manual/reference/method/db.aggregate/) on this connection's underlying `db`
1811
+ *
1812
+ * @method aggregate
1813
+ * @memberOf Connection
1814
+ * @param {Array} pipeline
1815
+ * @param {Object} [options]
1816
+ * @param {Boolean} [options.cursor=false] If true, make the Aggregate resolve to a Mongoose AggregationCursor rather than an array
1817
+ * @return {Aggregate} Aggregation wrapper
1818
+ * @api public
1819
+ */
1820
+
1821
+ /**
1822
+ * Removes the database connection with the given name created with with `useDb()`.
1823
+ *
1824
+ * Throws an error if the database connection was not found.
1825
+ *
1826
+ * #### Example:
1827
+ *
1828
+ * // Connect to `initialdb` first
1829
+ * const conn = await mongoose.createConnection('mongodb://127.0.0.1:27017/initialdb').asPromise();
1830
+ *
1831
+ * // Creates an un-cached connection to `mydb`
1832
+ * const db = conn.useDb('mydb');
1833
+ *
1834
+ * // Closes `db`, and removes `db` from `conn.relatedDbs` and `conn.otherDbs`
1835
+ * await conn.removeDb('mydb');
1836
+ *
1837
+ * @method removeDb
1838
+ * @memberOf Connection
1839
+ * @param {String} name The database name
1840
+ * @return {Connection} this
1841
+ * @api public
1842
+ */
1843
+
1844
+ /*!
1845
+ * Module exports.
1846
+ */
1847
+
1848
+ Connection.STATES = STATES;
1849
+ module.exports = Connection;