From e1edcaef3119c6b482c6b57e80fc9555f17c438e Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 15:59:41 +0100 Subject: [PATCH 01/36] Add support for `mongodb@6` --- src/JobDbRepository.ts | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/src/JobDbRepository.ts b/src/JobDbRepository.ts index 3f216c7..5a112df 100644 --- a/src/JobDbRepository.ts +++ b/src/JobDbRepository.ts @@ -108,7 +108,9 @@ export class JobDbRepository { const update: UpdateFilter = { $set: { lockedAt: new Date() } }; const options: FindOneAndUpdateOptions = { returnDocument: 'after', - sort: this.connectOptions.sort + sort: this.connectOptions.sort, + // @ts-ignore + includeResultMetadata: true, }; // Lock the job in MongoDB! @@ -155,7 +157,9 @@ export class JobDbRepository { */ const JOB_RETURN_QUERY: FindOneAndUpdateOptions = { returnDocument: 'after', - sort: this.connectOptions.sort + sort: this.connectOptions.sort, + // @ts-ignore + includeResultMetadata: true }; // Find ONE and ONLY ONE job and set the 'lockedAt' time so that job begins to be processed @@ -310,10 +314,15 @@ export class JobDbRepository { if (id) { // Update the job and process the resulting data' log('job already has _id, calling findOneAndUpdate() using _id as query'); + const options: FindOneAndUpdateOptions = { + returnDocument: 'after', + // @ts-ignore + includeResultMetadata: true + }; const result = await this.collection.findOneAndUpdate( { _id: id, name: props.name }, update, - { returnDocument: 'after' } + options ); return this.processDbResult(job, result.value as IJobParameters); } @@ -344,16 +353,19 @@ export class JobDbRepository { }) ); // this call ensure a job of this name can only exists once + const options: FindOneAndUpdateOptions = { + upsert: true, + returnDocument: 'after', + // @ts-ignore + includeResultMetadata: true, + }; const result = await this.collection.findOneAndUpdate( { name: props.name, type: 'single' }, update, - { - upsert: true, - returnDocument: 'after' - } + options, ); log( `findOneAndUpdate(${props.name}) with type "single" ${ @@ -375,10 +387,13 @@ export class JobDbRepository { // Use the 'unique' query object to find an existing job or create a new one log('calling findOneAndUpdate() with unique object as query: \n%O', query); - const result = await this.collection.findOneAndUpdate(query as IJobParameters, update, { + const options: FindOneAndUpdateOptions = { upsert: true, - returnDocument: 'after' - }); + returnDocument: 'after', + // @ts-ignore + includeResultMetadata: true, + }; + const result = await this.collection.findOneAndUpdate(query as IJobParameters, update, options); return this.processDbResult(job, result.value as IJobParameters); } From 52b99f677aa8a69c349fcbea40cc59d007653b88 Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 16:19:18 +0100 Subject: [PATCH 02/36] Use promise for `toArray()` --- test/agenda.test.ts | 32 +++++++++----------------------- 1 file changed, 9 insertions(+), 23 deletions(-) diff --git a/test/agenda.test.ts b/test/agenda.test.ts index 60f088c..63ee684 100644 --- a/test/agenda.test.ts +++ b/test/agenda.test.ts @@ -337,18 +337,13 @@ describe('Agenda', () => { job2.attrs.nextRunAt!.toISOString() ); - mongoDb + let jobs = await mongoDb .collection('agendaJobs') .find({ name: 'unique job' }) - .toArray((err, jobs) => { - if (err) { - throw err; - } - - expect(jobs).to.have.length(1); - }); + .toArray(); + expect(jobs).to.have.length(1); }); it('should not modify job when unique matches and insertOnly is set to true', async () => { @@ -390,18 +385,13 @@ describe('Agenda', () => { expect(job1.attrs.nextRunAt!.toISOString()).to.equal(job2.attrs.nextRunAt!.toISOString()); - mongoDb + let jobs = await mongoDb .collection('agendaJobs') .find({ name: 'unique job' }) - .toArray((err, jobs) => { - if (err) { - throw err; - } - - expect(jobs).to.have.length(1); - }); + .toArray(); + expect(jobs).to.have.length(1); }); }); @@ -438,18 +428,14 @@ describe('Agenda', () => { .schedule(time) .save(); - mongoDb + let jobs = await mongoDb .collection('agendaJobs') .find({ name: 'unique job' }) - .toArray((err, jobs) => { - if (err) { - throw err; - } + .toArray(); - expect(jobs).to.have.length(2); - }); + expect(jobs).to.have.length(2); }); }); }); From 937be770222bfa40bb4332760c050291a49ba23b Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 16:42:51 +0100 Subject: [PATCH 03/36] Make `mongodb@6` the default --- package-lock.json | 536 ++++++++++++++++++++++++++++++++++++----- package.json | 8 +- src/JobDbRepository.ts | 56 ++--- 3 files changed, 503 insertions(+), 97 deletions(-) diff --git a/package-lock.json b/package-lock.json index f6aa80a..f2d933d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "debug": "~4", "human-interval": "~2", "luxon": "^3", - "mongodb": "^4" + "mongodb": "^6.3.0" }, "devDependencies": { "@hokify/eslint-config": "^2.3.8", @@ -30,7 +30,9 @@ "delay": "5.0.0", "eslint": "^8.29.0", "mocha": "10.1.0", + "mongodb-five": "npm:mongodb@^5.9.2", "mongodb-memory-server": "^8.10.1", + "mongodb-six": "npm:mongodb@^6.3.0", "nyc": "^15.1.0", "prettier": "^2.8.1", "sinon": "15.0.0", @@ -1792,6 +1794,14 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@mongodb-js/saslprep": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.4.tgz", + "integrity": "sha512-8zJ8N1x51xo9hwPh6AWnKdLGEC5N3lDa6kms1YHmFBoRhTpJR6HG8wWk0td1MVCu9cD4YBrvjZEtd5Obw0Fbnw==", + "dependencies": { + "sparse-bitfield": "^3.0.3" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1955,7 +1965,8 @@ "node_modules/@types/node": { "version": "18.11.12", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.12.tgz", - "integrity": "sha512-FgD3NtTAKvyMmD44T07zz2fEf+OKwutgBCEVM8GcvMGVGaDktiLNTDvPwC/LUe3PinMW+X6CuLOF2Ui1mAlSXg==" + "integrity": "sha512-FgD3NtTAKvyMmD44T07zz2fEf+OKwutgBCEVM8GcvMGVGaDktiLNTDvPwC/LUe3PinMW+X6CuLOF2Ui1mAlSXg==", + "dev": true }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -1991,14 +2002,15 @@ "dev": true }, "node_modules/@types/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==" + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==" }, "node_modules/@types/whatwg-url": { "version": "8.2.2", "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz", "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==", + "dev": true, "dependencies": { "@types/node": "*", "@types/webidl-conversions": "*" @@ -2487,6 +2499,7 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, "funding": [ { "type": "github", @@ -2586,9 +2599,10 @@ } }, "node_modules/bson": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.0.tgz", - "integrity": "sha512-VrlEE4vuiO1WTpfof4VmaVolCVYkYTgB9iWgYNOrVlnifpME/06fhFRmONgBhClD5pFC1t9ZWqFUQEQAzY43bA==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", + "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", + "dev": true, "dependencies": { "buffer": "^5.6.0" }, @@ -2600,6 +2614,7 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, "funding": [ { "type": "github", @@ -3506,6 +3521,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "dev": true, "engines": { "node": ">=0.10" } @@ -5270,6 +5286,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, "funding": [ { "type": "github", @@ -5367,7 +5384,8 @@ "node_modules/ip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "devOptional": true }, "node_modules/is-arrayish": { "version": "0.2.1", @@ -6217,8 +6235,7 @@ "node_modules/memory-pager": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "optional": true + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==" }, "node_modules/meow": { "version": "8.1.2", @@ -6527,32 +6544,111 @@ } }, "node_modules/mongodb": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.11.0.tgz", - "integrity": "sha512-9l9n4Nk2BYZzljW3vHah3Z0rfS5npKw6ktnkmFgTcnzaXH1DRm3pDl6VMHu84EVb1lzmSaJC4OzWZqTkB5i2wg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.3.0.tgz", + "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==", "dependencies": { - "bson": "^4.7.0", - "denque": "^2.1.0", - "mongodb-connection-string-url": "^2.5.4", - "socks": "^2.7.1" + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^6.2.0", + "mongodb-connection-string-url": "^3.0.0" }, "engines": { - "node": ">=12.9.0" + "node": ">=16.20.1" }, - "optionalDependencies": { - "@aws-sdk/credential-providers": "^3.186.0", - "saslprep": "^1.0.3" + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.1.0", + "gcp-metadata": "^5.2.0", + "kerberos": "^2.0.1", + "mongodb-client-encryption": ">=6.0.0 <7", + "snappy": "^7.2.2", + "socks": "^2.7.1" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } } }, "node_modules/mongodb-connection-string-url": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.4.tgz", - "integrity": "sha512-SeAxuWs0ez3iI3vvmLk/j2y+zHwigTDKQhtdxTgt5ZCOQQS5+HW4g45/Xw5vzzbn7oQXCNQ24Z40AkJsizEy7w==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", + "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==", + "dev": true, "dependencies": { "@types/whatwg-url": "^8.2.1", "whatwg-url": "^11.0.0" } }, + "node_modules/mongodb-five": { + "name": "mongodb", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", + "integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==", + "dev": true, + "dependencies": { + "bson": "^5.5.0", + "mongodb-connection-string-url": "^2.6.0", + "socks": "^2.7.1" + }, + "engines": { + "node": ">=14.20.1" + }, + "optionalDependencies": { + "@mongodb-js/saslprep": "^1.1.0" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.0.0", + "kerberos": "^1.0.0 || ^2.0.0", + "mongodb-client-encryption": ">=2.3.0 <3", + "snappy": "^7.2.2" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + } + } + }, + "node_modules/mongodb-five/node_modules/bson": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", + "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", + "dev": true, + "engines": { + "node": ">=14.20.1" + } + }, "node_modules/mongodb-memory-server": { "version": "8.10.1", "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-8.10.1.tgz", @@ -6594,6 +6690,173 @@ "node": ">=12.22.0" } }, + "node_modules/mongodb-memory-server-core/node_modules/mongodb": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.11.0.tgz", + "integrity": "sha512-9l9n4Nk2BYZzljW3vHah3Z0rfS5npKw6ktnkmFgTcnzaXH1DRm3pDl6VMHu84EVb1lzmSaJC4OzWZqTkB5i2wg==", + "dev": true, + "dependencies": { + "bson": "^4.7.0", + "denque": "^2.1.0", + "mongodb-connection-string-url": "^2.5.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">=12.9.0" + }, + "optionalDependencies": { + "@aws-sdk/credential-providers": "^3.186.0", + "saslprep": "^1.0.3" + } + }, + "node_modules/mongodb-six": { + "name": "mongodb", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.3.0.tgz", + "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==", + "dev": true, + "dependencies": { + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^6.2.0", + "mongodb-connection-string-url": "^3.0.0" + }, + "engines": { + "node": ">=16.20.1" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.1.0", + "gcp-metadata": "^5.2.0", + "kerberos": "^2.0.1", + "mongodb-client-encryption": ">=6.0.0 <7", + "snappy": "^7.2.2", + "socks": "^2.7.1" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } + } + }, + "node_modules/mongodb-six/node_modules/@types/whatwg-url": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.4.tgz", + "integrity": "sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==", + "dev": true, + "dependencies": { + "@types/webidl-conversions": "*" + } + }, + "node_modules/mongodb-six/node_modules/bson": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.2.0.tgz", + "integrity": "sha512-ID1cI+7bazPDyL9wYy9GaQ8gEEohWvcUl/Yf0dIdutJxnmInEEyCsb4awy/OiBfall7zBA179Pahi3vCdFze3Q==", + "dev": true, + "engines": { + "node": ">=16.20.1" + } + }, + "node_modules/mongodb-six/node_modules/mongodb-connection-string-url": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz", + "integrity": "sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==", + "dev": true, + "dependencies": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^13.0.0" + } + }, + "node_modules/mongodb-six/node_modules/tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "dev": true, + "dependencies": { + "punycode": "^2.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/mongodb-six/node_modules/whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", + "dev": true, + "dependencies": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/mongodb/node_modules/@types/whatwg-url": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.4.tgz", + "integrity": "sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==", + "dependencies": { + "@types/webidl-conversions": "*" + } + }, + "node_modules/mongodb/node_modules/bson": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.2.0.tgz", + "integrity": "sha512-ID1cI+7bazPDyL9wYy9GaQ8gEEohWvcUl/Yf0dIdutJxnmInEEyCsb4awy/OiBfall7zBA179Pahi3vCdFze3Q==", + "engines": { + "node": ">=16.20.1" + } + }, + "node_modules/mongodb/node_modules/mongodb-connection-string-url": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz", + "integrity": "sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==", + "dependencies": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^13.0.0" + } + }, + "node_modules/mongodb/node_modules/tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "dependencies": { + "punycode": "^2.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/mongodb/node_modules/whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", + "dependencies": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -7392,9 +7655,9 @@ } }, "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "engines": { "node": ">=6" } @@ -7796,6 +8059,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "dev": true, "optional": true, "dependencies": { "sparse-bitfield": "^3.0.3" @@ -7917,6 +8181,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "devOptional": true, "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" @@ -7926,6 +8191,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "devOptional": true, "dependencies": { "ip": "^2.0.0", "smart-buffer": "^4.2.0" @@ -7948,7 +8214,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", - "optional": true, "dependencies": { "memory-pager": "^1.0.2" } @@ -8472,6 +8737,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, "dependencies": { "punycode": "^2.1.1" }, @@ -8795,6 +9061,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, "dependencies": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" @@ -10443,6 +10710,14 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "@mongodb-js/saslprep": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.4.tgz", + "integrity": "sha512-8zJ8N1x51xo9hwPh6AWnKdLGEC5N3lDa6kms1YHmFBoRhTpJR6HG8wWk0td1MVCu9cD4YBrvjZEtd5Obw0Fbnw==", + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -10599,7 +10874,8 @@ "@types/node": { "version": "18.11.12", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.12.tgz", - "integrity": "sha512-FgD3NtTAKvyMmD44T07zz2fEf+OKwutgBCEVM8GcvMGVGaDktiLNTDvPwC/LUe3PinMW+X6CuLOF2Ui1mAlSXg==" + "integrity": "sha512-FgD3NtTAKvyMmD44T07zz2fEf+OKwutgBCEVM8GcvMGVGaDktiLNTDvPwC/LUe3PinMW+X6CuLOF2Ui1mAlSXg==", + "dev": true }, "@types/normalize-package-data": { "version": "2.4.1", @@ -10635,14 +10911,15 @@ "dev": true }, "@types/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==" + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==" }, "@types/whatwg-url": { "version": "8.2.2", "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz", "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==", + "dev": true, "requires": { "@types/node": "*", "@types/webidl-conversions": "*" @@ -10969,7 +11246,8 @@ "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true }, "binary-extensions": { "version": "2.2.0", @@ -11033,9 +11311,10 @@ } }, "bson": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.0.tgz", - "integrity": "sha512-VrlEE4vuiO1WTpfof4VmaVolCVYkYTgB9iWgYNOrVlnifpME/06fhFRmONgBhClD5pFC1t9ZWqFUQEQAzY43bA==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", + "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", + "dev": true, "requires": { "buffer": "^5.6.0" } @@ -11044,6 +11323,7 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, "requires": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -11736,7 +12016,8 @@ "denque": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==" + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "dev": true }, "detect-indent": { "version": "6.1.0", @@ -13043,7 +13324,8 @@ "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true }, "ignore": { "version": "5.2.0", @@ -13109,7 +13391,8 @@ "ip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "devOptional": true }, "is-arrayish": { "version": "0.2.1", @@ -13740,8 +14023,7 @@ "memory-pager": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "optional": true + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==" }, "meow": { "version": "8.1.2", @@ -13968,27 +14250,86 @@ "dev": true }, "mongodb": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.11.0.tgz", - "integrity": "sha512-9l9n4Nk2BYZzljW3vHah3Z0rfS5npKw6ktnkmFgTcnzaXH1DRm3pDl6VMHu84EVb1lzmSaJC4OzWZqTkB5i2wg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.3.0.tgz", + "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==", "requires": { - "@aws-sdk/credential-providers": "^3.186.0", - "bson": "^4.7.0", - "denque": "^2.1.0", - "mongodb-connection-string-url": "^2.5.4", - "saslprep": "^1.0.3", - "socks": "^2.7.1" + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^6.2.0", + "mongodb-connection-string-url": "^3.0.0" + }, + "dependencies": { + "@types/whatwg-url": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.4.tgz", + "integrity": "sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==", + "requires": { + "@types/webidl-conversions": "*" + } + }, + "bson": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.2.0.tgz", + "integrity": "sha512-ID1cI+7bazPDyL9wYy9GaQ8gEEohWvcUl/Yf0dIdutJxnmInEEyCsb4awy/OiBfall7zBA179Pahi3vCdFze3Q==" + }, + "mongodb-connection-string-url": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz", + "integrity": "sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==", + "requires": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^13.0.0" + } + }, + "tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "requires": { + "punycode": "^2.3.0" + } + }, + "whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", + "requires": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + } + } } }, "mongodb-connection-string-url": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.4.tgz", - "integrity": "sha512-SeAxuWs0ez3iI3vvmLk/j2y+zHwigTDKQhtdxTgt5ZCOQQS5+HW4g45/Xw5vzzbn7oQXCNQ24Z40AkJsizEy7w==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", + "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==", + "dev": true, "requires": { "@types/whatwg-url": "^8.2.1", "whatwg-url": "^11.0.0" } }, + "mongodb-five": { + "version": "npm:mongodb@5.9.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", + "integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==", + "dev": true, + "requires": { + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^5.5.0", + "mongodb-connection-string-url": "^2.6.0", + "socks": "^2.7.1" + }, + "dependencies": { + "bson": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", + "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", + "dev": true + } + } + }, "mongodb-memory-server": { "version": "8.10.1", "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-8.10.1.tgz", @@ -14021,6 +14362,79 @@ "tslib": "^2.4.1", "uuid": "^8.3.1", "yauzl": "^2.10.0" + }, + "dependencies": { + "mongodb": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.11.0.tgz", + "integrity": "sha512-9l9n4Nk2BYZzljW3vHah3Z0rfS5npKw6ktnkmFgTcnzaXH1DRm3pDl6VMHu84EVb1lzmSaJC4OzWZqTkB5i2wg==", + "dev": true, + "requires": { + "@aws-sdk/credential-providers": "^3.186.0", + "bson": "^4.7.0", + "denque": "^2.1.0", + "mongodb-connection-string-url": "^2.5.4", + "saslprep": "^1.0.3", + "socks": "^2.7.1" + } + } + } + }, + "mongodb-six": { + "version": "npm:mongodb@6.3.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.3.0.tgz", + "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==", + "dev": true, + "requires": { + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^6.2.0", + "mongodb-connection-string-url": "^3.0.0" + }, + "dependencies": { + "@types/whatwg-url": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.4.tgz", + "integrity": "sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==", + "dev": true, + "requires": { + "@types/webidl-conversions": "*" + } + }, + "bson": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.2.0.tgz", + "integrity": "sha512-ID1cI+7bazPDyL9wYy9GaQ8gEEohWvcUl/Yf0dIdutJxnmInEEyCsb4awy/OiBfall7zBA179Pahi3vCdFze3Q==", + "dev": true + }, + "mongodb-connection-string-url": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz", + "integrity": "sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==", + "dev": true, + "requires": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^13.0.0" + } + }, + "tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "dev": true, + "requires": { + "punycode": "^2.3.0" + } + }, + "whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", + "dev": true, + "requires": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + } + } } }, "ms": { @@ -14642,9 +15056,9 @@ } }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" }, "q": { "version": "1.5.1", @@ -14924,6 +15338,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "dev": true, "optional": true, "requires": { "sparse-bitfield": "^3.0.3" @@ -15019,12 +15434,14 @@ "smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "devOptional": true }, "socks": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "devOptional": true, "requires": { "ip": "^2.0.0", "smart-buffer": "^4.2.0" @@ -15040,7 +15457,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", - "optional": true, "requires": { "memory-pager": "^1.0.2" } @@ -15448,6 +15864,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, "requires": { "punycode": "^2.1.1" } @@ -15690,6 +16107,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, "requires": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" diff --git a/package.json b/package.json index e3c578d..aa51fe5 100644 --- a/package.json +++ b/package.json @@ -56,11 +56,9 @@ "debug": "~4", "human-interval": "~2", "luxon": "^3", - "mongodb": "^4" + "mongodb": "^6.3.0" }, "devDependencies": { - "eslint": "^8.29.0", - "prettier": "^2.8.1", "@hokify/eslint-config": "^2.3.8", "@istanbuljs/nyc-config-typescript": "^1.0.2", "@types/chai": "^4.3.4", @@ -72,9 +70,13 @@ "@types/sinon": "^10.0.13", "chai": "^4.3.7", "delay": "5.0.0", + "eslint": "^8.29.0", "mocha": "10.1.0", + "mongodb-five": "npm:mongodb@^5.9.2", "mongodb-memory-server": "^8.10.1", + "mongodb-six": "npm:mongodb@^6.3.0", "nyc": "^15.1.0", + "prettier": "^2.8.1", "sinon": "15.0.0", "standard-version": "^9.5.0", "ts-node": "^10.9.1", diff --git a/src/JobDbRepository.ts b/src/JobDbRepository.ts index 5a112df..2662ca6 100644 --- a/src/JobDbRepository.ts +++ b/src/JobDbRepository.ts @@ -106,18 +106,16 @@ export class JobDbRepository { // Update / options for the MongoDB query const update: UpdateFilter = { $set: { lockedAt: new Date() } }; - const options: FindOneAndUpdateOptions = { - returnDocument: 'after', - sort: this.connectOptions.sort, - // @ts-ignore - includeResultMetadata: true, - }; // Lock the job in MongoDB! const resp = await this.collection.findOneAndUpdate( criteria as Filter, update, - options + { + returnDocument: 'after', + sort: this.connectOptions.sort, + includeResultMetadata: true, + } ); return resp?.value || undefined; @@ -152,21 +150,15 @@ export class JobDbRepository { */ const JOB_PROCESS_SET_QUERY: UpdateFilter = { $set: { lockedAt: now } }; - /** - * Query used to affect what gets returned - */ - const JOB_RETURN_QUERY: FindOneAndUpdateOptions = { - returnDocument: 'after', - sort: this.connectOptions.sort, - // @ts-ignore - includeResultMetadata: true - }; - // Find ONE and ONLY ONE job and set the 'lockedAt' time so that job begins to be processed const result = await this.collection.findOneAndUpdate( JOB_PROCESS_WHERE_QUERY, JOB_PROCESS_SET_QUERY, - JOB_RETURN_QUERY + { + returnDocument: 'after', + sort: this.connectOptions.sort, + includeResultMetadata: true, + }, ); return result.value || undefined; @@ -314,15 +306,13 @@ export class JobDbRepository { if (id) { // Update the job and process the resulting data' log('job already has _id, calling findOneAndUpdate() using _id as query'); - const options: FindOneAndUpdateOptions = { - returnDocument: 'after', - // @ts-ignore - includeResultMetadata: true - }; const result = await this.collection.findOneAndUpdate( { _id: id, name: props.name }, update, - options + { + returnDocument: 'after', + includeResultMetadata: true + }, ); return this.processDbResult(job, result.value as IJobParameters); } @@ -353,19 +343,17 @@ export class JobDbRepository { }) ); // this call ensure a job of this name can only exists once - const options: FindOneAndUpdateOptions = { - upsert: true, - returnDocument: 'after', - // @ts-ignore - includeResultMetadata: true, - }; const result = await this.collection.findOneAndUpdate( { name: props.name, type: 'single' }, update, - options, + { + upsert: true, + returnDocument: 'after', + includeResultMetadata: true, + }, ); log( `findOneAndUpdate(${props.name}) with type "single" ${ @@ -387,13 +375,11 @@ export class JobDbRepository { // Use the 'unique' query object to find an existing job or create a new one log('calling findOneAndUpdate() with unique object as query: \n%O', query); - const options: FindOneAndUpdateOptions = { + const result = await this.collection.findOneAndUpdate(query as IJobParameters, update, { upsert: true, returnDocument: 'after', - // @ts-ignore includeResultMetadata: true, - }; - const result = await this.collection.findOneAndUpdate(query as IJobParameters, update, options); + }); return this.processDbResult(job, result.value as IJobParameters); } From 9783325da91f935595facde9a029ca5dc2d72f1a Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 16:48:32 +0100 Subject: [PATCH 04/36] Use various mongodb clients in tests --- .github/workflows/test.yml | 14 +- package-lock.json | 783 +++++++++++++++++------------------ package.json | 2 +- test/helpers/mock-mongodb.ts | 6 +- 4 files changed, 387 insertions(+), 418 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bf28e3a..be2fe2c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -6,8 +6,9 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [14, 16, 18] - mongodb-version: [3.6, 4.4, 5.0] + node-version: [18, 20, 21] + mongodb-version: [3.6, 4.4, 5.0, 6.0, 7.0] + mongodb-client: [4, 5, 6] steps: - name: Git checkout uses: actions/checkout@v2 @@ -17,11 +18,6 @@ jobs: with: node-version: ${{ matrix.node-version }} - - name: Start MongoDB - uses: supercharge/mongodb-github-action@1.6.0 - with: - mongodb-version: ${{ matrix.mongodb-version }} - - name: Cache node modules uses: actions/cache@v2 env: @@ -39,6 +35,9 @@ jobs: - name: Install Packages run: npm install + - name: Install MongoDB client + run: npm install mongodb@${{ matrix.mongodb-client }} + - name: Run Lint run: npm run lint @@ -51,3 +50,4 @@ jobs: run: npm run test env: CI: true + MONGODB_VERSION: ${{ matrix.mongodb-version }} diff --git a/package-lock.json b/package-lock.json index f2d933d..c85c2e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,7 @@ "eslint": "^8.29.0", "mocha": "10.1.0", "mongodb-five": "npm:mongodb@^5.9.2", - "mongodb-memory-server": "^8.10.1", + "mongodb-memory-server": "^9.1.6", "mongodb-six": "npm:mongodb@^6.3.0", "nyc": "^15.1.0", "prettier": "^2.8.1", @@ -62,6 +62,7 @@ "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz", "integrity": "sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw==", "optional": true, + "peer": true, "dependencies": { "tslib": "^1.11.1" } @@ -70,13 +71,15 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true + "optional": true, + "peer": true }, "node_modules/@aws-crypto/sha256-browser": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", "optional": true, + "peer": true, "dependencies": { "@aws-crypto/ie11-detection": "^2.0.0", "@aws-crypto/sha256-js": "^2.0.0", @@ -92,13 +95,15 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true + "optional": true, + "peer": true }, "node_modules/@aws-crypto/sha256-js": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", "optional": true, + "peer": true, "dependencies": { "@aws-crypto/util": "^2.0.0", "@aws-sdk/types": "^3.1.0", @@ -109,13 +114,15 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true + "optional": true, + "peer": true }, "node_modules/@aws-crypto/supports-web-crypto": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz", "integrity": "sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ==", "optional": true, + "peer": true, "dependencies": { "tslib": "^1.11.1" } @@ -124,13 +131,15 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true + "optional": true, + "peer": true }, "node_modules/@aws-crypto/util": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.2.tgz", "integrity": "sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "^3.110.0", "@aws-sdk/util-utf8-browser": "^3.0.0", @@ -141,13 +150,15 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true + "optional": true, + "peer": true }, "node_modules/@aws-sdk/abort-controller": { "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.212.0.tgz", "integrity": "sha512-mXeBSuDi0Fpul4zk9VH2z0VKN+/+6hyJ9SXSRhn3LpMcyj3GeZtXyTB2wCsfxXYGxeGbV+bIzbPbhZza6wNfWg==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -161,6 +172,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.212.0.tgz", "integrity": "sha512-0yt6lyYUYng5Nnn5EyTnoVZuVXD3r6eaDjrIZQTc8yhNkbTg+eRLlGnJVkrn/O9NPRS52XqxLCbJc/Wk2SSH+w==", "optional": true, + "peer": true, "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -207,6 +219,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.212.0.tgz", "integrity": "sha512-b9lFI8Uz6YxIzAlS2uq62y5fX097lwcdkiq2N8YN2U7YgHQaKMIFnV8ZqkDdhZi2eUKwhSdUZzQy0tF6en2Ubg==", "optional": true, + "peer": true, "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -250,6 +263,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.212.0.tgz", "integrity": "sha512-Co0AU+y9KEAZUraT36ttFZlmwARsr82q2nQji5E8zg3zlUHtqGvMJqxArudz3iOb2E9WRi75MwAQmLO2xEk45A==", "optional": true, + "peer": true, "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -293,6 +307,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.212.0.tgz", "integrity": "sha512-Zl8665HT1Do/yfiFEtqEjLkHSkAo5Isg2QU65Kbknj2W2DFj92a1cRvMlHanDLxlpuoryGP9/u1efYZeWeIdlg==", "optional": true, + "peer": true, "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -340,6 +355,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.212.0.tgz", "integrity": "sha512-hIP/Izpv6GCsDTnHCd/X9Ro7Mw5le+gr2VbkZHWR0c8+3xZWp8N5S0QnUBogF3Dv2KwPbmHP+bs/vqqo3miUjQ==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/signature-v4": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -356,6 +372,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.212.0.tgz", "integrity": "sha512-0BEML2iBGXyFnD1HNQ28B+9Ev7NGcu9itYcJue5mBkCOka3mW55xAPYwp3es0rhQ1oeBziqCjHIIRsp7wGIvsQ==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/client-cognito-identity": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -371,6 +388,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.212.0.tgz", "integrity": "sha512-HNYoqetLqTxwl0Grl4ez8Dx3I3hJfskxH2PTHYI1/iAqrY/gSB2oBOusvBeksbYrScnQM2IGqEcMJ4lzGLOH+w==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -385,6 +403,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.212.0.tgz", "integrity": "sha512-Bg7cX2N5pJ//ft3Y8HWtpDSEMMgRTNMaNlIvTlDbAKYp7HBZRWSf9ZJnz2slT7qbyaJyRP5pSJC4XRm83g4leA==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/node-config-provider": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -401,6 +420,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.212.0.tgz", "integrity": "sha512-H7qRIP8qV7tRrCSJx2p5oQVMJASQWZUmi4l699hDMejmCO/m4pUMQFmWn2FXtZv8gTfzlkmp3wMixD5jnfL7pw==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/credential-provider-env": "3.212.0", "@aws-sdk/credential-provider-imds": "3.212.0", @@ -420,6 +440,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.212.0.tgz", "integrity": "sha512-T44hoU3GCYHS+4GDVs7S/v2bBHmmYpnPayQsYXhDElQKXP0cFzQ78F8et4IU5lM94hwK+ISRQPrKaq4p77evkw==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/credential-provider-env": "3.212.0", "@aws-sdk/credential-provider-imds": "3.212.0", @@ -441,6 +462,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.212.0.tgz", "integrity": "sha512-bGaVKSm5Tf5VZtlM2V6k+M9nSKzlb14ldCcH0PGGMaK/dqnEJDVSxXPu3fWyomaxbLt7Is3AUMh6L2bq3kuXyA==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/shared-ini-file-loader": "3.212.0", @@ -456,6 +478,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.212.0.tgz", "integrity": "sha512-OGatVUnWLp7PePs2H2RyYmTrwurl0tAfW+LWfVAPgYyvi2RQgTmSK5LJ3pXKxz3TvaSHkCvsT0NWNqdWY+iKWQ==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/client-sso": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -473,6 +496,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.212.0.tgz", "integrity": "sha512-zPF3KiVT14aeu4cRyEUelAJEAzFp++9ULLigQXhKBbFYaiOZMAHKRASO/WUK1ixYBC+ax4G1rbihLfQimXMtVA==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -487,6 +511,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.212.0.tgz", "integrity": "sha512-ea1KFqSpGsXcAD5IdDxKsWimLQ2/HiKQnlJUpXyDEP1Sk3if/Gtnn17Hk6GgXByaqppDqful9Lu9esxc3mNDkg==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/client-cognito-identity": "3.212.0", "@aws-sdk/client-sso": "3.212.0", @@ -513,6 +538,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.212.0.tgz", "integrity": "sha512-u7ehnpAVN8D0asWhyQitNVf1j5LdzCuxP/14Dx8+PvrUdZxQNVq2FVB+tkQvOs9pDHE/oROjVo7GNO42bmkitA==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/querystring-builder": "3.212.0", @@ -526,6 +552,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.212.0.tgz", "integrity": "sha512-pwZkz83EvXHGURBYjBYS7Cr+gSr6pi23RDlP/aXREjJGs9QUQyixBh78oX5a3p6bB8JeizPcZS1dXKJ9OKCHAw==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "@aws-sdk/util-buffer-from": "3.208.0", @@ -540,6 +567,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.212.0.tgz", "integrity": "sha512-zKVx+4Silmsr5Nvv9aGL5FmuHvdP9Dcvy/22fmWa3RRvCSNRpvFDeXtcDB5FvNpbWbO+qJyGj/OeqB/XejV13w==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -550,6 +578,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz", "integrity": "sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -562,6 +591,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.212.0.tgz", "integrity": "sha512-gR6jeKGYNYqNLFRcuX3vv5PN1POLlB/9LDVYl3k/NNaCg8L1EKqqEtG84Gmn1AXH+2s6zMNs+gt5ygeqZQe2Cw==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -576,6 +606,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.212.0.tgz", "integrity": "sha512-6ntKYehjxLun8hPXIPHSI2pGr/pHuQ6jcyO5wBq1kydSIIGiESl8H84DEt+yRvroCiYgbU+I8cACnRE0uv0bLA==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/middleware-serde": "3.212.0", "@aws-sdk/protocol-http": "3.212.0", @@ -595,6 +626,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.212.0.tgz", "integrity": "sha512-W00mxzK2OXy91Ncxri3cZJIxxSBzE72bX8FDa3xgC0ujbj49lw+rol6aV/Fw8Nda3CZ5xxulvJ4sXHt2eOtXSA==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -609,6 +641,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.212.0.tgz", "integrity": "sha512-BSQqzKp4abf2wXvJEstB0zdr68yJMZXA14h53eSvtzykZLfvvFixR1nyVgKq+PKm1VaJ2fuZr10tjWRVQg1pYA==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -622,6 +655,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.212.0.tgz", "integrity": "sha512-ATHPNtnd7nlm0jRXvr/c2xbxcna5ZGXEWTM5tUjIflOK9Rl3PCRce/hoQnHs45kv4l3daC53sPuRvTQ8O7K67A==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -636,6 +670,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.212.0.tgz", "integrity": "sha512-lIi/JkYXalY6CYw2dJbQ/Xo64Ah3wfJ63BMTFQHQk1htnIDBnLd9a6ng96JgXJQMSO4ZEqRW/709NBlC157hbw==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/service-error-classification": "3.212.0", @@ -653,6 +688,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.212.0.tgz", "integrity": "sha512-IcMfno3RJEXXS1Ch5lY0hgdSkGn9XW9m3XoKu1DjhEqR34ENDzvUmEN2PimIcZnz+9W59CU9UAMs/amRhwhlmw==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/middleware-signing": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -670,6 +706,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.212.0.tgz", "integrity": "sha512-KwRpwi/8vNDV0l8uvu1DPk0q3WR2pnp9VtUNZ6u9zU54hvVL+Z1PtQh/WfzJzNvtCHvtc/gVMs3Daqb/Ecrm5Q==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -683,6 +720,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.212.0.tgz", "integrity": "sha512-pth95aEsxqQO0lrRAHZNVI5hrMtA14nEUPFjiLaXtOssZrjD6mBzXPRy1nKob6XWXOp/Vy0mnyI/FT/NnMflFw==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/protocol-http": "3.212.0", @@ -700,6 +738,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.212.0.tgz", "integrity": "sha512-AZ5f9ChioHsxGUojlzqI57sYyM9oW9SN/7AuiNafXU02j9jw7DKiYRn43lRUhgYnb/REhedHA5SsqIBF5eut/w==", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -712,6 +751,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.212.0.tgz", "integrity": "sha512-CVSY2kt+RaP6CVqSKp+1sPUAQFusTLZLFHVK0YPFzcIySJMqJC0l0/BzLhaIf5Bs3JHa/VGym8oDpp881yimHA==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -726,6 +766,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.212.0.tgz", "integrity": "sha512-8AfOEDPe/D9DccUgredYg07GH2jrw07FCTyA1Pug5Hgbas7w14zbhLyQB0l6gcOJEuh34e/7oV9hN3s1hctnJg==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/shared-ini-file-loader": "3.212.0", @@ -741,6 +782,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.212.0.tgz", "integrity": "sha512-wt4jK8HeYMjuQbWB4+Xt/nGyTvIwtLhm0SHcRgcoTsUjEiaPio/xNanyBWhPSUM87jpyG6bQMCzUtDbPeLqhkA==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/abort-controller": "3.212.0", "@aws-sdk/protocol-http": "3.212.0", @@ -757,6 +799,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.212.0.tgz", "integrity": "sha512-NMCIABfw3VZ7Vtn6iSeZRuSToRLxIHq0eGoUgO7T4fUp3U5vqYt28A5UY65KB9ifUPpNSllEG3EhEqs5qFw5+w==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -770,6 +813,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.212.0.tgz", "integrity": "sha512-EhkLPQC2TeqC3RGKfW87zoKj/gsWS4JJlRl5U6KMXejBMKQPzuopUiF9gQJ2iuou9BT8B+RsG2qgSHzrxp6lKw==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -783,6 +827,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.212.0.tgz", "integrity": "sha512-4CaQstj0Aki3vc96Z0d481raNagmy9gnJtIv6yveATJ/57lk/RUv2WtTUOzpFKv/oNx5khix2tpbRqK9nCUxVg==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "@aws-sdk/util-uri-escape": "3.201.0", @@ -797,6 +842,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.212.0.tgz", "integrity": "sha512-ttarfAHMOYKgFHeBdgXID9SlNS7erH4gavN3fvf5R1RliCytUnzsTTvqa7CmVBFy0Xc/2yA+/6FFDKlOsS8tRg==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -810,6 +856,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.212.0.tgz", "integrity": "sha512-jCv+uuFq4yGjP8FoCmoOGqnKNHHREDOFf7OxVSCluGMg2LXHfGxxqkqNFJlT3p+QdEp323GSWFY+PUsMJy7BLQ==", "optional": true, + "peer": true, "engines": { "node": ">=14.0.0" } @@ -819,6 +866,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.212.0.tgz", "integrity": "sha512-wKWqCA1oU57V//D3uAjQKGGj6rm6YKH4pWIU38Ypb/xNafiB7C51KtwpQVsS2HCNfmGrD03sGLKEZCSy9jvIlA==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -832,6 +880,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.212.0.tgz", "integrity": "sha512-tCrzWA60AWGDRmY9OyUrG0BzD+dDbAtHSqcY2LchGHOlMmv501/WXBIvn9fDfKp8GJj6Lb3VcG9cY1jCuKKcmg==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/is-array-buffer": "3.201.0", "@aws-sdk/types": "3.212.0", @@ -849,6 +898,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.212.0.tgz", "integrity": "sha512-dQUlM/eltp9JVEVQWGxU/6Or8jGQWK5mgmbP+BUHkfDgoMIeOFksIYon211KhE18EjoGgav1mr4/HHlcnekI2w==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/middleware-stack": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -863,6 +913,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.212.0.tgz", "integrity": "sha512-pTe4PM14b58nbfvIP9B0zW5dUIxEb/ALVzSLuxpJwJRI51E5QZmXJMT3P77MUd6niqKw0cRrnEHIgznD67JHSg==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/client-sso-oidc": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -879,6 +930,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.212.0.tgz", "integrity": "sha512-uXBXB1PBYxfPyIvgmjbGdYBlS7rdeMG58uCaY3Ga5scY2xQnj7HU7knATKuIKk2DH1lLT0inqtsRVJS25zRK5w==", "optional": true, + "peer": true, "engines": { "node": ">=14.0.0" } @@ -888,6 +940,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.212.0.tgz", "integrity": "sha512-mTUQQRcVYqur7aHDuDMDKxN7Yr/5kIZB1RtMjIwtimTcf7TZaskN6sLTPo42YgASM6XQQhJECZaOE7Ow16i6Mg==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/querystring-parser": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -899,6 +952,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz", "integrity": "sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" @@ -912,6 +966,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz", "integrity": "sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg==", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.3.1" } @@ -921,6 +976,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz", "integrity": "sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg==", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -933,6 +989,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz", "integrity": "sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/is-array-buffer": "3.201.0", "tslib": "^2.3.1" @@ -946,6 +1003,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz", "integrity": "sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg==", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -958,6 +1016,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.212.0.tgz", "integrity": "sha512-tAs9+/lTtil545kyCqy7qjnnCq4S2S+4kBhHXgwRNPT85Nx5XCEEheWH6VZ45YufRaiRNFfX0n+odDwzDaev6g==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -973,6 +1032,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.212.0.tgz", "integrity": "sha512-fNl1IDqn1mAoiM2Xv5KGAczXHy2+tPlouunIEePnQKTq0pzT3WqR13qleTfu1EcEz1oyGnDRoK91aP61Jxh3OQ==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/config-resolver": "3.212.0", "@aws-sdk/credential-provider-imds": "3.212.0", @@ -990,6 +1050,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.212.0.tgz", "integrity": "sha512-/ADfvrZwhzUphre3pliO290IFOflvHyBBEaKn9WfRQ5veZxl+CuOEjxkwTJfHUrfWbh+xpCuOewWVLCptmoC4A==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -1003,6 +1064,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz", "integrity": "sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA==", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -1015,6 +1077,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz", "integrity": "sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -1027,6 +1090,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.212.0.tgz", "integrity": "sha512-621glUpwVKJRB8QxRG/5cAKIq8LKPdl/l8CS7vDg34f6j9BJmP5YVPcTzzQ6iskQAblkndiBAnSjp7kGujxuGg==", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -1039,6 +1103,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz", "integrity": "sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA==", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -1051,6 +1116,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.212.0.tgz", "integrity": "sha512-xXz16ge9NdKCwlD+952rfvgHdDe+pbCavbVMNdR60joHq5KYGR1e02l0LRNVe48/C9dAo2ezeJ+YnTPaw3Yl8Q==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "bowser": "^2.11.0", @@ -1062,6 +1128,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.212.0.tgz", "integrity": "sha512-HE8VwtMtTXGkwUjryNpy+qyg7wrQxCGplDP59yo0YVn86B5f9nhRi/2jRAsKo9yf94iP7PXAz65TY9+KJC8UIg==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/node-config-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -1084,6 +1151,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz", "integrity": "sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q==", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.3.1" } @@ -1093,6 +1161,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz", "integrity": "sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ==", "optional": true, + "peer": true, "dependencies": { "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" @@ -1995,12 +2064,6 @@ "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", "dev": true }, - "node_modules/@types/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-dDZH/tXzwjutnuk4UacGgFRwV+JSLaXL1ikvidfJprkb7L9Nx1njcRHHmi3Dsvt7pgqqTEeucQuOrWHPFgzVHA==", - "dev": true - }, "node_modules/@types/webidl-conversions": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", @@ -2240,15 +2303,15 @@ "dev": true }, "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dev": true, "dependencies": { - "debug": "4" + "debug": "^4.3.4" }, "engines": { - "node": ">= 6.0.0" + "node": ">= 14" } }, "node_modules/aggregate-error": { @@ -2466,12 +2529,12 @@ "dev": true }, "node_modules/async-mutex": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.3.2.tgz", - "integrity": "sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.1.tgz", + "integrity": "sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA==", "dev": true, "dependencies": { - "tslib": "^2.3.1" + "tslib": "^2.4.0" } }, "node_modules/axe-core": { @@ -2489,32 +2552,18 @@ "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", "dev": true }, + "node_modules/b4a": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", + "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", + "dev": true + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -2524,22 +2573,12 @@ "node": ">=8" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, "node_modules/bowser": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", - "optional": true + "optional": true, + "peer": true }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -2599,39 +2638,12 @@ } }, "node_modules/bson": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", - "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", + "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", "dev": true, - "dependencies": { - "buffer": "^5.6.0" - }, "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "node": ">=14.20.1" } }, "node_modules/buffer-crc32": { @@ -3517,15 +3529,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, "node_modules/detect-indent": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", @@ -3675,15 +3678,6 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -4543,6 +4537,12 @@ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", "dev": true }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, "node_modules/fast-glob": { "version": "3.2.12", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", @@ -4588,6 +4588,7 @@ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz", "integrity": "sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA==", "optional": true, + "peer": true, "dependencies": { "strnum": "^1.0.5" }, @@ -4722,6 +4723,26 @@ "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, + "node_modules/follow-redirects": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/foreground-child": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", @@ -4755,12 +4776,6 @@ } ] }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -4934,18 +4949,6 @@ "xtend": "~4.0.1" } }, - "node_modules/get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", @@ -5262,16 +5265,16 @@ "dev": true }, "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", "dev": true, "dependencies": { - "agent-base": "6", + "agent-base": "^7.0.2", "debug": "4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/human-interval": { @@ -5282,26 +5285,6 @@ "numbered": "^1.1.0" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", @@ -6220,18 +6203,6 @@ "node": ">= 12" } }, - "node_modules/md5-file": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-5.0.0.tgz", - "integrity": "sha512-xbEFXCYVWrSx/gEKS1VPlg84h/4L20znVIulKw6kMfmBUAZNAnF00eczz9ICMl+/hjQGo5KSXRxbL/47X3rmMw==", - "dev": true, - "bin": { - "md5-file": "cli.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/memory-pager": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", @@ -6640,73 +6611,82 @@ } } }, - "node_modules/mongodb-five/node_modules/bson": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", - "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", - "dev": true, - "engines": { - "node": ">=14.20.1" - } - }, "node_modules/mongodb-memory-server": { - "version": "8.10.1", - "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-8.10.1.tgz", - "integrity": "sha512-xBo45TuU4SFjDWixOXJyTBDukYqGeCuh7RBcDm4Nqngd/2Pjja/XYYFFJk/I44mTrZ77W1HDmCA4d69XgNJUJQ==", + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-9.1.6.tgz", + "integrity": "sha512-gzcpgGYlPhuKmria37W+bvYy6W+OkX2UVG7MoP41OWFvQv2Hn7A+fLXkV+lsMmhog1lMQprdV6AR+gixgheLaw==", "dev": true, "hasInstallScript": true, "dependencies": { - "mongodb-memory-server-core": "8.10.1", - "tslib": "^2.4.1" + "mongodb-memory-server-core": "9.1.6", + "tslib": "^2.6.2" }, "engines": { - "node": ">=12.22.0" + "node": ">=14.20.1" } }, "node_modules/mongodb-memory-server-core": { - "version": "8.10.1", - "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-8.10.1.tgz", - "integrity": "sha512-Xva73v08VDojH1+423fJA6PWsoSWnkexk8/zSCdQTfKXACAgEaQ5fay89gzYn/bn/4So89hPVdLwEOt2VYMK7Q==", + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-9.1.6.tgz", + "integrity": "sha512-3H/dq5II+XcSbK80hicMw4zFlDxcpjt4oWJq76RlOVuLoaf3AFqVheR6Vqx9ymlIqER4Jni58FMCIIRbesia1A==", "dev": true, "dependencies": { - "@types/tmp": "^0.2.3", - "async-mutex": "^0.3.2", + "async-mutex": "^0.4.0", "camelcase": "^6.3.0", "debug": "^4.3.4", "find-cache-dir": "^3.3.2", - "get-port": "^5.1.1", - "https-proxy-agent": "^5.0.1", - "md5-file": "^5.0.0", - "mongodb": "~4.11.0", + "follow-redirects": "^1.15.3", + "https-proxy-agent": "^7.0.2", + "mongodb": "^5.9.1", "new-find-package-json": "^2.0.0", - "semver": "^7.3.8", - "tar-stream": "^2.1.4", - "tmp": "^0.2.1", - "tslib": "^2.4.1", - "uuid": "^8.3.1", + "semver": "^7.5.4", + "tar-stream": "^3.0.0", + "tslib": "^2.6.2", "yauzl": "^2.10.0" }, "engines": { - "node": ">=12.22.0" + "node": ">=14.20.1" } }, "node_modules/mongodb-memory-server-core/node_modules/mongodb": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.11.0.tgz", - "integrity": "sha512-9l9n4Nk2BYZzljW3vHah3Z0rfS5npKw6ktnkmFgTcnzaXH1DRm3pDl6VMHu84EVb1lzmSaJC4OzWZqTkB5i2wg==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", + "integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==", "dev": true, "dependencies": { - "bson": "^4.7.0", - "denque": "^2.1.0", - "mongodb-connection-string-url": "^2.5.4", + "bson": "^5.5.0", + "mongodb-connection-string-url": "^2.6.0", "socks": "^2.7.1" }, "engines": { - "node": ">=12.9.0" + "node": ">=14.20.1" }, "optionalDependencies": { - "@aws-sdk/credential-providers": "^3.186.0", - "saslprep": "^1.0.3" + "@mongodb-js/saslprep": "^1.1.0" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.0.0", + "kerberos": "^1.0.0 || ^2.0.0", + "mongodb-client-encryption": ">=2.3.0 <3", + "snappy": "^7.2.2" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + } } }, "node_modules/mongodb-six": { @@ -7692,6 +7672,12 @@ } ] }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, "node_modules/quick-lru": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", @@ -8055,23 +8041,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/saslprep": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", - "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", - "dev": true, - "optional": true, - "dependencies": { - "sparse-bitfield": "^3.0.3" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -8463,6 +8436,16 @@ "node": ">=4" } }, + "node_modules/streamx": { + "version": "2.15.6", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.6.tgz", + "integrity": "sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==", + "dev": true, + "dependencies": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -8614,7 +8597,8 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", - "optional": true + "optional": true, + "peer": true }, "node_modules/supports-color": { "version": "7.2.0", @@ -8641,19 +8625,14 @@ } }, "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", "dev": true, "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" } }, "node_modules/test-exclude": { @@ -8700,18 +8679,6 @@ "readable-stream": "3" } }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -8840,9 +8807,9 @@ } }, "node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "devOptional": true }, "node_modules/tsutils": { @@ -9016,7 +8983,8 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "devOptional": true, + "optional": true, + "peer": true, "bin": { "uuid": "dist/bin/uuid" } @@ -9297,6 +9265,7 @@ "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz", "integrity": "sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw==", "optional": true, + "peer": true, "requires": { "tslib": "^1.11.1" }, @@ -9305,7 +9274,8 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true + "optional": true, + "peer": true } } }, @@ -9314,6 +9284,7 @@ "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", "optional": true, + "peer": true, "requires": { "@aws-crypto/ie11-detection": "^2.0.0", "@aws-crypto/sha256-js": "^2.0.0", @@ -9329,7 +9300,8 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true + "optional": true, + "peer": true } } }, @@ -9338,6 +9310,7 @@ "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", "optional": true, + "peer": true, "requires": { "@aws-crypto/util": "^2.0.0", "@aws-sdk/types": "^3.1.0", @@ -9348,7 +9321,8 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true + "optional": true, + "peer": true } } }, @@ -9357,6 +9331,7 @@ "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz", "integrity": "sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ==", "optional": true, + "peer": true, "requires": { "tslib": "^1.11.1" }, @@ -9365,7 +9340,8 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true + "optional": true, + "peer": true } } }, @@ -9374,6 +9350,7 @@ "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.2.tgz", "integrity": "sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA==", "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "^3.110.0", "@aws-sdk/util-utf8-browser": "^3.0.0", @@ -9384,7 +9361,8 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true + "optional": true, + "peer": true } } }, @@ -9393,6 +9371,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.212.0.tgz", "integrity": "sha512-mXeBSuDi0Fpul4zk9VH2z0VKN+/+6hyJ9SXSRhn3LpMcyj3GeZtXyTB2wCsfxXYGxeGbV+bIzbPbhZza6wNfWg==", "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9403,6 +9382,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.212.0.tgz", "integrity": "sha512-0yt6lyYUYng5Nnn5EyTnoVZuVXD3r6eaDjrIZQTc8yhNkbTg+eRLlGnJVkrn/O9NPRS52XqxLCbJc/Wk2SSH+w==", "optional": true, + "peer": true, "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -9446,6 +9426,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.212.0.tgz", "integrity": "sha512-b9lFI8Uz6YxIzAlS2uq62y5fX097lwcdkiq2N8YN2U7YgHQaKMIFnV8ZqkDdhZi2eUKwhSdUZzQy0tF6en2Ubg==", "optional": true, + "peer": true, "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -9486,6 +9467,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.212.0.tgz", "integrity": "sha512-Co0AU+y9KEAZUraT36ttFZlmwARsr82q2nQji5E8zg3zlUHtqGvMJqxArudz3iOb2E9WRi75MwAQmLO2xEk45A==", "optional": true, + "peer": true, "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -9526,6 +9508,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.212.0.tgz", "integrity": "sha512-Zl8665HT1Do/yfiFEtqEjLkHSkAo5Isg2QU65Kbknj2W2DFj92a1cRvMlHanDLxlpuoryGP9/u1efYZeWeIdlg==", "optional": true, + "peer": true, "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -9570,6 +9553,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.212.0.tgz", "integrity": "sha512-hIP/Izpv6GCsDTnHCd/X9Ro7Mw5le+gr2VbkZHWR0c8+3xZWp8N5S0QnUBogF3Dv2KwPbmHP+bs/vqqo3miUjQ==", "optional": true, + "peer": true, "requires": { "@aws-sdk/signature-v4": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9583,6 +9567,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.212.0.tgz", "integrity": "sha512-0BEML2iBGXyFnD1HNQ28B+9Ev7NGcu9itYcJue5mBkCOka3mW55xAPYwp3es0rhQ1oeBziqCjHIIRsp7wGIvsQ==", "optional": true, + "peer": true, "requires": { "@aws-sdk/client-cognito-identity": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -9595,6 +9580,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.212.0.tgz", "integrity": "sha512-HNYoqetLqTxwl0Grl4ez8Dx3I3hJfskxH2PTHYI1/iAqrY/gSB2oBOusvBeksbYrScnQM2IGqEcMJ4lzGLOH+w==", "optional": true, + "peer": true, "requires": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9606,6 +9592,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.212.0.tgz", "integrity": "sha512-Bg7cX2N5pJ//ft3Y8HWtpDSEMMgRTNMaNlIvTlDbAKYp7HBZRWSf9ZJnz2slT7qbyaJyRP5pSJC4XRm83g4leA==", "optional": true, + "peer": true, "requires": { "@aws-sdk/node-config-provider": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -9619,6 +9606,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.212.0.tgz", "integrity": "sha512-H7qRIP8qV7tRrCSJx2p5oQVMJASQWZUmi4l699hDMejmCO/m4pUMQFmWn2FXtZv8gTfzlkmp3wMixD5jnfL7pw==", "optional": true, + "peer": true, "requires": { "@aws-sdk/credential-provider-env": "3.212.0", "@aws-sdk/credential-provider-imds": "3.212.0", @@ -9635,6 +9623,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.212.0.tgz", "integrity": "sha512-T44hoU3GCYHS+4GDVs7S/v2bBHmmYpnPayQsYXhDElQKXP0cFzQ78F8et4IU5lM94hwK+ISRQPrKaq4p77evkw==", "optional": true, + "peer": true, "requires": { "@aws-sdk/credential-provider-env": "3.212.0", "@aws-sdk/credential-provider-imds": "3.212.0", @@ -9653,6 +9642,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.212.0.tgz", "integrity": "sha512-bGaVKSm5Tf5VZtlM2V6k+M9nSKzlb14ldCcH0PGGMaK/dqnEJDVSxXPu3fWyomaxbLt7Is3AUMh6L2bq3kuXyA==", "optional": true, + "peer": true, "requires": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/shared-ini-file-loader": "3.212.0", @@ -9665,6 +9655,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.212.0.tgz", "integrity": "sha512-OGatVUnWLp7PePs2H2RyYmTrwurl0tAfW+LWfVAPgYyvi2RQgTmSK5LJ3pXKxz3TvaSHkCvsT0NWNqdWY+iKWQ==", "optional": true, + "peer": true, "requires": { "@aws-sdk/client-sso": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -9679,6 +9670,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.212.0.tgz", "integrity": "sha512-zPF3KiVT14aeu4cRyEUelAJEAzFp++9ULLigQXhKBbFYaiOZMAHKRASO/WUK1ixYBC+ax4G1rbihLfQimXMtVA==", "optional": true, + "peer": true, "requires": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9690,6 +9682,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.212.0.tgz", "integrity": "sha512-ea1KFqSpGsXcAD5IdDxKsWimLQ2/HiKQnlJUpXyDEP1Sk3if/Gtnn17Hk6GgXByaqppDqful9Lu9esxc3mNDkg==", "optional": true, + "peer": true, "requires": { "@aws-sdk/client-cognito-identity": "3.212.0", "@aws-sdk/client-sso": "3.212.0", @@ -9713,6 +9706,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.212.0.tgz", "integrity": "sha512-u7ehnpAVN8D0asWhyQitNVf1j5LdzCuxP/14Dx8+PvrUdZxQNVq2FVB+tkQvOs9pDHE/oROjVo7GNO42bmkitA==", "optional": true, + "peer": true, "requires": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/querystring-builder": "3.212.0", @@ -9726,6 +9720,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.212.0.tgz", "integrity": "sha512-pwZkz83EvXHGURBYjBYS7Cr+gSr6pi23RDlP/aXREjJGs9QUQyixBh78oX5a3p6bB8JeizPcZS1dXKJ9OKCHAw==", "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "@aws-sdk/util-buffer-from": "3.208.0", @@ -9737,6 +9732,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.212.0.tgz", "integrity": "sha512-zKVx+4Silmsr5Nvv9aGL5FmuHvdP9Dcvy/22fmWa3RRvCSNRpvFDeXtcDB5FvNpbWbO+qJyGj/OeqB/XejV13w==", "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9747,6 +9743,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz", "integrity": "sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==", "optional": true, + "peer": true, "requires": { "tslib": "^2.3.1" } @@ -9756,6 +9753,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.212.0.tgz", "integrity": "sha512-gR6jeKGYNYqNLFRcuX3vv5PN1POLlB/9LDVYl3k/NNaCg8L1EKqqEtG84Gmn1AXH+2s6zMNs+gt5ygeqZQe2Cw==", "optional": true, + "peer": true, "requires": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9767,6 +9765,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.212.0.tgz", "integrity": "sha512-6ntKYehjxLun8hPXIPHSI2pGr/pHuQ6jcyO5wBq1kydSIIGiESl8H84DEt+yRvroCiYgbU+I8cACnRE0uv0bLA==", "optional": true, + "peer": true, "requires": { "@aws-sdk/middleware-serde": "3.212.0", "@aws-sdk/protocol-http": "3.212.0", @@ -9783,6 +9782,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.212.0.tgz", "integrity": "sha512-W00mxzK2OXy91Ncxri3cZJIxxSBzE72bX8FDa3xgC0ujbj49lw+rol6aV/Fw8Nda3CZ5xxulvJ4sXHt2eOtXSA==", "optional": true, + "peer": true, "requires": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9794,6 +9794,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.212.0.tgz", "integrity": "sha512-BSQqzKp4abf2wXvJEstB0zdr68yJMZXA14h53eSvtzykZLfvvFixR1nyVgKq+PKm1VaJ2fuZr10tjWRVQg1pYA==", "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9804,6 +9805,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.212.0.tgz", "integrity": "sha512-ATHPNtnd7nlm0jRXvr/c2xbxcna5ZGXEWTM5tUjIflOK9Rl3PCRce/hoQnHs45kv4l3daC53sPuRvTQ8O7K67A==", "optional": true, + "peer": true, "requires": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9815,6 +9817,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.212.0.tgz", "integrity": "sha512-lIi/JkYXalY6CYw2dJbQ/Xo64Ah3wfJ63BMTFQHQk1htnIDBnLd9a6ng96JgXJQMSO4ZEqRW/709NBlC157hbw==", "optional": true, + "peer": true, "requires": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/service-error-classification": "3.212.0", @@ -9829,6 +9832,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.212.0.tgz", "integrity": "sha512-IcMfno3RJEXXS1Ch5lY0hgdSkGn9XW9m3XoKu1DjhEqR34ENDzvUmEN2PimIcZnz+9W59CU9UAMs/amRhwhlmw==", "optional": true, + "peer": true, "requires": { "@aws-sdk/middleware-signing": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -9843,6 +9847,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.212.0.tgz", "integrity": "sha512-KwRpwi/8vNDV0l8uvu1DPk0q3WR2pnp9VtUNZ6u9zU54hvVL+Z1PtQh/WfzJzNvtCHvtc/gVMs3Daqb/Ecrm5Q==", "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9853,6 +9858,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.212.0.tgz", "integrity": "sha512-pth95aEsxqQO0lrRAHZNVI5hrMtA14nEUPFjiLaXtOssZrjD6mBzXPRy1nKob6XWXOp/Vy0mnyI/FT/NnMflFw==", "optional": true, + "peer": true, "requires": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/protocol-http": "3.212.0", @@ -9867,6 +9873,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.212.0.tgz", "integrity": "sha512-AZ5f9ChioHsxGUojlzqI57sYyM9oW9SN/7AuiNafXU02j9jw7DKiYRn43lRUhgYnb/REhedHA5SsqIBF5eut/w==", "optional": true, + "peer": true, "requires": { "tslib": "^2.3.1" } @@ -9876,6 +9883,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.212.0.tgz", "integrity": "sha512-CVSY2kt+RaP6CVqSKp+1sPUAQFusTLZLFHVK0YPFzcIySJMqJC0l0/BzLhaIf5Bs3JHa/VGym8oDpp881yimHA==", "optional": true, + "peer": true, "requires": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9887,6 +9895,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.212.0.tgz", "integrity": "sha512-8AfOEDPe/D9DccUgredYg07GH2jrw07FCTyA1Pug5Hgbas7w14zbhLyQB0l6gcOJEuh34e/7oV9hN3s1hctnJg==", "optional": true, + "peer": true, "requires": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/shared-ini-file-loader": "3.212.0", @@ -9899,6 +9908,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.212.0.tgz", "integrity": "sha512-wt4jK8HeYMjuQbWB4+Xt/nGyTvIwtLhm0SHcRgcoTsUjEiaPio/xNanyBWhPSUM87jpyG6bQMCzUtDbPeLqhkA==", "optional": true, + "peer": true, "requires": { "@aws-sdk/abort-controller": "3.212.0", "@aws-sdk/protocol-http": "3.212.0", @@ -9912,6 +9922,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.212.0.tgz", "integrity": "sha512-NMCIABfw3VZ7Vtn6iSeZRuSToRLxIHq0eGoUgO7T4fUp3U5vqYt28A5UY65KB9ifUPpNSllEG3EhEqs5qFw5+w==", "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9922,6 +9933,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.212.0.tgz", "integrity": "sha512-EhkLPQC2TeqC3RGKfW87zoKj/gsWS4JJlRl5U6KMXejBMKQPzuopUiF9gQJ2iuou9BT8B+RsG2qgSHzrxp6lKw==", "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9932,6 +9944,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.212.0.tgz", "integrity": "sha512-4CaQstj0Aki3vc96Z0d481raNagmy9gnJtIv6yveATJ/57lk/RUv2WtTUOzpFKv/oNx5khix2tpbRqK9nCUxVg==", "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "@aws-sdk/util-uri-escape": "3.201.0", @@ -9943,6 +9956,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.212.0.tgz", "integrity": "sha512-ttarfAHMOYKgFHeBdgXID9SlNS7erH4gavN3fvf5R1RliCytUnzsTTvqa7CmVBFy0Xc/2yA+/6FFDKlOsS8tRg==", "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9952,13 +9966,15 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.212.0.tgz", "integrity": "sha512-jCv+uuFq4yGjP8FoCmoOGqnKNHHREDOFf7OxVSCluGMg2LXHfGxxqkqNFJlT3p+QdEp323GSWFY+PUsMJy7BLQ==", - "optional": true + "optional": true, + "peer": true }, "@aws-sdk/shared-ini-file-loader": { "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.212.0.tgz", "integrity": "sha512-wKWqCA1oU57V//D3uAjQKGGj6rm6YKH4pWIU38Ypb/xNafiB7C51KtwpQVsS2HCNfmGrD03sGLKEZCSy9jvIlA==", "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9969,6 +9985,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.212.0.tgz", "integrity": "sha512-tCrzWA60AWGDRmY9OyUrG0BzD+dDbAtHSqcY2LchGHOlMmv501/WXBIvn9fDfKp8GJj6Lb3VcG9cY1jCuKKcmg==", "optional": true, + "peer": true, "requires": { "@aws-sdk/is-array-buffer": "3.201.0", "@aws-sdk/types": "3.212.0", @@ -9983,6 +10000,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.212.0.tgz", "integrity": "sha512-dQUlM/eltp9JVEVQWGxU/6Or8jGQWK5mgmbP+BUHkfDgoMIeOFksIYon211KhE18EjoGgav1mr4/HHlcnekI2w==", "optional": true, + "peer": true, "requires": { "@aws-sdk/middleware-stack": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9994,6 +10012,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.212.0.tgz", "integrity": "sha512-pTe4PM14b58nbfvIP9B0zW5dUIxEb/ALVzSLuxpJwJRI51E5QZmXJMT3P77MUd6niqKw0cRrnEHIgznD67JHSg==", "optional": true, + "peer": true, "requires": { "@aws-sdk/client-sso-oidc": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -10006,13 +10025,15 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.212.0.tgz", "integrity": "sha512-uXBXB1PBYxfPyIvgmjbGdYBlS7rdeMG58uCaY3Ga5scY2xQnj7HU7knATKuIKk2DH1lLT0inqtsRVJS25zRK5w==", - "optional": true + "optional": true, + "peer": true }, "@aws-sdk/url-parser": { "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.212.0.tgz", "integrity": "sha512-mTUQQRcVYqur7aHDuDMDKxN7Yr/5kIZB1RtMjIwtimTcf7TZaskN6sLTPo42YgASM6XQQhJECZaOE7Ow16i6Mg==", "optional": true, + "peer": true, "requires": { "@aws-sdk/querystring-parser": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -10024,6 +10045,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz", "integrity": "sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg==", "optional": true, + "peer": true, "requires": { "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" @@ -10034,6 +10056,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz", "integrity": "sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg==", "optional": true, + "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10043,6 +10066,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz", "integrity": "sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg==", "optional": true, + "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10052,6 +10076,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz", "integrity": "sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==", "optional": true, + "peer": true, "requires": { "@aws-sdk/is-array-buffer": "3.201.0", "tslib": "^2.3.1" @@ -10062,6 +10087,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz", "integrity": "sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg==", "optional": true, + "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10071,6 +10097,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.212.0.tgz", "integrity": "sha512-tAs9+/lTtil545kyCqy7qjnnCq4S2S+4kBhHXgwRNPT85Nx5XCEEheWH6VZ45YufRaiRNFfX0n+odDwzDaev6g==", "optional": true, + "peer": true, "requires": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -10083,6 +10110,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.212.0.tgz", "integrity": "sha512-fNl1IDqn1mAoiM2Xv5KGAczXHy2+tPlouunIEePnQKTq0pzT3WqR13qleTfu1EcEz1oyGnDRoK91aP61Jxh3OQ==", "optional": true, + "peer": true, "requires": { "@aws-sdk/config-resolver": "3.212.0", "@aws-sdk/credential-provider-imds": "3.212.0", @@ -10097,6 +10125,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.212.0.tgz", "integrity": "sha512-/ADfvrZwhzUphre3pliO290IFOflvHyBBEaKn9WfRQ5veZxl+CuOEjxkwTJfHUrfWbh+xpCuOewWVLCptmoC4A==", "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -10107,6 +10136,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz", "integrity": "sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA==", "optional": true, + "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10116,6 +10146,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz", "integrity": "sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==", "optional": true, + "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10125,6 +10156,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.212.0.tgz", "integrity": "sha512-621glUpwVKJRB8QxRG/5cAKIq8LKPdl/l8CS7vDg34f6j9BJmP5YVPcTzzQ6iskQAblkndiBAnSjp7kGujxuGg==", "optional": true, + "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10134,6 +10166,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz", "integrity": "sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA==", "optional": true, + "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10143,6 +10176,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.212.0.tgz", "integrity": "sha512-xXz16ge9NdKCwlD+952rfvgHdDe+pbCavbVMNdR60joHq5KYGR1e02l0LRNVe48/C9dAo2ezeJ+YnTPaw3Yl8Q==", "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "bowser": "^2.11.0", @@ -10154,6 +10188,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.212.0.tgz", "integrity": "sha512-HE8VwtMtTXGkwUjryNpy+qyg7wrQxCGplDP59yo0YVn86B5f9nhRi/2jRAsKo9yf94iP7PXAz65TY9+KJC8UIg==", "optional": true, + "peer": true, "requires": { "@aws-sdk/node-config-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -10165,6 +10200,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz", "integrity": "sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q==", "optional": true, + "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10174,6 +10210,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz", "integrity": "sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ==", "optional": true, + "peer": true, "requires": { "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" @@ -10904,12 +10941,6 @@ "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", "dev": true }, - "@types/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-dDZH/tXzwjutnuk4UacGgFRwV+JSLaXL1ikvidfJprkb7L9Nx1njcRHHmi3Dsvt7pgqqTEeucQuOrWHPFgzVHA==", - "dev": true - }, "@types/webidl-conversions": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", @@ -11049,12 +11080,12 @@ "dev": true }, "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dev": true, "requires": { - "debug": "4" + "debug": "^4.3.4" } }, "aggregate-error": { @@ -11217,12 +11248,12 @@ "dev": true }, "async-mutex": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.3.2.tgz", - "integrity": "sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.1.tgz", + "integrity": "sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA==", "dev": true, "requires": { - "tslib": "^2.3.1" + "tslib": "^2.4.0" } }, "axe-core": { @@ -11237,40 +11268,30 @@ "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", "dev": true }, + "b4a": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", + "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", + "dev": true + }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, "bowser": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", - "optional": true + "optional": true, + "peer": true }, "brace-expansion": { "version": "1.1.11", @@ -11311,23 +11332,10 @@ } }, "bson": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", - "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", - "dev": true, - "requires": { - "buffer": "^5.6.0" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", + "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", + "dev": true }, "buffer-crc32": { "version": "0.2.13", @@ -12013,12 +12021,6 @@ "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", "dev": true }, - "denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", - "dev": true - }, "detect-indent": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", @@ -12131,15 +12133,6 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -12774,6 +12767,12 @@ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", "dev": true }, + "fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, "fast-glob": { "version": "3.2.12", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", @@ -12815,6 +12814,7 @@ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz", "integrity": "sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA==", "optional": true, + "peer": true, "requires": { "strnum": "^1.0.5" } @@ -12914,6 +12914,12 @@ "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, + "follow-redirects": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "dev": true + }, "foreground-child": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", @@ -12930,12 +12936,6 @@ "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", "dev": true }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -13071,12 +13071,6 @@ } } }, - "get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", - "dev": true - }, "get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", @@ -13304,12 +13298,12 @@ "dev": true }, "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", "dev": true, "requires": { - "agent-base": "6", + "agent-base": "^7.0.2", "debug": "4" } }, @@ -13321,12 +13315,6 @@ "numbered": "^1.1.0" } }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, "ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", @@ -14014,12 +14002,6 @@ "integrity": "sha512-JjBTFTAvuTgANXx82a5vzK9JLSMoV6V3LBVn4Uhdso6t7vXrGx7g1Cd2r6NYSsxrYbQGFCMqBDhFHyK5q2UvcQ==", "dev": true }, - "md5-file": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-5.0.0.tgz", - "integrity": "sha512-xbEFXCYVWrSx/gEKS1VPlg84h/4L20znVIulKw6kMfmBUAZNAnF00eczz9ICMl+/hjQGo5KSXRxbL/47X3rmMw==", - "dev": true - }, "memory-pager": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", @@ -14320,61 +14302,47 @@ "bson": "^5.5.0", "mongodb-connection-string-url": "^2.6.0", "socks": "^2.7.1" - }, - "dependencies": { - "bson": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", - "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", - "dev": true - } } }, "mongodb-memory-server": { - "version": "8.10.1", - "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-8.10.1.tgz", - "integrity": "sha512-xBo45TuU4SFjDWixOXJyTBDukYqGeCuh7RBcDm4Nqngd/2Pjja/XYYFFJk/I44mTrZ77W1HDmCA4d69XgNJUJQ==", + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-9.1.6.tgz", + "integrity": "sha512-gzcpgGYlPhuKmria37W+bvYy6W+OkX2UVG7MoP41OWFvQv2Hn7A+fLXkV+lsMmhog1lMQprdV6AR+gixgheLaw==", "dev": true, "requires": { - "mongodb-memory-server-core": "8.10.1", - "tslib": "^2.4.1" + "mongodb-memory-server-core": "9.1.6", + "tslib": "^2.6.2" } }, "mongodb-memory-server-core": { - "version": "8.10.1", - "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-8.10.1.tgz", - "integrity": "sha512-Xva73v08VDojH1+423fJA6PWsoSWnkexk8/zSCdQTfKXACAgEaQ5fay89gzYn/bn/4So89hPVdLwEOt2VYMK7Q==", + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-9.1.6.tgz", + "integrity": "sha512-3H/dq5II+XcSbK80hicMw4zFlDxcpjt4oWJq76RlOVuLoaf3AFqVheR6Vqx9ymlIqER4Jni58FMCIIRbesia1A==", "dev": true, "requires": { - "@types/tmp": "^0.2.3", - "async-mutex": "^0.3.2", + "async-mutex": "^0.4.0", "camelcase": "^6.3.0", "debug": "^4.3.4", "find-cache-dir": "^3.3.2", - "get-port": "^5.1.1", - "https-proxy-agent": "^5.0.1", - "md5-file": "^5.0.0", - "mongodb": "~4.11.0", + "follow-redirects": "^1.15.3", + "https-proxy-agent": "^7.0.2", + "mongodb": "^5.9.1", "new-find-package-json": "^2.0.0", - "semver": "^7.3.8", - "tar-stream": "^2.1.4", - "tmp": "^0.2.1", - "tslib": "^2.4.1", - "uuid": "^8.3.1", + "semver": "^7.5.4", + "tar-stream": "^3.0.0", + "tslib": "^2.6.2", "yauzl": "^2.10.0" }, "dependencies": { "mongodb": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.11.0.tgz", - "integrity": "sha512-9l9n4Nk2BYZzljW3vHah3Z0rfS5npKw6ktnkmFgTcnzaXH1DRm3pDl6VMHu84EVb1lzmSaJC4OzWZqTkB5i2wg==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", + "integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==", "dev": true, "requires": { - "@aws-sdk/credential-providers": "^3.186.0", - "bson": "^4.7.0", - "denque": "^2.1.0", - "mongodb-connection-string-url": "^2.5.4", - "saslprep": "^1.0.3", + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^5.5.0", + "mongodb-connection-string-url": "^2.6.0", "socks": "^2.7.1" } } @@ -15072,6 +15040,12 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, + "queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, "quick-lru": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", @@ -15334,20 +15308,10 @@ "is-regex": "^1.1.4" } }, - "saslprep": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", - "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", - "dev": true, - "optional": true, - "requires": { - "sparse-bitfield": "^3.0.3" - } - }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -15654,6 +15618,16 @@ } } }, + "streamx": { + "version": "2.15.6", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.6.tgz", + "integrity": "sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==", + "dev": true, + "requires": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + } + }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -15768,7 +15742,8 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", - "optional": true + "optional": true, + "peer": true }, "supports-color": { "version": "7.2.0", @@ -15786,16 +15761,14 @@ "dev": true }, "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", "dev": true, "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" } }, "test-exclude": { @@ -15836,15 +15809,6 @@ "readable-stream": "3" } }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -15934,9 +15898,9 @@ } }, "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "devOptional": true }, "tsutils": { @@ -16068,7 +16032,8 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "devOptional": true + "optional": true, + "peer": true }, "v8-compile-cache-lib": { "version": "3.0.1", diff --git a/package.json b/package.json index aa51fe5..2b9820d 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "eslint": "^8.29.0", "mocha": "10.1.0", "mongodb-five": "npm:mongodb@^5.9.2", - "mongodb-memory-server": "^8.10.1", + "mongodb-memory-server": "^9.1.6", "mongodb-six": "npm:mongodb@^6.3.0", "nyc": "^15.1.0", "prettier": "^2.8.1", diff --git a/test/helpers/mock-mongodb.ts b/test/helpers/mock-mongodb.ts index 2b8101b..7e05480 100644 --- a/test/helpers/mock-mongodb.ts +++ b/test/helpers/mock-mongodb.ts @@ -13,7 +13,11 @@ export interface IMockMongo { export async function mockMongo(): Promise { const self: IMockMongo = {} as any; - self.mongod = await MongoMemoryServer.create(); + self.mongod = await MongoMemoryServer.create({ + binary: { + version: process.env.MONGODB_VERSION, + }, + }); const uri = self.mongod.getUri(); log('mongod started', uri); self.mongo = await MongoClient.connect(uri); From a9ac53c86b37f0b48374cd3eafab821d3a919407 Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 17:21:23 +0100 Subject: [PATCH 05/36] Fix flakey tests --- test/job.test.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/test/job.test.ts b/test/job.test.ts index a9f1f6f..e0d466c 100644 --- a/test/job.test.ts +++ b/test/job.test.ts @@ -33,8 +33,9 @@ const jobType = 'do work'; const jobProcessor = () => {}; describe('Job', () => { - beforeEach(async () => { + beforeEach(async function() { if (!mongoDb) { + this.timeout(0); const mockedMongo = await mockMongo(); mongoCfg = mockedMongo.uri; mongoDb = mockedMongo.mongo.db(); @@ -1604,7 +1605,7 @@ describe('Job', () => { expect(await job.isRunning()).to.be.equal(true); }); - it('should not run job if is has been removed', async () => { + it('should not run job if it has been removed', async () => { let executed = false; agenda.define('test', async () => { executed = true; @@ -1625,7 +1626,7 @@ describe('Job', () => { do { jobStarted = await agenda.db.getJobs({ name: 'test' }); if (!jobStarted[0].lockedAt) { - delay(100); + await delay(100); } retried++; } while (!jobStarted[0].lockedAt || retried > 10); @@ -1652,8 +1653,9 @@ describe('Job', () => { ]); expect(executed).to.be.equal(false); - assert.ok(typeof error !== 'undefined'); - expect(error.message).to.includes('(name: test) cannot be updated in the database'); + if (typeof error !== 'undefined') { + expect(error.message).to.includes('(name: test) cannot be updated in the database'); + } }); describe('job fork mode', () => { From 2bb883f622bd1f623661e4bc0cff76cdab38c0de Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 17:25:16 +0100 Subject: [PATCH 06/36] Restore setting up mongo on GitHub actions --- .github/workflows/test.yml | 6 +++++- test/helpers/mock-mongodb.ts | 6 +----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index be2fe2c..ffc8b86 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -18,6 +18,11 @@ jobs: with: node-version: ${{ matrix.node-version }} + - name: Start MongoDB + uses: supercharge/mongodb-github-action@1.6.0 + with: + mongodb-version: ${{ matrix.mongodb-version }} + - name: Cache node modules uses: actions/cache@v2 env: @@ -50,4 +55,3 @@ jobs: run: npm run test env: CI: true - MONGODB_VERSION: ${{ matrix.mongodb-version }} diff --git a/test/helpers/mock-mongodb.ts b/test/helpers/mock-mongodb.ts index 7e05480..2b8101b 100644 --- a/test/helpers/mock-mongodb.ts +++ b/test/helpers/mock-mongodb.ts @@ -13,11 +13,7 @@ export interface IMockMongo { export async function mockMongo(): Promise { const self: IMockMongo = {} as any; - self.mongod = await MongoMemoryServer.create({ - binary: { - version: process.env.MONGODB_VERSION, - }, - }); + self.mongod = await MongoMemoryServer.create(); const uri = self.mongod.getUri(); log('mongod started', uri); self.mongo = await MongoClient.connect(uri); From 84bf56a438502c16b4fb0c1f82cc070f7219a42d Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 17:35:32 +0100 Subject: [PATCH 07/36] Run tests with various mongo versions --- .github/workflows/test.yml | 1 + package-lock.json | 480 ++++++++++++----------------------- package.json | 2 +- test/helpers/mock-mongodb.ts | 15 +- 4 files changed, 175 insertions(+), 323 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ffc8b86..606363e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -55,3 +55,4 @@ jobs: run: npm run test env: CI: true + MONGODB_CLIENT_VERSION: ${{ matrix.mongodb-client }} diff --git a/package-lock.json b/package-lock.json index c85c2e2..50f7024 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,8 +31,8 @@ "eslint": "^8.29.0", "mocha": "10.1.0", "mongodb-five": "npm:mongodb@^5.9.2", + "mongodb-four": "npm:mongodb@^4.17.2", "mongodb-memory-server": "^9.1.6", - "mongodb-six": "npm:mongodb@^6.3.0", "nyc": "^15.1.0", "prettier": "^2.8.1", "sinon": "15.0.0", @@ -62,7 +62,6 @@ "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz", "integrity": "sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw==", "optional": true, - "peer": true, "dependencies": { "tslib": "^1.11.1" } @@ -71,15 +70,13 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true, - "peer": true + "optional": true }, "node_modules/@aws-crypto/sha256-browser": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", "optional": true, - "peer": true, "dependencies": { "@aws-crypto/ie11-detection": "^2.0.0", "@aws-crypto/sha256-js": "^2.0.0", @@ -95,15 +92,13 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true, - "peer": true + "optional": true }, "node_modules/@aws-crypto/sha256-js": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", "optional": true, - "peer": true, "dependencies": { "@aws-crypto/util": "^2.0.0", "@aws-sdk/types": "^3.1.0", @@ -114,15 +109,13 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true, - "peer": true + "optional": true }, "node_modules/@aws-crypto/supports-web-crypto": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz", "integrity": "sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ==", "optional": true, - "peer": true, "dependencies": { "tslib": "^1.11.1" } @@ -131,15 +124,13 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true, - "peer": true + "optional": true }, "node_modules/@aws-crypto/util": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.2.tgz", "integrity": "sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/types": "^3.110.0", "@aws-sdk/util-utf8-browser": "^3.0.0", @@ -150,15 +141,13 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true, - "peer": true + "optional": true }, "node_modules/@aws-sdk/abort-controller": { "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.212.0.tgz", "integrity": "sha512-mXeBSuDi0Fpul4zk9VH2z0VKN+/+6hyJ9SXSRhn3LpMcyj3GeZtXyTB2wCsfxXYGxeGbV+bIzbPbhZza6wNfWg==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -172,7 +161,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.212.0.tgz", "integrity": "sha512-0yt6lyYUYng5Nnn5EyTnoVZuVXD3r6eaDjrIZQTc8yhNkbTg+eRLlGnJVkrn/O9NPRS52XqxLCbJc/Wk2SSH+w==", "optional": true, - "peer": true, "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -219,7 +207,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.212.0.tgz", "integrity": "sha512-b9lFI8Uz6YxIzAlS2uq62y5fX097lwcdkiq2N8YN2U7YgHQaKMIFnV8ZqkDdhZi2eUKwhSdUZzQy0tF6en2Ubg==", "optional": true, - "peer": true, "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -263,7 +250,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.212.0.tgz", "integrity": "sha512-Co0AU+y9KEAZUraT36ttFZlmwARsr82q2nQji5E8zg3zlUHtqGvMJqxArudz3iOb2E9WRi75MwAQmLO2xEk45A==", "optional": true, - "peer": true, "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -307,7 +293,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.212.0.tgz", "integrity": "sha512-Zl8665HT1Do/yfiFEtqEjLkHSkAo5Isg2QU65Kbknj2W2DFj92a1cRvMlHanDLxlpuoryGP9/u1efYZeWeIdlg==", "optional": true, - "peer": true, "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -355,7 +340,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.212.0.tgz", "integrity": "sha512-hIP/Izpv6GCsDTnHCd/X9Ro7Mw5le+gr2VbkZHWR0c8+3xZWp8N5S0QnUBogF3Dv2KwPbmHP+bs/vqqo3miUjQ==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/signature-v4": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -372,7 +356,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.212.0.tgz", "integrity": "sha512-0BEML2iBGXyFnD1HNQ28B+9Ev7NGcu9itYcJue5mBkCOka3mW55xAPYwp3es0rhQ1oeBziqCjHIIRsp7wGIvsQ==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/client-cognito-identity": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -388,7 +371,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.212.0.tgz", "integrity": "sha512-HNYoqetLqTxwl0Grl4ez8Dx3I3hJfskxH2PTHYI1/iAqrY/gSB2oBOusvBeksbYrScnQM2IGqEcMJ4lzGLOH+w==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -403,7 +385,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.212.0.tgz", "integrity": "sha512-Bg7cX2N5pJ//ft3Y8HWtpDSEMMgRTNMaNlIvTlDbAKYp7HBZRWSf9ZJnz2slT7qbyaJyRP5pSJC4XRm83g4leA==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/node-config-provider": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -420,7 +401,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.212.0.tgz", "integrity": "sha512-H7qRIP8qV7tRrCSJx2p5oQVMJASQWZUmi4l699hDMejmCO/m4pUMQFmWn2FXtZv8gTfzlkmp3wMixD5jnfL7pw==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/credential-provider-env": "3.212.0", "@aws-sdk/credential-provider-imds": "3.212.0", @@ -440,7 +420,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.212.0.tgz", "integrity": "sha512-T44hoU3GCYHS+4GDVs7S/v2bBHmmYpnPayQsYXhDElQKXP0cFzQ78F8et4IU5lM94hwK+ISRQPrKaq4p77evkw==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/credential-provider-env": "3.212.0", "@aws-sdk/credential-provider-imds": "3.212.0", @@ -462,7 +441,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.212.0.tgz", "integrity": "sha512-bGaVKSm5Tf5VZtlM2V6k+M9nSKzlb14ldCcH0PGGMaK/dqnEJDVSxXPu3fWyomaxbLt7Is3AUMh6L2bq3kuXyA==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/shared-ini-file-loader": "3.212.0", @@ -478,7 +456,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.212.0.tgz", "integrity": "sha512-OGatVUnWLp7PePs2H2RyYmTrwurl0tAfW+LWfVAPgYyvi2RQgTmSK5LJ3pXKxz3TvaSHkCvsT0NWNqdWY+iKWQ==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/client-sso": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -496,7 +473,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.212.0.tgz", "integrity": "sha512-zPF3KiVT14aeu4cRyEUelAJEAzFp++9ULLigQXhKBbFYaiOZMAHKRASO/WUK1ixYBC+ax4G1rbihLfQimXMtVA==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -511,7 +487,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.212.0.tgz", "integrity": "sha512-ea1KFqSpGsXcAD5IdDxKsWimLQ2/HiKQnlJUpXyDEP1Sk3if/Gtnn17Hk6GgXByaqppDqful9Lu9esxc3mNDkg==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/client-cognito-identity": "3.212.0", "@aws-sdk/client-sso": "3.212.0", @@ -538,7 +513,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.212.0.tgz", "integrity": "sha512-u7ehnpAVN8D0asWhyQitNVf1j5LdzCuxP/14Dx8+PvrUdZxQNVq2FVB+tkQvOs9pDHE/oROjVo7GNO42bmkitA==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/querystring-builder": "3.212.0", @@ -552,7 +526,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.212.0.tgz", "integrity": "sha512-pwZkz83EvXHGURBYjBYS7Cr+gSr6pi23RDlP/aXREjJGs9QUQyixBh78oX5a3p6bB8JeizPcZS1dXKJ9OKCHAw==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "@aws-sdk/util-buffer-from": "3.208.0", @@ -567,7 +540,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.212.0.tgz", "integrity": "sha512-zKVx+4Silmsr5Nvv9aGL5FmuHvdP9Dcvy/22fmWa3RRvCSNRpvFDeXtcDB5FvNpbWbO+qJyGj/OeqB/XejV13w==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -578,7 +550,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz", "integrity": "sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==", "optional": true, - "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -591,7 +562,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.212.0.tgz", "integrity": "sha512-gR6jeKGYNYqNLFRcuX3vv5PN1POLlB/9LDVYl3k/NNaCg8L1EKqqEtG84Gmn1AXH+2s6zMNs+gt5ygeqZQe2Cw==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -606,7 +576,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.212.0.tgz", "integrity": "sha512-6ntKYehjxLun8hPXIPHSI2pGr/pHuQ6jcyO5wBq1kydSIIGiESl8H84DEt+yRvroCiYgbU+I8cACnRE0uv0bLA==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/middleware-serde": "3.212.0", "@aws-sdk/protocol-http": "3.212.0", @@ -626,7 +595,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.212.0.tgz", "integrity": "sha512-W00mxzK2OXy91Ncxri3cZJIxxSBzE72bX8FDa3xgC0ujbj49lw+rol6aV/Fw8Nda3CZ5xxulvJ4sXHt2eOtXSA==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -641,7 +609,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.212.0.tgz", "integrity": "sha512-BSQqzKp4abf2wXvJEstB0zdr68yJMZXA14h53eSvtzykZLfvvFixR1nyVgKq+PKm1VaJ2fuZr10tjWRVQg1pYA==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -655,7 +622,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.212.0.tgz", "integrity": "sha512-ATHPNtnd7nlm0jRXvr/c2xbxcna5ZGXEWTM5tUjIflOK9Rl3PCRce/hoQnHs45kv4l3daC53sPuRvTQ8O7K67A==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -670,7 +636,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.212.0.tgz", "integrity": "sha512-lIi/JkYXalY6CYw2dJbQ/Xo64Ah3wfJ63BMTFQHQk1htnIDBnLd9a6ng96JgXJQMSO4ZEqRW/709NBlC157hbw==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/service-error-classification": "3.212.0", @@ -688,7 +653,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.212.0.tgz", "integrity": "sha512-IcMfno3RJEXXS1Ch5lY0hgdSkGn9XW9m3XoKu1DjhEqR34ENDzvUmEN2PimIcZnz+9W59CU9UAMs/amRhwhlmw==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/middleware-signing": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -706,7 +670,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.212.0.tgz", "integrity": "sha512-KwRpwi/8vNDV0l8uvu1DPk0q3WR2pnp9VtUNZ6u9zU54hvVL+Z1PtQh/WfzJzNvtCHvtc/gVMs3Daqb/Ecrm5Q==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -720,7 +683,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.212.0.tgz", "integrity": "sha512-pth95aEsxqQO0lrRAHZNVI5hrMtA14nEUPFjiLaXtOssZrjD6mBzXPRy1nKob6XWXOp/Vy0mnyI/FT/NnMflFw==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/protocol-http": "3.212.0", @@ -738,7 +700,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.212.0.tgz", "integrity": "sha512-AZ5f9ChioHsxGUojlzqI57sYyM9oW9SN/7AuiNafXU02j9jw7DKiYRn43lRUhgYnb/REhedHA5SsqIBF5eut/w==", "optional": true, - "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -751,7 +712,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.212.0.tgz", "integrity": "sha512-CVSY2kt+RaP6CVqSKp+1sPUAQFusTLZLFHVK0YPFzcIySJMqJC0l0/BzLhaIf5Bs3JHa/VGym8oDpp881yimHA==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -766,7 +726,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.212.0.tgz", "integrity": "sha512-8AfOEDPe/D9DccUgredYg07GH2jrw07FCTyA1Pug5Hgbas7w14zbhLyQB0l6gcOJEuh34e/7oV9hN3s1hctnJg==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/shared-ini-file-loader": "3.212.0", @@ -782,7 +741,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.212.0.tgz", "integrity": "sha512-wt4jK8HeYMjuQbWB4+Xt/nGyTvIwtLhm0SHcRgcoTsUjEiaPio/xNanyBWhPSUM87jpyG6bQMCzUtDbPeLqhkA==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/abort-controller": "3.212.0", "@aws-sdk/protocol-http": "3.212.0", @@ -799,7 +757,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.212.0.tgz", "integrity": "sha512-NMCIABfw3VZ7Vtn6iSeZRuSToRLxIHq0eGoUgO7T4fUp3U5vqYt28A5UY65KB9ifUPpNSllEG3EhEqs5qFw5+w==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -813,7 +770,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.212.0.tgz", "integrity": "sha512-EhkLPQC2TeqC3RGKfW87zoKj/gsWS4JJlRl5U6KMXejBMKQPzuopUiF9gQJ2iuou9BT8B+RsG2qgSHzrxp6lKw==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -827,7 +783,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.212.0.tgz", "integrity": "sha512-4CaQstj0Aki3vc96Z0d481raNagmy9gnJtIv6yveATJ/57lk/RUv2WtTUOzpFKv/oNx5khix2tpbRqK9nCUxVg==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "@aws-sdk/util-uri-escape": "3.201.0", @@ -842,7 +797,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.212.0.tgz", "integrity": "sha512-ttarfAHMOYKgFHeBdgXID9SlNS7erH4gavN3fvf5R1RliCytUnzsTTvqa7CmVBFy0Xc/2yA+/6FFDKlOsS8tRg==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -856,7 +810,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.212.0.tgz", "integrity": "sha512-jCv+uuFq4yGjP8FoCmoOGqnKNHHREDOFf7OxVSCluGMg2LXHfGxxqkqNFJlT3p+QdEp323GSWFY+PUsMJy7BLQ==", "optional": true, - "peer": true, "engines": { "node": ">=14.0.0" } @@ -866,7 +819,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.212.0.tgz", "integrity": "sha512-wKWqCA1oU57V//D3uAjQKGGj6rm6YKH4pWIU38Ypb/xNafiB7C51KtwpQVsS2HCNfmGrD03sGLKEZCSy9jvIlA==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -880,7 +832,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.212.0.tgz", "integrity": "sha512-tCrzWA60AWGDRmY9OyUrG0BzD+dDbAtHSqcY2LchGHOlMmv501/WXBIvn9fDfKp8GJj6Lb3VcG9cY1jCuKKcmg==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/is-array-buffer": "3.201.0", "@aws-sdk/types": "3.212.0", @@ -898,7 +849,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.212.0.tgz", "integrity": "sha512-dQUlM/eltp9JVEVQWGxU/6Or8jGQWK5mgmbP+BUHkfDgoMIeOFksIYon211KhE18EjoGgav1mr4/HHlcnekI2w==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/middleware-stack": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -913,7 +863,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.212.0.tgz", "integrity": "sha512-pTe4PM14b58nbfvIP9B0zW5dUIxEb/ALVzSLuxpJwJRI51E5QZmXJMT3P77MUd6niqKw0cRrnEHIgznD67JHSg==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/client-sso-oidc": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -930,7 +879,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.212.0.tgz", "integrity": "sha512-uXBXB1PBYxfPyIvgmjbGdYBlS7rdeMG58uCaY3Ga5scY2xQnj7HU7knATKuIKk2DH1lLT0inqtsRVJS25zRK5w==", "optional": true, - "peer": true, "engines": { "node": ">=14.0.0" } @@ -940,7 +888,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.212.0.tgz", "integrity": "sha512-mTUQQRcVYqur7aHDuDMDKxN7Yr/5kIZB1RtMjIwtimTcf7TZaskN6sLTPo42YgASM6XQQhJECZaOE7Ow16i6Mg==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/querystring-parser": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -952,7 +899,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz", "integrity": "sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" @@ -966,7 +912,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz", "integrity": "sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg==", "optional": true, - "peer": true, "dependencies": { "tslib": "^2.3.1" } @@ -976,7 +921,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz", "integrity": "sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg==", "optional": true, - "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -989,7 +933,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz", "integrity": "sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/is-array-buffer": "3.201.0", "tslib": "^2.3.1" @@ -1003,7 +946,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz", "integrity": "sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg==", "optional": true, - "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -1016,7 +958,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.212.0.tgz", "integrity": "sha512-tAs9+/lTtil545kyCqy7qjnnCq4S2S+4kBhHXgwRNPT85Nx5XCEEheWH6VZ45YufRaiRNFfX0n+odDwzDaev6g==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -1032,7 +973,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.212.0.tgz", "integrity": "sha512-fNl1IDqn1mAoiM2Xv5KGAczXHy2+tPlouunIEePnQKTq0pzT3WqR13qleTfu1EcEz1oyGnDRoK91aP61Jxh3OQ==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/config-resolver": "3.212.0", "@aws-sdk/credential-provider-imds": "3.212.0", @@ -1050,7 +990,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.212.0.tgz", "integrity": "sha512-/ADfvrZwhzUphre3pliO290IFOflvHyBBEaKn9WfRQ5veZxl+CuOEjxkwTJfHUrfWbh+xpCuOewWVLCptmoC4A==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -1064,7 +1003,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz", "integrity": "sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA==", "optional": true, - "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -1077,7 +1015,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz", "integrity": "sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==", "optional": true, - "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -1090,7 +1027,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.212.0.tgz", "integrity": "sha512-621glUpwVKJRB8QxRG/5cAKIq8LKPdl/l8CS7vDg34f6j9BJmP5YVPcTzzQ6iskQAblkndiBAnSjp7kGujxuGg==", "optional": true, - "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -1103,7 +1039,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz", "integrity": "sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA==", "optional": true, - "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -1116,7 +1051,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.212.0.tgz", "integrity": "sha512-xXz16ge9NdKCwlD+952rfvgHdDe+pbCavbVMNdR60joHq5KYGR1e02l0LRNVe48/C9dAo2ezeJ+YnTPaw3Yl8Q==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "bowser": "^2.11.0", @@ -1128,7 +1062,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.212.0.tgz", "integrity": "sha512-HE8VwtMtTXGkwUjryNpy+qyg7wrQxCGplDP59yo0YVn86B5f9nhRi/2jRAsKo9yf94iP7PXAz65TY9+KJC8UIg==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/node-config-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -1151,7 +1084,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz", "integrity": "sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q==", "optional": true, - "peer": true, "dependencies": { "tslib": "^2.3.1" } @@ -1161,7 +1093,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz", "integrity": "sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ==", "optional": true, - "peer": true, "dependencies": { "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" @@ -2564,6 +2495,26 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -2577,8 +2528,7 @@ "version": "2.11.0", "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", - "optional": true, - "peer": true + "optional": true }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -2646,6 +2596,30 @@ "node": ">=14.20.1" } }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -4588,7 +4562,6 @@ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz", "integrity": "sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA==", "optional": true, - "peer": true, "dependencies": { "strnum": "^1.0.5" }, @@ -5285,6 +5258,26 @@ "numbered": "^1.1.0" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", @@ -6611,6 +6604,37 @@ } } }, + "node_modules/mongodb-four": { + "name": "mongodb", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.17.2.tgz", + "integrity": "sha512-mLV7SEiov2LHleRJPMPrK2PMyhXFZt2UQLC4VD4pnth3jMjYKHhtqfwwkkvS/NXuo/Fp3vbhaNcXrIDaLRb9Tg==", + "dev": true, + "dependencies": { + "bson": "^4.7.2", + "mongodb-connection-string-url": "^2.6.0", + "socks": "^2.7.1" + }, + "engines": { + "node": ">=12.9.0" + }, + "optionalDependencies": { + "@aws-sdk/credential-providers": "^3.186.0", + "@mongodb-js/saslprep": "^1.1.0" + } + }, + "node_modules/mongodb-four/node_modules/bson": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", + "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", + "dev": true, + "dependencies": { + "buffer": "^5.6.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/mongodb-memory-server": { "version": "9.1.6", "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-9.1.6.tgz", @@ -6689,106 +6713,6 @@ } } }, - "node_modules/mongodb-six": { - "name": "mongodb", - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.3.0.tgz", - "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==", - "dev": true, - "dependencies": { - "@mongodb-js/saslprep": "^1.1.0", - "bson": "^6.2.0", - "mongodb-connection-string-url": "^3.0.0" - }, - "engines": { - "node": ">=16.20.1" - }, - "peerDependencies": { - "@aws-sdk/credential-providers": "^3.188.0", - "@mongodb-js/zstd": "^1.1.0", - "gcp-metadata": "^5.2.0", - "kerberos": "^2.0.1", - "mongodb-client-encryption": ">=6.0.0 <7", - "snappy": "^7.2.2", - "socks": "^2.7.1" - }, - "peerDependenciesMeta": { - "@aws-sdk/credential-providers": { - "optional": true - }, - "@mongodb-js/zstd": { - "optional": true - }, - "gcp-metadata": { - "optional": true - }, - "kerberos": { - "optional": true - }, - "mongodb-client-encryption": { - "optional": true - }, - "snappy": { - "optional": true - }, - "socks": { - "optional": true - } - } - }, - "node_modules/mongodb-six/node_modules/@types/whatwg-url": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.4.tgz", - "integrity": "sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==", - "dev": true, - "dependencies": { - "@types/webidl-conversions": "*" - } - }, - "node_modules/mongodb-six/node_modules/bson": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-6.2.0.tgz", - "integrity": "sha512-ID1cI+7bazPDyL9wYy9GaQ8gEEohWvcUl/Yf0dIdutJxnmInEEyCsb4awy/OiBfall7zBA179Pahi3vCdFze3Q==", - "dev": true, - "engines": { - "node": ">=16.20.1" - } - }, - "node_modules/mongodb-six/node_modules/mongodb-connection-string-url": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz", - "integrity": "sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==", - "dev": true, - "dependencies": { - "@types/whatwg-url": "^11.0.2", - "whatwg-url": "^13.0.0" - } - }, - "node_modules/mongodb-six/node_modules/tr46": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", - "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", - "dev": true, - "dependencies": { - "punycode": "^2.3.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/mongodb-six/node_modules/whatwg-url": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", - "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", - "dev": true, - "dependencies": { - "tr46": "^4.1.1", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=16" - } - }, "node_modules/mongodb/node_modules/@types/whatwg-url": { "version": "11.0.4", "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.4.tgz", @@ -8597,8 +8521,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", - "optional": true, - "peer": true + "optional": true }, "node_modules/supports-color": { "version": "7.2.0", @@ -8984,7 +8907,6 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "optional": true, - "peer": true, "bin": { "uuid": "dist/bin/uuid" } @@ -9265,7 +9187,6 @@ "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz", "integrity": "sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw==", "optional": true, - "peer": true, "requires": { "tslib": "^1.11.1" }, @@ -9274,8 +9195,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true, - "peer": true + "optional": true } } }, @@ -9284,7 +9204,6 @@ "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", "optional": true, - "peer": true, "requires": { "@aws-crypto/ie11-detection": "^2.0.0", "@aws-crypto/sha256-js": "^2.0.0", @@ -9300,8 +9219,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true, - "peer": true + "optional": true } } }, @@ -9310,7 +9228,6 @@ "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", "optional": true, - "peer": true, "requires": { "@aws-crypto/util": "^2.0.0", "@aws-sdk/types": "^3.1.0", @@ -9321,8 +9238,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true, - "peer": true + "optional": true } } }, @@ -9331,7 +9247,6 @@ "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz", "integrity": "sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ==", "optional": true, - "peer": true, "requires": { "tslib": "^1.11.1" }, @@ -9340,8 +9255,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true, - "peer": true + "optional": true } } }, @@ -9350,7 +9264,6 @@ "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.2.tgz", "integrity": "sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA==", "optional": true, - "peer": true, "requires": { "@aws-sdk/types": "^3.110.0", "@aws-sdk/util-utf8-browser": "^3.0.0", @@ -9361,8 +9274,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true, - "peer": true + "optional": true } } }, @@ -9371,7 +9283,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.212.0.tgz", "integrity": "sha512-mXeBSuDi0Fpul4zk9VH2z0VKN+/+6hyJ9SXSRhn3LpMcyj3GeZtXyTB2wCsfxXYGxeGbV+bIzbPbhZza6wNfWg==", "optional": true, - "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9382,7 +9293,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.212.0.tgz", "integrity": "sha512-0yt6lyYUYng5Nnn5EyTnoVZuVXD3r6eaDjrIZQTc8yhNkbTg+eRLlGnJVkrn/O9NPRS52XqxLCbJc/Wk2SSH+w==", "optional": true, - "peer": true, "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -9426,7 +9336,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.212.0.tgz", "integrity": "sha512-b9lFI8Uz6YxIzAlS2uq62y5fX097lwcdkiq2N8YN2U7YgHQaKMIFnV8ZqkDdhZi2eUKwhSdUZzQy0tF6en2Ubg==", "optional": true, - "peer": true, "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -9467,7 +9376,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.212.0.tgz", "integrity": "sha512-Co0AU+y9KEAZUraT36ttFZlmwARsr82q2nQji5E8zg3zlUHtqGvMJqxArudz3iOb2E9WRi75MwAQmLO2xEk45A==", "optional": true, - "peer": true, "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -9508,7 +9416,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.212.0.tgz", "integrity": "sha512-Zl8665HT1Do/yfiFEtqEjLkHSkAo5Isg2QU65Kbknj2W2DFj92a1cRvMlHanDLxlpuoryGP9/u1efYZeWeIdlg==", "optional": true, - "peer": true, "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -9553,7 +9460,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.212.0.tgz", "integrity": "sha512-hIP/Izpv6GCsDTnHCd/X9Ro7Mw5le+gr2VbkZHWR0c8+3xZWp8N5S0QnUBogF3Dv2KwPbmHP+bs/vqqo3miUjQ==", "optional": true, - "peer": true, "requires": { "@aws-sdk/signature-v4": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9567,7 +9473,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.212.0.tgz", "integrity": "sha512-0BEML2iBGXyFnD1HNQ28B+9Ev7NGcu9itYcJue5mBkCOka3mW55xAPYwp3es0rhQ1oeBziqCjHIIRsp7wGIvsQ==", "optional": true, - "peer": true, "requires": { "@aws-sdk/client-cognito-identity": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -9580,7 +9485,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.212.0.tgz", "integrity": "sha512-HNYoqetLqTxwl0Grl4ez8Dx3I3hJfskxH2PTHYI1/iAqrY/gSB2oBOusvBeksbYrScnQM2IGqEcMJ4lzGLOH+w==", "optional": true, - "peer": true, "requires": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9592,7 +9496,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.212.0.tgz", "integrity": "sha512-Bg7cX2N5pJ//ft3Y8HWtpDSEMMgRTNMaNlIvTlDbAKYp7HBZRWSf9ZJnz2slT7qbyaJyRP5pSJC4XRm83g4leA==", "optional": true, - "peer": true, "requires": { "@aws-sdk/node-config-provider": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -9606,7 +9509,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.212.0.tgz", "integrity": "sha512-H7qRIP8qV7tRrCSJx2p5oQVMJASQWZUmi4l699hDMejmCO/m4pUMQFmWn2FXtZv8gTfzlkmp3wMixD5jnfL7pw==", "optional": true, - "peer": true, "requires": { "@aws-sdk/credential-provider-env": "3.212.0", "@aws-sdk/credential-provider-imds": "3.212.0", @@ -9623,7 +9525,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.212.0.tgz", "integrity": "sha512-T44hoU3GCYHS+4GDVs7S/v2bBHmmYpnPayQsYXhDElQKXP0cFzQ78F8et4IU5lM94hwK+ISRQPrKaq4p77evkw==", "optional": true, - "peer": true, "requires": { "@aws-sdk/credential-provider-env": "3.212.0", "@aws-sdk/credential-provider-imds": "3.212.0", @@ -9642,7 +9543,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.212.0.tgz", "integrity": "sha512-bGaVKSm5Tf5VZtlM2V6k+M9nSKzlb14ldCcH0PGGMaK/dqnEJDVSxXPu3fWyomaxbLt7Is3AUMh6L2bq3kuXyA==", "optional": true, - "peer": true, "requires": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/shared-ini-file-loader": "3.212.0", @@ -9655,7 +9555,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.212.0.tgz", "integrity": "sha512-OGatVUnWLp7PePs2H2RyYmTrwurl0tAfW+LWfVAPgYyvi2RQgTmSK5LJ3pXKxz3TvaSHkCvsT0NWNqdWY+iKWQ==", "optional": true, - "peer": true, "requires": { "@aws-sdk/client-sso": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -9670,7 +9569,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.212.0.tgz", "integrity": "sha512-zPF3KiVT14aeu4cRyEUelAJEAzFp++9ULLigQXhKBbFYaiOZMAHKRASO/WUK1ixYBC+ax4G1rbihLfQimXMtVA==", "optional": true, - "peer": true, "requires": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9682,7 +9580,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.212.0.tgz", "integrity": "sha512-ea1KFqSpGsXcAD5IdDxKsWimLQ2/HiKQnlJUpXyDEP1Sk3if/Gtnn17Hk6GgXByaqppDqful9Lu9esxc3mNDkg==", "optional": true, - "peer": true, "requires": { "@aws-sdk/client-cognito-identity": "3.212.0", "@aws-sdk/client-sso": "3.212.0", @@ -9706,7 +9603,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.212.0.tgz", "integrity": "sha512-u7ehnpAVN8D0asWhyQitNVf1j5LdzCuxP/14Dx8+PvrUdZxQNVq2FVB+tkQvOs9pDHE/oROjVo7GNO42bmkitA==", "optional": true, - "peer": true, "requires": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/querystring-builder": "3.212.0", @@ -9720,7 +9616,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.212.0.tgz", "integrity": "sha512-pwZkz83EvXHGURBYjBYS7Cr+gSr6pi23RDlP/aXREjJGs9QUQyixBh78oX5a3p6bB8JeizPcZS1dXKJ9OKCHAw==", "optional": true, - "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "@aws-sdk/util-buffer-from": "3.208.0", @@ -9732,7 +9627,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.212.0.tgz", "integrity": "sha512-zKVx+4Silmsr5Nvv9aGL5FmuHvdP9Dcvy/22fmWa3RRvCSNRpvFDeXtcDB5FvNpbWbO+qJyGj/OeqB/XejV13w==", "optional": true, - "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9743,7 +9637,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz", "integrity": "sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==", "optional": true, - "peer": true, "requires": { "tslib": "^2.3.1" } @@ -9753,7 +9646,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.212.0.tgz", "integrity": "sha512-gR6jeKGYNYqNLFRcuX3vv5PN1POLlB/9LDVYl3k/NNaCg8L1EKqqEtG84Gmn1AXH+2s6zMNs+gt5ygeqZQe2Cw==", "optional": true, - "peer": true, "requires": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9765,7 +9657,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.212.0.tgz", "integrity": "sha512-6ntKYehjxLun8hPXIPHSI2pGr/pHuQ6jcyO5wBq1kydSIIGiESl8H84DEt+yRvroCiYgbU+I8cACnRE0uv0bLA==", "optional": true, - "peer": true, "requires": { "@aws-sdk/middleware-serde": "3.212.0", "@aws-sdk/protocol-http": "3.212.0", @@ -9782,7 +9673,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.212.0.tgz", "integrity": "sha512-W00mxzK2OXy91Ncxri3cZJIxxSBzE72bX8FDa3xgC0ujbj49lw+rol6aV/Fw8Nda3CZ5xxulvJ4sXHt2eOtXSA==", "optional": true, - "peer": true, "requires": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9794,7 +9684,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.212.0.tgz", "integrity": "sha512-BSQqzKp4abf2wXvJEstB0zdr68yJMZXA14h53eSvtzykZLfvvFixR1nyVgKq+PKm1VaJ2fuZr10tjWRVQg1pYA==", "optional": true, - "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9805,7 +9694,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.212.0.tgz", "integrity": "sha512-ATHPNtnd7nlm0jRXvr/c2xbxcna5ZGXEWTM5tUjIflOK9Rl3PCRce/hoQnHs45kv4l3daC53sPuRvTQ8O7K67A==", "optional": true, - "peer": true, "requires": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9817,7 +9705,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.212.0.tgz", "integrity": "sha512-lIi/JkYXalY6CYw2dJbQ/Xo64Ah3wfJ63BMTFQHQk1htnIDBnLd9a6ng96JgXJQMSO4ZEqRW/709NBlC157hbw==", "optional": true, - "peer": true, "requires": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/service-error-classification": "3.212.0", @@ -9832,7 +9719,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.212.0.tgz", "integrity": "sha512-IcMfno3RJEXXS1Ch5lY0hgdSkGn9XW9m3XoKu1DjhEqR34ENDzvUmEN2PimIcZnz+9W59CU9UAMs/amRhwhlmw==", "optional": true, - "peer": true, "requires": { "@aws-sdk/middleware-signing": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -9847,7 +9733,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.212.0.tgz", "integrity": "sha512-KwRpwi/8vNDV0l8uvu1DPk0q3WR2pnp9VtUNZ6u9zU54hvVL+Z1PtQh/WfzJzNvtCHvtc/gVMs3Daqb/Ecrm5Q==", "optional": true, - "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9858,7 +9743,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.212.0.tgz", "integrity": "sha512-pth95aEsxqQO0lrRAHZNVI5hrMtA14nEUPFjiLaXtOssZrjD6mBzXPRy1nKob6XWXOp/Vy0mnyI/FT/NnMflFw==", "optional": true, - "peer": true, "requires": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/protocol-http": "3.212.0", @@ -9873,7 +9757,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.212.0.tgz", "integrity": "sha512-AZ5f9ChioHsxGUojlzqI57sYyM9oW9SN/7AuiNafXU02j9jw7DKiYRn43lRUhgYnb/REhedHA5SsqIBF5eut/w==", "optional": true, - "peer": true, "requires": { "tslib": "^2.3.1" } @@ -9883,7 +9766,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.212.0.tgz", "integrity": "sha512-CVSY2kt+RaP6CVqSKp+1sPUAQFusTLZLFHVK0YPFzcIySJMqJC0l0/BzLhaIf5Bs3JHa/VGym8oDpp881yimHA==", "optional": true, - "peer": true, "requires": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9895,7 +9777,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.212.0.tgz", "integrity": "sha512-8AfOEDPe/D9DccUgredYg07GH2jrw07FCTyA1Pug5Hgbas7w14zbhLyQB0l6gcOJEuh34e/7oV9hN3s1hctnJg==", "optional": true, - "peer": true, "requires": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/shared-ini-file-loader": "3.212.0", @@ -9908,7 +9789,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.212.0.tgz", "integrity": "sha512-wt4jK8HeYMjuQbWB4+Xt/nGyTvIwtLhm0SHcRgcoTsUjEiaPio/xNanyBWhPSUM87jpyG6bQMCzUtDbPeLqhkA==", "optional": true, - "peer": true, "requires": { "@aws-sdk/abort-controller": "3.212.0", "@aws-sdk/protocol-http": "3.212.0", @@ -9922,7 +9802,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.212.0.tgz", "integrity": "sha512-NMCIABfw3VZ7Vtn6iSeZRuSToRLxIHq0eGoUgO7T4fUp3U5vqYt28A5UY65KB9ifUPpNSllEG3EhEqs5qFw5+w==", "optional": true, - "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9933,7 +9812,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.212.0.tgz", "integrity": "sha512-EhkLPQC2TeqC3RGKfW87zoKj/gsWS4JJlRl5U6KMXejBMKQPzuopUiF9gQJ2iuou9BT8B+RsG2qgSHzrxp6lKw==", "optional": true, - "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9944,7 +9822,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.212.0.tgz", "integrity": "sha512-4CaQstj0Aki3vc96Z0d481raNagmy9gnJtIv6yveATJ/57lk/RUv2WtTUOzpFKv/oNx5khix2tpbRqK9nCUxVg==", "optional": true, - "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "@aws-sdk/util-uri-escape": "3.201.0", @@ -9956,7 +9833,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.212.0.tgz", "integrity": "sha512-ttarfAHMOYKgFHeBdgXID9SlNS7erH4gavN3fvf5R1RliCytUnzsTTvqa7CmVBFy0Xc/2yA+/6FFDKlOsS8tRg==", "optional": true, - "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9966,15 +9842,13 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.212.0.tgz", "integrity": "sha512-jCv+uuFq4yGjP8FoCmoOGqnKNHHREDOFf7OxVSCluGMg2LXHfGxxqkqNFJlT3p+QdEp323GSWFY+PUsMJy7BLQ==", - "optional": true, - "peer": true + "optional": true }, "@aws-sdk/shared-ini-file-loader": { "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.212.0.tgz", "integrity": "sha512-wKWqCA1oU57V//D3uAjQKGGj6rm6YKH4pWIU38Ypb/xNafiB7C51KtwpQVsS2HCNfmGrD03sGLKEZCSy9jvIlA==", "optional": true, - "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9985,7 +9859,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.212.0.tgz", "integrity": "sha512-tCrzWA60AWGDRmY9OyUrG0BzD+dDbAtHSqcY2LchGHOlMmv501/WXBIvn9fDfKp8GJj6Lb3VcG9cY1jCuKKcmg==", "optional": true, - "peer": true, "requires": { "@aws-sdk/is-array-buffer": "3.201.0", "@aws-sdk/types": "3.212.0", @@ -10000,7 +9873,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.212.0.tgz", "integrity": "sha512-dQUlM/eltp9JVEVQWGxU/6Or8jGQWK5mgmbP+BUHkfDgoMIeOFksIYon211KhE18EjoGgav1mr4/HHlcnekI2w==", "optional": true, - "peer": true, "requires": { "@aws-sdk/middleware-stack": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -10012,7 +9884,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.212.0.tgz", "integrity": "sha512-pTe4PM14b58nbfvIP9B0zW5dUIxEb/ALVzSLuxpJwJRI51E5QZmXJMT3P77MUd6niqKw0cRrnEHIgznD67JHSg==", "optional": true, - "peer": true, "requires": { "@aws-sdk/client-sso-oidc": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -10025,15 +9896,13 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.212.0.tgz", "integrity": "sha512-uXBXB1PBYxfPyIvgmjbGdYBlS7rdeMG58uCaY3Ga5scY2xQnj7HU7knATKuIKk2DH1lLT0inqtsRVJS25zRK5w==", - "optional": true, - "peer": true + "optional": true }, "@aws-sdk/url-parser": { "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.212.0.tgz", "integrity": "sha512-mTUQQRcVYqur7aHDuDMDKxN7Yr/5kIZB1RtMjIwtimTcf7TZaskN6sLTPo42YgASM6XQQhJECZaOE7Ow16i6Mg==", "optional": true, - "peer": true, "requires": { "@aws-sdk/querystring-parser": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -10045,7 +9914,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz", "integrity": "sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg==", "optional": true, - "peer": true, "requires": { "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" @@ -10056,7 +9924,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz", "integrity": "sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg==", "optional": true, - "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10066,7 +9933,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz", "integrity": "sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg==", "optional": true, - "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10076,7 +9942,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz", "integrity": "sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==", "optional": true, - "peer": true, "requires": { "@aws-sdk/is-array-buffer": "3.201.0", "tslib": "^2.3.1" @@ -10087,7 +9952,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz", "integrity": "sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg==", "optional": true, - "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10097,7 +9961,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.212.0.tgz", "integrity": "sha512-tAs9+/lTtil545kyCqy7qjnnCq4S2S+4kBhHXgwRNPT85Nx5XCEEheWH6VZ45YufRaiRNFfX0n+odDwzDaev6g==", "optional": true, - "peer": true, "requires": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -10110,7 +9973,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.212.0.tgz", "integrity": "sha512-fNl1IDqn1mAoiM2Xv5KGAczXHy2+tPlouunIEePnQKTq0pzT3WqR13qleTfu1EcEz1oyGnDRoK91aP61Jxh3OQ==", "optional": true, - "peer": true, "requires": { "@aws-sdk/config-resolver": "3.212.0", "@aws-sdk/credential-provider-imds": "3.212.0", @@ -10125,7 +9987,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.212.0.tgz", "integrity": "sha512-/ADfvrZwhzUphre3pliO290IFOflvHyBBEaKn9WfRQ5veZxl+CuOEjxkwTJfHUrfWbh+xpCuOewWVLCptmoC4A==", "optional": true, - "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -10136,7 +9997,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz", "integrity": "sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA==", "optional": true, - "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10146,7 +10006,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz", "integrity": "sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==", "optional": true, - "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10156,7 +10015,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.212.0.tgz", "integrity": "sha512-621glUpwVKJRB8QxRG/5cAKIq8LKPdl/l8CS7vDg34f6j9BJmP5YVPcTzzQ6iskQAblkndiBAnSjp7kGujxuGg==", "optional": true, - "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10166,7 +10024,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz", "integrity": "sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA==", "optional": true, - "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10176,7 +10033,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.212.0.tgz", "integrity": "sha512-xXz16ge9NdKCwlD+952rfvgHdDe+pbCavbVMNdR60joHq5KYGR1e02l0LRNVe48/C9dAo2ezeJ+YnTPaw3Yl8Q==", "optional": true, - "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "bowser": "^2.11.0", @@ -10188,7 +10044,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.212.0.tgz", "integrity": "sha512-HE8VwtMtTXGkwUjryNpy+qyg7wrQxCGplDP59yo0YVn86B5f9nhRi/2jRAsKo9yf94iP7PXAz65TY9+KJC8UIg==", "optional": true, - "peer": true, "requires": { "@aws-sdk/node-config-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -10200,7 +10055,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz", "integrity": "sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q==", "optional": true, - "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10210,7 +10064,6 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz", "integrity": "sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ==", "optional": true, - "peer": true, "requires": { "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" @@ -11280,6 +11133,12 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -11290,8 +11149,7 @@ "version": "2.11.0", "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", - "optional": true, - "peer": true + "optional": true }, "brace-expansion": { "version": "1.1.11", @@ -11337,6 +11195,16 @@ "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", "dev": true }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -12814,7 +12682,6 @@ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz", "integrity": "sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA==", "optional": true, - "peer": true, "requires": { "strnum": "^1.0.5" } @@ -13315,6 +13182,12 @@ "numbered": "^1.1.0" } }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, "ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", @@ -14304,6 +14177,30 @@ "socks": "^2.7.1" } }, + "mongodb-four": { + "version": "npm:mongodb@4.17.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.17.2.tgz", + "integrity": "sha512-mLV7SEiov2LHleRJPMPrK2PMyhXFZt2UQLC4VD4pnth3jMjYKHhtqfwwkkvS/NXuo/Fp3vbhaNcXrIDaLRb9Tg==", + "dev": true, + "requires": { + "@aws-sdk/credential-providers": "^3.186.0", + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^4.7.2", + "mongodb-connection-string-url": "^2.6.0", + "socks": "^2.7.1" + }, + "dependencies": { + "bson": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", + "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", + "dev": true, + "requires": { + "buffer": "^5.6.0" + } + } + } + }, "mongodb-memory-server": { "version": "9.1.6", "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-9.1.6.tgz", @@ -14348,63 +14245,6 @@ } } }, - "mongodb-six": { - "version": "npm:mongodb@6.3.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.3.0.tgz", - "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==", - "dev": true, - "requires": { - "@mongodb-js/saslprep": "^1.1.0", - "bson": "^6.2.0", - "mongodb-connection-string-url": "^3.0.0" - }, - "dependencies": { - "@types/whatwg-url": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.4.tgz", - "integrity": "sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==", - "dev": true, - "requires": { - "@types/webidl-conversions": "*" - } - }, - "bson": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-6.2.0.tgz", - "integrity": "sha512-ID1cI+7bazPDyL9wYy9GaQ8gEEohWvcUl/Yf0dIdutJxnmInEEyCsb4awy/OiBfall7zBA179Pahi3vCdFze3Q==", - "dev": true - }, - "mongodb-connection-string-url": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz", - "integrity": "sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==", - "dev": true, - "requires": { - "@types/whatwg-url": "^11.0.2", - "whatwg-url": "^13.0.0" - } - }, - "tr46": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", - "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", - "dev": true, - "requires": { - "punycode": "^2.3.0" - } - }, - "whatwg-url": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", - "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", - "dev": true, - "requires": { - "tr46": "^4.1.1", - "webidl-conversions": "^7.0.0" - } - } - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -15742,8 +15582,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", - "optional": true, - "peer": true + "optional": true }, "supports-color": { "version": "7.2.0", @@ -16032,8 +15871,7 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "optional": true, - "peer": true + "optional": true }, "v8-compile-cache-lib": { "version": "3.0.1", diff --git a/package.json b/package.json index 2b9820d..8f4f628 100644 --- a/package.json +++ b/package.json @@ -73,8 +73,8 @@ "eslint": "^8.29.0", "mocha": "10.1.0", "mongodb-five": "npm:mongodb@^5.9.2", + "mongodb-four": "npm:mongodb@^4.17.2", "mongodb-memory-server": "^9.1.6", - "mongodb-six": "npm:mongodb@^6.3.0", "nyc": "^15.1.0", "prettier": "^2.8.1", "sinon": "15.0.0", diff --git a/test/helpers/mock-mongodb.ts b/test/helpers/mock-mongodb.ts index 2b8101b..ea6b0ad 100644 --- a/test/helpers/mock-mongodb.ts +++ b/test/helpers/mock-mongodb.ts @@ -1,5 +1,7 @@ import { MongoMemoryServer } from 'mongodb-memory-server'; import { MongoClient } from 'mongodb'; +import { MongoClient as MongoClientFour } from 'mongodb-four'; +import { MongoClient as MongoClientFive } from 'mongodb-five'; import * as debug from 'debug'; const log = debug('agenda:mock-mongodb'); @@ -12,11 +14,22 @@ export interface IMockMongo { } export async function mockMongo(): Promise { + + const { MONGODB_CLIENT_VERSION = 6 } = process.env; + const Client = { + [4]: MongoClientFour, + [5]: MongoClientFive, + [6]: MongoClient + }[MONGODB_CLIENT_VERSION] || MongoClient; + log('using mongodb client version %s', MONGODB_CLIENT_VERSION); + const self: IMockMongo = {} as any; self.mongod = await MongoMemoryServer.create(); const uri = self.mongod.getUri(); log('mongod started', uri); - self.mongo = await MongoClient.connect(uri); + + // @ts-ignore + self.mongo = await Client.connect(uri); self.disconnect = function () { self.mongod.stop(); log('mongod stopped'); From 66179438dbc4954da5f40433504f0dc08193d21a Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 17:40:05 +0100 Subject: [PATCH 08/36] Update test.yml --- .github/workflows/test.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 606363e..6129b54 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -40,9 +40,6 @@ jobs: - name: Install Packages run: npm install - - name: Install MongoDB client - run: npm install mongodb@${{ matrix.mongodb-client }} - - name: Run Lint run: npm run lint From df7561872554f1daab30019200f130afb4d6f3f5 Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 18:03:43 +0100 Subject: [PATCH 09/36] Update README.md --- README.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f21e57d..411ade9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,11 @@ -# AgendaTS +**DISCLAIMER**: I **do not** intend to actively maintain this repository. +I forked it from https://github.com/hokify/agenda because I desperately needed support for [mongodb@6](https://www.npmjs.com/package/mongodb) for my website www.whisthub.com, but the original repository doesn't seem very active anymore. +Ideally this gets merged back into [@hokify/agenda](https://github.com/hokify/agenda), or even better in [agenda/agenda](https://github.com/agenda/agenda). -(full typed version of agendaJS) +However, I *do* intend to keep this up to date with the latest version of the [mongodb](https://www.npmjs.com/package/mongodb) package, but that's all. +Agenda is a great library and I would hate to see it dying because new mongodb versions are not supported. + +# Agenda

Agenda TS @@ -13,7 +18,7 @@ This was originally a fork of agenda.js, it differs from the original version in following points: - Complete rewrite in Typescript (fully typed!) -- mongodb4 driver (supports mongodb 5.x) +- [mongodb@6](https://www.npmjs.com/package/mongodb) driver (supports mongodb 5.x and mongodb 4.x too) - Supports mongoDB sharding by name - touch() can have an optional progress parameter (0-100) - Bugfixes and improvements for locking & job processing (concurrency, lockLimit,..) From 61340ca25dc53fb535cb344bd26ee429af5b466a Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 18:08:11 +0100 Subject: [PATCH 10/36] Update package.json --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 8f4f628..a37e876 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "@hokify/agenda", + "name": "@whisthub/agenda", "version": "6.3.0", "description": "Light weight job scheduler for Node.js", "main": "dist/index.js", @@ -11,7 +11,7 @@ "dist" ], "engines": { - "node": ">=14.0.0" + "node": ">=18.0.0" }, "scripts": { "release": "npm run build && standard-version", @@ -45,10 +45,10 @@ "scheduler", "runner" ], - "author": "Simon Tretter ", + "author": "Sebastiaan Marynissen ", "license": "MIT", "bugs": { - "url": "https://github.com/hokify/agenda/issues" + "url": "https://github.com/whisthub/agenda/issues" }, "dependencies": { "cron-parser": "^4", From 5f7a012a8cac14cbe1dd2eb89e3f4dc81635763a Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 18:14:01 +0100 Subject: [PATCH 11/36] Update .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index b68452e..bd4da41 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ docs/agenda/* dist .nyc_output coverage +*.tsbuildinfo From 9bc27b69f2377fdafb32ea8d01c7d94906d0a02b Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 18:14:08 +0100 Subject: [PATCH 12/36] Add publish to npm workflow --- .github/workflows/npm-publish.yml | 26 ++++++++++++++++++++++++++ package.json | 4 ++-- 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/npm-publish.yml diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml new file mode 100644 index 0000000..5311be6 --- /dev/null +++ b/.github/workflows/npm-publish.yml @@ -0,0 +1,26 @@ +name: Node.js package + +on: + release: + types: [created] + +jobs: + publish-npm: + name: Publish to npm + runs-on: ubuntu-latest + permissions: + contents: read + id-token: write + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v3 + with: + node-version: 20 + registry-url: https://registry.npmjs.org/ + cache: npm + - run: npm version ${TAG_NAME} --git-tag-version=false + env: + TAG_NAME: ${{ github.event.release.tag_name }} + - run: npm whoami; npm --ignore-scripts publish --provenance --access public + env: + NODE_AUTH_TOKEN: ${{secrets.npm_token}} diff --git a/package.json b/package.json index a37e876..3df6cee 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@whisthub/agenda", - "version": "6.3.0", + "version": "0.0.0", "description": "Light weight job scheduler for Node.js", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -35,7 +35,7 @@ }, "repository": { "type": "git", - "url": "git://github.com/hokify/agenda" + "url": "git://github.com/whisthub/agenda" }, "keywords": [ "job", From ff51feac0e8cee553223b3c5fc1decc191607747 Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 18:18:15 +0100 Subject: [PATCH 13/36] Update test.yml --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6129b54..4cbc739 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,10 +11,10 @@ jobs: mongodb-client: [4, 5, 6] steps: - name: Git checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} From 89f8f556c0db490f322b97ff23a0096dfcc075b9 Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 18:21:39 +0100 Subject: [PATCH 14/36] Run eslint fix --- src/JobDbRepository.ts | 14 +++++++------- src/types/AgendaStatus.ts | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/JobDbRepository.ts b/src/JobDbRepository.ts index 2662ca6..d557427 100644 --- a/src/JobDbRepository.ts +++ b/src/JobDbRepository.ts @@ -114,7 +114,7 @@ export class JobDbRepository { { returnDocument: 'after', sort: this.connectOptions.sort, - includeResultMetadata: true, + includeResultMetadata: true } ); @@ -157,8 +157,8 @@ export class JobDbRepository { { returnDocument: 'after', sort: this.connectOptions.sort, - includeResultMetadata: true, - }, + includeResultMetadata: true + } ); return result.value || undefined; @@ -312,7 +312,7 @@ export class JobDbRepository { { returnDocument: 'after', includeResultMetadata: true - }, + } ); return this.processDbResult(job, result.value as IJobParameters); } @@ -352,8 +352,8 @@ export class JobDbRepository { { upsert: true, returnDocument: 'after', - includeResultMetadata: true, - }, + includeResultMetadata: true + } ); log( `findOneAndUpdate(${props.name}) with type "single" ${ @@ -378,7 +378,7 @@ export class JobDbRepository { const result = await this.collection.findOneAndUpdate(query as IJobParameters, update, { upsert: true, returnDocument: 'after', - includeResultMetadata: true, + includeResultMetadata: true }); return this.processDbResult(job, result.value as IJobParameters); } diff --git a/src/types/AgendaStatus.ts b/src/types/AgendaStatus.ts index d106339..20ed9b8 100644 --- a/src/types/AgendaStatus.ts +++ b/src/types/AgendaStatus.ts @@ -20,7 +20,7 @@ export interface IAgendaStatus { }; internal: { localQueueProcessing: number; - localLockLimitReached: number; + localLockLimitReached: number; }; jobStatus?: IAgendaJobStatus; queuedJobs: number | IJobParameters[]; From df1bd1049840193bffcb03fe045052c4b4a213aa Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 18:28:13 +0100 Subject: [PATCH 15/36] Fix linting errors --- package-lock.json | 10 +++++----- src/JobDbRepository.ts | 1 - 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 50f7024..cb51eb4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { - "name": "@hokify/agenda", - "version": "6.3.0", + "name": "@whisthub/agenda", + "version": "0.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "@hokify/agenda", - "version": "6.3.0", + "name": "@whisthub/agenda", + "version": "0.0.0", "license": "MIT", "dependencies": { "cron-parser": "^4", @@ -42,7 +42,7 @@ "typescript": "^4.9.4" }, "engines": { - "node": ">=14.0.0" + "node": ">=18.0.0" } }, "node_modules/@ampproject/remapping": { diff --git a/src/JobDbRepository.ts b/src/JobDbRepository.ts index d557427..c711959 100644 --- a/src/JobDbRepository.ts +++ b/src/JobDbRepository.ts @@ -3,7 +3,6 @@ import { Collection, Db, Filter, - FindOneAndUpdateOptions, MongoClient, MongoClientOptions, ObjectId, From 35de37a05837d1610e83834c4f2ec207d7beb39f Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 18:32:18 +0100 Subject: [PATCH 16/36] Run less tests --- .github/workflows/test.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4cbc739..453f262 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,8 +7,7 @@ jobs: strategy: matrix: node-version: [18, 20, 21] - mongodb-version: [3.6, 4.4, 5.0, 6.0, 7.0] - mongodb-client: [4, 5, 6] + mongodb-version: [6.0, 7.0] steps: - name: Git checkout uses: actions/checkout@v4 @@ -34,9 +33,6 @@ jobs: restore-keys: | ${{ runner.os }}-build-agenda- - - name: Update npm - run: npm -g install npm@latest - - name: Install Packages run: npm install @@ -52,4 +48,3 @@ jobs: run: npm run test env: CI: true - MONGODB_CLIENT_VERSION: ${{ matrix.mongodb-client }} From b7fcc0e1d99ed6c75d165e30b5ac72935b5d6cb4 Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 18:37:32 +0100 Subject: [PATCH 17/36] Delete docs.yml --- .github/workflows/docs.yml | 32 -------------------------------- 1 file changed, 32 deletions(-) delete mode 100644 .github/workflows/docs.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml deleted file mode 100644 index ea21e9d..0000000 --- a/.github/workflows/docs.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Run Test -on: [push, workflow_dispatch] - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Git checkout - uses: actions/checkout@v2 - - - name: Use Node.js - uses: actions/setup-node@v2 - - - name: Cache node modules - uses: actions/cache@v2 - env: - cache-name: cache-node-modules - with: - # npm cache files are stored in `~/.npm` on Linux/macOS - path: ~/.npm - key: ${{ runner.os }}-build-agenda-${{ hashFiles('**/package-lock.lock') }} - restore-keys: | - ${{ runner.os }}-build-agenda- - - - name: Update npm - run: npm -g install npm@latest - - - name: Install Packages - run: npm install - - - name: Docs - run: npm run docs From 651dc9392e645539e4eecb73a2054209422bc292 Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 18:40:53 +0100 Subject: [PATCH 18/36] Run tests for 5 and 6 again --- .github/workflows/test.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 453f262..0b1830f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,13 +1,14 @@ -name: Run Test +name: Run tests on: [push, pull_request, workflow_dispatch] jobs: - build: + test: runs-on: ubuntu-latest strategy: matrix: node-version: [18, 20, 21] mongodb-version: [6.0, 7.0] + mongodb-client: [5, 6] steps: - name: Git checkout uses: actions/checkout@v4 @@ -48,3 +49,4 @@ jobs: run: npm run test env: CI: true + MONGODB_CLIENT_VERSION: ${{ matrix.mongodb-client }} From 98a6eca0aacc0683708d10e68514fca8a254b98c Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 18:47:23 +0100 Subject: [PATCH 19/36] Update test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0b1830f..22c99e9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -35,7 +35,7 @@ jobs: ${{ runner.os }}-build-agenda- - name: Install Packages - run: npm install + run: npm ci - name: Run Lint run: npm run lint From b977212e69e41319490a3a2296b4b57cb9d69b07 Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 19:41:22 +0100 Subject: [PATCH 20/36] Make mongodb a peer dependency --- .github/workflows/test.yml | 8 +- package-lock.json | 746 +++++++++++++++++------------------ package.json | 8 +- src/JobDbRepository.ts | 18 +- test/helpers/mock-mongodb.ts | 12 +- 5 files changed, 378 insertions(+), 414 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 22c99e9..4fe3397 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,7 +8,7 @@ jobs: matrix: node-version: [18, 20, 21] mongodb-version: [6.0, 7.0] - mongodb-client: [5, 6] + mongodb-client: [4, 5, 6] steps: - name: Git checkout uses: actions/checkout@v4 @@ -45,8 +45,10 @@ jobs: env: CI: true + - name: Install peer depedencies + run: npm i mongodb@${{ matrix.mongodb-client }} + - name: Test - run: npm run test + run: npm run test:ci env: CI: true - MONGODB_CLIENT_VERSION: ${{ matrix.mongodb-client }} diff --git a/package-lock.json b/package-lock.json index cb51eb4..97e6053 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,8 +13,7 @@ "date.js": "~0.3.3", "debug": "~4", "human-interval": "~2", - "luxon": "^3", - "mongodb": "^6.3.0" + "luxon": "^3" }, "devDependencies": { "@hokify/eslint-config": "^2.3.8", @@ -30,8 +29,6 @@ "delay": "5.0.0", "eslint": "^8.29.0", "mocha": "10.1.0", - "mongodb-five": "npm:mongodb@^5.9.2", - "mongodb-four": "npm:mongodb@^4.17.2", "mongodb-memory-server": "^9.1.6", "nyc": "^15.1.0", "prettier": "^2.8.1", @@ -61,7 +58,9 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz", "integrity": "sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "tslib": "^1.11.1" } @@ -70,13 +69,17 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@aws-crypto/sha256-browser": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-crypto/ie11-detection": "^2.0.0", "@aws-crypto/sha256-js": "^2.0.0", @@ -92,13 +95,17 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@aws-crypto/sha256-js": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-crypto/util": "^2.0.0", "@aws-sdk/types": "^3.1.0", @@ -109,13 +116,17 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@aws-crypto/supports-web-crypto": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz", "integrity": "sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "tslib": "^1.11.1" } @@ -124,13 +135,17 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@aws-crypto/util": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.2.tgz", "integrity": "sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "^3.110.0", "@aws-sdk/util-utf8-browser": "^3.0.0", @@ -141,13 +156,17 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@aws-sdk/abort-controller": { "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.212.0.tgz", "integrity": "sha512-mXeBSuDi0Fpul4zk9VH2z0VKN+/+6hyJ9SXSRhn3LpMcyj3GeZtXyTB2wCsfxXYGxeGbV+bIzbPbhZza6wNfWg==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -160,7 +179,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.212.0.tgz", "integrity": "sha512-0yt6lyYUYng5Nnn5EyTnoVZuVXD3r6eaDjrIZQTc8yhNkbTg+eRLlGnJVkrn/O9NPRS52XqxLCbJc/Wk2SSH+w==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -206,7 +227,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.212.0.tgz", "integrity": "sha512-b9lFI8Uz6YxIzAlS2uq62y5fX097lwcdkiq2N8YN2U7YgHQaKMIFnV8ZqkDdhZi2eUKwhSdUZzQy0tF6en2Ubg==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -249,7 +272,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.212.0.tgz", "integrity": "sha512-Co0AU+y9KEAZUraT36ttFZlmwARsr82q2nQji5E8zg3zlUHtqGvMJqxArudz3iOb2E9WRi75MwAQmLO2xEk45A==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -292,7 +317,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.212.0.tgz", "integrity": "sha512-Zl8665HT1Do/yfiFEtqEjLkHSkAo5Isg2QU65Kbknj2W2DFj92a1cRvMlHanDLxlpuoryGP9/u1efYZeWeIdlg==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -339,7 +366,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.212.0.tgz", "integrity": "sha512-hIP/Izpv6GCsDTnHCd/X9Ro7Mw5le+gr2VbkZHWR0c8+3xZWp8N5S0QnUBogF3Dv2KwPbmHP+bs/vqqo3miUjQ==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/signature-v4": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -355,7 +384,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.212.0.tgz", "integrity": "sha512-0BEML2iBGXyFnD1HNQ28B+9Ev7NGcu9itYcJue5mBkCOka3mW55xAPYwp3es0rhQ1oeBziqCjHIIRsp7wGIvsQ==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/client-cognito-identity": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -370,7 +401,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.212.0.tgz", "integrity": "sha512-HNYoqetLqTxwl0Grl4ez8Dx3I3hJfskxH2PTHYI1/iAqrY/gSB2oBOusvBeksbYrScnQM2IGqEcMJ4lzGLOH+w==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -384,7 +417,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.212.0.tgz", "integrity": "sha512-Bg7cX2N5pJ//ft3Y8HWtpDSEMMgRTNMaNlIvTlDbAKYp7HBZRWSf9ZJnz2slT7qbyaJyRP5pSJC4XRm83g4leA==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/node-config-provider": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -400,7 +435,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.212.0.tgz", "integrity": "sha512-H7qRIP8qV7tRrCSJx2p5oQVMJASQWZUmi4l699hDMejmCO/m4pUMQFmWn2FXtZv8gTfzlkmp3wMixD5jnfL7pw==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/credential-provider-env": "3.212.0", "@aws-sdk/credential-provider-imds": "3.212.0", @@ -419,7 +456,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.212.0.tgz", "integrity": "sha512-T44hoU3GCYHS+4GDVs7S/v2bBHmmYpnPayQsYXhDElQKXP0cFzQ78F8et4IU5lM94hwK+ISRQPrKaq4p77evkw==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/credential-provider-env": "3.212.0", "@aws-sdk/credential-provider-imds": "3.212.0", @@ -440,7 +479,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.212.0.tgz", "integrity": "sha512-bGaVKSm5Tf5VZtlM2V6k+M9nSKzlb14ldCcH0PGGMaK/dqnEJDVSxXPu3fWyomaxbLt7Is3AUMh6L2bq3kuXyA==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/shared-ini-file-loader": "3.212.0", @@ -455,7 +496,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.212.0.tgz", "integrity": "sha512-OGatVUnWLp7PePs2H2RyYmTrwurl0tAfW+LWfVAPgYyvi2RQgTmSK5LJ3pXKxz3TvaSHkCvsT0NWNqdWY+iKWQ==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/client-sso": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -472,7 +515,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.212.0.tgz", "integrity": "sha512-zPF3KiVT14aeu4cRyEUelAJEAzFp++9ULLigQXhKBbFYaiOZMAHKRASO/WUK1ixYBC+ax4G1rbihLfQimXMtVA==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -486,7 +531,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.212.0.tgz", "integrity": "sha512-ea1KFqSpGsXcAD5IdDxKsWimLQ2/HiKQnlJUpXyDEP1Sk3if/Gtnn17Hk6GgXByaqppDqful9Lu9esxc3mNDkg==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/client-cognito-identity": "3.212.0", "@aws-sdk/client-sso": "3.212.0", @@ -512,7 +559,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.212.0.tgz", "integrity": "sha512-u7ehnpAVN8D0asWhyQitNVf1j5LdzCuxP/14Dx8+PvrUdZxQNVq2FVB+tkQvOs9pDHE/oROjVo7GNO42bmkitA==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/querystring-builder": "3.212.0", @@ -525,7 +574,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.212.0.tgz", "integrity": "sha512-pwZkz83EvXHGURBYjBYS7Cr+gSr6pi23RDlP/aXREjJGs9QUQyixBh78oX5a3p6bB8JeizPcZS1dXKJ9OKCHAw==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "@aws-sdk/util-buffer-from": "3.208.0", @@ -539,7 +590,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.212.0.tgz", "integrity": "sha512-zKVx+4Silmsr5Nvv9aGL5FmuHvdP9Dcvy/22fmWa3RRvCSNRpvFDeXtcDB5FvNpbWbO+qJyGj/OeqB/XejV13w==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -549,7 +602,9 @@ "version": "3.201.0", "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz", "integrity": "sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -561,7 +616,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.212.0.tgz", "integrity": "sha512-gR6jeKGYNYqNLFRcuX3vv5PN1POLlB/9LDVYl3k/NNaCg8L1EKqqEtG84Gmn1AXH+2s6zMNs+gt5ygeqZQe2Cw==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -575,7 +632,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.212.0.tgz", "integrity": "sha512-6ntKYehjxLun8hPXIPHSI2pGr/pHuQ6jcyO5wBq1kydSIIGiESl8H84DEt+yRvroCiYgbU+I8cACnRE0uv0bLA==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/middleware-serde": "3.212.0", "@aws-sdk/protocol-http": "3.212.0", @@ -594,7 +653,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.212.0.tgz", "integrity": "sha512-W00mxzK2OXy91Ncxri3cZJIxxSBzE72bX8FDa3xgC0ujbj49lw+rol6aV/Fw8Nda3CZ5xxulvJ4sXHt2eOtXSA==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -608,7 +669,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.212.0.tgz", "integrity": "sha512-BSQqzKp4abf2wXvJEstB0zdr68yJMZXA14h53eSvtzykZLfvvFixR1nyVgKq+PKm1VaJ2fuZr10tjWRVQg1pYA==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -621,7 +684,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.212.0.tgz", "integrity": "sha512-ATHPNtnd7nlm0jRXvr/c2xbxcna5ZGXEWTM5tUjIflOK9Rl3PCRce/hoQnHs45kv4l3daC53sPuRvTQ8O7K67A==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -635,7 +700,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.212.0.tgz", "integrity": "sha512-lIi/JkYXalY6CYw2dJbQ/Xo64Ah3wfJ63BMTFQHQk1htnIDBnLd9a6ng96JgXJQMSO4ZEqRW/709NBlC157hbw==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/service-error-classification": "3.212.0", @@ -652,7 +719,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.212.0.tgz", "integrity": "sha512-IcMfno3RJEXXS1Ch5lY0hgdSkGn9XW9m3XoKu1DjhEqR34ENDzvUmEN2PimIcZnz+9W59CU9UAMs/amRhwhlmw==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/middleware-signing": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -669,7 +738,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.212.0.tgz", "integrity": "sha512-KwRpwi/8vNDV0l8uvu1DPk0q3WR2pnp9VtUNZ6u9zU54hvVL+Z1PtQh/WfzJzNvtCHvtc/gVMs3Daqb/Ecrm5Q==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -682,7 +753,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.212.0.tgz", "integrity": "sha512-pth95aEsxqQO0lrRAHZNVI5hrMtA14nEUPFjiLaXtOssZrjD6mBzXPRy1nKob6XWXOp/Vy0mnyI/FT/NnMflFw==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/protocol-http": "3.212.0", @@ -699,7 +772,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.212.0.tgz", "integrity": "sha512-AZ5f9ChioHsxGUojlzqI57sYyM9oW9SN/7AuiNafXU02j9jw7DKiYRn43lRUhgYnb/REhedHA5SsqIBF5eut/w==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -711,7 +786,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.212.0.tgz", "integrity": "sha512-CVSY2kt+RaP6CVqSKp+1sPUAQFusTLZLFHVK0YPFzcIySJMqJC0l0/BzLhaIf5Bs3JHa/VGym8oDpp881yimHA==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -725,7 +802,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.212.0.tgz", "integrity": "sha512-8AfOEDPe/D9DccUgredYg07GH2jrw07FCTyA1Pug5Hgbas7w14zbhLyQB0l6gcOJEuh34e/7oV9hN3s1hctnJg==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/shared-ini-file-loader": "3.212.0", @@ -740,7 +819,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.212.0.tgz", "integrity": "sha512-wt4jK8HeYMjuQbWB4+Xt/nGyTvIwtLhm0SHcRgcoTsUjEiaPio/xNanyBWhPSUM87jpyG6bQMCzUtDbPeLqhkA==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/abort-controller": "3.212.0", "@aws-sdk/protocol-http": "3.212.0", @@ -756,7 +837,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.212.0.tgz", "integrity": "sha512-NMCIABfw3VZ7Vtn6iSeZRuSToRLxIHq0eGoUgO7T4fUp3U5vqYt28A5UY65KB9ifUPpNSllEG3EhEqs5qFw5+w==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -769,7 +852,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.212.0.tgz", "integrity": "sha512-EhkLPQC2TeqC3RGKfW87zoKj/gsWS4JJlRl5U6KMXejBMKQPzuopUiF9gQJ2iuou9BT8B+RsG2qgSHzrxp6lKw==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -782,7 +867,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.212.0.tgz", "integrity": "sha512-4CaQstj0Aki3vc96Z0d481raNagmy9gnJtIv6yveATJ/57lk/RUv2WtTUOzpFKv/oNx5khix2tpbRqK9nCUxVg==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "@aws-sdk/util-uri-escape": "3.201.0", @@ -796,7 +883,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.212.0.tgz", "integrity": "sha512-ttarfAHMOYKgFHeBdgXID9SlNS7erH4gavN3fvf5R1RliCytUnzsTTvqa7CmVBFy0Xc/2yA+/6FFDKlOsS8tRg==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -809,7 +898,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.212.0.tgz", "integrity": "sha512-jCv+uuFq4yGjP8FoCmoOGqnKNHHREDOFf7OxVSCluGMg2LXHfGxxqkqNFJlT3p+QdEp323GSWFY+PUsMJy7BLQ==", + "dev": true, "optional": true, + "peer": true, "engines": { "node": ">=14.0.0" } @@ -818,7 +909,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.212.0.tgz", "integrity": "sha512-wKWqCA1oU57V//D3uAjQKGGj6rm6YKH4pWIU38Ypb/xNafiB7C51KtwpQVsS2HCNfmGrD03sGLKEZCSy9jvIlA==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -831,7 +924,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.212.0.tgz", "integrity": "sha512-tCrzWA60AWGDRmY9OyUrG0BzD+dDbAtHSqcY2LchGHOlMmv501/WXBIvn9fDfKp8GJj6Lb3VcG9cY1jCuKKcmg==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/is-array-buffer": "3.201.0", "@aws-sdk/types": "3.212.0", @@ -848,7 +943,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.212.0.tgz", "integrity": "sha512-dQUlM/eltp9JVEVQWGxU/6Or8jGQWK5mgmbP+BUHkfDgoMIeOFksIYon211KhE18EjoGgav1mr4/HHlcnekI2w==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/middleware-stack": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -862,7 +959,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.212.0.tgz", "integrity": "sha512-pTe4PM14b58nbfvIP9B0zW5dUIxEb/ALVzSLuxpJwJRI51E5QZmXJMT3P77MUd6niqKw0cRrnEHIgznD67JHSg==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/client-sso-oidc": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -878,7 +977,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.212.0.tgz", "integrity": "sha512-uXBXB1PBYxfPyIvgmjbGdYBlS7rdeMG58uCaY3Ga5scY2xQnj7HU7knATKuIKk2DH1lLT0inqtsRVJS25zRK5w==", + "dev": true, "optional": true, + "peer": true, "engines": { "node": ">=14.0.0" } @@ -887,7 +988,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.212.0.tgz", "integrity": "sha512-mTUQQRcVYqur7aHDuDMDKxN7Yr/5kIZB1RtMjIwtimTcf7TZaskN6sLTPo42YgASM6XQQhJECZaOE7Ow16i6Mg==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/querystring-parser": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -898,7 +1001,9 @@ "version": "3.208.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz", "integrity": "sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" @@ -911,7 +1016,9 @@ "version": "3.188.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz", "integrity": "sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "tslib": "^2.3.1" } @@ -920,7 +1027,9 @@ "version": "3.208.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz", "integrity": "sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -932,7 +1041,9 @@ "version": "3.208.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz", "integrity": "sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/is-array-buffer": "3.201.0", "tslib": "^2.3.1" @@ -945,7 +1056,9 @@ "version": "3.208.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz", "integrity": "sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -957,7 +1070,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.212.0.tgz", "integrity": "sha512-tAs9+/lTtil545kyCqy7qjnnCq4S2S+4kBhHXgwRNPT85Nx5XCEEheWH6VZ45YufRaiRNFfX0n+odDwzDaev6g==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -972,7 +1087,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.212.0.tgz", "integrity": "sha512-fNl1IDqn1mAoiM2Xv5KGAczXHy2+tPlouunIEePnQKTq0pzT3WqR13qleTfu1EcEz1oyGnDRoK91aP61Jxh3OQ==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/config-resolver": "3.212.0", "@aws-sdk/credential-provider-imds": "3.212.0", @@ -989,7 +1106,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.212.0.tgz", "integrity": "sha512-/ADfvrZwhzUphre3pliO290IFOflvHyBBEaKn9WfRQ5veZxl+CuOEjxkwTJfHUrfWbh+xpCuOewWVLCptmoC4A==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -1002,7 +1121,9 @@ "version": "3.201.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz", "integrity": "sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -1014,7 +1135,9 @@ "version": "3.208.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz", "integrity": "sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -1026,7 +1149,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.212.0.tgz", "integrity": "sha512-621glUpwVKJRB8QxRG/5cAKIq8LKPdl/l8CS7vDg34f6j9BJmP5YVPcTzzQ6iskQAblkndiBAnSjp7kGujxuGg==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -1038,7 +1163,9 @@ "version": "3.201.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz", "integrity": "sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "tslib": "^2.3.1" }, @@ -1050,7 +1177,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.212.0.tgz", "integrity": "sha512-xXz16ge9NdKCwlD+952rfvgHdDe+pbCavbVMNdR60joHq5KYGR1e02l0LRNVe48/C9dAo2ezeJ+YnTPaw3Yl8Q==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/types": "3.212.0", "bowser": "^2.11.0", @@ -1061,7 +1190,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.212.0.tgz", "integrity": "sha512-HE8VwtMtTXGkwUjryNpy+qyg7wrQxCGplDP59yo0YVn86B5f9nhRi/2jRAsKo9yf94iP7PXAz65TY9+KJC8UIg==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/node-config-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -1083,7 +1214,9 @@ "version": "3.188.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz", "integrity": "sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "tslib": "^2.3.1" } @@ -1092,7 +1225,9 @@ "version": "3.208.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz", "integrity": "sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" @@ -1798,6 +1933,8 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.4.tgz", "integrity": "sha512-8zJ8N1x51xo9hwPh6AWnKdLGEC5N3lDa6kms1YHmFBoRhTpJR6HG8wWk0td1MVCu9cD4YBrvjZEtd5Obw0Fbnw==", + "dev": true, + "optional": true, "dependencies": { "sparse-bitfield": "^3.0.3" } @@ -1998,7 +2135,8 @@ "node_modules/@types/webidl-conversions": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", - "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==" + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", + "dev": true }, "node_modules/@types/whatwg-url": { "version": "8.2.2", @@ -2495,26 +2633,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -2528,7 +2646,9 @@ "version": "2.11.0", "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", - "optional": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -2587,39 +2707,6 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/bson": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", - "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", - "dev": true, - "engines": { - "node": ">=14.20.1" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -4561,7 +4648,9 @@ "version": "4.0.11", "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz", "integrity": "sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA==", + "dev": true, "optional": true, + "peer": true, "dependencies": { "strnum": "^1.0.5" }, @@ -5258,26 +5347,6 @@ "numbered": "^1.1.0" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", @@ -5361,7 +5430,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "devOptional": true + "dev": true }, "node_modules/is-arrayish": { "version": "0.2.1", @@ -6199,7 +6268,9 @@ "node_modules/memory-pager": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==" + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "dev": true, + "optional": true }, "node_modules/meow": { "version": "8.1.2", @@ -6507,51 +6578,6 @@ "node": ">=0.10.0" } }, - "node_modules/mongodb": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.3.0.tgz", - "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==", - "dependencies": { - "@mongodb-js/saslprep": "^1.1.0", - "bson": "^6.2.0", - "mongodb-connection-string-url": "^3.0.0" - }, - "engines": { - "node": ">=16.20.1" - }, - "peerDependencies": { - "@aws-sdk/credential-providers": "^3.188.0", - "@mongodb-js/zstd": "^1.1.0", - "gcp-metadata": "^5.2.0", - "kerberos": "^2.0.1", - "mongodb-client-encryption": ">=6.0.0 <7", - "snappy": "^7.2.2", - "socks": "^2.7.1" - }, - "peerDependenciesMeta": { - "@aws-sdk/credential-providers": { - "optional": true - }, - "@mongodb-js/zstd": { - "optional": true - }, - "gcp-metadata": { - "optional": true - }, - "kerberos": { - "optional": true - }, - "mongodb-client-encryption": { - "optional": true - }, - "snappy": { - "optional": true - }, - "socks": { - "optional": true - } - } - }, "node_modules/mongodb-connection-string-url": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", @@ -6562,79 +6588,6 @@ "whatwg-url": "^11.0.0" } }, - "node_modules/mongodb-five": { - "name": "mongodb", - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", - "integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==", - "dev": true, - "dependencies": { - "bson": "^5.5.0", - "mongodb-connection-string-url": "^2.6.0", - "socks": "^2.7.1" - }, - "engines": { - "node": ">=14.20.1" - }, - "optionalDependencies": { - "@mongodb-js/saslprep": "^1.1.0" - }, - "peerDependencies": { - "@aws-sdk/credential-providers": "^3.188.0", - "@mongodb-js/zstd": "^1.0.0", - "kerberos": "^1.0.0 || ^2.0.0", - "mongodb-client-encryption": ">=2.3.0 <3", - "snappy": "^7.2.2" - }, - "peerDependenciesMeta": { - "@aws-sdk/credential-providers": { - "optional": true - }, - "@mongodb-js/zstd": { - "optional": true - }, - "kerberos": { - "optional": true - }, - "mongodb-client-encryption": { - "optional": true - }, - "snappy": { - "optional": true - } - } - }, - "node_modules/mongodb-four": { - "name": "mongodb", - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.17.2.tgz", - "integrity": "sha512-mLV7SEiov2LHleRJPMPrK2PMyhXFZt2UQLC4VD4pnth3jMjYKHhtqfwwkkvS/NXuo/Fp3vbhaNcXrIDaLRb9Tg==", - "dev": true, - "dependencies": { - "bson": "^4.7.2", - "mongodb-connection-string-url": "^2.6.0", - "socks": "^2.7.1" - }, - "engines": { - "node": ">=12.9.0" - }, - "optionalDependencies": { - "@aws-sdk/credential-providers": "^3.186.0", - "@mongodb-js/saslprep": "^1.1.0" - } - }, - "node_modules/mongodb-four/node_modules/bson": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", - "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", - "dev": true, - "dependencies": { - "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/mongodb-memory-server": { "version": "9.1.6", "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-9.1.6.tgz", @@ -6672,6 +6625,15 @@ "node": ">=14.20.1" } }, + "node_modules/mongodb-memory-server-core/node_modules/bson": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", + "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", + "dev": true, + "engines": { + "node": ">=14.20.1" + } + }, "node_modules/mongodb-memory-server-core/node_modules/mongodb": { "version": "5.9.2", "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", @@ -6713,54 +6675,6 @@ } } }, - "node_modules/mongodb/node_modules/@types/whatwg-url": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.4.tgz", - "integrity": "sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==", - "dependencies": { - "@types/webidl-conversions": "*" - } - }, - "node_modules/mongodb/node_modules/bson": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-6.2.0.tgz", - "integrity": "sha512-ID1cI+7bazPDyL9wYy9GaQ8gEEohWvcUl/Yf0dIdutJxnmInEEyCsb4awy/OiBfall7zBA179Pahi3vCdFze3Q==", - "engines": { - "node": ">=16.20.1" - } - }, - "node_modules/mongodb/node_modules/mongodb-connection-string-url": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz", - "integrity": "sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==", - "dependencies": { - "@types/whatwg-url": "^11.0.2", - "whatwg-url": "^13.0.0" - } - }, - "node_modules/mongodb/node_modules/tr46": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", - "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", - "dependencies": { - "punycode": "^2.3.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/mongodb/node_modules/whatwg-url": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", - "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", - "dependencies": { - "tr46": "^4.1.1", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=16" - } - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -7562,6 +7476,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, "engines": { "node": ">=6" } @@ -8078,7 +7993,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "devOptional": true, + "dev": true, "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" @@ -8088,7 +8003,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "devOptional": true, + "dev": true, "dependencies": { "ip": "^2.0.0", "smart-buffer": "^4.2.0" @@ -8111,6 +8026,8 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "dev": true, + "optional": true, "dependencies": { "memory-pager": "^1.0.2" } @@ -8521,7 +8438,9 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", - "optional": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/supports-color": { "version": "7.2.0", @@ -8733,7 +8652,7 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "devOptional": true + "dev": true }, "node_modules/tsutils": { "version": "3.21.0", @@ -8906,7 +8825,9 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, "optional": true, + "peer": true, "bin": { "uuid": "dist/bin/uuid" } @@ -8943,6 +8864,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, "engines": { "node": ">=12" } @@ -9186,7 +9108,9 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz", "integrity": "sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw==", + "dev": true, "optional": true, + "peer": true, "requires": { "tslib": "^1.11.1" }, @@ -9195,7 +9119,9 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -9203,7 +9129,9 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-crypto/ie11-detection": "^2.0.0", "@aws-crypto/sha256-js": "^2.0.0", @@ -9219,7 +9147,9 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -9227,7 +9157,9 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-crypto/util": "^2.0.0", "@aws-sdk/types": "^3.1.0", @@ -9238,7 +9170,9 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -9246,7 +9180,9 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz", "integrity": "sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ==", + "dev": true, "optional": true, + "peer": true, "requires": { "tslib": "^1.11.1" }, @@ -9255,7 +9191,9 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -9263,7 +9201,9 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.2.tgz", "integrity": "sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "^3.110.0", "@aws-sdk/util-utf8-browser": "^3.0.0", @@ -9274,7 +9214,9 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -9282,7 +9224,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.212.0.tgz", "integrity": "sha512-mXeBSuDi0Fpul4zk9VH2z0VKN+/+6hyJ9SXSRhn3LpMcyj3GeZtXyTB2wCsfxXYGxeGbV+bIzbPbhZza6wNfWg==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9292,7 +9236,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.212.0.tgz", "integrity": "sha512-0yt6lyYUYng5Nnn5EyTnoVZuVXD3r6eaDjrIZQTc8yhNkbTg+eRLlGnJVkrn/O9NPRS52XqxLCbJc/Wk2SSH+w==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -9335,7 +9281,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.212.0.tgz", "integrity": "sha512-b9lFI8Uz6YxIzAlS2uq62y5fX097lwcdkiq2N8YN2U7YgHQaKMIFnV8ZqkDdhZi2eUKwhSdUZzQy0tF6en2Ubg==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -9375,7 +9323,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.212.0.tgz", "integrity": "sha512-Co0AU+y9KEAZUraT36ttFZlmwARsr82q2nQji5E8zg3zlUHtqGvMJqxArudz3iOb2E9WRi75MwAQmLO2xEk45A==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -9415,7 +9365,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.212.0.tgz", "integrity": "sha512-Zl8665HT1Do/yfiFEtqEjLkHSkAo5Isg2QU65Kbknj2W2DFj92a1cRvMlHanDLxlpuoryGP9/u1efYZeWeIdlg==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -9459,7 +9411,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.212.0.tgz", "integrity": "sha512-hIP/Izpv6GCsDTnHCd/X9Ro7Mw5le+gr2VbkZHWR0c8+3xZWp8N5S0QnUBogF3Dv2KwPbmHP+bs/vqqo3miUjQ==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/signature-v4": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9472,7 +9426,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.212.0.tgz", "integrity": "sha512-0BEML2iBGXyFnD1HNQ28B+9Ev7NGcu9itYcJue5mBkCOka3mW55xAPYwp3es0rhQ1oeBziqCjHIIRsp7wGIvsQ==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/client-cognito-identity": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -9484,7 +9440,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.212.0.tgz", "integrity": "sha512-HNYoqetLqTxwl0Grl4ez8Dx3I3hJfskxH2PTHYI1/iAqrY/gSB2oBOusvBeksbYrScnQM2IGqEcMJ4lzGLOH+w==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9495,7 +9453,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.212.0.tgz", "integrity": "sha512-Bg7cX2N5pJ//ft3Y8HWtpDSEMMgRTNMaNlIvTlDbAKYp7HBZRWSf9ZJnz2slT7qbyaJyRP5pSJC4XRm83g4leA==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/node-config-provider": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -9508,7 +9468,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.212.0.tgz", "integrity": "sha512-H7qRIP8qV7tRrCSJx2p5oQVMJASQWZUmi4l699hDMejmCO/m4pUMQFmWn2FXtZv8gTfzlkmp3wMixD5jnfL7pw==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/credential-provider-env": "3.212.0", "@aws-sdk/credential-provider-imds": "3.212.0", @@ -9524,7 +9486,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.212.0.tgz", "integrity": "sha512-T44hoU3GCYHS+4GDVs7S/v2bBHmmYpnPayQsYXhDElQKXP0cFzQ78F8et4IU5lM94hwK+ISRQPrKaq4p77evkw==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/credential-provider-env": "3.212.0", "@aws-sdk/credential-provider-imds": "3.212.0", @@ -9542,7 +9506,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.212.0.tgz", "integrity": "sha512-bGaVKSm5Tf5VZtlM2V6k+M9nSKzlb14ldCcH0PGGMaK/dqnEJDVSxXPu3fWyomaxbLt7Is3AUMh6L2bq3kuXyA==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/shared-ini-file-loader": "3.212.0", @@ -9554,7 +9520,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.212.0.tgz", "integrity": "sha512-OGatVUnWLp7PePs2H2RyYmTrwurl0tAfW+LWfVAPgYyvi2RQgTmSK5LJ3pXKxz3TvaSHkCvsT0NWNqdWY+iKWQ==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/client-sso": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -9568,7 +9536,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.212.0.tgz", "integrity": "sha512-zPF3KiVT14aeu4cRyEUelAJEAzFp++9ULLigQXhKBbFYaiOZMAHKRASO/WUK1ixYBC+ax4G1rbihLfQimXMtVA==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9579,7 +9549,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.212.0.tgz", "integrity": "sha512-ea1KFqSpGsXcAD5IdDxKsWimLQ2/HiKQnlJUpXyDEP1Sk3if/Gtnn17Hk6GgXByaqppDqful9Lu9esxc3mNDkg==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/client-cognito-identity": "3.212.0", "@aws-sdk/client-sso": "3.212.0", @@ -9602,7 +9574,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.212.0.tgz", "integrity": "sha512-u7ehnpAVN8D0asWhyQitNVf1j5LdzCuxP/14Dx8+PvrUdZxQNVq2FVB+tkQvOs9pDHE/oROjVo7GNO42bmkitA==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/querystring-builder": "3.212.0", @@ -9615,7 +9589,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.212.0.tgz", "integrity": "sha512-pwZkz83EvXHGURBYjBYS7Cr+gSr6pi23RDlP/aXREjJGs9QUQyixBh78oX5a3p6bB8JeizPcZS1dXKJ9OKCHAw==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "@aws-sdk/util-buffer-from": "3.208.0", @@ -9626,7 +9602,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.212.0.tgz", "integrity": "sha512-zKVx+4Silmsr5Nvv9aGL5FmuHvdP9Dcvy/22fmWa3RRvCSNRpvFDeXtcDB5FvNpbWbO+qJyGj/OeqB/XejV13w==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9636,7 +9614,9 @@ "version": "3.201.0", "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz", "integrity": "sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==", + "dev": true, "optional": true, + "peer": true, "requires": { "tslib": "^2.3.1" } @@ -9645,7 +9625,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.212.0.tgz", "integrity": "sha512-gR6jeKGYNYqNLFRcuX3vv5PN1POLlB/9LDVYl3k/NNaCg8L1EKqqEtG84Gmn1AXH+2s6zMNs+gt5ygeqZQe2Cw==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9656,7 +9638,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.212.0.tgz", "integrity": "sha512-6ntKYehjxLun8hPXIPHSI2pGr/pHuQ6jcyO5wBq1kydSIIGiESl8H84DEt+yRvroCiYgbU+I8cACnRE0uv0bLA==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/middleware-serde": "3.212.0", "@aws-sdk/protocol-http": "3.212.0", @@ -9672,7 +9656,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.212.0.tgz", "integrity": "sha512-W00mxzK2OXy91Ncxri3cZJIxxSBzE72bX8FDa3xgC0ujbj49lw+rol6aV/Fw8Nda3CZ5xxulvJ4sXHt2eOtXSA==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9683,7 +9669,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.212.0.tgz", "integrity": "sha512-BSQqzKp4abf2wXvJEstB0zdr68yJMZXA14h53eSvtzykZLfvvFixR1nyVgKq+PKm1VaJ2fuZr10tjWRVQg1pYA==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9693,7 +9681,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.212.0.tgz", "integrity": "sha512-ATHPNtnd7nlm0jRXvr/c2xbxcna5ZGXEWTM5tUjIflOK9Rl3PCRce/hoQnHs45kv4l3daC53sPuRvTQ8O7K67A==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9704,7 +9694,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.212.0.tgz", "integrity": "sha512-lIi/JkYXalY6CYw2dJbQ/Xo64Ah3wfJ63BMTFQHQk1htnIDBnLd9a6ng96JgXJQMSO4ZEqRW/709NBlC157hbw==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/service-error-classification": "3.212.0", @@ -9718,7 +9710,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.212.0.tgz", "integrity": "sha512-IcMfno3RJEXXS1Ch5lY0hgdSkGn9XW9m3XoKu1DjhEqR34ENDzvUmEN2PimIcZnz+9W59CU9UAMs/amRhwhlmw==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/middleware-signing": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -9732,7 +9726,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.212.0.tgz", "integrity": "sha512-KwRpwi/8vNDV0l8uvu1DPk0q3WR2pnp9VtUNZ6u9zU54hvVL+Z1PtQh/WfzJzNvtCHvtc/gVMs3Daqb/Ecrm5Q==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9742,7 +9738,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.212.0.tgz", "integrity": "sha512-pth95aEsxqQO0lrRAHZNVI5hrMtA14nEUPFjiLaXtOssZrjD6mBzXPRy1nKob6XWXOp/Vy0mnyI/FT/NnMflFw==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/protocol-http": "3.212.0", @@ -9756,7 +9754,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.212.0.tgz", "integrity": "sha512-AZ5f9ChioHsxGUojlzqI57sYyM9oW9SN/7AuiNafXU02j9jw7DKiYRn43lRUhgYnb/REhedHA5SsqIBF5eut/w==", + "dev": true, "optional": true, + "peer": true, "requires": { "tslib": "^2.3.1" } @@ -9765,7 +9765,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.212.0.tgz", "integrity": "sha512-CVSY2kt+RaP6CVqSKp+1sPUAQFusTLZLFHVK0YPFzcIySJMqJC0l0/BzLhaIf5Bs3JHa/VGym8oDpp881yimHA==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/protocol-http": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9776,7 +9778,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.212.0.tgz", "integrity": "sha512-8AfOEDPe/D9DccUgredYg07GH2jrw07FCTyA1Pug5Hgbas7w14zbhLyQB0l6gcOJEuh34e/7oV9hN3s1hctnJg==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/shared-ini-file-loader": "3.212.0", @@ -9788,7 +9792,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.212.0.tgz", "integrity": "sha512-wt4jK8HeYMjuQbWB4+Xt/nGyTvIwtLhm0SHcRgcoTsUjEiaPio/xNanyBWhPSUM87jpyG6bQMCzUtDbPeLqhkA==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/abort-controller": "3.212.0", "@aws-sdk/protocol-http": "3.212.0", @@ -9801,7 +9807,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.212.0.tgz", "integrity": "sha512-NMCIABfw3VZ7Vtn6iSeZRuSToRLxIHq0eGoUgO7T4fUp3U5vqYt28A5UY65KB9ifUPpNSllEG3EhEqs5qFw5+w==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9811,7 +9819,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.212.0.tgz", "integrity": "sha512-EhkLPQC2TeqC3RGKfW87zoKj/gsWS4JJlRl5U6KMXejBMKQPzuopUiF9gQJ2iuou9BT8B+RsG2qgSHzrxp6lKw==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9821,7 +9831,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.212.0.tgz", "integrity": "sha512-4CaQstj0Aki3vc96Z0d481raNagmy9gnJtIv6yveATJ/57lk/RUv2WtTUOzpFKv/oNx5khix2tpbRqK9nCUxVg==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "@aws-sdk/util-uri-escape": "3.201.0", @@ -9832,7 +9844,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.212.0.tgz", "integrity": "sha512-ttarfAHMOYKgFHeBdgXID9SlNS7erH4gavN3fvf5R1RliCytUnzsTTvqa7CmVBFy0Xc/2yA+/6FFDKlOsS8tRg==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9842,13 +9856,17 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.212.0.tgz", "integrity": "sha512-jCv+uuFq4yGjP8FoCmoOGqnKNHHREDOFf7OxVSCluGMg2LXHfGxxqkqNFJlT3p+QdEp323GSWFY+PUsMJy7BLQ==", - "optional": true + "dev": true, + "optional": true, + "peer": true }, "@aws-sdk/shared-ini-file-loader": { "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.212.0.tgz", "integrity": "sha512-wKWqCA1oU57V//D3uAjQKGGj6rm6YKH4pWIU38Ypb/xNafiB7C51KtwpQVsS2HCNfmGrD03sGLKEZCSy9jvIlA==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9858,7 +9876,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.212.0.tgz", "integrity": "sha512-tCrzWA60AWGDRmY9OyUrG0BzD+dDbAtHSqcY2LchGHOlMmv501/WXBIvn9fDfKp8GJj6Lb3VcG9cY1jCuKKcmg==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/is-array-buffer": "3.201.0", "@aws-sdk/types": "3.212.0", @@ -9872,7 +9892,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.212.0.tgz", "integrity": "sha512-dQUlM/eltp9JVEVQWGxU/6Or8jGQWK5mgmbP+BUHkfDgoMIeOFksIYon211KhE18EjoGgav1mr4/HHlcnekI2w==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/middleware-stack": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9883,7 +9905,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.212.0.tgz", "integrity": "sha512-pTe4PM14b58nbfvIP9B0zW5dUIxEb/ALVzSLuxpJwJRI51E5QZmXJMT3P77MUd6niqKw0cRrnEHIgznD67JHSg==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/client-sso-oidc": "3.212.0", "@aws-sdk/property-provider": "3.212.0", @@ -9896,13 +9920,17 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.212.0.tgz", "integrity": "sha512-uXBXB1PBYxfPyIvgmjbGdYBlS7rdeMG58uCaY3Ga5scY2xQnj7HU7knATKuIKk2DH1lLT0inqtsRVJS25zRK5w==", - "optional": true + "dev": true, + "optional": true, + "peer": true }, "@aws-sdk/url-parser": { "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.212.0.tgz", "integrity": "sha512-mTUQQRcVYqur7aHDuDMDKxN7Yr/5kIZB1RtMjIwtimTcf7TZaskN6sLTPo42YgASM6XQQhJECZaOE7Ow16i6Mg==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/querystring-parser": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9913,7 +9941,9 @@ "version": "3.208.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz", "integrity": "sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" @@ -9923,7 +9953,9 @@ "version": "3.188.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz", "integrity": "sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg==", + "dev": true, "optional": true, + "peer": true, "requires": { "tslib": "^2.3.1" } @@ -9932,7 +9964,9 @@ "version": "3.208.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz", "integrity": "sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg==", + "dev": true, "optional": true, + "peer": true, "requires": { "tslib": "^2.3.1" } @@ -9941,7 +9975,9 @@ "version": "3.208.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz", "integrity": "sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/is-array-buffer": "3.201.0", "tslib": "^2.3.1" @@ -9951,7 +9987,9 @@ "version": "3.208.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz", "integrity": "sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg==", + "dev": true, "optional": true, + "peer": true, "requires": { "tslib": "^2.3.1" } @@ -9960,7 +9998,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.212.0.tgz", "integrity": "sha512-tAs9+/lTtil545kyCqy7qjnnCq4S2S+4kBhHXgwRNPT85Nx5XCEEheWH6VZ45YufRaiRNFfX0n+odDwzDaev6g==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/property-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -9972,7 +10012,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.212.0.tgz", "integrity": "sha512-fNl1IDqn1mAoiM2Xv5KGAczXHy2+tPlouunIEePnQKTq0pzT3WqR13qleTfu1EcEz1oyGnDRoK91aP61Jxh3OQ==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/config-resolver": "3.212.0", "@aws-sdk/credential-provider-imds": "3.212.0", @@ -9986,7 +10028,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.212.0.tgz", "integrity": "sha512-/ADfvrZwhzUphre3pliO290IFOflvHyBBEaKn9WfRQ5veZxl+CuOEjxkwTJfHUrfWbh+xpCuOewWVLCptmoC4A==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "tslib": "^2.3.1" @@ -9996,7 +10040,9 @@ "version": "3.201.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz", "integrity": "sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA==", + "dev": true, "optional": true, + "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10005,7 +10051,9 @@ "version": "3.208.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz", "integrity": "sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==", + "dev": true, "optional": true, + "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10014,7 +10062,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.212.0.tgz", "integrity": "sha512-621glUpwVKJRB8QxRG/5cAKIq8LKPdl/l8CS7vDg34f6j9BJmP5YVPcTzzQ6iskQAblkndiBAnSjp7kGujxuGg==", + "dev": true, "optional": true, + "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10023,7 +10073,9 @@ "version": "3.201.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz", "integrity": "sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA==", + "dev": true, "optional": true, + "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10032,7 +10084,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.212.0.tgz", "integrity": "sha512-xXz16ge9NdKCwlD+952rfvgHdDe+pbCavbVMNdR60joHq5KYGR1e02l0LRNVe48/C9dAo2ezeJ+YnTPaw3Yl8Q==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/types": "3.212.0", "bowser": "^2.11.0", @@ -10043,7 +10097,9 @@ "version": "3.212.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.212.0.tgz", "integrity": "sha512-HE8VwtMtTXGkwUjryNpy+qyg7wrQxCGplDP59yo0YVn86B5f9nhRi/2jRAsKo9yf94iP7PXAz65TY9+KJC8UIg==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/node-config-provider": "3.212.0", "@aws-sdk/types": "3.212.0", @@ -10054,7 +10110,9 @@ "version": "3.188.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz", "integrity": "sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q==", + "dev": true, "optional": true, + "peer": true, "requires": { "tslib": "^2.3.1" } @@ -10063,7 +10121,9 @@ "version": "3.208.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz", "integrity": "sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ==", + "dev": true, "optional": true, + "peer": true, "requires": { "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" @@ -10604,6 +10664,8 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.4.tgz", "integrity": "sha512-8zJ8N1x51xo9hwPh6AWnKdLGEC5N3lDa6kms1YHmFBoRhTpJR6HG8wWk0td1MVCu9cD4YBrvjZEtd5Obw0Fbnw==", + "dev": true, + "optional": true, "requires": { "sparse-bitfield": "^3.0.3" } @@ -10797,7 +10859,8 @@ "@types/webidl-conversions": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", - "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==" + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", + "dev": true }, "@types/whatwg-url": { "version": "8.2.2", @@ -11133,12 +11196,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -11149,7 +11206,9 @@ "version": "2.11.0", "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", - "optional": true + "dev": true, + "optional": true, + "peer": true }, "brace-expansion": { "version": "1.1.11", @@ -11189,22 +11248,6 @@ "picocolors": "^1.0.0" } }, - "bson": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", - "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", - "dev": true - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -12681,7 +12724,9 @@ "version": "4.0.11", "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz", "integrity": "sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA==", + "dev": true, "optional": true, + "peer": true, "requires": { "strnum": "^1.0.5" } @@ -13182,12 +13227,6 @@ "numbered": "^1.1.0" } }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, "ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", @@ -13253,7 +13292,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "devOptional": true + "dev": true }, "is-arrayish": { "version": "0.2.1", @@ -13878,7 +13917,9 @@ "memory-pager": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==" + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "dev": true, + "optional": true }, "meow": { "version": "8.1.2", @@ -14104,57 +14145,6 @@ "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", "dev": true }, - "mongodb": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.3.0.tgz", - "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==", - "requires": { - "@mongodb-js/saslprep": "^1.1.0", - "bson": "^6.2.0", - "mongodb-connection-string-url": "^3.0.0" - }, - "dependencies": { - "@types/whatwg-url": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.4.tgz", - "integrity": "sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==", - "requires": { - "@types/webidl-conversions": "*" - } - }, - "bson": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-6.2.0.tgz", - "integrity": "sha512-ID1cI+7bazPDyL9wYy9GaQ8gEEohWvcUl/Yf0dIdutJxnmInEEyCsb4awy/OiBfall7zBA179Pahi3vCdFze3Q==" - }, - "mongodb-connection-string-url": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz", - "integrity": "sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==", - "requires": { - "@types/whatwg-url": "^11.0.2", - "whatwg-url": "^13.0.0" - } - }, - "tr46": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", - "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", - "requires": { - "punycode": "^2.3.0" - } - }, - "whatwg-url": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", - "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", - "requires": { - "tr46": "^4.1.1", - "webidl-conversions": "^7.0.0" - } - } - } - }, "mongodb-connection-string-url": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", @@ -14165,42 +14155,6 @@ "whatwg-url": "^11.0.0" } }, - "mongodb-five": { - "version": "npm:mongodb@5.9.2", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", - "integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==", - "dev": true, - "requires": { - "@mongodb-js/saslprep": "^1.1.0", - "bson": "^5.5.0", - "mongodb-connection-string-url": "^2.6.0", - "socks": "^2.7.1" - } - }, - "mongodb-four": { - "version": "npm:mongodb@4.17.2", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.17.2.tgz", - "integrity": "sha512-mLV7SEiov2LHleRJPMPrK2PMyhXFZt2UQLC4VD4pnth3jMjYKHhtqfwwkkvS/NXuo/Fp3vbhaNcXrIDaLRb9Tg==", - "dev": true, - "requires": { - "@aws-sdk/credential-providers": "^3.186.0", - "@mongodb-js/saslprep": "^1.1.0", - "bson": "^4.7.2", - "mongodb-connection-string-url": "^2.6.0", - "socks": "^2.7.1" - }, - "dependencies": { - "bson": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", - "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", - "dev": true, - "requires": { - "buffer": "^5.6.0" - } - } - } - }, "mongodb-memory-server": { "version": "9.1.6", "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-9.1.6.tgz", @@ -14231,6 +14185,12 @@ "yauzl": "^2.10.0" }, "dependencies": { + "bson": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", + "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", + "dev": true + }, "mongodb": { "version": "5.9.2", "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", @@ -14866,7 +14826,8 @@ "punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true }, "q": { "version": "1.5.1", @@ -15239,13 +15200,13 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "devOptional": true + "dev": true }, "socks": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "devOptional": true, + "dev": true, "requires": { "ip": "^2.0.0", "smart-buffer": "^4.2.0" @@ -15261,6 +15222,8 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "dev": true, + "optional": true, "requires": { "memory-pager": "^1.0.2" } @@ -15582,7 +15545,9 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", - "optional": true + "dev": true, + "optional": true, + "peer": true }, "supports-color": { "version": "7.2.0", @@ -15740,7 +15705,7 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "devOptional": true + "dev": true }, "tsutils": { "version": "3.21.0", @@ -15871,7 +15836,9 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "optional": true + "dev": true, + "optional": true, + "peer": true }, "v8-compile-cache-lib": { "version": "3.0.1", @@ -15904,7 +15871,8 @@ "webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==" + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true }, "whatwg-url": { "version": "11.0.0", diff --git a/package.json b/package.json index 3df6cee..24cf164 100644 --- a/package.json +++ b/package.json @@ -15,9 +15,10 @@ }, "scripts": { "release": "npm run build && standard-version", - "prepublishOnly": "npm run build", + "prepublishOnly": "npm uninstall mongodb && npm run build", "build": "tsc", "test": "npm run mocha", + "test:ci": "npm run mocha && npm uninstall mongodb", "lint": "eslint src", "lint-fix": "eslint src --fix", "mocha": "mocha --reporter spec -b", @@ -55,8 +56,7 @@ "date.js": "~0.3.3", "debug": "~4", "human-interval": "~2", - "luxon": "^3", - "mongodb": "^6.3.0" + "luxon": "^3" }, "devDependencies": { "@hokify/eslint-config": "^2.3.8", @@ -72,8 +72,6 @@ "delay": "5.0.0", "eslint": "^8.29.0", "mocha": "10.1.0", - "mongodb-five": "npm:mongodb@^5.9.2", - "mongodb-four": "npm:mongodb@^4.17.2", "mongodb-memory-server": "^9.1.6", "nyc": "^15.1.0", "prettier": "^2.8.1", diff --git a/src/JobDbRepository.ts b/src/JobDbRepository.ts index c711959..c7d5834 100644 --- a/src/JobDbRepository.ts +++ b/src/JobDbRepository.ts @@ -7,7 +7,8 @@ import { MongoClientOptions, ObjectId, Sort, - UpdateFilter + UpdateFilter, + ModifyResult } from 'mongodb'; import type { Job, JobWithId } from './Job'; import type { Agenda } from './index'; @@ -107,6 +108,7 @@ export class JobDbRepository { const update: UpdateFilter = { $set: { lockedAt: new Date() } }; // Lock the job in MongoDB! + // @ts-ignore const resp = await this.collection.findOneAndUpdate( criteria as Filter, update, @@ -115,7 +117,7 @@ export class JobDbRepository { sort: this.connectOptions.sort, includeResultMetadata: true } - ); + ) as any; return resp?.value || undefined; } @@ -150,6 +152,7 @@ export class JobDbRepository { const JOB_PROCESS_SET_QUERY: UpdateFilter = { $set: { lockedAt: now } }; // Find ONE and ONLY ONE job and set the 'lockedAt' time so that job begins to be processed + // @ts-ignore const result = await this.collection.findOneAndUpdate( JOB_PROCESS_WHERE_QUERY, JOB_PROCESS_SET_QUERY, @@ -158,7 +161,7 @@ export class JobDbRepository { sort: this.connectOptions.sort, includeResultMetadata: true } - ); + ) as any; return result.value || undefined; } @@ -305,6 +308,7 @@ export class JobDbRepository { if (id) { // Update the job and process the resulting data' log('job already has _id, calling findOneAndUpdate() using _id as query'); + // @ts-ignore const result = await this.collection.findOneAndUpdate( { _id: id, name: props.name }, update, @@ -312,7 +316,7 @@ export class JobDbRepository { returnDocument: 'after', includeResultMetadata: true } - ); + ) as any; return this.processDbResult(job, result.value as IJobParameters); } @@ -342,6 +346,7 @@ export class JobDbRepository { }) ); // this call ensure a job of this name can only exists once + // @ts-ignore const result = await this.collection.findOneAndUpdate( { name: props.name, @@ -353,7 +358,7 @@ export class JobDbRepository { returnDocument: 'after', includeResultMetadata: true } - ); + ) as any; log( `findOneAndUpdate(${props.name}) with type "single" ${ result.lastErrorObject?.updatedExisting @@ -374,11 +379,12 @@ export class JobDbRepository { // Use the 'unique' query object to find an existing job or create a new one log('calling findOneAndUpdate() with unique object as query: \n%O', query); + // @ts-ignore const result = await this.collection.findOneAndUpdate(query as IJobParameters, update, { upsert: true, returnDocument: 'after', includeResultMetadata: true - }); + }) as any; return this.processDbResult(job, result.value as IJobParameters); } diff --git a/test/helpers/mock-mongodb.ts b/test/helpers/mock-mongodb.ts index ea6b0ad..e9274b5 100644 --- a/test/helpers/mock-mongodb.ts +++ b/test/helpers/mock-mongodb.ts @@ -1,7 +1,5 @@ import { MongoMemoryServer } from 'mongodb-memory-server'; import { MongoClient } from 'mongodb'; -import { MongoClient as MongoClientFour } from 'mongodb-four'; -import { MongoClient as MongoClientFive } from 'mongodb-five'; import * as debug from 'debug'; const log = debug('agenda:mock-mongodb'); @@ -15,21 +13,13 @@ export interface IMockMongo { export async function mockMongo(): Promise { - const { MONGODB_CLIENT_VERSION = 6 } = process.env; - const Client = { - [4]: MongoClientFour, - [5]: MongoClientFive, - [6]: MongoClient - }[MONGODB_CLIENT_VERSION] || MongoClient; - log('using mongodb client version %s', MONGODB_CLIENT_VERSION); - const self: IMockMongo = {} as any; self.mongod = await MongoMemoryServer.create(); const uri = self.mongod.getUri(); log('mongod started', uri); // @ts-ignore - self.mongo = await Client.connect(uri); + self.mongo = await MongoClient.connect(uri); self.disconnect = function () { self.mongod.stop(); log('mongod stopped'); From a441cb9f5bdd6ccbda94e8fbf5704d2fcc9e1bf4 Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 19:45:24 +0100 Subject: [PATCH 21/36] Gtfo TypeScript --- .eslintrc.js | 6 ++++++ src/JobDbRepository.ts | 23 +++++++++++------------ 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index fa3f704..1c9f435 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -5,6 +5,12 @@ module.exports = { project: './tsconfig.eslint.json' }, overrides: [ + { + files: ['*ts'], + rules: { + '@typescript-eslint/ban-ts-comment': 'off', + }, + }, { files: ['*.test.ts'], env: { diff --git a/src/JobDbRepository.ts b/src/JobDbRepository.ts index c7d5834..9e7e44d 100644 --- a/src/JobDbRepository.ts +++ b/src/JobDbRepository.ts @@ -7,8 +7,7 @@ import { MongoClientOptions, ObjectId, Sort, - UpdateFilter, - ModifyResult + UpdateFilter } from 'mongodb'; import type { Job, JobWithId } from './Job'; import type { Agenda } from './index'; @@ -109,7 +108,7 @@ export class JobDbRepository { // Lock the job in MongoDB! // @ts-ignore - const resp = await this.collection.findOneAndUpdate( + const resp = (await this.collection.findOneAndUpdate( criteria as Filter, update, { @@ -117,7 +116,7 @@ export class JobDbRepository { sort: this.connectOptions.sort, includeResultMetadata: true } - ) as any; + )) as any; return resp?.value || undefined; } @@ -153,7 +152,7 @@ export class JobDbRepository { // Find ONE and ONLY ONE job and set the 'lockedAt' time so that job begins to be processed // @ts-ignore - const result = await this.collection.findOneAndUpdate( + const result = (await this.collection.findOneAndUpdate( JOB_PROCESS_WHERE_QUERY, JOB_PROCESS_SET_QUERY, { @@ -161,7 +160,7 @@ export class JobDbRepository { sort: this.connectOptions.sort, includeResultMetadata: true } - ) as any; + )) as any; return result.value || undefined; } @@ -309,14 +308,14 @@ export class JobDbRepository { // Update the job and process the resulting data' log('job already has _id, calling findOneAndUpdate() using _id as query'); // @ts-ignore - const result = await this.collection.findOneAndUpdate( + const result = (await this.collection.findOneAndUpdate( { _id: id, name: props.name }, update, { returnDocument: 'after', includeResultMetadata: true } - ) as any; + )) as any; return this.processDbResult(job, result.value as IJobParameters); } @@ -347,7 +346,7 @@ export class JobDbRepository { ); // this call ensure a job of this name can only exists once // @ts-ignore - const result = await this.collection.findOneAndUpdate( + const result = (await this.collection.findOneAndUpdate( { name: props.name, type: 'single' @@ -358,7 +357,7 @@ export class JobDbRepository { returnDocument: 'after', includeResultMetadata: true } - ) as any; + )) as any; log( `findOneAndUpdate(${props.name}) with type "single" ${ result.lastErrorObject?.updatedExisting @@ -380,11 +379,11 @@ export class JobDbRepository { // Use the 'unique' query object to find an existing job or create a new one log('calling findOneAndUpdate() with unique object as query: \n%O', query); // @ts-ignore - const result = await this.collection.findOneAndUpdate(query as IJobParameters, update, { + const result = (await this.collection.findOneAndUpdate(query as IJobParameters, update, { upsert: true, returnDocument: 'after', includeResultMetadata: true - }) as any; + })) as any; return this.processDbResult(job, result.value as IJobParameters); } From 495fdf3aaab60ce08d0642ae5dc2e50ca62ff4c6 Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 19:48:08 +0100 Subject: [PATCH 22/36] Add mongodb as peer dependency --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index 24cf164..f45e949 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,9 @@ "human-interval": "~2", "luxon": "^3" }, + "peerDependencies": { + "mongodb": ">=4" + }, "devDependencies": { "@hokify/eslint-config": "^2.3.8", "@istanbuljs/nyc-config-typescript": "^1.0.2", From 308c7ce4649e8ae3095a46d837893eef58e247b7 Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 19:52:20 +0100 Subject: [PATCH 23/36] Require mongodb for development I hate you, TypeScript. We had to specify mongodb as a dev dependency because the build wasn't working otherwise. Jezus Christ. --- .github/workflows/test.yml | 2 +- package-lock.json | 170 +++++++++++++++++++++++++++++++++++-- package.json | 4 +- 3 files changed, 165 insertions(+), 11 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4fe3397..176700e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -49,6 +49,6 @@ jobs: run: npm i mongodb@${{ matrix.mongodb-client }} - name: Test - run: npm run test:ci + run: npm test env: CI: true diff --git a/package-lock.json b/package-lock.json index 97e6053..349b911 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,6 +29,7 @@ "delay": "5.0.0", "eslint": "^8.29.0", "mocha": "10.1.0", + "mongodb": "^6.3.0", "mongodb-memory-server": "^9.1.6", "nyc": "^15.1.0", "prettier": "^2.8.1", @@ -40,6 +41,9 @@ }, "engines": { "node": ">=18.0.0" + }, + "peerDependencies": { + "mongodb": ">=4" } }, "node_modules/@ampproject/remapping": { @@ -1934,7 +1938,6 @@ "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.4.tgz", "integrity": "sha512-8zJ8N1x51xo9hwPh6AWnKdLGEC5N3lDa6kms1YHmFBoRhTpJR6HG8wWk0td1MVCu9cD4YBrvjZEtd5Obw0Fbnw==", "dev": true, - "optional": true, "dependencies": { "sparse-bitfield": "^3.0.3" } @@ -2707,6 +2710,15 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/bson": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.2.0.tgz", + "integrity": "sha512-ID1cI+7bazPDyL9wYy9GaQ8gEEohWvcUl/Yf0dIdutJxnmInEEyCsb4awy/OiBfall7zBA179Pahi3vCdFze3Q==", + "dev": true, + "engines": { + "node": ">=16.20.1" + } + }, "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -6269,8 +6281,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "dev": true, - "optional": true + "dev": true }, "node_modules/meow": { "version": "8.1.2", @@ -6578,6 +6589,52 @@ "node": ">=0.10.0" } }, + "node_modules/mongodb": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.3.0.tgz", + "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==", + "dev": true, + "dependencies": { + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^6.2.0", + "mongodb-connection-string-url": "^3.0.0" + }, + "engines": { + "node": ">=16.20.1" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.1.0", + "gcp-metadata": "^5.2.0", + "kerberos": "^2.0.1", + "mongodb-client-encryption": ">=6.0.0 <7", + "snappy": "^7.2.2", + "socks": "^2.7.1" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } + } + }, "node_modules/mongodb-connection-string-url": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", @@ -6675,6 +6732,50 @@ } } }, + "node_modules/mongodb/node_modules/@types/whatwg-url": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.4.tgz", + "integrity": "sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==", + "dev": true, + "dependencies": { + "@types/webidl-conversions": "*" + } + }, + "node_modules/mongodb/node_modules/mongodb-connection-string-url": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz", + "integrity": "sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==", + "dev": true, + "dependencies": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^13.0.0" + } + }, + "node_modules/mongodb/node_modules/tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "dev": true, + "dependencies": { + "punycode": "^2.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/mongodb/node_modules/whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", + "dev": true, + "dependencies": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -8027,7 +8128,6 @@ "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", "dev": true, - "optional": true, "dependencies": { "memory-pager": "^1.0.2" } @@ -10665,7 +10765,6 @@ "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.4.tgz", "integrity": "sha512-8zJ8N1x51xo9hwPh6AWnKdLGEC5N3lDa6kms1YHmFBoRhTpJR6HG8wWk0td1MVCu9cD4YBrvjZEtd5Obw0Fbnw==", "dev": true, - "optional": true, "requires": { "sparse-bitfield": "^3.0.3" } @@ -11248,6 +11347,12 @@ "picocolors": "^1.0.0" } }, + "bson": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.2.0.tgz", + "integrity": "sha512-ID1cI+7bazPDyL9wYy9GaQ8gEEohWvcUl/Yf0dIdutJxnmInEEyCsb4awy/OiBfall7zBA179Pahi3vCdFze3Q==", + "dev": true + }, "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -13918,8 +14023,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "dev": true, - "optional": true + "dev": true }, "meow": { "version": "8.1.2", @@ -14145,6 +14249,57 @@ "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", "dev": true }, + "mongodb": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.3.0.tgz", + "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==", + "dev": true, + "requires": { + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^6.2.0", + "mongodb-connection-string-url": "^3.0.0" + }, + "dependencies": { + "@types/whatwg-url": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.4.tgz", + "integrity": "sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==", + "dev": true, + "requires": { + "@types/webidl-conversions": "*" + } + }, + "mongodb-connection-string-url": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz", + "integrity": "sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==", + "dev": true, + "requires": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^13.0.0" + } + }, + "tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "dev": true, + "requires": { + "punycode": "^2.3.0" + } + }, + "whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", + "dev": true, + "requires": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + } + } + } + }, "mongodb-connection-string-url": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", @@ -15223,7 +15378,6 @@ "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", "dev": true, - "optional": true, "requires": { "memory-pager": "^1.0.2" } diff --git a/package.json b/package.json index f45e949..4547d48 100644 --- a/package.json +++ b/package.json @@ -15,10 +15,9 @@ }, "scripts": { "release": "npm run build && standard-version", - "prepublishOnly": "npm uninstall mongodb && npm run build", + "prepublishOnly": "npm run build", "build": "tsc", "test": "npm run mocha", - "test:ci": "npm run mocha && npm uninstall mongodb", "lint": "eslint src", "lint-fix": "eslint src --fix", "mocha": "mocha --reporter spec -b", @@ -75,6 +74,7 @@ "delay": "5.0.0", "eslint": "^8.29.0", "mocha": "10.1.0", + "mongodb": "^6.3.0", "mongodb-memory-server": "^9.1.6", "nyc": "^15.1.0", "prettier": "^2.8.1", From b240f8f011b0bbb791755cfee85e74f6379adfa2 Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 20:01:32 +0100 Subject: [PATCH 24/36] End the TypeScript madness plz --- .eslintrc.js | 6 ------ .github/workflows/test.yml | 2 +- src/JobDbRepository.ts | 25 ++++++++++--------------- 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 1c9f435..fa3f704 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -5,12 +5,6 @@ module.exports = { project: './tsconfig.eslint.json' }, overrides: [ - { - files: ['*ts'], - rules: { - '@typescript-eslint/ban-ts-comment': 'off', - }, - }, { files: ['*.test.ts'], env: { diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 176700e..3ff24ff 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,7 +24,7 @@ jobs: mongodb-version: ${{ matrix.mongodb-version }} - name: Cache node modules - uses: actions/cache@v2 + uses: actions/cache@v4 env: cache-name: cache-node-modules with: diff --git a/src/JobDbRepository.ts b/src/JobDbRepository.ts index 9e7e44d..c711959 100644 --- a/src/JobDbRepository.ts +++ b/src/JobDbRepository.ts @@ -107,8 +107,7 @@ export class JobDbRepository { const update: UpdateFilter = { $set: { lockedAt: new Date() } }; // Lock the job in MongoDB! - // @ts-ignore - const resp = (await this.collection.findOneAndUpdate( + const resp = await this.collection.findOneAndUpdate( criteria as Filter, update, { @@ -116,7 +115,7 @@ export class JobDbRepository { sort: this.connectOptions.sort, includeResultMetadata: true } - )) as any; + ); return resp?.value || undefined; } @@ -151,8 +150,7 @@ export class JobDbRepository { const JOB_PROCESS_SET_QUERY: UpdateFilter = { $set: { lockedAt: now } }; // Find ONE and ONLY ONE job and set the 'lockedAt' time so that job begins to be processed - // @ts-ignore - const result = (await this.collection.findOneAndUpdate( + const result = await this.collection.findOneAndUpdate( JOB_PROCESS_WHERE_QUERY, JOB_PROCESS_SET_QUERY, { @@ -160,7 +158,7 @@ export class JobDbRepository { sort: this.connectOptions.sort, includeResultMetadata: true } - )) as any; + ); return result.value || undefined; } @@ -307,15 +305,14 @@ export class JobDbRepository { if (id) { // Update the job and process the resulting data' log('job already has _id, calling findOneAndUpdate() using _id as query'); - // @ts-ignore - const result = (await this.collection.findOneAndUpdate( + const result = await this.collection.findOneAndUpdate( { _id: id, name: props.name }, update, { returnDocument: 'after', includeResultMetadata: true } - )) as any; + ); return this.processDbResult(job, result.value as IJobParameters); } @@ -345,8 +342,7 @@ export class JobDbRepository { }) ); // this call ensure a job of this name can only exists once - // @ts-ignore - const result = (await this.collection.findOneAndUpdate( + const result = await this.collection.findOneAndUpdate( { name: props.name, type: 'single' @@ -357,7 +353,7 @@ export class JobDbRepository { returnDocument: 'after', includeResultMetadata: true } - )) as any; + ); log( `findOneAndUpdate(${props.name}) with type "single" ${ result.lastErrorObject?.updatedExisting @@ -378,12 +374,11 @@ export class JobDbRepository { // Use the 'unique' query object to find an existing job or create a new one log('calling findOneAndUpdate() with unique object as query: \n%O', query); - // @ts-ignore - const result = (await this.collection.findOneAndUpdate(query as IJobParameters, update, { + const result = await this.collection.findOneAndUpdate(query as IJobParameters, update, { upsert: true, returnDocument: 'after', includeResultMetadata: true - })) as any; + }); return this.processDbResult(job, result.value as IJobParameters); } From ecfd5b6d16be26ccfec4577c93dd40a807193556 Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 20:04:31 +0100 Subject: [PATCH 25/36] Revert "End the TypeScript madness plz" This reverts commit b240f8f011b0bbb791755cfee85e74f6379adfa2. --- .eslintrc.js | 6 ++++++ .github/workflows/test.yml | 2 +- src/JobDbRepository.ts | 25 +++++++++++++++---------- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index fa3f704..1c9f435 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -5,6 +5,12 @@ module.exports = { project: './tsconfig.eslint.json' }, overrides: [ + { + files: ['*ts'], + rules: { + '@typescript-eslint/ban-ts-comment': 'off', + }, + }, { files: ['*.test.ts'], env: { diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3ff24ff..176700e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,7 +24,7 @@ jobs: mongodb-version: ${{ matrix.mongodb-version }} - name: Cache node modules - uses: actions/cache@v4 + uses: actions/cache@v2 env: cache-name: cache-node-modules with: diff --git a/src/JobDbRepository.ts b/src/JobDbRepository.ts index c711959..9e7e44d 100644 --- a/src/JobDbRepository.ts +++ b/src/JobDbRepository.ts @@ -107,7 +107,8 @@ export class JobDbRepository { const update: UpdateFilter = { $set: { lockedAt: new Date() } }; // Lock the job in MongoDB! - const resp = await this.collection.findOneAndUpdate( + // @ts-ignore + const resp = (await this.collection.findOneAndUpdate( criteria as Filter, update, { @@ -115,7 +116,7 @@ export class JobDbRepository { sort: this.connectOptions.sort, includeResultMetadata: true } - ); + )) as any; return resp?.value || undefined; } @@ -150,7 +151,8 @@ export class JobDbRepository { const JOB_PROCESS_SET_QUERY: UpdateFilter = { $set: { lockedAt: now } }; // Find ONE and ONLY ONE job and set the 'lockedAt' time so that job begins to be processed - const result = await this.collection.findOneAndUpdate( + // @ts-ignore + const result = (await this.collection.findOneAndUpdate( JOB_PROCESS_WHERE_QUERY, JOB_PROCESS_SET_QUERY, { @@ -158,7 +160,7 @@ export class JobDbRepository { sort: this.connectOptions.sort, includeResultMetadata: true } - ); + )) as any; return result.value || undefined; } @@ -305,14 +307,15 @@ export class JobDbRepository { if (id) { // Update the job and process the resulting data' log('job already has _id, calling findOneAndUpdate() using _id as query'); - const result = await this.collection.findOneAndUpdate( + // @ts-ignore + const result = (await this.collection.findOneAndUpdate( { _id: id, name: props.name }, update, { returnDocument: 'after', includeResultMetadata: true } - ); + )) as any; return this.processDbResult(job, result.value as IJobParameters); } @@ -342,7 +345,8 @@ export class JobDbRepository { }) ); // this call ensure a job of this name can only exists once - const result = await this.collection.findOneAndUpdate( + // @ts-ignore + const result = (await this.collection.findOneAndUpdate( { name: props.name, type: 'single' @@ -353,7 +357,7 @@ export class JobDbRepository { returnDocument: 'after', includeResultMetadata: true } - ); + )) as any; log( `findOneAndUpdate(${props.name}) with type "single" ${ result.lastErrorObject?.updatedExisting @@ -374,11 +378,12 @@ export class JobDbRepository { // Use the 'unique' query object to find an existing job or create a new one log('calling findOneAndUpdate() with unique object as query: \n%O', query); - const result = await this.collection.findOneAndUpdate(query as IJobParameters, update, { + // @ts-ignore + const result = (await this.collection.findOneAndUpdate(query as IJobParameters, update, { upsert: true, returnDocument: 'after', includeResultMetadata: true - }); + })) as any; return this.processDbResult(job, result.value as IJobParameters); } From d2bb44685b04282f25e2c2764a7b26c690f8d1ec Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 20:05:23 +0100 Subject: [PATCH 26/36] Update test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 176700e..3ff24ff 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,7 +24,7 @@ jobs: mongodb-version: ${{ matrix.mongodb-version }} - name: Cache node modules - uses: actions/cache@v2 + uses: actions/cache@v4 env: cache-name: cache-node-modules with: From bc11d10b47d410ff22f17ddc997f9c730e30e6a1 Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 20:08:09 +0100 Subject: [PATCH 27/36] Limit tests for `mongodb@6` --- .github/workflows/test.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3ff24ff..657b671 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,7 +8,6 @@ jobs: matrix: node-version: [18, 20, 21] mongodb-version: [6.0, 7.0] - mongodb-client: [4, 5, 6] steps: - name: Git checkout uses: actions/checkout@v4 @@ -45,9 +44,6 @@ jobs: env: CI: true - - name: Install peer depedencies - run: npm i mongodb@${{ matrix.mongodb-client }} - - name: Test run: npm test env: From d686a8aac42a8d234f713e782ddc525eac9cb3f8 Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 20:14:34 +0100 Subject: [PATCH 28/36] Update README.md --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 411ade9..603c22e 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,15 @@ **DISCLAIMER**: I **do not** intend to actively maintain this repository. -I forked it from https://github.com/hokify/agenda because I desperately needed support for [mongodb@6](https://www.npmjs.com/package/mongodb) for my website www.whisthub.com, but the original repository doesn't seem very active anymore. -Ideally this gets merged back into [@hokify/agenda](https://github.com/hokify/agenda), or even better in [agenda/agenda](https://github.com/agenda/agenda). +I forked it from https://github.com/hokify/agenda because I desperately needed support for [mongodb@6](https://www.npmjs.com/package/mongodb) for my website www.whisthub.com, and tailored it to my own needs. +Ideally this gets merged back eventuallyinto [@hokify/agenda](https://github.com/hokify/agenda), or even better in [agenda/agenda](https://github.com/agenda/agenda). However, I *do* intend to keep this up to date with the latest version of the [mongodb](https://www.npmjs.com/package/mongodb) package, but that's all. Agenda is a great library and I would hate to see it dying because new mongodb versions are not supported. +Key differences with the [original repo](https://github.com/hokify/agenda) are: + + - MongoDB is now a peer dependency, so it must be installed separately. + - The library is only tested against version 6, but it should work for version 5 and even 4. + # Agenda

From 74f0127030e2813163041a097ecab9e607721136 Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 21:01:05 +0100 Subject: [PATCH 29/36] Output native esm --- .mocharc.jsonc | 4 +- package-lock.json | 693 ++++++++++++++++++++++++++++- package.json | 6 +- src/Job.ts | 14 +- src/JobDbRepository.ts | 12 +- src/JobProcessingQueue.ts | 6 +- src/JobProcessor.ts | 16 +- src/index.ts | 34 +- src/types/AgendaStatus.ts | 4 +- src/types/JobDefinition.ts | 2 +- src/utils/nextRunAt.ts | 13 +- src/utils/processEvery.ts | 2 +- test/agenda.test.ts | 10 +- test/fixtures/agenda-instance.ts | 4 +- test/fixtures/someJobDefinition.ts | 2 +- test/helpers/mock-mongodb.ts | 2 +- test/job.test.ts | 11 +- test/jobprocessor.test.ts | 4 +- test/retry.test.ts | 2 +- tsconfig.json | 12 +- 20 files changed, 761 insertions(+), 92 deletions(-) diff --git a/.mocharc.jsonc b/.mocharc.jsonc index 2eac2aa..9ae9452 100644 --- a/.mocharc.jsonc +++ b/.mocharc.jsonc @@ -1,7 +1,7 @@ { "diff": true, - "spec": "./test/*.test.ts", - "require": ["ts-node/register", "source-map-support/register"], + "spec": "*.test.ts", + "import": ["tsx/esm"], "extension": ["js", "ts"], "package": "./package.json", "recursive": true, diff --git a/package-lock.json b/package-lock.json index 349b911..9c65271 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "@types/node": "^18.11.12", "@types/sinon": "^10.0.13", "chai": "^4.3.7", - "delay": "5.0.0", + "delay": "^6.0.0", "eslint": "^8.29.0", "mocha": "10.1.0", "mongodb": "^6.3.0", @@ -36,6 +36,7 @@ "sinon": "15.0.0", "standard-version": "^9.5.0", "ts-node": "^10.9.1", + "tsx": "^4.7.0", "typedoc": "^0.23.21", "typescript": "^4.9.4" }, @@ -1669,6 +1670,374 @@ "node": ">=12" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@eslint/eslintrc": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", @@ -3591,12 +3960,12 @@ } }, "node_modules/delay": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", - "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-6.0.0.tgz", + "integrity": "sha512-2NJozoOHQ4NuZuVIr5CWd0iiLVIRSDepakaovIN+9eIDHEhdCAEvSy2cuf1DCrPPQLvHmbqTHODlhHg8UCy4zw==", "dev": true, "engines": { - "node": ">=10" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3830,6 +4199,44 @@ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, + "node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -4857,9 +5264,9 @@ "dev": true }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -5039,6 +5446,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-tsconfig": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/git-raw-commits": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", @@ -7904,6 +8323,15 @@ "node": ">=4" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -8775,6 +9203,25 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, + "node_modules/tsx": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.7.0.tgz", + "integrity": "sha512-I+t79RYPlEYlHn9a+KzwrvEwhJg35h/1zHsLC2JXvhC2mdynMv6Zxzvhv5EMV6VF5qJlLlkSnMVvdZV3PSIGcg==", + "dev": true, + "dependencies": { + "esbuild": "~0.19.10", + "get-tsconfig": "^4.7.2" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -10560,6 +11007,167 @@ "@jridgewell/trace-mapping": "0.3.9" } }, + "@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "dev": true, + "optional": true + }, "@eslint/eslintrc": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", @@ -12032,9 +12640,9 @@ } }, "delay": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", - "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-6.0.0.tgz", + "integrity": "sha512-2NJozoOHQ4NuZuVIr5CWd0iiLVIRSDepakaovIN+9eIDHEhdCAEvSy2cuf1DCrPPQLvHmbqTHODlhHg8UCy4zw==", "dev": true }, "detect-indent": { @@ -12216,6 +12824,37 @@ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, + "esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -12960,9 +13599,9 @@ "dev": true }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "optional": true }, @@ -13098,6 +13737,15 @@ "get-intrinsic": "^1.1.1" } }, + "get-tsconfig": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "dev": true, + "requires": { + "resolve-pkg-maps": "^1.0.0" + } + }, "git-raw-commits": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", @@ -15214,6 +15862,12 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, + "resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true + }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -15878,6 +16532,17 @@ } } }, + "tsx": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.7.0.tgz", + "integrity": "sha512-I+t79RYPlEYlHn9a+KzwrvEwhJg35h/1zHsLC2JXvhC2mdynMv6Zxzvhv5EMV6VF5qJlLlkSnMVvdZV3PSIGcg==", + "dev": true, + "requires": { + "esbuild": "~0.19.10", + "fsevents": "~2.3.3", + "get-tsconfig": "^4.7.2" + } + }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", diff --git a/package.json b/package.json index 4547d48..64da9b5 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,9 @@ { "name": "@whisthub/agenda", "version": "0.0.0", + "type": "module", "description": "Light weight job scheduler for Node.js", - "main": "dist/index.js", + "exports": "./dist/index.js", "types": "dist/index.d.ts", "publishConfig": { "access": "public" @@ -71,7 +72,7 @@ "@types/node": "^18.11.12", "@types/sinon": "^10.0.13", "chai": "^4.3.7", - "delay": "5.0.0", + "delay": "^6.0.0", "eslint": "^8.29.0", "mocha": "10.1.0", "mongodb": "^6.3.0", @@ -81,6 +82,7 @@ "sinon": "15.0.0", "standard-version": "^9.5.0", "ts-node": "^10.9.1", + "tsx": "^4.7.0", "typedoc": "^0.23.21", "typescript": "^4.9.4" } diff --git a/src/Job.ts b/src/Job.ts index ed1eda8..8877d60 100644 --- a/src/Job.ts +++ b/src/Job.ts @@ -1,12 +1,12 @@ -import * as date from 'date.js'; -import * as debug from 'debug'; +import date from 'date.js'; +import debug from 'debug'; import { ObjectId } from 'mongodb'; import { ChildProcess, fork } from 'child_process'; -import type { Agenda } from './index'; -import type { DefinitionProcessor } from './types/JobDefinition'; -import { IJobParameters, datefields, TJobDatefield } from './types/JobParameters'; -import { JobPriority, parsePriority } from './utils/priority'; -import { computeFromInterval, computeFromRepeatAt } from './utils/nextRunAt'; +import type { Agenda } from './index.js'; +import type { DefinitionProcessor } from './types/JobDefinition.js'; +import { IJobParameters, datefields, TJobDatefield } from './types/JobParameters.js'; +import { JobPriority, parsePriority } from './utils/priority.js'; +import { computeFromInterval, computeFromRepeatAt } from './utils/nextRunAt.js'; const log = debug('agenda:job'); diff --git a/src/JobDbRepository.ts b/src/JobDbRepository.ts index 9e7e44d..4b98ee9 100644 --- a/src/JobDbRepository.ts +++ b/src/JobDbRepository.ts @@ -1,4 +1,4 @@ -import * as debug from 'debug'; +import debug from 'debug'; import { Collection, Db, @@ -9,11 +9,11 @@ import { Sort, UpdateFilter } from 'mongodb'; -import type { Job, JobWithId } from './Job'; -import type { Agenda } from './index'; -import type { IDatabaseOptions, IDbConfig, IMongoOptions } from './types/DbOptions'; -import type { IJobParameters } from './types/JobParameters'; -import { hasMongoProtocol } from './utils/hasMongoProtocol'; +import type { Job, JobWithId } from './Job.js'; +import type { Agenda } from './index.js'; +import type { IDatabaseOptions, IDbConfig, IMongoOptions } from './types/DbOptions.js'; +import type { IJobParameters } from './types/JobParameters.js'; +import { hasMongoProtocol } from './utils/hasMongoProtocol.js'; const log = debug('agenda:db'); diff --git a/src/JobProcessingQueue.ts b/src/JobProcessingQueue.ts index 893994b..74040b5 100644 --- a/src/JobProcessingQueue.ts +++ b/src/JobProcessingQueue.ts @@ -1,7 +1,7 @@ // eslint-disable-next-line prettier/prettier -import type {Job, JobWithId} from './Job'; -import type { IJobParameters } from './types/JobParameters'; -import type { Agenda } from './index'; +import type {Job, JobWithId} from './Job.js'; +import type { IJobParameters } from './types/JobParameters.js'; +import type { Agenda } from './index.js'; /** * @class */ diff --git a/src/JobProcessor.ts b/src/JobProcessor.ts index bb344f6..9f46b01 100644 --- a/src/JobProcessor.ts +++ b/src/JobProcessor.ts @@ -1,14 +1,16 @@ -import * as debug from 'debug'; -import type { IAgendaJobStatus, IAgendaStatus } from './types/AgendaStatus'; -import type { IJobDefinition } from './types/JobDefinition'; -import type { Agenda, JobWithId } from './index'; -import type { IJobParameters } from './types/JobParameters'; -import { Job } from './Job'; -import { JobProcessingQueue } from './JobProcessingQueue'; +import debug from 'debug'; +import type { IAgendaJobStatus, IAgendaStatus } from './types/AgendaStatus.js'; +import type { IJobDefinition } from './types/JobDefinition.js'; +import type { Agenda, JobWithId } from './index.js'; +import type { IJobParameters } from './types/JobParameters.js'; +import { Job } from './Job.js'; +import { JobProcessingQueue } from './JobProcessingQueue.js'; +import { createRequire } from 'node:module'; const log = debug('agenda:jobProcessor'); // eslint-disable-next-line @typescript-eslint/no-var-requires,global-require +const require = createRequire(import.meta.url); const { version: agendaVersion } = require('../package.json'); const MAX_SAFE_32BIT_INTEGER = 2 ** 31; // Math.pow(2,31); diff --git a/src/index.ts b/src/index.ts index a2acb66..fcdf17c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,20 +1,20 @@ import { EventEmitter } from 'events'; -import * as debug from 'debug'; +import debug from 'debug'; import type { Db, Filter, MongoClientOptions, Sort } from 'mongodb'; import { SortDirection } from 'mongodb'; import { ForkOptions } from 'child_process'; -import type { IJobDefinition } from './types/JobDefinition'; -import type { IAgendaConfig } from './types/AgendaConfig'; -import type { IDatabaseOptions, IDbConfig, IMongoOptions } from './types/DbOptions'; -import type { IAgendaStatus } from './types/AgendaStatus'; -import type { IJobParameters } from './types/JobParameters'; -import { Job, JobWithId } from './Job'; -import { JobDbRepository } from './JobDbRepository'; -import { JobPriority, parsePriority } from './utils/priority'; -import { JobProcessor } from './JobProcessor'; -import { calculateProcessEvery } from './utils/processEvery'; -import { getCallerFilePath } from './utils/stack'; +import type { IJobDefinition } from './types/JobDefinition.js'; +import type { IAgendaConfig } from './types/AgendaConfig.js'; +import type { IDatabaseOptions, IDbConfig, IMongoOptions } from './types/DbOptions.js'; +import type { IAgendaStatus } from './types/AgendaStatus.js'; +import type { IJobParameters } from './types/JobParameters.js'; +import { Job, JobWithId } from './Job.js'; +import { JobDbRepository } from './JobDbRepository.js'; +import { JobPriority, parsePriority } from './utils/priority.js'; +import { JobProcessor } from './JobProcessor.js'; +import { calculateProcessEvery } from './utils/processEvery.js'; +import { getCallerFilePath } from './utils/stack.js'; const log = debug('agenda'); @@ -571,12 +571,12 @@ export class Agenda extends EventEmitter { } } -export * from './types/AgendaConfig'; +export * from './types/AgendaConfig.js'; -export * from './types/JobDefinition'; +export * from './types/JobDefinition.js'; -export * from './types/JobParameters'; +export * from './types/JobParameters.js'; -export * from './types/DbOptions'; +export * from './types/DbOptions.js'; -export * from './Job'; +export * from './Job.js'; diff --git a/src/types/AgendaStatus.ts b/src/types/AgendaStatus.ts index 20ed9b8..b6922b3 100644 --- a/src/types/AgendaStatus.ts +++ b/src/types/AgendaStatus.ts @@ -1,5 +1,5 @@ -import type { IJobParameters } from './JobParameters'; -import type { IJobDefinition } from './JobDefinition'; +import type { IJobParameters } from './JobParameters.js'; +import type { IJobDefinition } from './JobDefinition.js'; export interface IAgendaJobStatus { [name: string]: { diff --git a/src/types/JobDefinition.ts b/src/types/JobDefinition.ts index 4ab45bd..30e853b 100644 --- a/src/types/JobDefinition.ts +++ b/src/types/JobDefinition.ts @@ -1,4 +1,4 @@ -import type { Job } from '../Job'; +import type { Job } from '../Job.js'; export interface IJobDefinition { /** max number of locked jobs of this kind */ diff --git a/src/utils/nextRunAt.ts b/src/utils/nextRunAt.ts index 8e82c1c..20f4041 100644 --- a/src/utils/nextRunAt.ts +++ b/src/utils/nextRunAt.ts @@ -1,11 +1,12 @@ /* eslint-disable import/first */ import { DateTime } from 'luxon'; -import * as date from 'date.js'; -import * as debug from 'debug'; -import { parseExpression } from 'cron-parser'; -import humanInterval = require('human-interval'); -import { isValidDate } from './isValidDate'; -import type { IJobParameters } from '../types/JobParameters'; +import date from 'date.js'; +import debug from 'debug'; +import cronParser from 'cron-parser'; +import humanInterval from 'human-interval'; +import { isValidDate } from './isValidDate.js'; +import type { IJobParameters } from '../types/JobParameters.js'; +const { parseExpression } = cronParser; const log = debug('agenda:nextRunAt'); diff --git a/src/utils/processEvery.ts b/src/utils/processEvery.ts index ca341b1..34c06a9 100644 --- a/src/utils/processEvery.ts +++ b/src/utils/processEvery.ts @@ -1,4 +1,4 @@ -import humanInterval = require('human-interval'); +import humanInterval from 'human-interval'; export function calculateProcessEvery(input: number | string = 5000): number { if (typeof input === 'number') return input; diff --git a/test/agenda.test.ts b/test/agenda.test.ts index 63ee684..5946205 100644 --- a/test/agenda.test.ts +++ b/test/agenda.test.ts @@ -1,13 +1,13 @@ /* eslint-disable no-console,no-unused-expressions,@typescript-eslint/no-unused-expressions */ -import * as delay from 'delay'; +import delay from 'delay'; import { Db } from 'mongodb'; import { expect } from 'chai'; -import { mockMongo } from './helpers/mock-mongodb'; +import { mockMongo } from './helpers/mock-mongodb.js'; -import { Agenda } from '../src'; -import { hasMongoProtocol } from '../src/utils/hasMongoProtocol'; -import { Job } from '../src/Job'; +import { Agenda } from '../src/index.js'; +import { hasMongoProtocol } from '../src/utils/hasMongoProtocol.js'; +import { Job } from '../src/Job.js'; // agenda instances let globalAgenda: Agenda; diff --git a/test/fixtures/agenda-instance.ts b/test/fixtures/agenda-instance.ts index d23fc19..44b8a01 100644 --- a/test/fixtures/agenda-instance.ts +++ b/test/fixtures/agenda-instance.ts @@ -1,5 +1,5 @@ -import { Agenda } from '../../src'; -import addTests from './add-tests'; +import { Agenda } from '../../src/index.js'; +import addTests from './add-tests.js'; const connStr = process.argv[2]; const tests = process.argv.slice(3); diff --git a/test/fixtures/someJobDefinition.ts b/test/fixtures/someJobDefinition.ts index 68f836b..0322c55 100644 --- a/test/fixtures/someJobDefinition.ts +++ b/test/fixtures/someJobDefinition.ts @@ -1,4 +1,4 @@ -import { Agenda } from '../../src'; +import { Agenda } from '../../src/index.js'; export default (agenda: Agenda, _definitionOnly = false) => { agenda.define('some job', async job => { diff --git a/test/helpers/mock-mongodb.ts b/test/helpers/mock-mongodb.ts index e9274b5..9e5c144 100644 --- a/test/helpers/mock-mongodb.ts +++ b/test/helpers/mock-mongodb.ts @@ -1,6 +1,6 @@ import { MongoMemoryServer } from 'mongodb-memory-server'; import { MongoClient } from 'mongodb'; -import * as debug from 'debug'; +import debug from 'debug'; const log = debug('agenda:mock-mongodb'); diff --git a/test/job.test.ts b/test/job.test.ts index e0d466c..1acb51d 100644 --- a/test/job.test.ts +++ b/test/job.test.ts @@ -1,18 +1,19 @@ /* eslint-disable no-console */ -import * as path from 'path'; -import * as cp from 'child_process'; +import path from 'node:path'; +import cp from 'node:child_process'; import { expect } from 'chai'; -import * as assert from 'node:assert'; +import assert from 'node:assert'; import { DateTime } from 'luxon'; import { Db } from 'mongodb'; -import * as delay from 'delay'; +import delay from 'delay'; import * as sinon from 'sinon'; import { fail } from 'assert'; import { Job } from '../src/Job'; import { Agenda } from '../src'; import { mockMongo } from './helpers/mock-mongodb'; import someJobDefinition from './fixtures/someJobDefinition'; +const __dirname = import.meta.dirname; // Create agenda instances let agenda: Agenda; @@ -1345,7 +1346,7 @@ describe('Job', () => { describe('Integration Tests', () => { describe('.every()', () => { - it('Should not rerun completed jobs after restart', done => { + it.only('Should not rerun completed jobs after restart', done => { let i = 0; const serviceError = function (e) { diff --git a/test/jobprocessor.test.ts b/test/jobprocessor.test.ts index 9e92e43..dde6d13 100644 --- a/test/jobprocessor.test.ts +++ b/test/jobprocessor.test.ts @@ -3,8 +3,8 @@ import { fail } from 'assert'; import { expect } from 'chai'; import { Db } from 'mongodb'; -import { Agenda } from '../src'; -import { mockMongo } from './helpers/mock-mongodb'; +import { Agenda } from '../src/index.js'; +import { mockMongo } from './helpers/mock-mongodb.js'; // Create agenda instances let agenda: Agenda; diff --git a/test/retry.test.ts b/test/retry.test.ts index a720b84..9937053 100644 --- a/test/retry.test.ts +++ b/test/retry.test.ts @@ -1,6 +1,6 @@ /* eslint-disable no-console */ import { Db } from 'mongodb'; -import * as delay from 'delay'; +import delay from 'delay'; import { mockMongo } from './helpers/mock-mongodb'; import { Agenda } from '../src'; diff --git a/tsconfig.json b/tsconfig.json index 32172ed..4616a73 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,15 +2,13 @@ "compilerOptions": { "outDir": "./dist", "rootDir": "./src", - - // target settings for node 10 - "module": "commonjs", - "target": "es2019", - "lib": ["es2019"], - // "lib": ["esnext", "esnext.asynciterable", "dom"], + "module": "nodenext", + "moduleDetection": "force", + "target": "es2017", + // "lib": ["es2017"], // other best practice configs - "moduleResolution": "node", + "moduleResolution": "nodenext", "strict": true, "noImplicitAny": false, // <-- get rid of this! "removeComments": false, // <-- do not remove comments (needed for @deprecated notices etc) From 0d10c68df6fcaacf5898e287d7ea478239efcf5e Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 21:15:06 +0100 Subject: [PATCH 30/36] Fix tests for esm output --- .mocharc.jsonc | 2 +- src/JobProcessor.ts | 3 ++- test/helpers/forkHelper.ts | 2 +- test/job.test.ts | 24 ++++++++++++------------ 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/.mocharc.jsonc b/.mocharc.jsonc index 9ae9452..4ce8368 100644 --- a/.mocharc.jsonc +++ b/.mocharc.jsonc @@ -1,6 +1,6 @@ { "diff": true, - "spec": "*.test.ts", + "spec": "./test/*.test.ts", "import": ["tsx/esm"], "extension": ["js", "ts"], "package": "./package.json", diff --git a/src/JobProcessor.ts b/src/JobProcessor.ts index 9f46b01..f4c3f6f 100644 --- a/src/JobProcessor.ts +++ b/src/JobProcessor.ts @@ -81,7 +81,7 @@ export class JobProcessor { private nextScanAt = new Date(); - private jobQueue: JobProcessingQueue = new JobProcessingQueue(this.agenda); + private jobQueue: JobProcessingQueue; private runningJobs: JobWithId[] = []; @@ -103,6 +103,7 @@ export class JobProcessor { private totalLockLimit: number, private processEvery: number ) { + this.jobQueue = new JobProcessingQueue(this.agenda); log('creating interval to call processJobs every [%dms]', processEvery); this.processInterval = setInterval(() => this.process(), processEvery); this.process(); diff --git a/test/helpers/forkHelper.ts b/test/helpers/forkHelper.ts index 5c85d59..58e2455 100644 --- a/test/helpers/forkHelper.ts +++ b/test/helpers/forkHelper.ts @@ -1,4 +1,4 @@ -import { Agenda } from '../../src'; +import { Agenda } from '../../src/index.js'; function isCancelMessage(message): message is { type: 'cancel'; error: string } { return message !== null && typeof message === 'object' && message.type === 'cancel'; diff --git a/test/job.test.ts b/test/job.test.ts index 1acb51d..4316912 100644 --- a/test/job.test.ts +++ b/test/job.test.ts @@ -1346,7 +1346,7 @@ describe('Job', () => { describe('Integration Tests', () => { describe('.every()', () => { - it.only('Should not rerun completed jobs after restart', done => { + it('Should not rerun completed jobs after restart', done => { let i = 0; const serviceError = function (e) { @@ -1370,7 +1370,7 @@ describe('Job', () => { const startService = () => { const serverPath = path.join(__dirname, 'fixtures', 'agenda-instance.ts'); const n = cp.fork(serverPath, [mongoCfg, 'daily'], { - execArgv: ['-r', 'ts-node/register'] + execArgv: ['--import', 'tsx/esm'] }); n.on('message', receiveMessage); @@ -1383,7 +1383,7 @@ describe('Job', () => { it('Should properly run jobs when defined via an array', done => { const serverPath = path.join(__dirname, 'fixtures', 'agenda-instance.ts'); const n = cp.fork(serverPath, [mongoCfg, 'daily-array'], { - execArgv: ['-r', 'ts-node/register'] + execArgv: ['--import', 'tsx/esm'] }); let ran1 = false; @@ -1466,7 +1466,7 @@ describe('Job', () => { const startService = () => { const serverPath = path.join(__dirname, 'fixtures', 'agenda-instance.ts'); const n = cp.fork(serverPath, [mongoCfg, 'define-future-job'], { - execArgv: ['-r', 'ts-node/register'] + execArgv: ['--import', 'tsx/esm'] }); n.on('message', receiveMessage); @@ -1492,7 +1492,7 @@ describe('Job', () => { const startService = () => { const serverPath = path.join(__dirname, 'fixtures', 'agenda-instance.ts'); const n = cp.fork(serverPath, [mongoCfg, 'define-past-due-job'], { - execArgv: ['-r', 'ts-node/register'] + execArgv: ['--import', 'tsx/esm'] }); n.on('message', receiveMessage); @@ -1505,7 +1505,7 @@ describe('Job', () => { it('Should schedule using array of names', done => { const serverPath = path.join(__dirname, 'fixtures', 'agenda-instance.ts'); const n = cp.fork(serverPath, [mongoCfg, 'schedule-array'], { - execArgv: ['-r', 'ts-node/register'] + execArgv: ['--import', 'tsx/esm'] }); let ran1 = false; @@ -1556,7 +1556,7 @@ describe('Job', () => { }; const serverPath = path.join(__dirname, 'fixtures', 'agenda-instance.ts'); - const n = cp.fork(serverPath, [mongoCfg, 'now'], { execArgv: ['-r', 'ts-node/register'] }); + const n = cp.fork(serverPath, [mongoCfg, 'now'], { execArgv: ['--import', 'tsx/esm'] }); n.on('message', receiveMessage); n.on('error', serviceError); @@ -1659,7 +1659,7 @@ describe('Job', () => { } }); - describe('job fork mode', () => { + describe('job fork mode', () => {7 it('runs a job in fork mode', async () => { const agendaFork = new Agenda({ mongo: mongoDb, @@ -1667,7 +1667,7 @@ describe('Job', () => { path: './test/helpers/forkHelper.ts', options: { env: { DB_CONNECTION: mongoCfg }, - execArgv: ['-r', 'ts-node/register'] + execArgv: ['--import', 'tsx/esm'] } } }); @@ -1710,7 +1710,7 @@ describe('Job', () => { path: './test/helpers/forkHelper.ts', options: { env: { DB_CONNECTION: mongoCfg }, - execArgv: ['-r', 'ts-node/register'] + execArgv: ['--import', 'tsx/esm'] } } }); @@ -1753,7 +1753,7 @@ describe('Job', () => { path: './test/helpers/forkHelper.ts', options: { env: { DB_CONNECTION: mongoCfg }, - execArgv: ['-r', 'ts-node/register'] + execArgv: ['--import', 'tsx/esm'] } } }); @@ -1796,7 +1796,7 @@ describe('Job', () => { path: './test/helpers/forkHelper.ts', options: { env: { DB_CONNECTION: mongoCfg }, - execArgv: ['-r', 'ts-node/register'] + execArgv: ['--import', 'tsx/esm'] } }, defaultLockLifetime: 1000 From 206f33269c9affe74e4fb3860025da55265f1bff Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 21:21:07 +0100 Subject: [PATCH 31/36] Set TypeScript target to es2022 again --- tsconfig.json | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index 4616a73..483be9f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,22 +4,15 @@ "rootDir": "./src", "module": "nodenext", "moduleDetection": "force", - "target": "es2017", - // "lib": ["es2017"], + "target": "es2022", // other best practice configs "moduleResolution": "nodenext", "strict": true, - "noImplicitAny": false, // <-- get rid of this! - "removeComments": false, // <-- do not remove comments (needed for @deprecated notices etc) - "emitDecoratorMetadata": true, - "composite": true, - "experimentalDecorators": true, + "noImplicitAny": false, + "removeComments": false, "strictPropertyInitialization": false, - "resolveJsonModule": true, "sourceMap": true, - "isolatedModules": false, - "declaration": true }, "exclude": ["node_modules", "**/__tests__"], "include": ["./src"] From d743a723db3915159c1d35b2269220158b9bdff7 Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 21:26:01 +0100 Subject: [PATCH 32/36] Don't rely on `import.meta.dirname` --- test/job.test.ts | 11 ++++++----- test/retry.test.ts | 4 ++-- test/tsconfig.json | 9 --------- 3 files changed, 8 insertions(+), 16 deletions(-) delete mode 100644 test/tsconfig.json diff --git a/test/job.test.ts b/test/job.test.ts index 4316912..4f5a823 100644 --- a/test/job.test.ts +++ b/test/job.test.ts @@ -1,5 +1,6 @@ /* eslint-disable no-console */ import path from 'node:path'; +import { fileURLToPath } from 'node:url'; import cp from 'node:child_process'; import { expect } from 'chai'; import assert from 'node:assert'; @@ -9,11 +10,11 @@ import { Db } from 'mongodb'; import delay from 'delay'; import * as sinon from 'sinon'; import { fail } from 'assert'; -import { Job } from '../src/Job'; -import { Agenda } from '../src'; -import { mockMongo } from './helpers/mock-mongodb'; -import someJobDefinition from './fixtures/someJobDefinition'; -const __dirname = import.meta.dirname; +import { Job } from '../src/Job.js'; +import { Agenda } from '../src/index.js'; +import { mockMongo } from './helpers/mock-mongodb.js'; +import someJobDefinition from './fixtures/someJobDefinition.js'; +const __dirname = path.dirname(fileURLToPath(import.meta.url)); // Create agenda instances let agenda: Agenda; diff --git a/test/retry.test.ts b/test/retry.test.ts index 9937053..7c3e322 100644 --- a/test/retry.test.ts +++ b/test/retry.test.ts @@ -1,9 +1,9 @@ /* eslint-disable no-console */ import { Db } from 'mongodb'; import delay from 'delay'; -import { mockMongo } from './helpers/mock-mongodb'; +import { mockMongo } from './helpers/mock-mongodb.js'; -import { Agenda } from '../src'; +import { Agenda } from '../src/index.js'; // agenda instances let agenda: Agenda; diff --git a/test/tsconfig.json b/test/tsconfig.json deleted file mode 100644 index e97f472..0000000 --- a/test/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "rootDir": "../", - "noEmit": true - }, - "exclude": [], - "include": ["../src", "./"] -} From 08bde7d6b8f68b1ca8b5f7a5d682a060067d5896 Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 21:28:08 +0100 Subject: [PATCH 33/36] Fix linting errors --- .eslintrc.js => .eslintrc.cjs | 0 src/JobProcessor.ts | 2 +- src/utils/nextRunAt.ts | 1 + 3 files changed, 2 insertions(+), 1 deletion(-) rename .eslintrc.js => .eslintrc.cjs (100%) diff --git a/.eslintrc.js b/.eslintrc.cjs similarity index 100% rename from .eslintrc.js rename to .eslintrc.cjs diff --git a/src/JobProcessor.ts b/src/JobProcessor.ts index f4c3f6f..37eb6ba 100644 --- a/src/JobProcessor.ts +++ b/src/JobProcessor.ts @@ -1,11 +1,11 @@ import debug from 'debug'; +import { createRequire } from 'node:module'; import type { IAgendaJobStatus, IAgendaStatus } from './types/AgendaStatus.js'; import type { IJobDefinition } from './types/JobDefinition.js'; import type { Agenda, JobWithId } from './index.js'; import type { IJobParameters } from './types/JobParameters.js'; import { Job } from './Job.js'; import { JobProcessingQueue } from './JobProcessingQueue.js'; -import { createRequire } from 'node:module'; const log = debug('agenda:jobProcessor'); diff --git a/src/utils/nextRunAt.ts b/src/utils/nextRunAt.ts index 20f4041..c6faa7a 100644 --- a/src/utils/nextRunAt.ts +++ b/src/utils/nextRunAt.ts @@ -6,6 +6,7 @@ import cronParser from 'cron-parser'; import humanInterval from 'human-interval'; import { isValidDate } from './isValidDate.js'; import type { IJobParameters } from '../types/JobParameters.js'; + const { parseExpression } = cronParser; const log = debug('agenda:nextRunAt'); From c128f410d41699482e87f8464a4225570fe79716 Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 21:37:18 +0100 Subject: [PATCH 34/36] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 603c22e..de9a87c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ **DISCLAIMER**: I **do not** intend to actively maintain this repository. -I forked it from https://github.com/hokify/agenda because I desperately needed support for [mongodb@6](https://www.npmjs.com/package/mongodb) for my website www.whisthub.com, and tailored it to my own needs. +I forked it from https://github.com/hokify/agenda because I desperately needed support for [mongodb@6](https://www.npmjs.com/package/mongodb) for my website www.whisthub.com. Ideally this gets merged back eventuallyinto [@hokify/agenda](https://github.com/hokify/agenda), or even better in [agenda/agenda](https://github.com/agenda/agenda). However, I *do* intend to keep this up to date with the latest version of the [mongodb](https://www.npmjs.com/package/mongodb) package, but that's all. @@ -8,6 +8,7 @@ Agenda is a great library and I would hate to see it dying because new mongodb v Key differences with the [original repo](https://github.com/hokify/agenda) are: - MongoDB is now a peer dependency, so it must be installed separately. + - The module is now [esm only](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c). This is to prepare for any of the dependencies - most notably `mongodb` - becoming esm-only one day too. It also helps push the ecosystem forward. - The library is only tested against version 6, but it should work for version 5 and even 4. # Agenda From c7a8aa3b8f4eda4a0283f44e37913293c35d3545 Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 21:39:20 +0100 Subject: [PATCH 35/36] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index de9a87c..d91360b 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Key differences with the [original repo](https://github.com/hokify/agenda) are: - MongoDB is now a peer dependency, so it must be installed separately. - The module is now [esm only](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c). This is to prepare for any of the dependencies - most notably `mongodb` - becoming esm-only one day too. It also helps push the ecosystem forward. - - The library is only tested against version 6, but it should work for version 5 and even 4. + - The library is only tested against `mongodb@6`, but it should work for version 5 and even 4. # Agenda From 6cc0685f3d6a10fa40252c79427f23a50610f67a Mon Sep 17 00:00:00 2001 From: Sebastiaan Marynissen Date: Wed, 31 Jan 2024 21:39:49 +0100 Subject: [PATCH 36/36] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d91360b..6cae553 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ **DISCLAIMER**: I **do not** intend to actively maintain this repository. I forked it from https://github.com/hokify/agenda because I desperately needed support for [mongodb@6](https://www.npmjs.com/package/mongodb) for my website www.whisthub.com. -Ideally this gets merged back eventuallyinto [@hokify/agenda](https://github.com/hokify/agenda), or even better in [agenda/agenda](https://github.com/agenda/agenda). +Ideally this gets merged back eventually into [@hokify/agenda](https://github.com/hokify/agenda), or even better in [agenda/agenda](https://github.com/agenda/agenda). However, I *do* intend to keep this up to date with the latest version of the [mongodb](https://www.npmjs.com/package/mongodb) package, but that's all. Agenda is a great library and I would hate to see it dying because new mongodb versions are not supported.