diff --git a/package.json b/package.json index 31f8f2935..289bc0e6a 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,8 @@ "peerDependencyRules": { "allowedVersions": { "react": "^18.0.0", - "jest": "^29.1.2" + "jest": "^29.1.2", + "stylelint": "^15.0.0" } } }, diff --git a/packages/cli/package.json b/packages/cli/package.json index af08f0aca..a28dd7499 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -67,8 +67,8 @@ "zod": "^3.20.2" }, "devDependencies": { - "@silverhand/eslint-config": "1.3.0", - "@silverhand/ts-config": "1.2.1", + "@silverhand/eslint-config": "2.0.1", + "@silverhand/ts-config": "2.0.0", "@types/inquirer": "^9.0.0", "@types/jest": "^29.1.2", "@types/node": "^18.11.18", @@ -76,21 +76,15 @@ "@types/sinon": "^10.0.13", "@types/tar": "^6.1.2", "@types/yargs": "^17.0.13", - "eslint": "^8.21.0", + "eslint": "^8.34.0", "jest": "^29.3.1", "lint-staged": "^13.0.0", - "prettier": "^2.8.1", + "prettier": "^2.8.2", "sinon": "^15.0.0", "typescript": "^4.9.4" }, "eslintConfig": { "extends": "@silverhand", - "rules": { - "complexity": [ - "error", - 11 - ] - }, "ignorePatterns": [ "src/package-json.ts" ] diff --git a/packages/cli/src/commands/database/config.ts b/packages/cli/src/commands/database/config.ts index 02c3d505d..1b6800f3c 100644 --- a/packages/cli/src/commands/database/config.ts +++ b/packages/cli/src/commands/database/config.ts @@ -40,7 +40,7 @@ const validRotateKeys = Object.freeze([ LogtoOidcConfigKey.CookieKeys, ] as const); -type ValidateRotateKeyFunction = (key: string) => asserts key is typeof validRotateKeys[number]; +type ValidateRotateKeyFunction = (key: string) => asserts key is (typeof validRotateKeys)[number]; const validateRotateKey: ValidateRotateKeyFunction = (key) => { // Using `.includes()` will result a type error @@ -159,12 +159,14 @@ const rotateConfig: CommandModule = const original = parsed.success ? parsed.data : []; // No need for default. It's already exhaustive - // eslint-disable-next-line default-case switch (key) { - case LogtoOidcConfigKey.PrivateKeys: + case LogtoOidcConfigKey.PrivateKeys: { return [await generateOidcPrivateKey(), ...original]; - case LogtoOidcConfigKey.CookieKeys: + } + + case LogtoOidcConfigKey.CookieKeys: { return [generateOidcCookieKey(), ...original]; + } } }; const rotated = await getValue(); diff --git a/packages/cli/src/commands/database/seed/index.ts b/packages/cli/src/commands/database/seed/index.ts index ba69282b6..589a0bb72 100644 --- a/packages/cli/src/commands/database/seed/index.ts +++ b/packages/cli/src/commands/database/seed/index.ts @@ -11,7 +11,7 @@ import { createTables, seedTables } from './tables.js'; const seedChoices = Object.freeze(['all', 'oidc'] as const); -type SeedChoice = typeof seedChoices[number]; +type SeedChoice = (typeof seedChoices)[number]; export const seedByPool = async (pool: DatabasePool, type: SeedChoice) => { await pool.transaction(async (connection) => { diff --git a/packages/cli/src/queries/logto-config.ts b/packages/cli/src/queries/logto-config.ts index 401e25aeb..a0912711b 100644 --- a/packages/cli/src/queries/logto-config.ts +++ b/packages/cli/src/queries/logto-config.ts @@ -31,7 +31,7 @@ export const updateValueByKey = async ( pool: CommonQueryMethods, tenantId: string, key: T, - value: z.infer + value: z.infer<(typeof logtoConfigGuards)[T]> ) => pool.query( sql` diff --git a/packages/console/package.json b/packages/console/package.json index 6f6c074a0..225c37833 100644 --- a/packages/console/package.json +++ b/packages/console/package.json @@ -31,11 +31,11 @@ "@parcel/transformer-mdx": "2.8.3", "@parcel/transformer-sass": "2.8.3", "@parcel/transformer-svg-react": "2.8.3", - "@silverhand/eslint-config": "1.3.0", - "@silverhand/eslint-config-react": "1.3.0", + "@silverhand/eslint-config": "2.0.1", + "@silverhand/eslint-config-react": "2.0.1", "@silverhand/essentials": "2.1.0", - "@silverhand/ts-config": "1.2.1", - "@silverhand/ts-config-react": "1.2.1", + "@silverhand/ts-config": "2.0.0", + "@silverhand/ts-config-react": "2.0.0", "@tsconfig/docusaurus": "^1.0.5", "@types/color": "^3.0.3", "@types/mdx": "^2.0.1", @@ -54,7 +54,7 @@ "deep-object-diff": "^1.1.7", "deepmerge": "^4.2.2", "dnd-core": "^16.0.0", - "eslint": "^8.21.0", + "eslint": "^8.34.0", "history": "^5.3.0", "i18next": "^21.8.16", "i18next-browser-languagedetector": "^6.1.4", @@ -67,7 +67,7 @@ "parcel": "2.8.3", "postcss": "^8.4.6", "postcss-modules": "^4.3.0", - "prettier": "^2.8.1", + "prettier": "^2.8.2", "process": "^0.11.10", "prop-types": "^15.8.1", "react": "^18.0.0", @@ -107,10 +107,7 @@ "@mdx/components/*": "./src/mdx-components/$1" }, "eslintConfig": { - "extends": "@silverhand/react", - "rules": { - "complexity": "off" - } + "extends": "@silverhand/react" }, "stylelint": { "extends": "@silverhand/eslint-config-react/.stylelintrc" diff --git a/packages/console/src/components/Tip/TipBubble/utils.ts b/packages/console/src/components/Tip/TipBubble/utils.ts index 9c0ad6aa4..1dace20b1 100644 --- a/packages/console/src/components/Tip/TipBubble/utils.ts +++ b/packages/console/src/components/Tip/TipBubble/utils.ts @@ -4,12 +4,17 @@ import type { TipBubblePlacement } from '.'; export const getVerticalOffset = (placement: TipBubblePlacement) => { switch (placement) { - case 'top': + case 'top': { return -16; - case 'bottom': + } + + case 'bottom': { return 16; - default: + } + + default: { return 0; + } } }; @@ -19,12 +24,17 @@ export const getHorizontalOffset = ( ): number => { if (placement === 'top' || placement === 'bottom') { switch (horizontalAlignment) { - case 'start': + case 'start': { return -32; - case 'end': + } + + case 'end': { return 32; - default: + } + + default: { return 0; + } } } else { return placement === 'left' ? -32 : 32; @@ -33,12 +43,17 @@ export const getHorizontalOffset = ( export const getVerticalAlignment = (placement: TipBubblePlacement): VerticalAlignment => { switch (placement) { - case 'top': + case 'top': { return 'top'; - case 'bottom': + } + + case 'bottom': { return 'bottom'; - default: + } + + default: { return 'middle'; + } } }; @@ -47,11 +62,16 @@ export const getHorizontalAlignment = ( fallback: HorizontalAlignment ): HorizontalAlignment => { switch (placement) { - case 'right': + case 'right': { return 'start'; - case 'left': + } + + case 'left': { return 'end'; - default: + } + + default: { return fallback; + } } }; diff --git a/packages/console/src/mdx-components/Tabs/index.tsx b/packages/console/src/mdx-components/Tabs/index.tsx index 78966c934..e14a9b8cf 100644 --- a/packages/console/src/mdx-components/Tabs/index.tsx +++ b/packages/console/src/mdx-components/Tabs/index.tsx @@ -19,7 +19,7 @@ type Props = { // A very rough duck type, but good enough to guard against mistakes while // allowing customization function isTabItem(comp: ReactElement): comp is ReactElement { - return typeof comp.props.value !== 'undefined'; + return comp.props.value !== undefined; } const Tabs = ({ className, children }: Props): JSX.Element => { @@ -63,8 +63,10 @@ const Tabs = ({ className, children }: Props): JSX.Element => { null; break; } - default: + + default: { break; + } } focusElement?.focus(); diff --git a/packages/console/src/pages/Applications/components/GuideHeader/index.tsx b/packages/console/src/pages/Applications/components/GuideHeader/index.tsx index 12c0e0f3c..1b4a9d5c0 100644 --- a/packages/console/src/pages/Applications/components/GuideHeader/index.tsx +++ b/packages/console/src/pages/Applications/components/GuideHeader/index.tsx @@ -23,24 +23,41 @@ const getSampleProjectUrl = (sdk: SupportedSdk) => { const githubUrlPrefix = 'https://github.com/logto-io'; switch (sdk) { - case SupportedSdk.iOS: + case SupportedSdk.iOS: { return `${githubUrlPrefix}/swift/tree/master/Demos/SwiftUI%20Demo`; - case SupportedSdk.Android: + } + + case SupportedSdk.Android: { return `${githubUrlPrefix}/kotlin/tree/master/android-sample-kotlin`; - case SupportedSdk.React: + } + + case SupportedSdk.React: { return `${githubUrlPrefix}/js/tree/master/packages/react-sample`; - case SupportedSdk.Vue: + } + + case SupportedSdk.Vue: { return `${githubUrlPrefix}/js/tree/master/packages/vue-sample`; - case SupportedSdk.Vanilla: + } + + case SupportedSdk.Vanilla: { return `${githubUrlPrefix}/js/tree/master/packages/browser-sample`; - case SupportedSdk.Next: + } + + case SupportedSdk.Next: { return `${githubUrlPrefix}/js/tree/master/packages/next-sample`; - case SupportedSdk.Express: + } + + case SupportedSdk.Express: { return `${githubUrlPrefix}/js/tree/master/packages/express-sample`; - case SupportedSdk.Go: + } + + case SupportedSdk.Go: { return `${githubUrlPrefix}/go/tree/master/gin-sample`; - default: + } + + default: { return ''; + } } }; diff --git a/packages/core/package.json b/packages/core/package.json index b088f15da..f45b82107 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -73,8 +73,8 @@ "zod": "^3.20.2" }, "devDependencies": { - "@silverhand/eslint-config": "1.3.0", - "@silverhand/ts-config": "1.2.1", + "@silverhand/eslint-config": "2.0.1", + "@silverhand/ts-config": "2.0.0", "@types/debug": "^4.1.7", "@types/etag": "^1.8.1", "@types/http-errors": "^1.8.2", @@ -92,7 +92,7 @@ "@types/sinon": "^10.0.13", "@types/supertest": "^2.0.11", "copyfiles": "^2.4.1", - "eslint": "^8.21.0", + "eslint": "^8.34.0", "http-errors": "^1.6.3", "jest": "^29.1.2", "jest-matcher-specific-error": "^1.0.0", @@ -100,7 +100,7 @@ "node-mocks-http": "^1.12.1", "nodemon": "^2.0.19", "openapi-types": "^12.0.0", - "prettier": "^2.8.1", + "prettier": "^2.8.2", "sinon": "^15.0.0", "supertest": "^6.2.2", "typescript": "^4.9.4" @@ -109,25 +109,7 @@ "node": "^18.12.0" }, "eslintConfig": { - "extends": "@silverhand", - "rules": { - "complexity": [ - "error", - 11 - ], - "default-case": "off", - "import/extensions": "off" - }, - "overrides": [ - { - "files": [ - "*.test.ts" - ], - "rules": { - "@typescript-eslint/ban-ts-comment": "off" - } - } - ] + "extends": "@silverhand" }, "prettier": "@silverhand/eslint-config/.prettierrc" } diff --git a/packages/core/src/middleware/koa-connector-error-handler.ts b/packages/core/src/middleware/koa-connector-error-handler.ts index 843da4175..44aa7eb80 100644 --- a/packages/core/src/middleware/koa-connector-error-handler.ts +++ b/packages/core/src/middleware/koa-connector-error-handler.ts @@ -28,14 +28,18 @@ export default function koaConnectorErrorHandler(): Middleware case ConnectorErrorCodes.InvalidRequestParameters: case ConnectorErrorCodes.InsufficientRequestParameters: case ConnectorErrorCodes.InvalidConfig: - case ConnectorErrorCodes.InvalidResponse: + case ConnectorErrorCodes.InvalidResponse: { throw new RequestError({ code: `connector.${code}`, status: 400 }, data); + } + case ConnectorErrorCodes.SocialAuthCodeInvalid: case ConnectorErrorCodes.SocialAccessTokenInvalid: case ConnectorErrorCodes.SocialIdTokenInvalid: - case ConnectorErrorCodes.AuthorizationFailed: + case ConnectorErrorCodes.AuthorizationFailed: { throw new RequestError({ code: `connector.${code}`, status: 401 }, data); - case ConnectorErrorCodes.TemplateNotFound: + } + + case ConnectorErrorCodes.TemplateNotFound: { throw new RequestError( { code: `connector.${code}`, @@ -43,10 +47,13 @@ export default function koaConnectorErrorHandler(): Middleware }, data ); - case ConnectorErrorCodes.NotImplemented: - throw new RequestError({ code: `connector.${code}`, status: 501 }, data); + } - default: + case ConnectorErrorCodes.NotImplemented: { + throw new RequestError({ code: `connector.${code}`, status: 501 }, data); + } + + default: { throw new RequestError( { code: `connector.${code}`, @@ -55,6 +62,7 @@ export default function koaConnectorErrorHandler(): Middleware }, data ); + } } } }; diff --git a/packages/core/src/middleware/koa-oidc-error-handler.ts b/packages/core/src/middleware/koa-oidc-error-handler.ts index 6182dbf37..270f5a64e 100644 --- a/packages/core/src/middleware/koa-oidc-error-handler.ts +++ b/packages/core/src/middleware/koa-oidc-error-handler.ts @@ -44,7 +44,7 @@ export default function koaOIDCErrorHandler(): Middleware(): Middleware(): Middleware(): Middleware(): Middleware { switch (interaction.prompt.name) { - case 'login': + case 'login': { return routes.signIn.credentials; - case 'consent': + } + + case 'consent': { return routes.signIn.consent; - default: + } + + default: { throw new Error(`Prompt not supported: ${interaction.prompt.name}`); + } } }, }, diff --git a/packages/core/src/oidc/utils.ts b/packages/core/src/oidc/utils.ts index fea71f091..83df58319 100644 --- a/packages/core/src/oidc/utils.ts +++ b/packages/core/src/oidc/utils.ts @@ -15,10 +15,13 @@ export const getConstantClientMetadata = ( const getTokenEndpointAuthMethod = (): ClientAuthMethod => { switch (type) { case ApplicationType.Native: - case ApplicationType.SPA: + case ApplicationType.SPA: { return 'none'; - default: + } + + default: { return 'client_secret_basic'; + } } }; diff --git a/packages/core/src/utils/jwks.ts b/packages/core/src/utils/jwks.ts index bffa43a50..2c85841a9 100644 --- a/packages/core/src/utils/jwks.ts +++ b/packages/core/src/utils/jwks.ts @@ -10,25 +10,30 @@ import { exportJWK as joseExportJWK } from 'jose'; const getCalculateKidComponents = (jwk: JWK) => { switch (jwk.kty) { - case 'RSA': + case 'RSA': { return { e: jwk.e, kty: 'RSA', n: jwk.n, }; - case 'EC': + } + + case 'EC': { return { crv: jwk.crv, kty: 'EC', x: jwk.x, y: jwk.y, }; - case 'OKP': + } + + case 'OKP': { return { crv: jwk.crv, kty: 'OKP', x: jwk.x, }; + } default: } }; diff --git a/packages/core/src/utils/search.ts b/packages/core/src/utils/search.ts index 0a531e715..bbd113f6e 100644 --- a/packages/core/src/utils/search.ts +++ b/packages/core/src/utils/search.ts @@ -159,28 +159,38 @@ export const parseSearchParamsForSearch = ( const getJointModeSql = (mode: SearchJointMode) => { switch (mode) { - case SearchJointMode.And: + case SearchJointMode.And: { return sql` and `; - case SearchJointMode.Or: + } + + case SearchJointMode.Or: { return sql` or `; + } } }; const getMatchModeOperator = (match: SearchMatchMode, isCaseSensitive: boolean) => { switch (match) { - case SearchMatchMode.Exact: + case SearchMatchMode.Exact: { return sql`=`; - case SearchMatchMode.Like: + } + + case SearchMatchMode.Like: { return isCaseSensitive ? sql`~~` : sql`~~*`; - case SearchMatchMode.SimilarTo: + } + + case SearchMatchMode.SimilarTo: { assertThat( isCaseSensitive, new TypeError('Cannot use case-insensitive match for `similar to`.') ); return sql`similar to`; - case SearchMatchMode.Posix: + } + + case SearchMatchMode.Posix: { return isCaseSensitive ? sql`~` : sql`~*`; + } } }; diff --git a/packages/core/src/utils/zod.ts b/packages/core/src/utils/zod.ts index feab85012..679a25795 100644 --- a/packages/core/src/utils/zod.ts +++ b/packages/core/src/utils/zod.ts @@ -63,16 +63,19 @@ const zodStringCheckToSwaggerFormat = (zodStringCheck: ZodStringCheck) => { case 'url': case 'uuid': case 'cuid': - case 'regex': + case 'regex': { return kind; + } case 'min': - case 'max': + case 'max': { // Do nothing here return; + } - default: + default: { throw new RequestError('swagger.invalid_zod_type', zodStringCheck); + } } }; @@ -107,23 +110,30 @@ const zodLiteralToSwagger = (zodLiteral: ZodLiteral): OpenAPIV3.SchemaO const { value } = zodLiteral; switch (typeof value) { - case 'boolean': + case 'boolean': { return { type: 'boolean', format: String(value), }; - case 'number': + } + + case 'number': { return { type: 'number', format: String(value), }; - case 'string': + } + + case 'string': { return { type: 'string', format: value === '' ? 'empty' : `"${value}"`, }; - default: + } + + default: { throw new RequestError('swagger.invalid_zod_type', zodLiteral); + } } }; diff --git a/packages/demo-app/package.json b/packages/demo-app/package.json index 6c2adcf51..31123cf19 100644 --- a/packages/demo-app/package.json +++ b/packages/demo-app/package.json @@ -23,21 +23,21 @@ "@logto/schemas": "workspace:*", "@parcel/core": "2.8.3", "@parcel/transformer-sass": "2.8.3", - "@silverhand/eslint-config": "1.3.0", - "@silverhand/eslint-config-react": "1.3.0", - "@silverhand/ts-config": "1.2.1", - "@silverhand/ts-config-react": "1.2.1", + "@silverhand/eslint-config": "2.0.1", + "@silverhand/eslint-config-react": "2.0.1", + "@silverhand/ts-config": "2.0.0", + "@silverhand/ts-config-react": "2.0.0", "@types/react": "^18.0.0", "@types/react-dom": "^18.0.0", "buffer": "^5.7.1", "cross-env": "^7.0.3", - "eslint": "^8.21.0", + "eslint": "^8.34.0", "i18next": "^21.8.16", "i18next-browser-languagedetector": "^6.1.4", "lint-staged": "^13.0.0", "parcel": "2.8.3", "postcss": "^8.4.6", - "prettier": "^2.8.1", + "prettier": "^2.8.2", "react": "^18.0.0", "react-dom": "^18.0.0", "react-i18next": "^11.18.3", @@ -60,10 +60,7 @@ "@/*": "./src/$1" }, "eslintConfig": { - "extends": "@silverhand/react", - "rules": { - "complexity": "off" - } + "extends": "@silverhand/react" }, "stylelint": { "extends": "@silverhand/eslint-config-react/.stylelintrc" diff --git a/packages/integration-tests/package.json b/packages/integration-tests/package.json index 6cebc9fd3..524b37ea6 100644 --- a/packages/integration-tests/package.json +++ b/packages/integration-tests/package.json @@ -26,21 +26,21 @@ "@logto/node": "1.0.0-rc.0", "@logto/schemas": "workspace:*", "@peculiar/webcrypto": "^1.3.3", - "@silverhand/eslint-config": "1.3.0", + "@silverhand/eslint-config": "2.0.1", "@silverhand/essentials": "2.1.0", - "@silverhand/ts-config": "1.2.1", + "@silverhand/ts-config": "2.0.0", "@types/jest": "^29.1.2", "@types/jest-environment-puppeteer": "^5.0.2", "@types/node": "^18.11.18", "dotenv": "^16.0.0", - "eslint": "^8.21.0", + "eslint": "^8.34.0", "got": "^12.5.3", "jest": "^29.1.2", "jest-puppeteer": "^7.0.0", "node-fetch": "^3.3.0", "openapi-schema-validator": "^12.0.0", "openapi-types": "^12.0.0", - "prettier": "^2.8.1", + "prettier": "^2.8.2", "puppeteer": "^19.0.0", "text-encoder": "^0.0.4", "typescript": "^4.9.4" diff --git a/packages/integration-tests/src/tests/api/admin-user.search.test.ts b/packages/integration-tests/src/tests/api/admin-user.search.test.ts index 8216df9a9..c25c87c5f 100644 --- a/packages/integration-tests/src/tests/api/admin-user.search.test.ts +++ b/packages/integration-tests/src/tests/api/admin-user.search.test.ts @@ -36,8 +36,6 @@ describe('admin console user search params', () => { const emailSuffix = ['@gmail.com', '@foo.bar', '@geek.best']; const phonePrefix = ['101', '102', '202']; - // We can make sure this - /* eslint-disable @typescript-eslint/no-non-null-assertion */ // eslint-disable-next-line @silverhand/fp/no-mutation users = await Promise.all( rawNames.map((raw, index) => { @@ -61,7 +59,6 @@ describe('admin console user search params', () => { ); }) ); - /* eslint-enable @typescript-eslint/no-non-null-assertion */ }); afterAll(async () => { @@ -158,8 +155,6 @@ describe('admin console user search params', () => { }); it('should accept multiple value for exact match 2', async () => { - // We can make sure this - /* eslint-disable @typescript-eslint/no-non-null-assertion */ const { headers, json } = await getUsers([ ['search.id', users[0]!.id], ['search.id', users[1]!.id], @@ -169,7 +164,6 @@ describe('admin console user search params', () => { ['mode.id', 'exact'], ['isCaseSensitive', 'true'], ]); - /* eslint-enable @typescript-eslint/no-non-null-assertion */ expect(headers['total-number']).toEqual('3'); expect( diff --git a/packages/phrases-ui/package.json b/packages/phrases-ui/package.json index 5cf47faff..6b0c8db4c 100644 --- a/packages/phrases-ui/package.json +++ b/packages/phrases-ui/package.json @@ -39,12 +39,12 @@ "zod": "^3.20.2" }, "devDependencies": { - "@silverhand/eslint-config": "1.3.0", - "@silverhand/ts-config": "1.2.1", + "@silverhand/eslint-config": "2.0.1", + "@silverhand/ts-config": "2.0.0", "buffer": "^5.7.1", - "eslint": "^8.21.0", + "eslint": "^8.34.0", "lint-staged": "^13.0.0", - "prettier": "^2.8.1", + "prettier": "^2.8.2", "typescript": "^4.9.4" }, "engines": { diff --git a/packages/phrases/package.json b/packages/phrases/package.json index ca1c8171d..35030265a 100644 --- a/packages/phrases/package.json +++ b/packages/phrases/package.json @@ -39,11 +39,11 @@ "zod": "^3.20.2" }, "devDependencies": { - "@silverhand/eslint-config": "1.3.0", - "@silverhand/ts-config": "1.2.1", - "eslint": "^8.21.0", + "@silverhand/eslint-config": "2.0.1", + "@silverhand/ts-config": "2.0.0", + "eslint": "^8.34.0", "lint-staged": "^13.0.0", - "prettier": "^2.8.1", + "prettier": "^2.8.2", "typescript": "^4.9.4" }, "eslintConfig": { diff --git a/packages/schemas/package.json b/packages/schemas/package.json index 02ebae63c..68d04b3c2 100644 --- a/packages/schemas/package.json +++ b/packages/schemas/package.json @@ -40,19 +40,19 @@ "node": "^18.12.0" }, "devDependencies": { - "@silverhand/eslint-config": "1.3.0", + "@silverhand/eslint-config": "2.0.1", "@silverhand/essentials": "2.1.0", - "@silverhand/ts-config": "1.2.1", + "@silverhand/ts-config": "2.0.0", "@types/inquirer": "^9.0.0", "@types/jest": "^29.1.2", "@types/node": "^18.11.18", "@types/pluralize": "^0.0.29", "camelcase": "^7.0.0", - "eslint": "^8.21.0", + "eslint": "^8.34.0", "jest": "^29.1.2", "lint-staged": "^13.0.0", "pluralize": "^8.0.0", - "prettier": "^2.8.1", + "prettier": "^2.8.2", "roarr": "^7.11.0", "slonik": "^30.0.0", "slonik-sql-tag-raw": "^1.1.4", diff --git a/packages/schemas/src/gen/schema.ts b/packages/schemas/src/gen/schema.ts index 964441d8e..58045beb7 100644 --- a/packages/schemas/src/gen/schema.ts +++ b/packages/schemas/src/gen/schema.ts @@ -58,22 +58,19 @@ export const generateSchema = ({ name, fields }: TableWithType) => { '', `const guard: Guard<${modelName}> = z.object({`, - ...fields.map( - // eslint-disable-next-line complexity - ({ name, type, isArray, isEnum, nullable, tsType, isString, maxLength }) => { - if (tsType) { - return ` ${camelcase(name)}: ${camelcase(tsType)}Guard${conditionalString( - nullable && '.nullable()' - )},`; - } - - return ` ${camelcase(name)}: z.${ - isEnum ? `nativeEnum(${type})` : `${type}()` - }${conditionalString(isString && maxLength && `.max(${maxLength})`)}${conditionalString( - isArray && '.array()' - )}${conditionalString(nullable && '.nullable()')},`; + ...fields.map(({ name, type, isArray, isEnum, nullable, tsType, isString, maxLength }) => { + if (tsType) { + return ` ${camelcase(name)}: ${camelcase(tsType)}Guard${conditionalString( + nullable && '.nullable()' + )},`; } - ), + + return ` ${camelcase(name)}: z.${ + isEnum ? `nativeEnum(${type})` : `${type}()` + }${conditionalString(isString && maxLength && `.max(${maxLength})`)}${conditionalString( + isArray && '.array()' + )}${conditionalString(nullable && '.nullable()')},`; + }), ' });', '', `export const ${camelcase(name, { diff --git a/packages/schemas/src/gen/utils.ts b/packages/schemas/src/gen/utils.ts index 213684876..0256688c0 100644 --- a/packages/schemas/src/gen/utils.ts +++ b/packages/schemas/src/gen/utils.ts @@ -121,8 +121,10 @@ export const getType = ( case 'time': case 'timetz': case 'interval': - case 'name': + case 'name': { return 'string'; + } + case 'int2': case 'int4': case 'int8': @@ -134,13 +136,19 @@ export const getType = ( case 'oid': case 'date': case 'timestamp': - case 'timestamptz': + case 'timestamptz': { return 'number'; - case 'boolean': // https://www.postgresql.org/docs/14/datatype-boolean.html + } + + case 'boolean': { + // https://www.postgresql.org/docs/14/datatype-boolean.html return 'boolean'; + } + case 'json': - case 'jsonb': + case 'jsonb': { return 'Record'; + } default: } }; diff --git a/packages/schemas/src/models/hooks.ts b/packages/schemas/src/models/hooks.ts index bcd7446c6..9beff43a0 100644 --- a/packages/schemas/src/models/hooks.ts +++ b/packages/schemas/src/models/hooks.ts @@ -18,7 +18,7 @@ export type HookEventPayload = { sessionId?: string; userAgent?: string; userId?: string; - user?: Pick; + user?: Pick; application?: Pick; } & Record; diff --git a/packages/schemas/src/types/system.ts b/packages/schemas/src/types/system.ts index 4ff99a298..b3a2f4df1 100644 --- a/packages/schemas/src/types/system.ts +++ b/packages/schemas/src/types/system.ts @@ -26,9 +26,7 @@ export type SystemKey = AlterationStateKey; export type SystemType = AlterationStateType; export type SystemGuard = typeof alterationStateGuard; -export const systemKeys: readonly SystemKey[] = Object.freeze([ - ...Object.values(AlterationStateKey), -]); +export const systemKeys: readonly SystemKey[] = Object.freeze(Object.values(AlterationStateKey)); export const systemGuards: SystemGuard = Object.freeze({ ...alterationStateGuard, diff --git a/packages/schemas/src/types/user.ts b/packages/schemas/src/types/user.ts index 4219e9bc0..a416c4be0 100644 --- a/packages/schemas/src/types/user.ts +++ b/packages/schemas/src/types/user.ts @@ -15,7 +15,7 @@ export const userInfoSelectFields = Object.freeze([ 'isSuspended', ] as const); -export type UserInfo = Pick< +export type UserInfo = Pick< CreateUser, Keys >; diff --git a/packages/shared/package.json b/packages/shared/package.json index 6495f2090..75378f510 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -34,14 +34,14 @@ "devDependencies": { "@logto/connector-kit": "workspace:*", "@logto/core-kit": "workspace:*", - "@silverhand/eslint-config": "1.3.0", - "@silverhand/ts-config": "1.2.1", + "@silverhand/eslint-config": "2.0.1", + "@silverhand/ts-config": "2.0.0", "@types/jest": "^29.1.2", "@types/node": "^18.11.18", - "eslint": "^8.21.0", + "eslint": "^8.34.0", "jest": "^29.1.2", "lint-staged": "^13.0.0", - "prettier": "^2.8.1", + "prettier": "^2.8.2", "typescript": "^4.9.4" }, "engines": { diff --git a/packages/shared/src/database/utils.ts b/packages/shared/src/database/utils.ts index d791f21db..6528d1991 100644 --- a/packages/shared/src/database/utils.ts +++ b/packages/shared/src/database/utils.ts @@ -14,8 +14,8 @@ export const conditionalArraySql = ( ) => (value.length > 0 ? buildSql(value) : sql``); export const autoSetFields = Object.freeze(['createdAt', 'updatedAt'] as const); -export type OmitAutoSetFields = Omit; -export type ExcludeAutoSetFields = Exclude; +export type OmitAutoSetFields = Omit; +export type ExcludeAutoSetFields = Exclude; export const excludeAutoSetFields = (fields: readonly T[]) => Object.freeze( fields.filter( @@ -34,7 +34,7 @@ export const excludeAutoSetFields = (fields: readonly T[]) => * @param value The value to convert. * @returns A primitive that can be saved into database. */ -// eslint-disable-next-line complexity + export const convertToPrimitiveOrSql = ( key: string, value: NonNullable | null diff --git a/packages/toolkit/connector-kit/package.json b/packages/toolkit/connector-kit/package.json index 9da8262bd..472ed0430 100644 --- a/packages/toolkit/connector-kit/package.json +++ b/packages/toolkit/connector-kit/package.json @@ -40,12 +40,12 @@ "zod": "^3.20.2" }, "devDependencies": { - "@silverhand/eslint-config": "1.3.0", - "@silverhand/ts-config": "1.2.1", + "@silverhand/eslint-config": "2.0.1", + "@silverhand/ts-config": "2.0.0", "@types/node": "^18.11.18", - "eslint": "^8.21.0", + "eslint": "^8.34.0", "lint-staged": "^13.0.0", - "prettier": "^2.8.1", + "prettier": "^2.8.2", "tslib": "^2.4.1", "typescript": "^4.9.4" }, diff --git a/packages/toolkit/core-kit/package.json b/packages/toolkit/core-kit/package.json index 0153ccbac..08baad611 100644 --- a/packages/toolkit/core-kit/package.json +++ b/packages/toolkit/core-kit/package.json @@ -48,19 +48,19 @@ }, "devDependencies": { "@jest/types": "^29.0.3", - "@silverhand/eslint-config": "1.3.0", - "@silverhand/eslint-config-react": "1.3.0", + "@silverhand/eslint-config": "2.0.1", + "@silverhand/eslint-config-react": "2.0.1", "@silverhand/essentials": "2.1.0", - "@silverhand/ts-config": "1.2.1", + "@silverhand/ts-config": "2.0.0", "@types/color": "^3.0.3", "@types/jest": "^29.0.3", "@types/node": "^18.11.18", "@types/react": "^18.0.20", - "eslint": "^8.21.0", + "eslint": "^8.34.0", "jest": "^29.0.3", "lint-staged": "^13.0.0", "postcss": "^8.4.6", - "prettier": "^2.8.1", + "prettier": "^2.8.2", "stylelint": "^15.0.0", "tslib": "^2.4.1", "typescript": "^4.9.4" diff --git a/packages/toolkit/language-kit/package.json b/packages/toolkit/language-kit/package.json index d13e7f22d..dee6892b2 100644 --- a/packages/toolkit/language-kit/package.json +++ b/packages/toolkit/language-kit/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@jest/types": "^29.0.3", - "@silverhand/eslint-config": "1.3.0", - "@silverhand/ts-config": "1.2.1", + "@silverhand/eslint-config": "2.0.1", + "@silverhand/ts-config": "2.0.0", "@types/jest": "^29.0.3", "@types/node": "^18.11.18", - "eslint": "^8.21.0", + "eslint": "^8.34.0", "jest": "^29.0.3", "lint-staged": "^13.0.0", - "prettier": "^2.8.1", + "prettier": "^2.8.2", "tslib": "^2.4.1", "typescript": "^4.9.4" }, diff --git a/packages/ui/package.json b/packages/ui/package.json index 773a76e7e..38f0c2520 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -28,12 +28,12 @@ "@parcel/transformer-svg-react": "2.8.3", "@peculiar/webcrypto": "^1.3.3", "@react-spring/web": "^9.6.1", - "@silverhand/eslint-config": "1.3.0", - "@silverhand/eslint-config-react": "1.3.0", + "@silverhand/eslint-config": "2.0.1", + "@silverhand/eslint-config-react": "2.0.1", "@silverhand/essentials": "2.1.0", "@silverhand/jest-config": "1.2.2", - "@silverhand/ts-config": "1.2.1", - "@silverhand/ts-config-react": "1.2.1", + "@silverhand/ts-config": "2.0.0", + "@silverhand/ts-config-react": "2.0.0", "@testing-library/react": "^13.3.0", "@types/color": "^3.0.3", "@types/jest": "^29.1.2", @@ -45,7 +45,7 @@ "classnames": "^2.3.1", "color": "^4.2.3", "cross-env": "^7.0.3", - "eslint": "^8.21.0", + "eslint": "^8.34.0", "i18next": "^21.8.16", "i18next-browser-languagedetector": "^6.1.4", "jest": "^29.1.2", @@ -58,7 +58,7 @@ "parcel": "2.8.3", "postcss": "^8.4.6", "postcss-modules": "^4.3.0", - "prettier": "^2.8.1", + "prettier": "^2.8.2", "react": "^18.0.0", "react-device-detect": "^2.2.2", "react-dom": "^18.0.0", @@ -91,7 +91,6 @@ "eslintConfig": { "extends": "@silverhand/react", "rules": { - "complexity": "off", "jsx-a11y/no-autofocus": "off" } }, diff --git a/packages/ui/src/components/VerificationCode/index.tsx b/packages/ui/src/components/VerificationCode/index.tsx index d199528b1..7cdec20f1 100644 --- a/packages/ui/src/components/VerificationCode/index.tsx +++ b/packages/ui/src/components/VerificationCode/index.tsx @@ -138,7 +138,7 @@ const VerificationCode = ({ const previousTarget = inputReferences.current[targetId - 1]; switch (key) { - case 'Backspace': + case 'Backspace': { event.preventDefault(); if (value) { @@ -152,24 +152,32 @@ const VerificationCode = ({ } break; - case 'ArrowLeft': + } + + case 'ArrowLeft': { event.preventDefault(); previousTarget?.focus(); break; - case 'ArrowRight': + } + + case 'ArrowRight': { event.preventDefault(); nextTarget?.focus(); break; + } case '+': case '-': case 'e': case '.': case 'ArrowUp': - case 'ArrowDown': + case 'ArrowDown': { event.preventDefault(); break; - default: + } + + default: { break; + } } }, [codes, onChange] diff --git a/packages/ui/src/hooks/use-required-profile-error-handler.ts b/packages/ui/src/hooks/use-required-profile-error-handler.ts index 4dad45041..cca83bc75 100644 --- a/packages/ui/src/hooks/use-required-profile-error-handler.ts +++ b/packages/ui/src/hooks/use-required-profile-error-handler.ts @@ -37,7 +37,7 @@ const useRequiredProfileErrorHandler = ({ replace, linkSocial, flow }: Options = switch (missingProfile) { case MissingProfile.password: - case MissingProfile.username: + case MissingProfile.username: { navigate( { pathname: `/${UserFlow.continue}/${missingProfile}`, @@ -45,9 +45,10 @@ const useRequiredProfileErrorHandler = ({ replace, linkSocial, flow }: Options = { replace, state: { flow } } ); break; + } case MissingProfile.email: case MissingProfile.phone: - case MissingProfile.emailOrPhone: + case MissingProfile.emailOrPhone: { navigate( { pathname: `/${UserFlow.continue}/${missingProfile}`, @@ -56,6 +57,7 @@ const useRequiredProfileErrorHandler = ({ replace, linkSocial, flow }: Options = { replace, state: { registeredSocialIdentity, flow } } ); break; + } default: { setToast(error.message); diff --git a/packages/ui/src/utils/form.ts b/packages/ui/src/utils/form.ts index 73fef46b6..5cacd4598 100644 --- a/packages/ui/src/utils/form.ts +++ b/packages/ui/src/utils/form.ts @@ -38,12 +38,17 @@ export const getGeneralIdentifierErrorMessage = ( export const validateIdentifierField = (type: IdentifierInputType, value: string) => { switch (type) { - case SignInIdentifier.Username: + case SignInIdentifier.Username: { return validateUsername(value); - case SignInIdentifier.Email: + } + + case SignInIdentifier.Email: { return validateEmail(value); - case SignInIdentifier.Phone: + } + + case SignInIdentifier.Phone: { return validatePhone(value); + } default: } }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 60e5ee103..153506692 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -30,9 +30,9 @@ importers: '@logto/core-kit': workspace:* '@logto/schemas': workspace:* '@logto/shared': workspace:* - '@silverhand/eslint-config': 1.3.0 + '@silverhand/eslint-config': 2.0.1 '@silverhand/essentials': 2.1.0 - '@silverhand/ts-config': 1.2.1 + '@silverhand/ts-config': 2.0.0 '@types/inquirer': ^9.0.0 '@types/jest': ^29.1.2 '@types/node': ^18.11.18 @@ -43,7 +43,7 @@ importers: chalk: ^5.0.0 decamelize: ^6.0.0 dotenv: ^16.0.0 - eslint: ^8.21.0 + eslint: ^8.34.0 got: ^12.5.3 hpagent: ^1.2.0 inquirer: ^9.0.0 @@ -53,7 +53,7 @@ importers: ora: ^6.1.2 p-limit: ^4.0.0 p-retry: ^5.1.2 - prettier: ^2.8.1 + prettier: ^2.8.2 roarr: ^7.11.0 semver: ^7.3.8 sinon: ^15.0.0 @@ -88,8 +88,8 @@ importers: yargs: 17.6.0 zod: 3.20.2 devDependencies: - '@silverhand/eslint-config': 1.3.0_k3lfx77tsvurbevhk73p7ygch4 - '@silverhand/ts-config': 1.2.1_typescript@4.9.4 + '@silverhand/eslint-config': 2.0.1_kjzxg5porcw5dx54sezsklj5cy + '@silverhand/ts-config': 2.0.0_typescript@4.9.4 '@types/inquirer': 9.0.3 '@types/jest': 29.1.2 '@types/node': 18.11.18 @@ -97,10 +97,10 @@ importers: '@types/sinon': 10.0.13 '@types/tar': 6.1.2 '@types/yargs': 17.0.13 - eslint: 8.21.0 + eslint: 8.34.0 jest: 29.3.1_@types+node@18.11.18 lint-staged: 13.0.0 - prettier: 2.8.1 + prettier: 2.8.4 sinon: 15.0.0 typescript: 4.9.4 @@ -119,11 +119,11 @@ importers: '@parcel/transformer-mdx': 2.8.3 '@parcel/transformer-sass': 2.8.3 '@parcel/transformer-svg-react': 2.8.3 - '@silverhand/eslint-config': 1.3.0 - '@silverhand/eslint-config-react': 1.3.0 + '@silverhand/eslint-config': 2.0.1 + '@silverhand/eslint-config-react': 2.0.1 '@silverhand/essentials': 2.1.0 - '@silverhand/ts-config': 1.2.1 - '@silverhand/ts-config-react': 1.2.1 + '@silverhand/ts-config': 2.0.0 + '@silverhand/ts-config-react': 2.0.0 '@tsconfig/docusaurus': ^1.0.5 '@types/color': ^3.0.3 '@types/mdx': ^2.0.1 @@ -142,7 +142,7 @@ importers: deep-object-diff: ^1.1.7 deepmerge: ^4.2.2 dnd-core: ^16.0.0 - eslint: ^8.21.0 + eslint: ^8.34.0 history: ^5.3.0 i18next: ^21.8.16 i18next-browser-languagedetector: ^6.1.4 @@ -155,7 +155,7 @@ importers: parcel: 2.8.3 postcss: ^8.4.6 postcss-modules: ^4.3.0 - prettier: ^2.8.1 + prettier: ^2.8.2 process: ^0.11.10 prop-types: ^15.8.1 react: ^18.0.0 @@ -192,11 +192,11 @@ importers: '@parcel/transformer-mdx': 2.8.3_bj7lw3hdztun63ochfmnvr3ssm '@parcel/transformer-sass': 2.8.3_@parcel+core@2.8.3 '@parcel/transformer-svg-react': 2.8.3_@parcel+core@2.8.3 - '@silverhand/eslint-config': 1.3.0_k3lfx77tsvurbevhk73p7ygch4 - '@silverhand/eslint-config-react': 1.3.0_mjofncf6bj5l5wa732iiywzzfu + '@silverhand/eslint-config': 2.0.1_kjzxg5porcw5dx54sezsklj5cy + '@silverhand/eslint-config-react': 2.0.1_kz2ighe3mj4zdkvq5whtl3dq4u '@silverhand/essentials': 2.1.0 - '@silverhand/ts-config': 1.2.1_typescript@4.9.4 - '@silverhand/ts-config-react': 1.2.1_typescript@4.9.4 + '@silverhand/ts-config': 2.0.0_typescript@4.9.4 + '@silverhand/ts-config-react': 2.0.0_typescript@4.9.4 '@tsconfig/docusaurus': 1.0.5 '@types/color': 3.0.3 '@types/mdx': 2.0.1 @@ -215,7 +215,7 @@ importers: deep-object-diff: 1.1.7 deepmerge: 4.2.2 dnd-core: 16.0.0 - eslint: 8.21.0 + eslint: 8.34.0 history: 5.3.0 i18next: 21.8.16 i18next-browser-languagedetector: 6.1.4 @@ -228,7 +228,7 @@ importers: parcel: 2.8.3_postcss@8.4.6 postcss: 8.4.6 postcss-modules: 4.3.0_postcss@8.4.6 - prettier: 2.8.1 + prettier: 2.8.4 process: 0.11.10 prop-types: 15.8.1 react: 18.2.0 @@ -263,9 +263,9 @@ importers: '@logto/phrases-ui': workspace:* '@logto/schemas': workspace:* '@logto/shared': workspace:* - '@silverhand/eslint-config': 1.3.0 + '@silverhand/eslint-config': 2.0.1 '@silverhand/essentials': 2.1.0 - '@silverhand/ts-config': 1.2.1 + '@silverhand/ts-config': 2.0.0 '@types/debug': ^4.1.7 '@types/etag': ^1.8.1 '@types/http-errors': ^1.8.2 @@ -291,7 +291,7 @@ importers: decamelize: ^6.0.0 deepmerge: ^4.2.2 dotenv: ^16.0.0 - eslint: ^8.21.0 + eslint: ^8.34.0 etag: ^1.8.1 find-up: ^6.3.0 got: ^12.5.3 @@ -319,7 +319,7 @@ importers: oidc-provider: ^8.0.0 openapi-types: ^12.0.0 p-retry: ^5.1.2 - prettier: ^2.8.1 + prettier: ^2.8.2 roarr: ^7.11.0 semver: ^7.3.8 sinon: ^15.0.0 @@ -379,8 +379,8 @@ importers: snakecase-keys: 5.4.4 zod: 3.20.2 devDependencies: - '@silverhand/eslint-config': 1.3.0_k3lfx77tsvurbevhk73p7ygch4 - '@silverhand/ts-config': 1.2.1_typescript@4.9.4 + '@silverhand/eslint-config': 2.0.1_kjzxg5porcw5dx54sezsklj5cy + '@silverhand/ts-config': 2.0.0_typescript@4.9.4 '@types/debug': 4.1.7 '@types/etag': 1.8.1 '@types/http-errors': 1.8.2 @@ -398,7 +398,7 @@ importers: '@types/sinon': 10.0.13 '@types/supertest': 2.0.11 copyfiles: 2.4.1 - eslint: 8.21.0 + eslint: 8.34.0 http-errors: 1.8.1 jest: 29.1.2_@types+node@18.11.18 jest-matcher-specific-error: 1.0.0 @@ -406,7 +406,7 @@ importers: node-mocks-http: 1.12.1 nodemon: 2.0.19 openapi-types: 12.0.0 - prettier: 2.8.1 + prettier: 2.8.4 sinon: 15.0.0 supertest: 6.2.2 typescript: 4.9.4 @@ -426,21 +426,21 @@ importers: '@logto/schemas': workspace:* '@parcel/core': 2.8.3 '@parcel/transformer-sass': 2.8.3 - '@silverhand/eslint-config': 1.3.0 - '@silverhand/eslint-config-react': 1.3.0 - '@silverhand/ts-config': 1.2.1 - '@silverhand/ts-config-react': 1.2.1 + '@silverhand/eslint-config': 2.0.1 + '@silverhand/eslint-config-react': 2.0.1 + '@silverhand/ts-config': 2.0.0 + '@silverhand/ts-config-react': 2.0.0 '@types/react': ^18.0.0 '@types/react-dom': ^18.0.0 buffer: ^5.7.1 cross-env: ^7.0.3 - eslint: ^8.21.0 + eslint: ^8.34.0 i18next: ^21.8.16 i18next-browser-languagedetector: ^6.1.4 lint-staged: ^13.0.0 parcel: 2.8.3 postcss: ^8.4.6 - prettier: ^2.8.1 + prettier: ^2.8.2 react: ^18.0.0 react-dom: ^18.0.0 react-i18next: ^11.18.3 @@ -455,21 +455,21 @@ importers: '@logto/schemas': link:../schemas '@parcel/core': 2.8.3 '@parcel/transformer-sass': 2.8.3_@parcel+core@2.8.3 - '@silverhand/eslint-config': 1.3.0_k3lfx77tsvurbevhk73p7ygch4 - '@silverhand/eslint-config-react': 1.3.0_x4ptagfahokv42d52dklnweqm4 - '@silverhand/ts-config': 1.2.1_typescript@4.9.4 - '@silverhand/ts-config-react': 1.2.1_typescript@4.9.4 + '@silverhand/eslint-config': 2.0.1_kjzxg5porcw5dx54sezsklj5cy + '@silverhand/eslint-config-react': 2.0.1_4hpkokbqyihqjkzrjggsgvbrga + '@silverhand/ts-config': 2.0.0_typescript@4.9.4 + '@silverhand/ts-config-react': 2.0.0_typescript@4.9.4 '@types/react': 18.0.15 '@types/react-dom': 18.0.6 buffer: 5.7.1 cross-env: 7.0.3 - eslint: 8.21.0 + eslint: 8.34.0 i18next: 21.8.16 i18next-browser-languagedetector: 6.1.4 lint-staged: 13.0.0 parcel: 2.8.3_postcss@8.4.14 postcss: 8.4.14 - prettier: 2.8.1 + prettier: 2.8.4 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 react-i18next: 11.18.3_shxxmfhtk2bc4pbx5cyq3uoph4 @@ -485,22 +485,22 @@ importers: '@logto/node': 1.0.0-rc.0 '@logto/schemas': workspace:* '@peculiar/webcrypto': ^1.3.3 - '@silverhand/eslint-config': 1.3.0 + '@silverhand/eslint-config': 2.0.1 '@silverhand/essentials': 2.1.0 - '@silverhand/ts-config': 1.2.1 + '@silverhand/ts-config': 2.0.0 '@types/jest': ^29.1.2 '@types/jest-environment-puppeteer': ^5.0.2 '@types/node': ^18.11.18 '@withtyped/server': ^0.5.1 dotenv: ^16.0.0 - eslint: ^8.21.0 + eslint: ^8.34.0 got: ^12.5.3 jest: ^29.1.2 jest-puppeteer: ^7.0.0 node-fetch: ^3.3.0 openapi-schema-validator: ^12.0.0 openapi-types: ^12.0.0 - prettier: ^2.8.1 + prettier: ^2.8.2 puppeteer: ^19.0.0 text-encoder: ^0.0.4 typescript: ^4.9.4 @@ -513,21 +513,21 @@ importers: '@logto/node': 1.0.0-rc.0 '@logto/schemas': link:../schemas '@peculiar/webcrypto': 1.3.3 - '@silverhand/eslint-config': 1.3.0_k3lfx77tsvurbevhk73p7ygch4 + '@silverhand/eslint-config': 2.0.1_kjzxg5porcw5dx54sezsklj5cy '@silverhand/essentials': 2.1.0 - '@silverhand/ts-config': 1.2.1_typescript@4.9.4 + '@silverhand/ts-config': 2.0.0_typescript@4.9.4 '@types/jest': 29.1.2 '@types/jest-environment-puppeteer': 5.0.2 '@types/node': 18.11.18 dotenv: 16.0.0 - eslint: 8.21.0 + eslint: 8.34.0 got: 12.5.3 jest: 29.1.2_@types+node@18.11.18 jest-puppeteer: 7.0.0_puppeteer@19.2.2 node-fetch: 3.3.0 openapi-schema-validator: 12.0.0 openapi-types: 12.0.0 - prettier: 2.8.1 + prettier: 2.8.4 puppeteer: 19.2.2 text-encoder: 0.0.4 typescript: 4.9.4 @@ -536,12 +536,12 @@ importers: specifiers: '@logto/core-kit': workspace:* '@logto/language-kit': workspace:* - '@silverhand/eslint-config': 1.3.0 + '@silverhand/eslint-config': 2.0.1 '@silverhand/essentials': 2.1.0 - '@silverhand/ts-config': 1.2.1 - eslint: ^8.21.0 + '@silverhand/ts-config': 2.0.0 + eslint: ^8.34.0 lint-staged: ^13.0.0 - prettier: ^2.8.1 + prettier: ^2.8.2 typescript: ^4.9.4 zod: ^3.20.2 dependencies: @@ -550,24 +550,24 @@ importers: '@silverhand/essentials': 2.1.0 zod: 3.20.2 devDependencies: - '@silverhand/eslint-config': 1.3.0_k3lfx77tsvurbevhk73p7ygch4 - '@silverhand/ts-config': 1.2.1_typescript@4.9.4 - eslint: 8.21.0 + '@silverhand/eslint-config': 2.0.1_kjzxg5porcw5dx54sezsklj5cy + '@silverhand/ts-config': 2.0.0_typescript@4.9.4 + eslint: 8.34.0 lint-staged: 13.0.0 - prettier: 2.8.1 + prettier: 2.8.4 typescript: 4.9.4 packages/phrases-ui: specifiers: '@logto/core-kit': workspace:* '@logto/language-kit': workspace:* - '@silverhand/eslint-config': 1.3.0 + '@silverhand/eslint-config': 2.0.1 '@silverhand/essentials': 2.1.0 - '@silverhand/ts-config': 1.2.1 + '@silverhand/ts-config': 2.0.0 buffer: ^5.7.1 - eslint: ^8.21.0 + eslint: ^8.34.0 lint-staged: ^13.0.0 - prettier: ^2.8.1 + prettier: ^2.8.2 typescript: ^4.9.4 zod: ^3.20.2 dependencies: @@ -576,12 +576,12 @@ importers: '@silverhand/essentials': 2.1.0 zod: 3.20.2 devDependencies: - '@silverhand/eslint-config': 1.3.0_k3lfx77tsvurbevhk73p7ygch4 - '@silverhand/ts-config': 1.2.1_typescript@4.9.4 + '@silverhand/eslint-config': 2.0.1_kjzxg5porcw5dx54sezsklj5cy + '@silverhand/ts-config': 2.0.0_typescript@4.9.4 buffer: 5.7.1 - eslint: 8.21.0 + eslint: 8.34.0 lint-staged: 13.0.0 - prettier: 2.8.1 + prettier: 2.8.4 typescript: 4.9.4 packages/schemas: @@ -591,20 +591,20 @@ importers: '@logto/language-kit': workspace:* '@logto/phrases': workspace:* '@logto/phrases-ui': workspace:* - '@silverhand/eslint-config': 1.3.0 + '@silverhand/eslint-config': 2.0.1 '@silverhand/essentials': 2.1.0 - '@silverhand/ts-config': 1.2.1 + '@silverhand/ts-config': 2.0.0 '@types/inquirer': ^9.0.0 '@types/jest': ^29.1.2 '@types/node': ^18.11.18 '@types/pluralize': ^0.0.29 '@withtyped/server': ^0.5.1 camelcase: ^7.0.0 - eslint: ^8.21.0 + eslint: ^8.34.0 jest: ^29.1.2 lint-staged: ^13.0.0 pluralize: ^8.0.0 - prettier: ^2.8.1 + prettier: ^2.8.2 roarr: ^7.11.0 slonik: ^30.0.0 slonik-sql-tag-raw: ^1.1.4 @@ -619,19 +619,19 @@ importers: '@withtyped/server': 0.5.1 zod: 3.20.2 devDependencies: - '@silverhand/eslint-config': 1.3.0_k3lfx77tsvurbevhk73p7ygch4 + '@silverhand/eslint-config': 2.0.1_kjzxg5porcw5dx54sezsklj5cy '@silverhand/essentials': 2.1.0 - '@silverhand/ts-config': 1.2.1_typescript@4.9.4 + '@silverhand/ts-config': 2.0.0_typescript@4.9.4 '@types/inquirer': 9.0.3 '@types/jest': 29.1.2 '@types/node': 18.11.18 '@types/pluralize': 0.0.29 camelcase: 7.0.0 - eslint: 8.21.0 + eslint: 8.34.0 jest: 29.1.2_@types+node@18.11.18 lint-staged: 13.0.0 pluralize: 8.0.0 - prettier: 2.8.1 + prettier: 2.8.4 roarr: 7.11.0 slonik: 30.1.2 slonik-sql-tag-raw: 1.1.4_roarr@7.11.0+slonik@30.1.2 @@ -642,17 +642,17 @@ importers: '@logto/connector-kit': workspace:* '@logto/core-kit': workspace:* '@logto/schemas': workspace:* - '@silverhand/eslint-config': 1.3.0 + '@silverhand/eslint-config': 2.0.1 '@silverhand/essentials': 2.1.0 - '@silverhand/ts-config': 1.2.1 + '@silverhand/ts-config': 2.0.0 '@types/jest': ^29.1.2 '@types/node': ^18.11.18 - eslint: ^8.21.0 + eslint: ^8.34.0 find-up: ^6.3.0 jest: ^29.1.2 lint-staged: ^13.0.0 nanoid: ^4.0.0 - prettier: ^2.8.1 + prettier: ^2.8.2 slonik: ^30.0.0 typescript: ^4.9.4 dependencies: @@ -664,27 +664,27 @@ importers: devDependencies: '@logto/connector-kit': link:../toolkit/connector-kit '@logto/core-kit': link:../toolkit/core-kit - '@silverhand/eslint-config': 1.3.0_k3lfx77tsvurbevhk73p7ygch4 - '@silverhand/ts-config': 1.2.1_typescript@4.9.4 + '@silverhand/eslint-config': 2.0.1_kjzxg5porcw5dx54sezsklj5cy + '@silverhand/ts-config': 2.0.0_typescript@4.9.4 '@types/jest': 29.1.2 '@types/node': 18.11.18 - eslint: 8.21.0 + eslint: 8.34.0 jest: 29.1.2_@types+node@18.11.18 lint-staged: 13.0.0 - prettier: 2.8.1 + prettier: 2.8.4 typescript: 4.9.4 packages/toolkit/connector-kit: specifiers: '@logto/core-kit': workspace:* '@logto/language-kit': workspace:* - '@silverhand/eslint-config': 1.3.0 + '@silverhand/eslint-config': 2.0.1 '@silverhand/essentials': 2.1.0 - '@silverhand/ts-config': 1.2.1 + '@silverhand/ts-config': 2.0.0 '@types/node': ^18.11.18 - eslint: ^8.21.0 + eslint: ^8.34.0 lint-staged: ^13.0.0 - prettier: ^2.8.1 + prettier: ^2.8.2 tslib: ^2.4.1 typescript: ^4.9.4 zod: ^3.20.2 @@ -695,12 +695,12 @@ importers: optionalDependencies: zod: 3.20.2 devDependencies: - '@silverhand/eslint-config': 1.3.0_k3lfx77tsvurbevhk73p7ygch4 - '@silverhand/ts-config': 1.2.1_typescript@4.9.4 + '@silverhand/eslint-config': 2.0.1_kjzxg5porcw5dx54sezsklj5cy + '@silverhand/ts-config': 2.0.0_typescript@4.9.4 '@types/node': 18.11.18 - eslint: 8.21.0 + eslint: 8.34.0 lint-staged: 13.0.0 - prettier: 2.8.1 + prettier: 2.8.4 tslib: 2.4.1 typescript: 4.9.4 @@ -708,21 +708,21 @@ importers: specifiers: '@jest/types': ^29.0.3 '@logto/language-kit': workspace:* - '@silverhand/eslint-config': 1.3.0 - '@silverhand/eslint-config-react': 1.3.0 + '@silverhand/eslint-config': 2.0.1 + '@silverhand/eslint-config-react': 2.0.1 '@silverhand/essentials': 2.1.0 - '@silverhand/ts-config': 1.2.1 + '@silverhand/ts-config': 2.0.0 '@types/color': ^3.0.3 '@types/jest': ^29.0.3 '@types/node': ^18.11.18 '@types/react': ^18.0.20 color: ^4.2.3 - eslint: ^8.21.0 + eslint: ^8.34.0 jest: ^29.0.3 lint-staged: ^13.0.0 nanoid: ^4.0.0 postcss: ^8.4.6 - prettier: ^2.8.1 + prettier: ^2.8.2 stylelint: ^15.0.0 tslib: ^2.4.1 typescript: ^4.9.4 @@ -735,19 +735,19 @@ importers: zod: 3.20.2 devDependencies: '@jest/types': 29.3.1 - '@silverhand/eslint-config': 1.3.0_k3lfx77tsvurbevhk73p7ygch4 - '@silverhand/eslint-config-react': 1.3.0_e2ux4yrzfwpqte4cslbdmhbbei + '@silverhand/eslint-config': 2.0.1_kjzxg5porcw5dx54sezsklj5cy + '@silverhand/eslint-config-react': 2.0.1_wfldc7mlde5bb3fdzap5arn6me '@silverhand/essentials': 2.1.0 - '@silverhand/ts-config': 1.2.1_typescript@4.9.4 + '@silverhand/ts-config': 2.0.0_typescript@4.9.4 '@types/color': 3.0.3 '@types/jest': 29.1.2 '@types/node': 18.11.18 '@types/react': 18.0.26 - eslint: 8.21.0 + eslint: 8.34.0 jest: 29.3.1_@types+node@18.11.18 lint-staged: 13.0.0 postcss: 8.4.18 - prettier: 2.8.1 + prettier: 2.8.4 stylelint: 15.0.0 tslib: 2.4.1 typescript: 4.9.4 @@ -755,14 +755,14 @@ importers: packages/toolkit/language-kit: specifiers: '@jest/types': ^29.0.3 - '@silverhand/eslint-config': 1.3.0 - '@silverhand/ts-config': 1.2.1 + '@silverhand/eslint-config': 2.0.1 + '@silverhand/ts-config': 2.0.0 '@types/jest': ^29.0.3 '@types/node': ^18.11.18 - eslint: ^8.21.0 + eslint: ^8.34.0 jest: ^29.0.3 lint-staged: ^13.0.0 - prettier: ^2.8.1 + prettier: ^2.8.2 tslib: ^2.4.1 typescript: ^4.9.4 zod: ^3.20.2 @@ -770,14 +770,14 @@ importers: zod: 3.20.2 devDependencies: '@jest/types': 29.3.1 - '@silverhand/eslint-config': 1.3.0_k3lfx77tsvurbevhk73p7ygch4 - '@silverhand/ts-config': 1.2.1_typescript@4.9.4 + '@silverhand/eslint-config': 2.0.1_kjzxg5porcw5dx54sezsklj5cy + '@silverhand/ts-config': 2.0.0_typescript@4.9.4 '@types/jest': 29.1.2 '@types/node': 18.11.18 - eslint: 8.21.0 + eslint: 8.34.0 jest: 29.3.1_@types+node@18.11.18 lint-staged: 13.0.0 - prettier: 2.8.1 + prettier: 2.8.4 tslib: 2.4.1 typescript: 4.9.4 @@ -794,12 +794,12 @@ importers: '@parcel/transformer-svg-react': 2.8.3 '@peculiar/webcrypto': ^1.3.3 '@react-spring/web': ^9.6.1 - '@silverhand/eslint-config': 1.3.0 - '@silverhand/eslint-config-react': 1.3.0 + '@silverhand/eslint-config': 2.0.1 + '@silverhand/eslint-config-react': 2.0.1 '@silverhand/essentials': 2.1.0 '@silverhand/jest-config': 1.2.2 - '@silverhand/ts-config': 1.2.1 - '@silverhand/ts-config-react': 1.2.1 + '@silverhand/ts-config': 2.0.0 + '@silverhand/ts-config-react': 2.0.0 '@testing-library/react': ^13.3.0 '@types/color': ^3.0.3 '@types/jest': ^29.1.2 @@ -811,7 +811,7 @@ importers: classnames: ^2.3.1 color: ^4.2.3 cross-env: ^7.0.3 - eslint: ^8.21.0 + eslint: ^8.34.0 i18next: ^21.8.16 i18next-browser-languagedetector: ^6.1.4 jest: ^29.1.2 @@ -824,7 +824,7 @@ importers: parcel: 2.8.3 postcss: ^8.4.6 postcss-modules: ^4.3.0 - prettier: ^2.8.1 + prettier: ^2.8.2 react: ^18.0.0 react-device-detect: ^2.2.2 react-dom: ^18.0.0 @@ -851,12 +851,12 @@ importers: '@parcel/transformer-svg-react': 2.8.3_@parcel+core@2.8.3 '@peculiar/webcrypto': 1.3.3 '@react-spring/web': 9.6.1_biqbaboplfbrettd7655fr4n2y - '@silverhand/eslint-config': 1.3.0_k3lfx77tsvurbevhk73p7ygch4 - '@silverhand/eslint-config-react': 1.3.0_mjofncf6bj5l5wa732iiywzzfu + '@silverhand/eslint-config': 2.0.1_kjzxg5porcw5dx54sezsklj5cy + '@silverhand/eslint-config-react': 2.0.1_kz2ighe3mj4zdkvq5whtl3dq4u '@silverhand/essentials': 2.1.0 '@silverhand/jest-config': 1.2.2_ky6c64xxalg2hsll4xx3evq2dy - '@silverhand/ts-config': 1.2.1_typescript@4.9.4 - '@silverhand/ts-config-react': 1.2.1_typescript@4.9.4 + '@silverhand/ts-config': 2.0.0_typescript@4.9.4 + '@silverhand/ts-config-react': 2.0.0_typescript@4.9.4 '@testing-library/react': 13.3.0_biqbaboplfbrettd7655fr4n2y '@types/color': 3.0.3 '@types/jest': 29.1.2 @@ -868,7 +868,7 @@ importers: classnames: 2.3.1 color: 4.2.3 cross-env: 7.0.3 - eslint: 8.21.0 + eslint: 8.34.0 i18next: 21.8.16 i18next-browser-languagedetector: 6.1.4 jest: 29.1.2 @@ -881,7 +881,7 @@ importers: parcel: 2.8.3_postcss@8.4.6 postcss: 8.4.6 postcss-modules: 4.3.0_postcss@8.4.6 - prettier: 2.8.1 + prettier: 2.8.4 react: 18.2.0 react-device-detect: 2.2.2_biqbaboplfbrettd7655fr4n2y react-dom: 18.2.0_react@18.2.0 @@ -1361,7 +1361,7 @@ packages: fs-extra: 7.0.1 lodash.startcase: 4.4.0 outdent: 0.5.0 - prettier: 2.8.1 + prettier: 2.8.4 resolve-from: 5.0.0 semver: 5.7.1 dev: true @@ -1528,7 +1528,7 @@ packages: '@changesets/types': 5.2.0 fs-extra: 7.0.1 human-id: 1.0.2 - prettier: 2.8.1 + prettier: 2.8.4 dev: true /@commitlint/cli/17.0.0: @@ -1738,14 +1738,24 @@ packages: postcss-selector-parser: 6.0.11 dev: true - /@eslint/eslintrc/1.3.0: - resolution: {integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==} + /@eslint-community/eslint-utils/4.1.2_eslint@8.34.0: + resolution: {integrity: sha512-7qELuQWWjVDdVsFQ5+beUl+KPczrEDA7S3zM4QUd/bJl7oXgsmpXaEVqrRTnOBqenOV4rWf2kVZk2Ot085zPWA==} + 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.34.0 + eslint-visitor-keys: 3.3.0 + dev: true + + /@eslint/eslintrc/1.4.1: + resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.3.3 - globals: 13.18.0 + espree: 9.4.1 + globals: 13.20.0 ignore: 5.2.4 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -1769,8 +1779,8 @@ packages: '@hapi/hoek': 9.3.0 dev: true - /@humanwhocodes/config-array/0.10.4: - resolution: {integrity: sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==} + /@humanwhocodes/config-array/0.11.8: + resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -1780,8 +1790,9 @@ packages: - supports-color dev: true - /@humanwhocodes/gitignore-to-minimatch/1.0.2: - resolution: {integrity: sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==} + /@humanwhocodes/module-importer/1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} dev: true /@humanwhocodes/object-schema/1.2.1: @@ -3449,61 +3460,17 @@ packages: resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} dev: true - /@silverhand/eslint-config-react/1.3.0_e2ux4yrzfwpqte4cslbdmhbbei: - resolution: {integrity: sha512-L6tzayeKo1RXTadIHbZKUJWzi5Pu0tjg6eoTw5mz+3FTLu4zBXK0+/jK6FeHwQ3lWt8Cj3HDIMvVG97yjoblPA==} - engines: {node: ^16.0.0 || ^18.0.0} + /@silverhand/eslint-config-react/2.0.1_4hpkokbqyihqjkzrjggsgvbrga: + resolution: {integrity: sha512-mQ8+9+JdJ9OlExlF3oamyXCzJ9YTj7u8p999w1Lc1ZHsBTe2u/FxgN14+aWlJ1P0YDtcepNykALAX0a7/1CYKA==} + engines: {node: ^18.12.0} peerDependencies: - stylelint: ^14.9.1 + stylelint: ^15.0.0 dependencies: - '@silverhand/eslint-config': 1.3.0_k3lfx77tsvurbevhk73p7ygch4 - eslint-config-xo-react: 0.27.0_nlhz3yu2pbp43ngjgjnh6mfwge - eslint-plugin-jsx-a11y: 6.6.1_eslint@8.21.0 - eslint-plugin-react: 7.31.10_eslint@8.21.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.21.0 - stylelint: 15.0.0 - stylelint-config-xo-scss: 0.15.0_fjjhkehkplgtfpeiyp4aw74d4a - transitivePeerDependencies: - - eslint - - eslint-import-resolver-webpack - - postcss - - prettier - - supports-color - - typescript - dev: true - - /@silverhand/eslint-config-react/1.3.0_mjofncf6bj5l5wa732iiywzzfu: - resolution: {integrity: sha512-L6tzayeKo1RXTadIHbZKUJWzi5Pu0tjg6eoTw5mz+3FTLu4zBXK0+/jK6FeHwQ3lWt8Cj3HDIMvVG97yjoblPA==} - engines: {node: ^16.0.0 || ^18.0.0} - peerDependencies: - stylelint: ^14.9.1 - dependencies: - '@silverhand/eslint-config': 1.3.0_k3lfx77tsvurbevhk73p7ygch4 - eslint-config-xo-react: 0.27.0_nlhz3yu2pbp43ngjgjnh6mfwge - eslint-plugin-jsx-a11y: 6.6.1_eslint@8.21.0 - eslint-plugin-react: 7.31.10_eslint@8.21.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.21.0 - stylelint: 15.0.0 - stylelint-config-xo-scss: 0.15.0_4d3dzrdgigc3xidxkjls5aue6y - transitivePeerDependencies: - - eslint - - eslint-import-resolver-webpack - - postcss - - prettier - - supports-color - - typescript - dev: true - - /@silverhand/eslint-config-react/1.3.0_x4ptagfahokv42d52dklnweqm4: - resolution: {integrity: sha512-L6tzayeKo1RXTadIHbZKUJWzi5Pu0tjg6eoTw5mz+3FTLu4zBXK0+/jK6FeHwQ3lWt8Cj3HDIMvVG97yjoblPA==} - engines: {node: ^16.0.0 || ^18.0.0} - peerDependencies: - stylelint: ^14.9.1 - dependencies: - '@silverhand/eslint-config': 1.3.0_k3lfx77tsvurbevhk73p7ygch4 - eslint-config-xo-react: 0.27.0_nlhz3yu2pbp43ngjgjnh6mfwge - eslint-plugin-jsx-a11y: 6.6.1_eslint@8.21.0 - eslint-plugin-react: 7.31.10_eslint@8.21.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.21.0 + '@silverhand/eslint-config': 2.0.1_kjzxg5porcw5dx54sezsklj5cy + eslint-config-xo-react: 0.27.0_xjjcxp76ccxcu2rtkp4ut3zfjy + eslint-plugin-jsx-a11y: 6.6.1_eslint@8.34.0 + eslint-plugin-react: 7.31.10_eslint@8.34.0 + eslint-plugin-react-hooks: 4.6.0_eslint@8.34.0 stylelint: 15.0.0 stylelint-config-xo-scss: 0.15.0_c7u3eu4vmkyh765dk7mgfvmrye transitivePeerDependencies: @@ -3515,46 +3482,90 @@ packages: - typescript dev: true - /@silverhand/eslint-config/1.3.0_k3lfx77tsvurbevhk73p7ygch4: - resolution: {integrity: sha512-0+SXJXAkUe1pg2DNn3JCEo99Weev07chQsL2iSCramXeMKjEk1R1UKjgQJM9saUGF7ovY4hlE/JjFD3PFId4DQ==} - engines: {node: ^16.0.0 || ^18.0.0} + /@silverhand/eslint-config-react/2.0.1_kz2ighe3mj4zdkvq5whtl3dq4u: + resolution: {integrity: sha512-mQ8+9+JdJ9OlExlF3oamyXCzJ9YTj7u8p999w1Lc1ZHsBTe2u/FxgN14+aWlJ1P0YDtcepNykALAX0a7/1CYKA==} + engines: {node: ^18.12.0} peerDependencies: - eslint: ^8.21.0 - prettier: ^2.7.1 + stylelint: ^15.0.0 dependencies: - '@silverhand/eslint-plugin-fp': 2.5.0_eslint@8.21.0 - '@typescript-eslint/eslint-plugin': 5.40.0_ryuuuwjgkm45eys4ms27dfx6xm - '@typescript-eslint/parser': 5.40.0_ggwlz5rjjuds5feuls6rqqovzi - eslint: 8.21.0 - eslint-config-prettier: 8.5.0_eslint@8.21.0 - eslint-config-xo: 0.42.0_eslint@8.21.0 - eslint-config-xo-typescript: 0.53.0_cqx3bgaw6gtoyrp3gyom2ucbru - eslint-import-resolver-typescript: 3.5.1_jatgrcxl4x7ywe7ak6cnjca2ae + '@silverhand/eslint-config': 2.0.1_kjzxg5porcw5dx54sezsklj5cy + eslint-config-xo-react: 0.27.0_xjjcxp76ccxcu2rtkp4ut3zfjy + eslint-plugin-jsx-a11y: 6.6.1_eslint@8.34.0 + eslint-plugin-react: 7.31.10_eslint@8.34.0 + eslint-plugin-react-hooks: 4.6.0_eslint@8.34.0 + stylelint: 15.0.0 + stylelint-config-xo-scss: 0.15.0_4d3dzrdgigc3xidxkjls5aue6y + transitivePeerDependencies: + - eslint + - eslint-import-resolver-webpack + - postcss + - prettier + - supports-color + - typescript + dev: true + + /@silverhand/eslint-config-react/2.0.1_wfldc7mlde5bb3fdzap5arn6me: + resolution: {integrity: sha512-mQ8+9+JdJ9OlExlF3oamyXCzJ9YTj7u8p999w1Lc1ZHsBTe2u/FxgN14+aWlJ1P0YDtcepNykALAX0a7/1CYKA==} + engines: {node: ^18.12.0} + peerDependencies: + stylelint: ^15.0.0 + dependencies: + '@silverhand/eslint-config': 2.0.1_kjzxg5porcw5dx54sezsklj5cy + eslint-config-xo-react: 0.27.0_xjjcxp76ccxcu2rtkp4ut3zfjy + eslint-plugin-jsx-a11y: 6.6.1_eslint@8.34.0 + eslint-plugin-react: 7.31.10_eslint@8.34.0 + eslint-plugin-react-hooks: 4.6.0_eslint@8.34.0 + stylelint: 15.0.0 + stylelint-config-xo-scss: 0.15.0_fjjhkehkplgtfpeiyp4aw74d4a + transitivePeerDependencies: + - eslint + - eslint-import-resolver-webpack + - postcss + - prettier + - supports-color + - typescript + dev: true + + /@silverhand/eslint-config/2.0.1_kjzxg5porcw5dx54sezsklj5cy: + resolution: {integrity: sha512-EUJseDVhvJUlEdr0dtPTbwCdooasPTLzXDNq3mGB3YEglbXyfh+2LMVgYCzNfZC1AFp6mdf0gdkAKeKhHodY0A==} + engines: {node: ^18.12.0} + peerDependencies: + eslint: ^8.34.0 + prettier: ^2.8.2 + dependencies: + '@silverhand/eslint-plugin-fp': 2.5.0_eslint@8.34.0 + '@typescript-eslint/eslint-plugin': 5.40.0_obyoopcjqb5etbnp6i4ac3uhty + '@typescript-eslint/parser': 5.40.0_ehfyfk7qbmgzg5nk6xmobqdh3a + eslint: 8.34.0 + eslint-config-prettier: 8.5.0_eslint@8.34.0 + eslint-config-xo: 0.42.0_eslint@8.34.0 + eslint-config-xo-typescript: 0.53.0_jmamhc4xvtwpcgjztmjzde7ise + eslint-import-resolver-typescript: 3.5.1_w7dy265x2bmlgtc6kmsfumkjde eslint-plugin-consistent-default-export-name: 0.0.15 - eslint-plugin-eslint-comments: 3.2.0_eslint@8.21.0 - eslint-plugin-import: 2.26.0_7tkpoacjify653e7qftl64vwym + eslint-plugin-eslint-comments: 3.2.0_eslint@8.34.0 + eslint-plugin-import: 2.26.0_7acvpkap2crzb63j3epkkcikb4 eslint-plugin-no-use-extend-native: 0.5.0 - eslint-plugin-node: 11.1.0_eslint@8.21.0 - eslint-plugin-prettier: 4.2.1_a6f6qfpus2ck3ixy65j6aotnla - eslint-plugin-promise: 6.1.0_eslint@8.21.0 - eslint-plugin-sql: 2.1.0_eslint@8.21.0 - eslint-plugin-unicorn: 43.0.2_eslint@8.21.0 - eslint-plugin-unused-imports: 2.0.0_kjyxfvacupbf4yx7sz4dzjz4we - prettier: 2.8.1 + eslint-plugin-node: 11.1.0_eslint@8.34.0 + eslint-plugin-prettier: 4.2.1_tgj6q6crlj7y24j3aycgzuhnii + eslint-plugin-promise: 6.1.0_eslint@8.34.0 + eslint-plugin-sql: 2.1.0_eslint@8.34.0 + eslint-plugin-unicorn: 45.0.2_eslint@8.34.0 + eslint-plugin-unused-imports: 2.0.0_czsqqwqapes7i6tgh3gb7mfbz4 + prettier: 2.8.4 transitivePeerDependencies: - eslint-import-resolver-webpack - supports-color - typescript dev: true - /@silverhand/eslint-plugin-fp/2.5.0_eslint@8.21.0: + /@silverhand/eslint-plugin-fp/2.5.0_eslint@8.34.0: resolution: {integrity: sha512-/oLO2Rs9nkhOk+rmC3PsWDvrDKrOfKuRtbSAwH4Scawn5GqAjo7ZXIZXj7RWa4nxLsCGc3ULvaVs1e1m4n6G/A==} engines: {node: '>=14.15.0'} peerDependencies: eslint: ^8.1.0 dependencies: create-eslint-index: 1.0.0 - eslint: 8.21.0 + eslint: 8.34.0 eslint-ast-utils: 1.1.0 import-modules: 2.1.0 lodash: 4.17.21 @@ -3592,21 +3603,21 @@ packages: - typescript dev: true - /@silverhand/ts-config-react/1.2.1_typescript@4.9.4: - resolution: {integrity: sha512-40BYg5gqzThCmXw+SJXnlWvSUWpFKsdfVHlguJXgdB1l8O6Yqe1jcwjHrNC/yBy8jgLInhLXuaFs86/p1g0m+Q==} - engines: {node: ^16.0.0 || ^18.0.0} + /@silverhand/ts-config-react/2.0.0_typescript@4.9.4: + resolution: {integrity: sha512-tyRiFeWg9+lnlp2L4NAF/XZfj6+w2ZZHp89iw99cDgfLLHilNq+nw33GFw3kDNUzHgYLBdZrFStF1KFasL4vpQ==} + engines: {node: ^18.12.0} peerDependencies: - typescript: ^4.7.4 + typescript: ^4.9.4 dependencies: - '@silverhand/ts-config': 1.2.1_typescript@4.9.4 + '@silverhand/ts-config': 2.0.0_typescript@4.9.4 typescript: 4.9.4 dev: true - /@silverhand/ts-config/1.2.1_typescript@4.9.4: - resolution: {integrity: sha512-Lm5Ydb45qKmXvlOfQfSb+1WHrdL5IBtzt+AMOR5h528H073FLzaazLiaDo4noBVT9PAVtO7kG9qjwSPzHf0k9Q==} - engines: {node: ^16.0.0 || ^18.0.0} + /@silverhand/ts-config/2.0.0_typescript@4.9.4: + resolution: {integrity: sha512-NkfWrz+zkAEchQ7+46miRK+cmB7H9KNTwuclI1dB4FNG+2F3CQSMlQXWzTAriMSUW6sGJYwoBGEa9dJ8iAxOoQ==} + engines: {node: ^18.12.0} peerDependencies: - typescript: ^4.7.4 + typescript: ^4.9.4 dependencies: typescript: 4.9.4 dev: true @@ -4381,7 +4392,7 @@ packages: dev: true optional: true - /@typescript-eslint/eslint-plugin/5.40.0_ryuuuwjgkm45eys4ms27dfx6xm: + /@typescript-eslint/eslint-plugin/5.40.0_obyoopcjqb5etbnp6i4ac3uhty: resolution: {integrity: sha512-FIBZgS3DVJgqPwJzvZTuH4HNsZhHMa9SjxTKAZTlMsPw/UzpEjcf9f4dfgDJEHjK+HboUJo123Eshl6niwEm/Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -4392,12 +4403,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.40.0_ggwlz5rjjuds5feuls6rqqovzi + '@typescript-eslint/parser': 5.40.0_ehfyfk7qbmgzg5nk6xmobqdh3a '@typescript-eslint/scope-manager': 5.40.0 - '@typescript-eslint/type-utils': 5.40.0_ggwlz5rjjuds5feuls6rqqovzi - '@typescript-eslint/utils': 5.40.0_ggwlz5rjjuds5feuls6rqqovzi + '@typescript-eslint/type-utils': 5.40.0_ehfyfk7qbmgzg5nk6xmobqdh3a + '@typescript-eslint/utils': 5.40.0_ehfyfk7qbmgzg5nk6xmobqdh3a debug: 4.3.4 - eslint: 8.21.0 + eslint: 8.34.0 ignore: 5.2.4 regexpp: 3.2.0 semver: 7.3.8 @@ -4407,7 +4418,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.40.0_ggwlz5rjjuds5feuls6rqqovzi: + /@typescript-eslint/parser/5.40.0_ehfyfk7qbmgzg5nk6xmobqdh3a: resolution: {integrity: sha512-Ah5gqyX2ySkiuYeOIDg7ap51/b63QgWZA7w6AHtFrag7aH0lRQPbLzUjk0c9o5/KZ6JRkTTDKShL4AUrQa6/hw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -4421,7 +4432,7 @@ packages: '@typescript-eslint/types': 5.40.0 '@typescript-eslint/typescript-estree': 5.40.0_typescript@4.9.4 debug: 4.3.4 - eslint: 8.21.0 + eslint: 8.34.0 typescript: 4.9.4 transitivePeerDependencies: - supports-color @@ -4435,7 +4446,7 @@ packages: '@typescript-eslint/visitor-keys': 5.40.0 dev: true - /@typescript-eslint/type-utils/5.40.0_ggwlz5rjjuds5feuls6rqqovzi: + /@typescript-eslint/type-utils/5.40.0_ehfyfk7qbmgzg5nk6xmobqdh3a: resolution: {integrity: sha512-nfuSdKEZY2TpnPz5covjJqav+g5qeBqwSHKBvz7Vm1SAfy93SwKk/JeSTymruDGItTwNijSsno5LhOHRS1pcfw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -4446,9 +4457,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.40.0_typescript@4.9.4 - '@typescript-eslint/utils': 5.40.0_ggwlz5rjjuds5feuls6rqqovzi + '@typescript-eslint/utils': 5.40.0_ehfyfk7qbmgzg5nk6xmobqdh3a debug: 4.3.4 - eslint: 8.21.0 + eslint: 8.34.0 tsutils: 3.21.0_typescript@4.9.4 typescript: 4.9.4 transitivePeerDependencies: @@ -4481,7 +4492,7 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.40.0_ggwlz5rjjuds5feuls6rqqovzi: + /@typescript-eslint/utils/5.40.0_ehfyfk7qbmgzg5nk6xmobqdh3a: resolution: {integrity: sha512-MO0y3T5BQ5+tkkuYZJBjePewsY+cQnfkYeRqS6tPh28niiIwPnQ1t59CSRcs1ZwJJNOdWw7rv9pF8aP58IMihA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -4491,9 +4502,9 @@ packages: '@typescript-eslint/scope-manager': 5.40.0 '@typescript-eslint/types': 5.40.0 '@typescript-eslint/typescript-estree': 5.40.0_typescript@4.9.4 - eslint: 8.21.0 + eslint: 8.34.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.21.0 + eslint-utils: 3.0.0_eslint@8.34.0 semver: 7.3.8 transitivePeerDependencies: - supports-color @@ -5289,6 +5300,11 @@ packages: resolution: {integrity: sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==} dev: true + /ci-info/3.8.0: + resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} + engines: {node: '>=8'} + dev: true + /cjs-module-lexer/1.2.2: resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} dev: true @@ -6395,16 +6411,16 @@ packages: lodash.zip: 4.2.0 dev: true - /eslint-config-prettier/8.5.0_eslint@8.21.0: + /eslint-config-prettier/8.5.0_eslint@8.34.0: resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.21.0 + eslint: 8.34.0 dev: true - /eslint-config-xo-react/0.27.0_nlhz3yu2pbp43ngjgjnh6mfwge: + /eslint-config-xo-react/0.27.0_xjjcxp76ccxcu2rtkp4ut3zfjy: resolution: {integrity: sha512-wiV215xQIn71XZyyVfaOXHaFpR1B14IJttwOjMi/eqUK1s+ojJdHr7eHqTLaGUfh6FKgWha1QNwePlIXx7mBUg==} engines: {node: '>=12'} peerDependencies: @@ -6412,12 +6428,12 @@ packages: eslint-plugin-react: '>=7.29.0' eslint-plugin-react-hooks: '>=4.3.0' dependencies: - eslint: 8.21.0 - eslint-plugin-react: 7.31.10_eslint@8.21.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.21.0 + eslint: 8.34.0 + eslint-plugin-react: 7.31.10_eslint@8.34.0 + eslint-plugin-react-hooks: 4.6.0_eslint@8.34.0 dev: true - /eslint-config-xo-typescript/0.53.0_cqx3bgaw6gtoyrp3gyom2ucbru: + /eslint-config-xo-typescript/0.53.0_jmamhc4xvtwpcgjztmjzde7ise: resolution: {integrity: sha512-IJ1n70egMPTou/41HoGGFbLf/2WCsVW5lSUxOSklrR8T1221fMRPVJxIVZ3evr8R+N5wR6uzg/0uzSymwWA5Bg==} engines: {node: '>=12'} peerDependencies: @@ -6426,20 +6442,20 @@ packages: eslint: '>=8.0.0' typescript: '>=4.4' dependencies: - '@typescript-eslint/eslint-plugin': 5.40.0_ryuuuwjgkm45eys4ms27dfx6xm - '@typescript-eslint/parser': 5.40.0_ggwlz5rjjuds5feuls6rqqovzi - eslint: 8.21.0 + '@typescript-eslint/eslint-plugin': 5.40.0_obyoopcjqb5etbnp6i4ac3uhty + '@typescript-eslint/parser': 5.40.0_ehfyfk7qbmgzg5nk6xmobqdh3a + eslint: 8.34.0 typescript: 4.9.4 dev: true - /eslint-config-xo/0.42.0_eslint@8.21.0: + /eslint-config-xo/0.42.0_eslint@8.34.0: resolution: {integrity: sha512-HIfd+AM6tHFoaZ/NXYDV3Mr/CJrAj/DoP6IOYt1/v+90XtCwVYOfW7LXbRDYDmhQMzT16h7eqPRcex72waRqdA==} engines: {node: '>=12'} peerDependencies: eslint: '>=8.14.0' dependencies: confusing-browser-globals: 1.0.11 - eslint: 8.21.0 + eslint: 8.34.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -6451,7 +6467,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript/3.5.1_jatgrcxl4x7ywe7ak6cnjca2ae: + /eslint-import-resolver-typescript/3.5.1_w7dy265x2bmlgtc6kmsfumkjde: resolution: {integrity: sha512-U7LUjNJPYjNsHvAUAkt/RU3fcTSpbllA0//35B4eLYTX74frmOepbt7F7J3D1IGtj9k21buOpaqtDd4ZlS/BYQ==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} peerDependencies: @@ -6460,8 +6476,8 @@ packages: dependencies: debug: 4.3.4 enhanced-resolve: 5.10.0 - eslint: 8.21.0 - eslint-plugin-import: 2.26.0_7tkpoacjify653e7qftl64vwym + eslint: 8.34.0 + eslint-plugin-import: 2.26.0_7acvpkap2crzb63j3epkkcikb4 get-tsconfig: 4.2.0 globby: 13.1.2 is-core-module: 2.10.0 @@ -6471,7 +6487,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.4_aium76runwhjvntpngmk5654j4: + /eslint-module-utils/2.7.4_qoky5e4xynt4i3srlsoanlvvri: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -6492,11 +6508,11 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.40.0_ggwlz5rjjuds5feuls6rqqovzi + '@typescript-eslint/parser': 5.40.0_ehfyfk7qbmgzg5nk6xmobqdh3a debug: 3.2.7 - eslint: 8.21.0 + eslint: 8.34.0 eslint-import-resolver-node: 0.3.6 - eslint-import-resolver-typescript: 3.5.1_jatgrcxl4x7ywe7ak6cnjca2ae + eslint-import-resolver-typescript: 3.5.1_w7dy265x2bmlgtc6kmsfumkjde transitivePeerDependencies: - supports-color dev: true @@ -6509,29 +6525,29 @@ packages: pkg-dir: 5.0.0 dev: true - /eslint-plugin-es/3.0.1_eslint@8.21.0: + /eslint-plugin-es/3.0.1_eslint@8.34.0: resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.21.0 + eslint: 8.34.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-eslint-comments/3.2.0_eslint@8.21.0: + /eslint-plugin-eslint-comments/3.2.0_eslint@8.34.0: resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' dependencies: escape-string-regexp: 1.0.5 - eslint: 8.21.0 + eslint: 8.34.0 ignore: 5.2.4 dev: true - /eslint-plugin-import/2.26.0_7tkpoacjify653e7qftl64vwym: + /eslint-plugin-import/2.26.0_7acvpkap2crzb63j3epkkcikb4: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -6541,14 +6557,14 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.40.0_ggwlz5rjjuds5feuls6rqqovzi + '@typescript-eslint/parser': 5.40.0_ehfyfk7qbmgzg5nk6xmobqdh3a array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.21.0 + eslint: 8.34.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.4_aium76runwhjvntpngmk5654j4 + eslint-module-utils: 2.7.4_qoky5e4xynt4i3srlsoanlvvri has: 1.0.3 is-core-module: 2.10.0 is-glob: 4.0.3 @@ -6562,7 +6578,7 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y/6.6.1_eslint@8.21.0: + /eslint-plugin-jsx-a11y/6.6.1_eslint@8.34.0: resolution: {integrity: sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==} engines: {node: '>=4.0'} peerDependencies: @@ -6576,7 +6592,7 @@ packages: axobject-query: 2.2.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.21.0 + eslint: 8.34.0 has: 1.0.3 jsx-ast-utils: 3.3.3 language-tags: 1.0.5 @@ -6594,14 +6610,14 @@ packages: is-proto-prop: 2.0.0 dev: true - /eslint-plugin-node/11.1.0_eslint@8.21.0: + /eslint-plugin-node/11.1.0_eslint@8.34.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.21.0 - eslint-plugin-es: 3.0.1_eslint@8.21.0 + eslint: 8.34.0 + eslint-plugin-es: 3.0.1_eslint@8.34.0 eslint-utils: 2.1.0 ignore: 5.2.4 minimatch: 3.1.2 @@ -6609,7 +6625,7 @@ packages: semver: 6.3.0 dev: true - /eslint-plugin-prettier/4.2.1_a6f6qfpus2ck3ixy65j6aotnla: + /eslint-plugin-prettier/4.2.1_tgj6q6crlj7y24j3aycgzuhnii: resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -6620,31 +6636,31 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.21.0 - eslint-config-prettier: 8.5.0_eslint@8.21.0 - prettier: 2.8.1 + eslint: 8.34.0 + eslint-config-prettier: 8.5.0_eslint@8.34.0 + prettier: 2.8.4 prettier-linter-helpers: 1.0.0 dev: true - /eslint-plugin-promise/6.1.0_eslint@8.21.0: + /eslint-plugin-promise/6.1.0_eslint@8.34.0: resolution: {integrity: sha512-NYCfDZF/KHt27p06nFAttgWuFyIDSUMnNaJBIY1FY9GpBFhdT2vMG64HlFguSgcJeyM5by6Yr5csSOuJm60eXQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.21.0 + eslint: 8.34.0 dev: true - /eslint-plugin-react-hooks/4.6.0_eslint@8.21.0: + /eslint-plugin-react-hooks/4.6.0_eslint@8.34.0: resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.21.0 + eslint: 8.34.0 dev: true - /eslint-plugin-react/7.31.10_eslint@8.21.0: + /eslint-plugin-react/7.31.10_eslint@8.34.0: resolution: {integrity: sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==} engines: {node: '>=4'} peerDependencies: @@ -6653,7 +6669,7 @@ packages: array-includes: 3.1.5 array.prototype.flatmap: 1.3.0 doctrine: 2.1.0 - eslint: 8.21.0 + eslint: 8.34.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.3 minimatch: 3.1.2 @@ -6667,7 +6683,7 @@ packages: string.prototype.matchall: 4.0.7 dev: true - /eslint-plugin-sql/2.1.0_eslint@8.21.0: + /eslint-plugin-sql/2.1.0_eslint@8.34.0: resolution: {integrity: sha512-UPapPPhK1ADgQDTogpApiSAh6bYjrt2daYkKCdApHm5KPbq9qR4ca4TPyYod06bAnLgswbri6Z9gEPAy0R+B1A==} engines: {node: '>=12'} peerDependencies: @@ -6675,7 +6691,7 @@ packages: dependencies: astring: 1.8.3 debug: 4.3.4 - eslint: 8.21.0 + eslint: 8.34.0 lodash: 4.17.21 pg-formatter: 1.3.0 sql-parse: 0.1.5 @@ -6683,30 +6699,32 @@ packages: - supports-color dev: true - /eslint-plugin-unicorn/43.0.2_eslint@8.21.0: - resolution: {integrity: sha512-DtqZ5mf/GMlfWoz1abIjq5jZfaFuHzGBZYIeuJfEoKKGWRHr2JiJR+ea+BF7Wx2N1PPRoT/2fwgiK1NnmNE3Hg==} + /eslint-plugin-unicorn/45.0.2_eslint@8.34.0: + resolution: {integrity: sha512-Y0WUDXRyGDMcKLiwgL3zSMpHrXI00xmdyixEGIg90gHnj0PcHY4moNv3Ppje/kDivdAy5vUeUr7z211ImPv2gw==} engines: {node: '>=14.18'} peerDependencies: - eslint: '>=8.18.0' + eslint: '>=8.28.0' dependencies: '@babel/helper-validator-identifier': 7.19.1 - ci-info: 3.5.0 + '@eslint-community/eslint-utils': 4.1.2_eslint@8.34.0 + ci-info: 3.8.0 clean-regexp: 1.0.0 - eslint: 8.21.0 - eslint-utils: 3.0.0_eslint@8.21.0 + eslint: 8.34.0 esquery: 1.4.0 indent-string: 4.0.0 is-builtin-module: 3.2.0 + jsesc: 3.0.2 lodash: 4.17.21 pluralize: 8.0.0 read-pkg-up: 7.0.1 regexp-tree: 0.1.24 + regjsparser: 0.9.1 safe-regex: 2.1.1 semver: 7.3.8 strip-indent: 3.0.0 dev: true - /eslint-plugin-unused-imports/2.0.0_kjyxfvacupbf4yx7sz4dzjz4we: + /eslint-plugin-unused-imports/2.0.0_czsqqwqapes7i6tgh3gb7mfbz4: resolution: {integrity: sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6716,8 +6734,8 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.40.0_ryuuuwjgkm45eys4ms27dfx6xm - eslint: 8.21.0 + '@typescript-eslint/eslint-plugin': 5.40.0_obyoopcjqb5etbnp6i4ac3uhty + eslint: 8.34.0 eslint-rule-composer: 0.3.0 dev: true @@ -6749,13 +6767,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.21.0: + /eslint-utils/3.0.0_eslint@8.34.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.21.0 + eslint: 8.34.0 eslint-visitor-keys: 2.1.0 dev: true @@ -6774,14 +6792,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.21.0: - resolution: {integrity: sha512-/XJ1+Qurf1T9G2M5IHrsjp+xrGT73RZf23xA1z5wB1ZzzEAWSZKvRwhWxTFp1rvkvCfwcvAUNAP31bhKTTGfDA==} + /eslint/8.34.0: + resolution: {integrity: sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.3.0 - '@humanwhocodes/config-array': 0.10.4 - '@humanwhocodes/gitignore-to-minimatch': 1.0.2 + '@eslint/eslintrc': 1.4.1 + '@humanwhocodes/config-array': 0.11.8 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -6789,23 +6808,23 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.21.0 + eslint-utils: 3.0.0_eslint@8.34.0 eslint-visitor-keys: 3.3.0 - espree: 9.3.3 + espree: 9.4.1 esquery: 1.4.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 find-up: 5.0.0 - functional-red-black-tree: 1.0.1 glob-parent: 6.0.2 - globals: 13.16.0 - globby: 11.1.0 + globals: 13.20.0 grapheme-splitter: 1.0.4 - ignore: 5.2.0 + ignore: 5.2.4 import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-sdsl: 4.3.0 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 @@ -6817,13 +6836,12 @@ packages: strip-ansi: 6.0.1 strip-json-comments: 3.1.1 text-table: 0.2.0 - v8-compile-cache: 2.3.0 transitivePeerDependencies: - supports-color dev: true - /espree/9.3.3: - resolution: {integrity: sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==} + /espree/9.4.1: + resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.8.1 @@ -7300,10 +7318,6 @@ packages: functions-have-names: 1.2.3 dev: true - /functional-red-black-tree/1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - dev: true - /functions-have-names/1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true @@ -7469,15 +7483,15 @@ packages: engines: {node: '>=4'} dev: true - /globals/13.16.0: - resolution: {integrity: sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==} + /globals/13.18.0: + resolution: {integrity: sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 dev: true - /globals/13.18.0: - resolution: {integrity: sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==} + /globals/13.20.0: + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -7991,11 +8005,6 @@ packages: resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} dev: true - /ignore/5.2.0: - resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} - engines: {node: '>= 4'} - dev: true - /ignore/5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} @@ -8303,6 +8312,11 @@ packages: engines: {node: '>=8'} dev: true + /is-path-inside/3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + /is-plain-obj/1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} engines: {node: '>=0.10.0'} @@ -9580,6 +9594,10 @@ packages: resolution: {integrity: sha512-wpM/wi20Tl+3ifTyi0RdDckS4YTD4Lf953mBRrpG8547T7hInHNPEj8+ck4gB8VDcGyeAWFK++Wb/fU1BeavKQ==} dev: true + /js-sdsl/4.3.0: + resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==} + dev: true + /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -9643,6 +9661,11 @@ packages: - utf-8-validate dev: true + /jsesc/0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: true + /jsesc/2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} @@ -9653,7 +9676,6 @@ packages: resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} engines: {node: '>=6'} hasBin: true - dev: false /json-buffer/3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -11866,14 +11888,6 @@ packages: postcss: 8.4.6 dev: true - /postcss-selector-parser/6.0.10: - resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} - engines: {node: '>=4'} - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - dev: true - /postcss-selector-parser/6.0.11: resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} engines: {node: '>=4'} @@ -11882,12 +11896,12 @@ packages: util-deprecate: 1.0.2 dev: true - /postcss-sorting/7.0.1_postcss@8.4.18: + /postcss-sorting/7.0.1_postcss@8.4.21: resolution: {integrity: sha512-iLBFYz6VRYyLJEJsBJ8M3TCqNcckVzz4wFounSc5Oez35ogE/X+aoC5fFu103Ot7NyvjU3/xqIXn93Gp3kJk4g==} peerDependencies: postcss: ^8.3.9 dependencies: - postcss: 8.4.18 + postcss: 8.4.21 dev: true /postcss-value-parser/3.3.1: @@ -12038,8 +12052,8 @@ packages: fast-diff: 1.2.0 dev: true - /prettier/2.8.1: - resolution: {integrity: sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==} + /prettier/2.8.4: + resolution: {integrity: sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==} engines: {node: '>=10.13.0'} hasBin: true dev: true @@ -12737,6 +12751,13 @@ packages: engines: {node: '>=8'} dev: true + /regjsparser/0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + /remark-footnotes/2.0.0: resolution: {integrity: sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==} dev: true @@ -13649,7 +13670,7 @@ packages: resolution: {integrity: sha512-X9WD8cDofWFWy3uaKdwwm+DjEvgI/+h7AtlaPagkhNAeOWH/GFQoeciBvNvyJ8tB1p00SoIzCn2IIOIKXCbxYA==} engines: {node: '>=12'} peerDependencies: - stylelint: '>=14.5.1' + stylelint: '>=14.5.1 || ^15.0.0' dependencies: postcss-scss: 4.0.5_postcss@8.4.6 stylelint: 15.0.0 @@ -13663,7 +13684,7 @@ packages: resolution: {integrity: sha512-X9WD8cDofWFWy3uaKdwwm+DjEvgI/+h7AtlaPagkhNAeOWH/GFQoeciBvNvyJ8tB1p00SoIzCn2IIOIKXCbxYA==} engines: {node: '>=12'} peerDependencies: - stylelint: '>=14.5.1' + stylelint: '>=14.5.1 || ^15.0.0' dependencies: postcss-scss: 4.0.5_postcss@8.4.14 stylelint: 15.0.0 @@ -13677,7 +13698,7 @@ packages: resolution: {integrity: sha512-X9WD8cDofWFWy3uaKdwwm+DjEvgI/+h7AtlaPagkhNAeOWH/GFQoeciBvNvyJ8tB1p00SoIzCn2IIOIKXCbxYA==} engines: {node: '>=12'} peerDependencies: - stylelint: '>=14.5.1' + stylelint: '>=14.5.1 || ^15.0.0' dependencies: postcss-scss: 4.0.5_postcss@8.4.18 stylelint: 15.0.0 @@ -13691,7 +13712,7 @@ packages: resolution: {integrity: sha512-ORyxhq/Yutg27NgYlStkbXhK+Lz1SqZJDqV9Y2oWcfRFcDdgVAyM6ic7frOW00UH+OFyuGpTdIbTNTtVgsWpcw==} engines: {node: '>=12'} peerDependencies: - stylelint: '>=14' + stylelint: '>=14 || ^15.0.0' dependencies: stylelint: 15.0.0 stylelint-declaration-block-no-ignored-properties: 2.5.0_stylelint@15.0.0 @@ -13702,7 +13723,7 @@ packages: resolution: {integrity: sha512-UNz5nUC5GMgMb6GPc/pHUTC0+ydxTdj2mUn7XcKRdwQoiUzzUmWWdSf1aFv2UzrW4x8JYNReE1u5JOj7g0ThJw==} engines: {node: '>=6'} peerDependencies: - stylelint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 + stylelint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 dependencies: stylelint: 15.0.0 dev: true @@ -13710,22 +13731,22 @@ packages: /stylelint-order/5.0.0_stylelint@15.0.0: resolution: {integrity: sha512-OWQ7pmicXufDw5BlRqzdz3fkGKJPgLyDwD1rFY3AIEfIH/LQY38Vu/85v8/up0I+VPiuGRwbc2Hg3zLAsJaiyw==} peerDependencies: - stylelint: ^14.0.0 + stylelint: ^14.0.0 || ^15.0.0 dependencies: - postcss: 8.4.18 - postcss-sorting: 7.0.1_postcss@8.4.18 + postcss: 8.4.21 + postcss-sorting: 7.0.1_postcss@8.4.21 stylelint: 15.0.0 dev: true /stylelint-scss/4.3.0_stylelint@15.0.0: resolution: {integrity: sha512-GvSaKCA3tipzZHoz+nNO7S02ZqOsdBzMiCx9poSmLlb3tdJlGddEX/8QzCOD8O7GQan9bjsvLMsO5xiw6IhhIQ==} peerDependencies: - stylelint: ^14.5.1 + stylelint: ^14.5.1 || ^15.0.0 dependencies: lodash: 4.17.21 postcss-media-query-parser: 0.2.3 postcss-resolve-nested-selector: 0.1.1 - postcss-selector-parser: 6.0.10 + postcss-selector-parser: 6.0.11 postcss-value-parser: 4.2.0 stylelint: 15.0.0 dev: true