From 0a5e315ae52bcff9af7e91fe49c0c65c4a523812 Mon Sep 17 00:00:00 2001 From: Katherine Wilsdon Date: Wed, 18 Jan 2023 17:22:26 -0700 Subject: [PATCH 01/13] Added isEnabled query parameter in routes, repository, tests, and swagger --- API Documentation/Core.swagger_collection.yaml | 6 ++++++ .../data_warehouse/etl/type_mapping_repository.ts | 9 +++++++-- .../routes/data_warehouse/etl/type_mapping_routes.ts | 10 ++++++---- .../data_warehouse/etl/type_mapping_repository.spec.ts | 6 ++++-- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/API Documentation/Core.swagger_collection.yaml b/API Documentation/Core.swagger_collection.yaml index bb733f683..3a759fb03 100644 --- a/API Documentation/Core.swagger_collection.yaml +++ b/API Documentation/Core.swagger_collection.yaml @@ -3756,6 +3756,12 @@ paths: file: type: string format: binary + parameters: + - schema: + type: boolean + default: false + in: query + name: isEnabled '/containers/{container_id}/import/datasources/{data_source_id}/mappings/{mapping_id}/transformations': get: tags: diff --git a/src/data_access_layer/repositories/data_warehouse/etl/type_mapping_repository.ts b/src/data_access_layer/repositories/data_warehouse/etl/type_mapping_repository.ts index 1a6a3c102..b7a5999a2 100644 --- a/src/data_access_layer/repositories/data_warehouse/etl/type_mapping_repository.ts +++ b/src/data_access_layer/repositories/data_warehouse/etl/type_mapping_repository.ts @@ -326,7 +326,7 @@ export default class TypeMappingRepository extends Repository implements Reposit // by name instead of uuid - so there is potential for issues, use with caution. We return the newly modified/created // type mappings as well as failed mappings so that the end user can perform a review of the export - check the value // of isError on the return to determine if import was successful - async importToDataSource(targetSourceID: string, user: User, ...originalMappings: TypeMapping[]): Promise[]> { + async importToDataSource(targetSourceID: string, user: User, active: string, ...originalMappings: TypeMapping[]): Promise[]> { // pull in the target data source, immediately error out if the source isn't valid, we also need it for the container // in this case we're using the data source mapper because we have no need of actually performing any operations const targetDataSource = await this.#dataSourceMapper.Retrieve(targetSourceID); @@ -355,7 +355,12 @@ export default class TypeMappingRepository extends Repository implements Reposit // call the repo's save method on the modified mapping. mapping.data_source_id = targetDataSource.value.id; mapping.container_id = targetDataSource.value.container_id; - mapping.active = false; // always inactivate the mapping after modification + if (active === 'true') { + mapping.active = true; + } else { + mapping.active = false; + } + // always inactivate the mapping after modification // now we must iterate through the transformations and potentially back-fill the metatype/relationship // ids and key ids if all that are present are the names - note that this will not modify the mapping if diff --git a/src/http_server/routes/data_warehouse/etl/type_mapping_routes.ts b/src/http_server/routes/data_warehouse/etl/type_mapping_routes.ts index a3d80a34a..065a8ef36 100644 --- a/src/http_server/routes/data_warehouse/etl/type_mapping_routes.ts +++ b/src/http_server/routes/data_warehouse/etl/type_mapping_routes.ts @@ -9,6 +9,8 @@ import TypeTransformation from '../../../../domain_objects/data_warehouse/etl/ty import TypeTransformationRepository from '../../../../data_access_layer/repositories/data_warehouse/etl/type_transformation_repository'; import TypeMapping, {TypeMappingExportPayload, TypeMappingUpgradePayload} from '../../../../domain_objects/data_warehouse/etl/type_mapping'; import {FileInfo} from 'busboy'; +import DataSourceRecord from '../../../../domain_objects/data_warehouse/import/data_source'; +import { none } from 'fp-ts/lib/Option'; const JSONStream = require('JSONStream'); const Busboy = require('busboy'); @@ -199,7 +201,7 @@ export default class TypeMappingRoutes { }); } else { mappingRepo - .importToDataSource(payload.target_data_source, user, ...results.value) + .importToDataSource(payload.target_data_source, user, String(req.dataSource?.DataSourceRecord?.active).toLowerCase(), ...results.value) .then((result) => { res.status(200).json(result); next(); @@ -438,7 +440,7 @@ export default class TypeMappingRoutes { const repo = new TypeMappingRepository(); const payload = plainToClass(TypeMapping, req.body); - repo.importToDataSource(req.dataSource.DataSourceRecord?.id!, user, ...payload) + repo.importToDataSource(req.dataSource.DataSourceRecord?.id!, user, String(req.dataSource?.DataSourceRecord?.active).toLowerCase(), ...payload) .then((results) => { res.status(201).json(results); next(); @@ -468,11 +470,11 @@ export default class TypeMappingRoutes { Result.Failure(e).asResponse(res); return; }); - + // String(req.query.inUse).toLowerCase() // once the file has been read, convert to mappings and then attempt the import stream.on('end', () => { const mappings = plainToClass(TypeMapping, objects); - importResults.push(repo.importToDataSource(req.dataSource?.DataSourceRecord?.id!, user, ...mappings)); + importResults.push(repo.importToDataSource(req.dataSource?.DataSourceRecord?.id!, user, String(req.dataSource?.DataSourceRecord?.active).toLowerCase(), ...mappings)); }); try { diff --git a/src/tests/data_warehouse/etl/type_mapping_repository.spec.ts b/src/tests/data_warehouse/etl/type_mapping_repository.spec.ts index 044cd8af4..8ddf33e76 100644 --- a/src/tests/data_warehouse/etl/type_mapping_repository.spec.ts +++ b/src/tests/data_warehouse/etl/type_mapping_repository.spec.ts @@ -35,6 +35,7 @@ describe('A Type Mapping Repository', async () => { let containerID: string = process.env.TEST_CONTAINER_ID || ''; let dataSourceID: string; let targetDataSourceID: string; + let targetDataSourceActive: boolean; let user: User; let metatype: Metatype; let key: MetatypeKey; @@ -172,6 +173,7 @@ describe('A Type Mapping Repository', async () => { expect(exp2.isError).false; expect(exp2.value).not.empty; targetDataSourceID = exp2.value.id!; + targetDataSourceActive = exp2.value.active; // create the data source in the new container for mapping/transformation import/export tests const exp3 = await DataSourceMapper.Instance.Create( @@ -305,7 +307,7 @@ describe('A Type Mapping Repository', async () => { expect(mapping.transformations![0]!.id).not.undefined; // first we attempt to export them into the same container but separate data source - let exported = await repo.importToDataSource(targetDataSourceID, user, mapping); + let exported = await repo.importToDataSource(targetDataSourceID, user, String(targetDataSourceActive).toLowerCase(), mapping); for (const result of exported) { expect(result.isError).false; expect(result.value.id).not.eq(mapping.id); // should be a new mapping @@ -322,7 +324,7 @@ describe('A Type Mapping Repository', async () => { expect(mappings.value[0].transformations?.length).eq(1); // next export the mappings into a separate container - exported = await repo.importToDataSource(dataSource2ID, user, mapping); + exported = await repo.importToDataSource(dataSource2ID, user, String(targetDataSourceActive).toLowerCase(), mapping); for (const result of exported) { expect(result.isError).false; expect(result.value.id).not.eq(mapping.id); // should be a new mapping From 467bb2e621850c66eac5b7ef2527dbf818578f06 Mon Sep 17 00:00:00 2001 From: Katherine Wilsdon Date: Thu, 19 Jan 2023 10:28:22 -0700 Subject: [PATCH 02/13] Changed variable names --- .../routes/data_warehouse/etl/type_mapping_routes.ts | 2 +- .../data_warehouse/etl/type_mapping_repository.spec.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/http_server/routes/data_warehouse/etl/type_mapping_routes.ts b/src/http_server/routes/data_warehouse/etl/type_mapping_routes.ts index 065a8ef36..49979322d 100644 --- a/src/http_server/routes/data_warehouse/etl/type_mapping_routes.ts +++ b/src/http_server/routes/data_warehouse/etl/type_mapping_routes.ts @@ -470,7 +470,7 @@ export default class TypeMappingRoutes { Result.Failure(e).asResponse(res); return; }); - // String(req.query.inUse).toLowerCase() + // once the file has been read, convert to mappings and then attempt the import stream.on('end', () => { const mappings = plainToClass(TypeMapping, objects); diff --git a/src/tests/data_warehouse/etl/type_mapping_repository.spec.ts b/src/tests/data_warehouse/etl/type_mapping_repository.spec.ts index 8ddf33e76..517623e87 100644 --- a/src/tests/data_warehouse/etl/type_mapping_repository.spec.ts +++ b/src/tests/data_warehouse/etl/type_mapping_repository.spec.ts @@ -35,7 +35,7 @@ describe('A Type Mapping Repository', async () => { let containerID: string = process.env.TEST_CONTAINER_ID || ''; let dataSourceID: string; let targetDataSourceID: string; - let targetDataSourceActive: boolean; + let active: boolean; let user: User; let metatype: Metatype; let key: MetatypeKey; @@ -173,7 +173,7 @@ describe('A Type Mapping Repository', async () => { expect(exp2.isError).false; expect(exp2.value).not.empty; targetDataSourceID = exp2.value.id!; - targetDataSourceActive = exp2.value.active; + active = exp2.value.active; // create the data source in the new container for mapping/transformation import/export tests const exp3 = await DataSourceMapper.Instance.Create( @@ -307,7 +307,7 @@ describe('A Type Mapping Repository', async () => { expect(mapping.transformations![0]!.id).not.undefined; // first we attempt to export them into the same container but separate data source - let exported = await repo.importToDataSource(targetDataSourceID, user, String(targetDataSourceActive).toLowerCase(), mapping); + let exported = await repo.importToDataSource(targetDataSourceID, user, String(active).toLowerCase(), mapping); for (const result of exported) { expect(result.isError).false; expect(result.value.id).not.eq(mapping.id); // should be a new mapping @@ -324,7 +324,7 @@ describe('A Type Mapping Repository', async () => { expect(mappings.value[0].transformations?.length).eq(1); // next export the mappings into a separate container - exported = await repo.importToDataSource(dataSource2ID, user, String(targetDataSourceActive).toLowerCase(), mapping); + exported = await repo.importToDataSource(dataSource2ID, user, String(active).toLowerCase(), mapping); for (const result of exported) { expect(result.isError).false; expect(result.value.id).not.eq(mapping.id); // should be a new mapping From 9a0f00caad8f86b844ef6f8e0047034ddba443da Mon Sep 17 00:00:00 2001 From: Katherine Wilsdon Date: Fri, 20 Jan 2023 16:23:09 -0700 Subject: [PATCH 03/13] Implemented suggestions --- .../data_warehouse/etl/type_mapping_repository.ts | 8 ++------ .../data_warehouse/etl/type_mapping_routes.ts | 15 +++++++++++---- .../etl/type_mapping_repository.spec.ts | 4 ++-- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/data_access_layer/repositories/data_warehouse/etl/type_mapping_repository.ts b/src/data_access_layer/repositories/data_warehouse/etl/type_mapping_repository.ts index b7a5999a2..c2c4eadc9 100644 --- a/src/data_access_layer/repositories/data_warehouse/etl/type_mapping_repository.ts +++ b/src/data_access_layer/repositories/data_warehouse/etl/type_mapping_repository.ts @@ -326,7 +326,7 @@ export default class TypeMappingRepository extends Repository implements Reposit // by name instead of uuid - so there is potential for issues, use with caution. We return the newly modified/created // type mappings as well as failed mappings so that the end user can perform a review of the export - check the value // of isError on the return to determine if import was successful - async importToDataSource(targetSourceID: string, user: User, active: string, ...originalMappings: TypeMapping[]): Promise[]> { + async importToDataSource(targetSourceID: string, user: User, active: boolean, ...originalMappings: TypeMapping[]): Promise[]> { // pull in the target data source, immediately error out if the source isn't valid, we also need it for the container // in this case we're using the data source mapper because we have no need of actually performing any operations const targetDataSource = await this.#dataSourceMapper.Retrieve(targetSourceID); @@ -355,11 +355,7 @@ export default class TypeMappingRepository extends Repository implements Reposit // call the repo's save method on the modified mapping. mapping.data_source_id = targetDataSource.value.id; mapping.container_id = targetDataSource.value.container_id; - if (active === 'true') { - mapping.active = true; - } else { - mapping.active = false; - } + mapping.active = active; // always inactivate the mapping after modification // now we must iterate through the transformations and potentially back-fill the metatype/relationship diff --git a/src/http_server/routes/data_warehouse/etl/type_mapping_routes.ts b/src/http_server/routes/data_warehouse/etl/type_mapping_routes.ts index 49979322d..fc2b3ff70 100644 --- a/src/http_server/routes/data_warehouse/etl/type_mapping_routes.ts +++ b/src/http_server/routes/data_warehouse/etl/type_mapping_routes.ts @@ -201,7 +201,7 @@ export default class TypeMappingRoutes { }); } else { mappingRepo - .importToDataSource(payload.target_data_source, user, String(req.dataSource?.DataSourceRecord?.active).toLowerCase(), ...results.value) + .importToDataSource(payload.target_data_source, user, false, ...results.value) .then((result) => { res.status(200).json(result); next(); @@ -428,6 +428,13 @@ export default class TypeMappingRoutes { private static importTypeMappings(req: Request, res: Response, next: NextFunction) { const user = req.currentUser!; const importResults: Promise[]>[] = []; + let active : boolean; + + if(req.query['isEnabled' as keyof object] === 'true') { + active = true; + } else { + active = false; + } if (!req.dataSource) { Result.Failure(`unable to find data source`, 404).asResponse(res); @@ -439,8 +446,8 @@ export default class TypeMappingRoutes { if (req.headers['content-type']?.includes('application/json')) { const repo = new TypeMappingRepository(); const payload = plainToClass(TypeMapping, req.body); - - repo.importToDataSource(req.dataSource.DataSourceRecord?.id!, user, String(req.dataSource?.DataSourceRecord?.active).toLowerCase(), ...payload) + + repo.importToDataSource(req.dataSource.DataSourceRecord?.id!, user, active, ...payload) .then((results) => { res.status(201).json(results); next(); @@ -474,7 +481,7 @@ export default class TypeMappingRoutes { // once the file has been read, convert to mappings and then attempt the import stream.on('end', () => { const mappings = plainToClass(TypeMapping, objects); - importResults.push(repo.importToDataSource(req.dataSource?.DataSourceRecord?.id!, user, String(req.dataSource?.DataSourceRecord?.active).toLowerCase(), ...mappings)); + importResults.push(repo.importToDataSource(req.dataSource?.DataSourceRecord?.id!, user, active, ...mappings)); }); try { diff --git a/src/tests/data_warehouse/etl/type_mapping_repository.spec.ts b/src/tests/data_warehouse/etl/type_mapping_repository.spec.ts index 517623e87..50858aca4 100644 --- a/src/tests/data_warehouse/etl/type_mapping_repository.spec.ts +++ b/src/tests/data_warehouse/etl/type_mapping_repository.spec.ts @@ -307,7 +307,7 @@ describe('A Type Mapping Repository', async () => { expect(mapping.transformations![0]!.id).not.undefined; // first we attempt to export them into the same container but separate data source - let exported = await repo.importToDataSource(targetDataSourceID, user, String(active).toLowerCase(), mapping); + let exported = await repo.importToDataSource(targetDataSourceID, user, active, mapping); for (const result of exported) { expect(result.isError).false; expect(result.value.id).not.eq(mapping.id); // should be a new mapping @@ -324,7 +324,7 @@ describe('A Type Mapping Repository', async () => { expect(mappings.value[0].transformations?.length).eq(1); // next export the mappings into a separate container - exported = await repo.importToDataSource(dataSource2ID, user, String(active).toLowerCase(), mapping); + exported = await repo.importToDataSource(dataSource2ID, user, active, mapping); for (const result of exported) { expect(result.isError).false; expect(result.value.id).not.eq(mapping.id); // should be a new mapping From 38f83a4c3c07190f152dede546d9848e13e7a35a Mon Sep 17 00:00:00 2001 From: John Darrington Date: Wed, 8 Feb 2023 08:42:03 -0500 Subject: [PATCH 04/13] force upgrade to libtasn1-6 --- Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile b/Dockerfile index 461170ad0..1478f1c10 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,7 @@ FROM cimg/rust:1.65.0-node as build USER root RUN sudo apt-get update +RUN sudo apt-get upgrade libtasn1-6 # these settings are needed for the admin web gui build, these variables are all baked into the Vue application and thus # are available to any end user that wants to dig deep enough in the webpage - as such we don't feel it a security risk @@ -45,6 +46,7 @@ RUN rm -rf .env FROM node:18.13-buster-slim as production RUN apt-get update +RUN sudo apt-get upgrade libtasn1-6 WORKDIR /srv/core_api From 2961f8dc1875ac213b5be0853ebd6edf8bc4ae0f Mon Sep 17 00:00:00 2001 From: Katherine Wilsdon Date: Wed, 8 Feb 2023 09:25:22 -0700 Subject: [PATCH 05/13] Address reviewer comments --- .../data_warehouse/etl/type_mapping_repository.spec.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/tests/data_warehouse/etl/type_mapping_repository.spec.ts b/src/tests/data_warehouse/etl/type_mapping_repository.spec.ts index 50858aca4..e9877d84e 100644 --- a/src/tests/data_warehouse/etl/type_mapping_repository.spec.ts +++ b/src/tests/data_warehouse/etl/type_mapping_repository.spec.ts @@ -35,7 +35,6 @@ describe('A Type Mapping Repository', async () => { let containerID: string = process.env.TEST_CONTAINER_ID || ''; let dataSourceID: string; let targetDataSourceID: string; - let active: boolean; let user: User; let metatype: Metatype; let key: MetatypeKey; @@ -173,7 +172,6 @@ describe('A Type Mapping Repository', async () => { expect(exp2.isError).false; expect(exp2.value).not.empty; targetDataSourceID = exp2.value.id!; - active = exp2.value.active; // create the data source in the new container for mapping/transformation import/export tests const exp3 = await DataSourceMapper.Instance.Create( @@ -307,7 +305,7 @@ describe('A Type Mapping Repository', async () => { expect(mapping.transformations![0]!.id).not.undefined; // first we attempt to export them into the same container but separate data source - let exported = await repo.importToDataSource(targetDataSourceID, user, active, mapping); + let exported = await repo.importToDataSource(targetDataSourceID, user, false, mapping); for (const result of exported) { expect(result.isError).false; expect(result.value.id).not.eq(mapping.id); // should be a new mapping @@ -324,7 +322,7 @@ describe('A Type Mapping Repository', async () => { expect(mappings.value[0].transformations?.length).eq(1); // next export the mappings into a separate container - exported = await repo.importToDataSource(dataSource2ID, user, active, mapping); + exported = await repo.importToDataSource(dataSource2ID, user, false, mapping); for (const result of exported) { expect(result.isError).false; expect(result.value.id).not.eq(mapping.id); // should be a new mapping From fbb7601899bcbb8b048dc86eff9a9ee6fa4272fb Mon Sep 17 00:00:00 2001 From: Katherine Wilsdon Date: Wed, 8 Feb 2023 12:14:21 -0700 Subject: [PATCH 06/13] Revert "Address reviewer comments" --- .../data_warehouse/etl/type_mapping_repository.spec.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/tests/data_warehouse/etl/type_mapping_repository.spec.ts b/src/tests/data_warehouse/etl/type_mapping_repository.spec.ts index e9877d84e..50858aca4 100644 --- a/src/tests/data_warehouse/etl/type_mapping_repository.spec.ts +++ b/src/tests/data_warehouse/etl/type_mapping_repository.spec.ts @@ -35,6 +35,7 @@ describe('A Type Mapping Repository', async () => { let containerID: string = process.env.TEST_CONTAINER_ID || ''; let dataSourceID: string; let targetDataSourceID: string; + let active: boolean; let user: User; let metatype: Metatype; let key: MetatypeKey; @@ -172,6 +173,7 @@ describe('A Type Mapping Repository', async () => { expect(exp2.isError).false; expect(exp2.value).not.empty; targetDataSourceID = exp2.value.id!; + active = exp2.value.active; // create the data source in the new container for mapping/transformation import/export tests const exp3 = await DataSourceMapper.Instance.Create( @@ -305,7 +307,7 @@ describe('A Type Mapping Repository', async () => { expect(mapping.transformations![0]!.id).not.undefined; // first we attempt to export them into the same container but separate data source - let exported = await repo.importToDataSource(targetDataSourceID, user, false, mapping); + let exported = await repo.importToDataSource(targetDataSourceID, user, active, mapping); for (const result of exported) { expect(result.isError).false; expect(result.value.id).not.eq(mapping.id); // should be a new mapping @@ -322,7 +324,7 @@ describe('A Type Mapping Repository', async () => { expect(mappings.value[0].transformations?.length).eq(1); // next export the mappings into a separate container - exported = await repo.importToDataSource(dataSource2ID, user, false, mapping); + exported = await repo.importToDataSource(dataSource2ID, user, active, mapping); for (const result of exported) { expect(result.isError).false; expect(result.value.id).not.eq(mapping.id); // should be a new mapping From ead56156f4307fa0ae843c23f88589930ff7be08 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Thu, 9 Feb 2023 14:33:48 -0500 Subject: [PATCH 07/13] force upgrade to libtasn1-6 --- Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 1478f1c10..53f6a1747 100644 --- a/Dockerfile +++ b/Dockerfile @@ -46,7 +46,6 @@ RUN rm -rf .env FROM node:18.13-buster-slim as production RUN apt-get update -RUN sudo apt-get upgrade libtasn1-6 WORKDIR /srv/core_api From 2b2f5c9b6e915fcaf382e0f6bdc603f908b59340 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Thu, 9 Feb 2023 15:17:36 -0500 Subject: [PATCH 08/13] force upgrade to libtasn1-6 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 53f6a1747..220ad8eb7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -44,7 +44,7 @@ RUN npm run build:web-gl # catch any env file a user might have accidentally built into the container RUN rm -rf .env -FROM node:18.13-buster-slim as production +FROM 18.14.0-buster-slim as production RUN apt-get update WORKDIR /srv/core_api From b644bbf80601fce5d7a14bd9e9384cb0c736778d Mon Sep 17 00:00:00 2001 From: John Darrington Date: Thu, 9 Feb 2023 15:32:07 -0500 Subject: [PATCH 09/13] forgot the name --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 220ad8eb7..fe4221c55 100644 --- a/Dockerfile +++ b/Dockerfile @@ -44,7 +44,7 @@ RUN npm run build:web-gl # catch any env file a user might have accidentally built into the container RUN rm -rf .env -FROM 18.14.0-buster-slim as production +FROM node:18.14.0-buster-slim as production RUN apt-get update WORKDIR /srv/core_api From 56899f73382edce421902a1bf528236934b0b473 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Sat, 11 Feb 2023 07:07:48 -0500 Subject: [PATCH 10/13] cut down on duplicate nodes/edges --- .../mappers/data_warehouse/data/edge_mapper.ts | 6 +++--- .../mappers/data_warehouse/data/node_mapper.ts | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/data_access_layer/mappers/data_warehouse/data/edge_mapper.ts b/src/data_access_layer/mappers/data_warehouse/data/edge_mapper.ts index ba6424127..bdcffd03f 100644 --- a/src/data_access_layer/mappers/data_warehouse/data/edge_mapper.ts +++ b/src/data_access_layer/mappers/data_warehouse/data/edge_mapper.ts @@ -144,7 +144,7 @@ export default class EdgeMapper extends Mapper { ON CONFLICT(container_id,relationship_pair_id,data_source_id,created_at, origin_id, destination_id) DO UPDATE SET properties = EXCLUDED.properties, metadata = EXCLUDED.metadata - WHERE EXCLUDED.id = edges.id + WHERE EXCLUDED.id = edges.id AND excluded.properties IS DISTINCT FROM edgges.properties RETURNING *`; const values = edges.map((e) => [ @@ -236,7 +236,7 @@ export default class EdgeMapper extends Mapper { LEFT JOIN metatype_relationships ON metatype_relationship_pairs.relationship_id = metatype_relationships.id WHERE edges.id = $1 ORDER BY edges.created_at ASC`, values: [edgeID], - } + }; } private retrieveRawDataHistoryStatement(edgeID: string): QueryConfig { @@ -247,7 +247,7 @@ export default class EdgeMapper extends Mapper { LEFT JOIN data_staging ON edges.data_staging_id = data_staging.id WHERE edges.id = $1 ORDER BY edges.created_at ASC`, values: [edgeID], - } + }; } private retrieveByRelationshipStatement(origin: string, relationship: string, destination: string): QueryConfig { diff --git a/src/data_access_layer/mappers/data_warehouse/data/node_mapper.ts b/src/data_access_layer/mappers/data_warehouse/data/node_mapper.ts index 5e1922616..2c637cca5 100644 --- a/src/data_access_layer/mappers/data_warehouse/data/node_mapper.ts +++ b/src/data_access_layer/mappers/data_warehouse/data/node_mapper.ts @@ -166,7 +166,7 @@ export default class NodeMapper extends Mapper { properties = EXCLUDED.properties, metadata = EXCLUDED.metadata, deleted_at = EXCLUDED.deleted_at - WHERE EXCLUDED.id = nodes.id + WHERE EXCLUDED.id = nodes.id AND EXCLUDED.properties IS DISTINCT FROM nodes.properties RETURNING *`; const values = nodes.map((n) => [ @@ -237,7 +237,7 @@ export default class NodeMapper extends Mapper { FROM nodes LEFT JOIN metatypes ON nodes.metatype_id = metatypes.id WHERE nodes.id = $1 ORDER BY nodes.created_at ASC`, values: [nodeID], - } + }; } // retrieves node history with raw data records attached @@ -248,7 +248,7 @@ export default class NodeMapper extends Mapper { LEFT JOIN data_staging ON nodes.data_staging_id = data_staging.id WHERE nodes.id = $1 ORDER BY nodes.created_at ASC`, values: [nodeID], - } + }; } private domainRetrieveStatement(nodeID: string, containerID: string): QueryConfig { From 0801f8f0af248cfca8d050688b224099e6591c86 Mon Sep 17 00:00:00 2001 From: Jaren Brownlee Date: Mon, 13 Feb 2023 06:39:44 -0700 Subject: [PATCH 11/13] jwt 9.0.0 --- package-lock.json | 771 +++++++----------- package.json | 2 +- .../data_warehouse/data/edge_mapper.ts | 2 +- .../access_management/oauth_repository.ts | 2 +- .../routes/access_management/oauth_routes.ts | 2 +- 5 files changed, 305 insertions(+), 474 deletions(-) diff --git a/package-lock.json b/package-lock.json index 45581fc40..8ee5022bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -59,7 +59,7 @@ "ioredis": "^4.24.2", "isomorphic-dompurify": "^0.15.0", "JSONStream": "^1.3.5", - "jsonwebtoken": "^8.5.1", + "jsonwebtoken": "^9.0.0", "kind-of": "^6.0.3", "method-override": "^3.0.0", "minimist": "^1.2.5", @@ -189,9 +189,9 @@ } }, "node_modules/@azure/core-amqp": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@azure/core-amqp/-/core-amqp-3.2.1.tgz", - "integrity": "sha512-ebbI4e+x7W77EG3LOlejItrL4AFV32oZMw9YGz/PQEni5mRMjBDbvFNRUiW9KH3IFZZBH1+x/KmiIkaTFj2OJw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@azure/core-amqp/-/core-amqp-3.2.2.tgz", + "integrity": "sha512-6ta1UERwLLO3TUl6xsMGSLkj6zhhyE028h2LA26a9awfMxF62PPlm+ZvdJcidkphr69hT87PtPO6SHeZzguCZw==", "dependencies": { "@azure/abort-controller": "^1.0.0", "@azure/core-auth": "^1.3.0", @@ -204,7 +204,6 @@ "rhea": "^2.0.3", "rhea-promise": "^2.1.0", "tslib": "^2.2.0", - "url": "^0.11.0", "util": "^0.12.1" }, "engines": { @@ -233,9 +232,9 @@ } }, "node_modules/@azure/core-client": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.7.0.tgz", - "integrity": "sha512-fgaLVlF3xGg8JAt7Hl7vkKIJcCAA9NpsvIvb44qaEOW6CaJ+IaHKL7oWe5+oGOVR+y/z2Gd2joyvslqwDvRfTw==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.7.1.tgz", + "integrity": "sha512-85igXpc5V7ns6rvMEpLmIcBDftjUgTWD+0tmYPyQEfPfkAwpPTs1X5rhCDsfqvUZGA8Ksid1hdZGu62r6XXeHg==", "dependencies": { "@azure/abort-controller": "^1.0.0", "@azure/core-auth": "^1.4.0", @@ -352,9 +351,9 @@ } }, "node_modules/@azure/core-paging": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.4.0.tgz", - "integrity": "sha512-tabFtZTg8D9XqZKEfNUOGh63SuYeOxmvH4GDcOJN+R1bZWZ1FZskctgY9Pmuwzhn+0Xvq9rmimK9hsvtLkeBsw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.5.0.tgz", + "integrity": "sha512-zqWdVIt+2Z+3wqxEOGzR5hXFZ8MGKK52x4vFLw8n58pR6ZfKRx3EXYTxTaYxYHc/PexPUTyimcTWFJbji9Z6Iw==", "dependencies": { "tslib": "^2.2.0" }, @@ -418,9 +417,9 @@ } }, "node_modules/@azure/core-xml/node_modules/fast-xml-parser": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.14.tgz", - "integrity": "sha512-uKe7uxZ9DgNOmHfUmBdhkTBZcMMVxvQ3vELTxUpmotAqRxkpMayEiiQ4AQWTGAVyfzT4Dv79jaszLECWCYbd4w==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.1.2.tgz", + "integrity": "sha512-CDYeykkle1LiA/uqQyNwYpFbyF6Axec6YapmpUP+/RHWIoR1zKjocdvNaTsxCxZzQ6v9MLXaSYm9Qq0thv0DHg==", "dependencies": { "strnum": "^1.0.5" }, @@ -444,9 +443,9 @@ } }, "node_modules/@azure/service-bus": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/@azure/service-bus/-/service-bus-7.7.3.tgz", - "integrity": "sha512-nPSPjV74/olhu/QlT0IWMc72CTp5GdzI6d5Ov+B1rmZ9F1FvTeS8kwOx+hBVnFLnBfYLreT5tQxlyTzDmK93Zg==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@azure/service-bus/-/service-bus-7.8.0.tgz", + "integrity": "sha512-wcgCHOK3FRDUb+2WAxjzCAQRpNkdebnrS83zflfBlnwKo9D8XA37qh8K5XFqHUY07DbziGLpOakatx4Nlca62A==", "dependencies": { "@azure/abort-controller": "^1.0.0", "@azure/core-amqp": "^3.1.0", @@ -517,9 +516,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.20.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", - "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", + "version": "7.20.14", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz", + "integrity": "sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==", "engines": { "node": ">=6.9.0" } @@ -562,9 +561,9 @@ } }, "node_modules/@babel/generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", - "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", + "version": "7.20.14", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", + "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", "dependencies": { "@babel/types": "^7.20.7", "@jridgewell/gen-mapping": "^0.3.2", @@ -746,9 +745,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz", - "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==", + "version": "7.20.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", + "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==", "bin": { "parser": "bin/babel-parser.js" }, @@ -861,6 +860,14 @@ "kuler": "^2.0.0" } }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/@eslint/eslintrc": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", @@ -882,9 +889,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -1429,9 +1436,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.4.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", - "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.0.tgz", + "integrity": "sha512-35EhHNOXgxnUgh4XCJsGhE7zdlDhYDN/aMG6UbkByCFFNgQ7b3U+uVoqBpicFydR8JEfgdjCF7SJ7MiJfzuiTA==", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -1452,20 +1459,20 @@ "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" }, "node_modules/@types/express": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.15.tgz", - "integrity": "sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==", + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", "dependencies": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.31", + "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "*" } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.32", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.32.tgz", - "integrity": "sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA==", + "version": "4.17.33", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz", + "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -1473,9 +1480,9 @@ } }, "node_modules/@types/express-session": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/@types/express-session/-/express-session-1.17.5.tgz", - "integrity": "sha512-l0DhkvNVfyUPEEis8fcwbd46VptfA/jmMwHfob2TfDMf3HyPLiB9mKD71LXhz5TMUobODXPD27zXSwtFQLHm+w==", + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/@types/express-session/-/express-session-1.17.6.tgz", + "integrity": "sha512-L6sB04HVA4HEZo1hDL65JXdZdBJtzZnCiw/P7MnO4w6746tJCNtXlHtzEASyI9ccn9zyOw6IbqQuhVa03VpO4w==", "dev": true, "dependencies": { "@types/express": "*" @@ -1773,6 +1780,11 @@ "@types/node": "*" } }, + "node_modules/@types/triple-beam": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz", + "integrity": "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==" + }, "node_modules/@types/trusted-types": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", @@ -1794,9 +1806,9 @@ "dev": true }, "node_modules/@types/validator": { - "version": "13.7.10", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.10.tgz", - "integrity": "sha512-t1yxFAR2n0+VO6hd/FJ9F2uezAZVWHLmpmlJzm1eX03+H7+HsuTAp7L8QJs+2pQCfWkP1+EXsGK9Z9v7o/qPVQ==" + "version": "13.7.12", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.12.tgz", + "integrity": "sha512-YVtyAPqpefU+Mm/qqnOANW6IkqKpCSrarcyV269C8MA8Ux0dbkEuQwM/4CjL47kVEM2LgBef/ETfkH+c6+moFA==" }, "node_modules/@types/ws": { "version": "8.5.4", @@ -2818,11 +2830,6 @@ "lodash": "^4.17.14" } }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -3173,9 +3180,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "funding": [ { "type": "opencollective", @@ -3187,10 +3194,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" }, "bin": { "browserslist": "cli.js" @@ -3348,9 +3355,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001447", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001447.tgz", - "integrity": "sha512-bdKU1BQDPeEXe9A39xJnGtY0uRq/z5osrnXUw0TcK+EYno45Y+U7QU9HhHEyzvMDffpYadFXi3idnSNkcwLkTw==", + "version": "1.0.30001451", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001451.tgz", + "integrity": "sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w==", "funding": [ { "type": "opencollective", @@ -3372,9 +3379,9 @@ } }, "node_modules/casbin": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/casbin/-/casbin-5.21.0.tgz", - "integrity": "sha512-Uhf/wxDZS26c+mOYlQ1fEKMgmJpCBXSGeNamusoJmxIZb4jFWEp3Ri0p24ef5N0c79T6sbyOuRyaVcT/fWskEQ==", + "version": "5.23.2", + "resolved": "https://registry.npmjs.org/casbin/-/casbin-5.23.2.tgz", + "integrity": "sha512-ZFvdcMUPst88SToe/acb0M8XX+MxXniDMM4So+2OWpxZ8jQwHQFOp4dA5Y8147eA6kx88jhmbs7nO5Ba6nnZmg==", "dependencies": { "await-lock": "^2.0.1", "csv-parse": "^4.15.3", @@ -3909,9 +3916,9 @@ } }, "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "engines": { "node": ">= 0.6" } @@ -4989,9 +4996,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" + "version": "1.4.295", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.295.tgz", + "integrity": "sha512-lEO94zqf1bDA3aepxwnWoHUjA8sZ+2owgcSZjYQy0+uOSEclJX0VieZC+r+wLpSxUHRd6gG32znTWmr+5iGzFw==" }, "node_modules/emoji-regex": { "version": "8.0.0", @@ -5262,9 +5269,9 @@ } }, "node_modules/eslint-plugin-security": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.6.0.tgz", - "integrity": "sha512-SGvyejbhW/dziRbzOroKX5bj8z/qtBOw7Q95C9CBbJQqBtFB2o4OxSM3MCO2u9noPp7B6DDaFGtXTx8ImPiO/A==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.7.1.tgz", + "integrity": "sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ==", "dev": true, "dependencies": { "safe-regex": "^2.1.1" @@ -5439,9 +5446,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -6518,24 +6525,16 @@ } }, "node_modules/gremlin": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/gremlin/-/gremlin-3.6.1.tgz", - "integrity": "sha512-KflKBadWpz/UwjHnyXqumxKZXspUHNMptCaWUg4ChLXsPtvCkZ63UY2t3qTkXZi1IjNoZI0Nzf+TQ1Rk9IB0eg==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/gremlin/-/gremlin-3.6.2.tgz", + "integrity": "sha512-1VBaGrVCUVj+ScLNY07JA/IgDD2YOMdWazb+JLj6HjB+zyGesTxEM45pTu7fzgmRKzqsaPlN/YphY+2VvS2beQ==", "dependencies": { - "ws": "^6.2.2" + "ws": "^8.11.0" }, "engines": { "node": ">=10" } }, - "node_modules/gremlin/node_modules/ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, "node_modules/growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", @@ -7765,14 +7764,14 @@ } }, "node_modules/joi": { - "version": "17.7.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.7.0.tgz", - "integrity": "sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==", + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.7.1.tgz", + "integrity": "sha512-teoLhIvWE298R6AeJywcjR4sX2hHjB3/xJX4qPjg+gTg+c0mzUDsziYlqPmLomq9gVsfaMcgPaGc7VxtD/9StA==", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.0", + "@sideway/formula": "^3.0.1", "@sideway/pinpoint": "^2.0.0" } }, @@ -7992,32 +7991,18 @@ } }, "node_modules/jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", + "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", "dependencies": { "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", + "lodash": "^4.17.21", "ms": "^2.1.1", - "semver": "^5.6.0" + "semver": "^7.3.8" }, "engines": { - "node": ">=4", - "npm": ">=1.4.28" - } - }, - "node_modules/jsonwebtoken/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" + "node": ">=12", + "npm": ">=6" } }, "node_modules/jssha": { @@ -8099,9 +8084,9 @@ } }, "node_modules/libphonenumber-js": { - "version": "1.10.18", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.18.tgz", - "integrity": "sha512-NS4ZEgNhwbcPz1gfSXCGFnQm0xEiyTSPRthIuWytDzOiEG9xnZ2FbLyfJC4tI2BMAAXpoWbNxHYH75pa3Dq9og==" + "version": "1.10.19", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.19.tgz", + "integrity": "sha512-MDZ1zLIkfSDZV5xBta3nuvbEOlsnKCPe4z5r3hyup/AXveevkl9A1eSWmLhd2FX4k7pJDe4MrLeQsux0HI/VWg==" }, "node_modules/lilconfig": { "version": "2.0.6", @@ -8437,41 +8422,11 @@ "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", "dev": true }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" - }, "node_modules/lodash.isarguments": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" - }, "node_modules/lodash.mapvalues": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", @@ -8488,11 +8443,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" - }, "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", @@ -8675,11 +8625,12 @@ } }, "node_modules/logform": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz", - "integrity": "sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.5.1.tgz", + "integrity": "sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==", "dependencies": { "@colors/colors": "1.5.0", + "@types/triple-beam": "^1.3.2", "fecha": "^4.2.0", "ms": "^2.1.1", "safe-stable-stringify": "^2.3.1", @@ -8975,9 +8926,9 @@ } }, "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -9352,9 +9303,9 @@ } }, "node_modules/node-fetch": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", - "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -9445,9 +9396,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", - "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==" + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" }, "node_modules/node-rsa": { "version": "1.1.1", @@ -9459,9 +9410,9 @@ } }, "node_modules/nodemailer": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.0.tgz", - "integrity": "sha512-jFaCEGTeT3E/m/5R2MHWiyQH3pSARECRUDM+1hokOYc3lQAAG7ASuy+2jIsYVf+RVa9zePopSQwKNVFH8DKUpA==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.1.tgz", + "integrity": "sha512-qHw7dOiU5UKNnQpXktdgQ1d3OFgRAekuvbJLcdG5dnEo/GtcTHRYM7+UfJARdOFU9WUQO8OiIamgWPmiSFHYAA==", "engines": { "node": ">=6.0.0" } @@ -9926,9 +9877,9 @@ } }, "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.1.tgz", + "integrity": "sha512-/4b7qZNhv6Uhd7jjnREh1NjnPxlTq+XNWPG88Ydkj5AILcA5m3ajvcg57pB24EQjKv0dK62XnDqk9c/hkIG5Kg==", "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -10334,21 +10285,6 @@ "passport-strategy": "^1.0.0" } }, - "node_modules/passport-jwt/node_modules/jsonwebtoken": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", - "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", - "dependencies": { - "jws": "^3.2.2", - "lodash": "^4.17.21", - "ms": "^2.1.1", - "semver": "^7.3.8" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - } - }, "node_modules/passport-local": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz", @@ -10443,15 +10379,15 @@ "integrity": "sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==" }, "node_modules/pg": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.8.0.tgz", - "integrity": "sha512-UXYN0ziKj+AeNNP7VDMwrehpACThH7LUl/p8TDFpEUuSejCUIwGSfxpHsPvtM6/WXFy6SU4E5RG4IJV/TZAGjw==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.9.0.tgz", + "integrity": "sha512-ZJM+qkEbtOHRuXjmvBtOgNOXOtLSbxiMiUVMgE4rV6Zwocy03RicCVvDXgx8l4Biwo8/qORUnEqn2fdQzV7KCg==", "dependencies": { "buffer-writer": "2.0.0", "packet-reader": "1.0.0", "pg-connection-string": "^2.5.0", "pg-pool": "^3.5.2", - "pg-protocol": "^1.5.0", + "pg-protocol": "^1.6.0", "pg-types": "^2.1.0", "pgpass": "1.x" }, @@ -10473,9 +10409,9 @@ "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" }, "node_modules/pg-cursor": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/pg-cursor/-/pg-cursor-2.7.4.tgz", - "integrity": "sha512-CNWwOzTTZ9QvphoOL+Wg/7pmVr9GnAWBjPbuK2FRclrB4A/WRO/ssCJ9BlkzIGmmofK2M/LyokNHgsLSn+fMHA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/pg-cursor/-/pg-cursor-2.8.0.tgz", + "integrity": "sha512-LrOaEHK+R1C40e+xeri3FTRY/VKp9uTOCVsKtGB7LJ57qbeaphYvWjbVly8AesdT1GfHXYcAnVdExKhW7DKOvA==", "peerDependencies": { "pg": "^8" } @@ -10513,16 +10449,19 @@ } }, "node_modules/pg-protocol": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz", - "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", + "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" }, "node_modules/pg-query-stream": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/pg-query-stream/-/pg-query-stream-4.2.4.tgz", - "integrity": "sha512-Et3gTrWn4C2rj4LVioNq1QDd7aH/3mSJcBm79jZALv3wopvx9bWENtbOYZbHQ6KM+IkfFxs0JF1ZLjMDJ9/N6Q==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/pg-query-stream/-/pg-query-stream-4.3.0.tgz", + "integrity": "sha512-+Eer4Y1e43rAaphFNu9/VJKn9nKTApFKCSwVtDjXYnuO4QYqWHOEkApmGJv8gvaU5T6fcuEtjsN24gk+Rx7X9A==", "dependencies": { - "pg-cursor": "^2.7.4" + "pg-cursor": "^2.8.0" + }, + "peerDependencies": { + "pg": "^8" } }, "node_modules/pg-types": { @@ -11476,15 +11415,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", @@ -12251,9 +12181,9 @@ } }, "node_modules/shell-quote": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", - "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz", + "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -12917,9 +12847,9 @@ } }, "node_modules/terser": { - "version": "5.16.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", - "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", + "version": "5.16.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.3.tgz", + "integrity": "sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q==", "dependencies": { "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", @@ -13290,9 +13220,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.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" }, "node_modules/tsscmp": { "version": "1.0.6", @@ -13387,9 +13317,9 @@ } }, "node_modules/typescript": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", - "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -13493,15 +13423,6 @@ "punycode": "^2.1.0" } }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, "node_modules/url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", @@ -13511,11 +13432,6 @@ "requires-port": "^1.0.0" } }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" - }, "node_modules/util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", @@ -13581,9 +13497,9 @@ } }, "node_modules/validator": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", - "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==", + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.9.0.tgz", + "integrity": "sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==", "engines": { "node": ">= 0.10" } @@ -13826,10 +13742,11 @@ } }, "node_modules/webpack-bundle-analyzer": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz", - "integrity": "sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.8.0.tgz", + "integrity": "sha512-ZzoSBePshOKhr+hd8u6oCkZVwpVaXgpw23ScGLFpR6SjYI7+7iIWYarjN6OEYOfRt8o7ZyZZQk0DuMizJ+LEIg==", "dependencies": { + "@discoveryjs/json-ext": "0.5.7", "acorn": "^8.0.4", "acorn-walk": "^8.0.0", "chalk": "^4.1.0", @@ -14730,9 +14647,9 @@ } }, "@azure/core-amqp": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@azure/core-amqp/-/core-amqp-3.2.1.tgz", - "integrity": "sha512-ebbI4e+x7W77EG3LOlejItrL4AFV32oZMw9YGz/PQEni5mRMjBDbvFNRUiW9KH3IFZZBH1+x/KmiIkaTFj2OJw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@azure/core-amqp/-/core-amqp-3.2.2.tgz", + "integrity": "sha512-6ta1UERwLLO3TUl6xsMGSLkj6zhhyE028h2LA26a9awfMxF62PPlm+ZvdJcidkphr69hT87PtPO6SHeZzguCZw==", "requires": { "@azure/abort-controller": "^1.0.0", "@azure/core-auth": "^1.3.0", @@ -14745,7 +14662,6 @@ "rhea": "^2.0.3", "rhea-promise": "^2.1.0", "tslib": "^2.2.0", - "url": "^0.11.0", "util": "^0.12.1" } }, @@ -14765,9 +14681,9 @@ } }, "@azure/core-client": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.7.0.tgz", - "integrity": "sha512-fgaLVlF3xGg8JAt7Hl7vkKIJcCAA9NpsvIvb44qaEOW6CaJ+IaHKL7oWe5+oGOVR+y/z2Gd2joyvslqwDvRfTw==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.7.1.tgz", + "integrity": "sha512-85igXpc5V7ns6rvMEpLmIcBDftjUgTWD+0tmYPyQEfPfkAwpPTs1X5rhCDsfqvUZGA8Ksid1hdZGu62r6XXeHg==", "requires": { "@azure/abort-controller": "^1.0.0", "@azure/core-auth": "^1.4.0", @@ -14864,9 +14780,9 @@ } }, "@azure/core-paging": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.4.0.tgz", - "integrity": "sha512-tabFtZTg8D9XqZKEfNUOGh63SuYeOxmvH4GDcOJN+R1bZWZ1FZskctgY9Pmuwzhn+0Xvq9rmimK9hsvtLkeBsw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.5.0.tgz", + "integrity": "sha512-zqWdVIt+2Z+3wqxEOGzR5hXFZ8MGKK52x4vFLw8n58pR6ZfKRx3EXYTxTaYxYHc/PexPUTyimcTWFJbji9Z6Iw==", "requires": { "tslib": "^2.2.0" } @@ -14915,9 +14831,9 @@ }, "dependencies": { "fast-xml-parser": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.14.tgz", - "integrity": "sha512-uKe7uxZ9DgNOmHfUmBdhkTBZcMMVxvQ3vELTxUpmotAqRxkpMayEiiQ4AQWTGAVyfzT4Dv79jaszLECWCYbd4w==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.1.2.tgz", + "integrity": "sha512-CDYeykkle1LiA/uqQyNwYpFbyF6Axec6YapmpUP+/RHWIoR1zKjocdvNaTsxCxZzQ6v9MLXaSYm9Qq0thv0DHg==", "requires": { "strnum": "^1.0.5" } @@ -14933,9 +14849,9 @@ } }, "@azure/service-bus": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/@azure/service-bus/-/service-bus-7.7.3.tgz", - "integrity": "sha512-nPSPjV74/olhu/QlT0IWMc72CTp5GdzI6d5Ov+B1rmZ9F1FvTeS8kwOx+hBVnFLnBfYLreT5tQxlyTzDmK93Zg==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@azure/service-bus/-/service-bus-7.8.0.tgz", + "integrity": "sha512-wcgCHOK3FRDUb+2WAxjzCAQRpNkdebnrS83zflfBlnwKo9D8XA37qh8K5XFqHUY07DbziGLpOakatx4Nlca62A==", "requires": { "@azure/abort-controller": "^1.0.0", "@azure/core-amqp": "^3.1.0", @@ -15002,9 +14918,9 @@ } }, "@babel/compat-data": { - "version": "7.20.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", - "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==" + "version": "7.20.14", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz", + "integrity": "sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==" }, "@babel/core": { "version": "7.20.12", @@ -15036,9 +14952,9 @@ } }, "@babel/generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", - "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", + "version": "7.20.14", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", + "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", "requires": { "@babel/types": "^7.20.7", "@jridgewell/gen-mapping": "^0.3.2", @@ -15173,9 +15089,9 @@ } }, "@babel/parser": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz", - "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==" + "version": "7.20.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", + "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==" }, "@babel/runtime": { "version": "7.20.13", @@ -15263,6 +15179,11 @@ "kuler": "^2.0.0" } }, + "@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==" + }, "@eslint/eslintrc": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", @@ -15281,9 +15202,9 @@ }, "dependencies": { "globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -15728,9 +15649,9 @@ } }, "@types/eslint": { - "version": "8.4.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", - "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.0.tgz", + "integrity": "sha512-35EhHNOXgxnUgh4XCJsGhE7zdlDhYDN/aMG6UbkByCFFNgQ7b3U+uVoqBpicFydR8JEfgdjCF7SJ7MiJfzuiTA==", "requires": { "@types/estree": "*", "@types/json-schema": "*" @@ -15751,20 +15672,20 @@ "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" }, "@types/express": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.15.tgz", - "integrity": "sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==", + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.31", + "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "*" } }, "@types/express-serve-static-core": { - "version": "4.17.32", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.32.tgz", - "integrity": "sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA==", + "version": "4.17.33", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz", + "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==", "requires": { "@types/node": "*", "@types/qs": "*", @@ -15772,9 +15693,9 @@ } }, "@types/express-session": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/@types/express-session/-/express-session-1.17.5.tgz", - "integrity": "sha512-l0DhkvNVfyUPEEis8fcwbd46VptfA/jmMwHfob2TfDMf3HyPLiB9mKD71LXhz5TMUobODXPD27zXSwtFQLHm+w==", + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/@types/express-session/-/express-session-1.17.6.tgz", + "integrity": "sha512-L6sB04HVA4HEZo1hDL65JXdZdBJtzZnCiw/P7MnO4w6746tJCNtXlHtzEASyI9ccn9zyOw6IbqQuhVa03VpO4w==", "dev": true, "requires": { "@types/express": "*" @@ -16070,6 +15991,11 @@ "@types/node": "*" } }, + "@types/triple-beam": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz", + "integrity": "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==" + }, "@types/trusted-types": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", @@ -16091,9 +16017,9 @@ "dev": true }, "@types/validator": { - "version": "13.7.10", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.10.tgz", - "integrity": "sha512-t1yxFAR2n0+VO6hd/FJ9F2uezAZVWHLmpmlJzm1eX03+H7+HsuTAp7L8QJs+2pQCfWkP1+EXsGK9Z9v7o/qPVQ==" + "version": "13.7.12", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.12.tgz", + "integrity": "sha512-YVtyAPqpefU+Mm/qqnOANW6IkqKpCSrarcyV269C8MA8Ux0dbkEuQwM/4CjL47kVEM2LgBef/ETfkH+c6+moFA==" }, "@types/ws": { "version": "8.5.4", @@ -16855,11 +16781,6 @@ "lodash": "^4.17.14" } }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -17137,14 +17058,14 @@ "dev": true }, "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" } }, "bson": { @@ -17257,9 +17178,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001447", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001447.tgz", - "integrity": "sha512-bdKU1BQDPeEXe9A39xJnGtY0uRq/z5osrnXUw0TcK+EYno45Y+U7QU9HhHEyzvMDffpYadFXi3idnSNkcwLkTw==" + "version": "1.0.30001451", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001451.tgz", + "integrity": "sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w==" }, "cargo-cp-artifact": { "version": "0.1.7", @@ -17268,9 +17189,9 @@ "dev": true }, "casbin": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/casbin/-/casbin-5.21.0.tgz", - "integrity": "sha512-Uhf/wxDZS26c+mOYlQ1fEKMgmJpCBXSGeNamusoJmxIZb4jFWEp3Ri0p24ef5N0c79T6sbyOuRyaVcT/fWskEQ==", + "version": "5.23.2", + "resolved": "https://registry.npmjs.org/casbin/-/casbin-5.23.2.tgz", + "integrity": "sha512-ZFvdcMUPst88SToe/acb0M8XX+MxXniDMM4So+2OWpxZ8jQwHQFOp4dA5Y8147eA6kx88jhmbs7nO5Ba6nnZmg==", "requires": { "await-lock": "^2.0.1", "csv-parse": "^4.15.3", @@ -17690,9 +17611,9 @@ "integrity": "sha512-/MtLWhJVvJNkA9dVLAp6fg9LxD2gfI6R2Fi1hPmfjYXSahJJzcfvoeDOxSyp4NvxMuwWv3WMssE9o31DoULHrQ==" }, "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" }, "convert-source-map": { "version": "1.9.0", @@ -18466,9 +18387,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" + "version": "1.4.295", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.295.tgz", + "integrity": "sha512-lEO94zqf1bDA3aepxwnWoHUjA8sZ+2owgcSZjYQy0+uOSEclJX0VieZC+r+wLpSxUHRd6gG32znTWmr+5iGzFw==" }, "emoji-regex": { "version": "8.0.0", @@ -18752,9 +18673,9 @@ } }, "globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -18834,9 +18755,9 @@ "requires": {} }, "eslint-plugin-security": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.6.0.tgz", - "integrity": "sha512-SGvyejbhW/dziRbzOroKX5bj8z/qtBOw7Q95C9CBbJQqBtFB2o4OxSM3MCO2u9noPp7B6DDaFGtXTx8ImPiO/A==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.7.1.tgz", + "integrity": "sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ==", "dev": true, "requires": { "safe-regex": "^2.1.1" @@ -19600,21 +19521,11 @@ "requires": {} }, "gremlin": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/gremlin/-/gremlin-3.6.1.tgz", - "integrity": "sha512-KflKBadWpz/UwjHnyXqumxKZXspUHNMptCaWUg4ChLXsPtvCkZ63UY2t3qTkXZi1IjNoZI0Nzf+TQ1Rk9IB0eg==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/gremlin/-/gremlin-3.6.2.tgz", + "integrity": "sha512-1VBaGrVCUVj+ScLNY07JA/IgDD2YOMdWazb+JLj6HjB+zyGesTxEM45pTu7fzgmRKzqsaPlN/YphY+2VvS2beQ==", "requires": { - "ws": "^6.2.2" - }, - "dependencies": { - "ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "requires": { - "async-limiter": "~1.0.0" - } - } + "ws": "^8.11.0" } }, "growl": { @@ -20491,14 +20402,14 @@ } }, "joi": { - "version": "17.7.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.7.0.tgz", - "integrity": "sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==", + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.7.1.tgz", + "integrity": "sha512-teoLhIvWE298R6AeJywcjR4sX2hHjB3/xJX4qPjg+gTg+c0mzUDsziYlqPmLomq9gVsfaMcgPaGc7VxtD/9StA==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.0", + "@sideway/formula": "^3.0.1", "@sideway/pinpoint": "^2.0.0" } }, @@ -20654,27 +20565,14 @@ } }, "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", + "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", "requires": { "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", + "lodash": "^4.17.21", "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } + "semver": "^7.3.8" } }, "jssha": { @@ -20744,9 +20642,9 @@ } }, "libphonenumber-js": { - "version": "1.10.18", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.18.tgz", - "integrity": "sha512-NS4ZEgNhwbcPz1gfSXCGFnQm0xEiyTSPRthIuWytDzOiEG9xnZ2FbLyfJC4tI2BMAAXpoWbNxHYH75pa3Dq9og==" + "version": "1.10.19", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.19.tgz", + "integrity": "sha512-MDZ1zLIkfSDZV5xBta3nuvbEOlsnKCPe4z5r3hyup/AXveevkl9A1eSWmLhd2FX4k7pJDe4MrLeQsux0HI/VWg==" }, "lilconfig": { "version": "2.0.6", @@ -21005,41 +20903,11 @@ "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", "dev": true }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" - }, "lodash.isarguments": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" - }, "lodash.mapvalues": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", @@ -21056,11 +20924,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" - }, "lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", @@ -21196,11 +21059,12 @@ } }, "logform": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz", - "integrity": "sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.5.1.tgz", + "integrity": "sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==", "requires": { "@colors/colors": "1.5.0", + "@types/triple-beam": "^1.3.2", "fecha": "^4.2.0", "ms": "^2.1.1", "safe-stable-stringify": "^2.3.1", @@ -21432,9 +21296,9 @@ } }, "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" }, "minipass": { "version": "3.3.6", @@ -21715,9 +21579,9 @@ } }, "node-fetch": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", - "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", "requires": { "whatwg-url": "^5.0.0" }, @@ -21786,9 +21650,9 @@ } }, "node-releases": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", - "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==" + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" }, "node-rsa": { "version": "1.1.1", @@ -21800,9 +21664,9 @@ } }, "nodemailer": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.0.tgz", - "integrity": "sha512-jFaCEGTeT3E/m/5R2MHWiyQH3pSARECRUDM+1hokOYc3lQAAG7ASuy+2jIsYVf+RVa9zePopSQwKNVFH8DKUpA==" + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.1.tgz", + "integrity": "sha512-qHw7dOiU5UKNnQpXktdgQ1d3OFgRAekuvbJLcdG5dnEo/GtcTHRYM7+UfJARdOFU9WUQO8OiIamgWPmiSFHYAA==" }, "nodemon": { "version": "2.0.20", @@ -22163,9 +22027,9 @@ } }, "open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.1.tgz", + "integrity": "sha512-/4b7qZNhv6Uhd7jjnREh1NjnPxlTq+XNWPG88Ydkj5AILcA5m3ajvcg57pB24EQjKv0dK62XnDqk9c/hkIG5Kg==", "requires": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -22453,19 +22317,6 @@ "requires": { "jsonwebtoken": "^9.0.0", "passport-strategy": "^1.0.0" - }, - "dependencies": { - "jsonwebtoken": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", - "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", - "requires": { - "jws": "^3.2.2", - "lodash": "^4.17.21", - "ms": "^2.1.1", - "semver": "^7.3.8" - } - } } }, "passport-local": { @@ -22537,15 +22388,15 @@ "integrity": "sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==" }, "pg": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.8.0.tgz", - "integrity": "sha512-UXYN0ziKj+AeNNP7VDMwrehpACThH7LUl/p8TDFpEUuSejCUIwGSfxpHsPvtM6/WXFy6SU4E5RG4IJV/TZAGjw==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.9.0.tgz", + "integrity": "sha512-ZJM+qkEbtOHRuXjmvBtOgNOXOtLSbxiMiUVMgE4rV6Zwocy03RicCVvDXgx8l4Biwo8/qORUnEqn2fdQzV7KCg==", "requires": { "buffer-writer": "2.0.0", "packet-reader": "1.0.0", "pg-connection-string": "^2.5.0", "pg-pool": "^3.5.2", - "pg-protocol": "^1.5.0", + "pg-protocol": "^1.6.0", "pg-types": "^2.1.0", "pgpass": "1.x" } @@ -22556,9 +22407,9 @@ "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" }, "pg-cursor": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/pg-cursor/-/pg-cursor-2.7.4.tgz", - "integrity": "sha512-CNWwOzTTZ9QvphoOL+Wg/7pmVr9GnAWBjPbuK2FRclrB4A/WRO/ssCJ9BlkzIGmmofK2M/LyokNHgsLSn+fMHA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/pg-cursor/-/pg-cursor-2.8.0.tgz", + "integrity": "sha512-LrOaEHK+R1C40e+xeri3FTRY/VKp9uTOCVsKtGB7LJ57qbeaphYvWjbVly8AesdT1GfHXYcAnVdExKhW7DKOvA==", "requires": {} }, "pg-format": { @@ -22584,16 +22435,16 @@ "requires": {} }, "pg-protocol": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz", - "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", + "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" }, "pg-query-stream": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/pg-query-stream/-/pg-query-stream-4.2.4.tgz", - "integrity": "sha512-Et3gTrWn4C2rj4LVioNq1QDd7aH/3mSJcBm79jZALv3wopvx9bWENtbOYZbHQ6KM+IkfFxs0JF1ZLjMDJ9/N6Q==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/pg-query-stream/-/pg-query-stream-4.3.0.tgz", + "integrity": "sha512-+Eer4Y1e43rAaphFNu9/VJKn9nKTApFKCSwVtDjXYnuO4QYqWHOEkApmGJv8gvaU5T6fcuEtjsN24gk+Rx7X9A==", "requires": { - "pg-cursor": "^2.7.4" + "pg-cursor": "^2.8.0" } }, "pg-types": { @@ -23227,11 +23078,6 @@ "side-channel": "^1.0.4" } }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==" - }, "querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", @@ -23816,9 +23662,9 @@ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==" }, "shell-quote": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", - "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz", + "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==" }, "shelljs": { "version": "0.8.5", @@ -24337,9 +24183,9 @@ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" }, "terser": { - "version": "5.16.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", - "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", + "version": "5.16.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.3.tgz", + "integrity": "sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q==", "requires": { "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", @@ -24618,9 +24464,9 @@ } }, "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" }, "tsscmp": { "version": "1.0.6", @@ -24690,9 +24536,9 @@ } }, "typescript": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", - "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true }, "uglify-js": { @@ -24752,22 +24598,6 @@ "punycode": "^2.1.0" } }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" - } - } - }, "url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", @@ -24836,9 +24666,9 @@ } }, "validator": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", - "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==" + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.9.0.tgz", + "integrity": "sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==" }, "varint": { "version": "5.0.2", @@ -25019,10 +24849,11 @@ } }, "webpack-bundle-analyzer": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz", - "integrity": "sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.8.0.tgz", + "integrity": "sha512-ZzoSBePshOKhr+hd8u6oCkZVwpVaXgpw23ScGLFpR6SjYI7+7iIWYarjN6OEYOfRt8o7ZyZZQk0DuMizJ+LEIg==", "requires": { + "@discoveryjs/json-ext": "0.5.7", "acorn": "^8.0.4", "acorn-walk": "^8.0.0", "chalk": "^4.1.0", diff --git a/package.json b/package.json index 1c07a6957..4ff3ec31c 100644 --- a/package.json +++ b/package.json @@ -139,7 +139,7 @@ "ioredis": "^4.24.2", "isomorphic-dompurify": "^0.15.0", "JSONStream": "^1.3.5", - "jsonwebtoken": "^8.5.1", + "jsonwebtoken": "^9.0.0", "kind-of": "^6.0.3", "method-override": "^3.0.0", "minimist": "^1.2.5", diff --git a/src/data_access_layer/mappers/data_warehouse/data/edge_mapper.ts b/src/data_access_layer/mappers/data_warehouse/data/edge_mapper.ts index bdcffd03f..0db60e36b 100644 --- a/src/data_access_layer/mappers/data_warehouse/data/edge_mapper.ts +++ b/src/data_access_layer/mappers/data_warehouse/data/edge_mapper.ts @@ -144,7 +144,7 @@ export default class EdgeMapper extends Mapper { ON CONFLICT(container_id,relationship_pair_id,data_source_id,created_at, origin_id, destination_id) DO UPDATE SET properties = EXCLUDED.properties, metadata = EXCLUDED.metadata - WHERE EXCLUDED.id = edges.id AND excluded.properties IS DISTINCT FROM edgges.properties + WHERE EXCLUDED.id = edges.id AND excluded.properties IS DISTINCT FROM edges.properties RETURNING *`; const values = edges.map((e) => [ diff --git a/src/data_access_layer/repositories/access_management/oauth_repository.ts b/src/data_access_layer/repositories/access_management/oauth_repository.ts index 4febdb4ed..d24f21c94 100644 --- a/src/data_access_layer/repositories/access_management/oauth_repository.ts +++ b/src/data_access_layer/repositories/access_management/oauth_repository.ts @@ -178,7 +178,7 @@ export default class OAuthRepository extends Repository implements RepositoryInt if (!valid) return new Promise((resolve) => resolve(Result.Failure('invalid client'))); } - const token = jwt.sign(classToPlain(UserToReturnUser(user.value)), Config.encryption_key_secret, {expiresIn: '720m', algorithm: 'RS256'}); + const token = jwt.sign(classToPlain(UserToReturnUser(user.value)), Config.encryption_key_secret, {expiresIn: '720m', algorithm: 'RS256', allowInsecureKeySizes: true}); return new Promise((resolve) => resolve(Result.Success(token))); } diff --git a/src/http_server/routes/access_management/oauth_routes.ts b/src/http_server/routes/access_management/oauth_routes.ts index 68471870a..cc5f7c06c 100644 --- a/src/http_server/routes/access_management/oauth_routes.ts +++ b/src/http_server/routes/access_management/oauth_routes.ts @@ -630,7 +630,7 @@ export default class OAuthRoutes { } try { - const token = jwt.sign(classToPlain(user.value), Config.encryption_key_secret, {expiresIn: expiry, algorithm: 'RS256'}); + const token = jwt.sign(classToPlain(user.value), Config.encryption_key_secret, {expiresIn: expiry, algorithm: 'RS256', allowInsecureKeySizes: true}); res.status(200).json(token); return; } catch (e: any) { From 098c59f2e8659ad4ea32cee800a9fd7a27c77351 Mon Sep 17 00:00:00 2001 From: Katherine Wilsdon Date: Mon, 13 Feb 2023 09:54:08 -0700 Subject: [PATCH 12/13] Removed comment --- .../repositories/data_warehouse/etl/type_mapping_repository.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/data_access_layer/repositories/data_warehouse/etl/type_mapping_repository.ts b/src/data_access_layer/repositories/data_warehouse/etl/type_mapping_repository.ts index c2c4eadc9..6b1933b46 100644 --- a/src/data_access_layer/repositories/data_warehouse/etl/type_mapping_repository.ts +++ b/src/data_access_layer/repositories/data_warehouse/etl/type_mapping_repository.ts @@ -356,7 +356,6 @@ export default class TypeMappingRepository extends Repository implements Reposit mapping.data_source_id = targetDataSource.value.id; mapping.container_id = targetDataSource.value.container_id; mapping.active = active; - // always inactivate the mapping after modification // now we must iterate through the transformations and potentially back-fill the metatype/relationship // ids and key ids if all that are present are the names - note that this will not modify the mapping if From 49990be9be4f23e605c43be585a7895fe56ab181 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Mon, 13 Feb 2023 10:33:28 -0700 Subject: [PATCH 13/13] silently discard insert --- .../059_node_insert_trigger_rewrite.sql | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/data_access_layer/migrations/059_node_insert_trigger_rewrite.sql diff --git a/src/data_access_layer/migrations/059_node_insert_trigger_rewrite.sql b/src/data_access_layer/migrations/059_node_insert_trigger_rewrite.sql new file mode 100644 index 000000000..a1c5e69cd --- /dev/null +++ b/src/data_access_layer/migrations/059_node_insert_trigger_rewrite.sql @@ -0,0 +1,32 @@ +CREATE OR REPLACE FUNCTION node_insert_trigger() RETURNS TRIGGER AS $$ +DECLARE + old_id bigint; + old_properties jsonb; +BEGIN + IF NEW.original_data_id IS NOT NULL THEN + BEGIN + SELECT nodes.id, nodes.properties + INTO old_id, old_properties + FROM nodes + WHERE original_data_id = NEW.original_data_id + AND metatype_id = NEW.metatype_id + AND data_source_id = NEW.data_source_id LIMIT 1; + EXCEPTION + WHEN NO_DATA_FOUND THEN + old_id := NULL; + END; + + IF old_id IS NOT NULL THEN + NEW.id = old_id; +/* + if the old properties are exactly the same as the new properties, silently discard the insert + */ + IF old_properties IS NOT DISTINCT FROM NEW.properties THEN + RETURN NULL; + END IF; + END IF; + END IF; + + RETURN NEW; +END; +$$ language plpgsql; \ No newline at end of file