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,1247 @@
1
+ import { Readable } from 'stream';
2
+
3
+ import { type BSONSerializeOptions, type Document, Long, pluckBSONSerializeOptions } from '../bson';
4
+ import { type OnDemandDocumentDeserializeOptions } from '../cmap/wire_protocol/on_demand/document';
5
+ import { type CursorResponse } from '../cmap/wire_protocol/responses';
6
+ import {
7
+ MongoAPIError,
8
+ MongoCursorExhaustedError,
9
+ MongoCursorInUseError,
10
+ MongoInvalidArgumentError,
11
+ MongoRuntimeError,
12
+ MongoTailableCursorError
13
+ } from '../error';
14
+ import type { MongoClient } from '../mongo_client';
15
+ import { type Abortable, TypedEventEmitter } from '../mongo_types';
16
+ import { executeOperation } from '../operations/execute_operation';
17
+ import { GetMoreOperation } from '../operations/get_more';
18
+ import { KillCursorsOperation } from '../operations/kill_cursors';
19
+ import { ReadConcern, type ReadConcernLike } from '../read_concern';
20
+ import { ReadPreference, type ReadPreferenceLike } from '../read_preference';
21
+ import type { Server } from '../sdam/server';
22
+ import { type ClientSession, maybeClearPinnedConnection } from '../sessions';
23
+ import { type CSOTTimeoutContext, type Timeout, TimeoutContext } from '../timeout';
24
+ import {
25
+ addAbortListener,
26
+ type Disposable,
27
+ kDispose,
28
+ type MongoDBNamespace,
29
+ noop,
30
+ squashError
31
+ } from '../utils';
32
+
33
+ /**
34
+ * @internal
35
+ * TODO(NODE-2882): A cursor's getMore commands must be run on the same server it was started on
36
+ * and the same session must be used for the lifetime of the cursor. This object serves to get the
37
+ * server and session (along with the response) out of executeOperation back to the AbstractCursor.
38
+ *
39
+ * There may be a better design for communicating these values back to the cursor, currently an operation
40
+ * MUST store the selected server on itself so it can be read after executeOperation has returned.
41
+ */
42
+ export interface InitialCursorResponse {
43
+ /** The server selected for the operation */
44
+ server: Server;
45
+ /** The session used for this operation, may be implicitly created */
46
+ session?: ClientSession;
47
+ /** The raw server response for the operation */
48
+ response: CursorResponse;
49
+ }
50
+
51
+ /** @public */
52
+ export const CURSOR_FLAGS = [
53
+ 'tailable',
54
+ 'oplogReplay',
55
+ 'noCursorTimeout',
56
+ 'awaitData',
57
+ 'exhaust',
58
+ 'partial'
59
+ ] as const;
60
+
61
+ /** @public */
62
+ export type CursorFlag = (typeof CURSOR_FLAGS)[number];
63
+
64
+ function removeActiveCursor(this: AbstractCursor) {
65
+ this.client.s.activeCursors.delete(this);
66
+ }
67
+
68
+ /**
69
+ * @public
70
+ * @experimental
71
+ * Specifies how `timeoutMS` is applied to the cursor. Can be either `'cursorLifeTime'` or `'iteration'`
72
+ * When set to `'iteration'`, the deadline specified by `timeoutMS` applies to each call of
73
+ * `cursor.next()`.
74
+ * When set to `'cursorLifetime'`, the deadline applies to the life of the entire cursor.
75
+ *
76
+ * Depending on the type of cursor being used, this option has different default values.
77
+ * For non-tailable cursors, this value defaults to `'cursorLifetime'`
78
+ * For tailable cursors, this value defaults to `'iteration'` since tailable cursors, by
79
+ * definition can have an arbitrarily long lifetime.
80
+ *
81
+ * @example
82
+ * ```ts
83
+ * const cursor = collection.find({}, {timeoutMS: 100, timeoutMode: 'iteration'});
84
+ * for await (const doc of cursor) {
85
+ * // process doc
86
+ * // This will throw a timeout error if any of the iterator's `next()` calls takes more than 100ms, but
87
+ * // will continue to iterate successfully otherwise, regardless of the number of batches.
88
+ * }
89
+ * ```
90
+ *
91
+ * @example
92
+ * ```ts
93
+ * const cursor = collection.find({}, { timeoutMS: 1000, timeoutMode: 'cursorLifetime' });
94
+ * const docs = await cursor.toArray(); // This entire line will throw a timeout error if all batches are not fetched and returned within 1000ms.
95
+ * ```
96
+ */
97
+ export const CursorTimeoutMode = Object.freeze({
98
+ ITERATION: 'iteration',
99
+ LIFETIME: 'cursorLifetime'
100
+ } as const);
101
+
102
+ /**
103
+ * @public
104
+ * @experimental
105
+ */
106
+ export type CursorTimeoutMode = (typeof CursorTimeoutMode)[keyof typeof CursorTimeoutMode];
107
+
108
+ /** @public */
109
+ export interface AbstractCursorOptions extends BSONSerializeOptions {
110
+ session?: ClientSession;
111
+ readPreference?: ReadPreferenceLike;
112
+ readConcern?: ReadConcernLike;
113
+ /**
114
+ * Specifies the number of documents to return in each response from MongoDB
115
+ */
116
+ batchSize?: number;
117
+ /**
118
+ * When applicable `maxTimeMS` controls the amount of time the initial command
119
+ * that constructs a cursor should take. (ex. find, aggregate, listCollections)
120
+ */
121
+ maxTimeMS?: number;
122
+ /**
123
+ * When applicable `maxAwaitTimeMS` controls the amount of time subsequent getMores
124
+ * that a cursor uses to fetch more data should take. (ex. cursor.next())
125
+ */
126
+ maxAwaitTimeMS?: number;
127
+ /**
128
+ * Comment to apply to the operation.
129
+ *
130
+ * In server versions pre-4.4, 'comment' must be string. A server
131
+ * error will be thrown if any other type is provided.
132
+ *
133
+ * In server versions 4.4 and above, 'comment' can be any valid BSON type.
134
+ */
135
+ comment?: unknown;
136
+ /**
137
+ * By default, MongoDB will automatically close a cursor when the
138
+ * client has exhausted all results in the cursor. However, for [capped collections](https://www.mongodb.com/docs/manual/core/capped-collections)
139
+ * you may use a Tailable Cursor that remains open after the client exhausts
140
+ * the results in the initial cursor.
141
+ */
142
+ tailable?: boolean;
143
+ /**
144
+ * If awaitData is set to true, when the cursor reaches the end of the capped collection,
145
+ * MongoDB blocks the query thread for a period of time waiting for new data to arrive.
146
+ * When new data is inserted into the capped collection, the blocked thread is signaled
147
+ * to wake up and return the next batch to the client.
148
+ */
149
+ awaitData?: boolean;
150
+ noCursorTimeout?: boolean;
151
+ /** Specifies the time an operation will run until it throws a timeout error. See {@link AbstractCursorOptions.timeoutMode} for more details on how this option applies to cursors. */
152
+ timeoutMS?: number;
153
+ /**
154
+ * @public
155
+ * @experimental
156
+ * Specifies how `timeoutMS` is applied to the cursor. Can be either `'cursorLifeTime'` or `'iteration'`
157
+ * When set to `'iteration'`, the deadline specified by `timeoutMS` applies to each call of
158
+ * `cursor.next()`.
159
+ * When set to `'cursorLifetime'`, the deadline applies to the life of the entire cursor.
160
+ *
161
+ * Depending on the type of cursor being used, this option has different default values.
162
+ * For non-tailable cursors, this value defaults to `'cursorLifetime'`
163
+ * For tailable cursors, this value defaults to `'iteration'` since tailable cursors, by
164
+ * definition can have an arbitrarily long lifetime.
165
+ *
166
+ * @example
167
+ * ```ts
168
+ * const cursor = collection.find({}, {timeoutMS: 100, timeoutMode: 'iteration'});
169
+ * for await (const doc of cursor) {
170
+ * // process doc
171
+ * // This will throw a timeout error if any of the iterator's `next()` calls takes more than 100ms, but
172
+ * // will continue to iterate successfully otherwise, regardless of the number of batches.
173
+ * }
174
+ * ```
175
+ *
176
+ * @example
177
+ * ```ts
178
+ * const cursor = collection.find({}, { timeoutMS: 1000, timeoutMode: 'cursorLifetime' });
179
+ * const docs = await cursor.toArray(); // This entire line will throw a timeout error if all batches are not fetched and returned within 1000ms.
180
+ * ```
181
+ */
182
+ timeoutMode?: CursorTimeoutMode;
183
+
184
+ /**
185
+ * @internal
186
+ *
187
+ * A timeout context to govern the total time the cursor can live. If provided, the cursor
188
+ * cannot be used in ITERATION mode.
189
+ */
190
+ timeoutContext?: CursorTimeoutContext;
191
+ }
192
+
193
+ /** @internal */
194
+ export type InternalAbstractCursorOptions = Omit<AbstractCursorOptions, 'readPreference'> & {
195
+ // resolved
196
+ readPreference: ReadPreference;
197
+ readConcern?: ReadConcern;
198
+
199
+ // cursor flags, some are deprecated
200
+ oplogReplay?: boolean;
201
+ exhaust?: boolean;
202
+ partial?: boolean;
203
+
204
+ omitMaxTimeMS?: boolean;
205
+ };
206
+
207
+ /** @public */
208
+ export type AbstractCursorEvents = {
209
+ [AbstractCursor.CLOSE](): void;
210
+ };
211
+
212
+ /** @public */
213
+ export abstract class AbstractCursor<
214
+ TSchema = any,
215
+ CursorEvents extends AbstractCursorEvents = AbstractCursorEvents
216
+ >
217
+ extends TypedEventEmitter<CursorEvents>
218
+ implements AsyncDisposable
219
+ {
220
+ /** @internal */
221
+ private cursorId: Long | null;
222
+ /** @internal */
223
+ private cursorSession: ClientSession | null;
224
+ /** @internal */
225
+ private selectedServer?: Server;
226
+ /** @internal */
227
+ private cursorNamespace: MongoDBNamespace;
228
+ /** @internal */
229
+ private documents: CursorResponse | null = null;
230
+ /** @internal */
231
+ private cursorClient: MongoClient;
232
+ /** @internal */
233
+ private transform?: (doc: TSchema) => any;
234
+ /**
235
+ * @internal
236
+ * This is true whether or not the first command fails. It only indicates whether or not the first
237
+ * command has been run.
238
+ */
239
+ private initialized: boolean;
240
+ /** @internal */
241
+ private isClosed: boolean;
242
+ /** @internal */
243
+ private isKilled: boolean;
244
+ /** @internal */
245
+ protected readonly cursorOptions: InternalAbstractCursorOptions;
246
+ /** @internal */
247
+ protected timeoutContext?: CursorTimeoutContext;
248
+
249
+ /** @event */
250
+ static readonly CLOSE = 'close' as const;
251
+
252
+ /** @internal */
253
+ protected deserializationOptions: OnDemandDocumentDeserializeOptions;
254
+ protected signal: AbortSignal | undefined;
255
+ private abortListener: Disposable | undefined;
256
+
257
+ /** @internal */
258
+ protected constructor(
259
+ client: MongoClient,
260
+ namespace: MongoDBNamespace,
261
+ options: AbstractCursorOptions & Abortable = {}
262
+ ) {
263
+ super();
264
+ this.on('error', noop);
265
+
266
+ if (!client.s.isMongoClient) {
267
+ throw new MongoRuntimeError('Cursor must be constructed with MongoClient');
268
+ }
269
+ this.cursorClient = client;
270
+ this.cursorNamespace = namespace;
271
+ this.cursorId = null;
272
+ this.initialized = false;
273
+ this.isClosed = false;
274
+ this.isKilled = false;
275
+ this.cursorOptions = {
276
+ readPreference:
277
+ options.readPreference && options.readPreference instanceof ReadPreference
278
+ ? options.readPreference
279
+ : ReadPreference.primary,
280
+ ...pluckBSONSerializeOptions(options),
281
+ timeoutMS: options?.timeoutContext?.csotEnabled()
282
+ ? options.timeoutContext.timeoutMS
283
+ : options.timeoutMS,
284
+ tailable: options.tailable,
285
+ awaitData: options.awaitData
286
+ };
287
+
288
+ if (this.cursorOptions.timeoutMS != null) {
289
+ if (options.timeoutMode == null) {
290
+ if (options.tailable) {
291
+ if (options.awaitData) {
292
+ if (
293
+ options.maxAwaitTimeMS != null &&
294
+ options.maxAwaitTimeMS >= this.cursorOptions.timeoutMS
295
+ )
296
+ throw new MongoInvalidArgumentError(
297
+ 'Cannot specify maxAwaitTimeMS >= timeoutMS for a tailable awaitData cursor'
298
+ );
299
+ }
300
+
301
+ this.cursorOptions.timeoutMode = CursorTimeoutMode.ITERATION;
302
+ } else {
303
+ this.cursorOptions.timeoutMode = CursorTimeoutMode.LIFETIME;
304
+ }
305
+ } else {
306
+ if (options.tailable && options.timeoutMode === CursorTimeoutMode.LIFETIME) {
307
+ throw new MongoInvalidArgumentError(
308
+ "Cannot set tailable cursor's timeoutMode to LIFETIME"
309
+ );
310
+ }
311
+ this.cursorOptions.timeoutMode = options.timeoutMode;
312
+ }
313
+ } else {
314
+ if (options.timeoutMode != null)
315
+ throw new MongoInvalidArgumentError('Cannot set timeoutMode without setting timeoutMS');
316
+ }
317
+
318
+ // Set for initial command
319
+ this.cursorOptions.omitMaxTimeMS =
320
+ this.cursorOptions.timeoutMS != null &&
321
+ ((this.cursorOptions.timeoutMode === CursorTimeoutMode.ITERATION &&
322
+ !this.cursorOptions.tailable) ||
323
+ (this.cursorOptions.tailable && !this.cursorOptions.awaitData));
324
+
325
+ const readConcern = ReadConcern.fromOptions(options);
326
+ if (readConcern) {
327
+ this.cursorOptions.readConcern = readConcern;
328
+ }
329
+
330
+ if (typeof options.batchSize === 'number') {
331
+ this.cursorOptions.batchSize = options.batchSize;
332
+ }
333
+
334
+ // we check for undefined specifically here to allow falsy values
335
+ // eslint-disable-next-line no-restricted-syntax
336
+ if (options.comment !== undefined) {
337
+ this.cursorOptions.comment = options.comment;
338
+ }
339
+
340
+ if (typeof options.maxTimeMS === 'number') {
341
+ this.cursorOptions.maxTimeMS = options.maxTimeMS;
342
+ }
343
+
344
+ if (typeof options.maxAwaitTimeMS === 'number') {
345
+ this.cursorOptions.maxAwaitTimeMS = options.maxAwaitTimeMS;
346
+ }
347
+
348
+ this.cursorSession = options.session ?? null;
349
+
350
+ this.deserializationOptions = {
351
+ ...this.cursorOptions,
352
+ validation: {
353
+ utf8: options?.enableUtf8Validation === false ? false : true
354
+ }
355
+ };
356
+
357
+ this.timeoutContext = options.timeoutContext;
358
+ this.signal = options.signal;
359
+ this.abortListener = addAbortListener(
360
+ this.signal,
361
+ () => void this.close().then(undefined, squashError)
362
+ );
363
+ this.trackCursor();
364
+ }
365
+
366
+ /**
367
+ * The cursor has no id until it receives a response from the initial cursor creating command.
368
+ *
369
+ * It is non-zero for as long as the database has an open cursor.
370
+ *
371
+ * The initiating command may receive a zero id if the entire result is in the `firstBatch`.
372
+ */
373
+ get id(): Long | undefined {
374
+ return this.cursorId ?? undefined;
375
+ }
376
+
377
+ /** @internal */
378
+ get isDead() {
379
+ return (this.cursorId?.isZero() ?? false) || this.isClosed || this.isKilled;
380
+ }
381
+
382
+ /** @internal */
383
+ get client(): MongoClient {
384
+ return this.cursorClient;
385
+ }
386
+
387
+ /** @internal */
388
+ get server(): Server | undefined {
389
+ return this.selectedServer;
390
+ }
391
+
392
+ get namespace(): MongoDBNamespace {
393
+ return this.cursorNamespace;
394
+ }
395
+
396
+ get readPreference(): ReadPreference {
397
+ return this.cursorOptions.readPreference;
398
+ }
399
+
400
+ get readConcern(): ReadConcern | undefined {
401
+ return this.cursorOptions.readConcern;
402
+ }
403
+
404
+ /** @internal */
405
+ get session(): ClientSession | null {
406
+ return this.cursorSession;
407
+ }
408
+
409
+ set session(clientSession: ClientSession) {
410
+ this.cursorSession = clientSession;
411
+ }
412
+
413
+ /**
414
+ * The cursor is closed and all remaining locally buffered documents have been iterated.
415
+ */
416
+ get closed(): boolean {
417
+ return this.isClosed && (this.documents?.length ?? 0) === 0;
418
+ }
419
+
420
+ /**
421
+ * A `killCursors` command was attempted on this cursor.
422
+ * This is performed if the cursor id is non zero.
423
+ */
424
+ get killed(): boolean {
425
+ return this.isKilled;
426
+ }
427
+
428
+ get loadBalanced(): boolean {
429
+ return !!this.cursorClient.topology?.loadBalanced;
430
+ }
431
+
432
+ /**
433
+ * @experimental
434
+ * An alias for {@link AbstractCursor.close|AbstractCursor.close()}.
435
+ */
436
+ async [Symbol.asyncDispose]() {
437
+ await this.close();
438
+ }
439
+
440
+ /** Adds cursor to client's tracking so it will be closed by MongoClient.close() */
441
+ private trackCursor() {
442
+ this.cursorClient.s.activeCursors.add(this);
443
+ if (!this.listeners('close').includes(removeActiveCursor)) {
444
+ this.once('close', removeActiveCursor);
445
+ }
446
+ }
447
+
448
+ /** Returns current buffered documents length */
449
+ bufferedCount(): number {
450
+ return this.documents?.length ?? 0;
451
+ }
452
+
453
+ /** Returns current buffered documents */
454
+ readBufferedDocuments(number?: number): NonNullable<TSchema>[] {
455
+ const bufferedDocs: NonNullable<TSchema>[] = [];
456
+ const documentsToRead = Math.min(
457
+ number ?? this.documents?.length ?? 0,
458
+ this.documents?.length ?? 0
459
+ );
460
+
461
+ for (let count = 0; count < documentsToRead; count++) {
462
+ const document = this.documents?.shift(this.deserializationOptions);
463
+ if (document != null) {
464
+ bufferedDocs.push(document);
465
+ }
466
+ }
467
+
468
+ return bufferedDocs;
469
+ }
470
+
471
+ async *[Symbol.asyncIterator](): AsyncGenerator<TSchema, void, void> {
472
+ this.signal?.throwIfAborted();
473
+
474
+ if (this.closed) {
475
+ return;
476
+ }
477
+
478
+ try {
479
+ while (true) {
480
+ if (this.isKilled) {
481
+ return;
482
+ }
483
+
484
+ if (this.closed) {
485
+ return;
486
+ }
487
+
488
+ if (this.cursorId != null && this.isDead && (this.documents?.length ?? 0) === 0) {
489
+ return;
490
+ }
491
+
492
+ const document = await this.next();
493
+
494
+ // eslint-disable-next-line no-restricted-syntax
495
+ if (document === null) {
496
+ return;
497
+ }
498
+
499
+ yield document;
500
+
501
+ this.signal?.throwIfAborted();
502
+ }
503
+ } finally {
504
+ // Only close the cursor if it has not already been closed. This finally clause handles
505
+ // the case when a user would break out of a for await of loop early.
506
+ if (!this.isClosed) {
507
+ try {
508
+ await this.close();
509
+ } catch (error) {
510
+ squashError(error);
511
+ }
512
+ }
513
+ }
514
+ }
515
+
516
+ stream(): Readable & AsyncIterable<TSchema> {
517
+ const readable = new ReadableCursorStream(this);
518
+ const abortListener = addAbortListener(this.signal, function () {
519
+ readable.destroy(this.reason);
520
+ });
521
+ readable.once('end', () => {
522
+ abortListener?.[kDispose]();
523
+ });
524
+
525
+ return readable;
526
+ }
527
+
528
+ async hasNext(): Promise<boolean> {
529
+ this.signal?.throwIfAborted();
530
+
531
+ if (this.cursorId === Long.ZERO) {
532
+ return false;
533
+ }
534
+
535
+ if (this.cursorOptions.timeoutMode === CursorTimeoutMode.ITERATION && this.cursorId != null) {
536
+ this.timeoutContext?.refresh();
537
+ }
538
+ try {
539
+ do {
540
+ if ((this.documents?.length ?? 0) !== 0) {
541
+ return true;
542
+ }
543
+ await this.fetchBatch();
544
+ } while (!this.isDead || (this.documents?.length ?? 0) !== 0);
545
+ } finally {
546
+ if (this.cursorOptions.timeoutMode === CursorTimeoutMode.ITERATION) {
547
+ this.timeoutContext?.clear();
548
+ }
549
+ }
550
+
551
+ return false;
552
+ }
553
+
554
+ /** Get the next available document from the cursor, returns null if no more documents are available. */
555
+ async next(): Promise<TSchema | null> {
556
+ this.signal?.throwIfAborted();
557
+
558
+ if (this.cursorId === Long.ZERO) {
559
+ throw new MongoCursorExhaustedError();
560
+ }
561
+
562
+ if (this.cursorOptions.timeoutMode === CursorTimeoutMode.ITERATION && this.cursorId != null) {
563
+ this.timeoutContext?.refresh();
564
+ }
565
+
566
+ try {
567
+ do {
568
+ const doc = this.documents?.shift(this.deserializationOptions);
569
+ if (doc != null) {
570
+ if (this.transform != null) return await this.transformDocument(doc);
571
+ return doc;
572
+ }
573
+ await this.fetchBatch();
574
+ } while (!this.isDead || (this.documents?.length ?? 0) !== 0);
575
+ } finally {
576
+ if (this.cursorOptions.timeoutMode === CursorTimeoutMode.ITERATION) {
577
+ this.timeoutContext?.clear();
578
+ }
579
+ }
580
+
581
+ return null;
582
+ }
583
+
584
+ /**
585
+ * Try to get the next available document from the cursor or `null` if an empty batch is returned
586
+ */
587
+ async tryNext(): Promise<TSchema | null> {
588
+ this.signal?.throwIfAborted();
589
+
590
+ if (this.cursorId === Long.ZERO) {
591
+ throw new MongoCursorExhaustedError();
592
+ }
593
+
594
+ if (this.cursorOptions.timeoutMode === CursorTimeoutMode.ITERATION && this.cursorId != null) {
595
+ this.timeoutContext?.refresh();
596
+ }
597
+ try {
598
+ let doc = this.documents?.shift(this.deserializationOptions);
599
+ if (doc != null) {
600
+ if (this.transform != null) return await this.transformDocument(doc);
601
+ return doc;
602
+ }
603
+
604
+ await this.fetchBatch();
605
+
606
+ doc = this.documents?.shift(this.deserializationOptions);
607
+ if (doc != null) {
608
+ if (this.transform != null) return await this.transformDocument(doc);
609
+ return doc;
610
+ }
611
+ } finally {
612
+ if (this.cursorOptions.timeoutMode === CursorTimeoutMode.ITERATION) {
613
+ this.timeoutContext?.clear();
614
+ }
615
+ }
616
+
617
+ return null;
618
+ }
619
+
620
+ /**
621
+ * Iterates over all the documents for this cursor using the iterator, callback pattern.
622
+ *
623
+ * If the iterator returns `false`, iteration will stop.
624
+ *
625
+ * @param iterator - The iteration callback.
626
+ * @deprecated - Will be removed in a future release. Use for await...of instead.
627
+ */
628
+ async forEach(iterator: (doc: TSchema) => boolean | void): Promise<void> {
629
+ this.signal?.throwIfAborted();
630
+
631
+ if (typeof iterator !== 'function') {
632
+ throw new MongoInvalidArgumentError('Argument "iterator" must be a function');
633
+ }
634
+ for await (const document of this) {
635
+ const result = iterator(document);
636
+ if (result === false) {
637
+ break;
638
+ }
639
+ }
640
+ }
641
+
642
+ /**
643
+ * Frees any client-side resources used by the cursor.
644
+ */
645
+ async close(options?: { timeoutMS?: number }): Promise<void> {
646
+ await this.cleanup(options?.timeoutMS);
647
+ }
648
+
649
+ /**
650
+ * Returns an array of documents. The caller is responsible for making sure that there
651
+ * is enough memory to store the results. Note that the array only contains partial
652
+ * results when this cursor had been previously accessed. In that case,
653
+ * cursor.rewind() can be used to reset the cursor.
654
+ */
655
+ async toArray(): Promise<TSchema[]> {
656
+ this.signal?.throwIfAborted();
657
+
658
+ const array: TSchema[] = [];
659
+ // at the end of the loop (since readBufferedDocuments is called) the buffer will be empty
660
+ // then, the 'await of' syntax will run a getMore call
661
+ for await (const document of this) {
662
+ array.push(document);
663
+ const docs = this.readBufferedDocuments();
664
+ if (this.transform != null) {
665
+ for (const doc of docs) {
666
+ array.push(await this.transformDocument(doc));
667
+ }
668
+ } else {
669
+ // Note: previous versions of this logic used `array.push(...)`, which adds each item
670
+ // to the callstack. For large arrays, this can exceed the maximum call size.
671
+ for (const doc of docs) {
672
+ array.push(doc);
673
+ }
674
+ }
675
+ }
676
+ return array;
677
+ }
678
+ /**
679
+ * Add a cursor flag to the cursor
680
+ *
681
+ * @param flag - The flag to set, must be one of following ['tailable', 'oplogReplay', 'noCursorTimeout', 'awaitData', 'partial' -.
682
+ * @param value - The flag boolean value.
683
+ */
684
+ addCursorFlag(flag: CursorFlag, value: boolean): this {
685
+ this.throwIfInitialized();
686
+ if (!CURSOR_FLAGS.includes(flag)) {
687
+ throw new MongoInvalidArgumentError(`Flag ${flag} is not one of ${CURSOR_FLAGS}`);
688
+ }
689
+
690
+ if (typeof value !== 'boolean') {
691
+ throw new MongoInvalidArgumentError(`Flag ${flag} must be a boolean value`);
692
+ }
693
+
694
+ this.cursorOptions[flag] = value;
695
+ return this;
696
+ }
697
+
698
+ /**
699
+ * Map all documents using the provided function
700
+ * If there is a transform set on the cursor, that will be called first and the result passed to
701
+ * this function's transform.
702
+ *
703
+ * @remarks
704
+ *
705
+ * **Note** Cursors use `null` internally to indicate that there are no more documents in the cursor. Providing a mapping
706
+ * function that maps values to `null` will result in the cursor closing itself before it has finished iterating
707
+ * all documents. This will **not** result in a memory leak, just surprising behavior. For example:
708
+ *
709
+ * ```typescript
710
+ * const cursor = collection.find({});
711
+ * cursor.map(() => null);
712
+ *
713
+ * const documents = await cursor.toArray();
714
+ * // documents is always [], regardless of how many documents are in the collection.
715
+ * ```
716
+ *
717
+ * Other falsey values are allowed:
718
+ *
719
+ * ```typescript
720
+ * const cursor = collection.find({});
721
+ * cursor.map(() => '');
722
+ *
723
+ * const documents = await cursor.toArray();
724
+ * // documents is now an array of empty strings
725
+ * ```
726
+ *
727
+ * **Note for Typescript Users:** adding a transform changes the return type of the iteration of this cursor,
728
+ * it **does not** return a new instance of a cursor. This means when calling map,
729
+ * you should always assign the result to a new variable in order to get a correctly typed cursor variable.
730
+ * Take note of the following example:
731
+ *
732
+ * @example
733
+ * ```typescript
734
+ * const cursor: FindCursor<Document> = coll.find();
735
+ * const mappedCursor: FindCursor<number> = cursor.map(doc => Object.keys(doc).length);
736
+ * const keyCounts: number[] = await mappedCursor.toArray(); // cursor.toArray() still returns Document[]
737
+ * ```
738
+ * @param transform - The mapping transformation method.
739
+ */
740
+ map<T = any>(transform: (doc: TSchema) => T): AbstractCursor<T> {
741
+ this.throwIfInitialized();
742
+ const oldTransform = this.transform;
743
+ if (oldTransform) {
744
+ this.transform = doc => {
745
+ return transform(oldTransform(doc));
746
+ };
747
+ } else {
748
+ this.transform = transform;
749
+ }
750
+
751
+ return this as unknown as AbstractCursor<T>;
752
+ }
753
+
754
+ /**
755
+ * Set the ReadPreference for the cursor.
756
+ *
757
+ * @param readPreference - The new read preference for the cursor.
758
+ */
759
+ withReadPreference(readPreference: ReadPreferenceLike): this {
760
+ this.throwIfInitialized();
761
+ if (readPreference instanceof ReadPreference) {
762
+ this.cursorOptions.readPreference = readPreference;
763
+ } else if (typeof readPreference === 'string') {
764
+ this.cursorOptions.readPreference = ReadPreference.fromString(readPreference);
765
+ } else {
766
+ throw new MongoInvalidArgumentError(`Invalid read preference: ${readPreference}`);
767
+ }
768
+
769
+ return this;
770
+ }
771
+
772
+ /**
773
+ * Set the ReadPreference for the cursor.
774
+ *
775
+ * @param readPreference - The new read preference for the cursor.
776
+ */
777
+ withReadConcern(readConcern: ReadConcernLike): this {
778
+ this.throwIfInitialized();
779
+ const resolvedReadConcern = ReadConcern.fromOptions({ readConcern });
780
+ if (resolvedReadConcern) {
781
+ this.cursorOptions.readConcern = resolvedReadConcern;
782
+ }
783
+
784
+ return this;
785
+ }
786
+
787
+ /**
788
+ * Set a maxTimeMS on the cursor query, allowing for hard timeout limits on queries (Only supported on MongoDB 2.6 or higher)
789
+ *
790
+ * @param value - Number of milliseconds to wait before aborting the query.
791
+ */
792
+ maxTimeMS(value: number): this {
793
+ this.throwIfInitialized();
794
+ if (typeof value !== 'number') {
795
+ throw new MongoInvalidArgumentError('Argument for maxTimeMS must be a number');
796
+ }
797
+
798
+ this.cursorOptions.maxTimeMS = value;
799
+ return this;
800
+ }
801
+
802
+ /**
803
+ * Set the batch size for the cursor.
804
+ *
805
+ * @param value - The number of documents to return per batch. See {@link https://www.mongodb.com/docs/manual/reference/command/find/|find command documentation}.
806
+ */
807
+ batchSize(value: number): this {
808
+ this.throwIfInitialized();
809
+ if (this.cursorOptions.tailable) {
810
+ throw new MongoTailableCursorError('Tailable cursor does not support batchSize');
811
+ }
812
+
813
+ if (typeof value !== 'number') {
814
+ throw new MongoInvalidArgumentError('Operation "batchSize" requires an integer');
815
+ }
816
+
817
+ this.cursorOptions.batchSize = value;
818
+ return this;
819
+ }
820
+
821
+ /**
822
+ * Rewind this cursor to its uninitialized state. Any options that are present on the cursor will
823
+ * remain in effect. Iterating this cursor will cause new queries to be sent to the server, even
824
+ * if the resultant data has already been retrieved by this cursor.
825
+ */
826
+ rewind(): void {
827
+ if (this.timeoutContext && this.timeoutContext.owner !== this) {
828
+ throw new MongoAPIError(`Cannot rewind cursor that does not own its timeout context.`);
829
+ }
830
+ if (!this.initialized) {
831
+ return;
832
+ }
833
+
834
+ this.cursorId = null;
835
+ this.documents?.clear();
836
+ this.timeoutContext?.clear();
837
+ this.timeoutContext = undefined;
838
+ this.isClosed = false;
839
+ this.isKilled = false;
840
+ this.initialized = false;
841
+ this.hasEmittedClose = false;
842
+ this.trackCursor();
843
+
844
+ // We only want to end this session if we created it, and it hasn't ended yet
845
+ if (this.cursorSession?.explicit === false) {
846
+ if (!this.cursorSession.hasEnded) {
847
+ this.cursorSession.endSession().then(undefined, squashError);
848
+ }
849
+
850
+ this.cursorSession = null;
851
+ }
852
+ }
853
+
854
+ /**
855
+ * Returns a new uninitialized copy of this cursor, with options matching those that have been set on the current instance
856
+ */
857
+ abstract clone(): AbstractCursor<TSchema>;
858
+
859
+ /** @internal */
860
+ protected abstract _initialize(
861
+ session: ClientSession | undefined
862
+ ): Promise<InitialCursorResponse>;
863
+
864
+ /** @internal */
865
+ async getMore(): Promise<CursorResponse> {
866
+ if (this.cursorId == null) {
867
+ throw new MongoRuntimeError(
868
+ 'Unexpected null cursor id. A cursor creating command should have set this'
869
+ );
870
+ }
871
+ if (this.selectedServer == null) {
872
+ throw new MongoRuntimeError(
873
+ 'Unexpected null selectedServer. A cursor creating command should have set this'
874
+ );
875
+ }
876
+
877
+ if (this.cursorSession == null) {
878
+ throw new MongoRuntimeError(
879
+ 'Unexpected null session. A cursor creating command should have set this'
880
+ );
881
+ }
882
+ const getMoreOptions = {
883
+ ...this.cursorOptions,
884
+ session: this.cursorSession,
885
+ batchSize: this.cursorOptions.batchSize
886
+ };
887
+
888
+ const getMoreOperation = new GetMoreOperation(
889
+ this.cursorNamespace,
890
+ this.cursorId,
891
+ this.selectedServer,
892
+ getMoreOptions
893
+ );
894
+
895
+ return await executeOperation(this.cursorClient, getMoreOperation, this.timeoutContext);
896
+ }
897
+
898
+ /**
899
+ * @internal
900
+ *
901
+ * This function is exposed for the unified test runner's createChangeStream
902
+ * operation. We cannot refactor to use the abstract _initialize method without
903
+ * a significant refactor.
904
+ */
905
+ private async cursorInit(): Promise<void> {
906
+ if (this.cursorOptions.timeoutMS != null) {
907
+ this.timeoutContext ??= new CursorTimeoutContext(
908
+ TimeoutContext.create({
909
+ serverSelectionTimeoutMS: this.client.s.options.serverSelectionTimeoutMS,
910
+ timeoutMS: this.cursorOptions.timeoutMS
911
+ }),
912
+ this
913
+ );
914
+ }
915
+ try {
916
+ this.cursorSession ??= this.cursorClient.startSession({ owner: this, explicit: false });
917
+ const state = await this._initialize(this.cursorSession);
918
+ // Set omitMaxTimeMS to the value needed for subsequent getMore calls
919
+ this.cursorOptions.omitMaxTimeMS = this.cursorOptions.timeoutMS != null;
920
+ const response = state.response;
921
+ this.selectedServer = state.server;
922
+ this.cursorId = response.id;
923
+ this.cursorNamespace = response.ns ?? this.namespace;
924
+ this.documents = response;
925
+ this.initialized = true; // the cursor is now initialized, even if it is dead
926
+ } catch (error) {
927
+ // the cursor is now initialized, even if an error occurred
928
+ this.initialized = true;
929
+ await this.cleanup(undefined, error);
930
+ throw error;
931
+ }
932
+
933
+ if (this.isDead) {
934
+ await this.cleanup();
935
+ }
936
+
937
+ return;
938
+ }
939
+
940
+ /** @internal Attempt to obtain more documents */
941
+ private async fetchBatch(): Promise<void> {
942
+ if (this.isClosed) {
943
+ return;
944
+ }
945
+
946
+ if (this.isDead) {
947
+ // if the cursor is dead, we clean it up
948
+ // cleanupCursor should never throw, but if it does it indicates a bug in the driver
949
+ // and we should surface the error
950
+ await this.cleanup();
951
+ return;
952
+ }
953
+
954
+ if (this.cursorId == null) {
955
+ await this.cursorInit();
956
+ // If the cursor died or returned documents, return
957
+ if ((this.documents?.length ?? 0) !== 0 || this.isDead) return;
958
+ }
959
+
960
+ // Otherwise, run a getMore
961
+ try {
962
+ const response = await this.getMore();
963
+ this.cursorId = response.id;
964
+ this.documents = response;
965
+ } catch (error) {
966
+ try {
967
+ await this.cleanup(undefined, error);
968
+ } catch (cleanupError) {
969
+ // `cleanupCursor` should never throw, squash and throw the original error
970
+ squashError(cleanupError);
971
+ }
972
+ throw error;
973
+ }
974
+
975
+ if (this.isDead) {
976
+ // If we successfully received a response from a cursor BUT the cursor indicates that it is exhausted,
977
+ // we intentionally clean up the cursor to release its session back into the pool before the cursor
978
+ // is iterated. This prevents a cursor that is exhausted on the server from holding
979
+ // onto a session indefinitely until the AbstractCursor is iterated.
980
+ //
981
+ // cleanupCursorAsync should never throw, but if it does it indicates a bug in the driver
982
+ // and we should surface the error
983
+ await this.cleanup();
984
+ }
985
+ }
986
+
987
+ /** @internal */
988
+ private async cleanup(timeoutMS?: number, error?: Error) {
989
+ this.abortListener?.[kDispose]();
990
+ this.isClosed = true;
991
+ const timeoutContextForKillCursors = (): CursorTimeoutContext | undefined => {
992
+ if (timeoutMS != null) {
993
+ this.timeoutContext?.clear();
994
+ return new CursorTimeoutContext(
995
+ TimeoutContext.create({
996
+ serverSelectionTimeoutMS: this.client.s.options.serverSelectionTimeoutMS,
997
+ timeoutMS
998
+ }),
999
+ this
1000
+ );
1001
+ } else {
1002
+ return this.timeoutContext?.refreshed();
1003
+ }
1004
+ };
1005
+
1006
+ const withEmitClose = async (fn: () => Promise<void>) => {
1007
+ try {
1008
+ await fn();
1009
+ } finally {
1010
+ this.emitClose();
1011
+ }
1012
+ };
1013
+
1014
+ const close = async () => {
1015
+ // if no session has been defined on the cursor, the cursor was never initialized
1016
+ // or the cursor was re-wound and never re-iterated. In either case, we
1017
+ // 1. do not need to end the session (there is no session after all)
1018
+ // 2. do not need to kill the cursor server-side
1019
+ const session = this.cursorSession;
1020
+ if (!session) return;
1021
+
1022
+ try {
1023
+ if (
1024
+ !this.isKilled &&
1025
+ this.cursorId &&
1026
+ !this.cursorId.isZero() &&
1027
+ this.cursorNamespace &&
1028
+ this.selectedServer &&
1029
+ !session.hasEnded
1030
+ ) {
1031
+ this.isKilled = true;
1032
+ const cursorId = this.cursorId;
1033
+ this.cursorId = Long.ZERO;
1034
+
1035
+ await executeOperation(
1036
+ this.cursorClient,
1037
+ new KillCursorsOperation(cursorId, this.cursorNamespace, this.selectedServer, {
1038
+ session
1039
+ }),
1040
+ timeoutContextForKillCursors()
1041
+ );
1042
+ }
1043
+ } catch (error) {
1044
+ squashError(error);
1045
+ } finally {
1046
+ if (session.owner === this) {
1047
+ await session.endSession({ error });
1048
+ }
1049
+ if (!session.inTransaction()) {
1050
+ maybeClearPinnedConnection(session, { error });
1051
+ }
1052
+ }
1053
+ };
1054
+
1055
+ await withEmitClose(close);
1056
+ }
1057
+
1058
+ /** @internal */
1059
+ private hasEmittedClose = false;
1060
+ /** @internal */
1061
+ private emitClose() {
1062
+ try {
1063
+ if (!this.hasEmittedClose && ((this.documents?.length ?? 0) === 0 || this.isClosed)) {
1064
+ // @ts-expect-error: CursorEvents is generic so Parameters<CursorEvents["close"]> may not be assignable to `[]`. Not sure how to require extenders do not add parameters.
1065
+ this.emit('close');
1066
+ }
1067
+ } finally {
1068
+ this.hasEmittedClose = true;
1069
+ }
1070
+ }
1071
+
1072
+ /** @internal */
1073
+ private async transformDocument(document: NonNullable<TSchema>): Promise<NonNullable<TSchema>> {
1074
+ if (this.transform == null) return document;
1075
+
1076
+ try {
1077
+ const transformedDocument = this.transform(document);
1078
+ // eslint-disable-next-line no-restricted-syntax
1079
+ if (transformedDocument === null) {
1080
+ const TRANSFORM_TO_NULL_ERROR =
1081
+ 'Cursor returned a `null` document, but the cursor is not exhausted. Mapping documents to `null` is not supported in the cursor transform.';
1082
+ throw new MongoAPIError(TRANSFORM_TO_NULL_ERROR);
1083
+ }
1084
+ return transformedDocument;
1085
+ } catch (transformError) {
1086
+ try {
1087
+ await this.close();
1088
+ } catch (closeError) {
1089
+ squashError(closeError);
1090
+ }
1091
+ throw transformError;
1092
+ }
1093
+ }
1094
+
1095
+ /** @internal */
1096
+ protected throwIfInitialized() {
1097
+ if (this.initialized) throw new MongoCursorInUseError();
1098
+ }
1099
+ }
1100
+
1101
+ class ReadableCursorStream extends Readable {
1102
+ private _cursor: AbstractCursor;
1103
+ private _readInProgress = false;
1104
+
1105
+ constructor(cursor: AbstractCursor) {
1106
+ super({
1107
+ objectMode: true,
1108
+ autoDestroy: false,
1109
+ highWaterMark: 1
1110
+ });
1111
+ this._cursor = cursor;
1112
+ }
1113
+
1114
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1115
+ override _read(size: number): void {
1116
+ if (!this._readInProgress) {
1117
+ this._readInProgress = true;
1118
+ this._readNext();
1119
+ }
1120
+ }
1121
+
1122
+ override _destroy(error: Error | null, callback: (error?: Error | null) => void): void {
1123
+ this._cursor.close().then(
1124
+ () => callback(error),
1125
+ closeError => callback(closeError)
1126
+ );
1127
+ }
1128
+
1129
+ private _readNext() {
1130
+ if (this._cursor.id === Long.ZERO) {
1131
+ this.push(null);
1132
+ return;
1133
+ }
1134
+
1135
+ this._cursor
1136
+ .next()
1137
+ .then(
1138
+ // result from next()
1139
+ result => {
1140
+ if (result == null) {
1141
+ this.push(null);
1142
+ } else if (this.destroyed) {
1143
+ this._cursor.close().then(undefined, squashError);
1144
+ } else {
1145
+ if (this.push(result)) {
1146
+ return this._readNext();
1147
+ }
1148
+
1149
+ this._readInProgress = false;
1150
+ }
1151
+ },
1152
+ // error from next()
1153
+ err => {
1154
+ // NOTE: This is questionable, but we have a test backing the behavior. It seems the
1155
+ // desired behavior is that a stream ends cleanly when a user explicitly closes
1156
+ // a client during iteration. Alternatively, we could do the "right" thing and
1157
+ // propagate the error message by removing this special case.
1158
+ if (err.message.match(/server is closed/)) {
1159
+ this._cursor.close().then(undefined, squashError);
1160
+ return this.push(null);
1161
+ }
1162
+
1163
+ // NOTE: This is also perhaps questionable. The rationale here is that these errors tend
1164
+ // to be "operation was interrupted", where a cursor has been closed but there is an
1165
+ // active getMore in-flight. This used to check if the cursor was killed but once
1166
+ // that changed to happen in cleanup legitimate errors would not destroy the
1167
+ // stream. There are change streams test specifically test these cases.
1168
+ if (err.message.match(/operation was interrupted/)) {
1169
+ return this.push(null);
1170
+ }
1171
+
1172
+ // NOTE: The two above checks on the message of the error will cause a null to be pushed
1173
+ // to the stream, thus closing the stream before the destroy call happens. This means
1174
+ // that either of those error messages on a change stream will not get a proper
1175
+ // 'error' event to be emitted (the error passed to destroy). Change stream resumability
1176
+ // relies on that error event to be emitted to create its new cursor and thus was not
1177
+ // working on 4.4 servers because the error emitted on failover was "interrupted at
1178
+ // shutdown" while on 5.0+ it is "The server is in quiesce mode and will shut down".
1179
+ // See NODE-4475.
1180
+ return this.destroy(err);
1181
+ }
1182
+ )
1183
+ // if either of the above handlers throw
1184
+ .catch(error => {
1185
+ this._readInProgress = false;
1186
+ this.destroy(error);
1187
+ });
1188
+ }
1189
+ }
1190
+
1191
+ /**
1192
+ * @internal
1193
+ * The cursor timeout context is a wrapper around a timeout context
1194
+ * that keeps track of the "owner" of the cursor. For timeout contexts
1195
+ * instantiated inside a cursor, the owner will be the cursor.
1196
+ *
1197
+ * All timeout behavior is exactly the same as the wrapped timeout context's.
1198
+ */
1199
+ export class CursorTimeoutContext extends TimeoutContext {
1200
+ timeoutContext: TimeoutContext;
1201
+ owner: symbol | AbstractCursor;
1202
+
1203
+ constructor(timeoutContext: TimeoutContext, owner: symbol | AbstractCursor) {
1204
+ super();
1205
+ this.timeoutContext = timeoutContext;
1206
+ this.owner = owner;
1207
+ }
1208
+ override get serverSelectionTimeout(): Timeout | null {
1209
+ return this.timeoutContext.serverSelectionTimeout;
1210
+ }
1211
+ override get connectionCheckoutTimeout(): Timeout | null {
1212
+ return this.timeoutContext.connectionCheckoutTimeout;
1213
+ }
1214
+ override get clearServerSelectionTimeout(): boolean {
1215
+ return this.timeoutContext.clearServerSelectionTimeout;
1216
+ }
1217
+ override get timeoutForSocketWrite(): Timeout | null {
1218
+ return this.timeoutContext.timeoutForSocketWrite;
1219
+ }
1220
+ override get timeoutForSocketRead(): Timeout | null {
1221
+ return this.timeoutContext.timeoutForSocketRead;
1222
+ }
1223
+ override csotEnabled(): this is CSOTTimeoutContext {
1224
+ return this.timeoutContext.csotEnabled();
1225
+ }
1226
+ override refresh(): void {
1227
+ if (typeof this.owner !== 'symbol') return this.timeoutContext.refresh();
1228
+ }
1229
+ override clear(): void {
1230
+ if (typeof this.owner !== 'symbol') return this.timeoutContext.clear();
1231
+ }
1232
+ override get maxTimeMS(): number | null {
1233
+ return this.timeoutContext.maxTimeMS;
1234
+ }
1235
+ get timeoutMS(): number | null {
1236
+ return this.timeoutContext.csotEnabled() ? this.timeoutContext.timeoutMS : null;
1237
+ }
1238
+ override refreshed(): CursorTimeoutContext {
1239
+ return new CursorTimeoutContext(this.timeoutContext.refreshed(), this.owner);
1240
+ }
1241
+ override addMaxTimeMSToCommand(command: Document, options: { omitMaxTimeMS?: boolean }): void {
1242
+ this.timeoutContext.addMaxTimeMSToCommand(command, options);
1243
+ }
1244
+ override getSocketTimeoutMS(): number | undefined {
1245
+ return this.timeoutContext.getSocketTimeoutMS();
1246
+ }
1247
+ }