From 9203d41581e091b42fa4d4e0d032acaebd6b73c4 Mon Sep 17 00:00:00 2001 From: Arthur Rezende Date: Thu, 28 Dec 2023 00:45:08 -0300 Subject: [PATCH 1/3] fix: replace yarn scripts with pnpm --- package.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index c9697f1..a2a89c6 100644 --- a/package.json +++ b/package.json @@ -73,17 +73,17 @@ "scripts": { "mrm": "mrm --preset=@adonisjs/mrm-preset", "test": "node -r @adonisjs/assembler/build/register bin/test/index.ts", - "coverage": "nyc yarn test", + "coverage": "nyc pnpm test", "clean": "del build", "copyfiles": "copyfiles \"templates/**/*.txt\" \"instructions.md\" build", - "compile": "yarn lint && yarn clean && tsc", - "build": "yarn compile && yarn copyfiles", - "prepublishOnly": "yarn build", + "compile": "pnpm lint && pnpm clean && tsc", + "build": "pnpm compile && pnpm copyfiles", + "prepublishOnly": "pnpm build", "lint": "eslint . --ext=.ts", "format": "prettier --write .", "commit": "git-cz", "release": "np --message=\"chore(release): %s\"", - "version": "yarn build", + "version": "pnpm build", "sync-labels": "github-label-sync --labels ./node_modules/@adonisjs/mrm-preset/gh-labels.json verful/notifications" }, "engines": { From e455ebdc2f8cb7922e0ae22b98efa89b8fbdbeb5 Mon Sep 17 00:00:00 2001 From: Arthur Rezende Date: Thu, 28 Dec 2023 01:44:50 -0300 Subject: [PATCH 2/3] fix: types, templates and package setup --- adonis-typings/notification.ts | 12 +- instructions.ts | 47 +- package.json | 25 +- pnpm-lock.yaml | 841 +++++++++++---------- src/Mixins/HasDatabaseNotifications.ts | 3 +- src/Mixins/RoutesNotifications.ts | 5 +- src/Models/DatabaseNotification.ts | 10 +- src/Notification.ts | 35 +- templates/config/config.txt | 2 +- templates/config/partials/mail-channel.txt | 3 +- tests/NotificationManager.spec.ts | 2 +- tsconfig.json | 30 +- 12 files changed, 553 insertions(+), 462 deletions(-) diff --git a/adonis-typings/notification.ts b/adonis-typings/notification.ts index 2b67a19..7f259fb 100644 --- a/adonis-typings/notification.ts +++ b/adonis-typings/notification.ts @@ -63,7 +63,9 @@ declare module '@ioc:Verful/Notification' { } export interface RoutesNotificationsMixin { - >(superclass: T): T & { + >( + superclass: T + ): T & { new (...args: any[]): LucidRow & RoutesNotificationsModel } } @@ -77,7 +79,9 @@ declare module '@ioc:Verful/Notification' { } export interface HasDatabaseNotificationsMixin { - >(superclass: T): T & { + >( + superclass: T + ): T & { new (...args: any[]): LucidRow & HasDatabaseNotificationsModel } } @@ -87,7 +91,9 @@ declare module '@ioc:Verful/Notification' { HasDatabaseNotificationsModel {} export interface NotifiableMixin { - >(superclass: T): T & { + >( + superclass: T + ): T & { new (...args: any[]): LucidRow & NotifiableModel } } diff --git a/instructions.ts b/instructions.ts index cfdf268..6a73721 100644 --- a/instructions.ts +++ b/instructions.ts @@ -1,17 +1,13 @@ import * as sinkStatic from '@adonisjs/sink' import { ApplicationContract } from '@ioc:Adonis/Core/Application' +import pluralize from 'pluralize' import { join } from 'path' type InstructionsState = { notificationsTableName: string notificationsSchemaName: string - notifiableTableName: string - - mailer: string - channels: ('database' | 'mail')[] - hasChannel: { database: boolean mail: boolean @@ -129,15 +125,18 @@ async function getChannels(sink: typeof sinkStatic) { ) } -async function getMigrationConsent(sink: typeof sinkStatic, tableName: string): Promise { - return sink - .getPrompt() - .confirm(`Create migration for the ${sink.logger.colors.underline(tableName)} table?`) +async function getMigrationConsent(sink: typeof sinkStatic): Promise { + return sink.getPrompt().confirm(`You want to create a notifications table?`) } -async function getNotificationTableName(sink: typeof sinkStatic): Promise { +async function getNotificationTableName( + sink: typeof sinkStatic, + notifiableTableName: string +): Promise { + const singularNotifiableTableName = pluralize.singular(notifiableTableName) + return sink.getPrompt().ask('Enter the notifications table name', { - default: 'notifications', + default: `${singularNotifiableTableName}_notifications`, validate(value) { return !!value.trim().length }, @@ -153,14 +152,6 @@ async function getNotifiableTableName(sink: typeof sinkStatic): Promise }) } -async function getMailerName(sink: typeof sinkStatic): Promise { - return sink.getPrompt().ask('Enter the mailer you want to use for mail notifications', { - validate(value) { - return !!value.trim().length - }, - }) -} - export default async function instructions( projectRoot: string, app: ApplicationContract, @@ -170,7 +161,6 @@ export default async function instructions( notificationsSchemaName: 'Notifications', notificationsTableName: '', notifiableTableName: '', - mailer: '', channels: [], hasChannel: { database: false, @@ -182,18 +172,13 @@ export default async function instructions( state.channels.forEach((channel) => (state.hasChannel[channel] = true)) if (state.hasChannel.database) { - state.notifiableTableName = await getNotifiableTableName(sink) - state.notificationsTableName = await getNotificationTableName(sink) - } - - const notificationMigrationConsent = await getMigrationConsent(sink, state.notificationsTableName) - - if (state.hasChannel.mail) { - state.mailer = await getMailerName(sink) - } + const notificationMigrationConsent = await getMigrationConsent(sink) - if (notificationMigrationConsent) { - makeNotificationsMigration(projectRoot, app, sink, state) + if (notificationMigrationConsent) { + state.notifiableTableName = await getNotifiableTableName(sink) + state.notificationsTableName = await getNotificationTableName(sink, state.notifiableTableName) + makeNotificationsMigration(projectRoot, app, sink, state) + } } makeContract(projectRoot, app, sink, state) diff --git a/package.json b/package.json index a2a89c6..70411ef 100644 --- a/package.json +++ b/package.json @@ -20,14 +20,15 @@ "license": "MIT", "dependencies": { "@poppinss/manager": "^5.0.2", - "@poppinss/utils": "^4.0.4", - "fastq": "^1.13.0", - "luxon": "^3.4.4" + "@poppinss/utils": "^5.0.0", + "fastq": "^1.16.0", + "luxon": "^3.4.4", + "pluralize": "^8.0.0" }, "devDependencies": { - "@adonisjs/assembler": "^5.7.0", + "@adonisjs/assembler": "^5.9.6", "@adonisjs/core": "^5.8.3", - "@adonisjs/lucid": "^18.0.0", + "@adonisjs/lucid": "^18.4.2", "@adonisjs/mail": "^8.1.2", "@adonisjs/mrm-preset": "^5.0.3", "@adonisjs/require-ts": "^2.0.12", @@ -38,24 +39,26 @@ "@japa/runner": "^2.0.8", "@japa/spec-reporter": "^1.1.12", "@poppinss/dev-utils": "^2.0.3", + "@types/luxon": "3.3.5", "@types/node": "^17.0.38", + "@types/pluralize": "^0.0.33", "commitizen": "^4.2.4", "copyfiles": "^2.4.1", "cz-conventional-changelog": "^3.3.0", "del-cli": "^4.0.1", - "eslint": "^8.16.0", - "eslint-config-prettier": "^8.5.0", + "eslint": "^8.56.0", + "eslint-config-prettier": "^9.1.0", "eslint-plugin-adonis": "^2.1.0", - "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-prettier": "^5.1.2", "github-label-sync": "^2.2.0", "husky": "^8.0.1", "mrm": "^4.0.0", - "np": "^9.0.0", + "np": "^9.2.0", "nyc": "^15.1.0", - "prettier": "^2.6.2", + "prettier": "^3.1.1", "reflect-metadata": "^0.2.1", "sqlite3": "^5.0.8", - "typescript": "^4.7.2" + "typescript": "^5.3.3" }, "peerDependencies": { "@adonisjs/core": "^5.8.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3a32881..cda7f32 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,28 +9,31 @@ dependencies: specifier: ^5.0.2 version: 5.0.2 '@poppinss/utils': - specifier: ^4.0.4 - version: 4.0.4 + specifier: ^5.0.0 + version: 5.0.0 fastq: - specifier: ^1.13.0 - version: 1.15.0 + specifier: ^1.16.0 + version: 1.16.0 luxon: specifier: ^3.4.4 version: 3.4.4 + pluralize: + specifier: ^8.0.0 + version: 8.0.0 devDependencies: '@adonisjs/assembler': - specifier: ^5.7.0 - version: 5.9.5(@adonisjs/core@5.9.0) + specifier: ^5.9.6 + version: 5.9.6(@adonisjs/core@5.9.0) '@adonisjs/core': specifier: ^5.8.3 version: 5.9.0 '@adonisjs/lucid': - specifier: ^18.0.0 - version: 18.4.0(@adonisjs/application@5.3.0)(@adonisjs/core@5.9.0)(sqlite3@5.1.6) + specifier: ^18.4.2 + version: 18.4.2(@adonisjs/application@5.3.0)(@adonisjs/core@5.9.0)(sqlite3@5.1.6) '@adonisjs/mail': specifier: ^8.1.2 - version: 8.2.1(@adonisjs/core@5.9.0)(@adonisjs/view@6.2.0)(@types/node@17.0.45)(luxon@3.4.4) + version: 8.2.1(@adonisjs/core@5.9.0)(@adonisjs/view@6.2.0)(@types/luxon@3.3.5)(@types/node@17.0.45)(luxon@3.4.4) '@adonisjs/mrm-preset': specifier: ^5.0.3 version: 5.0.3 @@ -58,33 +61,39 @@ devDependencies: '@poppinss/dev-utils': specifier: ^2.0.3 version: 2.0.3 + '@types/luxon': + specifier: 3.3.5 + version: 3.3.5 '@types/node': specifier: ^17.0.38 version: 17.0.45 + '@types/pluralize': + specifier: ^0.0.33 + version: 0.0.33 commitizen: specifier: ^4.2.4 - version: 4.3.0 + version: 4.3.0(typescript@5.3.3) copyfiles: specifier: ^2.4.1 version: 2.4.1 cz-conventional-changelog: specifier: ^3.3.0 - version: 3.3.0 + version: 3.3.0(typescript@5.3.3) del-cli: specifier: ^4.0.1 version: 4.0.1 eslint: - specifier: ^8.16.0 - version: 8.48.0 + specifier: ^8.56.0 + version: 8.56.0 eslint-config-prettier: - specifier: ^8.5.0 - version: 8.10.0(eslint@8.48.0) + specifier: ^9.1.0 + version: 9.1.0(eslint@8.56.0) eslint-plugin-adonis: specifier: ^2.1.0 - version: 2.1.1(eslint@8.48.0)(typescript@4.9.5) + version: 2.1.1(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-prettier: - specifier: ^4.0.0 - version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.48.0)(prettier@2.8.8) + specifier: ^5.1.2 + version: 5.1.2(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1) github-label-sync: specifier: ^2.2.0 version: 2.3.1 @@ -95,14 +104,14 @@ devDependencies: specifier: ^4.0.0 version: 4.1.22 np: - specifier: ^9.0.0 - version: 9.0.0(typescript@4.9.5) + specifier: ^9.2.0 + version: 9.2.0(typescript@5.3.3) nyc: specifier: ^15.1.0 version: 15.1.0 prettier: - specifier: ^2.6.2 - version: 2.8.8 + specifier: ^3.1.1 + version: 3.1.1 reflect-metadata: specifier: ^0.2.1 version: 0.2.1 @@ -110,8 +119,8 @@ devDependencies: specifier: ^5.0.8 version: 5.1.6 typescript: - specifier: ^4.7.2 - version: 4.9.5 + specifier: ^5.3.3 + version: 5.3.3 packages: @@ -149,8 +158,9 @@ packages: semver: 7.5.4 dev: true - /@adonisjs/assembler@5.9.5(@adonisjs/core@5.9.0): - resolution: {integrity: sha512-wCtQRZ4KoIZkzi+ux5NrDUDNASRomytRZ7AZBdw8Hi3LlEOeac4T8+47y7gXwJFKH2nnGoiIwnXGIgJyolXEfQ==} + /@adonisjs/assembler@5.9.6(@adonisjs/core@5.9.0): + resolution: {integrity: sha512-8CLAX8vlsfsYmtoBxI8YfyZyNZwtUB0FiplEbd8hmo5iv1/52SU2LEU1R6gPk4hkJbqHx22aS8UeZoogPqnmwg==} + engines: {node: '>=14.0.0'} peerDependencies: '@adonisjs/core': ^5.1.0 dependencies: @@ -329,19 +339,20 @@ packages: pino: 6.14.0 dev: true - /@adonisjs/lucid@18.4.0(@adonisjs/application@5.3.0)(@adonisjs/core@5.9.0)(sqlite3@5.1.6): - resolution: {integrity: sha512-pSBhKFzqr6mWoeIiGdcW2OQIWAyCoLn+G7VmXXLqxHvGm+9SaioKJaSMmaJa0xgS5v64r/MVLeH/nw87Q4KpyQ==} + /@adonisjs/lucid@18.4.2(@adonisjs/application@5.3.0)(@adonisjs/core@5.9.0)(sqlite3@5.1.6): + resolution: {integrity: sha512-4k8GOat/YQtobNqwBIU8VAuY19p+V3ucBRoZ+iwxd/qy/KE1XupPzuMZVWYt1vyBboCrBmEYYmvC851tNqoP0A==} + engines: {node: '>=14.15.4'} peerDependencies: '@adonisjs/core': ^5.1.0 dependencies: '@adonisjs/core': 5.9.0 - '@faker-js/faker': 8.0.2 + '@faker-js/faker': 8.3.1 '@poppinss/hooks': 5.0.3(@adonisjs/application@5.3.0) '@poppinss/utils': 5.0.0 fast-deep-equal: 3.1.3 igniculus: 1.5.0 knex: 2.5.1(sqlite3@5.1.6) - knex-dynamic-connection: 3.1.0(sqlite3@5.1.6) + knex-dynamic-connection: 3.1.1(sqlite3@5.1.6) luxon: 3.4.4 macroable: 7.0.2 pretty-hrtime: 1.0.3 @@ -360,7 +371,7 @@ packages: - tedious dev: true - /@adonisjs/mail@8.2.1(@adonisjs/core@5.9.0)(@adonisjs/view@6.2.0)(@types/node@17.0.45)(luxon@3.4.4): + /@adonisjs/mail@8.2.1(@adonisjs/core@5.9.0)(@adonisjs/view@6.2.0)(@types/luxon@3.3.5)(@types/node@17.0.45)(luxon@3.4.4): resolution: {integrity: sha512-2Fy97PpQLcfHUpg8PfRWVTfUvMklTvZluKugvg5EUVURYsNGzY3e0DdkNaeQ8TaR4b0GhNfJACQRJ4mMxOdxXg==} peerDependencies: '@adonisjs/core': ^5.1.0 @@ -371,10 +382,10 @@ packages: '@poppinss/colors': 3.0.3 '@poppinss/manager': 5.0.2 '@poppinss/utils': 4.0.4 - fastq: 1.15.0 + fastq: 1.16.0 get-stream: 6.0.1 got: 11.8.6 - ical-generator: 4.1.0(@types/node@17.0.45)(luxon@3.4.4) + ical-generator: 4.1.0(@types/luxon@3.3.5)(@types/node@17.0.45)(luxon@3.4.4) multi-part: 3.0.0 nodemailer: 6.9.4 transitivePeerDependencies: @@ -460,7 +471,7 @@ packages: '@adonisjs/bodyparser': 8.1.9(@adonisjs/application@5.3.0)(@adonisjs/drive@2.3.0)(@adonisjs/http-server@5.12.0) '@adonisjs/http-server': 5.12.0(@adonisjs/application@5.3.0)(@adonisjs/encryption@4.0.8) '@poppinss/utils': 5.0.0 - '@types/luxon': 3.3.2 + '@types/luxon': 3.3.5 '@types/validator': 13.11.1 luxon: 3.4.4 normalize-url: 6.1.0 @@ -500,6 +511,14 @@ packages: chalk: 2.4.2 dev: true + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + dev: true + /@babel/compat-data@7.22.9: resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} engines: {node: '>=6.9.0'} @@ -609,6 +628,11 @@ packages: engines: {node: '>=6.9.0'} dev: true + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-validator-identifier@7.22.5: resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} engines: {node: '>=6.9.0'} @@ -639,6 +663,15 @@ packages: js-tokens: 4.0.0 dev: true + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + /@babel/parser@7.22.14: resolution: {integrity: sha512-1KucTHgOvaw/LzCVrEOAyXkr9rQlp0A1HiHRYnSUE9dmb8PvPW7o5sscg+5169r54n3vGlbx6GevTE/Iw/P3AQ==} engines: {node: '>=6.0.0'} @@ -698,55 +731,52 @@ packages: dev: true optional: true - /@commitlint/config-validator@17.6.7: - resolution: {integrity: sha512-vJSncmnzwMvpr3lIcm0I8YVVDJTzyjy7NZAeXbTXy+MPUdAr9pKyyg7Tx/ebOQ9kqzE6O9WT6jg2164br5UdsQ==} - engines: {node: '>=v14'} + /@commitlint/config-validator@18.4.3: + resolution: {integrity: sha512-FPZZmTJBARPCyef9ohRC9EANiQEKSWIdatx5OlgeHKu878dWwpyeFauVkhzuBRJFcCA4Uvz/FDtlDKs008IHcA==} + engines: {node: '>=v18'} requiresBuild: true dependencies: - '@commitlint/types': 17.4.4 + '@commitlint/types': 18.4.3 ajv: 8.12.0 dev: true optional: true - /@commitlint/execute-rule@17.4.0: - resolution: {integrity: sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==} - engines: {node: '>=v14'} + /@commitlint/execute-rule@18.4.3: + resolution: {integrity: sha512-t7FM4c+BdX9WWZCPrrbV5+0SWLgT3kCq7e7/GhHCreYifg3V8qyvO127HF796vyFql75n4TFF+5v1asOOWkV1Q==} + engines: {node: '>=v18'} requiresBuild: true dev: true optional: true - /@commitlint/load@17.7.1: - resolution: {integrity: sha512-S/QSOjE1ztdogYj61p6n3UbkUvweR17FQ0zDbNtoTLc+Hz7vvfS7ehoTMQ27hPSjVBpp7SzEcOQu081RLjKHJQ==} - engines: {node: '>=v14'} + /@commitlint/load@18.4.3(typescript@5.3.3): + resolution: {integrity: sha512-v6j2WhvRQJrcJaj5D+EyES2WKTxPpxENmNpNG3Ww8MZGik3jWRXtph0QTzia5ZJyPh2ib5aC/6BIDymkUUM58Q==} + engines: {node: '>=v18'} requiresBuild: true dependencies: - '@commitlint/config-validator': 17.6.7 - '@commitlint/execute-rule': 17.4.0 - '@commitlint/resolve-extends': 17.6.7 - '@commitlint/types': 17.4.4 - '@types/node': 20.4.7 + '@commitlint/config-validator': 18.4.3 + '@commitlint/execute-rule': 18.4.3 + '@commitlint/resolve-extends': 18.4.3 + '@commitlint/types': 18.4.3 + '@types/node': 18.19.3 chalk: 4.1.2 - cosmiconfig: 8.2.0 - cosmiconfig-typescript-loader: 4.4.0(@types/node@20.4.7)(cosmiconfig@8.2.0)(ts-node@10.9.1)(typescript@4.9.5) + cosmiconfig: 8.3.6(typescript@5.3.3) + cosmiconfig-typescript-loader: 5.0.0(@types/node@18.19.3)(cosmiconfig@8.3.6)(typescript@5.3.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 resolve-from: 5.0.0 - ts-node: 10.9.1(@types/node@20.4.7)(typescript@4.9.5) - typescript: 4.9.5 transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' + - typescript dev: true optional: true - /@commitlint/resolve-extends@17.6.7: - resolution: {integrity: sha512-PfeoAwLHtbOaC9bGn/FADN156CqkFz6ZKiVDMjuC2N5N0740Ke56rKU7Wxdwya8R8xzLK9vZzHgNbuGhaOVKIg==} - engines: {node: '>=v14'} + /@commitlint/resolve-extends@18.4.3: + resolution: {integrity: sha512-30sk04LZWf8+SDgJrbJCjM90gTg2LxsD9cykCFeFu+JFHvBFq5ugzp2eO/DJGylAdVaqxej3c7eTSE64hR/lnw==} + engines: {node: '>=v18'} requiresBuild: true dependencies: - '@commitlint/config-validator': 17.6.7 - '@commitlint/types': 17.4.4 + '@commitlint/config-validator': 18.4.3 + '@commitlint/types': 18.4.3 import-fresh: 3.3.0 lodash.mergewith: 4.6.2 resolve-from: 5.0.0 @@ -754,48 +784,44 @@ packages: dev: true optional: true - /@commitlint/types@17.4.4: - resolution: {integrity: sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ==} - engines: {node: '>=v14'} + /@commitlint/types@18.4.3: + resolution: {integrity: sha512-cvzx+vtY/I2hVBZHCLrpoh+sA0hfuzHwDc+BAFPimYLjJkpHnghQM+z8W/KyLGkygJh3BtI3xXXq+dKjnSWEmA==} + engines: {node: '>=v18'} requiresBuild: true dependencies: chalk: 4.1.2 dev: true optional: true - /@cspotcode/source-map-support@0.8.1: - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - requiresBuild: true - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - dev: true - optional: true - - /@eslint-community/eslint-utils@4.4.0(eslint@8.48.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.48.0 + eslint: 8.56.0 eslint-visitor-keys: 3.4.3 dev: true + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + /@eslint-community/regexpp@4.8.0: resolution: {integrity: sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.2: - resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 espree: 9.6.1 - globals: 13.21.0 - ignore: 5.2.4 + globals: 13.24.0 + ignore: 5.3.0 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -804,13 +830,13 @@ packages: - supports-color dev: true - /@eslint/js@8.48.0: - resolution: {integrity: sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==} + /@eslint/js@8.56.0: + resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@faker-js/faker@8.0.2: - resolution: {integrity: sha512-Uo3pGspElQW91PCvKSIAXoEgAUlRnH29sX2/p89kg7sP1m2PzCufHINd0FhTXQf6DYGiUlVncdSPa2F9wxed2A==} + /@faker-js/faker@8.3.1: + resolution: {integrity: sha512-FdgpFxY6V6rLZE9mmIBb9hM0xpfvQOSNOLnzolzKwsE1DH+gC7lEKV1p1IbR0lAYyvYd5a4u3qWJzowUkw1bIw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13'} dev: true @@ -824,11 +850,11 @@ packages: dev: true optional: true - /@humanwhocodes/config-array@0.11.11: - resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} + /@humanwhocodes/config-array@0.11.13: + resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 1.2.1 + '@humanwhocodes/object-schema': 2.0.1 debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: @@ -840,8 +866,8 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + /@humanwhocodes/object-schema@2.0.1: + resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} dev: true /@istanbuljs/load-nyc-config@1.1.0: @@ -983,20 +1009,11 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /@jridgewell/trace-mapping@0.3.9: - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - requiresBuild: true - dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - optional: true - /@ljharb/through@2.3.11: resolution: {integrity: sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 dev: true /@mapbox/node-pre-gyp@1.0.11: @@ -1048,7 +1065,7 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 + fastq: 1.16.0 dev: true /@npmcli/fs@1.1.1: @@ -1076,6 +1093,11 @@ packages: engines: {node: '>=10'} dev: true + /@pkgr/core@0.1.0: + resolution: {integrity: sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dev: true + /@pnpm/config.env-replace@1.1.0: resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} engines: {node: '>=12.22.0'} @@ -1199,8 +1221,8 @@ packages: /@poppinss/utils@3.3.1: resolution: {integrity: sha512-k4MFt+4JhOWJZ9D2xpEcG/mpZyXVXYT+dSOg83vHK1xhXl+7r0IYBXRKWX2+To7/90KJaWlwpcdCAalXE8Debg==} dependencies: - '@types/bytes': 3.1.1 - '@types/he': 1.2.0 + '@types/bytes': 3.1.4 + '@types/he': 1.2.3 buffer-alloc: 1.2.0 bytes: 3.1.2 change-case: 4.1.2 @@ -1238,6 +1260,7 @@ packages: resolve-from: 5.0.0 slugify: 1.6.6 truncatise: 0.0.8 + dev: true /@poppinss/utils@5.0.0: resolution: {integrity: sha512-SpJL5p4Nx3bRCpCf62KagZLUHLvJD+VDylGpXAeP2G5qb3s6SSOBlpaFmer4GxdyTqLIUt0PRCzF1TbpNU+qZw==} @@ -1259,7 +1282,6 @@ packages: resolve-from: 5.0.0 slugify: 1.6.6 truncatise: 0.0.8 - dev: true /@samverschueren/stream-to-observable@0.3.1(rxjs@6.6.7): resolution: {integrity: sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==} @@ -1330,33 +1352,13 @@ packages: dev: true optional: true - /@tsconfig/node10@1.0.9: - resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} - requiresBuild: true - dev: true - optional: true - - /@tsconfig/node12@1.0.11: - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - requiresBuild: true - dev: true - optional: true - - /@tsconfig/node14@1.0.3: - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - requiresBuild: true - dev: true - optional: true - - /@tsconfig/node16@1.0.4: - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - requiresBuild: true - dev: true - optional: true - /@types/bytes@3.1.1: resolution: {integrity: sha512-lOGyCnw+2JVPKU3wIV0srU0NyALwTBJlVSx5DfMQOFuuohA8y9S8orImpuIQikZ0uIQ8gehrRjxgQC1rLRi11w==} + /@types/bytes@3.1.4: + resolution: {integrity: sha512-A0uYgOj3zNc4hNjHc5lYUfJQ/HVyBXiUMKdXd7ysclaE6k9oJdavQzODHuwjpUu2/boCP8afjQYi8z/GtvNCWA==} + dev: true + /@types/cacheable-request@6.0.3: resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} dependencies: @@ -1382,6 +1384,10 @@ packages: /@types/he@1.2.0: resolution: {integrity: sha512-uH2smqTN4uGReAiKedIVzoLUAXIYLBTbSofhx3hbNqj74Ua6KqFsLYszduTrLCMEAEAozF73DbGi/SC1bzQq4g==} + /@types/he@1.2.3: + resolution: {integrity: sha512-q67/qwlxblDzEDvzHhVkwc1gzVWxaNxeyHUBF4xElrvjL11O+Ytze+1fGpBHlr/H9myiBUaUXNnNPmBHxxfAcA==} + dev: true + /@types/http-cache-semantics@4.0.1: resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} dev: true @@ -1412,8 +1418,8 @@ packages: '@types/node': 17.0.45 dev: true - /@types/luxon@3.3.2: - resolution: {integrity: sha512-l5cpE57br4BIjK+9BSkFBOsWtwv6J9bJpC7gdXIzZyI0vuKvNTk0wZZrkQxMGsUAuGW9+WMNWF2IJMD7br2yeQ==} + /@types/luxon@3.3.5: + resolution: {integrity: sha512-1cyf6Ge/94zlaWIZA2ei1pE6SZ8xpad2hXaYa5JEFiaUH0YS494CZwyi4MXNpXD9oEuv6ZH0Bmh0e7F9sPhmZA==} dev: true /@types/minimatch@5.1.2: @@ -1428,9 +1434,11 @@ packages: resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} dev: true - /@types/node@20.4.7: - resolution: {integrity: sha512-bUBrPjEry2QUTsnuEjzjbS7voGWCc30W0qzgMf90GPeDGFRakvrz47ju+oqDAKCXLUCe39u57/ORMl/O/04/9g==} + /@types/node@18.19.3: + resolution: {integrity: sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg==} requiresBuild: true + dependencies: + undici-types: 5.26.5 dev: true optional: true @@ -1465,6 +1473,10 @@ packages: sonic-boom: 2.8.0 dev: true + /@types/pluralize@0.0.33: + resolution: {integrity: sha512-JOqsl+ZoCpP4e8TDke9W79FDcSgPAR0l6pixx2JHkhnRjvShyYiAYw2LVsnA7K08Y6DeOnaU6ujmENO4os/cYg==} + dev: true + /@types/responselike@1.0.0: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: @@ -1493,7 +1505,7 @@ packages: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.48.0)(typescript@4.9.5): + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1505,23 +1517,23 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.8.0 - '@typescript-eslint/parser': 5.62.0(eslint@8.48.0)(typescript@4.9.5) + '@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.48.0)(typescript@4.9.5) - '@typescript-eslint/utils': 5.62.0(eslint@8.48.0)(typescript@4.9.5) + '@typescript-eslint/type-utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 - eslint: 8.48.0 + eslint: 8.56.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare-lite: 1.4.0 semver: 7.5.4 - tsutils: 3.21.0(typescript@4.9.5) - typescript: 4.9.5 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.48.0)(typescript@4.9.5): + /@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1533,10 +1545,10 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) debug: 4.3.4 - eslint: 8.48.0 - typescript: 4.9.5 + eslint: 8.56.0 + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true @@ -1549,7 +1561,7 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/type-utils@5.62.0(eslint@8.48.0)(typescript@4.9.5): + /@typescript-eslint/type-utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1559,12 +1571,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) - '@typescript-eslint/utils': 5.62.0(eslint@8.48.0)(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 - eslint: 8.48.0 - tsutils: 3.21.0(typescript@4.9.5) - typescript: 4.9.5 + eslint: 8.56.0 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true @@ -1574,7 +1586,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5): + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1589,25 +1601,25 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - tsutils: 3.21.0(typescript@4.9.5) - typescript: 4.9.5 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.48.0)(typescript@4.9.5): + /@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.1 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) - eslint: 8.48.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) + eslint: 8.56.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -1623,6 +1635,10 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true + /abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} requiresBuild: true @@ -1647,23 +1663,16 @@ packages: negotiator: 0.6.3 dev: true - /acorn-jsx@5.3.2(acorn@8.10.0): + /acorn-jsx@5.3.2(acorn@8.11.2): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.10.0 - dev: true - - /acorn-walk@8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} - engines: {node: '>=0.4.0'} - requiresBuild: true + acorn: 8.11.2 dev: true - optional: true - /acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + /acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -1720,8 +1729,8 @@ packages: uri-js: 4.4.1 dev: true - /all-package-names@2.0.785: - resolution: {integrity: sha512-axx97Y4WacpC4JnlHee6zPQziyqqahv1kK3QudDMIxFtbsnNRYyaeBDUhYkI8+YNfxR3RGTwbmK3/ZypSOgsMQ==} + /all-package-names@2.0.808: + resolution: {integrity: sha512-jOxnt12Xw8ygQc+/uIJp+BjPHIf7OvtJQtYVgH6v2NxaGaT4Q7PoOFYZb1j+YBWhIhpSXey+m+tm1vk9HenI4Q==} hasBin: true dependencies: commander-version: 1.1.0 @@ -1888,12 +1897,6 @@ packages: dev: true optional: true - /arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - requiresBuild: true - dev: true - optional: true - /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: @@ -2051,7 +2054,7 @@ packages: dependencies: cache-base: 1.0.1 class-utils: 0.3.6 - component-emitter: 1.3.0 + component-emitter: 1.3.1 define-property: 1.0.0 isobject: 3.0.1 mixin-deep: 1.3.2 @@ -2269,7 +2272,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: collection-visit: 1.0.0 - component-emitter: 1.3.0 + component-emitter: 1.3.1 get-value: 2.0.6 has-value: 1.0.0 isobject: 3.0.1 @@ -2350,6 +2353,14 @@ packages: get-intrinsic: 1.2.1 dev: true + /call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + dependencies: + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + set-function-length: 1.1.1 + dev: true + /call-me-maybe@1.0.2: resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} dev: true @@ -2743,13 +2754,13 @@ packages: repeat-string: 1.6.1 dev: true - /commitizen@4.3.0: + /commitizen@4.3.0(typescript@5.3.3): resolution: {integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==} engines: {node: '>= 12'} hasBin: true dependencies: cachedir: 2.3.0 - cz-conventional-changelog: 3.3.0 + cz-conventional-changelog: 3.3.0(typescript@5.3.3) dedent: 0.7.0 detect-indent: 6.1.0 find-node-modules: 2.1.3 @@ -2763,16 +2774,15 @@ packages: strip-bom: 4.0.0 strip-json-comments: 3.1.1 transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' + - typescript dev: true /commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: true - /component-emitter@1.3.0: - resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} + /component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} dev: true /concat-map@0.0.1: @@ -2883,36 +2893,23 @@ packages: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true - /cosmiconfig-typescript-loader@4.4.0(@types/node@20.4.7)(cosmiconfig@8.2.0)(ts-node@10.9.1)(typescript@4.9.5): - resolution: {integrity: sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==} - engines: {node: '>=v14.21.3'} + /cosmiconfig-typescript-loader@5.0.0(@types/node@18.19.3)(cosmiconfig@8.3.6)(typescript@5.3.3): + resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} + engines: {node: '>=v16'} requiresBuild: true peerDependencies: '@types/node': '*' - cosmiconfig: '>=7' - ts-node: '>=10' + cosmiconfig: '>=8.2' typescript: '>=4' dependencies: - '@types/node': 20.4.7 - cosmiconfig: 8.2.0 - ts-node: 10.9.1(@types/node@20.4.7)(typescript@4.9.5) - typescript: 4.9.5 - dev: true - optional: true - - /cosmiconfig@8.2.0: - resolution: {integrity: sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==} - engines: {node: '>=14'} - requiresBuild: true - dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 + '@types/node': 18.19.3 + cosmiconfig: 8.3.6(typescript@5.3.3) + jiti: 1.21.0 + typescript: 5.3.3 dev: true optional: true - /cosmiconfig@8.3.6(typescript@4.9.5): + /cosmiconfig@8.3.6(typescript@5.3.3): resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} peerDependencies: @@ -2925,7 +2922,7 @@ packages: js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 - typescript: 4.9.5 + typescript: 5.3.3 dev: true /cp-file@7.0.0: @@ -2972,12 +2969,6 @@ packages: capture-stack-trace: 1.0.2 dev: true - /create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - requiresBuild: true - dev: true - optional: true - /cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} dependencies: @@ -3016,21 +3007,20 @@ packages: resolution: {integrity: sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg==} deprecated: Cuid and other k-sortable and non-cryptographic ids (Ulid, ObjectId, KSUID, all UUIDs) are all insecure. Use @paralleldrive/cuid2 instead. - /cz-conventional-changelog@3.3.0: + /cz-conventional-changelog@3.3.0(typescript@5.3.3): resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} engines: {node: '>= 10'} dependencies: chalk: 2.4.2 - commitizen: 4.3.0 + commitizen: 4.3.0(typescript@5.3.3) conventional-commit-types: 3.0.0 lodash.map: 4.6.0 longest: 2.0.1 word-wrap: 1.2.5 optionalDependencies: - '@commitlint/load': 17.7.1 + '@commitlint/load': 18.4.3(typescript@5.3.3) transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' + - typescript dev: true /dashdash@1.14.1: @@ -3165,6 +3155,15 @@ packages: engines: {node: '>=10'} dev: true + /define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + dev: true + /define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} @@ -3179,21 +3178,21 @@ packages: resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} engines: {node: '>=0.10.0'} dependencies: - is-descriptor: 0.1.6 + is-descriptor: 0.1.7 dev: true /define-property@1.0.0: resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} engines: {node: '>=0.10.0'} dependencies: - is-descriptor: 1.0.2 + is-descriptor: 1.0.3 dev: true /define-property@2.0.2: resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} engines: {node: '>=0.10.0'} dependencies: - is-descriptor: 1.0.2 + is-descriptor: 1.0.3 isobject: 3.0.1 dev: true @@ -3278,13 +3277,6 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - requiresBuild: true - dev: true - optional: true - /dir-glob@2.2.2: resolution: {integrity: sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==} engines: {node: '>=4'} @@ -3382,7 +3374,7 @@ packages: /edge-parser@8.2.2: resolution: {integrity: sha512-48iOLaOD4PAxIU0jnLRNXUL8G6ktO79bA4adOGXzNHg2M+mHfudFI7QPdF6IO8gW0NC1N0TPvwLWK3FVkE9bLQ==} dependencies: - acorn: 8.10.0 + acorn: 8.11.2 astring: 1.8.6 edge-error: 3.0.0 edge-lexer: 5.0.2 @@ -3543,44 +3535,48 @@ packages: engines: {node: '>=12'} dev: true - /eslint-config-prettier@8.10.0(eslint@8.48.0): - resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} + /eslint-config-prettier@9.1.0(eslint@8.56.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.48.0 + eslint: 8.56.0 dev: true - /eslint-plugin-adonis@2.1.1(eslint@8.48.0)(typescript@4.9.5): + /eslint-plugin-adonis@2.1.1(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-iC3eZXofK4q+KOGypiquT74amCpeqW+5K5WZ7pezUvrXgmFkZMn7MSQjAg44KVzq6pQdXFuRNlnS+ijcwx0AMw==} engines: {node: '>=10.0.0'} peerDependencies: eslint: ^8.0.0 dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.48.0)(typescript@4.9.5) - '@typescript-eslint/parser': 5.62.0(eslint@8.48.0)(typescript@4.9.5) - eslint: 8.48.0 + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.10.0)(eslint@8.48.0)(prettier@2.8.8): - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} - engines: {node: '>=12.0.0'} + /eslint-plugin-prettier@5.1.2(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1): + resolution: {integrity: sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - eslint: '>=7.28.0' + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' eslint-config-prettier: '*' - prettier: '>=2.0.0' + prettier: '>=3.0.0' peerDependenciesMeta: + '@types/eslint': + optional: true eslint-config-prettier: optional: true dependencies: - eslint: 8.48.0 - eslint-config-prettier: 8.10.0(eslint@8.48.0) - prettier: 2.8.8 + eslint: 8.56.0 + eslint-config-prettier: 9.1.0(eslint@8.56.0) + prettier: 3.1.1 prettier-linter-helpers: 1.0.0 + synckit: 0.8.8 dev: true /eslint-scope@5.1.1: @@ -3604,18 +3600,19 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.48.0: - resolution: {integrity: sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==} + /eslint@8.56.0: + resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) - '@eslint-community/regexpp': 4.8.0 - '@eslint/eslintrc': 2.1.2 - '@eslint/js': 8.48.0 - '@humanwhocodes/config-array': 0.11.11 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.56.0 + '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -3631,9 +3628,9 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.21.0 + globals: 13.24.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -3659,8 +3656,8 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) + acorn: 8.11.2 + acorn-jsx: 5.3.2(acorn@8.11.2) eslint-visitor-keys: 3.4.3 dev: true @@ -3751,7 +3748,7 @@ packages: human-signals: 4.3.1 is-stream: 3.0.0 merge-stream: 2.0.0 - npm-run-path: 5.1.0 + npm-run-path: 5.2.0 onetime: 6.0.0 signal-exit: 3.0.7 strip-final-newline: 3.0.0 @@ -3766,7 +3763,7 @@ packages: human-signals: 5.0.0 is-stream: 3.0.0 merge-stream: 2.0.0 - npm-run-path: 5.1.0 + npm-run-path: 5.2.0 onetime: 6.0.0 signal-exit: 4.1.0 strip-final-newline: 3.0.0 @@ -3895,6 +3892,17 @@ packages: micromatch: 4.0.5 dev: true + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true @@ -3912,8 +3920,8 @@ packages: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} dev: true - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + /fastq@1.16.0: + resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} dependencies: reusify: 1.0.4 @@ -3951,7 +3959,7 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flat-cache: 3.1.0 + flat-cache: 3.2.0 dev: true /file-type@12.4.2: @@ -4043,12 +4051,12 @@ packages: resolve-dir: 1.0.1 dev: true - /flat-cache@3.1.0: - resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==} - engines: {node: '>=12.0.0'} + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.7 - keyv: 4.5.3 + flatted: 3.2.9 + keyv: 4.5.4 rimraf: 3.0.2 dev: true @@ -4056,8 +4064,8 @@ packages: resolution: {integrity: sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==} dev: true - /flatted@3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} dev: true /flattie@1.1.0: @@ -4188,6 +4196,10 @@ packages: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} dev: true + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true + /gauge@3.0.2: resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} engines: {node: '>=10'} @@ -4238,6 +4250,15 @@ packages: has-symbols: 1.0.3 dev: true + /get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + dependencies: + function-bind: 1.1.2 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + dev: true + /get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} @@ -4453,8 +4474,8 @@ packages: engines: {node: '>=4'} dev: true - /globals@13.21.0: - resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==} + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -4477,8 +4498,8 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 - fast-glob: 3.3.1 - ignore: 5.2.4 + fast-glob: 3.3.2 + ignore: 5.3.0 merge2: 1.4.1 slash: 4.0.0 dev: true @@ -4499,6 +4520,12 @@ packages: - supports-color dev: true + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.2 + dev: true + /got@11.8.6: resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} engines: {node: '>=10.19.0'} @@ -4631,6 +4658,12 @@ packages: engines: {node: '>=8'} dev: true + /has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + dependencies: + get-intrinsic: 1.2.2 + dev: true + /has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} @@ -4701,6 +4734,13 @@ packages: type-fest: 0.8.1 dev: true + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + /haye@3.0.0: resolution: {integrity: sha512-yWxbPdeex78IR3x3X/DdqkZbVG4rP4UaRdUGmpClfnUh1C61mASt7Iav8vk2tXcTMSygBHDDfgoVqk68NJqzhQ==} dev: true @@ -4843,7 +4883,7 @@ packages: hasBin: true dev: true - /ical-generator@4.1.0(@types/node@17.0.45)(luxon@3.4.4): + /ical-generator@4.1.0(@types/luxon@3.3.5)(@types/node@17.0.45)(luxon@3.4.4): resolution: {integrity: sha512-5GrFDJ8SAOj8cB9P1uEZIfKrNxSZ1R2eOQfZePL+CtdWh4RwNXWe8b0goajz+Hu37vcipG3RVldoa2j57Y20IA==} engines: {node: ^14.8.0 || >=16.0.0} peerDependencies: @@ -4876,6 +4916,7 @@ packages: rrule: optional: true dependencies: + '@types/luxon': 3.3.5 '@types/node': 17.0.45 luxon: 3.4.4 uuid-random: 1.3.2 @@ -4906,8 +4947,8 @@ packages: engines: {node: '>=4.0.0'} dev: true - /ignore-walk@6.0.3: - resolution: {integrity: sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==} + /ignore-walk@6.0.4: + resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: minimatch: 9.0.3 @@ -4923,6 +4964,11 @@ packages: engines: {node: '>= 4'} dev: true + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + engines: {node: '>= 4'} + dev: true + /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -5146,18 +5192,11 @@ packages: engines: {node: '>= 0.10'} dev: true - /is-accessor-descriptor@0.1.6: - resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /is-accessor-descriptor@1.0.0: - resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} - engines: {node: '>=0.10.0'} + /is-accessor-descriptor@1.0.1: + resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} + engines: {node: '>= 0.10'} dependencies: - kind-of: 6.0.3 + hasown: 2.0.0 dev: true /is-arrayish@0.2.1: @@ -5195,36 +5234,33 @@ packages: has: 1.0.3 dev: true - /is-data-descriptor@0.1.4: - resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} - engines: {node: '>=0.10.0'} + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - kind-of: 3.2.2 + hasown: 2.0.0 dev: true - /is-data-descriptor@1.0.0: - resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} - engines: {node: '>=0.10.0'} + /is-data-descriptor@1.0.1: + resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} + engines: {node: '>= 0.4'} dependencies: - kind-of: 6.0.3 + hasown: 2.0.0 dev: true - /is-descriptor@0.1.6: - resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} - engines: {node: '>=0.10.0'} + /is-descriptor@0.1.7: + resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} + engines: {node: '>= 0.4'} dependencies: - is-accessor-descriptor: 0.1.6 - is-data-descriptor: 0.1.4 - kind-of: 5.1.0 + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 dev: true - /is-descriptor@1.0.2: - resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} - engines: {node: '>=0.10.0'} + /is-descriptor@1.0.3: + resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} + engines: {node: '>= 0.4'} dependencies: - is-accessor-descriptor: 1.0.0 - is-data-descriptor: 1.0.0 - kind-of: 6.0.3 + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 dev: true /is-directory@0.3.1: @@ -5357,7 +5393,7 @@ packages: /is-name-taken@2.0.0: resolution: {integrity: sha512-W+FUWF5g7ONVJTx3rldZeVizmPzrMMUdscpSQ96vyYerx+4b2NcqaujLJJDWruGzE0FjzGZO9RFIipOGxx/WIw==} dependencies: - all-package-names: 2.0.785 + all-package-names: 2.0.808 package-name-conflict: 1.0.3 validate-npm-package-name: 3.0.0 dev: true @@ -5685,6 +5721,13 @@ packages: supports-color: 8.1.1 dev: true + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + requiresBuild: true + dev: true + optional: true + /joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} @@ -5806,6 +5849,12 @@ packages: json-buffer: 3.0.1 dev: true + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + dev: true + /kind-of@3.2.2: resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} engines: {node: '>=0.10.0'} @@ -5820,11 +5869,6 @@ packages: is-buffer: 1.1.6 dev: true - /kind-of@5.1.0: - resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} - engines: {node: '>=0.10.0'} - dev: true - /kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -5839,12 +5883,12 @@ packages: engines: {node: '>=6'} dev: true - /knex-dynamic-connection@3.1.0(sqlite3@5.1.6): - resolution: {integrity: sha512-owRQ9cHBtaBUfYBs/dyt1s/Y0PYwUE66apnfYpzzMTkN2tNlzC1s7owqDJleHOelhJERZgd4jd1BZgcdfXLEhQ==} + /knex-dynamic-connection@3.1.1(sqlite3@5.1.6): + resolution: {integrity: sha512-Omq2Mw+5LkjJvZX+ESWpLx2FYkH9SB6Qq4Jad7f2LNQOQV1VLq91QQqtEhkgprnQuT3IUvzFooARpSN1uzoMEg==} engines: {node: '>=14.0.0'} dependencies: debug: 4.3.4 - knex: 2.5.1(sqlite3@5.1.6) + knex: 3.1.0(sqlite3@5.1.6) transitivePeerDependencies: - better-sqlite3 - mysql @@ -5903,6 +5947,53 @@ packages: - supports-color dev: true + /knex@3.1.0(sqlite3@5.1.6): + resolution: {integrity: sha512-GLoII6hR0c4ti243gMs5/1Rb3B+AjwMOfjYm97pu0FOQa7JH56hgBxYf5WK2525ceSbBY1cjeZ9yk99GPMB6Kw==} + engines: {node: '>=16'} + hasBin: true + peerDependencies: + better-sqlite3: '*' + mysql: '*' + mysql2: '*' + pg: '*' + pg-native: '*' + sqlite3: '*' + tedious: '*' + peerDependenciesMeta: + better-sqlite3: + optional: true + mysql: + optional: true + mysql2: + optional: true + pg: + optional: true + pg-native: + optional: true + sqlite3: + optional: true + tedious: + optional: true + dependencies: + colorette: 2.0.19 + commander: 10.0.1 + debug: 4.3.4 + escalade: 3.1.1 + esm: 3.2.25 + get-package-type: 0.1.0 + getopts: 2.3.0 + interpret: 2.2.0 + lodash: 4.17.21 + pg-connection-string: 2.6.2 + rechoir: 0.8.0 + resolve-from: 5.0.0 + sqlite3: 5.1.6 + tarn: 3.0.2 + tildify: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /latest-version@3.1.0: resolution: {integrity: sha512-Be1YRHWWlZaSsrz2U+VInk+tO0EwLIyV+23RhWLINJYwg/UIikxjlj3MhH37/6/EDCAusjajvMkMMUXRaMWl/w==} engines: {node: '>=4'} @@ -6204,12 +6295,6 @@ packages: semver: 7.5.4 dev: true - /make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - requiresBuild: true - dev: true - optional: true - /make-fetch-happen@9.1.0: resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} engines: {node: '>= 10'} @@ -6875,7 +6960,7 @@ packages: engines: {node: ^16.14.0 || >=18.0.0} dependencies: hosted-git-info: 7.0.1 - is-core-module: 2.13.0 + is-core-module: 2.13.1 semver: 7.5.4 validate-npm-package-license: 3.0.4 dev: true @@ -6900,14 +6985,14 @@ packages: engines: {node: '>=14.16'} dev: true - /np@9.0.0(typescript@4.9.5): - resolution: {integrity: sha512-i6s+p2+Ur2QxfN7fWp3j2/mW8DiIvseYKMH8mXUjHCfTmJTosx+G5bgFlws6P/H4XYyt9NFGCbspWe3W/MUIpA==} + /np@9.2.0(typescript@5.3.3): + resolution: {integrity: sha512-VYA8IKyx5XJqROr2vu8NAstfgBznrnOu3PUByFl3TBwzQVkeGC+gzOPzGbvYKM1QwlX6Gt7kVSPMzDP4qkSs1g==} engines: {git: '>=2.11.0', node: '>=18', npm: '>=9', yarn: '>=1.7.0'} hasBin: true dependencies: chalk: 5.3.0 chalk-template: 1.1.0 - cosmiconfig: 8.3.6(typescript@4.9.5) + cosmiconfig: 8.3.6(typescript@5.3.3) del: 7.1.0 escape-goat: 4.0.0 escape-string-regexp: 5.0.0 @@ -6916,7 +7001,7 @@ packages: github-url-from-git: 1.5.0 has-yarn: 3.0.0 hosted-git-info: 7.0.1 - ignore-walk: 6.0.3 + ignore-walk: 6.0.4 import-local: 3.1.0 inquirer: 9.2.12 is-installed-globally: 1.0.0 @@ -6988,8 +7073,8 @@ packages: path-key: 3.1.1 dev: true - /npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + /npm-run-path@5.2.0: + resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 @@ -7476,9 +7561,9 @@ packages: resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} engines: {node: '>=18'} dependencies: - '@babel/code-frame': 7.22.13 + '@babel/code-frame': 7.23.5 index-to-position: 0.1.2 - type-fest: 4.8.2 + type-fest: 4.9.0 dev: true /parse-passwd@1.0.0: @@ -7580,6 +7665,10 @@ packages: resolution: {integrity: sha512-w6ZzNu6oMmIzEAYVw+RLK0+nqHPt8K3ZnknKi+g48Ak2pr3dtljJW3o+D/n2zzCG07Zoe9VOX3aiKpj+BN0pjg==} dev: true + /pg-connection-string@2.6.2: + resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} + dev: true + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: true @@ -7697,9 +7786,9 @@ packages: fast-diff: 1.3.0 dev: true - /prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} + /prettier@3.1.1: + resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==} + engines: {node: '>=14'} hasBin: true dev: true @@ -7919,7 +8008,7 @@ packages: dependencies: find-up-simple: 1.0.0 read-pkg: 9.0.1 - type-fest: 4.8.2 + type-fest: 4.9.0 dev: true /read-pkg-up@8.0.0: @@ -7948,7 +8037,7 @@ packages: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.0 parse-json: 8.1.0 - type-fest: 4.8.2 + type-fest: 4.9.0 unicorn-magic: 0.1.0 dev: true @@ -8027,7 +8116,7 @@ packages: resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} engines: {node: '>= 10.13.0'} dependencies: - resolve: 1.22.4 + resolve: 1.22.8 dev: true /redent@4.0.0: @@ -8209,11 +8298,11 @@ packages: deprecated: https://github.com/lydell/resolve-url#deprecated dev: true - /resolve@1.22.4: - resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true dependencies: - is-core-module: 2.13.0 + is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -8443,6 +8532,16 @@ packages: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true + /set-function-length@1.1.1: + resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + dev: true + /set-value@2.0.1: resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} engines: {node: '>=0.10.0'} @@ -8983,6 +9082,14 @@ packages: engines: {node: '>=0.10'} dev: true + /synckit@0.8.8: + resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/core': 0.1.0 + tslib: 2.6.2 + dev: true + /tar@6.1.15: resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==} engines: {node: '>=10'} @@ -9153,39 +9260,6 @@ packages: /truncatise@0.0.8: resolution: {integrity: sha512-cXzueh9pzBCsLzhToB4X4gZCb3KYkrsAcBAX97JnazE74HOl3cpBJYEV7nabHeG/6/WXCU5Yujlde/WPBUwnsg==} - /ts-node@10.9.1(@types/node@20.4.7)(typescript@4.9.5): - resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} - hasBin: true - requiresBuild: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 20.4.7 - acorn: 8.10.0 - acorn-walk: 8.2.0 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 4.9.5 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - dev: true - optional: true - /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true @@ -9193,14 +9267,14 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsutils@3.21.0(typescript@4.9.5): + /tsutils@3.21.0(typescript@5.3.3): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.9.5 + typescript: 5.3.3 dev: true /tunnel-agent@0.6.0: @@ -9250,8 +9324,8 @@ packages: engines: {node: '>=14.16'} dev: true - /type-fest@4.8.2: - resolution: {integrity: sha512-mcvrCjixA5166hSrUoJgGb9gBQN4loMYyj9zxuMs/66ibHNEFd5JXMw37YVDx58L4/QID9jIzdTBB4mDwDJ6KQ==} + /type-fest@4.9.0: + resolution: {integrity: sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==} engines: {node: '>=16'} dev: true @@ -9286,9 +9360,9 @@ packages: types-json: 1.2.2 dev: true - /typescript@4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} hasBin: true dev: true @@ -9299,6 +9373,12 @@ packages: random-bytes: 1.0.0 dev: true + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + requiresBuild: true + dev: true + optional: true + /unicorn-magic@0.1.0: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} @@ -9533,12 +9613,6 @@ packages: hasBin: true dev: true - /v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - requiresBuild: true - dev: true - optional: true - /vali-date@1.0.0: resolution: {integrity: sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg==} engines: {node: '>=0.10.0'} @@ -9831,13 +9905,6 @@ packages: yargs-parser: 20.2.9 dev: true - /yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - requiresBuild: true - dev: true - optional: true - /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} diff --git a/src/Mixins/HasDatabaseNotifications.ts b/src/Mixins/HasDatabaseNotifications.ts index 675f092..71c84aa 100644 --- a/src/Mixins/HasDatabaseNotifications.ts +++ b/src/Mixins/HasDatabaseNotifications.ts @@ -6,8 +6,9 @@ import { } from '@ioc:Verful/Notification' import { DateTime } from 'luxon' import createNotificationModel from '../Models/DatabaseNotification' +import Application from '@adonisjs/core/build/services/app' -const { column, hasMany } = global[Symbol.for('ioc.use')]('Adonis/Lucid/Orm') +const { column, hasMany } = Application.container.use('Adonis/Lucid/Orm') /** * This mixin is used to add the notifications relationship to the model diff --git a/src/Mixins/RoutesNotifications.ts b/src/Mixins/RoutesNotifications.ts index 3dfe278..9f5f91e 100644 --- a/src/Mixins/RoutesNotifications.ts +++ b/src/Mixins/RoutesNotifications.ts @@ -1,4 +1,5 @@ import { NotificationContract, RoutesNotificationsMixin } from '@ioc:Verful/Notification' +import Application from '@adonisjs/core/build/services/app' /** * This mixin is used to add the hability to notify a model using any channel, except database @@ -6,12 +7,12 @@ import { NotificationContract, RoutesNotificationsMixin } from '@ioc:Verful/Noti const RoutesNotifications: RoutesNotificationsMixin = (superclass) => { return class RoutesNotificationsModel extends superclass { public async notify(notification: NotificationContract) { - const Notification = globalThis[Symbol.for('ioc.use')]('Verful/Notification') + const Notification = Application.container.use('Verful/Notification') await Notification.send(this, notification) } public async notifyLater(notification: NotificationContract) { - const Notification = globalThis[Symbol.for('ioc.use')]('Verful/Notification') + const Notification = Application.container.use('Verful/Notification') await Notification.sendLater(this, notification) } } diff --git a/src/Models/DatabaseNotification.ts b/src/Models/DatabaseNotification.ts index 03ba3c1..c80bc25 100644 --- a/src/Models/DatabaseNotification.ts +++ b/src/Models/DatabaseNotification.ts @@ -1,11 +1,12 @@ import { DateTime } from 'luxon' - -const { column, BaseModel } = global[Symbol.for('ioc.use')]('Adonis/Lucid/Orm') +import Application from '@adonisjs/core/build/services/app' import { DatabaseNotificationModel, DatabaseNotificationRow } from '@ioc:Verful/Notification' import StaticImplements from '../Helpers/StaticImplements' import type { LucidModel } from '@ioc:Adonis/Lucid/Orm' +const { column, BaseModel } = Application.container.use('Adonis/Lucid/Orm') + export default function createNotificationModel(tableName: string): DatabaseNotificationModel { @StaticImplements() class DatabaseNotification extends (BaseModel as LucidModel) implements DatabaseNotificationRow { @@ -15,8 +16,9 @@ export default function createNotificationModel(tableName: string): DatabaseNoti public id: number @column({ - prepare: (value) => JSON.stringify(value), - consume: (value) => (typeof value === 'string' ? JSON.parse(value) : value), + prepare: (value: Record) => JSON.stringify(value), + consume: (value: string | Record) => + typeof value === 'string' ? JSON.parse(value) : value, }) public data: Record diff --git a/src/Notification.ts b/src/Notification.ts index 65541a5..8e30ab5 100644 --- a/src/Notification.ts +++ b/src/Notification.ts @@ -1,7 +1,8 @@ import { Manager } from '@poppinss/manager' import { string } from '@poppinss/utils/build/helpers' import fastq from 'fastq' - +import type { EmitterContract } from '@ioc:Adonis/Core/Event' +import type { LoggerContract } from '@ioc:Adonis/Core/Logger' import type { ApplicationContract } from '@ioc:Adonis/Core/Application' import { NotificationContract, @@ -13,6 +14,8 @@ import { QueueMonitorCallback, TrapCallback, ResponseType, + DatabaseChannelConfig, + MailChannelConfig, } from '@ioc:Verful/Notification' import { ManagerConfigValidator } from '@poppinss/utils' @@ -33,7 +36,7 @@ export default class Notification { private queue = fastq(this, this.sendQueued, 10) - public singleton = true + protected singleton = true private fakeChannel?: NotificationChannelContract @@ -49,12 +52,17 @@ export default class Notification } } - public emitter = this.app.container.use('Adonis/Core/Event') - public logger = this.app.container.use('Adonis/Core/Logger') + private emitter: EmitterContract + private logger: LoggerContract - constructor(private app: ApplicationContract, private config: NotificationConfig) { + constructor( + private app: ApplicationContract, + private config: NotificationConfig + ) { super(app) this.validateConfig() + this.emitter = this.app.container.use('Adonis/Core/Event') + this.logger = this.app.container.use('Adonis/Core/Logger') } private validateConfig() { @@ -88,7 +96,13 @@ export default class Notification .map((notifiable) => { const channels = [notification.via(notifiable)].flat() return channels.map((channel) => { - const message = notification[`to${string.capitalCase(channel)}`](notifiable) + const method = `to${string.capitalCase(channel)}` as `to${Capitalize}` + + if (!notification[method]) { + throw new Error(`Method ${method} not found on ${notification.constructor.name}`) + } + + const message = notification[method]!(notifiable) return { channel, message, notifiable } }) }) @@ -107,6 +121,7 @@ export default class Notification continue } + // @ts-ignore: always in the correct channel const response = await this.use(channel).send(message, notifiable) responses.push(response) this.emitter.emit('notification:sent', { notification: message, notifiable, channel }) @@ -135,12 +150,12 @@ export default class Notification this.send(notifiables, notification, true) } - protected createDatabase(_, config) { + protected createDatabase(_mappingName: string, config: DatabaseChannelConfig) { const DatabaseChannel = require('./Channels/Database').default return new DatabaseChannel(config) } - protected createMail(_, config) { + protected createMail(_mappingName: string, config: MailChannelConfig) { const MailChannel = require('./Channels/Mail').default return new MailChannel(config) } @@ -149,11 +164,11 @@ export default class Notification return this.config.channel } - protected getMappingConfig(name: string) { + protected getMappingConfig(name: keyof NotificationChannelsList) { return this.config.channels[name] } - protected getMappingDriver(name: string) { + protected getMappingDriver(name: keyof NotificationChannelsList) { const config = this.getMappingConfig(name) return config && config.driver } diff --git a/templates/config/config.txt b/templates/config/config.txt index 5695624..6c59339 100644 --- a/templates/config/config.txt +++ b/templates/config/config.txt @@ -27,4 +27,4 @@ const notificationsConfig: NotificationConfig = { } } -export default NotificationConfig +export default notificationsConfig diff --git a/templates/config/partials/mail-channel.txt b/templates/config/partials/mail-channel.txt index 020cec3..87e3d70 100644 --- a/templates/config/partials/mail-channel.txt +++ b/templates/config/partials/mail-channel.txt @@ -7,6 +7,5 @@ | */ mail: { - driver: 'mail', - mailer: 'smtp' + driver: 'mail' }, diff --git a/tests/NotificationManager.spec.ts b/tests/NotificationManager.spec.ts index 23cf12c..516a9a1 100644 --- a/tests/NotificationManager.spec.ts +++ b/tests/NotificationManager.spec.ts @@ -104,7 +104,7 @@ test.group('NotificationManager', (group) => { } const errorChannel = { - send: async (notification) => { + send: async (notification: string) => { throw new Error(`Test - ${notification}`) }, } diff --git a/tsconfig.json b/tsconfig.json index 237e77e..b40ff06 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,14 +1,26 @@ { - "extends": "./node_modules/@adonisjs/mrm-preset/_tsconfig", - "files": [ - "./node_modules/@adonisjs/lucid/build/adonis-typings/index.d.ts", - "./node_modules/@adonisjs/mail/build/adonis-typings/index.d.ts", - "./node_modules/@adonisjs/core/build/adonis-typings/index.d.ts", - "./node_modules/@adonisjs/application/build/adonis-typings/index.d.ts" - ], "compilerOptions": { + "target": "ES2022", + "module": "CommonJS", + "lib": ["ES2022"], + "noUnusedLocals": true, + "noUnusedParameters": true, + "removeComments": true, + "declaration": true, + "rootDir": "./", + "outDir": "./build", + "strictNullChecks": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "noImplicitAny": true, + "strictFunctionTypes": true, + "noImplicitThis": true, + "skipLibCheck": true, "experimentalDecorators": true, "emitDecoratorMetadata": true, - "skipLibCheck": true - } + "types": ["@types/node", "@adonisjs/core", "@adonisjs/lucid", "@adonisjs/mail"] + }, + "include": ["./**/*"], + "exclude": ["./node_modules", "./build"] } From 8a86c480aa998df1d5808335754f21d633e0c4f4 Mon Sep 17 00:00:00 2001 From: Arthur Rezende Date: Thu, 28 Dec 2023 01:47:07 -0300 Subject: [PATCH 3/3] fix: app import --- src/Mixins/HasDatabaseNotifications.ts | 2 +- src/Mixins/RoutesNotifications.ts | 2 +- src/Models/DatabaseNotification.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Mixins/HasDatabaseNotifications.ts b/src/Mixins/HasDatabaseNotifications.ts index 71c84aa..5f0a893 100644 --- a/src/Mixins/HasDatabaseNotifications.ts +++ b/src/Mixins/HasDatabaseNotifications.ts @@ -6,7 +6,7 @@ import { } from '@ioc:Verful/Notification' import { DateTime } from 'luxon' import createNotificationModel from '../Models/DatabaseNotification' -import Application from '@adonisjs/core/build/services/app' +import Application from '@adonisjs/core/build/services/app.js' const { column, hasMany } = Application.container.use('Adonis/Lucid/Orm') diff --git a/src/Mixins/RoutesNotifications.ts b/src/Mixins/RoutesNotifications.ts index 9f5f91e..6ad4320 100644 --- a/src/Mixins/RoutesNotifications.ts +++ b/src/Mixins/RoutesNotifications.ts @@ -1,5 +1,5 @@ import { NotificationContract, RoutesNotificationsMixin } from '@ioc:Verful/Notification' -import Application from '@adonisjs/core/build/services/app' +import Application from '@adonisjs/core/build/services/app.js' /** * This mixin is used to add the hability to notify a model using any channel, except database diff --git a/src/Models/DatabaseNotification.ts b/src/Models/DatabaseNotification.ts index c80bc25..bda887f 100644 --- a/src/Models/DatabaseNotification.ts +++ b/src/Models/DatabaseNotification.ts @@ -1,5 +1,5 @@ import { DateTime } from 'luxon' -import Application from '@adonisjs/core/build/services/app' +import Application from '@adonisjs/core/build/services/app.js' import { DatabaseNotificationModel, DatabaseNotificationRow } from '@ioc:Verful/Notification' import StaticImplements from '../Helpers/StaticImplements'