pecunia-root 0.1.0 → 0.1.1

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 (358) hide show
  1. package/dist/_virtual/rolldown_runtime.mjs +8 -0
  2. package/dist/adapters/drizzle-adapter/index.mjs +4 -1
  3. package/dist/adapters/drizzle-adapter/index.mjs.map +1 -1
  4. package/dist/adapters/mongodb-adapter/index.mjs +12 -11
  5. package/dist/adapters/mongodb-adapter/index.mjs.map +1 -1
  6. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/code-points-data.mjs +14 -0
  7. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/code-points-data.mjs.map +1 -0
  8. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/index.mjs +54 -0
  9. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/index.mjs.map +1 -0
  10. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/memory-code-points.mjs +36 -0
  11. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/memory-code-points.mjs.map +1 -0
  12. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/node.mjs +27 -0
  13. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/node.mjs.map +1 -0
  14. package/dist/node_modules/.pnpm/bson@6.10.4/node_modules/bson/lib/bson.mjs +3728 -0
  15. package/dist/node_modules/.pnpm/bson@6.10.4/node_modules/bson/lib/bson.mjs.map +1 -0
  16. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/column-builder.mjs +108 -0
  17. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/column-builder.mjs.map +1 -0
  18. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/column.mjs +55 -0
  19. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/column.mjs.map +1 -0
  20. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/entity.mjs +18 -0
  21. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/entity.mjs.map +1 -0
  22. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/pg-core/columns/common.mjs +183 -0
  23. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/pg-core/columns/common.mjs.map +1 -0
  24. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/pg-core/columns/enum.mjs +35 -0
  25. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/pg-core/columns/enum.mjs.map +1 -0
  26. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/pg-core/foreign-keys.mjs +68 -0
  27. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/pg-core/foreign-keys.mjs.map +1 -0
  28. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/pg-core/unique-constraint.mjs +56 -0
  29. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/pg-core/unique-constraint.mjs.map +1 -0
  30. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/pg-core/utils/array.mjs +65 -0
  31. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/pg-core/utils/array.mjs.map +1 -0
  32. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/sql/expressions/conditions.mjs +69 -0
  33. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/sql/expressions/conditions.mjs.map +1 -0
  34. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/sql/expressions/select.mjs +13 -0
  35. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/sql/expressions/select.mjs.map +1 -0
  36. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/sql/functions/aggregate.mjs +10 -0
  37. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/sql/functions/aggregate.mjs.map +1 -0
  38. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/sql/sql.mjs +366 -0
  39. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/sql/sql.mjs.map +1 -0
  40. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/subquery.mjs +22 -0
  41. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/subquery.mjs.map +1 -0
  42. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/table.mjs +62 -0
  43. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/table.mjs.map +1 -0
  44. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/table.utils.mjs +6 -0
  45. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/table.utils.mjs.map +1 -0
  46. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/tracing-utils.mjs +8 -0
  47. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/tracing-utils.mjs.map +1 -0
  48. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/tracing.mjs +8 -0
  49. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/tracing.mjs.map +1 -0
  50. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/view-common.mjs +6 -0
  51. package/dist/node_modules/.pnpm/drizzle-orm@0.41.0_@prisma_client@5.22.0_prisma@5.22.0__@types_better-sqlite3@7.6.13_@t_b8c798d02fdf3681c336f03696200539/node_modules/drizzle-orm/view-common.mjs.map +1 -0
  52. package/dist/node_modules/.pnpm/memory-pager@1.5.0/node_modules/memory-pager/index.mjs +137 -0
  53. package/dist/node_modules/.pnpm/memory-pager@1.5.0/node_modules/memory-pager/index.mjs.map +1 -0
  54. package/dist/node_modules/.pnpm/mongodb-connection-string-url@3.0.2/node_modules/mongodb-connection-string-url/lib/index.mjs +211 -0
  55. package/dist/node_modules/.pnpm/mongodb-connection-string-url@3.0.2/node_modules/mongodb-connection-string-url/lib/index.mjs.map +1 -0
  56. package/dist/node_modules/.pnpm/mongodb-connection-string-url@3.0.2/node_modules/mongodb-connection-string-url/lib/redact.mjs +95 -0
  57. package/dist/node_modules/.pnpm/mongodb-connection-string-url@3.0.2/node_modules/mongodb-connection-string-url/lib/redact.mjs.map +1 -0
  58. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/admin.mjs +158 -0
  59. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/admin.mjs.map +1 -0
  60. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bson.mjs +195 -0
  61. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bson.mjs.map +1 -0
  62. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bulk/common.mjs +710 -0
  63. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bulk/common.mjs.map +1 -0
  64. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bulk/ordered.mjs +53 -0
  65. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bulk/ordered.mjs.map +1 -0
  66. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bulk/unordered.mjs +63 -0
  67. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bulk/unordered.mjs.map +1 -0
  68. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/change_stream.mjs +368 -0
  69. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/change_stream.mjs.map +1 -0
  70. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/auto_encrypter.mjs +234 -0
  71. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/auto_encrypter.mjs.map +1 -0
  72. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/client_encryption.mjs +545 -0
  73. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/client_encryption.mjs.map +1 -0
  74. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/crypto_callbacks.mjs +83 -0
  75. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/crypto_callbacks.mjs.map +1 -0
  76. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/errors.mjs +146 -0
  77. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/errors.mjs.map +1 -0
  78. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/mongocryptd_manager.mjs +58 -0
  79. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/mongocryptd_manager.mjs.map +1 -0
  80. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/aws.mjs +30 -0
  81. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/aws.mjs.map +1 -0
  82. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/azure.mjs +135 -0
  83. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/azure.mjs.map +1 -0
  84. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/gcp.mjs +25 -0
  85. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/gcp.mjs.map +1 -0
  86. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/index.mjs +47 -0
  87. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/index.mjs.map +1 -0
  88. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/state_machine.mjs +362 -0
  89. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/state_machine.mjs.map +1 -0
  90. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/auth_provider.mjs +58 -0
  91. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/auth_provider.mjs.map +1 -0
  92. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/aws_temporary_credentials.mjs +123 -0
  93. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/aws_temporary_credentials.mjs.map +1 -0
  94. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/gssapi.mjs +128 -0
  95. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/gssapi.mjs.map +1 -0
  96. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongo_credentials.mjs +133 -0
  97. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongo_credentials.mjs.map +1 -0
  98. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_aws.mjs +126 -0
  99. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_aws.mjs.map +1 -0
  100. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.mjs +79 -0
  101. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.mjs.map +1 -0
  102. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.mjs +65 -0
  103. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.mjs.map +1 -0
  104. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/callback_workflow.mjs +127 -0
  105. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/callback_workflow.mjs.map +1 -0
  106. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/command_builders.mjs +47 -0
  107. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/command_builders.mjs.map +1 -0
  108. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.mjs +44 -0
  109. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.mjs.map +1 -0
  110. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/human_callback_workflow.mjs +101 -0
  111. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/human_callback_workflow.mjs.map +1 -0
  112. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.mjs +33 -0
  113. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.mjs.map +1 -0
  114. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_cache.mjs +53 -0
  115. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_cache.mjs.map +1 -0
  116. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.mjs +29 -0
  117. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.mjs.map +1 -0
  118. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc.mjs +83 -0
  119. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc.mjs.map +1 -0
  120. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/plain.mjs +36 -0
  121. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/plain.mjs.map +1 -0
  122. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/providers.mjs +32 -0
  123. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/providers.mjs.map +1 -0
  124. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/scram.mjs +206 -0
  125. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/scram.mjs.map +1 -0
  126. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/x509.mjs +45 -0
  127. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/x509.mjs.map +1 -0
  128. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/command_monitoring_events.mjs +213 -0
  129. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/command_monitoring_events.mjs.map +1 -0
  130. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/commands.mjs +411 -0
  131. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/commands.mjs.map +1 -0
  132. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connect.mjs +288 -0
  133. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connect.mjs.map +1 -0
  134. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connection.mjs +423 -0
  135. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connection.mjs.map +1 -0
  136. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connection_pool.mjs +483 -0
  137. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connection_pool.mjs.map +1 -0
  138. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connection_pool_events.mjs +207 -0
  139. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connection_pool_events.mjs.map +1 -0
  140. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/errors.mjs +116 -0
  141. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/errors.mjs.map +1 -0
  142. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/handshake/client_metadata.mjs +183 -0
  143. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/handshake/client_metadata.mjs.map +1 -0
  144. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/metrics.mjs +55 -0
  145. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/metrics.mjs.map +1 -0
  146. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/stream_description.mjs +60 -0
  147. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/stream_description.mjs.map +1 -0
  148. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/compression.mjs +139 -0
  149. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/compression.mjs.map +1 -0
  150. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/constants.mjs +28 -0
  151. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/constants.mjs.map +1 -0
  152. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/on_data.mjs +117 -0
  153. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/on_data.mjs.map +1 -0
  154. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/on_demand/document.mjs +182 -0
  155. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/on_demand/document.mjs.map +1 -0
  156. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/responses.mjs +304 -0
  157. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/responses.mjs.map +1 -0
  158. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/shared.mjs +34 -0
  159. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/shared.mjs.map +1 -0
  160. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/collection.mjs +739 -0
  161. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/collection.mjs.map +1 -0
  162. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/connection_string.mjs +805 -0
  163. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/connection_string.mjs.map +1 -0
  164. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/constants.mjs +174 -0
  165. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/constants.mjs.map +1 -0
  166. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/abstract_cursor.mjs +726 -0
  167. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/abstract_cursor.mjs.map +1 -0
  168. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/aggregation_cursor.mjs +172 -0
  169. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/aggregation_cursor.mjs.map +1 -0
  170. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/change_stream_cursor.mjs +103 -0
  171. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/change_stream_cursor.mjs.map +1 -0
  172. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/client_bulk_write_cursor.mjs +66 -0
  173. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/client_bulk_write_cursor.mjs.map +1 -0
  174. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/explainable_cursor.mjs +41 -0
  175. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/explainable_cursor.mjs.map +1 -0
  176. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/find_cursor.mjs +365 -0
  177. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/find_cursor.mjs.map +1 -0
  178. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/list_collections_cursor.mjs +50 -0
  179. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/list_collections_cursor.mjs.map +1 -0
  180. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/list_indexes_cursor.mjs +48 -0
  181. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/list_indexes_cursor.mjs.map +1 -0
  182. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/list_search_indexes_cursor.mjs +23 -0
  183. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/list_search_indexes_cursor.mjs.map +1 -0
  184. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/run_command_cursor.mjs +106 -0
  185. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/run_command_cursor.mjs.map +1 -0
  186. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/db.mjs +428 -0
  187. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/db.mjs.map +1 -0
  188. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/deps.mjs +124 -0
  189. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/deps.mjs.map +1 -0
  190. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/encrypter.mjs +95 -0
  191. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/encrypter.mjs.map +1 -0
  192. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/error.mjs +1305 -0
  193. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/error.mjs.map +1 -0
  194. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/explain.mjs +59 -0
  195. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/explain.mjs.map +1 -0
  196. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/gridfs/download.mjs +250 -0
  197. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/gridfs/download.mjs.map +1 -0
  198. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/gridfs/index.mjs +170 -0
  199. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/gridfs/index.mjs.map +1 -0
  200. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/gridfs/upload.mjs +315 -0
  201. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/gridfs/upload.mjs.map +1 -0
  202. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/index.mjs +925 -0
  203. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/index.mjs.map +1 -0
  204. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_client.mjs +520 -0
  205. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_client.mjs.map +1 -0
  206. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_client_auth_providers.mjs +90 -0
  207. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_client_auth_providers.mjs.map +1 -0
  208. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_logger.mjs +582 -0
  209. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_logger.mjs.map +1 -0
  210. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_types.mjs +64 -0
  211. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_types.mjs.map +1 -0
  212. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/aggregate.mjs +86 -0
  213. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/aggregate.mjs.map +1 -0
  214. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/client_bulk_write.mjs +60 -0
  215. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/client_bulk_write.mjs.map +1 -0
  216. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/command_builder.mjs +264 -0
  217. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/command_builder.mjs.map +1 -0
  218. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/executor.mjs +109 -0
  219. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/executor.mjs.map +1 -0
  220. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/results_merger.mjs +172 -0
  221. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/results_merger.mjs.map +1 -0
  222. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/command.mjs +68 -0
  223. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/command.mjs.map +1 -0
  224. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/count.mjs +53 -0
  225. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/count.mjs.map +1 -0
  226. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/create_collection.mjs +123 -0
  227. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/create_collection.mjs.map +1 -0
  228. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/delete.mjs +119 -0
  229. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/delete.mjs.map +1 -0
  230. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/distinct.mjs +65 -0
  231. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/distinct.mjs.map +1 -0
  232. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/drop.mjs +97 -0
  233. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/drop.mjs.map +1 -0
  234. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/estimated_document_count.mjs +47 -0
  235. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/estimated_document_count.mjs.map +1 -0
  236. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/execute_operation.mjs +188 -0
  237. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/execute_operation.mjs.map +1 -0
  238. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/find.mjs +103 -0
  239. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/find.mjs.map +1 -0
  240. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/find_and_modify.mjs +136 -0
  241. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/find_and_modify.mjs.map +1 -0
  242. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/get_more.mjs +61 -0
  243. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/get_more.mjs.map +1 -0
  244. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/indexes.mjs +179 -0
  245. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/indexes.mjs.map +1 -0
  246. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/insert.mjs +77 -0
  247. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/insert.mjs.map +1 -0
  248. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/kill_cursors.mjs +48 -0
  249. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/kill_cursors.mjs.map +1 -0
  250. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/list_collections.mjs +60 -0
  251. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/list_collections.mjs.map +1 -0
  252. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/list_databases.mjs +43 -0
  253. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/list_databases.mjs.map +1 -0
  254. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/operation.mjs +105 -0
  255. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/operation.mjs.map +1 -0
  256. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/profiling_level.mjs +50 -0
  257. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/profiling_level.mjs.map +1 -0
  258. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/remove_user.mjs +39 -0
  259. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/remove_user.mjs.map +1 -0
  260. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/rename.mjs +49 -0
  261. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/rename.mjs.map +1 -0
  262. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/run_command.mjs +58 -0
  263. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/run_command.mjs.map +1 -0
  264. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/search_indexes/create.mjs +46 -0
  265. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/search_indexes/create.mjs.map +1 -0
  266. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/search_indexes/drop.mjs +48 -0
  267. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/search_indexes/drop.mjs.map +1 -0
  268. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/search_indexes/update.mjs +46 -0
  269. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/search_indexes/update.mjs.map +1 -0
  270. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/set_profiling_level.mjs +67 -0
  271. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/set_profiling_level.mjs.map +1 -0
  272. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/stats.mjs +37 -0
  273. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/stats.mjs.map +1 -0
  274. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/update.mjs +171 -0
  275. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/update.mjs.map +1 -0
  276. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/validate_collection.mjs +45 -0
  277. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/validate_collection.mjs.map +1 -0
  278. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/read_concern.mjs +71 -0
  279. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/read_concern.mjs.map +1 -0
  280. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/read_preference.mjs +165 -0
  281. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/read_preference.mjs.map +1 -0
  282. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/resource_management.mjs +62 -0
  283. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/resource_management.mjs.map +1 -0
  284. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/common.mjs +51 -0
  285. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/common.mjs.map +1 -0
  286. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/events.mjs +156 -0
  287. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/events.mjs.map +1 -0
  288. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/monitor.mjs +477 -0
  289. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/monitor.mjs.map +1 -0
  290. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server.mjs +315 -0
  291. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server.mjs.map +1 -0
  292. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server_description.mjs +157 -0
  293. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server_description.mjs.map +1 -0
  294. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server_selection.mjs +184 -0
  295. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server_selection.mjs.map +1 -0
  296. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server_selection_events.mjs +96 -0
  297. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server_selection_events.mjs.map +1 -0
  298. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/srv_polling.mjs +107 -0
  299. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/srv_polling.mjs.map +1 -0
  300. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/topology.mjs +540 -0
  301. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/topology.mjs.map +1 -0
  302. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/topology_description.mjs +298 -0
  303. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/topology_description.mjs.map +1 -0
  304. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sessions.mjs +623 -0
  305. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sessions.mjs.map +1 -0
  306. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sort.mjs +91 -0
  307. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sort.mjs.map +1 -0
  308. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/timeout.mjs +254 -0
  309. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/timeout.mjs.map +1 -0
  310. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/transactions.mjs +138 -0
  311. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/transactions.mjs.map +1 -0
  312. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/utils.mjs +993 -0
  313. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/utils.mjs.map +1 -0
  314. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/write_concern.mjs +81 -0
  315. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/write_concern.mjs.map +1 -0
  316. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/package.mjs +171 -0
  317. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/package.mjs.map +1 -0
  318. package/dist/node_modules/.pnpm/punycode@2.3.1/node_modules/punycode/punycode.mjs +295 -0
  319. package/dist/node_modules/.pnpm/punycode@2.3.1/node_modules/punycode/punycode.mjs.map +1 -0
  320. package/dist/node_modules/.pnpm/sparse-bitfield@3.0.3/node_modules/sparse-bitfield/index.mjs +81 -0
  321. package/dist/node_modules/.pnpm/sparse-bitfield@3.0.3/node_modules/sparse-bitfield/index.mjs.map +1 -0
  322. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/index.mjs +206 -0
  323. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/index.mjs.map +1 -0
  324. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/mappingTable.mjs +33590 -0
  325. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/mappingTable.mjs.map +1 -0
  326. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/regexes.mjs +37 -0
  327. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/regexes.mjs.map +1 -0
  328. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/statusMapping.mjs +18 -0
  329. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/statusMapping.mjs.map +1 -0
  330. package/dist/node_modules/.pnpm/webidl-conversions@7.0.0/node_modules/webidl-conversions/lib/index.mjs +252 -0
  331. package/dist/node_modules/.pnpm/webidl-conversions@7.0.0/node_modules/webidl-conversions/lib/index.mjs.map +1 -0
  332. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/index.mjs +41 -0
  333. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/index.mjs.map +1 -0
  334. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/Function.mjs +41 -0
  335. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/Function.mjs.map +1 -0
  336. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URL-impl.mjs +173 -0
  337. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URL-impl.mjs.map +1 -0
  338. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URL.mjs +334 -0
  339. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URL.mjs.map +1 -0
  340. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URLSearchParams-impl.mjs +90 -0
  341. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URLSearchParams-impl.mjs.map +1 -0
  342. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URLSearchParams.mjs +356 -0
  343. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URLSearchParams.mjs.map +1 -0
  344. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/encoding.mjs +23 -0
  345. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/encoding.mjs.map +1 -0
  346. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/infra.mjs +29 -0
  347. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/infra.mjs.map +1 -0
  348. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/percent-encoding.mjs +140 -0
  349. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/percent-encoding.mjs.map +1 -0
  350. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/url-state-machine.mjs +831 -0
  351. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/url-state-machine.mjs.map +1 -0
  352. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/urlencoded.mjs +77 -0
  353. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/urlencoded.mjs.map +1 -0
  354. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/utils.mjs +147 -0
  355. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/utils.mjs.map +1 -0
  356. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/webidl2js-wrapper.mjs +17 -0
  357. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/webidl2js-wrapper.mjs.map +1 -0
  358. package/package.json +1 -39
@@ -0,0 +1,477 @@
1
+ import { __commonJSMin, __require } from "../../../../../../../_virtual/rolldown_runtime.mjs";
2
+ import { require_bson } from "../bson.mjs";
3
+ import { require_error } from "../error.mjs";
4
+ import { require_common } from "./common.mjs";
5
+ import { require_constants } from "../constants.mjs";
6
+ import { require_utils } from "../utils.mjs";
7
+ import { require_mongo_logger } from "../mongo_logger.mjs";
8
+ import { require_mongo_types } from "../mongo_types.mjs";
9
+ import { require_client_metadata } from "../cmap/handshake/client_metadata.mjs";
10
+ import { require_connect } from "../cmap/connect.mjs";
11
+ import { require_events } from "./events.mjs";
12
+ import { require_server } from "./server.mjs";
13
+
14
+ //#region ../../node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/monitor.js
15
+ var require_monitor = /* @__PURE__ */ __commonJSMin(((exports) => {
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.RTTSampler = exports.MonitorInterval = exports.RTTPinger = exports.Monitor = exports.ServerMonitoringMode = void 0;
18
+ const timers_1 = __require("timers");
19
+ const bson_1 = require_bson();
20
+ const connect_1 = require_connect();
21
+ const client_metadata_1 = require_client_metadata();
22
+ const constants_1 = require_constants();
23
+ const error_1 = require_error();
24
+ const mongo_logger_1 = require_mongo_logger();
25
+ const mongo_types_1 = require_mongo_types();
26
+ const utils_1 = require_utils();
27
+ const common_1 = require_common();
28
+ const events_1 = require_events();
29
+ const server_1 = require_server();
30
+ const STATE_IDLE = "idle";
31
+ const STATE_MONITORING = "monitoring";
32
+ const stateTransition = (0, utils_1.makeStateMachine)({
33
+ [common_1.STATE_CLOSING]: [
34
+ common_1.STATE_CLOSING,
35
+ STATE_IDLE,
36
+ common_1.STATE_CLOSED
37
+ ],
38
+ [common_1.STATE_CLOSED]: [common_1.STATE_CLOSED, STATE_MONITORING],
39
+ [STATE_IDLE]: [
40
+ STATE_IDLE,
41
+ STATE_MONITORING,
42
+ common_1.STATE_CLOSING
43
+ ],
44
+ [STATE_MONITORING]: [
45
+ STATE_MONITORING,
46
+ STATE_IDLE,
47
+ common_1.STATE_CLOSING
48
+ ]
49
+ });
50
+ const INVALID_REQUEST_CHECK_STATES = new Set([
51
+ common_1.STATE_CLOSING,
52
+ common_1.STATE_CLOSED,
53
+ STATE_MONITORING
54
+ ]);
55
+ function isInCloseState(monitor) {
56
+ return monitor.s.state === common_1.STATE_CLOSED || monitor.s.state === common_1.STATE_CLOSING;
57
+ }
58
+ /** @public */
59
+ exports.ServerMonitoringMode = Object.freeze({
60
+ auto: "auto",
61
+ poll: "poll",
62
+ stream: "stream"
63
+ });
64
+ /** @internal */
65
+ var Monitor = class extends mongo_types_1.TypedEventEmitter {
66
+ constructor(server, options) {
67
+ super();
68
+ /** @internal */
69
+ this.component = mongo_logger_1.MongoLoggableComponent.TOPOLOGY;
70
+ this.on("error", utils_1.noop);
71
+ this.server = server;
72
+ this.connection = null;
73
+ this.cancellationToken = new mongo_types_1.CancellationToken();
74
+ this.cancellationToken.setMaxListeners(Infinity);
75
+ this.monitorId = void 0;
76
+ this.s = { state: common_1.STATE_CLOSED };
77
+ this.address = server.description.address;
78
+ this.options = Object.freeze({
79
+ connectTimeoutMS: options.connectTimeoutMS ?? 1e4,
80
+ heartbeatFrequencyMS: options.heartbeatFrequencyMS ?? 1e4,
81
+ minHeartbeatFrequencyMS: options.minHeartbeatFrequencyMS ?? 500,
82
+ serverMonitoringMode: options.serverMonitoringMode
83
+ });
84
+ this.isRunningInFaasEnv = (0, client_metadata_1.getFAASEnv)() != null;
85
+ this.mongoLogger = this.server.topology.client?.mongoLogger;
86
+ this.rttSampler = new RTTSampler(10);
87
+ const cancellationToken = this.cancellationToken;
88
+ const connectOptions = {
89
+ id: "<monitor>",
90
+ generation: server.pool.generation,
91
+ cancellationToken,
92
+ hostAddress: server.description.hostAddress,
93
+ ...options,
94
+ raw: false,
95
+ useBigInt64: false,
96
+ promoteLongs: true,
97
+ promoteValues: true,
98
+ promoteBuffers: true
99
+ };
100
+ delete connectOptions.credentials;
101
+ if (connectOptions.autoEncrypter) delete connectOptions.autoEncrypter;
102
+ this.connectOptions = Object.freeze(connectOptions);
103
+ }
104
+ connect() {
105
+ if (this.s.state !== common_1.STATE_CLOSED) return;
106
+ const heartbeatFrequencyMS = this.options.heartbeatFrequencyMS;
107
+ const minHeartbeatFrequencyMS = this.options.minHeartbeatFrequencyMS;
108
+ this.monitorId = new MonitorInterval(monitorServer(this), {
109
+ heartbeatFrequencyMS,
110
+ minHeartbeatFrequencyMS,
111
+ immediate: true
112
+ });
113
+ }
114
+ requestCheck() {
115
+ if (INVALID_REQUEST_CHECK_STATES.has(this.s.state)) return;
116
+ this.monitorId?.wake();
117
+ }
118
+ reset() {
119
+ const topologyVersion = this.server.description.topologyVersion;
120
+ if (isInCloseState(this) || topologyVersion == null) return;
121
+ stateTransition(this, common_1.STATE_CLOSING);
122
+ resetMonitorState(this);
123
+ stateTransition(this, STATE_IDLE);
124
+ const heartbeatFrequencyMS = this.options.heartbeatFrequencyMS;
125
+ const minHeartbeatFrequencyMS = this.options.minHeartbeatFrequencyMS;
126
+ this.monitorId = new MonitorInterval(monitorServer(this), {
127
+ heartbeatFrequencyMS,
128
+ minHeartbeatFrequencyMS
129
+ });
130
+ }
131
+ close() {
132
+ if (isInCloseState(this)) return;
133
+ stateTransition(this, common_1.STATE_CLOSING);
134
+ resetMonitorState(this);
135
+ this.emit("close");
136
+ stateTransition(this, common_1.STATE_CLOSED);
137
+ }
138
+ get roundTripTime() {
139
+ return this.rttSampler.average();
140
+ }
141
+ get minRoundTripTime() {
142
+ return this.rttSampler.min();
143
+ }
144
+ get latestRtt() {
145
+ return this.rttSampler.last;
146
+ }
147
+ addRttSample(rtt) {
148
+ this.rttSampler.addSample(rtt);
149
+ }
150
+ clearRttSamples() {
151
+ this.rttSampler.clear();
152
+ }
153
+ };
154
+ exports.Monitor = Monitor;
155
+ function resetMonitorState(monitor) {
156
+ monitor.monitorId?.stop();
157
+ monitor.monitorId = void 0;
158
+ monitor.rttPinger?.close();
159
+ monitor.rttPinger = void 0;
160
+ monitor.cancellationToken.emit("cancel");
161
+ monitor.connection?.destroy();
162
+ monitor.connection = null;
163
+ monitor.clearRttSamples();
164
+ }
165
+ function useStreamingProtocol(monitor, topologyVersion) {
166
+ if (topologyVersion == null) return false;
167
+ const serverMonitoringMode = monitor.options.serverMonitoringMode;
168
+ if (serverMonitoringMode === exports.ServerMonitoringMode.poll) return false;
169
+ if (serverMonitoringMode === exports.ServerMonitoringMode.stream) return true;
170
+ if (monitor.isRunningInFaasEnv) return false;
171
+ return true;
172
+ }
173
+ function checkServer(monitor, callback) {
174
+ let start;
175
+ let awaited;
176
+ const topologyVersion = monitor.server.description.topologyVersion;
177
+ const isAwaitable = useStreamingProtocol(monitor, topologyVersion);
178
+ monitor.emitAndLogHeartbeat(server_1.Server.SERVER_HEARTBEAT_STARTED, monitor.server.topology.s.id, void 0, new events_1.ServerHeartbeatStartedEvent(monitor.address, isAwaitable));
179
+ function onHeartbeatFailed(err) {
180
+ monitor.connection?.destroy();
181
+ monitor.connection = null;
182
+ monitor.emitAndLogHeartbeat(server_1.Server.SERVER_HEARTBEAT_FAILED, monitor.server.topology.s.id, void 0, new events_1.ServerHeartbeatFailedEvent(monitor.address, (0, utils_1.calculateDurationInMs)(start), err, awaited));
183
+ const error = !(err instanceof error_1.MongoError) ? new error_1.MongoError(error_1.MongoError.buildErrorMessage(err), { cause: err }) : err;
184
+ error.addErrorLabel(error_1.MongoErrorLabel.ResetPool);
185
+ if (error instanceof error_1.MongoNetworkTimeoutError) error.addErrorLabel(error_1.MongoErrorLabel.InterruptInUseConnections);
186
+ monitor.emit("resetServer", error);
187
+ callback(err);
188
+ }
189
+ function onHeartbeatSucceeded(hello) {
190
+ if (!("isWritablePrimary" in hello)) hello.isWritablePrimary = hello[constants_1.LEGACY_HELLO_COMMAND];
191
+ const duration = isAwaitable && monitor.rttPinger ? monitor.rttPinger.latestRtt ?? (0, utils_1.calculateDurationInMs)(start) : (0, utils_1.calculateDurationInMs)(start);
192
+ monitor.addRttSample(duration);
193
+ monitor.emitAndLogHeartbeat(server_1.Server.SERVER_HEARTBEAT_SUCCEEDED, monitor.server.topology.s.id, hello.connectionId, new events_1.ServerHeartbeatSucceededEvent(monitor.address, duration, hello, isAwaitable));
194
+ if (isAwaitable) {
195
+ monitor.emitAndLogHeartbeat(server_1.Server.SERVER_HEARTBEAT_STARTED, monitor.server.topology.s.id, void 0, new events_1.ServerHeartbeatStartedEvent(monitor.address, true));
196
+ start = (0, utils_1.now)();
197
+ } else {
198
+ monitor.rttPinger?.close();
199
+ monitor.rttPinger = void 0;
200
+ callback(void 0, hello);
201
+ }
202
+ }
203
+ const { connection } = monitor;
204
+ if (connection && !connection.closed) {
205
+ const { serverApi, helloOk } = connection;
206
+ const connectTimeoutMS = monitor.options.connectTimeoutMS;
207
+ const maxAwaitTimeMS = monitor.options.heartbeatFrequencyMS;
208
+ const cmd = {
209
+ [serverApi?.version || helloOk ? "hello" : constants_1.LEGACY_HELLO_COMMAND]: 1,
210
+ ...isAwaitable && topologyVersion ? {
211
+ maxAwaitTimeMS,
212
+ topologyVersion: makeTopologyVersion(topologyVersion)
213
+ } : {}
214
+ };
215
+ const options = isAwaitable ? {
216
+ socketTimeoutMS: connectTimeoutMS ? connectTimeoutMS + maxAwaitTimeMS : 0,
217
+ exhaustAllowed: true
218
+ } : { socketTimeoutMS: connectTimeoutMS };
219
+ if (isAwaitable && monitor.rttPinger == null) monitor.rttPinger = new RTTPinger(monitor);
220
+ start = (0, utils_1.now)();
221
+ if (isAwaitable) {
222
+ awaited = true;
223
+ return connection.exhaustCommand((0, utils_1.ns)("admin.$cmd"), cmd, options, (error, hello) => {
224
+ if (error) return onHeartbeatFailed(error);
225
+ return onHeartbeatSucceeded(hello);
226
+ });
227
+ }
228
+ awaited = false;
229
+ connection.command((0, utils_1.ns)("admin.$cmd"), cmd, options).then(onHeartbeatSucceeded, onHeartbeatFailed);
230
+ return;
231
+ }
232
+ (async () => {
233
+ const socket = await (0, connect_1.makeSocket)(monitor.connectOptions);
234
+ const connection$1 = (0, connect_1.makeConnection)(monitor.connectOptions, socket);
235
+ start = (0, utils_1.now)();
236
+ try {
237
+ await (0, connect_1.performInitialHandshake)(connection$1, monitor.connectOptions);
238
+ return connection$1;
239
+ } catch (error) {
240
+ connection$1.destroy();
241
+ throw error;
242
+ }
243
+ })().then((connection$1) => {
244
+ if (isInCloseState(monitor)) {
245
+ connection$1.destroy();
246
+ return;
247
+ }
248
+ const duration = (0, utils_1.calculateDurationInMs)(start);
249
+ monitor.addRttSample(duration);
250
+ monitor.connection = connection$1;
251
+ monitor.emitAndLogHeartbeat(server_1.Server.SERVER_HEARTBEAT_SUCCEEDED, monitor.server.topology.s.id, connection$1.hello?.connectionId, new events_1.ServerHeartbeatSucceededEvent(monitor.address, duration, connection$1.hello, useStreamingProtocol(monitor, connection$1.hello?.topologyVersion)));
252
+ callback(void 0, connection$1.hello);
253
+ }, (error) => {
254
+ monitor.connection = null;
255
+ awaited = false;
256
+ onHeartbeatFailed(error);
257
+ });
258
+ }
259
+ function monitorServer(monitor) {
260
+ return (callback) => {
261
+ if (monitor.s.state === STATE_MONITORING) {
262
+ process.nextTick(callback);
263
+ return;
264
+ }
265
+ stateTransition(monitor, STATE_MONITORING);
266
+ function done() {
267
+ if (!isInCloseState(monitor)) stateTransition(monitor, STATE_IDLE);
268
+ callback();
269
+ }
270
+ checkServer(monitor, (err, hello) => {
271
+ if (err) {
272
+ if (monitor.server.description.type === common_1.ServerType.Unknown) return done();
273
+ }
274
+ if (useStreamingProtocol(monitor, hello?.topologyVersion)) (0, timers_1.setTimeout)(() => {
275
+ if (!isInCloseState(monitor)) monitor.monitorId?.wake();
276
+ }, 0);
277
+ done();
278
+ });
279
+ };
280
+ }
281
+ function makeTopologyVersion(tv) {
282
+ return {
283
+ processId: tv.processId,
284
+ counter: bson_1.Long.isLong(tv.counter) ? tv.counter : bson_1.Long.fromNumber(tv.counter)
285
+ };
286
+ }
287
+ /** @internal */
288
+ var RTTPinger = class {
289
+ constructor(monitor) {
290
+ this.connection = void 0;
291
+ this.cancellationToken = monitor.cancellationToken;
292
+ this.closed = false;
293
+ this.monitor = monitor;
294
+ this.latestRtt = monitor.latestRtt ?? void 0;
295
+ const heartbeatFrequencyMS = monitor.options.heartbeatFrequencyMS;
296
+ this.monitorId = (0, timers_1.setTimeout)(() => this.measureRoundTripTime(), heartbeatFrequencyMS);
297
+ }
298
+ get roundTripTime() {
299
+ return this.monitor.roundTripTime;
300
+ }
301
+ get minRoundTripTime() {
302
+ return this.monitor.minRoundTripTime;
303
+ }
304
+ close() {
305
+ this.closed = true;
306
+ (0, timers_1.clearTimeout)(this.monitorId);
307
+ this.connection?.destroy();
308
+ this.connection = void 0;
309
+ }
310
+ measureAndReschedule(start, conn) {
311
+ if (this.closed) {
312
+ conn?.destroy();
313
+ return;
314
+ }
315
+ if (this.connection == null) this.connection = conn;
316
+ this.latestRtt = (0, utils_1.calculateDurationInMs)(start);
317
+ this.monitorId = (0, timers_1.setTimeout)(() => this.measureRoundTripTime(), this.monitor.options.heartbeatFrequencyMS);
318
+ }
319
+ measureRoundTripTime() {
320
+ const start = (0, utils_1.now)();
321
+ if (this.closed) return;
322
+ const connection = this.connection;
323
+ if (connection == null) {
324
+ (0, connect_1.connect)(this.monitor.connectOptions).then((connection$1) => {
325
+ this.measureAndReschedule(start, connection$1);
326
+ }, () => {
327
+ this.connection = void 0;
328
+ });
329
+ return;
330
+ }
331
+ const commandName = connection.serverApi?.version || connection.helloOk ? "hello" : constants_1.LEGACY_HELLO_COMMAND;
332
+ connection.command((0, utils_1.ns)("admin.$cmd"), { [commandName]: 1 }, void 0).then(() => this.measureAndReschedule(start), () => {
333
+ this.connection?.destroy();
334
+ this.connection = void 0;
335
+ });
336
+ }
337
+ };
338
+ exports.RTTPinger = RTTPinger;
339
+ /**
340
+ * @internal
341
+ */
342
+ var MonitorInterval = class {
343
+ constructor(fn, options = {}) {
344
+ this.isExpeditedCallToFnScheduled = false;
345
+ this.stopped = false;
346
+ this.isExecutionInProgress = false;
347
+ this.hasExecutedOnce = false;
348
+ this._executeAndReschedule = () => {
349
+ if (this.stopped) return;
350
+ if (this.timerId) (0, timers_1.clearTimeout)(this.timerId);
351
+ this.isExpeditedCallToFnScheduled = false;
352
+ this.isExecutionInProgress = true;
353
+ this.fn(() => {
354
+ this.lastExecutionEnded = (0, utils_1.now)();
355
+ this.isExecutionInProgress = false;
356
+ this._reschedule(this.heartbeatFrequencyMS);
357
+ });
358
+ };
359
+ this.fn = fn;
360
+ this.lastExecutionEnded = -Infinity;
361
+ this.heartbeatFrequencyMS = options.heartbeatFrequencyMS ?? 1e3;
362
+ this.minHeartbeatFrequencyMS = options.minHeartbeatFrequencyMS ?? 500;
363
+ if (options.immediate) this._executeAndReschedule();
364
+ else this._reschedule(void 0);
365
+ }
366
+ wake() {
367
+ const timeSinceLastCall = (0, utils_1.now)() - this.lastExecutionEnded;
368
+ if (timeSinceLastCall < 0) return this._executeAndReschedule();
369
+ if (this.isExecutionInProgress) return;
370
+ if (this.isExpeditedCallToFnScheduled) return;
371
+ if (timeSinceLastCall < this.minHeartbeatFrequencyMS) {
372
+ this.isExpeditedCallToFnScheduled = true;
373
+ this._reschedule(this.minHeartbeatFrequencyMS - timeSinceLastCall);
374
+ return;
375
+ }
376
+ this._executeAndReschedule();
377
+ }
378
+ stop() {
379
+ this.stopped = true;
380
+ if (this.timerId) {
381
+ (0, timers_1.clearTimeout)(this.timerId);
382
+ this.timerId = void 0;
383
+ }
384
+ this.lastExecutionEnded = -Infinity;
385
+ this.isExpeditedCallToFnScheduled = false;
386
+ }
387
+ toString() {
388
+ return JSON.stringify(this);
389
+ }
390
+ toJSON() {
391
+ const currentTime = (0, utils_1.now)();
392
+ const timeSinceLastCall = currentTime - this.lastExecutionEnded;
393
+ return {
394
+ timerId: this.timerId != null ? "set" : "cleared",
395
+ lastCallTime: this.lastExecutionEnded,
396
+ isExpeditedCheckScheduled: this.isExpeditedCallToFnScheduled,
397
+ stopped: this.stopped,
398
+ heartbeatFrequencyMS: this.heartbeatFrequencyMS,
399
+ minHeartbeatFrequencyMS: this.minHeartbeatFrequencyMS,
400
+ currentTime,
401
+ timeSinceLastCall
402
+ };
403
+ }
404
+ _reschedule(ms) {
405
+ if (this.stopped) return;
406
+ if (this.timerId) (0, timers_1.clearTimeout)(this.timerId);
407
+ this.timerId = (0, timers_1.setTimeout)(this._executeAndReschedule, ms || this.heartbeatFrequencyMS);
408
+ }
409
+ };
410
+ exports.MonitorInterval = MonitorInterval;
411
+ /** @internal
412
+ * This class implements the RTT sampling logic specified for [CSOT](https://github.com/mongodb/specifications/blob/bbb335e60cd7ea1e0f7cd9a9443cb95fc9d3b64d/source/client-side-operations-timeout/client-side-operations-timeout.md#drivers-use-minimum-rtt-to-short-circuit-operations)
413
+ *
414
+ * This is implemented as a [circular buffer](https://en.wikipedia.org/wiki/Circular_buffer) keeping
415
+ * the most recent `windowSize` samples
416
+ * */
417
+ var RTTSampler = class {
418
+ constructor(windowSize = 10) {
419
+ this.rttSamples = new Float64Array(windowSize);
420
+ this.length = 0;
421
+ this.writeIndex = 0;
422
+ }
423
+ /**
424
+ * Adds an rtt sample to the end of the circular buffer
425
+ * When `windowSize` samples have been collected, `addSample` overwrites the least recently added
426
+ * sample
427
+ */
428
+ addSample(sample) {
429
+ this.rttSamples[this.writeIndex++] = sample;
430
+ if (this.length < this.rttSamples.length) this.length++;
431
+ this.writeIndex %= this.rttSamples.length;
432
+ }
433
+ /**
434
+ * When \< 2 samples have been collected, returns 0
435
+ * Otherwise computes the minimum value samples contained in the buffer
436
+ */
437
+ min() {
438
+ if (this.length < 2) return 0;
439
+ let min = this.rttSamples[0];
440
+ for (let i = 1; i < this.length; i++) if (this.rttSamples[i] < min) min = this.rttSamples[i];
441
+ return min;
442
+ }
443
+ /**
444
+ * Returns mean of samples contained in the buffer
445
+ */
446
+ average() {
447
+ if (this.length === 0) return 0;
448
+ let sum = 0;
449
+ for (let i = 0; i < this.length; i++) sum += this.rttSamples[i];
450
+ return sum / this.length;
451
+ }
452
+ /**
453
+ * Returns most recently inserted element in the buffer
454
+ * Returns null if the buffer is empty
455
+ * */
456
+ get last() {
457
+ if (this.length === 0) return null;
458
+ return this.rttSamples[this.writeIndex === 0 ? this.length - 1 : this.writeIndex - 1];
459
+ }
460
+ /**
461
+ * Clear the buffer
462
+ * NOTE: this does not overwrite the data held in the internal array, just the pointers into
463
+ * this array
464
+ */
465
+ clear() {
466
+ this.length = 0;
467
+ this.writeIndex = 0;
468
+ }
469
+ };
470
+ exports.RTTSampler = RTTSampler;
471
+ }));
472
+
473
+ //#endregion
474
+ export default require_monitor();
475
+
476
+ export { require_monitor };
477
+ //# sourceMappingURL=monitor.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor.mjs","names":["connection"],"sources":["../../../../../../../../../../node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/monitor.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RTTSampler = exports.MonitorInterval = exports.RTTPinger = exports.Monitor = exports.ServerMonitoringMode = void 0;\nconst timers_1 = require(\"timers\");\nconst bson_1 = require(\"../bson\");\nconst connect_1 = require(\"../cmap/connect\");\nconst client_metadata_1 = require(\"../cmap/handshake/client_metadata\");\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 utils_1 = require(\"../utils\");\nconst common_1 = require(\"./common\");\nconst events_1 = require(\"./events\");\nconst server_1 = require(\"./server\");\nconst STATE_IDLE = 'idle';\nconst STATE_MONITORING = 'monitoring';\nconst stateTransition = (0, utils_1.makeStateMachine)({\n [common_1.STATE_CLOSING]: [common_1.STATE_CLOSING, STATE_IDLE, common_1.STATE_CLOSED],\n [common_1.STATE_CLOSED]: [common_1.STATE_CLOSED, STATE_MONITORING],\n [STATE_IDLE]: [STATE_IDLE, STATE_MONITORING, common_1.STATE_CLOSING],\n [STATE_MONITORING]: [STATE_MONITORING, STATE_IDLE, common_1.STATE_CLOSING]\n});\nconst INVALID_REQUEST_CHECK_STATES = new Set([common_1.STATE_CLOSING, common_1.STATE_CLOSED, STATE_MONITORING]);\nfunction isInCloseState(monitor) {\n return monitor.s.state === common_1.STATE_CLOSED || monitor.s.state === common_1.STATE_CLOSING;\n}\n/** @public */\nexports.ServerMonitoringMode = Object.freeze({\n auto: 'auto',\n poll: 'poll',\n stream: 'stream'\n});\n/** @internal */\nclass Monitor extends mongo_types_1.TypedEventEmitter {\n constructor(server, options) {\n super();\n /** @internal */\n this.component = mongo_logger_1.MongoLoggableComponent.TOPOLOGY;\n this.on('error', utils_1.noop);\n this.server = server;\n this.connection = null;\n this.cancellationToken = new mongo_types_1.CancellationToken();\n this.cancellationToken.setMaxListeners(Infinity);\n this.monitorId = undefined;\n this.s = {\n state: common_1.STATE_CLOSED\n };\n this.address = server.description.address;\n this.options = Object.freeze({\n connectTimeoutMS: options.connectTimeoutMS ?? 10000,\n heartbeatFrequencyMS: options.heartbeatFrequencyMS ?? 10000,\n minHeartbeatFrequencyMS: options.minHeartbeatFrequencyMS ?? 500,\n serverMonitoringMode: options.serverMonitoringMode\n });\n this.isRunningInFaasEnv = (0, client_metadata_1.getFAASEnv)() != null;\n this.mongoLogger = this.server.topology.client?.mongoLogger;\n this.rttSampler = new RTTSampler(10);\n const cancellationToken = this.cancellationToken;\n // TODO: refactor this to pull it directly from the pool, requires new ConnectionPool integration\n const connectOptions = {\n id: '<monitor>',\n generation: server.pool.generation,\n cancellationToken,\n hostAddress: server.description.hostAddress,\n ...options,\n // force BSON serialization options\n raw: false,\n useBigInt64: false,\n promoteLongs: true,\n promoteValues: true,\n promoteBuffers: true\n };\n // ensure no authentication is used for monitoring\n delete connectOptions.credentials;\n if (connectOptions.autoEncrypter) {\n delete connectOptions.autoEncrypter;\n }\n this.connectOptions = Object.freeze(connectOptions);\n }\n connect() {\n if (this.s.state !== common_1.STATE_CLOSED) {\n return;\n }\n // start\n const heartbeatFrequencyMS = this.options.heartbeatFrequencyMS;\n const minHeartbeatFrequencyMS = this.options.minHeartbeatFrequencyMS;\n this.monitorId = new MonitorInterval(monitorServer(this), {\n heartbeatFrequencyMS: heartbeatFrequencyMS,\n minHeartbeatFrequencyMS: minHeartbeatFrequencyMS,\n immediate: true\n });\n }\n requestCheck() {\n if (INVALID_REQUEST_CHECK_STATES.has(this.s.state)) {\n return;\n }\n this.monitorId?.wake();\n }\n reset() {\n const topologyVersion = this.server.description.topologyVersion;\n if (isInCloseState(this) || topologyVersion == null) {\n return;\n }\n stateTransition(this, common_1.STATE_CLOSING);\n resetMonitorState(this);\n // restart monitor\n stateTransition(this, STATE_IDLE);\n // restart monitoring\n const heartbeatFrequencyMS = this.options.heartbeatFrequencyMS;\n const minHeartbeatFrequencyMS = this.options.minHeartbeatFrequencyMS;\n this.monitorId = new MonitorInterval(monitorServer(this), {\n heartbeatFrequencyMS: heartbeatFrequencyMS,\n minHeartbeatFrequencyMS: minHeartbeatFrequencyMS\n });\n }\n close() {\n if (isInCloseState(this)) {\n return;\n }\n stateTransition(this, common_1.STATE_CLOSING);\n resetMonitorState(this);\n // close monitor\n this.emit('close');\n stateTransition(this, common_1.STATE_CLOSED);\n }\n get roundTripTime() {\n return this.rttSampler.average();\n }\n get minRoundTripTime() {\n return this.rttSampler.min();\n }\n get latestRtt() {\n return this.rttSampler.last;\n }\n addRttSample(rtt) {\n this.rttSampler.addSample(rtt);\n }\n clearRttSamples() {\n this.rttSampler.clear();\n }\n}\nexports.Monitor = Monitor;\nfunction resetMonitorState(monitor) {\n monitor.monitorId?.stop();\n monitor.monitorId = undefined;\n monitor.rttPinger?.close();\n monitor.rttPinger = undefined;\n monitor.cancellationToken.emit('cancel');\n monitor.connection?.destroy();\n monitor.connection = null;\n monitor.clearRttSamples();\n}\nfunction useStreamingProtocol(monitor, topologyVersion) {\n // If we have no topology version we always poll no matter\n // what the user provided, since the server does not support\n // the streaming protocol.\n if (topologyVersion == null)\n return false;\n const serverMonitoringMode = monitor.options.serverMonitoringMode;\n if (serverMonitoringMode === exports.ServerMonitoringMode.poll)\n return false;\n if (serverMonitoringMode === exports.ServerMonitoringMode.stream)\n return true;\n // If we are in auto mode, we need to figure out if we're in a FaaS\n // environment or not and choose the appropriate mode.\n if (monitor.isRunningInFaasEnv)\n return false;\n return true;\n}\nfunction checkServer(monitor, callback) {\n let start;\n let awaited;\n const topologyVersion = monitor.server.description.topologyVersion;\n const isAwaitable = useStreamingProtocol(monitor, topologyVersion);\n monitor.emitAndLogHeartbeat(server_1.Server.SERVER_HEARTBEAT_STARTED, monitor.server.topology.s.id, undefined, new events_1.ServerHeartbeatStartedEvent(monitor.address, isAwaitable));\n function onHeartbeatFailed(err) {\n monitor.connection?.destroy();\n monitor.connection = null;\n monitor.emitAndLogHeartbeat(server_1.Server.SERVER_HEARTBEAT_FAILED, monitor.server.topology.s.id, undefined, new events_1.ServerHeartbeatFailedEvent(monitor.address, (0, utils_1.calculateDurationInMs)(start), err, awaited));\n const error = !(err instanceof error_1.MongoError)\n ? new error_1.MongoError(error_1.MongoError.buildErrorMessage(err), { cause: err })\n : err;\n error.addErrorLabel(error_1.MongoErrorLabel.ResetPool);\n if (error instanceof error_1.MongoNetworkTimeoutError) {\n error.addErrorLabel(error_1.MongoErrorLabel.InterruptInUseConnections);\n }\n monitor.emit('resetServer', error);\n callback(err);\n }\n function onHeartbeatSucceeded(hello) {\n if (!('isWritablePrimary' in hello)) {\n // Provide hello-style response document.\n hello.isWritablePrimary = hello[constants_1.LEGACY_HELLO_COMMAND];\n }\n // NOTE: here we use the latestRtt as this measurement corresponds with the value\n // obtained for this successful heartbeat, if there is no latestRtt, then we calculate the\n // duration\n const duration = isAwaitable && monitor.rttPinger\n ? (monitor.rttPinger.latestRtt ?? (0, utils_1.calculateDurationInMs)(start))\n : (0, utils_1.calculateDurationInMs)(start);\n monitor.addRttSample(duration);\n monitor.emitAndLogHeartbeat(server_1.Server.SERVER_HEARTBEAT_SUCCEEDED, monitor.server.topology.s.id, hello.connectionId, new events_1.ServerHeartbeatSucceededEvent(monitor.address, duration, hello, isAwaitable));\n if (isAwaitable) {\n // If we are using the streaming protocol then we immediately issue another 'started'\n // event, otherwise the \"check\" is complete and return to the main monitor loop\n monitor.emitAndLogHeartbeat(server_1.Server.SERVER_HEARTBEAT_STARTED, monitor.server.topology.s.id, undefined, new events_1.ServerHeartbeatStartedEvent(monitor.address, true));\n // We have not actually sent an outgoing handshake, but when we get the next response we\n // want the duration to reflect the time since we last heard from the server\n start = (0, utils_1.now)();\n }\n else {\n monitor.rttPinger?.close();\n monitor.rttPinger = undefined;\n callback(undefined, hello);\n }\n }\n const { connection } = monitor;\n if (connection && !connection.closed) {\n const { serverApi, helloOk } = connection;\n const connectTimeoutMS = monitor.options.connectTimeoutMS;\n const maxAwaitTimeMS = monitor.options.heartbeatFrequencyMS;\n const cmd = {\n [serverApi?.version || helloOk ? 'hello' : constants_1.LEGACY_HELLO_COMMAND]: 1,\n ...(isAwaitable && topologyVersion\n ? { maxAwaitTimeMS, topologyVersion: makeTopologyVersion(topologyVersion) }\n : {})\n };\n const options = isAwaitable\n ? {\n socketTimeoutMS: connectTimeoutMS ? connectTimeoutMS + maxAwaitTimeMS : 0,\n exhaustAllowed: true\n }\n : { socketTimeoutMS: connectTimeoutMS };\n if (isAwaitable && monitor.rttPinger == null) {\n monitor.rttPinger = new RTTPinger(monitor);\n }\n // Record new start time before sending handshake\n start = (0, utils_1.now)();\n if (isAwaitable) {\n awaited = true;\n return connection.exhaustCommand((0, utils_1.ns)('admin.$cmd'), cmd, options, (error, hello) => {\n if (error)\n return onHeartbeatFailed(error);\n return onHeartbeatSucceeded(hello);\n });\n }\n awaited = false;\n connection\n .command((0, utils_1.ns)('admin.$cmd'), cmd, options)\n .then(onHeartbeatSucceeded, onHeartbeatFailed);\n return;\n }\n // connecting does an implicit `hello`\n (async () => {\n const socket = await (0, connect_1.makeSocket)(monitor.connectOptions);\n const connection = (0, connect_1.makeConnection)(monitor.connectOptions, socket);\n // The start time is after socket creation but before the handshake\n start = (0, utils_1.now)();\n try {\n await (0, connect_1.performInitialHandshake)(connection, monitor.connectOptions);\n return connection;\n }\n catch (error) {\n connection.destroy();\n throw error;\n }\n })().then(connection => {\n if (isInCloseState(monitor)) {\n connection.destroy();\n return;\n }\n const duration = (0, utils_1.calculateDurationInMs)(start);\n monitor.addRttSample(duration);\n monitor.connection = connection;\n monitor.emitAndLogHeartbeat(server_1.Server.SERVER_HEARTBEAT_SUCCEEDED, monitor.server.topology.s.id, connection.hello?.connectionId, new events_1.ServerHeartbeatSucceededEvent(monitor.address, duration, connection.hello, useStreamingProtocol(monitor, connection.hello?.topologyVersion)));\n callback(undefined, connection.hello);\n }, error => {\n monitor.connection = null;\n awaited = false;\n onHeartbeatFailed(error);\n });\n}\nfunction monitorServer(monitor) {\n return (callback) => {\n if (monitor.s.state === STATE_MONITORING) {\n process.nextTick(callback);\n return;\n }\n stateTransition(monitor, STATE_MONITORING);\n function done() {\n if (!isInCloseState(monitor)) {\n stateTransition(monitor, STATE_IDLE);\n }\n callback();\n }\n checkServer(monitor, (err, hello) => {\n if (err) {\n // otherwise an error occurred on initial discovery, also bail\n if (monitor.server.description.type === common_1.ServerType.Unknown) {\n return done();\n }\n }\n // if the check indicates streaming is supported, immediately reschedule monitoring\n if (useStreamingProtocol(monitor, hello?.topologyVersion)) {\n (0, timers_1.setTimeout)(() => {\n if (!isInCloseState(monitor)) {\n monitor.monitorId?.wake();\n }\n }, 0);\n }\n done();\n });\n };\n}\nfunction makeTopologyVersion(tv) {\n return {\n processId: tv.processId,\n // tests mock counter as just number, but in a real situation counter should always be a Long\n // TODO(NODE-2674): Preserve int64 sent from MongoDB\n counter: bson_1.Long.isLong(tv.counter) ? tv.counter : bson_1.Long.fromNumber(tv.counter)\n };\n}\n/** @internal */\nclass RTTPinger {\n constructor(monitor) {\n this.connection = undefined;\n this.cancellationToken = monitor.cancellationToken;\n this.closed = false;\n this.monitor = monitor;\n this.latestRtt = monitor.latestRtt ?? undefined;\n const heartbeatFrequencyMS = monitor.options.heartbeatFrequencyMS;\n this.monitorId = (0, timers_1.setTimeout)(() => this.measureRoundTripTime(), heartbeatFrequencyMS);\n }\n get roundTripTime() {\n return this.monitor.roundTripTime;\n }\n get minRoundTripTime() {\n return this.monitor.minRoundTripTime;\n }\n close() {\n this.closed = true;\n (0, timers_1.clearTimeout)(this.monitorId);\n this.connection?.destroy();\n this.connection = undefined;\n }\n measureAndReschedule(start, conn) {\n if (this.closed) {\n conn?.destroy();\n return;\n }\n if (this.connection == null) {\n this.connection = conn;\n }\n this.latestRtt = (0, utils_1.calculateDurationInMs)(start);\n this.monitorId = (0, timers_1.setTimeout)(() => this.measureRoundTripTime(), this.monitor.options.heartbeatFrequencyMS);\n }\n measureRoundTripTime() {\n const start = (0, utils_1.now)();\n if (this.closed) {\n return;\n }\n const connection = this.connection;\n if (connection == null) {\n (0, connect_1.connect)(this.monitor.connectOptions).then(connection => {\n this.measureAndReschedule(start, connection);\n }, () => {\n this.connection = undefined;\n });\n return;\n }\n const commandName = connection.serverApi?.version || connection.helloOk ? 'hello' : constants_1.LEGACY_HELLO_COMMAND;\n connection.command((0, utils_1.ns)('admin.$cmd'), { [commandName]: 1 }, undefined).then(() => this.measureAndReschedule(start), () => {\n this.connection?.destroy();\n this.connection = undefined;\n return;\n });\n }\n}\nexports.RTTPinger = RTTPinger;\n/**\n * @internal\n */\nclass MonitorInterval {\n constructor(fn, options = {}) {\n this.isExpeditedCallToFnScheduled = false;\n this.stopped = false;\n this.isExecutionInProgress = false;\n this.hasExecutedOnce = false;\n this._executeAndReschedule = () => {\n if (this.stopped)\n return;\n if (this.timerId) {\n (0, timers_1.clearTimeout)(this.timerId);\n }\n this.isExpeditedCallToFnScheduled = false;\n this.isExecutionInProgress = true;\n this.fn(() => {\n this.lastExecutionEnded = (0, utils_1.now)();\n this.isExecutionInProgress = false;\n this._reschedule(this.heartbeatFrequencyMS);\n });\n };\n this.fn = fn;\n this.lastExecutionEnded = -Infinity;\n this.heartbeatFrequencyMS = options.heartbeatFrequencyMS ?? 1000;\n this.minHeartbeatFrequencyMS = options.minHeartbeatFrequencyMS ?? 500;\n if (options.immediate) {\n this._executeAndReschedule();\n }\n else {\n this._reschedule(undefined);\n }\n }\n wake() {\n const currentTime = (0, utils_1.now)();\n const timeSinceLastCall = currentTime - this.lastExecutionEnded;\n // TODO(NODE-4674): Add error handling and logging to the monitor\n if (timeSinceLastCall < 0) {\n return this._executeAndReschedule();\n }\n if (this.isExecutionInProgress) {\n return;\n }\n // debounce multiple calls to wake within the `minInterval`\n if (this.isExpeditedCallToFnScheduled) {\n return;\n }\n // reschedule a call as soon as possible, ensuring the call never happens\n // faster than the `minInterval`\n if (timeSinceLastCall < this.minHeartbeatFrequencyMS) {\n this.isExpeditedCallToFnScheduled = true;\n this._reschedule(this.minHeartbeatFrequencyMS - timeSinceLastCall);\n return;\n }\n this._executeAndReschedule();\n }\n stop() {\n this.stopped = true;\n if (this.timerId) {\n (0, timers_1.clearTimeout)(this.timerId);\n this.timerId = undefined;\n }\n this.lastExecutionEnded = -Infinity;\n this.isExpeditedCallToFnScheduled = false;\n }\n toString() {\n return JSON.stringify(this);\n }\n toJSON() {\n const currentTime = (0, utils_1.now)();\n const timeSinceLastCall = currentTime - this.lastExecutionEnded;\n return {\n timerId: this.timerId != null ? 'set' : 'cleared',\n lastCallTime: this.lastExecutionEnded,\n isExpeditedCheckScheduled: this.isExpeditedCallToFnScheduled,\n stopped: this.stopped,\n heartbeatFrequencyMS: this.heartbeatFrequencyMS,\n minHeartbeatFrequencyMS: this.minHeartbeatFrequencyMS,\n currentTime,\n timeSinceLastCall\n };\n }\n _reschedule(ms) {\n if (this.stopped)\n return;\n if (this.timerId) {\n (0, timers_1.clearTimeout)(this.timerId);\n }\n this.timerId = (0, timers_1.setTimeout)(this._executeAndReschedule, ms || this.heartbeatFrequencyMS);\n }\n}\nexports.MonitorInterval = MonitorInterval;\n/** @internal\n * This class implements the RTT sampling logic specified for [CSOT](https://github.com/mongodb/specifications/blob/bbb335e60cd7ea1e0f7cd9a9443cb95fc9d3b64d/source/client-side-operations-timeout/client-side-operations-timeout.md#drivers-use-minimum-rtt-to-short-circuit-operations)\n *\n * This is implemented as a [circular buffer](https://en.wikipedia.org/wiki/Circular_buffer) keeping\n * the most recent `windowSize` samples\n * */\nclass RTTSampler {\n constructor(windowSize = 10) {\n this.rttSamples = new Float64Array(windowSize);\n this.length = 0;\n this.writeIndex = 0;\n }\n /**\n * Adds an rtt sample to the end of the circular buffer\n * When `windowSize` samples have been collected, `addSample` overwrites the least recently added\n * sample\n */\n addSample(sample) {\n this.rttSamples[this.writeIndex++] = sample;\n if (this.length < this.rttSamples.length) {\n this.length++;\n }\n this.writeIndex %= this.rttSamples.length;\n }\n /**\n * When \\< 2 samples have been collected, returns 0\n * Otherwise computes the minimum value samples contained in the buffer\n */\n min() {\n if (this.length < 2)\n return 0;\n let min = this.rttSamples[0];\n for (let i = 1; i < this.length; i++) {\n if (this.rttSamples[i] < min)\n min = this.rttSamples[i];\n }\n return min;\n }\n /**\n * Returns mean of samples contained in the buffer\n */\n average() {\n if (this.length === 0)\n return 0;\n let sum = 0;\n for (let i = 0; i < this.length; i++) {\n sum += this.rttSamples[i];\n }\n return sum / this.length;\n }\n /**\n * Returns most recently inserted element in the buffer\n * Returns null if the buffer is empty\n * */\n get last() {\n if (this.length === 0)\n return null;\n return this.rttSamples[this.writeIndex === 0 ? this.length - 1 : this.writeIndex - 1];\n }\n /**\n * Clear the buffer\n * NOTE: this does not overwrite the data held in the internal array, just the pointers into\n * this array\n */\n clear() {\n this.length = 0;\n this.writeIndex = 0;\n }\n}\nexports.RTTSampler = RTTSampler;\n//# sourceMappingURL=monitor.js.map"],"x_google_ignoreList":[0],"mappings":"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"}