diff --git a/.gitignore b/.gitignore index 7b65f8729..de010a828 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,7 @@ pnpm-debug.log scratch/ *.scratch/ *.scratch.* +/docker/auth-idp/ldap/config/* +/docker/auth-idp/ldap/db/* +# this line must be last +!.gitkeep diff --git a/CHANGELOG.md b/CHANGELOG.md index fd20e2544..040fdf963 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ MAGE adheres to [Semantic Versioning](http://semver.org/). the `options` entry. See the related bug fix below. #### Features +* Admins can now configure different placename search services in settings. * Layer file download - The _Layer_ admin web page now includes a button to download layer files when applicable. This currently works only for GeoPackage layers. @@ -26,7 +27,14 @@ MAGE adheres to [Semantic Versioning](http://semver.org/). * The web app and service incorrectly used a `settings.options` sub-document on SAML configurations to read and write some entries that should be in the `settings` entry. +* Admin user search could crash the server when sending certain characters. +* Feed item timestamps appeared as epoch milliseconds rather than formatted dates. * Many third-party dependencies were quite outdated or superfluous. +* Fortify static code analysis had findings that were addressed. +* GeoPackage and CSV exports had several null reference bugs. +* Some TypeScript DTS files for plain JS files were incorrect or incomplete. +* The ready event for app startup was emitting before the HTTP server was actually listening. +* The service configuration did not allow a port value of `0`, which prompts the HTTP server to pick a random open port. This helps with testing. ## [6.2.9](https://github.com/ngageoint/mage-server/releases/tag/6.2.9) diff --git a/README.md b/README.md index 0e492599f..674dff063 100644 --- a/README.md +++ b/README.md @@ -283,7 +283,7 @@ npm run build After building the core packages, install them as dependencies in the `instance` package. ```bash cd instance -npm i --omit=dev ../service ../web-app ../plugins/nga-msi +npm i --omit dev ../service ../web-app ../plugins/nga-msi ``` The project's root [`package.json`](./package.json) provides some convenience script entries to install, build, and run the MAGE server components, however, those are deprecated and will likely go away after migrating to NPM 7+'s diff --git a/docker/auth-idp/docker-compose.yml b/docker/auth-idp/docker-compose.yml index e8377a5e9..63b5c6569 100644 --- a/docker/auth-idp/docker-compose.yml +++ b/docker/auth-idp/docker-compose.yml @@ -1,4 +1,5 @@ services: + mage-idp-saml: container_name: mage-idp-saml image: kristophjunge/test-saml-idp @@ -14,3 +15,40 @@ services: source: ./saml/authsources.php target: /var/www/simplesamlphp/config/authsources.php + mage-idp-ldap: + container_name: mage-idp-ldap + image: osixia/openldap:1.5.0 + environment: + - "LDAP_ORGANISATION=World's Greatest Detectives Inc." + - "LDAP_DOMAIN=wgd.com" + - "LDAP_ADMIN_PASSWORD=i found something" + ports: + - 389:389 + - 636:636 + volumes: + - type: bind + source: ./ldap/db + target: /var/lib/ldap + - type: bind + source: ./ldap/config + target: /etc/ldap/slapd.d + networks: + - ldap.mage.net + + mage-idp-ldap-ui: + container_name: mage-idp-ldap-ui + image: osixia/phpldapadmin:latest + depends_on: + - mage-idp-ldap + environment: + - PHPLDAPADMIN_LDAP_HOSTS=mage-idp-ldap + ports: + - 6480:80 + - 6443:443 + networks: + - ldap.mage.net + +networks: + ldap.mage.net: + driver: bridge + diff --git a/docker/auth-idp/ldap/config/.gitkeep b/docker/auth-idp/ldap/config/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/docker/auth-idp/ldap/db/.gitkeep b/docker/auth-idp/ldap/db/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/docs/admin.md b/docs/admin.md deleted file mode 100644 index 8ab83f842..000000000 --- a/docs/admin.md +++ /dev/null @@ -1,20 +0,0 @@ -# Identity Providers - -## OAuth 2.0 - -Here is an example of using Google's OAuth 2.0 [endpoints](https://developers.google.com/identity/gsi/web/guides/overview) to authenticate MAGE -users. This setup is very similar to Google OpenID Connect authentication. - -Obtain your _Client Identifier_ and _Client Secret_ from Google's [API Console](https://console.cloud.google.com/apis/credentials/oauthclient). -Additionally on that page, ensure you register the correct callback URL, e.g., `https://mage.example.com/auth/oauth/callback` - -On the MAGE Admin page, click the _Settings_ tab. - -_Authorization URL_ - `https://accounts.google.com/o/oauth2/v2/auth` -_Token URL_ - `https://oauth2.googleapis.com/token` -_User Profile URL_ - `https://www.googleapis.com/oauth2/v3/userinfo` -_Scopes_ - `profile,email,openid` - -Click the _Advanced_ section header to expand the advanced settings panel. -_Profile ID Property_ - `sub` -_Display Name Property_ - `name` \ No newline at end of file diff --git a/docs/admin/auth.md b/docs/admin/auth.md new file mode 100644 index 000000000..527685372 --- /dev/null +++ b/docs/admin/auth.md @@ -0,0 +1,128 @@ +# MAGE Authentication and Identity Providers + +To configure authentication settings and identity providers +1. Click the gear icon in the upper right of the MAGE web app to load the _Admin_ page. +1. Click, the _Settings_ tab in the tab strip on the left of the page. +1. Click the _Authentication_ tab near the top of the main content pane. This tab should be selected by default. +1. Click any of the accordion headings to expand the section for the authentication you want to configure, or + click the _New Authentication_ button to add a new authentication identity provider. + +## Local + +## OAuth 2.0 + +Here is an example of using Google's OAuth 2.0 [endpoints](https://developers.google.com/identity/gsi/web/guides/overview) to authenticate MAGE +users. This setup is very similar to Google OpenID Connect authentication. + +Obtain your _Client Identifier_ and _Client Secret_ from Google's [API Console](https://console.cloud.google.com/apis/credentials/oauthclient). +Additionally on that page, ensure you register the correct callback URL, e.g., `https://mage.example.com/auth/oauth/callback` + +On the MAGE Admin page, click the _Settings_ tab. + +_Authorization URL_ - `https://accounts.google.com/o/oauth2/v2/auth` +_Token URL_ - `https://oauth2.googleapis.com/token` +_User Profile URL_ - `https://www.googleapis.com/oauth2/v3/userinfo` +_Scopes_ - `profile,email,openid` + +Click the _Advanced_ section header to expand the advanced settings panel. +_Profile ID Property_ - `sub` +_Display Name Property_ - `name` + +## LDAP + +You can setup MAGE to authenticate users with an LDAP server. For development +testing, the [`auth-idp`](../docker/auth-idp/docker-compose.yml) Compose file +uses the [osixia/openldap](https://github.com/osixia/docker-openldap) and +[osixia/phpLDAPAdmin](https://github.com/osixia/docker-phpLDAPAdmin) images +for LDAP services. Start the `mage-idp-ldap` and `mage-idp-ldap-ui` LDAP +services with the following commands. +```bash +cd docker/auth-idp +docker compose up -d mage-idp-ldap mage-idp-ldap-ui +``` +You can interact with the LDAP admin UI by browsing to https://localhost:6443. +You'll need to by-pass your browser's warning about a self-signed certificate. +Click the _Login_ link on the left pane. The root user name and password for +the LDAP server are `cn=admin,dc=wgd,dc=com` and `i found something`, +respectively. + +You can then use the phpLDAPAdmin UI to setup a simple group structure. +1. Click the _dc=wgd,dc=com_ root node in the tree view on the left of the page. +1. In the main pane, click _Create a child entry_. +1. Select the _Generic: Posix Group_ template. +1. Enter a name for the group in the _Group_ field, e.g., `Field Agents`. +1. Click the _Create Object_ button, then click the _Commit_ button on the next page. +1. Click the root node again in the tree view. +1. Click _Create a child entry_ in the main pane. +1. Select the _Generic: Organizational Unit_ template. +1. Enter a name in the _Organizational Unit_ field, e.g., `Field Agents`. +1. Click the _Create Object_ button, then click the _Commit_ button on the next page. +1. The main pane should now display the organization unit you just created. +1. Click _Create a child entry_ in the main pane. +1. Select the _Generic: User Account_ template. +1. Fill the form fields, e.g., + + | | | + | ---: | --- | + | _First Name_ | `Bruce`| + | _Last Name_ | `Wayne` | + | _Common Name_ | `Batman` | + | _User ID_ | `batman` | + | _Password_ | `i heart alfred` | + | _GID Number_ | `Field Agents` | + +1. Click the _Create Object_ button, then click the _Commit_ button on the next page. +You now have a simple group structure and user account in your LDAP database. + +Now that you have an LDAP database with a user account, you can configure LDAP +authentication in MAGE. This assumes you're running a MAGE server on +http://localhost:4242. +1. Open the MAGE web app in your browser. +1. Click the gear icon in the top right to load the _Admin_ page. +1. Click the _Settings_ tab in the vertical tab strip on the left. +1. The _Authentication_ tab in the main pane should already be active. Click + the tab if not. +1. Click the _New Authentication_ button. +1. Enter a title for the authentication IDP, e.g. `Test LDAP`. +1. Click the _Next_ button. +1. Select `LDAP` from the _Choose a type_ drop-down. +1. Click the _Next_ button. +1. Fill the fields on the _Settings_ step as follows. + | | | + | ---: | ---| + | **_Server_** | + | _URL_ | `ldap://localhost:389` | + | **_Authentication_** | + | _Bind DN_ | `cn=admin,dc=wgd,dc=com` | + | _Bind Credentials_ | `i found something` | + | **_User Search_** | + | _Search Base_ | `ou=Field Agents,dc=wgd,dc=com` | + | _Search Filter_ | `(uid={{username}})` | + | _Search Scope_ | `one` | + | **_Advanced_** | + | _Profile ID Property_ | `uid | + | _Display Name Property_ | `cn` | +1. Click the _Next_ button. +1. Adjust the color settings to your preference. +1. Click the _Next_ button. +1. Review the settings and click the _Save_ button. +1. Open a new private browser tab or window and load your MAGE server web app. +1. The sign-in page should display a button labeled _SIGN IN WITH LOCAL LDAP_ + under two text fields. +1. In the _Local LDAP Username_ text field, enter `batman`. +1. In the _Local LDAP Password_ text field, enter `i heart alfred`. +1. Click the _SIGN IN WITH LOCAL LDAP_ button. +1. The page will most likely display a dialog that states the account needs + admin approval. +1. In the browser tab with your MAGE admin page, click the _Users_ tab in the + tab strip on the left. +1. Click the _Inactive_ search facet near the top left of the main pane. The + user list should contain the _Batman_ user with a green _Activate_ button. +1. Click the _Activate_ button next to the _Batman_ user. +1. Return to the private browser tab where you initially signed in with the + LDAP account. +1. Ensure the LDAP username and password fields are still filled, then click + the _SIGN IN WITH LOCAL LDAP_ button. +1. The app may prompt for a device UID if your settings dictate. Enter the + device UID. +1. You are now authenticated with your LDAP account. diff --git a/instance/package.json b/instance/package.json index 2fed68f97..1dd5cf2fb 100644 --- a/instance/package.json +++ b/instance/package.json @@ -1,6 +1,6 @@ { "name": "@ngageoint/mage.dev-instance", - "version": "6.2.10-beta.3", + "version": "6.2.10", "description": "Assemble a MAGE Server deployment from the core service, the web-app, and selected plugins. This is primarily a development tool because the dependencies point to relative directories instead of production packages. This can however serve as a starting point to create a production MAGE instance package.json.", "scripts": { "start": "npm run start:dev-env", diff --git a/package-lock.json b/package-lock.json index 9c8221292..ddbff7743 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ngageoint/mage.project", - "version": "6.2.10-beta.3", + "version": "6.2.10", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@ngageoint/mage.project", - "version": "6.2.10-beta.3", + "version": "6.2.10", "hasInstallScript": true, "devDependencies": { "npm-run-all": "^4.1.5" diff --git a/package.json b/package.json index 5ec77a8ff..64e296490 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "@ngageoint/mage.project", "description": "This is the root package definition for the mage-server monorepo.", "private": true, - "version": "6.2.10-beta.3", + "version": "6.2.10", "files": [], "scripts": { "postinstall": "npm-run-all service:ci web-app:ci image.service:ci nga-msi:ci", diff --git a/service/npm-shrinkwrap.json b/service/npm-shrinkwrap.json index 7c7e40b0f..7263b003e 100644 --- a/service/npm-shrinkwrap.json +++ b/service/npm-shrinkwrap.json @@ -1,12 +1,12 @@ { "name": "@ngageoint/mage.service", - "version": "6.2.10-beta.3", + "version": "6.2.10", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ngageoint/mage.service", - "version": "6.2.10-beta.3", + "version": "6.2.10", "dependencies": { "@ngageoint/geopackage": "^4.2.4", "@node-saml/passport-saml": "^4.0.4", @@ -47,7 +47,7 @@ "passport": "^0.6.0", "passport-anonymous": "1.0.1", "passport-http-bearer": "1.0.1", - "passport-ldapauth": "2.1.3", + "passport-ldapauth": "^3.0.1", "passport-local": "1.0.0", "passport-oauth2": "1.6.0", "passport-openidconnect": "0.1.1", @@ -129,8 +129,8 @@ "wtfnode": "^0.8.4" }, "engines": { - "node": ">= 12.4", - "npm": ">= 6.x" + "node": ">= 16.x", + "npm": ">= 8.x" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -1423,9 +1423,9 @@ } }, "node_modules/@types/ldapjs": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@types/ldapjs/-/ldapjs-1.0.11.tgz", - "integrity": "sha512-O4D1frY6xy2mQr5WouNPeltMe5EHdmU4FxbLDC6TMDX5HXOuafusGu+7Y9WAoqBaYHZ5hcFa7jfkpggyexfeXQ==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@types/ldapjs/-/ldapjs-2.2.5.tgz", + "integrity": "sha512-Lv/nD6QDCmcT+V1vaTRnEKE8UgOilVv5pHcQuzkU1LcRe4mbHHuUo/KHi0LKrpdHhQY8FJzryF38fcVdeUIrzg==", "dependencies": { "@types/node": "*" } @@ -2085,6 +2085,11 @@ "node": ">=10.0.0" } }, + "node_modules/abstract-logging": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", + "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -2390,9 +2395,12 @@ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" }, "node_modules/asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } }, "node_modules/assert": { "version": "2.0.0", @@ -2525,7 +2533,7 @@ "node_modules/backoff": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", - "integrity": "sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=", + "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", "dependencies": { "precond": "0.2" }, @@ -2582,7 +2590,7 @@ "node_modules/bcryptjs": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", - "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" }, "node_modules/better-sqlite3": { "version": "8.6.0", @@ -2794,23 +2802,6 @@ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, - "node_modules/bunyan": { - "version": "1.8.15", - "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.15.tgz", - "integrity": "sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==", - "engines": [ - "node >=0.10.0" - ], - "bin": { - "bunyan": "bin/bunyan" - }, - "optionalDependencies": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" - } - }, "node_modules/busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", @@ -3446,6 +3437,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, "dependencies": { "assert-plus": "^1.0.0" }, @@ -3666,19 +3658,6 @@ "node": ">=4" } }, - "node_modules/dtrace-provider": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz", - "integrity": "sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "nan": "^2.14.0" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -4485,9 +4464,9 @@ } }, "node_modules/extsprintf": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.2.0.tgz", - "integrity": "sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", "engines": [ "node >=0.6.0" ] @@ -6663,79 +6642,54 @@ "dev": true }, "node_modules/ldap-filter": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/ldap-filter/-/ldap-filter-0.2.2.tgz", - "integrity": "sha1-8rhCvguG2jNSeYUFsx68rlkNd9A=", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/ldap-filter/-/ldap-filter-0.3.3.tgz", + "integrity": "sha512-/tFkx5WIn4HuO+6w9lsfxq4FN3O+fDZeO9Mek8dCD8rTUpqzRa766BOBO7BcGkn3X86m5+cBm1/2S/Shzz7gMg==", "dependencies": { - "assert-plus": "0.1.5" + "assert-plus": "^1.0.0" }, "engines": { "node": ">=0.8" } }, - "node_modules/ldap-filter/node_modules/assert-plus": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", - "integrity": "sha1-7nQAlBMALYTOxyGcasgRgS5yMWA=", - "engines": { - "node": ">=0.8" - } - }, "node_modules/ldapauth-fork": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/ldapauth-fork/-/ldapauth-fork-4.3.3.tgz", - "integrity": "sha512-x76VpQ5ZqkwAJmqwcD6KIwDiNEbgIGIPGwC/eA17e1dxWhlTx36w0DlLOFwjTuZ2iuaLTsZsUprlVqvSlwc/1Q==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/ldapauth-fork/-/ldapauth-fork-5.0.5.tgz", + "integrity": "sha512-LWUk76+V4AOZbny/3HIPQtGPWZyA3SW2tRhsWIBi9imP22WJktKLHV1ofd8Jo/wY7Ve6vAT7FCI5mEn3blZTjw==", "dependencies": { - "@types/ldapjs": "^1.0.0", - "@types/node": "*", + "@types/ldapjs": "^2.2.2", "bcryptjs": "^2.4.0", - "ldapjs": "^1.0.2", - "lru-cache": "^5.1.1" + "ldapjs": "^2.2.1", + "lru-cache": "^7.10.1" }, "engines": { "node": ">=0.8.0" } }, "node_modules/ldapauth-fork/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" } }, - "node_modules/ldapauth-fork/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, "node_modules/ldapjs": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ldapjs/-/ldapjs-1.0.2.tgz", - "integrity": "sha1-VE/3Ayt7g8aPBwEyjZKXqmlDQPk=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/ldapjs/-/ldapjs-2.3.3.tgz", + "integrity": "sha512-75QiiLJV/PQqtpH+HGls44dXweviFwQ6SiIK27EqzKQ5jU/7UFrl2E5nLdQ3IYRBzJ/AVFJI66u0MZ0uofKYwg==", "dependencies": { - "asn1": "0.2.3", + "abstract-logging": "^2.0.0", + "asn1": "^0.2.4", "assert-plus": "^1.0.0", "backoff": "^2.5.0", - "bunyan": "^1.8.3", - "dashdash": "^1.14.0", - "ldap-filter": "0.2.2", + "ldap-filter": "^0.3.3", "once": "^1.4.0", - "vasync": "^1.6.4", + "vasync": "^2.2.0", "verror": "^1.8.1" }, - "bin": { - "ldapjs-add": "bin/ldapjs-add", - "ldapjs-compare": "bin/ldapjs-compare", - "ldapjs-delete": "bin/ldapjs-delete", - "ldapjs-modify": "bin/ldapjs-modify", - "ldapjs-search": "bin/ldapjs-search" - }, "engines": { - "node": ">=0.10" - }, - "optionalDependencies": { - "dtrace-provider": "~0.8" + "node": ">=10.13.0" } }, "node_modules/levn": { @@ -8034,66 +7988,6 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "optional": true }, - "node_modules/mv": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", - "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", - "optional": true, - "dependencies": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/mv/node_modules/glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", - "optional": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mv/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "optional": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mv/node_modules/rimraf": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==", - "optional": true, - "dependencies": { - "glob": "^6.0.1" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "optional": true - }, "node_modules/napi-build-utils": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", @@ -8105,15 +7999,6 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "node_modules/ncp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", - "optional": true, - "bin": { - "ncp": "bin/ncp" - } - }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -9267,24 +9152,17 @@ } }, "node_modules/passport-ldapauth": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/passport-ldapauth/-/passport-ldapauth-2.1.3.tgz", - "integrity": "sha512-23n425UTasN6XhcXG0qQ0h0YrS/zfo8kNIEhSLfPsNpglhYhhQFfB1pmDc5RrH+Kiz5fKLkki5BpvkKHCwkixg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/passport-ldapauth/-/passport-ldapauth-3.0.1.tgz", + "integrity": "sha512-TRRx3BHi8GC8MfCT9wmghjde/EGeKjll7zqHRRfGRxXbLcaDce2OftbQrFG7/AWaeFhR6zpZHtBQ/IkINdLVjQ==", "dependencies": { - "@types/node": "^10.12.26", - "@types/passport": "^1.0.0", - "ldapauth-fork": "^4.2.0", + "ldapauth-fork": "^5.0.1", "passport-strategy": "^1.0.0" }, "engines": { "node": ">=0.8.0" } }, - "node_modules/passport-ldapauth/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - }, "node_modules/passport-local": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz", @@ -9666,7 +9544,7 @@ "node_modules/precond": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", - "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=", + "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==", "engines": { "node": ">= 0.6" } @@ -10540,12 +10418,6 @@ } ] }, - "node_modules/safe-json-stringify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", - "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", - "optional": true - }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -11847,25 +11719,32 @@ } }, "node_modules/vasync": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/vasync/-/vasync-1.6.4.tgz", - "integrity": "sha1-3+k2Fq0OeugBszKp2Iv8XNyOHR8=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vasync/-/vasync-2.2.1.tgz", + "integrity": "sha512-Hq72JaTpcTFdWiNA4Y22Amej2GH3BFmBaKPPlDZ4/oC8HNn2ISHLkFrJU4Ds8R3jcUi7oo5Y9jcMHKjES+N9wQ==", "engines": [ "node >=0.6.0" ], "dependencies": { - "verror": "1.6.0" + "verror": "1.10.0" } }, + "node_modules/vasync/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, "node_modules/vasync/node_modules/verror": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.6.0.tgz", - "integrity": "sha1-fROyex+swuLakEBetepuW90lLqU=", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "engines": [ "node >=0.6.0" ], "dependencies": { - "extsprintf": "1.2.0" + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" } }, "node_modules/verror": { @@ -11884,7 +11763,7 @@ "node_modules/verror/node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" }, "node_modules/void-elements": { "version": "3.1.0", @@ -13616,9 +13495,9 @@ } }, "@types/ldapjs": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@types/ldapjs/-/ldapjs-1.0.11.tgz", - "integrity": "sha512-O4D1frY6xy2mQr5WouNPeltMe5EHdmU4FxbLDC6TMDX5HXOuafusGu+7Y9WAoqBaYHZ5hcFa7jfkpggyexfeXQ==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@types/ldapjs/-/ldapjs-2.2.5.tgz", + "integrity": "sha512-Lv/nD6QDCmcT+V1vaTRnEKE8UgOilVv5pHcQuzkU1LcRe4mbHHuUo/KHi0LKrpdHhQY8FJzryF38fcVdeUIrzg==", "requires": { "@types/node": "*" } @@ -14126,6 +14005,11 @@ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==" }, + "abstract-logging": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", + "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" + }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -14364,9 +14248,12 @@ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" }, "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "requires": { + "safer-buffer": "~2.1.0" + } }, "assert": { "version": "2.0.0", @@ -14482,7 +14369,7 @@ "backoff": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", - "integrity": "sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=", + "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", "requires": { "precond": "0.2" } @@ -14519,7 +14406,7 @@ "bcryptjs": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", - "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" }, "better-sqlite3": { "version": "8.6.0", @@ -14692,17 +14579,6 @@ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, - "bunyan": { - "version": "1.8.15", - "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.15.tgz", - "integrity": "sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==", - "requires": { - "dtrace-provider": "~0.8", - "moment": "^2.19.3", - "mv": "~2", - "safe-json-stringify": "~1" - } - }, "busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", @@ -15211,6 +15087,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -15383,15 +15260,6 @@ "integrity": "sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==", "dev": true }, - "dtrace-provider": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz", - "integrity": "sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==", - "optional": true, - "requires": { - "nan": "^2.14.0" - } - }, "duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -16023,9 +15891,9 @@ } }, "extsprintf": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.2.0.tgz", - "integrity": "sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk=" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==" }, "eyes": { "version": "0.1.8", @@ -17689,61 +17557,43 @@ "dev": true }, "ldap-filter": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/ldap-filter/-/ldap-filter-0.2.2.tgz", - "integrity": "sha1-8rhCvguG2jNSeYUFsx68rlkNd9A=", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/ldap-filter/-/ldap-filter-0.3.3.tgz", + "integrity": "sha512-/tFkx5WIn4HuO+6w9lsfxq4FN3O+fDZeO9Mek8dCD8rTUpqzRa766BOBO7BcGkn3X86m5+cBm1/2S/Shzz7gMg==", "requires": { - "assert-plus": "0.1.5" - }, - "dependencies": { - "assert-plus": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", - "integrity": "sha1-7nQAlBMALYTOxyGcasgRgS5yMWA=" - } + "assert-plus": "^1.0.0" } }, "ldapauth-fork": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/ldapauth-fork/-/ldapauth-fork-4.3.3.tgz", - "integrity": "sha512-x76VpQ5ZqkwAJmqwcD6KIwDiNEbgIGIPGwC/eA17e1dxWhlTx36w0DlLOFwjTuZ2iuaLTsZsUprlVqvSlwc/1Q==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/ldapauth-fork/-/ldapauth-fork-5.0.5.tgz", + "integrity": "sha512-LWUk76+V4AOZbny/3HIPQtGPWZyA3SW2tRhsWIBi9imP22WJktKLHV1ofd8Jo/wY7Ve6vAT7FCI5mEn3blZTjw==", "requires": { - "@types/ldapjs": "^1.0.0", - "@types/node": "*", + "@types/ldapjs": "^2.2.2", "bcryptjs": "^2.4.0", - "ldapjs": "^1.0.2", - "lru-cache": "^5.1.1" + "ldapjs": "^2.2.1", + "lru-cache": "^7.10.1" }, "dependencies": { "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" } } }, "ldapjs": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ldapjs/-/ldapjs-1.0.2.tgz", - "integrity": "sha1-VE/3Ayt7g8aPBwEyjZKXqmlDQPk=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/ldapjs/-/ldapjs-2.3.3.tgz", + "integrity": "sha512-75QiiLJV/PQqtpH+HGls44dXweviFwQ6SiIK27EqzKQ5jU/7UFrl2E5nLdQ3IYRBzJ/AVFJI66u0MZ0uofKYwg==", "requires": { - "asn1": "0.2.3", + "abstract-logging": "^2.0.0", + "asn1": "^0.2.4", "assert-plus": "^1.0.0", "backoff": "^2.5.0", - "bunyan": "^1.8.3", - "dashdash": "^1.14.0", - "dtrace-provider": "~0.8", - "ldap-filter": "0.2.2", + "ldap-filter": "^0.3.3", "once": "^1.4.0", - "vasync": "^1.6.4", + "vasync": "^2.2.0", "verror": "^1.8.1" } }, @@ -18804,56 +18654,6 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "optional": true }, - "mv": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", - "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", - "optional": true, - "requires": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", - "optional": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "optional": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "rimraf": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==", - "optional": true, - "requires": { - "glob": "^6.0.1" - } - } - } - }, - "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "optional": true - }, "napi-build-utils": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", @@ -18865,12 +18665,6 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "ncp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", - "optional": true - }, "negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -19747,21 +19541,12 @@ } }, "passport-ldapauth": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/passport-ldapauth/-/passport-ldapauth-2.1.3.tgz", - "integrity": "sha512-23n425UTasN6XhcXG0qQ0h0YrS/zfo8kNIEhSLfPsNpglhYhhQFfB1pmDc5RrH+Kiz5fKLkki5BpvkKHCwkixg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/passport-ldapauth/-/passport-ldapauth-3.0.1.tgz", + "integrity": "sha512-TRRx3BHi8GC8MfCT9wmghjde/EGeKjll7zqHRRfGRxXbLcaDce2OftbQrFG7/AWaeFhR6zpZHtBQ/IkINdLVjQ==", "requires": { - "@types/node": "^10.12.26", - "@types/passport": "^1.0.0", - "ldapauth-fork": "^4.2.0", + "ldapauth-fork": "^5.0.1", "passport-strategy": "^1.0.0" - }, - "dependencies": { - "@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - } } }, "passport-local": { @@ -20047,7 +19832,7 @@ "precond": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", - "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=" + "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==" }, "prelude-ls": { "version": "1.2.1", @@ -20722,12 +20507,6 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, - "safe-json-stringify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", - "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", - "optional": true - }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -21726,19 +21505,26 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, "vasync": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/vasync/-/vasync-1.6.4.tgz", - "integrity": "sha1-3+k2Fq0OeugBszKp2Iv8XNyOHR8=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vasync/-/vasync-2.2.1.tgz", + "integrity": "sha512-Hq72JaTpcTFdWiNA4Y22Amej2GH3BFmBaKPPlDZ4/oC8HNn2ISHLkFrJU4Ds8R3jcUi7oo5Y9jcMHKjES+N9wQ==", "requires": { - "verror": "1.6.0" + "verror": "1.10.0" }, "dependencies": { + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, "verror": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.6.0.tgz", - "integrity": "sha1-fROyex+swuLakEBetepuW90lLqU=", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "requires": { - "extsprintf": "1.2.0" + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" } } } @@ -21756,7 +21542,7 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" } } }, diff --git a/service/package.json b/service/package.json index 2001a6bce..eb91a914c 100644 --- a/service/package.json +++ b/service/package.json @@ -1,6 +1,6 @@ { "name": "@ngageoint/mage.service", - "version": "6.2.10-beta.3", + "version": "6.2.10", "displayName": "MAGE Service", "description": "MAGE is a geospatial situational awareness and data collection platform. The MAGE Service is the ReST service API that the MAGE client apps use to interact with MAGE data.", "keywords": [ @@ -24,8 +24,8 @@ ], "homepage": "https://www.nga.mil", "engines": { - "node": ">= 12.4", - "npm": ">= 6.x" + "node": ">= 16.x", + "npm": ">= 8.x" }, "dependencies": { "@ngageoint/geopackage": "^4.2.4", @@ -67,7 +67,7 @@ "passport": "^0.6.0", "passport-anonymous": "1.0.1", "passport-http-bearer": "1.0.1", - "passport-ldapauth": "2.1.3", + "passport-ldapauth": "^3.0.1", "passport-local": "1.0.0", "passport-oauth2": "1.6.0", "passport-openidconnect": "0.1.1", diff --git a/web-app/package-lock.json b/web-app/package-lock.json index 75a168a25..a86b15f77 100644 --- a/web-app/package-lock.json +++ b/web-app/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ngageoint/mage.web-app", - "version": "6.2.10-beta.3", + "version": "6.2.10", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/web-app/package.json b/web-app/package.json index 24fac0e11..8618e23bb 100644 --- a/web-app/package.json +++ b/web-app/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@ngageoint/mage.web-app", - "version": "6.2.10-beta.3", + "version": "6.2.10", "description": "The MAGE web-app is the UI for interacting with the MAGE service in a web browser.", "keywords": [ "NGA", diff --git a/web-app/projects/core-lib/package.json b/web-app/projects/core-lib/package.json index f4d08d005..781adb37a 100644 --- a/web-app/projects/core-lib/package.json +++ b/web-app/projects/core-lib/package.json @@ -1,6 +1,6 @@ { "name": "@ngageoint/mage.web-core-lib", - "version": "6.2.10-beta.3", + "version": "6.2.10", "repository": { "type": "git", "url": "https://github.com/ngageoint/mage-server.git"