From df7d73a6fce289bfd663963a41b779c7d8c06ea3 Mon Sep 17 00:00:00 2001 From: negue Date: Mon, 15 Dec 2025 22:15:57 +0100 Subject: [PATCH] remove run-rs, add docker:aio script call, use healthcheck to initiate again --- docker-compose.dev.yml | 19 +- docker-compose.mongo-local.yml | 35 -- docker-compose.mongo-only.yml | 24 ++ docker-compose.mongo-test-local.yml | 27 +- gulp/gulp-build.js | 19 +- package-lock.json | 536 ---------------------------- package.json | 9 +- 7 files changed, 59 insertions(+), 610 deletions(-) delete mode 100644 docker-compose.mongo-local.yml create mode 100644 docker-compose.mongo-only.yml diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 483f6292c8..38f54b127c 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -34,9 +34,17 @@ services: - .:/usr/src/habitica - /usr/src/habitica/node_modules mongo: - image: mongo:7.0 - restart: unless-stopped - command: ["--replSet", "rs", "--bind_ip_all", "--port", "27017"] + image: "mongo:7.0" + container_name: "habitica-mongodb" + networks: + - habitica + hostname: "mongodb" + ports: + - "27017:27017" + restart: "unless-stopped" + volumes: + - "./mongodb-data-docker:/data/db" + entrypoint: [ "/usr/bin/mongod", "--bind_ip_all", "--replSet", "rs" ] healthcheck: test: echo "try { rs.status() } catch (err) { rs.initiate() }" | mongosh --port 27017 --quiet interval: 10s @@ -44,10 +52,7 @@ services: start_period: 0s start_interval: 1s retries: 30 - networks: - - habitica - ports: - - "27017:27017" + networks: habitica: driver: bridge diff --git a/docker-compose.mongo-local.yml b/docker-compose.mongo-local.yml deleted file mode 100644 index e21e983e73..0000000000 --- a/docker-compose.mongo-local.yml +++ /dev/null @@ -1,35 +0,0 @@ -# big thanks to https://pakisan.github.io/posts/docker-compose-mongodb-single-node-replica-set/ <3 - -networks: - mongodb-network: - name: "mongodb-network" - driver: bridge -services: - mongodb: - image: "mongo:7.0" - container_name: "mongodb" - networks: - - mongodb-network - hostname: "mongodb" - ports: - - "27017:27017" - restart: "unless-stopped" - volumes: - - "./mongodb-data-docker:/data/db" - entrypoint: [ "/usr/bin/mongod", "--bind_ip_all", "--replSet", "rs" ] - mongoinit: - image: "mongo:7.0" - container_name: "mongodb_replSet_initializer" - restart: "on-failure" # WITHOUT THIS, the initializer tries only once and fails - depends_on: - - mongodb - networks: - - mongodb-network - - command: > - bash -c " - until mongosh --host mongodb:27017 --eval 'db.adminCommand({ping:1})' >/dev/null 2>&1; do - sleep 1 - done - mongosh --host mongodb:27017 --eval 'try { rs.initiate({_id: \"rs\", members:[{_id:0, host: \"mongodb:27017\"}]}); } catch(e) { print(\"rs.initiate skipped or failed: \" + e); }' - " diff --git a/docker-compose.mongo-only.yml b/docker-compose.mongo-only.yml new file mode 100644 index 0000000000..848fbfa8dd --- /dev/null +++ b/docker-compose.mongo-only.yml @@ -0,0 +1,24 @@ +networks: + mongodb-network: + name: "mongodb-network" + driver: bridge +services: + mongodb: + image: "mongo:7.0" + container_name: "habitica-mongodb-only" + networks: + - mongodb-network + hostname: "mongodb" + ports: + - "27017:27017" + restart: "unless-stopped" + volumes: + - "./mongodb-data-docker:/data/db" + entrypoint: [ "/usr/bin/mongod", "--bind_ip_all", "--replSet", "rs" ] + healthcheck: + test: echo "try { rs.status() } catch (err) { rs.initiate() }" | mongosh --port 27017 --quiet + interval: 10s + timeout: 30s + start_period: 0s + start_interval: 1s + retries: 30 diff --git a/docker-compose.mongo-test-local.yml b/docker-compose.mongo-test-local.yml index 3d916dcb72..4258c414bf 100644 --- a/docker-compose.mongo-test-local.yml +++ b/docker-compose.mongo-test-local.yml @@ -1,5 +1,3 @@ -# big thanks to https://pakisan.github.io/posts/docker-compose-mongodb-single-node-replica-set/ <3 - networks: mongodb-network: name: "mongodb-network" @@ -7,7 +5,7 @@ networks: services: mongodb: image: "mongo:7.0" - container_name: "mongodb" + container_name: "habitica-mongodb-test" networks: - mongodb-network hostname: "mongodb" @@ -17,19 +15,10 @@ services: volumes: - "./mongodb-data-docker-testing:/data/db" entrypoint: [ "/usr/bin/mongod", "--bind_ip_all", "--replSet", "rs" ] - mongoinit: - image: "mongo:7.0" - container_name: "mongodb_replSet_initializer" - restart: "on-failure" # WITHOUT THIS, the initializer tries only once and fails - depends_on: - - mongodb - networks: - - mongodb-network - - command: > - bash -c " - until mongosh --host mongodb:27017 --eval 'db.adminCommand({ping:1})' >/dev/null 2>&1; do - sleep 1 - done - mongosh --host mongodb:27017 --eval 'try { rs.initiate({_id: \"rs\", members:[{_id:0, host: \"mongodb:27017\"}]}); } catch(e) { print(\"rs.initiate skipped or failed: \" + e); }' - " + healthcheck: + test: echo "try { rs.status() } catch (err) { rs.initiate() }" | mongosh --port 27017 --quiet + interval: 10s + timeout: 30s + start_period: 0s + start_interval: 1s + retries: 30 diff --git a/gulp/gulp-build.js b/gulp/gulp-build.js index 31cf632c13..a8d243b797 100644 --- a/gulp/gulp-build.js +++ b/gulp/gulp-build.js @@ -35,7 +35,7 @@ gulp.task('build:prod', gulp.series( // When used on windows `run-rs` must first be run without the `--keep` option // in order to be setup correctly, afterwards it can be used. -const MONGO_PATH = path.join(__dirname, '/../mongodb-data-rs/'); +const MONGO_PATH = path.join(__dirname, '/../mongodb-data-docker/'); gulp.task('build:prepare-mongo', async () => { if (fs.existsSync(MONGO_PATH)) { @@ -51,29 +51,32 @@ gulp.task('build:prepare-mongo', async () => { console.log('MongoDB data folder is missing, setting up.'); // eslint-disable-line no-console // use run-rs without --keep, kill it as soon as the replica set starts - const runRsProcess = spawn('npm', ['run', 'mongo:dev:rs']); + const dockerMongoProcess = spawn('npm', ['run', 'docker:mongo:dev']); - for await (const chunk of runRsProcess.stdout) { + let manuallyStopped = false; + + for await (const chunk of dockerMongoProcess.stdout) { const stringChunk = chunk.toString(); console.log(stringChunk); // eslint-disable-line no-console // kills the process after the replica set is setup - if (stringChunk.includes('Started replica set')) { + if (stringChunk.includes('mongod startup complete')) { console.log('MongoDB setup correctly.'); // eslint-disable-line no-console - runRsProcess.kill(); + dockerMongoProcess.kill(); + manuallyStopped = true; } } let error = ''; - for await (const chunk of runRsProcess.stderr) { + for await (const chunk of dockerMongoProcess.stderr) { const stringChunk = chunk.toString(); error += stringChunk; } const exitCode = await new Promise(resolve => { - runRsProcess.on('close', resolve); + dockerMongoProcess.on('close', resolve); }); - if (exitCode || error.length > 0) { + if (!manuallyStopped && (exitCode || error.length > 0)) { // remove any leftover files clean.sync(MONGO_PATH); diff --git a/package-lock.json b/package-lock.json index 46700eeb92..75a73712b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -94,7 +94,6 @@ "monk": "^7.3.4", "nyc": "^15.1.0", "require-again": "^2.0.0", - "run-rs": "^0.7.7", "sinon-chai": "^3.7.0", "sinon-stub-promise": "^4.0.0" }, @@ -5930,16 +5929,6 @@ "node": ">=8" } }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, "node_modules/bl": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", @@ -5980,13 +5969,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true, - "license": "MIT" - }, "node_modules/body-parser": { "version": "1.20.3", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", @@ -6719,17 +6701,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, "node_modules/coa": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", @@ -6847,16 +6818,6 @@ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/colorspace": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", @@ -10264,13 +10225,6 @@ "node": ">=8" } }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "license": "MIT" - }, "node_modules/filename-reserved-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", @@ -14027,19 +13981,6 @@ "node": ">=12.0.0" } }, - "node_modules/kerberos": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-1.1.7.tgz", - "integrity": "sha512-1zXg4rARjsh/VMz2jjZeTfRHbJTVNR6f2DYHbLvtUSOW1satj33Fvc7vOJ0YVWB9+/9ITJWd1QKp4w217SsiFA==", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.14.1", - "prebuild-install": "6.1.2" - } - }, "node_modules/keygrip": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", @@ -15235,85 +15176,6 @@ "node": ">=18" } }, - "node_modules/mongodb-core": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.2.7.tgz", - "integrity": "sha512-WypKdLxFNPOH/Jy6i9z47IjG2wIldA54iDZBmHMINcgKOUcWJh8og+Wix76oGd7EyYkHJKssQ2FAOw5Su/n4XQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bson": "^1.1.1", - "require_optional": "^1.0.1", - "safe-buffer": "^5.1.2" - }, - "optionalDependencies": { - "saslprep": "^1.0.0" - } - }, - "node_modules/mongodb-core/node_modules/bson": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", - "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/mongodb-topology-manager": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mongodb-topology-manager/-/mongodb-topology-manager-2.1.0.tgz", - "integrity": "sha512-s2PelP303LsyJIsReIDUyHhdGPN1xoBY5RynfDKpgT2Wz/D0vaQZN+x0AK6lzj7ro7c8hPFzvHyGA5bJ7JWUug==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bluebird": "^3.5.1", - "co": "^4.6.0", - "kerberos": "^1.0.0", - "mkdirp": "^0.5.1", - "mongodb-core": "^3.1.2", - "rimraf": "^2.6.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mongodb-topology-manager/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/mongodb-topology-manager/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/mongodb/node_modules/bson": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", @@ -15576,13 +15438,6 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, - "node_modules/nan": { - "version": "2.23.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.23.1.tgz", - "integrity": "sha512-r7bBUGKzlqk8oPBDYxt6Z0aEdF1G1rwlMcLk8LCOMbOzf0mG+JUfUzG4fIMWwHWP0iyaLWEQZJmtB7nOHEm/qw==", - "dev": true, - "license": "MIT" - }, "node_modules/nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -15807,26 +15662,6 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==" }, - "node_modules/node-abi": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", - "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^5.4.1" - } - }, - "node_modules/node-abi/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, "node_modules/node-addon-api": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", @@ -15946,13 +15781,6 @@ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" }, - "node_modules/noop-logger": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha512-6kM8CLXvuW5crTxsAtva2YLrRrDaiTIkIePWs9moLHqbFWT94WpNFjwS/5dfLfECg5i/lkmw3aoqVidxt23TEQ==", - "dev": true, - "license": "MIT" - }, "node_modules/nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", @@ -17563,183 +17391,6 @@ "underscore": "^1.8.3" } }, - "node_modules/prebuild-install": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.2.tgz", - "integrity": "sha512-PzYWIKZeP+967WuKYXlTOhYBgGOvTRSfaKI89XnfJ0ansRAH7hDU45X+K+FZeI1Wb/7p/NnuctPH3g0IqKUuSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.21.0", - "noop-logger": "^0.1.1", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/prebuild-install/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prebuild-install/node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true, - "license": "ISC" - }, - "node_modules/prebuild-install/node_modules/are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "deprecated": "This package is no longer supported.", - "dev": true, - "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/prebuild-install/node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/prebuild-install/node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", - "deprecated": "This package is no longer supported.", - "dev": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/prebuild-install/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prebuild-install/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/prebuild-install/node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "deprecated": "This package is no longer supported.", - "dev": true, - "license": "ISC", - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/prebuild-install/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/prebuild-install/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/prebuild-install/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "license": "MIT", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prebuild-install/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -17776,20 +17427,6 @@ "node": ">= 0.8" } }, - "node_modules/prettyjson": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/prettyjson/-/prettyjson-1.2.2.tgz", - "integrity": "sha512-hDso231aQslRQPJjuSMIyUTN5CmW78AwEHlvigOs9E9IO+blW1AJTCJC6pQ8FArBSFsp5ZUdZsWXCUfXiD2D0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "colors": "1.4.0", - "minimist": "^1.2.0" - }, - "bin": { - "prettyjson": "bin/prettyjson" - } - }, "node_modules/prismjs": { "version": "1.30.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", @@ -18496,37 +18133,6 @@ "uuid": "bin/uuid" } }, - "node_modules/require_optional": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", - "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "resolve-from": "^2.0.0", - "semver": "^5.1.0" - } - }, - "node_modules/require_optional/node_modules/resolve-from": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha512-qpFcKaXsq8+oRoLilkwyc7zHGF5i9Q2/25NIgLQQ/+VVv9rU4qvr6nXVAw1DsnXJyQkZsR4Ytfbtg5ehfcUssQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require_optional/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, "node_modules/require-again": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-again/-/require-again-2.0.0.tgz", @@ -18761,110 +18367,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/run-rs": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/run-rs/-/run-rs-0.7.7.tgz", - "integrity": "sha512-63cLkmCl5JDz642EvtcDvIMG4VEJ7bOI8iJ3ovnydZYPkp8VD02Khr7wcbSs2CoOA9iXdNF27XMZdw+mVLlV2A==", - "dev": true, - "license": "Apache 2.0", - "dependencies": { - "chalk": "2.4.1", - "co": "4.6.0", - "commander": "2.15.1", - "moment": "^2.29.2", - "mongodb": "3.6.x", - "mongodb-topology-manager": "2.1.0", - "prettyjson": "1.2.2" - }, - "bin": { - "run-rs": "index.js" - } - }, - "node_modules/run-rs/node_modules/bson": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", - "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/run-rs/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/run-rs/node_modules/commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true, - "license": "MIT" - }, - "node_modules/run-rs/node_modules/mongodb": { - "version": "3.6.12", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.12.tgz", - "integrity": "sha512-ErHpF4P4disEIQB8Nns2twIMVXcvmlwjpKqfVnyB/hhd/L5We48LfoBYjBjuUSiSqL6ffmcygPTgjvpy2LETRQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bl": "^2.2.1", - "bson": "^1.1.4", - "denque": "^1.4.1", - "optional-require": "^1.0.3", - "safe-buffer": "^5.1.2" - }, - "engines": { - "node": ">=4" - }, - "optionalDependencies": { - "saslprep": "^1.0.0" - }, - "peerDependenciesMeta": { - "aws4": { - "optional": true - }, - "bson-ext": { - "optional": true - }, - "kerberos": { - "optional": true - }, - "mongodb-client-encryption": { - "optional": true - }, - "mongodb-extjson": { - "optional": true - }, - "snappy": { - "optional": true - } - } - }, - "node_modules/run-rs/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -19294,44 +18796,6 @@ } ] }, - "node_modules/simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "dev": true, - "license": "MIT", - "dependencies": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/simple-get/node_modules/decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-response": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/simple-get/node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", diff --git a/package.json b/package.json index e25362c98e..1d3ff8a71a 100644 --- a/package.json +++ b/package.json @@ -105,10 +105,10 @@ "start": "node --watch ./website/server/index.js", "start:simple": "node ./website/server/index.js", "debug": "node --watch --inspect ./website/server/index.js", - "mongo:dev:rs": "run-rs -v 7.0.23 -l ubuntu2214 --keep --dbpath mongodb-data-rs --number 1 --quiet", - "mongo:test:rs": "run-rs -v 7.0.23 -l ubuntu2214 --keep --dbpath mongodb-data-rs-testing --number 1 --quiet", - "mongo:dev:docker": "docker compose -f docker-compose.mongo-local.yml up", - "mongo:test:docker": "docker compose -f docker-compose.mongo-test-local.yml up", + "docker:aio": "docker compose -f docker-compose.dev.yml up", + "docker:mongo:dev": "docker compose -f docker-compose.mongo-only.yml up", + "docker:mongo:dev:down": "docker compose -f docker-compose.mongo-only.yml down", + "docker:mongo:test": "docker compose -f docker-compose.mongo-test-local.yml up", "mongo:test": "node scripts/start-local-mongo.mjs --test-db", "postinstall": "git config --global url.\"https://\".insteadOf git:// && gulp build && cd website/client && npm install", "apidoc": "gulp apidoc", @@ -125,7 +125,6 @@ "monk": "^7.3.4", "nyc": "^15.1.0", "require-again": "^2.0.0", - "run-rs": "^0.7.7", "sinon-chai": "^3.7.0", "sinon-stub-promise": "^4.0.0" }