pecunia-root 0.1.1 → 0.1.3

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 (328) hide show
  1. package/dist/adapters/prisma-adapter/index.d.mts +1 -1
  2. package/dist/adapters/prisma-adapter/index.mjs +1 -1
  3. package/dist/adapters/prisma-adapter/index.mjs.map +1 -1
  4. package/dist/context/index.mjs +1 -1
  5. package/dist/context/index.mjs.map +1 -1
  6. package/dist/index.d.mts +1 -2
  7. package/dist/index.mjs +1 -2
  8. package/package.json +2 -16
  9. package/dist/_virtual/rolldown_runtime.mjs +0 -8
  10. package/dist/adapters/mongodb-adapter/index.d.mts +0 -35
  11. package/dist/adapters/mongodb-adapter/index.mjs +0 -314
  12. package/dist/adapters/mongodb-adapter/index.mjs.map +0 -1
  13. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/code-points-data.mjs +0 -14
  14. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/code-points-data.mjs.map +0 -1
  15. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/index.mjs +0 -54
  16. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/index.mjs.map +0 -1
  17. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/memory-code-points.mjs +0 -36
  18. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/memory-code-points.mjs.map +0 -1
  19. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/node.mjs +0 -27
  20. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/node.mjs.map +0 -1
  21. package/dist/node_modules/.pnpm/bson@6.10.4/node_modules/bson/lib/bson.mjs +0 -3728
  22. package/dist/node_modules/.pnpm/bson@6.10.4/node_modules/bson/lib/bson.mjs.map +0 -1
  23. package/dist/node_modules/.pnpm/memory-pager@1.5.0/node_modules/memory-pager/index.mjs +0 -137
  24. package/dist/node_modules/.pnpm/memory-pager@1.5.0/node_modules/memory-pager/index.mjs.map +0 -1
  25. package/dist/node_modules/.pnpm/mongodb-connection-string-url@3.0.2/node_modules/mongodb-connection-string-url/lib/index.mjs +0 -211
  26. package/dist/node_modules/.pnpm/mongodb-connection-string-url@3.0.2/node_modules/mongodb-connection-string-url/lib/index.mjs.map +0 -1
  27. package/dist/node_modules/.pnpm/mongodb-connection-string-url@3.0.2/node_modules/mongodb-connection-string-url/lib/redact.mjs +0 -95
  28. package/dist/node_modules/.pnpm/mongodb-connection-string-url@3.0.2/node_modules/mongodb-connection-string-url/lib/redact.mjs.map +0 -1
  29. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/admin.mjs +0 -158
  30. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/admin.mjs.map +0 -1
  31. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bson.mjs +0 -195
  32. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bson.mjs.map +0 -1
  33. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bulk/common.mjs +0 -710
  34. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bulk/common.mjs.map +0 -1
  35. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bulk/ordered.mjs +0 -53
  36. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bulk/ordered.mjs.map +0 -1
  37. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bulk/unordered.mjs +0 -63
  38. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bulk/unordered.mjs.map +0 -1
  39. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/change_stream.mjs +0 -368
  40. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/change_stream.mjs.map +0 -1
  41. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/auto_encrypter.mjs +0 -234
  42. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/auto_encrypter.mjs.map +0 -1
  43. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/client_encryption.mjs +0 -545
  44. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/client_encryption.mjs.map +0 -1
  45. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/crypto_callbacks.mjs +0 -83
  46. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/crypto_callbacks.mjs.map +0 -1
  47. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/errors.mjs +0 -146
  48. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/errors.mjs.map +0 -1
  49. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/mongocryptd_manager.mjs +0 -58
  50. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/mongocryptd_manager.mjs.map +0 -1
  51. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/aws.mjs +0 -30
  52. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/aws.mjs.map +0 -1
  53. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/azure.mjs +0 -135
  54. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/azure.mjs.map +0 -1
  55. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/gcp.mjs +0 -25
  56. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/gcp.mjs.map +0 -1
  57. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/index.mjs +0 -47
  58. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/index.mjs.map +0 -1
  59. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/state_machine.mjs +0 -362
  60. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/state_machine.mjs.map +0 -1
  61. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/auth_provider.mjs +0 -58
  62. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/auth_provider.mjs.map +0 -1
  63. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/aws_temporary_credentials.mjs +0 -123
  64. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/aws_temporary_credentials.mjs.map +0 -1
  65. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/gssapi.mjs +0 -128
  66. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/gssapi.mjs.map +0 -1
  67. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongo_credentials.mjs +0 -133
  68. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongo_credentials.mjs.map +0 -1
  69. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_aws.mjs +0 -126
  70. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_aws.mjs.map +0 -1
  71. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.mjs +0 -79
  72. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.mjs.map +0 -1
  73. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.mjs +0 -65
  74. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.mjs.map +0 -1
  75. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/callback_workflow.mjs +0 -127
  76. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/callback_workflow.mjs.map +0 -1
  77. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/command_builders.mjs +0 -47
  78. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/command_builders.mjs.map +0 -1
  79. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.mjs +0 -44
  80. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.mjs.map +0 -1
  81. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/human_callback_workflow.mjs +0 -101
  82. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/human_callback_workflow.mjs.map +0 -1
  83. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.mjs +0 -33
  84. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.mjs.map +0 -1
  85. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_cache.mjs +0 -53
  86. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_cache.mjs.map +0 -1
  87. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.mjs +0 -29
  88. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.mjs.map +0 -1
  89. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc.mjs +0 -83
  90. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc.mjs.map +0 -1
  91. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/plain.mjs +0 -36
  92. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/plain.mjs.map +0 -1
  93. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/providers.mjs +0 -32
  94. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/providers.mjs.map +0 -1
  95. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/scram.mjs +0 -206
  96. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/scram.mjs.map +0 -1
  97. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/x509.mjs +0 -45
  98. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/x509.mjs.map +0 -1
  99. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/command_monitoring_events.mjs +0 -213
  100. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/command_monitoring_events.mjs.map +0 -1
  101. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/commands.mjs +0 -411
  102. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/commands.mjs.map +0 -1
  103. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connect.mjs +0 -288
  104. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connect.mjs.map +0 -1
  105. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connection.mjs +0 -423
  106. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connection.mjs.map +0 -1
  107. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connection_pool.mjs +0 -483
  108. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connection_pool.mjs.map +0 -1
  109. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connection_pool_events.mjs +0 -207
  110. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connection_pool_events.mjs.map +0 -1
  111. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/errors.mjs +0 -116
  112. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/errors.mjs.map +0 -1
  113. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/handshake/client_metadata.mjs +0 -183
  114. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/handshake/client_metadata.mjs.map +0 -1
  115. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/metrics.mjs +0 -55
  116. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/metrics.mjs.map +0 -1
  117. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/stream_description.mjs +0 -60
  118. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/stream_description.mjs.map +0 -1
  119. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/compression.mjs +0 -139
  120. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/compression.mjs.map +0 -1
  121. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/constants.mjs +0 -28
  122. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/constants.mjs.map +0 -1
  123. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/on_data.mjs +0 -117
  124. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/on_data.mjs.map +0 -1
  125. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/on_demand/document.mjs +0 -182
  126. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/on_demand/document.mjs.map +0 -1
  127. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/responses.mjs +0 -304
  128. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/responses.mjs.map +0 -1
  129. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/shared.mjs +0 -34
  130. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/shared.mjs.map +0 -1
  131. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/collection.mjs +0 -739
  132. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/collection.mjs.map +0 -1
  133. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/connection_string.mjs +0 -805
  134. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/connection_string.mjs.map +0 -1
  135. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/constants.mjs +0 -174
  136. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/constants.mjs.map +0 -1
  137. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/abstract_cursor.mjs +0 -726
  138. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/abstract_cursor.mjs.map +0 -1
  139. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/aggregation_cursor.mjs +0 -172
  140. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/aggregation_cursor.mjs.map +0 -1
  141. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/change_stream_cursor.mjs +0 -103
  142. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/change_stream_cursor.mjs.map +0 -1
  143. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/client_bulk_write_cursor.mjs +0 -66
  144. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/client_bulk_write_cursor.mjs.map +0 -1
  145. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/explainable_cursor.mjs +0 -41
  146. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/explainable_cursor.mjs.map +0 -1
  147. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/find_cursor.mjs +0 -365
  148. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/find_cursor.mjs.map +0 -1
  149. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/list_collections_cursor.mjs +0 -50
  150. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/list_collections_cursor.mjs.map +0 -1
  151. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/list_indexes_cursor.mjs +0 -48
  152. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/list_indexes_cursor.mjs.map +0 -1
  153. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/list_search_indexes_cursor.mjs +0 -23
  154. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/list_search_indexes_cursor.mjs.map +0 -1
  155. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/run_command_cursor.mjs +0 -106
  156. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/run_command_cursor.mjs.map +0 -1
  157. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/db.mjs +0 -428
  158. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/db.mjs.map +0 -1
  159. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/deps.mjs +0 -124
  160. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/deps.mjs.map +0 -1
  161. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/encrypter.mjs +0 -95
  162. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/encrypter.mjs.map +0 -1
  163. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/error.mjs +0 -1305
  164. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/error.mjs.map +0 -1
  165. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/explain.mjs +0 -59
  166. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/explain.mjs.map +0 -1
  167. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/gridfs/download.mjs +0 -250
  168. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/gridfs/download.mjs.map +0 -1
  169. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/gridfs/index.mjs +0 -170
  170. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/gridfs/index.mjs.map +0 -1
  171. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/gridfs/upload.mjs +0 -315
  172. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/gridfs/upload.mjs.map +0 -1
  173. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/index.mjs +0 -925
  174. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/index.mjs.map +0 -1
  175. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_client.mjs +0 -520
  176. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_client.mjs.map +0 -1
  177. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_client_auth_providers.mjs +0 -90
  178. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_client_auth_providers.mjs.map +0 -1
  179. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_logger.mjs +0 -582
  180. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_logger.mjs.map +0 -1
  181. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_types.mjs +0 -64
  182. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_types.mjs.map +0 -1
  183. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/aggregate.mjs +0 -86
  184. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/aggregate.mjs.map +0 -1
  185. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/client_bulk_write.mjs +0 -60
  186. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/client_bulk_write.mjs.map +0 -1
  187. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/command_builder.mjs +0 -264
  188. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/command_builder.mjs.map +0 -1
  189. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/executor.mjs +0 -109
  190. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/executor.mjs.map +0 -1
  191. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/results_merger.mjs +0 -172
  192. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/results_merger.mjs.map +0 -1
  193. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/command.mjs +0 -68
  194. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/command.mjs.map +0 -1
  195. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/count.mjs +0 -53
  196. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/count.mjs.map +0 -1
  197. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/create_collection.mjs +0 -123
  198. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/create_collection.mjs.map +0 -1
  199. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/delete.mjs +0 -119
  200. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/delete.mjs.map +0 -1
  201. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/distinct.mjs +0 -65
  202. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/distinct.mjs.map +0 -1
  203. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/drop.mjs +0 -97
  204. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/drop.mjs.map +0 -1
  205. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/estimated_document_count.mjs +0 -47
  206. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/estimated_document_count.mjs.map +0 -1
  207. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/execute_operation.mjs +0 -188
  208. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/execute_operation.mjs.map +0 -1
  209. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/find.mjs +0 -103
  210. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/find.mjs.map +0 -1
  211. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/find_and_modify.mjs +0 -136
  212. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/find_and_modify.mjs.map +0 -1
  213. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/get_more.mjs +0 -61
  214. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/get_more.mjs.map +0 -1
  215. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/indexes.mjs +0 -179
  216. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/indexes.mjs.map +0 -1
  217. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/insert.mjs +0 -77
  218. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/insert.mjs.map +0 -1
  219. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/kill_cursors.mjs +0 -48
  220. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/kill_cursors.mjs.map +0 -1
  221. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/list_collections.mjs +0 -60
  222. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/list_collections.mjs.map +0 -1
  223. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/list_databases.mjs +0 -43
  224. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/list_databases.mjs.map +0 -1
  225. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/operation.mjs +0 -105
  226. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/operation.mjs.map +0 -1
  227. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/profiling_level.mjs +0 -50
  228. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/profiling_level.mjs.map +0 -1
  229. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/remove_user.mjs +0 -39
  230. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/remove_user.mjs.map +0 -1
  231. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/rename.mjs +0 -49
  232. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/rename.mjs.map +0 -1
  233. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/run_command.mjs +0 -58
  234. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/run_command.mjs.map +0 -1
  235. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/search_indexes/create.mjs +0 -46
  236. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/search_indexes/create.mjs.map +0 -1
  237. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/search_indexes/drop.mjs +0 -48
  238. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/search_indexes/drop.mjs.map +0 -1
  239. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/search_indexes/update.mjs +0 -46
  240. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/search_indexes/update.mjs.map +0 -1
  241. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/set_profiling_level.mjs +0 -67
  242. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/set_profiling_level.mjs.map +0 -1
  243. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/stats.mjs +0 -37
  244. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/stats.mjs.map +0 -1
  245. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/update.mjs +0 -171
  246. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/update.mjs.map +0 -1
  247. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/validate_collection.mjs +0 -45
  248. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/validate_collection.mjs.map +0 -1
  249. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/read_concern.mjs +0 -71
  250. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/read_concern.mjs.map +0 -1
  251. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/read_preference.mjs +0 -165
  252. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/read_preference.mjs.map +0 -1
  253. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/resource_management.mjs +0 -62
  254. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/resource_management.mjs.map +0 -1
  255. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/common.mjs +0 -51
  256. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/common.mjs.map +0 -1
  257. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/events.mjs +0 -156
  258. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/events.mjs.map +0 -1
  259. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/monitor.mjs +0 -477
  260. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/monitor.mjs.map +0 -1
  261. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server.mjs +0 -315
  262. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server.mjs.map +0 -1
  263. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server_description.mjs +0 -157
  264. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server_description.mjs.map +0 -1
  265. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server_selection.mjs +0 -184
  266. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server_selection.mjs.map +0 -1
  267. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server_selection_events.mjs +0 -96
  268. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server_selection_events.mjs.map +0 -1
  269. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/srv_polling.mjs +0 -107
  270. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/srv_polling.mjs.map +0 -1
  271. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/topology.mjs +0 -540
  272. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/topology.mjs.map +0 -1
  273. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/topology_description.mjs +0 -298
  274. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/topology_description.mjs.map +0 -1
  275. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sessions.mjs +0 -623
  276. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sessions.mjs.map +0 -1
  277. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sort.mjs +0 -91
  278. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sort.mjs.map +0 -1
  279. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/timeout.mjs +0 -254
  280. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/timeout.mjs.map +0 -1
  281. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/transactions.mjs +0 -138
  282. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/transactions.mjs.map +0 -1
  283. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/utils.mjs +0 -993
  284. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/utils.mjs.map +0 -1
  285. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/write_concern.mjs +0 -81
  286. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/write_concern.mjs.map +0 -1
  287. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/package.mjs +0 -171
  288. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/package.mjs.map +0 -1
  289. package/dist/node_modules/.pnpm/punycode@2.3.1/node_modules/punycode/punycode.mjs +0 -295
  290. package/dist/node_modules/.pnpm/punycode@2.3.1/node_modules/punycode/punycode.mjs.map +0 -1
  291. package/dist/node_modules/.pnpm/sparse-bitfield@3.0.3/node_modules/sparse-bitfield/index.mjs +0 -81
  292. package/dist/node_modules/.pnpm/sparse-bitfield@3.0.3/node_modules/sparse-bitfield/index.mjs.map +0 -1
  293. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/index.mjs +0 -206
  294. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/index.mjs.map +0 -1
  295. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/mappingTable.mjs +0 -33590
  296. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/mappingTable.mjs.map +0 -1
  297. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/regexes.mjs +0 -37
  298. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/regexes.mjs.map +0 -1
  299. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/statusMapping.mjs +0 -18
  300. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/statusMapping.mjs.map +0 -1
  301. package/dist/node_modules/.pnpm/webidl-conversions@7.0.0/node_modules/webidl-conversions/lib/index.mjs +0 -252
  302. package/dist/node_modules/.pnpm/webidl-conversions@7.0.0/node_modules/webidl-conversions/lib/index.mjs.map +0 -1
  303. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/index.mjs +0 -41
  304. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/index.mjs.map +0 -1
  305. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/Function.mjs +0 -41
  306. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/Function.mjs.map +0 -1
  307. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URL-impl.mjs +0 -173
  308. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URL-impl.mjs.map +0 -1
  309. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URL.mjs +0 -334
  310. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URL.mjs.map +0 -1
  311. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URLSearchParams-impl.mjs +0 -90
  312. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URLSearchParams-impl.mjs.map +0 -1
  313. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URLSearchParams.mjs +0 -356
  314. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URLSearchParams.mjs.map +0 -1
  315. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/encoding.mjs +0 -23
  316. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/encoding.mjs.map +0 -1
  317. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/infra.mjs +0 -29
  318. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/infra.mjs.map +0 -1
  319. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/percent-encoding.mjs +0 -140
  320. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/percent-encoding.mjs.map +0 -1
  321. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/url-state-machine.mjs +0 -831
  322. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/url-state-machine.mjs.map +0 -1
  323. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/urlencoded.mjs +0 -77
  324. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/urlencoded.mjs.map +0 -1
  325. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/utils.mjs +0 -147
  326. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/utils.mjs.map +0 -1
  327. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/webidl2js-wrapper.mjs +0 -17
  328. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/webidl2js-wrapper.mjs.map +0 -1
@@ -1,540 +0,0 @@
1
- import { __commonJSMin } from "../../../../../../../_virtual/rolldown_runtime.mjs";
2
- import { require_error } from "../error.mjs";
3
- import { require_read_preference } from "../read_preference.mjs";
4
- import { require_common } from "./common.mjs";
5
- import { require_server_selection } from "./server_selection.mjs";
6
- import { require_constants } from "../constants.mjs";
7
- import { require_utils } from "../utils.mjs";
8
- import { require_timeout } from "../timeout.mjs";
9
- import { require_mongo_logger } from "../mongo_logger.mjs";
10
- import { require_mongo_types } from "../mongo_types.mjs";
11
- import { require_server_description } from "./server_description.mjs";
12
- import { require_topology_description } from "./topology_description.mjs";
13
- import { require_events } from "./events.mjs";
14
- import { require_server } from "./server.mjs";
15
- import { require_connection_string } from "../connection_string.mjs";
16
- import { require_server_selection_events } from "./server_selection_events.mjs";
17
- import { require_srv_polling } from "./srv_polling.mjs";
18
-
19
- //#region ../../node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/topology.js
20
- var require_topology = /* @__PURE__ */ __commonJSMin(((exports) => {
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.ServerCapabilities = exports.Topology = void 0;
23
- const connection_string_1 = require_connection_string();
24
- const constants_1 = require_constants();
25
- const error_1 = require_error();
26
- const mongo_logger_1 = require_mongo_logger();
27
- const mongo_types_1 = require_mongo_types();
28
- const read_preference_1 = require_read_preference();
29
- const timeout_1 = require_timeout();
30
- const utils_1 = require_utils();
31
- const common_1 = require_common();
32
- const events_1 = require_events();
33
- const server_1 = require_server();
34
- const server_description_1 = require_server_description();
35
- const server_selection_1 = require_server_selection();
36
- const server_selection_events_1 = require_server_selection_events();
37
- const srv_polling_1 = require_srv_polling();
38
- const topology_description_1 = require_topology_description();
39
- let globalTopologyCounter = 0;
40
- const stateTransition = (0, utils_1.makeStateMachine)({
41
- [common_1.STATE_CLOSED]: [common_1.STATE_CLOSED, common_1.STATE_CONNECTING],
42
- [common_1.STATE_CONNECTING]: [
43
- common_1.STATE_CONNECTING,
44
- common_1.STATE_CLOSING,
45
- common_1.STATE_CONNECTED,
46
- common_1.STATE_CLOSED
47
- ],
48
- [common_1.STATE_CONNECTED]: [
49
- common_1.STATE_CONNECTED,
50
- common_1.STATE_CLOSING,
51
- common_1.STATE_CLOSED
52
- ],
53
- [common_1.STATE_CLOSING]: [common_1.STATE_CLOSING, common_1.STATE_CLOSED]
54
- });
55
- /**
56
- * A container of server instances representing a connection to a MongoDB topology.
57
- * @internal
58
- */
59
- var Topology = class Topology extends mongo_types_1.TypedEventEmitter {
60
- /**
61
- * @param seedlist - a list of HostAddress instances to connect to
62
- */
63
- constructor(client, seeds, options) {
64
- super();
65
- this.on("error", utils_1.noop);
66
- this.client = client;
67
- options = options ?? {
68
- hosts: [utils_1.HostAddress.fromString("localhost:27017")],
69
- ...Object.fromEntries(connection_string_1.DEFAULT_OPTIONS.entries())
70
- };
71
- if (typeof seeds === "string") seeds = [utils_1.HostAddress.fromString(seeds)];
72
- else if (!Array.isArray(seeds)) seeds = [seeds];
73
- const seedlist = [];
74
- for (const seed of seeds) if (typeof seed === "string") seedlist.push(utils_1.HostAddress.fromString(seed));
75
- else if (seed instanceof utils_1.HostAddress) seedlist.push(seed);
76
- else throw new error_1.MongoRuntimeError(`Topology cannot be constructed from ${JSON.stringify(seed)}`);
77
- const topologyType = topologyTypeFromOptions(options);
78
- const topologyId = globalTopologyCounter++;
79
- const selectedHosts = options.srvMaxHosts == null || options.srvMaxHosts === 0 || options.srvMaxHosts >= seedlist.length ? seedlist : (0, utils_1.shuffle)(seedlist, options.srvMaxHosts);
80
- const serverDescriptions = /* @__PURE__ */ new Map();
81
- for (const hostAddress of selectedHosts) serverDescriptions.set(hostAddress.toString(), new server_description_1.ServerDescription(hostAddress));
82
- this.waitQueue = new utils_1.List();
83
- this.s = {
84
- id: topologyId,
85
- options,
86
- seedlist,
87
- state: common_1.STATE_CLOSED,
88
- description: new topology_description_1.TopologyDescription(topologyType, serverDescriptions, options.replicaSet, void 0, void 0, void 0, options),
89
- serverSelectionTimeoutMS: options.serverSelectionTimeoutMS,
90
- heartbeatFrequencyMS: options.heartbeatFrequencyMS,
91
- minHeartbeatFrequencyMS: options.minHeartbeatFrequencyMS,
92
- servers: /* @__PURE__ */ new Map(),
93
- credentials: options?.credentials,
94
- clusterTime: void 0,
95
- detectShardedTopology: (ev) => this.detectShardedTopology(ev),
96
- detectSrvRecords: (ev) => this.detectSrvRecords(ev)
97
- };
98
- this.mongoLogger = client.mongoLogger;
99
- this.component = "topology";
100
- if (options.srvHost && !options.loadBalanced) {
101
- this.s.srvPoller = options.srvPoller ?? new srv_polling_1.SrvPoller({
102
- heartbeatFrequencyMS: this.s.heartbeatFrequencyMS,
103
- srvHost: options.srvHost,
104
- srvMaxHosts: options.srvMaxHosts,
105
- srvServiceName: options.srvServiceName
106
- });
107
- this.on(Topology.TOPOLOGY_DESCRIPTION_CHANGED, this.s.detectShardedTopology);
108
- }
109
- this.connectionLock = void 0;
110
- }
111
- detectShardedTopology(event) {
112
- const previousType = event.previousDescription.type;
113
- const newType = event.newDescription.type;
114
- const transitionToSharded = previousType !== common_1.TopologyType.Sharded && newType === common_1.TopologyType.Sharded;
115
- const listeningToSrvPolling = !!(this.s.srvPoller?.listeners(srv_polling_1.SrvPoller.SRV_RECORD_DISCOVERY))?.includes(this.s.detectSrvRecords);
116
- if (transitionToSharded && !listeningToSrvPolling) {
117
- this.s.srvPoller?.on(srv_polling_1.SrvPoller.SRV_RECORD_DISCOVERY, this.s.detectSrvRecords);
118
- this.s.srvPoller?.start();
119
- }
120
- }
121
- detectSrvRecords(ev) {
122
- const previousTopologyDescription = this.s.description;
123
- this.s.description = this.s.description.updateFromSrvPollingEvent(ev, this.s.options.srvMaxHosts);
124
- if (this.s.description === previousTopologyDescription) return;
125
- updateServers(this);
126
- this.emitAndLog(Topology.TOPOLOGY_DESCRIPTION_CHANGED, new events_1.TopologyDescriptionChangedEvent(this.s.id, previousTopologyDescription, this.s.description));
127
- }
128
- /**
129
- * @returns A `TopologyDescription` for this topology
130
- */
131
- get description() {
132
- return this.s.description;
133
- }
134
- get loadBalanced() {
135
- return this.s.options.loadBalanced;
136
- }
137
- get serverApi() {
138
- return this.s.options.serverApi;
139
- }
140
- get capabilities() {
141
- return new ServerCapabilities(this.lastHello());
142
- }
143
- /** Initiate server connect */
144
- async connect(options) {
145
- this.connectionLock ??= this._connect(options);
146
- try {
147
- await this.connectionLock;
148
- return this;
149
- } finally {
150
- this.connectionLock = void 0;
151
- }
152
- }
153
- async _connect(options) {
154
- options = options ?? {};
155
- if (this.s.state === common_1.STATE_CONNECTED) return this;
156
- stateTransition(this, common_1.STATE_CONNECTING);
157
- this.emitAndLog(Topology.TOPOLOGY_OPENING, new events_1.TopologyOpeningEvent(this.s.id));
158
- this.emitAndLog(Topology.TOPOLOGY_DESCRIPTION_CHANGED, new events_1.TopologyDescriptionChangedEvent(this.s.id, new topology_description_1.TopologyDescription(common_1.TopologyType.Unknown), this.s.description));
159
- const serverDescriptions = Array.from(this.s.description.servers.values());
160
- this.s.servers = new Map(serverDescriptions.map((serverDescription) => [serverDescription.address, createAndConnectServer(this, serverDescription)]));
161
- if (this.s.options.loadBalanced) for (const description of serverDescriptions) {
162
- const newDescription = new server_description_1.ServerDescription(description.hostAddress, void 0, { loadBalanced: this.s.options.loadBalanced });
163
- this.serverUpdateHandler(newDescription);
164
- }
165
- const serverSelectionTimeoutMS = this.client.s.options.serverSelectionTimeoutMS;
166
- const readPreference = options.readPreference ?? read_preference_1.ReadPreference.primary;
167
- const timeoutContext = timeout_1.TimeoutContext.create({
168
- timeoutMS: void 0,
169
- serverSelectionTimeoutMS,
170
- waitQueueTimeoutMS: this.client.s.options.waitQueueTimeoutMS
171
- });
172
- const selectServerOptions = {
173
- operationName: "handshake",
174
- ...options,
175
- timeoutContext
176
- };
177
- try {
178
- const server = await this.selectServer((0, server_selection_1.readPreferenceServerSelector)(readPreference), selectServerOptions);
179
- if (!(this.s.options.__skipPingOnConnect === true) && this.s.credentials) {
180
- const connection = await server.pool.checkOut({ timeoutContext });
181
- server.pool.checkIn(connection);
182
- stateTransition(this, common_1.STATE_CONNECTED);
183
- this.emit(Topology.OPEN, this);
184
- this.emit(Topology.CONNECT, this);
185
- return this;
186
- }
187
- stateTransition(this, common_1.STATE_CONNECTED);
188
- this.emit(Topology.OPEN, this);
189
- this.emit(Topology.CONNECT, this);
190
- return this;
191
- } catch (error) {
192
- this.close();
193
- throw error;
194
- }
195
- }
196
- closeCheckedOutConnections() {
197
- for (const server of this.s.servers.values()) return server.closeCheckedOutConnections();
198
- }
199
- /** Close this topology */
200
- close() {
201
- if (this.s.state === common_1.STATE_CLOSED || this.s.state === common_1.STATE_CLOSING) return;
202
- for (const server of this.s.servers.values()) closeServer(server, this);
203
- this.s.servers.clear();
204
- stateTransition(this, common_1.STATE_CLOSING);
205
- drainWaitQueue(this.waitQueue, new error_1.MongoTopologyClosedError());
206
- if (this.s.srvPoller) {
207
- this.s.srvPoller.stop();
208
- this.s.srvPoller.removeListener(srv_polling_1.SrvPoller.SRV_RECORD_DISCOVERY, this.s.detectSrvRecords);
209
- }
210
- this.removeListener(Topology.TOPOLOGY_DESCRIPTION_CHANGED, this.s.detectShardedTopology);
211
- stateTransition(this, common_1.STATE_CLOSED);
212
- this.emitAndLog(Topology.TOPOLOGY_CLOSED, new events_1.TopologyClosedEvent(this.s.id));
213
- }
214
- /**
215
- * Selects a server according to the selection predicate provided
216
- *
217
- * @param selector - An optional selector to select servers by, defaults to a random selection within a latency window
218
- * @param options - Optional settings related to server selection
219
- * @param callback - The callback used to indicate success or failure
220
- * @returns An instance of a `Server` meeting the criteria of the predicate provided
221
- */
222
- async selectServer(selector, options) {
223
- let serverSelector;
224
- if (typeof selector !== "function") if (typeof selector === "string") serverSelector = (0, server_selection_1.readPreferenceServerSelector)(read_preference_1.ReadPreference.fromString(selector));
225
- else {
226
- let readPreference;
227
- if (selector instanceof read_preference_1.ReadPreference) readPreference = selector;
228
- else {
229
- read_preference_1.ReadPreference.translate(options);
230
- readPreference = options.readPreference || read_preference_1.ReadPreference.primary;
231
- }
232
- serverSelector = (0, server_selection_1.readPreferenceServerSelector)(readPreference);
233
- }
234
- else serverSelector = selector;
235
- options = {
236
- serverSelectionTimeoutMS: this.s.serverSelectionTimeoutMS,
237
- ...options
238
- };
239
- if (this.client.mongoLogger?.willLog(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, mongo_logger_1.SeverityLevel.DEBUG)) this.client.mongoLogger?.debug(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, new server_selection_events_1.ServerSelectionStartedEvent(selector, this.description, options.operationName));
240
- let timeout;
241
- if (options.timeoutContext) timeout = options.timeoutContext.serverSelectionTimeout;
242
- else timeout = timeout_1.Timeout.expires(options.serverSelectionTimeoutMS ?? 0);
243
- const isSharded = this.description.type === common_1.TopologyType.Sharded;
244
- const session = options.session;
245
- const transaction = session && session.transaction;
246
- if (isSharded && transaction && transaction.server) {
247
- if (this.client.mongoLogger?.willLog(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, mongo_logger_1.SeverityLevel.DEBUG)) this.client.mongoLogger?.debug(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, new server_selection_events_1.ServerSelectionSucceededEvent(selector, this.description, transaction.server.pool.address, options.operationName));
248
- if (options.timeoutContext?.clearServerSelectionTimeout) timeout?.clear();
249
- return transaction.server;
250
- }
251
- const { promise: serverPromise, resolve, reject } = (0, utils_1.promiseWithResolvers)();
252
- const waitQueueMember = {
253
- serverSelector,
254
- topologyDescription: this.description,
255
- mongoLogger: this.client.mongoLogger,
256
- transaction,
257
- resolve,
258
- reject,
259
- cancelled: false,
260
- startTime: (0, utils_1.now)(),
261
- operationName: options.operationName,
262
- waitingLogged: false,
263
- previousServer: options.previousServer
264
- };
265
- const abortListener = (0, utils_1.addAbortListener)(options.signal, function() {
266
- waitQueueMember.cancelled = true;
267
- reject(this.reason);
268
- });
269
- this.waitQueue.push(waitQueueMember);
270
- processWaitQueue(this);
271
- try {
272
- timeout?.throwIfExpired();
273
- const server = await (timeout ? Promise.race([serverPromise, timeout]) : serverPromise);
274
- if (options.timeoutContext?.csotEnabled() && server.description.minRoundTripTime !== 0) options.timeoutContext.minRoundTripTime = server.description.minRoundTripTime;
275
- return server;
276
- } catch (error) {
277
- if (timeout_1.TimeoutError.is(error)) {
278
- waitQueueMember.cancelled = true;
279
- const timeoutError = new error_1.MongoServerSelectionError(`Server selection timed out after ${timeout?.duration} ms`, this.description);
280
- if (this.client.mongoLogger?.willLog(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, mongo_logger_1.SeverityLevel.DEBUG)) this.client.mongoLogger?.debug(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, new server_selection_events_1.ServerSelectionFailedEvent(selector, this.description, timeoutError, options.operationName));
281
- if (options.timeoutContext?.csotEnabled()) throw new error_1.MongoOperationTimeoutError("Timed out during server selection", { cause: timeoutError });
282
- throw timeoutError;
283
- }
284
- throw error;
285
- } finally {
286
- abortListener?.[utils_1.kDispose]();
287
- if (options.timeoutContext?.clearServerSelectionTimeout) timeout?.clear();
288
- }
289
- }
290
- /**
291
- * Update the internal TopologyDescription with a ServerDescription
292
- *
293
- * @param serverDescription - The server to update in the internal list of server descriptions
294
- */
295
- serverUpdateHandler(serverDescription) {
296
- if (!this.s.description.hasServer(serverDescription.address)) return;
297
- if (isStaleServerDescription(this.s.description, serverDescription)) return;
298
- const previousTopologyDescription = this.s.description;
299
- const previousServerDescription = this.s.description.servers.get(serverDescription.address);
300
- if (!previousServerDescription) return;
301
- const clusterTime = serverDescription.$clusterTime;
302
- if (clusterTime) (0, common_1._advanceClusterTime)(this, clusterTime);
303
- const equalDescriptions = previousServerDescription && previousServerDescription.equals(serverDescription);
304
- this.s.description = this.s.description.update(serverDescription);
305
- if (this.s.description.compatibilityError) {
306
- this.emit(Topology.ERROR, new error_1.MongoCompatibilityError(this.s.description.compatibilityError));
307
- return;
308
- }
309
- if (!equalDescriptions) {
310
- const newDescription = this.s.description.servers.get(serverDescription.address);
311
- if (newDescription) this.emit(Topology.SERVER_DESCRIPTION_CHANGED, new events_1.ServerDescriptionChangedEvent(this.s.id, serverDescription.address, previousServerDescription, newDescription));
312
- }
313
- updateServers(this, serverDescription);
314
- if (this.waitQueue.length > 0) processWaitQueue(this);
315
- if (!equalDescriptions) this.emitAndLog(Topology.TOPOLOGY_DESCRIPTION_CHANGED, new events_1.TopologyDescriptionChangedEvent(this.s.id, previousTopologyDescription, this.s.description));
316
- }
317
- auth(credentials, callback) {
318
- if (typeof credentials === "function") callback = credentials, credentials = void 0;
319
- if (typeof callback === "function") callback(void 0, true);
320
- }
321
- get clientMetadata() {
322
- return this.s.options.metadata;
323
- }
324
- isConnected() {
325
- return this.s.state === common_1.STATE_CONNECTED;
326
- }
327
- isDestroyed() {
328
- return this.s.state === common_1.STATE_CLOSED;
329
- }
330
- lastHello() {
331
- const serverDescriptions = Array.from(this.description.servers.values());
332
- if (serverDescriptions.length === 0) return {};
333
- return serverDescriptions.filter((sd) => sd.type !== common_1.ServerType.Unknown)[0] || { maxWireVersion: this.description.commonWireVersion };
334
- }
335
- get commonWireVersion() {
336
- return this.description.commonWireVersion;
337
- }
338
- get logicalSessionTimeoutMinutes() {
339
- return this.description.logicalSessionTimeoutMinutes;
340
- }
341
- get clusterTime() {
342
- return this.s.clusterTime;
343
- }
344
- set clusterTime(clusterTime) {
345
- this.s.clusterTime = clusterTime;
346
- }
347
- };
348
- exports.Topology = Topology;
349
- /** @event */
350
- Topology.SERVER_OPENING = constants_1.SERVER_OPENING;
351
- /** @event */
352
- Topology.SERVER_CLOSED = constants_1.SERVER_CLOSED;
353
- /** @event */
354
- Topology.SERVER_DESCRIPTION_CHANGED = constants_1.SERVER_DESCRIPTION_CHANGED;
355
- /** @event */
356
- Topology.TOPOLOGY_OPENING = constants_1.TOPOLOGY_OPENING;
357
- /** @event */
358
- Topology.TOPOLOGY_CLOSED = constants_1.TOPOLOGY_CLOSED;
359
- /** @event */
360
- Topology.TOPOLOGY_DESCRIPTION_CHANGED = constants_1.TOPOLOGY_DESCRIPTION_CHANGED;
361
- /** @event */
362
- Topology.ERROR = constants_1.ERROR;
363
- /** @event */
364
- Topology.OPEN = constants_1.OPEN;
365
- /** @event */
366
- Topology.CONNECT = constants_1.CONNECT;
367
- /** @event */
368
- Topology.CLOSE = constants_1.CLOSE;
369
- /** @event */
370
- Topology.TIMEOUT = constants_1.TIMEOUT;
371
- /** Destroys a server, and removes all event listeners from the instance */
372
- function closeServer(server, topology) {
373
- for (const event of constants_1.LOCAL_SERVER_EVENTS) server.removeAllListeners(event);
374
- server.close();
375
- topology.emitAndLog(Topology.SERVER_CLOSED, new events_1.ServerClosedEvent(topology.s.id, server.description.address));
376
- for (const event of constants_1.SERVER_RELAY_EVENTS) server.removeAllListeners(event);
377
- }
378
- /** Predicts the TopologyType from options */
379
- function topologyTypeFromOptions(options) {
380
- if (options?.directConnection) return common_1.TopologyType.Single;
381
- if (options?.replicaSet) return common_1.TopologyType.ReplicaSetNoPrimary;
382
- if (options?.loadBalanced) return common_1.TopologyType.LoadBalanced;
383
- return common_1.TopologyType.Unknown;
384
- }
385
- /**
386
- * Creates new server instances and attempts to connect them
387
- *
388
- * @param topology - The topology that this server belongs to
389
- * @param serverDescription - The description for the server to initialize and connect to
390
- */
391
- function createAndConnectServer(topology, serverDescription) {
392
- topology.emitAndLog(Topology.SERVER_OPENING, new events_1.ServerOpeningEvent(topology.s.id, serverDescription.address));
393
- const server = new server_1.Server(topology, serverDescription, topology.s.options);
394
- for (const event of constants_1.SERVER_RELAY_EVENTS) server.on(event, (e) => topology.emit(event, e));
395
- server.on(server_1.Server.DESCRIPTION_RECEIVED, (description) => topology.serverUpdateHandler(description));
396
- server.connect();
397
- return server;
398
- }
399
- /**
400
- * @param topology - Topology to update.
401
- * @param incomingServerDescription - New server description.
402
- */
403
- function updateServers(topology, incomingServerDescription) {
404
- if (incomingServerDescription && topology.s.servers.has(incomingServerDescription.address)) {
405
- const server = topology.s.servers.get(incomingServerDescription.address);
406
- if (server) {
407
- server.s.description = incomingServerDescription;
408
- if (incomingServerDescription.error instanceof error_1.MongoError && incomingServerDescription.error.hasErrorLabel(error_1.MongoErrorLabel.ResetPool)) {
409
- const interruptInUseConnections = incomingServerDescription.error.hasErrorLabel(error_1.MongoErrorLabel.InterruptInUseConnections);
410
- server.pool.clear({ interruptInUseConnections });
411
- } else if (incomingServerDescription.error == null) {
412
- const newTopologyType = topology.s.description.type;
413
- if (incomingServerDescription.isDataBearing || incomingServerDescription.type !== common_1.ServerType.Unknown && newTopologyType === common_1.TopologyType.Single) server.pool.ready();
414
- }
415
- }
416
- }
417
- for (const serverDescription of topology.description.servers.values()) if (!topology.s.servers.has(serverDescription.address)) {
418
- const server = createAndConnectServer(topology, serverDescription);
419
- topology.s.servers.set(serverDescription.address, server);
420
- }
421
- for (const entry of topology.s.servers) {
422
- const serverAddress = entry[0];
423
- if (topology.description.hasServer(serverAddress)) continue;
424
- if (!topology.s.servers.has(serverAddress)) continue;
425
- const server = topology.s.servers.get(serverAddress);
426
- topology.s.servers.delete(serverAddress);
427
- if (server) closeServer(server, topology);
428
- }
429
- }
430
- function drainWaitQueue(queue, drainError) {
431
- while (queue.length) {
432
- const waitQueueMember = queue.shift();
433
- if (!waitQueueMember) continue;
434
- if (!waitQueueMember.cancelled) {
435
- if (waitQueueMember.mongoLogger?.willLog(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, mongo_logger_1.SeverityLevel.DEBUG)) waitQueueMember.mongoLogger?.debug(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, new server_selection_events_1.ServerSelectionFailedEvent(waitQueueMember.serverSelector, waitQueueMember.topologyDescription, drainError, waitQueueMember.operationName));
436
- waitQueueMember.reject(drainError);
437
- }
438
- }
439
- }
440
- function processWaitQueue(topology) {
441
- if (topology.s.state === common_1.STATE_CLOSED) {
442
- drainWaitQueue(topology.waitQueue, new error_1.MongoTopologyClosedError());
443
- return;
444
- }
445
- const isSharded = topology.description.type === common_1.TopologyType.Sharded;
446
- const serverDescriptions = Array.from(topology.description.servers.values());
447
- const membersToProcess = topology.waitQueue.length;
448
- for (let i = 0; i < membersToProcess; ++i) {
449
- const waitQueueMember = topology.waitQueue.shift();
450
- if (!waitQueueMember) continue;
451
- if (waitQueueMember.cancelled) continue;
452
- let selectedDescriptions;
453
- try {
454
- const serverSelector = waitQueueMember.serverSelector;
455
- const previousServer = waitQueueMember.previousServer;
456
- selectedDescriptions = serverSelector ? serverSelector(topology.description, serverDescriptions, previousServer ? [previousServer] : []) : serverDescriptions;
457
- } catch (selectorError) {
458
- if (topology.client.mongoLogger?.willLog(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, mongo_logger_1.SeverityLevel.DEBUG)) topology.client.mongoLogger?.debug(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, new server_selection_events_1.ServerSelectionFailedEvent(waitQueueMember.serverSelector, topology.description, selectorError, waitQueueMember.operationName));
459
- waitQueueMember.reject(selectorError);
460
- continue;
461
- }
462
- let selectedServer;
463
- if (selectedDescriptions.length === 0) {
464
- if (!waitQueueMember.waitingLogged) {
465
- if (topology.client.mongoLogger?.willLog(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, mongo_logger_1.SeverityLevel.INFORMATIONAL)) topology.client.mongoLogger?.info(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, new server_selection_events_1.WaitingForSuitableServerEvent(waitQueueMember.serverSelector, topology.description, topology.s.serverSelectionTimeoutMS !== 0 ? topology.s.serverSelectionTimeoutMS - ((0, utils_1.now)() - waitQueueMember.startTime) : -1, waitQueueMember.operationName));
466
- waitQueueMember.waitingLogged = true;
467
- }
468
- topology.waitQueue.push(waitQueueMember);
469
- continue;
470
- } else if (selectedDescriptions.length === 1) selectedServer = topology.s.servers.get(selectedDescriptions[0].address);
471
- else {
472
- const descriptions = (0, utils_1.shuffle)(selectedDescriptions, 2);
473
- const server1 = topology.s.servers.get(descriptions[0].address);
474
- const server2 = topology.s.servers.get(descriptions[1].address);
475
- selectedServer = server1 && server2 && server1.s.operationCount < server2.s.operationCount ? server1 : server2;
476
- }
477
- if (!selectedServer) {
478
- const serverSelectionError = new error_1.MongoServerSelectionError("server selection returned a server description but the server was not found in the topology", topology.description);
479
- if (topology.client.mongoLogger?.willLog(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, mongo_logger_1.SeverityLevel.DEBUG)) topology.client.mongoLogger?.debug(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, new server_selection_events_1.ServerSelectionFailedEvent(waitQueueMember.serverSelector, topology.description, serverSelectionError, waitQueueMember.operationName));
480
- waitQueueMember.reject(serverSelectionError);
481
- return;
482
- }
483
- const transaction = waitQueueMember.transaction;
484
- if (isSharded && transaction && transaction.isActive && selectedServer) transaction.pinServer(selectedServer);
485
- if (topology.client.mongoLogger?.willLog(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, mongo_logger_1.SeverityLevel.DEBUG)) topology.client.mongoLogger?.debug(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, new server_selection_events_1.ServerSelectionSucceededEvent(waitQueueMember.serverSelector, waitQueueMember.topologyDescription, selectedServer.pool.address, waitQueueMember.operationName));
486
- waitQueueMember.resolve(selectedServer);
487
- }
488
- if (topology.waitQueue.length > 0) for (const [, server] of topology.s.servers) process.nextTick(function scheduleServerCheck() {
489
- return server.requestCheck();
490
- });
491
- }
492
- function isStaleServerDescription(topologyDescription, incomingServerDescription) {
493
- const currentTopologyVersion = topologyDescription.servers.get(incomingServerDescription.address)?.topologyVersion;
494
- return (0, server_description_1.compareTopologyVersion)(currentTopologyVersion, incomingServerDescription.topologyVersion) > 0;
495
- }
496
- /**
497
- * @public
498
- * @deprecated This class will be removed as dead code in the next major version.
499
- */
500
- var ServerCapabilities = class {
501
- constructor(hello) {
502
- this.minWireVersion = hello.minWireVersion || 0;
503
- this.maxWireVersion = hello.maxWireVersion || 0;
504
- }
505
- get hasAggregationCursor() {
506
- return true;
507
- }
508
- get hasWriteCommands() {
509
- return true;
510
- }
511
- get hasTextSearch() {
512
- return true;
513
- }
514
- get hasAuthCommands() {
515
- return true;
516
- }
517
- get hasListCollectionsCommand() {
518
- return true;
519
- }
520
- get hasListIndexesCommand() {
521
- return true;
522
- }
523
- get supportsSnapshotReads() {
524
- return this.maxWireVersion >= 13;
525
- }
526
- get commandsTakeWriteConcern() {
527
- return true;
528
- }
529
- get commandsTakeCollation() {
530
- return true;
531
- }
532
- };
533
- exports.ServerCapabilities = ServerCapabilities;
534
- }));
535
-
536
- //#endregion
537
- export default require_topology();
538
-
539
- export { require_topology };
540
- //# sourceMappingURL=topology.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"topology.mjs","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/topology.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ServerCapabilities = exports.Topology = void 0;\nconst connection_string_1 = require(\"../connection_string\");\nconst constants_1 = require(\"../constants\");\nconst error_1 = require(\"../error\");\nconst mongo_logger_1 = require(\"../mongo_logger\");\nconst mongo_types_1 = require(\"../mongo_types\");\nconst read_preference_1 = require(\"../read_preference\");\nconst timeout_1 = require(\"../timeout\");\nconst utils_1 = require(\"../utils\");\nconst common_1 = require(\"./common\");\nconst events_1 = require(\"./events\");\nconst server_1 = require(\"./server\");\nconst server_description_1 = require(\"./server_description\");\nconst server_selection_1 = require(\"./server_selection\");\nconst server_selection_events_1 = require(\"./server_selection_events\");\nconst srv_polling_1 = require(\"./srv_polling\");\nconst topology_description_1 = require(\"./topology_description\");\n// Global state\nlet globalTopologyCounter = 0;\nconst stateTransition = (0, utils_1.makeStateMachine)({\n [common_1.STATE_CLOSED]: [common_1.STATE_CLOSED, common_1.STATE_CONNECTING],\n [common_1.STATE_CONNECTING]: [common_1.STATE_CONNECTING, common_1.STATE_CLOSING, common_1.STATE_CONNECTED, common_1.STATE_CLOSED],\n [common_1.STATE_CONNECTED]: [common_1.STATE_CONNECTED, common_1.STATE_CLOSING, common_1.STATE_CLOSED],\n [common_1.STATE_CLOSING]: [common_1.STATE_CLOSING, common_1.STATE_CLOSED]\n});\n/**\n * A container of server instances representing a connection to a MongoDB topology.\n * @internal\n */\nclass Topology extends mongo_types_1.TypedEventEmitter {\n /**\n * @param seedlist - a list of HostAddress instances to connect to\n */\n constructor(client, seeds, options) {\n super();\n this.on('error', utils_1.noop);\n this.client = client;\n // Options should only be undefined in tests, MongoClient will always have defined options\n options = options ?? {\n hosts: [utils_1.HostAddress.fromString('localhost:27017')],\n ...Object.fromEntries(connection_string_1.DEFAULT_OPTIONS.entries())\n };\n if (typeof seeds === 'string') {\n seeds = [utils_1.HostAddress.fromString(seeds)];\n }\n else if (!Array.isArray(seeds)) {\n seeds = [seeds];\n }\n const seedlist = [];\n for (const seed of seeds) {\n if (typeof seed === 'string') {\n seedlist.push(utils_1.HostAddress.fromString(seed));\n }\n else if (seed instanceof utils_1.HostAddress) {\n seedlist.push(seed);\n }\n else {\n // FIXME(NODE-3483): May need to be a MongoParseError\n throw new error_1.MongoRuntimeError(`Topology cannot be constructed from ${JSON.stringify(seed)}`);\n }\n }\n const topologyType = topologyTypeFromOptions(options);\n const topologyId = globalTopologyCounter++;\n const selectedHosts = options.srvMaxHosts == null ||\n options.srvMaxHosts === 0 ||\n options.srvMaxHosts >= seedlist.length\n ? seedlist\n : (0, utils_1.shuffle)(seedlist, options.srvMaxHosts);\n const serverDescriptions = new Map();\n for (const hostAddress of selectedHosts) {\n serverDescriptions.set(hostAddress.toString(), new server_description_1.ServerDescription(hostAddress));\n }\n this.waitQueue = new utils_1.List();\n this.s = {\n // the id of this topology\n id: topologyId,\n // passed in options\n options,\n // initial seedlist of servers to connect to\n seedlist,\n // initial state\n state: common_1.STATE_CLOSED,\n // the topology description\n description: new topology_description_1.TopologyDescription(topologyType, serverDescriptions, options.replicaSet, undefined, undefined, undefined, options),\n serverSelectionTimeoutMS: options.serverSelectionTimeoutMS,\n heartbeatFrequencyMS: options.heartbeatFrequencyMS,\n minHeartbeatFrequencyMS: options.minHeartbeatFrequencyMS,\n // a map of server instances to normalized addresses\n servers: new Map(),\n credentials: options?.credentials,\n clusterTime: undefined,\n detectShardedTopology: ev => this.detectShardedTopology(ev),\n detectSrvRecords: ev => this.detectSrvRecords(ev)\n };\n this.mongoLogger = client.mongoLogger;\n this.component = 'topology';\n if (options.srvHost && !options.loadBalanced) {\n this.s.srvPoller =\n options.srvPoller ??\n new srv_polling_1.SrvPoller({\n heartbeatFrequencyMS: this.s.heartbeatFrequencyMS,\n srvHost: options.srvHost,\n srvMaxHosts: options.srvMaxHosts,\n srvServiceName: options.srvServiceName\n });\n this.on(Topology.TOPOLOGY_DESCRIPTION_CHANGED, this.s.detectShardedTopology);\n }\n this.connectionLock = undefined;\n }\n detectShardedTopology(event) {\n const previousType = event.previousDescription.type;\n const newType = event.newDescription.type;\n const transitionToSharded = previousType !== common_1.TopologyType.Sharded && newType === common_1.TopologyType.Sharded;\n const srvListeners = this.s.srvPoller?.listeners(srv_polling_1.SrvPoller.SRV_RECORD_DISCOVERY);\n const listeningToSrvPolling = !!srvListeners?.includes(this.s.detectSrvRecords);\n if (transitionToSharded && !listeningToSrvPolling) {\n this.s.srvPoller?.on(srv_polling_1.SrvPoller.SRV_RECORD_DISCOVERY, this.s.detectSrvRecords);\n this.s.srvPoller?.start();\n }\n }\n detectSrvRecords(ev) {\n const previousTopologyDescription = this.s.description;\n this.s.description = this.s.description.updateFromSrvPollingEvent(ev, this.s.options.srvMaxHosts);\n if (this.s.description === previousTopologyDescription) {\n // Nothing changed, so return\n return;\n }\n updateServers(this);\n this.emitAndLog(Topology.TOPOLOGY_DESCRIPTION_CHANGED, new events_1.TopologyDescriptionChangedEvent(this.s.id, previousTopologyDescription, this.s.description));\n }\n /**\n * @returns A `TopologyDescription` for this topology\n */\n get description() {\n return this.s.description;\n }\n get loadBalanced() {\n return this.s.options.loadBalanced;\n }\n get serverApi() {\n return this.s.options.serverApi;\n }\n get capabilities() {\n return new ServerCapabilities(this.lastHello());\n }\n /** Initiate server connect */\n async connect(options) {\n this.connectionLock ??= this._connect(options);\n try {\n await this.connectionLock;\n return this;\n }\n finally {\n this.connectionLock = undefined;\n }\n }\n async _connect(options) {\n options = options ?? {};\n if (this.s.state === common_1.STATE_CONNECTED) {\n return this;\n }\n stateTransition(this, common_1.STATE_CONNECTING);\n // emit SDAM monitoring events\n this.emitAndLog(Topology.TOPOLOGY_OPENING, new events_1.TopologyOpeningEvent(this.s.id));\n // emit an event for the topology change\n this.emitAndLog(Topology.TOPOLOGY_DESCRIPTION_CHANGED, new events_1.TopologyDescriptionChangedEvent(this.s.id, new topology_description_1.TopologyDescription(common_1.TopologyType.Unknown), // initial is always Unknown\n this.s.description));\n // connect all known servers, then attempt server selection to connect\n const serverDescriptions = Array.from(this.s.description.servers.values());\n this.s.servers = new Map(serverDescriptions.map(serverDescription => [\n serverDescription.address,\n createAndConnectServer(this, serverDescription)\n ]));\n // In load balancer mode we need to fake a server description getting\n // emitted from the monitor, since the monitor doesn't exist.\n if (this.s.options.loadBalanced) {\n for (const description of serverDescriptions) {\n const newDescription = new server_description_1.ServerDescription(description.hostAddress, undefined, {\n loadBalanced: this.s.options.loadBalanced\n });\n this.serverUpdateHandler(newDescription);\n }\n }\n const serverSelectionTimeoutMS = this.client.s.options.serverSelectionTimeoutMS;\n const readPreference = options.readPreference ?? read_preference_1.ReadPreference.primary;\n const timeoutContext = timeout_1.TimeoutContext.create({\n // TODO(NODE-6448): auto-connect ignores timeoutMS; potential future feature\n timeoutMS: undefined,\n serverSelectionTimeoutMS,\n waitQueueTimeoutMS: this.client.s.options.waitQueueTimeoutMS\n });\n const selectServerOptions = {\n operationName: 'handshake',\n ...options,\n timeoutContext\n };\n try {\n const server = await this.selectServer((0, server_selection_1.readPreferenceServerSelector)(readPreference), selectServerOptions);\n const skipPingOnConnect = this.s.options.__skipPingOnConnect === true;\n if (!skipPingOnConnect && this.s.credentials) {\n const connection = await server.pool.checkOut({ timeoutContext: timeoutContext });\n server.pool.checkIn(connection);\n stateTransition(this, common_1.STATE_CONNECTED);\n this.emit(Topology.OPEN, this);\n this.emit(Topology.CONNECT, this);\n return this;\n }\n stateTransition(this, common_1.STATE_CONNECTED);\n this.emit(Topology.OPEN, this);\n this.emit(Topology.CONNECT, this);\n return this;\n }\n catch (error) {\n this.close();\n throw error;\n }\n }\n closeCheckedOutConnections() {\n for (const server of this.s.servers.values()) {\n return server.closeCheckedOutConnections();\n }\n }\n /** Close this topology */\n close() {\n if (this.s.state === common_1.STATE_CLOSED || this.s.state === common_1.STATE_CLOSING) {\n return;\n }\n for (const server of this.s.servers.values()) {\n closeServer(server, this);\n }\n this.s.servers.clear();\n stateTransition(this, common_1.STATE_CLOSING);\n drainWaitQueue(this.waitQueue, new error_1.MongoTopologyClosedError());\n if (this.s.srvPoller) {\n this.s.srvPoller.stop();\n this.s.srvPoller.removeListener(srv_polling_1.SrvPoller.SRV_RECORD_DISCOVERY, this.s.detectSrvRecords);\n }\n this.removeListener(Topology.TOPOLOGY_DESCRIPTION_CHANGED, this.s.detectShardedTopology);\n stateTransition(this, common_1.STATE_CLOSED);\n // emit an event for close\n this.emitAndLog(Topology.TOPOLOGY_CLOSED, new events_1.TopologyClosedEvent(this.s.id));\n }\n /**\n * Selects a server according to the selection predicate provided\n *\n * @param selector - An optional selector to select servers by, defaults to a random selection within a latency window\n * @param options - Optional settings related to server selection\n * @param callback - The callback used to indicate success or failure\n * @returns An instance of a `Server` meeting the criteria of the predicate provided\n */\n async selectServer(selector, options) {\n let serverSelector;\n if (typeof selector !== 'function') {\n if (typeof selector === 'string') {\n serverSelector = (0, server_selection_1.readPreferenceServerSelector)(read_preference_1.ReadPreference.fromString(selector));\n }\n else {\n let readPreference;\n if (selector instanceof read_preference_1.ReadPreference) {\n readPreference = selector;\n }\n else {\n read_preference_1.ReadPreference.translate(options);\n readPreference = options.readPreference || read_preference_1.ReadPreference.primary;\n }\n serverSelector = (0, server_selection_1.readPreferenceServerSelector)(readPreference);\n }\n }\n else {\n serverSelector = selector;\n }\n options = { serverSelectionTimeoutMS: this.s.serverSelectionTimeoutMS, ...options };\n if (this.client.mongoLogger?.willLog(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, mongo_logger_1.SeverityLevel.DEBUG)) {\n this.client.mongoLogger?.debug(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, new server_selection_events_1.ServerSelectionStartedEvent(selector, this.description, options.operationName));\n }\n let timeout;\n if (options.timeoutContext)\n timeout = options.timeoutContext.serverSelectionTimeout;\n else {\n timeout = timeout_1.Timeout.expires(options.serverSelectionTimeoutMS ?? 0);\n }\n const isSharded = this.description.type === common_1.TopologyType.Sharded;\n const session = options.session;\n const transaction = session && session.transaction;\n if (isSharded && transaction && transaction.server) {\n if (this.client.mongoLogger?.willLog(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, mongo_logger_1.SeverityLevel.DEBUG)) {\n this.client.mongoLogger?.debug(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, new server_selection_events_1.ServerSelectionSucceededEvent(selector, this.description, transaction.server.pool.address, options.operationName));\n }\n if (options.timeoutContext?.clearServerSelectionTimeout)\n timeout?.clear();\n return transaction.server;\n }\n const { promise: serverPromise, resolve, reject } = (0, utils_1.promiseWithResolvers)();\n const waitQueueMember = {\n serverSelector,\n topologyDescription: this.description,\n mongoLogger: this.client.mongoLogger,\n transaction,\n resolve,\n reject,\n cancelled: false,\n startTime: (0, utils_1.now)(),\n operationName: options.operationName,\n waitingLogged: false,\n previousServer: options.previousServer\n };\n const abortListener = (0, utils_1.addAbortListener)(options.signal, function () {\n waitQueueMember.cancelled = true;\n reject(this.reason);\n });\n this.waitQueue.push(waitQueueMember);\n processWaitQueue(this);\n try {\n timeout?.throwIfExpired();\n const server = await (timeout ? Promise.race([serverPromise, timeout]) : serverPromise);\n if (options.timeoutContext?.csotEnabled() && server.description.minRoundTripTime !== 0) {\n options.timeoutContext.minRoundTripTime = server.description.minRoundTripTime;\n }\n return server;\n }\n catch (error) {\n if (timeout_1.TimeoutError.is(error)) {\n // Timeout\n waitQueueMember.cancelled = true;\n const timeoutError = new error_1.MongoServerSelectionError(`Server selection timed out after ${timeout?.duration} ms`, this.description);\n if (this.client.mongoLogger?.willLog(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, mongo_logger_1.SeverityLevel.DEBUG)) {\n this.client.mongoLogger?.debug(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, new server_selection_events_1.ServerSelectionFailedEvent(selector, this.description, timeoutError, options.operationName));\n }\n if (options.timeoutContext?.csotEnabled()) {\n throw new error_1.MongoOperationTimeoutError('Timed out during server selection', {\n cause: timeoutError\n });\n }\n throw timeoutError;\n }\n // Other server selection error\n throw error;\n }\n finally {\n abortListener?.[utils_1.kDispose]();\n if (options.timeoutContext?.clearServerSelectionTimeout)\n timeout?.clear();\n }\n }\n /**\n * Update the internal TopologyDescription with a ServerDescription\n *\n * @param serverDescription - The server to update in the internal list of server descriptions\n */\n serverUpdateHandler(serverDescription) {\n if (!this.s.description.hasServer(serverDescription.address)) {\n return;\n }\n // ignore this server update if its from an outdated topologyVersion\n if (isStaleServerDescription(this.s.description, serverDescription)) {\n return;\n }\n // these will be used for monitoring events later\n const previousTopologyDescription = this.s.description;\n const previousServerDescription = this.s.description.servers.get(serverDescription.address);\n if (!previousServerDescription) {\n return;\n }\n // Driver Sessions Spec: \"Whenever a driver receives a cluster time from\n // a server it MUST compare it to the current highest seen cluster time\n // for the deployment. If the new cluster time is higher than the\n // highest seen cluster time it MUST become the new highest seen cluster\n // time. Two cluster times are compared using only the BsonTimestamp\n // value of the clusterTime embedded field.\"\n const clusterTime = serverDescription.$clusterTime;\n if (clusterTime) {\n (0, common_1._advanceClusterTime)(this, clusterTime);\n }\n // If we already know all the information contained in this updated description, then\n // we don't need to emit SDAM events, but still need to update the description, in order\n // to keep client-tracked attributes like last update time and round trip time up to date\n const equalDescriptions = previousServerDescription && previousServerDescription.equals(serverDescription);\n // first update the TopologyDescription\n this.s.description = this.s.description.update(serverDescription);\n if (this.s.description.compatibilityError) {\n this.emit(Topology.ERROR, new error_1.MongoCompatibilityError(this.s.description.compatibilityError));\n return;\n }\n // emit monitoring events for this change\n if (!equalDescriptions) {\n const newDescription = this.s.description.servers.get(serverDescription.address);\n if (newDescription) {\n this.emit(Topology.SERVER_DESCRIPTION_CHANGED, new events_1.ServerDescriptionChangedEvent(this.s.id, serverDescription.address, previousServerDescription, newDescription));\n }\n }\n // update server list from updated descriptions\n updateServers(this, serverDescription);\n // attempt to resolve any outstanding server selection attempts\n if (this.waitQueue.length > 0) {\n processWaitQueue(this);\n }\n if (!equalDescriptions) {\n this.emitAndLog(Topology.TOPOLOGY_DESCRIPTION_CHANGED, new events_1.TopologyDescriptionChangedEvent(this.s.id, previousTopologyDescription, this.s.description));\n }\n }\n auth(credentials, callback) {\n if (typeof credentials === 'function')\n ((callback = credentials), (credentials = undefined));\n if (typeof callback === 'function')\n callback(undefined, true);\n }\n get clientMetadata() {\n return this.s.options.metadata;\n }\n isConnected() {\n return this.s.state === common_1.STATE_CONNECTED;\n }\n isDestroyed() {\n return this.s.state === common_1.STATE_CLOSED;\n }\n // NOTE: There are many places in code where we explicitly check the last hello\n // to do feature support detection. This should be done any other way, but for\n // now we will just return the first hello seen, which should suffice.\n lastHello() {\n const serverDescriptions = Array.from(this.description.servers.values());\n if (serverDescriptions.length === 0)\n return {};\n const sd = serverDescriptions.filter((sd) => sd.type !== common_1.ServerType.Unknown)[0];\n const result = sd || { maxWireVersion: this.description.commonWireVersion };\n return result;\n }\n get commonWireVersion() {\n return this.description.commonWireVersion;\n }\n get logicalSessionTimeoutMinutes() {\n return this.description.logicalSessionTimeoutMinutes;\n }\n get clusterTime() {\n return this.s.clusterTime;\n }\n set clusterTime(clusterTime) {\n this.s.clusterTime = clusterTime;\n }\n}\nexports.Topology = Topology;\n/** @event */\nTopology.SERVER_OPENING = constants_1.SERVER_OPENING;\n/** @event */\nTopology.SERVER_CLOSED = constants_1.SERVER_CLOSED;\n/** @event */\nTopology.SERVER_DESCRIPTION_CHANGED = constants_1.SERVER_DESCRIPTION_CHANGED;\n/** @event */\nTopology.TOPOLOGY_OPENING = constants_1.TOPOLOGY_OPENING;\n/** @event */\nTopology.TOPOLOGY_CLOSED = constants_1.TOPOLOGY_CLOSED;\n/** @event */\nTopology.TOPOLOGY_DESCRIPTION_CHANGED = constants_1.TOPOLOGY_DESCRIPTION_CHANGED;\n/** @event */\nTopology.ERROR = constants_1.ERROR;\n/** @event */\nTopology.OPEN = constants_1.OPEN;\n/** @event */\nTopology.CONNECT = constants_1.CONNECT;\n/** @event */\nTopology.CLOSE = constants_1.CLOSE;\n/** @event */\nTopology.TIMEOUT = constants_1.TIMEOUT;\n/** Destroys a server, and removes all event listeners from the instance */\nfunction closeServer(server, topology) {\n for (const event of constants_1.LOCAL_SERVER_EVENTS) {\n server.removeAllListeners(event);\n }\n server.close();\n topology.emitAndLog(Topology.SERVER_CLOSED, new events_1.ServerClosedEvent(topology.s.id, server.description.address));\n for (const event of constants_1.SERVER_RELAY_EVENTS) {\n server.removeAllListeners(event);\n }\n}\n/** Predicts the TopologyType from options */\nfunction topologyTypeFromOptions(options) {\n if (options?.directConnection) {\n return common_1.TopologyType.Single;\n }\n if (options?.replicaSet) {\n return common_1.TopologyType.ReplicaSetNoPrimary;\n }\n if (options?.loadBalanced) {\n return common_1.TopologyType.LoadBalanced;\n }\n return common_1.TopologyType.Unknown;\n}\n/**\n * Creates new server instances and attempts to connect them\n *\n * @param topology - The topology that this server belongs to\n * @param serverDescription - The description for the server to initialize and connect to\n */\nfunction createAndConnectServer(topology, serverDescription) {\n topology.emitAndLog(Topology.SERVER_OPENING, new events_1.ServerOpeningEvent(topology.s.id, serverDescription.address));\n const server = new server_1.Server(topology, serverDescription, topology.s.options);\n for (const event of constants_1.SERVER_RELAY_EVENTS) {\n server.on(event, (e) => topology.emit(event, e));\n }\n server.on(server_1.Server.DESCRIPTION_RECEIVED, description => topology.serverUpdateHandler(description));\n server.connect();\n return server;\n}\n/**\n * @param topology - Topology to update.\n * @param incomingServerDescription - New server description.\n */\nfunction updateServers(topology, incomingServerDescription) {\n // update the internal server's description\n if (incomingServerDescription && topology.s.servers.has(incomingServerDescription.address)) {\n const server = topology.s.servers.get(incomingServerDescription.address);\n if (server) {\n server.s.description = incomingServerDescription;\n if (incomingServerDescription.error instanceof error_1.MongoError &&\n incomingServerDescription.error.hasErrorLabel(error_1.MongoErrorLabel.ResetPool)) {\n const interruptInUseConnections = incomingServerDescription.error.hasErrorLabel(error_1.MongoErrorLabel.InterruptInUseConnections);\n server.pool.clear({ interruptInUseConnections });\n }\n else if (incomingServerDescription.error == null) {\n const newTopologyType = topology.s.description.type;\n const shouldMarkPoolReady = incomingServerDescription.isDataBearing ||\n (incomingServerDescription.type !== common_1.ServerType.Unknown &&\n newTopologyType === common_1.TopologyType.Single);\n if (shouldMarkPoolReady) {\n server.pool.ready();\n }\n }\n }\n }\n // add new servers for all descriptions we currently don't know about locally\n for (const serverDescription of topology.description.servers.values()) {\n if (!topology.s.servers.has(serverDescription.address)) {\n const server = createAndConnectServer(topology, serverDescription);\n topology.s.servers.set(serverDescription.address, server);\n }\n }\n // for all servers no longer known, remove their descriptions and destroy their instances\n for (const entry of topology.s.servers) {\n const serverAddress = entry[0];\n if (topology.description.hasServer(serverAddress)) {\n continue;\n }\n if (!topology.s.servers.has(serverAddress)) {\n continue;\n }\n const server = topology.s.servers.get(serverAddress);\n topology.s.servers.delete(serverAddress);\n // prepare server for garbage collection\n if (server) {\n closeServer(server, topology);\n }\n }\n}\nfunction drainWaitQueue(queue, drainError) {\n while (queue.length) {\n const waitQueueMember = queue.shift();\n if (!waitQueueMember) {\n continue;\n }\n if (!waitQueueMember.cancelled) {\n if (waitQueueMember.mongoLogger?.willLog(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, mongo_logger_1.SeverityLevel.DEBUG)) {\n waitQueueMember.mongoLogger?.debug(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, new server_selection_events_1.ServerSelectionFailedEvent(waitQueueMember.serverSelector, waitQueueMember.topologyDescription, drainError, waitQueueMember.operationName));\n }\n waitQueueMember.reject(drainError);\n }\n }\n}\nfunction processWaitQueue(topology) {\n if (topology.s.state === common_1.STATE_CLOSED) {\n drainWaitQueue(topology.waitQueue, new error_1.MongoTopologyClosedError());\n return;\n }\n const isSharded = topology.description.type === common_1.TopologyType.Sharded;\n const serverDescriptions = Array.from(topology.description.servers.values());\n const membersToProcess = topology.waitQueue.length;\n for (let i = 0; i < membersToProcess; ++i) {\n const waitQueueMember = topology.waitQueue.shift();\n if (!waitQueueMember) {\n continue;\n }\n if (waitQueueMember.cancelled) {\n continue;\n }\n let selectedDescriptions;\n try {\n const serverSelector = waitQueueMember.serverSelector;\n const previousServer = waitQueueMember.previousServer;\n selectedDescriptions = serverSelector\n ? serverSelector(topology.description, serverDescriptions, previousServer ? [previousServer] : [])\n : serverDescriptions;\n }\n catch (selectorError) {\n if (topology.client.mongoLogger?.willLog(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, mongo_logger_1.SeverityLevel.DEBUG)) {\n topology.client.mongoLogger?.debug(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, new server_selection_events_1.ServerSelectionFailedEvent(waitQueueMember.serverSelector, topology.description, selectorError, waitQueueMember.operationName));\n }\n waitQueueMember.reject(selectorError);\n continue;\n }\n let selectedServer;\n if (selectedDescriptions.length === 0) {\n if (!waitQueueMember.waitingLogged) {\n if (topology.client.mongoLogger?.willLog(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, mongo_logger_1.SeverityLevel.INFORMATIONAL)) {\n topology.client.mongoLogger?.info(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, new server_selection_events_1.WaitingForSuitableServerEvent(waitQueueMember.serverSelector, topology.description, topology.s.serverSelectionTimeoutMS !== 0\n ? topology.s.serverSelectionTimeoutMS - ((0, utils_1.now)() - waitQueueMember.startTime)\n : -1, waitQueueMember.operationName));\n }\n waitQueueMember.waitingLogged = true;\n }\n topology.waitQueue.push(waitQueueMember);\n continue;\n }\n else if (selectedDescriptions.length === 1) {\n selectedServer = topology.s.servers.get(selectedDescriptions[0].address);\n }\n else {\n const descriptions = (0, utils_1.shuffle)(selectedDescriptions, 2);\n const server1 = topology.s.servers.get(descriptions[0].address);\n const server2 = topology.s.servers.get(descriptions[1].address);\n selectedServer =\n server1 && server2 && server1.s.operationCount < server2.s.operationCount\n ? server1\n : server2;\n }\n if (!selectedServer) {\n const serverSelectionError = new error_1.MongoServerSelectionError('server selection returned a server description but the server was not found in the topology', topology.description);\n if (topology.client.mongoLogger?.willLog(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, mongo_logger_1.SeverityLevel.DEBUG)) {\n topology.client.mongoLogger?.debug(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, new server_selection_events_1.ServerSelectionFailedEvent(waitQueueMember.serverSelector, topology.description, serverSelectionError, waitQueueMember.operationName));\n }\n waitQueueMember.reject(serverSelectionError);\n return;\n }\n const transaction = waitQueueMember.transaction;\n if (isSharded && transaction && transaction.isActive && selectedServer) {\n transaction.pinServer(selectedServer);\n }\n if (topology.client.mongoLogger?.willLog(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, mongo_logger_1.SeverityLevel.DEBUG)) {\n topology.client.mongoLogger?.debug(mongo_logger_1.MongoLoggableComponent.SERVER_SELECTION, new server_selection_events_1.ServerSelectionSucceededEvent(waitQueueMember.serverSelector, waitQueueMember.topologyDescription, selectedServer.pool.address, waitQueueMember.operationName));\n }\n waitQueueMember.resolve(selectedServer);\n }\n if (topology.waitQueue.length > 0) {\n // ensure all server monitors attempt monitoring soon\n for (const [, server] of topology.s.servers) {\n process.nextTick(function scheduleServerCheck() {\n return server.requestCheck();\n });\n }\n }\n}\nfunction isStaleServerDescription(topologyDescription, incomingServerDescription) {\n const currentServerDescription = topologyDescription.servers.get(incomingServerDescription.address);\n const currentTopologyVersion = currentServerDescription?.topologyVersion;\n return ((0, server_description_1.compareTopologyVersion)(currentTopologyVersion, incomingServerDescription.topologyVersion) > 0);\n}\n/**\n * @public\n * @deprecated This class will be removed as dead code in the next major version.\n */\nclass ServerCapabilities {\n constructor(hello) {\n this.minWireVersion = hello.minWireVersion || 0;\n this.maxWireVersion = hello.maxWireVersion || 0;\n }\n get hasAggregationCursor() {\n return true;\n }\n get hasWriteCommands() {\n return true;\n }\n get hasTextSearch() {\n return true;\n }\n get hasAuthCommands() {\n return true;\n }\n get hasListCollectionsCommand() {\n return true;\n }\n get hasListIndexesCommand() {\n return true;\n }\n get supportsSnapshotReads() {\n return this.maxWireVersion >= 13;\n }\n get commandsTakeWriteConcern() {\n return true;\n }\n get commandsTakeCollation() {\n return true;\n }\n}\nexports.ServerCapabilities = ServerCapabilities;\n//# sourceMappingURL=topology.js.map"],"x_google_ignoreList":[0],"mappings":"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"}