pecunia-root 0.0.9 → 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 (360) 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/db/migrations/index.mjs +0 -6
  7. package/dist/db/migrations/index.mjs.map +1 -1
  8. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/code-points-data.mjs +14 -0
  9. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/code-points-data.mjs.map +1 -0
  10. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/index.mjs +54 -0
  11. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/index.mjs.map +1 -0
  12. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/memory-code-points.mjs +36 -0
  13. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/memory-code-points.mjs.map +1 -0
  14. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/node.mjs +27 -0
  15. package/dist/node_modules/.pnpm/@mongodb-js_saslprep@1.4.4/node_modules/@mongodb-js/saslprep/dist/node.mjs.map +1 -0
  16. package/dist/node_modules/.pnpm/bson@6.10.4/node_modules/bson/lib/bson.mjs +3728 -0
  17. package/dist/node_modules/.pnpm/bson@6.10.4/node_modules/bson/lib/bson.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-builder.mjs +108 -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-builder.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/column.mjs +55 -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/column.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/entity.mjs +18 -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/entity.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/common.mjs +183 -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/common.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/columns/enum.mjs +35 -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/columns/enum.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/foreign-keys.mjs +68 -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/foreign-keys.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/unique-constraint.mjs +56 -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/unique-constraint.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/pg-core/utils/array.mjs +65 -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/pg-core/utils/array.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/conditions.mjs +69 -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/conditions.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/expressions/select.mjs +13 -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/expressions/select.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/functions/aggregate.mjs +10 -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/functions/aggregate.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/sql/sql.mjs +366 -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/sql/sql.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/subquery.mjs +22 -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/subquery.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.mjs +62 -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.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/table.utils.mjs +6 -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/table.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-utils.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-utils.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/tracing.mjs +8 -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/tracing.mjs.map +1 -0
  52. 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
  53. 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
  54. package/dist/node_modules/.pnpm/memory-pager@1.5.0/node_modules/memory-pager/index.mjs +137 -0
  55. package/dist/node_modules/.pnpm/memory-pager@1.5.0/node_modules/memory-pager/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/index.mjs +211 -0
  57. package/dist/node_modules/.pnpm/mongodb-connection-string-url@3.0.2/node_modules/mongodb-connection-string-url/lib/index.mjs.map +1 -0
  58. package/dist/node_modules/.pnpm/mongodb-connection-string-url@3.0.2/node_modules/mongodb-connection-string-url/lib/redact.mjs +95 -0
  59. package/dist/node_modules/.pnpm/mongodb-connection-string-url@3.0.2/node_modules/mongodb-connection-string-url/lib/redact.mjs.map +1 -0
  60. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/admin.mjs +158 -0
  61. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/admin.mjs.map +1 -0
  62. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bson.mjs +195 -0
  63. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bson.mjs.map +1 -0
  64. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bulk/common.mjs +710 -0
  65. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bulk/common.mjs.map +1 -0
  66. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bulk/ordered.mjs +53 -0
  67. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bulk/ordered.mjs.map +1 -0
  68. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bulk/unordered.mjs +63 -0
  69. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/bulk/unordered.mjs.map +1 -0
  70. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/change_stream.mjs +368 -0
  71. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/change_stream.mjs.map +1 -0
  72. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/auto_encrypter.mjs +234 -0
  73. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/auto_encrypter.mjs.map +1 -0
  74. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/client_encryption.mjs +545 -0
  75. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/client_encryption.mjs.map +1 -0
  76. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/crypto_callbacks.mjs +83 -0
  77. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/crypto_callbacks.mjs.map +1 -0
  78. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/errors.mjs +146 -0
  79. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/errors.mjs.map +1 -0
  80. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/mongocryptd_manager.mjs +58 -0
  81. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/mongocryptd_manager.mjs.map +1 -0
  82. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/aws.mjs +30 -0
  83. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/aws.mjs.map +1 -0
  84. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/azure.mjs +135 -0
  85. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/azure.mjs.map +1 -0
  86. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/gcp.mjs +25 -0
  87. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/gcp.mjs.map +1 -0
  88. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/index.mjs +47 -0
  89. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/providers/index.mjs.map +1 -0
  90. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/state_machine.mjs +362 -0
  91. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/client-side-encryption/state_machine.mjs.map +1 -0
  92. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/auth_provider.mjs +58 -0
  93. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/auth_provider.mjs.map +1 -0
  94. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/aws_temporary_credentials.mjs +123 -0
  95. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/aws_temporary_credentials.mjs.map +1 -0
  96. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/gssapi.mjs +128 -0
  97. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/gssapi.mjs.map +1 -0
  98. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongo_credentials.mjs +133 -0
  99. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongo_credentials.mjs.map +1 -0
  100. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_aws.mjs +126 -0
  101. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_aws.mjs.map +1 -0
  102. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.mjs +79 -0
  103. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.mjs.map +1 -0
  104. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.mjs +65 -0
  105. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.mjs.map +1 -0
  106. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/callback_workflow.mjs +127 -0
  107. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/callback_workflow.mjs.map +1 -0
  108. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/command_builders.mjs +47 -0
  109. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/command_builders.mjs.map +1 -0
  110. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.mjs +44 -0
  111. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.mjs.map +1 -0
  112. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/human_callback_workflow.mjs +101 -0
  113. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/human_callback_workflow.mjs.map +1 -0
  114. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.mjs +33 -0
  115. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.mjs.map +1 -0
  116. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_cache.mjs +53 -0
  117. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_cache.mjs.map +1 -0
  118. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.mjs +29 -0
  119. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.mjs.map +1 -0
  120. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc.mjs +83 -0
  121. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/mongodb_oidc.mjs.map +1 -0
  122. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/plain.mjs +36 -0
  123. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/plain.mjs.map +1 -0
  124. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/providers.mjs +32 -0
  125. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/providers.mjs.map +1 -0
  126. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/scram.mjs +206 -0
  127. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/scram.mjs.map +1 -0
  128. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/x509.mjs +45 -0
  129. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/auth/x509.mjs.map +1 -0
  130. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/command_monitoring_events.mjs +213 -0
  131. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/command_monitoring_events.mjs.map +1 -0
  132. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/commands.mjs +411 -0
  133. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/commands.mjs.map +1 -0
  134. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connect.mjs +288 -0
  135. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connect.mjs.map +1 -0
  136. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connection.mjs +423 -0
  137. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connection.mjs.map +1 -0
  138. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connection_pool.mjs +483 -0
  139. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connection_pool.mjs.map +1 -0
  140. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connection_pool_events.mjs +207 -0
  141. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/connection_pool_events.mjs.map +1 -0
  142. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/errors.mjs +116 -0
  143. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/errors.mjs.map +1 -0
  144. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/handshake/client_metadata.mjs +183 -0
  145. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/handshake/client_metadata.mjs.map +1 -0
  146. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/metrics.mjs +55 -0
  147. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/metrics.mjs.map +1 -0
  148. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/stream_description.mjs +60 -0
  149. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/stream_description.mjs.map +1 -0
  150. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/compression.mjs +139 -0
  151. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/compression.mjs.map +1 -0
  152. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/constants.mjs +28 -0
  153. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/constants.mjs.map +1 -0
  154. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/on_data.mjs +117 -0
  155. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/on_data.mjs.map +1 -0
  156. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/on_demand/document.mjs +182 -0
  157. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/on_demand/document.mjs.map +1 -0
  158. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/responses.mjs +304 -0
  159. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/responses.mjs.map +1 -0
  160. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/shared.mjs +34 -0
  161. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cmap/wire_protocol/shared.mjs.map +1 -0
  162. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/collection.mjs +739 -0
  163. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/collection.mjs.map +1 -0
  164. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/connection_string.mjs +805 -0
  165. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/connection_string.mjs.map +1 -0
  166. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/constants.mjs +174 -0
  167. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/constants.mjs.map +1 -0
  168. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/abstract_cursor.mjs +726 -0
  169. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/abstract_cursor.mjs.map +1 -0
  170. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/aggregation_cursor.mjs +172 -0
  171. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/aggregation_cursor.mjs.map +1 -0
  172. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/change_stream_cursor.mjs +103 -0
  173. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/change_stream_cursor.mjs.map +1 -0
  174. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/client_bulk_write_cursor.mjs +66 -0
  175. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/client_bulk_write_cursor.mjs.map +1 -0
  176. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/explainable_cursor.mjs +41 -0
  177. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/explainable_cursor.mjs.map +1 -0
  178. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/find_cursor.mjs +365 -0
  179. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/find_cursor.mjs.map +1 -0
  180. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/list_collections_cursor.mjs +50 -0
  181. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/list_collections_cursor.mjs.map +1 -0
  182. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/list_indexes_cursor.mjs +48 -0
  183. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/list_indexes_cursor.mjs.map +1 -0
  184. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/list_search_indexes_cursor.mjs +23 -0
  185. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/list_search_indexes_cursor.mjs.map +1 -0
  186. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/run_command_cursor.mjs +106 -0
  187. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/cursor/run_command_cursor.mjs.map +1 -0
  188. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/db.mjs +428 -0
  189. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/db.mjs.map +1 -0
  190. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/deps.mjs +124 -0
  191. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/deps.mjs.map +1 -0
  192. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/encrypter.mjs +95 -0
  193. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/encrypter.mjs.map +1 -0
  194. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/error.mjs +1305 -0
  195. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/error.mjs.map +1 -0
  196. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/explain.mjs +59 -0
  197. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/explain.mjs.map +1 -0
  198. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/gridfs/download.mjs +250 -0
  199. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/gridfs/download.mjs.map +1 -0
  200. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/gridfs/index.mjs +170 -0
  201. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/gridfs/index.mjs.map +1 -0
  202. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/gridfs/upload.mjs +315 -0
  203. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/gridfs/upload.mjs.map +1 -0
  204. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/index.mjs +925 -0
  205. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/index.mjs.map +1 -0
  206. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_client.mjs +520 -0
  207. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_client.mjs.map +1 -0
  208. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_client_auth_providers.mjs +90 -0
  209. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_client_auth_providers.mjs.map +1 -0
  210. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_logger.mjs +582 -0
  211. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_logger.mjs.map +1 -0
  212. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_types.mjs +64 -0
  213. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/mongo_types.mjs.map +1 -0
  214. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/aggregate.mjs +86 -0
  215. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/aggregate.mjs.map +1 -0
  216. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/client_bulk_write.mjs +60 -0
  217. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/client_bulk_write.mjs.map +1 -0
  218. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/command_builder.mjs +264 -0
  219. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/command_builder.mjs.map +1 -0
  220. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/executor.mjs +109 -0
  221. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/executor.mjs.map +1 -0
  222. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/results_merger.mjs +172 -0
  223. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/client_bulk_write/results_merger.mjs.map +1 -0
  224. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/command.mjs +68 -0
  225. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/command.mjs.map +1 -0
  226. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/count.mjs +53 -0
  227. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/count.mjs.map +1 -0
  228. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/create_collection.mjs +123 -0
  229. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/create_collection.mjs.map +1 -0
  230. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/delete.mjs +119 -0
  231. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/delete.mjs.map +1 -0
  232. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/distinct.mjs +65 -0
  233. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/distinct.mjs.map +1 -0
  234. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/drop.mjs +97 -0
  235. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/drop.mjs.map +1 -0
  236. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/estimated_document_count.mjs +47 -0
  237. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/estimated_document_count.mjs.map +1 -0
  238. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/execute_operation.mjs +188 -0
  239. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/execute_operation.mjs.map +1 -0
  240. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/find.mjs +103 -0
  241. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/find.mjs.map +1 -0
  242. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/find_and_modify.mjs +136 -0
  243. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/find_and_modify.mjs.map +1 -0
  244. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/get_more.mjs +61 -0
  245. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/get_more.mjs.map +1 -0
  246. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/indexes.mjs +179 -0
  247. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/indexes.mjs.map +1 -0
  248. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/insert.mjs +77 -0
  249. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/insert.mjs.map +1 -0
  250. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/kill_cursors.mjs +48 -0
  251. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/kill_cursors.mjs.map +1 -0
  252. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/list_collections.mjs +60 -0
  253. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/list_collections.mjs.map +1 -0
  254. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/list_databases.mjs +43 -0
  255. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/list_databases.mjs.map +1 -0
  256. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/operation.mjs +105 -0
  257. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/operation.mjs.map +1 -0
  258. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/profiling_level.mjs +50 -0
  259. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/profiling_level.mjs.map +1 -0
  260. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/remove_user.mjs +39 -0
  261. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/remove_user.mjs.map +1 -0
  262. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/rename.mjs +49 -0
  263. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/rename.mjs.map +1 -0
  264. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/run_command.mjs +58 -0
  265. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/run_command.mjs.map +1 -0
  266. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/search_indexes/create.mjs +46 -0
  267. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/search_indexes/create.mjs.map +1 -0
  268. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/search_indexes/drop.mjs +48 -0
  269. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/search_indexes/drop.mjs.map +1 -0
  270. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/search_indexes/update.mjs +46 -0
  271. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/search_indexes/update.mjs.map +1 -0
  272. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/set_profiling_level.mjs +67 -0
  273. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/set_profiling_level.mjs.map +1 -0
  274. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/stats.mjs +37 -0
  275. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/stats.mjs.map +1 -0
  276. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/update.mjs +171 -0
  277. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/update.mjs.map +1 -0
  278. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/validate_collection.mjs +45 -0
  279. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/operations/validate_collection.mjs.map +1 -0
  280. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/read_concern.mjs +71 -0
  281. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/read_concern.mjs.map +1 -0
  282. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/read_preference.mjs +165 -0
  283. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/read_preference.mjs.map +1 -0
  284. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/resource_management.mjs +62 -0
  285. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/resource_management.mjs.map +1 -0
  286. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/common.mjs +51 -0
  287. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/common.mjs.map +1 -0
  288. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/events.mjs +156 -0
  289. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/events.mjs.map +1 -0
  290. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/monitor.mjs +477 -0
  291. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/monitor.mjs.map +1 -0
  292. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server.mjs +315 -0
  293. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server.mjs.map +1 -0
  294. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server_description.mjs +157 -0
  295. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server_description.mjs.map +1 -0
  296. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server_selection.mjs +184 -0
  297. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server_selection.mjs.map +1 -0
  298. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server_selection_events.mjs +96 -0
  299. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/server_selection_events.mjs.map +1 -0
  300. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/srv_polling.mjs +107 -0
  301. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/srv_polling.mjs.map +1 -0
  302. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/topology.mjs +540 -0
  303. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/topology.mjs.map +1 -0
  304. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/topology_description.mjs +298 -0
  305. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sdam/topology_description.mjs.map +1 -0
  306. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sessions.mjs +623 -0
  307. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sessions.mjs.map +1 -0
  308. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sort.mjs +91 -0
  309. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/sort.mjs.map +1 -0
  310. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/timeout.mjs +254 -0
  311. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/timeout.mjs.map +1 -0
  312. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/transactions.mjs +138 -0
  313. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/transactions.mjs.map +1 -0
  314. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/utils.mjs +993 -0
  315. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/utils.mjs.map +1 -0
  316. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/write_concern.mjs +81 -0
  317. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/lib/write_concern.mjs.map +1 -0
  318. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/package.mjs +171 -0
  319. package/dist/node_modules/.pnpm/mongodb@6.21.0/node_modules/mongodb/package.mjs.map +1 -0
  320. package/dist/node_modules/.pnpm/punycode@2.3.1/node_modules/punycode/punycode.mjs +295 -0
  321. package/dist/node_modules/.pnpm/punycode@2.3.1/node_modules/punycode/punycode.mjs.map +1 -0
  322. package/dist/node_modules/.pnpm/sparse-bitfield@3.0.3/node_modules/sparse-bitfield/index.mjs +81 -0
  323. package/dist/node_modules/.pnpm/sparse-bitfield@3.0.3/node_modules/sparse-bitfield/index.mjs.map +1 -0
  324. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/index.mjs +206 -0
  325. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/index.mjs.map +1 -0
  326. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/mappingTable.mjs +33590 -0
  327. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/mappingTable.mjs.map +1 -0
  328. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/regexes.mjs +37 -0
  329. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/regexes.mjs.map +1 -0
  330. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/statusMapping.mjs +18 -0
  331. package/dist/node_modules/.pnpm/tr46@5.1.1/node_modules/tr46/lib/statusMapping.mjs.map +1 -0
  332. package/dist/node_modules/.pnpm/webidl-conversions@7.0.0/node_modules/webidl-conversions/lib/index.mjs +252 -0
  333. package/dist/node_modules/.pnpm/webidl-conversions@7.0.0/node_modules/webidl-conversions/lib/index.mjs.map +1 -0
  334. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/index.mjs +41 -0
  335. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/index.mjs.map +1 -0
  336. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/Function.mjs +41 -0
  337. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/Function.mjs.map +1 -0
  338. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URL-impl.mjs +173 -0
  339. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URL-impl.mjs.map +1 -0
  340. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URL.mjs +334 -0
  341. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URL.mjs.map +1 -0
  342. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URLSearchParams-impl.mjs +90 -0
  343. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URLSearchParams-impl.mjs.map +1 -0
  344. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URLSearchParams.mjs +356 -0
  345. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/URLSearchParams.mjs.map +1 -0
  346. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/encoding.mjs +23 -0
  347. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/encoding.mjs.map +1 -0
  348. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/infra.mjs +29 -0
  349. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/infra.mjs.map +1 -0
  350. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/percent-encoding.mjs +140 -0
  351. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/percent-encoding.mjs.map +1 -0
  352. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/url-state-machine.mjs +831 -0
  353. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/url-state-machine.mjs.map +1 -0
  354. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/urlencoded.mjs +77 -0
  355. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/urlencoded.mjs.map +1 -0
  356. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/utils.mjs +147 -0
  357. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/lib/utils.mjs.map +1 -0
  358. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/webidl2js-wrapper.mjs +17 -0
  359. package/dist/node_modules/.pnpm/whatwg-url@14.2.0/node_modules/whatwg-url/webidl2js-wrapper.mjs.map +1 -0
  360. package/package.json +2 -40
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bson.mjs","names":["i"],"sources":["../../../../../../../../../node_modules/.pnpm/bson@6.10.4/node_modules/bson/lib/bson.cjs"],"sourcesContent":["'use strict';\n\nconst TypedArrayPrototypeGetSymbolToStringTag = (() => {\n const g = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Uint8Array.prototype), Symbol.toStringTag).get;\n return (value) => g.call(value);\n})();\nfunction isUint8Array(value) {\n return TypedArrayPrototypeGetSymbolToStringTag(value) === 'Uint8Array';\n}\nfunction isAnyArrayBuffer(value) {\n return (typeof value === 'object' &&\n value != null &&\n Symbol.toStringTag in value &&\n (value[Symbol.toStringTag] === 'ArrayBuffer' ||\n value[Symbol.toStringTag] === 'SharedArrayBuffer'));\n}\nfunction isRegExp(regexp) {\n return regexp instanceof RegExp || Object.prototype.toString.call(regexp) === '[object RegExp]';\n}\nfunction isMap(value) {\n return (typeof value === 'object' &&\n value != null &&\n Symbol.toStringTag in value &&\n value[Symbol.toStringTag] === 'Map');\n}\nfunction isDate(date) {\n return date instanceof Date || Object.prototype.toString.call(date) === '[object Date]';\n}\nfunction defaultInspect(x, _options) {\n return JSON.stringify(x, (k, v) => {\n if (typeof v === 'bigint') {\n return { $numberLong: `${v}` };\n }\n else if (isMap(v)) {\n return Object.fromEntries(v);\n }\n return v;\n });\n}\nfunction getStylizeFunction(options) {\n const stylizeExists = options != null &&\n typeof options === 'object' &&\n 'stylize' in options &&\n typeof options.stylize === 'function';\n if (stylizeExists) {\n return options.stylize;\n }\n}\n\nconst BSON_MAJOR_VERSION = 6;\nconst BSON_VERSION_SYMBOL = Symbol.for('@@mdb.bson.version');\nconst BSON_INT32_MAX = 0x7fffffff;\nconst BSON_INT32_MIN = -2147483648;\nconst BSON_INT64_MAX = Math.pow(2, 63) - 1;\nconst BSON_INT64_MIN = -Math.pow(2, 63);\nconst JS_INT_MAX = Math.pow(2, 53);\nconst JS_INT_MIN = -Math.pow(2, 53);\nconst BSON_DATA_NUMBER = 1;\nconst BSON_DATA_STRING = 2;\nconst BSON_DATA_OBJECT = 3;\nconst BSON_DATA_ARRAY = 4;\nconst BSON_DATA_BINARY = 5;\nconst BSON_DATA_UNDEFINED = 6;\nconst BSON_DATA_OID = 7;\nconst BSON_DATA_BOOLEAN = 8;\nconst BSON_DATA_DATE = 9;\nconst BSON_DATA_NULL = 10;\nconst BSON_DATA_REGEXP = 11;\nconst BSON_DATA_DBPOINTER = 12;\nconst BSON_DATA_CODE = 13;\nconst BSON_DATA_SYMBOL = 14;\nconst BSON_DATA_CODE_W_SCOPE = 15;\nconst BSON_DATA_INT = 16;\nconst BSON_DATA_TIMESTAMP = 17;\nconst BSON_DATA_LONG = 18;\nconst BSON_DATA_DECIMAL128 = 19;\nconst BSON_DATA_MIN_KEY = 0xff;\nconst BSON_DATA_MAX_KEY = 0x7f;\nconst BSON_BINARY_SUBTYPE_DEFAULT = 0;\nconst BSON_BINARY_SUBTYPE_UUID_NEW = 4;\nconst BSONType = Object.freeze({\n double: 1,\n string: 2,\n object: 3,\n array: 4,\n binData: 5,\n undefined: 6,\n objectId: 7,\n bool: 8,\n date: 9,\n null: 10,\n regex: 11,\n dbPointer: 12,\n javascript: 13,\n symbol: 14,\n javascriptWithScope: 15,\n int: 16,\n timestamp: 17,\n long: 18,\n decimal: 19,\n minKey: -1,\n maxKey: 127\n});\n\nclass BSONError extends Error {\n get bsonError() {\n return true;\n }\n get name() {\n return 'BSONError';\n }\n constructor(message, options) {\n super(message, options);\n }\n static isBSONError(value) {\n return (value != null &&\n typeof value === 'object' &&\n 'bsonError' in value &&\n value.bsonError === true &&\n 'name' in value &&\n 'message' in value &&\n 'stack' in value);\n }\n}\nclass BSONVersionError extends BSONError {\n get name() {\n return 'BSONVersionError';\n }\n constructor() {\n super(`Unsupported BSON version, bson types must be from bson ${BSON_MAJOR_VERSION}.x.x`);\n }\n}\nclass BSONRuntimeError extends BSONError {\n get name() {\n return 'BSONRuntimeError';\n }\n constructor(message) {\n super(message);\n }\n}\nclass BSONOffsetError extends BSONError {\n get name() {\n return 'BSONOffsetError';\n }\n constructor(message, offset, options) {\n super(`${message}. offset: ${offset}`, options);\n this.offset = offset;\n }\n}\n\nlet TextDecoderFatal;\nlet TextDecoderNonFatal;\nfunction parseUtf8(buffer, start, end, fatal) {\n if (fatal) {\n TextDecoderFatal ??= new TextDecoder('utf8', { fatal: true });\n try {\n return TextDecoderFatal.decode(buffer.subarray(start, end));\n }\n catch (cause) {\n throw new BSONError('Invalid UTF-8 string in BSON document', { cause });\n }\n }\n TextDecoderNonFatal ??= new TextDecoder('utf8', { fatal: false });\n return TextDecoderNonFatal.decode(buffer.subarray(start, end));\n}\n\nfunction tryReadBasicLatin(uint8array, start, end) {\n if (uint8array.length === 0) {\n return '';\n }\n const stringByteLength = end - start;\n if (stringByteLength === 0) {\n return '';\n }\n if (stringByteLength > 20) {\n return null;\n }\n if (stringByteLength === 1 && uint8array[start] < 128) {\n return String.fromCharCode(uint8array[start]);\n }\n if (stringByteLength === 2 && uint8array[start] < 128 && uint8array[start + 1] < 128) {\n return String.fromCharCode(uint8array[start]) + String.fromCharCode(uint8array[start + 1]);\n }\n if (stringByteLength === 3 &&\n uint8array[start] < 128 &&\n uint8array[start + 1] < 128 &&\n uint8array[start + 2] < 128) {\n return (String.fromCharCode(uint8array[start]) +\n String.fromCharCode(uint8array[start + 1]) +\n String.fromCharCode(uint8array[start + 2]));\n }\n const latinBytes = [];\n for (let i = start; i < end; i++) {\n const byte = uint8array[i];\n if (byte > 127) {\n return null;\n }\n latinBytes.push(byte);\n }\n return String.fromCharCode(...latinBytes);\n}\nfunction tryWriteBasicLatin(destination, source, offset) {\n if (source.length === 0)\n return 0;\n if (source.length > 25)\n return null;\n if (destination.length - offset < source.length)\n return null;\n for (let charOffset = 0, destinationOffset = offset; charOffset < source.length; charOffset++, destinationOffset++) {\n const char = source.charCodeAt(charOffset);\n if (char > 127)\n return null;\n destination[destinationOffset] = char;\n }\n return source.length;\n}\n\nfunction nodejsMathRandomBytes(byteLength) {\n return nodeJsByteUtils.fromNumberArray(Array.from({ length: byteLength }, () => Math.floor(Math.random() * 256)));\n}\nconst nodejsRandomBytes = (() => {\n try {\n return require('crypto').randomBytes;\n }\n catch {\n return nodejsMathRandomBytes;\n }\n})();\nconst nodeJsByteUtils = {\n toLocalBufferType(potentialBuffer) {\n if (Buffer.isBuffer(potentialBuffer)) {\n return potentialBuffer;\n }\n if (ArrayBuffer.isView(potentialBuffer)) {\n return Buffer.from(potentialBuffer.buffer, potentialBuffer.byteOffset, potentialBuffer.byteLength);\n }\n const stringTag = potentialBuffer?.[Symbol.toStringTag] ?? Object.prototype.toString.call(potentialBuffer);\n if (stringTag === 'ArrayBuffer' ||\n stringTag === 'SharedArrayBuffer' ||\n stringTag === '[object ArrayBuffer]' ||\n stringTag === '[object SharedArrayBuffer]') {\n return Buffer.from(potentialBuffer);\n }\n throw new BSONError(`Cannot create Buffer from the passed potentialBuffer.`);\n },\n allocate(size) {\n return Buffer.alloc(size);\n },\n allocateUnsafe(size) {\n return Buffer.allocUnsafe(size);\n },\n equals(a, b) {\n return nodeJsByteUtils.toLocalBufferType(a).equals(b);\n },\n fromNumberArray(array) {\n return Buffer.from(array);\n },\n fromBase64(base64) {\n return Buffer.from(base64, 'base64');\n },\n toBase64(buffer) {\n return nodeJsByteUtils.toLocalBufferType(buffer).toString('base64');\n },\n fromISO88591(codePoints) {\n return Buffer.from(codePoints, 'binary');\n },\n toISO88591(buffer) {\n return nodeJsByteUtils.toLocalBufferType(buffer).toString('binary');\n },\n fromHex(hex) {\n return Buffer.from(hex, 'hex');\n },\n toHex(buffer) {\n return nodeJsByteUtils.toLocalBufferType(buffer).toString('hex');\n },\n toUTF8(buffer, start, end, fatal) {\n const basicLatin = end - start <= 20 ? tryReadBasicLatin(buffer, start, end) : null;\n if (basicLatin != null) {\n return basicLatin;\n }\n const string = nodeJsByteUtils.toLocalBufferType(buffer).toString('utf8', start, end);\n if (fatal) {\n for (let i = 0; i < string.length; i++) {\n if (string.charCodeAt(i) === 0xfffd) {\n parseUtf8(buffer, start, end, true);\n break;\n }\n }\n }\n return string;\n },\n utf8ByteLength(input) {\n return Buffer.byteLength(input, 'utf8');\n },\n encodeUTF8Into(buffer, source, byteOffset) {\n const latinBytesWritten = tryWriteBasicLatin(buffer, source, byteOffset);\n if (latinBytesWritten != null) {\n return latinBytesWritten;\n }\n return nodeJsByteUtils.toLocalBufferType(buffer).write(source, byteOffset, undefined, 'utf8');\n },\n randomBytes: nodejsRandomBytes,\n swap32(buffer) {\n return nodeJsByteUtils.toLocalBufferType(buffer).swap32();\n }\n};\n\nfunction isReactNative() {\n const { navigator } = globalThis;\n return typeof navigator === 'object' && navigator.product === 'ReactNative';\n}\nfunction webMathRandomBytes(byteLength) {\n if (byteLength < 0) {\n throw new RangeError(`The argument 'byteLength' is invalid. Received ${byteLength}`);\n }\n return webByteUtils.fromNumberArray(Array.from({ length: byteLength }, () => Math.floor(Math.random() * 256)));\n}\nconst webRandomBytes = (() => {\n const { crypto } = globalThis;\n if (crypto != null && typeof crypto.getRandomValues === 'function') {\n return (byteLength) => {\n return crypto.getRandomValues(webByteUtils.allocate(byteLength));\n };\n }\n else {\n if (isReactNative()) {\n const { console } = globalThis;\n console?.warn?.('BSON: For React Native please polyfill crypto.getRandomValues, e.g. using: https://www.npmjs.com/package/react-native-get-random-values.');\n }\n return webMathRandomBytes;\n }\n})();\nconst HEX_DIGIT = /(\\d|[a-f])/i;\nconst webByteUtils = {\n toLocalBufferType(potentialUint8array) {\n const stringTag = potentialUint8array?.[Symbol.toStringTag] ??\n Object.prototype.toString.call(potentialUint8array);\n if (stringTag === 'Uint8Array') {\n return potentialUint8array;\n }\n if (ArrayBuffer.isView(potentialUint8array)) {\n return new Uint8Array(potentialUint8array.buffer.slice(potentialUint8array.byteOffset, potentialUint8array.byteOffset + potentialUint8array.byteLength));\n }\n if (stringTag === 'ArrayBuffer' ||\n stringTag === 'SharedArrayBuffer' ||\n stringTag === '[object ArrayBuffer]' ||\n stringTag === '[object SharedArrayBuffer]') {\n return new Uint8Array(potentialUint8array);\n }\n throw new BSONError(`Cannot make a Uint8Array from passed potentialBuffer.`);\n },\n allocate(size) {\n if (typeof size !== 'number') {\n throw new TypeError(`The \"size\" argument must be of type number. Received ${String(size)}`);\n }\n return new Uint8Array(size);\n },\n allocateUnsafe(size) {\n return webByteUtils.allocate(size);\n },\n equals(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n for (let i = 0; i < a.byteLength; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n },\n fromNumberArray(array) {\n return Uint8Array.from(array);\n },\n fromBase64(base64) {\n return Uint8Array.from(atob(base64), c => c.charCodeAt(0));\n },\n toBase64(uint8array) {\n return btoa(webByteUtils.toISO88591(uint8array));\n },\n fromISO88591(codePoints) {\n return Uint8Array.from(codePoints, c => c.charCodeAt(0) & 0xff);\n },\n toISO88591(uint8array) {\n return Array.from(Uint16Array.from(uint8array), b => String.fromCharCode(b)).join('');\n },\n fromHex(hex) {\n const evenLengthHex = hex.length % 2 === 0 ? hex : hex.slice(0, hex.length - 1);\n const buffer = [];\n for (let i = 0; i < evenLengthHex.length; i += 2) {\n const firstDigit = evenLengthHex[i];\n const secondDigit = evenLengthHex[i + 1];\n if (!HEX_DIGIT.test(firstDigit)) {\n break;\n }\n if (!HEX_DIGIT.test(secondDigit)) {\n break;\n }\n const hexDigit = Number.parseInt(`${firstDigit}${secondDigit}`, 16);\n buffer.push(hexDigit);\n }\n return Uint8Array.from(buffer);\n },\n toHex(uint8array) {\n return Array.from(uint8array, byte => byte.toString(16).padStart(2, '0')).join('');\n },\n toUTF8(uint8array, start, end, fatal) {\n const basicLatin = end - start <= 20 ? tryReadBasicLatin(uint8array, start, end) : null;\n if (basicLatin != null) {\n return basicLatin;\n }\n return parseUtf8(uint8array, start, end, fatal);\n },\n utf8ByteLength(input) {\n return new TextEncoder().encode(input).byteLength;\n },\n encodeUTF8Into(uint8array, source, byteOffset) {\n const bytes = new TextEncoder().encode(source);\n uint8array.set(bytes, byteOffset);\n return bytes.byteLength;\n },\n randomBytes: webRandomBytes,\n swap32(buffer) {\n if (buffer.length % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\n for (let i = 0; i < buffer.length; i += 4) {\n const byte0 = buffer[i];\n const byte1 = buffer[i + 1];\n const byte2 = buffer[i + 2];\n const byte3 = buffer[i + 3];\n buffer[i] = byte3;\n buffer[i + 1] = byte2;\n buffer[i + 2] = byte1;\n buffer[i + 3] = byte0;\n }\n return buffer;\n }\n};\n\nconst hasGlobalBuffer = typeof Buffer === 'function' && Buffer.prototype?._isBuffer !== true;\nconst ByteUtils = hasGlobalBuffer ? nodeJsByteUtils : webByteUtils;\n\nclass BSONValue {\n get [BSON_VERSION_SYMBOL]() {\n return BSON_MAJOR_VERSION;\n }\n [Symbol.for('nodejs.util.inspect.custom')](depth, options, inspect) {\n return this.inspect(depth, options, inspect);\n }\n}\n\nconst FLOAT = new Float64Array(1);\nconst FLOAT_BYTES = new Uint8Array(FLOAT.buffer, 0, 8);\nFLOAT[0] = -1;\nconst isBigEndian = FLOAT_BYTES[7] === 0;\nconst NumberUtils = {\n isBigEndian,\n getNonnegativeInt32LE(source, offset) {\n if (source[offset + 3] > 127) {\n throw new RangeError(`Size cannot be negative at offset: ${offset}`);\n }\n return (source[offset] |\n (source[offset + 1] << 8) |\n (source[offset + 2] << 16) |\n (source[offset + 3] << 24));\n },\n getInt32LE(source, offset) {\n return (source[offset] |\n (source[offset + 1] << 8) |\n (source[offset + 2] << 16) |\n (source[offset + 3] << 24));\n },\n getUint32LE(source, offset) {\n return (source[offset] +\n source[offset + 1] * 256 +\n source[offset + 2] * 65536 +\n source[offset + 3] * 16777216);\n },\n getUint32BE(source, offset) {\n return (source[offset + 3] +\n source[offset + 2] * 256 +\n source[offset + 1] * 65536 +\n source[offset] * 16777216);\n },\n getBigInt64LE(source, offset) {\n const hi = BigInt(source[offset + 4] +\n source[offset + 5] * 256 +\n source[offset + 6] * 65536 +\n (source[offset + 7] << 24));\n const lo = BigInt(source[offset] +\n source[offset + 1] * 256 +\n source[offset + 2] * 65536 +\n source[offset + 3] * 16777216);\n return (hi << BigInt(32)) + lo;\n },\n getFloat64LE: isBigEndian\n ? (source, offset) => {\n FLOAT_BYTES[7] = source[offset];\n FLOAT_BYTES[6] = source[offset + 1];\n FLOAT_BYTES[5] = source[offset + 2];\n FLOAT_BYTES[4] = source[offset + 3];\n FLOAT_BYTES[3] = source[offset + 4];\n FLOAT_BYTES[2] = source[offset + 5];\n FLOAT_BYTES[1] = source[offset + 6];\n FLOAT_BYTES[0] = source[offset + 7];\n return FLOAT[0];\n }\n : (source, offset) => {\n FLOAT_BYTES[0] = source[offset];\n FLOAT_BYTES[1] = source[offset + 1];\n FLOAT_BYTES[2] = source[offset + 2];\n FLOAT_BYTES[3] = source[offset + 3];\n FLOAT_BYTES[4] = source[offset + 4];\n FLOAT_BYTES[5] = source[offset + 5];\n FLOAT_BYTES[6] = source[offset + 6];\n FLOAT_BYTES[7] = source[offset + 7];\n return FLOAT[0];\n },\n setInt32BE(destination, offset, value) {\n destination[offset + 3] = value;\n value >>>= 8;\n destination[offset + 2] = value;\n value >>>= 8;\n destination[offset + 1] = value;\n value >>>= 8;\n destination[offset] = value;\n return 4;\n },\n setInt32LE(destination, offset, value) {\n destination[offset] = value;\n value >>>= 8;\n destination[offset + 1] = value;\n value >>>= 8;\n destination[offset + 2] = value;\n value >>>= 8;\n destination[offset + 3] = value;\n return 4;\n },\n setBigInt64LE(destination, offset, value) {\n const mask32bits = BigInt(0xffff_ffff);\n let lo = Number(value & mask32bits);\n destination[offset] = lo;\n lo >>= 8;\n destination[offset + 1] = lo;\n lo >>= 8;\n destination[offset + 2] = lo;\n lo >>= 8;\n destination[offset + 3] = lo;\n let hi = Number((value >> BigInt(32)) & mask32bits);\n destination[offset + 4] = hi;\n hi >>= 8;\n destination[offset + 5] = hi;\n hi >>= 8;\n destination[offset + 6] = hi;\n hi >>= 8;\n destination[offset + 7] = hi;\n return 8;\n },\n setFloat64LE: isBigEndian\n ? (destination, offset, value) => {\n FLOAT[0] = value;\n destination[offset] = FLOAT_BYTES[7];\n destination[offset + 1] = FLOAT_BYTES[6];\n destination[offset + 2] = FLOAT_BYTES[5];\n destination[offset + 3] = FLOAT_BYTES[4];\n destination[offset + 4] = FLOAT_BYTES[3];\n destination[offset + 5] = FLOAT_BYTES[2];\n destination[offset + 6] = FLOAT_BYTES[1];\n destination[offset + 7] = FLOAT_BYTES[0];\n return 8;\n }\n : (destination, offset, value) => {\n FLOAT[0] = value;\n destination[offset] = FLOAT_BYTES[0];\n destination[offset + 1] = FLOAT_BYTES[1];\n destination[offset + 2] = FLOAT_BYTES[2];\n destination[offset + 3] = FLOAT_BYTES[3];\n destination[offset + 4] = FLOAT_BYTES[4];\n destination[offset + 5] = FLOAT_BYTES[5];\n destination[offset + 6] = FLOAT_BYTES[6];\n destination[offset + 7] = FLOAT_BYTES[7];\n return 8;\n }\n};\n\nclass Binary extends BSONValue {\n get _bsontype() {\n return 'Binary';\n }\n constructor(buffer, subType) {\n super();\n if (!(buffer == null) &&\n typeof buffer === 'string' &&\n !ArrayBuffer.isView(buffer) &&\n !isAnyArrayBuffer(buffer) &&\n !Array.isArray(buffer)) {\n throw new BSONError('Binary can only be constructed from Uint8Array or number[]');\n }\n this.sub_type = subType ?? Binary.BSON_BINARY_SUBTYPE_DEFAULT;\n if (buffer == null) {\n this.buffer = ByteUtils.allocate(Binary.BUFFER_SIZE);\n this.position = 0;\n }\n else {\n this.buffer = Array.isArray(buffer)\n ? ByteUtils.fromNumberArray(buffer)\n : ByteUtils.toLocalBufferType(buffer);\n this.position = this.buffer.byteLength;\n }\n }\n put(byteValue) {\n if (typeof byteValue === 'string' && byteValue.length !== 1) {\n throw new BSONError('only accepts single character String');\n }\n else if (typeof byteValue !== 'number' && byteValue.length !== 1)\n throw new BSONError('only accepts single character Uint8Array or Array');\n let decodedByte;\n if (typeof byteValue === 'string') {\n decodedByte = byteValue.charCodeAt(0);\n }\n else if (typeof byteValue === 'number') {\n decodedByte = byteValue;\n }\n else {\n decodedByte = byteValue[0];\n }\n if (decodedByte < 0 || decodedByte > 255) {\n throw new BSONError('only accepts number in a valid unsigned byte range 0-255');\n }\n if (this.buffer.byteLength > this.position) {\n this.buffer[this.position++] = decodedByte;\n }\n else {\n const newSpace = ByteUtils.allocate(Binary.BUFFER_SIZE + this.buffer.length);\n newSpace.set(this.buffer, 0);\n this.buffer = newSpace;\n this.buffer[this.position++] = decodedByte;\n }\n }\n write(sequence, offset) {\n offset = typeof offset === 'number' ? offset : this.position;\n if (this.buffer.byteLength < offset + sequence.length) {\n const newSpace = ByteUtils.allocate(this.buffer.byteLength + sequence.length);\n newSpace.set(this.buffer, 0);\n this.buffer = newSpace;\n }\n if (ArrayBuffer.isView(sequence)) {\n this.buffer.set(ByteUtils.toLocalBufferType(sequence), offset);\n this.position =\n offset + sequence.byteLength > this.position ? offset + sequence.length : this.position;\n }\n else if (typeof sequence === 'string') {\n throw new BSONError('input cannot be string');\n }\n }\n read(position, length) {\n length = length && length > 0 ? length : this.position;\n const end = position + length;\n return this.buffer.subarray(position, end > this.position ? this.position : end);\n }\n value() {\n return this.buffer.length === this.position\n ? this.buffer\n : this.buffer.subarray(0, this.position);\n }\n length() {\n return this.position;\n }\n toJSON() {\n return ByteUtils.toBase64(this.buffer.subarray(0, this.position));\n }\n toString(encoding) {\n if (encoding === 'hex')\n return ByteUtils.toHex(this.buffer.subarray(0, this.position));\n if (encoding === 'base64')\n return ByteUtils.toBase64(this.buffer.subarray(0, this.position));\n if (encoding === 'utf8' || encoding === 'utf-8')\n return ByteUtils.toUTF8(this.buffer, 0, this.position, false);\n return ByteUtils.toUTF8(this.buffer, 0, this.position, false);\n }\n toExtendedJSON(options) {\n options = options || {};\n if (this.sub_type === Binary.SUBTYPE_VECTOR) {\n validateBinaryVector(this);\n }\n const base64String = ByteUtils.toBase64(this.buffer);\n const subType = Number(this.sub_type).toString(16);\n if (options.legacy) {\n return {\n $binary: base64String,\n $type: subType.length === 1 ? '0' + subType : subType\n };\n }\n return {\n $binary: {\n base64: base64String,\n subType: subType.length === 1 ? '0' + subType : subType\n }\n };\n }\n toUUID() {\n if (this.sub_type === Binary.SUBTYPE_UUID) {\n return new UUID(this.buffer.subarray(0, this.position));\n }\n throw new BSONError(`Binary sub_type \"${this.sub_type}\" is not supported for converting to UUID. Only \"${Binary.SUBTYPE_UUID}\" is currently supported.`);\n }\n static createFromHexString(hex, subType) {\n return new Binary(ByteUtils.fromHex(hex), subType);\n }\n static createFromBase64(base64, subType) {\n return new Binary(ByteUtils.fromBase64(base64), subType);\n }\n static fromExtendedJSON(doc, options) {\n options = options || {};\n let data;\n let type;\n if ('$binary' in doc) {\n if (options.legacy && typeof doc.$binary === 'string' && '$type' in doc) {\n type = doc.$type ? parseInt(doc.$type, 16) : 0;\n data = ByteUtils.fromBase64(doc.$binary);\n }\n else {\n if (typeof doc.$binary !== 'string') {\n type = doc.$binary.subType ? parseInt(doc.$binary.subType, 16) : 0;\n data = ByteUtils.fromBase64(doc.$binary.base64);\n }\n }\n }\n else if ('$uuid' in doc) {\n type = 4;\n data = UUID.bytesFromString(doc.$uuid);\n }\n if (!data) {\n throw new BSONError(`Unexpected Binary Extended JSON format ${JSON.stringify(doc)}`);\n }\n return type === BSON_BINARY_SUBTYPE_UUID_NEW ? new UUID(data) : new Binary(data, type);\n }\n inspect(depth, options, inspect) {\n inspect ??= defaultInspect;\n const base64 = ByteUtils.toBase64(this.buffer.subarray(0, this.position));\n const base64Arg = inspect(base64, options);\n const subTypeArg = inspect(this.sub_type, options);\n return `Binary.createFromBase64(${base64Arg}, ${subTypeArg})`;\n }\n toInt8Array() {\n if (this.sub_type !== Binary.SUBTYPE_VECTOR) {\n throw new BSONError('Binary sub_type is not Vector');\n }\n if (this.buffer[0] !== Binary.VECTOR_TYPE.Int8) {\n throw new BSONError('Binary datatype field is not Int8');\n }\n validateBinaryVector(this);\n return new Int8Array(this.buffer.buffer.slice(this.buffer.byteOffset + 2, this.buffer.byteOffset + this.position));\n }\n toFloat32Array() {\n if (this.sub_type !== Binary.SUBTYPE_VECTOR) {\n throw new BSONError('Binary sub_type is not Vector');\n }\n if (this.buffer[0] !== Binary.VECTOR_TYPE.Float32) {\n throw new BSONError('Binary datatype field is not Float32');\n }\n validateBinaryVector(this);\n const floatBytes = new Uint8Array(this.buffer.buffer.slice(this.buffer.byteOffset + 2, this.buffer.byteOffset + this.position));\n if (NumberUtils.isBigEndian)\n ByteUtils.swap32(floatBytes);\n return new Float32Array(floatBytes.buffer);\n }\n toPackedBits() {\n if (this.sub_type !== Binary.SUBTYPE_VECTOR) {\n throw new BSONError('Binary sub_type is not Vector');\n }\n if (this.buffer[0] !== Binary.VECTOR_TYPE.PackedBit) {\n throw new BSONError('Binary datatype field is not packed bit');\n }\n validateBinaryVector(this);\n return new Uint8Array(this.buffer.buffer.slice(this.buffer.byteOffset + 2, this.buffer.byteOffset + this.position));\n }\n toBits() {\n if (this.sub_type !== Binary.SUBTYPE_VECTOR) {\n throw new BSONError('Binary sub_type is not Vector');\n }\n if (this.buffer[0] !== Binary.VECTOR_TYPE.PackedBit) {\n throw new BSONError('Binary datatype field is not packed bit');\n }\n validateBinaryVector(this);\n const byteCount = this.length() - 2;\n const bitCount = byteCount * 8 - this.buffer[1];\n const bits = new Int8Array(bitCount);\n for (let bitOffset = 0; bitOffset < bits.length; bitOffset++) {\n const byteOffset = (bitOffset / 8) | 0;\n const byte = this.buffer[byteOffset + 2];\n const shift = 7 - (bitOffset % 8);\n const bit = (byte >> shift) & 1;\n bits[bitOffset] = bit;\n }\n return bits;\n }\n static fromInt8Array(array) {\n const buffer = ByteUtils.allocate(array.byteLength + 2);\n buffer[0] = Binary.VECTOR_TYPE.Int8;\n buffer[1] = 0;\n const intBytes = new Uint8Array(array.buffer, array.byteOffset, array.byteLength);\n buffer.set(intBytes, 2);\n const bin = new this(buffer, this.SUBTYPE_VECTOR);\n validateBinaryVector(bin);\n return bin;\n }\n static fromFloat32Array(array) {\n const binaryBytes = ByteUtils.allocate(array.byteLength + 2);\n binaryBytes[0] = Binary.VECTOR_TYPE.Float32;\n binaryBytes[1] = 0;\n const floatBytes = new Uint8Array(array.buffer, array.byteOffset, array.byteLength);\n binaryBytes.set(floatBytes, 2);\n if (NumberUtils.isBigEndian)\n ByteUtils.swap32(new Uint8Array(binaryBytes.buffer, 2));\n const bin = new this(binaryBytes, this.SUBTYPE_VECTOR);\n validateBinaryVector(bin);\n return bin;\n }\n static fromPackedBits(array, padding = 0) {\n const buffer = ByteUtils.allocate(array.byteLength + 2);\n buffer[0] = Binary.VECTOR_TYPE.PackedBit;\n buffer[1] = padding;\n buffer.set(array, 2);\n const bin = new this(buffer, this.SUBTYPE_VECTOR);\n validateBinaryVector(bin);\n return bin;\n }\n static fromBits(bits) {\n const byteLength = (bits.length + 7) >>> 3;\n const bytes = new Uint8Array(byteLength + 2);\n bytes[0] = Binary.VECTOR_TYPE.PackedBit;\n const remainder = bits.length % 8;\n bytes[1] = remainder === 0 ? 0 : 8 - remainder;\n for (let bitOffset = 0; bitOffset < bits.length; bitOffset++) {\n const byteOffset = bitOffset >>> 3;\n const bit = bits[bitOffset];\n if (bit !== 0 && bit !== 1) {\n throw new BSONError(`Invalid bit value at ${bitOffset}: must be 0 or 1, found ${bits[bitOffset]}`);\n }\n if (bit === 0)\n continue;\n const shift = 7 - (bitOffset % 8);\n bytes[byteOffset + 2] |= bit << shift;\n }\n return new this(bytes, Binary.SUBTYPE_VECTOR);\n }\n}\nBinary.BSON_BINARY_SUBTYPE_DEFAULT = 0;\nBinary.BUFFER_SIZE = 256;\nBinary.SUBTYPE_DEFAULT = 0;\nBinary.SUBTYPE_FUNCTION = 1;\nBinary.SUBTYPE_BYTE_ARRAY = 2;\nBinary.SUBTYPE_UUID_OLD = 3;\nBinary.SUBTYPE_UUID = 4;\nBinary.SUBTYPE_MD5 = 5;\nBinary.SUBTYPE_ENCRYPTED = 6;\nBinary.SUBTYPE_COLUMN = 7;\nBinary.SUBTYPE_SENSITIVE = 8;\nBinary.SUBTYPE_VECTOR = 9;\nBinary.SUBTYPE_USER_DEFINED = 128;\nBinary.VECTOR_TYPE = Object.freeze({\n Int8: 0x03,\n Float32: 0x27,\n PackedBit: 0x10\n});\nfunction validateBinaryVector(vector) {\n if (vector.sub_type !== Binary.SUBTYPE_VECTOR)\n return;\n const size = vector.position;\n const datatype = vector.buffer[0];\n const padding = vector.buffer[1];\n if ((datatype === Binary.VECTOR_TYPE.Float32 || datatype === Binary.VECTOR_TYPE.Int8) &&\n padding !== 0) {\n throw new BSONError('Invalid Vector: padding must be zero for int8 and float32 vectors');\n }\n if (datatype === Binary.VECTOR_TYPE.Float32) {\n if (size !== 0 && size - 2 !== 0 && (size - 2) % 4 !== 0) {\n throw new BSONError('Invalid Vector: Float32 vector must contain a multiple of 4 bytes');\n }\n }\n if (datatype === Binary.VECTOR_TYPE.PackedBit && padding !== 0 && size === 2) {\n throw new BSONError('Invalid Vector: padding must be zero for packed bit vectors that are empty');\n }\n if (datatype === Binary.VECTOR_TYPE.PackedBit && padding > 7) {\n throw new BSONError(`Invalid Vector: padding must be a value between 0 and 7. found: ${padding}`);\n }\n}\nconst UUID_BYTE_LENGTH = 16;\nconst UUID_WITHOUT_DASHES = /^[0-9A-F]{32}$/i;\nconst UUID_WITH_DASHES = /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i;\nclass UUID extends Binary {\n constructor(input) {\n let bytes;\n if (input == null) {\n bytes = UUID.generate();\n }\n else if (input instanceof UUID) {\n bytes = ByteUtils.toLocalBufferType(new Uint8Array(input.buffer));\n }\n else if (ArrayBuffer.isView(input) && input.byteLength === UUID_BYTE_LENGTH) {\n bytes = ByteUtils.toLocalBufferType(input);\n }\n else if (typeof input === 'string') {\n bytes = UUID.bytesFromString(input);\n }\n else {\n throw new BSONError('Argument passed in UUID constructor must be a UUID, a 16 byte Buffer or a 32/36 character hex string (dashes excluded/included, format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).');\n }\n super(bytes, BSON_BINARY_SUBTYPE_UUID_NEW);\n }\n get id() {\n return this.buffer;\n }\n set id(value) {\n this.buffer = value;\n }\n toHexString(includeDashes = true) {\n if (includeDashes) {\n return [\n ByteUtils.toHex(this.buffer.subarray(0, 4)),\n ByteUtils.toHex(this.buffer.subarray(4, 6)),\n ByteUtils.toHex(this.buffer.subarray(6, 8)),\n ByteUtils.toHex(this.buffer.subarray(8, 10)),\n ByteUtils.toHex(this.buffer.subarray(10, 16))\n ].join('-');\n }\n return ByteUtils.toHex(this.buffer);\n }\n toString(encoding) {\n if (encoding === 'hex')\n return ByteUtils.toHex(this.id);\n if (encoding === 'base64')\n return ByteUtils.toBase64(this.id);\n return this.toHexString();\n }\n toJSON() {\n return this.toHexString();\n }\n equals(otherId) {\n if (!otherId) {\n return false;\n }\n if (otherId instanceof UUID) {\n return ByteUtils.equals(otherId.id, this.id);\n }\n try {\n return ByteUtils.equals(new UUID(otherId).id, this.id);\n }\n catch {\n return false;\n }\n }\n toBinary() {\n return new Binary(this.id, Binary.SUBTYPE_UUID);\n }\n static generate() {\n const bytes = ByteUtils.randomBytes(UUID_BYTE_LENGTH);\n bytes[6] = (bytes[6] & 0x0f) | 0x40;\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n return bytes;\n }\n static isValid(input) {\n if (!input) {\n return false;\n }\n if (typeof input === 'string') {\n return UUID.isValidUUIDString(input);\n }\n if (isUint8Array(input)) {\n return input.byteLength === UUID_BYTE_LENGTH;\n }\n return (input._bsontype === 'Binary' &&\n input.sub_type === this.SUBTYPE_UUID &&\n input.buffer.byteLength === 16);\n }\n static createFromHexString(hexString) {\n const buffer = UUID.bytesFromString(hexString);\n return new UUID(buffer);\n }\n static createFromBase64(base64) {\n return new UUID(ByteUtils.fromBase64(base64));\n }\n static bytesFromString(representation) {\n if (!UUID.isValidUUIDString(representation)) {\n throw new BSONError('UUID string representation must be 32 hex digits or canonical hyphenated representation');\n }\n return ByteUtils.fromHex(representation.replace(/-/g, ''));\n }\n static isValidUUIDString(representation) {\n return UUID_WITHOUT_DASHES.test(representation) || UUID_WITH_DASHES.test(representation);\n }\n inspect(depth, options, inspect) {\n inspect ??= defaultInspect;\n return `new UUID(${inspect(this.toHexString(), options)})`;\n }\n}\n\nclass Code extends BSONValue {\n get _bsontype() {\n return 'Code';\n }\n constructor(code, scope) {\n super();\n this.code = code.toString();\n this.scope = scope ?? null;\n }\n toJSON() {\n if (this.scope != null) {\n return { code: this.code, scope: this.scope };\n }\n return { code: this.code };\n }\n toExtendedJSON() {\n if (this.scope) {\n return { $code: this.code, $scope: this.scope };\n }\n return { $code: this.code };\n }\n static fromExtendedJSON(doc) {\n return new Code(doc.$code, doc.$scope);\n }\n inspect(depth, options, inspect) {\n inspect ??= defaultInspect;\n let parametersString = inspect(this.code, options);\n const multiLineFn = parametersString.includes('\\n');\n if (this.scope != null) {\n parametersString += `,${multiLineFn ? '\\n' : ' '}${inspect(this.scope, options)}`;\n }\n const endingNewline = multiLineFn && this.scope === null;\n return `new Code(${multiLineFn ? '\\n' : ''}${parametersString}${endingNewline ? '\\n' : ''})`;\n }\n}\n\nfunction isDBRefLike(value) {\n return (value != null &&\n typeof value === 'object' &&\n '$id' in value &&\n value.$id != null &&\n '$ref' in value &&\n typeof value.$ref === 'string' &&\n (!('$db' in value) || ('$db' in value && typeof value.$db === 'string')));\n}\nclass DBRef extends BSONValue {\n get _bsontype() {\n return 'DBRef';\n }\n constructor(collection, oid, db, fields) {\n super();\n const parts = collection.split('.');\n if (parts.length === 2) {\n db = parts.shift();\n collection = parts.shift();\n }\n this.collection = collection;\n this.oid = oid;\n this.db = db;\n this.fields = fields || {};\n }\n get namespace() {\n return this.collection;\n }\n set namespace(value) {\n this.collection = value;\n }\n toJSON() {\n const o = Object.assign({\n $ref: this.collection,\n $id: this.oid\n }, this.fields);\n if (this.db != null)\n o.$db = this.db;\n return o;\n }\n toExtendedJSON(options) {\n options = options || {};\n let o = {\n $ref: this.collection,\n $id: this.oid\n };\n if (options.legacy) {\n return o;\n }\n if (this.db)\n o.$db = this.db;\n o = Object.assign(o, this.fields);\n return o;\n }\n static fromExtendedJSON(doc) {\n const copy = Object.assign({}, doc);\n delete copy.$ref;\n delete copy.$id;\n delete copy.$db;\n return new DBRef(doc.$ref, doc.$id, doc.$db, copy);\n }\n inspect(depth, options, inspect) {\n inspect ??= defaultInspect;\n const args = [\n inspect(this.namespace, options),\n inspect(this.oid, options),\n ...(this.db ? [inspect(this.db, options)] : []),\n ...(Object.keys(this.fields).length > 0 ? [inspect(this.fields, options)] : [])\n ];\n args[1] = inspect === defaultInspect ? `new ObjectId(${args[1]})` : args[1];\n return `new DBRef(${args.join(', ')})`;\n }\n}\n\nfunction removeLeadingZerosAndExplicitPlus(str) {\n if (str === '') {\n return str;\n }\n let startIndex = 0;\n const isNegative = str[startIndex] === '-';\n const isExplicitlyPositive = str[startIndex] === '+';\n if (isExplicitlyPositive || isNegative) {\n startIndex += 1;\n }\n let foundInsignificantZero = false;\n for (; startIndex < str.length && str[startIndex] === '0'; ++startIndex) {\n foundInsignificantZero = true;\n }\n if (!foundInsignificantZero) {\n return isExplicitlyPositive ? str.slice(1) : str;\n }\n return `${isNegative ? '-' : ''}${str.length === startIndex ? '0' : str.slice(startIndex)}`;\n}\nfunction validateStringCharacters(str, radix) {\n radix = radix ?? 10;\n const validCharacters = '0123456789abcdefghijklmnopqrstuvwxyz'.slice(0, radix);\n const regex = new RegExp(`[^-+${validCharacters}]`, 'i');\n return regex.test(str) ? false : str;\n}\n\nlet wasm = undefined;\ntry {\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11])), {}).exports;\n}\ncatch {\n}\nconst TWO_PWR_16_DBL = 1 << 16;\nconst TWO_PWR_24_DBL = 1 << 24;\nconst TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\nconst TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\nconst TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\nconst INT_CACHE = {};\nconst UINT_CACHE = {};\nconst MAX_INT64_STRING_LENGTH = 20;\nconst DECIMAL_REG_EX = /^(\\+?0|(\\+|-)?[1-9][0-9]*)$/;\nclass Long extends BSONValue {\n get _bsontype() {\n return 'Long';\n }\n get __isLong__() {\n return true;\n }\n constructor(lowOrValue = 0, highOrUnsigned, unsigned) {\n super();\n const unsignedBool = typeof highOrUnsigned === 'boolean' ? highOrUnsigned : Boolean(unsigned);\n const high = typeof highOrUnsigned === 'number' ? highOrUnsigned : 0;\n const res = typeof lowOrValue === 'string'\n ? Long.fromString(lowOrValue, unsignedBool)\n : typeof lowOrValue === 'bigint'\n ? Long.fromBigInt(lowOrValue, unsignedBool)\n : { low: lowOrValue | 0, high: high | 0, unsigned: unsignedBool };\n this.low = res.low;\n this.high = res.high;\n this.unsigned = res.unsigned;\n }\n static fromBits(lowBits, highBits, unsigned) {\n return new Long(lowBits, highBits, unsigned);\n }\n static fromInt(value, unsigned) {\n let obj, cachedObj, cache;\n if (unsigned) {\n value >>>= 0;\n if ((cache = 0 <= value && value < 256)) {\n cachedObj = UINT_CACHE[value];\n if (cachedObj)\n return cachedObj;\n }\n obj = Long.fromBits(value, (value | 0) < 0 ? -1 : 0, true);\n if (cache)\n UINT_CACHE[value] = obj;\n return obj;\n }\n else {\n value |= 0;\n if ((cache = -128 <= value && value < 128)) {\n cachedObj = INT_CACHE[value];\n if (cachedObj)\n return cachedObj;\n }\n obj = Long.fromBits(value, value < 0 ? -1 : 0, false);\n if (cache)\n INT_CACHE[value] = obj;\n return obj;\n }\n }\n static fromNumber(value, unsigned) {\n if (isNaN(value))\n return unsigned ? Long.UZERO : Long.ZERO;\n if (unsigned) {\n if (value < 0)\n return Long.UZERO;\n if (value >= TWO_PWR_64_DBL)\n return Long.MAX_UNSIGNED_VALUE;\n }\n else {\n if (value <= -9223372036854776e3)\n return Long.MIN_VALUE;\n if (value + 1 >= TWO_PWR_63_DBL)\n return Long.MAX_VALUE;\n }\n if (value < 0)\n return Long.fromNumber(-value, unsigned).neg();\n return Long.fromBits(value % TWO_PWR_32_DBL | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\n }\n static fromBigInt(value, unsigned) {\n const FROM_BIGINT_BIT_MASK = BigInt(0xffffffff);\n const FROM_BIGINT_BIT_SHIFT = BigInt(32);\n return new Long(Number(value & FROM_BIGINT_BIT_MASK), Number((value >> FROM_BIGINT_BIT_SHIFT) & FROM_BIGINT_BIT_MASK), unsigned);\n }\n static _fromString(str, unsigned, radix) {\n if (str.length === 0)\n throw new BSONError('empty string');\n if (radix < 2 || 36 < radix)\n throw new BSONError('radix');\n let p;\n if ((p = str.indexOf('-')) > 0)\n throw new BSONError('interior hyphen');\n else if (p === 0) {\n return Long._fromString(str.substring(1), unsigned, radix).neg();\n }\n const radixToPower = Long.fromNumber(Math.pow(radix, 8));\n let result = Long.ZERO;\n for (let i = 0; i < str.length; i += 8) {\n const size = Math.min(8, str.length - i), value = parseInt(str.substring(i, i + size), radix);\n if (size < 8) {\n const power = Long.fromNumber(Math.pow(radix, size));\n result = result.mul(power).add(Long.fromNumber(value));\n }\n else {\n result = result.mul(radixToPower);\n result = result.add(Long.fromNumber(value));\n }\n }\n result.unsigned = unsigned;\n return result;\n }\n static fromStringStrict(str, unsignedOrRadix, radix) {\n let unsigned = false;\n if (typeof unsignedOrRadix === 'number') {\n (radix = unsignedOrRadix), (unsignedOrRadix = false);\n }\n else {\n unsigned = !!unsignedOrRadix;\n }\n radix ??= 10;\n if (str.trim() !== str) {\n throw new BSONError(`Input: '${str}' contains leading and/or trailing whitespace`);\n }\n if (!validateStringCharacters(str, radix)) {\n throw new BSONError(`Input: '${str}' contains invalid characters for radix: ${radix}`);\n }\n const cleanedStr = removeLeadingZerosAndExplicitPlus(str);\n const result = Long._fromString(cleanedStr, unsigned, radix);\n if (result.toString(radix).toLowerCase() !== cleanedStr.toLowerCase()) {\n throw new BSONError(`Input: ${str} is not representable as ${result.unsigned ? 'an unsigned' : 'a signed'} 64-bit Long ${radix != null ? `with radix: ${radix}` : ''}`);\n }\n return result;\n }\n static fromString(str, unsignedOrRadix, radix) {\n let unsigned = false;\n if (typeof unsignedOrRadix === 'number') {\n (radix = unsignedOrRadix), (unsignedOrRadix = false);\n }\n else {\n unsigned = !!unsignedOrRadix;\n }\n radix ??= 10;\n if (str === 'NaN' && radix < 24) {\n return Long.ZERO;\n }\n else if ((str === 'Infinity' || str === '+Infinity' || str === '-Infinity') && radix < 35) {\n return Long.ZERO;\n }\n return Long._fromString(str, unsigned, radix);\n }\n static fromBytes(bytes, unsigned, le) {\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\n }\n static fromBytesLE(bytes, unsigned) {\n return new Long(bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24), bytes[4] | (bytes[5] << 8) | (bytes[6] << 16) | (bytes[7] << 24), unsigned);\n }\n static fromBytesBE(bytes, unsigned) {\n return new Long((bytes[4] << 24) | (bytes[5] << 16) | (bytes[6] << 8) | bytes[7], (bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3], unsigned);\n }\n static isLong(value) {\n return (value != null &&\n typeof value === 'object' &&\n '__isLong__' in value &&\n value.__isLong__ === true);\n }\n static fromValue(val, unsigned) {\n if (typeof val === 'number')\n return Long.fromNumber(val, unsigned);\n if (typeof val === 'string')\n return Long.fromString(val, unsigned);\n return Long.fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\n }\n add(addend) {\n if (!Long.isLong(addend))\n addend = Long.fromValue(addend);\n const a48 = this.high >>> 16;\n const a32 = this.high & 0xffff;\n const a16 = this.low >>> 16;\n const a00 = this.low & 0xffff;\n const b48 = addend.high >>> 16;\n const b32 = addend.high & 0xffff;\n const b16 = addend.low >>> 16;\n const b00 = addend.low & 0xffff;\n let c48 = 0, c32 = 0, c16 = 0, c00 = 0;\n c00 += a00 + b00;\n c16 += c00 >>> 16;\n c00 &= 0xffff;\n c16 += a16 + b16;\n c32 += c16 >>> 16;\n c16 &= 0xffff;\n c32 += a32 + b32;\n c48 += c32 >>> 16;\n c32 &= 0xffff;\n c48 += a48 + b48;\n c48 &= 0xffff;\n return Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\n }\n and(other) {\n if (!Long.isLong(other))\n other = Long.fromValue(other);\n return Long.fromBits(this.low & other.low, this.high & other.high, this.unsigned);\n }\n compare(other) {\n if (!Long.isLong(other))\n other = Long.fromValue(other);\n if (this.eq(other))\n return 0;\n const thisNeg = this.isNegative(), otherNeg = other.isNegative();\n if (thisNeg && !otherNeg)\n return -1;\n if (!thisNeg && otherNeg)\n return 1;\n if (!this.unsigned)\n return this.sub(other).isNegative() ? -1 : 1;\n return other.high >>> 0 > this.high >>> 0 ||\n (other.high === this.high && other.low >>> 0 > this.low >>> 0)\n ? -1\n : 1;\n }\n comp(other) {\n return this.compare(other);\n }\n divide(divisor) {\n if (!Long.isLong(divisor))\n divisor = Long.fromValue(divisor);\n if (divisor.isZero())\n throw new BSONError('division by zero');\n if (wasm) {\n if (!this.unsigned &&\n this.high === -2147483648 &&\n divisor.low === -1 &&\n divisor.high === -1) {\n return this;\n }\n const low = (this.unsigned ? wasm.div_u : wasm.div_s)(this.low, this.high, divisor.low, divisor.high);\n return Long.fromBits(low, wasm.get_high(), this.unsigned);\n }\n if (this.isZero())\n return this.unsigned ? Long.UZERO : Long.ZERO;\n let approx, rem, res;\n if (!this.unsigned) {\n if (this.eq(Long.MIN_VALUE)) {\n if (divisor.eq(Long.ONE) || divisor.eq(Long.NEG_ONE))\n return Long.MIN_VALUE;\n else if (divisor.eq(Long.MIN_VALUE))\n return Long.ONE;\n else {\n const halfThis = this.shr(1);\n approx = halfThis.div(divisor).shl(1);\n if (approx.eq(Long.ZERO)) {\n return divisor.isNegative() ? Long.ONE : Long.NEG_ONE;\n }\n else {\n rem = this.sub(divisor.mul(approx));\n res = approx.add(rem.div(divisor));\n return res;\n }\n }\n }\n else if (divisor.eq(Long.MIN_VALUE))\n return this.unsigned ? Long.UZERO : Long.ZERO;\n if (this.isNegative()) {\n if (divisor.isNegative())\n return this.neg().div(divisor.neg());\n return this.neg().div(divisor).neg();\n }\n else if (divisor.isNegative())\n return this.div(divisor.neg()).neg();\n res = Long.ZERO;\n }\n else {\n if (!divisor.unsigned)\n divisor = divisor.toUnsigned();\n if (divisor.gt(this))\n return Long.UZERO;\n if (divisor.gt(this.shru(1)))\n return Long.UONE;\n res = Long.UZERO;\n }\n rem = this;\n while (rem.gte(divisor)) {\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\n const log2 = Math.ceil(Math.log(approx) / Math.LN2);\n const delta = log2 <= 48 ? 1 : Math.pow(2, log2 - 48);\n let approxRes = Long.fromNumber(approx);\n let approxRem = approxRes.mul(divisor);\n while (approxRem.isNegative() || approxRem.gt(rem)) {\n approx -= delta;\n approxRes = Long.fromNumber(approx, this.unsigned);\n approxRem = approxRes.mul(divisor);\n }\n if (approxRes.isZero())\n approxRes = Long.ONE;\n res = res.add(approxRes);\n rem = rem.sub(approxRem);\n }\n return res;\n }\n div(divisor) {\n return this.divide(divisor);\n }\n equals(other) {\n if (!Long.isLong(other))\n other = Long.fromValue(other);\n if (this.unsigned !== other.unsigned && this.high >>> 31 === 1 && other.high >>> 31 === 1)\n return false;\n return this.high === other.high && this.low === other.low;\n }\n eq(other) {\n return this.equals(other);\n }\n getHighBits() {\n return this.high;\n }\n getHighBitsUnsigned() {\n return this.high >>> 0;\n }\n getLowBits() {\n return this.low;\n }\n getLowBitsUnsigned() {\n return this.low >>> 0;\n }\n getNumBitsAbs() {\n if (this.isNegative()) {\n return this.eq(Long.MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\n }\n const val = this.high !== 0 ? this.high : this.low;\n let bit;\n for (bit = 31; bit > 0; bit--)\n if ((val & (1 << bit)) !== 0)\n break;\n return this.high !== 0 ? bit + 33 : bit + 1;\n }\n greaterThan(other) {\n return this.comp(other) > 0;\n }\n gt(other) {\n return this.greaterThan(other);\n }\n greaterThanOrEqual(other) {\n return this.comp(other) >= 0;\n }\n gte(other) {\n return this.greaterThanOrEqual(other);\n }\n ge(other) {\n return this.greaterThanOrEqual(other);\n }\n isEven() {\n return (this.low & 1) === 0;\n }\n isNegative() {\n return !this.unsigned && this.high < 0;\n }\n isOdd() {\n return (this.low & 1) === 1;\n }\n isPositive() {\n return this.unsigned || this.high >= 0;\n }\n isZero() {\n return this.high === 0 && this.low === 0;\n }\n lessThan(other) {\n return this.comp(other) < 0;\n }\n lt(other) {\n return this.lessThan(other);\n }\n lessThanOrEqual(other) {\n return this.comp(other) <= 0;\n }\n lte(other) {\n return this.lessThanOrEqual(other);\n }\n modulo(divisor) {\n if (!Long.isLong(divisor))\n divisor = Long.fromValue(divisor);\n if (wasm) {\n const low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(this.low, this.high, divisor.low, divisor.high);\n return Long.fromBits(low, wasm.get_high(), this.unsigned);\n }\n return this.sub(this.div(divisor).mul(divisor));\n }\n mod(divisor) {\n return this.modulo(divisor);\n }\n rem(divisor) {\n return this.modulo(divisor);\n }\n multiply(multiplier) {\n if (this.isZero())\n return Long.ZERO;\n if (!Long.isLong(multiplier))\n multiplier = Long.fromValue(multiplier);\n if (wasm) {\n const low = wasm.mul(this.low, this.high, multiplier.low, multiplier.high);\n return Long.fromBits(low, wasm.get_high(), this.unsigned);\n }\n if (multiplier.isZero())\n return Long.ZERO;\n if (this.eq(Long.MIN_VALUE))\n return multiplier.isOdd() ? Long.MIN_VALUE : Long.ZERO;\n if (multiplier.eq(Long.MIN_VALUE))\n return this.isOdd() ? Long.MIN_VALUE : Long.ZERO;\n if (this.isNegative()) {\n if (multiplier.isNegative())\n return this.neg().mul(multiplier.neg());\n else\n return this.neg().mul(multiplier).neg();\n }\n else if (multiplier.isNegative())\n return this.mul(multiplier.neg()).neg();\n if (this.lt(Long.TWO_PWR_24) && multiplier.lt(Long.TWO_PWR_24))\n return Long.fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\n const a48 = this.high >>> 16;\n const a32 = this.high & 0xffff;\n const a16 = this.low >>> 16;\n const a00 = this.low & 0xffff;\n const b48 = multiplier.high >>> 16;\n const b32 = multiplier.high & 0xffff;\n const b16 = multiplier.low >>> 16;\n const b00 = multiplier.low & 0xffff;\n let c48 = 0, c32 = 0, c16 = 0, c00 = 0;\n c00 += a00 * b00;\n c16 += c00 >>> 16;\n c00 &= 0xffff;\n c16 += a16 * b00;\n c32 += c16 >>> 16;\n c16 &= 0xffff;\n c16 += a00 * b16;\n c32 += c16 >>> 16;\n c16 &= 0xffff;\n c32 += a32 * b00;\n c48 += c32 >>> 16;\n c32 &= 0xffff;\n c32 += a16 * b16;\n c48 += c32 >>> 16;\n c32 &= 0xffff;\n c32 += a00 * b32;\n c48 += c32 >>> 16;\n c32 &= 0xffff;\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\n c48 &= 0xffff;\n return Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\n }\n mul(multiplier) {\n return this.multiply(multiplier);\n }\n negate() {\n if (!this.unsigned && this.eq(Long.MIN_VALUE))\n return Long.MIN_VALUE;\n return this.not().add(Long.ONE);\n }\n neg() {\n return this.negate();\n }\n not() {\n return Long.fromBits(~this.low, ~this.high, this.unsigned);\n }\n notEquals(other) {\n return !this.equals(other);\n }\n neq(other) {\n return this.notEquals(other);\n }\n ne(other) {\n return this.notEquals(other);\n }\n or(other) {\n if (!Long.isLong(other))\n other = Long.fromValue(other);\n return Long.fromBits(this.low | other.low, this.high | other.high, this.unsigned);\n }\n shiftLeft(numBits) {\n if (Long.isLong(numBits))\n numBits = numBits.toInt();\n if ((numBits &= 63) === 0)\n return this;\n else if (numBits < 32)\n return Long.fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\n else\n return Long.fromBits(0, this.low << (numBits - 32), this.unsigned);\n }\n shl(numBits) {\n return this.shiftLeft(numBits);\n }\n shiftRight(numBits) {\n if (Long.isLong(numBits))\n numBits = numBits.toInt();\n if ((numBits &= 63) === 0)\n return this;\n else if (numBits < 32)\n return Long.fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\n else\n return Long.fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\n }\n shr(numBits) {\n return this.shiftRight(numBits);\n }\n shiftRightUnsigned(numBits) {\n if (Long.isLong(numBits))\n numBits = numBits.toInt();\n numBits &= 63;\n if (numBits === 0)\n return this;\n else {\n const high = this.high;\n if (numBits < 32) {\n const low = this.low;\n return Long.fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\n }\n else if (numBits === 32)\n return Long.fromBits(high, 0, this.unsigned);\n else\n return Long.fromBits(high >>> (numBits - 32), 0, this.unsigned);\n }\n }\n shr_u(numBits) {\n return this.shiftRightUnsigned(numBits);\n }\n shru(numBits) {\n return this.shiftRightUnsigned(numBits);\n }\n subtract(subtrahend) {\n if (!Long.isLong(subtrahend))\n subtrahend = Long.fromValue(subtrahend);\n return this.add(subtrahend.neg());\n }\n sub(subtrahend) {\n return this.subtract(subtrahend);\n }\n toInt() {\n return this.unsigned ? this.low >>> 0 : this.low;\n }\n toNumber() {\n if (this.unsigned)\n return (this.high >>> 0) * TWO_PWR_32_DBL + (this.low >>> 0);\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\n }\n toBigInt() {\n return BigInt(this.toString());\n }\n toBytes(le) {\n return le ? this.toBytesLE() : this.toBytesBE();\n }\n toBytesLE() {\n const hi = this.high, lo = this.low;\n return [\n lo & 0xff,\n (lo >>> 8) & 0xff,\n (lo >>> 16) & 0xff,\n lo >>> 24,\n hi & 0xff,\n (hi >>> 8) & 0xff,\n (hi >>> 16) & 0xff,\n hi >>> 24\n ];\n }\n toBytesBE() {\n const hi = this.high, lo = this.low;\n return [\n hi >>> 24,\n (hi >>> 16) & 0xff,\n (hi >>> 8) & 0xff,\n hi & 0xff,\n lo >>> 24,\n (lo >>> 16) & 0xff,\n (lo >>> 8) & 0xff,\n lo & 0xff\n ];\n }\n toSigned() {\n if (!this.unsigned)\n return this;\n return Long.fromBits(this.low, this.high, false);\n }\n toString(radix) {\n radix = radix || 10;\n if (radix < 2 || 36 < radix)\n throw new BSONError('radix');\n if (this.isZero())\n return '0';\n if (this.isNegative()) {\n if (this.eq(Long.MIN_VALUE)) {\n const radixLong = Long.fromNumber(radix), div = this.div(radixLong), rem1 = div.mul(radixLong).sub(this);\n return div.toString(radix) + rem1.toInt().toString(radix);\n }\n else\n return '-' + this.neg().toString(radix);\n }\n const radixToPower = Long.fromNumber(Math.pow(radix, 6), this.unsigned);\n let rem = this;\n let result = '';\n while (true) {\n const remDiv = rem.div(radixToPower);\n const intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0;\n let digits = intval.toString(radix);\n rem = remDiv;\n if (rem.isZero()) {\n return digits + result;\n }\n else {\n while (digits.length < 6)\n digits = '0' + digits;\n result = '' + digits + result;\n }\n }\n }\n toUnsigned() {\n if (this.unsigned)\n return this;\n return Long.fromBits(this.low, this.high, true);\n }\n xor(other) {\n if (!Long.isLong(other))\n other = Long.fromValue(other);\n return Long.fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\n }\n eqz() {\n return this.isZero();\n }\n le(other) {\n return this.lessThanOrEqual(other);\n }\n toExtendedJSON(options) {\n if (options && options.relaxed)\n return this.toNumber();\n return { $numberLong: this.toString() };\n }\n static fromExtendedJSON(doc, options) {\n const { useBigInt64 = false, relaxed = true } = { ...options };\n if (doc.$numberLong.length > MAX_INT64_STRING_LENGTH) {\n throw new BSONError('$numberLong string is too long');\n }\n if (!DECIMAL_REG_EX.test(doc.$numberLong)) {\n throw new BSONError(`$numberLong string \"${doc.$numberLong}\" is in an invalid format`);\n }\n if (useBigInt64) {\n const bigIntResult = BigInt(doc.$numberLong);\n return BigInt.asIntN(64, bigIntResult);\n }\n const longResult = Long.fromString(doc.$numberLong);\n if (relaxed) {\n return longResult.toNumber();\n }\n return longResult;\n }\n inspect(depth, options, inspect) {\n inspect ??= defaultInspect;\n const longVal = inspect(this.toString(), options);\n const unsignedVal = this.unsigned ? `, ${inspect(this.unsigned, options)}` : '';\n return `new Long(${longVal}${unsignedVal})`;\n }\n}\nLong.TWO_PWR_24 = Long.fromInt(TWO_PWR_24_DBL);\nLong.MAX_UNSIGNED_VALUE = Long.fromBits(0xffffffff | 0, 0xffffffff | 0, true);\nLong.ZERO = Long.fromInt(0);\nLong.UZERO = Long.fromInt(0, true);\nLong.ONE = Long.fromInt(1);\nLong.UONE = Long.fromInt(1, true);\nLong.NEG_ONE = Long.fromInt(-1);\nLong.MAX_VALUE = Long.fromBits(0xffffffff | 0, 0x7fffffff | 0, false);\nLong.MIN_VALUE = Long.fromBits(0, 0x80000000 | 0, false);\n\nconst PARSE_STRING_REGEXP = /^(\\+|-)?(\\d+|(\\d*\\.\\d*))?(E|e)?([-+])?(\\d+)?$/;\nconst PARSE_INF_REGEXP = /^(\\+|-)?(Infinity|inf)$/i;\nconst PARSE_NAN_REGEXP = /^(\\+|-)?NaN$/i;\nconst EXPONENT_MAX = 6111;\nconst EXPONENT_MIN = -6176;\nconst EXPONENT_BIAS = 6176;\nconst MAX_DIGITS = 34;\nconst NAN_BUFFER = ByteUtils.fromNumberArray([\n 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00\n].reverse());\nconst INF_NEGATIVE_BUFFER = ByteUtils.fromNumberArray([\n 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00\n].reverse());\nconst INF_POSITIVE_BUFFER = ByteUtils.fromNumberArray([\n 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00\n].reverse());\nconst EXPONENT_REGEX = /^([-+])?(\\d+)?$/;\nconst COMBINATION_MASK = 0x1f;\nconst EXPONENT_MASK = 0x3fff;\nconst COMBINATION_INFINITY = 30;\nconst COMBINATION_NAN = 31;\nfunction isDigit(value) {\n return !isNaN(parseInt(value, 10));\n}\nfunction divideu128(value) {\n const DIVISOR = Long.fromNumber(1000 * 1000 * 1000);\n let _rem = Long.fromNumber(0);\n if (!value.parts[0] && !value.parts[1] && !value.parts[2] && !value.parts[3]) {\n return { quotient: value, rem: _rem };\n }\n for (let i = 0; i <= 3; i++) {\n _rem = _rem.shiftLeft(32);\n _rem = _rem.add(new Long(value.parts[i], 0));\n value.parts[i] = _rem.div(DIVISOR).low;\n _rem = _rem.modulo(DIVISOR);\n }\n return { quotient: value, rem: _rem };\n}\nfunction multiply64x2(left, right) {\n if (!left && !right) {\n return { high: Long.fromNumber(0), low: Long.fromNumber(0) };\n }\n const leftHigh = left.shiftRightUnsigned(32);\n const leftLow = new Long(left.getLowBits(), 0);\n const rightHigh = right.shiftRightUnsigned(32);\n const rightLow = new Long(right.getLowBits(), 0);\n let productHigh = leftHigh.multiply(rightHigh);\n let productMid = leftHigh.multiply(rightLow);\n const productMid2 = leftLow.multiply(rightHigh);\n let productLow = leftLow.multiply(rightLow);\n productHigh = productHigh.add(productMid.shiftRightUnsigned(32));\n productMid = new Long(productMid.getLowBits(), 0)\n .add(productMid2)\n .add(productLow.shiftRightUnsigned(32));\n productHigh = productHigh.add(productMid.shiftRightUnsigned(32));\n productLow = productMid.shiftLeft(32).add(new Long(productLow.getLowBits(), 0));\n return { high: productHigh, low: productLow };\n}\nfunction lessThan(left, right) {\n const uhleft = left.high >>> 0;\n const uhright = right.high >>> 0;\n if (uhleft < uhright) {\n return true;\n }\n else if (uhleft === uhright) {\n const ulleft = left.low >>> 0;\n const ulright = right.low >>> 0;\n if (ulleft < ulright)\n return true;\n }\n return false;\n}\nfunction invalidErr(string, message) {\n throw new BSONError(`\"${string}\" is not a valid Decimal128 string - ${message}`);\n}\nclass Decimal128 extends BSONValue {\n get _bsontype() {\n return 'Decimal128';\n }\n constructor(bytes) {\n super();\n if (typeof bytes === 'string') {\n this.bytes = Decimal128.fromString(bytes).bytes;\n }\n else if (bytes instanceof Uint8Array || isUint8Array(bytes)) {\n if (bytes.byteLength !== 16) {\n throw new BSONError('Decimal128 must take a Buffer of 16 bytes');\n }\n this.bytes = bytes;\n }\n else {\n throw new BSONError('Decimal128 must take a Buffer or string');\n }\n }\n static fromString(representation) {\n return Decimal128._fromString(representation, { allowRounding: false });\n }\n static fromStringWithRounding(representation) {\n return Decimal128._fromString(representation, { allowRounding: true });\n }\n static _fromString(representation, options) {\n let isNegative = false;\n let sawSign = false;\n let sawRadix = false;\n let foundNonZero = false;\n let significantDigits = 0;\n let nDigitsRead = 0;\n let nDigits = 0;\n let radixPosition = 0;\n let firstNonZero = 0;\n const digits = [0];\n let nDigitsStored = 0;\n let digitsInsert = 0;\n let lastDigit = 0;\n let exponent = 0;\n let significandHigh = new Long(0, 0);\n let significandLow = new Long(0, 0);\n let biasedExponent = 0;\n let index = 0;\n if (representation.length >= 7000) {\n throw new BSONError('' + representation + ' not a valid Decimal128 string');\n }\n const stringMatch = representation.match(PARSE_STRING_REGEXP);\n const infMatch = representation.match(PARSE_INF_REGEXP);\n const nanMatch = representation.match(PARSE_NAN_REGEXP);\n if ((!stringMatch && !infMatch && !nanMatch) || representation.length === 0) {\n throw new BSONError('' + representation + ' not a valid Decimal128 string');\n }\n if (stringMatch) {\n const unsignedNumber = stringMatch[2];\n const e = stringMatch[4];\n const expSign = stringMatch[5];\n const expNumber = stringMatch[6];\n if (e && expNumber === undefined)\n invalidErr(representation, 'missing exponent power');\n if (e && unsignedNumber === undefined)\n invalidErr(representation, 'missing exponent base');\n if (e === undefined && (expSign || expNumber)) {\n invalidErr(representation, 'missing e before exponent');\n }\n }\n if (representation[index] === '+' || representation[index] === '-') {\n sawSign = true;\n isNegative = representation[index++] === '-';\n }\n if (!isDigit(representation[index]) && representation[index] !== '.') {\n if (representation[index] === 'i' || representation[index] === 'I') {\n return new Decimal128(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER);\n }\n else if (representation[index] === 'N') {\n return new Decimal128(NAN_BUFFER);\n }\n }\n while (isDigit(representation[index]) || representation[index] === '.') {\n if (representation[index] === '.') {\n if (sawRadix)\n invalidErr(representation, 'contains multiple periods');\n sawRadix = true;\n index = index + 1;\n continue;\n }\n if (nDigitsStored < MAX_DIGITS) {\n if (representation[index] !== '0' || foundNonZero) {\n if (!foundNonZero) {\n firstNonZero = nDigitsRead;\n }\n foundNonZero = true;\n digits[digitsInsert++] = parseInt(representation[index], 10);\n nDigitsStored = nDigitsStored + 1;\n }\n }\n if (foundNonZero)\n nDigits = nDigits + 1;\n if (sawRadix)\n radixPosition = radixPosition + 1;\n nDigitsRead = nDigitsRead + 1;\n index = index + 1;\n }\n if (sawRadix && !nDigitsRead)\n throw new BSONError('' + representation + ' not a valid Decimal128 string');\n if (representation[index] === 'e' || representation[index] === 'E') {\n const match = representation.substr(++index).match(EXPONENT_REGEX);\n if (!match || !match[2])\n return new Decimal128(NAN_BUFFER);\n exponent = parseInt(match[0], 10);\n index = index + match[0].length;\n }\n if (representation[index])\n return new Decimal128(NAN_BUFFER);\n if (!nDigitsStored) {\n digits[0] = 0;\n nDigits = 1;\n nDigitsStored = 1;\n significantDigits = 0;\n }\n else {\n lastDigit = nDigitsStored - 1;\n significantDigits = nDigits;\n if (significantDigits !== 1) {\n while (representation[firstNonZero + significantDigits - 1 + Number(sawSign) + Number(sawRadix)] === '0') {\n significantDigits = significantDigits - 1;\n }\n }\n }\n if (exponent <= radixPosition && radixPosition > exponent + (1 << 14)) {\n exponent = EXPONENT_MIN;\n }\n else {\n exponent = exponent - radixPosition;\n }\n while (exponent > EXPONENT_MAX) {\n lastDigit = lastDigit + 1;\n if (lastDigit >= MAX_DIGITS) {\n if (significantDigits === 0) {\n exponent = EXPONENT_MAX;\n break;\n }\n invalidErr(representation, 'overflow');\n }\n exponent = exponent - 1;\n }\n if (options.allowRounding) {\n while (exponent < EXPONENT_MIN || nDigitsStored < nDigits) {\n if (lastDigit === 0 && significantDigits < nDigitsStored) {\n exponent = EXPONENT_MIN;\n significantDigits = 0;\n break;\n }\n if (nDigitsStored < nDigits) {\n nDigits = nDigits - 1;\n }\n else {\n lastDigit = lastDigit - 1;\n }\n if (exponent < EXPONENT_MAX) {\n exponent = exponent + 1;\n }\n else {\n const digitsString = digits.join('');\n if (digitsString.match(/^0+$/)) {\n exponent = EXPONENT_MAX;\n break;\n }\n invalidErr(representation, 'overflow');\n }\n }\n if (lastDigit + 1 < significantDigits) {\n let endOfString = nDigitsRead;\n if (sawRadix) {\n firstNonZero = firstNonZero + 1;\n endOfString = endOfString + 1;\n }\n if (sawSign) {\n firstNonZero = firstNonZero + 1;\n endOfString = endOfString + 1;\n }\n const roundDigit = parseInt(representation[firstNonZero + lastDigit + 1], 10);\n let roundBit = 0;\n if (roundDigit >= 5) {\n roundBit = 1;\n if (roundDigit === 5) {\n roundBit = digits[lastDigit] % 2 === 1 ? 1 : 0;\n for (let i = firstNonZero + lastDigit + 2; i < endOfString; i++) {\n if (parseInt(representation[i], 10)) {\n roundBit = 1;\n break;\n }\n }\n }\n }\n if (roundBit) {\n let dIdx = lastDigit;\n for (; dIdx >= 0; dIdx--) {\n if (++digits[dIdx] > 9) {\n digits[dIdx] = 0;\n if (dIdx === 0) {\n if (exponent < EXPONENT_MAX) {\n exponent = exponent + 1;\n digits[dIdx] = 1;\n }\n else {\n return new Decimal128(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER);\n }\n }\n }\n else {\n break;\n }\n }\n }\n }\n }\n else {\n while (exponent < EXPONENT_MIN || nDigitsStored < nDigits) {\n if (lastDigit === 0) {\n if (significantDigits === 0) {\n exponent = EXPONENT_MIN;\n break;\n }\n invalidErr(representation, 'exponent underflow');\n }\n if (nDigitsStored < nDigits) {\n if (representation[nDigits - 1 + Number(sawSign) + Number(sawRadix)] !== '0' &&\n significantDigits !== 0) {\n invalidErr(representation, 'inexact rounding');\n }\n nDigits = nDigits - 1;\n }\n else {\n if (digits[lastDigit] !== 0) {\n invalidErr(representation, 'inexact rounding');\n }\n lastDigit = lastDigit - 1;\n }\n if (exponent < EXPONENT_MAX) {\n exponent = exponent + 1;\n }\n else {\n invalidErr(representation, 'overflow');\n }\n }\n if (lastDigit + 1 < significantDigits) {\n if (sawRadix) {\n firstNonZero = firstNonZero + 1;\n }\n if (sawSign) {\n firstNonZero = firstNonZero + 1;\n }\n const roundDigit = parseInt(representation[firstNonZero + lastDigit + 1], 10);\n if (roundDigit !== 0) {\n invalidErr(representation, 'inexact rounding');\n }\n }\n }\n significandHigh = Long.fromNumber(0);\n significandLow = Long.fromNumber(0);\n if (significantDigits === 0) {\n significandHigh = Long.fromNumber(0);\n significandLow = Long.fromNumber(0);\n }\n else if (lastDigit < 17) {\n let dIdx = 0;\n significandLow = Long.fromNumber(digits[dIdx++]);\n significandHigh = new Long(0, 0);\n for (; dIdx <= lastDigit; dIdx++) {\n significandLow = significandLow.multiply(Long.fromNumber(10));\n significandLow = significandLow.add(Long.fromNumber(digits[dIdx]));\n }\n }\n else {\n let dIdx = 0;\n significandHigh = Long.fromNumber(digits[dIdx++]);\n for (; dIdx <= lastDigit - 17; dIdx++) {\n significandHigh = significandHigh.multiply(Long.fromNumber(10));\n significandHigh = significandHigh.add(Long.fromNumber(digits[dIdx]));\n }\n significandLow = Long.fromNumber(digits[dIdx++]);\n for (; dIdx <= lastDigit; dIdx++) {\n significandLow = significandLow.multiply(Long.fromNumber(10));\n significandLow = significandLow.add(Long.fromNumber(digits[dIdx]));\n }\n }\n const significand = multiply64x2(significandHigh, Long.fromString('100000000000000000'));\n significand.low = significand.low.add(significandLow);\n if (lessThan(significand.low, significandLow)) {\n significand.high = significand.high.add(Long.fromNumber(1));\n }\n biasedExponent = exponent + EXPONENT_BIAS;\n const dec = { low: Long.fromNumber(0), high: Long.fromNumber(0) };\n if (significand.high.shiftRightUnsigned(49).and(Long.fromNumber(1)).equals(Long.fromNumber(1))) {\n dec.high = dec.high.or(Long.fromNumber(0x3).shiftLeft(61));\n dec.high = dec.high.or(Long.fromNumber(biasedExponent).and(Long.fromNumber(0x3fff).shiftLeft(47)));\n dec.high = dec.high.or(significand.high.and(Long.fromNumber(0x7fffffffffff)));\n }\n else {\n dec.high = dec.high.or(Long.fromNumber(biasedExponent & 0x3fff).shiftLeft(49));\n dec.high = dec.high.or(significand.high.and(Long.fromNumber(0x1ffffffffffff)));\n }\n dec.low = significand.low;\n if (isNegative) {\n dec.high = dec.high.or(Long.fromString('9223372036854775808'));\n }\n const buffer = ByteUtils.allocateUnsafe(16);\n index = 0;\n buffer[index++] = dec.low.low & 0xff;\n buffer[index++] = (dec.low.low >> 8) & 0xff;\n buffer[index++] = (dec.low.low >> 16) & 0xff;\n buffer[index++] = (dec.low.low >> 24) & 0xff;\n buffer[index++] = dec.low.high & 0xff;\n buffer[index++] = (dec.low.high >> 8) & 0xff;\n buffer[index++] = (dec.low.high >> 16) & 0xff;\n buffer[index++] = (dec.low.high >> 24) & 0xff;\n buffer[index++] = dec.high.low & 0xff;\n buffer[index++] = (dec.high.low >> 8) & 0xff;\n buffer[index++] = (dec.high.low >> 16) & 0xff;\n buffer[index++] = (dec.high.low >> 24) & 0xff;\n buffer[index++] = dec.high.high & 0xff;\n buffer[index++] = (dec.high.high >> 8) & 0xff;\n buffer[index++] = (dec.high.high >> 16) & 0xff;\n buffer[index++] = (dec.high.high >> 24) & 0xff;\n return new Decimal128(buffer);\n }\n toString() {\n let biased_exponent;\n let significand_digits = 0;\n const significand = new Array(36);\n for (let i = 0; i < significand.length; i++)\n significand[i] = 0;\n let index = 0;\n let is_zero = false;\n let significand_msb;\n let significand128 = { parts: [0, 0, 0, 0] };\n let j, k;\n const string = [];\n index = 0;\n const buffer = this.bytes;\n const low = buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24);\n const midl = buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24);\n const midh = buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24);\n const high = buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24);\n index = 0;\n const dec = {\n low: new Long(low, midl),\n high: new Long(midh, high)\n };\n if (dec.high.lessThan(Long.ZERO)) {\n string.push('-');\n }\n const combination = (high >> 26) & COMBINATION_MASK;\n if (combination >> 3 === 3) {\n if (combination === COMBINATION_INFINITY) {\n return string.join('') + 'Infinity';\n }\n else if (combination === COMBINATION_NAN) {\n return 'NaN';\n }\n else {\n biased_exponent = (high >> 15) & EXPONENT_MASK;\n significand_msb = 0x08 + ((high >> 14) & 0x01);\n }\n }\n else {\n significand_msb = (high >> 14) & 0x07;\n biased_exponent = (high >> 17) & EXPONENT_MASK;\n }\n const exponent = biased_exponent - EXPONENT_BIAS;\n significand128.parts[0] = (high & 0x3fff) + ((significand_msb & 0xf) << 14);\n significand128.parts[1] = midh;\n significand128.parts[2] = midl;\n significand128.parts[3] = low;\n if (significand128.parts[0] === 0 &&\n significand128.parts[1] === 0 &&\n significand128.parts[2] === 0 &&\n significand128.parts[3] === 0) {\n is_zero = true;\n }\n else {\n for (k = 3; k >= 0; k--) {\n let least_digits = 0;\n const result = divideu128(significand128);\n significand128 = result.quotient;\n least_digits = result.rem.low;\n if (!least_digits)\n continue;\n for (j = 8; j >= 0; j--) {\n significand[k * 9 + j] = least_digits % 10;\n least_digits = Math.floor(least_digits / 10);\n }\n }\n }\n if (is_zero) {\n significand_digits = 1;\n significand[index] = 0;\n }\n else {\n significand_digits = 36;\n while (!significand[index]) {\n significand_digits = significand_digits - 1;\n index = index + 1;\n }\n }\n const scientific_exponent = significand_digits - 1 + exponent;\n if (scientific_exponent >= 34 || scientific_exponent <= -7 || exponent > 0) {\n if (significand_digits > 34) {\n string.push(`${0}`);\n if (exponent > 0)\n string.push(`E+${exponent}`);\n else if (exponent < 0)\n string.push(`E${exponent}`);\n return string.join('');\n }\n string.push(`${significand[index++]}`);\n significand_digits = significand_digits - 1;\n if (significand_digits) {\n string.push('.');\n }\n for (let i = 0; i < significand_digits; i++) {\n string.push(`${significand[index++]}`);\n }\n string.push('E');\n if (scientific_exponent > 0) {\n string.push(`+${scientific_exponent}`);\n }\n else {\n string.push(`${scientific_exponent}`);\n }\n }\n else {\n if (exponent >= 0) {\n for (let i = 0; i < significand_digits; i++) {\n string.push(`${significand[index++]}`);\n }\n }\n else {\n let radix_position = significand_digits + exponent;\n if (radix_position > 0) {\n for (let i = 0; i < radix_position; i++) {\n string.push(`${significand[index++]}`);\n }\n }\n else {\n string.push('0');\n }\n string.push('.');\n while (radix_position++ < 0) {\n string.push('0');\n }\n for (let i = 0; i < significand_digits - Math.max(radix_position - 1, 0); i++) {\n string.push(`${significand[index++]}`);\n }\n }\n }\n return string.join('');\n }\n toJSON() {\n return { $numberDecimal: this.toString() };\n }\n toExtendedJSON() {\n return { $numberDecimal: this.toString() };\n }\n static fromExtendedJSON(doc) {\n return Decimal128.fromString(doc.$numberDecimal);\n }\n inspect(depth, options, inspect) {\n inspect ??= defaultInspect;\n const d128string = inspect(this.toString(), options);\n return `new Decimal128(${d128string})`;\n }\n}\n\nclass Double extends BSONValue {\n get _bsontype() {\n return 'Double';\n }\n constructor(value) {\n super();\n if (value instanceof Number) {\n value = value.valueOf();\n }\n this.value = +value;\n }\n static fromString(value) {\n const coercedValue = Number(value);\n if (value === 'NaN')\n return new Double(NaN);\n if (value === 'Infinity')\n return new Double(Infinity);\n if (value === '-Infinity')\n return new Double(-Infinity);\n if (!Number.isFinite(coercedValue)) {\n throw new BSONError(`Input: ${value} is not representable as a Double`);\n }\n if (value.trim() !== value) {\n throw new BSONError(`Input: '${value}' contains whitespace`);\n }\n if (value === '') {\n throw new BSONError(`Input is an empty string`);\n }\n if (/[^-0-9.+eE]/.test(value)) {\n throw new BSONError(`Input: '${value}' is not in decimal or exponential notation`);\n }\n return new Double(coercedValue);\n }\n valueOf() {\n return this.value;\n }\n toJSON() {\n return this.value;\n }\n toString(radix) {\n return this.value.toString(radix);\n }\n toExtendedJSON(options) {\n if (options && (options.legacy || (options.relaxed && isFinite(this.value)))) {\n return this.value;\n }\n if (Object.is(Math.sign(this.value), -0)) {\n return { $numberDouble: '-0.0' };\n }\n return {\n $numberDouble: Number.isInteger(this.value) ? this.value.toFixed(1) : this.value.toString()\n };\n }\n static fromExtendedJSON(doc, options) {\n const doubleValue = parseFloat(doc.$numberDouble);\n return options && options.relaxed ? doubleValue : new Double(doubleValue);\n }\n inspect(depth, options, inspect) {\n inspect ??= defaultInspect;\n return `new Double(${inspect(this.value, options)})`;\n }\n}\n\nclass Int32 extends BSONValue {\n get _bsontype() {\n return 'Int32';\n }\n constructor(value) {\n super();\n if (value instanceof Number) {\n value = value.valueOf();\n }\n this.value = +value | 0;\n }\n static fromString(value) {\n const cleanedValue = removeLeadingZerosAndExplicitPlus(value);\n const coercedValue = Number(value);\n if (BSON_INT32_MAX < coercedValue) {\n throw new BSONError(`Input: '${value}' is larger than the maximum value for Int32`);\n }\n else if (BSON_INT32_MIN > coercedValue) {\n throw new BSONError(`Input: '${value}' is smaller than the minimum value for Int32`);\n }\n else if (!Number.isSafeInteger(coercedValue)) {\n throw new BSONError(`Input: '${value}' is not a safe integer`);\n }\n else if (coercedValue.toString() !== cleanedValue) {\n throw new BSONError(`Input: '${value}' is not a valid Int32 string`);\n }\n return new Int32(coercedValue);\n }\n valueOf() {\n return this.value;\n }\n toString(radix) {\n return this.value.toString(radix);\n }\n toJSON() {\n return this.value;\n }\n toExtendedJSON(options) {\n if (options && (options.relaxed || options.legacy))\n return this.value;\n return { $numberInt: this.value.toString() };\n }\n static fromExtendedJSON(doc, options) {\n return options && options.relaxed ? parseInt(doc.$numberInt, 10) : new Int32(doc.$numberInt);\n }\n inspect(depth, options, inspect) {\n inspect ??= defaultInspect;\n return `new Int32(${inspect(this.value, options)})`;\n }\n}\n\nclass MaxKey extends BSONValue {\n get _bsontype() {\n return 'MaxKey';\n }\n toExtendedJSON() {\n return { $maxKey: 1 };\n }\n static fromExtendedJSON() {\n return new MaxKey();\n }\n inspect() {\n return 'new MaxKey()';\n }\n}\n\nclass MinKey extends BSONValue {\n get _bsontype() {\n return 'MinKey';\n }\n toExtendedJSON() {\n return { $minKey: 1 };\n }\n static fromExtendedJSON() {\n return new MinKey();\n }\n inspect() {\n return 'new MinKey()';\n }\n}\n\nlet PROCESS_UNIQUE = null;\nconst __idCache = new WeakMap();\nclass ObjectId extends BSONValue {\n get _bsontype() {\n return 'ObjectId';\n }\n constructor(inputId) {\n super();\n let workingId;\n if (typeof inputId === 'object' && inputId && 'id' in inputId) {\n if (typeof inputId.id !== 'string' && !ArrayBuffer.isView(inputId.id)) {\n throw new BSONError('Argument passed in must have an id that is of type string or Buffer');\n }\n if ('toHexString' in inputId && typeof inputId.toHexString === 'function') {\n workingId = ByteUtils.fromHex(inputId.toHexString());\n }\n else {\n workingId = inputId.id;\n }\n }\n else {\n workingId = inputId;\n }\n if (workingId == null || typeof workingId === 'number') {\n this.buffer = ObjectId.generate(typeof workingId === 'number' ? workingId : undefined);\n }\n else if (ArrayBuffer.isView(workingId) && workingId.byteLength === 12) {\n this.buffer = ByteUtils.toLocalBufferType(workingId);\n }\n else if (typeof workingId === 'string') {\n if (ObjectId.validateHexString(workingId)) {\n this.buffer = ByteUtils.fromHex(workingId);\n if (ObjectId.cacheHexString) {\n __idCache.set(this, workingId);\n }\n }\n else {\n throw new BSONError('input must be a 24 character hex string, 12 byte Uint8Array, or an integer');\n }\n }\n else {\n throw new BSONError('Argument passed in does not match the accepted types');\n }\n }\n get id() {\n return this.buffer;\n }\n set id(value) {\n this.buffer = value;\n if (ObjectId.cacheHexString) {\n __idCache.set(this, ByteUtils.toHex(value));\n }\n }\n static validateHexString(string) {\n if (string?.length !== 24)\n return false;\n for (let i = 0; i < 24; i++) {\n const char = string.charCodeAt(i);\n if ((char >= 48 && char <= 57) ||\n (char >= 97 && char <= 102) ||\n (char >= 65 && char <= 70)) {\n continue;\n }\n return false;\n }\n return true;\n }\n toHexString() {\n if (ObjectId.cacheHexString) {\n const __id = __idCache.get(this);\n if (__id)\n return __id;\n }\n const hexString = ByteUtils.toHex(this.id);\n if (ObjectId.cacheHexString) {\n __idCache.set(this, hexString);\n }\n return hexString;\n }\n static getInc() {\n return (ObjectId.index = (ObjectId.index + 1) % 0xffffff);\n }\n static generate(time) {\n if ('number' !== typeof time) {\n time = Math.floor(Date.now() / 1000);\n }\n const inc = ObjectId.getInc();\n const buffer = ByteUtils.allocateUnsafe(12);\n NumberUtils.setInt32BE(buffer, 0, time);\n if (PROCESS_UNIQUE === null) {\n PROCESS_UNIQUE = ByteUtils.randomBytes(5);\n }\n buffer[4] = PROCESS_UNIQUE[0];\n buffer[5] = PROCESS_UNIQUE[1];\n buffer[6] = PROCESS_UNIQUE[2];\n buffer[7] = PROCESS_UNIQUE[3];\n buffer[8] = PROCESS_UNIQUE[4];\n buffer[11] = inc & 0xff;\n buffer[10] = (inc >> 8) & 0xff;\n buffer[9] = (inc >> 16) & 0xff;\n return buffer;\n }\n toString(encoding) {\n if (encoding === 'base64')\n return ByteUtils.toBase64(this.id);\n if (encoding === 'hex')\n return this.toHexString();\n return this.toHexString();\n }\n toJSON() {\n return this.toHexString();\n }\n static is(variable) {\n return (variable != null &&\n typeof variable === 'object' &&\n '_bsontype' in variable &&\n variable._bsontype === 'ObjectId');\n }\n equals(otherId) {\n if (otherId === undefined || otherId === null) {\n return false;\n }\n if (ObjectId.is(otherId)) {\n return (this.buffer[11] === otherId.buffer[11] && ByteUtils.equals(this.buffer, otherId.buffer));\n }\n if (typeof otherId === 'string') {\n return otherId.toLowerCase() === this.toHexString();\n }\n if (typeof otherId === 'object' && typeof otherId.toHexString === 'function') {\n const otherIdString = otherId.toHexString();\n const thisIdString = this.toHexString();\n return typeof otherIdString === 'string' && otherIdString.toLowerCase() === thisIdString;\n }\n return false;\n }\n getTimestamp() {\n const timestamp = new Date();\n const time = NumberUtils.getUint32BE(this.buffer, 0);\n timestamp.setTime(Math.floor(time) * 1000);\n return timestamp;\n }\n static createPk() {\n return new ObjectId();\n }\n serializeInto(uint8array, index) {\n uint8array[index] = this.buffer[0];\n uint8array[index + 1] = this.buffer[1];\n uint8array[index + 2] = this.buffer[2];\n uint8array[index + 3] = this.buffer[3];\n uint8array[index + 4] = this.buffer[4];\n uint8array[index + 5] = this.buffer[5];\n uint8array[index + 6] = this.buffer[6];\n uint8array[index + 7] = this.buffer[7];\n uint8array[index + 8] = this.buffer[8];\n uint8array[index + 9] = this.buffer[9];\n uint8array[index + 10] = this.buffer[10];\n uint8array[index + 11] = this.buffer[11];\n return 12;\n }\n static createFromTime(time) {\n const buffer = ByteUtils.allocate(12);\n for (let i = 11; i >= 4; i--)\n buffer[i] = 0;\n NumberUtils.setInt32BE(buffer, 0, time);\n return new ObjectId(buffer);\n }\n static createFromHexString(hexString) {\n if (hexString?.length !== 24) {\n throw new BSONError('hex string must be 24 characters');\n }\n return new ObjectId(ByteUtils.fromHex(hexString));\n }\n static createFromBase64(base64) {\n if (base64?.length !== 16) {\n throw new BSONError('base64 string must be 16 characters');\n }\n return new ObjectId(ByteUtils.fromBase64(base64));\n }\n static isValid(id) {\n if (id == null)\n return false;\n if (typeof id === 'string')\n return ObjectId.validateHexString(id);\n try {\n new ObjectId(id);\n return true;\n }\n catch {\n return false;\n }\n }\n toExtendedJSON() {\n if (this.toHexString)\n return { $oid: this.toHexString() };\n return { $oid: this.toString('hex') };\n }\n static fromExtendedJSON(doc) {\n return new ObjectId(doc.$oid);\n }\n isCached() {\n return ObjectId.cacheHexString && __idCache.has(this);\n }\n inspect(depth, options, inspect) {\n inspect ??= defaultInspect;\n return `new ObjectId(${inspect(this.toHexString(), options)})`;\n }\n}\nObjectId.index = Math.floor(Math.random() * 0xffffff);\n\nfunction internalCalculateObjectSize(object, serializeFunctions, ignoreUndefined) {\n let totalLength = 4 + 1;\n if (Array.isArray(object)) {\n for (let i = 0; i < object.length; i++) {\n totalLength += calculateElement(i.toString(), object[i], serializeFunctions, true, ignoreUndefined);\n }\n }\n else {\n if (typeof object?.toBSON === 'function') {\n object = object.toBSON();\n }\n for (const key of Object.keys(object)) {\n totalLength += calculateElement(key, object[key], serializeFunctions, false, ignoreUndefined);\n }\n }\n return totalLength;\n}\nfunction calculateElement(name, value, serializeFunctions = false, isArray = false, ignoreUndefined = false) {\n if (typeof value?.toBSON === 'function') {\n value = value.toBSON();\n }\n switch (typeof value) {\n case 'string':\n return 1 + ByteUtils.utf8ByteLength(name) + 1 + 4 + ByteUtils.utf8ByteLength(value) + 1;\n case 'number':\n if (Math.floor(value) === value &&\n value >= JS_INT_MIN &&\n value <= JS_INT_MAX) {\n if (value >= BSON_INT32_MIN && value <= BSON_INT32_MAX) {\n return (name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) + (4 + 1);\n }\n else {\n return (name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) + (8 + 1);\n }\n }\n else {\n return (name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) + (8 + 1);\n }\n case 'undefined':\n if (isArray || !ignoreUndefined)\n return (name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) + 1;\n return 0;\n case 'boolean':\n return (name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) + (1 + 1);\n case 'object':\n if (value != null &&\n typeof value._bsontype === 'string' &&\n value[BSON_VERSION_SYMBOL] !== BSON_MAJOR_VERSION) {\n throw new BSONVersionError();\n }\n else if (value == null || value._bsontype === 'MinKey' || value._bsontype === 'MaxKey') {\n return (name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) + 1;\n }\n else if (value._bsontype === 'ObjectId') {\n return (name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) + (12 + 1);\n }\n else if (value instanceof Date || isDate(value)) {\n return (name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) + (8 + 1);\n }\n else if (ArrayBuffer.isView(value) ||\n value instanceof ArrayBuffer ||\n isAnyArrayBuffer(value)) {\n return ((name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) + (1 + 4 + 1) + value.byteLength);\n }\n else if (value._bsontype === 'Long' ||\n value._bsontype === 'Double' ||\n value._bsontype === 'Timestamp') {\n return (name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) + (8 + 1);\n }\n else if (value._bsontype === 'Decimal128') {\n return (name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) + (16 + 1);\n }\n else if (value._bsontype === 'Code') {\n if (value.scope != null && Object.keys(value.scope).length > 0) {\n return ((name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) +\n 1 +\n 4 +\n 4 +\n ByteUtils.utf8ByteLength(value.code.toString()) +\n 1 +\n internalCalculateObjectSize(value.scope, serializeFunctions, ignoreUndefined));\n }\n else {\n return ((name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) +\n 1 +\n 4 +\n ByteUtils.utf8ByteLength(value.code.toString()) +\n 1);\n }\n }\n else if (value._bsontype === 'Binary') {\n const binary = value;\n if (binary.sub_type === Binary.SUBTYPE_BYTE_ARRAY) {\n return ((name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) +\n (binary.position + 1 + 4 + 1 + 4));\n }\n else {\n return ((name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) + (binary.position + 1 + 4 + 1));\n }\n }\n else if (value._bsontype === 'Symbol') {\n return ((name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) +\n ByteUtils.utf8ByteLength(value.value) +\n 4 +\n 1 +\n 1);\n }\n else if (value._bsontype === 'DBRef') {\n const ordered_values = Object.assign({\n $ref: value.collection,\n $id: value.oid\n }, value.fields);\n if (value.db != null) {\n ordered_values['$db'] = value.db;\n }\n return ((name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) +\n 1 +\n internalCalculateObjectSize(ordered_values, serializeFunctions, ignoreUndefined));\n }\n else if (value instanceof RegExp || isRegExp(value)) {\n return ((name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) +\n 1 +\n ByteUtils.utf8ByteLength(value.source) +\n 1 +\n (value.global ? 1 : 0) +\n (value.ignoreCase ? 1 : 0) +\n (value.multiline ? 1 : 0) +\n 1);\n }\n else if (value._bsontype === 'BSONRegExp') {\n return ((name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) +\n 1 +\n ByteUtils.utf8ByteLength(value.pattern) +\n 1 +\n ByteUtils.utf8ByteLength(value.options) +\n 1);\n }\n else {\n return ((name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) +\n internalCalculateObjectSize(value, serializeFunctions, ignoreUndefined) +\n 1);\n }\n case 'function':\n if (serializeFunctions) {\n return ((name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) +\n 1 +\n 4 +\n ByteUtils.utf8ByteLength(value.toString()) +\n 1);\n }\n return 0;\n case 'bigint':\n return (name != null ? ByteUtils.utf8ByteLength(name) + 1 : 0) + (8 + 1);\n case 'symbol':\n return 0;\n default:\n throw new BSONError(`Unrecognized JS type: ${typeof value}`);\n }\n}\n\nfunction alphabetize(str) {\n return str.split('').sort().join('');\n}\nclass BSONRegExp extends BSONValue {\n get _bsontype() {\n return 'BSONRegExp';\n }\n constructor(pattern, options) {\n super();\n this.pattern = pattern;\n this.options = alphabetize(options ?? '');\n if (this.pattern.indexOf('\\x00') !== -1) {\n throw new BSONError(`BSON Regex patterns cannot contain null bytes, found: ${JSON.stringify(this.pattern)}`);\n }\n if (this.options.indexOf('\\x00') !== -1) {\n throw new BSONError(`BSON Regex options cannot contain null bytes, found: ${JSON.stringify(this.options)}`);\n }\n for (let i = 0; i < this.options.length; i++) {\n if (!(this.options[i] === 'i' ||\n this.options[i] === 'm' ||\n this.options[i] === 'x' ||\n this.options[i] === 'l' ||\n this.options[i] === 's' ||\n this.options[i] === 'u')) {\n throw new BSONError(`The regular expression option [${this.options[i]}] is not supported`);\n }\n }\n }\n static parseOptions(options) {\n return options ? options.split('').sort().join('') : '';\n }\n toExtendedJSON(options) {\n options = options || {};\n if (options.legacy) {\n return { $regex: this.pattern, $options: this.options };\n }\n return { $regularExpression: { pattern: this.pattern, options: this.options } };\n }\n static fromExtendedJSON(doc) {\n if ('$regex' in doc) {\n if (typeof doc.$regex !== 'string') {\n if (doc.$regex._bsontype === 'BSONRegExp') {\n return doc;\n }\n }\n else {\n return new BSONRegExp(doc.$regex, BSONRegExp.parseOptions(doc.$options));\n }\n }\n if ('$regularExpression' in doc) {\n return new BSONRegExp(doc.$regularExpression.pattern, BSONRegExp.parseOptions(doc.$regularExpression.options));\n }\n throw new BSONError(`Unexpected BSONRegExp EJSON object form: ${JSON.stringify(doc)}`);\n }\n inspect(depth, options, inspect) {\n const stylize = getStylizeFunction(options) ?? (v => v);\n inspect ??= defaultInspect;\n const pattern = stylize(inspect(this.pattern), 'regexp');\n const flags = stylize(inspect(this.options), 'regexp');\n return `new BSONRegExp(${pattern}, ${flags})`;\n }\n}\n\nclass BSONSymbol extends BSONValue {\n get _bsontype() {\n return 'BSONSymbol';\n }\n constructor(value) {\n super();\n this.value = value;\n }\n valueOf() {\n return this.value;\n }\n toString() {\n return this.value;\n }\n toJSON() {\n return this.value;\n }\n toExtendedJSON() {\n return { $symbol: this.value };\n }\n static fromExtendedJSON(doc) {\n return new BSONSymbol(doc.$symbol);\n }\n inspect(depth, options, inspect) {\n inspect ??= defaultInspect;\n return `new BSONSymbol(${inspect(this.value, options)})`;\n }\n}\n\nconst LongWithoutOverridesClass = Long;\nclass Timestamp extends LongWithoutOverridesClass {\n get _bsontype() {\n return 'Timestamp';\n }\n get i() {\n return this.low >>> 0;\n }\n get t() {\n return this.high >>> 0;\n }\n constructor(low) {\n if (low == null) {\n super(0, 0, true);\n }\n else if (typeof low === 'bigint') {\n super(low, true);\n }\n else if (Long.isLong(low)) {\n super(low.low, low.high, true);\n }\n else if (typeof low === 'object' && 't' in low && 'i' in low) {\n if (typeof low.t !== 'number' && (typeof low.t !== 'object' || low.t._bsontype !== 'Int32')) {\n throw new BSONError('Timestamp constructed from { t, i } must provide t as a number');\n }\n if (typeof low.i !== 'number' && (typeof low.i !== 'object' || low.i._bsontype !== 'Int32')) {\n throw new BSONError('Timestamp constructed from { t, i } must provide i as a number');\n }\n const t = Number(low.t);\n const i = Number(low.i);\n if (t < 0 || Number.isNaN(t)) {\n throw new BSONError('Timestamp constructed from { t, i } must provide a positive t');\n }\n if (i < 0 || Number.isNaN(i)) {\n throw new BSONError('Timestamp constructed from { t, i } must provide a positive i');\n }\n if (t > 0xffff_ffff) {\n throw new BSONError('Timestamp constructed from { t, i } must provide t equal or less than uint32 max');\n }\n if (i > 0xffff_ffff) {\n throw new BSONError('Timestamp constructed from { t, i } must provide i equal or less than uint32 max');\n }\n super(i, t, true);\n }\n else {\n throw new BSONError('A Timestamp can only be constructed with: bigint, Long, or { t: number; i: number }');\n }\n }\n toJSON() {\n return {\n $timestamp: this.toString()\n };\n }\n static fromInt(value) {\n return new Timestamp(Long.fromInt(value, true));\n }\n static fromNumber(value) {\n return new Timestamp(Long.fromNumber(value, true));\n }\n static fromBits(lowBits, highBits) {\n return new Timestamp({ i: lowBits, t: highBits });\n }\n static fromString(str, optRadix) {\n return new Timestamp(Long.fromString(str, true, optRadix));\n }\n toExtendedJSON() {\n return { $timestamp: { t: this.t, i: this.i } };\n }\n static fromExtendedJSON(doc) {\n const i = Long.isLong(doc.$timestamp.i)\n ? doc.$timestamp.i.getLowBitsUnsigned()\n : doc.$timestamp.i;\n const t = Long.isLong(doc.$timestamp.t)\n ? doc.$timestamp.t.getLowBitsUnsigned()\n : doc.$timestamp.t;\n return new Timestamp({ t, i });\n }\n inspect(depth, options, inspect) {\n inspect ??= defaultInspect;\n const t = inspect(this.t, options);\n const i = inspect(this.i, options);\n return `new Timestamp({ t: ${t}, i: ${i} })`;\n }\n}\nTimestamp.MAX_VALUE = Long.MAX_UNSIGNED_VALUE;\n\nconst JS_INT_MAX_LONG = Long.fromNumber(JS_INT_MAX);\nconst JS_INT_MIN_LONG = Long.fromNumber(JS_INT_MIN);\nfunction internalDeserialize(buffer, options, isArray) {\n options = options == null ? {} : options;\n const index = options && options.index ? options.index : 0;\n const size = NumberUtils.getInt32LE(buffer, index);\n if (size < 5) {\n throw new BSONError(`bson size must be >= 5, is ${size}`);\n }\n if (options.allowObjectSmallerThanBufferSize && buffer.length < size) {\n throw new BSONError(`buffer length ${buffer.length} must be >= bson size ${size}`);\n }\n if (!options.allowObjectSmallerThanBufferSize && buffer.length !== size) {\n throw new BSONError(`buffer length ${buffer.length} must === bson size ${size}`);\n }\n if (size + index > buffer.byteLength) {\n throw new BSONError(`(bson size ${size} + options.index ${index} must be <= buffer length ${buffer.byteLength})`);\n }\n if (buffer[index + size - 1] !== 0) {\n throw new BSONError(\"One object, sized correctly, with a spot for an EOO, but the EOO isn't 0x00\");\n }\n return deserializeObject(buffer, index, options, isArray);\n}\nconst allowedDBRefKeys = /^\\$ref$|^\\$id$|^\\$db$/;\nfunction deserializeObject(buffer, index, options, isArray = false) {\n const fieldsAsRaw = options['fieldsAsRaw'] == null ? null : options['fieldsAsRaw'];\n const raw = options['raw'] == null ? false : options['raw'];\n const bsonRegExp = typeof options['bsonRegExp'] === 'boolean' ? options['bsonRegExp'] : false;\n const promoteBuffers = options.promoteBuffers ?? false;\n const promoteLongs = options.promoteLongs ?? true;\n const promoteValues = options.promoteValues ?? true;\n const useBigInt64 = options.useBigInt64 ?? false;\n if (useBigInt64 && !promoteValues) {\n throw new BSONError('Must either request bigint or Long for int64 deserialization');\n }\n if (useBigInt64 && !promoteLongs) {\n throw new BSONError('Must either request bigint or Long for int64 deserialization');\n }\n const validation = options.validation == null ? { utf8: true } : options.validation;\n let globalUTFValidation = true;\n let validationSetting;\n let utf8KeysSet;\n const utf8ValidatedKeys = validation.utf8;\n if (typeof utf8ValidatedKeys === 'boolean') {\n validationSetting = utf8ValidatedKeys;\n }\n else {\n globalUTFValidation = false;\n const utf8ValidationValues = Object.keys(utf8ValidatedKeys).map(function (key) {\n return utf8ValidatedKeys[key];\n });\n if (utf8ValidationValues.length === 0) {\n throw new BSONError('UTF-8 validation setting cannot be empty');\n }\n if (typeof utf8ValidationValues[0] !== 'boolean') {\n throw new BSONError('Invalid UTF-8 validation option, must specify boolean values');\n }\n validationSetting = utf8ValidationValues[0];\n if (!utf8ValidationValues.every(item => item === validationSetting)) {\n throw new BSONError('Invalid UTF-8 validation option - keys must be all true or all false');\n }\n }\n if (!globalUTFValidation) {\n utf8KeysSet = new Set();\n for (const key of Object.keys(utf8ValidatedKeys)) {\n utf8KeysSet.add(key);\n }\n }\n const startIndex = index;\n if (buffer.length < 5)\n throw new BSONError('corrupt bson message < 5 bytes long');\n const size = NumberUtils.getInt32LE(buffer, index);\n index += 4;\n if (size < 5 || size > buffer.length)\n throw new BSONError('corrupt bson message');\n const object = isArray ? [] : {};\n let arrayIndex = 0;\n let isPossibleDBRef = isArray ? false : null;\n while (true) {\n const elementType = buffer[index++];\n if (elementType === 0)\n break;\n let i = index;\n while (buffer[i] !== 0x00 && i < buffer.length) {\n i++;\n }\n if (i >= buffer.byteLength)\n throw new BSONError('Bad BSON Document: illegal CString');\n const name = isArray ? arrayIndex++ : ByteUtils.toUTF8(buffer, index, i, false);\n let shouldValidateKey = true;\n if (globalUTFValidation || utf8KeysSet?.has(name)) {\n shouldValidateKey = validationSetting;\n }\n else {\n shouldValidateKey = !validationSetting;\n }\n if (isPossibleDBRef !== false && name[0] === '$') {\n isPossibleDBRef = allowedDBRefKeys.test(name);\n }\n let value;\n index = i + 1;\n if (elementType === BSON_DATA_STRING) {\n const stringSize = NumberUtils.getInt32LE(buffer, index);\n index += 4;\n if (stringSize <= 0 ||\n stringSize > buffer.length - index ||\n buffer[index + stringSize - 1] !== 0) {\n throw new BSONError('bad string length in bson');\n }\n value = ByteUtils.toUTF8(buffer, index, index + stringSize - 1, shouldValidateKey);\n index = index + stringSize;\n }\n else if (elementType === BSON_DATA_OID) {\n const oid = ByteUtils.allocateUnsafe(12);\n for (let i = 0; i < 12; i++)\n oid[i] = buffer[index + i];\n value = new ObjectId(oid);\n index = index + 12;\n }\n else if (elementType === BSON_DATA_INT && promoteValues === false) {\n value = new Int32(NumberUtils.getInt32LE(buffer, index));\n index += 4;\n }\n else if (elementType === BSON_DATA_INT) {\n value = NumberUtils.getInt32LE(buffer, index);\n index += 4;\n }\n else if (elementType === BSON_DATA_NUMBER) {\n value = NumberUtils.getFloat64LE(buffer, index);\n index += 8;\n if (promoteValues === false)\n value = new Double(value);\n }\n else if (elementType === BSON_DATA_DATE) {\n const lowBits = NumberUtils.getInt32LE(buffer, index);\n const highBits = NumberUtils.getInt32LE(buffer, index + 4);\n index += 8;\n value = new Date(new Long(lowBits, highBits).toNumber());\n }\n else if (elementType === BSON_DATA_BOOLEAN) {\n if (buffer[index] !== 0 && buffer[index] !== 1)\n throw new BSONError('illegal boolean type value');\n value = buffer[index++] === 1;\n }\n else if (elementType === BSON_DATA_OBJECT) {\n const _index = index;\n const objectSize = NumberUtils.getInt32LE(buffer, index);\n if (objectSize <= 0 || objectSize > buffer.length - index)\n throw new BSONError('bad embedded document length in bson');\n if (raw) {\n value = buffer.subarray(index, index + objectSize);\n }\n else {\n let objectOptions = options;\n if (!globalUTFValidation) {\n objectOptions = { ...options, validation: { utf8: shouldValidateKey } };\n }\n value = deserializeObject(buffer, _index, objectOptions, false);\n }\n index = index + objectSize;\n }\n else if (elementType === BSON_DATA_ARRAY) {\n const _index = index;\n const objectSize = NumberUtils.getInt32LE(buffer, index);\n let arrayOptions = options;\n const stopIndex = index + objectSize;\n if (fieldsAsRaw && fieldsAsRaw[name]) {\n arrayOptions = { ...options, raw: true };\n }\n if (!globalUTFValidation) {\n arrayOptions = { ...arrayOptions, validation: { utf8: shouldValidateKey } };\n }\n value = deserializeObject(buffer, _index, arrayOptions, true);\n index = index + objectSize;\n if (buffer[index - 1] !== 0)\n throw new BSONError('invalid array terminator byte');\n if (index !== stopIndex)\n throw new BSONError('corrupted array bson');\n }\n else if (elementType === BSON_DATA_UNDEFINED) {\n value = undefined;\n }\n else if (elementType === BSON_DATA_NULL) {\n value = null;\n }\n else if (elementType === BSON_DATA_LONG) {\n if (useBigInt64) {\n value = NumberUtils.getBigInt64LE(buffer, index);\n index += 8;\n }\n else {\n const lowBits = NumberUtils.getInt32LE(buffer, index);\n const highBits = NumberUtils.getInt32LE(buffer, index + 4);\n index += 8;\n const long = new Long(lowBits, highBits);\n if (promoteLongs && promoteValues === true) {\n value =\n long.lessThanOrEqual(JS_INT_MAX_LONG) && long.greaterThanOrEqual(JS_INT_MIN_LONG)\n ? long.toNumber()\n : long;\n }\n else {\n value = long;\n }\n }\n }\n else if (elementType === BSON_DATA_DECIMAL128) {\n const bytes = ByteUtils.allocateUnsafe(16);\n for (let i = 0; i < 16; i++)\n bytes[i] = buffer[index + i];\n index = index + 16;\n value = new Decimal128(bytes);\n }\n else if (elementType === BSON_DATA_BINARY) {\n let binarySize = NumberUtils.getInt32LE(buffer, index);\n index += 4;\n const totalBinarySize = binarySize;\n const subType = buffer[index++];\n if (binarySize < 0)\n throw new BSONError('Negative binary type element size found');\n if (binarySize > buffer.byteLength)\n throw new BSONError('Binary type size larger than document size');\n if (subType === Binary.SUBTYPE_BYTE_ARRAY) {\n binarySize = NumberUtils.getInt32LE(buffer, index);\n index += 4;\n if (binarySize < 0)\n throw new BSONError('Negative binary type element size found for subtype 0x02');\n if (binarySize > totalBinarySize - 4)\n throw new BSONError('Binary type with subtype 0x02 contains too long binary size');\n if (binarySize < totalBinarySize - 4)\n throw new BSONError('Binary type with subtype 0x02 contains too short binary size');\n }\n if (promoteBuffers && promoteValues) {\n value = ByteUtils.toLocalBufferType(buffer.subarray(index, index + binarySize));\n }\n else {\n value = new Binary(buffer.subarray(index, index + binarySize), subType);\n if (subType === BSON_BINARY_SUBTYPE_UUID_NEW && UUID.isValid(value)) {\n value = value.toUUID();\n }\n }\n index = index + binarySize;\n }\n else if (elementType === BSON_DATA_REGEXP && bsonRegExp === false) {\n i = index;\n while (buffer[i] !== 0x00 && i < buffer.length) {\n i++;\n }\n if (i >= buffer.length)\n throw new BSONError('Bad BSON Document: illegal CString');\n const source = ByteUtils.toUTF8(buffer, index, i, false);\n index = i + 1;\n i = index;\n while (buffer[i] !== 0x00 && i < buffer.length) {\n i++;\n }\n if (i >= buffer.length)\n throw new BSONError('Bad BSON Document: illegal CString');\n const regExpOptions = ByteUtils.toUTF8(buffer, index, i, false);\n index = i + 1;\n const optionsArray = new Array(regExpOptions.length);\n for (i = 0; i < regExpOptions.length; i++) {\n switch (regExpOptions[i]) {\n case 'm':\n optionsArray[i] = 'm';\n break;\n case 's':\n optionsArray[i] = 'g';\n break;\n case 'i':\n optionsArray[i] = 'i';\n break;\n }\n }\n value = new RegExp(source, optionsArray.join(''));\n }\n else if (elementType === BSON_DATA_REGEXP && bsonRegExp === true) {\n i = index;\n while (buffer[i] !== 0x00 && i < buffer.length) {\n i++;\n }\n if (i >= buffer.length)\n throw new BSONError('Bad BSON Document: illegal CString');\n const source = ByteUtils.toUTF8(buffer, index, i, false);\n index = i + 1;\n i = index;\n while (buffer[i] !== 0x00 && i < buffer.length) {\n i++;\n }\n if (i >= buffer.length)\n throw new BSONError('Bad BSON Document: illegal CString');\n const regExpOptions = ByteUtils.toUTF8(buffer, index, i, false);\n index = i + 1;\n value = new BSONRegExp(source, regExpOptions);\n }\n else if (elementType === BSON_DATA_SYMBOL) {\n const stringSize = NumberUtils.getInt32LE(buffer, index);\n index += 4;\n if (stringSize <= 0 ||\n stringSize > buffer.length - index ||\n buffer[index + stringSize - 1] !== 0) {\n throw new BSONError('bad string length in bson');\n }\n const symbol = ByteUtils.toUTF8(buffer, index, index + stringSize - 1, shouldValidateKey);\n value = promoteValues ? symbol : new BSONSymbol(symbol);\n index = index + stringSize;\n }\n else if (elementType === BSON_DATA_TIMESTAMP) {\n value = new Timestamp({\n i: NumberUtils.getUint32LE(buffer, index),\n t: NumberUtils.getUint32LE(buffer, index + 4)\n });\n index += 8;\n }\n else if (elementType === BSON_DATA_MIN_KEY) {\n value = new MinKey();\n }\n else if (elementType === BSON_DATA_MAX_KEY) {\n value = new MaxKey();\n }\n else if (elementType === BSON_DATA_CODE) {\n const stringSize = NumberUtils.getInt32LE(buffer, index);\n index += 4;\n if (stringSize <= 0 ||\n stringSize > buffer.length - index ||\n buffer[index + stringSize - 1] !== 0) {\n throw new BSONError('bad string length in bson');\n }\n const functionString = ByteUtils.toUTF8(buffer, index, index + stringSize - 1, shouldValidateKey);\n value = new Code(functionString);\n index = index + stringSize;\n }\n else if (elementType === BSON_DATA_CODE_W_SCOPE) {\n const totalSize = NumberUtils.getInt32LE(buffer, index);\n index += 4;\n if (totalSize < 4 + 4 + 4 + 1) {\n throw new BSONError('code_w_scope total size shorter minimum expected length');\n }\n const stringSize = NumberUtils.getInt32LE(buffer, index);\n index += 4;\n if (stringSize <= 0 ||\n stringSize > buffer.length - index ||\n buffer[index + stringSize - 1] !== 0) {\n throw new BSONError('bad string length in bson');\n }\n const functionString = ByteUtils.toUTF8(buffer, index, index + stringSize - 1, shouldValidateKey);\n index = index + stringSize;\n const _index = index;\n const objectSize = NumberUtils.getInt32LE(buffer, index);\n const scopeObject = deserializeObject(buffer, _index, options, false);\n index = index + objectSize;\n if (totalSize < 4 + 4 + objectSize + stringSize) {\n throw new BSONError('code_w_scope total size is too short, truncating scope');\n }\n if (totalSize > 4 + 4 + objectSize + stringSize) {\n throw new BSONError('code_w_scope total size is too long, clips outer document');\n }\n value = new Code(functionString, scopeObject);\n }\n else if (elementType === BSON_DATA_DBPOINTER) {\n const stringSize = NumberUtils.getInt32LE(buffer, index);\n index += 4;\n if (stringSize <= 0 ||\n stringSize > buffer.length - index ||\n buffer[index + stringSize - 1] !== 0)\n throw new BSONError('bad string length in bson');\n const namespace = ByteUtils.toUTF8(buffer, index, index + stringSize - 1, shouldValidateKey);\n index = index + stringSize;\n const oidBuffer = ByteUtils.allocateUnsafe(12);\n for (let i = 0; i < 12; i++)\n oidBuffer[i] = buffer[index + i];\n const oid = new ObjectId(oidBuffer);\n index = index + 12;\n value = new DBRef(namespace, oid);\n }\n else {\n throw new BSONError(`Detected unknown BSON type ${elementType.toString(16)} for fieldname \"${name}\"`);\n }\n if (name === '__proto__') {\n Object.defineProperty(object, name, {\n value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n else {\n object[name] = value;\n }\n }\n if (size !== index - startIndex) {\n if (isArray)\n throw new BSONError('corrupt array bson');\n throw new BSONError('corrupt object bson');\n }\n if (!isPossibleDBRef)\n return object;\n if (isDBRefLike(object)) {\n const copy = Object.assign({}, object);\n delete copy.$ref;\n delete copy.$id;\n delete copy.$db;\n return new DBRef(object.$ref, object.$id, object.$db, copy);\n }\n return object;\n}\n\nconst regexp = /\\x00/;\nconst ignoreKeys = new Set(['$db', '$ref', '$id', '$clusterTime']);\nfunction serializeString(buffer, key, value, index) {\n buffer[index++] = BSON_DATA_STRING;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes + 1;\n buffer[index - 1] = 0;\n const size = ByteUtils.encodeUTF8Into(buffer, value, index + 4);\n NumberUtils.setInt32LE(buffer, index, size + 1);\n index = index + 4 + size;\n buffer[index++] = 0;\n return index;\n}\nfunction serializeNumber(buffer, key, value, index) {\n const isNegativeZero = Object.is(value, -0);\n const type = !isNegativeZero &&\n Number.isSafeInteger(value) &&\n value <= BSON_INT32_MAX &&\n value >= BSON_INT32_MIN\n ? BSON_DATA_INT\n : BSON_DATA_NUMBER;\n buffer[index++] = type;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes;\n buffer[index++] = 0x00;\n if (type === BSON_DATA_INT) {\n index += NumberUtils.setInt32LE(buffer, index, value);\n }\n else {\n index += NumberUtils.setFloat64LE(buffer, index, value);\n }\n return index;\n}\nfunction serializeBigInt(buffer, key, value, index) {\n buffer[index++] = BSON_DATA_LONG;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index += numberOfWrittenBytes;\n buffer[index++] = 0;\n index += NumberUtils.setBigInt64LE(buffer, index, value);\n return index;\n}\nfunction serializeNull(buffer, key, _, index) {\n buffer[index++] = BSON_DATA_NULL;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes;\n buffer[index++] = 0;\n return index;\n}\nfunction serializeBoolean(buffer, key, value, index) {\n buffer[index++] = BSON_DATA_BOOLEAN;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes;\n buffer[index++] = 0;\n buffer[index++] = value ? 1 : 0;\n return index;\n}\nfunction serializeDate(buffer, key, value, index) {\n buffer[index++] = BSON_DATA_DATE;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes;\n buffer[index++] = 0;\n const dateInMilis = Long.fromNumber(value.getTime());\n const lowBits = dateInMilis.getLowBits();\n const highBits = dateInMilis.getHighBits();\n index += NumberUtils.setInt32LE(buffer, index, lowBits);\n index += NumberUtils.setInt32LE(buffer, index, highBits);\n return index;\n}\nfunction serializeRegExp(buffer, key, value, index) {\n buffer[index++] = BSON_DATA_REGEXP;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes;\n buffer[index++] = 0;\n if (value.source && value.source.match(regexp) != null) {\n throw new BSONError('value ' + value.source + ' must not contain null bytes');\n }\n index = index + ByteUtils.encodeUTF8Into(buffer, value.source, index);\n buffer[index++] = 0x00;\n if (value.ignoreCase)\n buffer[index++] = 0x69;\n if (value.global)\n buffer[index++] = 0x73;\n if (value.multiline)\n buffer[index++] = 0x6d;\n buffer[index++] = 0x00;\n return index;\n}\nfunction serializeBSONRegExp(buffer, key, value, index) {\n buffer[index++] = BSON_DATA_REGEXP;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes;\n buffer[index++] = 0;\n if (value.pattern.match(regexp) != null) {\n throw new BSONError('pattern ' + value.pattern + ' must not contain null bytes');\n }\n index = index + ByteUtils.encodeUTF8Into(buffer, value.pattern, index);\n buffer[index++] = 0x00;\n const sortedOptions = value.options.split('').sort().join('');\n index = index + ByteUtils.encodeUTF8Into(buffer, sortedOptions, index);\n buffer[index++] = 0x00;\n return index;\n}\nfunction serializeMinMax(buffer, key, value, index) {\n if (value === null) {\n buffer[index++] = BSON_DATA_NULL;\n }\n else if (value._bsontype === 'MinKey') {\n buffer[index++] = BSON_DATA_MIN_KEY;\n }\n else {\n buffer[index++] = BSON_DATA_MAX_KEY;\n }\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes;\n buffer[index++] = 0;\n return index;\n}\nfunction serializeObjectId(buffer, key, value, index) {\n buffer[index++] = BSON_DATA_OID;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes;\n buffer[index++] = 0;\n index += value.serializeInto(buffer, index);\n return index;\n}\nfunction serializeBuffer(buffer, key, value, index) {\n buffer[index++] = BSON_DATA_BINARY;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes;\n buffer[index++] = 0;\n const size = value.length;\n index += NumberUtils.setInt32LE(buffer, index, size);\n buffer[index++] = BSON_BINARY_SUBTYPE_DEFAULT;\n if (size <= 16) {\n for (let i = 0; i < size; i++)\n buffer[index + i] = value[i];\n }\n else {\n buffer.set(value, index);\n }\n index = index + size;\n return index;\n}\nfunction serializeObject(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, path) {\n if (path.has(value)) {\n throw new BSONError('Cannot convert circular structure to BSON');\n }\n path.add(value);\n buffer[index++] = Array.isArray(value) ? BSON_DATA_ARRAY : BSON_DATA_OBJECT;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes;\n buffer[index++] = 0;\n const endIndex = serializeInto(buffer, value, checkKeys, index, depth + 1, serializeFunctions, ignoreUndefined, path);\n path.delete(value);\n return endIndex;\n}\nfunction serializeDecimal128(buffer, key, value, index) {\n buffer[index++] = BSON_DATA_DECIMAL128;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes;\n buffer[index++] = 0;\n for (let i = 0; i < 16; i++)\n buffer[index + i] = value.bytes[i];\n return index + 16;\n}\nfunction serializeLong(buffer, key, value, index) {\n buffer[index++] =\n value._bsontype === 'Long' ? BSON_DATA_LONG : BSON_DATA_TIMESTAMP;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes;\n buffer[index++] = 0;\n const lowBits = value.getLowBits();\n const highBits = value.getHighBits();\n index += NumberUtils.setInt32LE(buffer, index, lowBits);\n index += NumberUtils.setInt32LE(buffer, index, highBits);\n return index;\n}\nfunction serializeInt32(buffer, key, value, index) {\n value = value.valueOf();\n buffer[index++] = BSON_DATA_INT;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes;\n buffer[index++] = 0;\n index += NumberUtils.setInt32LE(buffer, index, value);\n return index;\n}\nfunction serializeDouble(buffer, key, value, index) {\n buffer[index++] = BSON_DATA_NUMBER;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes;\n buffer[index++] = 0;\n index += NumberUtils.setFloat64LE(buffer, index, value.value);\n return index;\n}\nfunction serializeFunction(buffer, key, value, index) {\n buffer[index++] = BSON_DATA_CODE;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes;\n buffer[index++] = 0;\n const functionString = value.toString();\n const size = ByteUtils.encodeUTF8Into(buffer, functionString, index + 4) + 1;\n NumberUtils.setInt32LE(buffer, index, size);\n index = index + 4 + size - 1;\n buffer[index++] = 0;\n return index;\n}\nfunction serializeCode(buffer, key, value, index, checkKeys = false, depth = 0, serializeFunctions = false, ignoreUndefined = true, path) {\n if (value.scope && typeof value.scope === 'object') {\n buffer[index++] = BSON_DATA_CODE_W_SCOPE;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes;\n buffer[index++] = 0;\n let startIndex = index;\n const functionString = value.code;\n index = index + 4;\n const codeSize = ByteUtils.encodeUTF8Into(buffer, functionString, index + 4) + 1;\n NumberUtils.setInt32LE(buffer, index, codeSize);\n buffer[index + 4 + codeSize - 1] = 0;\n index = index + codeSize + 4;\n const endIndex = serializeInto(buffer, value.scope, checkKeys, index, depth + 1, serializeFunctions, ignoreUndefined, path);\n index = endIndex - 1;\n const totalSize = endIndex - startIndex;\n startIndex += NumberUtils.setInt32LE(buffer, startIndex, totalSize);\n buffer[index++] = 0;\n }\n else {\n buffer[index++] = BSON_DATA_CODE;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes;\n buffer[index++] = 0;\n const functionString = value.code.toString();\n const size = ByteUtils.encodeUTF8Into(buffer, functionString, index + 4) + 1;\n NumberUtils.setInt32LE(buffer, index, size);\n index = index + 4 + size - 1;\n buffer[index++] = 0;\n }\n return index;\n}\nfunction serializeBinary(buffer, key, value, index) {\n buffer[index++] = BSON_DATA_BINARY;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes;\n buffer[index++] = 0;\n const data = value.buffer;\n let size = value.position;\n if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY)\n size = size + 4;\n index += NumberUtils.setInt32LE(buffer, index, size);\n buffer[index++] = value.sub_type;\n if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY) {\n size = size - 4;\n index += NumberUtils.setInt32LE(buffer, index, size);\n }\n if (value.sub_type === Binary.SUBTYPE_VECTOR) {\n validateBinaryVector(value);\n }\n if (size <= 16) {\n for (let i = 0; i < size; i++)\n buffer[index + i] = data[i];\n }\n else {\n buffer.set(data, index);\n }\n index = index + value.position;\n return index;\n}\nfunction serializeSymbol(buffer, key, value, index) {\n buffer[index++] = BSON_DATA_SYMBOL;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes;\n buffer[index++] = 0;\n const size = ByteUtils.encodeUTF8Into(buffer, value.value, index + 4) + 1;\n NumberUtils.setInt32LE(buffer, index, size);\n index = index + 4 + size - 1;\n buffer[index++] = 0;\n return index;\n}\nfunction serializeDBRef(buffer, key, value, index, depth, serializeFunctions, path) {\n buffer[index++] = BSON_DATA_OBJECT;\n const numberOfWrittenBytes = ByteUtils.encodeUTF8Into(buffer, key, index);\n index = index + numberOfWrittenBytes;\n buffer[index++] = 0;\n let startIndex = index;\n let output = {\n $ref: value.collection || value.namespace,\n $id: value.oid\n };\n if (value.db != null) {\n output.$db = value.db;\n }\n output = Object.assign(output, value.fields);\n const endIndex = serializeInto(buffer, output, false, index, depth + 1, serializeFunctions, true, path);\n const size = endIndex - startIndex;\n startIndex += NumberUtils.setInt32LE(buffer, index, size);\n return endIndex;\n}\nfunction serializeInto(buffer, object, checkKeys, startingIndex, depth, serializeFunctions, ignoreUndefined, path) {\n if (path == null) {\n if (object == null) {\n buffer[0] = 0x05;\n buffer[1] = 0x00;\n buffer[2] = 0x00;\n buffer[3] = 0x00;\n buffer[4] = 0x00;\n return 5;\n }\n if (Array.isArray(object)) {\n throw new BSONError('serialize does not support an array as the root input');\n }\n if (typeof object !== 'object') {\n throw new BSONError('serialize does not support non-object as the root input');\n }\n else if ('_bsontype' in object && typeof object._bsontype === 'string') {\n throw new BSONError(`BSON types cannot be serialized as a document`);\n }\n else if (isDate(object) ||\n isRegExp(object) ||\n isUint8Array(object) ||\n isAnyArrayBuffer(object)) {\n throw new BSONError(`date, regexp, typedarray, and arraybuffer cannot be BSON documents`);\n }\n path = new Set();\n }\n path.add(object);\n let index = startingIndex + 4;\n if (Array.isArray(object)) {\n for (let i = 0; i < object.length; i++) {\n const key = `${i}`;\n let value = object[i];\n if (typeof value?.toBSON === 'function') {\n value = value.toBSON();\n }\n const type = typeof value;\n if (value === undefined) {\n index = serializeNull(buffer, key, value, index);\n }\n else if (value === null) {\n index = serializeNull(buffer, key, value, index);\n }\n else if (type === 'string') {\n index = serializeString(buffer, key, value, index);\n }\n else if (type === 'number') {\n index = serializeNumber(buffer, key, value, index);\n }\n else if (type === 'bigint') {\n index = serializeBigInt(buffer, key, value, index);\n }\n else if (type === 'boolean') {\n index = serializeBoolean(buffer, key, value, index);\n }\n else if (type === 'object' && value._bsontype == null) {\n if (value instanceof Date || isDate(value)) {\n index = serializeDate(buffer, key, value, index);\n }\n else if (value instanceof Uint8Array || isUint8Array(value)) {\n index = serializeBuffer(buffer, key, value, index);\n }\n else if (value instanceof RegExp || isRegExp(value)) {\n index = serializeRegExp(buffer, key, value, index);\n }\n else {\n index = serializeObject(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, path);\n }\n }\n else if (type === 'object') {\n if (value[BSON_VERSION_SYMBOL] !== BSON_MAJOR_VERSION) {\n throw new BSONVersionError();\n }\n else if (value._bsontype === 'ObjectId') {\n index = serializeObjectId(buffer, key, value, index);\n }\n else if (value._bsontype === 'Decimal128') {\n index = serializeDecimal128(buffer, key, value, index);\n }\n else if (value._bsontype === 'Long' || value._bsontype === 'Timestamp') {\n index = serializeLong(buffer, key, value, index);\n }\n else if (value._bsontype === 'Double') {\n index = serializeDouble(buffer, key, value, index);\n }\n else if (value._bsontype === 'Code') {\n index = serializeCode(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, path);\n }\n else if (value._bsontype === 'Binary') {\n index = serializeBinary(buffer, key, value, index);\n }\n else if (value._bsontype === 'BSONSymbol') {\n index = serializeSymbol(buffer, key, value, index);\n }\n else if (value._bsontype === 'DBRef') {\n index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions, path);\n }\n else if (value._bsontype === 'BSONRegExp') {\n index = serializeBSONRegExp(buffer, key, value, index);\n }\n else if (value._bsontype === 'Int32') {\n index = serializeInt32(buffer, key, value, index);\n }\n else if (value._bsontype === 'MinKey' || value._bsontype === 'MaxKey') {\n index = serializeMinMax(buffer, key, value, index);\n }\n else if (typeof value._bsontype !== 'undefined') {\n throw new BSONError(`Unrecognized or invalid _bsontype: ${String(value._bsontype)}`);\n }\n }\n else if (type === 'function' && serializeFunctions) {\n index = serializeFunction(buffer, key, value, index);\n }\n }\n }\n else if (object instanceof Map || isMap(object)) {\n const iterator = object.entries();\n let done = false;\n while (!done) {\n const entry = iterator.next();\n done = !!entry.done;\n if (done)\n continue;\n const key = entry.value ? entry.value[0] : undefined;\n let value = entry.value ? entry.value[1] : undefined;\n if (typeof value?.toBSON === 'function') {\n value = value.toBSON();\n }\n const type = typeof value;\n if (typeof key === 'string' && !ignoreKeys.has(key)) {\n if (key.match(regexp) != null) {\n throw new BSONError('key ' + key + ' must not contain null bytes');\n }\n if (checkKeys) {\n if ('$' === key[0]) {\n throw new BSONError('key ' + key + \" must not start with '$'\");\n }\n else if (key.includes('.')) {\n throw new BSONError('key ' + key + \" must not contain '.'\");\n }\n }\n }\n if (value === undefined) {\n if (ignoreUndefined === false)\n index = serializeNull(buffer, key, value, index);\n }\n else if (value === null) {\n index = serializeNull(buffer, key, value, index);\n }\n else if (type === 'string') {\n index = serializeString(buffer, key, value, index);\n }\n else if (type === 'number') {\n index = serializeNumber(buffer, key, value, index);\n }\n else if (type === 'bigint') {\n index = serializeBigInt(buffer, key, value, index);\n }\n else if (type === 'boolean') {\n index = serializeBoolean(buffer, key, value, index);\n }\n else if (type === 'object' && value._bsontype == null) {\n if (value instanceof Date || isDate(value)) {\n index = serializeDate(buffer, key, value, index);\n }\n else if (value instanceof Uint8Array || isUint8Array(value)) {\n index = serializeBuffer(buffer, key, value, index);\n }\n else if (value instanceof RegExp || isRegExp(value)) {\n index = serializeRegExp(buffer, key, value, index);\n }\n else {\n index = serializeObject(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, path);\n }\n }\n else if (type === 'object') {\n if (value[BSON_VERSION_SYMBOL] !== BSON_MAJOR_VERSION) {\n throw new BSONVersionError();\n }\n else if (value._bsontype === 'ObjectId') {\n index = serializeObjectId(buffer, key, value, index);\n }\n else if (value._bsontype === 'Decimal128') {\n index = serializeDecimal128(buffer, key, value, index);\n }\n else if (value._bsontype === 'Long' || value._bsontype === 'Timestamp') {\n index = serializeLong(buffer, key, value, index);\n }\n else if (value._bsontype === 'Double') {\n index = serializeDouble(buffer, key, value, index);\n }\n else if (value._bsontype === 'Code') {\n index = serializeCode(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, path);\n }\n else if (value._bsontype === 'Binary') {\n index = serializeBinary(buffer, key, value, index);\n }\n else if (value._bsontype === 'BSONSymbol') {\n index = serializeSymbol(buffer, key, value, index);\n }\n else if (value._bsontype === 'DBRef') {\n index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions, path);\n }\n else if (value._bsontype === 'BSONRegExp') {\n index = serializeBSONRegExp(buffer, key, value, index);\n }\n else if (value._bsontype === 'Int32') {\n index = serializeInt32(buffer, key, value, index);\n }\n else if (value._bsontype === 'MinKey' || value._bsontype === 'MaxKey') {\n index = serializeMinMax(buffer, key, value, index);\n }\n else if (typeof value._bsontype !== 'undefined') {\n throw new BSONError(`Unrecognized or invalid _bsontype: ${String(value._bsontype)}`);\n }\n }\n else if (type === 'function' && serializeFunctions) {\n index = serializeFunction(buffer, key, value, index);\n }\n }\n }\n else {\n if (typeof object?.toBSON === 'function') {\n object = object.toBSON();\n if (object != null && typeof object !== 'object') {\n throw new BSONError('toBSON function did not return an object');\n }\n }\n for (const key of Object.keys(object)) {\n let value = object[key];\n if (typeof value?.toBSON === 'function') {\n value = value.toBSON();\n }\n const type = typeof value;\n if (typeof key === 'string' && !ignoreKeys.has(key)) {\n if (key.match(regexp) != null) {\n throw new BSONError('key ' + key + ' must not contain null bytes');\n }\n if (checkKeys) {\n if ('$' === key[0]) {\n throw new BSONError('key ' + key + \" must not start with '$'\");\n }\n else if (key.includes('.')) {\n throw new BSONError('key ' + key + \" must not contain '.'\");\n }\n }\n }\n if (value === undefined) {\n if (ignoreUndefined === false)\n index = serializeNull(buffer, key, value, index);\n }\n else if (value === null) {\n index = serializeNull(buffer, key, value, index);\n }\n else if (type === 'string') {\n index = serializeString(buffer, key, value, index);\n }\n else if (type === 'number') {\n index = serializeNumber(buffer, key, value, index);\n }\n else if (type === 'bigint') {\n index = serializeBigInt(buffer, key, value, index);\n }\n else if (type === 'boolean') {\n index = serializeBoolean(buffer, key, value, index);\n }\n else if (type === 'object' && value._bsontype == null) {\n if (value instanceof Date || isDate(value)) {\n index = serializeDate(buffer, key, value, index);\n }\n else if (value instanceof Uint8Array || isUint8Array(value)) {\n index = serializeBuffer(buffer, key, value, index);\n }\n else if (value instanceof RegExp || isRegExp(value)) {\n index = serializeRegExp(buffer, key, value, index);\n }\n else {\n index = serializeObject(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, path);\n }\n }\n else if (type === 'object') {\n if (value[BSON_VERSION_SYMBOL] !== BSON_MAJOR_VERSION) {\n throw new BSONVersionError();\n }\n else if (value._bsontype === 'ObjectId') {\n index = serializeObjectId(buffer, key, value, index);\n }\n else if (value._bsontype === 'Decimal128') {\n index = serializeDecimal128(buffer, key, value, index);\n }\n else if (value._bsontype === 'Long' || value._bsontype === 'Timestamp') {\n index = serializeLong(buffer, key, value, index);\n }\n else if (value._bsontype === 'Double') {\n index = serializeDouble(buffer, key, value, index);\n }\n else if (value._bsontype === 'Code') {\n index = serializeCode(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, path);\n }\n else if (value._bsontype === 'Binary') {\n index = serializeBinary(buffer, key, value, index);\n }\n else if (value._bsontype === 'BSONSymbol') {\n index = serializeSymbol(buffer, key, value, index);\n }\n else if (value._bsontype === 'DBRef') {\n index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions, path);\n }\n else if (value._bsontype === 'BSONRegExp') {\n index = serializeBSONRegExp(buffer, key, value, index);\n }\n else if (value._bsontype === 'Int32') {\n index = serializeInt32(buffer, key, value, index);\n }\n else if (value._bsontype === 'MinKey' || value._bsontype === 'MaxKey') {\n index = serializeMinMax(buffer, key, value, index);\n }\n else if (typeof value._bsontype !== 'undefined') {\n throw new BSONError(`Unrecognized or invalid _bsontype: ${String(value._bsontype)}`);\n }\n }\n else if (type === 'function' && serializeFunctions) {\n index = serializeFunction(buffer, key, value, index);\n }\n }\n }\n path.delete(object);\n buffer[index++] = 0x00;\n const size = index - startingIndex;\n startingIndex += NumberUtils.setInt32LE(buffer, startingIndex, size);\n return index;\n}\n\nfunction isBSONType(value) {\n return (value != null &&\n typeof value === 'object' &&\n '_bsontype' in value &&\n typeof value._bsontype === 'string');\n}\nconst keysToCodecs = {\n $oid: ObjectId,\n $binary: Binary,\n $uuid: Binary,\n $symbol: BSONSymbol,\n $numberInt: Int32,\n $numberDecimal: Decimal128,\n $numberDouble: Double,\n $numberLong: Long,\n $minKey: MinKey,\n $maxKey: MaxKey,\n $regex: BSONRegExp,\n $regularExpression: BSONRegExp,\n $timestamp: Timestamp\n};\nfunction deserializeValue(value, options = {}) {\n if (typeof value === 'number') {\n const in32BitRange = value <= BSON_INT32_MAX && value >= BSON_INT32_MIN;\n const in64BitRange = value <= BSON_INT64_MAX && value >= BSON_INT64_MIN;\n if (options.relaxed || options.legacy) {\n return value;\n }\n if (Number.isInteger(value) && !Object.is(value, -0)) {\n if (in32BitRange) {\n return new Int32(value);\n }\n if (in64BitRange) {\n if (options.useBigInt64) {\n return BigInt(value);\n }\n return Long.fromNumber(value);\n }\n }\n return new Double(value);\n }\n if (value == null || typeof value !== 'object')\n return value;\n if (value.$undefined)\n return null;\n const keys = Object.keys(value).filter(k => k.startsWith('$') && value[k] != null);\n for (let i = 0; i < keys.length; i++) {\n const c = keysToCodecs[keys[i]];\n if (c)\n return c.fromExtendedJSON(value, options);\n }\n if (value.$date != null) {\n const d = value.$date;\n const date = new Date();\n if (options.legacy) {\n if (typeof d === 'number')\n date.setTime(d);\n else if (typeof d === 'string')\n date.setTime(Date.parse(d));\n else if (typeof d === 'bigint')\n date.setTime(Number(d));\n else\n throw new BSONRuntimeError(`Unrecognized type for EJSON date: ${typeof d}`);\n }\n else {\n if (typeof d === 'string')\n date.setTime(Date.parse(d));\n else if (Long.isLong(d))\n date.setTime(d.toNumber());\n else if (typeof d === 'number' && options.relaxed)\n date.setTime(d);\n else if (typeof d === 'bigint')\n date.setTime(Number(d));\n else\n throw new BSONRuntimeError(`Unrecognized type for EJSON date: ${typeof d}`);\n }\n return date;\n }\n if (value.$code != null) {\n const copy = Object.assign({}, value);\n if (value.$scope) {\n copy.$scope = deserializeValue(value.$scope);\n }\n return Code.fromExtendedJSON(value);\n }\n if (isDBRefLike(value) || value.$dbPointer) {\n const v = value.$ref ? value : value.$dbPointer;\n if (v instanceof DBRef)\n return v;\n const dollarKeys = Object.keys(v).filter(k => k.startsWith('$'));\n let valid = true;\n dollarKeys.forEach(k => {\n if (['$ref', '$id', '$db'].indexOf(k) === -1)\n valid = false;\n });\n if (valid)\n return DBRef.fromExtendedJSON(v);\n }\n return value;\n}\nfunction serializeArray(array, options) {\n return array.map((v, index) => {\n options.seenObjects.push({ propertyName: `index ${index}`, obj: null });\n try {\n return serializeValue(v, options);\n }\n finally {\n options.seenObjects.pop();\n }\n });\n}\nfunction getISOString(date) {\n const isoStr = date.toISOString();\n return date.getUTCMilliseconds() !== 0 ? isoStr : isoStr.slice(0, -5) + 'Z';\n}\nfunction serializeValue(value, options) {\n if (value instanceof Map || isMap(value)) {\n const obj = Object.create(null);\n for (const [k, v] of value) {\n if (typeof k !== 'string') {\n throw new BSONError('Can only serialize maps with string keys');\n }\n obj[k] = v;\n }\n return serializeValue(obj, options);\n }\n if ((typeof value === 'object' || typeof value === 'function') && value !== null) {\n const index = options.seenObjects.findIndex(entry => entry.obj === value);\n if (index !== -1) {\n const props = options.seenObjects.map(entry => entry.propertyName);\n const leadingPart = props\n .slice(0, index)\n .map(prop => `${prop} -> `)\n .join('');\n const alreadySeen = props[index];\n const circularPart = ' -> ' +\n props\n .slice(index + 1, props.length - 1)\n .map(prop => `${prop} -> `)\n .join('');\n const current = props[props.length - 1];\n const leadingSpace = ' '.repeat(leadingPart.length + alreadySeen.length / 2);\n const dashes = '-'.repeat(circularPart.length + (alreadySeen.length + current.length) / 2 - 1);\n throw new BSONError('Converting circular structure to EJSON:\\n' +\n ` ${leadingPart}${alreadySeen}${circularPart}${current}\\n` +\n ` ${leadingSpace}\\\\${dashes}/`);\n }\n options.seenObjects[options.seenObjects.length - 1].obj = value;\n }\n if (Array.isArray(value))\n return serializeArray(value, options);\n if (value === undefined)\n return null;\n if (value instanceof Date || isDate(value)) {\n const dateNum = value.getTime(), inRange = dateNum > -1 && dateNum < 253402318800000;\n if (options.legacy) {\n return options.relaxed && inRange\n ? { $date: value.getTime() }\n : { $date: getISOString(value) };\n }\n return options.relaxed && inRange\n ? { $date: getISOString(value) }\n : { $date: { $numberLong: value.getTime().toString() } };\n }\n if (typeof value === 'number' && (!options.relaxed || !isFinite(value))) {\n if (Number.isInteger(value) && !Object.is(value, -0)) {\n if (value >= BSON_INT32_MIN && value <= BSON_INT32_MAX) {\n return { $numberInt: value.toString() };\n }\n if (value >= BSON_INT64_MIN && value <= BSON_INT64_MAX) {\n return { $numberLong: value.toString() };\n }\n }\n return { $numberDouble: Object.is(value, -0) ? '-0.0' : value.toString() };\n }\n if (typeof value === 'bigint') {\n if (!options.relaxed) {\n return { $numberLong: BigInt.asIntN(64, value).toString() };\n }\n return Number(BigInt.asIntN(64, value));\n }\n if (value instanceof RegExp || isRegExp(value)) {\n let flags = value.flags;\n if (flags === undefined) {\n const match = value.toString().match(/[gimuy]*$/);\n if (match) {\n flags = match[0];\n }\n }\n const rx = new BSONRegExp(value.source, flags);\n return rx.toExtendedJSON(options);\n }\n if (value != null && typeof value === 'object')\n return serializeDocument(value, options);\n return value;\n}\nconst BSON_TYPE_MAPPINGS = {\n Binary: (o) => new Binary(o.value(), o.sub_type),\n Code: (o) => new Code(o.code, o.scope),\n DBRef: (o) => new DBRef(o.collection || o.namespace, o.oid, o.db, o.fields),\n Decimal128: (o) => new Decimal128(o.bytes),\n Double: (o) => new Double(o.value),\n Int32: (o) => new Int32(o.value),\n Long: (o) => Long.fromBits(o.low != null ? o.low : o.low_, o.low != null ? o.high : o.high_, o.low != null ? o.unsigned : o.unsigned_),\n MaxKey: () => new MaxKey(),\n MinKey: () => new MinKey(),\n ObjectId: (o) => new ObjectId(o),\n BSONRegExp: (o) => new BSONRegExp(o.pattern, o.options),\n BSONSymbol: (o) => new BSONSymbol(o.value),\n Timestamp: (o) => Timestamp.fromBits(o.low, o.high)\n};\nfunction serializeDocument(doc, options) {\n if (doc == null || typeof doc !== 'object')\n throw new BSONError('not an object instance');\n const bsontype = doc._bsontype;\n if (typeof bsontype === 'undefined') {\n const _doc = {};\n for (const name of Object.keys(doc)) {\n options.seenObjects.push({ propertyName: name, obj: null });\n try {\n const value = serializeValue(doc[name], options);\n if (name === '__proto__') {\n Object.defineProperty(_doc, name, {\n value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n else {\n _doc[name] = value;\n }\n }\n finally {\n options.seenObjects.pop();\n }\n }\n return _doc;\n }\n else if (doc != null &&\n typeof doc === 'object' &&\n typeof doc._bsontype === 'string' &&\n doc[BSON_VERSION_SYMBOL] !== BSON_MAJOR_VERSION) {\n throw new BSONVersionError();\n }\n else if (isBSONType(doc)) {\n let outDoc = doc;\n if (typeof outDoc.toExtendedJSON !== 'function') {\n const mapper = BSON_TYPE_MAPPINGS[doc._bsontype];\n if (!mapper) {\n throw new BSONError('Unrecognized or invalid _bsontype: ' + doc._bsontype);\n }\n outDoc = mapper(outDoc);\n }\n if (bsontype === 'Code' && outDoc.scope) {\n outDoc = new Code(outDoc.code, serializeValue(outDoc.scope, options));\n }\n else if (bsontype === 'DBRef' && outDoc.oid) {\n outDoc = new DBRef(serializeValue(outDoc.collection, options), serializeValue(outDoc.oid, options), serializeValue(outDoc.db, options), serializeValue(outDoc.fields, options));\n }\n return outDoc.toExtendedJSON(options);\n }\n else {\n throw new BSONError('_bsontype must be a string, but was: ' + typeof bsontype);\n }\n}\nfunction parse(text, options) {\n const ejsonOptions = {\n useBigInt64: options?.useBigInt64 ?? false,\n relaxed: options?.relaxed ?? true,\n legacy: options?.legacy ?? false\n };\n return JSON.parse(text, (key, value) => {\n if (key.indexOf('\\x00') !== -1) {\n throw new BSONError(`BSON Document field names cannot contain null bytes, found: ${JSON.stringify(key)}`);\n }\n return deserializeValue(value, ejsonOptions);\n });\n}\nfunction stringify(value, replacer, space, options) {\n if (space != null && typeof space === 'object') {\n options = space;\n space = 0;\n }\n if (replacer != null && typeof replacer === 'object' && !Array.isArray(replacer)) {\n options = replacer;\n replacer = undefined;\n space = 0;\n }\n const serializeOptions = Object.assign({ relaxed: true, legacy: false }, options, {\n seenObjects: [{ propertyName: '(root)', obj: null }]\n });\n const doc = serializeValue(value, serializeOptions);\n return JSON.stringify(doc, replacer, space);\n}\nfunction EJSONserialize(value, options) {\n options = options || {};\n return JSON.parse(stringify(value, options));\n}\nfunction EJSONdeserialize(ejson, options) {\n options = options || {};\n return parse(JSON.stringify(ejson), options);\n}\nconst EJSON = Object.create(null);\nEJSON.parse = parse;\nEJSON.stringify = stringify;\nEJSON.serialize = EJSONserialize;\nEJSON.deserialize = EJSONdeserialize;\nObject.freeze(EJSON);\n\nconst BSONElementType = {\n double: 1,\n string: 2,\n object: 3,\n array: 4,\n binData: 5,\n undefined: 6,\n objectId: 7,\n bool: 8,\n date: 9,\n null: 10,\n regex: 11,\n dbPointer: 12,\n javascript: 13,\n symbol: 14,\n javascriptWithScope: 15,\n int: 16,\n timestamp: 17,\n long: 18,\n decimal: 19,\n minKey: 255,\n maxKey: 127\n};\nfunction getSize(source, offset) {\n try {\n return NumberUtils.getNonnegativeInt32LE(source, offset);\n }\n catch (cause) {\n throw new BSONOffsetError('BSON size cannot be negative', offset, { cause });\n }\n}\nfunction findNull(bytes, offset) {\n let nullTerminatorOffset = offset;\n for (; bytes[nullTerminatorOffset] !== 0x00; nullTerminatorOffset++)\n ;\n if (nullTerminatorOffset === bytes.length - 1) {\n throw new BSONOffsetError('Null terminator not found', offset);\n }\n return nullTerminatorOffset;\n}\nfunction parseToElements(bytes, startOffset = 0) {\n startOffset ??= 0;\n if (bytes.length < 5) {\n throw new BSONOffsetError(`Input must be at least 5 bytes, got ${bytes.length} bytes`, startOffset);\n }\n const documentSize = getSize(bytes, startOffset);\n if (documentSize > bytes.length - startOffset) {\n throw new BSONOffsetError(`Parsed documentSize (${documentSize} bytes) does not match input length (${bytes.length} bytes)`, startOffset);\n }\n if (bytes[startOffset + documentSize - 1] !== 0x00) {\n throw new BSONOffsetError('BSON documents must end in 0x00', startOffset + documentSize);\n }\n const elements = [];\n let offset = startOffset + 4;\n while (offset <= documentSize + startOffset) {\n const type = bytes[offset];\n offset += 1;\n if (type === 0) {\n if (offset - startOffset !== documentSize) {\n throw new BSONOffsetError(`Invalid 0x00 type byte`, offset);\n }\n break;\n }\n const nameOffset = offset;\n const nameLength = findNull(bytes, offset) - nameOffset;\n offset += nameLength + 1;\n let length;\n if (type === BSONElementType.double ||\n type === BSONElementType.long ||\n type === BSONElementType.date ||\n type === BSONElementType.timestamp) {\n length = 8;\n }\n else if (type === BSONElementType.int) {\n length = 4;\n }\n else if (type === BSONElementType.objectId) {\n length = 12;\n }\n else if (type === BSONElementType.decimal) {\n length = 16;\n }\n else if (type === BSONElementType.bool) {\n length = 1;\n }\n else if (type === BSONElementType.null ||\n type === BSONElementType.undefined ||\n type === BSONElementType.maxKey ||\n type === BSONElementType.minKey) {\n length = 0;\n }\n else if (type === BSONElementType.regex) {\n length = findNull(bytes, findNull(bytes, offset) + 1) + 1 - offset;\n }\n else if (type === BSONElementType.object ||\n type === BSONElementType.array ||\n type === BSONElementType.javascriptWithScope) {\n length = getSize(bytes, offset);\n }\n else if (type === BSONElementType.string ||\n type === BSONElementType.binData ||\n type === BSONElementType.dbPointer ||\n type === BSONElementType.javascript ||\n type === BSONElementType.symbol) {\n length = getSize(bytes, offset) + 4;\n if (type === BSONElementType.binData) {\n length += 1;\n }\n if (type === BSONElementType.dbPointer) {\n length += 12;\n }\n }\n else {\n throw new BSONOffsetError(`Invalid 0x${type.toString(16).padStart(2, '0')} type byte`, offset);\n }\n if (length > documentSize) {\n throw new BSONOffsetError('value reports length larger than document', offset);\n }\n elements.push([type, nameOffset, nameLength, offset, length]);\n offset += length;\n }\n return elements;\n}\n\nconst onDemand = Object.create(null);\nonDemand.parseToElements = parseToElements;\nonDemand.ByteUtils = ByteUtils;\nonDemand.NumberUtils = NumberUtils;\nObject.freeze(onDemand);\n\nconst MAXSIZE = 1024 * 1024 * 17;\nlet buffer = ByteUtils.allocate(MAXSIZE);\nfunction setInternalBufferSize(size) {\n if (buffer.length < size) {\n buffer = ByteUtils.allocate(size);\n }\n}\nfunction serialize(object, options = {}) {\n const checkKeys = typeof options.checkKeys === 'boolean' ? options.checkKeys : false;\n const serializeFunctions = typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false;\n const ignoreUndefined = typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true;\n const minInternalBufferSize = typeof options.minInternalBufferSize === 'number' ? options.minInternalBufferSize : MAXSIZE;\n if (buffer.length < minInternalBufferSize) {\n buffer = ByteUtils.allocate(minInternalBufferSize);\n }\n const serializationIndex = serializeInto(buffer, object, checkKeys, 0, 0, serializeFunctions, ignoreUndefined, null);\n const finishedBuffer = ByteUtils.allocateUnsafe(serializationIndex);\n finishedBuffer.set(buffer.subarray(0, serializationIndex), 0);\n return finishedBuffer;\n}\nfunction serializeWithBufferAndIndex(object, finalBuffer, options = {}) {\n const checkKeys = typeof options.checkKeys === 'boolean' ? options.checkKeys : false;\n const serializeFunctions = typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false;\n const ignoreUndefined = typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true;\n const startIndex = typeof options.index === 'number' ? options.index : 0;\n const serializationIndex = serializeInto(buffer, object, checkKeys, 0, 0, serializeFunctions, ignoreUndefined, null);\n finalBuffer.set(buffer.subarray(0, serializationIndex), startIndex);\n return startIndex + serializationIndex - 1;\n}\nfunction deserialize(buffer, options = {}) {\n return internalDeserialize(ByteUtils.toLocalBufferType(buffer), options);\n}\nfunction calculateObjectSize(object, options = {}) {\n options = options || {};\n const serializeFunctions = typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false;\n const ignoreUndefined = typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true;\n return internalCalculateObjectSize(object, serializeFunctions, ignoreUndefined);\n}\nfunction deserializeStream(data, startIndex, numberOfDocuments, documents, docStartIndex, options) {\n const internalOptions = Object.assign({ allowObjectSmallerThanBufferSize: true, index: 0 }, options);\n const bufferData = ByteUtils.toLocalBufferType(data);\n let index = startIndex;\n for (let i = 0; i < numberOfDocuments; i++) {\n const size = NumberUtils.getInt32LE(bufferData, index);\n internalOptions.index = index;\n documents[docStartIndex + i] = internalDeserialize(bufferData, internalOptions);\n index = index + size;\n }\n return index;\n}\n\nvar bson = /*#__PURE__*/Object.freeze({\n __proto__: null,\n BSONError: BSONError,\n BSONOffsetError: BSONOffsetError,\n BSONRegExp: BSONRegExp,\n BSONRuntimeError: BSONRuntimeError,\n BSONSymbol: BSONSymbol,\n BSONType: BSONType,\n BSONValue: BSONValue,\n BSONVersionError: BSONVersionError,\n Binary: Binary,\n Code: Code,\n DBRef: DBRef,\n Decimal128: Decimal128,\n Double: Double,\n EJSON: EJSON,\n Int32: Int32,\n Long: Long,\n MaxKey: MaxKey,\n MinKey: MinKey,\n ObjectId: ObjectId,\n Timestamp: Timestamp,\n UUID: UUID,\n calculateObjectSize: calculateObjectSize,\n deserialize: deserialize,\n deserializeStream: deserializeStream,\n onDemand: onDemand,\n serialize: serialize,\n serializeWithBufferAndIndex: serializeWithBufferAndIndex,\n setInternalBufferSize: setInternalBufferSize\n});\n\nexports.BSON = bson;\nexports.BSONError = BSONError;\nexports.BSONOffsetError = BSONOffsetError;\nexports.BSONRegExp = BSONRegExp;\nexports.BSONRuntimeError = BSONRuntimeError;\nexports.BSONSymbol = BSONSymbol;\nexports.BSONType = BSONType;\nexports.BSONValue = BSONValue;\nexports.BSONVersionError = BSONVersionError;\nexports.Binary = Binary;\nexports.Code = Code;\nexports.DBRef = DBRef;\nexports.Decimal128 = Decimal128;\nexports.Double = Double;\nexports.EJSON = EJSON;\nexports.Int32 = Int32;\nexports.Long = Long;\nexports.MaxKey = MaxKey;\nexports.MinKey = MinKey;\nexports.ObjectId = ObjectId;\nexports.Timestamp = Timestamp;\nexports.UUID = UUID;\nexports.calculateObjectSize = calculateObjectSize;\nexports.deserialize = deserialize;\nexports.deserializeStream = deserializeStream;\nexports.onDemand = onDemand;\nexports.serialize = serialize;\nexports.serializeWithBufferAndIndex = serializeWithBufferAndIndex;\nexports.setInternalBufferSize = setInternalBufferSize;\n//# sourceMappingURL=bson.cjs.map\n"],"x_google_ignoreList":[0],"mappings":"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"}