From f8cbb3ce2b8cf7793ec9dbe39968a175a2a9997e Mon Sep 17 00:00:00 2001 From: Johnathan Date: Wed, 24 Apr 2024 20:23:53 -0600 Subject: [PATCH 01/11] chore: Update package.json version to 1.0.5 (#1) (#2) * chore: Update package.json version to 1.0.5 * chore: Add GitHub Actions workflow for testing Luca Schema examples --- .github/workflows/test-schema.yml | 20 ++++++++++++++++++++ package.json | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/test-schema.yml diff --git a/.github/workflows/test-schema.yml b/.github/workflows/test-schema.yml new file mode 100644 index 0000000..fb9b508 --- /dev/null +++ b/.github/workflows/test-schema.yml @@ -0,0 +1,20 @@ +name: Test Luca Schema Examples + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [18.x, 20.x] + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + - run: yarn + - run: yarn test diff --git a/package.json b/package.json index cfec2fe..d729f0e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@luca-financial/luca-schema", - "version": "1.0.0", + "version": "1.0.5", "description": "Schemas for the Luca Ledger application", "author": "Johnathan Aspinwall", "main": "dist/index.js", From 95364f5c1e197ebf12c3afac4ac7cd24740b34b9 Mon Sep 17 00:00:00 2001 From: Johnathan Date: Wed, 24 Apr 2024 21:13:31 -0600 Subject: [PATCH 02/11] Bugfix/schemas import (#4) * chore: Update import statement for schemas module * chore: Update package.json version to 1.0.6 --- package.json | 2 +- src/index.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index d729f0e..6ecbf5c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@luca-financial/luca-schema", - "version": "1.0.5", + "version": "1.0.6", "description": "Schemas for the Luca Ledger application", "author": "Johnathan Aspinwall", "main": "dist/index.js", diff --git a/src/index.js b/src/index.js index 783baff..3e40b64 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,4 @@ -import schemas from './schemas.js'; +import schemas from './schemas'; import validators from './validators'; export { schemas, validators }; From a364568a6a9a2e79979d6ee6deb50973b94fc0b2 Mon Sep 17 00:00:00 2001 From: Johnathan Aspinwall Date: Wed, 24 Apr 2024 21:19:14 -0600 Subject: [PATCH 03/11] chore: Update package.json version to 1.0.6 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d729f0e..6ecbf5c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@luca-financial/luca-schema", - "version": "1.0.5", + "version": "1.0.6", "description": "Schemas for the Luca Ledger application", "author": "Johnathan Aspinwall", "main": "dist/index.js", From ffa001a800860bed047c20bae1174a0a0c18843b Mon Sep 17 00:00:00 2001 From: Johnathan Date: Sun, 28 Apr 2024 16:25:01 -0600 Subject: [PATCH 04/11] Constants / Enumerators (#8) * Bugfix/schemas import (#4) * chore: Update import statement for schemas module * chore: Update package.json version to 1.0.6 * feat: Add constants module with enums * chore: Update package.json version to 1.0.7-beta.0 * chore: Update package.json version to 1.0.7-beta.0 --- package.json | 2 +- src/constants.js | 67 ++++++++++++++++++++++++++++++++++++++++++++++++ src/index.js | 3 ++- 3 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 src/constants.js diff --git a/package.json b/package.json index 6ecbf5c..7a6aebe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@luca-financial/luca-schema", - "version": "1.0.6", + "version": "1.0.7-beta.0", "description": "Schemas for the Luca Ledger application", "author": "Johnathan Aspinwall", "main": "dist/index.js", diff --git a/src/constants.js b/src/constants.js new file mode 100644 index 0000000..658dcee --- /dev/null +++ b/src/constants.js @@ -0,0 +1,67 @@ +const TransactionStateEnum = Object.freeze({ + PLANNED: 'PLANNED', + SCHEDULED: 'SCHEDULED', + PENDING: 'PENDING', + COMPLETED: 'COMPLETED', + CANCELLED: 'CANCELLED', + FAILED: 'FAILED', + DISPUTED: 'DISPUTED', + REFUNDED: 'REFUNDED', + TENTATIVE: 'TENTATIVE', + UPCOMING: 'UPCOMING', + DELETED: 'DELETED' +}); + +const CategoryTypeEnum = Object.freeze({ + DEFAULT: 'DEFAULT', + MODIFIED: 'MODIFIED', + CUSTOM: 'CUSTOM' +}); + +const EntityTypeEnum = Object.freeze({ + ACCOUNT: 'ACCOUNT', + RETAILER: 'RETAILER', + BUSINESS: 'BUSINESS', + INDIVIDUAL: 'INDIVIDUAL', + UTILITY: 'UTILITY', + GOVERNMENT: 'GOVERNMENT' +}); + +const EntityStatusEnum = Object.freeze({ + ACTIVE: 'ACTIVE', + INACTIVE: 'INACTIVE', + SUSPENDED: 'SUSPENDED', + DELETED: 'DELETED', + CLOSED: 'CLOSED' +}); + +const RepeatedTransactionFrequencyEnum = Object.freeze({ + DAY: 'DAY', + WEEK: 'WEEK', + MONTH: 'MONTH', + YEAR: 'YEAR' +}); + +const RepeatedTransactionStateEnum = Object.freeze({ + ACTIVE: 'ACTIVE', + PAUSED: 'PAUSED', + COMPLETED: 'COMPLETED', + CANCELLED: 'CANCELLED' +}); + +const RepeatedTransactionOccurrenceStatusEnum = Object.freeze({ + MODIFIED: 'MODIFIED', + DELETED: 'DELETED' +}); + +const constants = { + TransactionStateEnum, + CategoryTypeEnum, + EntityTypeEnum, + EntityStatusEnum, + RepeatedTransactionFrequencyEnum, + RepeatedTransactionStateEnum, + RepeatedTransactionOccurrenceStatusEnum +}; + +export default constants; diff --git a/src/index.js b/src/index.js index 3e40b64..a47c967 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,5 @@ +import constants from './constants'; import schemas from './schemas'; import validators from './validators'; -export { schemas, validators }; +export { constants, schemas, validators }; From cfd8197f7ac6ade61377fb8e42dcffef3162eebf Mon Sep 17 00:00:00 2001 From: Johnathan Date: Sun, 28 Apr 2024 18:57:03 -0600 Subject: [PATCH 05/11] Feature: Luca Validator (#10) * chore: Refactor module exports for lucaValidator and validators * chore: Update package.json version to 1.0.7-beta.1 * Fix unit tests to use lucaValidator --- package.json | 2 +- src/index.js | 4 +-- src/lucaValidator.js | 18 +++++++++++++ src/tests/categories.test.js | 4 +-- src/tests/entities.test.js | 4 +-- src/tests/lucaSchema.test.js | 4 +-- src/tests/recurringTransactionEvents.test.js | 4 +-- src/tests/recurringTransactions.test.js | 4 +-- src/tests/schemas.test.js | 4 +-- src/tests/transactions.test.js | 4 +-- src/validators.js | 28 -------------------- 11 files changed, 35 insertions(+), 45 deletions(-) create mode 100644 src/lucaValidator.js delete mode 100644 src/validators.js diff --git a/package.json b/package.json index 7a6aebe..0ea1bc3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@luca-financial/luca-schema", - "version": "1.0.7-beta.0", + "version": "1.0.7-beta.1", "description": "Schemas for the Luca Ledger application", "author": "Johnathan Aspinwall", "main": "dist/index.js", diff --git a/src/index.js b/src/index.js index a47c967..d59e660 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,5 @@ import constants from './constants'; +import lucaValidator from './lucaValidator'; import schemas from './schemas'; -import validators from './validators'; -export { constants, schemas, validators }; +export { constants,lucaValidator, schemas }; diff --git a/src/lucaValidator.js b/src/lucaValidator.js new file mode 100644 index 0000000..b52c2cc --- /dev/null +++ b/src/lucaValidator.js @@ -0,0 +1,18 @@ +import Ajv2020 from 'ajv/dist/2020'; +import addFormats from 'ajv-formats'; + +import schemas from './schemas'; + +const lucaValidator = new Ajv2020(); +addFormats(lucaValidator); + +Object.entries(schemas).forEach(([key, schema]) => { + if (!lucaValidator.validateSchema(schema)) { + console.error(`Invalid schema: ${key}`); + console.error(lucaValidator.errors); + } else { + lucaValidator.addSchema(schema, key); + } +}); + +export default lucaValidator; diff --git a/src/tests/categories.test.js b/src/tests/categories.test.js index 279f563..a846fed 100644 --- a/src/tests/categories.test.js +++ b/src/tests/categories.test.js @@ -1,7 +1,7 @@ import exampleData from '../examples/categories.json'; -import validators from '../validators'; +import { lucaValidator } from '../'; -const { validateCategory } = validators; +const validateCategory = lucaValidator.getSchema('category'); test('examples are valid categories', () => { exampleData.forEach(example => { diff --git a/src/tests/entities.test.js b/src/tests/entities.test.js index e4bbe16..a57d9b6 100644 --- a/src/tests/entities.test.js +++ b/src/tests/entities.test.js @@ -1,7 +1,7 @@ import exampleData from '../examples/entities.json'; -import validators from '../validators'; +import { lucaValidator } from '../'; -const { validateEntity } = validators; +const validateEntity = lucaValidator.getSchema('entity'); test('examples are valid entities', () => { exampleData.forEach(example => { diff --git a/src/tests/lucaSchema.test.js b/src/tests/lucaSchema.test.js index ca8bd84..651358f 100644 --- a/src/tests/lucaSchema.test.js +++ b/src/tests/lucaSchema.test.js @@ -1,7 +1,7 @@ import exampleData from '../examples/lucaSchema.json'; -import validators from '../validators'; +import { lucaValidator } from '../'; -const { validateLucaSchema } = validators; +const validateLucaSchema = lucaValidator.getSchema('lucaSchema'); test('full luca schema object is valid', () => { const valid = validateLucaSchema(exampleData); diff --git a/src/tests/recurringTransactionEvents.test.js b/src/tests/recurringTransactionEvents.test.js index 7a9948a..6a5b081 100644 --- a/src/tests/recurringTransactionEvents.test.js +++ b/src/tests/recurringTransactionEvents.test.js @@ -1,7 +1,7 @@ import exampleData from '../examples/recurringTransactionEvents.json'; -import validators from '../validators'; +import { lucaValidator } from '../'; -const { validateRecurringTransactionEvent } = validators; +const validateRecurringTransactionEvent = lucaValidator.getSchema('recurringTransactionEvent'); test('examples are valid recurringTransactionEvents', () => { exampleData.forEach(example => { diff --git a/src/tests/recurringTransactions.test.js b/src/tests/recurringTransactions.test.js index 4874bc0..32f9c41 100644 --- a/src/tests/recurringTransactions.test.js +++ b/src/tests/recurringTransactions.test.js @@ -1,7 +1,7 @@ import exampleData from '../examples/recurringTransactions.json'; -import validators from '../validators'; +import { lucaValidator } from '../'; -const { validateRecurringTransaction } = validators; +const validateRecurringTransaction = lucaValidator.getSchema('recurringTransaction'); test('examples are valid recurringTransactions', () => { exampleData.forEach(example => { diff --git a/src/tests/schemas.test.js b/src/tests/schemas.test.js index 5cd41dd..7876d23 100644 --- a/src/tests/schemas.test.js +++ b/src/tests/schemas.test.js @@ -1,7 +1,7 @@ import exampleData from '../examples/schemas.json'; -import validators from '../validators'; +import { lucaValidator } from '../'; -const { validateSchema } = validators; +const validateSchema = lucaValidator.getSchema('schema'); test('examples are valid schema objects', () => { exampleData.forEach(example => { diff --git a/src/tests/transactions.test.js b/src/tests/transactions.test.js index 4e0e68b..098bc24 100644 --- a/src/tests/transactions.test.js +++ b/src/tests/transactions.test.js @@ -1,7 +1,7 @@ import exampleData from '../examples/transactions.json'; -import validators from '../validators'; +import { lucaValidator } from '../'; -const { validateTransaction } = validators; +const validateTransaction = lucaValidator.getSchema('transaction'); test('examples are valid transactions', () => { exampleData.forEach(example => { diff --git a/src/validators.js b/src/validators.js deleted file mode 100644 index 4940fb9..0000000 --- a/src/validators.js +++ /dev/null @@ -1,28 +0,0 @@ -import Ajv2020 from 'ajv/dist/2020'; -import addFormats from 'ajv-formats'; - -import schemas from './schemas'; - -const ajv = new Ajv2020(); -addFormats(ajv); - -Object.entries(schemas).forEach(([key, schema]) => { - if (!ajv.validateSchema(schema)) { - console.error(`Invalid schema: ${key}`); - console.error(ajv.errors); - } else { - ajv.addSchema(schema, key); - } -}); - -const validators = { - validateCategory: ajv.getSchema('category'), - validateEntity: ajv.getSchema('entity'), - validateLucaSchema: ajv.getSchema('lucaSchema'), - validateRecurringTransaction: ajv.getSchema('recurringTransaction'), - validateRecurringTransactionEvent: ajv.getSchema('recurringTransactionEvent'), - validateSchema: ajv.getSchema('schema'), - validateTransaction: ajv.getSchema('transaction') -}; - -export default validators; From 1ae1dc05b729779ed6e28088cd7ef64d13a343d9 Mon Sep 17 00:00:00 2001 From: Johnathan Date: Sun, 28 Apr 2024 19:43:14 -0600 Subject: [PATCH 06/11] Fix/exports (#11) * chore: Update file paths and copy functions for ESM build * chore: Update package.json version to 1.0.7-beta.2 --- package.json | 2 +- scripts/buildEsm.cjs | 46 ++++++++++++++++++++++++++++---------------- scripts/config.cjs | 36 +++++++++++++++++++--------------- 3 files changed, 50 insertions(+), 34 deletions(-) diff --git a/package.json b/package.json index 0ea1bc3..6fc9a68 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@luca-financial/luca-schema", - "version": "1.0.7-beta.1", + "version": "1.0.7-beta.2", "description": "Schemas for the Luca Ledger application", "author": "Johnathan Aspinwall", "main": "dist/index.js", diff --git a/scripts/buildEsm.cjs b/scripts/buildEsm.cjs index 9dd9fcf..8d13389 100644 --- a/scripts/buildEsm.cjs +++ b/scripts/buildEsm.cjs @@ -1,46 +1,58 @@ -const fs = require("fs-extra"); +const fs = require('fs-extra'); -const config = require("./config.cjs"); +const config = require('./config.cjs'); const { schemasSrc, + constantsSrc, indexSrc, - validatorsSrc, + validatorSrc, + esmConstantsDst, esmIndexDst, - esmValidatorsDst, - esmSchemasDst, + esmValidatorDst, + esmSchemasDst } = config; +const copyConstants = async () => { + return fs + .copy(constantsSrc, esmConstantsDst) + .then(() => console.log('Copy constants.js completed!')) + .catch(err => + console.error('An error occurred while copying constants.js', err) + ); +}; + const copyIndex = async () => { return fs .copy(indexSrc, esmIndexDst) - .then(() => console.log("Copy index.js completed!")) - .catch((err) => - console.error("An error occurred while copying index.js", err) + .then(() => console.log('Copy index.js completed!')) + .catch(err => + console.error('An error occurred while copying index.js', err) ); }; -const copyValidators = async () => { +const copyValidator = async () => { return fs - .copy(validatorsSrc, esmValidatorsDst) - .then(() => console.log("Copy validators.js completed!")) - .catch((err) => - console.error("An error occurred while copying validators.js", err) + .copy(validatorSrc, esmValidatorDst) + .then(() => console.log('Copy validators.js completed!')) + .catch(err => + console.error('An error occurred while copying validators.js', err) ); }; const copySchemas = async () => { return fs .copy(schemasSrc, esmSchemasDst, { overwrite: true }) - .then(() => console.log("Copy schemas/ to cjs/ completed!")) - .catch((err) => - console.error("An error occurred while copying the schemas/ folder.", err) + .then(() => console.log('Copy schemas/ to cjs/ completed!')) + .catch(err => + console.error('An error occurred while copying the schemas/ folder.', err) ); }; const buildEsm = async () => { + await copyConstants(); await copyIndex(); - await copyValidators(); + await copyValidator(); await copySchemas(); }; diff --git a/scripts/config.cjs b/scripts/config.cjs index 81a840e..9ea0153 100644 --- a/scripts/config.cjs +++ b/scripts/config.cjs @@ -1,21 +1,23 @@ -const path = require("path"); +const path = require('path'); -const srcPath = path.join(__dirname, "..", "src"); -const examplesSrc = path.join(srcPath, "examples"); -const indexSrc = path.join(srcPath, "index.js"); -const schemasSrc = path.join(srcPath, "schemas"); -const validatorsSrc = path.join(srcPath, "validators.js"); +const srcPath = path.join(__dirname, '..', 'src'); +const constantsSrc = path.join(srcPath, 'constants.js'); +const examplesSrc = path.join(srcPath, 'examples'); +const indexSrc = path.join(srcPath, 'index.js'); +const schemasSrc = path.join(srcPath, 'schemas'); +const validatorSrc = path.join(srcPath, 'lucaValidator.js'); -const distPath = path.join(__dirname, "..", "dist"); +const distPath = path.join(__dirname, '..', 'dist'); -const cjsPath = path.join(distPath, "cjs"); -const cjsExamplesDst = path.join(cjsPath, "examples"); -const cjsSchemasDst = path.join(cjsPath, "schemas"); +const cjsPath = path.join(distPath, 'cjs'); +const cjsExamplesDst = path.join(cjsPath, 'examples'); +const cjsSchemasDst = path.join(cjsPath, 'schemas'); -const esmPath = path.join(distPath, "esm"); -const esmIndexDst = path.join(esmPath, "index.js"); -const esmSchemasDst = path.join(esmPath, "schemas"); -const esmValidatorsDst = path.join(esmPath, "validators.js"); +const esmPath = path.join(distPath, 'esm'); +const esmConstantsDst = path.join(esmPath, 'constants.js'); +const esmIndexDst = path.join(esmPath, 'index.js'); +const esmSchemasDst = path.join(esmPath, 'schemas'); +const esmValidatorDst = path.join(esmPath, 'lucaValidator.js'); module.exports = { distPath, @@ -23,12 +25,14 @@ module.exports = { esmPath, cjsExamplesDst, cjsSchemasDst, + esmConstantsDst, esmIndexDst, - esmValidatorsDst, + esmValidatorDst, esmSchemasDst, srcPath, + constantsSrc, examplesSrc, indexSrc, schemasSrc, - validatorsSrc, + validatorSrc }; From c80686aacc18f259186aa5f9412d7f5156ffe828 Mon Sep 17 00:00:00 2001 From: Johnathan Date: Sun, 28 Apr 2024 21:30:18 -0600 Subject: [PATCH 07/11] chore: Update package.json version to 1.0.7-beta.4 (#12) --- package.json | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 6fc9a68..0516149 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@luca-financial/luca-schema", - "version": "1.0.7-beta.2", + "version": "1.0.7-beta.4", "description": "Schemas for the Luca Ledger application", "author": "Johnathan Aspinwall", "main": "dist/index.js", @@ -54,12 +54,7 @@ } }, "files": [ - "dist/cjs/index.js", - "dist/cjs/validators.js", - "dist/cjs/schemas/", - "dist/esm/index.js", - "dist/esm/validators.js", - "dist/esm/schemas/", + "dist/", "LICENSE", "README.md" ] From 72fee0643469b77bcc2fbc0d537dfb692956cf5a Mon Sep 17 00:00:00 2001 From: Johnathan Aspinwall Date: Wed, 1 May 2024 09:57:46 -0600 Subject: [PATCH 08/11] chore: merge --- package.json | 9 +-- scripts/buildEsm.cjs | 46 +++++++++----- scripts/config.cjs | 36 ++++++----- src/constants.js | 67 ++++++++++++++++++++ src/index.js | 5 +- src/lucaValidator.js | 18 ++++++ src/tests/categories.test.js | 4 +- src/tests/entities.test.js | 4 +- src/tests/lucaSchema.test.js | 4 +- src/tests/recurringTransactionEvents.test.js | 4 +- src/tests/recurringTransactions.test.js | 4 +- src/tests/schemas.test.js | 4 +- src/tests/transactions.test.js | 4 +- src/validators.js | 28 -------- 14 files changed, 153 insertions(+), 84 deletions(-) create mode 100644 src/constants.js create mode 100644 src/lucaValidator.js delete mode 100644 src/validators.js diff --git a/package.json b/package.json index 6ecbf5c..0516149 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@luca-financial/luca-schema", - "version": "1.0.6", + "version": "1.0.7-beta.4", "description": "Schemas for the Luca Ledger application", "author": "Johnathan Aspinwall", "main": "dist/index.js", @@ -54,12 +54,7 @@ } }, "files": [ - "dist/cjs/index.js", - "dist/cjs/validators.js", - "dist/cjs/schemas/", - "dist/esm/index.js", - "dist/esm/validators.js", - "dist/esm/schemas/", + "dist/", "LICENSE", "README.md" ] diff --git a/scripts/buildEsm.cjs b/scripts/buildEsm.cjs index 9dd9fcf..8d13389 100644 --- a/scripts/buildEsm.cjs +++ b/scripts/buildEsm.cjs @@ -1,46 +1,58 @@ -const fs = require("fs-extra"); +const fs = require('fs-extra'); -const config = require("./config.cjs"); +const config = require('./config.cjs'); const { schemasSrc, + constantsSrc, indexSrc, - validatorsSrc, + validatorSrc, + esmConstantsDst, esmIndexDst, - esmValidatorsDst, - esmSchemasDst, + esmValidatorDst, + esmSchemasDst } = config; +const copyConstants = async () => { + return fs + .copy(constantsSrc, esmConstantsDst) + .then(() => console.log('Copy constants.js completed!')) + .catch(err => + console.error('An error occurred while copying constants.js', err) + ); +}; + const copyIndex = async () => { return fs .copy(indexSrc, esmIndexDst) - .then(() => console.log("Copy index.js completed!")) - .catch((err) => - console.error("An error occurred while copying index.js", err) + .then(() => console.log('Copy index.js completed!')) + .catch(err => + console.error('An error occurred while copying index.js', err) ); }; -const copyValidators = async () => { +const copyValidator = async () => { return fs - .copy(validatorsSrc, esmValidatorsDst) - .then(() => console.log("Copy validators.js completed!")) - .catch((err) => - console.error("An error occurred while copying validators.js", err) + .copy(validatorSrc, esmValidatorDst) + .then(() => console.log('Copy validators.js completed!')) + .catch(err => + console.error('An error occurred while copying validators.js', err) ); }; const copySchemas = async () => { return fs .copy(schemasSrc, esmSchemasDst, { overwrite: true }) - .then(() => console.log("Copy schemas/ to cjs/ completed!")) - .catch((err) => - console.error("An error occurred while copying the schemas/ folder.", err) + .then(() => console.log('Copy schemas/ to cjs/ completed!')) + .catch(err => + console.error('An error occurred while copying the schemas/ folder.', err) ); }; const buildEsm = async () => { + await copyConstants(); await copyIndex(); - await copyValidators(); + await copyValidator(); await copySchemas(); }; diff --git a/scripts/config.cjs b/scripts/config.cjs index 81a840e..9ea0153 100644 --- a/scripts/config.cjs +++ b/scripts/config.cjs @@ -1,21 +1,23 @@ -const path = require("path"); +const path = require('path'); -const srcPath = path.join(__dirname, "..", "src"); -const examplesSrc = path.join(srcPath, "examples"); -const indexSrc = path.join(srcPath, "index.js"); -const schemasSrc = path.join(srcPath, "schemas"); -const validatorsSrc = path.join(srcPath, "validators.js"); +const srcPath = path.join(__dirname, '..', 'src'); +const constantsSrc = path.join(srcPath, 'constants.js'); +const examplesSrc = path.join(srcPath, 'examples'); +const indexSrc = path.join(srcPath, 'index.js'); +const schemasSrc = path.join(srcPath, 'schemas'); +const validatorSrc = path.join(srcPath, 'lucaValidator.js'); -const distPath = path.join(__dirname, "..", "dist"); +const distPath = path.join(__dirname, '..', 'dist'); -const cjsPath = path.join(distPath, "cjs"); -const cjsExamplesDst = path.join(cjsPath, "examples"); -const cjsSchemasDst = path.join(cjsPath, "schemas"); +const cjsPath = path.join(distPath, 'cjs'); +const cjsExamplesDst = path.join(cjsPath, 'examples'); +const cjsSchemasDst = path.join(cjsPath, 'schemas'); -const esmPath = path.join(distPath, "esm"); -const esmIndexDst = path.join(esmPath, "index.js"); -const esmSchemasDst = path.join(esmPath, "schemas"); -const esmValidatorsDst = path.join(esmPath, "validators.js"); +const esmPath = path.join(distPath, 'esm'); +const esmConstantsDst = path.join(esmPath, 'constants.js'); +const esmIndexDst = path.join(esmPath, 'index.js'); +const esmSchemasDst = path.join(esmPath, 'schemas'); +const esmValidatorDst = path.join(esmPath, 'lucaValidator.js'); module.exports = { distPath, @@ -23,12 +25,14 @@ module.exports = { esmPath, cjsExamplesDst, cjsSchemasDst, + esmConstantsDst, esmIndexDst, - esmValidatorsDst, + esmValidatorDst, esmSchemasDst, srcPath, + constantsSrc, examplesSrc, indexSrc, schemasSrc, - validatorsSrc, + validatorSrc }; diff --git a/src/constants.js b/src/constants.js new file mode 100644 index 0000000..658dcee --- /dev/null +++ b/src/constants.js @@ -0,0 +1,67 @@ +const TransactionStateEnum = Object.freeze({ + PLANNED: 'PLANNED', + SCHEDULED: 'SCHEDULED', + PENDING: 'PENDING', + COMPLETED: 'COMPLETED', + CANCELLED: 'CANCELLED', + FAILED: 'FAILED', + DISPUTED: 'DISPUTED', + REFUNDED: 'REFUNDED', + TENTATIVE: 'TENTATIVE', + UPCOMING: 'UPCOMING', + DELETED: 'DELETED' +}); + +const CategoryTypeEnum = Object.freeze({ + DEFAULT: 'DEFAULT', + MODIFIED: 'MODIFIED', + CUSTOM: 'CUSTOM' +}); + +const EntityTypeEnum = Object.freeze({ + ACCOUNT: 'ACCOUNT', + RETAILER: 'RETAILER', + BUSINESS: 'BUSINESS', + INDIVIDUAL: 'INDIVIDUAL', + UTILITY: 'UTILITY', + GOVERNMENT: 'GOVERNMENT' +}); + +const EntityStatusEnum = Object.freeze({ + ACTIVE: 'ACTIVE', + INACTIVE: 'INACTIVE', + SUSPENDED: 'SUSPENDED', + DELETED: 'DELETED', + CLOSED: 'CLOSED' +}); + +const RepeatedTransactionFrequencyEnum = Object.freeze({ + DAY: 'DAY', + WEEK: 'WEEK', + MONTH: 'MONTH', + YEAR: 'YEAR' +}); + +const RepeatedTransactionStateEnum = Object.freeze({ + ACTIVE: 'ACTIVE', + PAUSED: 'PAUSED', + COMPLETED: 'COMPLETED', + CANCELLED: 'CANCELLED' +}); + +const RepeatedTransactionOccurrenceStatusEnum = Object.freeze({ + MODIFIED: 'MODIFIED', + DELETED: 'DELETED' +}); + +const constants = { + TransactionStateEnum, + CategoryTypeEnum, + EntityTypeEnum, + EntityStatusEnum, + RepeatedTransactionFrequencyEnum, + RepeatedTransactionStateEnum, + RepeatedTransactionOccurrenceStatusEnum +}; + +export default constants; diff --git a/src/index.js b/src/index.js index 3e40b64..3d5ecb4 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,5 @@ +import constants from './constants'; +import lucaValidator from './lucaValidator'; import schemas from './schemas'; -import validators from './validators'; -export { schemas, validators }; +export { constants, lucaValidator, schemas }; diff --git a/src/lucaValidator.js b/src/lucaValidator.js new file mode 100644 index 0000000..b52c2cc --- /dev/null +++ b/src/lucaValidator.js @@ -0,0 +1,18 @@ +import Ajv2020 from 'ajv/dist/2020'; +import addFormats from 'ajv-formats'; + +import schemas from './schemas'; + +const lucaValidator = new Ajv2020(); +addFormats(lucaValidator); + +Object.entries(schemas).forEach(([key, schema]) => { + if (!lucaValidator.validateSchema(schema)) { + console.error(`Invalid schema: ${key}`); + console.error(lucaValidator.errors); + } else { + lucaValidator.addSchema(schema, key); + } +}); + +export default lucaValidator; diff --git a/src/tests/categories.test.js b/src/tests/categories.test.js index 279f563..a846fed 100644 --- a/src/tests/categories.test.js +++ b/src/tests/categories.test.js @@ -1,7 +1,7 @@ import exampleData from '../examples/categories.json'; -import validators from '../validators'; +import { lucaValidator } from '../'; -const { validateCategory } = validators; +const validateCategory = lucaValidator.getSchema('category'); test('examples are valid categories', () => { exampleData.forEach(example => { diff --git a/src/tests/entities.test.js b/src/tests/entities.test.js index e4bbe16..a57d9b6 100644 --- a/src/tests/entities.test.js +++ b/src/tests/entities.test.js @@ -1,7 +1,7 @@ import exampleData from '../examples/entities.json'; -import validators from '../validators'; +import { lucaValidator } from '../'; -const { validateEntity } = validators; +const validateEntity = lucaValidator.getSchema('entity'); test('examples are valid entities', () => { exampleData.forEach(example => { diff --git a/src/tests/lucaSchema.test.js b/src/tests/lucaSchema.test.js index ca8bd84..651358f 100644 --- a/src/tests/lucaSchema.test.js +++ b/src/tests/lucaSchema.test.js @@ -1,7 +1,7 @@ import exampleData from '../examples/lucaSchema.json'; -import validators from '../validators'; +import { lucaValidator } from '../'; -const { validateLucaSchema } = validators; +const validateLucaSchema = lucaValidator.getSchema('lucaSchema'); test('full luca schema object is valid', () => { const valid = validateLucaSchema(exampleData); diff --git a/src/tests/recurringTransactionEvents.test.js b/src/tests/recurringTransactionEvents.test.js index 7a9948a..6a5b081 100644 --- a/src/tests/recurringTransactionEvents.test.js +++ b/src/tests/recurringTransactionEvents.test.js @@ -1,7 +1,7 @@ import exampleData from '../examples/recurringTransactionEvents.json'; -import validators from '../validators'; +import { lucaValidator } from '../'; -const { validateRecurringTransactionEvent } = validators; +const validateRecurringTransactionEvent = lucaValidator.getSchema('recurringTransactionEvent'); test('examples are valid recurringTransactionEvents', () => { exampleData.forEach(example => { diff --git a/src/tests/recurringTransactions.test.js b/src/tests/recurringTransactions.test.js index 4874bc0..32f9c41 100644 --- a/src/tests/recurringTransactions.test.js +++ b/src/tests/recurringTransactions.test.js @@ -1,7 +1,7 @@ import exampleData from '../examples/recurringTransactions.json'; -import validators from '../validators'; +import { lucaValidator } from '../'; -const { validateRecurringTransaction } = validators; +const validateRecurringTransaction = lucaValidator.getSchema('recurringTransaction'); test('examples are valid recurringTransactions', () => { exampleData.forEach(example => { diff --git a/src/tests/schemas.test.js b/src/tests/schemas.test.js index 5cd41dd..7876d23 100644 --- a/src/tests/schemas.test.js +++ b/src/tests/schemas.test.js @@ -1,7 +1,7 @@ import exampleData from '../examples/schemas.json'; -import validators from '../validators'; +import { lucaValidator } from '../'; -const { validateSchema } = validators; +const validateSchema = lucaValidator.getSchema('schema'); test('examples are valid schema objects', () => { exampleData.forEach(example => { diff --git a/src/tests/transactions.test.js b/src/tests/transactions.test.js index 4e0e68b..098bc24 100644 --- a/src/tests/transactions.test.js +++ b/src/tests/transactions.test.js @@ -1,7 +1,7 @@ import exampleData from '../examples/transactions.json'; -import validators from '../validators'; +import { lucaValidator } from '../'; -const { validateTransaction } = validators; +const validateTransaction = lucaValidator.getSchema('transaction'); test('examples are valid transactions', () => { exampleData.forEach(example => { diff --git a/src/validators.js b/src/validators.js deleted file mode 100644 index 4940fb9..0000000 --- a/src/validators.js +++ /dev/null @@ -1,28 +0,0 @@ -import Ajv2020 from 'ajv/dist/2020'; -import addFormats from 'ajv-formats'; - -import schemas from './schemas'; - -const ajv = new Ajv2020(); -addFormats(ajv); - -Object.entries(schemas).forEach(([key, schema]) => { - if (!ajv.validateSchema(schema)) { - console.error(`Invalid schema: ${key}`); - console.error(ajv.errors); - } else { - ajv.addSchema(schema, key); - } -}); - -const validators = { - validateCategory: ajv.getSchema('category'), - validateEntity: ajv.getSchema('entity'), - validateLucaSchema: ajv.getSchema('lucaSchema'), - validateRecurringTransaction: ajv.getSchema('recurringTransaction'), - validateRecurringTransactionEvent: ajv.getSchema('recurringTransactionEvent'), - validateSchema: ajv.getSchema('schema'), - validateTransaction: ajv.getSchema('transaction') -}; - -export default validators; From ae08a379618f8969745dbf85fc47dc2cefe68f3e Mon Sep 17 00:00:00 2001 From: Johnathan Date: Wed, 1 May 2024 10:03:22 -0600 Subject: [PATCH 09/11] chore: Update package.json version to 1.0.7 (#14) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0516149..9ffb6a8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@luca-financial/luca-schema", - "version": "1.0.7-beta.4", + "version": "1.0.7", "description": "Schemas for the Luca Ledger application", "author": "Johnathan Aspinwall", "main": "dist/index.js", From eea5f3d35026c76e9438e1bf6dd2664fa9bdd62a Mon Sep 17 00:00:00 2001 From: Johnathan Date: Wed, 1 May 2024 11:43:17 -0600 Subject: [PATCH 10/11] Fix/contants to enums (#15) * refactor: Rename constants.js to enums.js and update related imports * chore: Update eslint configuration and devDependencies --- eslint.config.js | 37 +++ package.json | 32 +- src/{constants.js => enums.js} | 26 +- src/index.js | 4 +- yarn.lock | 527 ++++++++++++++++++++++++++++++--- 5 files changed, 569 insertions(+), 57 deletions(-) create mode 100644 eslint.config.js rename src/{constants.js => enums.js} (64%) diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..c163301 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,37 @@ +import globals from 'globals'; +import pluginJs from '@eslint/js'; +import prettierPlugin from 'eslint-plugin-prettier'; +import jsonPlugin from 'eslint-plugin-json'; + +export default [ + { + languageOptions: { + globals: globals.browser, + ecmaVersion: 2023, + sourceType: 'module' + }, + parserOptions: { + requireConfigFile: false, + babelOptions: { + presets: ['@babel/preset-env'] + } + } + }, + pluginJs.configs.recommended, + prettierPlugin.configs.recommended, + jsonPlugin.configs.recommended, + { + settings: { + jest: { + version: 29 + } + }, + plugins: { + prettier: prettierPlugin, + json: jsonPlugin + }, + rules: { + 'prettier/prettier': ['error'], + } + } +]; diff --git a/package.json b/package.json index 9ffb6a8..f2a60a8 100644 --- a/package.json +++ b/package.json @@ -31,18 +31,6 @@ "publish-beta": "yarn && yarn build && yarn publish --tag beta --access public", "test": "yarn build && jest" }, - "devDependencies": { - "@babel/cli": "^7.24.1", - "@babel/core": "^7.24.4", - "@babel/preset-env": "^7.24.4", - "ajv": "^8.12.0", - "ajv-formats": "^2.1.1", - "babel-jest": "^29.7.0", - "fs-extra": "^11.2.0", - "jest": "^29.7.0", - "prettier": "^3.2.5", - "rimraf": "^5.0.5" - }, "exports": { ".": { "import": "./dist/esm/index.js", @@ -57,5 +45,23 @@ "dist/", "LICENSE", "README.md" - ] + ], + "devDependencies": { + "@babel/cli": "^7.24.1", + "@babel/core": "^7.24.4", + "@babel/preset-env": "^7.24.4", + "@eslint/js": "^9.1.1", + "ajv": "^8.12.0", + "ajv-formats": "^2.1.1", + "babel-jest": "^29.7.0", + "eslint": "^9.1.1", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-json": "^3.1.0", + "eslint-plugin-prettier": "^5.1.3", + "fs-extra": "^11.2.0", + "globals": "^15.1.0", + "jest": "^29.7.0", + "prettier": "^3.2.5", + "rimraf": "^5.0.5" + } } diff --git a/src/constants.js b/src/enums.js similarity index 64% rename from src/constants.js rename to src/enums.js index 658dcee..d0b97c1 100644 --- a/src/constants.js +++ b/src/enums.js @@ -1,3 +1,13 @@ +const SchemasEnum = Object.freeze({ + CATEGORY: 'category', + ENTITY: 'entity', + LUCASCHEMA: 'lucaSchema', + RECURRING_TRANSACTION: 'recurringTransaction', + RECURRING_TRANSACTION_EVENT: 'recurringTransactionEvent', + SCHEMA: 'schema', + TRANSACTION: 'transaction' +}); + const TransactionStateEnum = Object.freeze({ PLANNED: 'PLANNED', SCHEDULED: 'SCHEDULED', @@ -35,33 +45,33 @@ const EntityStatusEnum = Object.freeze({ CLOSED: 'CLOSED' }); -const RepeatedTransactionFrequencyEnum = Object.freeze({ +const RecurringTransactionFrequencyEnum = Object.freeze({ DAY: 'DAY', WEEK: 'WEEK', MONTH: 'MONTH', YEAR: 'YEAR' }); -const RepeatedTransactionStateEnum = Object.freeze({ +const RecurringTransactionStateEnum = Object.freeze({ ACTIVE: 'ACTIVE', PAUSED: 'PAUSED', COMPLETED: 'COMPLETED', CANCELLED: 'CANCELLED' }); -const RepeatedTransactionOccurrenceStatusEnum = Object.freeze({ +const RecurringTransactionEventStatusEnum = Object.freeze({ MODIFIED: 'MODIFIED', DELETED: 'DELETED' }); -const constants = { +const enums = { TransactionStateEnum, CategoryTypeEnum, EntityTypeEnum, EntityStatusEnum, - RepeatedTransactionFrequencyEnum, - RepeatedTransactionStateEnum, - RepeatedTransactionOccurrenceStatusEnum + RecurringTransactionFrequencyEnum, + RecurringTransactionStateEnum, + RecurringTransactionEventStatusEnum }; -export default constants; +export default enums; diff --git a/src/index.js b/src/index.js index 3d5ecb4..7ec48ab 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,5 @@ -import constants from './constants'; +import enums from './enums'; import lucaValidator from './lucaValidator'; import schemas from './schemas'; -export { constants, lucaValidator, schemas }; +export { enums, lucaValidator, schemas }; diff --git a/yarn.lock b/yarn.lock index 670e32c..20bf386 100644 --- a/yarn.lock +++ b/yarn.lock @@ -993,6 +993,62 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.6.1": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + +"@eslint/eslintrc@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.0.2.tgz#36180f8e85bf34d2fe3ccc2261e8e204a411ab4e" + integrity sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^10.0.1" + globals "^14.0.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@9.1.1", "@eslint/js@^9.1.1": + version "9.1.1" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.1.1.tgz#eb0f82461d12779bbafc1b5045cde3143d350a8a" + integrity sha512-5WoDz3Y19Bg2BnErkZTp0en+c/i9PvgFS7MBe1+m60HjFr0hrphlAGp4yzI7pxpt4xShln4ZyYp4neJm8hmOkQ== + +"@humanwhocodes/config-array@^0.13.0": + version "0.13.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748" + integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== + dependencies: + "@humanwhocodes/object-schema" "^2.0.3" + debug "^4.3.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== + +"@humanwhocodes/retry@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.2.3.tgz#c9aa036d1afa643f1250e83150f39efb3a15a631" + integrity sha512-X38nUbachlb01YMlvPFojKoiXq+LzZvuSce70KPMPdeM1Rj03k4dR7lDslhbqXn3Ang4EU3+EAmwEAsbrjHW3g== + "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" @@ -1250,11 +1306,37 @@ resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + "@pkgjs/parseargs@^0.11.0": version "0.11.0" resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== +"@pkgr/core@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" + integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== + "@sinclair/typebox@^0.27.8": version "0.27.8" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" @@ -1357,6 +1439,16 @@ dependencies: "@types/yargs-parser" "*" +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn@^8.11.3: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + ajv-formats@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" @@ -1364,6 +1456,16 @@ ajv-formats@^2.1.1: dependencies: ajv "^8.0.0" +ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + ajv@^8.0.0, ajv@^8.12.0: version "8.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" @@ -1430,6 +1532,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + babel-jest@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" @@ -1713,7 +1820,7 @@ create-jest@^29.7.0: jest-util "^29.7.0" prompts "^2.0.1" -cross-spawn@^7.0.0, cross-spawn@^7.0.3: +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -1722,7 +1829,7 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -1734,6 +1841,11 @@ dedent@^1.0.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a" integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + deepmerge@^4.2.2: version "4.3.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" @@ -1796,11 +1908,123 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-config-prettier@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== + +eslint-plugin-json@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-json/-/eslint-plugin-json-3.1.0.tgz#251108ba1681c332e0a442ef9513bd293619de67" + integrity sha512-MrlG2ynFEHe7wDGwbUuFPsaT2b1uhuEFhJ+W1f1u+1C2EkXmTYJp4B1aAdQQ8M+CC3t//N/oRKiIVw14L2HR1g== + dependencies: + lodash "^4.17.21" + vscode-json-languageservice "^4.1.6" + +eslint-plugin-prettier@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" + integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== + dependencies: + prettier-linter-helpers "^1.0.0" + synckit "^0.8.6" + +eslint-scope@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.0.1.tgz#a9601e4b81a0b9171657c343fb13111688963cfc" + integrity sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint-visitor-keys@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb" + integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== + +eslint@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.1.1.tgz#39ec657ccd12813cb4a1dab2f9229dcc6e468271" + integrity sha512-b4cRQ0BeZcSEzPpY2PjFY70VbO32K7BStTGtBsnIGdTSEEQzBi8hPBcGQmTG2zUvFr9uLe0TK42bw8YszuHEqg== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^3.0.2" + "@eslint/js" "9.1.1" + "@humanwhocodes/config-array" "^0.13.0" + "@humanwhocodes/module-importer" "^1.0.1" + "@humanwhocodes/retry" "^0.2.3" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + escape-string-regexp "^4.0.0" + eslint-scope "^8.0.1" + eslint-visitor-keys "^4.0.0" + espree "^10.0.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^8.0.0" + find-up "^5.0.0" + glob-parent "^6.0.2" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +espree@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-10.0.1.tgz#600e60404157412751ba4a6f3a2ee1a42433139f" + integrity sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww== + dependencies: + acorn "^8.11.3" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^4.0.0" + esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -1837,16 +2061,33 @@ expect@^29.7.0: jest-message-util "^29.7.0" jest-util "^29.7.0" -fast-deep-equal@^3.1.1: +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-json-stable-stringify@^2.1.0: +fast-diff@^1.1.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + fb-watchman@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" @@ -1854,6 +2095,13 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== + dependencies: + flat-cache "^4.0.0" + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -1869,6 +2117,27 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" + integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.4" + +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + foreground-child@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" @@ -1926,6 +2195,13 @@ get-stream@^6.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -1961,6 +2237,16 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globals@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" + integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== + +globals@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-15.1.0.tgz#4e03d200c8362201636b8cdfaa316d6cef67ff1e" + integrity sha512-926gJqg+4mkxwYKiFvoomM4J0kWESfk3qfTvRL2/oc/tK/eTDBbrfcKnSa2KtfdxB5onoL7D3A3qIHQFpd4+UA== + graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" @@ -1993,6 +2279,19 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +ignore@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + import-local@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" @@ -2053,7 +2352,7 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-glob@^4.0.1, is-glob@~4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -2065,6 +2364,11 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + is-stream@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" @@ -2508,6 +2812,13 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -2518,21 +2829,41 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-even-better-errors@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + json-schema-traverse@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== +jsonc-parser@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz#031904571ccf929d7670ee8c547545081cb37f1a" + integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA== + jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" @@ -2542,6 +2873,13 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +keyv@^4.5.4: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" @@ -2552,6 +2890,14 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" @@ -2564,11 +2910,28 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + lru-cache@^10.2.0: version "10.2.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" @@ -2628,7 +2991,7 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -minimatch@^3.0.4, minimatch@^3.1.1: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -2693,6 +3056,18 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +optionator@^0.9.3: + version "0.9.4" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.5" + p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -2700,7 +3075,7 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.1.0: +p-limit@^3.0.2, p-limit@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== @@ -2714,11 +3089,25 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + parse-json@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" @@ -2784,6 +3173,18 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + prettier@^3.2.5: version "3.2.5" resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" @@ -2816,6 +3217,11 @@ pure-rand@^6.0.0: resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2" integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + react-is@^18.0.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" @@ -2888,6 +3294,11 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + resolve-from@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" @@ -2907,6 +3318,11 @@ resolve@^1.14.2, resolve@^1.20.0: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + rimraf@^5.0.5: version "5.0.5" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.5.tgz#9be65d2d6e683447d2e9013da2bf451139a61ccf" @@ -2914,6 +3330,13 @@ rimraf@^5.0.5: dependencies: glob "^10.3.7" +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + semver@^5.6.0: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" @@ -3001,16 +3424,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -3028,14 +3442,7 @@ string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -3090,6 +3497,14 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +synckit@^0.8.6: + version "0.8.8" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" + integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== + dependencies: + "@pkgr/core" "^0.1.0" + tslib "^2.6.2" + test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -3099,6 +3514,11 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -3116,6 +3536,18 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +tslib@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + type-detect@4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" @@ -3183,6 +3615,37 @@ v8-to-istanbul@^9.0.1: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^2.0.0" +vscode-json-languageservice@^4.1.6: + version "4.2.1" + resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-4.2.1.tgz#94b6f471ece193bf4a1ef37f6ab5cce86d50a8b4" + integrity sha512-xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA== + dependencies: + jsonc-parser "^3.0.0" + vscode-languageserver-textdocument "^1.0.3" + vscode-languageserver-types "^3.16.0" + vscode-nls "^5.0.0" + vscode-uri "^3.0.3" + +vscode-languageserver-textdocument@^1.0.3: + version "1.0.11" + resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz#0822a000e7d4dc083312580d7575fe9e3ba2e2bf" + integrity sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA== + +vscode-languageserver-types@^3.16.0: + version "3.17.5" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz#3273676f0cf2eab40b3f44d085acbb7f08a39d8a" + integrity sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg== + +vscode-nls@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-5.2.0.tgz#3cb6893dd9bd695244d8a024bdf746eea665cc3f" + integrity sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng== + +vscode-uri@^3.0.3: + version "3.0.8" + resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.8.tgz#1770938d3e72588659a172d0fd4642780083ff9f" + integrity sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw== + walker@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" @@ -3197,16 +3660,12 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== -wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== From ec64a1c904aa3c955dd9a6f3de1977e1e2cb576c Mon Sep 17 00:00:00 2001 From: Johnathan Date: Wed, 1 May 2024 11:53:21 -0600 Subject: [PATCH 11/11] chore: Rename constants.js to enums.js and update related imports (#16) --- scripts/buildEsm.cjs | 14 +++++++------- scripts/config.cjs | 8 ++++---- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/scripts/buildEsm.cjs b/scripts/buildEsm.cjs index 8d13389..6345308 100644 --- a/scripts/buildEsm.cjs +++ b/scripts/buildEsm.cjs @@ -4,21 +4,21 @@ const config = require('./config.cjs'); const { schemasSrc, - constantsSrc, + enumsSrc, indexSrc, validatorSrc, - esmConstantsDst, + esmEnumsDst, esmIndexDst, esmValidatorDst, esmSchemasDst } = config; -const copyConstants = async () => { +const copyEnums = async () => { return fs - .copy(constantsSrc, esmConstantsDst) - .then(() => console.log('Copy constants.js completed!')) + .copy(enumsSrc, esmEnumsDst) + .then(() => console.log('Copy enums.js completed!')) .catch(err => - console.error('An error occurred while copying constants.js', err) + console.error('An error occurred while copying enums.js', err) ); }; @@ -50,7 +50,7 @@ const copySchemas = async () => { }; const buildEsm = async () => { - await copyConstants(); + await copyEnums(); await copyIndex(); await copyValidator(); await copySchemas(); diff --git a/scripts/config.cjs b/scripts/config.cjs index 9ea0153..5621ce9 100644 --- a/scripts/config.cjs +++ b/scripts/config.cjs @@ -1,7 +1,7 @@ const path = require('path'); const srcPath = path.join(__dirname, '..', 'src'); -const constantsSrc = path.join(srcPath, 'constants.js'); +const enumsSrc = path.join(srcPath, 'enums.js'); const examplesSrc = path.join(srcPath, 'examples'); const indexSrc = path.join(srcPath, 'index.js'); const schemasSrc = path.join(srcPath, 'schemas'); @@ -14,7 +14,7 @@ const cjsExamplesDst = path.join(cjsPath, 'examples'); const cjsSchemasDst = path.join(cjsPath, 'schemas'); const esmPath = path.join(distPath, 'esm'); -const esmConstantsDst = path.join(esmPath, 'constants.js'); +const esmEnumsDst = path.join(esmPath, 'enums.js'); const esmIndexDst = path.join(esmPath, 'index.js'); const esmSchemasDst = path.join(esmPath, 'schemas'); const esmValidatorDst = path.join(esmPath, 'lucaValidator.js'); @@ -25,12 +25,12 @@ module.exports = { esmPath, cjsExamplesDst, cjsSchemasDst, - esmConstantsDst, + esmEnumsDst, esmIndexDst, esmValidatorDst, esmSchemasDst, srcPath, - constantsSrc, + enumsSrc, examplesSrc, indexSrc, schemasSrc,