diff --git a/README.md b/README.md index d51a2988..eb4d01c5 100644 --- a/README.md +++ b/README.md @@ -33,15 +33,15 @@ The repository is organized with the following directory structure: The modules in the monorepo are organized into two categories: * __apps/__ - Standalone processes meant to be run. These are published to [ghcr.io](https://ghcr.io) as container images. - * __packages/__ - Reusable packages shared between applications and other packages. Packages are published to [NPM](https://npmjs.com) . + * __packages/__ - Reusable packages shared between applications and other packages. Packages are published to [NPM](https://npmjs.com). + * __scripts__ - Utility scripts for use within this repo. -| Component | Type | Package Name | Path | Published Location | Description | -| ------------------------------------------- | ----------- | ---------------------------------- | -------------------- | ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Lectern Server](apps/server/README.md) | Application | server | apps/server/ | [![Lectern GHCR Packages](https://img.shields.io/badge/GHCR-lectern-brightgreen?style=for-the-badge&logo=github)](https://github.com/overture-stack/lectern/pkgs/container/lectern) | Lectern Server web application. | -| [Lectern Client](packages/client/README.md) | Package | @overture-stack/lectern-client | packages/client | [![Lectern Client NPM Package](https://img.shields.io/npm/v/@overture-stack/lectern-client?color=%23cb3837&style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@overture-stack/lectern-client) | TypeScript Client to interact with Lectern Server and perform data validation. | -| [common](packages/common/README.md) | Package | common | packages/common/ | N/A | Non-specific but commonly reusable utilities. Includes shared Error classes. | -| [dictionary](packages/dictionary/README.md) | Package | dictionary | packages/dictionary/ | N/A | Dictionary meta-schema definition, includes TS types, and Zod schemas. This also exports all utilities for getting the diff of two dictionaries, and for validating data records with a Dictionary. | -| [validation](packages/validation/README.md) | Package | @overture-stack/lectern-validation | packages/validation/ | [![Lectern Validation NPM Package](https://img.shields.io/npm/v/@overture-stack/lectern-client?color=%23cb3837&style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@overture-stack/lectern-client) | Validate data using Lectern Dictionaries. | +| Component | Package Name | Path | Published Location | Description | +| --------------------------------------------------- | ---------------------------------- | ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [Lectern Server](apps/server/README.md) | @overture-stack/lectern-server | apps/server/ | [![Lectern GHCR Packages](https://img.shields.io/badge/GHCR-lectern-brightgreen?style=for-the-badge&logo=github)](https://github.com/overture-stack/lectern/pkgs/container/lectern) | Lectern Server web application. | +| [Lectern Client](packages/client/README.md) | @overture-stack/lectern-client | packages/client | [![Lectern Client NPM Package](https://img.shields.io/npm/v/@overture-stack/lectern-client?color=%23cb3837&style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@overture-stack/lectern-client) | TypeScript Client to interact with Lectern Server and Lectern data dictionaries. This library provides a REST client to assist in fetching data from the Lectern server. It also exposes the functionality from the Lectern Validation library to use a Lectern data dictionary to validate data. | +| [Lectern Dictionary](packages/dictionary/README.md) | | @overture-stack/lectern-dictionary | packages/dictionary/ | [![Lectern Client NPM Package](https://img.shields.io/npm/v/@overture-stack/lectern-dictionary?color=%23cb3837&style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@overture-stack/lectern-dictionary) | Dictionary meta-schema definition, includes TS types, and Zod schemas. This also exports all utilities for getting the diff of two dictionaries. | +| [Lectern Validation](packages/validation/README.md) | @overture-stack/lectern-validation | packages/validation/ | [![Lectern Validation NPM Package](https://img.shields.io/npm/v/@overture-stack/lectern-client?color=%23cb3837&style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@overture-stack/lectern-client) | Validate data using Lectern Dictionaries. | ## Developer Instructions @@ -85,9 +85,9 @@ This will build all modules. `pnpm test:all` -This will test everything, building all dependencies needed to fully test. +This will test all modules in the repo. -## Additonal Content +## Additional Content In addition to the code for Lectern, this repository contains some useful reference material. @@ -95,9 +95,9 @@ In addition to the code for Lectern, this repository contains some useful refere Lectern provides a meta-schema definition that describes the structure of Lectern Dictionaries. The generated JSON Schema formatted copy of this schema can be found at [`./generated/DictionaryMetaSchema.json`](./generated/DictionaryMetaSchema.json). -This can be used as a programing language agnostic schema for external applications that want to validate, generate, or interact with Lectern Dictionaries. +This can be used as a programing language agnostic schema for external applications to validate Lectern Dictionaries. -> **Note:** +> [!NOTE] > > Don't manually update any files in the `./generated` path. This content is programatically generated from the source code. diff --git a/apps/server/Dockerfile b/apps/server/Dockerfile index 0e1d6d82..90913db8 100644 --- a/apps/server/Dockerfile +++ b/apps/server/Dockerfile @@ -25,7 +25,7 @@ RUN chown -R ${APP_USER}:${APP_USER} $(npm config get prefix) USER ${APP_USER}:${APP_USER} RUN pnpm install --ignore-scripts -RUN pnpm nx build server +RUN pnpm nx build @overture-stack/lectern-server EXPOSE 3000 diff --git a/apps/server/package.json b/apps/server/package.json index 5d87de48..b7c29473 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -1,5 +1,6 @@ { - "name": "server", + "name": "@overture-stack/lectern-server", + "private": true, "version": "2.0.0-next.0", "description": "Overture Data Dictionary Management", "scripts": { @@ -19,40 +20,40 @@ }, "homepage": "https://github.com/overture-stack/lectern#readme", "devDependencies": { - "@types/body-parser": "^1.19.2", + "@types/body-parser": "^1.19.5", "@types/errorhandler": "0.0.32", - "@types/express": "^4.17.17", + "@types/express": "^4.17.21", "@types/jsonwebtoken": "^8.5.9", - "@types/lodash": "^4.14.195", - "@types/memoizee": "^0.4.8", - "@types/ms": "^0.7.31", - "@types/superagent": "^4.1.18", + "@types/lodash": "^4.17.7", + "@types/memoizee": "^0.4.11", + "@types/ms": "^0.7.34", + "@types/superagent": "^4.1.24", "@types/swagger-ui-express": "^3.0.1", "concurrently": "^5.3.0", "husky": "^3.1.0", "nodemon": "^2.0.22", - "prettier": "^3", + "prettier": "^3.3.3", "testcontainers": "^1.3.1", - "zod-to-json-schema": "^3.21.3" + "typescript": "^5.5.4", + "zod-to-json-schema": "^3.23.2" }, "dependencies": { - "ajv": "^8.12.0", - "axios": "^1.4.0", + "@overture-stack/lectern-dictionary": "workspace:^", + "ajv": "^8.17.1", + "axios": "^1.7.2", "body-parser": "^1.20.2", - "common": "workspace:^", - "dictionary": "workspace:^", - "dotenv": "^16.3.1", + "dotenv": "^16.4.5", "errorhandler": "^1.5.1", - "express": "^4.18.2", - "immer": "^10.0.2", + "express": "^4.19.2", + "immer": "^10.1.1", "jsonwebtoken": "^8.5.1", "lodash": "^4.17.21", - "memoizee": "^0.4.15", - "mongoose": "^7.3.2", + "memoizee": "^0.4.17", + "mongoose": "^7.8.0", "ms": "^2.1.3", "node-vault": "^0.9.22", "swagger-ui-express": "^4.6.3", - "winston": "^3.9.0", - "zod": "^3.21.4" + "winston": "^3.13.1", + "zod": "^3.23.8" } } diff --git a/apps/server/src/controllers/dictionaryController.ts b/apps/server/src/controllers/dictionaryController.ts index 53c25ff4..fb5aaddb 100644 --- a/apps/server/src/controllers/dictionaryController.ts +++ b/apps/server/src/controllers/dictionaryController.ts @@ -17,8 +17,13 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { BadRequestError, NotFoundError } from 'common'; -import { Dictionary, Schema, replaceReferences } from 'dictionary'; +import { + BadRequestError, + Dictionary, + NotFoundError, + Schema, + replaceReferences, +} from '@overture-stack/lectern-dictionary'; import { Request, Response } from 'express'; import * as dictionaryService from '../services/dictionaryService'; diff --git a/packages/dictionary/src/types/dbTypes.ts b/apps/server/src/db/dbTypes.ts similarity index 96% rename from packages/dictionary/src/types/dbTypes.ts rename to apps/server/src/db/dbTypes.ts index 71d38ad8..209c031a 100644 --- a/packages/dictionary/src/types/dbTypes.ts +++ b/apps/server/src/db/dbTypes.ts @@ -17,8 +17,8 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import { DictionaryBase } from '@overture-stack/lectern-dictionary'; import { z as zod } from 'zod'; -import { DictionaryBase } from './dictionaryTypes'; /** * A Dictionary stored in the DB is represented as a document and gets an `_id` property diff --git a/apps/server/src/db/dictionary.ts b/apps/server/src/db/dictionary.ts index 09a30b59..aafa8226 100644 --- a/apps/server/src/db/dictionary.ts +++ b/apps/server/src/db/dictionary.ts @@ -17,9 +17,10 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { Dictionary, DictionaryDocument, DictionaryDocumentSummary } from 'dictionary'; +import { Dictionary } from '@overture-stack/lectern-dictionary'; import { omit } from 'lodash'; import mongoose from 'mongoose'; +import type { DictionaryDocument, DictionaryDocumentSummary } from './dbTypes'; export const DictionaryModel = mongoose.model( 'Dictionary', diff --git a/apps/server/src/external/ego.ts b/apps/server/src/external/ego.ts index 5d7bab74..693e5259 100644 --- a/apps/server/src/external/ego.ts +++ b/apps/server/src/external/ego.ts @@ -18,7 +18,7 @@ */ import axios from 'axios'; -import { ForbiddenError, UnauthorizedError } from 'common'; +import { ForbiddenError, UnauthorizedError } from '@overture-stack/lectern-dictionary'; import { NextFunction, Request, RequestHandler, Response } from 'express'; import jwt from 'jsonwebtoken'; import memoize from 'memoizee'; diff --git a/apps/server/src/routers/diffRouter.ts b/apps/server/src/routers/diffRouter.ts index cd31a27d..083620b2 100644 --- a/apps/server/src/routers/diffRouter.ts +++ b/apps/server/src/routers/diffRouter.ts @@ -16,8 +16,7 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { BadRequestError } from 'common'; -import { DictionaryDiffArray, DiffUtils, replaceReferences } from 'dictionary'; +import { BadRequestError, DictionaryDiffArray, DiffUtils, replaceReferences } from '@overture-stack/lectern-dictionary'; import { Router } from 'express'; import * as dictionaryService from '../services/dictionaryService'; import { wrapAsync } from './wrappers'; diff --git a/apps/server/src/services/dictionaryService.ts b/apps/server/src/services/dictionaryService.ts index ce9bc07d..8b3d9145 100644 --- a/apps/server/src/services/dictionaryService.ts +++ b/apps/server/src/services/dictionaryService.ts @@ -17,13 +17,20 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { BadRequestError, ConflictError, NotFoundError } from 'common'; -import { Dictionary, DictionaryDocument, DictionaryDocumentSummary, Schema, VersionUtils } from 'dictionary'; +import { + BadRequestError, + ConflictError, + Dictionary, + NotFoundError, + Schema, + VersionUtils, +} from '@overture-stack/lectern-dictionary'; import * as immer from 'immer'; import { omit } from 'lodash'; import logger from '../config/logger'; import * as DictionaryRepo from '../db/dictionary'; import { normalizeSchema, validate } from '../services/schemaService'; +import type { DictionaryDocument, DictionaryDocumentSummary } from '../db/dbTypes'; /** * Get latest version for all dictionaries with the provided name diff --git a/apps/server/src/services/schemaService.ts b/apps/server/src/services/schemaService.ts index fdb4cd71..2bbae874 100644 --- a/apps/server/src/services/schemaService.ts +++ b/apps/server/src/services/schemaService.ts @@ -17,10 +17,9 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { References, Schema } from 'dictionary'; +import { References, replaceSchemaReferences, Schema } from '@overture-stack/lectern-dictionary'; import * as immer from 'immer'; import { ZodError } from 'zod'; -import { replaceSchemaReferences } from 'dictionary'; export function validate(schema: Schema, references: References): { valid: boolean; errors?: ZodError } { const schemaWithReplacements = replaceSchemaReferences(schema, references); diff --git a/apps/server/test/fixtures/dictionaries/1_base.ts b/apps/server/test/fixtures/dictionaries/1_base.ts index 82d51d55..4d94be10 100644 --- a/apps/server/test/fixtures/dictionaries/1_base.ts +++ b/apps/server/test/fixtures/dictionaries/1_base.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { Dictionary } from 'dictionary'; +import { Dictionary } from '@overture-stack/lectern-dictionary'; import primitivesSchema from '../schemas/primitives'; const dictionary: Dictionary = { diff --git a/apps/server/test/fixtures/dictionaries/2_base_schema_added.ts b/apps/server/test/fixtures/dictionaries/2_base_schema_added.ts index 39213b13..88962b2e 100644 --- a/apps/server/test/fixtures/dictionaries/2_base_schema_added.ts +++ b/apps/server/test/fixtures/dictionaries/2_base_schema_added.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { Dictionary } from 'dictionary'; +import { Dictionary } from '@overture-stack/lectern-dictionary'; import primitivesSchema from '../schemas/primitives'; import additionalSchema from '../schemas/schemaChangesBase'; const dictionary: Dictionary = { diff --git a/apps/server/test/fixtures/dictionaries/3_base_schema_updated.ts b/apps/server/test/fixtures/dictionaries/3_base_schema_updated.ts index 17aeefcd..ac34d669 100644 --- a/apps/server/test/fixtures/dictionaries/3_base_schema_updated.ts +++ b/apps/server/test/fixtures/dictionaries/3_base_schema_updated.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { Dictionary } from 'dictionary'; +import { Dictionary } from '@overture-stack/lectern-dictionary'; import primitivesSchema from '../schemas/primitives'; import updatedSchema from '../schemas/schemaChangesUpdated'; const dictionary: Dictionary = { diff --git a/apps/server/test/fixtures/dictionaries/invalidReferences.ts b/apps/server/test/fixtures/dictionaries/invalidReferences.ts index f58987be..900fb68f 100644 --- a/apps/server/test/fixtures/dictionaries/invalidReferences.ts +++ b/apps/server/test/fixtures/dictionaries/invalidReferences.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { Dictionary } from 'dictionary'; +import { Dictionary } from '@overture-stack/lectern-dictionary'; import referencesSchema, { references } from '../schemas/references'; const dictionary: Dictionary = { name: 'Invalid References Dictionary', diff --git a/apps/server/test/fixtures/dictionaries/linebreak/input1.ts b/apps/server/test/fixtures/dictionaries/linebreak/input1.ts index 28d48a79..d7be203d 100644 --- a/apps/server/test/fixtures/dictionaries/linebreak/input1.ts +++ b/apps/server/test/fixtures/dictionaries/linebreak/input1.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { Dictionary } from 'dictionary'; +import { Dictionary } from '@overture-stack/lectern-dictionary'; const output: Dictionary = { name: 'Test Dictionary', diff --git a/apps/server/test/fixtures/dictionaries/linebreak/input2.ts b/apps/server/test/fixtures/dictionaries/linebreak/input2.ts index a36b5ffc..449786a3 100644 --- a/apps/server/test/fixtures/dictionaries/linebreak/input2.ts +++ b/apps/server/test/fixtures/dictionaries/linebreak/input2.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { Dictionary } from 'dictionary'; +import { Dictionary } from '@overture-stack/lectern-dictionary'; const output: Dictionary = { name: 'Test Dictionary', diff --git a/apps/server/test/fixtures/dictionaries/linebreak/nLinebreaks.ts b/apps/server/test/fixtures/dictionaries/linebreak/nLinebreaks.ts index 96604708..3880947b 100644 --- a/apps/server/test/fixtures/dictionaries/linebreak/nLinebreaks.ts +++ b/apps/server/test/fixtures/dictionaries/linebreak/nLinebreaks.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { Dictionary } from 'dictionary'; +import { Dictionary } from '@overture-stack/lectern-dictionary'; const output: Dictionary = { name: 'Line Breaks', diff --git a/apps/server/test/fixtures/dictionaries/linebreak/normalizedLinebreaks.ts b/apps/server/test/fixtures/dictionaries/linebreak/normalizedLinebreaks.ts index 96604708..3880947b 100644 --- a/apps/server/test/fixtures/dictionaries/linebreak/normalizedLinebreaks.ts +++ b/apps/server/test/fixtures/dictionaries/linebreak/normalizedLinebreaks.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { Dictionary } from 'dictionary'; +import { Dictionary } from '@overture-stack/lectern-dictionary'; const output: Dictionary = { name: 'Line Breaks', diff --git a/apps/server/test/fixtures/dictionaries/linebreak/output.ts b/apps/server/test/fixtures/dictionaries/linebreak/output.ts index 28d48a79..d7be203d 100644 --- a/apps/server/test/fixtures/dictionaries/linebreak/output.ts +++ b/apps/server/test/fixtures/dictionaries/linebreak/output.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { Dictionary } from 'dictionary'; +import { Dictionary } from '@overture-stack/lectern-dictionary'; const output: Dictionary = { name: 'Test Dictionary', diff --git a/apps/server/test/fixtures/dictionaries/linebreak/rnLinebreaks.ts b/apps/server/test/fixtures/dictionaries/linebreak/rnLinebreaks.ts index 13dc1651..1c0c3a50 100644 --- a/apps/server/test/fixtures/dictionaries/linebreak/rnLinebreaks.ts +++ b/apps/server/test/fixtures/dictionaries/linebreak/rnLinebreaks.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { Dictionary } from 'dictionary'; +import { Dictionary } from '@overture-stack/lectern-dictionary'; const output: Dictionary = { name: 'Line Breaks', diff --git a/apps/server/test/fixtures/dictionaries/simple.ts b/apps/server/test/fixtures/dictionaries/simple.ts index 1a237dc2..6741fd43 100644 --- a/apps/server/test/fixtures/dictionaries/simple.ts +++ b/apps/server/test/fixtures/dictionaries/simple.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { Dictionary } from 'dictionary'; +import { Dictionary } from '@overture-stack/lectern-dictionary'; import primitivesSchema from '../schemas/primitives'; export default { name: 'Simple Dictionary', diff --git a/apps/server/test/fixtures/dictionaries/validReferences.ts b/apps/server/test/fixtures/dictionaries/validReferences.ts index 9bdc4b79..b567101e 100644 --- a/apps/server/test/fixtures/dictionaries/validReferences.ts +++ b/apps/server/test/fixtures/dictionaries/validReferences.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { Dictionary } from 'dictionary'; +import { Dictionary } from '@overture-stack/lectern-dictionary'; import referencesSchema, { references } from '../schemas/references'; const dictionary: Dictionary = { name: 'Valid References Dictionary', diff --git a/apps/server/test/fixtures/schemas/primitives.ts b/apps/server/test/fixtures/schemas/primitives.ts index 80af9ba5..6595083d 100644 --- a/apps/server/test/fixtures/schemas/primitives.ts +++ b/apps/server/test/fixtures/schemas/primitives.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { Schema } from 'dictionary'; +import { Schema } from '@overture-stack/lectern-dictionary'; // Just a simple schema with no frills. diff --git a/apps/server/test/fixtures/schemas/references.ts b/apps/server/test/fixtures/schemas/references.ts index 011f21b7..abb4f016 100644 --- a/apps/server/test/fixtures/schemas/references.ts +++ b/apps/server/test/fixtures/schemas/references.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { Schema } from 'dictionary'; +import { Schema } from '@overture-stack/lectern-dictionary'; export const references = { listA: ['a', 'b', 'c'], diff --git a/apps/server/test/fixtures/schemas/schemaChangesBase.ts b/apps/server/test/fixtures/schemas/schemaChangesBase.ts index 7751a85d..e80d66be 100644 --- a/apps/server/test/fixtures/schemas/schemaChangesBase.ts +++ b/apps/server/test/fixtures/schemas/schemaChangesBase.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { Schema } from 'dictionary'; +import { Schema } from '@overture-stack/lectern-dictionary'; export default { name: 'schema_tests', diff --git a/apps/server/test/fixtures/schemas/schemaChangesUpdated.ts b/apps/server/test/fixtures/schemas/schemaChangesUpdated.ts index 4ca12cba..cb0d8ad7 100644 --- a/apps/server/test/fixtures/schemas/schemaChangesUpdated.ts +++ b/apps/server/test/fixtures/schemas/schemaChangesUpdated.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { Schema } from 'dictionary'; +import { Schema } from '@overture-stack/lectern-dictionary'; export default { name: 'schema_tests', diff --git a/apps/server/test/functional/services/dictionaryService.spec.ts b/apps/server/test/functional/services/dictionaryService.spec.ts index 9bfadbe6..607460f3 100644 --- a/apps/server/test/functional/services/dictionaryService.spec.ts +++ b/apps/server/test/functional/services/dictionaryService.spec.ts @@ -19,7 +19,7 @@ import chai, { expect } from 'chai'; import chaiAsPromised from 'chai-as-promised'; -import { DictionaryDocument, VersionUtils } from 'dictionary'; +import { VersionUtils } from '@overture-stack/lectern-dictionary'; import * as immer from 'immer'; import { Error as MongooseError } from 'mongoose'; import sinon from 'sinon'; @@ -34,6 +34,7 @@ import SCHEMA_1_EXISTING from '../../fixtures/schemas/primitives'; import SCHEMA_REFERENCES, { references } from '../../fixtures/schemas/references'; import SCHEMA_2_ADD from '../../fixtures/schemas/schemaChangesBase'; import SCHEMA_3_UPDATES from '../../fixtures/schemas/schemaChangesUpdated'; +import type { DictionaryDocument } from '../../../src/db/dbTypes'; chai.use(chaiAsPromised); diff --git a/package.json b/package.json index 9398856c..fadba1d2 100644 --- a/package.json +++ b/package.json @@ -1,22 +1,20 @@ { - "name": "lectern", + "name": "@overture-stack/lectern", + "private": true, "version": "2.0.0-next.0", - "description": "Data Dictionary Schema Manager and Validator", - "main": "index.js", + "description": "Schema Manager and Validation for Data Dictionaries", "scripts": { "build:all": "pnpm nx run-many --all --target=build", - "build:common": "pnpm nx build common", - "build:dictionary": "pnpm nx build dictionary", + "build:dictionary": "pnpm nx build @overture-stack/lectern-dictionary", "build:validation": "pnpm nx build @overture-stack/lectern-validation", - "build:server": "pnpm nx build server", + "build:server": "pnpm nx build @overture-stack/lectern-server", "build:client": "pnpm nx build @overture-stack/lectern-client", "test:all": "pnpm nx run-many --all --target=test", - "test:common": "pnpm nx test common", - "test:dictionary": "pnpm nx test dictionary", + "test:dictionary": "pnpm nx test @overture-stack/lectern-dictionary", "test:validation": "pnpm nx test @overture-stack/lectern-validation", - "test:server": "pnpm nx test server", + "test:server": "pnpm nx test @overture-stack/lectern-server", "test:client": "pnpm nx test @overture-stack/lectern-client", - "generate": "pnpm build:dictionary && pnpm -C generate generate" + "generate": "pnpm build:dictionary && pnpm -C scripts generate" }, "keywords": [], "author": "Ontario Institute for Cancer Research", @@ -24,18 +22,18 @@ "devDependencies": { "@types/chai": "^4.3.16", "@types/chai-as-promised": "^7.1.8", - "@types/mocha": "^10.0.6", - "@types/node": "^20.14.7", + "@types/mocha": "^10.0.7", + "@types/node": "^20.14.13", "@types/sinon": "^10.0.20", - "chai": "^4.4.1", + "chai": "^4.5.0", "chai-as-promised": "^7.1.2", "chai-http": "^4.4.0", - "mocha": "^10.4.0", + "mocha": "^10.7.0", "nx": "^16.10.0", "nyc": "^15.1.0", - "prettier": "^3.3.2", + "prettier": "^3.3.3", "sinon": "^15.2.0", "ts-node": "^10.9.2", - "typescript": "^5.5.2" + "typescript": "^5.5.4" } } diff --git a/packages/client/README.md b/packages/client/README.md index f517a4f4..ba0390be 100644 --- a/packages/client/README.md +++ b/packages/client/README.md @@ -5,43 +5,61 @@ The Lectern client provides developers the mechanism to interact with Lectern servers and to use Lectern Dictionaries. The client provides all the validation logic to check that submitted data is valid based on the structure and restrictions of a Lectern dictionary. It also provides a REST client to fetch Lectern Dictionary data from a Lectern server. ## Features +- Interact with lectern servers: + - Fetch dictionary by name and version + - Fetch difference summaries between dictionary versions - Process data using a Lectern Dictionary: - Convert raw string inputs into properly typed values. - Check the structure of input data is valid. - Apply all restrictions, both across schemas and on individual fields, to validate input data. - Report all validation errors found in the input data. -- Interact with lectern servers: - - Fetch dictionary by name and version - - Fetch difference summaries between dictionary versions -## Data Processing Usage -### Process Data for a Single Schema - -The following example shows how to process data using the Lectern Client. The input `donorData` is presented as hardcoded, but in a typical scenario this would be submitted to the application through an uploaded TSV, form entry, or similar user submission system. - -To process data records which all belong to the same schema we use the `processRecords` function: +## Data Fetching Example ```ts import * as lectern from '@overture-stack/lectern-client'; -import type { Dictionary, UnprocessedDataRecord } from '@overture-stack/lectern-client'; +const lecternUrl = 'http://lectern.example.com'; +const dictionaryName = 'dictionary-name'; +const currentVersion = "2.3"; +const previousVersion = "2.1"; + +const dictionary = lectern.restClient.fetchSchema(lecternUrl, dictionaryName, currentVersion); +const versionUpdates = lectern.restClient.fetchDiff(lecternUrl, dictionaryName, currentVersion, previousVersion); +``` -const dictionary: Dictionary = await getLecternDictionary(); +## Data Processing Usage -const donorData: UnprocessedDataRecord = [{submitter_donor_id: "abc123", gender: "Male", age: "28"}, {submitter_donor_id: "def456", gender: "Female", age: "37"}] +### Process Data for a Single Schema -const { processedRecords, validationErrors } = lectern.process.schema(dictionary, "donors", donorData); -``` +The following example shows how to process data using the Lectern Client. The input `donorData` is presented as hardcoded, but in a typical scenario this would be submitted to the application through an uploaded TSV, form entry, or similar user submission system. -## Data Fetching Example +To process data records which all belong to the same schema we use the `processSchema` function: ```ts import * as lectern from '@overture-stack/lectern-client'; -const currentVersion = "2.3"; -const previousVersion = "2.1"; -const dictionary = client.restClient.fetchSchema('http://lectern.example.com', 'dictionary-name', currentVersion); -const versionUpdates = client.restClient.fetchDiff('http://lectern.example.com', 'dictionary-name', currentVersion, previousVersion); +const dictionary = await getLecternDictionary(); + +const donorData = [{submitter_donor_id: "abc123", gender: "Male", age: "28"}, {submitter_donor_id: "def456", gender: "Female", age: "37"}] + +const schemaProcessingResult = lectern.functions.processSchema(dictionary, "donors", donorData); + +switch (schemaProcessingResult.status) { + case 'SUCCESS': { + const { records } = schemaProcessingResult; + // use converted and validated records + } + case 'ERROR_PARSING': { + const { errors, records } = schemaProcessingResult; + // errors occured parsing records. read the errors that occurred + // records have been return with their values parsed where possible. If an error occurred, the original input string value is returned + } + case 'ERROR_VALIDATION': { + const { records, errors } = schemaProcessingResult; + // errors occured validating records. these errors have been returned + // records were parsed successfully, so this returns all parsed records + } ``` diff --git a/packages/client/package.json b/packages/client/package.json index 3f21f95b..8a248406 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -22,30 +22,29 @@ "license": "AGPL-3.0", "devDependencies": { "@types/chai": "^4.3.16", - "@types/lodash": "^4.17.5", + "@types/lodash": "^4.17.7", "@types/mocha": "^8.2.3", "@types/node": "^12.20.55", "@types/node-fetch": "^2.6.11", - "chai": "^4.4.1", + "chai": "^4.5.0", "husky": "^6.0.0", "mocha": "^8.4.0", "prettier": "^2.8.8", "pretty-quick": "^3.3.1", - "rimraf": "^5.0.7", + "rimraf": "^5.0.9", "ts-node": "^9.1.1", "tslint": "^6.1.3", "typedoc": "^0.17.8", - "typescript": "^5.5.2" + "typescript": "^5.5.4" }, "dependencies": { + "@overture-stack/lectern-dictionary": "workspace:^", "@overture-stack/lectern-validation": "workspace:^", "cd": "^0.3.3", - "common": "workspace:^", - "dictionary": "workspace:^", "lodash": "^4.17.21", "node-fetch": "^2.7.0", "promise-tools": "^2.1.0", - "winston": "^3.13.0" + "winston": "^3.13.1" }, "author": "Ontario Institute for Cancer Research" } diff --git a/packages/client/src/changeAnalysis/changeAnalysisTypes.ts b/packages/client/src/changeAnalysis/changeAnalysisTypes.ts index 853a918a..79c3561e 100644 --- a/packages/client/src/changeAnalysis/changeAnalysisTypes.ts +++ b/packages/client/src/changeAnalysis/changeAnalysisTypes.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { SchemaField, ValueChangeTypeName } from 'dictionary'; +import { SchemaField, ValueChangeTypeName } from '@overture-stack/lectern-dictionary'; type ChangeOnlyTypeNames = Exclude; diff --git a/packages/client/src/changeAnalysis/changeAnalyzer.ts b/packages/client/src/changeAnalysis/changeAnalyzer.ts index 77adcdfd..55f50cae 100644 --- a/packages/client/src/changeAnalysis/changeAnalyzer.ts +++ b/packages/client/src/changeAnalysis/changeAnalyzer.ts @@ -17,7 +17,13 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { DictionaryDiff, FieldChanges, RestrictionRange, SchemaField, ValueChange } from 'dictionary'; +import { + DictionaryDiff, + FieldChanges, + RestrictionRange, + SchemaField, + ValueChange, +} from '@overture-stack/lectern-dictionary'; import { restClient } from '../rest'; import { ChangeAnalysis, RestrictionChanges } from './changeAnalysisTypes'; diff --git a/packages/client/src/processing/index.ts b/packages/client/src/processing/index.ts index 942ebade..28f6894b 100644 --- a/packages/client/src/processing/index.ts +++ b/packages/client/src/processing/index.ts @@ -18,7 +18,7 @@ */ import * as validation from '@overture-stack/lectern-validation'; -import { DataRecord, Dictionary, Schema, UnprocessedDataRecord } from 'dictionary'; +import { DataRecord, Dictionary, Schema, UnprocessedDataRecord } from '@overture-stack/lectern-dictionary'; import { loggerFor } from '../logger'; import { SchemaProcessingResult, diff --git a/packages/client/src/processing/processingResultTypes.ts b/packages/client/src/processing/processingResultTypes.ts index 4769b9c6..899a1772 100644 --- a/packages/client/src/processing/processingResultTypes.ts +++ b/packages/client/src/processing/processingResultTypes.ts @@ -25,11 +25,11 @@ import { type ParseSchemaFailureData, type ParseDictionaryData, } from '@overture-stack/lectern-validation'; -import { DataRecord, Schema } from 'dictionary'; +import { DataRecord, Schema } from '@overture-stack/lectern-dictionary'; export type ProcessingFunction = (schema: Schema, rec: Readonly, index: number) => any; -type RecordProcessingErrorSuccess = { +type RecordProcessingSuccess = { status: 'SUCCESS'; record: DataRecord; }; @@ -42,11 +42,11 @@ type RecordProcessingErrorValidation = { errors: RecordValidationError[]; }; export type RecordProcessingResult = - | RecordProcessingErrorSuccess + | RecordProcessingSuccess | RecordProcessingErrorParsing | RecordProcessingErrorValidation; -type SchemaProcessingErrorSuccess = { +type SchemaProcessingSuccess = { status: 'SUCCESS'; records: DataRecord[]; }; @@ -59,11 +59,11 @@ type SchemaProcessingErrorValidation = { errors: SchemaValidationError[]; }; export type SchemaProcessingResult = - | SchemaProcessingErrorSuccess + | SchemaProcessingSuccess | SchemaProcessingErrorParsing | SchemaProcessingErrorValidation; -type DictionaryProcessingErrorSuccess = { +type DictionaryProcessingSuccess = { status: 'SUCCESS'; data: Record; }; @@ -81,7 +81,7 @@ type DictionaryProcessingErrorValidation = { errors: DictionaryValidationError[]; }; export type DictionaryProcessingResult = - | DictionaryProcessingErrorSuccess + | DictionaryProcessingSuccess | DictionaryProcessingErrorParsing | DictionaryProcessingErrorValidation; diff --git a/packages/client/src/rest/index.ts b/packages/client/src/rest/index.ts index 1d390733..0e49d188 100644 --- a/packages/client/src/rest/index.ts +++ b/packages/client/src/rest/index.ts @@ -17,8 +17,13 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { unknownToString } from 'common'; -import { Dictionary, DictionaryDiff, DictionaryDiffArray, FieldDiff } from 'dictionary'; +import { + Dictionary, + DictionaryDiff, + DictionaryDiffArray, + FieldDiff, + unknownToString, +} from '@overture-stack/lectern-dictionary'; import fetch from 'node-fetch'; import promiseTools from 'promise-tools'; import { loggerFor } from '../logger'; diff --git a/packages/client/test/changeAnalyzer.spec.ts b/packages/client/test/changeAnalyzer.spec.ts index c2bbff03..426cd588 100644 --- a/packages/client/test/changeAnalyzer.spec.ts +++ b/packages/client/test/changeAnalyzer.spec.ts @@ -18,7 +18,7 @@ */ import chai from 'chai'; -import { DiffUtils } from 'dictionary'; +import { DiffUtils } from '@overture-stack/lectern-dictionary'; import { analyzer } from '../src'; import { ChangeAnalysis } from '../src/changeAnalysis'; import diffResponse from './fixtures/diffResponse'; diff --git a/packages/client/test/fixtures/diffResponse.ts b/packages/client/test/fixtures/diffResponse.ts index cf164909..fdb45f63 100644 --- a/packages/client/test/fixtures/diffResponse.ts +++ b/packages/client/test/fixtures/diffResponse.ts @@ -1,4 +1,4 @@ -import { DictionaryDiffArray } from 'dictionary'; +import { DictionaryDiffArray } from '@overture-stack/lectern-dictionary'; const diffResponse = [ [ diff --git a/packages/client/test/fixtures/registrationSchema.ts b/packages/client/test/fixtures/registrationSchema.ts index 4d57053a..5fbbd3cb 100644 --- a/packages/client/test/fixtures/registrationSchema.ts +++ b/packages/client/test/fixtures/registrationSchema.ts @@ -1,4 +1,4 @@ -import { Dictionary } from 'dictionary'; +import { Dictionary } from '@overture-stack/lectern-dictionary'; const dictionary: Dictionary = { schemas: [ diff --git a/packages/common/.mocharc.json b/packages/common/.mocharc.json deleted file mode 100644 index 6d0022d7..00000000 --- a/packages/common/.mocharc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extension": ["ts"], - "require": "ts-node/register", - "spec": "test/**/*.spec.ts" -} diff --git a/packages/common/README.md b/packages/common/README.md deleted file mode 100644 index e9c12477..00000000 --- a/packages/common/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Lectern Common Utils - -Contains generic types and utilities used across Lectern modules. - -Also exported are custom error classes. Please note: it is prefered to return Result objects with typed error details rather than throw unexpectedly. Use of thrown errors is being refactored out where possible. \ No newline at end of file diff --git a/packages/common/package.json b/packages/common/package.json deleted file mode 100644 index 80bb8580..00000000 --- a/packages/common/package.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "common", - "version": "1.0.0", - "description": "", - "main": "dist/index.js", - "scripts": { - "build": "pnpm build:clean && tsc", - "build:clean": "rimraf dist/ && mkdir dist" - }, - "keywords": [], - "author": "Ontario Institute for Cancer Research", - "license": "AGPL-3.0", - "devDependencies": { - "rimraf": "^5.0.0" - } -} diff --git a/packages/common/src/index.ts b/packages/common/src/index.ts deleted file mode 100644 index c85c35d6..00000000 --- a/packages/common/src/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './errors'; -export * from './types'; -export * from './utils'; diff --git a/packages/common/src/utils/objectUtils.ts b/packages/common/src/utils/objectUtils.ts deleted file mode 100644 index 48dcba85..00000000 --- a/packages/common/src/utils/objectUtils.ts +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (c) 2023 The Ontario Institute for Cancer Research. All rights reserved - * - * This program and the accompanying materials are made available under the terms of - * the GNU Affero General Public License v3.0. You should have received a copy of the - * GNU Affero General Public License along with this program. - * If not, see . - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT - * SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -type CompareFunction = (a: T, b: T) => number; - -const defaultSort = (a: T, b: T) => { - return a > b ? 1 : -1; -}; - -/** - * Wrapper for a search function that can define a priority order for specific values. This will return a - * search function that will check if values are in the priorityArray, and if so will sort them in the - * order found in the array. All values not found in the array will be sorted according to the provided - * sortingFunction. - * @param priorityArray Array of values in a specified priority sort order - * @param sortingFunction Optional sorting function for case where neither value is found in the priorityArray. - * Default sorting function is the defaultSort which does a JavaScript greater than operation to compare values. - * @returns A new CompareFunction that will prioritize items found in the priorityArray. - * - * @example - * ``` - * const array = ["c", "z", "x", "b", "a", "y"]; - * const customSortFunction = sortWithPriority(["z", "y", "x"]); - * - * const sortedArray = array.sort(customSortFunction); - * // Result: ["z", "y", "x", "a", "b", "c"]; - * ``` - */ -export const sortWithPriority = - (priorityArray: T[], sortingFunction: CompareFunction = defaultSort): CompareFunction => - (a, b) => { - const indexA = priorityArray.indexOf(a); - const indexB = priorityArray.indexOf(b); - if (indexA >= 0) { - if (indexB >= 0) { - // Has A and B - return indexA > indexB ? 1 : -1; - } else { - // Has A not B - return -1; - } - } else if (indexB >= 0) { - // Has B not A - return 1; - } else { - // Has neither, use sortingFunction for remainder - return sortingFunction(a, b); - } - }; - -/** - * Create a deep clone of an object with all properties sorted. This is helpful for preparing a data structure - * for presentation in a predictable way. For example, a user submitted JSON object will have - * properties sorted randomly, while an API response that includes this user data should be always returned with - * object properties in a consistent order. - * - * The sort order will by default be alphabetical. A custom sortingFunction can be provided to - * sort the object properties with custom order or logic. - * - * Note: This only operates on own properties, not inherited properties. - * @param input An object to be cloned with sorted properties - * @param sortingFunction Optional property, a sorting function to determine the order of properties - * in the output object - * @returns Deep clone of the input object - */ -export const sortProperties = (input: T, sortingFunction = defaultSort): T => { - const sortedEntries = Object.keys(input).sort(sortingFunction); - return sortedEntries.reduce((acc, key) => { - const value = (input as any)[key]; - if (typeof value === 'object' && value !== null) { - acc[key] = sortProperties(value, sortingFunction); - } else { - acc[key] = value; - } - return acc; - }, {}); -}; diff --git a/packages/dictionary/README.md b/packages/dictionary/README.md index a466b00c..f6a26cde 100644 --- a/packages/dictionary/README.md +++ b/packages/dictionary/README.md @@ -1,9 +1,10 @@ -# Lectern Dictionary Schema and Utilities +# Lectern Dictionary Meta-Schema and Utilities -## Schema Definition for Lectern Developers +[![NPM Version](https://img.shields.io/npm/v/@overture-stack/lectern-dictionary?color=%23cb3837&style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@overture-stack/lectern-dictionary) -The Lectern server uses a TypeScript native schema generated with [Zod](https://zod.dev/) that can be found in the [`./src/types/dictionaryTypes.ts`](./src/types/dictionaryTypes.ts) file. There is a custom script `npm run generate` that will regenerate the content in the `DictionaryMetaSchema.json`. The JSON Schema file is generated thanks to the libary [zod-to-JSON Schema](https://www.npmjs.com/package/zod-to-JSON Schema). +This package defines the structure of Lectern Dictionaries, including providing the TypeScript type definitions to use the dictionary in code and the schemas to validate that a given JSON object is a valid Lectern Dictionary. -Whenever changes are made to the Zod Schemas in `./src/types` the generation script needs to be re-run and the updated Dictionary Meta Schema committed to the repository. +The Lectern Dictionary meta-schema is formally defined in TypeScript and exported as the type `Dictionary`. This definition is created using `Zod` schemas, which are also exported from this package and available for use to confirm a given object is a valid Lectern Dictionary. + +A [JSON Schema definition](https://github.com/overture-stack/lectern/blob/develop/generated/DictionaryMetaSchema.json) of the Lectern Dictionary structure is also available if you are looking for a non-TypeScript mechanism for validating Lectern Dictionaries. -If the generation script needs updating, it can be found at [`./scripts/buildMetaSchema.ts`](./scripts/buildMetaSchema.ts). diff --git a/packages/dictionary/package.json b/packages/dictionary/package.json index fc24a332..735c3212 100644 --- a/packages/dictionary/package.json +++ b/packages/dictionary/package.json @@ -1,6 +1,6 @@ { - "name": "dictionary", - "version": "1.0.0", + "name": "@overture-stack/lectern-dictionary", + "version": "0.1.0-beta.1", "description": "", "main": "dist/index.js", "scripts": { @@ -12,13 +12,12 @@ "author": "Ontario Institute for Cancer Research", "license": "AGPL-3.0", "dependencies": { - "common": "workspace:^", - "immer": "^10.0.2", + "immer": "^10.1.1", "lodash": "^4.17.21", - "zod": "^3.21.4" + "zod": "^3.23.8" }, "devDependencies": { - "@types/lodash": "^4.14.195", - "rimraf": "^5.0.0" + "@types/lodash": "^4.17.7", + "rimraf": "^5.0.9" } } diff --git a/packages/common/src/errors.ts b/packages/dictionary/src/errors.ts similarity index 100% rename from packages/common/src/errors.ts rename to packages/dictionary/src/errors.ts diff --git a/packages/dictionary/src/index.ts b/packages/dictionary/src/index.ts index 27be2f78..f3ddde25 100644 --- a/packages/dictionary/src/index.ts +++ b/packages/dictionary/src/index.ts @@ -1,5 +1,26 @@ +/* + * Copyright (c) 2024 The Ontario Institute for Cancer Research. All rights reserved + * + * This program and the accompanying materials are made available under the terms of + * the GNU Affero General Public License v3.0. You should have received a copy of the + * GNU Affero General Public License along with this program. + * If not, see . + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + export * from './constants'; +export * from './errors'; export * as DiffUtils from './diff'; +export * from './metaSchema'; export * from './references'; export * from './types'; -export * as VersionUtils from './utils/version'; +export * from './utils'; diff --git a/packages/dictionary/src/types/dictionaryTypes.ts b/packages/dictionary/src/metaSchema/dictionarySchemas.ts similarity index 94% rename from packages/dictionary/src/types/dictionaryTypes.ts rename to packages/dictionary/src/metaSchema/dictionarySchemas.ts index 42885d1e..1e159b3d 100644 --- a/packages/dictionary/src/types/dictionaryTypes.ts +++ b/packages/dictionary/src/metaSchema/dictionarySchemas.ts @@ -19,8 +19,7 @@ import { z as zod } from 'zod'; import allUnique from '../utils/allUnique'; -import { NameString } from './commonTypes'; -import { ReferenceTag, References } from './referenceTypes'; +import { ReferenceTag, References } from './referenceSchemas'; import { RestrictionCodeListInteger, RestrictionCodeListNumber, @@ -29,7 +28,22 @@ import { RestrictionNumberRange, RestrictionRegex, RestrictionScript, -} from './restrictionsTypes'; +} from './restrictionsSchemas'; + +/** + * String rules for all name fields used in dictionary, including Dictionary, Schema, and Fields. + * This validates the format of the string since names are not allowed to have `.` characters. + * + * Example Values: + * - `donors` + * - `primary-site` + * - `maximumVelocity` + */ +export const NameValue = zod + .string() + .min(1, 'Name fields cannot be empty.') + .regex(/^[^.]+$/, 'Name fields cannot have `.` characters.'); +export type NameValue = zod.infer; // Meta accepts as values only strings, numbers, booleans, arrays of numbers or arrays of strings // Another Meta object can be nested inside a Meta property @@ -95,7 +109,7 @@ export type BooleanFieldRestrictions = zod.infer; export const Schema = zod .object({ - name: NameString, + name: NameValue, description: zod.string().optional(), fields: zod.array(SchemaField).min(1), meta: DictionaryMeta.optional(), restrictions: zod .object({ foreignKey: zod.array(ForeignKeyRestriction).min(1), - uniqueKey: zod.array(NameString).min(1), + uniqueKey: zod.array(NameValue).min(1), }) .partial() .optional(), diff --git a/packages/common/src/types/index.ts b/packages/dictionary/src/metaSchema/index.ts similarity index 86% rename from packages/common/src/types/index.ts rename to packages/dictionary/src/metaSchema/index.ts index bf51180f..cf7f5be9 100644 --- a/packages/common/src/types/index.ts +++ b/packages/dictionary/src/metaSchema/index.ts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 The Ontario Institute for Cancer Research. All rights reserved + * Copyright (c) 2024 The Ontario Institute for Cancer Research. All rights reserved * * This program and the accompanying materials are made available under the terms of * the GNU Affero General Public License v3.0. You should have received a copy of the @@ -17,7 +17,6 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -export * from './defined'; -export * from './generics'; -export * from './result'; -export * from './singular'; +export * from './dictionarySchemas'; +export * from './referenceSchemas'; +export * from './restrictionsSchemas'; diff --git a/packages/dictionary/src/types/referenceTypes.ts b/packages/dictionary/src/metaSchema/referenceSchemas.ts similarity index 100% rename from packages/dictionary/src/types/referenceTypes.ts rename to packages/dictionary/src/metaSchema/referenceSchemas.ts diff --git a/packages/dictionary/src/types/restrictionsTypes.ts b/packages/dictionary/src/metaSchema/restrictionsSchemas.ts similarity index 96% rename from packages/dictionary/src/types/restrictionsTypes.ts rename to packages/dictionary/src/metaSchema/restrictionsSchemas.ts index d4c7b4ce..f9835e4e 100644 --- a/packages/dictionary/src/types/restrictionsTypes.ts +++ b/packages/dictionary/src/metaSchema/restrictionsSchemas.ts @@ -18,9 +18,10 @@ */ import { z as zod } from 'zod'; -import { ReferenceTag } from './referenceTypes'; -import { Integer } from './commonTypes'; -import type { Values } from 'common'; +import { ReferenceTag } from './referenceSchemas'; +import type { Values } from '../types'; + +export const Integer = zod.number().int(); export const FieldRestrictionTypes = { codeList: 'codeList', diff --git a/packages/dictionary/src/references.ts b/packages/dictionary/src/references.ts index 35c48215..8c3a9df3 100644 --- a/packages/dictionary/src/references.ts +++ b/packages/dictionary/src/references.ts @@ -19,8 +19,8 @@ import * as immer from 'immer'; import { cloneDeep, get, isObject, omit } from 'lodash'; -import { Dictionary, ReferenceArray, ReferenceTag, ReferenceValue, References, Schema } from '.'; -import { InvalidReferenceError, asArray } from 'common'; +import { Dictionary, ReferenceArray, ReferenceTag, ReferenceValue, References, Schema, TypeUtils } from '.'; +import { InvalidReferenceError } from './errors'; // This is the union of all schema sections that could have reference values type OutputReferenceValues = ReferenceArray | ReferenceValue; @@ -83,23 +83,23 @@ const internalReplaceSchemaReferences = ( // All the checking for undefined prevents us from adding properties with value undefined into the field's ouput JSON case 'string': if (field.restrictions.codeList !== undefined) { - field.restrictions.codeList = asArray(resolveRestriction(field.restrictions.codeList)); + field.restrictions.codeList = TypeUtils.asArray(resolveRestriction(field.restrictions.codeList)); } if (field.restrictions.regex !== undefined) { field.restrictions.regex = resolveNoArrays(field.restrictions.regex, 'regex'); } if (field.restrictions.script !== undefined) { - field.restrictions.script = asArray(resolveRestriction(field.restrictions.script)); + field.restrictions.script = TypeUtils.asArray(resolveRestriction(field.restrictions.script)); } break; case 'number': if (field.restrictions.script !== undefined) { - field.restrictions.script = asArray(resolveRestriction(field.restrictions.script)); + field.restrictions.script = TypeUtils.asArray(resolveRestriction(field.restrictions.script)); } break; case 'integer': if (field.restrictions.script !== undefined) { - field.restrictions.script = asArray(resolveRestriction(field.restrictions.script)); + field.restrictions.script = TypeUtils.asArray(resolveRestriction(field.restrictions.script)); } break; case 'boolean': diff --git a/packages/dictionary/src/types/commonTypes.ts b/packages/dictionary/src/types/commonTypes.ts deleted file mode 100644 index bfaab913..00000000 --- a/packages/dictionary/src/types/commonTypes.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { z as zod } from 'zod'; - -export const Integer = zod.number().int(); - -/** - * String rules for all name fields used in dictionary, including Dictionary, Schema, and Fields. - * This validates the format of the string since names are not allowed to have `.` characters. - * - * Example Values: - * - `donors` - * - `primary-site` - * - `maximumVelocity` - */ -export const NameString = zod - .string() - .min(1, 'Name fields cannot be empty.') - .regex(/^[^.]+$/, 'Name fields cannot have `.` characters.'); -export type NameString = zod.infer; diff --git a/packages/dictionary/src/types/dataTypes.ts b/packages/dictionary/src/types/dataRecord.ts similarity index 98% rename from packages/dictionary/src/types/dataTypes.ts rename to packages/dictionary/src/types/dataRecord.ts index 917f4479..aba8842b 100644 --- a/packages/dictionary/src/types/dataTypes.ts +++ b/packages/dictionary/src/types/dataRecord.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { Singular } from 'common'; +import type { Singular } from '.'; /** * Represents a data record as taken from an input file. All values are the original strings and have not been validated into diff --git a/packages/common/src/types/defined.ts b/packages/dictionary/src/types/defined.ts similarity index 100% rename from packages/common/src/types/defined.ts rename to packages/dictionary/src/types/defined.ts diff --git a/packages/dictionary/src/types/diffTypes.ts b/packages/dictionary/src/types/diffTypes.ts index 976e3a44..77eeee55 100644 --- a/packages/dictionary/src/types/diffTypes.ts +++ b/packages/dictionary/src/types/diffTypes.ts @@ -18,7 +18,7 @@ */ import { z as zod } from 'zod'; -import { SchemaField } from './dictionaryTypes'; +import { SchemaField } from '../metaSchema'; export const ValueChangeTypeNames = { CREATED: 'created', diff --git a/packages/common/src/types/generics.ts b/packages/dictionary/src/types/generics.ts similarity index 100% rename from packages/common/src/types/generics.ts rename to packages/dictionary/src/types/generics.ts diff --git a/packages/dictionary/src/types/index.ts b/packages/dictionary/src/types/index.ts index 220663d2..b8e308fc 100644 --- a/packages/dictionary/src/types/index.ts +++ b/packages/dictionary/src/types/index.ts @@ -17,10 +17,9 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -export * from './commonTypes'; -export * from './dataTypes'; -export * from './dbTypes'; -export * from './dictionaryTypes'; +export * from './dataRecord'; +export * from './defined'; export * from './diffTypes'; -export * from './referenceTypes'; -export * from './restrictionsTypes'; +export * from './generics'; +export * from './result'; +export * from './singular'; diff --git a/packages/common/src/types/result.ts b/packages/dictionary/src/types/result.ts similarity index 100% rename from packages/common/src/types/result.ts rename to packages/dictionary/src/types/result.ts diff --git a/packages/common/src/types/singular.ts b/packages/dictionary/src/types/singular.ts similarity index 100% rename from packages/common/src/types/singular.ts rename to packages/dictionary/src/types/singular.ts diff --git a/packages/common/src/utils/index.ts b/packages/dictionary/src/utils/index.ts similarity index 88% rename from packages/common/src/utils/index.ts rename to packages/dictionary/src/utils/index.ts index 8bcd0f19..6b9e1806 100644 --- a/packages/common/src/utils/index.ts +++ b/packages/dictionary/src/utils/index.ts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 The Ontario Institute for Cancer Research. All rights reserved + * Copyright (c) 2024 The Ontario Institute for Cancer Research. All rights reserved * * This program and the accompanying materials are made available under the terms of * the GNU Affero General Public License v3.0. You should have received a copy of the @@ -18,4 +18,5 @@ */ export * from './stringUtils'; -export * from './typeUtils'; +export * as TypeUtils from './typeUtils'; +export * as VersionUtils from './versionUtils'; diff --git a/packages/dictionary/src/utils/schemaUtils.ts b/packages/dictionary/src/utils/schemaUtils.ts index 6c55fdf5..7f6b5208 100644 --- a/packages/dictionary/src/utils/schemaUtils.ts +++ b/packages/dictionary/src/utils/schemaUtils.ts @@ -1,4 +1,4 @@ -import { Schema, SchemaField } from 'types'; +import type { Schema, SchemaField } from '../metaSchema'; /** * Get an array of fields from this schema that have the required restriction set to true diff --git a/packages/common/src/utils/stringUtils.ts b/packages/dictionary/src/utils/stringUtils.ts similarity index 100% rename from packages/common/src/utils/stringUtils.ts rename to packages/dictionary/src/utils/stringUtils.ts diff --git a/packages/common/src/utils/typeUtils.ts b/packages/dictionary/src/utils/typeUtils.ts similarity index 100% rename from packages/common/src/utils/typeUtils.ts rename to packages/dictionary/src/utils/typeUtils.ts diff --git a/packages/dictionary/src/utils/version.ts b/packages/dictionary/src/utils/versionUtils.ts similarity index 97% rename from packages/dictionary/src/utils/version.ts rename to packages/dictionary/src/utils/versionUtils.ts index 65d038e6..925c3387 100644 --- a/packages/dictionary/src/utils/version.ts +++ b/packages/dictionary/src/utils/versionUtils.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { MalformedVersionError } from 'common'; +import { MalformedVersionError } from '../errors'; export const isValidVersion = (version: string): boolean => { return /^[0-9]+\.[0-9]+$/.test(version); diff --git a/packages/dictionary/test/dictionaryTypes.spec.ts b/packages/dictionary/test/dictionaryTypes.spec.ts index 560cada0..2637f8ad 100644 --- a/packages/dictionary/test/dictionaryTypes.spec.ts +++ b/packages/dictionary/test/dictionaryTypes.spec.ts @@ -24,7 +24,7 @@ import { DictionaryMeta, Integer, IntegerFieldRestrictions, - NameString, + NameValue, NumberFieldRestrictions, RestrictionIntegerRange, RestrictionNumberRange, @@ -35,22 +35,22 @@ import { } from '../src'; describe('Dictionary Types', () => { - describe('NameString', () => { + describe('NameValue', () => { it('Rejects empty string', () => { - expect(NameString.safeParse('').success).false; + expect(NameValue.safeParse('').success).false; }); it('Can be string', () => { - expect(NameString.safeParse('any').success).true; - expect(NameString.safeParse('123').success).true; - expect(NameString.safeParse('_').success).true; + expect(NameValue.safeParse('any').success).true; + expect(NameValue.safeParse('123').success).true; + expect(NameValue.safeParse('_').success).true; // NOTE: if we want to limit the property names we should explicitly declare those reules, right now all characters are valid and the strings dont have to start with a letter }); it("Can't contain a `.`", () => { - expect(NameString.safeParse('asdf.asdf').success).false; - expect(NameString.safeParse('.').success).false; - expect(NameString.safeParse('.asdf').success).false; - expect(NameString.safeParse('adsf.').success).false; - expect(NameString.safeParse('\\.').success).false; + expect(NameValue.safeParse('asdf.asdf').success).false; + expect(NameValue.safeParse('.').success).false; + expect(NameValue.safeParse('.asdf').success).false; + expect(NameValue.safeParse('adsf.').success).false; + expect(NameValue.safeParse('\\.').success).false; }); }); diff --git a/packages/validation/package.json b/packages/validation/package.json index 2ad15e36..05723425 100644 --- a/packages/validation/package.json +++ b/packages/validation/package.json @@ -1,6 +1,6 @@ { "name": "@overture-stack/lectern-validation", - "version": "0.1.0", + "version": "0.1.0-beta.1", "description": "Logic for validating data using a Lectern dictionary", "main": "dist/index.js", "scripts": { @@ -12,13 +12,12 @@ "author": "Ontario Institute for Cancer Research", "license": "AGPL-3.0", "dependencies": { - "common": "workspace:^", - "dictionary": "workspace:^", + "@overture-stack/lectern-dictionary": "workspace:^", "lodash": "^4.17.21", - "zod": "^3.21.4" + "zod": "^3.23.8" }, "devDependencies": { - "@types/lodash": "^4.14.195", - "rimraf": "^5.0.0" + "@types/lodash": "^4.17.7", + "rimraf": "^5.0.9" } } diff --git a/packages/validation/src/parseValues/ParseValuesResult.ts b/packages/validation/src/parseValues/ParseValuesResult.ts index c8b561a3..3d4e87ac 100644 --- a/packages/validation/src/parseValues/ParseValuesResult.ts +++ b/packages/validation/src/parseValues/ParseValuesResult.ts @@ -17,10 +17,9 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { DataRecord } from 'dictionary'; +import type { DataRecord, Result } from '@overture-stack/lectern-dictionary'; import type { RecordValidationErrorInvalidValue, RecordValidationErrorUnrecognizedField } from '../validateRecord'; import type { SchemaRecordError } from '../validateSchema'; -import type { Result } from 'common'; export type ParseFieldError = RecordValidationErrorInvalidValue | RecordValidationErrorUnrecognizedField; diff --git a/packages/validation/src/parseValues/matchCodeListFormatting.ts b/packages/validation/src/parseValues/matchCodeListFormatting.ts index 8b6d8602..72767463 100644 --- a/packages/validation/src/parseValues/matchCodeListFormatting.ts +++ b/packages/validation/src/parseValues/matchCodeListFormatting.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { SchemaField } from 'dictionary'; +import type { SchemaField } from '@overture-stack/lectern-dictionary'; /** * Given a string value, look for any matching values in code list restrictions and return that diff --git a/packages/validation/src/parseValues/parseValues.ts b/packages/validation/src/parseValues/parseValues.ts index b076dde4..0a3d2410 100644 --- a/packages/validation/src/parseValues/parseValues.ts +++ b/packages/validation/src/parseValues/parseValues.ts @@ -17,28 +17,30 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { failure, failWith, success, type Result } from 'common'; import { DEFAULT_DELIMITER, + failure, + failWith, + success, type ArrayDataValue, type DataRecord, type DataRecordValue, type Dictionary, - type RestrictionCodeListString, + type Result, type Schema, type SchemaField, type SchemaFieldValueType, type UnprocessedDataRecord, -} from 'dictionary'; +} from '@overture-stack/lectern-dictionary'; import { isInteger, isNumber } from '../utils/typeUtils'; import type { - ParseFieldError, ParseDictionaryData, ParseDictionaryFailure, ParseDictionaryResult, + ParseFieldError, ParseRecordResult, - ParseSchemaResult, ParseSchemaError, + ParseSchemaResult, } from './ParseValuesResult'; import { matchCodeListFormatting } from './matchCodeListFormatting'; diff --git a/packages/validation/src/utils/datasetUtils.ts b/packages/validation/src/utils/datasetUtils.ts index b757d454..1837c45b 100644 --- a/packages/validation/src/utils/datasetUtils.ts +++ b/packages/validation/src/utils/datasetUtils.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { DataRecord } from 'dictionary'; +import { DataRecord } from '@overture-stack/lectern-dictionary'; /** * Returns a string representation of a record. The record is sorted by its properties so diff --git a/packages/validation/src/utils/hashDataRecord.ts b/packages/validation/src/utils/hashDataRecord.ts index 346027c2..4c4dcd9b 100644 --- a/packages/validation/src/utils/hashDataRecord.ts +++ b/packages/validation/src/utils/hashDataRecord.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { DataRecord, DataRecordValue } from 'dictionary'; +import type { DataRecord, DataRecordValue } from '@overture-stack/lectern-dictionary'; /** * Create a unique string out of an arbitrary array of data record values. This can be used diff --git a/packages/validation/src/utils/isValidValueType.ts b/packages/validation/src/utils/isValidValueType.ts index 4e007066..f7c8bc6c 100644 --- a/packages/validation/src/utils/isValidValueType.ts +++ b/packages/validation/src/utils/isValidValueType.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { DataRecordValue, SchemaField } from 'dictionary'; +import type { DataRecordValue, SchemaField } from '@overture-stack/lectern-dictionary'; import { isBooleanArray, isInteger, isIntegerArray, isNumber, isNumberArray, isStringArray } from './typeUtils'; /** diff --git a/packages/validation/src/utils/isWithinRange.ts b/packages/validation/src/utils/isWithinRange.ts index 67e4947e..6f1c3671 100644 --- a/packages/validation/src/utils/isWithinRange.ts +++ b/packages/validation/src/utils/isWithinRange.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { RestrictionRange } from 'dictionary'; +import type { RestrictionRange } from '@overture-stack/lectern-dictionary'; /** * Test if a number is within a range. Returns true when the number is within the range. diff --git a/packages/validation/src/utils/rangeToText.ts b/packages/validation/src/utils/rangeToText.ts index afc8bcc5..d447361e 100644 --- a/packages/validation/src/utils/rangeToText.ts +++ b/packages/validation/src/utils/rangeToText.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { RestrictionRange } from 'dictionary'; +import { RestrictionRange } from '@overture-stack/lectern-dictionary'; /** * Convert a RestrictionRange object to a simple string representation. diff --git a/packages/validation/src/validateDictionary/collectSchemaReferenceData.ts b/packages/validation/src/validateDictionary/collectSchemaReferenceData.ts index 0ea6589a..7cae7ccc 100644 --- a/packages/validation/src/validateDictionary/collectSchemaReferenceData.ts +++ b/packages/validation/src/validateDictionary/collectSchemaReferenceData.ts @@ -17,8 +17,14 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { isDefined } from 'common'; -import type { DataRecord, DataRecordValue, Dictionary, ForeignKeyRestriction, Schema } from 'dictionary'; +import { + TypeUtils, + type DataRecord, + type DataRecordValue, + type Dictionary, + type ForeignKeyRestriction, + type Schema, +} from '@overture-stack/lectern-dictionary'; /** * This type alias is for a structure used to collect then lookup values from schemas. It is helpful @@ -94,7 +100,7 @@ export const collectSchemaReferenceData = ( .map((schema) => schema.restrictions?.foreignKey ? { schema, foreignKeyRestriction: schema.restrictions?.foreignKey } : undefined, ) - .filter(isDefined); + .filter(TypeUtils.isDefined); const foreignKeyMappings = schemasWithForeignKeyRestrictions.flatMap( ({ foreignKeyRestriction: foreignKeyMappings }) => foreignKeyMappings, diff --git a/packages/validation/src/validateDictionary/testForeignKeyRestriction.ts b/packages/validation/src/validateDictionary/testForeignKeyRestriction.ts index 2755c13c..bdcab4e3 100644 --- a/packages/validation/src/validateDictionary/testForeignKeyRestriction.ts +++ b/packages/validation/src/validateDictionary/testForeignKeyRestriction.ts @@ -17,11 +17,10 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { DataRecord, ForeignKeyRestriction } from 'dictionary'; +import { TypeUtils, type DataRecord, type ForeignKeyRestriction } from '@overture-stack/lectern-dictionary'; +import { invalid, valid, type TestResult } from '../types'; import type { SchemaDataReference } from './collectSchemaReferenceData'; import type { DictionaryValidationErrorRecordForeignKey } from './DictionaryValidationError'; -import { invalid, valid, type TestResult } from '../types'; -import { isDefined } from 'common'; /** * Test foreignKey restrictions on a single DataRecord, checked against a pre-calculated `foreignSchemaRefereceData` with the values @@ -70,7 +69,7 @@ export const testForeignKeyRestriction = ( fieldValue: localValue, }; }) - .filter(isDefined); + .filter(TypeUtils.isDefined); return foreignKeyErrors; }); diff --git a/packages/validation/src/validateDictionary/testUnrecognizedSchema.ts b/packages/validation/src/validateDictionary/testUnrecognizedSchema.ts index bd023629..6891433f 100644 --- a/packages/validation/src/validateDictionary/testUnrecognizedSchema.ts +++ b/packages/validation/src/validateDictionary/testUnrecognizedSchema.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { Dictionary } from 'dictionary'; +import type { Dictionary } from '@overture-stack/lectern-dictionary'; import { invalid, valid, type TestResult } from '../types'; import type { DictionaryValidationErrorUnrecognizedSchema } from './DictionaryValidationError'; diff --git a/packages/validation/src/validateDictionary/validateDictionary.ts b/packages/validation/src/validateDictionary/validateDictionary.ts index 81d2831c..e97ae7da 100644 --- a/packages/validation/src/validateDictionary/validateDictionary.ts +++ b/packages/validation/src/validateDictionary/validateDictionary.ts @@ -17,15 +17,14 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { isDefined } from 'common'; -import { DataRecord, Dictionary } from 'dictionary'; +import { DataRecord, Dictionary, TypeUtils } from '@overture-stack/lectern-dictionary'; import { invalid, valid, type TestResult } from '../types'; import { validateSchema, type SchemaRecordError } from '../validateSchema'; import { collectSchemaReferenceData } from './collectSchemaReferenceData'; import type { DictionaryValidationError, - DictionaryValidationRecordErrorDetails, DictionaryValidationErrorRecordForeignKey, + DictionaryValidationRecordErrorDetails, } from './DictionaryValidationError'; import { testForeignKeyRestriction } from './testForeignKeyRestriction'; import { testUnrecognizedSchema } from './testUnrecognizedSchema'; @@ -88,7 +87,7 @@ export const validateDictionary = ( recordErrors: foreignKeyTestResult.details, }; }) - .filter(isDefined) + .filter(TypeUtils.isDefined) : []; const combinedErrors = mergeSchemaRecordValidationErrors( schemaValidationResult.valid ? [] : schemaValidationResult.details, @@ -99,7 +98,7 @@ export const validateDictionary = ( ? { reason: 'INVALID_RECORDS', schemaName: schema.name, invalidRecords: combinedErrors } : undefined; }) - .filter(isDefined); + .filter(TypeUtils.isDefined); const collectedResults: DictionaryValidationError[] = [...unrecognizedSchemaErrors, ...recognizedSchemaErrors]; diff --git a/packages/validation/src/validateField/FieldRestrictionRule.ts b/packages/validation/src/validateField/FieldRestrictionRule.ts index 31b1acce..41117cb7 100644 --- a/packages/validation/src/validateField/FieldRestrictionRule.ts +++ b/packages/validation/src/validateField/FieldRestrictionRule.ts @@ -23,7 +23,7 @@ import type { RestrictionRange, RestrictionRegex, RestrictionScript, -} from 'dictionary'; +} from '@overture-stack/lectern-dictionary'; export type FieldRestrictionRuleCodeList = { type: typeof FieldRestrictionTypes.codeList; diff --git a/packages/validation/src/validateField/FieldRestrictionTest.ts b/packages/validation/src/validateField/FieldRestrictionTest.ts index 48a4bc47..743cb16c 100644 --- a/packages/validation/src/validateField/FieldRestrictionTest.ts +++ b/packages/validation/src/validateField/FieldRestrictionTest.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { ArrayDataValue, DataRecordValue, SingleDataValue } from 'dictionary'; +import type { ArrayDataValue, DataRecordValue, SingleDataValue } from '@overture-stack/lectern-dictionary'; import type { TestResult } from '../types'; export type RestrictionTestInvalidArrayItem = { diff --git a/packages/validation/src/validateField/FieldValidationError.ts b/packages/validation/src/validateField/FieldValidationError.ts index c1c83289..bc886530 100644 --- a/packages/validation/src/validateField/FieldValidationError.ts +++ b/packages/validation/src/validateField/FieldValidationError.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { SchemaFieldValueType } from 'dictionary'; +import type { SchemaFieldValueType } from '@overture-stack/lectern-dictionary'; import type { FieldRestrictionRule } from '../validateField/FieldRestrictionRule'; import type { RestrictionTestInvalidInfo } from '../validateField/FieldRestrictionTest'; diff --git a/packages/validation/src/validateField/resolveFieldRestrictions.ts b/packages/validation/src/validateField/resolveFieldRestrictions.ts index b8b4a540..1f6952ed 100644 --- a/packages/validation/src/validateField/resolveFieldRestrictions.ts +++ b/packages/validation/src/validateField/resolveFieldRestrictions.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { DataRecord, DataRecordValue, SchemaField } from 'dictionary'; +import type { DataRecord, DataRecordValue, SchemaField } from '@overture-stack/lectern-dictionary'; import type { FieldRestrictionRule } from './FieldRestrictionRule'; /** diff --git a/packages/validation/src/validateField/restrictions/createFieldRestrictionTestForArrays.ts b/packages/validation/src/validateField/restrictions/createFieldRestrictionTestForArrays.ts index a2a7e877..e09e1bc8 100644 --- a/packages/validation/src/validateField/restrictions/createFieldRestrictionTestForArrays.ts +++ b/packages/validation/src/validateField/restrictions/createFieldRestrictionTestForArrays.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { isDefined } from 'common'; +import { TypeUtils } from '@overture-stack/lectern-dictionary'; import { invalid, valid } from '../../types'; import type { FieldRestrictionArrayTestFunction, @@ -41,7 +41,7 @@ export const createFieldRestrictionTestForArrays = (rule, values) => { const invalidItems = values .map((value, position) => (test(rule, value).valid ? undefined : { position, value })) - .filter(isDefined); + .filter(TypeUtils.isDefined); if (invalidItems.length) { const message = typeof errorMessage === 'function' ? errorMessage(rule) : errorMessage; diff --git a/packages/validation/src/validateField/restrictions/testCodeList.ts b/packages/validation/src/validateField/restrictions/testCodeList.ts index d789bbaa..4d233a45 100644 --- a/packages/validation/src/validateField/restrictions/testCodeList.ts +++ b/packages/validation/src/validateField/restrictions/testCodeList.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { RestrictionCodeList } from 'dictionary'; +import type { RestrictionCodeList } from '@overture-stack/lectern-dictionary'; import { invalid, valid } from '../../types/testResult'; import type { FieldRestrictionSingleValueTestFunction, FieldRestrictionTestFunction } from '../FieldRestrictionTest'; import { createFieldRestrictionTestForArrays } from './createFieldRestrictionTestForArrays'; diff --git a/packages/validation/src/validateField/restrictions/testRange.ts b/packages/validation/src/validateField/restrictions/testRange.ts index 1a7eaf60..5f883581 100644 --- a/packages/validation/src/validateField/restrictions/testRange.ts +++ b/packages/validation/src/validateField/restrictions/testRange.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { RestrictionRange } from 'dictionary'; +import { RestrictionRange } from '@overture-stack/lectern-dictionary'; import { invalid, valid } from '../../types/testResult'; import { isWithinRange } from '../../utils/isWithinRange'; import type { FieldRestrictionSingleValueTestFunction, FieldRestrictionTestFunction } from '../FieldRestrictionTest'; diff --git a/packages/validation/src/validateField/restrictions/testRegex.ts b/packages/validation/src/validateField/restrictions/testRegex.ts index 20e3f05b..4681b22d 100644 --- a/packages/validation/src/validateField/restrictions/testRegex.ts +++ b/packages/validation/src/validateField/restrictions/testRegex.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { type RestrictionRegex } from 'dictionary'; +import { type RestrictionRegex } from '@overture-stack/lectern-dictionary'; import { invalid, valid } from '../../types/testResult'; import type { FieldRestrictionSingleValueTestFunction, FieldRestrictionTestFunction } from '../FieldRestrictionTest'; import { createFieldRestrictionTestForArrays } from './createFieldRestrictionTestForArrays'; diff --git a/packages/validation/src/validateField/restrictions/testRequired.ts b/packages/validation/src/validateField/restrictions/testRequired.ts index b4556c52..63c51576 100644 --- a/packages/validation/src/validateField/restrictions/testRequired.ts +++ b/packages/validation/src/validateField/restrictions/testRequired.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { type ArrayDataValue } from 'dictionary'; +import { type ArrayDataValue } from '@overture-stack/lectern-dictionary'; import { invalid, valid, type TestResult } from '../../types/testResult'; import type { FieldRestrictionSingleValueTestFunction, diff --git a/packages/validation/src/validateField/validateField.ts b/packages/validation/src/validateField/validateField.ts index 3929de8d..11823f40 100644 --- a/packages/validation/src/validateField/validateField.ts +++ b/packages/validation/src/validateField/validateField.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { DataRecord, DataRecordValue, SchemaField } from 'dictionary'; +import type { DataRecord, DataRecordValue, SchemaField } from '@overture-stack/lectern-dictionary'; import { invalid, valid, type TestResult } from '../types'; import { isValidValueType } from '../utils/isValidValueType'; import type { FieldRestrictionRule } from './FieldRestrictionRule'; diff --git a/packages/validation/src/validateRecord/RecordValidationError.ts b/packages/validation/src/validateRecord/RecordValidationError.ts index ff6d409e..c3e49234 100644 --- a/packages/validation/src/validateRecord/RecordValidationError.ts +++ b/packages/validation/src/validateRecord/RecordValidationError.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { DataRecordValue } from 'dictionary'; +import type { DataRecordValue } from '@overture-stack/lectern-dictionary'; import type { FieldValidationErrorRestrictions, FieldValidationErrorValueType, diff --git a/packages/validation/src/validateRecord/validateRecord.ts b/packages/validation/src/validateRecord/validateRecord.ts index cd29d87a..57577ef2 100644 --- a/packages/validation/src/validateRecord/validateRecord.ts +++ b/packages/validation/src/validateRecord/validateRecord.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { DataRecord, Schema } from 'dictionary'; +import type { DataRecord, Schema } from '@overture-stack/lectern-dictionary'; import { validateField } from '../validateField/validateField'; import { invalid, valid, type TestResult } from '../types'; import type { diff --git a/packages/validation/src/validateSchema/SchemaValidationError.ts b/packages/validation/src/validateSchema/SchemaValidationError.ts index fa556dff..7cdb9b01 100644 --- a/packages/validation/src/validateSchema/SchemaValidationError.ts +++ b/packages/validation/src/validateSchema/SchemaValidationError.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { DataRecord } from 'dictionary'; +import type { DataRecord } from '@overture-stack/lectern-dictionary'; import type { RecordValidationError, FieldDetails } from '../validateRecord'; export type SchemaValidationRecordErrorUniqueKey = { diff --git a/packages/validation/src/validateSchema/restrictions/generateDataSetHashMap.ts b/packages/validation/src/validateSchema/restrictions/generateDataSetHashMap.ts index 990da9f3..fe596e3b 100644 --- a/packages/validation/src/validateSchema/restrictions/generateDataSetHashMap.ts +++ b/packages/validation/src/validateSchema/restrictions/generateDataSetHashMap.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { DataRecord } from 'dictionary'; +import type { DataRecord } from '@overture-stack/lectern-dictionary'; import { hashDataRecord } from '../../utils/hashDataRecord'; import { getUniqueKeyValues } from './uniqueKey/getUniqueKeyValues'; diff --git a/packages/validation/src/validateSchema/restrictions/uniqueField/testUniqueFieldRestriction.ts b/packages/validation/src/validateSchema/restrictions/uniqueField/testUniqueFieldRestriction.ts index 32189b12..f466710f 100644 --- a/packages/validation/src/validateSchema/restrictions/uniqueField/testUniqueFieldRestriction.ts +++ b/packages/validation/src/validateSchema/restrictions/uniqueField/testUniqueFieldRestriction.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { DataRecordValue } from 'dictionary'; +import type { DataRecordValue } from '@overture-stack/lectern-dictionary'; import { invalid, valid, type TestResult } from '../../../types'; import { hashDataRecord } from '../../../utils/hashDataRecord'; import type { SchemaValidationRecordErrorUnique } from '../../SchemaValidationError'; diff --git a/packages/validation/src/validateSchema/restrictions/uniqueKey/getUniqueKeyValues.ts b/packages/validation/src/validateSchema/restrictions/uniqueKey/getUniqueKeyValues.ts index 1d16dea6..49a8538e 100644 --- a/packages/validation/src/validateSchema/restrictions/uniqueKey/getUniqueKeyValues.ts +++ b/packages/validation/src/validateSchema/restrictions/uniqueKey/getUniqueKeyValues.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { DataRecord } from 'dictionary'; +import type { DataRecord } from '@overture-stack/lectern-dictionary'; /** * Extract from a data record an object with only the unique key field values. * @param record diff --git a/packages/validation/src/validateSchema/restrictions/uniqueKey/testUniqueKey.ts b/packages/validation/src/validateSchema/restrictions/uniqueKey/testUniqueKey.ts index 87c467a9..8ab22608 100644 --- a/packages/validation/src/validateSchema/restrictions/uniqueKey/testUniqueKey.ts +++ b/packages/validation/src/validateSchema/restrictions/uniqueKey/testUniqueKey.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { DataRecord, Schema, SchemaField } from 'dictionary'; +import type { DataRecord, Schema, SchemaField } from '@overture-stack/lectern-dictionary'; import type { SchemaValidationRecordErrorUniqueKey } from '../../SchemaValidationError'; import { invalid, valid, type TestResult } from '../../../types'; import { hashDataRecord } from '../../../utils/hashDataRecord'; diff --git a/packages/validation/src/validateSchema/validateSchema.ts b/packages/validation/src/validateSchema/validateSchema.ts index 594b3e28..96a0831c 100644 --- a/packages/validation/src/validateSchema/validateSchema.ts +++ b/packages/validation/src/validateSchema/validateSchema.ts @@ -17,14 +17,14 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { DataRecord, Schema } from 'dictionary'; +import type { DataRecord, Schema } from '@overture-stack/lectern-dictionary'; +import { TypeUtils } from '@overture-stack/lectern-dictionary'; import { invalid, valid, type TestResult } from '../types'; -import type { SchemaValidationError, SchemaValidationRecordErrorDetails } from './SchemaValidationError'; import { validateRecord } from '../validateRecord'; import { generateDataSetHashMap } from './restrictions/generateDataSetHashMap'; -import { testUniqueKey } from './restrictions/uniqueKey/testUniqueKey'; -import { isDefined } from 'common'; import { testUniqueFieldRestriction } from './restrictions/uniqueField/testUniqueFieldRestriction'; +import { testUniqueKey } from './restrictions/uniqueKey/testUniqueKey'; +import type { SchemaValidationError, SchemaValidationRecordErrorDetails } from './SchemaValidationError'; /** * Validate a data set using a Lectern Schema. The data to validate is an array of DataRecords that contains all @@ -82,6 +82,6 @@ export const validateSchema = (records: Array, schema: Schema): Test } return recordErrors.length ? { recordIndex, recordErrors } : undefined; }) - .filter(isDefined); + .filter(TypeUtils.isDefined); return schemaValidationErrors.length ? invalid(schemaValidationErrors) : valid(); }; diff --git a/packages/validation/test/fixtures/dictionaries/dictionaryFourSchemas.ts b/packages/validation/test/fixtures/dictionaries/dictionaryFourSchemas.ts index 991c7157..2b114b2b 100644 --- a/packages/validation/test/fixtures/dictionaries/dictionaryFourSchemas.ts +++ b/packages/validation/test/fixtures/dictionaries/dictionaryFourSchemas.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { Dictionary } from 'dictionary'; +import { Dictionary } from '@overture-stack/lectern-dictionary'; import { validateFixture } from '../../testUtils/validateFixture'; import { schemaSingleString } from '../schema/schemaSingleString'; import { schemaAllDataTypes } from '../schema/schemaAllDataTypes'; diff --git a/packages/validation/test/fixtures/dictionaries/dictionaryMultipleSchemasNoRestrictions.ts b/packages/validation/test/fixtures/dictionaries/dictionaryMultipleSchemasNoRestrictions.ts index 662e1e03..d7854714 100644 --- a/packages/validation/test/fixtures/dictionaries/dictionaryMultipleSchemasNoRestrictions.ts +++ b/packages/validation/test/fixtures/dictionaries/dictionaryMultipleSchemasNoRestrictions.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import { Dictionary } from 'dictionary'; +import { Dictionary } from '@overture-stack/lectern-dictionary'; import { validateFixture } from '../../testUtils/validateFixture'; import { schemaSingleString } from '../schema/schemaSingleString'; import { schemaAllDataTypes } from '../schema/schemaAllDataTypes'; diff --git a/packages/validation/test/fixtures/dictionaries/dictionarySingleSchemaNoRestrictions.ts b/packages/validation/test/fixtures/dictionaries/dictionarySingleSchemaNoRestrictions.ts index b933953d..a7bf7608 100644 --- a/packages/validation/test/fixtures/dictionaries/dictionarySingleSchemaNoRestrictions.ts +++ b/packages/validation/test/fixtures/dictionaries/dictionarySingleSchemaNoRestrictions.ts @@ -1,4 +1,4 @@ -import { Dictionary } from 'dictionary'; +import { Dictionary } from '@overture-stack/lectern-dictionary'; import { validateFixture } from '../../testUtils/validateFixture'; import { schemaSingleString } from '../schema/schemaSingleString'; diff --git a/packages/validation/test/fixtures/dictionaries/dictionarySingleSchemaRequiredRestrictions.ts b/packages/validation/test/fixtures/dictionaries/dictionarySingleSchemaRequiredRestrictions.ts index 9b25ddca..e76e01a9 100644 --- a/packages/validation/test/fixtures/dictionaries/dictionarySingleSchemaRequiredRestrictions.ts +++ b/packages/validation/test/fixtures/dictionaries/dictionarySingleSchemaRequiredRestrictions.ts @@ -1,4 +1,4 @@ -import { Dictionary } from 'dictionary'; +import { Dictionary } from '@overture-stack/lectern-dictionary'; import { validateFixture } from '../../testUtils/validateFixture'; import { schemaAllDataTypesRequired } from '../schema/schemaAllDataTypesRequired'; diff --git a/packages/validation/test/fixtures/dictionaries/dictionarySingleSchemaUniqueKeyRestriction.ts b/packages/validation/test/fixtures/dictionaries/dictionarySingleSchemaUniqueKeyRestriction.ts index 094ee028..40913dd2 100644 --- a/packages/validation/test/fixtures/dictionaries/dictionarySingleSchemaUniqueKeyRestriction.ts +++ b/packages/validation/test/fixtures/dictionaries/dictionarySingleSchemaUniqueKeyRestriction.ts @@ -1,4 +1,4 @@ -import { Dictionary } from 'dictionary'; +import { Dictionary } from '@overture-stack/lectern-dictionary'; import { validateFixture } from '../../testUtils/validateFixture'; import { schemaUniqueKey } from '../schema/schemaUniqueKey'; diff --git a/packages/validation/test/fixtures/dictionaries/foreignKey/dictionaryForeignKeyMultiple.ts b/packages/validation/test/fixtures/dictionaries/foreignKey/dictionaryForeignKeyMultiple.ts index 7ecdd049..9dabdb00 100644 --- a/packages/validation/test/fixtures/dictionaries/foreignKey/dictionaryForeignKeyMultiple.ts +++ b/packages/validation/test/fixtures/dictionaries/foreignKey/dictionaryForeignKeyMultiple.ts @@ -1,4 +1,4 @@ -import { Dictionary, Schema } from 'dictionary'; +import { Dictionary, Schema } from '@overture-stack/lectern-dictionary'; import { validateFixture } from '../../../testUtils/validateFixture'; import { schemaAllDataTypes } from '../../schema/schemaAllDataTypes'; import { schemaSingleString } from '../../schema/schemaSingleString'; diff --git a/packages/validation/test/fixtures/dictionaries/foreignKey/dictionaryForeignKeySimple.ts b/packages/validation/test/fixtures/dictionaries/foreignKey/dictionaryForeignKeySimple.ts index 558e9e51..57ab5f55 100644 --- a/packages/validation/test/fixtures/dictionaries/foreignKey/dictionaryForeignKeySimple.ts +++ b/packages/validation/test/fixtures/dictionaries/foreignKey/dictionaryForeignKeySimple.ts @@ -1,4 +1,4 @@ -import { Dictionary, Schema } from 'dictionary'; +import { Dictionary, Schema } from '@overture-stack/lectern-dictionary'; import { validateFixture } from '../../../testUtils/validateFixture'; import { schemaAllDataTypes } from '../../schema/schemaAllDataTypes'; diff --git a/packages/validation/test/fixtures/fields/multipleRestrictions/fieldStringManyRestrictions.ts b/packages/validation/test/fixtures/fields/multipleRestrictions/fieldStringManyRestrictions.ts index f057da8b..789858a4 100644 --- a/packages/validation/test/fixtures/fields/multipleRestrictions/fieldStringManyRestrictions.ts +++ b/packages/validation/test/fixtures/fields/multipleRestrictions/fieldStringManyRestrictions.ts @@ -1,4 +1,4 @@ -import type { SchemaStringField } from 'dictionary'; +import type { SchemaStringField } from '@overture-stack/lectern-dictionary'; import { regexYearMonthDay } from '../../restrictions/regexFixtures'; export const fieldStringManyRestrictions = { diff --git a/packages/validation/test/fixtures/fields/noRestrictions/fieldBooleanNoRestriction.ts b/packages/validation/test/fixtures/fields/noRestrictions/fieldBooleanNoRestriction.ts index 825a75a3..db3bdfd6 100644 --- a/packages/validation/test/fixtures/fields/noRestrictions/fieldBooleanNoRestriction.ts +++ b/packages/validation/test/fixtures/fields/noRestrictions/fieldBooleanNoRestriction.ts @@ -1,4 +1,4 @@ -import type { SchemaBooleanField } from 'dictionary'; +import type { SchemaBooleanField } from '@overture-stack/lectern-dictionary'; export const fieldBooleanNoRestriction = { name: 'any-boolean', diff --git a/packages/validation/test/fixtures/fields/noRestrictions/fieldIntegerNoRestriction.ts b/packages/validation/test/fixtures/fields/noRestrictions/fieldIntegerNoRestriction.ts index 6c4a66be..3a6cfeb8 100644 --- a/packages/validation/test/fixtures/fields/noRestrictions/fieldIntegerNoRestriction.ts +++ b/packages/validation/test/fixtures/fields/noRestrictions/fieldIntegerNoRestriction.ts @@ -1,4 +1,4 @@ -import type { SchemaIntegerField } from 'dictionary'; +import type { SchemaIntegerField } from '@overture-stack/lectern-dictionary'; export const fieldIntegerNoRestriction = { name: 'any-integer', diff --git a/packages/validation/test/fixtures/fields/noRestrictions/fieldNumberNoRestriction.ts b/packages/validation/test/fixtures/fields/noRestrictions/fieldNumberNoRestriction.ts index 824e5852..c2f7c06c 100644 --- a/packages/validation/test/fixtures/fields/noRestrictions/fieldNumberNoRestriction.ts +++ b/packages/validation/test/fixtures/fields/noRestrictions/fieldNumberNoRestriction.ts @@ -1,4 +1,4 @@ -import type { SchemaNumberField } from 'dictionary'; +import type { SchemaNumberField } from '@overture-stack/lectern-dictionary'; export const fieldNumberNoRestriction = { name: 'any-number', diff --git a/packages/validation/test/fixtures/fields/noRestrictions/fieldStringArrayNoRestriction.ts b/packages/validation/test/fixtures/fields/noRestrictions/fieldStringArrayNoRestriction.ts index 1d7098ef..b1b954d4 100644 --- a/packages/validation/test/fixtures/fields/noRestrictions/fieldStringArrayNoRestriction.ts +++ b/packages/validation/test/fixtures/fields/noRestrictions/fieldStringArrayNoRestriction.ts @@ -1,4 +1,4 @@ -import type { SchemaStringField } from 'dictionary'; +import type { SchemaStringField } from '@overture-stack/lectern-dictionary'; export const fieldStringArrayNoRestriction = { name: 'any-string-array', diff --git a/packages/validation/test/fixtures/fields/noRestrictions/fieldStringNoRestriction.ts b/packages/validation/test/fixtures/fields/noRestrictions/fieldStringNoRestriction.ts index 96cc975f..669ff2f4 100644 --- a/packages/validation/test/fixtures/fields/noRestrictions/fieldStringNoRestriction.ts +++ b/packages/validation/test/fixtures/fields/noRestrictions/fieldStringNoRestriction.ts @@ -1,4 +1,4 @@ -import type { SchemaStringField } from 'dictionary'; +import type { SchemaStringField } from '@overture-stack/lectern-dictionary'; export const fieldStringNoRestriction = { name: 'any-string', diff --git a/packages/validation/test/fixtures/fields/schemaRestrictions/fieldStringUnique.ts b/packages/validation/test/fixtures/fields/schemaRestrictions/fieldStringUnique.ts index b8c6d82c..364b358b 100644 --- a/packages/validation/test/fixtures/fields/schemaRestrictions/fieldStringUnique.ts +++ b/packages/validation/test/fixtures/fields/schemaRestrictions/fieldStringUnique.ts @@ -1,4 +1,4 @@ -import type { SchemaStringField } from 'dictionary'; +import type { SchemaStringField } from '@overture-stack/lectern-dictionary'; export const fieldStringUnique = { name: 'unique-string', diff --git a/packages/validation/test/fixtures/fields/schemaRestrictions/fieldStringUniqueArray.ts b/packages/validation/test/fixtures/fields/schemaRestrictions/fieldStringUniqueArray.ts index c652d820..3b486aac 100644 --- a/packages/validation/test/fixtures/fields/schemaRestrictions/fieldStringUniqueArray.ts +++ b/packages/validation/test/fixtures/fields/schemaRestrictions/fieldStringUniqueArray.ts @@ -1,4 +1,4 @@ -import type { SchemaStringField } from 'dictionary'; +import type { SchemaStringField } from '@overture-stack/lectern-dictionary'; export const fieldStringUniqueArray = { name: 'unique-string-array', diff --git a/packages/validation/test/fixtures/fields/simpleRestrictions/boolean/fieldBooleanArrayRequired.ts b/packages/validation/test/fixtures/fields/simpleRestrictions/boolean/fieldBooleanArrayRequired.ts index b85e03e1..0fa999f2 100644 --- a/packages/validation/test/fixtures/fields/simpleRestrictions/boolean/fieldBooleanArrayRequired.ts +++ b/packages/validation/test/fixtures/fields/simpleRestrictions/boolean/fieldBooleanArrayRequired.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { SchemaBooleanField } from 'dictionary'; +import type { SchemaBooleanField } from '@overture-stack/lectern-dictionary'; export const fieldBooleanArrayRequired = { name: 'boolean-array-required', diff --git a/packages/validation/test/fixtures/fields/simpleRestrictions/boolean/fieldBooleanRequired.ts b/packages/validation/test/fixtures/fields/simpleRestrictions/boolean/fieldBooleanRequired.ts index 88f87929..eada2ffb 100644 --- a/packages/validation/test/fixtures/fields/simpleRestrictions/boolean/fieldBooleanRequired.ts +++ b/packages/validation/test/fixtures/fields/simpleRestrictions/boolean/fieldBooleanRequired.ts @@ -1,4 +1,4 @@ -import type { SchemaBooleanField } from 'dictionary'; +import type { SchemaBooleanField } from '@overture-stack/lectern-dictionary'; export const fieldBooleanRequired = { name: 'boolean-required', diff --git a/packages/validation/test/fixtures/fields/simpleRestrictions/integer/fieldIntegerArrayRequired.ts b/packages/validation/test/fixtures/fields/simpleRestrictions/integer/fieldIntegerArrayRequired.ts index c08c82f7..a6cfe4ee 100644 --- a/packages/validation/test/fixtures/fields/simpleRestrictions/integer/fieldIntegerArrayRequired.ts +++ b/packages/validation/test/fixtures/fields/simpleRestrictions/integer/fieldIntegerArrayRequired.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { SchemaIntegerField } from 'dictionary'; +import type { SchemaIntegerField } from '@overture-stack/lectern-dictionary'; export const fieldIntegerArrayRequired = { name: 'integer-array-required', diff --git a/packages/validation/test/fixtures/fields/simpleRestrictions/integer/fieldIntegerRequired.ts b/packages/validation/test/fixtures/fields/simpleRestrictions/integer/fieldIntegerRequired.ts index 8459948b..13b345a9 100644 --- a/packages/validation/test/fixtures/fields/simpleRestrictions/integer/fieldIntegerRequired.ts +++ b/packages/validation/test/fixtures/fields/simpleRestrictions/integer/fieldIntegerRequired.ts @@ -1,4 +1,4 @@ -import type { SchemaIntegerField } from 'dictionary'; +import type { SchemaIntegerField } from '@overture-stack/lectern-dictionary'; export const fieldIntegerRequired = { name: 'integer-required', diff --git a/packages/validation/test/fixtures/fields/simpleRestrictions/number/fieldNumberArrayCodeList.ts b/packages/validation/test/fixtures/fields/simpleRestrictions/number/fieldNumberArrayCodeList.ts index a1edbdc9..97124e73 100644 --- a/packages/validation/test/fixtures/fields/simpleRestrictions/number/fieldNumberArrayCodeList.ts +++ b/packages/validation/test/fixtures/fields/simpleRestrictions/number/fieldNumberArrayCodeList.ts @@ -1,4 +1,4 @@ -import type { SchemaNumberField } from 'dictionary'; +import type { SchemaNumberField } from '@overture-stack/lectern-dictionary'; import { codeListNumber } from '../../../restrictions/codeListsFixtures'; export const fieldNumberArrayCodeList = { diff --git a/packages/validation/test/fixtures/fields/simpleRestrictions/number/fieldNumberRange.ts b/packages/validation/test/fixtures/fields/simpleRestrictions/number/fieldNumberRange.ts index a5e65cd5..6797eee1 100644 --- a/packages/validation/test/fixtures/fields/simpleRestrictions/number/fieldNumberRange.ts +++ b/packages/validation/test/fixtures/fields/simpleRestrictions/number/fieldNumberRange.ts @@ -1,4 +1,4 @@ -import type { SchemaNumberField } from 'dictionary'; +import type { SchemaNumberField } from '@overture-stack/lectern-dictionary'; import { rangePercent } from '../../../restrictions/rangeFixtures'; export const fieldNumberRange = { diff --git a/packages/validation/test/fixtures/fields/simpleRestrictions/number/fieldNumberRequired.ts b/packages/validation/test/fixtures/fields/simpleRestrictions/number/fieldNumberRequired.ts index ea4b052c..aaedc316 100644 --- a/packages/validation/test/fixtures/fields/simpleRestrictions/number/fieldNumberRequired.ts +++ b/packages/validation/test/fixtures/fields/simpleRestrictions/number/fieldNumberRequired.ts @@ -1,4 +1,4 @@ -import type { SchemaNumberField } from 'dictionary'; +import type { SchemaNumberField } from '@overture-stack/lectern-dictionary'; export const fieldNumberRequired = { name: 'number-required', diff --git a/packages/validation/test/fixtures/fields/simpleRestrictions/string/fieldStringArrayCodeList.ts b/packages/validation/test/fixtures/fields/simpleRestrictions/string/fieldStringArrayCodeList.ts index 48b04c78..04b9a1b9 100644 --- a/packages/validation/test/fixtures/fields/simpleRestrictions/string/fieldStringArrayCodeList.ts +++ b/packages/validation/test/fixtures/fields/simpleRestrictions/string/fieldStringArrayCodeList.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { SchemaStringField } from 'dictionary'; +import type { SchemaStringField } from '@overture-stack/lectern-dictionary'; import { codeListString } from '../../../restrictions/codeListsFixtures'; export const fieldStringArrayCodeList = { diff --git a/packages/validation/test/fixtures/fields/simpleRestrictions/string/fieldStringArrayRequired.ts b/packages/validation/test/fixtures/fields/simpleRestrictions/string/fieldStringArrayRequired.ts index 9873a584..0a59f342 100644 --- a/packages/validation/test/fixtures/fields/simpleRestrictions/string/fieldStringArrayRequired.ts +++ b/packages/validation/test/fixtures/fields/simpleRestrictions/string/fieldStringArrayRequired.ts @@ -1,4 +1,4 @@ -import type { SchemaStringField } from 'dictionary'; +import type { SchemaStringField } from '@overture-stack/lectern-dictionary'; export const fieldStringArrayRequired = { name: 'string-array-required', diff --git a/packages/validation/test/fixtures/fields/simpleRestrictions/string/fieldStringCodeList.ts b/packages/validation/test/fixtures/fields/simpleRestrictions/string/fieldStringCodeList.ts index 0839f9c2..859517e0 100644 --- a/packages/validation/test/fixtures/fields/simpleRestrictions/string/fieldStringCodeList.ts +++ b/packages/validation/test/fixtures/fields/simpleRestrictions/string/fieldStringCodeList.ts @@ -1,4 +1,4 @@ -import type { SchemaStringField } from 'dictionary'; +import type { SchemaStringField } from '@overture-stack/lectern-dictionary'; import { codeListString } from '../../../restrictions/codeListsFixtures'; export const fieldStringCodeList = { diff --git a/packages/validation/test/fixtures/fields/simpleRestrictions/string/fieldStringRegex.ts b/packages/validation/test/fixtures/fields/simpleRestrictions/string/fieldStringRegex.ts index 52cdc905..ecc25fb8 100644 --- a/packages/validation/test/fixtures/fields/simpleRestrictions/string/fieldStringRegex.ts +++ b/packages/validation/test/fixtures/fields/simpleRestrictions/string/fieldStringRegex.ts @@ -1,4 +1,4 @@ -import type { SchemaStringField } from 'dictionary'; +import type { SchemaStringField } from '@overture-stack/lectern-dictionary'; import { regexYearMonthDay } from '../../../restrictions/regexFixtures'; export const fieldStringRegex = { diff --git a/packages/validation/test/fixtures/fields/simpleRestrictions/string/fieldStringRequired.ts b/packages/validation/test/fixtures/fields/simpleRestrictions/string/fieldStringRequired.ts index 9b2d1ca3..58b417c1 100644 --- a/packages/validation/test/fixtures/fields/simpleRestrictions/string/fieldStringRequired.ts +++ b/packages/validation/test/fixtures/fields/simpleRestrictions/string/fieldStringRequired.ts @@ -1,4 +1,4 @@ -import type { SchemaStringField } from 'dictionary'; +import type { SchemaStringField } from '@overture-stack/lectern-dictionary'; export const fieldStringRequired = { name: 'string-required', diff --git a/packages/validation/test/fixtures/restrictions/codeListsFixtures.ts b/packages/validation/test/fixtures/restrictions/codeListsFixtures.ts index 36cd8ed2..654856b8 100644 --- a/packages/validation/test/fixtures/restrictions/codeListsFixtures.ts +++ b/packages/validation/test/fixtures/restrictions/codeListsFixtures.ts @@ -1,4 +1,8 @@ -import type { RestrictionCodeListInteger, RestrictionCodeListNumber, RestrictionCodeListString } from 'dictionary'; +import type { + RestrictionCodeListInteger, + RestrictionCodeListNumber, + RestrictionCodeListString, +} from '@overture-stack/lectern-dictionary'; export const codeListString: RestrictionCodeListString = ['Apple ', ' Banana', ' Carrot ', 'Donut']; // Food, extra whitespace on items in order to test that matching is being trimmed. export const codeListInteger: RestrictionCodeListInteger = [1, 1, 2, 3, 5, 8, 13, 24]; // Fibonacci diff --git a/packages/validation/test/fixtures/restrictions/rangeFixtures.ts b/packages/validation/test/fixtures/restrictions/rangeFixtures.ts index c90dc14a..4876e3b2 100644 --- a/packages/validation/test/fixtures/restrictions/rangeFixtures.ts +++ b/packages/validation/test/fixtures/restrictions/rangeFixtures.ts @@ -1,4 +1,4 @@ -import type { RestrictionRange } from 'dictionary'; +import type { RestrictionRange } from '@overture-stack/lectern-dictionary'; export const rangePercent: RestrictionRange = { max: 100, diff --git a/packages/validation/test/fixtures/restrictions/regexFixtures.ts b/packages/validation/test/fixtures/restrictions/regexFixtures.ts index c896d345..61b9178f 100644 --- a/packages/validation/test/fixtures/restrictions/regexFixtures.ts +++ b/packages/validation/test/fixtures/restrictions/regexFixtures.ts @@ -1,4 +1,4 @@ -import type { RestrictionRegex } from 'dictionary'; +import type { RestrictionRegex } from '@overture-stack/lectern-dictionary'; export const regexYearMonthDay: RestrictionRegex = '^([12]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01]))$'; // Example: "1999-01-31" export const regexMTGMana: RestrictionRegex = diff --git a/packages/validation/test/fixtures/schema/schemaAllDataMixedRestrictions.ts b/packages/validation/test/fixtures/schema/schemaAllDataMixedRestrictions.ts index 4f676468..731a06d6 100644 --- a/packages/validation/test/fixtures/schema/schemaAllDataMixedRestrictions.ts +++ b/packages/validation/test/fixtures/schema/schemaAllDataMixedRestrictions.ts @@ -1,4 +1,4 @@ -import { Schema } from 'dictionary'; +import { Schema } from '@overture-stack/lectern-dictionary'; import { fieldStringManyRestrictions } from '../fields/multipleRestrictions/fieldStringManyRestrictions'; import { fieldBooleanNoRestriction } from '../fields/noRestrictions/fieldBooleanNoRestriction'; import { fieldIntegerRequired } from '../fields/simpleRestrictions/integer/fieldIntegerRequired'; diff --git a/packages/validation/test/fixtures/schema/schemaAllDataTypes.ts b/packages/validation/test/fixtures/schema/schemaAllDataTypes.ts index 98e3e733..51ca40b0 100644 --- a/packages/validation/test/fixtures/schema/schemaAllDataTypes.ts +++ b/packages/validation/test/fixtures/schema/schemaAllDataTypes.ts @@ -1,4 +1,4 @@ -import { Schema } from 'dictionary'; +import { Schema } from '@overture-stack/lectern-dictionary'; import { fieldBooleanNoRestriction } from '../fields/noRestrictions/fieldBooleanNoRestriction'; import { fieldIntegerNoRestriction } from '../fields/noRestrictions/fieldIntegerNoRestriction'; import { fieldNumberNoRestriction } from '../fields/noRestrictions/fieldNumberNoRestriction'; diff --git a/packages/validation/test/fixtures/schema/schemaAllDataTypesRequired.ts b/packages/validation/test/fixtures/schema/schemaAllDataTypesRequired.ts index b29d08fd..272cc947 100644 --- a/packages/validation/test/fixtures/schema/schemaAllDataTypesRequired.ts +++ b/packages/validation/test/fixtures/schema/schemaAllDataTypesRequired.ts @@ -1,4 +1,4 @@ -import { Schema } from 'dictionary'; +import { Schema } from '@overture-stack/lectern-dictionary'; import { fieldBooleanRequired } from '../fields/simpleRestrictions/boolean/fieldBooleanRequired'; import { fieldIntegerRequired } from '../fields/simpleRestrictions/integer/fieldIntegerRequired'; import { fieldNumberRequired } from '../fields/simpleRestrictions/number/fieldNumberRequired'; diff --git a/packages/validation/test/fixtures/schema/schemaSingleString.ts b/packages/validation/test/fixtures/schema/schemaSingleString.ts index 9f5a6457..be90689a 100644 --- a/packages/validation/test/fixtures/schema/schemaSingleString.ts +++ b/packages/validation/test/fixtures/schema/schemaSingleString.ts @@ -1,4 +1,4 @@ -import { Schema } from 'dictionary'; +import { Schema } from '@overture-stack/lectern-dictionary'; import { fieldStringNoRestriction } from '../fields/noRestrictions/fieldStringNoRestriction'; import { validateFixture } from '../../testUtils/validateFixture'; diff --git a/packages/validation/test/fixtures/schema/schemaSingleStringRequired.ts b/packages/validation/test/fixtures/schema/schemaSingleStringRequired.ts index 66ff6456..b167f384 100644 --- a/packages/validation/test/fixtures/schema/schemaSingleStringRequired.ts +++ b/packages/validation/test/fixtures/schema/schemaSingleStringRequired.ts @@ -1,4 +1,4 @@ -import { Schema } from 'dictionary'; +import { Schema } from '@overture-stack/lectern-dictionary'; import { fieldStringRequired } from '../fields/simpleRestrictions/string/fieldStringRequired'; import { validateFixture } from '../../testUtils/validateFixture'; diff --git a/packages/validation/test/fixtures/schema/schemaUniqueKey.ts b/packages/validation/test/fixtures/schema/schemaUniqueKey.ts index d9185ad3..aa2991d5 100644 --- a/packages/validation/test/fixtures/schema/schemaUniqueKey.ts +++ b/packages/validation/test/fixtures/schema/schemaUniqueKey.ts @@ -1,4 +1,4 @@ -import { Schema } from 'dictionary'; +import { Schema } from '@overture-stack/lectern-dictionary'; import { validateFixture } from '../../testUtils/validateFixture'; import { fieldBooleanNoRestriction } from '../fields/noRestrictions/fieldBooleanNoRestriction'; import { fieldIntegerNoRestriction } from '../fields/noRestrictions/fieldIntegerNoRestriction'; diff --git a/packages/validation/test/fixtures/schema/schemaUniqueKeyWithArray.ts b/packages/validation/test/fixtures/schema/schemaUniqueKeyWithArray.ts index 6c84fa98..21c74e39 100644 --- a/packages/validation/test/fixtures/schema/schemaUniqueKeyWithArray.ts +++ b/packages/validation/test/fixtures/schema/schemaUniqueKeyWithArray.ts @@ -1,4 +1,4 @@ -import { Schema } from 'dictionary'; +import { Schema } from '@overture-stack/lectern-dictionary'; import { validateFixture } from '../../testUtils/validateFixture'; import { fieldBooleanNoRestriction } from '../fields/noRestrictions/fieldBooleanNoRestriction'; import { fieldIntegerNoRestriction } from '../fields/noRestrictions/fieldIntegerNoRestriction'; diff --git a/packages/validation/test/fixtures/schema/schemaUniqueString.ts b/packages/validation/test/fixtures/schema/schemaUniqueString.ts index 40aa14fe..2ac95c5b 100644 --- a/packages/validation/test/fixtures/schema/schemaUniqueString.ts +++ b/packages/validation/test/fixtures/schema/schemaUniqueString.ts @@ -1,4 +1,4 @@ -import { Schema } from 'dictionary'; +import { Schema } from '@overture-stack/lectern-dictionary'; import { fieldStringUnique } from '../fields/schemaRestrictions/fieldStringUnique'; import assert from 'node:assert'; import { validateFixture } from '../../testUtils/validateFixture'; diff --git a/packages/validation/test/fixtures/schema/schemaUniqueStringArray.ts b/packages/validation/test/fixtures/schema/schemaUniqueStringArray.ts index 002f98d9..9f735a2a 100644 --- a/packages/validation/test/fixtures/schema/schemaUniqueStringArray.ts +++ b/packages/validation/test/fixtures/schema/schemaUniqueStringArray.ts @@ -1,4 +1,4 @@ -import { Schema } from 'dictionary'; +import { Schema } from '@overture-stack/lectern-dictionary'; import { fieldStringUnique } from '../fields/schemaRestrictions/fieldStringUnique'; import assert from 'node:assert'; import { validateFixture } from '../../testUtils/validateFixture'; diff --git a/packages/validation/test/utils/rangeTest.spec.ts b/packages/validation/test/utils/rangeTest.spec.ts index 38a79737..b5ec0d63 100644 --- a/packages/validation/test/utils/rangeTest.spec.ts +++ b/packages/validation/test/utils/rangeTest.spec.ts @@ -17,7 +17,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import type { RestrictionRange } from 'dictionary'; +import type { RestrictionRange } from '@overture-stack/lectern-dictionary'; import { isWithinRange } from '../../src/utils/isWithinRange'; import { expect } from 'chai'; diff --git a/packages/validation/test/validateField/validateField.spec.ts b/packages/validation/test/validateField/validateField.spec.ts index a08a2cd3..ecaafa94 100644 --- a/packages/validation/test/validateField/validateField.spec.ts +++ b/packages/validation/test/validateField/validateField.spec.ts @@ -18,7 +18,7 @@ */ import { expect } from 'chai'; -import type { SchemaStringField } from 'dictionary'; +import type { SchemaStringField } from '@overture-stack/lectern-dictionary'; import assert from 'node:assert'; import { validateField } from '../../src'; import { fieldStringManyRestrictions } from '../fixtures/fields/multipleRestrictions/fieldStringManyRestrictions'; diff --git a/packages/validation/test/validateSchema/validateSchema.spec.ts b/packages/validation/test/validateSchema/validateSchema.spec.ts index 70789f14..0729d9b3 100644 --- a/packages/validation/test/validateSchema/validateSchema.spec.ts +++ b/packages/validation/test/validateSchema/validateSchema.spec.ts @@ -1,5 +1,5 @@ import { expect } from 'chai'; -import type { DataRecord } from 'dictionary'; +import type { DataRecord } from '@overture-stack/lectern-dictionary'; import assert from 'node:assert'; import { validateSchema } from '../../src'; import { schemaSingleStringRequired } from '../fixtures/schema/schemaSingleStringRequired'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0dc57af2..e0f749e6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,26 +15,26 @@ importers: specifier: ^7.1.8 version: 7.1.8 '@types/mocha': - specifier: ^10.0.6 - version: 10.0.6 + specifier: ^10.0.7 + version: 10.0.7 '@types/node': - specifier: ^20.14.7 - version: 20.14.7 + specifier: ^20.14.13 + version: 20.14.13 '@types/sinon': specifier: ^10.0.20 version: 10.0.20 chai: - specifier: ^4.4.1 - version: 4.4.1 + specifier: ^4.5.0 + version: 4.5.0 chai-as-promised: specifier: ^7.1.2 - version: 7.1.2(chai@4.4.1) + version: 7.1.2(chai@4.5.0) chai-http: specifier: ^4.4.0 version: 4.4.0 mocha: - specifier: ^10.4.0 - version: 10.4.0 + specifier: ^10.7.0 + version: 10.7.0 nx: specifier: ^16.10.0 version: 16.10.0 @@ -42,47 +42,44 @@ importers: specifier: ^15.1.0 version: 15.1.0 prettier: - specifier: ^3.3.2 - version: 3.3.2 + specifier: ^3.3.3 + version: 3.3.3 sinon: specifier: ^15.2.0 version: 15.2.0 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@20.14.7)(typescript@5.5.2) + version: 10.9.2(@types/node@20.14.13)(typescript@5.5.4) typescript: - specifier: ^5.5.2 - version: 5.5.2 + specifier: ^5.5.4 + version: 5.5.4 apps/server: dependencies: + '@overture-stack/lectern-dictionary': + specifier: workspace:^ + version: link:../../packages/dictionary ajv: - specifier: ^8.12.0 - version: 8.12.0 + specifier: ^8.17.1 + version: 8.17.1 axios: - specifier: ^1.4.0 - version: 1.4.0 + specifier: ^1.7.2 + version: 1.7.2 body-parser: specifier: ^1.20.2 version: 1.20.2 - common: - specifier: workspace:^ - version: link:../../packages/common - dictionary: - specifier: workspace:^ - version: link:../../packages/dictionary dotenv: - specifier: ^16.3.1 - version: 16.3.1 + specifier: ^16.4.5 + version: 16.4.5 errorhandler: specifier: ^1.5.1 version: 1.5.1 express: - specifier: ^4.18.2 - version: 4.18.2 + specifier: ^4.19.2 + version: 4.19.2 immer: - specifier: ^10.0.2 - version: 10.0.2 + specifier: ^10.1.1 + version: 10.1.1 jsonwebtoken: specifier: ^8.5.1 version: 8.5.1 @@ -90,11 +87,11 @@ importers: specifier: ^4.17.21 version: 4.17.21 memoizee: - specifier: ^0.4.15 - version: 0.4.15 + specifier: ^0.4.17 + version: 0.4.17 mongoose: - specifier: ^7.3.2 - version: 7.3.2 + specifier: ^7.8.0 + version: 7.8.0 ms: specifier: ^2.1.3 version: 2.1.3 @@ -103,38 +100,38 @@ importers: version: 0.9.22 swagger-ui-express: specifier: ^4.6.3 - version: 4.6.3(express@4.18.2) + version: 4.6.3(express@4.19.2) winston: - specifier: ^3.9.0 - version: 3.9.0 + specifier: ^3.13.1 + version: 3.13.1 zod: - specifier: ^3.21.4 - version: 3.21.4 + specifier: ^3.23.8 + version: 3.23.8 devDependencies: '@types/body-parser': - specifier: ^1.19.2 - version: 1.19.2 + specifier: ^1.19.5 + version: 1.19.5 '@types/errorhandler': specifier: 0.0.32 version: 0.0.32 '@types/express': - specifier: ^4.17.17 - version: 4.17.17 + specifier: ^4.17.21 + version: 4.17.21 '@types/jsonwebtoken': specifier: ^8.5.9 version: 8.5.9 '@types/lodash': - specifier: ^4.14.195 - version: 4.14.195 + specifier: ^4.17.7 + version: 4.17.7 '@types/memoizee': - specifier: ^0.4.8 - version: 0.4.8 + specifier: ^0.4.11 + version: 0.4.11 '@types/ms': - specifier: ^0.7.31 - version: 0.7.31 + specifier: ^0.7.34 + version: 0.7.34 '@types/superagent': - specifier: ^4.1.18 - version: 4.1.18 + specifier: ^4.1.24 + version: 4.1.24 '@types/swagger-ui-express': specifier: ^3.0.1 version: 3.0.1 @@ -148,29 +145,29 @@ importers: specifier: ^2.0.22 version: 2.0.22 prettier: - specifier: ^3 - version: 3.0.0 + specifier: ^3.3.3 + version: 3.3.3 testcontainers: specifier: ^1.3.1 version: 1.3.1 + typescript: + specifier: ^5.5.4 + version: 5.5.4 zod-to-json-schema: - specifier: ^3.21.3 - version: 3.21.3(zod@3.21.4) + specifier: ^3.23.2 + version: 3.23.2(zod@3.23.8) packages/client: dependencies: + '@overture-stack/lectern-dictionary': + specifier: workspace:^ + version: link:../dictionary '@overture-stack/lectern-validation': specifier: workspace:^ version: link:../validation cd: specifier: ^0.3.3 version: 0.3.3 - common: - specifier: workspace:^ - version: link:../common - dictionary: - specifier: workspace:^ - version: link:../dictionary lodash: specifier: ^4.17.21 version: 4.17.21 @@ -181,15 +178,15 @@ importers: specifier: ^2.1.0 version: 2.1.0 winston: - specifier: ^3.13.0 - version: 3.13.0 + specifier: ^3.13.1 + version: 3.13.1 devDependencies: '@types/chai': specifier: ^4.3.16 version: 4.3.16 '@types/lodash': - specifier: ^4.17.5 - version: 4.17.5 + specifier: ^4.17.7 + version: 4.17.7 '@types/mocha': specifier: ^8.2.3 version: 8.2.3 @@ -200,8 +197,8 @@ importers: specifier: ^2.6.11 version: 2.6.11 chai: - specifier: ^4.4.1 - version: 4.4.1 + specifier: ^4.5.0 + version: 4.5.0 husky: specifier: ^6.0.0 version: 6.0.0 @@ -215,79 +212,70 @@ importers: specifier: ^3.3.1 version: 3.3.1(prettier@2.8.8) rimraf: - specifier: ^5.0.7 - version: 5.0.7 + specifier: ^5.0.9 + version: 5.0.9 ts-node: specifier: ^9.1.1 - version: 9.1.1(typescript@5.5.2) + version: 9.1.1(typescript@5.5.4) tslint: specifier: ^6.1.3 - version: 6.1.3(typescript@5.5.2) + version: 6.1.3(typescript@5.5.4) typedoc: specifier: ^0.17.8 - version: 0.17.8(typescript@5.5.2) + version: 0.17.8(typescript@5.5.4) typescript: - specifier: ^5.5.2 - version: 5.5.2 - - packages/common: - devDependencies: - rimraf: - specifier: ^5.0.0 - version: 5.0.7 + specifier: ^5.5.4 + version: 5.5.4 packages/dictionary: dependencies: - common: - specifier: workspace:^ - version: link:../common immer: - specifier: ^10.0.2 - version: 10.0.2 + specifier: ^10.1.1 + version: 10.1.1 lodash: specifier: ^4.17.21 version: 4.17.21 zod: - specifier: ^3.21.4 - version: 3.21.4 + specifier: ^3.23.8 + version: 3.23.8 devDependencies: '@types/lodash': - specifier: ^4.14.195 - version: 4.14.195 + specifier: ^4.17.7 + version: 4.17.7 rimraf: - specifier: ^5.0.0 - version: 5.0.7 + specifier: ^5.0.9 + version: 5.0.9 packages/validation: dependencies: - common: - specifier: workspace:^ - version: link:../common - dictionary: + '@overture-stack/lectern-dictionary': specifier: workspace:^ version: link:../dictionary lodash: specifier: ^4.17.21 version: 4.17.21 zod: - specifier: ^3.21.4 - version: 3.21.4 + specifier: ^3.23.8 + version: 3.23.8 devDependencies: '@types/lodash': - specifier: ^4.14.195 - version: 4.14.195 + specifier: ^4.17.7 + version: 4.17.7 rimraf: - specifier: ^5.0.0 - version: 5.0.7 + specifier: ^5.0.9 + version: 5.0.9 - scripts/generate: + scripts: dependencies: - dictionary: + '@overture-stack/lectern-dictionary': specifier: workspace:^ - version: link:../../packages/dictionary + version: link:../packages/dictionary + zod: + specifier: ^3.23.8 + version: 3.23.8 zod-to-json-schema: - specifier: ^3.21.3 - version: 3.21.3(zod@3.21.4) + specifier: ^3.23.2 + version: 3.23.2(zod@3.23.8) packages: @@ -299,13 +287,6 @@ packages: '@jridgewell/trace-mapping': 0.3.25 dev: true - /@babel/code-frame@7.22.5: - resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.22.5 - dev: true - /@babel/code-frame@7.24.7: resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} @@ -314,27 +295,27 @@ packages: picocolors: 1.0.1 dev: true - /@babel/compat-data@7.24.7: - resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} + /@babel/compat-data@7.25.2: + resolution: {integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.24.7: - resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} + /@babel/core@7.25.2: + resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) - '@babel/helpers': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/generator': 7.25.0 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helpers': 7.25.0 + '@babel/parser': 7.25.3 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 convert-source-map: 2.0.0 - debug: 4.3.5 + debug: 4.3.6(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -342,71 +323,48 @@ packages: - supports-color dev: true - /@babel/generator@7.24.7: - resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} + /@babel/generator@7.25.0: + resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.25.2 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 dev: true - /@babel/helper-compilation-targets@7.24.7: - resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} + /@babel/helper-compilation-targets@7.25.2: + resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.24.7 - '@babel/helper-validator-option': 7.24.7 - browserslist: 4.23.1 + '@babel/compat-data': 7.25.2 + '@babel/helper-validator-option': 7.24.8 + browserslist: 4.23.2 lru-cache: 5.1.1 semver: 6.3.1 dev: true - /@babel/helper-environment-visitor@7.24.7: - resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.7 - dev: true - - /@babel/helper-function-name@7.24.7: - resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 - dev: true - - /@babel/helper-hoist-variables@7.24.7: - resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.7 - dev: true - /@babel/helper-module-imports@7.24.7: resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7): - resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} + /@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2): + resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 + '@babel/core': 7.25.2 '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.3 transitivePeerDependencies: - supports-color dev: true @@ -415,26 +373,14 @@ packages: resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-split-export-declaration@7.24.7: - resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.7 - dev: true - - /@babel/helper-string-parser@7.24.7: - resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-validator-identifier@7.22.5: - resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} + /@babel/helper-string-parser@7.24.8: + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} dev: true @@ -443,26 +389,17 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-option@7.24.7: - resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helpers@7.24.7: - resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} + /@babel/helper-validator-option@7.24.8: + resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 dev: true - /@babel/highlight@7.22.5: - resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} + /@babel/helpers@7.25.0: + resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.22.5 - chalk: 2.4.2 - js-tokens: 4.0.0 + '@babel/template': 7.25.0 + '@babel/types': 7.25.2 dev: true /@babel/highlight@7.24.7: @@ -475,62 +412,54 @@ packages: picocolors: 1.0.1 dev: true - /@babel/parser@7.24.7: - resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} + /@babel/parser@7.25.3: + resolution: {integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.25.2 dev: true - /@babel/runtime@7.22.6: - resolution: {integrity: sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==} + /@babel/runtime@7.25.0: + resolution: {integrity: sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==} engines: {node: '>=6.9.0'} dependencies: - regenerator-runtime: 0.13.11 + regenerator-runtime: 0.14.1 dev: true - /@babel/template@7.24.7: - resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} + /@babel/template@7.25.0: + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 + '@babel/parser': 7.25.3 + '@babel/types': 7.25.2 dev: true - /@babel/traverse@7.24.7: - resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} + /@babel/traverse@7.25.3: + resolution: {integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 - debug: 4.3.5 + '@babel/generator': 7.25.0 + '@babel/parser': 7.25.3 + '@babel/template': 7.25.0 + '@babel/types': 7.25.2 + debug: 4.3.6(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.24.7: - resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} + /@babel/types@7.25.2: + resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.24.7 + '@babel/helper-string-parser': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 dev: true - /@colors/colors@1.5.0: - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} - engines: {node: '>=0.1.90'} - dev: false - /@colors/colors@1.6.0: resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} engines: {node: '>=0.1.90'} @@ -591,7 +520,7 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 dev: true @@ -605,24 +534,32 @@ packages: engines: {node: '>=6.0.0'} dev: true - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + /@jridgewell/sourcemap-codec@1.5.0: + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} dev: true /@jridgewell/trace-mapping@0.3.25: resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 dev: true /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 dev: true + /@mongodb-js/saslprep@1.1.8: + resolution: {integrity: sha512-qKwC/M/nNNaKUBMQ0nuzm47b7ZYWQHN3pcXq4IIcoSBc2hOIrflAxJduIvvqmhoz3gR2TacTAs8vlsCVPkiEdQ==} + requiresBuild: true + dependencies: + sparse-bitfield: 3.0.3 + dev: false + optional: true + /@nrwl/tao@16.10.0: resolution: {integrity: sha512-QNAanpINbr+Pod6e1xNgFbzK1x5wmZl+jMocgiEFXZ67KHvmbD6MAQQr0MMz+GPhIu7EE4QCTLTyCEMlAG+K5Q==} hasBin: true @@ -774,7 +711,7 @@ packages: dependencies: '@sinonjs/commons': 2.0.0 lodash.get: 4.4.2 - type-detect: 4.0.8 + type-detect: 4.1.0 dev: true /@sinonjs/text-encoding@0.7.2: @@ -797,11 +734,11 @@ packages: resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} dev: true - /@types/body-parser@1.19.2: - resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} + /@types/body-parser@1.19.5: + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: - '@types/connect': 3.4.35 - '@types/node': 20.14.7 + '@types/connect': 3.4.38 + '@types/node': 22.0.0 dev: true /@types/chai-as-promised@7.1.8: @@ -814,14 +751,10 @@ packages: resolution: {integrity: sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ==} dev: true - /@types/connect@3.4.35: - resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} + /@types/connect@3.4.38: + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.14.7 - dev: true - - /@types/cookiejar@2.1.2: - resolution: {integrity: sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==} + '@types/node': 22.0.0 dev: true /@types/cookiejar@2.1.5: @@ -831,67 +764,59 @@ packages: /@types/errorhandler@0.0.32: resolution: {integrity: sha512-wC9CfwPMIzklPd5lEYC8HnQdlMC1PswlohWmEDMWlw+E/rMYuz5eSqKBc72Earb29KptKJrRl77qVRJzrZndww==} dependencies: - '@types/express': 4.17.17 + '@types/express': 4.17.21 dev: true - /@types/express-serve-static-core@4.17.35: - resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==} + /@types/express-serve-static-core@4.19.5: + resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} dependencies: - '@types/node': 20.14.7 - '@types/qs': 6.9.7 - '@types/range-parser': 1.2.4 - '@types/send': 0.17.1 + '@types/node': 22.0.0 + '@types/qs': 6.9.15 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 dev: true - /@types/express@4.17.17: - resolution: {integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==} + /@types/express@4.17.21: + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} dependencies: - '@types/body-parser': 1.19.2 - '@types/express-serve-static-core': 4.17.35 - '@types/qs': 6.9.7 - '@types/serve-static': 1.15.2 + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 4.19.5 + '@types/qs': 6.9.15 + '@types/serve-static': 1.15.7 dev: true - /@types/http-errors@2.0.1: - resolution: {integrity: sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==} + /@types/http-errors@2.0.4: + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} dev: true /@types/jsonwebtoken@8.5.9: resolution: {integrity: sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==} dependencies: - '@types/node': 20.14.7 - dev: true - - /@types/lodash@4.14.195: - resolution: {integrity: sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg==} - dev: true - - /@types/lodash@4.17.5: - resolution: {integrity: sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw==} + '@types/node': 22.0.0 dev: true - /@types/memoizee@0.4.8: - resolution: {integrity: sha512-qDpXKGgwKywnQt/64fH1O0LiPA++QGIYeykEUiZ51HymKVRLnUSGcRuF60IfpPeeXiuRwiR/W4y7S5VzbrgLCA==} + /@types/lodash@4.17.7: + resolution: {integrity: sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==} dev: true - /@types/mime@1.3.2: - resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==} + /@types/memoizee@0.4.11: + resolution: {integrity: sha512-2gyorIBZu8GoDr9pYjROkxWWcFtHCquF7TVbN2I+/OvgZhnIGQS0vX5KJz4lXNKb8XOSfxFOSG5OLru1ESqLUg==} dev: true - /@types/mime@3.0.1: - resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} + /@types/mime@1.3.5: + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} dev: true - /@types/mocha@10.0.6: - resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} + /@types/mocha@10.0.7: + resolution: {integrity: sha512-GN8yJ1mNTcFcah/wKEFIJckJx9iJLoMSzWcfRRuxz/Jk+U6KQNnml+etbtxFK8lPjzOw3zp4Ha/kjSst9fsHYw==} dev: true /@types/mocha@8.2.3: resolution: {integrity: sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==} dev: true - /@types/ms@0.7.31: - resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} dev: true /@types/node-fetch@2.6.11: @@ -905,36 +830,42 @@ packages: resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: true - /@types/node@20.14.7: - resolution: {integrity: sha512-uTr2m2IbJJucF3KUxgnGOZvYbN0QgkGyWxG6973HCpMYFy2KfcgYuIwkJQMQkt1VbBMlvWRbpshFTLxnxCZjKQ==} + /@types/node@20.14.13: + resolution: {integrity: sha512-+bHoGiZb8UiQ0+WEtmph2IWQCjIqg8MDZMAV+ppRRhUZnquF5mQkP/9vpSwJClEiSM/C7fZZExPzfU0vJTyp8w==} dependencies: undici-types: 5.26.5 + dev: true - /@types/normalize-package-data@2.4.1: - resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + /@types/node@22.0.0: + resolution: {integrity: sha512-VT7KSYudcPOzP5Q0wfbowyNLaVR8QWUdw+088uFWwfvpY6uCWaXpqV6ieLAu9WBcnTa7H4Z5RLK8I5t2FuOcqw==} + dependencies: + undici-types: 6.11.1 + + /@types/normalize-package-data@2.4.4: + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true - /@types/qs@6.9.7: - resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} + /@types/qs@6.9.15: + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} dev: true - /@types/range-parser@1.2.4: - resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} + /@types/range-parser@1.2.7: + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} dev: true - /@types/send@0.17.1: - resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} + /@types/send@0.17.4: + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: - '@types/mime': 1.3.2 - '@types/node': 20.14.7 + '@types/mime': 1.3.5 + '@types/node': 22.0.0 dev: true - /@types/serve-static@1.15.2: - resolution: {integrity: sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==} + /@types/serve-static@1.15.7: + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: - '@types/http-errors': 2.0.1 - '@types/mime': 3.0.1 - '@types/node': 20.14.7 + '@types/http-errors': 2.0.4 + '@types/node': 22.0.0 + '@types/send': 0.17.4 dev: true /@types/sinon@10.0.20: @@ -951,40 +882,36 @@ packages: resolution: {integrity: sha512-YIGelp3ZyMiH0/A09PMAORO0EBGlF5xIKfDpK74wdYvWUs2o96b5CItJcWPdH409b7SAXIIG6p8NdU/4U2Maww==} dependencies: '@types/cookiejar': 2.1.5 - '@types/node': 20.14.7 + '@types/node': 20.14.13 dev: true - /@types/superagent@4.1.18: - resolution: {integrity: sha512-LOWgpacIV8GHhrsQU+QMZuomfqXiqzz3ILLkCtKx3Us6AmomFViuzKT9D693QTKgyut2oCytMG8/efOop+DB+w==} + /@types/superagent@4.1.24: + resolution: {integrity: sha512-mEafCgyKiMFin24SDzWN7yAADt4gt6YawFiNMp0QS5ZPboORfyxFt0s3VzJKhTaKg9py/4FUmrHLTNfJKt9Rbw==} dependencies: - '@types/cookiejar': 2.1.2 - '@types/node': 20.14.7 + '@types/cookiejar': 2.1.5 + '@types/node': 22.0.0 dev: true /@types/swagger-ui-express@3.0.1: resolution: {integrity: sha512-AHIIs9tUDimRAKvmHHBXxNfavjcvZuGgu/iXaSVpBk+C6EO/H1PUBIq4l5opFXLbV+hBuVbYnpycbobhSoMjTA==} dependencies: - '@types/express': 4.17.17 - '@types/serve-static': 1.15.2 + '@types/express': 4.17.21 + '@types/serve-static': 1.15.7 dev: true - /@types/triple-beam@1.3.2: - resolution: {integrity: sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==} - dev: false - /@types/triple-beam@1.3.5: resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} dev: false - /@types/webidl-conversions@7.0.0: - resolution: {integrity: sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==} + /@types/webidl-conversions@7.0.3: + resolution: {integrity: sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==} dev: false /@types/whatwg-url@8.2.2: resolution: {integrity: sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==} dependencies: - '@types/node': 20.14.7 - '@types/webidl-conversions': 7.0.0 + '@types/node': 22.0.0 + '@types/webidl-conversions': 7.0.3 dev: false /@ungap/promise-all-settled@1.1.2: @@ -1018,10 +945,6 @@ packages: through: 2.3.8 dev: true - /abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - dev: true - /accepts@1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} @@ -1034,11 +957,11 @@ packages: resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} engines: {node: '>=0.4.0'} dependencies: - acorn: 8.12.0 + acorn: 8.12.1 dev: true - /acorn@8.12.0: - resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} + /acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -1060,13 +983,13 @@ packages: uri-js: 4.4.1 dev: false - /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + /ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} dependencies: fast-deep-equal: 3.1.3 + fast-uri: 3.0.1 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - uri-js: 4.4.1 dev: false /ansi-colors@4.1.1: @@ -1161,7 +1084,7 @@ packages: dev: true /array-flatten@1.1.1: - resolution: {integrity: sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=} + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} dev: false /asap@2.0.6: @@ -1183,10 +1106,6 @@ packages: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true - /async@3.2.4: - resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} - dev: false - /async@3.2.5: resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} dev: false @@ -1198,18 +1117,8 @@ packages: resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} dev: false - /aws4@1.12.0: - resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} - dev: false - - /axios@1.4.0: - resolution: {integrity: sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==} - dependencies: - follow-redirects: 1.15.2 - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug + /aws4@1.13.0: + resolution: {integrity: sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==} dev: false /axios@1.7.2: @@ -1220,7 +1129,6 @@ packages: proxy-from-env: 1.1.0 transitivePeerDependencies: - debug - dev: true /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -1256,26 +1164,6 @@ packages: readable-stream: 3.6.2 dev: true - /body-parser@1.20.1: - resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.1 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: false - /body-parser@1.20.2: resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -1320,19 +1208,19 @@ packages: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} dev: true - /browserslist@4.23.1: - resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} + /browserslist@4.23.2: + resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001636 - electron-to-chromium: 1.4.808 - node-releases: 2.0.14 - update-browserslist-db: 1.0.16(browserslist@4.23.1) + caniuse-lite: 1.0.30001645 + electron-to-chromium: 1.5.4 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.23.2) dev: true - /bson@5.4.0: - resolution: {integrity: sha512-WRZ5SQI5GfUuKnPTNmAYPiKIof3ORXAF4IRU5UcgmivNIon01rWQlw5RUH954dpu8yGL8T59YShVddIPaU/gFA==} + /bson@5.5.1: + resolution: {integrity: sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==} engines: {node: '>=14.20.1'} dev: false @@ -1391,13 +1279,6 @@ packages: write-file-atomic: 3.0.3 dev: true - /call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} - dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.2.1 - dev: false - /call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} @@ -1407,7 +1288,6 @@ packages: function-bind: 1.1.2 get-intrinsic: 1.2.4 set-function-length: 1.2.2 - dev: true /caller-callsite@2.0.0: resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} @@ -1438,8 +1318,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001636: - resolution: {integrity: sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==} + /caniuse-lite@1.0.30001645: + resolution: {integrity: sha512-GFtY2+qt91kzyMk6j48dJcwJVq5uTkk71XxE3RtScx7XWRLsO7bU44LOFkOZYR8w9YMS0UhPSYpN/6rAMImmLw==} dev: true /caseless@0.12.0: @@ -1450,12 +1330,12 @@ packages: resolution: {integrity: sha512-X2y0Ssu48ucdkrNgCdg6k3EZWjWVy/dsEywUUTeZEIW31f3bQfq65Svm+TzU1Hz+qqhdmyCdjGhUvRsSKHl/mw==} dev: false - /chai-as-promised@7.1.2(chai@4.4.1): + /chai-as-promised@7.1.2(chai@4.5.0): resolution: {integrity: sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw==} peerDependencies: chai: '>= 2.1.2 < 6' dependencies: - chai: 4.4.1 + chai: 4.5.0 check-error: 1.0.3 dev: true @@ -1469,14 +1349,14 @@ packages: cookiejar: 2.1.4 is-ip: 2.0.0 methods: 1.1.2 - qs: 6.12.1 + qs: 6.12.3 superagent: 8.1.2 transitivePeerDependencies: - supports-color dev: true - /chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + /chai@4.5.0: + resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 @@ -1485,7 +1365,7 @@ packages: get-func-name: 2.0.2 loupe: 2.3.7 pathval: 1.1.1 - type-detect: 4.0.8 + type-detect: 4.1.0 dev: true /chalk@2.4.2: @@ -1531,8 +1411,8 @@ packages: fsevents: 2.3.3 dev: true - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 @@ -1685,7 +1565,7 @@ packages: lodash: 4.17.21 read-pkg: 4.0.1 rxjs: 6.6.7 - spawn-command: 0.0.2-1 + spawn-command: 0.0.2 supports-color: 6.1.0 tree-kill: 1.2.2 yargs: 13.3.2 @@ -1712,11 +1592,11 @@ packages: dev: true /cookie-signature@1.0.6: - resolution: {integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw=} + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} dev: false - /cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + /cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} dev: false @@ -1752,7 +1632,7 @@ packages: dependencies: nice-try: 1.0.5 path-key: 2.0.1 - semver: 5.7.1 + semver: 5.7.2 shebang-command: 1.2.0 which: 1.3.1 dev: true @@ -1766,11 +1646,12 @@ packages: which: 2.0.2 dev: true - /d@1.0.1: - resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} + /d@1.0.2: + resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} + engines: {node: '>=0.12'} dependencies: - es5-ext: 0.10.62 - type: 1.2.0 + es5-ext: 0.10.64 + type: 2.7.3 dev: false /dashdash@1.14.1: @@ -1784,7 +1665,7 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.25.0 dev: true /debug@2.6.9: @@ -1834,8 +1715,8 @@ packages: supports-color: 8.1.1 dev: true - /debug@4.3.4(supports-color@8.1.1): - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + /debug@4.3.6(supports-color@8.1.1): + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1846,18 +1727,6 @@ packages: ms: 2.1.2 supports-color: 8.1.1 - /debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - dev: true - /decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} @@ -1872,7 +1741,7 @@ packages: resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} engines: {node: '>=6'} dependencies: - type-detect: 4.0.8 + type-detect: 4.1.0 dev: true /default-require-extensions@3.0.1: @@ -1889,7 +1758,6 @@ packages: es-define-property: 1.0.0 es-errors: 1.3.0 gopd: 1.0.1 - dev: true /define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} @@ -1965,16 +1833,16 @@ packages: engines: {node: '>=12'} dev: true - /dotenv@16.3.1: - resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} - engines: {node: '>=12'} - dev: false - /dotenv@16.3.2: resolution: {integrity: sha512-HTlk5nmhkm8F6JcdXvHIzaorzCoziNQT9mGxLPVXW8wJF1TiGSL60ZGB4gHWabHOaMmWmhvk2/lPHfnBiT78AQ==} engines: {node: '>=12'} dev: true + /dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + dev: false + /duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} dev: true @@ -1997,11 +1865,11 @@ packages: dev: false /ee-first@1.1.1: - resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: false - /electron-to-chromium@1.4.808: - resolution: {integrity: sha512-0ItWyhPYnww2VOuCGF4s1LTfbrdAV2ajy/TN+ZTuhR23AHI6rWHCrBXJ/uxoXOvRRqw8qjYVrG81HFI7x/2wdQ==} + /electron-to-chromium@1.5.4: + resolution: {integrity: sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==} dev: true /emoji-regex@7.0.3: @@ -2057,20 +1925,19 @@ packages: engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 - dev: true /es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - dev: true - /es5-ext@0.10.62: - resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} + /es5-ext@0.10.64: + resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} engines: {node: '>=0.10'} requiresBuild: true dependencies: es6-iterator: 2.0.3 - es6-symbol: 3.1.3 + es6-symbol: 3.1.4 + esniff: 2.0.1 next-tick: 1.1.0 dev: false @@ -2081,25 +1948,26 @@ packages: /es6-iterator@2.0.3: resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} dependencies: - d: 1.0.1 - es5-ext: 0.10.62 - es6-symbol: 3.1.3 + d: 1.0.2 + es5-ext: 0.10.64 + es6-symbol: 3.1.4 dev: false - /es6-symbol@3.1.3: - resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} + /es6-symbol@3.1.4: + resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} + engines: {node: '>=0.12'} dependencies: - d: 1.0.1 + d: 1.0.2 ext: 1.7.0 dev: false /es6-weak-map@2.0.3: resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} dependencies: - d: 1.0.1 - es5-ext: 0.10.62 + d: 1.0.2 + es5-ext: 0.10.64 es6-iterator: 2.0.3 - es6-symbol: 3.1.3 + es6-symbol: 3.1.4 dev: false /escalade@3.1.2: @@ -2121,6 +1989,16 @@ packages: engines: {node: '>=10'} dev: true + /esniff@2.0.1: + resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} + engines: {node: '>=0.10'} + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + event-emitter: 0.3.5 + type: 2.7.3 + dev: false + /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -2135,8 +2013,8 @@ packages: /event-emitter@0.3.5: resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} dependencies: - d: 1.0.1 - es5-ext: 0.10.62 + d: 1.0.2 + es5-ext: 0.10.64 dev: false /execa@1.0.0: @@ -2167,16 +2045,16 @@ packages: strip-final-newline: 2.0.0 dev: true - /express@4.18.2: - resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} + /express@4.19.2: + resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} engines: {node: '>= 0.10.0'} dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.1 + body-parser: 1.20.2 content-disposition: 0.5.4 content-type: 1.0.5 - cookie: 0.5.0 + cookie: 0.6.0 cookie-signature: 1.0.6 debug: 2.6.9 depd: 2.0.0 @@ -2209,7 +2087,7 @@ packages: /ext@1.7.0: resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} dependencies: - type: 2.7.2 + type: 2.7.3 dev: false /extend@3.0.2: @@ -2233,6 +2111,10 @@ packages: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} dev: true + /fast-uri@3.0.1: + resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} + dev: false + /fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} dev: false @@ -2307,16 +2189,6 @@ packages: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} dev: false - /follow-redirects@1.15.2: - resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: false - /follow-redirects@1.15.6: resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} engines: {node: '>=4.0'} @@ -2325,7 +2197,6 @@ packages: peerDependenciesMeta: debug: optional: true - dev: true /foreground-child@2.0.0: resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} @@ -2370,7 +2241,7 @@ packages: dezalgo: 1.0.4 hexoid: 1.0.0 once: 1.4.0 - qs: 6.12.1 + qs: 6.12.3 dev: true /forwarded@0.2.0: @@ -2379,7 +2250,7 @@ packages: dev: false /fresh@0.5.2: - resolution: {integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=} + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} dev: false @@ -2421,12 +2292,8 @@ packages: dev: true optional: true - /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - dev: true /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} @@ -2442,15 +2309,6 @@ packages: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} dev: true - /get-intrinsic@1.2.1: - resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} - dependencies: - function-bind: 1.1.1 - has: 1.0.3 - has-proto: 1.0.1 - has-symbols: 1.0.3 - dev: false - /get-intrinsic@1.2.4: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} @@ -2460,7 +2318,6 @@ packages: has-proto: 1.0.3 has-symbols: 1.0.3 hasown: 2.0.2 - dev: true /get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} @@ -2504,14 +2361,13 @@ packages: is-glob: 4.0.3 dev: true - /glob@10.4.2: - resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} - engines: {node: '>=16 || 14 >=14.18'} + /glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true dependencies: foreground-child: 3.2.1 - jackspeak: 3.4.0 - minimatch: 9.0.4 + jackspeak: 3.4.3 + minimatch: 9.0.5 minipass: 7.1.2 package-json-from-dist: 1.0.0 path-scurry: 1.11.1 @@ -2561,7 +2417,7 @@ packages: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 5.0.1 + minimatch: 5.1.6 once: 1.4.0 dev: true @@ -2574,7 +2430,6 @@ packages: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: get-intrinsic: 1.2.4 - dev: true /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -2595,7 +2450,7 @@ packages: source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: 3.18.0 + uglify-js: 3.19.1 dev: true /har-schema@2.0.0: @@ -2625,28 +2480,15 @@ packages: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: es-define-property: 1.0.0 - dev: true - - /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} - dev: false /has-proto@1.0.3: resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} - dev: true /has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} - /has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.1 - /hasha@5.2.2: resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==} engines: {node: '>=8'} @@ -2660,7 +2502,6 @@ packages: engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 - dev: true /he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} @@ -2701,7 +2542,7 @@ packages: dependencies: assert-plus: 1.0.0 jsprim: 1.4.2 - sshpk: 1.17.0 + sshpk: 1.18.0 dev: false /human-signals@1.1.1: @@ -2753,8 +2594,8 @@ packages: engines: {node: '>= 4'} dev: true - /immer@10.0.2: - resolution: {integrity: sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==} + /immer@10.1.1: + resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==} dev: false /import-fresh@2.0.0: @@ -2791,15 +2632,19 @@ packages: engines: {node: '>= 0.10'} dev: true + /ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} + dependencies: + jsbn: 1.1.0 + sprintf-js: 1.1.3 + dev: false + /ip-regex@2.1.0: resolution: {integrity: sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==} engines: {node: '>=4'} dev: true - /ip@2.0.0: - resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} - dev: false - /ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -2820,14 +2665,8 @@ packages: binary-extensions: 2.3.0 dev: true - /is-core-module@2.12.1: - resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} - dependencies: - has: 1.0.3 - dev: true - - /is-core-module@2.14.0: - resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} + /is-core-module@2.15.0: + resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} engines: {node: '>= 0.4'} dependencies: hasown: 2.0.2 @@ -2948,7 +2787,7 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.25.2 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -2981,7 +2820,7 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} dependencies: - debug: 4.3.5 + debug: 4.3.6(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -2996,9 +2835,8 @@ packages: istanbul-lib-report: 3.0.1 dev: true - /jackspeak@3.4.0: - resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} - engines: {node: '>=14'} + /jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: @@ -3050,6 +2888,10 @@ packages: resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} dev: false + /jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + dev: false + /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} @@ -3122,7 +2964,7 @@ packages: lodash.isstring: 4.0.1 lodash.once: 4.1.1 ms: 2.1.3 - semver: 5.7.1 + semver: 5.7.2 dev: false /jsprim@1.4.2: @@ -3248,19 +3090,8 @@ packages: is-unicode-supported: 0.1.0 dev: true - /logform@2.5.1: - resolution: {integrity: sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==} - dependencies: - '@colors/colors': 1.5.0 - '@types/triple-beam': 1.3.2 - fecha: 4.2.3 - ms: 2.1.3 - safe-stable-stringify: 2.4.3 - triple-beam: 1.3.0 - dev: false - - /logform@2.6.0: - resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==} + /logform@2.6.1: + resolution: {integrity: sha512-CdaO738xRapbKIMVn2m4F6KTj4j7ooJ8POVnebSgKo3KBz5axNXRAL7ZdRjIV6NOr2Uf4vjtRkxrFETOioCqSA==} engines: {node: '>= 12.0.0'} dependencies: '@colors/colors': 1.6.0 @@ -3277,9 +3108,8 @@ packages: get-func-name: 2.0.2 dev: true - /lru-cache@10.2.2: - resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} - engines: {node: 14 || >=16.14} + /lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} dev: true /lru-cache@5.1.1: @@ -3298,7 +3128,7 @@ packages: /lru-queue@0.1.0: resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} dependencies: - es5-ext: 0.10.62 + es5-ext: 0.10.64 dev: false /lunr@2.3.9: @@ -3316,7 +3146,7 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: - semver: 7.6.2 + semver: 7.6.3 dev: true /make-error@1.3.6: @@ -3330,21 +3160,22 @@ packages: dev: true /media-typer@0.3.0: - resolution: {integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=} + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} dev: false - /memoizee@0.4.15: - resolution: {integrity: sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==} + /memoizee@0.4.17: + resolution: {integrity: sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==} + engines: {node: '>=0.12'} dependencies: - d: 1.0.1 - es5-ext: 0.10.62 + d: 1.0.2 + es5-ext: 0.10.64 es6-weak-map: 2.0.3 event-emitter: 0.3.5 is-promise: 2.2.2 lru-queue: 0.1.0 next-tick: 1.1.0 - timers-ext: 0.1.7 + timers-ext: 0.1.8 dev: false /memory-pager@1.5.0: @@ -3354,7 +3185,7 @@ packages: optional: true /merge-descriptors@1.0.1: - resolution: {integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=} + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} dev: false /merge-stream@2.0.0: @@ -3410,15 +3241,15 @@ packages: brace-expansion: 1.1.11 dev: true - /minimatch@5.0.1: - resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 dev: true - /minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + /minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 @@ -3444,30 +3275,30 @@ packages: minimist: 1.2.8 dev: true - /mocha@10.4.0: - resolution: {integrity: sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==} + /mocha@10.7.0: + resolution: {integrity: sha512-v8/rBWr2VO5YkspYINnvu81inSz2y3ODJrhO175/Exzor1RcEZZkizgE2A+w/CAXXoESS8Kys5E62dOHGHzULA==} engines: {node: '>= 14.0.0'} hasBin: true dependencies: - ansi-colors: 4.1.1 + ansi-colors: 4.1.3 browser-stdout: 1.3.1 - chokidar: 3.5.3 - debug: 4.3.4(supports-color@8.1.1) - diff: 5.0.0 + chokidar: 3.6.0 + debug: 4.3.6(supports-color@8.1.1) + diff: 5.2.0 escape-string-regexp: 4.0.0 find-up: 5.0.0 glob: 8.1.0 he: 1.2.0 js-yaml: 4.1.0 log-symbols: 4.1.0 - minimatch: 5.0.1 + minimatch: 5.1.6 ms: 2.1.3 - serialize-javascript: 6.0.0 + serialize-javascript: 6.0.2 strip-json-comments: 3.1.1 supports-color: 8.1.1 - workerpool: 6.2.1 + workerpool: 6.5.1 yargs: 16.2.0 - yargs-parser: 20.2.4 + yargs-parser: 20.2.9 yargs-unparser: 2.0.0 dev: true @@ -3510,41 +3341,49 @@ packages: whatwg-url: 11.0.0 dev: false - /mongodb@5.6.0: - resolution: {integrity: sha512-z8qVs9NfobHJm6uzK56XBZF8XwM9H294iRnB7wNjF0SnY93si5HPziIJn+qqvUR5QOff/4L0gCD6SShdR/GtVQ==} + /mongodb@5.9.2: + resolution: {integrity: sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==} engines: {node: '>=14.20.1'} peerDependencies: - '@aws-sdk/credential-providers': ^3.201.0 + '@aws-sdk/credential-providers': ^3.188.0 + '@mongodb-js/zstd': ^1.0.0 + kerberos: ^1.0.0 || ^2.0.0 mongodb-client-encryption: '>=2.3.0 <3' snappy: ^7.2.2 peerDependenciesMeta: '@aws-sdk/credential-providers': optional: true + '@mongodb-js/zstd': + optional: true + kerberos: + optional: true mongodb-client-encryption: optional: true snappy: optional: true dependencies: - bson: 5.4.0 + bson: 5.5.1 mongodb-connection-string-url: 2.6.0 - socks: 2.7.1 + socks: 2.8.3 optionalDependencies: - saslprep: 1.0.3 + '@mongodb-js/saslprep': 1.1.8 dev: false - /mongoose@7.3.2: - resolution: {integrity: sha512-Z86m5ASwYYFyT++wPQTtuTl5Jh052w6G1IM8LxPu/6iuqxQo6nUOaEoGZfMy0ovw3Dyw3415Jue3pYXkRqPkfA==} + /mongoose@7.8.0: + resolution: {integrity: sha512-wLAP7xYz+tEnzy4VsZyMJ1mfaSIwfaeoSQ55ZVovFkdh1FVta6VNSVFCpJMzEinMJsRzTbZTcD4pND9J5aDiyA==} engines: {node: '>=14.20.1'} dependencies: - bson: 5.4.0 + bson: 5.5.1 kareem: 2.5.1 - mongodb: 5.6.0 + mongodb: 5.9.2 mpath: 0.9.0 mquery: 5.0.0 ms: 2.1.3 sift: 16.0.1 transitivePeerDependencies: - '@aws-sdk/credential-providers' + - '@mongodb-js/zstd' + - kerberos - mongodb-client-encryption - snappy - supports-color @@ -3559,7 +3398,7 @@ packages: resolution: {integrity: sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==} engines: {node: '>=14.0.0'} dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: false @@ -3654,8 +3493,8 @@ packages: process-on-spawn: 1.0.0 dev: true - /node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + /node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} dev: true /node-vault@0.9.22: @@ -3675,31 +3514,24 @@ packages: engines: {node: '>=8.10.0'} hasBin: true dependencies: - chokidar: 3.5.3 + chokidar: 3.6.0 debug: 3.2.7(supports-color@5.5.0) ignore-by-default: 1.0.1 minimatch: 3.1.2 pstree.remy: 1.1.8 - semver: 5.7.1 + semver: 5.7.2 simple-update-notifier: 1.1.0 supports-color: 5.5.0 - touch: 3.1.0 + touch: 3.1.1 undefsafe: 2.0.5 dev: true - /nopt@1.0.10: - resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==} - hasBin: true - dependencies: - abbrev: 1.1.1 - dev: true - /normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.2 - semver: 5.7.1 + resolve: 1.22.8 + semver: 5.7.2 validate-npm-package-license: 3.0.4 dev: true @@ -3826,13 +3658,9 @@ packages: resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} dev: false - /object-inspect@1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} - dev: false - - /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - dev: true + /object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} /on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} @@ -3952,7 +3780,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.24.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -3996,7 +3824,7 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} dependencies: - lru-cache: 10.2.2 + lru-cache: 10.4.3 minipass: 7.1.2 dev: true @@ -4054,14 +3882,8 @@ packages: hasBin: true dev: true - /prettier@3.0.0: - resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==} - engines: {node: '>=14'} - hasBin: true - dev: true - - /prettier@3.3.2: - resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} + /prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} engines: {node: '>=14'} hasBin: true dev: true @@ -4149,8 +3971,8 @@ packages: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} dev: false - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} dev: false @@ -4158,11 +3980,11 @@ packages: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} dependencies: - side-channel: 1.0.4 + side-channel: 1.0.6 dev: false - /qs@6.12.1: - resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==} + /qs@6.12.3: + resolution: {integrity: sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==} engines: {node: '>=0.6'} dependencies: side-channel: 1.0.6 @@ -4184,16 +4006,6 @@ packages: engines: {node: '>= 0.6'} dev: false - /raw-body@2.5.1: - resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} - engines: {node: '>= 0.8'} - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - dev: false - /raw-body@2.5.2: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} @@ -4221,7 +4033,7 @@ packages: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} dependencies: - '@types/normalize-package-data': 2.4.1 + '@types/normalize-package-data': 2.4.4 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 @@ -4277,8 +4089,8 @@ packages: resolve: 1.22.8 dev: true - /regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} dev: true /release-zalgo@1.0.0: @@ -4317,7 +4129,7 @@ packages: deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 dependencies: aws-sign2: 0.7.0 - aws4: 1.12.0 + aws4: 1.13.0 caseless: 0.12.0 combined-stream: 1.0.8 extend: 3.0.2 @@ -4362,20 +4174,11 @@ packages: engines: {node: '>=8'} dev: true - /resolve@1.22.2: - resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} - hasBin: true - dependencies: - is-core-module: 2.12.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - /resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true dependencies: - is-core-module: 2.14.0 + is-core-module: 2.15.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -4396,12 +4199,12 @@ packages: glob: 7.2.3 dev: true - /rimraf@5.0.7: - resolution: {integrity: sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==} - engines: {node: '>=14.18'} + /rimraf@5.0.9: + resolution: {integrity: sha512-3i7b8OcswU6CpU8Ej89quJD4O98id7TtVM5U4Mybh84zQXdrFmDLouWBEEaD/QfO3gDDfH+AGFCGsR7kngzQnA==} + engines: {node: 14 >=14.20 || 16 >=16.20 || >=18} hasBin: true dependencies: - glob: 10.4.2 + glob: 10.4.5 dev: true /run-node@1.0.0: @@ -4433,27 +4236,13 @@ packages: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: false - /saslprep@1.0.3: - resolution: {integrity: sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==} - engines: {node: '>=6'} - requiresBuild: true - dependencies: - sparse-bitfield: 3.0.3 - dev: false - optional: true - /semver-compare@1.0.0: resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} dev: true - /semver@5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} - hasBin: true - /semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true - dev: true /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} @@ -4473,8 +4262,8 @@ packages: lru-cache: 6.0.0 dev: true - /semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + /semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true dev: true @@ -4506,8 +4295,8 @@ packages: randombytes: 2.1.0 dev: true - /serialize-javascript@6.0.0: - resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + /serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} dependencies: randombytes: 2.1.0 dev: true @@ -4538,7 +4327,6 @@ packages: get-intrinsic: 1.2.4 gopd: 1.0.1 has-property-descriptors: 1.0.2 - dev: true /setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} @@ -4578,14 +4366,6 @@ packages: rechoir: 0.6.2 dev: true - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - object-inspect: 1.12.3 - dev: false - /side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} @@ -4593,8 +4373,7 @@ packages: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.1 - dev: true + object-inspect: 1.13.2 /sift@16.0.1: resolution: {integrity: sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==} @@ -4644,11 +4423,11 @@ packages: engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} dev: false - /socks@2.7.1: - resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} - engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + /socks@2.8.3: + resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} dependencies: - ip: 2.0.0 + ip-address: 9.0.5 smart-buffer: 4.2.0 dev: false @@ -4672,8 +4451,8 @@ packages: dev: false optional: true - /spawn-command@0.0.2-1: - resolution: {integrity: sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==} + /spawn-command@0.0.2: + resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} dev: true /spawn-wrap@2.0.0: @@ -4692,22 +4471,22 @@ packages: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.13 + spdx-license-ids: 3.0.18 dev: true - /spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + /spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} dev: true /spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.13 + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.18 dev: true - /spdx-license-ids@3.0.13: - resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} + /spdx-license-ids@3.0.18: + resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} dev: true /split-ca@1.0.1: @@ -4718,8 +4497,12 @@ packages: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true - /sshpk@1.17.0: - resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} + /sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + dev: false + + /sshpk@1.18.0: + resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} engines: {node: '>=0.10.0'} hasBin: true dependencies: @@ -4874,14 +4657,14 @@ packages: dependencies: component-emitter: 1.3.1 cookiejar: 2.1.4 - debug: 4.3.5 + debug: 4.3.6(supports-color@8.1.1) fast-safe-stringify: 2.1.1 form-data: 4.0.0 formidable: 2.1.2 methods: 1.1.2 mime: 2.6.0 - qs: 6.12.1 - semver: 7.6.2 + qs: 6.12.3 + semver: 7.6.3 transitivePeerDependencies: - supports-color dev: true @@ -4918,18 +4701,18 @@ packages: engines: {node: '>= 0.4'} dev: true - /swagger-ui-dist@5.1.0: - resolution: {integrity: sha512-c1KmAjuVODxw+vwkNLALQZrgdlBAuBbr2xSPfYrJgseEi7gFKcTvShysPmyuDI4kcUa1+5rFpjWvXdusKY74mg==} + /swagger-ui-dist@5.17.14: + resolution: {integrity: sha512-CVbSfaLpstV65OnSjbXfVd6Sta3q3F7Cj/yYuvHMp1P90LztOLs6PfUnKEVAeiIVQt9u2SaPwv0LiH/OyMjHRw==} dev: false - /swagger-ui-express@4.6.3(express@4.18.2): + /swagger-ui-express@4.6.3(express@4.19.2): resolution: {integrity: sha512-CDje4PndhTD2HkgyKH3pab+LKspDeB/NhPN2OF1j+piYIamQqBYwAXWESOT1Yju2xFg51bRW9sUng2WxDjzArw==} engines: {node: '>= v0.10.32'} peerDependencies: express: '>=4.0.0 || >=5.0.0-beta' dependencies: - express: 4.18.2 - swagger-ui-dist: 5.1.0 + express: 4.19.2 + swagger-ui-dist: 5.17.14 dev: false /tar-fs@1.16.3: @@ -4987,7 +4770,7 @@ packages: resolution: {integrity: sha512-cfy7GYd0uanjkgVFlcDLtjWUVQLmTHke5pa1djTBW/ppbv5HfHkoDt6cI1JtEj8NKjNE4BoJx+au2/eFQOq4HQ==} dependencies: byline: 5.0.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) dockerode: 2.5.8 get-port: 4.2.0 node-duration: 1.0.4 @@ -5005,10 +4788,11 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true - /timers-ext@0.1.7: - resolution: {integrity: sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==} + /timers-ext@0.1.8: + resolution: {integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==} + engines: {node: '>=0.12'} dependencies: - es5-ext: 0.10.62 + es5-ext: 0.10.64 next-tick: 1.1.0 dev: false @@ -5038,11 +4822,9 @@ packages: engines: {node: '>=0.6'} dev: false - /touch@3.1.0: - resolution: {integrity: sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==} + /touch@3.1.1: + resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} hasBin: true - dependencies: - nopt: 1.0.10 dev: true /tough-cookie@2.4.3: @@ -5058,7 +4840,7 @@ packages: engines: {node: '>=0.8'} dependencies: psl: 1.9.0 - punycode: 2.3.0 + punycode: 2.3.1 dev: false /tr46@0.0.3: @@ -5069,7 +4851,7 @@ packages: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} dependencies: - punycode: 2.3.0 + punycode: 2.3.1 dev: false /tree-kill@1.2.2: @@ -5077,16 +4859,12 @@ packages: hasBin: true dev: true - /triple-beam@1.3.0: - resolution: {integrity: sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==} - dev: false - /triple-beam@1.4.1: resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} engines: {node: '>= 14.0.0'} dev: false - /ts-node@10.9.2(@types/node@20.14.7)(typescript@5.5.2): + /ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -5105,19 +4883,19 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.14.7 - acorn: 8.12.0 + '@types/node': 20.14.13 + acorn: 8.12.1 acorn-walk: 8.3.3 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.5.2 + typescript: 5.5.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true - /ts-node@9.1.1(typescript@5.5.2): + /ts-node@9.1.1(typescript@5.5.4): resolution: {integrity: sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==} engines: {node: '>=10.0.0'} hasBin: true @@ -5129,7 +4907,7 @@ packages: diff: 4.0.2 make-error: 1.3.6 source-map-support: 0.5.21 - typescript: 5.5.2 + typescript: 5.5.4 yn: 3.1.1 dev: true @@ -5150,7 +4928,7 @@ packages: resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} dev: true - /tslint@6.1.3(typescript@5.5.2): + /tslint@6.1.3(typescript@5.5.4): resolution: {integrity: sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==} engines: {node: '>=4.8.0'} deprecated: TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information. @@ -5170,17 +4948,17 @@ packages: resolve: 1.22.8 semver: 5.7.2 tslib: 1.14.1 - tsutils: 2.29.0(typescript@5.5.2) - typescript: 5.5.2 + tsutils: 2.29.0(typescript@5.5.4) + typescript: 5.5.4 dev: true - /tsutils@2.29.0(typescript@5.5.2): + /tsutils@2.29.0(typescript@5.5.4): resolution: {integrity: sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==} peerDependencies: typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev' dependencies: tslib: 1.14.1 - typescript: 5.5.2 + typescript: 5.5.4 dev: true /tunnel-agent@0.6.0: @@ -5203,6 +4981,11 @@ packages: engines: {node: '>=4'} dev: true + /type-detect@4.1.0: + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} + engines: {node: '>=4'} + dev: true + /type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'} @@ -5221,12 +5004,8 @@ packages: mime-types: 2.1.35 dev: false - /type@1.2.0: - resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} - dev: false - - /type@2.7.2: - resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} + /type@2.7.3: + resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} dev: false /typedarray-to-buffer@3.1.5: @@ -5246,7 +5025,7 @@ packages: lunr: 2.3.9 dev: true - /typedoc@0.17.8(typescript@5.5.2): + /typedoc@0.17.8(typescript@5.5.4): resolution: {integrity: sha512-/OyrHCJ8jtzu+QZ+771YaxQ9s4g5Z3XsQE3Ma7q+BL392xxBn4UMvvCdVnqKC2T/dz03/VXSLVKOP3lHmDdc/w==} engines: {node: '>= 8.0.0'} hasBin: true @@ -5263,17 +5042,17 @@ packages: progress: 2.0.3 shelljs: 0.8.5 typedoc-default-themes: 0.10.2 - typescript: 5.5.2 + typescript: 5.5.4 dev: true - /typescript@5.5.2: - resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} + /typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} engines: {node: '>=14.17'} hasBin: true dev: true - /uglify-js@3.18.0: - resolution: {integrity: sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==} + /uglify-js@3.19.1: + resolution: {integrity: sha512-y/2wiW+ceTYR2TSSptAhfnEtpLaQ4Ups5zrjB2d3kuVxHj16j/QJwPl5PvuGy9uARb39J0+iKxcRPvtpsx4A4A==} engines: {node: '>=0.8.0'} hasBin: true requiresBuild: true @@ -5286,6 +5065,10 @@ packages: /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true + + /undici-types@6.11.1: + resolution: {integrity: sha512-mIDEX2ek50x0OlRgxryxsenE5XaQD4on5U2inY7RApK3SOJpofyw7uW2AyfMKkhAxXIceo2DeWGVGwyvng1GNQ==} /universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} @@ -5302,13 +5085,13 @@ packages: engines: {node: '>= 0.8'} dev: false - /update-browserslist-db@1.0.16(browserslist@4.23.1): - resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} + /update-browserslist-db@1.1.0(browserslist@4.23.2): + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.23.1 + browserslist: 4.23.2 escalade: 3.1.2 picocolors: 1.0.1 dev: true @@ -5316,14 +5099,14 @@ packages: /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: - punycode: 2.3.0 + punycode: 2.3.1 dev: false /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} /utils-merge@1.0.1: - resolution: {integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=} + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} dev: false @@ -5416,56 +5199,30 @@ packages: string-width: 2.1.1 dev: true - /winston-transport@4.5.0: - resolution: {integrity: sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==} - engines: {node: '>= 6.4.0'} - dependencies: - logform: 2.5.1 - readable-stream: 3.6.2 - triple-beam: 1.3.0 - dev: false - - /winston-transport@4.7.0: - resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==} + /winston-transport@4.7.1: + resolution: {integrity: sha512-wQCXXVgfv/wUPOfb2x0ruxzwkcZfxcktz6JIMUaPLmcNhO4bZTwA/WtDWK74xV3F2dKu8YadrFv0qhwYjVEwhA==} engines: {node: '>= 12.0.0'} dependencies: - logform: 2.6.0 + logform: 2.6.1 readable-stream: 3.6.2 triple-beam: 1.4.1 dev: false - /winston@3.13.0: - resolution: {integrity: sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ==} + /winston@3.13.1: + resolution: {integrity: sha512-SvZit7VFNvXRzbqGHsv5KSmgbEYR5EiQfDAL9gxYkRqa934Hnk++zze0wANKtMHcy/gI4W/3xmSDwlhf865WGw==} engines: {node: '>= 12.0.0'} dependencies: '@colors/colors': 1.6.0 '@dabh/diagnostics': 2.0.3 async: 3.2.5 is-stream: 2.0.1 - logform: 2.6.0 + logform: 2.6.1 one-time: 1.0.0 readable-stream: 3.6.2 safe-stable-stringify: 2.4.3 stack-trace: 0.0.10 triple-beam: 1.4.1 - winston-transport: 4.7.0 - dev: false - - /winston@3.9.0: - resolution: {integrity: sha512-jW51iW/X95BCW6MMtZWr2jKQBP4hV5bIDq9QrIjfDk6Q9QuxvTKEAlpUNAzP+HYHFFCeENhph16s0zEunu4uuQ==} - engines: {node: '>= 12.0.0'} - dependencies: - '@colors/colors': 1.5.0 - '@dabh/diagnostics': 2.0.3 - async: 3.2.4 - is-stream: 2.0.1 - logform: 2.5.1 - one-time: 1.0.0 - readable-stream: 3.6.2 - safe-stable-stringify: 2.4.3 - stack-trace: 0.0.10 - triple-beam: 1.3.0 - winston-transport: 4.5.0 + winston-transport: 4.7.1 dev: false /wordwrap@1.0.0: @@ -5476,8 +5233,8 @@ packages: resolution: {integrity: sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==} dev: true - /workerpool@6.2.1: - resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} + /workerpool@6.5.1: + resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} dev: true /wrap-ansi@5.1.0: @@ -5571,6 +5328,11 @@ packages: engines: {node: '>=10'} dev: true + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true + /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -5628,7 +5390,7 @@ packages: require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 - yargs-parser: 20.2.4 + yargs-parser: 20.2.9 dev: true /yargs@17.7.2: @@ -5654,12 +5416,12 @@ packages: engines: {node: '>=10'} dev: true - /zod-to-json-schema@3.21.3(zod@3.21.4): - resolution: {integrity: sha512-09W/9oyxeF1/wWnzCb6MursW+lOzgKi91QwE7eTBbC+t/qgfuLsUVDai3lHemSQnQu/UONAcT/fv3ZnDvbTeKg==} + /zod-to-json-schema@3.23.2(zod@3.23.8): + resolution: {integrity: sha512-uSt90Gzc/tUfyNqxnjlfBs8W6WSGpNBv0rVsNxP/BVSMHMKGdthPYff4xtCHYloJGM0CFxFsb3NbC0eqPhfImw==} peerDependencies: - zod: ^3.21.4 + zod: ^3.23.3 dependencies: - zod: 3.21.4 + zod: 3.23.8 - /zod@3.21.4: - resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} + /zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 82c9034b..c9e3cb42 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,4 +1,4 @@ packages: - 'apps/*' - 'packages/*' - - 'scripts/*' \ No newline at end of file + - 'scripts' \ No newline at end of file diff --git a/scripts/README.md b/scripts/README.md new file mode 100644 index 00000000..36d4a2fa --- /dev/null +++ b/scripts/README.md @@ -0,0 +1,12 @@ +# Lectern Scripts + +## Generate + +Create a JSON Schema file representation of the Lectern Dictionary meta schema. This file will be created at the path [`generated/DictionaryMetaSchema.json`](../../generated/DictionaryMetaSchema.json) and is available through the github repository for reference by any users that plan to use JSON schema to validate a data dictionary schema as a valid Lectern Dictionary. + +Entry point: `src/generateMetaSchema.ts` +Workspace Command: `pnpm -w generate` +Local Command: `pnpm generate` + + + diff --git a/scripts/generate/package.json b/scripts/generate/package.json deleted file mode 100644 index 43147da6..00000000 --- a/scripts/generate/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "scripts", - "version": "1.0.0", - "private": true, - "description": "", - "main": "index.js", - "scripts": { - "generate": "npm run generate:metaschema", - "generate:metaschema": "node -r ts-node/register ./src/generateMetaSchema.ts" - }, - "keywords": [], - "author": "", - "license": "AGPL-3.0", - "dependencies": { - "dictionary": "workspace:^", - "zod-to-json-schema": "^3.21.3" - } -} diff --git a/scripts/package.json b/scripts/package.json new file mode 100644 index 00000000..9fb0e751 --- /dev/null +++ b/scripts/package.json @@ -0,0 +1,16 @@ +{ + "name": "lectern-scripts", + "version": "1.0.0", + "private": true, + "description": "Scripts for managing the Lectern monorepo.", + "scripts": { + "generate": "node -r ts-node/register ./src/generateMetaSchema.ts" + }, + "keywords": [], + "license": "AGPL-3.0", + "dependencies": { + "@overture-stack/lectern-dictionary": "workspace:^", + "zod": "^3.23.8", + "zod-to-json-schema": "^3.23.2" + } +} diff --git a/scripts/generate/src/generateMetaSchema.ts b/scripts/src/generateMetaSchema.ts similarity index 90% rename from scripts/generate/src/generateMetaSchema.ts rename to scripts/src/generateMetaSchema.ts index 7ab6f12d..c419a3e2 100644 --- a/scripts/generate/src/generateMetaSchema.ts +++ b/scripts/src/generateMetaSchema.ts @@ -4,14 +4,15 @@ */ import { Dictionary, + DictionaryBase, DictionaryMeta, - NameString, + NameValue, ReferenceArray, ReferenceTag, References, Schema, SchemaField, -} from 'dictionary'; +} from '@overture-stack/lectern-dictionary'; import fs from 'fs'; import { zodToJsonSchema } from 'zod-to-json-schema'; @@ -25,7 +26,7 @@ const jsonSchema = zodToJsonSchema(Dictionary, { ReferenceArray, References, Meta: DictionaryMeta, - Name: NameString, + Name: NameValue, Schema, SchemaField, }, diff --git a/packages/common/tsconfig.json b/scripts/tsconfig.json similarity index 66% rename from packages/common/tsconfig.json rename to scripts/tsconfig.json index 90dcbbd8..57c9c2bc 100644 --- a/packages/common/tsconfig.json +++ b/scripts/tsconfig.json @@ -9,12 +9,9 @@ "noImplicitAny": true, "noUnusedParameters": true, "esModuleInterop": true, - "declaration": true, - "sourceMap": true, - "inlineSources": true, - "outDir": "dist/", - "baseUrl": "./src", + "noEmit": true, + "outDir": "dist", "skipLibCheck": true }, - "include": ["./src/**/*.ts"] + "include": ["./src/**/*.ts", "./test/**/*.ts"] }