@mongosh/node-runtime-worker-thread 1.7.1 → 1.8.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.
- package/dist/child-process-proxy.js +1 -2
- package/dist/index.js +1 -2
- package/dist/report.html +2 -2
- package/dist/worker-runtime.js +245 -283
- package/package.json +9 -9
- package/dist/child-process-proxy.js.LICENSE.txt +0 -14
- package/dist/index.js.LICENSE.txt +0 -14
package/dist/index.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
/*! For license information please see index.js.LICENSE.txt */
|
|
2
|
-
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(global,(()=>(()=>{var e={458:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChildProcessEvaluationListener=void 0;const r=n(369),i=n(568);t.ChildProcessEvaluationListener=class ChildProcessEvaluationListener{constructor(e,t){this.exposedListener=(0,r.exposeAll)({onPrompt(t,n){var r,i,o;return null!==(o=null===(i=null===(r=e.evaluationListener)||void 0===r?void 0:r.onPrompt)||void 0===i?void 0:i.call(r,t,n))&&void 0!==o?o:""},onPrint(t){var n,r;return t=t.map(i.deserializeEvaluationResult),null===(r=null===(n=e.evaluationListener)||void 0===n?void 0:n.onPrint)||void 0===r?void 0:r.call(n,t)},setConfig(t,n){var r,i,o;return null!==(o=null===(i=null===(r=e.evaluationListener)||void 0===r?void 0:r.setConfig)||void 0===i?void 0:i.call(r,t,n))&&void 0!==o?o:Promise.resolve("ignored")},resetConfig(t){var n,r,i;return null!==(i=null===(r=null===(n=e.evaluationListener)||void 0===n?void 0:n.resetConfig)||void 0===r?void 0:r.call(n,t))&&void 0!==i?i:Promise.resolve("ignored")},validateConfig(t,n){var r,i,o;return null!==(o=null===(i=null===(r=e.evaluationListener)||void 0===r?void 0:r.validateConfig)||void 0===i?void 0:i.call(r,t,n))&&void 0!==o?o:Promise.resolve(null)},getConfig(t){var n,r;return null===(r=null===(n=e.evaluationListener)||void 0===n?void 0:n.getConfig)||void 0===r?void 0:r.call(n,t)},listConfigOptions(){var t,n;return null===(n=null===(t=e.evaluationListener)||void 0===t?void 0:t.listConfigOptions)||void 0===n?void 0:n.call(t)},onClearCommand(){var t,n;return null===(n=null===(t=e.evaluationListener)||void 0===t?void 0:t.onClearCommand)||void 0===n?void 0:n.call(t)},onExit(t){var n,r,i;return null!==(i=null===(r=null===(n=e.evaluationListener)||void 0===n?void 0:n.onExit)||void 0===r?void 0:r.call(n,t))&&void 0!==i?i:Promise.resolve()}},t)}terminate(){this.exposedListener[r.close]()}}},517:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChildProcessMongoshBus=void 0;const r=n(369);t.ChildProcessMongoshBus=class ChildProcessMongoshBus{constructor(e,t){const n=(0,r.exposeAll)({emit(...t){e.emit(...t)},on(){throw new Error("Can't use `on` method on ChildProcessMongoshBus")},once(){throw new Error("Can't use `once` method on ChildProcessMongoshBus")}},t);this.exposedEmitter=n}terminate(){this.exposedEmitter[r.close]()}}},920:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.WorkerRuntime=void 0;const i=n(81),o=r(n(17)),s=n(361),u=n(859),f=n(369),a=n(458),l=n(568),c=n(517);t.WorkerRuntime=class WorkerRuntime{constructor(e,t={},n={},r={},i=new s.EventEmitter){this.evaluationListener=null,this.childProcessProxySrcPath=process.env.CHILD_PROCESS_PROXY_SRC_PATH_DO_NOT_USE_THIS_EXCEPT_FOR_TESTING||o.default.resolve(__dirname,"child-process-proxy.js"),this.initOptions={uri:e,driverOptions:t,cliOptions:n,spawnOptions:r},this.eventEmitter=i,this.initWorkerPromise=this.initWorker()}async initWorker(){var e,t,n;const{uri:r,driverOptions:o,cliOptions:u,spawnOptions:h}=this.initOptions;this.childProcess=(0,i.spawn)(process.execPath,[this.childProcessProxySrcPath],{stdio:["inherit","inherit","pipe","ipc"],...h});let p="";null===(n=null===(t=null===(e=this.childProcess)||void 0===e?void 0:e.stderr)||void 0===t?void 0:t.setEncoding("utf8"))||void 0===n||n.on("data",(e=>{p+=e}));await Promise.race([(async()=>{let e;for(;[e]=await(0,s.once)(this.childProcess,"message");)if("ready"===e)return})(),(async()=>{const[e]=await(0,s.once)(this.childProcess,"exit");if(e){let t=function(e){const[,t]=e.split(/^\s*\^\s*$/m).map((e=>e.trim()));if(t){const e=new Error,n=t.substring(0,t.search(/^\s*at/m))||t,[r,...i]=n.split(": ");return e.name=r,e.message=i.join(": ").trim(),e.stack=t,e}return null}(p);throw t?t.message=`Child process failed to start with the following error: ${t.message}`:t=new Error(`Worker runtime failed to start: child process exited with code ${e}`),t}})()]),this.childProcess.setMaxListeners(25),this.childProcessRuntime=(0,f.createCaller)(["init","evaluate","getCompletions","setEvaluationListener","getShellPrompt","interrupt"],this.childProcess),this.childProcessEvaluationListener=new a.ChildProcessEvaluationListener(this,this.childProcess),this.childProcessMongoshBus=new c.ChildProcessMongoshBus(this.eventEmitter,this.childProcess),await this.childProcessRuntime.init(r,(0,l.serializeConnectOptions)(o),u)}async evaluate(e){return await this.initWorkerPromise,(0,l.deserializeEvaluationResult)(await this.childProcessRuntime.evaluate(e))}async getCompletions(e){return await this.initWorkerPromise,await this.childProcessRuntime.getCompletions(e)}async getShellPrompt(){return await this.initWorkerPromise,await this.childProcessRuntime.getShellPrompt()}setEvaluationListener(e){const t=this.evaluationListener;return this.evaluationListener=e,t}async terminate(){try{await this.initWorkerPromise}catch(e){}await(0,u.kill)(this.childProcess),this.childProcessRuntime&&this.childProcessRuntime[f.cancel](),this.childProcessEvaluationListener&&this.childProcessEvaluationListener.terminate(),this.childProcessMongoshBus&&this.childProcessMongoshBus.terminate()}async interrupt(){return await this.initWorkerPromise,this.childProcessRuntime.interrupt()}async waitForRuntimeToBeReady(){await this.initWorkerPromise}}},369:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.createCaller=t.exposeAll=t.cancel=t.close=t.removeTrailingUndefined=t.deserialize=t.serialize=void 0;const i=r(n(655)),o=n(429),s=n(568);function u(e){return`data:;base64,${i.default.serialize(e).toString("base64")}`}function f(e){return/^data:;base64,.+/.test(e)?i.default.deserialize(Buffer.from(e.replace("data:;base64,",""),"base64")):e}var a;function l(e){return e&&"object"==typeof e&&"id"in e&&"sender"in e}function c(e){return l(e)&&"postmsg-rpc/server"===e.sender}function h(e){return l(e)&&"postmsg-rpc/client"===e.sender}function p(e){if(Array.isArray(e))for(e=[...e];e.length>0&&void 0===e[e.length-1];)e.pop();return e}function d(e){return{addListener:e.on.bind(e),removeListener:e.off.bind(e),postMessage(t){if(h(t)&&Array.isArray(t.args)&&(t.args=u(p(t.args))),c(t))try{t.res=u(t.res)}catch(e){t.res=u({type:a.Error,payload:(0,s.serializeError)(e)})}return function(e,t){"postMessage"in e&&"function"==typeof e.postMessage&&e.postMessage(t),"send"in e&&"function"==typeof e.send&&e.send(t)}(e,t)},getMessageData:e=>(h(e)&&e.args&&"string"==typeof e.args&&(e.args=f(e.args)),c(e)&&"string"==typeof e.res&&(e.res=f(e.res)),e)}}t.serialize=u,t.deserialize=f,function(e){e[e.Message=0]="Message",e[e.Error=1]="Error"}(a||(a={})),t.removeTrailingUndefined=p,t.close=Symbol("@@rpc.close"),t.cancel=Symbol("@@rpc.cancel"),t.exposeAll=function(e,n){return Object.entries(e).forEach((([e,t])=>{const{close:r}=(0,o.expose)(e,(async(...e)=>{try{return{type:a.Message,payload:await t(...e)}}catch(e){return{type:a.Error,payload:(0,s.serializeError)(e)}}}),d(n));t.close=r})),Object.defineProperty(e,t.close,{enumerable:!1,value(){Object.values(e).forEach((e=>{e.close()}))}}),e},t.createCaller=function(e,n,r={}){const i={},u=new Set;return e.forEach((e=>{const t=(0,o.caller)(e,d(n));i[e]=async(...n)=>{var i;const o="function"==typeof r[e]?null===(i=r[e])||void 0===i?void 0:i.call(r,...n):n,f=t(...o);u.add(f);const l=await f;if(u.delete(f),(c=l)&&"object"==typeof c&&c.type===a.Error)throw(0,s.deserializeError)(l.payload);var c;return l.payload}})),Object.defineProperty(i,t.cancel,{enumerable:!1,value(){for(const e of u)e.cancel(),u.delete(e)}}),i}},568:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.deserializeConnectOptions=t.serializeConnectOptions=t.deserializeEvaluationResult=t.serializeEvaluationResult=t.SerializedResultTypes=t.deserializeError=t.serializeError=void 0;const r=n(837),i=n(699);function o(e){var t;return(t=e,Object.getOwnPropertyNames(t)).concat("name").reduce(((t,n)=>(t[n]=e[n],t)),{})}function s(e){return Object.assign(new Error,e)}var u;t.serializeError=o,t.deserializeError=s,function(e){e.SerializedErrorResult="SerializedErrorResult",e.InspectResult="InspectResult",e.SerializedShellApiResult="SerializedShellApiResult"}(u=t.SerializedResultTypes||(t.SerializedResultTypes={})),t.serializeEvaluationResult=function({type:e,printable:t,source:n}){return"object"!=typeof(s=t)&&"function"!=typeof s||null===s?{type:e,printable:t,source:n}:function(e){return e&&e.name&&e.message&&e.stack}(t)?{type:u.SerializedErrorResult,printable:o(t),source:n}:null===e?{type:u.InspectResult,printable:(0,r.inspect)(t),source:n}:{type:u.SerializedShellApiResult,printable:{origType:e,serializedValue:i.EJSON.serialize(t)}};var s},t.deserializeEvaluationResult=function({type:e,printable:t,source:n}){return e===u.SerializedErrorResult?{type:e,printable:s(t),source:n}:e===u.SerializedShellApiResult?{type:t.origType,printable:i.EJSON.deserialize(t.serializedValue),source:n}:{type:e,printable:t,source:n}};const f=["schemaMap","encryptedFieldsMap"];t.serializeConnectOptions=function(e={}){var t;const n={...e};for(const e of f)(null===(t=n.autoEncryption)||void 0===t?void 0:t[e])&&(n.autoEncryption={...n.autoEncryption,[e]:i.EJSON.serialize(n.autoEncryption[e],{relaxed:!1})});return n},t.deserializeConnectOptions=function(e){var t;const n={...e};for(const e of f)(null===(t=n.autoEncryption)||void 0===t?void 0:t[e])&&(n.autoEncryption={...n.autoEncryption,[e]:i.EJSON.deserialize(n.autoEncryption[e],{relaxed:!1})});return n}},859:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.kill=void 0;const r=n(81),i=n(361);async function o(e,t="SIGTERM"){e.kill(t),null===e.exitCode&&null===e.signalCode&&await(0,i.once)(e,"exit")}t.kill=o,t.default=function(e,t={},n,i="inherit",s="inherit"){return new Promise((async(u,f)=>{const a=Date.now().toString(32),l=(0,r.spawn)(process.execPath,{stdio:["pipe",i,s,"ipc"],...t});if(!l.stdin)return await o(l),f(new Error("Can't write src to the spawned process, missing stdin"));let c;function h(){c&&clearTimeout(c),l.stdin&&l.stdin.off("error",d),l.off("message",g),l.off("exit",p)}function p(e){e&&e>0&&(h(),f(new Error("Child process exited with error before starting")))}async function d(e){h(),await o(l),f(e)}function g(e){e===a&&(h(),u(l))}l.on("message",g),l.on("exit",p),l.stdin.on("error",d),l.stdin.write(e),l.stdin.write(`;process.send(${JSON.stringify(a)})`),l.stdin.end(),c=void 0!==n?setTimeout((async function(){h(),await o(l),f(new Error("Timed out while waiting for child process to start"))}),n):null}))}},699:(e,t,n)=>{"use strict";n.r(t),n.d(t,{BSONError:()=>u,BSONRegExp:()=>Je,BSONSymbol:()=>Ye,BSONTypeError:()=>f,BSON_BINARY_SUBTYPE_BYTE_ARRAY:()=>ne,BSON_BINARY_SUBTYPE_COLUMN:()=>ue,BSON_BINARY_SUBTYPE_DEFAULT:()=>ee,BSON_BINARY_SUBTYPE_ENCRYPTED:()=>se,BSON_BINARY_SUBTYPE_FUNCTION:()=>te,BSON_BINARY_SUBTYPE_MD5:()=>oe,BSON_BINARY_SUBTYPE_USER_DEFINED:()=>fe,BSON_BINARY_SUBTYPE_UUID:()=>re,BSON_BINARY_SUBTYPE_UUID_NEW:()=>ie,BSON_DATA_ARRAY:()=>D,BSON_DATA_BINARY:()=>$,BSON_DATA_BOOLEAN:()=>C,BSON_DATA_CODE:()=>F,BSON_DATA_CODE_W_SCOPE:()=>H,BSON_DATA_DATE:()=>k,BSON_DATA_DBPOINTER:()=>V,BSON_DATA_DECIMAL128:()=>X,BSON_DATA_INT:()=>Z,BSON_DATA_LONG:()=>W,BSON_DATA_MAX_KEY:()=>Q,BSON_DATA_MIN_KEY:()=>G,BSON_DATA_NULL:()=>J,BSON_DATA_NUMBER:()=>U,BSON_DATA_OBJECT:()=>R,BSON_DATA_OID:()=>z,BSON_DATA_REGEXP:()=>Y,BSON_DATA_STRING:()=>T,BSON_DATA_SYMBOL:()=>q,BSON_DATA_TIMESTAMP:()=>K,BSON_DATA_UNDEFINED:()=>M,BSON_INT32_MAX:()=>N,BSON_INT32_MIN:()=>j,BSON_INT64_MAX:()=>I,BSON_INT64_MIN:()=>A,Binary:()=>ae,Code:()=>ce,DBRef:()=>pe,Decimal128:()=>Ue,Double:()=>Te,EJSON:()=>tt,Int32:()=>Re,Long:()=>we,LongWithoutOverridesClass:()=>Ve,Map:()=>nt,MaxKey:()=>De,MinKey:()=>$e,ObjectID:()=>ke,ObjectId:()=>ke,Timestamp:()=>Fe,UUID:()=>le,calculateObjectSize:()=>Ht,default:()=>Kt,deserialize:()=>qt,deserializeStream:()=>Zt,serialize:()=>Vt,serializeWithBufferAndIndex:()=>Ft,setInternalBufferSize:()=>Yt});const r=require("buffer");var i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},i(e,t)};function o(e,t){function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var s=function(){return s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},s.apply(this,arguments)},u=function(e){function t(n){var r=e.call(this,n)||this;return Object.setPrototypeOf(r,t.prototype),r}return o(t,e),Object.defineProperty(t.prototype,"name",{get:function(){return"BSONError"},enumerable:!1,configurable:!0}),t}(Error),f=function(e){function t(n){var r=e.call(this,n)||this;return Object.setPrototypeOf(r,t.prototype),r}return o(t,e),Object.defineProperty(t.prototype,"name",{get:function(){return"BSONTypeError"},enumerable:!1,configurable:!0}),t}(TypeError);function a(e){return e&&e.Math==Math&&e}function l(){return a("object"==typeof globalThis&&globalThis)||a("object"==typeof window&&window)||a("object"==typeof self&&self)||a("object"==typeof global&&global)||Function("return this")()}function c(e){return e.toString().replace("function(","function (")}var h=function(e){var t,n="object"==typeof(t=l()).navigator&&"ReactNative"===t.navigator.product?"BSON: For React Native please polyfill crypto.getRandomValues, e.g. using: https://www.npmjs.com/package/react-native-get-random-values.":"BSON: No cryptographic implementation for random bytes present, falling back to a less secure implementation.";console.warn(n);for(var i=r.Buffer.alloc(e),o=0;o<e;++o)i[o]=Math.floor(256*Math.random());return i},p=function(){var e=void 0;try{e=n(113).randomBytes}catch(e){}return e||h}();function d(e){return["[object ArrayBuffer]","[object SharedArrayBuffer]"].includes(Object.prototype.toString.call(e))}function g(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)}function y(e){return"[object BigInt64Array]"===Object.prototype.toString.call(e)}function b(e){return"[object BigUint64Array]"===Object.prototype.toString.call(e)}function v(e){return"[object RegExp]"===Object.prototype.toString.call(e)}function m(e){return w(e)&&"[object Date]"===Object.prototype.toString.call(e)}function w(e){return"object"==typeof e&&null!==e}function _(e,t){var n=!1;return function(){for(var r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];return n||(console.warn(t),n=!0),e.apply(this,r)}}function S(e){if(ArrayBuffer.isView(e))return r.Buffer.from(e.buffer,e.byteOffset,e.byteLength);if(d(e))return r.Buffer.from(e);throw new f("Must use either Buffer or TypedArray")}var O=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9a-f]{12}4[0-9a-f]{3}[89ab][0-9a-f]{15})$/i,x=function(e){return"string"==typeof e&&O.test(e)},B=function(e){if(!x(e))throw new f('UUID string representations must be a 32 or 36 character hex string (dashes excluded/included). Format: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" or "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".');var t=e.replace(/-/g,"");return r.Buffer.from(t,"hex")},E=function(e,t){return void 0===t&&(t=!0),t?e.toString("hex",0,4)+"-"+e.toString("hex",4,6)+"-"+e.toString("hex",6,8)+"-"+e.toString("hex",8,10)+"-"+e.toString("hex",10,16):e.toString("hex")},N=2147483647,j=-2147483648,I=Math.pow(2,63)-1,A=-Math.pow(2,63),L=Math.pow(2,53),P=-Math.pow(2,53),U=1,T=2,R=3,D=4,$=5,M=6,z=7,C=8,k=9,J=10,Y=11,V=12,F=13,q=14,H=15,Z=16,K=17,W=18,X=19,G=255,Q=127,ee=0,te=1,ne=2,re=3,ie=4,oe=5,se=6,ue=7,fe=128,ae=function(){function e(t,n){if(!(this instanceof e))return new e(t,n);if(!(null==t||"string"==typeof t||ArrayBuffer.isView(t)||t instanceof ArrayBuffer||Array.isArray(t)))throw new f("Binary can only be constructed from string, Buffer, TypedArray, or Array<number>");this.sub_type=null!=n?n:e.BSON_BINARY_SUBTYPE_DEFAULT,null==t?(this.buffer=r.Buffer.alloc(e.BUFFER_SIZE),this.position=0):("string"==typeof t?this.buffer=r.Buffer.from(t,"binary"):Array.isArray(t)?this.buffer=r.Buffer.from(t):this.buffer=S(t),this.position=this.buffer.byteLength)}return e.prototype.put=function(t){if("string"==typeof t&&1!==t.length)throw new f("only accepts single character String");if("number"!=typeof t&&1!==t.length)throw new f("only accepts single character Uint8Array or Array");var n;if((n="string"==typeof t?t.charCodeAt(0):"number"==typeof t?t:t[0])<0||n>255)throw new f("only accepts number in a valid unsigned byte range 0-255");if(this.buffer.length>this.position)this.buffer[this.position++]=n;else{var i=r.Buffer.alloc(e.BUFFER_SIZE+this.buffer.length);this.buffer.copy(i,0,0,this.buffer.length),this.buffer=i,this.buffer[this.position++]=n}},e.prototype.write=function(e,t){if(t="number"==typeof t?t:this.position,this.buffer.length<t+e.length){var n=r.Buffer.alloc(this.buffer.length+e.length);this.buffer.copy(n,0,0,this.buffer.length),this.buffer=n}ArrayBuffer.isView(e)?(this.buffer.set(S(e),t),this.position=t+e.byteLength>this.position?t+e.length:this.position):"string"==typeof e&&(this.buffer.write(e,t,e.length,"binary"),this.position=t+e.length>this.position?t+e.length:this.position)},e.prototype.read=function(e,t){return t=t&&t>0?t:this.position,this.buffer.slice(e,e+t)},e.prototype.value=function(e){return(e=!!e)&&this.buffer.length===this.position?this.buffer:e?this.buffer.slice(0,this.position):this.buffer.toString("binary",0,this.position)},e.prototype.length=function(){return this.position},e.prototype.toJSON=function(){return this.buffer.toString("base64")},e.prototype.toString=function(e){return this.buffer.toString(e)},e.prototype.toExtendedJSON=function(e){e=e||{};var t=this.buffer.toString("base64"),n=Number(this.sub_type).toString(16);return e.legacy?{$binary:t,$type:1===n.length?"0"+n:n}:{$binary:{base64:t,subType:1===n.length?"0"+n:n}}},e.prototype.toUUID=function(){if(this.sub_type===e.SUBTYPE_UUID)return new le(this.buffer.slice(0,this.position));throw new u('Binary sub_type "'.concat(this.sub_type,'" is not supported for converting to UUID. Only "').concat(e.SUBTYPE_UUID,'" is currently supported.'))},e.fromExtendedJSON=function(t,n){var i,o;if(n=n||{},"$binary"in t?n.legacy&&"string"==typeof t.$binary&&"$type"in t?(o=t.$type?parseInt(t.$type,16):0,i=r.Buffer.from(t.$binary,"base64")):"string"!=typeof t.$binary&&(o=t.$binary.subType?parseInt(t.$binary.subType,16):0,i=r.Buffer.from(t.$binary.base64,"base64")):"$uuid"in t&&(o=4,i=B(t.$uuid)),!i)throw new f("Unexpected Binary Extended JSON format ".concat(JSON.stringify(t)));return o===ie?new le(i):new e(i,o)},e.prototype[Symbol.for("nodejs.util.inspect.custom")]=function(){return this.inspect()},e.prototype.inspect=function(){var e=this.value(!0);return'new Binary(Buffer.from("'.concat(e.toString("hex"),'", "hex"), ').concat(this.sub_type,")")},e.BSON_BINARY_SUBTYPE_DEFAULT=0,e.BUFFER_SIZE=256,e.SUBTYPE_DEFAULT=0,e.SUBTYPE_FUNCTION=1,e.SUBTYPE_BYTE_ARRAY=2,e.SUBTYPE_UUID_OLD=3,e.SUBTYPE_UUID=4,e.SUBTYPE_MD5=5,e.SUBTYPE_ENCRYPTED=6,e.SUBTYPE_COLUMN=7,e.SUBTYPE_USER_DEFINED=128,e}();Object.defineProperty(ae.prototype,"_bsontype",{value:"Binary"});var le=function(e){function t(n){var i,o,s=this;if(null==n)i=t.generate();else if(n instanceof t)i=r.Buffer.from(n.buffer),o=n.__id;else if(ArrayBuffer.isView(n)&&16===n.byteLength)i=S(n);else{if("string"!=typeof n)throw new f("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).");i=B(n)}return(s=e.call(this,i,ie)||this).__id=o,s}return o(t,e),Object.defineProperty(t.prototype,"id",{get:function(){return this.buffer},set:function(e){this.buffer=e,t.cacheHexString&&(this.__id=E(e))},enumerable:!1,configurable:!0}),t.prototype.toHexString=function(e){if(void 0===e&&(e=!0),t.cacheHexString&&this.__id)return this.__id;var n=E(this.id,e);return t.cacheHexString&&(this.__id=n),n},t.prototype.toString=function(e){return e?this.id.toString(e):this.toHexString()},t.prototype.toJSON=function(){return this.toHexString()},t.prototype.equals=function(e){if(!e)return!1;if(e instanceof t)return e.id.equals(this.id);try{return new t(e).id.equals(this.id)}catch(e){return!1}},t.prototype.toBinary=function(){return new ae(this.id,ae.SUBTYPE_UUID)},t.generate=function(){var e=p(16);return e[6]=15&e[6]|64,e[8]=63&e[8]|128,r.Buffer.from(e)},t.isValid=function(e){return!!e&&(e instanceof t||("string"==typeof e?x(e):!!g(e)&&(16===e.length&&(64==(240&e[6])&&128==(128&e[8])))))},t.createFromHexString=function(e){return new t(B(e))},t.prototype[Symbol.for("nodejs.util.inspect.custom")]=function(){return this.inspect()},t.prototype.inspect=function(){return'new UUID("'.concat(this.toHexString(),'")')},t}(ae),ce=function(){function e(t,n){if(!(this instanceof e))return new e(t,n);this.code=t,this.scope=n}return e.prototype.toJSON=function(){return{code:this.code,scope:this.scope}},e.prototype.toExtendedJSON=function(){return this.scope?{$code:this.code,$scope:this.scope}:{$code:this.code}},e.fromExtendedJSON=function(t){return new e(t.$code,t.$scope)},e.prototype[Symbol.for("nodejs.util.inspect.custom")]=function(){return this.inspect()},e.prototype.inspect=function(){var e=this.toJSON();return'new Code("'.concat(String(e.code),'"').concat(e.scope?", ".concat(JSON.stringify(e.scope)):"",")")},e}();function he(e){return w(e)&&null!=e.$id&&"string"==typeof e.$ref&&(null==e.$db||"string"==typeof e.$db)}Object.defineProperty(ce.prototype,"_bsontype",{value:"Code"});var pe=function(){function e(t,n,r,i){if(!(this instanceof e))return new e(t,n,r,i);var o=t.split(".");2===o.length&&(r=o.shift(),t=o.shift()),this.collection=t,this.oid=n,this.db=r,this.fields=i||{}}return Object.defineProperty(e.prototype,"namespace",{get:function(){return this.collection},set:function(e){this.collection=e},enumerable:!1,configurable:!0}),e.prototype.toJSON=function(){var e=Object.assign({$ref:this.collection,$id:this.oid},this.fields);return null!=this.db&&(e.$db=this.db),e},e.prototype.toExtendedJSON=function(e){e=e||{};var t={$ref:this.collection,$id:this.oid};return e.legacy?t:(this.db&&(t.$db=this.db),t=Object.assign(t,this.fields))},e.fromExtendedJSON=function(t){var n=Object.assign({},t);return delete n.$ref,delete n.$id,delete n.$db,new e(t.$ref,t.$id,t.$db,n)},e.prototype[Symbol.for("nodejs.util.inspect.custom")]=function(){return this.inspect()},e.prototype.inspect=function(){var e=void 0===this.oid||void 0===this.oid.toString?this.oid:this.oid.toString();return'new DBRef("'.concat(this.namespace,'", new ObjectId("').concat(String(e),'")').concat(this.db?', "'.concat(this.db,'"'):"",")")},e}();Object.defineProperty(pe.prototype,"_bsontype",{value:"DBRef"});var de=void 0;try{de=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}catch(e){}var ge=4294967296,ye=0x10000000000000000,be=ye/2,ve={},me={},we=function(){function e(t,n,r){if(void 0===t&&(t=0),!(this instanceof e))return new e(t,n,r);"bigint"==typeof t?Object.assign(this,e.fromBigInt(t,!!n)):"string"==typeof t?Object.assign(this,e.fromString(t,!!n)):(this.low=0|t,this.high=0|n,this.unsigned=!!r),Object.defineProperty(this,"__isLong__",{value:!0,configurable:!1,writable:!1,enumerable:!1})}return e.fromBits=function(t,n,r){return new e(t,n,r)},e.fromInt=function(t,n){var r,i,o;return n?(o=0<=(t>>>=0)&&t<256)&&(i=me[t])?i:(r=e.fromBits(t,(0|t)<0?-1:0,!0),o&&(me[t]=r),r):(o=-128<=(t|=0)&&t<128)&&(i=ve[t])?i:(r=e.fromBits(t,t<0?-1:0,!1),o&&(ve[t]=r),r)},e.fromNumber=function(t,n){if(isNaN(t))return n?e.UZERO:e.ZERO;if(n){if(t<0)return e.UZERO;if(t>=ye)return e.MAX_UNSIGNED_VALUE}else{if(t<=-be)return e.MIN_VALUE;if(t+1>=be)return e.MAX_VALUE}return t<0?e.fromNumber(-t,n).neg():e.fromBits(t%ge|0,t/ge|0,n)},e.fromBigInt=function(t,n){return e.fromString(t.toString(),n)},e.fromString=function(t,n,r){if(0===t.length)throw Error("empty string");if("NaN"===t||"Infinity"===t||"+Infinity"===t||"-Infinity"===t)return e.ZERO;if("number"==typeof n?(r=n,n=!1):n=!!n,(r=r||10)<2||36<r)throw RangeError("radix");var i;if((i=t.indexOf("-"))>0)throw Error("interior hyphen");if(0===i)return e.fromString(t.substring(1),n,r).neg();for(var o=e.fromNumber(Math.pow(r,8)),s=e.ZERO,u=0;u<t.length;u+=8){var f=Math.min(8,t.length-u),a=parseInt(t.substring(u,u+f),r);if(f<8){var l=e.fromNumber(Math.pow(r,f));s=s.mul(l).add(e.fromNumber(a))}else s=(s=s.mul(o)).add(e.fromNumber(a))}return s.unsigned=n,s},e.fromBytes=function(t,n,r){return r?e.fromBytesLE(t,n):e.fromBytesBE(t,n)},e.fromBytesLE=function(t,n){return new e(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n)},e.fromBytesBE=function(t,n){return new e(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],n)},e.isLong=function(e){return w(e)&&!0===e.__isLong__},e.fromValue=function(t,n){return"number"==typeof t?e.fromNumber(t,n):"string"==typeof t?e.fromString(t,n):e.fromBits(t.low,t.high,"boolean"==typeof n?n:t.unsigned)},e.prototype.add=function(t){e.isLong(t)||(t=e.fromValue(t));var n=this.high>>>16,r=65535&this.high,i=this.low>>>16,o=65535&this.low,s=t.high>>>16,u=65535&t.high,f=t.low>>>16,a=0,l=0,c=0,h=0;return c+=(h+=o+(65535&t.low))>>>16,h&=65535,l+=(c+=i+f)>>>16,c&=65535,a+=(l+=r+u)>>>16,l&=65535,a+=n+s,a&=65535,e.fromBits(c<<16|h,a<<16|l,this.unsigned)},e.prototype.and=function(t){return e.isLong(t)||(t=e.fromValue(t)),e.fromBits(this.low&t.low,this.high&t.high,this.unsigned)},e.prototype.compare=function(t){if(e.isLong(t)||(t=e.fromValue(t)),this.eq(t))return 0;var n=this.isNegative(),r=t.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1},e.prototype.comp=function(e){return this.compare(e)},e.prototype.divide=function(t){if(e.isLong(t)||(t=e.fromValue(t)),t.isZero())throw Error("division by zero");if(de){if(!this.unsigned&&-2147483648===this.high&&-1===t.low&&-1===t.high)return this;var n=(this.unsigned?de.div_u:de.div_s)(this.low,this.high,t.low,t.high);return e.fromBits(n,de.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?e.UZERO:e.ZERO;var r,i,o;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return e.UZERO;if(t.gt(this.shru(1)))return e.UONE;o=e.UZERO}else{if(this.eq(e.MIN_VALUE))return t.eq(e.ONE)||t.eq(e.NEG_ONE)?e.MIN_VALUE:t.eq(e.MIN_VALUE)?e.ONE:(r=this.shr(1).div(t).shl(1)).eq(e.ZERO)?t.isNegative()?e.ONE:e.NEG_ONE:(i=this.sub(t.mul(r)),o=r.add(i.div(t)));if(t.eq(e.MIN_VALUE))return this.unsigned?e.UZERO:e.ZERO;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();o=e.ZERO}for(i=this;i.gte(t);){r=Math.max(1,Math.floor(i.toNumber()/t.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),u=s<=48?1:Math.pow(2,s-48),f=e.fromNumber(r),a=f.mul(t);a.isNegative()||a.gt(i);)r-=u,a=(f=e.fromNumber(r,this.unsigned)).mul(t);f.isZero()&&(f=e.ONE),o=o.add(f),i=i.sub(a)}return o},e.prototype.div=function(e){return this.divide(e)},e.prototype.equals=function(t){return e.isLong(t)||(t=e.fromValue(t)),(this.unsigned===t.unsigned||this.high>>>31!=1||t.high>>>31!=1)&&(this.high===t.high&&this.low===t.low)},e.prototype.eq=function(e){return this.equals(e)},e.prototype.getHighBits=function(){return this.high},e.prototype.getHighBitsUnsigned=function(){return this.high>>>0},e.prototype.getLowBits=function(){return this.low},e.prototype.getLowBitsUnsigned=function(){return this.low>>>0},e.prototype.getNumBitsAbs=function(){if(this.isNegative())return this.eq(e.MIN_VALUE)?64:this.neg().getNumBitsAbs();var t,n=0!==this.high?this.high:this.low;for(t=31;t>0&&0==(n&1<<t);t--);return 0!==this.high?t+33:t+1},e.prototype.greaterThan=function(e){return this.comp(e)>0},e.prototype.gt=function(e){return this.greaterThan(e)},e.prototype.greaterThanOrEqual=function(e){return this.comp(e)>=0},e.prototype.gte=function(e){return this.greaterThanOrEqual(e)},e.prototype.ge=function(e){return this.greaterThanOrEqual(e)},e.prototype.isEven=function(){return 0==(1&this.low)},e.prototype.isNegative=function(){return!this.unsigned&&this.high<0},e.prototype.isOdd=function(){return 1==(1&this.low)},e.prototype.isPositive=function(){return this.unsigned||this.high>=0},e.prototype.isZero=function(){return 0===this.high&&0===this.low},e.prototype.lessThan=function(e){return this.comp(e)<0},e.prototype.lt=function(e){return this.lessThan(e)},e.prototype.lessThanOrEqual=function(e){return this.comp(e)<=0},e.prototype.lte=function(e){return this.lessThanOrEqual(e)},e.prototype.modulo=function(t){if(e.isLong(t)||(t=e.fromValue(t)),de){var n=(this.unsigned?de.rem_u:de.rem_s)(this.low,this.high,t.low,t.high);return e.fromBits(n,de.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))},e.prototype.mod=function(e){return this.modulo(e)},e.prototype.rem=function(e){return this.modulo(e)},e.prototype.multiply=function(t){if(this.isZero())return e.ZERO;if(e.isLong(t)||(t=e.fromValue(t)),de){var n=de.mul(this.low,this.high,t.low,t.high);return e.fromBits(n,de.get_high(),this.unsigned)}if(t.isZero())return e.ZERO;if(this.eq(e.MIN_VALUE))return t.isOdd()?e.MIN_VALUE:e.ZERO;if(t.eq(e.MIN_VALUE))return this.isOdd()?e.MIN_VALUE:e.ZERO;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(e.TWO_PWR_24)&&t.lt(e.TWO_PWR_24))return e.fromNumber(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,i=65535&this.high,o=this.low>>>16,s=65535&this.low,u=t.high>>>16,f=65535&t.high,a=t.low>>>16,l=65535&t.low,c=0,h=0,p=0,d=0;return p+=(d+=s*l)>>>16,d&=65535,h+=(p+=o*l)>>>16,p&=65535,h+=(p+=s*a)>>>16,p&=65535,c+=(h+=i*l)>>>16,h&=65535,c+=(h+=o*a)>>>16,h&=65535,c+=(h+=s*f)>>>16,h&=65535,c+=r*l+i*a+o*f+s*u,c&=65535,e.fromBits(p<<16|d,c<<16|h,this.unsigned)},e.prototype.mul=function(e){return this.multiply(e)},e.prototype.negate=function(){return!this.unsigned&&this.eq(e.MIN_VALUE)?e.MIN_VALUE:this.not().add(e.ONE)},e.prototype.neg=function(){return this.negate()},e.prototype.not=function(){return e.fromBits(~this.low,~this.high,this.unsigned)},e.prototype.notEquals=function(e){return!this.equals(e)},e.prototype.neq=function(e){return this.notEquals(e)},e.prototype.ne=function(e){return this.notEquals(e)},e.prototype.or=function(t){return e.isLong(t)||(t=e.fromValue(t)),e.fromBits(this.low|t.low,this.high|t.high,this.unsigned)},e.prototype.shiftLeft=function(t){return e.isLong(t)&&(t=t.toInt()),0==(t&=63)?this:t<32?e.fromBits(this.low<<t,this.high<<t|this.low>>>32-t,this.unsigned):e.fromBits(0,this.low<<t-32,this.unsigned)},e.prototype.shl=function(e){return this.shiftLeft(e)},e.prototype.shiftRight=function(t){return e.isLong(t)&&(t=t.toInt()),0==(t&=63)?this:t<32?e.fromBits(this.low>>>t|this.high<<32-t,this.high>>t,this.unsigned):e.fromBits(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},e.prototype.shr=function(e){return this.shiftRight(e)},e.prototype.shiftRightUnsigned=function(t){if(e.isLong(t)&&(t=t.toInt()),0===(t&=63))return this;var n=this.high;if(t<32){var r=this.low;return e.fromBits(r>>>t|n<<32-t,n>>>t,this.unsigned)}return 32===t?e.fromBits(n,0,this.unsigned):e.fromBits(n>>>t-32,0,this.unsigned)},e.prototype.shr_u=function(e){return this.shiftRightUnsigned(e)},e.prototype.shru=function(e){return this.shiftRightUnsigned(e)},e.prototype.subtract=function(t){return e.isLong(t)||(t=e.fromValue(t)),this.add(t.neg())},e.prototype.sub=function(e){return this.subtract(e)},e.prototype.toInt=function(){return this.unsigned?this.low>>>0:this.low},e.prototype.toNumber=function(){return this.unsigned?(this.high>>>0)*ge+(this.low>>>0):this.high*ge+(this.low>>>0)},e.prototype.toBigInt=function(){return BigInt(this.toString())},e.prototype.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},e.prototype.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},e.prototype.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},e.prototype.toSigned=function(){return this.unsigned?e.fromBits(this.low,this.high,!1):this},e.prototype.toString=function(t){if((t=t||10)<2||36<t)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative()){if(this.eq(e.MIN_VALUE)){var n=e.fromNumber(t),r=this.div(n),i=r.mul(n).sub(this);return r.toString(t)+i.toInt().toString(t)}return"-"+this.neg().toString(t)}for(var o=e.fromNumber(Math.pow(t,6),this.unsigned),s=this,u="";;){var f=s.div(o),a=(s.sub(f.mul(o)).toInt()>>>0).toString(t);if((s=f).isZero())return a+u;for(;a.length<6;)a="0"+a;u=""+a+u}},e.prototype.toUnsigned=function(){return this.unsigned?this:e.fromBits(this.low,this.high,!0)},e.prototype.xor=function(t){return e.isLong(t)||(t=e.fromValue(t)),e.fromBits(this.low^t.low,this.high^t.high,this.unsigned)},e.prototype.eqz=function(){return this.isZero()},e.prototype.le=function(e){return this.lessThanOrEqual(e)},e.prototype.toExtendedJSON=function(e){return e&&e.relaxed?this.toNumber():{$numberLong:this.toString()}},e.fromExtendedJSON=function(t,n){var r=e.fromString(t.$numberLong);return n&&n.relaxed?r.toNumber():r},e.prototype[Symbol.for("nodejs.util.inspect.custom")]=function(){return this.inspect()},e.prototype.inspect=function(){return'new Long("'.concat(this.toString(),'"').concat(this.unsigned?", true":"",")")},e.TWO_PWR_24=e.fromInt(16777216),e.MAX_UNSIGNED_VALUE=e.fromBits(-1,-1,!0),e.ZERO=e.fromInt(0),e.UZERO=e.fromInt(0,!0),e.ONE=e.fromInt(1),e.UONE=e.fromInt(1,!0),e.NEG_ONE=e.fromInt(-1),e.MAX_VALUE=e.fromBits(-1,2147483647,!1),e.MIN_VALUE=e.fromBits(0,-2147483648,!1),e}();Object.defineProperty(we.prototype,"__isLong__",{value:!0}),Object.defineProperty(we.prototype,"_bsontype",{value:"Long"});var _e=/^(\+|-)?(\d+|(\d*\.\d*))?(E|e)?([-+])?(\d+)?$/,Se=/^(\+|-)?(Infinity|inf)$/i,Oe=/^(\+|-)?NaN$/i,xe=6111,Be=-6176,Ee=[124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0].reverse(),Ne=[248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0].reverse(),je=[120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0].reverse(),Ie=/^([-+])?(\d+)?$/;function Ae(e){return!isNaN(parseInt(e,10))}function Le(e){var t=we.fromNumber(1e9),n=we.fromNumber(0);if(!(e.parts[0]||e.parts[1]||e.parts[2]||e.parts[3]))return{quotient:e,rem:n};for(var r=0;r<=3;r++)n=(n=n.shiftLeft(32)).add(new we(e.parts[r],0)),e.parts[r]=n.div(t).low,n=n.modulo(t);return{quotient:e,rem:n}}function Pe(e,t){throw new f('"'.concat(e,'" is not a valid Decimal128 string - ').concat(t))}var Ue=function(){function e(t){if(!(this instanceof e))return new e(t);if("string"==typeof t)this.bytes=e.fromString(t).bytes;else{if(!g(t))throw new f("Decimal128 must take a Buffer or string");if(16!==t.byteLength)throw new f("Decimal128 must take a Buffer of 16 bytes");this.bytes=t}}return e.fromString=function(t){var n,i=!1,o=!1,s=!1,u=0,a=0,l=0,c=0,h=0,p=[0],d=0,g=0,y=0,b=0,v=0,m=0,w=new we(0,0),_=new we(0,0),S=0;if(t.length>=7e3)throw new f(t+" not a valid Decimal128 string");var O=t.match(_e),x=t.match(Se),B=t.match(Oe);if(!O&&!x&&!B||0===t.length)throw new f(t+" not a valid Decimal128 string");if(O){var E=O[2],N=O[4],j=O[5],I=O[6];N&&void 0===I&&Pe(t,"missing exponent power"),N&&void 0===E&&Pe(t,"missing exponent base"),void 0===N&&(j||I)&&Pe(t,"missing e before exponent")}if("+"!==t[S]&&"-"!==t[S]||(i="-"===t[S++]),!Ae(t[S])&&"."!==t[S]){if("i"===t[S]||"I"===t[S])return new e(r.Buffer.from(i?Ne:je));if("N"===t[S])return new e(r.Buffer.from(Ee))}for(;Ae(t[S])||"."===t[S];)"."!==t[S]?(d<34&&("0"!==t[S]||s)&&(s||(h=a),s=!0,p[g++]=parseInt(t[S],10),d+=1),s&&(l+=1),o&&(c+=1),a+=1,S+=1):(o&&Pe(t,"contains multiple periods"),o=!0,S+=1);if(o&&!a)throw new f(t+" not a valid Decimal128 string");if("e"===t[S]||"E"===t[S]){var A=t.substr(++S).match(Ie);if(!A||!A[2])return new e(r.Buffer.from(Ee));v=parseInt(A[0],10),S+=A[0].length}if(t[S])return new e(r.Buffer.from(Ee));if(y=0,d){if(b=d-1,1!==(u=l))for(;0===p[h+u-1];)u-=1}else y=0,b=0,p[0]=0,l=1,d=1,u=0;for(v<=c&&c-v>16384?v=Be:v-=c;v>xe;){if((b+=1)-y>34){if(p.join("").match(/^0+$/)){v=xe;break}Pe(t,"overflow")}v-=1}for(;v<Be||d<l;){if(0===b&&u<d){v=Be,u=0;break}if(d<l?l-=1:b-=1,v<xe)v+=1;else{if(p.join("").match(/^0+$/)){v=xe;break}Pe(t,"overflow")}}if(b-y+1<u){var L=a;o&&(h+=1,L+=1),i&&(h+=1,L+=1);var P=parseInt(t[h+b+1],10),U=0;if(P>=5&&(U=1,5===P))for(U=p[b]%2==1?1:0,m=h+b+2;m<L;m++)if(parseInt(t[m],10)){U=1;break}if(U)for(var T=b;T>=0;T--)if(++p[T]>9&&(p[T]=0,0===T)){if(!(v<xe))return new e(r.Buffer.from(i?Ne:je));v+=1,p[T]=1}}if(w=we.fromNumber(0),_=we.fromNumber(0),0===u)w=we.fromNumber(0),_=we.fromNumber(0);else if(b-y<17){T=y;for(_=we.fromNumber(p[T++]),w=new we(0,0);T<=b;T++)_=(_=_.multiply(we.fromNumber(10))).add(we.fromNumber(p[T]))}else{T=y;for(w=we.fromNumber(p[T++]);T<=b-17;T++)w=(w=w.multiply(we.fromNumber(10))).add(we.fromNumber(p[T]));for(_=we.fromNumber(p[T++]);T<=b;T++)_=(_=_.multiply(we.fromNumber(10))).add(we.fromNumber(p[T]))}var R,D,$,M,z=function(e,t){if(!e&&!t)return{high:we.fromNumber(0),low:we.fromNumber(0)};var n=e.shiftRightUnsigned(32),r=new we(e.getLowBits(),0),i=t.shiftRightUnsigned(32),o=new we(t.getLowBits(),0),s=n.multiply(i),u=n.multiply(o),f=r.multiply(i),a=r.multiply(o);return s=s.add(u.shiftRightUnsigned(32)),u=new we(u.getLowBits(),0).add(f).add(a.shiftRightUnsigned(32)),{high:s=s.add(u.shiftRightUnsigned(32)),low:a=u.shiftLeft(32).add(new we(a.getLowBits(),0))}}(w,we.fromString("100000000000000000"));z.low=z.low.add(_),R=z.low,D=_,$=R.high>>>0,M=D.high>>>0,($<M||$===M&&R.low>>>0<D.low>>>0)&&(z.high=z.high.add(we.fromNumber(1))),n=v+6176;var C={low:we.fromNumber(0),high:we.fromNumber(0)};z.high.shiftRightUnsigned(49).and(we.fromNumber(1)).equals(we.fromNumber(1))?(C.high=C.high.or(we.fromNumber(3).shiftLeft(61)),C.high=C.high.or(we.fromNumber(n).and(we.fromNumber(16383).shiftLeft(47))),C.high=C.high.or(z.high.and(we.fromNumber(0x7fffffffffff)))):(C.high=C.high.or(we.fromNumber(16383&n).shiftLeft(49)),C.high=C.high.or(z.high.and(we.fromNumber(562949953421311)))),C.low=z.low,i&&(C.high=C.high.or(we.fromString("9223372036854775808")));var k=r.Buffer.alloc(16);return S=0,k[S++]=255&C.low.low,k[S++]=C.low.low>>8&255,k[S++]=C.low.low>>16&255,k[S++]=C.low.low>>24&255,k[S++]=255&C.low.high,k[S++]=C.low.high>>8&255,k[S++]=C.low.high>>16&255,k[S++]=C.low.high>>24&255,k[S++]=255&C.high.low,k[S++]=C.high.low>>8&255,k[S++]=C.high.low>>16&255,k[S++]=C.high.low>>24&255,k[S++]=255&C.high.high,k[S++]=C.high.high>>8&255,k[S++]=C.high.high>>16&255,k[S++]=C.high.high>>24&255,new e(k)},e.prototype.toString=function(){for(var e,t=0,n=new Array(36),r=0;r<n.length;r++)n[r]=0;var i,o,s,u=0,f=!1,a={parts:[0,0,0,0]},l=[];u=0;var c=this.bytes,h=c[u++]|c[u++]<<8|c[u++]<<16|c[u++]<<24,p=c[u++]|c[u++]<<8|c[u++]<<16|c[u++]<<24,d=c[u++]|c[u++]<<8|c[u++]<<16|c[u++]<<24,g=c[u++]|c[u++]<<8|c[u++]<<16|c[u++]<<24;u=0,{low:new we(h,p),high:new we(d,g)}.high.lessThan(we.ZERO)&&l.push("-");var y=g>>26&31;if(y>>3==3){if(30===y)return l.join("")+"Infinity";if(31===y)return"NaN";e=g>>15&16383,i=8+(g>>14&1)}else i=g>>14&7,e=g>>17&16383;var b=e-6176;if(a.parts[0]=(16383&g)+((15&i)<<14),a.parts[1]=d,a.parts[2]=p,a.parts[3]=h,0===a.parts[0]&&0===a.parts[1]&&0===a.parts[2]&&0===a.parts[3])f=!0;else for(s=3;s>=0;s--){var v=0,m=Le(a);if(a=m.quotient,v=m.rem.low)for(o=8;o>=0;o--)n[9*s+o]=v%10,v=Math.floor(v/10)}if(f)t=1,n[u]=0;else for(t=36;!n[u];)t-=1,u+=1;var w=t-1+b;if(w>=34||w<=-7||b>0){if(t>34)return l.push("".concat(0)),b>0?l.push("E+".concat(b)):b<0&&l.push("E".concat(b)),l.join("");l.push("".concat(n[u++])),(t-=1)&&l.push(".");for(r=0;r<t;r++)l.push("".concat(n[u++]));l.push("E"),w>0?l.push("+".concat(w)):l.push("".concat(w))}else if(b>=0)for(r=0;r<t;r++)l.push("".concat(n[u++]));else{var _=t+b;if(_>0)for(r=0;r<_;r++)l.push("".concat(n[u++]));else l.push("0");for(l.push(".");_++<0;)l.push("0");for(r=0;r<t-Math.max(_-1,0);r++)l.push("".concat(n[u++]))}return l.join("")},e.prototype.toJSON=function(){return{$numberDecimal:this.toString()}},e.prototype.toExtendedJSON=function(){return{$numberDecimal:this.toString()}},e.fromExtendedJSON=function(t){return e.fromString(t.$numberDecimal)},e.prototype[Symbol.for("nodejs.util.inspect.custom")]=function(){return this.inspect()},e.prototype.inspect=function(){return'new Decimal128("'.concat(this.toString(),'")')},e}();Object.defineProperty(Ue.prototype,"_bsontype",{value:"Decimal128"});var Te=function(){function e(t){if(!(this instanceof e))return new e(t);t instanceof Number&&(t=t.valueOf()),this.value=+t}return e.prototype.valueOf=function(){return this.value},e.prototype.toJSON=function(){return this.value},e.prototype.toString=function(e){return this.value.toString(e)},e.prototype.toExtendedJSON=function(e){return e&&(e.legacy||e.relaxed&&isFinite(this.value))?this.value:Object.is(Math.sign(this.value),-0)?{$numberDouble:"-".concat(this.value.toFixed(1))}:{$numberDouble:Number.isInteger(this.value)?this.value.toFixed(1):this.value.toString()}},e.fromExtendedJSON=function(t,n){var r=parseFloat(t.$numberDouble);return n&&n.relaxed?r:new e(r)},e.prototype[Symbol.for("nodejs.util.inspect.custom")]=function(){return this.inspect()},e.prototype.inspect=function(){var e=this.toExtendedJSON();return"new Double(".concat(e.$numberDouble,")")},e}();Object.defineProperty(Te.prototype,"_bsontype",{value:"Double"});var Re=function(){function e(t){if(!(this instanceof e))return new e(t);t instanceof Number&&(t=t.valueOf()),this.value=0|+t}return e.prototype.valueOf=function(){return this.value},e.prototype.toString=function(e){return this.value.toString(e)},e.prototype.toJSON=function(){return this.value},e.prototype.toExtendedJSON=function(e){return e&&(e.relaxed||e.legacy)?this.value:{$numberInt:this.value.toString()}},e.fromExtendedJSON=function(t,n){return n&&n.relaxed?parseInt(t.$numberInt,10):new e(t.$numberInt)},e.prototype[Symbol.for("nodejs.util.inspect.custom")]=function(){return this.inspect()},e.prototype.inspect=function(){return"new Int32(".concat(this.valueOf(),")")},e}();Object.defineProperty(Re.prototype,"_bsontype",{value:"Int32"});var De=function(){function e(){if(!(this instanceof e))return new e}return e.prototype.toExtendedJSON=function(){return{$maxKey:1}},e.fromExtendedJSON=function(){return new e},e.prototype[Symbol.for("nodejs.util.inspect.custom")]=function(){return this.inspect()},e.prototype.inspect=function(){return"new MaxKey()"},e}();Object.defineProperty(De.prototype,"_bsontype",{value:"MaxKey"});var $e=function(){function e(){if(!(this instanceof e))return new e}return e.prototype.toExtendedJSON=function(){return{$minKey:1}},e.fromExtendedJSON=function(){return new e},e.prototype[Symbol.for("nodejs.util.inspect.custom")]=function(){return this.inspect()},e.prototype.inspect=function(){return"new MinKey()"},e}();Object.defineProperty($e.prototype,"_bsontype",{value:"MinKey"});var Me=new RegExp("^[0-9a-fA-F]{24}$"),ze=null,Ce=Symbol("id"),ke=function(){function e(t){if(!(this instanceof e))return new e(t);var n;if("object"==typeof t&&t&&"id"in t){if("string"!=typeof t.id&&!ArrayBuffer.isView(t.id))throw new f("Argument passed in must have an id that is of type string or Buffer");n="toHexString"in t&&"function"==typeof t.toHexString?r.Buffer.from(t.toHexString(),"hex"):t.id}else n=t;if(null==n||"number"==typeof n)this[Ce]=e.generate("number"==typeof n?n:void 0);else if(ArrayBuffer.isView(n)&&12===n.byteLength)this[Ce]=n instanceof r.Buffer?n:S(n);else{if("string"!=typeof n)throw new f("Argument passed in does not match the accepted types");if(12===n.length){var i=r.Buffer.from(n);if(12!==i.byteLength)throw new f("Argument passed in must be a string of 12 bytes");this[Ce]=i}else{if(24!==n.length||!Me.test(n))throw new f("Argument passed in must be a string of 12 bytes or a string of 24 hex characters or an integer");this[Ce]=r.Buffer.from(n,"hex")}}e.cacheHexString&&(this.__id=this.id.toString("hex"))}return Object.defineProperty(e.prototype,"id",{get:function(){return this[Ce]},set:function(t){this[Ce]=t,e.cacheHexString&&(this.__id=t.toString("hex"))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"generationTime",{get:function(){return this.id.readInt32BE(0)},set:function(e){this.id.writeUInt32BE(e,0)},enumerable:!1,configurable:!0}),e.prototype.toHexString=function(){if(e.cacheHexString&&this.__id)return this.__id;var t=this.id.toString("hex");return e.cacheHexString&&!this.__id&&(this.__id=t),t},e.getInc=function(){return e.index=(e.index+1)%16777215},e.generate=function(t){"number"!=typeof t&&(t=Math.floor(Date.now()/1e3));var n=e.getInc(),i=r.Buffer.alloc(12);return i.writeUInt32BE(t,0),null===ze&&(ze=p(5)),i[4]=ze[0],i[5]=ze[1],i[6]=ze[2],i[7]=ze[3],i[8]=ze[4],i[11]=255&n,i[10]=n>>8&255,i[9]=n>>16&255,i},e.prototype.toString=function(e){return e?this.id.toString(e):this.toHexString()},e.prototype.toJSON=function(){return this.toHexString()},e.prototype.equals=function(t){if(null==t)return!1;if(t instanceof e)return this[Ce][11]===t[Ce][11]&&this[Ce].equals(t[Ce]);if("string"==typeof t&&e.isValid(t)&&12===t.length&&g(this.id))return t===r.Buffer.prototype.toString.call(this.id,"latin1");if("string"==typeof t&&e.isValid(t)&&24===t.length)return t.toLowerCase()===this.toHexString();if("string"==typeof t&&e.isValid(t)&&12===t.length)return r.Buffer.from(t).equals(this.id);if("object"==typeof t&&"toHexString"in t&&"function"==typeof t.toHexString){var n=t.toHexString(),i=this.toHexString().toLowerCase();return"string"==typeof n&&n.toLowerCase()===i}return!1},e.prototype.getTimestamp=function(){var e=new Date,t=this.id.readUInt32BE(0);return e.setTime(1e3*Math.floor(t)),e},e.createPk=function(){return new e},e.createFromTime=function(t){var n=r.Buffer.from([0,0,0,0,0,0,0,0,0,0,0,0]);return n.writeUInt32BE(t,0),new e(n)},e.createFromHexString=function(t){if(void 0===t||null!=t&&24!==t.length)throw new f("Argument passed in must be a single String of 12 bytes or a string of 24 hex characters");return new e(r.Buffer.from(t,"hex"))},e.isValid=function(t){if(null==t)return!1;try{return new e(t),!0}catch(e){return!1}},e.prototype.toExtendedJSON=function(){return this.toHexString?{$oid:this.toHexString()}:{$oid:this.toString("hex")}},e.fromExtendedJSON=function(t){return new e(t.$oid)},e.prototype[Symbol.for("nodejs.util.inspect.custom")]=function(){return this.inspect()},e.prototype.inspect=function(){return'new ObjectId("'.concat(this.toHexString(),'")')},e.index=Math.floor(16777215*Math.random()),e}();Object.defineProperty(ke.prototype,"generate",{value:_((function(e){return ke.generate(e)}),"Please use the static `ObjectId.generate(time)` instead")}),Object.defineProperty(ke.prototype,"getInc",{value:_((function(){return ke.getInc()}),"Please use the static `ObjectId.getInc()` instead")}),Object.defineProperty(ke.prototype,"get_inc",{value:_((function(){return ke.getInc()}),"Please use the static `ObjectId.getInc()` instead")}),Object.defineProperty(ke,"get_inc",{value:_((function(){return ke.getInc()}),"Please use the static `ObjectId.getInc()` instead")}),Object.defineProperty(ke.prototype,"_bsontype",{value:"ObjectID"});var Je=function(){function e(t,n){if(!(this instanceof e))return new e(t,n);if(this.pattern=t,this.options=(null!=n?n:"").split("").sort().join(""),-1!==this.pattern.indexOf("\0"))throw new u("BSON Regex patterns cannot contain null bytes, found: ".concat(JSON.stringify(this.pattern)));if(-1!==this.options.indexOf("\0"))throw new u("BSON Regex options cannot contain null bytes, found: ".concat(JSON.stringify(this.options)));for(var r=0;r<this.options.length;r++)if("i"!==this.options[r]&&"m"!==this.options[r]&&"x"!==this.options[r]&&"l"!==this.options[r]&&"s"!==this.options[r]&&"u"!==this.options[r])throw new u("The regular expression option [".concat(this.options[r],"] is not supported"))}return e.parseOptions=function(e){return e?e.split("").sort().join(""):""},e.prototype.toExtendedJSON=function(e){return(e=e||{}).legacy?{$regex:this.pattern,$options:this.options}:{$regularExpression:{pattern:this.pattern,options:this.options}}},e.fromExtendedJSON=function(t){if("$regex"in t){if("string"==typeof t.$regex)return new e(t.$regex,e.parseOptions(t.$options));if("BSONRegExp"===t.$regex._bsontype)return t}if("$regularExpression"in t)return new e(t.$regularExpression.pattern,e.parseOptions(t.$regularExpression.options));throw new f("Unexpected BSONRegExp EJSON object form: ".concat(JSON.stringify(t)))},e}();Object.defineProperty(Je.prototype,"_bsontype",{value:"BSONRegExp"});var Ye=function(){function e(t){if(!(this instanceof e))return new e(t);this.value=t}return e.prototype.valueOf=function(){return this.value},e.prototype.toString=function(){return this.value},e.prototype.inspect=function(){return'new BSONSymbol("'.concat(this.value,'")')},e.prototype.toJSON=function(){return this.value},e.prototype.toExtendedJSON=function(){return{$symbol:this.value}},e.fromExtendedJSON=function(t){return new e(t.$symbol)},e.prototype[Symbol.for("nodejs.util.inspect.custom")]=function(){return this.inspect()},e}();Object.defineProperty(Ye.prototype,"_bsontype",{value:"Symbol"});var Ve=we,Fe=function(e){function t(n,r){var i=this;return i instanceof t?(i=we.isLong(n)?e.call(this,n.low,n.high,!0)||this:w(n)&&void 0!==n.t&&void 0!==n.i?e.call(this,n.i,n.t,!0)||this:e.call(this,n,r,!0)||this,Object.defineProperty(i,"_bsontype",{value:"Timestamp",writable:!1,configurable:!1,enumerable:!1}),i):new t(n,r)}return o(t,e),t.prototype.toJSON=function(){return{$timestamp:this.toString()}},t.fromInt=function(e){return new t(we.fromInt(e,!0))},t.fromNumber=function(e){return new t(we.fromNumber(e,!0))},t.fromBits=function(e,n){return new t(e,n)},t.fromString=function(e,n){return new t(we.fromString(e,!0,n))},t.prototype.toExtendedJSON=function(){return{$timestamp:{t:this.high>>>0,i:this.low>>>0}}},t.fromExtendedJSON=function(e){return new t(e.$timestamp)},t.prototype[Symbol.for("nodejs.util.inspect.custom")]=function(){return this.inspect()},t.prototype.inspect=function(){return"new Timestamp({ t: ".concat(this.getHighBits(),", i: ").concat(this.getLowBits()," })")},t.MAX_VALUE=we.MAX_UNSIGNED_VALUE,t}(Ve);function qe(e){return w(e)&&Reflect.has(e,"_bsontype")&&"string"==typeof e._bsontype}var He=2147483647,Ze=-2147483648,Ke=0x8000000000000000,We=-0x8000000000000000,Xe={$oid:ke,$binary:ae,$uuid:ae,$symbol:Ye,$numberInt:Re,$numberDecimal:Ue,$numberDouble:Te,$numberLong:we,$minKey:$e,$maxKey:De,$regex:Je,$regularExpression:Je,$timestamp:Fe};function Ge(e,t){if(void 0===t&&(t={}),"number"==typeof e){if(t.relaxed||t.legacy)return e;if(Math.floor(e)===e){if(e>=Ze&&e<=He)return new Re(e);if(e>=We&&e<=Ke)return we.fromNumber(e)}return new Te(e)}if(null==e||"object"!=typeof e)return e;if(e.$undefined)return null;for(var n=Object.keys(e).filter((function(t){return t.startsWith("$")&&null!=e[t]})),r=0;r<n.length;r++){var i=Xe[n[r]];if(i)return i.fromExtendedJSON(e,t)}if(null!=e.$date){var o=e.$date,s=new Date;return t.legacy?"number"==typeof o?s.setTime(o):"string"==typeof o&&s.setTime(Date.parse(o)):"string"==typeof o?s.setTime(Date.parse(o)):we.isLong(o)?s.setTime(o.toNumber()):"number"==typeof o&&t.relaxed&&s.setTime(o),s}if(null!=e.$code){var u=Object.assign({},e);return e.$scope&&(u.$scope=Ge(e.$scope)),ce.fromExtendedJSON(e)}if(he(e)||e.$dbPointer){var f=e.$ref?e:e.$dbPointer;if(f instanceof pe)return f;var a=Object.keys(f).filter((function(e){return e.startsWith("$")})),l=!0;if(a.forEach((function(e){-1===["$ref","$id","$db"].indexOf(e)&&(l=!1)})),l)return pe.fromExtendedJSON(f)}return e}function Qe(e){var t=e.toISOString();return 0!==e.getUTCMilliseconds()?t:t.slice(0,-5)+"Z"}function et(e,t){if(("object"==typeof e||"function"==typeof e)&&null!==e){var n=t.seenObjects.findIndex((function(t){return t.obj===e}));if(-1!==n){var r=t.seenObjects.map((function(e){return e.propertyName})),i=r.slice(0,n).map((function(e){return"".concat(e," -> ")})).join(""),o=r[n],s=" -> "+r.slice(n+1,r.length-1).map((function(e){return"".concat(e," -> ")})).join(""),a=r[r.length-1],l=" ".repeat(i.length+o.length/2),c="-".repeat(s.length+(o.length+a.length)/2-1);throw new f("Converting circular structure to EJSON:\n"+" ".concat(i).concat(o).concat(s).concat(a,"\n")+" ".concat(l,"\\").concat(c,"/"))}t.seenObjects[t.seenObjects.length-1].obj=e}if(Array.isArray(e))return function(e,t){return e.map((function(e,n){t.seenObjects.push({propertyName:"index ".concat(n),obj:null});try{return et(e,t)}finally{t.seenObjects.pop()}}))}(e,t);if(void 0===e)return null;if(e instanceof Date||m(e)){var h=e.getTime(),p=h>-1&&h<2534023188e5;return t.legacy?t.relaxed&&p?{$date:e.getTime()}:{$date:Qe(e)}:t.relaxed&&p?{$date:Qe(e)}:{$date:{$numberLong:e.getTime().toString()}}}if(!("number"!=typeof e||t.relaxed&&isFinite(e))){if(Math.floor(e)===e){var d=e>=We&&e<=Ke;if(e>=Ze&&e<=He)return{$numberInt:e.toString()};if(d)return{$numberLong:e.toString()}}return{$numberDouble:e.toString()}}if(e instanceof RegExp||v(e)){var g=e.flags;if(void 0===g){var y=e.toString().match(/[gimuy]*$/);y&&(g=y[0])}return new Je(e.source,g).toExtendedJSON(t)}return null!=e&&"object"==typeof e?function(e,t){if(null==e||"object"!=typeof e)throw new u("not an object instance");var n=e._bsontype;if(void 0===n){var r={};for(var i in e){t.seenObjects.push({propertyName:i,obj:null});try{var o=et(e[i],t);"__proto__"===i?Object.defineProperty(r,i,{value:o,writable:!0,enumerable:!0,configurable:!0}):r[i]=o}finally{t.seenObjects.pop()}}return r}if(qe(e)){var s=e;if("function"!=typeof s.toExtendedJSON){var a=rt[e._bsontype];if(!a)throw new f("Unrecognized or invalid _bsontype: "+e._bsontype);s=a(s)}return"Code"===n&&s.scope?s=new ce(s.code,et(s.scope,t)):"DBRef"===n&&s.oid&&(s=new pe(et(s.collection,t),et(s.oid,t),et(s.db,t),et(s.fields,t))),s.toExtendedJSON(t)}throw new u("_bsontype must be a string, but was: "+typeof n)}(e,t):e}var tt,nt,rt={Binary:function(e){return new ae(e.value(),e.sub_type)},Code:function(e){return new ce(e.code,e.scope)},DBRef:function(e){return new pe(e.collection||e.namespace,e.oid,e.db,e.fields)},Decimal128:function(e){return new Ue(e.bytes)},Double:function(e){return new Te(e.value)},Int32:function(e){return new Re(e.value)},Long:function(e){return we.fromBits(null!=e.low?e.low:e.low_,null!=e.low?e.high:e.high_,null!=e.low?e.unsigned:e.unsigned_)},MaxKey:function(){return new De},MinKey:function(){return new $e},ObjectID:function(e){return new ke(e)},ObjectId:function(e){return new ke(e)},BSONRegExp:function(e){return new Je(e.pattern,e.options)},Symbol:function(e){return new Ye(e.value)},Timestamp:function(e){return Fe.fromBits(e.low,e.high)}};!function(e){function t(e,t){var n=Object.assign({},{relaxed:!0,legacy:!1},t);return"boolean"==typeof n.relaxed&&(n.strict=!n.relaxed),"boolean"==typeof n.strict&&(n.relaxed=!n.strict),JSON.parse(e,(function(e,t){if(-1!==e.indexOf("\0"))throw new u("BSON Document field names cannot contain null bytes, found: ".concat(JSON.stringify(e)));return Ge(t,n)}))}function n(e,t,n,r){null!=n&&"object"==typeof n&&(r=n,n=0),null==t||"object"!=typeof t||Array.isArray(t)||(r=t,t=void 0,n=0);var i=et(e,Object.assign({relaxed:!0,legacy:!1},r,{seenObjects:[{propertyName:"(root)",obj:null}]}));return JSON.stringify(i,t,n)}e.parse=t,e.stringify=n,e.serialize=function(e,t){return t=t||{},JSON.parse(n(e,t))},e.deserialize=function(e,n){return n=n||{},t(JSON.stringify(e),n)}}(tt||(tt={}));var it=l();function ot(e,t,n){var r=5;if(Array.isArray(e))for(var i=0;i<e.length;i++)r+=st(i.toString(),e[i],t,!0,n);else for(var o in"function"==typeof(null==e?void 0:e.toBSON)&&(e=e.toBSON()),e)r+=st(o,e[o],t,!1,n);return r}function st(e,t,n,i,o){switch(void 0===n&&(n=!1),void 0===i&&(i=!1),void 0===o&&(o=!1),"function"==typeof(null==t?void 0:t.toBSON)&&(t=t.toBSON()),typeof t){case"string":return 1+r.Buffer.byteLength(e,"utf8")+1+4+r.Buffer.byteLength(t,"utf8")+1;case"number":return Math.floor(t)===t&&t>=P&&t<=L&&t>=j&&t<=N?(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+5:(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+9;case"undefined":return i||!o?(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+1:0;case"boolean":return(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+2;case"object":if(null==t||"MinKey"===t._bsontype||"MaxKey"===t._bsontype)return(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+1;if("ObjectId"===t._bsontype||"ObjectID"===t._bsontype)return(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+13;if(t instanceof Date||m(t))return(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+9;if(ArrayBuffer.isView(t)||t instanceof ArrayBuffer||d(t))return(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+6+t.byteLength;if("Long"===t._bsontype||"Double"===t._bsontype||"Timestamp"===t._bsontype)return(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+9;if("Decimal128"===t._bsontype)return(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+17;if("Code"===t._bsontype)return null!=t.scope&&Object.keys(t.scope).length>0?(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+1+4+4+r.Buffer.byteLength(t.code.toString(),"utf8")+1+ot(t.scope,n,o):(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+1+4+r.Buffer.byteLength(t.code.toString(),"utf8")+1;if("Binary"===t._bsontype){var s=t;return s.sub_type===ae.SUBTYPE_BYTE_ARRAY?(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+(s.position+1+4+1+4):(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+(s.position+1+4+1)}if("Symbol"===t._bsontype)return(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+r.Buffer.byteLength(t.value,"utf8")+4+1+1;if("DBRef"===t._bsontype){var u=Object.assign({$ref:t.collection,$id:t.oid},t.fields);return null!=t.db&&(u.$db=t.db),(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+1+ot(u,n,o)}return t instanceof RegExp||v(t)?(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+1+r.Buffer.byteLength(t.source,"utf8")+1+(t.global?1:0)+(t.ignoreCase?1:0)+(t.multiline?1:0)+1:"BSONRegExp"===t._bsontype?(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+1+r.Buffer.byteLength(t.pattern,"utf8")+1+r.Buffer.byteLength(t.options,"utf8")+1:(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+ot(t,n,o)+1;case"function":if(t instanceof RegExp||v(t)||"[object RegExp]"===String.call(t))return(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+1+r.Buffer.byteLength(t.source,"utf8")+1+(t.global?1:0)+(t.ignoreCase?1:0)+(t.multiline?1:0)+1;if(n&&null!=t.scope&&Object.keys(t.scope).length>0)return(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+1+4+4+r.Buffer.byteLength(c(t),"utf8")+1+ot(t.scope,n,o);if(n)return(null!=e?r.Buffer.byteLength(e,"utf8")+1:0)+1+4+r.Buffer.byteLength(c(t),"utf8")+1}return 0}nt=it.Map?it.Map:function(){function e(e){void 0===e&&(e=[]),this._keys=[],this._values={};for(var t=0;t<e.length;t++)if(null!=e[t]){var n=e[t],r=n[0],i=n[1];this._keys.push(r),this._values[r]={v:i,i:this._keys.length-1}}}return e.prototype.clear=function(){this._keys=[],this._values={}},e.prototype.delete=function(e){var t=this._values[e];return null!=t&&(delete this._values[e],this._keys.splice(t.i,1),!0)},e.prototype.entries=function(){var e=this,t=0;return{next:function(){var n=e._keys[t++];return{value:void 0!==n?[n,e._values[n].v]:void 0,done:void 0===n}}}},e.prototype.forEach=function(e,t){t=t||this;for(var n=0;n<this._keys.length;n++){var r=this._keys[n];e.call(t,this._values[r].v,r,t)}},e.prototype.get=function(e){return this._values[e]?this._values[e].v:void 0},e.prototype.has=function(e){return null!=this._values[e]},e.prototype.keys=function(){var e=this,t=0;return{next:function(){var n=e._keys[t++];return{value:void 0!==n?n:void 0,done:void 0===n}}}},e.prototype.set=function(e,t){return this._values[e]?(this._values[e].v=t,this):(this._keys.push(e),this._values[e]={v:t,i:this._keys.length-1},this)},e.prototype.values=function(){var e=this,t=0;return{next:function(){var n=e._keys[t++];return{value:void 0!==n?e._values[n].v:void 0,done:void 0===n}}}},Object.defineProperty(e.prototype,"size",{get:function(){return this._keys.length},enumerable:!1,configurable:!0}),e}();function ut(e,t,n){for(var r=0,i=t;i<n;i+=1){var o=e[i];if(r){if(128!=(192&o))return!1;r-=1}else if(128&o)if(192==(224&o))r=1;else if(224==(240&o))r=2;else{if(240!=(248&o))return!1;r=3}}return!r}var ft=we.fromNumber(L),at=we.fromNumber(P),lt={};function ct(e,t,n){var r=(t=null==t?{}:t)&&t.index?t.index:0,i=e[r]|e[r+1]<<8|e[r+2]<<16|e[r+3]<<24;if(i<5)throw new u("bson size must be >= 5, is ".concat(i));if(t.allowObjectSmallerThanBufferSize&&e.length<i)throw new u("buffer length ".concat(e.length," must be >= bson size ").concat(i));if(!t.allowObjectSmallerThanBufferSize&&e.length!==i)throw new u("buffer length ".concat(e.length," must === bson size ").concat(i));if(i+r>e.byteLength)throw new u("(bson size ".concat(i," + options.index ").concat(r," must be <= buffer length ").concat(e.byteLength,")"));if(0!==e[r+i-1])throw new u("One object, sized correctly, with a spot for an EOO, but the EOO isn't 0x00");return pt(e,r,t,n)}var ht=/^\$ref$|^\$id$|^\$db$/;function pt(e,t,n,i){void 0===i&&(i=!1);var o,f=null!=n.evalFunctions&&n.evalFunctions,a=null!=n.cacheFunctions&&n.cacheFunctions,l=null==n.fieldsAsRaw?null:n.fieldsAsRaw,c=null!=n.raw&&n.raw,h="boolean"==typeof n.bsonRegExp&&n.bsonRegExp,p=null!=n.promoteBuffers&&n.promoteBuffers,d=null==n.promoteLongs||n.promoteLongs,g=null==n.promoteValues||n.promoteValues,y=null==n.validation?{utf8:!0}:n.validation,b=!0,v=new Set,m=y.utf8;if("boolean"==typeof m)o=m;else{b=!1;var w=Object.keys(m).map((function(e){return m[e]}));if(0===w.length)throw new u("UTF-8 validation setting cannot be empty");if("boolean"!=typeof w[0])throw new u("Invalid UTF-8 validation option, must specify boolean values");if(o=w[0],!w.every((function(e){return e===o})))throw new u("Invalid UTF-8 validation option - keys must be all true or all false")}if(!b)for(var _=0,S=Object.keys(m);_<S.length;_++){var O=S[_];v.add(O)}var x=t;if(e.length<5)throw new u("corrupt bson message < 5 bytes long");var B=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24;if(B<5||B>e.length)throw new u("corrupt bson message");for(var E=i?[]:{},N=0,j=!i&&null,I=new DataView(e.buffer,e.byteOffset,e.byteLength);;){var A=e[t++];if(0===A)break;for(var L=t;0!==e[L]&&L<e.length;)L++;if(L>=e.byteLength)throw new u("Bad BSON Document: illegal CString");var P=i?N++:e.toString("utf8",t,L),ee=!0;ee=b||v.has(P)?o:!o,!1!==j&&"$"===P[0]&&(j=ht.test(P));var te=void 0;if(t=L+1,A===T){if((Le=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24)<=0||Le>e.length-t||0!==e[t+Le-1])throw new u("bad string length in bson");te=gt(e,t,t+Le-1,ee),t+=Le}else if(A===z){var ne=r.Buffer.alloc(12);e.copy(ne,0,t,t+12),te=new ke(ne),t+=12}else if(A===Z&&!1===g)te=new Re(e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24);else if(A===Z)te=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24;else if(A===U&&!1===g)te=new Te(I.getFloat64(t,!0)),t+=8;else if(A===U)te=I.getFloat64(t,!0),t+=8;else if(A===k){var re=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24,oe=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24;te=new Date(new we(re,oe).toNumber())}else if(A===C){if(0!==e[t]&&1!==e[t])throw new u("illegal boolean type value");te=1===e[t++]}else if(A===R){var se=t;if((Ie=e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)<=0||Ie>e.length-t)throw new u("bad embedded document length in bson");if(c)te=e.slice(t,t+Ie);else{var ue=n;b||(ue=s(s({},n),{validation:{utf8:ee}})),te=pt(e,se,ue,!1)}t+=Ie}else if(A===D){se=t;var fe=n,le=t+(Ie=e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24);if(l&&l[P]){for(var de in fe={},n)fe[de]=n[de];fe.raw=!0}if(b||(fe=s(s({},fe),{validation:{utf8:ee}})),te=pt(e,se,fe,!0),0!==e[(t+=Ie)-1])throw new u("invalid array terminator byte");if(t!==le)throw new u("corrupted array bson")}else if(A===M)te=void 0;else if(A===J)te=null;else if(A===W){re=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24,oe=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24;var ge=new we(re,oe);te=d&&!0===g&&ge.lessThanOrEqual(ft)&&ge.greaterThanOrEqual(at)?ge.toNumber():ge}else if(A===X){var ye=r.Buffer.alloc(16);e.copy(ye,0,t,t+16),t+=16;var be=new Ue(ye);te="toObject"in be&&"function"==typeof be.toObject?be.toObject():be}else if(A===$){var ve=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24,me=ve,_e=e[t++];if(ve<0)throw new u("Negative binary type element size found");if(ve>e.byteLength)throw new u("Binary type size larger than document size");if(null!=e.slice){if(_e===ae.SUBTYPE_BYTE_ARRAY){if((ve=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24)<0)throw new u("Negative binary type element size found for subtype 0x02");if(ve>me-4)throw new u("Binary type with subtype 0x02 contains too long binary size");if(ve<me-4)throw new u("Binary type with subtype 0x02 contains too short binary size")}p&&g?te=e.slice(t,t+ve):(te=new ae(e.slice(t,t+ve),_e),_e===ie&&(te=te.toUUID()))}else{var Se=r.Buffer.alloc(ve);if(_e===ae.SUBTYPE_BYTE_ARRAY){if((ve=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24)<0)throw new u("Negative binary type element size found for subtype 0x02");if(ve>me-4)throw new u("Binary type with subtype 0x02 contains too long binary size");if(ve<me-4)throw new u("Binary type with subtype 0x02 contains too short binary size")}for(L=0;L<ve;L++)Se[L]=e[t+L];te=p&&g?Se:_e===ie?new ae(e.slice(t,t+ve),_e).toUUID():new ae(e.slice(t,t+ve),_e)}t+=ve}else if(A===Y&&!1===h){for(L=t;0!==e[L]&&L<e.length;)L++;if(L>=e.length)throw new u("Bad BSON Document: illegal CString");var Oe=e.toString("utf8",t,L);for(L=t=L+1;0!==e[L]&&L<e.length;)L++;if(L>=e.length)throw new u("Bad BSON Document: illegal CString");var xe=e.toString("utf8",t,L);t=L+1;var Be=new Array(xe.length);for(L=0;L<xe.length;L++)switch(xe[L]){case"m":Be[L]="m";break;case"s":Be[L]="g";break;case"i":Be[L]="i"}te=new RegExp(Oe,Be.join(""))}else if(A===Y&&!0===h){for(L=t;0!==e[L]&&L<e.length;)L++;if(L>=e.length)throw new u("Bad BSON Document: illegal CString");Oe=e.toString("utf8",t,L);for(L=t=L+1;0!==e[L]&&L<e.length;)L++;if(L>=e.length)throw new u("Bad BSON Document: illegal CString");xe=e.toString("utf8",t,L);t=L+1,te=new Je(Oe,xe)}else if(A===q){if((Le=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24)<=0||Le>e.length-t||0!==e[t+Le-1])throw new u("bad string length in bson");var Ee=gt(e,t,t+Le-1,ee);te=g?Ee:new Ye(Ee),t+=Le}else if(A===K){re=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24,oe=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24;te=new Fe(re,oe)}else if(A===G)te=new $e;else if(A===Q)te=new De;else if(A===F){if((Le=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24)<=0||Le>e.length-t||0!==e[t+Le-1])throw new u("bad string length in bson");var Ne=gt(e,t,t+Le-1,ee);te=f?a?dt(Ne,lt,E):dt(Ne):new ce(Ne),t+=Le}else if(A===H){var je=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24;if(je<13)throw new u("code_w_scope total size shorter minimum expected length");if((Le=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24)<=0||Le>e.length-t||0!==e[t+Le-1])throw new u("bad string length in bson");Ne=gt(e,t,t+Le-1,ee),se=t+=Le;var Ie=e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24,Ae=pt(e,se,n,!1);if(t+=Ie,je<8+Ie+Le)throw new u("code_w_scope total size is too short, truncating scope");if(je>8+Ie+Le)throw new u("code_w_scope total size is too long, clips outer document");f?(te=a?dt(Ne,lt,E):dt(Ne)).scope=Ae:te=new ce(Ne,Ae)}else{if(A!==V)throw new u("Detected unknown BSON type ".concat(A.toString(16),' for fieldname "').concat(P,'"'));var Le;if((Le=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24)<=0||Le>e.length-t||0!==e[t+Le-1])throw new u("bad string length in bson");if(null!=y&&y.utf8&&!ut(e,t,t+Le-1))throw new u("Invalid UTF-8 string in BSON document");var Pe=e.toString("utf8",t,t+Le-1);t+=Le;var Me=r.Buffer.alloc(12);e.copy(Me,0,t,t+12);ne=new ke(Me);t+=12,te=new pe(Pe,ne)}"__proto__"===P?Object.defineProperty(E,P,{value:te,writable:!0,enumerable:!0,configurable:!0}):E[P]=te}if(B!==t-x){if(i)throw new u("corrupt array bson");throw new u("corrupt object bson")}if(!j)return E;if(he(E)){var ze=Object.assign({},E);return delete ze.$ref,delete ze.$id,delete ze.$db,new pe(E.$ref,E.$id,E.$db,ze)}return E}function dt(e,t,n){return t?(null==t[e]&&(t[e]=new Function(e)),t[e].bind(n)):new Function(e)}function gt(e,t,n,r){var i=e.toString("utf8",t,n);if(r)for(var o=0;o<i.length;o++)if(65533===i.charCodeAt(o)){if(!ut(e,t,n))throw new u("Invalid UTF-8 string in BSON document");break}return i}var yt=/\x00/,bt=new Set(["$db","$ref","$id","$clusterTime"]);function vt(e,t,n,r,i){e[r++]=T;var o=i?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8");e[(r=r+o+1)-1]=0;var s=e.write(n,r+4,void 0,"utf8");return e[r+3]=s+1>>24&255,e[r+2]=s+1>>16&255,e[r+1]=s+1>>8&255,e[r]=s+1&255,r=r+4+s,e[r++]=0,r}var mt=new Uint8Array(8),wt=new DataView(mt.buffer,mt.byteOffset,mt.byteLength);function _t(e,t,n,r,i){Number.isInteger(n)&&n>=j&&n<=N?(e[r++]=Z,r+=i?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0,e[r++]=255&n,e[r++]=n>>8&255,e[r++]=n>>16&255,e[r++]=n>>24&255):(e[r++]=U,r+=i?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0,wt.setFloat64(0,n,!0),e.set(mt,r),r+=8);return r}function St(e,t,n,r,i){return e[r++]=J,r+=i?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0,r}function Ot(e,t,n,r,i){return e[r++]=C,r+=i?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0,e[r++]=n?1:0,r}function xt(e,t,n,r,i){e[r++]=k,r+=i?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0;var o=we.fromNumber(n.getTime()),s=o.getLowBits(),u=o.getHighBits();return e[r++]=255&s,e[r++]=s>>8&255,e[r++]=s>>16&255,e[r++]=s>>24&255,e[r++]=255&u,e[r++]=u>>8&255,e[r++]=u>>16&255,e[r++]=u>>24&255,r}function Bt(e,t,n,r,i){if(e[r++]=Y,r+=i?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0,n.source&&null!=n.source.match(yt))throw Error("value "+n.source+" must not contain null bytes");return r+=e.write(n.source,r,void 0,"utf8"),e[r++]=0,n.ignoreCase&&(e[r++]=105),n.global&&(e[r++]=115),n.multiline&&(e[r++]=109),e[r++]=0,r}function Et(e,t,n,r,i){if(e[r++]=Y,r+=i?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0,null!=n.pattern.match(yt))throw Error("pattern "+n.pattern+" must not contain null bytes");return r+=e.write(n.pattern,r,void 0,"utf8"),e[r++]=0,r+=e.write(n.options.split("").sort().join(""),r,void 0,"utf8"),e[r++]=0,r}function Nt(e,t,n,r,i){return null===n?e[r++]=J:"MinKey"===n._bsontype?e[r++]=G:e[r++]=Q,r+=i?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0,r}function jt(e,t,n,r,i){if(e[r++]=z,r+=i?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0,"string"==typeof n.id)e.write(n.id,r,void 0,"binary");else{if(!g(n.id))throw new f("object ["+JSON.stringify(n)+"] is not a valid ObjectId");e.set(n.id.subarray(0,12),r)}return r+12}function It(e,t,n,r,i){e[r++]=$,r+=i?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0;var o=n.length;return e[r++]=255&o,e[r++]=o>>8&255,e[r++]=o>>16&255,e[r++]=o>>24&255,e[r++]=ee,e.set(S(n),r),r+=o}function At(e,t,n,r,i,o,s,f,a,l){void 0===i&&(i=!1),void 0===o&&(o=0),void 0===s&&(s=!1),void 0===f&&(f=!0),void 0===a&&(a=!1),void 0===l&&(l=[]);for(var c=0;c<l.length;c++)if(l[c]===n)throw new u("cyclic dependency detected");l.push(n),e[r++]=Array.isArray(n)?D:R,r+=a?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0;var h=Ct(e,n,i,r,o+1,s,f,l);return l.pop(),h}function Lt(e,t,n,r,i){return e[r++]=X,r+=i?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0,e.set(n.bytes.subarray(0,16),r),r+16}function Pt(e,t,n,r,i){e[r++]="Long"===n._bsontype?W:K,r+=i?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0;var o=n.getLowBits(),s=n.getHighBits();return e[r++]=255&o,e[r++]=o>>8&255,e[r++]=o>>16&255,e[r++]=o>>24&255,e[r++]=255&s,e[r++]=s>>8&255,e[r++]=s>>16&255,e[r++]=s>>24&255,r}function Ut(e,t,n,r,i){return n=n.valueOf(),e[r++]=Z,r+=i?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0,e[r++]=255&n,e[r++]=n>>8&255,e[r++]=n>>16&255,e[r++]=n>>24&255,r}function Tt(e,t,n,r,i){return e[r++]=U,r+=i?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0,wt.setFloat64(0,n.value,!0),e.set(mt,r),r+=8}function Rt(e,t,n,r,i,o,s){e[r++]=F,r+=s?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0;var u=c(n),f=e.write(u,r+4,void 0,"utf8")+1;return e[r]=255&f,e[r+1]=f>>8&255,e[r+2]=f>>16&255,e[r+3]=f>>24&255,r=r+4+f-1,e[r++]=0,r}function Dt(e,t,n,r,i,o,s,u,f){if(void 0===i&&(i=!1),void 0===o&&(o=0),void 0===s&&(s=!1),void 0===u&&(u=!0),void 0===f&&(f=!1),n.scope&&"object"==typeof n.scope){e[r++]=H,r+=f?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0;var a=r,l="string"==typeof n.code?n.code:n.code.toString();r+=4;var c=e.write(l,r+4,void 0,"utf8")+1;e[r]=255&c,e[r+1]=c>>8&255,e[r+2]=c>>16&255,e[r+3]=c>>24&255,e[r+4+c-1]=0,r=r+c+4;var h=Ct(e,n.scope,i,r,o+1,s,u);r=h-1;var p=h-a;e[a++]=255&p,e[a++]=p>>8&255,e[a++]=p>>16&255,e[a++]=p>>24&255,e[r++]=0}else{e[r++]=F,r+=f?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0;l=n.code.toString();var d=e.write(l,r+4,void 0,"utf8")+1;e[r]=255&d,e[r+1]=d>>8&255,e[r+2]=d>>16&255,e[r+3]=d>>24&255,r=r+4+d-1,e[r++]=0}return r}function $t(e,t,n,r,i){e[r++]=$,r+=i?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0;var o=n.value(!0),s=n.position;return n.sub_type===ae.SUBTYPE_BYTE_ARRAY&&(s+=4),e[r++]=255&s,e[r++]=s>>8&255,e[r++]=s>>16&255,e[r++]=s>>24&255,e[r++]=n.sub_type,n.sub_type===ae.SUBTYPE_BYTE_ARRAY&&(s-=4,e[r++]=255&s,e[r++]=s>>8&255,e[r++]=s>>16&255,e[r++]=s>>24&255),e.set(o,r),r+=n.position}function Mt(e,t,n,r,i){e[r++]=q,r+=i?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0;var o=e.write(n.value,r+4,void 0,"utf8")+1;return e[r]=255&o,e[r+1]=o>>8&255,e[r+2]=o>>16&255,e[r+3]=o>>24&255,r=r+4+o-1,e[r++]=0,r}function zt(e,t,n,r,i,o,s){e[r++]=R,r+=s?e.write(t,r,void 0,"ascii"):e.write(t,r,void 0,"utf8"),e[r++]=0;var u=r,f={$ref:n.collection||n.namespace,$id:n.oid};null!=n.db&&(f.$db=n.db);var a=Ct(e,f=Object.assign(f,n.fields),!1,r,i+1,o),l=a-u;return e[u++]=255&l,e[u++]=l>>8&255,e[u++]=l>>16&255,e[u++]=l>>24&255,a}function Ct(e,t,n,r,i,o,s,u){void 0===n&&(n=!1),void 0===r&&(r=0),void 0===i&&(i=0),void 0===o&&(o=!1),void 0===s&&(s=!0),void 0===u&&(u=[]),r=r||0,(u=u||[]).push(t);var a,l=r+4;if(Array.isArray(t))for(var c=0;c<t.length;c++){var h="".concat(c);if("function"==typeof(null==(S=t[c])?void 0:S.toBSON)&&(S=S.toBSON()),"string"==typeof S)l=vt(e,h,S,l,!0);else if("number"==typeof S)l=_t(e,h,S,l,!0);else{if("bigint"==typeof S)throw new f("Unsupported type BigInt, please use Decimal128");if("boolean"==typeof S)l=Ot(e,h,S,l,!0);else if(S instanceof Date||m(S))l=xt(e,h,S,l,!0);else if(void 0===S)l=St(e,h,0,l,!0);else if(null===S)l=St(e,h,0,l,!0);else if("ObjectId"===S._bsontype||"ObjectID"===S._bsontype)l=jt(e,h,S,l,!0);else if(g(S))l=It(e,h,S,l,!0);else if(S instanceof RegExp||v(S))l=Bt(e,h,S,l,!0);else if("object"==typeof S&&null==S._bsontype)l=At(e,h,S,l,n,i,o,s,!0,u);else if("object"==typeof S&&qe(S)&&"Decimal128"===S._bsontype)l=Lt(e,h,S,l,!0);else if("Long"===S._bsontype||"Timestamp"===S._bsontype)l=Pt(e,h,S,l,!0);else if("Double"===S._bsontype)l=Tt(e,h,S,l,!0);else if("function"==typeof S&&o)l=Rt(e,h,S,l,0,0,!0);else if("Code"===S._bsontype)l=Dt(e,h,S,l,n,i,o,s,!0);else if("Binary"===S._bsontype)l=$t(e,h,S,l,!0);else if("Symbol"===S._bsontype)l=Mt(e,h,S,l,!0);else if("DBRef"===S._bsontype)l=zt(e,h,S,l,i,o,!0);else if("BSONRegExp"===S._bsontype)l=Et(e,h,S,l,!0);else if("Int32"===S._bsontype)l=Ut(e,h,S,l,!0);else if("MinKey"===S._bsontype||"MaxKey"===S._bsontype)l=Nt(e,h,S,l,!0);else if(void 0!==S._bsontype)throw new f("Unrecognized or invalid _bsontype: ".concat(String(S._bsontype)))}}else if(t instanceof nt||(a=t,"[object Map]"===Object.prototype.toString.call(a)))for(var p=t.entries(),d=!1;!d;){var w=p.next();if(!(d=!!w.done)){h=w.value[0];var _=typeof(S=w.value[1]);if("string"==typeof h&&!bt.has(h)){if(null!=h.match(yt))throw Error("key "+h+" must not contain null bytes");if(n){if("$"===h[0])throw Error("key "+h+" must not start with '$'");if(~h.indexOf("."))throw Error("key "+h+" must not contain '.'")}}if("string"===_)l=vt(e,h,S,l);else if("number"===_)l=_t(e,h,S,l);else{if("bigint"===_||y(S)||b(S))throw new f("Unsupported type BigInt, please use Decimal128");if("boolean"===_)l=Ot(e,h,S,l);else if(S instanceof Date||m(S))l=xt(e,h,S,l);else if(null===S||void 0===S&&!1===s)l=St(e,h,0,l);else if("ObjectId"===S._bsontype||"ObjectID"===S._bsontype)l=jt(e,h,S,l);else if(g(S))l=It(e,h,S,l);else if(S instanceof RegExp||v(S))l=Bt(e,h,S,l);else if("object"===_&&null==S._bsontype)l=At(e,h,S,l,n,i,o,s,!1,u);else if("object"===_&&"Decimal128"===S._bsontype)l=Lt(e,h,S,l);else if("Long"===S._bsontype||"Timestamp"===S._bsontype)l=Pt(e,h,S,l);else if("Double"===S._bsontype)l=Tt(e,h,S,l);else if("Code"===S._bsontype)l=Dt(e,h,S,l,n,i,o,s);else if("function"==typeof S&&o)l=Rt(e,h,S,l,0,0,o);else if("Binary"===S._bsontype)l=$t(e,h,S,l);else if("Symbol"===S._bsontype)l=Mt(e,h,S,l);else if("DBRef"===S._bsontype)l=zt(e,h,S,l,i,o);else if("BSONRegExp"===S._bsontype)l=Et(e,h,S,l);else if("Int32"===S._bsontype)l=Ut(e,h,S,l);else if("MinKey"===S._bsontype||"MaxKey"===S._bsontype)l=Nt(e,h,S,l);else if(void 0!==S._bsontype)throw new f("Unrecognized or invalid _bsontype: ".concat(String(S._bsontype)))}}}else{if("function"==typeof(null==t?void 0:t.toBSON)&&null!=(t=t.toBSON())&&"object"!=typeof t)throw new f("toBSON function did not return an object");for(var h in t){var S;"function"==typeof(null==(S=t[h])?void 0:S.toBSON)&&(S=S.toBSON());_=typeof S;if("string"==typeof h&&!bt.has(h)){if(null!=h.match(yt))throw Error("key "+h+" must not contain null bytes");if(n){if("$"===h[0])throw Error("key "+h+" must not start with '$'");if(~h.indexOf("."))throw Error("key "+h+" must not contain '.'")}}if("string"===_)l=vt(e,h,S,l);else if("number"===_)l=_t(e,h,S,l);else{if("bigint"===_)throw new f("Unsupported type BigInt, please use Decimal128");if("boolean"===_)l=Ot(e,h,S,l);else if(S instanceof Date||m(S))l=xt(e,h,S,l);else if(void 0===S)!1===s&&(l=St(e,h,0,l));else if(null===S)l=St(e,h,0,l);else if("ObjectId"===S._bsontype||"ObjectID"===S._bsontype)l=jt(e,h,S,l);else if(g(S))l=It(e,h,S,l);else if(S instanceof RegExp||v(S))l=Bt(e,h,S,l);else if("object"===_&&null==S._bsontype)l=At(e,h,S,l,n,i,o,s,!1,u);else if("object"===_&&"Decimal128"===S._bsontype)l=Lt(e,h,S,l);else if("Long"===S._bsontype||"Timestamp"===S._bsontype)l=Pt(e,h,S,l);else if("Double"===S._bsontype)l=Tt(e,h,S,l);else if("Code"===S._bsontype)l=Dt(e,h,S,l,n,i,o,s);else if("function"==typeof S&&o)l=Rt(e,h,S,l,0,0,o);else if("Binary"===S._bsontype)l=$t(e,h,S,l);else if("Symbol"===S._bsontype)l=Mt(e,h,S,l);else if("DBRef"===S._bsontype)l=zt(e,h,S,l,i,o);else if("BSONRegExp"===S._bsontype)l=Et(e,h,S,l);else if("Int32"===S._bsontype)l=Ut(e,h,S,l);else if("MinKey"===S._bsontype||"MaxKey"===S._bsontype)l=Nt(e,h,S,l);else if(void 0!==S._bsontype)throw new f("Unrecognized or invalid _bsontype: ".concat(String(S._bsontype)))}}}u.pop(),e[l++]=0;var O=l-r;return e[r++]=255&O,e[r++]=O>>8&255,e[r++]=O>>16&255,e[r++]=O>>24&255,l}var kt=17825792,Jt=r.Buffer.alloc(kt);function Yt(e){Jt.length<e&&(Jt=r.Buffer.alloc(e))}function Vt(e,t){void 0===t&&(t={});var n="boolean"==typeof t.checkKeys&&t.checkKeys,i="boolean"==typeof t.serializeFunctions&&t.serializeFunctions,o="boolean"!=typeof t.ignoreUndefined||t.ignoreUndefined,s="number"==typeof t.minInternalBufferSize?t.minInternalBufferSize:kt;Jt.length<s&&(Jt=r.Buffer.alloc(s));var u=Ct(Jt,e,n,0,0,i,o,[]),f=r.Buffer.alloc(u);return Jt.copy(f,0,0,f.length),f}function Ft(e,t,n){void 0===n&&(n={});var r="boolean"==typeof n.checkKeys&&n.checkKeys,i="boolean"==typeof n.serializeFunctions&&n.serializeFunctions,o="boolean"!=typeof n.ignoreUndefined||n.ignoreUndefined,s="number"==typeof n.index?n.index:0,u=Ct(Jt,e,r,0,0,i,o);return Jt.copy(t,s,0,u),s+u-1}function qt(e,t){return void 0===t&&(t={}),ct(e instanceof r.Buffer?e:S(e),t)}function Ht(e,t){return void 0===t&&(t={}),ot(e,"boolean"==typeof(t=t||{}).serializeFunctions&&t.serializeFunctions,"boolean"!=typeof t.ignoreUndefined||t.ignoreUndefined)}function Zt(e,t,n,r,i,o){for(var s=Object.assign({allowObjectSmallerThanBufferSize:!0,index:0},o),u=S(e),f=t,a=0;a<n;a++){var l=u[f]|u[f+1]<<8|u[f+2]<<16|u[f+3]<<24;s.index=f,r[i+a]=ct(u,s),f+=l}return f}const Kt={Binary:ae,Code:ce,DBRef:pe,Decimal128:Ue,Double:Te,Int32:Re,Long:we,UUID:le,Map:nt,MaxKey:De,MinKey:$e,ObjectId:ke,ObjectID:ke,BSONRegExp:Je,BSONSymbol:Ye,Timestamp:Fe,EJSON:tt,setInternalBufferSize:Yt,serialize:Vt,serializeWithBufferAndIndex:Ft,deserialize:qt,calculateObjectSize:Ht,deserializeStream:Zt,BSONError:u,BSONTypeError:f}},698:e=>{e.exports=function(e,t,n){for(var r=(2<<31-Math.clz32(t.length-1|1))-1,i=Math.ceil(1.6*r*n/t.length),o="";;)for(var s=e(i),u=i;u--;)if((o+=t[s[u]&r]||"").length===+n)return o}},986:(e,t,n)=>{var r=n(113);if(r.randomFillSync){var i={};e.exports=function(e){var t=i[e];return t||(t=Buffer.allocUnsafe(e),e<=255&&(i[e]=t)),r.randomFillSync(t)}}else e.exports=r.randomBytes},605:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=s,t.call=function(e){return s(e).apply(null,[].slice.call(arguments,1))};var r,i=n(670),o=(r=i)&&r.__esModule?r:{default:r};function s(e,t){var n=(t=t||{}).addListener||window.addEventListener,r=t.removeListener||window.removeEventListener,i=t.postMessage||window.postMessage,s=t.targetOrigin||"*",u=t.getMessageData||function(e){return e.data};return function(){var t={sender:"postmsg-rpc/client",id:(0,o.default)(),func:e,args:Array.from(arguments)},f=void 0,a=new Promise((function(o,a){var l=function n(){var i=u.apply(null,arguments);if(i&&"postmsg-rpc/server"===i.sender&&i.id===t.id){if(r("message",n),i.err){var s=new Error("Unexpected error calling "+e);return Object.assign(s,i.err),a(s)}o(i.res)}};f=function(){r("message",l);var t=new Error("Canceled call to "+e);t.isCanceled=!0,a(t)},n("message",l),i(t,s)}));return a.cancel=function(){return f()},a}}},429:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(605);Object.defineProperty(t,"caller",{enumerable:!0,get:function(){return o(r).default}}),Object.defineProperty(t,"call",{enumerable:!0,get:function(){return r.call}});var i=n(858);function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"expose",{enumerable:!0,get:function(){return o(i).default}})},858:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){var r=(n=n||{}).addListener||window.addEventListener,i=n.removeListener||window.removeEventListener,o=n.postMessage||window.postMessage,s=n.targetOrigin||"*",u=n.getMessageData||function(e){return e.data},f=n.isCallback||!1,a=function(){var n=u.apply(null,arguments);if(n&&"postmsg-rpc/client"===n.sender&&n.func===e){var r={sender:"postmsg-rpc/server",id:n.id},i=function(e){r.res=e,o(r,s)},a=function(e){r.err=Object.assign({message:e.message},e.output&&e.output.payload),o(r,s)};if(f)t.apply(null,n.args.concat((function(e,t){if(e)return a(e);i(t)})));else{var l=t.apply(null,n.args);Promise.resolve(l).then(i).catch(a)}}};return r("message",a),{close:function(){return i("message",a)}}}},670:(e,t,n)=>{"use strict";e.exports=n(607)},829:(e,t,n)=>{"use strict";var r,i,o,s=n(946),u="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-";function f(){o=!1}function a(e){if(e){if(e!==r){if(e.length!==u.length)throw new Error("Custom alphabet for shortid must be "+u.length+" unique characters. You submitted "+e.length+" characters: "+e);var t=e.split("").filter((function(e,t,n){return t!==n.lastIndexOf(e)}));if(t.length)throw new Error("Custom alphabet for shortid must be "+u.length+" unique characters. These characters were not unique: "+t.join(", "));r=e,f()}}else r!==u&&(r=u,f())}function l(){return o||(o=function(){r||a(u);for(var e,t=r.split(""),n=[],i=s.nextValue();t.length>0;)i=s.nextValue(),e=Math.floor(i*t.length),n.push(t.splice(e,1)[0]);return n.join("")}())}e.exports={get:function(){return r||u},characters:function(e){return a(e),r},seed:function(e){s.seed(e),i!==e&&(f(),i=e)},lookup:function(e){return l()[e]},shuffled:l}},480:(e,t,n)=>{"use strict";var r,i,o=n(416);n(829);e.exports=function(e){var t="",n=Math.floor(.001*(Date.now()-1567752802062));return n===i?r++:(r=0,i=n),t+=o(7),t+=o(e),r>0&&(t+=o(r)),t+=o(n)}},416:(e,t,n)=>{"use strict";var r=n(829),i=n(975),o=n(698);e.exports=function(e){for(var t,n=0,s="";!t;)s+=o(i,r.get(),1),t=e<Math.pow(16,n+1),n++;return s}},607:(e,t,n)=>{"use strict";var r=n(829),i=n(480),o=n(82),s=n(49)||0;function u(){return i(s)}e.exports=u,e.exports.generate=u,e.exports.seed=function(t){return r.seed(t),e.exports},e.exports.worker=function(t){return s=t,e.exports},e.exports.characters=function(e){return void 0!==e&&r.characters(e),r.shuffled()},e.exports.isValid=o},82:(e,t,n)=>{"use strict";var r=n(829);e.exports=function(e){return!(!e||"string"!=typeof e||e.length<6)&&!new RegExp("[^"+r.get().replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&")+"]").test(e)}},975:(e,t,n)=>{e.exports=n(986)},946:e=>{"use strict";var t=1;e.exports={nextValue:function(){return(t=(9301*t+49297)%233280)/233280},seed:function(e){t=e}}},49:(e,t,n)=>{"use strict";var r=n(1),i=0;!r.isMaster&&r.worker&&(i=r.worker.id),e.exports=parseInt(process.env.NODE_UNIQUE_ID||i,10)},81:e=>{"use strict";e.exports=require("child_process")},1:e=>{"use strict";e.exports=require("cluster")},113:e=>{"use strict";e.exports=require("crypto")},361:e=>{"use strict";e.exports=require("events")},17:e=>{"use strict";e.exports=require("path")},837:e=>{"use strict";e.exports=require("util")},655:e=>{"use strict";e.exports=require("v8")}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={exports:{}},s=!0;try{e[r].call(o.exports,o,o.exports,n),s=!1}finally{s&&delete t[r]}return o.exports}return n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(920)})()));
|
|
1
|
+
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(global,(()=>{return e={558:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=s,t.call=function(e){return s(e).apply(null,[].slice.call(arguments,1))};var n,o=r(130),i=(n=o)&&n.__esModule?n:{default:n};function s(e,t){var r=(t=t||{}).addListener||window.addEventListener,n=t.removeListener||window.removeEventListener,o=t.postMessage||window.postMessage,s=t.targetOrigin||"*",a=t.getMessageData||function(e){return e.data};return function(){var t={sender:"postmsg-rpc/client",id:(0,i.default)(),func:e,args:Array.from(arguments)},u=void 0,l=new Promise((function(i,l){var f=function r(){var o=a.apply(null,arguments);if(o&&"postmsg-rpc/server"===o.sender&&o.id===t.id){if(n("message",r),o.err){var s=new Error("Unexpected error calling "+e);return Object.assign(s,o.err),l(s)}i(o.res)}};u=function(){n("message",f);var t=new Error("Canceled call to "+e);t.isCanceled=!0,l(t)},r("message",f),o(t,s)}));return l.cancel=function(){return u()},l}}},246:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(558);Object.defineProperty(t,"caller",{enumerable:!0,get:function(){return i(n).default}}),Object.defineProperty(t,"call",{enumerable:!0,get:function(){return n.call}});var o=r(624);function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"expose",{enumerable:!0,get:function(){return i(o).default}})},624:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){var n=(r=r||{}).addListener||window.addEventListener,o=r.removeListener||window.removeEventListener,i=r.postMessage||window.postMessage,s=r.targetOrigin||"*",a=r.getMessageData||function(e){return e.data},u=r.isCallback||!1,l=function(){var r=a.apply(null,arguments);if(r&&"postmsg-rpc/client"===r.sender&&r.func===e){var n={sender:"postmsg-rpc/server",id:r.id},o=function(e){n.res=e,i(n,s)},l=function(e){n.err=Object.assign({message:e.message},e.output&&e.output.payload),i(n,s)};if(u)t.apply(null,r.args.concat((function(e,t){if(e)return l(e);o(t)})));else{var f=t.apply(null,r.args);Promise.resolve(f).then(o).catch(l)}}};return n("message",l),{close:function(){return o("message",l)}}}},130:(e,t,r)=>{"use strict";e.exports=r(252)},173:(e,t,r)=>{"use strict";var n,o,i,s=r(514),a="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-";function u(){i=!1}function l(e){if(e){if(e!==n){if(e.length!==a.length)throw new Error("Custom alphabet for shortid must be "+a.length+" unique characters. You submitted "+e.length+" characters: "+e);var t=e.split("").filter((function(e,t,r){return t!==r.lastIndexOf(e)}));if(t.length)throw new Error("Custom alphabet for shortid must be "+a.length+" unique characters. These characters were not unique: "+t.join(", "));n=e,u()}}else n!==a&&(n=a,u())}function f(){return i||(i=function(){n||l(a);for(var e,t=n.split(""),r=[],o=s.nextValue();t.length>0;)o=s.nextValue(),e=Math.floor(o*t.length),r.push(t.splice(e,1)[0]);return r.join("")}())}e.exports={get:function(){return n||a},characters:function(e){return l(e),n},seed:function(e){s.seed(e),o!==e&&(u(),o=e)},lookup:function(e){return f()[e]},shuffled:f}},89:(e,t,r)=>{"use strict";var n,o,i=r(943),s=(r(173),1567752802062),a=7;e.exports=function(e){var t="",r=Math.floor(.001*(Date.now()-s));return r===o?n++:(n=0,o=r),t+=i(a),t+=i(e),n>0&&(t+=i(n)),t+=i(r)}},943:(e,t,r)=>{"use strict";var n=r(173),o=r(908),i=r(137);e.exports=function(e){for(var t,r=0,s="";!t;)s+=i(o,n.get(),1),t=e<Math.pow(16,r+1),r++;return s}},252:(e,t,r)=>{"use strict";var n=r(173),o=r(89),i=r(56),s=r(696)||0;function a(){return o(s)}e.exports=a,e.exports.generate=a,e.exports.seed=function(t){return n.seed(t),e.exports},e.exports.worker=function(t){return s=t,e.exports},e.exports.characters=function(e){return void 0!==e&&n.characters(e),n.shuffled()},e.exports.isValid=i},56:(e,t,r)=>{"use strict";var n=r(173);e.exports=function(e){return!(!e||"string"!=typeof e||e.length<6||new RegExp("[^"+n.get().replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&")+"]").test(e))}},908:(e,t,r)=>{e.exports=r(701)},514:e=>{"use strict";var t=1;e.exports={nextValue:function(){return(t=(9301*t+49297)%233280)/233280},seed:function(e){t=e}}},696:(e,t,r)=>{"use strict";var n=r(1),o=0;!n.isMaster&&n.worker&&(o=n.worker.id),e.exports=parseInt(process.env.NODE_UNIQUE_ID||o,10)},137:e=>{e.exports=function(e,t,r){for(var n=(2<<31-Math.clz32(t.length-1|1))-1,o=Math.ceil(1.6*n*r/t.length),i="";;)for(var s=e(o),a=o;a--;)if((i+=t[s[a]&n]||"").length===+r)return i}},701:(e,t,r)=>{var n=r(113);if(n.randomFillSync){var o={};e.exports=function(e){var t=o[e];return t||(t=Buffer.allocUnsafe(e),e<=255&&(o[e]=t)),n.randomFillSync(t)}}else e.exports=n.randomBytes},458:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChildProcessEvaluationListener=void 0;const n=r(369),o=r(568);t.ChildProcessEvaluationListener=class ChildProcessEvaluationListener{constructor(e,t){this.exposedListener=(0,n.exposeAll)({onPrompt(t,r){var n,o,i;return null!==(i=null===(o=null===(n=e.evaluationListener)||void 0===n?void 0:n.onPrompt)||void 0===o?void 0:o.call(n,t,r))&&void 0!==i?i:""},onPrint(t){var r,n;return t=t.map(o.deserializeEvaluationResult),null===(n=null===(r=e.evaluationListener)||void 0===r?void 0:r.onPrint)||void 0===n?void 0:n.call(r,t)},setConfig(t,r){var n,o,i;return null!==(i=null===(o=null===(n=e.evaluationListener)||void 0===n?void 0:n.setConfig)||void 0===o?void 0:o.call(n,t,r))&&void 0!==i?i:Promise.resolve("ignored")},resetConfig(t){var r,n,o;return null!==(o=null===(n=null===(r=e.evaluationListener)||void 0===r?void 0:r.resetConfig)||void 0===n?void 0:n.call(r,t))&&void 0!==o?o:Promise.resolve("ignored")},validateConfig(t,r){var n,o,i;return null!==(i=null===(o=null===(n=e.evaluationListener)||void 0===n?void 0:n.validateConfig)||void 0===o?void 0:o.call(n,t,r))&&void 0!==i?i:Promise.resolve(null)},getConfig(t){var r,n;return null===(n=null===(r=e.evaluationListener)||void 0===r?void 0:r.getConfig)||void 0===n?void 0:n.call(r,t)},listConfigOptions(){var t,r;return null===(r=null===(t=e.evaluationListener)||void 0===t?void 0:t.listConfigOptions)||void 0===r?void 0:r.call(t)},onClearCommand(){var t,r;return null===(r=null===(t=e.evaluationListener)||void 0===t?void 0:t.onClearCommand)||void 0===r?void 0:r.call(t)},onExit(t){var r,n,o;return null!==(o=null===(n=null===(r=e.evaluationListener)||void 0===r?void 0:r.onExit)||void 0===n?void 0:n.call(r,t))&&void 0!==o?o:Promise.resolve()}},t)}terminate(){this.exposedListener[n.close]()}}},517:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChildProcessMongoshBus=void 0;const n=r(369);t.ChildProcessMongoshBus=class ChildProcessMongoshBus{constructor(e,t){const r=(0,n.exposeAll)({emit(...t){e.emit(...t)},on(){throw new Error("Can't use `on` method on ChildProcessMongoshBus")},once(){throw new Error("Can't use `once` method on ChildProcessMongoshBus")}},t);this.exposedEmitter=r}terminate(){this.exposedEmitter[n.close]()}}},920:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.WorkerRuntime=void 0;const o=r(81),i=n(r(17)),s=r(361),a=r(859),u=r(369),l=r(458),f=r(568),c=r(517);t.WorkerRuntime=class WorkerRuntime{constructor(e,t={},r={},n={},o=new s.EventEmitter){this.evaluationListener=null,this.childProcessProxySrcPath=process.env.CHILD_PROCESS_PROXY_SRC_PATH_DO_NOT_USE_THIS_EXCEPT_FOR_TESTING||i.default.resolve(__dirname,"child-process-proxy.js"),this.initOptions={uri:e,driverOptions:t,cliOptions:r,spawnOptions:n},this.eventEmitter=o,this.initWorkerPromise=this.initWorker()}async initWorker(){var e,t,r;const{uri:n,driverOptions:i,cliOptions:a,spawnOptions:h}=this.initOptions;this.childProcess=(0,o.spawn)(process.execPath,[this.childProcessProxySrcPath],{stdio:["inherit","inherit","pipe","ipc"],...h});let g="";null===(r=null===(t=null===(e=this.childProcess)||void 0===e?void 0:e.stderr)||void 0===t?void 0:t.setEncoding("utf8"))||void 0===r||r.on("data",(e=>{g+=e})),await Promise.race([(async()=>{let e;for(;[e]=await(0,s.once)(this.childProcess,"message");)if("ready"===e)return})(),(async()=>{const[e]=await(0,s.once)(this.childProcess,"exit");if(e){let t=function(e){const[,t]=e.split(/^\s*\^\s*$/m).map((e=>e.trim()));if(t){const e=new Error,r=t.substring(0,t.search(/^\s*at/m))||t,[n,...o]=r.split(": ");return e.name=n,e.message=o.join(": ").trim(),e.stack=t,e}return null}(g);throw t?t.message=`Child process failed to start with the following error: ${t.message}`:t=new Error(`Worker runtime failed to start: child process exited with code ${e}`),t}})()]),this.childProcess.setMaxListeners(25),this.childProcessRuntime=(0,u.createCaller)(["init","evaluate","getCompletions","setEvaluationListener","getShellPrompt","interrupt"],this.childProcess),this.childProcessEvaluationListener=new l.ChildProcessEvaluationListener(this,this.childProcess),this.childProcessMongoshBus=new c.ChildProcessMongoshBus(this.eventEmitter,this.childProcess),await this.childProcessRuntime.init(n,(0,f.serializeConnectOptions)(i),a)}async evaluate(e){return await this.initWorkerPromise,(0,f.deserializeEvaluationResult)(await this.childProcessRuntime.evaluate(e))}async getCompletions(e){return await this.initWorkerPromise,await this.childProcessRuntime.getCompletions(e)}async getShellPrompt(){return await this.initWorkerPromise,await this.childProcessRuntime.getShellPrompt()}setEvaluationListener(e){const t=this.evaluationListener;return this.evaluationListener=e,t}async terminate(){try{await this.initWorkerPromise}catch(e){}await(0,a.kill)(this.childProcess),this.childProcessRuntime&&this.childProcessRuntime[u.cancel](),this.childProcessEvaluationListener&&this.childProcessEvaluationListener.terminate(),this.childProcessMongoshBus&&this.childProcessMongoshBus.terminate()}async interrupt(){return await this.initWorkerPromise,this.childProcessRuntime.interrupt()}async waitForRuntimeToBeReady(){await this.initWorkerPromise}}},369:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.createCaller=t.exposeAll=t.cancel=t.close=t.removeTrailingUndefined=t.deserialize=t.serialize=void 0;const o=n(r(655)),i=r(246),s=r(568);function a(e){return`data:;base64,${o.default.serialize(e).toString("base64")}`}function u(e){return/^data:;base64,.+/.test(e)?o.default.deserialize(Buffer.from(e.replace("data:;base64,",""),"base64")):e}var l;function f(e){return e&&"object"==typeof e&&"id"in e&&"sender"in e}function c(e){return f(e)&&"postmsg-rpc/server"===e.sender}function h(e){return f(e)&&"postmsg-rpc/client"===e.sender}function g(e){if(Array.isArray(e))for(e=[...e];e.length>0&&void 0===e[e.length-1];)e.pop();return e}function d(e){return{addListener:e.on.bind(e),removeListener:e.off.bind(e),postMessage(t){if(h(t)&&Array.isArray(t.args)&&(t.args=a(g(t.args))),c(t))try{t.res=a(t.res)}catch(e){t.res=a({type:l.Error,payload:(0,s.serializeError)(e)})}return function(e,t){"postMessage"in e&&"function"==typeof e.postMessage&&e.postMessage(t),"send"in e&&"function"==typeof e.send&&e.send(t)}(e,t)},getMessageData:e=>(h(e)&&e.args&&"string"==typeof e.args&&(e.args=u(e.args)),c(e)&&"string"==typeof e.res&&(e.res=u(e.res)),e)}}t.serialize=a,t.deserialize=u,function(e){e[e.Message=0]="Message",e[e.Error=1]="Error"}(l||(l={})),t.removeTrailingUndefined=g,t.close=Symbol("@@rpc.close"),t.cancel=Symbol("@@rpc.cancel"),t.exposeAll=function(e,r){return Object.entries(e).forEach((([e,t])=>{const{close:n}=(0,i.expose)(e,(async(...e)=>{try{return{type:l.Message,payload:await t(...e)}}catch(e){return{type:l.Error,payload:(0,s.serializeError)(e)}}}),d(r));t.close=n})),Object.defineProperty(e,t.close,{enumerable:!1,value(){Object.values(e).forEach((e=>{e.close()}))}}),e},t.createCaller=function(e,r,n={}){const o={},a=new Set;return e.forEach((e=>{const t=(0,i.caller)(e,d(r));o[e]=async(...r)=>{var o;const i="function"==typeof n[e]?null===(o=n[e])||void 0===o?void 0:o.call(n,...r):r,u=t(...i);a.add(u);const f=await u;if(a.delete(u),(c=f)&&"object"==typeof c&&c.type===l.Error)throw(0,s.deserializeError)(f.payload);var c;return f.payload}})),Object.defineProperty(o,t.cancel,{enumerable:!1,value(){for(const e of a)e.cancel(),a.delete(e)}}),o}},568:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.deserializeConnectOptions=t.serializeConnectOptions=t.deserializeEvaluationResult=t.serializeEvaluationResult=t.SerializedResultTypes=t.deserializeError=t.serializeError=void 0;const n=r(837),o=r(429);function i(e){var t;return(t=e,Object.getOwnPropertyNames(t)).concat("name").reduce(((t,r)=>(t[r]=e[r],t)),{})}function s(e){return Object.assign(new Error,e)}var a;t.serializeError=i,t.deserializeError=s,function(e){e.SerializedErrorResult="SerializedErrorResult",e.InspectResult="InspectResult",e.SerializedShellApiResult="SerializedShellApiResult"}(a=t.SerializedResultTypes||(t.SerializedResultTypes={})),t.serializeEvaluationResult=function({type:e,printable:t,source:r}){return"object"!=typeof(s=t)&&"function"!=typeof s||null===s?{type:e,printable:t,source:r}:function(e){return e&&e.name&&e.message&&e.stack}(t)?{type:a.SerializedErrorResult,printable:i(t),source:r}:null===e?{type:a.InspectResult,printable:(0,n.inspect)(t),source:r}:{type:a.SerializedShellApiResult,printable:{origType:e,serializedValue:o.EJSON.serialize(t)}};var s},t.deserializeEvaluationResult=function({type:e,printable:t,source:r}){return e===a.SerializedErrorResult?{type:e,printable:s(t),source:r}:e===a.SerializedShellApiResult?{type:t.origType,printable:o.EJSON.deserialize(t.serializedValue),source:r}:{type:e,printable:t,source:r}};const u=["schemaMap","encryptedFieldsMap"];t.serializeConnectOptions=function(e={}){var t;const r={...e};for(const e of u)(null===(t=r.autoEncryption)||void 0===t?void 0:t[e])&&(r.autoEncryption={...r.autoEncryption,[e]:o.EJSON.serialize(r.autoEncryption[e],{relaxed:!1})});return r},t.deserializeConnectOptions=function(e){var t;const r={...e};for(const e of u)(null===(t=r.autoEncryption)||void 0===t?void 0:t[e])&&(r.autoEncryption={...r.autoEncryption,[e]:o.EJSON.deserialize(r.autoEncryption[e],{relaxed:!1})});return r}},859:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.kill=void 0;const n=r(81),o=r(361);async function i(e,t="SIGTERM"){e.kill(t),null===e.exitCode&&null===e.signalCode&&await(0,o.once)(e,"exit")}t.kill=i,t.default=function(e,t={},r,o="inherit",s="inherit"){return new Promise((async(a,u)=>{const l=Date.now().toString(32),f=(0,n.spawn)(process.execPath,{stdio:["pipe",o,s,"ipc"],...t});if(!f.stdin)return await i(f),u(new Error("Can't write src to the spawned process, missing stdin"));let c;function h(){c&&clearTimeout(c),f.stdin&&f.stdin.off("error",d),f.off("message",p),f.off("exit",g)}function g(e){e&&e>0&&(h(),u(new Error("Child process exited with error before starting")))}async function d(e){h(),await i(f),u(e)}function p(e){e===l&&(h(),a(f))}f.on("message",p),f.on("exit",g),f.stdin.on("error",d),f.stdin.write(e),f.stdin.write(`;process.send(${JSON.stringify(l)})`),f.stdin.end(),c=void 0!==r?setTimeout((async function(){h(),await i(f),u(new Error("Timed out while waiting for child process to start"))}),r):null}))}},81:e=>{"use strict";e.exports=require("child_process")},1:e=>{"use strict";e.exports=require("cluster")},113:e=>{"use strict";e.exports=require("crypto")},361:e=>{"use strict";e.exports=require("events")},17:e=>{"use strict";e.exports=require("path")},837:e=>{"use strict";e.exports=require("util")},655:e=>{"use strict";e.exports=require("v8")},429:(e,t,r)=>{"use strict";const n=5,o=2147483647,i=-2147483648,s=Math.pow(2,63)-1,a=-Math.pow(2,63),u=Math.pow(2,53),l=-Math.pow(2,53),f=1,c=2,h=3,g=4,d=5,p=6,m=7,y=8,b=9,w=10,B=11,S=12,O=13,N=14,E=15,x=16,L=17,v=18,_=19,I=255,U=127,$=0,j=4,T=Object.freeze({double:1,string:2,object:3,array:4,binData:5,undefined:6,objectId:7,bool:8,date:9,null:10,regex:11,dbPointer:12,javascript:13,symbol:14,javascriptWithScope:15,int:16,timestamp:17,long:18,decimal:19,minKey:-1,maxKey:127});class BSONError extends Error{get bsonError(){return!0}get name(){return"BSONError"}constructor(e){super(e)}static isBSONError(e){return null!=e&&"object"==typeof e&&"bsonError"in e&&!0===e.bsonError&&"name"in e&&"message"in e&&"stack"in e}}class BSONVersionError extends BSONError{get name(){return"BSONVersionError"}constructor(){super(`Unsupported BSON version, bson types must be from bson ${n}.0 or later`)}}class BSONRuntimeError extends BSONError{get name(){return"BSONRuntimeError"}constructor(e){super(e)}}function R(e){return D.fromNumberArray(Array.from({length:e},(()=>Math.floor(256*Math.random()))))}const D={toLocalBufferType(e){if(Buffer.isBuffer(e))return e;if(ArrayBuffer.isView(e))return Buffer.from(e.buffer,e.byteOffset,e.byteLength);const t=e?.[Symbol.toStringTag]??Object.prototype.toString.call(e);if("ArrayBuffer"===t||"SharedArrayBuffer"===t||"[object ArrayBuffer]"===t||"[object SharedArrayBuffer]"===t)return Buffer.from(e);throw new BSONError(`Cannot create Buffer from ${String(e)}`)},allocate:e=>Buffer.alloc(e),equals:(e,t)=>D.toLocalBufferType(e).equals(t),fromNumberArray:e=>Buffer.from(e),fromBase64:e=>Buffer.from(e,"base64"),toBase64:e=>D.toLocalBufferType(e).toString("base64"),fromISO88591:e=>Buffer.from(e,"binary"),toISO88591:e=>D.toLocalBufferType(e).toString("binary"),fromHex:e=>Buffer.from(e,"hex"),toHex:e=>D.toLocalBufferType(e).toString("hex"),fromUTF8:e=>Buffer.from(e,"utf8"),toUTF8:e=>D.toLocalBufferType(e).toString("utf8"),utf8ByteLength:e=>Buffer.byteLength(e,"utf8"),encodeUTF8Into:(e,t,r)=>D.toLocalBufferType(e).write(t,r,void 0,"utf8"),randomBytes:(()=>{try{return r(113).randomBytes}catch{return R}})()};function A(e){if(e<0)throw new RangeError(`The argument 'byteLength' is invalid. Received ${e}`);return z.fromNumberArray(Array.from({length:e},(()=>Math.floor(256*Math.random()))))}const M=(()=>{const{crypto:e}=globalThis;if(null!=e&&"function"==typeof e.getRandomValues)return t=>e.getRandomValues(z.allocate(t));if(function(){const{navigator:e}=globalThis;return"object"==typeof e&&"ReactNative"===e.product}()){const{console:e}=globalThis;e?.warn?.("BSON: For React Native please polyfill crypto.getRandomValues, e.g. using: https://www.npmjs.com/package/react-native-get-random-values.")}return A})(),P=/(\d|[a-f])/i,z={toLocalBufferType(e){const t=e?.[Symbol.toStringTag]??Object.prototype.toString.call(e);if("Uint8Array"===t)return e;if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));if("ArrayBuffer"===t||"SharedArrayBuffer"===t||"[object ArrayBuffer]"===t||"[object SharedArrayBuffer]"===t)return new Uint8Array(e);throw new BSONError(`Cannot make a Uint8Array from ${String(e)}`)},allocate(e){if("number"!=typeof e)throw new TypeError(`The "size" argument must be of type number. Received ${String(e)}`);return new Uint8Array(e)},equals(e,t){if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0},fromNumberArray:e=>Uint8Array.from(e),fromBase64:e=>Uint8Array.from(atob(e),(e=>e.charCodeAt(0))),toBase64:e=>btoa(z.toISO88591(e)),fromISO88591:e=>Uint8Array.from(e,(e=>255&e.charCodeAt(0))),toISO88591:e=>Array.from(Uint16Array.from(e),(e=>String.fromCharCode(e))).join(""),fromHex(e){const t=e.length%2==0?e:e.slice(0,e.length-1),r=[];for(let e=0;e<t.length;e+=2){const n=t[e],o=t[e+1];if(!P.test(n))break;if(!P.test(o))break;const i=Number.parseInt(`${n}${o}`,16);r.push(i)}return Uint8Array.from(r)},toHex:e=>Array.from(e,(e=>e.toString(16).padStart(2,"0"))).join(""),fromUTF8:e=>(new TextEncoder).encode(e),toUTF8:e=>new TextDecoder("utf8",{fatal:!1}).decode(e),utf8ByteLength:e=>z.fromUTF8(e).byteLength,encodeUTF8Into(e,t,r){const n=z.fromUTF8(t);return e.set(n,r),n.byteLength},randomBytes:M},C="function"==typeof Buffer&&!0!==Buffer.prototype?._isBuffer?D:z;class BSONDataView extends DataView{static fromUint8Array(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}}const F=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9a-f]{12}4[0-9a-f]{3}[89ab][0-9a-f]{15})$/i,V=e=>"string"==typeof e&&F.test(e),J=e=>{if(!V(e))throw new BSONError('UUID string representations must be a 32 or 36 character hex string (dashes excluded/included). Format: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" or "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".');const t=e.replace(/-/g,"");return C.fromHex(t)};function k(e,t=!0){return t?[C.toHex(e.subarray(0,4)),C.toHex(e.subarray(4,6)),C.toHex(e.subarray(6,8)),C.toHex(e.subarray(8,10)),C.toHex(e.subarray(10,16))].join("-"):C.toHex(e)}function q(e){return["[object ArrayBuffer]","[object SharedArrayBuffer]"].includes(Object.prototype.toString.call(e))}function H(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)}function K(e){return"[object RegExp]"===Object.prototype.toString.call(e)}function Y(e){return"[object Map]"===Object.prototype.toString.call(e)}function Z(e){return"[object Date]"===Object.prototype.toString.call(e)}class BSONValue{get[Symbol.for("@@mdb.bson.version")](){return n}}class Binary extends BSONValue{get _bsontype(){return"Binary"}constructor(e,t){if(super(),!(null==e||"string"==typeof e||ArrayBuffer.isView(e)||e instanceof ArrayBuffer||Array.isArray(e)))throw new BSONError("Binary can only be constructed from string, Buffer, TypedArray, or Array<number>");this.sub_type=t??Binary.BSON_BINARY_SUBTYPE_DEFAULT,null==e?(this.buffer=C.allocate(Binary.BUFFER_SIZE),this.position=0):("string"==typeof e?this.buffer=C.fromISO88591(e):Array.isArray(e)?this.buffer=C.fromNumberArray(e):this.buffer=C.toLocalBufferType(e),this.position=this.buffer.byteLength)}put(e){if("string"==typeof e&&1!==e.length)throw new BSONError("only accepts single character String");if("number"!=typeof e&&1!==e.length)throw new BSONError("only accepts single character Uint8Array or Array");let t;if(t="string"==typeof e?e.charCodeAt(0):"number"==typeof e?e:e[0],t<0||t>255)throw new BSONError("only accepts number in a valid unsigned byte range 0-255");if(this.buffer.byteLength>this.position)this.buffer[this.position++]=t;else{const e=C.allocate(Binary.BUFFER_SIZE+this.buffer.length);e.set(this.buffer,0),this.buffer=e,this.buffer[this.position++]=t}}write(e,t){if(t="number"==typeof t?t:this.position,this.buffer.byteLength<t+e.length){const t=C.allocate(this.buffer.byteLength+e.length);t.set(this.buffer,0),this.buffer=t}if(ArrayBuffer.isView(e))this.buffer.set(C.toLocalBufferType(e),t),this.position=t+e.byteLength>this.position?t+e.length:this.position;else if("string"==typeof e){const r=C.fromISO88591(e);this.buffer.set(r,t),this.position=t+e.length>this.position?t+e.length:this.position}}read(e,t){return t=t&&t>0?t:this.position,this.buffer.slice(e,e+t)}value(e){return(e=!!e)&&this.buffer.length===this.position?this.buffer:e?this.buffer.slice(0,this.position):C.toISO88591(this.buffer.subarray(0,this.position))}length(){return this.position}toJSON(){return C.toBase64(this.buffer)}toString(e){return"hex"===e?C.toHex(this.buffer):"base64"===e?C.toBase64(this.buffer):C.toUTF8(this.buffer)}toExtendedJSON(e){e=e||{};const t=C.toBase64(this.buffer),r=Number(this.sub_type).toString(16);return e.legacy?{$binary:t,$type:1===r.length?"0"+r:r}:{$binary:{base64:t,subType:1===r.length?"0"+r:r}}}toUUID(){if(this.sub_type===Binary.SUBTYPE_UUID)return new UUID(this.buffer.slice(0,this.position));throw new BSONError(`Binary sub_type "${this.sub_type}" is not supported for converting to UUID. Only "${Binary.SUBTYPE_UUID}" is currently supported.`)}static createFromHexString(e,t){return new Binary(C.fromHex(e),t)}static createFromBase64(e,t){return new Binary(C.fromBase64(e),t)}static fromExtendedJSON(e,t){let r,n;if(t=t||{},"$binary"in e?t.legacy&&"string"==typeof e.$binary&&"$type"in e?(n=e.$type?parseInt(e.$type,16):0,r=C.fromBase64(e.$binary)):"string"!=typeof e.$binary&&(n=e.$binary.subType?parseInt(e.$binary.subType,16):0,r=C.fromBase64(e.$binary.base64)):"$uuid"in e&&(n=4,r=J(e.$uuid)),!r)throw new BSONError(`Unexpected Binary Extended JSON format ${JSON.stringify(e)}`);return n===j?new UUID(r):new Binary(r,n)}[Symbol.for("nodejs.util.inspect.custom")](){return this.inspect()}inspect(){return`Binary.createFromBase64("${C.toBase64(this.buffer.subarray(0,this.position))}", ${this.sub_type})`}}Binary.BSON_BINARY_SUBTYPE_DEFAULT=0,Binary.BUFFER_SIZE=256,Binary.SUBTYPE_DEFAULT=0,Binary.SUBTYPE_FUNCTION=1,Binary.SUBTYPE_BYTE_ARRAY=2,Binary.SUBTYPE_UUID_OLD=3,Binary.SUBTYPE_UUID=4,Binary.SUBTYPE_MD5=5,Binary.SUBTYPE_ENCRYPTED=6,Binary.SUBTYPE_COLUMN=7,Binary.SUBTYPE_USER_DEFINED=128;class UUID extends Binary{constructor(e){let t,r;if(null==e)t=UUID.generate();else if(e instanceof UUID)t=C.toLocalBufferType(new Uint8Array(e.buffer)),r=e.__id;else if(ArrayBuffer.isView(e)&&16===e.byteLength)t=C.toLocalBufferType(e);else{if("string"!=typeof e)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).");t=J(e)}super(t,j),this.__id=r}get id(){return this.buffer}set id(e){this.buffer=e,UUID.cacheHexString&&(this.__id=k(e))}toHexString(e=!0){if(UUID.cacheHexString&&this.__id)return this.__id;const t=k(this.id,e);return UUID.cacheHexString&&(this.__id=t),t}toString(e){return"hex"===e?C.toHex(this.id):"base64"===e?C.toBase64(this.id):this.toHexString()}toJSON(){return this.toHexString()}equals(e){if(!e)return!1;if(e instanceof UUID)return C.equals(e.id,this.id);try{return C.equals(new UUID(e).id,this.id)}catch{return!1}}toBinary(){return new Binary(this.id,Binary.SUBTYPE_UUID)}static generate(){const e=C.randomBytes(16);return e[6]=15&e[6]|64,e[8]=63&e[8]|128,e}static isValid(e){return!!e&&(e instanceof UUID||("string"==typeof e?V(e):!!H(e)&&16===e.byteLength&&64==(240&e[6])&&128==(128&e[8])))}static createFromHexString(e){const t=J(e);return new UUID(t)}static createFromBase64(e){return new UUID(C.fromBase64(e))}[Symbol.for("nodejs.util.inspect.custom")](){return this.inspect()}inspect(){return`new UUID("${this.toHexString()}")`}}class Code extends BSONValue{get _bsontype(){return"Code"}constructor(e,t){super(),this.code=e.toString(),this.scope=t??null}toJSON(){return null!=this.scope?{code:this.code,scope:this.scope}:{code:this.code}}toExtendedJSON(){return this.scope?{$code:this.code,$scope:this.scope}:{$code:this.code}}static fromExtendedJSON(e){return new Code(e.$code,e.$scope)}[Symbol.for("nodejs.util.inspect.custom")](){return this.inspect()}inspect(){const e=this.toJSON();return`new Code("${String(e.code)}"${null!=e.scope?`, ${JSON.stringify(e.scope)}`:""})`}}function W(e){return null!=e&&"object"==typeof e&&"$id"in e&&null!=e.$id&&"$ref"in e&&"string"==typeof e.$ref&&(!("$db"in e)||"$db"in e&&"string"==typeof e.$db)}class DBRef extends BSONValue{get _bsontype(){return"DBRef"}constructor(e,t,r,n){super();const o=e.split(".");2===o.length&&(r=o.shift(),e=o.shift()),this.collection=e,this.oid=t,this.db=r,this.fields=n||{}}get namespace(){return this.collection}set namespace(e){this.collection=e}toJSON(){const e=Object.assign({$ref:this.collection,$id:this.oid},this.fields);return null!=this.db&&(e.$db=this.db),e}toExtendedJSON(e){e=e||{};let t={$ref:this.collection,$id:this.oid};return e.legacy||(this.db&&(t.$db=this.db),t=Object.assign(t,this.fields)),t}static fromExtendedJSON(e){const t=Object.assign({},e);return delete t.$ref,delete t.$id,delete t.$db,new DBRef(e.$ref,e.$id,e.$db,t)}[Symbol.for("nodejs.util.inspect.custom")](){return this.inspect()}inspect(){const e=void 0===this.oid||void 0===this.oid.toString?this.oid:this.oid.toString();return`new DBRef("${this.namespace}", new ObjectId("${String(e)}")${this.db?`, "${this.db}"`:""})`}}let G;try{G=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}catch{}const X=4294967296,Q=0x10000000000000000,ee=Q/2,te={},re={},ne=/^(\+?0|(\+|-)?[1-9][0-9]*)$/;class Long extends BSONValue{get _bsontype(){return"Long"}get __isLong__(){return!0}constructor(e=0,t,r){super(),"bigint"==typeof e?Object.assign(this,Long.fromBigInt(e,!!t)):"string"==typeof e?Object.assign(this,Long.fromString(e,!!t)):(this.low=0|e,this.high=0|t,this.unsigned=!!r)}static fromBits(e,t,r){return new Long(e,t,r)}static fromInt(e,t){let r,n,o;return t?(o=0<=(e>>>=0)&&e<256)&&(n=re[e],n)?n:(r=Long.fromBits(e,(0|e)<0?-1:0,!0),o&&(re[e]=r),r):(o=-128<=(e|=0)&&e<128)&&(n=te[e],n)?n:(r=Long.fromBits(e,e<0?-1:0,!1),o&&(te[e]=r),r)}static fromNumber(e,t){if(isNaN(e))return t?Long.UZERO:Long.ZERO;if(t){if(e<0)return Long.UZERO;if(e>=Q)return Long.MAX_UNSIGNED_VALUE}else{if(e<=-ee)return Long.MIN_VALUE;if(e+1>=ee)return Long.MAX_VALUE}return e<0?Long.fromNumber(-e,t).neg():Long.fromBits(e%X|0,e/X|0,t)}static fromBigInt(e,t){return Long.fromString(e.toString(),t)}static fromString(e,t,r){if(0===e.length)throw new BSONError("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return Long.ZERO;if("number"==typeof t?(r=t,t=!1):t=!!t,(r=r||10)<2||36<r)throw new BSONError("radix");let n;if((n=e.indexOf("-"))>0)throw new BSONError("interior hyphen");if(0===n)return Long.fromString(e.substring(1),t,r).neg();const o=Long.fromNumber(Math.pow(r,8));let i=Long.ZERO;for(let t=0;t<e.length;t+=8){const n=Math.min(8,e.length-t),s=parseInt(e.substring(t,t+n),r);if(n<8){const e=Long.fromNumber(Math.pow(r,n));i=i.mul(e).add(Long.fromNumber(s))}else i=i.mul(o),i=i.add(Long.fromNumber(s))}return i.unsigned=t,i}static fromBytes(e,t,r){return r?Long.fromBytesLE(e,t):Long.fromBytesBE(e,t)}static fromBytesLE(e,t){return new Long(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)}static fromBytesBE(e,t){return new Long(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)}static isLong(e){return null!=e&&"object"==typeof e&&"__isLong__"in e&&!0===e.__isLong__}static fromValue(e,t){return"number"==typeof e?Long.fromNumber(e,t):"string"==typeof e?Long.fromString(e,t):Long.fromBits(e.low,e.high,"boolean"==typeof t?t:e.unsigned)}add(e){Long.isLong(e)||(e=Long.fromValue(e));const t=this.high>>>16,r=65535&this.high,n=this.low>>>16,o=65535&this.low,i=e.high>>>16,s=65535&e.high,a=e.low>>>16;let u=0,l=0,f=0,c=0;return c+=o+(65535&e.low),f+=c>>>16,c&=65535,f+=n+a,l+=f>>>16,f&=65535,l+=r+s,u+=l>>>16,l&=65535,u+=t+i,u&=65535,Long.fromBits(f<<16|c,u<<16|l,this.unsigned)}and(e){return Long.isLong(e)||(e=Long.fromValue(e)),Long.fromBits(this.low&e.low,this.high&e.high,this.unsigned)}compare(e){if(Long.isLong(e)||(e=Long.fromValue(e)),this.eq(e))return 0;const t=this.isNegative(),r=e.isNegative();return t&&!r?-1:!t&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1}comp(e){return this.compare(e)}divide(e){if(Long.isLong(e)||(e=Long.fromValue(e)),e.isZero())throw new BSONError("division by zero");if(G){if(!this.unsigned&&-2147483648===this.high&&-1===e.low&&-1===e.high)return this;const t=(this.unsigned?G.div_u:G.div_s)(this.low,this.high,e.low,e.high);return Long.fromBits(t,G.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Long.UZERO:Long.ZERO;let t,r,n;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Long.UZERO;if(e.gt(this.shru(1)))return Long.UONE;n=Long.UZERO}else{if(this.eq(Long.MIN_VALUE))return e.eq(Long.ONE)||e.eq(Long.NEG_ONE)?Long.MIN_VALUE:e.eq(Long.MIN_VALUE)?Long.ONE:(t=this.shr(1).div(e).shl(1),t.eq(Long.ZERO)?e.isNegative()?Long.ONE:Long.NEG_ONE:(r=this.sub(e.mul(t)),n=t.add(r.div(e)),n));if(e.eq(Long.MIN_VALUE))return this.unsigned?Long.UZERO:Long.ZERO;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();n=Long.ZERO}for(r=this;r.gte(e);){t=Math.max(1,Math.floor(r.toNumber()/e.toNumber()));const o=Math.ceil(Math.log(t)/Math.LN2),i=o<=48?1:Math.pow(2,o-48);let s=Long.fromNumber(t),a=s.mul(e);for(;a.isNegative()||a.gt(r);)t-=i,s=Long.fromNumber(t,this.unsigned),a=s.mul(e);s.isZero()&&(s=Long.ONE),n=n.add(s),r=r.sub(a)}return n}div(e){return this.divide(e)}equals(e){return Long.isLong(e)||(e=Long.fromValue(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&this.high===e.high&&this.low===e.low}eq(e){return this.equals(e)}getHighBits(){return this.high}getHighBitsUnsigned(){return this.high>>>0}getLowBits(){return this.low}getLowBitsUnsigned(){return this.low>>>0}getNumBitsAbs(){if(this.isNegative())return this.eq(Long.MIN_VALUE)?64:this.neg().getNumBitsAbs();const e=0!==this.high?this.high:this.low;let t;for(t=31;t>0&&0==(e&1<<t);t--);return 0!==this.high?t+33:t+1}greaterThan(e){return this.comp(e)>0}gt(e){return this.greaterThan(e)}greaterThanOrEqual(e){return this.comp(e)>=0}gte(e){return this.greaterThanOrEqual(e)}ge(e){return this.greaterThanOrEqual(e)}isEven(){return 0==(1&this.low)}isNegative(){return!this.unsigned&&this.high<0}isOdd(){return 1==(1&this.low)}isPositive(){return this.unsigned||this.high>=0}isZero(){return 0===this.high&&0===this.low}lessThan(e){return this.comp(e)<0}lt(e){return this.lessThan(e)}lessThanOrEqual(e){return this.comp(e)<=0}lte(e){return this.lessThanOrEqual(e)}modulo(e){if(Long.isLong(e)||(e=Long.fromValue(e)),G){const t=(this.unsigned?G.rem_u:G.rem_s)(this.low,this.high,e.low,e.high);return Long.fromBits(t,G.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))}mod(e){return this.modulo(e)}rem(e){return this.modulo(e)}multiply(e){if(this.isZero())return Long.ZERO;if(Long.isLong(e)||(e=Long.fromValue(e)),G){const t=G.mul(this.low,this.high,e.low,e.high);return Long.fromBits(t,G.get_high(),this.unsigned)}if(e.isZero())return Long.ZERO;if(this.eq(Long.MIN_VALUE))return e.isOdd()?Long.MIN_VALUE:Long.ZERO;if(e.eq(Long.MIN_VALUE))return this.isOdd()?Long.MIN_VALUE:Long.ZERO;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(Long.TWO_PWR_24)&&e.lt(Long.TWO_PWR_24))return Long.fromNumber(this.toNumber()*e.toNumber(),this.unsigned);const t=this.high>>>16,r=65535&this.high,n=this.low>>>16,o=65535&this.low,i=e.high>>>16,s=65535&e.high,a=e.low>>>16,u=65535&e.low;let l=0,f=0,c=0,h=0;return h+=o*u,c+=h>>>16,h&=65535,c+=n*u,f+=c>>>16,c&=65535,c+=o*a,f+=c>>>16,c&=65535,f+=r*u,l+=f>>>16,f&=65535,f+=n*a,l+=f>>>16,f&=65535,f+=o*s,l+=f>>>16,f&=65535,l+=t*u+r*a+n*s+o*i,l&=65535,Long.fromBits(c<<16|h,l<<16|f,this.unsigned)}mul(e){return this.multiply(e)}negate(){return!this.unsigned&&this.eq(Long.MIN_VALUE)?Long.MIN_VALUE:this.not().add(Long.ONE)}neg(){return this.negate()}not(){return Long.fromBits(~this.low,~this.high,this.unsigned)}notEquals(e){return!this.equals(e)}neq(e){return this.notEquals(e)}ne(e){return this.notEquals(e)}or(e){return Long.isLong(e)||(e=Long.fromValue(e)),Long.fromBits(this.low|e.low,this.high|e.high,this.unsigned)}shiftLeft(e){return Long.isLong(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?Long.fromBits(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):Long.fromBits(0,this.low<<e-32,this.unsigned)}shl(e){return this.shiftLeft(e)}shiftRight(e){return Long.isLong(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?Long.fromBits(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):Long.fromBits(this.high>>e-32,this.high>=0?0:-1,this.unsigned)}shr(e){return this.shiftRight(e)}shiftRightUnsigned(e){if(Long.isLong(e)&&(e=e.toInt()),0==(e&=63))return this;{const t=this.high;if(e<32){const r=this.low;return Long.fromBits(r>>>e|t<<32-e,t>>>e,this.unsigned)}return 32===e?Long.fromBits(t,0,this.unsigned):Long.fromBits(t>>>e-32,0,this.unsigned)}}shr_u(e){return this.shiftRightUnsigned(e)}shru(e){return this.shiftRightUnsigned(e)}subtract(e){return Long.isLong(e)||(e=Long.fromValue(e)),this.add(e.neg())}sub(e){return this.subtract(e)}toInt(){return this.unsigned?this.low>>>0:this.low}toNumber(){return this.unsigned?(this.high>>>0)*X+(this.low>>>0):this.high*X+(this.low>>>0)}toBigInt(){return BigInt(this.toString())}toBytes(e){return e?this.toBytesLE():this.toBytesBE()}toBytesLE(){const e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]}toBytesBE(){const e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]}toSigned(){return this.unsigned?Long.fromBits(this.low,this.high,!1):this}toString(e){if((e=e||10)<2||36<e)throw new BSONError("radix");if(this.isZero())return"0";if(this.isNegative()){if(this.eq(Long.MIN_VALUE)){const t=Long.fromNumber(e),r=this.div(t),n=r.mul(t).sub(this);return r.toString(e)+n.toInt().toString(e)}return"-"+this.neg().toString(e)}const t=Long.fromNumber(Math.pow(e,6),this.unsigned);let r=this,n="";for(;;){const o=r.div(t);let i=(r.sub(o.mul(t)).toInt()>>>0).toString(e);if(r=o,r.isZero())return i+n;for(;i.length<6;)i="0"+i;n=""+i+n}}toUnsigned(){return this.unsigned?this:Long.fromBits(this.low,this.high,!0)}xor(e){return Long.isLong(e)||(e=Long.fromValue(e)),Long.fromBits(this.low^e.low,this.high^e.high,this.unsigned)}eqz(){return this.isZero()}le(e){return this.lessThanOrEqual(e)}toExtendedJSON(e){return e&&e.relaxed?this.toNumber():{$numberLong:this.toString()}}static fromExtendedJSON(e,t){const{useBigInt64:r=!1,relaxed:n=!0}={...t};if(e.$numberLong.length>20)throw new BSONError("$numberLong string is too long");if(!ne.test(e.$numberLong))throw new BSONError(`$numberLong string "${e.$numberLong}" is in an invalid format`);if(r){const t=BigInt(e.$numberLong);return BigInt.asIntN(64,t)}const o=Long.fromString(e.$numberLong);return n?o.toNumber():o}[Symbol.for("nodejs.util.inspect.custom")](){return this.inspect()}inspect(){return`new Long("${this.toString()}"${this.unsigned?", true":""})`}}Long.TWO_PWR_24=Long.fromInt(1<<24),Long.MAX_UNSIGNED_VALUE=Long.fromBits(-1,-1,!0),Long.ZERO=Long.fromInt(0),Long.UZERO=Long.fromInt(0,!0),Long.ONE=Long.fromInt(1),Long.UONE=Long.fromInt(1,!0),Long.NEG_ONE=Long.fromInt(-1),Long.MAX_VALUE=Long.fromBits(-1,2147483647,!1),Long.MIN_VALUE=Long.fromBits(0,-2147483648,!1);const oe=/^(\+|-)?(\d+|(\d*\.\d*))?(E|e)?([-+])?(\d+)?$/,ie=/^(\+|-)?(Infinity|inf)$/i,se=/^(\+|-)?NaN$/i,ae=6111,ue=-6176,le=C.fromNumberArray([124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0].reverse()),fe=C.fromNumberArray([248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0].reverse()),ce=C.fromNumberArray([120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0].reverse()),he=/^([-+])?(\d+)?$/;function ge(e){return!isNaN(parseInt(e,10))}function de(e){const t=Long.fromNumber(1e9);let r=Long.fromNumber(0);if(!(e.parts[0]||e.parts[1]||e.parts[2]||e.parts[3]))return{quotient:e,rem:r};for(let n=0;n<=3;n++)r=r.shiftLeft(32),r=r.add(new Long(e.parts[n],0)),e.parts[n]=r.div(t).low,r=r.modulo(t);return{quotient:e,rem:r}}function pe(e,t){throw new BSONError(`"${e}" is not a valid Decimal128 string - ${t}`)}class Decimal128 extends BSONValue{get _bsontype(){return"Decimal128"}constructor(e){if(super(),"string"==typeof e)this.bytes=Decimal128.fromString(e).bytes;else{if(!H(e))throw new BSONError("Decimal128 must take a Buffer or string");if(16!==e.byteLength)throw new BSONError("Decimal128 must take a Buffer of 16 bytes");this.bytes=e}}static fromString(e){let t=!1,r=!1,n=!1,o=0,i=0,s=0,a=0,u=0;const l=[0];let f=0,c=0,h=0,g=0,d=0,p=0,m=new Long(0,0),y=new Long(0,0),b=0,w=0;if(e.length>=7e3)throw new BSONError(e+" not a valid Decimal128 string");const B=e.match(oe),S=e.match(ie),O=e.match(se);if(!B&&!S&&!O||0===e.length)throw new BSONError(e+" not a valid Decimal128 string");if(B){const t=B[2],r=B[4],n=B[5],o=B[6];r&&void 0===o&&pe(e,"missing exponent power"),r&&void 0===t&&pe(e,"missing exponent base"),void 0===r&&(n||o)&&pe(e,"missing e before exponent")}if("+"!==e[w]&&"-"!==e[w]||(t="-"===e[w++]),!ge(e[w])&&"."!==e[w]){if("i"===e[w]||"I"===e[w])return new Decimal128(t?fe:ce);if("N"===e[w])return new Decimal128(le)}for(;ge(e[w])||"."===e[w];)"."!==e[w]?(f<34&&("0"!==e[w]||n)&&(n||(u=i),n=!0,l[c++]=parseInt(e[w],10),f+=1),n&&(s+=1),r&&(a+=1),i+=1,w+=1):(r&&pe(e,"contains multiple periods"),r=!0,w+=1);if(r&&!i)throw new BSONError(e+" not a valid Decimal128 string");if("e"===e[w]||"E"===e[w]){const t=e.substr(++w).match(he);if(!t||!t[2])return new Decimal128(le);d=parseInt(t[0],10),w+=t[0].length}if(e[w])return new Decimal128(le);if(h=0,f){if(g=f-1,o=s,1!==o)for(;0===l[u+o-1];)o-=1}else h=0,g=0,l[0]=0,s=1,f=1,o=0;for(d<=a&&a-d>16384?d=ue:d-=a;d>ae;){if(g+=1,g-h>34){if(l.join("").match(/^0+$/)){d=ae;break}pe(e,"overflow")}d-=1}for(;d<ue||f<s;){if(0===g&&o<f){d=ue,o=0;break}if(f<s?s-=1:g-=1,d<ae)d+=1;else{if(l.join("").match(/^0+$/)){d=ae;break}pe(e,"overflow")}}if(g-h+1<o){let n=i;r&&(u+=1,n+=1),t&&(u+=1,n+=1);const o=parseInt(e[u+g+1],10);let s=0;if(o>=5&&(s=1,5===o))for(s=l[g]%2==1?1:0,p=u+g+2;p<n;p++)if(parseInt(e[p],10)){s=1;break}if(s){let e=g;for(;e>=0;e--)if(++l[e]>9&&(l[e]=0,0===e)){if(!(d<ae))return new Decimal128(t?fe:ce);d+=1,l[e]=1}}}if(m=Long.fromNumber(0),y=Long.fromNumber(0),0===o)m=Long.fromNumber(0),y=Long.fromNumber(0);else if(g-h<17){let e=h;for(y=Long.fromNumber(l[e++]),m=new Long(0,0);e<=g;e++)y=y.multiply(Long.fromNumber(10)),y=y.add(Long.fromNumber(l[e]))}else{let e=h;for(m=Long.fromNumber(l[e++]);e<=g-17;e++)m=m.multiply(Long.fromNumber(10)),m=m.add(Long.fromNumber(l[e]));for(y=Long.fromNumber(l[e++]);e<=g;e++)y=y.multiply(Long.fromNumber(10)),y=y.add(Long.fromNumber(l[e]))}const N=function(e,t){if(!e&&!t)return{high:Long.fromNumber(0),low:Long.fromNumber(0)};const r=e.shiftRightUnsigned(32),n=new Long(e.getLowBits(),0),o=t.shiftRightUnsigned(32),i=new Long(t.getLowBits(),0);let s=r.multiply(o),a=r.multiply(i);const u=n.multiply(o);let l=n.multiply(i);return s=s.add(a.shiftRightUnsigned(32)),a=new Long(a.getLowBits(),0).add(u).add(l.shiftRightUnsigned(32)),s=s.add(a.shiftRightUnsigned(32)),l=a.shiftLeft(32).add(new Long(l.getLowBits(),0)),{high:s,low:l}}(m,Long.fromString("100000000000000000"));N.low=N.low.add(y),function(e,t){const r=e.high>>>0,n=t.high>>>0;return r<n||r===n&&e.low>>>0<t.low>>>0}(N.low,y)&&(N.high=N.high.add(Long.fromNumber(1))),b=d+6176;const E={low:Long.fromNumber(0),high:Long.fromNumber(0)};N.high.shiftRightUnsigned(49).and(Long.fromNumber(1)).equals(Long.fromNumber(1))?(E.high=E.high.or(Long.fromNumber(3).shiftLeft(61)),E.high=E.high.or(Long.fromNumber(b).and(Long.fromNumber(16383).shiftLeft(47))),E.high=E.high.or(N.high.and(Long.fromNumber(0x7fffffffffff)))):(E.high=E.high.or(Long.fromNumber(16383&b).shiftLeft(49)),E.high=E.high.or(N.high.and(Long.fromNumber(562949953421311)))),E.low=N.low,t&&(E.high=E.high.or(Long.fromString("9223372036854775808")));const x=C.allocate(16);return w=0,x[w++]=255&E.low.low,x[w++]=E.low.low>>8&255,x[w++]=E.low.low>>16&255,x[w++]=E.low.low>>24&255,x[w++]=255&E.low.high,x[w++]=E.low.high>>8&255,x[w++]=E.low.high>>16&255,x[w++]=E.low.high>>24&255,x[w++]=255&E.high.low,x[w++]=E.high.low>>8&255,x[w++]=E.high.low>>16&255,x[w++]=E.high.low>>24&255,x[w++]=255&E.high.high,x[w++]=E.high.high>>8&255,x[w++]=E.high.high>>16&255,x[w++]=E.high.high>>24&255,new Decimal128(x)}toString(){let e,t=0;const r=new Array(36);for(let e=0;e<r.length;e++)r[e]=0;let n,o,i,s=0,a=!1,u={parts:[0,0,0,0]};const l=[];s=0;const f=this.bytes,c=f[s++]|f[s++]<<8|f[s++]<<16|f[s++]<<24,h=f[s++]|f[s++]<<8|f[s++]<<16|f[s++]<<24,g=f[s++]|f[s++]<<8|f[s++]<<16|f[s++]<<24,d=f[s++]|f[s++]<<8|f[s++]<<16|f[s++]<<24;s=0,(new Long(c,h),new Long(g,d)).lessThan(Long.ZERO)&&l.push("-");const p=d>>26&31;if(p>>3==3){if(30===p)return l.join("")+"Infinity";if(31===p)return"NaN";e=d>>15&16383,n=8+(d>>14&1)}else n=d>>14&7,e=d>>17&16383;const m=e-6176;if(u.parts[0]=(16383&d)+((15&n)<<14),u.parts[1]=g,u.parts[2]=h,u.parts[3]=c,0===u.parts[0]&&0===u.parts[1]&&0===u.parts[2]&&0===u.parts[3])a=!0;else for(i=3;i>=0;i--){let e=0;const t=de(u);if(u=t.quotient,e=t.rem.low,e)for(o=8;o>=0;o--)r[9*i+o]=e%10,e=Math.floor(e/10)}if(a)t=1,r[s]=0;else for(t=36;!r[s];)t-=1,s+=1;const y=t-1+m;if(y>=34||y<=-7||m>0){if(t>34)return l.push("0"),m>0?l.push(`E+${m}`):m<0&&l.push(`E${m}`),l.join("");l.push(`${r[s++]}`),t-=1,t&&l.push(".");for(let e=0;e<t;e++)l.push(`${r[s++]}`);l.push("E"),y>0?l.push(`+${y}`):l.push(`${y}`)}else if(m>=0)for(let e=0;e<t;e++)l.push(`${r[s++]}`);else{let e=t+m;if(e>0)for(let t=0;t<e;t++)l.push(`${r[s++]}`);else l.push("0");for(l.push(".");e++<0;)l.push("0");for(let n=0;n<t-Math.max(e-1,0);n++)l.push(`${r[s++]}`)}return l.join("")}toJSON(){return{$numberDecimal:this.toString()}}toExtendedJSON(){return{$numberDecimal:this.toString()}}static fromExtendedJSON(e){return Decimal128.fromString(e.$numberDecimal)}[Symbol.for("nodejs.util.inspect.custom")](){return this.inspect()}inspect(){return`new Decimal128("${this.toString()}")`}}class Double extends BSONValue{get _bsontype(){return"Double"}constructor(e){super(),e instanceof Number&&(e=e.valueOf()),this.value=+e}valueOf(){return this.value}toJSON(){return this.value}toString(e){return this.value.toString(e)}toExtendedJSON(e){return e&&(e.legacy||e.relaxed&&isFinite(this.value))?this.value:Object.is(Math.sign(this.value),-0)?{$numberDouble:"-0.0"}:{$numberDouble:Number.isInteger(this.value)?this.value.toFixed(1):this.value.toString()}}static fromExtendedJSON(e,t){const r=parseFloat(e.$numberDouble);return t&&t.relaxed?r:new Double(r)}[Symbol.for("nodejs.util.inspect.custom")](){return this.inspect()}inspect(){return`new Double(${this.toExtendedJSON().$numberDouble})`}}class Int32 extends BSONValue{get _bsontype(){return"Int32"}constructor(e){super(),e instanceof Number&&(e=e.valueOf()),this.value=0|+e}valueOf(){return this.value}toString(e){return this.value.toString(e)}toJSON(){return this.value}toExtendedJSON(e){return e&&(e.relaxed||e.legacy)?this.value:{$numberInt:this.value.toString()}}static fromExtendedJSON(e,t){return t&&t.relaxed?parseInt(e.$numberInt,10):new Int32(e.$numberInt)}[Symbol.for("nodejs.util.inspect.custom")](){return this.inspect()}inspect(){return`new Int32(${this.valueOf()})`}}class MaxKey extends BSONValue{get _bsontype(){return"MaxKey"}toExtendedJSON(){return{$maxKey:1}}static fromExtendedJSON(){return new MaxKey}[Symbol.for("nodejs.util.inspect.custom")](){return this.inspect()}inspect(){return"new MaxKey()"}}class MinKey extends BSONValue{get _bsontype(){return"MinKey"}toExtendedJSON(){return{$minKey:1}}static fromExtendedJSON(){return new MinKey}[Symbol.for("nodejs.util.inspect.custom")](){return this.inspect()}inspect(){return"new MinKey()"}}const me=new RegExp("^[0-9a-fA-F]{24}$");let ye=null;const be=Symbol("id");class ObjectId extends BSONValue{get _bsontype(){return"ObjectId"}constructor(e){let t;if(super(),"object"==typeof e&&e&&"id"in e){if("string"!=typeof e.id&&!ArrayBuffer.isView(e.id))throw new BSONError("Argument passed in must have an id that is of type string or Buffer");t="toHexString"in e&&"function"==typeof e.toHexString?C.fromHex(e.toHexString()):e.id}else t=e;if(null==t||"number"==typeof t)this[be]=ObjectId.generate("number"==typeof t?t:void 0);else if(ArrayBuffer.isView(t)&&12===t.byteLength)this[be]=C.toLocalBufferType(t);else{if("string"!=typeof t)throw new BSONError("Argument passed in does not match the accepted types");if(12===t.length){const e=C.fromUTF8(t);if(12!==e.byteLength)throw new BSONError("Argument passed in must be a string of 12 bytes");this[be]=e}else{if(24!==t.length||!me.test(t))throw new BSONError("Argument passed in must be a string of 12 bytes or a string of 24 hex characters or an integer");this[be]=C.fromHex(t)}}ObjectId.cacheHexString&&(this.__id=C.toHex(this.id))}get id(){return this[be]}set id(e){this[be]=e,ObjectId.cacheHexString&&(this.__id=C.toHex(e))}toHexString(){if(ObjectId.cacheHexString&&this.__id)return this.__id;const e=C.toHex(this.id);return ObjectId.cacheHexString&&!this.__id&&(this.__id=e),e}static getInc(){return ObjectId.index=(ObjectId.index+1)%16777215}static generate(e){"number"!=typeof e&&(e=Math.floor(Date.now()/1e3));const t=ObjectId.getInc(),r=C.allocate(12);return BSONDataView.fromUint8Array(r).setUint32(0,e,!1),null===ye&&(ye=C.randomBytes(5)),r[4]=ye[0],r[5]=ye[1],r[6]=ye[2],r[7]=ye[3],r[8]=ye[4],r[11]=255&t,r[10]=t>>8&255,r[9]=t>>16&255,r}toString(e){return"base64"===e?C.toBase64(this.id):this.toHexString()}toJSON(){return this.toHexString()}equals(e){if(null==e)return!1;if(e instanceof ObjectId)return this[be][11]===e[be][11]&&C.equals(this[be],e[be]);if("string"==typeof e&&ObjectId.isValid(e)&&12===e.length&&H(this.id))return C.equals(this.id,C.fromISO88591(e));if("string"==typeof e&&ObjectId.isValid(e)&&24===e.length)return e.toLowerCase()===this.toHexString();if("string"==typeof e&&ObjectId.isValid(e)&&12===e.length)return C.equals(C.fromUTF8(e),this.id);if("object"==typeof e&&"toHexString"in e&&"function"==typeof e.toHexString){const t=e.toHexString(),r=this.toHexString().toLowerCase();return"string"==typeof t&&t.toLowerCase()===r}return!1}getTimestamp(){const e=new Date,t=BSONDataView.fromUint8Array(this.id).getUint32(0,!1);return e.setTime(1e3*Math.floor(t)),e}static createPk(){return new ObjectId}static createFromTime(e){const t=C.fromNumberArray([0,0,0,0,0,0,0,0,0,0,0,0]);return BSONDataView.fromUint8Array(t).setUint32(0,e,!1),new ObjectId(t)}static createFromHexString(e){if(24!==e?.length)throw new BSONError("hex string must be 24 characters");return new ObjectId(C.fromHex(e))}static createFromBase64(e){if(16!==e?.length)throw new BSONError("base64 string must be 16 characters");return new ObjectId(C.fromBase64(e))}static isValid(e){if(null==e)return!1;try{return new ObjectId(e),!0}catch{return!1}}toExtendedJSON(){return this.toHexString?{$oid:this.toHexString()}:{$oid:this.toString("hex")}}static fromExtendedJSON(e){return new ObjectId(e.$oid)}[Symbol.for("nodejs.util.inspect.custom")](){return this.inspect()}inspect(){return`new ObjectId("${this.toHexString()}")`}}function we(e,t,r){let n=5;if(Array.isArray(e))for(let o=0;o<e.length;o++)n+=Be(o.toString(),e[o],t,!0,r);else{"function"==typeof e?.toBSON&&(e=e.toBSON());for(const o of Object.keys(e))n+=Be(o,e[o],t,!1,r)}return n}function Be(e,t,r=!1,s=!1,a=!1){switch("function"==typeof t?.toBSON&&(t=t.toBSON()),typeof t){case"string":return 1+C.utf8ByteLength(e)+1+4+C.utf8ByteLength(t)+1;case"number":return Math.floor(t)===t&&t>=l&&t<=u&&t>=i&&t<=o?(null!=e?C.utf8ByteLength(e)+1:0)+5:(null!=e?C.utf8ByteLength(e)+1:0)+9;case"undefined":return s||!a?(null!=e?C.utf8ByteLength(e)+1:0)+1:0;case"boolean":return(null!=e?C.utf8ByteLength(e)+1:0)+2;case"object":if(null!=t&&"string"==typeof t._bsontype&&t[Symbol.for("@@mdb.bson.version")]!==n)throw new BSONVersionError;if(null==t||"MinKey"===t._bsontype||"MaxKey"===t._bsontype)return(null!=e?C.utf8ByteLength(e)+1:0)+1;if("ObjectId"===t._bsontype)return(null!=e?C.utf8ByteLength(e)+1:0)+13;if(t instanceof Date||Z(t))return(null!=e?C.utf8ByteLength(e)+1:0)+9;if(ArrayBuffer.isView(t)||t instanceof ArrayBuffer||q(t))return(null!=e?C.utf8ByteLength(e)+1:0)+6+t.byteLength;if("Long"===t._bsontype||"Double"===t._bsontype||"Timestamp"===t._bsontype)return(null!=e?C.utf8ByteLength(e)+1:0)+9;if("Decimal128"===t._bsontype)return(null!=e?C.utf8ByteLength(e)+1:0)+17;if("Code"===t._bsontype)return null!=t.scope&&Object.keys(t.scope).length>0?(null!=e?C.utf8ByteLength(e)+1:0)+1+4+4+C.utf8ByteLength(t.code.toString())+1+we(t.scope,r,a):(null!=e?C.utf8ByteLength(e)+1:0)+1+4+C.utf8ByteLength(t.code.toString())+1;if("Binary"===t._bsontype){const r=t;return r.sub_type===Binary.SUBTYPE_BYTE_ARRAY?(null!=e?C.utf8ByteLength(e)+1:0)+(r.position+1+4+1+4):(null!=e?C.utf8ByteLength(e)+1:0)+(r.position+1+4+1)}if("Symbol"===t._bsontype)return(null!=e?C.utf8ByteLength(e)+1:0)+C.utf8ByteLength(t.value)+4+1+1;if("DBRef"===t._bsontype){const n=Object.assign({$ref:t.collection,$id:t.oid},t.fields);return null!=t.db&&(n.$db=t.db),(null!=e?C.utf8ByteLength(e)+1:0)+1+we(n,r,a)}return t instanceof RegExp||K(t)?(null!=e?C.utf8ByteLength(e)+1:0)+1+C.utf8ByteLength(t.source)+1+(t.global?1:0)+(t.ignoreCase?1:0)+(t.multiline?1:0)+1:"BSONRegExp"===t._bsontype?(null!=e?C.utf8ByteLength(e)+1:0)+1+C.utf8ByteLength(t.pattern)+1+C.utf8ByteLength(t.options)+1:(null!=e?C.utf8ByteLength(e)+1:0)+we(t,r,a)+1;case"function":if(r)return(null!=e?C.utf8ByteLength(e)+1:0)+1+4+C.utf8ByteLength(t.toString())+1}return 0}ObjectId.index=Math.floor(16777215*Math.random());class BSONRegExp extends BSONValue{get _bsontype(){return"BSONRegExp"}constructor(e,t){if(super(),this.pattern=e,this.options=(t??"").split("").sort().join(""),-1!==this.pattern.indexOf("\0"))throw new BSONError(`BSON Regex patterns cannot contain null bytes, found: ${JSON.stringify(this.pattern)}`);if(-1!==this.options.indexOf("\0"))throw new BSONError(`BSON Regex options cannot contain null bytes, found: ${JSON.stringify(this.options)}`);for(let e=0;e<this.options.length;e++)if("i"!==this.options[e]&&"m"!==this.options[e]&&"x"!==this.options[e]&&"l"!==this.options[e]&&"s"!==this.options[e]&&"u"!==this.options[e])throw new BSONError(`The regular expression option [${this.options[e]}] is not supported`)}static parseOptions(e){return e?e.split("").sort().join(""):""}toExtendedJSON(e){return(e=e||{}).legacy?{$regex:this.pattern,$options:this.options}:{$regularExpression:{pattern:this.pattern,options:this.options}}}static fromExtendedJSON(e){if("$regex"in e){if("string"==typeof e.$regex)return new BSONRegExp(e.$regex,BSONRegExp.parseOptions(e.$options));if("BSONRegExp"===e.$regex._bsontype)return e}if("$regularExpression"in e)return new BSONRegExp(e.$regularExpression.pattern,BSONRegExp.parseOptions(e.$regularExpression.options));throw new BSONError(`Unexpected BSONRegExp EJSON object form: ${JSON.stringify(e)}`)}[Symbol.for("nodejs.util.inspect.custom")](){return this.inspect()}inspect(){return`new BSONRegExp(${JSON.stringify(this.pattern)}, ${JSON.stringify(this.options)})`}}class BSONSymbol extends BSONValue{get _bsontype(){return"BSONSymbol"}constructor(e){super(),this.value=e}valueOf(){return this.value}toString(){return this.value}inspect(){return`new BSONSymbol("${this.value}")`}toJSON(){return this.value}toExtendedJSON(){return{$symbol:this.value}}static fromExtendedJSON(e){return new BSONSymbol(e.$symbol)}[Symbol.for("nodejs.util.inspect.custom")](){return this.inspect()}}const Se=Long;class Timestamp extends Se{get _bsontype(){return"Timestamp"}constructor(e){if(null==e)super(0,0,!0);else if("bigint"==typeof e)super(e,!0);else if(Long.isLong(e))super(e.low,e.high,!0);else{if("object"!=typeof e||!("t"in e)||!("i"in e))throw new BSONError("A Timestamp can only be constructed with: bigint, Long, or { t: number; i: number }");if("number"!=typeof e.t&&("object"!=typeof e.t||"Int32"!==e.t._bsontype))throw new BSONError("Timestamp constructed from { t, i } must provide t as a number");if("number"!=typeof e.i&&("object"!=typeof e.i||"Int32"!==e.i._bsontype))throw new BSONError("Timestamp constructed from { t, i } must provide i as a number");if(e.t<0)throw new BSONError("Timestamp constructed from { t, i } must provide a positive t");if(e.i<0)throw new BSONError("Timestamp constructed from { t, i } must provide a positive i");if(e.t>4294967295)throw new BSONError("Timestamp constructed from { t, i } must provide t equal or less than uint32 max");if(e.i>4294967295)throw new BSONError("Timestamp constructed from { t, i } must provide i equal or less than uint32 max");super(e.i.valueOf(),e.t.valueOf(),!0)}}toJSON(){return{$timestamp:this.toString()}}static fromInt(e){return new Timestamp(Long.fromInt(e,!0))}static fromNumber(e){return new Timestamp(Long.fromNumber(e,!0))}static fromBits(e,t){return new Timestamp({i:e,t})}static fromString(e,t){return new Timestamp(Long.fromString(e,!0,t))}toExtendedJSON(){return{$timestamp:{t:this.high>>>0,i:this.low>>>0}}}static fromExtendedJSON(e){const t=Long.isLong(e.$timestamp.i)?e.$timestamp.i.getLowBitsUnsigned():e.$timestamp.i,r=Long.isLong(e.$timestamp.t)?e.$timestamp.t.getLowBitsUnsigned():e.$timestamp.t;return new Timestamp({t:r,i:t})}[Symbol.for("nodejs.util.inspect.custom")](){return this.inspect()}inspect(){return`new Timestamp({ t: ${this.getHighBits()}, i: ${this.getLowBits()} })`}}Timestamp.MAX_VALUE=Long.MAX_UNSIGNED_VALUE;const Oe=128,Ne=192,Ee=224,xe=240,Le=248,ve=192,_e=224,Ie=240,Ue=128;function $e(e,t,r){let n=0;for(let o=t;o<r;o+=1){const t=e[o];if(n){if((t&Ne)!==Ue)return!1;n-=1}else if(t&Oe)if((t&Ee)===ve)n=1;else if((t&xe)===_e)n=2;else{if((t&Le)!==Ie)return!1;n=3}}return!n}const je=Long.fromNumber(u),Te=Long.fromNumber(l);function Re(e,t,r){const n=(t=null==t?{}:t)&&t.index?t.index:0,o=e[n]|e[n+1]<<8|e[n+2]<<16|e[n+3]<<24;if(o<5)throw new BSONError(`bson size must be >= 5, is ${o}`);if(t.allowObjectSmallerThanBufferSize&&e.length<o)throw new BSONError(`buffer length ${e.length} must be >= bson size ${o}`);if(!t.allowObjectSmallerThanBufferSize&&e.length!==o)throw new BSONError(`buffer length ${e.length} must === bson size ${o}`);if(o+n>e.byteLength)throw new BSONError(`(bson size ${o} + options.index ${n} must be <= buffer length ${e.byteLength})`);if(0!==e[n+o-1])throw new BSONError("One object, sized correctly, with a spot for an EOO, but the EOO isn't 0x00");return Ae(e,n,t,r)}const De=/^\$ref$|^\$id$|^\$db$/;function Ae(e,t,r,n=!1){const o=null==r.fieldsAsRaw?null:r.fieldsAsRaw,i=null!=r.raw&&r.raw,s="boolean"==typeof r.bsonRegExp&&r.bsonRegExp,a=r.promoteBuffers??!1,u=r.promoteLongs??!0,l=r.promoteValues??!0,$=r.useBigInt64??!1;if($&&!l)throw new BSONError("Must either request bigint or Long for int64 deserialization");if($&&!u)throw new BSONError("Must either request bigint or Long for int64 deserialization");const T=null==r.validation?{utf8:!0}:r.validation;let R,D=!0;const A=new Set,M=T.utf8;if("boolean"==typeof M)R=M;else{D=!1;const e=Object.keys(M).map((function(e){return M[e]}));if(0===e.length)throw new BSONError("UTF-8 validation setting cannot be empty");if("boolean"!=typeof e[0])throw new BSONError("Invalid UTF-8 validation option, must specify boolean values");if(R=e[0],!e.every((e=>e===R)))throw new BSONError("Invalid UTF-8 validation option - keys must be all true or all false")}if(!D)for(const e of Object.keys(M))A.add(e);const P=t;if(e.length<5)throw new BSONError("corrupt bson message < 5 bytes long");const z=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24;if(z<5||z>e.length)throw new BSONError("corrupt bson message");const F=n?[]:{};let V=0,J=!n&&null;const k=new DataView(e.buffer,e.byteOffset,e.byteLength);for(;;){const M=e[t++];if(0===M)break;let P=t;for(;0!==e[P]&&P<e.length;)P++;if(P>=e.byteLength)throw new BSONError("Bad BSON Document: illegal CString");const z=n?V++:C.toUTF8(e.subarray(t,P));let q,H=!0;if(H=D||A.has(z)?R:!R,!1!==J&&"$"===z[0]&&(J=De.test(z)),t=P+1,M===c){const r=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24;if(r<=0||r>e.length-t||0!==e[t+r-1])throw new BSONError("bad string length in bson");q=Me(e,t,t+r-1,H),t+=r}else if(M===m){const r=C.allocate(12);r.set(e.subarray(t,t+12)),q=new ObjectId(r),t+=12}else if(M===x&&!1===l)q=new Int32(e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24);else if(M===x)q=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24;else if(M===f&&!1===l)q=new Double(k.getFloat64(t,!0)),t+=8;else if(M===f)q=k.getFloat64(t,!0),t+=8;else if(M===b){const r=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24,n=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24;q=new Date(new Long(r,n).toNumber())}else if(M===y){if(0!==e[t]&&1!==e[t])throw new BSONError("illegal boolean type value");q=1===e[t++]}else if(M===h){const n=t,o=e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24;if(o<=0||o>e.length-t)throw new BSONError("bad embedded document length in bson");if(i)q=e.slice(t,t+o);else{let t=r;D||(t={...r,validation:{utf8:H}}),q=Ae(e,n,t,!1)}t+=o}else if(M===g){const n=t,i=e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24;let s=r;const a=t+i;if(o&&o[z]&&(s={...r,raw:!0}),D||(s={...s,validation:{utf8:H}}),q=Ae(e,n,s,!0),0!==e[(t+=i)-1])throw new BSONError("invalid array terminator byte");if(t!==a)throw new BSONError("corrupted array bson")}else if(M===p)q=void 0;else if(M===w)q=null;else if(M===v){const r=BSONDataView.fromUint8Array(e.subarray(t,t+8)),n=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24,o=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24,i=new Long(n,o);q=$?r.getBigInt64(0,!0):u&&!0===l&&i.lessThanOrEqual(je)&&i.greaterThanOrEqual(Te)?i.toNumber():i}else if(M===_){const r=C.allocate(16);r.set(e.subarray(t,t+16),0),t+=16,q=new Decimal128(r)}else if(M===d){let r=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24;const n=r,o=e[t++];if(r<0)throw new BSONError("Negative binary type element size found");if(r>e.byteLength)throw new BSONError("Binary type size larger than document size");if(null!=e.slice){if(o===Binary.SUBTYPE_BYTE_ARRAY){if(r=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24,r<0)throw new BSONError("Negative binary type element size found for subtype 0x02");if(r>n-4)throw new BSONError("Binary type with subtype 0x02 contains too long binary size");if(r<n-4)throw new BSONError("Binary type with subtype 0x02 contains too short binary size")}a&&l?q=C.toLocalBufferType(e.slice(t,t+r)):(q=new Binary(e.slice(t,t+r),o),o===j&&(q=q.toUUID()))}else{const i=C.allocate(r);if(o===Binary.SUBTYPE_BYTE_ARRAY){if(r=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24,r<0)throw new BSONError("Negative binary type element size found for subtype 0x02");if(r>n-4)throw new BSONError("Binary type with subtype 0x02 contains too long binary size");if(r<n-4)throw new BSONError("Binary type with subtype 0x02 contains too short binary size")}for(P=0;P<r;P++)i[P]=e[t+P];q=a&&l?i:o===j?new Binary(e.slice(t,t+r),o).toUUID():new Binary(e.slice(t,t+r),o)}t+=r}else if(M===B&&!1===s){for(P=t;0!==e[P]&&P<e.length;)P++;if(P>=e.length)throw new BSONError("Bad BSON Document: illegal CString");const r=C.toUTF8(e.subarray(t,P));for(P=t=P+1;0!==e[P]&&P<e.length;)P++;if(P>=e.length)throw new BSONError("Bad BSON Document: illegal CString");const n=C.toUTF8(e.subarray(t,P));t=P+1;const o=new Array(n.length);for(P=0;P<n.length;P++)switch(n[P]){case"m":o[P]="m";break;case"s":o[P]="g";break;case"i":o[P]="i"}q=new RegExp(r,o.join(""))}else if(M===B&&!0===s){for(P=t;0!==e[P]&&P<e.length;)P++;if(P>=e.length)throw new BSONError("Bad BSON Document: illegal CString");const r=C.toUTF8(e.subarray(t,P));for(P=t=P+1;0!==e[P]&&P<e.length;)P++;if(P>=e.length)throw new BSONError("Bad BSON Document: illegal CString");const n=C.toUTF8(e.subarray(t,P));t=P+1,q=new BSONRegExp(r,n)}else if(M===N){const r=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24;if(r<=0||r>e.length-t||0!==e[t+r-1])throw new BSONError("bad string length in bson");const n=Me(e,t,t+r-1,H);q=l?n:new BSONSymbol(n),t+=r}else if(M===L){const r=e[t++]+256*e[t++]+65536*e[t++]+e[t++]*(1<<24),n=e[t++]+256*e[t++]+65536*e[t++]+e[t++]*(1<<24);q=new Timestamp({i:r,t:n})}else if(M===I)q=new MinKey;else if(M===U)q=new MaxKey;else if(M===O){const r=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24;if(r<=0||r>e.length-t||0!==e[t+r-1])throw new BSONError("bad string length in bson");const n=Me(e,t,t+r-1,H);q=new Code(n),t+=r}else if(M===E){const n=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24;if(n<13)throw new BSONError("code_w_scope total size shorter minimum expected length");const o=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24;if(o<=0||o>e.length-t||0!==e[t+o-1])throw new BSONError("bad string length in bson");const i=Me(e,t,t+o-1,H),s=t+=o,a=e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24,u=Ae(e,s,r,!1);if(t+=a,n<8+a+o)throw new BSONError("code_w_scope total size is too short, truncating scope");if(n>8+a+o)throw new BSONError("code_w_scope total size is too long, clips outer document");q=new Code(i,u)}else{if(M!==S)throw new BSONError(`Detected unknown BSON type ${M.toString(16)} for fieldname "${z}"`);{const r=e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24;if(r<=0||r>e.length-t||0!==e[t+r-1])throw new BSONError("bad string length in bson");if(null!=T&&T.utf8&&!$e(e,t,t+r-1))throw new BSONError("Invalid UTF-8 string in BSON document");const n=C.toUTF8(e.subarray(t,t+r-1));t+=r;const o=C.allocate(12);o.set(e.subarray(t,t+12),0);const i=new ObjectId(o);t+=12,q=new DBRef(n,i)}}"__proto__"===z?Object.defineProperty(F,z,{value:q,writable:!0,enumerable:!0,configurable:!0}):F[z]=q}if(z!==t-P){if(n)throw new BSONError("corrupt array bson");throw new BSONError("corrupt object bson")}if(!J)return F;if(W(F)){const e=Object.assign({},F);return delete e.$ref,delete e.$id,delete e.$db,new DBRef(F.$ref,F.$id,F.$db,e)}return F}function Me(e,t,r,n){const o=C.toUTF8(e.subarray(t,r));if(n)for(let n=0;n<o.length;n++)if(65533===o.charCodeAt(n)){if(!$e(e,t,r))throw new BSONError("Invalid UTF-8 string in BSON document");break}return o}const Pe=/\x00/,ze=new Set(["$db","$ref","$id","$clusterTime"]);function Ce(e,t,r,n){e[n++]=c,e[(n=n+C.encodeUTF8Into(e,t,n)+1)-1]=0;const o=C.encodeUTF8Into(e,r,n+4);return e[n+3]=o+1>>24&255,e[n+2]=o+1>>16&255,e[n+1]=o+1>>8&255,e[n]=o+1&255,n=n+4+o,e[n++]=0,n}const Fe=new DataView(new ArrayBuffer(8),0,8),Ve=new Uint8Array(Fe.buffer,0,4),Je=new Uint8Array(Fe.buffer,0,8);function ke(e,t,r,n){const s=!Object.is(r,-0)&&Number.isSafeInteger(r)&&r<=o&&r>=i?x:f;s===x?Fe.setInt32(0,r,!0):Fe.setFloat64(0,r,!0);const a=s===x?Ve:Je;return e[n++]=s,n+=C.encodeUTF8Into(e,t,n),e[n++]=0,e.set(a,n),n+=a.byteLength}function qe(e,t,r,n){return e[n++]=v,n+=C.encodeUTF8Into(e,t,n),e[n++]=0,Fe.setBigInt64(0,r,!0),e.set(Je,n),n+=Je.byteLength}function He(e,t,r,n){return e[n++]=w,n+=C.encodeUTF8Into(e,t,n),e[n++]=0,n}function Ke(e,t,r,n){return e[n++]=y,n+=C.encodeUTF8Into(e,t,n),e[n++]=0,e[n++]=r?1:0,n}function Ye(e,t,r,n){e[n++]=b,n+=C.encodeUTF8Into(e,t,n),e[n++]=0;const o=Long.fromNumber(r.getTime()),i=o.getLowBits(),s=o.getHighBits();return e[n++]=255&i,e[n++]=i>>8&255,e[n++]=i>>16&255,e[n++]=i>>24&255,e[n++]=255&s,e[n++]=s>>8&255,e[n++]=s>>16&255,e[n++]=s>>24&255,n}function Ze(e,t,r,n){if(e[n++]=B,n+=C.encodeUTF8Into(e,t,n),e[n++]=0,r.source&&null!=r.source.match(Pe))throw new BSONError("value "+r.source+" must not contain null bytes");return n+=C.encodeUTF8Into(e,r.source,n),e[n++]=0,r.ignoreCase&&(e[n++]=105),r.global&&(e[n++]=115),r.multiline&&(e[n++]=109),e[n++]=0,n}function We(e,t,r,n){if(e[n++]=B,n+=C.encodeUTF8Into(e,t,n),e[n++]=0,null!=r.pattern.match(Pe))throw new BSONError("pattern "+r.pattern+" must not contain null bytes");n+=C.encodeUTF8Into(e,r.pattern,n),e[n++]=0;const o=r.options.split("").sort().join("");return n+=C.encodeUTF8Into(e,o,n),e[n++]=0,n}function Ge(e,t,r,n){return null===r?e[n++]=w:"MinKey"===r._bsontype?e[n++]=I:e[n++]=U,n+=C.encodeUTF8Into(e,t,n),e[n++]=0,n}function Xe(e,t,r,n){if(e[n++]=m,n+=C.encodeUTF8Into(e,t,n),e[n++]=0,!H(r.id))throw new BSONError("object ["+JSON.stringify(r)+"] is not a valid ObjectId");return e.set(r.id.subarray(0,12),n),n+12}function Qe(e,t,r,n){e[n++]=d,n+=C.encodeUTF8Into(e,t,n),e[n++]=0;const o=r.length;return e[n++]=255&o,e[n++]=o>>8&255,e[n++]=o>>16&255,e[n++]=o>>24&255,e[n++]=$,e.set(r,n),n+=o}function et(e,t,r,n,o,i,s,a,u){if(u.has(r))throw new BSONError("Cannot convert circular structure to BSON");u.add(r),e[n++]=Array.isArray(r)?g:h,n+=C.encodeUTF8Into(e,t,n),e[n++]=0;const l=ft(e,r,o,n,i+1,s,a,u);return u.delete(r),l}function tt(e,t,r,n){return e[n++]=_,n+=C.encodeUTF8Into(e,t,n),e[n++]=0,e.set(r.bytes.subarray(0,16),n),n+16}function rt(e,t,r,n){e[n++]="Long"===r._bsontype?v:L,n+=C.encodeUTF8Into(e,t,n),e[n++]=0;const o=r.getLowBits(),i=r.getHighBits();return e[n++]=255&o,e[n++]=o>>8&255,e[n++]=o>>16&255,e[n++]=o>>24&255,e[n++]=255&i,e[n++]=i>>8&255,e[n++]=i>>16&255,e[n++]=i>>24&255,n}function nt(e,t,r,n){return r=r.valueOf(),e[n++]=x,n+=C.encodeUTF8Into(e,t,n),e[n++]=0,e[n++]=255&r,e[n++]=r>>8&255,e[n++]=r>>16&255,e[n++]=r>>24&255,n}function ot(e,t,r,n){return e[n++]=f,n+=C.encodeUTF8Into(e,t,n),e[n++]=0,Fe.setFloat64(0,r.value,!0),e.set(Je,n),n+=8}function it(e,t,r,n){e[n++]=O,n+=C.encodeUTF8Into(e,t,n),e[n++]=0;const o=r.toString(),i=C.encodeUTF8Into(e,o,n+4)+1;return e[n]=255&i,e[n+1]=i>>8&255,e[n+2]=i>>16&255,e[n+3]=i>>24&255,n=n+4+i-1,e[n++]=0,n}function st(e,t,r,n,o=!1,i=0,s=!1,a=!0,u){if(r.scope&&"object"==typeof r.scope){e[n++]=E,n+=C.encodeUTF8Into(e,t,n),e[n++]=0;let l=n;const f=r.code;n+=4;const c=C.encodeUTF8Into(e,f,n+4)+1;e[n]=255&c,e[n+1]=c>>8&255,e[n+2]=c>>16&255,e[n+3]=c>>24&255,e[n+4+c-1]=0,n=n+c+4;const h=ft(e,r.scope,o,n,i+1,s,a,u);n=h-1;const g=h-l;e[l++]=255&g,e[l++]=g>>8&255,e[l++]=g>>16&255,e[l++]=g>>24&255,e[n++]=0}else{e[n++]=O,n+=C.encodeUTF8Into(e,t,n),e[n++]=0;const o=r.code.toString(),i=C.encodeUTF8Into(e,o,n+4)+1;e[n]=255&i,e[n+1]=i>>8&255,e[n+2]=i>>16&255,e[n+3]=i>>24&255,n=n+4+i-1,e[n++]=0}return n}function at(e,t,r,n){e[n++]=d,n+=C.encodeUTF8Into(e,t,n),e[n++]=0;const o=r.buffer;let i=r.position;return r.sub_type===Binary.SUBTYPE_BYTE_ARRAY&&(i+=4),e[n++]=255&i,e[n++]=i>>8&255,e[n++]=i>>16&255,e[n++]=i>>24&255,e[n++]=r.sub_type,r.sub_type===Binary.SUBTYPE_BYTE_ARRAY&&(i-=4,e[n++]=255&i,e[n++]=i>>8&255,e[n++]=i>>16&255,e[n++]=i>>24&255),e.set(o,n),n+=r.position}function ut(e,t,r,n){e[n++]=N,n+=C.encodeUTF8Into(e,t,n),e[n++]=0;const o=C.encodeUTF8Into(e,r.value,n+4)+1;return e[n]=255&o,e[n+1]=o>>8&255,e[n+2]=o>>16&255,e[n+3]=o>>24&255,n=n+4+o-1,e[n++]=0,n}function lt(e,t,r,n,o,i,s){e[n++]=h,n+=C.encodeUTF8Into(e,t,n),e[n++]=0;let a=n,u={$ref:r.collection||r.namespace,$id:r.oid};null!=r.db&&(u.$db=r.db),u=Object.assign(u,r.fields);const l=ft(e,u,!1,n,o+1,i,!0,s),f=l-a;return e[a++]=255&f,e[a++]=f>>8&255,e[a++]=f>>16&255,e[a++]=f>>24&255,l}function ft(e,t,r,o,i,s,a,u){if(null==u){if(null==t)return e[0]=5,e[1]=0,e[2]=0,e[3]=0,e[4]=0,5;if(Array.isArray(t))throw new BSONError("serialize does not support an array as the root input");if("object"!=typeof t)throw new BSONError("serialize does not support non-object as the root input");if("_bsontype"in t&&"string"==typeof t._bsontype)throw new BSONError("BSON types cannot be serialized as a document");if(Z(t)||K(t)||H(t)||q(t))throw new BSONError("date, regexp, typedarray, and arraybuffer cannot be BSON documents");u=new Set}u.add(t);let l=o+4;if(Array.isArray(t))for(let o=0;o<t.length;o++){const f=`${o}`;let c=t[o];if("function"==typeof c?.toBSON&&(c=c.toBSON()),"string"==typeof c)l=Ce(e,f,c,l);else if("number"==typeof c)l=ke(e,f,c,l);else if("bigint"==typeof c)l=qe(e,f,c,l);else if("boolean"==typeof c)l=Ke(e,f,c,l);else if(c instanceof Date||Z(c))l=Ye(e,f,c,l);else if(void 0===c)l=He(e,f,0,l);else if(null===c)l=He(e,f,0,l);else if(H(c))l=Qe(e,f,c,l);else if(c instanceof RegExp||K(c))l=Ze(e,f,c,l);else if("object"==typeof c&&null==c._bsontype)l=et(e,f,c,l,r,i,s,a,u);else{if("object"==typeof c&&c[Symbol.for("@@mdb.bson.version")]!==n)throw new BSONVersionError;if("ObjectId"===c._bsontype)l=Xe(e,f,c,l);else if("Decimal128"===c._bsontype)l=tt(e,f,c,l);else if("Long"===c._bsontype||"Timestamp"===c._bsontype)l=rt(e,f,c,l);else if("Double"===c._bsontype)l=ot(e,f,c,l);else if("function"==typeof c&&s)l=it(e,f,c,l);else if("Code"===c._bsontype)l=st(e,f,c,l,r,i,s,a,u);else if("Binary"===c._bsontype)l=at(e,f,c,l);else if("BSONSymbol"===c._bsontype)l=ut(e,f,c,l);else if("DBRef"===c._bsontype)l=lt(e,f,c,l,i,s,u);else if("BSONRegExp"===c._bsontype)l=We(e,f,c,l);else if("Int32"===c._bsontype)l=nt(e,f,c,l);else if("MinKey"===c._bsontype||"MaxKey"===c._bsontype)l=Ge(e,f,c,l);else if(void 0!==c._bsontype)throw new BSONError(`Unrecognized or invalid _bsontype: ${String(c._bsontype)}`)}}else if(t instanceof Map||Y(t)){const o=t.entries();let f=!1;for(;!f;){const t=o.next();if(f=!!t.done,f)continue;const c=t.value[0];let h=t.value[1];"function"==typeof h?.toBSON&&(h=h.toBSON());const g=typeof h;if("string"==typeof c&&!ze.has(c)){if(null!=c.match(Pe))throw new BSONError("key "+c+" must not contain null bytes");if(r){if("$"===c[0])throw new BSONError("key "+c+" must not start with '$'");if(~c.indexOf("."))throw new BSONError("key "+c+" must not contain '.'")}}if("string"===g)l=Ce(e,c,h,l);else if("number"===g)l=ke(e,c,h,l);else if("bigint"===g)l=qe(e,c,h,l);else if("boolean"===g)l=Ke(e,c,h,l);else if(h instanceof Date||Z(h))l=Ye(e,c,h,l);else if(null===h||void 0===h&&!1===a)l=He(e,c,0,l);else if(H(h))l=Qe(e,c,h,l);else if(h instanceof RegExp||K(h))l=Ze(e,c,h,l);else if("object"===g&&null==h._bsontype)l=et(e,c,h,l,r,i,s,a,u);else{if("object"==typeof h&&h[Symbol.for("@@mdb.bson.version")]!==n)throw new BSONVersionError;if("ObjectId"===h._bsontype)l=Xe(e,c,h,l);else if("object"===g&&"Decimal128"===h._bsontype)l=tt(e,c,h,l);else if("Long"===h._bsontype||"Timestamp"===h._bsontype)l=rt(e,c,h,l);else if("Double"===h._bsontype)l=ot(e,c,h,l);else if("Code"===h._bsontype)l=st(e,c,h,l,r,i,s,a,u);else if("function"==typeof h&&s)l=it(e,c,h,l);else if("Binary"===h._bsontype)l=at(e,c,h,l);else if("BSONSymbol"===h._bsontype)l=ut(e,c,h,l);else if("DBRef"===h._bsontype)l=lt(e,c,h,l,i,s,u);else if("BSONRegExp"===h._bsontype)l=We(e,c,h,l);else if("Int32"===h._bsontype)l=nt(e,c,h,l);else if("MinKey"===h._bsontype||"MaxKey"===h._bsontype)l=Ge(e,c,h,l);else if(void 0!==h._bsontype)throw new BSONError(`Unrecognized or invalid _bsontype: ${String(h._bsontype)}`)}}}else{if("function"==typeof t?.toBSON&&null!=(t=t.toBSON())&&"object"!=typeof t)throw new BSONError("toBSON function did not return an object");for(const o of Object.keys(t)){let f=t[o];"function"==typeof f?.toBSON&&(f=f.toBSON());const c=typeof f;if("string"==typeof o&&!ze.has(o)){if(null!=o.match(Pe))throw new BSONError("key "+o+" must not contain null bytes");if(r){if("$"===o[0])throw new BSONError("key "+o+" must not start with '$'");if(~o.indexOf("."))throw new BSONError("key "+o+" must not contain '.'")}}if("string"===c)l=Ce(e,o,f,l);else if("number"===c)l=ke(e,o,f,l);else if("bigint"===c)l=qe(e,o,f,l);else if("boolean"===c)l=Ke(e,o,f,l);else if(f instanceof Date||Z(f))l=Ye(e,o,f,l);else if(void 0===f)!1===a&&(l=He(e,o,0,l));else if(null===f)l=He(e,o,0,l);else if(H(f))l=Qe(e,o,f,l);else if(f instanceof RegExp||K(f))l=Ze(e,o,f,l);else if("object"===c&&null==f._bsontype)l=et(e,o,f,l,r,i,s,a,u);else{if("object"==typeof f&&f[Symbol.for("@@mdb.bson.version")]!==n)throw new BSONVersionError;if("ObjectId"===f._bsontype)l=Xe(e,o,f,l);else if("object"===c&&"Decimal128"===f._bsontype)l=tt(e,o,f,l);else if("Long"===f._bsontype||"Timestamp"===f._bsontype)l=rt(e,o,f,l);else if("Double"===f._bsontype)l=ot(e,o,f,l);else if("Code"===f._bsontype)l=st(e,o,f,l,r,i,s,a,u);else if("function"==typeof f&&s)l=it(e,o,f,l);else if("Binary"===f._bsontype)l=at(e,o,f,l);else if("BSONSymbol"===f._bsontype)l=ut(e,o,f,l);else if("DBRef"===f._bsontype)l=lt(e,o,f,l,i,s,u);else if("BSONRegExp"===f._bsontype)l=We(e,o,f,l);else if("Int32"===f._bsontype)l=nt(e,o,f,l);else if("MinKey"===f._bsontype||"MaxKey"===f._bsontype)l=Ge(e,o,f,l);else if(void 0!==f._bsontype)throw new BSONError(`Unrecognized or invalid _bsontype: ${String(f._bsontype)}`)}}}u.delete(t),e[l++]=0;const f=l-o;return e[o++]=255&f,e[o++]=f>>8&255,e[o++]=f>>16&255,e[o++]=f>>24&255,l}const ct={$oid:ObjectId,$binary:Binary,$uuid:Binary,$symbol:BSONSymbol,$numberInt:Int32,$numberDecimal:Decimal128,$numberDouble:Double,$numberLong:Long,$minKey:MinKey,$maxKey:MaxKey,$regex:BSONRegExp,$regularExpression:BSONRegExp,$timestamp:Timestamp};function ht(e,t={}){if("number"==typeof e){const r=e<=o&&e>=i,n=e<=s&&e>=a;if(t.relaxed||t.legacy)return e;if(Number.isInteger(e)&&!Object.is(e,-0)){if(r)return new Int32(e);if(n)return t.useBigInt64?BigInt(e):Long.fromNumber(e)}return new Double(e)}if(null==e||"object"!=typeof e)return e;if(e.$undefined)return null;const r=Object.keys(e).filter((t=>t.startsWith("$")&&null!=e[t]));for(let n=0;n<r.length;n++){const o=ct[r[n]];if(o)return o.fromExtendedJSON(e,t)}if(null!=e.$date){const r=e.$date,n=new Date;if(t.legacy)if("number"==typeof r)n.setTime(r);else if("string"==typeof r)n.setTime(Date.parse(r));else{if("bigint"!=typeof r)throw new BSONRuntimeError("Unrecognized type for EJSON date: "+typeof r);n.setTime(Number(r))}else if("string"==typeof r)n.setTime(Date.parse(r));else if(Long.isLong(r))n.setTime(r.toNumber());else if("number"==typeof r&&t.relaxed)n.setTime(r);else{if("bigint"!=typeof r)throw new BSONRuntimeError("Unrecognized type for EJSON date: "+typeof r);n.setTime(Number(r))}return n}if(null!=e.$code){const t=Object.assign({},e);return e.$scope&&(t.$scope=ht(e.$scope)),Code.fromExtendedJSON(e)}if(W(e)||e.$dbPointer){const t=e.$ref?e:e.$dbPointer;if(t instanceof DBRef)return t;const r=Object.keys(t).filter((e=>e.startsWith("$")));let n=!0;if(r.forEach((e=>{-1===["$ref","$id","$db"].indexOf(e)&&(n=!1)})),n)return DBRef.fromExtendedJSON(t)}return e}function gt(e){const t=e.toISOString();return 0!==e.getUTCMilliseconds()?t:t.slice(0,-5)+"Z"}function dt(e,t){if(e instanceof Map||Y(e)){const r=Object.create(null);for(const[t,n]of e){if("string"!=typeof t)throw new BSONError("Can only serialize maps with string keys");r[t]=n}return dt(r,t)}if(("object"==typeof e||"function"==typeof e)&&null!==e){const r=t.seenObjects.findIndex((t=>t.obj===e));if(-1!==r){const e=t.seenObjects.map((e=>e.propertyName)),n=e.slice(0,r).map((e=>`${e} -> `)).join(""),o=e[r],i=" -> "+e.slice(r+1,e.length-1).map((e=>`${e} -> `)).join(""),s=e[e.length-1],a=" ".repeat(n.length+o.length/2),u="-".repeat(i.length+(o.length+s.length)/2-1);throw new BSONError(`Converting circular structure to EJSON:\n ${n}${o}${i}${s}\n ${a}\\${u}/`)}t.seenObjects[t.seenObjects.length-1].obj=e}if(Array.isArray(e))return function(e,t){return e.map(((e,r)=>{t.seenObjects.push({propertyName:`index ${r}`,obj:null});try{return dt(e,t)}finally{t.seenObjects.pop()}}))}(e,t);if(void 0===e)return null;if(e instanceof Date||Z(e)){const r=e.getTime(),n=r>-1&&r<2534023188e5;return t.legacy?t.relaxed&&n?{$date:e.getTime()}:{$date:gt(e)}:t.relaxed&&n?{$date:gt(e)}:{$date:{$numberLong:e.getTime().toString()}}}if(!("number"!=typeof e||t.relaxed&&isFinite(e))){if(Number.isInteger(e)&&!Object.is(e,-0)){if(e>=i&&e<=o)return{$numberInt:e.toString()};if(e>=a&&e<=s)return{$numberLong:e.toString()}}return{$numberDouble:Object.is(e,-0)?"-0.0":e.toString()}}if("bigint"==typeof e)return t.relaxed?Number(BigInt.asIntN(64,e)):{$numberLong:BigInt.asIntN(64,e).toString()};if(e instanceof RegExp||K(e)){let r=e.flags;if(void 0===r){const t=e.toString().match(/[gimuy]*$/);t&&(r=t[0])}return new BSONRegExp(e.source,r).toExtendedJSON(t)}return null!=e&&"object"==typeof e?function(e,t){if(null==e||"object"!=typeof e)throw new BSONError("not an object instance");const r=e._bsontype;if(void 0===r){const r={};for(const n of Object.keys(e)){t.seenObjects.push({propertyName:n,obj:null});try{const o=dt(e[n],t);"__proto__"===n?Object.defineProperty(r,n,{value:o,writable:!0,enumerable:!0,configurable:!0}):r[n]=o}finally{t.seenObjects.pop()}}return r}if(null!=e&&"object"==typeof e&&"string"==typeof e._bsontype&&e[Symbol.for("@@mdb.bson.version")]!==n)throw new BSONVersionError;if(function(e){return null!=e&&"object"==typeof e&&"_bsontype"in e&&"string"==typeof e._bsontype}(e)){let n=e;if("function"!=typeof n.toExtendedJSON){const t=pt[e._bsontype];if(!t)throw new BSONError("Unrecognized or invalid _bsontype: "+e._bsontype);n=t(n)}return"Code"===r&&n.scope?n=new Code(n.code,dt(n.scope,t)):"DBRef"===r&&n.oid&&(n=new DBRef(dt(n.collection,t),dt(n.oid,t),dt(n.db,t),dt(n.fields,t))),n.toExtendedJSON(t)}throw new BSONError("_bsontype must be a string, but was: "+typeof r)}(e,t):e}const pt={Binary:e=>new Binary(e.value(),e.sub_type),Code:e=>new Code(e.code,e.scope),DBRef:e=>new DBRef(e.collection||e.namespace,e.oid,e.db,e.fields),Decimal128:e=>new Decimal128(e.bytes),Double:e=>new Double(e.value),Int32:e=>new Int32(e.value),Long:e=>Long.fromBits(null!=e.low?e.low:e.low_,null!=e.low?e.high:e.high_,null!=e.low?e.unsigned:e.unsigned_),MaxKey:()=>new MaxKey,MinKey:()=>new MinKey,ObjectId:e=>new ObjectId(e),BSONRegExp:e=>new BSONRegExp(e.pattern,e.options),BSONSymbol:e=>new BSONSymbol(e.value),Timestamp:e=>Timestamp.fromBits(e.low,e.high)};function mt(e,t){const r={useBigInt64:t?.useBigInt64??!1,relaxed:t?.relaxed??!0,legacy:t?.legacy??!1};return JSON.parse(e,((e,t)=>{if(-1!==e.indexOf("\0"))throw new BSONError(`BSON Document field names cannot contain null bytes, found: ${JSON.stringify(e)}`);return ht(t,r)}))}function yt(e,t,r,n){null!=r&&"object"==typeof r&&(n=r,r=0),null==t||"object"!=typeof t||Array.isArray(t)||(n=t,t=void 0,r=0);const o=dt(e,Object.assign({relaxed:!0,legacy:!1},n,{seenObjects:[{propertyName:"(root)",obj:null}]}));return JSON.stringify(o,t,r)}const bt=Object.create(null);bt.parse=mt,bt.stringify=yt,bt.serialize=function(e,t){return t=t||{},JSON.parse(yt(e,t))},bt.deserialize=function(e,t){return t=t||{},mt(JSON.stringify(e),t)},Object.freeze(bt);const wt=17825792;let Bt=C.allocate(wt);function St(e){Bt.length<e&&(Bt=C.allocate(e))}function Ot(e,t={}){const r="boolean"==typeof t.checkKeys&&t.checkKeys,n="boolean"==typeof t.serializeFunctions&&t.serializeFunctions,o="boolean"!=typeof t.ignoreUndefined||t.ignoreUndefined,i="number"==typeof t.minInternalBufferSize?t.minInternalBufferSize:wt;Bt.length<i&&(Bt=C.allocate(i));const s=ft(Bt,e,r,0,0,n,o,null),a=C.allocate(s);return a.set(Bt.subarray(0,s),0),a}function Nt(e,t,r={}){const n="boolean"==typeof r.checkKeys&&r.checkKeys,o="boolean"==typeof r.serializeFunctions&&r.serializeFunctions,i="boolean"!=typeof r.ignoreUndefined||r.ignoreUndefined,s="number"==typeof r.index?r.index:0,a=ft(Bt,e,n,0,0,o,i,null);return t.set(Bt.subarray(0,a),s),s+a-1}function Et(e,t={}){return Re(C.toLocalBufferType(e),t)}function xt(e,t={}){return we(e,"boolean"==typeof(t=t||{}).serializeFunctions&&t.serializeFunctions,"boolean"!=typeof t.ignoreUndefined||t.ignoreUndefined)}function Lt(e,t,r,n,o,i){const s=Object.assign({allowObjectSmallerThanBufferSize:!0,index:0},i),a=C.toLocalBufferType(e);let u=t;for(let e=0;e<r;e++){const t=a[u]|a[u+1]<<8|a[u+2]<<16|a[u+3]<<24;s.index=u,n[o+e]=Re(a,s),u+=t}return u}var vt=Object.freeze({__proto__:null,Code,BSONSymbol,DBRef,Binary,ObjectId,UUID,Long,Timestamp,Double,Int32,MinKey,MaxKey,BSONRegExp,Decimal128,setInternalBufferSize:St,serialize:Ot,serializeWithBufferAndIndex:Nt,deserialize:Et,calculateObjectSize:xt,deserializeStream:Lt,BSONValue,BSONError,BSONVersionError,BSONRuntimeError,BSONType:T,EJSON:bt});t.BSON=vt,t.BSONError=BSONError,t.BSONRegExp=BSONRegExp,t.BSONRuntimeError=BSONRuntimeError,t.BSONSymbol=BSONSymbol,t.BSONType=T,t.BSONValue=BSONValue,t.BSONVersionError=BSONVersionError,t.Binary=Binary,t.Code=Code,t.DBRef=DBRef,t.Decimal128=Decimal128,t.Double=Double,t.EJSON=bt,t.Int32=Int32,t.Long=Long,t.MaxKey=MaxKey,t.MinKey=MinKey,t.ObjectId=ObjectId,t.Timestamp=Timestamp,t.UUID=UUID,t.calculateObjectSize=xt,t.deserialize=Et,t.deserializeStream=Lt,t.serialize=Ot,t.serializeWithBufferAndIndex=Nt,t.setInternalBufferSize=St}},t={},function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}},s=!0;try{e[n].call(i.exports,i,i.exports,r),s=!1}finally{s&&delete t[n]}return i.exports}(920);var e,t}));
|