diff --git a/package.json b/package.json index 7e2bdb0..db3f26a 100644 --- a/package.json +++ b/package.json @@ -51,18 +51,15 @@ "basic-auth": "^2.0.1", "cors": "^2.8.5", "express": "^4.18.2", - "jose": "^4.14.6", - "lodash.isplainobject": "^4.0.6", - "uuid": "^9.0.1" + "is-plain-obj": "^4.1.0", + "jose": "^4.14.6" }, "devDependencies": { "@types/basic-auth": "^1.1.4", "@types/cors": "^2.8.14", "@types/express": "^4.17.18", - "@types/lodash.isplainobject": "^4.0.7", "@types/node": "^18.18.1", "@types/supertest": "^2.0.13", - "@types/uuid": "^9.0.4", "@typescript-eslint/eslint-plugin": "^6.7.3", "@typescript-eslint/parser": "^6.7.3", "@vitest/coverage-v8": "^0.34.6", diff --git a/src/lib/helpers.ts b/src/lib/helpers.ts index a9fa0fa..603e262 100644 --- a/src/lib/helpers.ts +++ b/src/lib/helpers.ts @@ -19,7 +19,7 @@ import { AssertionError } from 'assert'; import type { AddressInfo } from 'net'; import { readFileSync } from 'fs'; -import isPlainObject from 'lodash.isplainobject'; +import isPlainObject from 'is-plain-obj'; import type { TokenRequest } from './types'; diff --git a/src/lib/oauth2-service.ts b/src/lib/oauth2-service.ts index 4f6f732..950de50 100644 --- a/src/lib/oauth2-service.ts +++ b/src/lib/oauth2-service.ts @@ -24,7 +24,7 @@ import express, { type RequestHandler } from 'express'; import cors from 'cors'; import basicAuth from 'basic-auth'; import { EventEmitter } from 'events'; -import { v4 as uuidv4 } from 'uuid'; +import { randomUUID } from 'crypto'; import { OAuth2Issuer } from './oauth2-issuer'; import { @@ -259,7 +259,7 @@ export class OAuth2Service extends EventEmitter { }; body['id_token'] = await this.buildToken(req, tokenTtl, xfn); - body['refresh_token'] = uuidv4(); + body['refresh_token'] = randomUUID(); } const tokenEndpointResponse: MutableResponse = { @@ -284,7 +284,7 @@ export class OAuth2Service extends EventEmitter { }; private authorizeHandler: RequestHandler = (req, res) => { - const code = uuidv4(); + const code = randomUUID(); const { nonce, scope, diff --git a/yarn.lock b/yarn.lock index 4fca151..3642468 100644 --- a/yarn.lock +++ b/yarn.lock @@ -375,18 +375,6 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/lodash.isplainobject@^4.0.7": - version "4.0.7" - resolved "https://registry.yarnpkg.com/@types/lodash.isplainobject/-/lodash.isplainobject-4.0.7.tgz#698e3231341b1aa0a16681e7aa8b10ee6d9a7d8c" - integrity sha512-fdHtdjpy7fXydEaRHx1dPa+2AVmLbmk2Gv7f0w/90BKCH0DkWo8pIrzygnB3rvgo6oKNb3cO9VaPpj9GLCr5Ug== - dependencies: - "@types/lodash" "*" - -"@types/lodash@*": - version "4.14.199" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.199.tgz#c3edb5650149d847a277a8961a7ad360c474e9bf" - integrity sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg== - "@types/mime@*": version "3.0.2" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.2.tgz#c1ae807f13d308ee7511a5b81c74f327028e66e8" @@ -449,11 +437,6 @@ dependencies: "@types/superagent" "*" -"@types/uuid@^9.0.4": - version "9.0.4" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.4.tgz#e884a59338da907bda8d2ed03e01c5c49d036f1c" - integrity sha512-zAuJWQflfx6dYJM62vna+Sn5aeSWhh3OB+wfUEACNcqUSc0AGc5JKl+ycL1vrH7frGTXhJchYjE1Hak8L819dA== - "@typescript-eslint/eslint-plugin@^6.7.3": version "6.7.3" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.3.tgz#d98046e9f7102d49a93d944d413c6055c47fafd7" @@ -1963,6 +1946,11 @@ is-path-inside@^3.0.3: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== +is-plain-obj@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -2144,11 +2132,6 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== - lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" @@ -2862,6 +2845,7 @@ std-env@^3.3.3: integrity sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q== "string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0: + name string-width-cjs version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -3163,11 +3147,6 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -uuid@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" - integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== - v8-to-istanbul@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz#1b83ed4e397f58c85c266a570fc2558b5feb9265"