diff --git a/package.json b/package.json index fef34eccf37..18dd65f2c13 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,8 @@ "peerDependencyRules": { "allowedVersions": { "react": "^18.0.0", - "jest": "^29.1.2" + "jest": "^29.1.2", + "stylelint": "^16.0.0" } } }, diff --git a/packages/app-insights/package.json b/packages/app-insights/package.json index 39af604081a..f304cc1a1aa 100644 --- a/packages/app-insights/package.json +++ b/packages/app-insights/package.json @@ -29,11 +29,11 @@ "prepack": "pnpm build" }, "devDependencies": { - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.9.5", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.0", "prettier": "^3.0.0", "typescript": "^5.3.3", diff --git a/packages/app-insights/src/normalize-error.ts b/packages/app-insights/src/normalize-error.ts index 36799b9ed5a..fd1d5821280 100644 --- a/packages/app-insights/src/normalize-error.ts +++ b/packages/app-insights/src/normalize-error.ts @@ -36,11 +36,7 @@ function getCircularReplacer() { return function (this: unknown, key: string, value: unknown) { // Ignore `stack` property since ApplicationInsights will show it - if ( - isObject(this) && - Object.prototype.hasOwnProperty.call(this, transformedKey) && - key === 'stack' - ) { + if (isObject(this) && Object.hasOwn(this, transformedKey) && key === 'stack') { return; } diff --git a/packages/cli/package.json b/packages/cli/package.json index 0af033b9198..aeb0b3943de 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -71,8 +71,8 @@ "zod": "^3.22.4" }, "devDependencies": { - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/inquirer": "^9.0.0", "@types/node": "^20.9.5", "@types/semver": "^7.3.12", @@ -81,7 +81,7 @@ "@types/yargs": "^17.0.13", "@vitest/coverage-v8": "^1.4.0", "@withtyped/server": "^0.13.3", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.0", "prettier": "^3.0.0", "sinon": "^17.0.0", diff --git a/packages/cli/src/utils.ts b/packages/cli/src/utils.ts index 825acb600b8..66ad32d785c 100644 --- a/packages/cli/src/utils.ts +++ b/packages/cli/src/utils.ts @@ -68,7 +68,7 @@ export const downloadFile = async (url: string, destination: string) => { file.on('error', (error) => { spinner.fail(); - reject(error.message); + reject(new Error(error.message)); }); file.on('finish', () => { diff --git a/packages/connectors/connector-alipay-native/package.json b/packages/connectors/connector-alipay-native/package.json index 271213f4bbe..0a3c8841693 100644 --- a/packages/connectors/connector-alipay-native/package.json +++ b/packages/connectors/connector-alipay-native/package.json @@ -18,12 +18,12 @@ "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", "@shopify/jest-koa-mocks": "^5.0.0", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-alipay-web/package.json b/packages/connectors/connector-alipay-web/package.json index 8098bf43599..a97573a74dd 100644 --- a/packages/connectors/connector-alipay-web/package.json +++ b/packages/connectors/connector-alipay-web/package.json @@ -17,12 +17,12 @@ "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", "@shopify/jest-koa-mocks": "^5.0.0", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-aliyun-dm/package.json b/packages/connectors/connector-aliyun-dm/package.json index d9bc46af982..0f496e558c2 100644 --- a/packages/connectors/connector-aliyun-dm/package.json +++ b/packages/connectors/connector-aliyun-dm/package.json @@ -55,12 +55,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-aliyun-sms/package.json b/packages/connectors/connector-aliyun-sms/package.json index ca2a6037f69..1db260eaee3 100644 --- a/packages/connectors/connector-aliyun-sms/package.json +++ b/packages/connectors/connector-aliyun-sms/package.json @@ -55,12 +55,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-apple/package.json b/packages/connectors/connector-apple/package.json index 0104b25dc91..555447d29ea 100644 --- a/packages/connectors/connector-apple/package.json +++ b/packages/connectors/connector-apple/package.json @@ -57,12 +57,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-aws-ses/package.json b/packages/connectors/connector-aws-ses/package.json index c05619beb3c..60aa9ad5369 100644 --- a/packages/connectors/connector-aws-ses/package.json +++ b/packages/connectors/connector-aws-ses/package.json @@ -58,12 +58,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-azuread/package.json b/packages/connectors/connector-azuread/package.json index b6bf0c7fb94..b17b2e157ba 100644 --- a/packages/connectors/connector-azuread/package.json +++ b/packages/connectors/connector-azuread/package.json @@ -57,12 +57,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-discord/package.json b/packages/connectors/connector-discord/package.json index eac2edc3ceb..a286ca321fd 100644 --- a/packages/connectors/connector-discord/package.json +++ b/packages/connectors/connector-discord/package.json @@ -56,12 +56,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-facebook/package.json b/packages/connectors/connector-facebook/package.json index 561bc2ab63f..788e6cb3c9d 100644 --- a/packages/connectors/connector-facebook/package.json +++ b/packages/connectors/connector-facebook/package.json @@ -56,12 +56,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-feishu-web/package.json b/packages/connectors/connector-feishu-web/package.json index 17cd6148138..027aa8a5a3f 100644 --- a/packages/connectors/connector-feishu-web/package.json +++ b/packages/connectors/connector-feishu-web/package.json @@ -56,12 +56,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-github/package.json b/packages/connectors/connector-github/package.json index 12dc684a8aa..e5a353bcef3 100644 --- a/packages/connectors/connector-github/package.json +++ b/packages/connectors/connector-github/package.json @@ -57,12 +57,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-google/package.json b/packages/connectors/connector-google/package.json index 076ee4b4aab..63d236552e1 100644 --- a/packages/connectors/connector-google/package.json +++ b/packages/connectors/connector-google/package.json @@ -56,12 +56,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-kakao/package.json b/packages/connectors/connector-kakao/package.json index c79592cbb07..98d1e9c80ab 100644 --- a/packages/connectors/connector-kakao/package.json +++ b/packages/connectors/connector-kakao/package.json @@ -56,12 +56,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-logto-email/package.json b/packages/connectors/connector-logto-email/package.json index 6d0996108e3..18321191c48 100644 --- a/packages/connectors/connector-logto-email/package.json +++ b/packages/connectors/connector-logto-email/package.json @@ -57,12 +57,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-logto-sms/package.json b/packages/connectors/connector-logto-sms/package.json index b677b137797..4220ff24172 100644 --- a/packages/connectors/connector-logto-sms/package.json +++ b/packages/connectors/connector-logto-sms/package.json @@ -56,12 +56,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-logto-social-demo/package.json b/packages/connectors/connector-logto-social-demo/package.json index b0bd422e68e..7bb675b2c38 100644 --- a/packages/connectors/connector-logto-social-demo/package.json +++ b/packages/connectors/connector-logto-social-demo/package.json @@ -56,12 +56,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-mailgun/package.json b/packages/connectors/connector-mailgun/package.json index 7b16e753266..1d7d4dee09a 100644 --- a/packages/connectors/connector-mailgun/package.json +++ b/packages/connectors/connector-mailgun/package.json @@ -56,12 +56,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-mock-email-alternative/package.json b/packages/connectors/connector-mock-email-alternative/package.json index c67a8f25c3a..ef2cc2b4b61 100644 --- a/packages/connectors/connector-mock-email-alternative/package.json +++ b/packages/connectors/connector-mock-email-alternative/package.json @@ -56,12 +56,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-mock-email/package.json b/packages/connectors/connector-mock-email/package.json index f0c533c297f..23b22a2fdbf 100644 --- a/packages/connectors/connector-mock-email/package.json +++ b/packages/connectors/connector-mock-email/package.json @@ -56,12 +56,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-mock-sms/package.json b/packages/connectors/connector-mock-sms/package.json index 053de57a616..5334736a548 100644 --- a/packages/connectors/connector-mock-sms/package.json +++ b/packages/connectors/connector-mock-sms/package.json @@ -56,12 +56,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-mock-social/package.json b/packages/connectors/connector-mock-social/package.json index 2e58d8e5418..50e58345c38 100644 --- a/packages/connectors/connector-mock-social/package.json +++ b/packages/connectors/connector-mock-social/package.json @@ -56,12 +56,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-naver/package.json b/packages/connectors/connector-naver/package.json index b9fa9fcc3d7..1668372c023 100644 --- a/packages/connectors/connector-naver/package.json +++ b/packages/connectors/connector-naver/package.json @@ -56,12 +56,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-oauth2/package.json b/packages/connectors/connector-oauth2/package.json index 5577a5f6855..9b62d82e912 100644 --- a/packages/connectors/connector-oauth2/package.json +++ b/packages/connectors/connector-oauth2/package.json @@ -57,12 +57,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-oidc/package.json b/packages/connectors/connector-oidc/package.json index dfa5f54b94e..56dc91630af 100644 --- a/packages/connectors/connector-oidc/package.json +++ b/packages/connectors/connector-oidc/package.json @@ -58,12 +58,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-oidc/src/types.ts b/packages/connectors/connector-oidc/src/types.ts index 005891e1ec6..4039d553c7c 100644 --- a/packages/connectors/connector-oidc/src/types.ts +++ b/packages/connectors/connector-oidc/src/types.ts @@ -1,6 +1,6 @@ import { z } from 'zod'; -const scopeOpenid = 'openid' as const; +const scopeOpenid = 'openid'; export const delimiter = /[ +]/; // Space-delimited 'scope' MUST contain 'openid', see https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth diff --git a/packages/connectors/connector-saml/package.json b/packages/connectors/connector-saml/package.json index 60c931a3b58..af9800e0e26 100644 --- a/packages/connectors/connector-saml/package.json +++ b/packages/connectors/connector-saml/package.json @@ -58,12 +58,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-sendgrid-email/package.json b/packages/connectors/connector-sendgrid-email/package.json index e8e83ddf76a..15ca0184df3 100644 --- a/packages/connectors/connector-sendgrid-email/package.json +++ b/packages/connectors/connector-sendgrid-email/package.json @@ -56,12 +56,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-smsaero/package.json b/packages/connectors/connector-smsaero/package.json index d32d05ecd5f..69fb8b4a8b3 100644 --- a/packages/connectors/connector-smsaero/package.json +++ b/packages/connectors/connector-smsaero/package.json @@ -56,12 +56,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-smsaero/src/index.ts b/packages/connectors/connector-smsaero/src/index.ts index 95465b05566..3c923c0b3b4 100644 --- a/packages/connectors/connector-smsaero/src/index.ts +++ b/packages/connectors/connector-smsaero/src/index.ts @@ -27,7 +27,6 @@ function sendMessage(getConfig: GetConnectorConfig): SendMessageFunction { validateConfig(config, smsAeroConfigGuard); const { email, apiKey, senderName, templates } = config; - const template = templates.find((template) => template.usageType === type); assert( diff --git a/packages/connectors/connector-smtp/package.json b/packages/connectors/connector-smtp/package.json index ef3dd8052b0..cf3b55f659a 100644 --- a/packages/connectors/connector-smtp/package.json +++ b/packages/connectors/connector-smtp/package.json @@ -16,13 +16,13 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/nodemailer": "^6.4.7", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-smtp/src/index.ts b/packages/connectors/connector-smtp/src/index.ts index 1517923fda9..8aed0e05dd6 100644 --- a/packages/connectors/connector-smtp/src/index.ts +++ b/packages/connectors/connector-smtp/src/index.ts @@ -70,12 +70,6 @@ const parseContents = (contents: string, contentType: ContextType) => { case ContextType.Html: { return { html: contents }; } - default: { - throw new ConnectorError( - ConnectorErrorCodes.InvalidConfig, - '`contentType` should be ContextType.' - ); - } } }; diff --git a/packages/connectors/connector-tencent-sms/package.json b/packages/connectors/connector-tencent-sms/package.json index 05cf7f84eb7..9588a766b82 100644 --- a/packages/connectors/connector-tencent-sms/package.json +++ b/packages/connectors/connector-tencent-sms/package.json @@ -56,12 +56,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-tencent-sms/src/http.ts b/packages/connectors/connector-tencent-sms/src/http.ts index f1868b3dfa0..24375c639ea 100644 --- a/packages/connectors/connector-tencent-sms/src/http.ts +++ b/packages/connectors/connector-tencent-sms/src/http.ts @@ -8,8 +8,8 @@ import type { TencentErrorResponse, TencentSuccessResponse } from './schema.js'; const endpoint = 'sms.tencentcloudapi.com'; function sha256Hmac(message: string, secret: string): string; +// eslint-disable-next-line @typescript-eslint/ban-types function sha256Hmac(message: string, secret: string, encoding: BinaryToTextEncoding): Buffer; - function sha256Hmac(message: string, secret: string, encoding?: BinaryToTextEncoding) { const hmac = crypto.createHmac('sha256', secret); diff --git a/packages/connectors/connector-twilio-sms/package.json b/packages/connectors/connector-twilio-sms/package.json index f18ec4c10f0..bc657ba8758 100644 --- a/packages/connectors/connector-twilio-sms/package.json +++ b/packages/connectors/connector-twilio-sms/package.json @@ -56,12 +56,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-wechat-native/package.json b/packages/connectors/connector-wechat-native/package.json index 810718cb875..b082fe5ae06 100644 --- a/packages/connectors/connector-wechat-native/package.json +++ b/packages/connectors/connector-wechat-native/package.json @@ -56,12 +56,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-wechat-web/package.json b/packages/connectors/connector-wechat-web/package.json index 9a9e375cd4a..640a20d831e 100644 --- a/packages/connectors/connector-wechat-web/package.json +++ b/packages/connectors/connector-wechat-web/package.json @@ -56,12 +56,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.11.20", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/connectors/connector-wecom/package.json b/packages/connectors/connector-wecom/package.json index 1584b1dc086..bc6e24955f7 100644 --- a/packages/connectors/connector-wecom/package.json +++ b/packages/connectors/connector-wecom/package.json @@ -56,12 +56,12 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/ts-config": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/ts-config": "6.0.0", "@types/node": "^20.10.4", "@types/supertest": "^6.0.2", "@vitest/coverage-v8": "^1.4.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "lint-staged": "^15.0.2", "nock": "^13.3.1", "prettier": "^3.0.0", diff --git a/packages/console/package.json b/packages/console/package.json index 11756140279..3f76816e8bf 100644 --- a/packages/console/package.json +++ b/packages/console/package.json @@ -44,11 +44,11 @@ "@parcel/transformer-mdx": "2.9.3", "@parcel/transformer-sass": "2.9.3", "@parcel/transformer-svg-react": "2.9.3", - "@silverhand/eslint-config": "5.0.0", - "@silverhand/eslint-config-react": "5.0.0", + "@silverhand/eslint-config": "6.0.1", + "@silverhand/eslint-config-react": "6.0.2", "@silverhand/essentials": "^2.9.0", - "@silverhand/ts-config": "5.0.0", - "@silverhand/ts-config-react": "5.0.0", + "@silverhand/ts-config": "6.0.0", + "@silverhand/ts-config-react": "6.0.0", "@swc/core": "^1.3.52", "@swc/jest": "^0.2.26", "@testing-library/react": "^15.0.0", @@ -75,7 +75,7 @@ "deep-object-diff": "^1.1.9", "deepmerge": "^4.2.2", "dnd-core": "^16.0.0", - "eslint": "^8.44.0", + "eslint": "^8.56.0", "history": "^5.3.0", "i18next": "^22.4.15", "i18next-browser-languagedetector": "^7.0.1", diff --git a/packages/console/src/cloud/pages/Main/InvitationList/index.tsx b/packages/console/src/cloud/pages/Main/InvitationList/index.tsx index db7bd5317dc..e86b71147fe 100644 --- a/packages/console/src/cloud/pages/Main/InvitationList/index.tsx +++ b/packages/console/src/cloud/pages/Main/InvitationList/index.tsx @@ -16,7 +16,7 @@ import useUserOnboardingData from '@/onboarding/hooks/use-user-onboarding-data'; import * as styles from './index.module.scss'; type Props = { - invitations: InvitationListResponse; + readonly invitations: InvitationListResponse; }; function InvitationList({ invitations }: Props) { diff --git a/packages/console/src/cloud/pages/Main/Redirect.tsx b/packages/console/src/cloud/pages/Main/Redirect.tsx index 45ed97bf4c9..081e299a2d7 100644 --- a/packages/console/src/cloud/pages/Main/Redirect.tsx +++ b/packages/console/src/cloud/pages/Main/Redirect.tsx @@ -3,7 +3,7 @@ import { useContext, useEffect } from 'react'; import AppLoading from '@/components/AppLoading'; import { TenantsContext } from '@/contexts/TenantsProvider'; -function Redirect({ toTenantId }: { toTenantId: string }) { +function Redirect({ toTenantId }: { readonly toTenantId: string }) { const { navigateTenant } = useContext(TenantsContext); useEffect(() => { diff --git a/packages/console/src/cloud/pages/Main/TenantLandingPage/TenantLandingPageContent/index.tsx b/packages/console/src/cloud/pages/Main/TenantLandingPage/TenantLandingPageContent/index.tsx index 40cb667c97b..0c7f65c9707 100644 --- a/packages/console/src/cloud/pages/Main/TenantLandingPage/TenantLandingPageContent/index.tsx +++ b/packages/console/src/cloud/pages/Main/TenantLandingPage/TenantLandingPageContent/index.tsx @@ -15,7 +15,7 @@ import useTheme from '@/hooks/use-theme'; import * as styles from './index.module.scss'; type Props = { - className?: string; + readonly className?: string; }; function TenantLandingPageContent({ className }: Props) { diff --git a/packages/console/src/components/ActionBar/index.tsx b/packages/console/src/components/ActionBar/index.tsx index a31705dab7f..11d09537973 100644 --- a/packages/console/src/components/ActionBar/index.tsx +++ b/packages/console/src/components/ActionBar/index.tsx @@ -5,9 +5,9 @@ import ProgressBar from '../ProgressBar'; import * as styles from './index.module.scss'; type Props = { - step: number; - totalSteps: number; - children: ReactNode; + readonly step: number; + readonly totalSteps: number; + readonly children: ReactNode; }; function ActionBar({ step, totalSteps, children }: Props) { diff --git a/packages/console/src/components/ActionsButton/index.tsx b/packages/console/src/components/ActionsButton/index.tsx index 41d6bac0e8b..575b05f1bd6 100644 --- a/packages/console/src/components/ActionsButton/index.tsx +++ b/packages/console/src/components/ActionsButton/index.tsx @@ -16,18 +16,18 @@ type Props = { /** A function that will be called when the user confirms the deletion. If not provided, * the delete button will not be displayed. */ - onDelete?: () => void | Promise; + readonly onDelete?: () => void | Promise; /** * A function that will be called when the user clicks the edit button. If not provided, * the edit button will not be displayed. */ - onEdit?: () => void | Promise; + readonly onEdit?: () => void | Promise; /** The translation key of the content that will be displayed in the confirmation modal. */ - deleteConfirmation: AdminConsoleKey; + readonly deleteConfirmation: AdminConsoleKey; /** The name of the field that is being operated. */ - fieldName: AdminConsoleKey; + readonly fieldName: AdminConsoleKey; /** Overrides the default translations of the edit and delete buttons. */ - textOverrides?: { + readonly textOverrides?: { /** The translation key of the edit button. */ edit?: AdminConsoleKey; /** The translation key of the delete button. */ diff --git a/packages/console/src/components/AppError/index.tsx b/packages/console/src/components/AppError/index.tsx index 179b4d2a04e..1237c738f3a 100644 --- a/packages/console/src/components/AppError/index.tsx +++ b/packages/console/src/components/AppError/index.tsx @@ -12,11 +12,11 @@ import { onKeyDownHandler } from '@/utils/a11y'; import * as styles from './index.module.scss'; type Props = { - title?: string; - errorCode?: string; - errorMessage?: string; - callStack?: string; - children?: React.ReactNode; + readonly title?: string; + readonly errorCode?: string; + readonly errorMessage?: string; + readonly callStack?: string; + readonly children?: React.ReactNode; }; function AppError({ title, errorCode, errorMessage, callStack, children }: Props) { diff --git a/packages/console/src/components/ApplicationIcon/index.tsx b/packages/console/src/components/ApplicationIcon/index.tsx index 108445c8e00..e4c1d7bf1f7 100644 --- a/packages/console/src/components/ApplicationIcon/index.tsx +++ b/packages/console/src/components/ApplicationIcon/index.tsx @@ -10,9 +10,9 @@ import { import useTheme from '@/hooks/use-theme'; type Props = { - type: ApplicationType; - className?: string; - isThirdParty?: boolean; + readonly type: ApplicationType; + readonly className?: string; + readonly isThirdParty?: boolean; }; const getIcon = (type: ApplicationType, isLightMode: boolean, isThirdParty?: boolean) => { diff --git a/packages/console/src/components/ApplicationName/index.tsx b/packages/console/src/components/ApplicationName/index.tsx index 03c5c46100d..2e47e464f39 100644 --- a/packages/console/src/components/ApplicationName/index.tsx +++ b/packages/console/src/components/ApplicationName/index.tsx @@ -13,8 +13,8 @@ import { shouldRetryOnError } from '@/utils/request'; import * as styles from './index.module.scss'; type Props = { - applicationId: string; - isLink?: boolean; + readonly applicationId: string; + readonly isLink?: boolean; }; function ApplicationName({ applicationId, isLink = false }: Props) { diff --git a/packages/console/src/components/AuditLogTable/components/ApplicationSelector/index.tsx b/packages/console/src/components/AuditLogTable/components/ApplicationSelector/index.tsx index d8dcdfb5bd2..3c717f9b90b 100644 --- a/packages/console/src/components/AuditLogTable/components/ApplicationSelector/index.tsx +++ b/packages/console/src/components/AuditLogTable/components/ApplicationSelector/index.tsx @@ -10,8 +10,8 @@ import { TenantsContext } from '@/contexts/TenantsProvider'; import Select from '@/ds-components/Select'; type Props = { - value?: string; - onChange: (value?: string) => void; + readonly value?: string; + readonly onChange: (value?: string) => void; }; function ApplicationSelector({ value, onChange }: Props) { diff --git a/packages/console/src/components/AuditLogTable/components/EventName/index.tsx b/packages/console/src/components/AuditLogTable/components/EventName/index.tsx index 1c0a75f489c..95058d38641 100644 --- a/packages/console/src/components/AuditLogTable/components/EventName/index.tsx +++ b/packages/console/src/components/AuditLogTable/components/EventName/index.tsx @@ -9,9 +9,9 @@ import useTenantPathname from '@/hooks/use-tenant-pathname'; import * as styles from './index.module.scss'; type Props = { - eventKey: string; - isSuccess: boolean; - to?: string; + readonly eventKey: string; + readonly isSuccess: boolean; + readonly to?: string; }; function EventName({ eventKey, isSuccess, to }: Props) { diff --git a/packages/console/src/components/AuditLogTable/components/EventSelector/index.tsx b/packages/console/src/components/AuditLogTable/components/EventSelector/index.tsx index 52e23d983b8..d405a05b8ac 100644 --- a/packages/console/src/components/AuditLogTable/components/EventSelector/index.tsx +++ b/packages/console/src/components/AuditLogTable/components/EventSelector/index.tsx @@ -4,9 +4,9 @@ import { logEventTitle } from '@/consts/logs'; import Select, { type Option } from '@/ds-components/Select'; type Props = { - value?: string; - onChange: (value?: string) => void; - options?: Array>; + readonly value?: string; + readonly onChange: (value?: string) => void; + readonly options?: Array>; }; const defaultEventOptions = Object.entries(logEventTitle).map(([value, title]) => ({ diff --git a/packages/console/src/components/AuditLogTable/index.tsx b/packages/console/src/components/AuditLogTable/index.tsx index e70e23f93a2..6901f5fa3a6 100644 --- a/packages/console/src/components/AuditLogTable/index.tsx +++ b/packages/console/src/components/AuditLogTable/index.tsx @@ -27,9 +27,9 @@ const auditLogEventOptions = Object.entries(auditLogEventTitle).map(([value, tit })); type Props = { - applicationId?: string; - userId?: string; - className?: string; + readonly applicationId?: string; + readonly userId?: string; + readonly className?: string; }; function AuditLogTable({ applicationId, userId, className }: Props) { diff --git a/packages/console/src/components/BillInfo/index.tsx b/packages/console/src/components/BillInfo/index.tsx index 297a7954381..c2a3a25f2df 100644 --- a/packages/console/src/components/BillInfo/index.tsx +++ b/packages/console/src/components/BillInfo/index.tsx @@ -14,8 +14,8 @@ import useSubscribe from '@/hooks/use-subscribe'; import * as styles from './index.module.scss'; type Props = { - cost: number; - isManagePaymentVisible?: boolean; + readonly cost: number; + readonly isManagePaymentVisible?: boolean; }; function BillInfo({ cost, isManagePaymentVisible }: Props) { diff --git a/packages/console/src/components/Breakable/index.tsx b/packages/console/src/components/Breakable/index.tsx index 1bdbd573355..ca5bf216797 100644 --- a/packages/console/src/components/Breakable/index.tsx +++ b/packages/console/src/components/Breakable/index.tsx @@ -1,7 +1,7 @@ import * as styles from './index.module.scss'; type Props = { - children: React.ReactNode; + readonly children: React.ReactNode; }; /** diff --git a/packages/console/src/components/ChargeNotification/index.tsx b/packages/console/src/components/ChargeNotification/index.tsx index 22f61e4d6d5..2fd62a5f4df 100644 --- a/packages/console/src/components/ChargeNotification/index.tsx +++ b/packages/console/src/components/ChargeNotification/index.tsx @@ -11,16 +11,16 @@ import TextLink from '@/ds-components/TextLink'; import useConfigs from '@/hooks/use-configs'; type Props = { - hasSurpassedLimit: boolean; - quotaItemPhraseKey: TFuncKey<'translation', 'admin_console.upsell.add_on_quota_item'>; - quotaLimit?: number; - className?: string; + readonly hasSurpassedLimit: boolean; + readonly quotaItemPhraseKey: TFuncKey<'translation', 'admin_console.upsell.add_on_quota_item'>; + readonly quotaLimit?: number; + readonly className?: string; /** * The key of the flag in `checkedChargeNotification` config from the AdminConsoleData. * Used to determine whether the notification has been checked. * @see{@link AdminConsoleData} */ - checkedFlagKey: keyof Truthy; + readonly checkedFlagKey: keyof Truthy; }; /** diff --git a/packages/console/src/components/ConnectorForm/BasicForm/index.tsx b/packages/console/src/components/ConnectorForm/BasicForm/index.tsx index 9f66bfe961c..2a72ed192cb 100644 --- a/packages/console/src/components/ConnectorForm/BasicForm/index.tsx +++ b/packages/console/src/components/ConnectorForm/BasicForm/index.tsx @@ -19,10 +19,10 @@ import { uriValidator } from '@/utils/validator'; import * as styles from './index.module.scss'; type Props = { - isAllowEditTarget?: boolean; - isDarkDefaultVisible?: boolean; - isStandard?: boolean; - conflictConnectorName?: Record; + readonly isAllowEditTarget?: boolean; + readonly isDarkDefaultVisible?: boolean; + readonly isStandard?: boolean; + readonly conflictConnectorName?: Record; }; function BasicForm({ diff --git a/packages/console/src/components/ConnectorForm/ConfigForm/ConfigFormFields/index.tsx b/packages/console/src/components/ConnectorForm/ConfigForm/ConfigFormFields/index.tsx index 318e2549b7a..e8ae334fb1d 100644 --- a/packages/console/src/components/ConnectorForm/ConfigForm/ConfigFormFields/index.tsx +++ b/packages/console/src/components/ConnectorForm/ConfigForm/ConfigFormFields/index.tsx @@ -17,7 +17,7 @@ import { jsonValidator } from '@/utils/validator'; import * as styles from './index.module.scss'; type Props = { - formItems: ConnectorConfigFormItem[]; + readonly formItems: ConnectorConfigFormItem[]; }; function ConfigFormFields({ formItems }: Props) { diff --git a/packages/console/src/components/ConnectorForm/ConfigForm/index.tsx b/packages/console/src/components/ConnectorForm/ConfigForm/index.tsx index ac70c1e0ff6..bfff2188625 100644 --- a/packages/console/src/components/ConnectorForm/ConfigForm/index.tsx +++ b/packages/console/src/components/ConnectorForm/ConfigForm/index.tsx @@ -19,11 +19,11 @@ import ConfigFormFields from './ConfigFormFields'; import * as styles from './index.module.scss'; type Props = { - formItems?: ConnectorConfigFormItem[]; - className?: string; - connectorId: string; - connectorFactoryId?: string; - connectorType?: ConnectorType; + readonly formItems?: ConnectorConfigFormItem[]; + readonly className?: string; + readonly connectorId: string; + readonly connectorFactoryId?: string; + readonly connectorType?: ConnectorType; }; function ConfigForm({ diff --git a/packages/console/src/components/ConnectorLogo/index.tsx b/packages/console/src/components/ConnectorLogo/index.tsx index abd673d4e78..333cbcff5de 100644 --- a/packages/console/src/components/ConnectorLogo/index.tsx +++ b/packages/console/src/components/ConnectorLogo/index.tsx @@ -8,9 +8,9 @@ import useTheme from '@/hooks/use-theme'; import * as styles from './index.module.scss'; type Props = { - className?: string; - data: Pick; - size?: 'small' | 'medium' | 'large'; + readonly className?: string; + readonly data: Pick; + readonly size?: 'small' | 'medium' | 'large'; }; function ConnectorLogo({ className, data, size = 'medium' }: Props) { diff --git a/packages/console/src/components/ConnectorTester/index.tsx b/packages/console/src/components/ConnectorTester/index.tsx index 38610985764..3e88f51c43f 100644 --- a/packages/console/src/components/ConnectorTester/index.tsx +++ b/packages/console/src/components/ConnectorTester/index.tsx @@ -18,11 +18,11 @@ import { trySubmitSafe } from '@/utils/form'; import * as styles from './index.module.scss'; type Props = { - connectorFactoryId: string; - connectorType: Exclude; - className?: string; - parse: () => unknown; - updateUsage?: () => void; + readonly connectorFactoryId: string; + readonly connectorType: Exclude; + readonly className?: string; + readonly parse: () => unknown; + readonly updateUsage?: () => void; }; type FormData = { diff --git a/packages/console/src/components/ContactUsPhraseLink/index.tsx b/packages/console/src/components/ContactUsPhraseLink/index.tsx index 6deaa4fa157..376d5d57274 100644 --- a/packages/console/src/components/ContactUsPhraseLink/index.tsx +++ b/packages/console/src/components/ContactUsPhraseLink/index.tsx @@ -4,7 +4,7 @@ import { contactEmailLink } from '@/consts'; import TextLink from '@/ds-components/TextLink'; type Props = { - children?: ReactNode; + readonly children?: ReactNode; }; function ContactUsPhraseLink({ children }: Props) { diff --git a/packages/console/src/components/Conversion/index.tsx b/packages/console/src/components/Conversion/index.tsx index 2278dc74af6..17202ac1088 100644 --- a/packages/console/src/components/Conversion/index.tsx +++ b/packages/console/src/components/Conversion/index.tsx @@ -17,7 +17,7 @@ import { } from './utils'; type ScriptProps = { - userEmailHash?: string; + readonly userEmailHash?: string; }; function GoogleScripts({ userEmailHash }: ScriptProps) { diff --git a/packages/console/src/components/CreateConnectorForm/ConnectorRadioGroup/ConnectorRadio/index.tsx b/packages/console/src/components/CreateConnectorForm/ConnectorRadioGroup/ConnectorRadio/index.tsx index c7d89429670..b722f3f99bb 100644 --- a/packages/console/src/components/CreateConnectorForm/ConnectorRadioGroup/ConnectorRadio/index.tsx +++ b/packages/console/src/components/CreateConnectorForm/ConnectorRadioGroup/ConnectorRadio/index.tsx @@ -8,7 +8,7 @@ import { type ConnectorGroup } from '@/types/connector'; import * as styles from './index.module.scss'; type Props = { - data: ConnectorGroup; + readonly data: ConnectorGroup; }; function ConnectorRadio({ data: { name, logo, logoDark, description } }: Props) { diff --git a/packages/console/src/components/CreateConnectorForm/ConnectorRadioGroup/index.tsx b/packages/console/src/components/CreateConnectorForm/ConnectorRadioGroup/index.tsx index 4c469e0a621..f682f929e8a 100644 --- a/packages/console/src/components/CreateConnectorForm/ConnectorRadioGroup/index.tsx +++ b/packages/console/src/components/CreateConnectorForm/ConnectorRadioGroup/index.tsx @@ -10,11 +10,11 @@ import * as styles from './index.module.scss'; export type ConnectorRadioGroupSize = 'medium' | 'large' | 'xlarge'; type Props = { - name: string; - value?: string; - groups: Array>; - size: ConnectorRadioGroupSize; - onChange: (groupId: string) => void; + readonly name: string; + readonly value?: string; + readonly groups: Array>; + readonly size: ConnectorRadioGroupSize; + readonly onChange: (groupId: string) => void; }; function ConnectorRadioGroup({ name, groups, value, size, onChange }: Props) { diff --git a/packages/console/src/components/CreateConnectorForm/Footer/index.tsx b/packages/console/src/components/CreateConnectorForm/Footer/index.tsx index 50500d53c42..53c7b4032cb 100644 --- a/packages/console/src/components/CreateConnectorForm/Footer/index.tsx +++ b/packages/console/src/components/CreateConnectorForm/Footer/index.tsx @@ -16,11 +16,11 @@ import { type ConnectorGroup } from '@/types/connector'; import { hasReachedQuotaLimit } from '@/utils/quota'; type Props = { - isCreatingSocialConnector: boolean; - existingConnectors: ConnectorResponse[]; - selectedConnectorGroup?: ConnectorGroup; - isCreateButtonDisabled: boolean; - onClickCreateButton: () => void; + readonly isCreatingSocialConnector: boolean; + readonly existingConnectors: ConnectorResponse[]; + readonly selectedConnectorGroup?: ConnectorGroup; + readonly isCreateButtonDisabled: boolean; + readonly onClickCreateButton: () => void; }; function Footer({ diff --git a/packages/console/src/components/CreateConnectorForm/PlatformSelector/index.tsx b/packages/console/src/components/CreateConnectorForm/PlatformSelector/index.tsx index 64a805175fa..658db4e286d 100644 --- a/packages/console/src/components/CreateConnectorForm/PlatformSelector/index.tsx +++ b/packages/console/src/components/CreateConnectorForm/PlatformSelector/index.tsx @@ -9,9 +9,9 @@ import type { ConnectorGroup } from '@/types/connector'; import * as styles from './index.module.scss'; type Props = { - connectorGroup: ConnectorGroup; - connectorId?: string; - onConnectorIdChange: (value: string) => void; + readonly connectorGroup: ConnectorGroup; + readonly connectorId?: string; + readonly onConnectorIdChange: (value: string) => void; }; function PlatformSelector({ connectorGroup, connectorId, onConnectorIdChange }: Props) { diff --git a/packages/console/src/components/CreateConnectorForm/Skeleton/index.tsx b/packages/console/src/components/CreateConnectorForm/Skeleton/index.tsx index 162c13f1bd4..9ecdb68975f 100644 --- a/packages/console/src/components/CreateConnectorForm/Skeleton/index.tsx +++ b/packages/console/src/components/CreateConnectorForm/Skeleton/index.tsx @@ -6,7 +6,7 @@ import * as radioGroupStyles from '../ConnectorRadioGroup/index.module.scss'; import * as styles from './index.module.scss'; type Props = { - numberOfLoadingConnectors?: number; + readonly numberOfLoadingConnectors?: number; }; function Skeleton({ numberOfLoadingConnectors = 8 }: Props) { diff --git a/packages/console/src/components/CreateConnectorForm/index.tsx b/packages/console/src/components/CreateConnectorForm/index.tsx index c72f3883130..5ed33692ef9 100644 --- a/packages/console/src/components/CreateConnectorForm/index.tsx +++ b/packages/console/src/components/CreateConnectorForm/index.tsx @@ -22,9 +22,9 @@ import * as styles from './index.module.scss'; import { compareConnectors, getConnectorRadioGroupSize, getModalTitle } from './utils'; type Props = { - isOpen: boolean; - type?: ConnectorType; - onClose?: (connectorId?: string) => void; + readonly isOpen: boolean; + readonly type?: ConnectorType; + readonly onClose?: (connectorId?: string) => void; }; function CreateConnectorForm({ onClose, isOpen: isFormOpen, type }: Props) { diff --git a/packages/console/src/components/CreateTenantModal/EnvTagOptionContent/index.tsx b/packages/console/src/components/CreateTenantModal/EnvTagOptionContent/index.tsx index 88e1e7f2f00..f9d6a10549d 100644 --- a/packages/console/src/components/CreateTenantModal/EnvTagOptionContent/index.tsx +++ b/packages/console/src/components/CreateTenantModal/EnvTagOptionContent/index.tsx @@ -10,7 +10,7 @@ import { ReservedPlanName } from '@/types/subscriptions'; import * as styles from './index.module.scss'; type Props = { - tag: TenantTag; + readonly tag: TenantTag; }; const descriptionMap: Record = { diff --git a/packages/console/src/components/CreateTenantModal/SelectTenantPlanModal/PlanCardItem/FeaturedPlanContent/index.tsx b/packages/console/src/components/CreateTenantModal/SelectTenantPlanModal/PlanCardItem/FeaturedPlanContent/index.tsx index 4057f726dbe..8e95a6a2a3a 100644 --- a/packages/console/src/components/CreateTenantModal/SelectTenantPlanModal/PlanCardItem/FeaturedPlanContent/index.tsx +++ b/packages/console/src/components/CreateTenantModal/SelectTenantPlanModal/PlanCardItem/FeaturedPlanContent/index.tsx @@ -7,7 +7,7 @@ import * as styles from './index.module.scss'; import useFeaturedPlanContent from './use-featured-plan-content'; type Props = { - planId: string; + readonly planId: string; }; function FeaturedPlanContent({ planId }: Props) { diff --git a/packages/console/src/components/CreateTenantModal/SelectTenantPlanModal/PlanCardItem/index.tsx b/packages/console/src/components/CreateTenantModal/SelectTenantPlanModal/PlanCardItem/index.tsx index 01362bd6732..53469b4d502 100644 --- a/packages/console/src/components/CreateTenantModal/SelectTenantPlanModal/PlanCardItem/index.tsx +++ b/packages/console/src/components/CreateTenantModal/SelectTenantPlanModal/PlanCardItem/index.tsx @@ -18,8 +18,8 @@ import FeaturedPlanContent from './FeaturedPlanContent'; import * as styles from './index.module.scss'; type Props = { - plan: SubscriptionPlan; - onSelect: () => void; + readonly plan: SubscriptionPlan; + readonly onSelect: () => void; }; function PlanCardItem({ plan, onSelect }: Props) { diff --git a/packages/console/src/components/CreateTenantModal/SelectTenantPlanModal/index.tsx b/packages/console/src/components/CreateTenantModal/SelectTenantPlanModal/index.tsx index 8609fede8b7..20434640c1f 100644 --- a/packages/console/src/components/CreateTenantModal/SelectTenantPlanModal/index.tsx +++ b/packages/console/src/components/CreateTenantModal/SelectTenantPlanModal/index.tsx @@ -22,8 +22,8 @@ import PlanCardItem from './PlanCardItem'; import * as styles from './index.module.scss'; type Props = { - tenantData?: CreateTenantData; - onClose: (tenant?: TenantResponse) => void; + readonly tenantData?: CreateTenantData; + readonly onClose: (tenant?: TenantResponse) => void; }; function SelectTenantPlanModal({ tenantData, onClose }: Props) { diff --git a/packages/console/src/components/CreateTenantModal/index.tsx b/packages/console/src/components/CreateTenantModal/index.tsx index fd3c7a3dfe8..f7c08bfbc1d 100644 --- a/packages/console/src/components/CreateTenantModal/index.tsx +++ b/packages/console/src/components/CreateTenantModal/index.tsx @@ -23,8 +23,8 @@ import * as styles from './index.module.scss'; import { type CreateTenantData } from './type'; type Props = { - isOpen: boolean; - onClose: (tenant?: TenantResponse) => void; + readonly isOpen: boolean; + readonly onClose: (tenant?: TenantResponse) => void; }; const availableTags = [TenantTag.Development, TenantTag.Production]; diff --git a/packages/console/src/components/DateTime/index.tsx b/packages/console/src/components/DateTime/index.tsx index 7fc43947ea1..766d94d28d7 100644 --- a/packages/console/src/components/DateTime/index.tsx +++ b/packages/console/src/components/DateTime/index.tsx @@ -2,7 +2,7 @@ import type { Nullable } from '@silverhand/essentials'; import { isValid } from 'date-fns'; type Props = { - children: Nullable; + readonly children: Nullable; }; function DateTime({ children }: Props) { diff --git a/packages/console/src/components/DeleteConnectorConfirmModal/index.tsx b/packages/console/src/components/DeleteConnectorConfirmModal/index.tsx index 34cfb648c31..89b4721b146 100644 --- a/packages/console/src/components/DeleteConnectorConfirmModal/index.tsx +++ b/packages/console/src/components/DeleteConnectorConfirmModal/index.tsx @@ -6,12 +6,12 @@ import UnnamedTrans from '@/components/UnnamedTrans'; import ConfirmModal from '@/ds-components/ConfirmModal'; type Props = { - data: ConnectorResponse; - isOpen: boolean; - isInUse: boolean; - isLoading: boolean; - onCancel: () => void; - onConfirm: () => void; + readonly data: ConnectorResponse; + readonly isOpen: boolean; + readonly isInUse: boolean; + readonly isLoading: boolean; + readonly onCancel: () => void; + readonly onConfirm: () => void; }; function DeleteConnectorConfirmModal({ diff --git a/packages/console/src/components/DetailsForm/index.tsx b/packages/console/src/components/DetailsForm/index.tsx index d4d24e558bf..c19161d60c4 100644 --- a/packages/console/src/components/DetailsForm/index.tsx +++ b/packages/console/src/components/DetailsForm/index.tsx @@ -6,12 +6,12 @@ import SubmitFormChangesActionBar from '../SubmitFormChangesActionBar'; import * as styles from './index.module.scss'; type Props = { - autoComplete?: string; - isDirty: boolean; - isSubmitting: boolean; - onSubmit: () => Promise; - onDiscard: () => void; - children: ReactNode; + readonly autoComplete?: string; + readonly isDirty: boolean; + readonly isSubmitting: boolean; + readonly onSubmit: () => Promise; + readonly onDiscard: () => void; + readonly children: ReactNode; }; function DetailsForm({ diff --git a/packages/console/src/components/DetailsPage/DetailsPageHeader/index.tsx b/packages/console/src/components/DetailsPage/DetailsPageHeader/index.tsx index d3e01bd8799..b4b431a33a9 100644 --- a/packages/console/src/components/DetailsPage/DetailsPageHeader/index.tsx +++ b/packages/console/src/components/DetailsPage/DetailsPageHeader/index.tsx @@ -53,45 +53,45 @@ type Props = { /** * The main 60x60 icon on the very left */ - icon: ReactElement; + readonly icon: ReactElement; /** * The main title of the header */ - title: ReactNode; + readonly title: ReactNode; /** * Shows a subtitle in the second row * Example usage: Secondary information of the user (if any) in user details page */ - subtitle?: ReactNode; + readonly subtitle?: ReactNode; /** * Shows a tag in the second row of the header metadata * Example usage: Application type "Native / SPA / Traditional" */ - primaryTag?: ReactNode; + readonly primaryTag?: ReactNode; /** * Shows a status tag in the second row of the header metadata * Example usage: Connector status "In use / Not in use" in connector details page */ - statusTag?: StatusTag; + readonly statusTag?: StatusTag; /** * Shows the entity identifier in a "Copy to clipboard" component * Example usage: "App ID" in application details page */ - identifier?: Identifier; + readonly identifier?: Identifier; /** * Shows an additional action button in the header, next to the "...(More)" button * Example usage: "Check Guide" button in application details page */ - additionalActionButton?: AdditionalActionButton; + readonly additionalActionButton?: AdditionalActionButton; /** * Shows additional custom element in the header, next to the "...(More)" button * Example usage (special use case): "Total email sent (count)" in Logto email connector */ - additionalCustomElement?: ReactElement; + readonly additionalCustomElement?: ReactElement; /** * Dropdown action menu items nested in the "...(More)" button */ - actionMenuItems?: MenuItem[]; + readonly actionMenuItems?: MenuItem[]; }; function DetailsPageHeader({ diff --git a/packages/console/src/components/DetailsPage/index.tsx b/packages/console/src/components/DetailsPage/index.tsx index 96a8105a3cd..c6083122d0f 100644 --- a/packages/console/src/components/DetailsPage/index.tsx +++ b/packages/console/src/components/DetailsPage/index.tsx @@ -15,13 +15,13 @@ import Skeleton from './Skeleton'; import * as styles from './index.module.scss'; type Props = { - backLink: To; - backLinkTitle?: AdminConsoleKey | ReactElement; - isLoading?: boolean; - error?: RequestError; - onRetry?: () => void; - children: ReactNode; - className?: string; + readonly backLink: To; + readonly backLinkTitle?: AdminConsoleKey | ReactElement; + readonly isLoading?: boolean; + readonly error?: RequestError; + readonly onRetry?: () => void; + readonly children: ReactNode; + readonly className?: string; }; function DetailsPage({ diff --git a/packages/console/src/components/DomainStatusTag/index.tsx b/packages/console/src/components/DomainStatusTag/index.tsx index ef0e0a82908..3ad3c458159 100644 --- a/packages/console/src/components/DomainStatusTag/index.tsx +++ b/packages/console/src/components/DomainStatusTag/index.tsx @@ -16,7 +16,7 @@ const domainStatusToTag: Record< }; type Props = { - status: DomainStatus; + readonly status: DomainStatus; }; function DomainStatusTag({ status }: Props) { diff --git a/packages/console/src/components/Drawer/index.tsx b/packages/console/src/components/Drawer/index.tsx index 219db484b16..99e004b664d 100644 --- a/packages/console/src/components/Drawer/index.tsx +++ b/packages/console/src/components/Drawer/index.tsx @@ -9,11 +9,11 @@ import Spacer from '@/ds-components/Spacer'; import * as styles from './index.module.scss'; type Props = { - title?: AdminConsoleKey; - subtitle?: AdminConsoleKey; - isOpen: boolean; - children: React.ReactNode; - onClose?: () => void; + readonly title?: AdminConsoleKey; + readonly subtitle?: AdminConsoleKey; + readonly isOpen: boolean; + readonly children: React.ReactNode; + readonly onClose?: () => void; }; function Drawer({ title, subtitle, isOpen, children, onClose }: Props) { diff --git a/packages/console/src/components/EditScopeModal/index.tsx b/packages/console/src/components/EditScopeModal/index.tsx index 4d92e2eaf77..1ba3bc37bee 100644 --- a/packages/console/src/components/EditScopeModal/index.tsx +++ b/packages/console/src/components/EditScopeModal/index.tsx @@ -18,11 +18,11 @@ export type EditScopeData = { type Props = { /** The scope name displayed in the name input field */ - scopeName: string; + readonly scopeName: string; /** The data to edit */ - data: EditScopeData; + readonly data: EditScopeData; /** Determines the translation keys for texts in the editor modal */ - text: { + readonly text: { /** The translation key of the modal title */ title: AdminConsoleKey; /** The field name translation key for the name input */ @@ -32,8 +32,8 @@ type Props = { /** The placeholder translation key for the description input */ descriptionPlaceholder: AdminConsoleKey; }; - onSubmit: (editedData: EditScopeData) => Promise; - onClose: () => void; + readonly onSubmit: (editedData: EditScopeData) => Promise; + readonly onClose: () => void; }; function EditScopeModal({ scopeName, data, text, onClose, onSubmit }: Props) { diff --git a/packages/console/src/components/EmptyDataPlaceholder/index.tsx b/packages/console/src/components/EmptyDataPlaceholder/index.tsx index 8ce743d1acd..bdf1706507b 100644 --- a/packages/console/src/components/EmptyDataPlaceholder/index.tsx +++ b/packages/console/src/components/EmptyDataPlaceholder/index.tsx @@ -10,9 +10,9 @@ import useTheme from '@/hooks/use-theme'; import * as styles from './index.module.scss'; type Props = { - title?: ReactNode; - size?: 'large' | 'medium' | 'small'; - className?: string; + readonly title?: ReactNode; + readonly size?: 'large' | 'medium' | 'small'; + readonly className?: string; }; function EmptyDataPlaceholder({ title, size = 'medium', className }: Props) { diff --git a/packages/console/src/components/EntitiesTransfer/components/EntityItem/index.tsx b/packages/console/src/components/EntitiesTransfer/components/EntityItem/index.tsx index db37ebaae96..0b8ccaa9db2 100644 --- a/packages/console/src/components/EntitiesTransfer/components/EntityItem/index.tsx +++ b/packages/console/src/components/EntitiesTransfer/components/EntityItem/index.tsx @@ -8,7 +8,7 @@ import { getUserTitle } from '@/utils/user'; import * as styles from './index.module.scss'; type UserItemProps = { - entity: User; + readonly entity: User; }; export function UserItem({ entity }: UserItemProps) { @@ -22,7 +22,7 @@ export function UserItem({ entity }: UserItemProps) { } type ApplicationItemProps = { - entity: Application; + readonly entity: Application; }; export function ApplicationItem({ entity }: ApplicationItemProps) { diff --git a/packages/console/src/components/EntitiesTransfer/components/SourceEntitiesBox/index.tsx b/packages/console/src/components/EntitiesTransfer/components/SourceEntitiesBox/index.tsx index 437e0cac8bb..e8402edf490 100644 --- a/packages/console/src/components/EntitiesTransfer/components/SourceEntitiesBox/index.tsx +++ b/packages/console/src/components/EntitiesTransfer/components/SourceEntitiesBox/index.tsx @@ -28,11 +28,11 @@ type SearchProps = { }; export type Props = { - searchProps: SearchProps; - onChange: (value: T[]) => void; - selectedEntities: T[]; - emptyPlaceholder: AdminConsoleKey; - renderEntity: (entity: T) => ReactNode; + readonly searchProps: SearchProps; + readonly onChange: (value: T[]) => void; + readonly selectedEntities: T[]; + readonly emptyPlaceholder: AdminConsoleKey; + readonly renderEntity: (entity: T) => ReactNode; }; const pageSize = defaultPageSize; diff --git a/packages/console/src/components/EntitiesTransfer/components/SourceEntityItem/index.tsx b/packages/console/src/components/EntitiesTransfer/components/SourceEntityItem/index.tsx index c730cdacabf..b26f110b3ae 100644 --- a/packages/console/src/components/EntitiesTransfer/components/SourceEntityItem/index.tsx +++ b/packages/console/src/components/EntitiesTransfer/components/SourceEntityItem/index.tsx @@ -7,10 +7,10 @@ import { onKeyDownHandler } from '@/utils/a11y'; import * as styles from './index.module.scss'; type Props = { - entity: T; - isSelected: boolean; - onSelect: () => void; - render: (entity: T) => ReactNode; + readonly entity: T; + readonly isSelected: boolean; + readonly onSelect: () => void; + readonly render: (entity: T) => ReactNode; }; function SourceEntityItem({ diff --git a/packages/console/src/components/EntitiesTransfer/components/TargetEntitiesBox/index.tsx b/packages/console/src/components/EntitiesTransfer/components/TargetEntitiesBox/index.tsx index 3bdb3541804..145cbbfb31b 100644 --- a/packages/console/src/components/EntitiesTransfer/components/TargetEntitiesBox/index.tsx +++ b/packages/console/src/components/EntitiesTransfer/components/TargetEntitiesBox/index.tsx @@ -8,9 +8,9 @@ import TargetEntityItem from '../TargetEntityItem'; import * as styles from './index.module.scss'; type Props = { - renderEntity: (entity: T) => React.ReactNode; - selectedEntities: T[]; - onChange: (value: T[]) => void; + readonly renderEntity: (entity: T) => React.ReactNode; + readonly selectedEntities: T[]; + readonly onChange: (value: T[]) => void; }; function TargetEntitiesBox({ diff --git a/packages/console/src/components/EntitiesTransfer/components/TargetEntityItem/index.tsx b/packages/console/src/components/EntitiesTransfer/components/TargetEntityItem/index.tsx index dcacdf2bc69..8c71be5d205 100644 --- a/packages/console/src/components/EntitiesTransfer/components/TargetEntityItem/index.tsx +++ b/packages/console/src/components/EntitiesTransfer/components/TargetEntityItem/index.tsx @@ -7,9 +7,9 @@ import { type Identifiable } from '@/types/general'; import * as styles from './index.module.scss'; type Props = { - entity: T; - render: (entity: T) => ReactNode; - onDelete: () => void; + readonly entity: T; + readonly render: (entity: T) => ReactNode; + readonly onDelete: () => void; }; function TargetEntityItem({ entity, render, onDelete }: Props) { diff --git a/packages/console/src/components/EntitiesTransfer/index.tsx b/packages/console/src/components/EntitiesTransfer/index.tsx index 25ed5c5c53a..ffec093f2ef 100644 --- a/packages/console/src/components/EntitiesTransfer/index.tsx +++ b/packages/console/src/components/EntitiesTransfer/index.tsx @@ -8,7 +8,7 @@ import TargetEntitiesBox from './components/TargetEntitiesBox'; import * as styles from './index.module.scss'; type Props = SourceProps & { - errorMessage?: string; + readonly errorMessage?: string; }; function EntitiesTransfer({ errorMessage, ...props }: Props) { diff --git a/packages/console/src/components/FeatureTag/BetaTag.tsx b/packages/console/src/components/FeatureTag/BetaTag.tsx index 74ce3d79b07..4bbe194a095 100644 --- a/packages/console/src/components/FeatureTag/BetaTag.tsx +++ b/packages/console/src/components/FeatureTag/BetaTag.tsx @@ -9,7 +9,7 @@ import classNames from 'classnames'; import * as styles from './index.module.scss'; type Props = { - className?: string; + readonly className?: string; }; function BetaTag({ className }: Props) { diff --git a/packages/console/src/components/FeatureTag/index.tsx b/packages/console/src/components/FeatureTag/index.tsx index 892763c224f..b34af54c7fc 100644 --- a/packages/console/src/components/FeatureTag/index.tsx +++ b/packages/console/src/components/FeatureTag/index.tsx @@ -14,10 +14,10 @@ type Props = { * plan has NO access to the feature (paywall), but it will always be visible for dev * tenants. */ - isVisible: boolean; + readonly isVisible: boolean; /** The minimum plan required to use the feature. */ - plan: Exclude; - className?: string; + readonly plan: Exclude; + readonly className?: string; }; /** diff --git a/packages/console/src/components/FormCard/FormCardLayout/index.tsx b/packages/console/src/components/FormCard/FormCardLayout/index.tsx index 9304b6c113d..a19c3c66343 100644 --- a/packages/console/src/components/FormCard/FormCardLayout/index.tsx +++ b/packages/console/src/components/FormCard/FormCardLayout/index.tsx @@ -5,8 +5,8 @@ import Card from '@/ds-components/Card'; import * as styles from './index.module.scss'; type Props = { - introduction: ReactNode; - children: ReactNode; + readonly introduction: ReactNode; + readonly children: ReactNode; }; function FormCardLayout({ introduction, children }: Props) { diff --git a/packages/console/src/components/FormCard/Skeleton/index.tsx b/packages/console/src/components/FormCard/Skeleton/index.tsx index aaab0c372d3..cafb1f21940 100644 --- a/packages/console/src/components/FormCard/Skeleton/index.tsx +++ b/packages/console/src/components/FormCard/Skeleton/index.tsx @@ -3,7 +3,7 @@ import FormCardLayout from '../FormCardLayout'; import * as styles from './index.module.scss'; type Props = { - formFieldCount?: number; + readonly formFieldCount?: number; }; function Skeleton({ formFieldCount = 4 }: Props) { diff --git a/packages/console/src/components/FormCard/index.tsx b/packages/console/src/components/FormCard/index.tsx index bcc954fd4fc..484b4897f06 100644 --- a/packages/console/src/components/FormCard/index.tsx +++ b/packages/console/src/components/FormCard/index.tsx @@ -9,12 +9,14 @@ import FormCardLayout from './FormCardLayout'; import * as styles from './index.module.scss'; type Props = { - title: AdminConsoleKey; - tag?: ReactNode; - description?: AdminConsoleKey; - descriptionInterpolation?: Record; - learnMoreLink?: Pick & { linkText?: AdminConsoleKey }; - children: ReactNode; + readonly title: AdminConsoleKey; + readonly tag?: ReactNode; + readonly description?: AdminConsoleKey; + readonly descriptionInterpolation?: Record; + readonly learnMoreLink?: Pick & { + linkText?: AdminConsoleKey; + }; + readonly children: ReactNode; }; function FormCard({ diff --git a/packages/console/src/components/Guide/GuideCard/index.tsx b/packages/console/src/components/Guide/GuideCard/index.tsx index 1839add46d6..fef3471ecf8 100644 --- a/packages/console/src/components/Guide/GuideCard/index.tsx +++ b/packages/console/src/components/Guide/GuideCard/index.tsx @@ -19,10 +19,10 @@ export type SelectedGuide = { }; type Props = { - data: Guide; - onClick: (data: SelectedGuide) => void; - hasBorder?: boolean; - hasButton?: boolean; + readonly data: Guide; + readonly onClick: (data: SelectedGuide) => void; + readonly hasBorder?: boolean; + readonly hasButton?: boolean; }; function GuideCard({ data, onClick, hasBorder, hasButton }: Props) { diff --git a/packages/console/src/components/Guide/GuideCardGroup/index.tsx b/packages/console/src/components/Guide/GuideCardGroup/index.tsx index 800524a9d50..e23fb721fef 100644 --- a/packages/console/src/components/Guide/GuideCardGroup/index.tsx +++ b/packages/console/src/components/Guide/GuideCardGroup/index.tsx @@ -8,12 +8,12 @@ import GuideCard, { type SelectedGuide } from '../GuideCard'; import * as styles from './index.module.scss'; type Props = { - className?: string; - categoryName?: string; - guides?: readonly Guide[]; - hasCardBorder?: boolean; - hasCardButton?: boolean; - onClickGuide: (data: SelectedGuide) => void; + readonly className?: string; + readonly categoryName?: string; + readonly guides?: readonly Guide[]; + readonly hasCardBorder?: boolean; + readonly hasCardButton?: boolean; + readonly onClickGuide: (data: SelectedGuide) => void; }; function GuideCardGroup( diff --git a/packages/console/src/components/Guide/ModalFooter/index.module.scss b/packages/console/src/components/Guide/ModalFooter/index.module.scss index f2121a66af7..bf335686bfb 100644 --- a/packages/console/src/components/Guide/ModalFooter/index.module.scss +++ b/packages/console/src/components/Guide/ModalFooter/index.module.scss @@ -2,7 +2,7 @@ @use '@/scss/dimensions' as dim; .actionBar { - inset: auto 0 0 0; + inset: auto 0 0; width: 100%; padding: _.unit(4) _.unit(6); background-color: var(--color-layer-1); diff --git a/packages/console/src/components/Guide/ModalFooter/index.tsx b/packages/console/src/components/Guide/ModalFooter/index.tsx index 5a041746758..d43a8960221 100644 --- a/packages/console/src/components/Guide/ModalFooter/index.tsx +++ b/packages/console/src/components/Guide/ModalFooter/index.tsx @@ -7,10 +7,10 @@ import DynamicT from '@/ds-components/DynamicT'; import * as styles from './index.module.scss'; type Props = { - wrapperClassName?: string; - content: AdminConsoleKey; - buttonText: AdminConsoleKey; - onClick: () => void; + readonly wrapperClassName?: string; + readonly content: AdminConsoleKey; + readonly buttonText: AdminConsoleKey; + readonly onClick: () => void; }; export default function ModalFooter({ wrapperClassName, content, buttonText, onClick }: Props) { diff --git a/packages/console/src/components/Guide/ModalHeader/RequestForm.tsx b/packages/console/src/components/Guide/ModalHeader/RequestForm.tsx index 3992e05ec1a..afa1a94c72b 100644 --- a/packages/console/src/components/Guide/ModalHeader/RequestForm.tsx +++ b/packages/console/src/components/Guide/ModalHeader/RequestForm.tsx @@ -13,12 +13,12 @@ import useCurrentUser from '@/hooks/use-current-user'; import * as modalStyles from '@/scss/modal.module.scss'; type Props = { - title: AdminConsoleKey; - fieldLabel: AdminConsoleKey; - fieldPlaceholder: AdminConsoleKey; - successMessage: AdminConsoleKey; - isOpen: boolean; - onClose: () => void; + readonly title: AdminConsoleKey; + readonly fieldLabel: AdminConsoleKey; + readonly fieldPlaceholder: AdminConsoleKey; + readonly successMessage: AdminConsoleKey; + readonly isOpen: boolean; + readonly onClose: () => void; }; export default function RequestForm({ diff --git a/packages/console/src/components/Guide/ModalHeader/index.tsx b/packages/console/src/components/Guide/ModalHeader/index.tsx index 5ce1af24410..dbef8c32208 100644 --- a/packages/console/src/components/Guide/ModalHeader/index.tsx +++ b/packages/console/src/components/Guide/ModalHeader/index.tsx @@ -11,14 +11,14 @@ import RequestForm from './RequestForm'; import * as styles from './index.module.scss'; type Props = { - title: AdminConsoleKey; - subtitle: AdminConsoleKey; - buttonText: AdminConsoleKey; - requestFormTitle?: AdminConsoleKey; - requestFormFieldLabel: AdminConsoleKey; - requestFormFieldPlaceholder: AdminConsoleKey; - requestSuccessMessage: AdminConsoleKey; - onClose: () => void; + readonly title: AdminConsoleKey; + readonly subtitle: AdminConsoleKey; + readonly buttonText: AdminConsoleKey; + readonly requestFormTitle?: AdminConsoleKey; + readonly requestFormFieldLabel: AdminConsoleKey; + readonly requestFormFieldPlaceholder: AdminConsoleKey; + readonly requestSuccessMessage: AdminConsoleKey; + readonly onClose: () => void; }; function ModalHeader({ diff --git a/packages/console/src/components/Guide/index.tsx b/packages/console/src/components/Guide/index.tsx index c55740d4469..b3a696a2814 100644 --- a/packages/console/src/components/Guide/index.tsx +++ b/packages/console/src/components/Guide/index.tsx @@ -31,11 +31,11 @@ export type GuideContextType = { }; type Props = { - className?: string; - guideId: string; - isEmpty?: boolean; - isLoading?: boolean; - onClose: () => void; + readonly className?: string; + readonly guideId: string; + readonly isEmpty?: boolean; + readonly isLoading?: boolean; + readonly onClose: () => void; }; export const GuideContext = createContext({ diff --git a/packages/console/src/components/Index/index.tsx b/packages/console/src/components/Index/index.tsx index 02055899b1c..d9584593dca 100644 --- a/packages/console/src/components/Index/index.tsx +++ b/packages/console/src/components/Index/index.tsx @@ -5,10 +5,10 @@ import Tick from '@/assets/icons/tick.svg'; import * as styles from './index.module.scss'; type Props = { - className?: string; - index: number; - isActive?: boolean; - isComplete?: boolean; + readonly className?: string; + readonly index: number; + readonly isActive?: boolean; + readonly isComplete?: boolean; }; function Index({ className, index, isActive, isComplete }: Props) { diff --git a/packages/console/src/components/InlineUpsell/index.tsx b/packages/console/src/components/InlineUpsell/index.tsx index 0fd61409b4a..1f57a042c43 100644 --- a/packages/console/src/components/InlineUpsell/index.tsx +++ b/packages/console/src/components/InlineUpsell/index.tsx @@ -11,13 +11,13 @@ import ContactUsPhraseLink from '../ContactUsPhraseLink'; import * as styles from './index.module.scss'; type Props = { - className?: string; - for: TFuncKey<'translation', 'admin_console.upsell.paywall'>; + readonly className?: string; + readonly for: TFuncKey<'translation', 'admin_console.upsell.paywall'>; /** * The text to be displayed on the clickable action button which links to the subscription page. * @default 'upsell.compare_plans' */ - actionButtonText?: AdminConsoleKey; + readonly actionButtonText?: AdminConsoleKey; }; /** Displays an inline notification that explains the paywall and provides a clickable action button which links to the subscription page. */ diff --git a/packages/console/src/components/ItemPreview/UserPreview.tsx b/packages/console/src/components/ItemPreview/UserPreview.tsx index 357e74fb0ed..716491daf80 100644 --- a/packages/console/src/components/ItemPreview/UserPreview.tsx +++ b/packages/console/src/components/ItemPreview/UserPreview.tsx @@ -12,7 +12,7 @@ type Props = { /** * A subset of User schema type that is used in the preview component. */ - user: { + readonly user: { id: UserInfo['id']; avatar?: UserInfo['avatar']; name?: UserInfo['name']; @@ -24,7 +24,7 @@ type Props = { /** * Whether to provide a link to user details page. Explicitly set to `false` to hide it. */ - hasUserDetailsLink?: false; + readonly hasUserDetailsLink?: false; }; /** A component that renders a preview of a user. It's useful for displaying a user in a list. */ diff --git a/packages/console/src/components/ItemPreview/index.tsx b/packages/console/src/components/ItemPreview/index.tsx index ae29ac65697..e7447b76e06 100644 --- a/packages/console/src/components/ItemPreview/index.tsx +++ b/packages/console/src/components/ItemPreview/index.tsx @@ -8,13 +8,13 @@ import useTenantPathname from '@/hooks/use-tenant-pathname'; import * as styles from './index.module.scss'; type Props = { - title: ReactNode; - subtitle?: ReactNode; - icon?: ReactNode; - to?: To; - size?: 'default' | 'compact'; - suffix?: ReactNode; - toTarget?: HTMLAnchorElement['target']; + readonly title: ReactNode; + readonly subtitle?: ReactNode; + readonly icon?: ReactNode; + readonly to?: To; + readonly size?: 'default' | 'compact'; + readonly suffix?: ReactNode; + readonly toTarget?: HTMLAnchorElement['target']; }; function ItemPreview({ title, subtitle, icon, to, size = 'default', suffix, toTarget }: Props) { diff --git a/packages/console/src/components/ListPage/index.tsx b/packages/console/src/components/ListPage/index.tsx index a363714e7fb..c59d75fea1d 100644 --- a/packages/console/src/components/ListPage/index.tsx +++ b/packages/console/src/components/ListPage/index.tsx @@ -20,14 +20,14 @@ type Props< TFieldValues extends FieldValues = FieldValues, TName extends FieldPath = FieldPath, > = { - title: CardTitleProps; - pageMeta?: PageMetaProps; - createButton?: CreateButtonProps; - subHeader?: ReactNode; - table: TableProps; + readonly title: CardTitleProps; + readonly pageMeta?: PageMetaProps; + readonly createButton?: CreateButtonProps; + readonly subHeader?: ReactNode; + readonly table: TableProps; /** @deprecated Need refactor. */ - widgets?: ReactNode; - className?: string; + readonly widgets?: ReactNode; + readonly className?: string; }; function ListPage< diff --git a/packages/console/src/components/LivePreviewButton/index.tsx b/packages/console/src/components/LivePreviewButton/index.tsx index 209d1f6ee21..6a1ec955d3f 100644 --- a/packages/console/src/components/LivePreviewButton/index.tsx +++ b/packages/console/src/components/LivePreviewButton/index.tsx @@ -12,9 +12,9 @@ import { Tooltip } from '@/ds-components/Tip'; import * as styles from './index.module.scss'; type Props = { - size?: ButtonProps['size']; - type?: ButtonType; - isDisabled: boolean; + readonly size?: ButtonProps['size']; + readonly type?: ButtonType; + readonly isDisabled: boolean; }; function LivePreviewButton({ size, type, isDisabled }: Props) { diff --git a/packages/console/src/components/ManageOrganizationPermissionModal/index.tsx b/packages/console/src/components/ManageOrganizationPermissionModal/index.tsx index d8c5ce1a8ec..bca34f4503a 100644 --- a/packages/console/src/components/ManageOrganizationPermissionModal/index.tsx +++ b/packages/console/src/components/ManageOrganizationPermissionModal/index.tsx @@ -17,8 +17,8 @@ type Props = { /** * The organization permission data to edit. If null, the modal will be in create mode. */ - data: Nullable; - onClose: () => void; + readonly data: Nullable; + readonly onClose: () => void; }; type FormData = Pick; diff --git a/packages/console/src/components/Markdown/index.module.scss b/packages/console/src/components/Markdown/index.module.scss index 5dba45df7d7..4e7b2216975 100644 --- a/packages/console/src/components/Markdown/index.module.scss +++ b/packages/console/src/components/Markdown/index.module.scss @@ -14,8 +14,7 @@ padding-inline-start: 4ch; > li { - margin-block-start: _.unit(2); - margin-block-end: _.unit(2); + margin-block: _.unit(2) _.unit(2); padding-inline-start: _.unit(1); } } @@ -24,8 +23,7 @@ padding-inline-start: 2ch; > li { - margin-block-start: _.unit(3); - margin-block-end: _.unit(3); + margin-block: _.unit(3) _.unit(3); padding-inline-start: _.unit(1); } } diff --git a/packages/console/src/components/Markdown/index.tsx b/packages/console/src/components/Markdown/index.tsx index 283ad944500..c8cf7c6eb97 100644 --- a/packages/console/src/components/Markdown/index.tsx +++ b/packages/console/src/components/Markdown/index.tsx @@ -20,8 +20,8 @@ import GithubRawImage from './components/GithubRawImage'; import * as styles from './index.module.scss'; type Props = { - className?: string; - children: string; + readonly className?: string; + readonly children: string; }; function Markdown({ className, children }: Props) { diff --git a/packages/console/src/components/MfaFactorName/index.tsx b/packages/console/src/components/MfaFactorName/index.tsx index 2fb3f57a553..73b89d16d52 100644 --- a/packages/console/src/components/MfaFactorName/index.tsx +++ b/packages/console/src/components/MfaFactorName/index.tsx @@ -10,7 +10,7 @@ const factorNameLabel: Record = { }; export type Props = { - type: MfaFactor; + readonly type: MfaFactor; }; function MfaFactorName({ type }: Props) { diff --git a/packages/console/src/components/MfaFactorTitle/index.tsx b/packages/console/src/components/MfaFactorTitle/index.tsx index 46cdadf814e..a32c32339f5 100644 --- a/packages/console/src/components/MfaFactorTitle/index.tsx +++ b/packages/console/src/components/MfaFactorTitle/index.tsx @@ -19,7 +19,7 @@ const factorIcon: Record = { }; type Props = MfaFactorNameProps & { - tooltip?: ReactNode; + readonly tooltip?: ReactNode; }; function MfaFactorTitle({ type, tooltip }: Props) { diff --git a/packages/console/src/components/MultiTextInputField/index.tsx b/packages/console/src/components/MultiTextInputField/index.tsx index c1a0ccb3947..69791ecaeff 100644 --- a/packages/console/src/components/MultiTextInputField/index.tsx +++ b/packages/console/src/components/MultiTextInputField/index.tsx @@ -9,7 +9,7 @@ import * as styles from './index.module.scss'; type Props = MultiTextInputProps & Pick & { - formFieldClassName?: FormFieldProps['className']; + readonly formFieldClassName?: FormFieldProps['className']; }; function MultiTextInputField({ diff --git a/packages/console/src/components/OpenExternalLink/index.tsx b/packages/console/src/components/OpenExternalLink/index.tsx index e076543f75c..c6e93e6c345 100644 --- a/packages/console/src/components/OpenExternalLink/index.tsx +++ b/packages/console/src/components/OpenExternalLink/index.tsx @@ -5,7 +5,7 @@ import IconButton from '@/ds-components/IconButton'; import { Tooltip } from '@/ds-components/Tip'; type Props = { - link: string; + readonly link: string; }; function OpenExternalLink({ link }: Props) { diff --git a/packages/console/src/components/OrganizationRolePermissionsAssignmentModal/index.tsx b/packages/console/src/components/OrganizationRolePermissionsAssignmentModal/index.tsx index a57702482d7..e39ba0c4194 100644 --- a/packages/console/src/components/OrganizationRolePermissionsAssignmentModal/index.tsx +++ b/packages/console/src/components/OrganizationRolePermissionsAssignmentModal/index.tsx @@ -27,9 +27,9 @@ const permissionTabs = { }; type Props = { - organizationRoleId: string; - isOpen: boolean; - onClose: () => void; + readonly organizationRoleId: string; + readonly isOpen: boolean; + readonly onClose: () => void; }; function OrganizationRolePermissionsAssignmentModal({ diff --git a/packages/console/src/components/OrganizationRolesSelect/index.tsx b/packages/console/src/components/OrganizationRolesSelect/index.tsx index 8a9bb7cab1d..affea189c52 100644 --- a/packages/console/src/components/OrganizationRolesSelect/index.tsx +++ b/packages/console/src/components/OrganizationRolesSelect/index.tsx @@ -11,9 +11,9 @@ import ThemedIcon from '../ThemedIcon'; import * as styles from './index.module.scss'; type RoleOptionProps = { - title?: string; - value: string; - size?: 'small' | 'large'; + readonly title?: string; + readonly value: string; + readonly size?: 'small' | 'large'; }; export function RoleOption({ title, value, size = 'small' }: RoleOptionProps) { @@ -26,10 +26,10 @@ export function RoleOption({ title, value, size = 'small' }: RoleOptionProps) { } type Props = { - value: Array>; - onChange: (value: Array>) => void; - keyword: string; - setKeyword: (keyword: string) => void; + readonly value: Array>; + readonly onChange: (value: Array>) => void; + readonly keyword: string; + readonly setKeyword: (keyword: string) => void; }; function OrganizationRolesSelect({ value, onChange, keyword, setKeyword }: Props) { diff --git a/packages/console/src/components/OrganizationScopesSelect/index.tsx b/packages/console/src/components/OrganizationScopesSelect/index.tsx index 9ad5e7303bf..ca96a799f49 100644 --- a/packages/console/src/components/OrganizationScopesSelect/index.tsx +++ b/packages/console/src/components/OrganizationScopesSelect/index.tsx @@ -6,10 +6,10 @@ import useSearchValues from '@/hooks/use-search-values'; import Breakable from '../Breakable'; type Props = { - value: Array>; - onChange: (value: Array>) => void; - keyword: string; - setKeyword: (keyword: string) => void; + readonly value: Array>; + readonly onChange: (value: Array>) => void; + readonly keyword: string; + readonly setKeyword: (keyword: string) => void; }; function OrganizationScopesSelect({ value, onChange, keyword, setKeyword }: Props) { diff --git a/packages/console/src/components/PageMeta/index.tsx b/packages/console/src/components/PageMeta/index.tsx index f7d6ebe650c..74c3f2f374d 100644 --- a/packages/console/src/components/PageMeta/index.tsx +++ b/packages/console/src/components/PageMeta/index.tsx @@ -3,7 +3,7 @@ import { Helmet } from 'react-helmet'; import { useTranslation } from 'react-i18next'; export type Props = { - titleKey: AdminConsoleKey | AdminConsoleKey[]; + readonly titleKey: AdminConsoleKey | AdminConsoleKey[]; }; function PageMeta({ titleKey }: Props) { diff --git a/packages/console/src/components/PermissionsTable/index.tsx b/packages/console/src/components/PermissionsTable/index.tsx index 89c2f574159..3097491f369 100644 --- a/packages/console/src/components/PermissionsTable/index.tsx +++ b/packages/console/src/components/PermissionsTable/index.tsx @@ -34,39 +34,39 @@ type SearchProps = { type Props = { /** List of permissions to be displayed in the table. */ - scopes?: ScopeResponse[]; + readonly scopes?: ScopeResponse[]; /** Whether the table is loading data or not. */ - isLoading: boolean; + readonly isLoading: boolean; /** Error message to be displayed when the table fails to load data. */ - errorMessage?: string; + readonly errorMessage?: string; /** The translation key of the create button. */ - createButtonTitle: AdminConsoleKey; + readonly createButtonTitle: AdminConsoleKey; /** Whether the table is read-only or not. * If true, the table will not display the create button and action buttons (editing & deletion). */ - isReadOnly?: boolean; + readonly isReadOnly?: boolean; /** Whether the API column is visible or not. * The API column displays the API resource that the permission belongs to. */ - isApiColumnVisible?: boolean; + readonly isApiColumnVisible?: boolean; /** Whether the create guide is visible or not. * If true, the table will display a placeholder guiding the user to create a new permission if no permissions are found. */ - isCreateGuideVisible?: boolean; + readonly isCreateGuideVisible?: boolean; /** Pagination related props, used to navigate through the permissions in the table. */ - pagination?: PaginationProps; + readonly pagination?: PaginationProps; /** Search related props, used to filter the permissions in the table. */ - search: SearchProps; + readonly search: SearchProps; /** Function that will be called when the create button is clicked. */ - createHandler: () => void; + readonly createHandler: () => void; /** Callback function that will be called when a permission is going to be deleted. */ - deleteHandler: (scope: ScopeResponse) => void; + readonly deleteHandler: (scope: ScopeResponse) => void; /** Function that will be called when the retry button is click. */ - retryHandler: () => void; + readonly retryHandler: () => void; /** Callback function that will be called when the permission is updated (edited). */ - onPermissionUpdated: () => void; + readonly onPermissionUpdated: () => void; /** Specify deletion related text */ - deletionText: { + readonly deletionText: { /** Delete button title in the action list */ actionButton: AdminConsoleKey; /** Confirmation content in the deletion confirmation modal */ diff --git a/packages/console/src/components/PlanDescription/index.tsx b/packages/console/src/components/PlanDescription/index.tsx index 3651799f880..2218228f869 100644 --- a/packages/console/src/components/PlanDescription/index.tsx +++ b/packages/console/src/components/PlanDescription/index.tsx @@ -12,7 +12,7 @@ const registeredPlanDescriptionPhrasesMap: Record< [ReservedPlanId.Pro]: 'pro_plan_description', }; -type Props = { planId: string }; +type Props = { readonly planId: string }; function PlanDescription({ planId }: Props) { const description = registeredPlanDescriptionPhrasesMap[planId]; diff --git a/packages/console/src/components/PlanName/index.tsx b/packages/console/src/components/PlanName/index.tsx index 51ffc9e524b..7e83bdf6c43 100644 --- a/packages/console/src/components/PlanName/index.tsx +++ b/packages/console/src/components/PlanName/index.tsx @@ -16,8 +16,8 @@ const registeredPlanNamePhraseMap: Record< }; type Props = { - name: string; - isTitleCase?: boolean; + readonly name: string; + readonly isTitleCase?: boolean; }; function PlanName({ name, isTitleCase = false }: Props) { diff --git a/packages/console/src/components/PlanUsage/index.tsx b/packages/console/src/components/PlanUsage/index.tsx index 2bfb361b65a..96fb6345b54 100644 --- a/packages/console/src/components/PlanUsage/index.tsx +++ b/packages/console/src/components/PlanUsage/index.tsx @@ -10,9 +10,9 @@ import { formatPeriod } from '@/utils/subscription'; import * as styles from './index.module.scss'; type Props = { - subscriptionUsage: SubscriptionUsage; - currentSubscription: Subscription; - currentPlan: SubscriptionPlan; + readonly subscriptionUsage: SubscriptionUsage; + readonly currentSubscription: Subscription; + readonly currentPlan: SubscriptionPlan; }; function PlanUsage({ subscriptionUsage, currentSubscription, currentPlan }: Props) { diff --git a/packages/console/src/components/ProgressBar/index.tsx b/packages/console/src/components/ProgressBar/index.tsx index 0aeed291354..25af66bc818 100644 --- a/packages/console/src/components/ProgressBar/index.tsx +++ b/packages/console/src/components/ProgressBar/index.tsx @@ -3,8 +3,8 @@ import classNames from 'classnames'; import * as styles from './index.module.scss'; type Props = { - currentStep: number; - totalSteps: number; + readonly currentStep: number; + readonly totalSteps: number; }; function ProgressBar({ currentStep, totalSteps }: Props) { diff --git a/packages/console/src/components/QuotaGuardFooter/index.tsx b/packages/console/src/components/QuotaGuardFooter/index.tsx index aabb79b0773..c5d57f0ded6 100644 --- a/packages/console/src/components/QuotaGuardFooter/index.tsx +++ b/packages/console/src/components/QuotaGuardFooter/index.tsx @@ -6,9 +6,9 @@ import useTenantPathname from '@/hooks/use-tenant-pathname'; import * as styles from './index.module.scss'; type Props = { - children: ReactNode; - isLoading?: boolean; - onClickUpgrade?: () => void; + readonly children: ReactNode; + readonly isLoading?: boolean; + readonly onClickUpgrade?: () => void; }; function QuotaGuardFooter({ children, isLoading, onClickUpgrade }: Props) { diff --git a/packages/console/src/components/RequestDataError/index.tsx b/packages/console/src/components/RequestDataError/index.tsx index 70aea3d742b..daed530f2c5 100644 --- a/packages/console/src/components/RequestDataError/index.tsx +++ b/packages/console/src/components/RequestDataError/index.tsx @@ -12,9 +12,9 @@ import useTheme from '@/hooks/use-theme'; import * as styles from './index.module.scss'; type Props = { - error: RequestError; - onRetry?: () => void; - className?: string; + readonly error: RequestError; + readonly onRetry?: () => void; + readonly className?: string; }; function RequestDataError({ error, onRetry, className }: Props) { diff --git a/packages/console/src/components/RoleScopesTransfer/components/ResourceItem/index.tsx b/packages/console/src/components/RoleScopesTransfer/components/ResourceItem/index.tsx index a870667242a..a0280753fbe 100644 --- a/packages/console/src/components/RoleScopesTransfer/components/ResourceItem/index.tsx +++ b/packages/console/src/components/RoleScopesTransfer/components/ResourceItem/index.tsx @@ -15,10 +15,10 @@ import SourceScopeItem from '../SourceScopeItem'; import * as styles from './index.module.scss'; type Props = { - resource: DetailedResourceResponse; - selectedScopes: ScopeResponse[]; - onSelectResource: (resource: DetailedResourceResponse) => void; - onSelectScope: (scope: ScopeResponse) => void; + readonly resource: DetailedResourceResponse; + readonly selectedScopes: ScopeResponse[]; + readonly onSelectResource: (resource: DetailedResourceResponse) => void; + readonly onSelectScope: (scope: ScopeResponse) => void; }; function ResourceItem({ resource, selectedScopes, onSelectResource, onSelectScope }: Props) { diff --git a/packages/console/src/components/RoleScopesTransfer/components/SourceScopeItem/index.tsx b/packages/console/src/components/RoleScopesTransfer/components/SourceScopeItem/index.tsx index 15be16d13c7..04f84802ae0 100644 --- a/packages/console/src/components/RoleScopesTransfer/components/SourceScopeItem/index.tsx +++ b/packages/console/src/components/RoleScopesTransfer/components/SourceScopeItem/index.tsx @@ -6,9 +6,9 @@ import { onKeyDownHandler } from '@/utils/a11y'; import * as styles from './index.module.scss'; type Props = { - scope: ScopeResponse; - isSelected: boolean; - onSelect: (scope: ScopeResponse) => void; + readonly scope: ScopeResponse; + readonly isSelected: boolean; + readonly onSelect: (scope: ScopeResponse) => void; }; function SourceScopeItem({ scope, scope: { name }, isSelected, onSelect }: Props) { diff --git a/packages/console/src/components/RoleScopesTransfer/components/SourceScopesBox/index.tsx b/packages/console/src/components/RoleScopesTransfer/components/SourceScopesBox/index.tsx index 0e1aab73d65..a67684e135c 100644 --- a/packages/console/src/components/RoleScopesTransfer/components/SourceScopesBox/index.tsx +++ b/packages/console/src/components/RoleScopesTransfer/components/SourceScopesBox/index.tsx @@ -19,10 +19,10 @@ import ResourceItem from '../ResourceItem'; import * as styles from './index.module.scss'; type Props = { - roleId?: string; - roleType: RoleType; - selectedScopes: ScopeResponse[]; - onChange: (value: ScopeResponse[]) => void; + readonly roleId?: string; + readonly roleType: RoleType; + readonly selectedScopes: ScopeResponse[]; + readonly onChange: (value: ScopeResponse[]) => void; }; function SourceScopesBox({ roleId, roleType, selectedScopes, onChange }: Props) { diff --git a/packages/console/src/components/RoleScopesTransfer/components/TargetScopeItem/index.tsx b/packages/console/src/components/RoleScopesTransfer/components/TargetScopeItem/index.tsx index 279edc32542..65793d4f2f5 100644 --- a/packages/console/src/components/RoleScopesTransfer/components/TargetScopeItem/index.tsx +++ b/packages/console/src/components/RoleScopesTransfer/components/TargetScopeItem/index.tsx @@ -6,8 +6,8 @@ import IconButton from '@/ds-components/IconButton'; import * as styles from './index.module.scss'; type Props = { - scope: ScopeResponse; - onDelete: (scope: ScopeResponse) => void; + readonly scope: ScopeResponse; + readonly onDelete: (scope: ScopeResponse) => void; }; function TargetScopeItem({ scope, onDelete }: Props) { diff --git a/packages/console/src/components/RoleScopesTransfer/components/TargetScopesBox/index.tsx b/packages/console/src/components/RoleScopesTransfer/components/TargetScopesBox/index.tsx index f539ed79cd9..c7edebe2562 100644 --- a/packages/console/src/components/RoleScopesTransfer/components/TargetScopesBox/index.tsx +++ b/packages/console/src/components/RoleScopesTransfer/components/TargetScopesBox/index.tsx @@ -8,8 +8,8 @@ import TargetScopeItem from '../TargetScopeItem'; import * as styles from './index.module.scss'; type Props = { - selectedScopes: ScopeResponse[]; - onChange: (value: ScopeResponse[]) => void; + readonly selectedScopes: ScopeResponse[]; + readonly onChange: (value: ScopeResponse[]) => void; }; function TargetScopesBox({ selectedScopes, onChange }: Props) { diff --git a/packages/console/src/components/RoleScopesTransfer/index.tsx b/packages/console/src/components/RoleScopesTransfer/index.tsx index 6f0e9478bfd..5baf6c1205e 100644 --- a/packages/console/src/components/RoleScopesTransfer/index.tsx +++ b/packages/console/src/components/RoleScopesTransfer/index.tsx @@ -12,10 +12,10 @@ import * as styles from './index.module.scss'; */ type Props = { - roleId?: string; - roleType: RoleType; - value: ScopeResponse[]; - onChange: (value: ScopeResponse[]) => void; + readonly roleId?: string; + readonly roleType: RoleType; + readonly value: ScopeResponse[]; + readonly onChange: (value: ScopeResponse[]) => void; }; function RoleScopesTransfer({ roleId, roleType, value, onChange }: Props) { diff --git a/packages/console/src/components/RolesTransfer/components/SourceRoleItem/index.tsx b/packages/console/src/components/RolesTransfer/components/SourceRoleItem/index.tsx index 976c4b89117..162f7683ff7 100644 --- a/packages/console/src/components/RolesTransfer/components/SourceRoleItem/index.tsx +++ b/packages/console/src/components/RolesTransfer/components/SourceRoleItem/index.tsx @@ -7,9 +7,9 @@ import { onKeyDownHandler } from '@/utils/a11y'; import * as styles from './index.module.scss'; type Props = { - role: RoleResponse; - isSelected: boolean; - onSelect: () => void; + readonly role: RoleResponse; + readonly isSelected: boolean; + readonly onSelect: () => void; }; function SourceRoleItem({ role, isSelected, onSelect }: Props) { diff --git a/packages/console/src/components/RolesTransfer/components/SourceRolesBox/index.tsx b/packages/console/src/components/RolesTransfer/components/SourceRolesBox/index.tsx index c1fd88b6b76..9fd8634d3ff 100644 --- a/packages/console/src/components/RolesTransfer/components/SourceRolesBox/index.tsx +++ b/packages/console/src/components/RolesTransfer/components/SourceRolesBox/index.tsx @@ -22,10 +22,10 @@ import SourceRoleItem from '../SourceRoleItem'; import * as styles from './index.module.scss'; type Props = { - entityId: string; - type: RoleType; - selectedRoles: RoleResponse[]; - onChange: (value: RoleResponse[]) => void; + readonly entityId: string; + readonly type: RoleType; + readonly selectedRoles: RoleResponse[]; + readonly onChange: (value: RoleResponse[]) => void; }; const pageSize = defaultPageSize; diff --git a/packages/console/src/components/RolesTransfer/components/TargetRoleItem/index.tsx b/packages/console/src/components/RolesTransfer/components/TargetRoleItem/index.tsx index 050d88ef773..9b31dc7477c 100644 --- a/packages/console/src/components/RolesTransfer/components/TargetRoleItem/index.tsx +++ b/packages/console/src/components/RolesTransfer/components/TargetRoleItem/index.tsx @@ -7,8 +7,8 @@ import IconButton from '@/ds-components/IconButton'; import * as styles from './index.module.scss'; type Props = { - role: RoleResponse; - onDelete: () => void; + readonly role: RoleResponse; + readonly onDelete: () => void; }; function TargetRoleItem({ role, onDelete }: Props) { diff --git a/packages/console/src/components/RolesTransfer/components/TargetRolesBox/index.tsx b/packages/console/src/components/RolesTransfer/components/TargetRolesBox/index.tsx index 27651bff2a0..47f83b283b0 100644 --- a/packages/console/src/components/RolesTransfer/components/TargetRolesBox/index.tsx +++ b/packages/console/src/components/RolesTransfer/components/TargetRolesBox/index.tsx @@ -8,8 +8,8 @@ import TargetRoleItem from '../TargetRoleItem'; import * as styles from './index.module.scss'; type Props = { - selectedRoles: RoleResponse[]; - onChange: (value: RoleResponse[]) => void; + readonly selectedRoles: RoleResponse[]; + readonly onChange: (value: RoleResponse[]) => void; }; function TargetRolesBox({ selectedRoles, onChange }: Props) { diff --git a/packages/console/src/components/RolesTransfer/index.tsx b/packages/console/src/components/RolesTransfer/index.tsx index dc4fda68b82..b11f7f9858a 100644 --- a/packages/console/src/components/RolesTransfer/index.tsx +++ b/packages/console/src/components/RolesTransfer/index.tsx @@ -8,10 +8,10 @@ import TargetRolesBox from './components/TargetRolesBox'; import * as styles from './index.module.scss'; type Props = { - entityId: string; - type: RoleType; - value: RoleResponse[]; - onChange: (value: RoleResponse[]) => void; + readonly entityId: string; + readonly type: RoleType; + readonly value: RoleResponse[]; + readonly onChange: (value: RoleResponse[]) => void; }; function RolesTransfer({ entityId, type, value, onChange }: Props) { diff --git a/packages/console/src/components/SignInExperiencePreview/components/ToggleUiThemeButton/index.tsx b/packages/console/src/components/SignInExperiencePreview/components/ToggleUiThemeButton/index.tsx index a12aaa21902..c0e9dbce37f 100644 --- a/packages/console/src/components/SignInExperiencePreview/components/ToggleUiThemeButton/index.tsx +++ b/packages/console/src/components/SignInExperiencePreview/components/ToggleUiThemeButton/index.tsx @@ -9,11 +9,11 @@ import type { Props as ButtonProps } from '@/ds-components/Button'; import * as styles from './index.module.scss'; type Props = { - value: Theme; - onToggle: (value: Theme) => void; - className?: string; - iconClassName?: string; - size?: ButtonProps['size']; + readonly value: Theme; + readonly onToggle: (value: Theme) => void; + readonly className?: string; + readonly iconClassName?: string; + readonly size?: ButtonProps['size']; }; function ToggleUiThemeButton({ diff --git a/packages/console/src/components/SignInExperiencePreview/index.tsx b/packages/console/src/components/SignInExperiencePreview/index.tsx index 726a2d8ac18..5d7e6bf305c 100644 --- a/packages/console/src/components/SignInExperiencePreview/index.tsx +++ b/packages/console/src/components/SignInExperiencePreview/index.tsx @@ -19,10 +19,10 @@ import { PreviewPlatform } from './types'; export { default as ToggleUiThemeButton } from './components/ToggleUiThemeButton'; type Props = { - platform: PreviewPlatform; - mode: Theme; - language?: LanguageTag; - signInExperience?: SignInExperience; + readonly platform: PreviewPlatform; + readonly mode: Theme; + readonly language?: LanguageTag; + readonly signInExperience?: SignInExperience; }; function SignInExperiencePreview({ platform, mode, language = 'en', signInExperience }: Props) { diff --git a/packages/console/src/components/SubmitFormChangesActionBar/index.tsx b/packages/console/src/components/SubmitFormChangesActionBar/index.tsx index d403c323508..7cf92fab9de 100644 --- a/packages/console/src/components/SubmitFormChangesActionBar/index.tsx +++ b/packages/console/src/components/SubmitFormChangesActionBar/index.tsx @@ -6,12 +6,12 @@ import Button from '@/ds-components/Button'; import * as styles from './index.module.scss'; type Props = { - isOpen: boolean; - isSubmitting: boolean; - onSubmit: () => Promise; - onDiscard: () => void; - confirmText?: AdminConsoleKey; - className?: string; + readonly isOpen: boolean; + readonly isSubmitting: boolean; + readonly onSubmit: () => Promise; + readonly onDiscard: () => void; + readonly confirmText?: AdminConsoleKey; + readonly className?: string; }; function SubmitFormChangesActionBar({ diff --git a/packages/console/src/components/SuccessRate/index.tsx b/packages/console/src/components/SuccessRate/index.tsx index de28de6e7d5..76feafa57a0 100644 --- a/packages/console/src/components/SuccessRate/index.tsx +++ b/packages/console/src/components/SuccessRate/index.tsx @@ -4,8 +4,8 @@ import { useTranslation } from 'react-i18next'; import Tag from '@/ds-components/Tag'; type Props = { - stats?: HookResponse['executionStats']; - isNumberOnly?: boolean; + readonly stats?: HookResponse['executionStats']; + readonly isNumberOnly?: boolean; }; function SuccessRate({ stats, isNumberOnly }: Props) { diff --git a/packages/console/src/components/TemplateTable/index.tsx b/packages/console/src/components/TemplateTable/index.tsx index e836199d740..b3996088fe1 100644 --- a/packages/console/src/components/TemplateTable/index.tsx +++ b/packages/console/src/components/TemplateTable/index.tsx @@ -16,19 +16,19 @@ type Props>; - columns: Array>; - pagination?: { + readonly name?: AdminConsoleKey; + readonly className?: string; + readonly rowIndexKey: TName; + readonly rowGroups: Array>; + readonly columns: Array>; + readonly pagination?: { page: number; totalCount: number; onChange: (page: number) => void; }; - isLoading?: boolean; - onAdd?: () => void; - errorMessage?: string; + readonly isLoading?: boolean; + readonly onAdd?: () => void; + readonly errorMessage?: string; }; export const pageSize = 10; diff --git a/packages/console/src/components/TenantEnvTag/index.tsx b/packages/console/src/components/TenantEnvTag/index.tsx index 7137606f561..b6eab6b48e2 100644 --- a/packages/console/src/components/TenantEnvTag/index.tsx +++ b/packages/console/src/components/TenantEnvTag/index.tsx @@ -7,10 +7,10 @@ import DynamicT from '@/ds-components/DynamicT'; import * as styles from './index.module.scss'; type Props = { - tag: TenantTag; - className?: string; - isAbbreviated?: boolean; - size?: 'default' | 'large'; + readonly tag: TenantTag; + readonly className?: string; + readonly isAbbreviated?: boolean; + readonly size?: 'default' | 'large'; }; type TenantTagMap = { diff --git a/packages/console/src/components/ThemedIcon/index.tsx b/packages/console/src/components/ThemedIcon/index.tsx index 77172a26cd0..b5dc9871b40 100644 --- a/packages/console/src/components/ThemedIcon/index.tsx +++ b/packages/console/src/components/ThemedIcon/index.tsx @@ -1,8 +1,8 @@ import * as styles from './index.module.scss'; type Props = { - for: SvgComponent; - size?: number; + readonly for: SvgComponent; + readonly size?: number; }; /** diff --git a/packages/console/src/components/Topbar/Contact/ContactModal/index.tsx b/packages/console/src/components/Topbar/Contact/ContactModal/index.tsx index 0a108c3332c..9e9fe42dd52 100644 --- a/packages/console/src/components/Topbar/Contact/ContactModal/index.tsx +++ b/packages/console/src/components/Topbar/Contact/ContactModal/index.tsx @@ -9,8 +9,8 @@ import { useContacts } from './hook'; import * as styles from './index.module.scss'; type Props = { - isOpen: boolean; - onCancel?: () => void; + readonly isOpen: boolean; + readonly onCancel?: () => void; }; function ContactModal({ isOpen, onCancel }: Props) { diff --git a/packages/console/src/components/Topbar/TenantSelector/TenantDropdownItem/TenantStatusTag.tsx b/packages/console/src/components/Topbar/TenantSelector/TenantDropdownItem/TenantStatusTag.tsx index 9bf86e05e85..394c31d99c7 100644 --- a/packages/console/src/components/Topbar/TenantSelector/TenantDropdownItem/TenantStatusTag.tsx +++ b/packages/console/src/components/Topbar/TenantSelector/TenantDropdownItem/TenantStatusTag.tsx @@ -4,9 +4,9 @@ import Tag from '@/ds-components/Tag'; import { type SubscriptionPlan } from '@/types/subscriptions'; type Props = { - tenantData: TenantResponse; - tenantPlan: SubscriptionPlan; - className?: string; + readonly tenantData: TenantResponse; + readonly tenantPlan: SubscriptionPlan; + readonly className?: string; }; function TenantStatusTag({ tenantData, tenantPlan, className }: Props) { diff --git a/packages/console/src/components/Topbar/TenantSelector/TenantDropdownItem/index.tsx b/packages/console/src/components/Topbar/TenantSelector/TenantDropdownItem/index.tsx index a3f54b17cd8..714dc97d39a 100644 --- a/packages/console/src/components/Topbar/TenantSelector/TenantDropdownItem/index.tsx +++ b/packages/console/src/components/Topbar/TenantSelector/TenantDropdownItem/index.tsx @@ -14,9 +14,9 @@ import TenantStatusTag from './TenantStatusTag'; import * as styles from './index.module.scss'; type Props = { - tenantData: TenantResponse; - isSelected: boolean; - onClick: () => void; + readonly tenantData: TenantResponse; + readonly isSelected: boolean; + readonly onClick: () => void; }; function TenantDropdownItem({ tenantData, isSelected, onClick }: Props) { diff --git a/packages/console/src/components/Topbar/TenantSelector/TenantInvitationDropdownItem/index.tsx b/packages/console/src/components/Topbar/TenantSelector/TenantInvitationDropdownItem/index.tsx index db01a0a2572..47d59d639c6 100644 --- a/packages/console/src/components/Topbar/TenantSelector/TenantInvitationDropdownItem/index.tsx +++ b/packages/console/src/components/Topbar/TenantSelector/TenantInvitationDropdownItem/index.tsx @@ -13,7 +13,7 @@ import Button from '@/ds-components/Button'; import * as styles from './index.module.scss'; type Props = { - data: { + readonly data: { id: string; organizationId: string; tenantName: string; diff --git a/packages/console/src/components/Topbar/UserInfo/SubMenu/index.tsx b/packages/console/src/components/Topbar/UserInfo/SubMenu/index.tsx index b1c127c11f6..d24c791c9a1 100644 --- a/packages/console/src/components/Topbar/UserInfo/SubMenu/index.tsx +++ b/packages/console/src/components/Topbar/UserInfo/SubMenu/index.tsx @@ -14,13 +14,13 @@ import { onKeyDownHandler } from '@/utils/a11y'; import * as styles from './index.module.scss'; type Props = { - className?: string; - menuItemClassName?: string; - icon?: ReactNode; - title: AdminConsoleKey; - options: Array>; - selectedOption: T; - onItemClick: (value: T) => void; + readonly className?: string; + readonly menuItemClassName?: string; + readonly icon?: ReactNode; + readonly title: AdminConsoleKey; + readonly options: Array>; + readonly selectedOption: T; + readonly onItemClick: (value: T) => void; }; const menuItemHeight = 40; diff --git a/packages/console/src/components/Topbar/index.tsx b/packages/console/src/components/Topbar/index.tsx index 8ebe0180139..635bf2df63e 100644 --- a/packages/console/src/components/Topbar/index.tsx +++ b/packages/console/src/components/Topbar/index.tsx @@ -13,7 +13,7 @@ import UserInfo from './UserInfo'; import * as styles from './index.module.scss'; type Props = { - className?: string; + readonly className?: string; }; function Topbar({ className }: Props) { diff --git a/packages/console/src/components/UnnamedTrans/index.tsx b/packages/console/src/components/UnnamedTrans/index.tsx index a71544540cc..40f2c394b2f 100644 --- a/packages/console/src/components/UnnamedTrans/index.tsx +++ b/packages/console/src/components/UnnamedTrans/index.tsx @@ -1,8 +1,8 @@ import { useTranslation } from 'react-i18next'; type Props = { - resource: Record; - className?: string; + readonly resource: Record; + readonly className?: string; }; function UnnamedTrans({ resource, className }: Props) { diff --git a/packages/console/src/components/UnsavedChangesAlertModal/index.tsx b/packages/console/src/components/UnsavedChangesAlertModal/index.tsx index 0920c6b12e7..b1674b23bbe 100644 --- a/packages/console/src/components/UnsavedChangesAlertModal/index.tsx +++ b/packages/console/src/components/UnsavedChangesAlertModal/index.tsx @@ -5,9 +5,9 @@ import { unstable_useBlocker as useBlocker, useLocation } from 'react-router-dom import ConfirmModal from '@/ds-components/ConfirmModal'; type Props = { - hasUnsavedChanges: boolean; - parentPath?: string; - onConfirm?: () => void; + readonly hasUnsavedChanges: boolean; + readonly parentPath?: string; + readonly onConfirm?: () => void; }; function UnsavedChangesAlertModal({ hasUnsavedChanges, parentPath, onConfirm }: Props) { diff --git a/packages/console/src/components/UserAccountInformation/index.tsx b/packages/console/src/components/UserAccountInformation/index.tsx index e1260b99887..4d7eeaec2e9 100644 --- a/packages/console/src/components/UserAccountInformation/index.tsx +++ b/packages/console/src/components/UserAccountInformation/index.tsx @@ -15,13 +15,13 @@ import * as modalStyles from '@/scss/modal.module.scss'; import * as styles from './index.module.scss'; type Props = { - user: UserProfileResponse; - password: string; - title: AdminConsoleKey; - onClose: () => void; - onConfirm?: () => void; - passwordLabel?: string; - confirmButtonTitle?: AdminConsoleKey; + readonly user: UserProfileResponse; + readonly password: string; + readonly title: AdminConsoleKey; + readonly onClose: () => void; + readonly onConfirm?: () => void; + readonly passwordLabel?: string; + readonly confirmButtonTitle?: AdminConsoleKey; }; function UserAccountInformation({ diff --git a/packages/console/src/components/UserAvatar/index.tsx b/packages/console/src/components/UserAvatar/index.tsx index de0494e256d..f13c92da494 100644 --- a/packages/console/src/components/UserAvatar/index.tsx +++ b/packages/console/src/components/UserAvatar/index.tsx @@ -13,13 +13,13 @@ import * as styles from './index.module.scss'; type UserInfo = Pick; type Props = { - className?: string; - size?: 'micro' | 'small' | 'medium' | 'large' | 'xlarge'; - user?: Partial; - hasTooltip?: boolean; + readonly className?: string; + readonly size?: 'micro' | 'small' | 'medium' | 'large' | 'xlarge'; + readonly user?: Partial; + readonly hasTooltip?: boolean; }; -function UserInfoTipContent({ user }: { user: Partial }) { +function UserInfoTipContent({ user }: { readonly user: Partial }) { const { t } = useTranslation(undefined, { keyPrefix: 'admin_console' }); const { name, primaryEmail, primaryPhone, username } = user; const itemsToDisplay = [ diff --git a/packages/console/src/components/UserInfoCard/index.tsx b/packages/console/src/components/UserInfoCard/index.tsx index a97f520a6c7..e3f535f1fdd 100644 --- a/packages/console/src/components/UserInfoCard/index.tsx +++ b/packages/console/src/components/UserInfoCard/index.tsx @@ -8,12 +8,12 @@ import UserAvatar from '../UserAvatar'; import * as styles from './index.module.scss'; type Props = { - className?: string; - user?: Partial< + readonly className?: string; + readonly user?: Partial< Pick & Pick >; - avatarSize?: 'medium' | 'large'; + readonly avatarSize?: 'medium' | 'large'; }; function UserInfoCard({ className, user, avatarSize = 'medium' }: Props) { diff --git a/packages/console/src/components/UserName/index.tsx b/packages/console/src/components/UserName/index.tsx index 94831d81c1c..7e54f63afd4 100644 --- a/packages/console/src/components/UserName/index.tsx +++ b/packages/console/src/components/UserName/index.tsx @@ -13,8 +13,8 @@ import UserAvatar from '../UserAvatar'; import * as styles from './index.module.scss'; type Props = { - userId: string; - isLink?: boolean; + readonly userId: string; + readonly isLink?: boolean; }; function UserName({ userId, isLink = false }: Props) { diff --git a/packages/console/src/components/VerificationCodeInput/index.tsx b/packages/console/src/components/VerificationCodeInput/index.tsx index bb0a47a1639..fc11b7d0bc0 100644 --- a/packages/console/src/components/VerificationCodeInput/index.tsx +++ b/packages/console/src/components/VerificationCodeInput/index.tsx @@ -6,12 +6,12 @@ import * as styles from './index.module.scss'; export const defaultLength = 6; type Props = { - name: string; - className?: string; - length?: number; - value: string[]; - error?: string; - onChange: (value: string[]) => void; + readonly name: string; + readonly className?: string; + readonly length?: number; + readonly value: string[]; + readonly error?: string; + readonly onChange: (value: string[]) => void; }; const isNumeric = (char: string) => /^\d+$/.test(char); diff --git a/packages/console/src/containers/AppBoundary/index.tsx b/packages/console/src/containers/AppBoundary/index.tsx index 88bd531a459..11387a2b1bc 100644 --- a/packages/console/src/containers/AppBoundary/index.tsx +++ b/packages/console/src/containers/AppBoundary/index.tsx @@ -5,7 +5,7 @@ import { useTranslation } from 'react-i18next'; import useUserPreferences from '@/hooks/use-user-preferences'; type Props = { - children: ReactNode; + readonly children: ReactNode; }; function AppBoundary({ children }: Props) { diff --git a/packages/console/src/containers/ConsoleContent/Sidebar/components/Item/index.tsx b/packages/console/src/containers/ConsoleContent/Sidebar/components/Item/index.tsx index 29a52d8c307..09141752225 100644 --- a/packages/console/src/containers/ConsoleContent/Sidebar/components/Item/index.tsx +++ b/packages/console/src/containers/ConsoleContent/Sidebar/components/Item/index.tsx @@ -10,11 +10,11 @@ import { getPath } from '../../utils'; import * as styles from './index.module.scss'; type Props = { - icon?: ReactNode; - titleKey: TFuncKey<'translation', 'admin_console.tabs'>; - isActive?: boolean; - modal?: (isOpen: boolean, onCancel: () => void) => ReactNode; - externalLink?: string; + readonly icon?: ReactNode; + readonly titleKey: TFuncKey<'translation', 'admin_console.tabs'>; + readonly isActive?: boolean; + readonly modal?: (isOpen: boolean, onCancel: () => void) => ReactNode; + readonly externalLink?: string; }; function Item({ icon, titleKey, modal, externalLink, isActive = false }: Props) { diff --git a/packages/console/src/containers/ConsoleContent/Sidebar/components/Section/index.tsx b/packages/console/src/containers/ConsoleContent/Sidebar/components/Section/index.tsx index 839f3de71ea..ef4315af6c9 100644 --- a/packages/console/src/containers/ConsoleContent/Sidebar/components/Section/index.tsx +++ b/packages/console/src/containers/ConsoleContent/Sidebar/components/Section/index.tsx @@ -3,8 +3,8 @@ import type { ReactNode } from 'react'; import * as styles from './index.module.scss'; type Props = { - title: string; - children: ReactNode; + readonly title: string; + readonly children: ReactNode; }; function Section({ children, title }: Props) { diff --git a/packages/console/src/containers/ErrorBoundary/index.tsx b/packages/console/src/containers/ErrorBoundary/index.tsx index 8eaedf76e2e..92fdf7818f6 100644 --- a/packages/console/src/containers/ErrorBoundary/index.tsx +++ b/packages/console/src/containers/ErrorBoundary/index.tsx @@ -29,8 +29,8 @@ const isOidcInvalidGrantError = (error: Error) => { }; type Props = { - children: ReactNode; - t: TFunction<'translation', 'admin_console'>; + readonly children: ReactNode; + readonly t: TFunction<'translation', 'admin_console'>; }; type State = { diff --git a/packages/console/src/contexts/AppConfirmModalProvider/index.tsx b/packages/console/src/contexts/AppConfirmModalProvider/index.tsx index 00d1fa04ec3..94ea8c16794 100644 --- a/packages/console/src/contexts/AppConfirmModalProvider/index.tsx +++ b/packages/console/src/contexts/AppConfirmModalProvider/index.tsx @@ -37,7 +37,7 @@ export const AppConfirmModalContext = createContext({ }); type Props = { - children?: React.ReactNode; + readonly children?: React.ReactNode; }; const defaultModalState: ConfirmModalState = { diff --git a/packages/console/src/contexts/AppDataProvider.tsx b/packages/console/src/contexts/AppDataProvider.tsx index f314034771b..8ae3112af09 100644 --- a/packages/console/src/contexts/AppDataProvider.tsx +++ b/packages/console/src/contexts/AppDataProvider.tsx @@ -8,7 +8,7 @@ import { adminTenantEndpoint } from '@/consts'; import { TenantsContext } from './TenantsProvider'; type Props = { - children: ReactNode; + readonly children: ReactNode; }; type AppData = { diff --git a/packages/console/src/contexts/AppThemeProvider/index.tsx b/packages/console/src/contexts/AppThemeProvider/index.tsx index f6225238d9a..bd3e6990aa4 100644 --- a/packages/console/src/contexts/AppThemeProvider/index.tsx +++ b/packages/console/src/contexts/AppThemeProvider/index.tsx @@ -10,7 +10,7 @@ import { appearanceModeGuard, DynamicAppearanceMode } from '@/types/appearance-m import * as styles from './index.module.scss'; type Props = { - children: ReactNode; + readonly children: ReactNode; }; type Context = { diff --git a/packages/console/src/contexts/SsoConnectorContextProvider/index.tsx b/packages/console/src/contexts/SsoConnectorContextProvider/index.tsx index a122b41e32b..d4ab8100047 100644 --- a/packages/console/src/contexts/SsoConnectorContextProvider/index.tsx +++ b/packages/console/src/contexts/SsoConnectorContextProvider/index.tsx @@ -6,8 +6,8 @@ export const SsoConnectorContext = createContext<{ }>({}); type Props = { - children: ReactNode; - ssoConnector: SsoConnectorWithProviderConfig; + readonly children: ReactNode; + readonly ssoConnector: SsoConnectorWithProviderConfig; }; function SsoConnectorContextProvider({ children, ssoConnector }: Props) { diff --git a/packages/console/src/contexts/SubscriptionDataProvider/index.tsx b/packages/console/src/contexts/SubscriptionDataProvider/index.tsx index d69b1ec2ee1..85b874af71c 100644 --- a/packages/console/src/contexts/SubscriptionDataProvider/index.tsx +++ b/packages/console/src/contexts/SubscriptionDataProvider/index.tsx @@ -22,8 +22,8 @@ export const SubscriptionDataContext = createContext({ }); type Props = { - subscriptionData: Context; - children: ReactNode; + readonly subscriptionData: Context; + readonly children: ReactNode; }; function SubscriptionDataProvider({ children, subscriptionData }: Props) { diff --git a/packages/console/src/contexts/TenantsProvider.tsx b/packages/console/src/contexts/TenantsProvider.tsx index 2a99686001a..641e473ef6a 100644 --- a/packages/console/src/contexts/TenantsProvider.tsx +++ b/packages/console/src/contexts/TenantsProvider.tsx @@ -78,7 +78,7 @@ export const TenantsContext = createContext({ }); type Props = { - children: ReactNode; + readonly children: ReactNode; }; /** diff --git a/packages/console/src/ds-components/ActionMenu/index.tsx b/packages/console/src/ds-components/ActionMenu/index.tsx index 5ad85c8a64e..bc610c33a02 100644 --- a/packages/console/src/ds-components/ActionMenu/index.tsx +++ b/packages/console/src/ds-components/ActionMenu/index.tsx @@ -55,7 +55,6 @@ function ActionMenu(props: Props) {
{hasButtonProps && (