chore: upgrade typescript to 5.4 (#35181)

## Description
Upgrade Typescript from 4.9.5 to 5.4

Upgrading to 5.5 is not possible until we upgrade colors.js lib. It will
be done in separate PR
More details here
https://github.com/color-js/color.js/issues/560#issuecomment-2182819685

## Automation

/ok-to-test tags="@tag.All"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/10163124159>
> Commit: 8d2e93f2e2913e715686ccb058d3efddd55aabc9
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=10163124159&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Tue, 30 Jul 2024 14:11:42 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

- **New Features**
- Updated TypeScript dependency to the latest version (5.4), enhancing
overall functionality with potential new features and improvements.

- **Improvements**
- Enhanced type safety by refining the `isString` function, allowing
better type inference and preventing runtime errors.
- Improved comments and annotations in the `indirectEval` function for
better clarity on its usage and intent.
- Corrected typographical errors in error handling logic across multiple
controllers, improving reliability in error messaging.
- Updated export style for `IconNames` to clarify its purpose as a type,
enhancing developer experience.

- **Configuration Changes**
- Updated Jest configurations to better support ECMAScript Modules
(ESM), improving compatibility and allowing for more flexible module
handling.
- Adjusted TypeScript configuration to enhance module handling and
compatibility.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
Ilia 2024-07-30 16:15:48 +02:00 committed by GitHub
parent 08fda97074
commit c7a7c3fa3f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
19 changed files with 92 additions and 132 deletions

View File

@ -235,7 +235,7 @@
"to-json-schema": "^0.2.5",
"toposort": "^2.0.2",
"tslib": "^2.3.1",
"typescript": "4.9.5",
"typescript": "5.4",
"unescape-js": "^1.1.4",
"url-search-params-polyfill": "^8.0.0",
"uuid": "^9.0.0",
@ -373,7 +373,7 @@
"redux-devtools-extension": "^2.13.8",
"redux-mock-store": "^1.5.4",
"redux-saga-test-plan": "^4.0.6",
"ts-jest": "27.0.0",
"ts-jest": "29.1.0",
"ts-jest-mock-import-meta": "^0.12.0",
"ts-loader": "^9.4.1",
"ts-node": "^10.9.1",

View File

@ -28,7 +28,7 @@
"rollup-plugin-generate-package-json": "^3.2.0",
"rollup-plugin-peer-deps-external": "^2.2.4",
"rollup-plugin-typescript2": "^0.32.0",
"typescript": "4.5.5",
"typescript": "5.4",
"unescape-js": "^1.1.4"
},
"devDependencies": {
@ -37,6 +37,6 @@
"@typescript-eslint/eslint-plugin": "^5.25.0",
"@typescript-eslint/parser": "^5.25.0",
"jest": "29.0.3",
"ts-jest": "29.0.1"
"ts-jest": "29.1.0"
}
}

View File

@ -5,7 +5,15 @@ module.exports = {
setupFilesAfterEnv: ["<rootDir>/jest.setup.js"], // Optional: Additional setup
testEnvironment: "jsdom",
transform: {
"^.+\\.(ts|tsx)$": "ts-jest", // Use ts-jest for transforming TypeScript files
"^.+\\.(ts|tsx)$": [
"ts-jest",
{
useESM: true,
tsconfig: {
verbatimModuleSyntax: false,
},
},
], // Use ts-jest for transforming TypeScript files
"\\.(svg)$": "<rootDir>/fileTransformer.js", // Create this file for SVG handling (see below)
},
moduleNameMapper: {

View File

@ -18,4 +18,4 @@ export type IconProps = {
wrapperColor?: string;
} & React.HTMLAttributes<HTMLSpanElement>;
export { IconNames };
export type { IconNames };

View File

@ -1,5 +1,15 @@
const { globals } = require("@design-system/widgets-old/jest.config");
module.exports = {
preset: "ts-jest",
roots: ["<rootDir>/src"],
testEnvironment: "jsdom",
globals: {
"ts-jest": {
useESM: true,
tsconfig: {
verbatimModuleSyntax: false,
},
},
},
};

View File

@ -6,4 +6,12 @@ module.exports = {
"\\.(css)$": "<rootDir>../../../test/__mocks__/styleMock.js",
"@design-system/widgets": "<rootDir>/src/",
},
globals: {
"ts-jest": {
useESM: true,
tsconfig: {
verbatimModuleSyntax: false,
},
},
},
};

View File

@ -1,6 +1,14 @@
module.exports = {
transform: {
"^.+\\.(png|js|ts|tsx)$": "ts-jest",
"^.+\\.(png|js|ts|tsx)$": [
"ts-jest",
{
useESM: true,
tsconfig: {
verbatimModuleSyntax: false,
},
},
],
},
verbose: true,
};

View File

@ -21,7 +21,7 @@
"rollup-plugin-generate-package-json": "^3.2.0",
"rollup-plugin-peer-deps-external": "^2.2.4",
"rollup-plugin-typescript2": "^0.32.0",
"typescript": "4.5.5"
"typescript": "5.4"
},
"devDependencies": {
"@rollup/plugin-json": "^6.0.0",

View File

@ -35,8 +35,8 @@
"esbuild": "^0.19.4",
"jest": "^29.3.1",
"supertest": "^6.3.3",
"ts-jest": "^29.0.3",
"ts-jest": "29.1.0",
"tsc-alias": "^1.8.2",
"typescript": "4.9.5"
"typescript": "5.4"
}
}

View File

@ -38,7 +38,7 @@ export default class AstController extends BaseController {
} catch (err) {
return super.sendError(
res,
super.serverErrorMessaage,
this.serverErrorMessage,
[err.message],
StatusCodes.INTERNAL_SERVER_ERROR,
);
@ -65,7 +65,7 @@ export default class AstController extends BaseController {
} catch (err) {
return super.sendError(
res,
super.serverErrorMessaage,
this.serverErrorMessage,
[err.message],
StatusCodes.INTERNAL_SERVER_ERROR,
);
@ -93,7 +93,7 @@ export default class AstController extends BaseController {
} catch (err) {
return super.sendError(
res,
super.serverErrorMessaage,
this.serverErrorMessage,
[err.message],
StatusCodes.INTERNAL_SERVER_ERROR,
);

View File

@ -21,7 +21,7 @@ interface ResponseData {
}
export default class BaseController {
serverErrorMessaage = "Something went wrong";
serverErrorMessage = "Something went wrong";
sendResponse(
response: Response,
result?: unknown,

View File

@ -15,7 +15,7 @@ export default class DSLController extends BaseController {
} catch (err) {
return super.sendError(
res,
super.serverErrorMessaage,
this.serverErrorMessage,
[err.message],
StatusCodes.INTERNAL_SERVER_ERROR,
);
@ -28,7 +28,7 @@ export default class DSLController extends BaseController {
} catch (err) {
return super.sendError(
res,
super.serverErrorMessaage,
this.serverErrorMessage,
[err.message],
StatusCodes.INTERNAL_SERVER_ERROR,
);

View File

@ -14,7 +14,7 @@ export default class HealthCheckController extends BaseController {
} catch (err) {
return super.sendError(
res,
super.serverErrorMessaage,
this.serverErrorMessage,
[err.message],
StatusCodes.INTERNAL_SERVER_ERROR,
);

View File

@ -55,6 +55,7 @@ function DocsSearchModal({
className={`${className}`}
data-testid="t--global-search-modal"
>
{/* @ts-expect-error Figure out how to pass string to constant className */}
<ModalBody className={`${className}`}>{children}</ModalBody>
</StyledDocsSearchModal>
</Modal>

View File

@ -351,6 +351,7 @@ function GitConnection({ isImport }: Props) {
return (
<>
{/* @ts-expect-error Figure out how to pass string to constant className */}
<ModalBody className={Classes.GIT_SYNC_MODAL}>
<Container
data-testid="t--git-connection-container"

View File

@ -524,7 +524,7 @@ export const removeFalsyEntries = (arr: any[]): any[] => {
* ['Pawan', 'Goku'] -> false
* { name: "Pawan"} -> false
*/
export const isString = (str: any) => {
export const isString = (str: any): str is string => {
return typeof str === "string" || str instanceof String;
};

View File

@ -1,5 +1,5 @@
export default function indirectEval(script: string) {
/* Indirect eval to prevent local scope access.
Ref. - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval#description */
// @ts-expect-error We want evaluation to be done only on global scope and shouldn't have access to any local scope variable.
// Ref. - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval#description
return (1, eval)(script);
}

View File

@ -32,7 +32,7 @@
"sourceMap": true,
"baseUrl": "./src",
"noFallthroughCasesInSwitch": true,
"importsNotUsedAsValues": "error"
"verbatimModuleSyntax": true
},
"include": ["./src/**/*", "./packages"],
"exclude": ["./packages/rts", "**/node_modules", "**/.*/"]

View File

@ -8615,8 +8615,8 @@ __metadata:
rollup-plugin-generate-package-json: ^3.2.0
rollup-plugin-peer-deps-external: ^2.2.4
rollup-plugin-typescript2: ^0.32.0
ts-jest: 29.0.1
typescript: 4.5.5
ts-jest: 29.1.0
typescript: 5.4
unescape-js: ^1.1.4
languageName: unknown
linkType: soft
@ -8637,7 +8637,7 @@ __metadata:
rollup-plugin-peer-deps-external: ^2.2.4
rollup-plugin-typescript2: ^0.32.0
ts-jest: ^29.1.0
typescript: 4.5.5
typescript: 5.4
languageName: unknown
linkType: soft
@ -13174,9 +13174,9 @@ __metadata:
socket.io-adapter: ^2.4.0
source-map-support: ^0.5.19
supertest: ^6.3.3
ts-jest: ^29.0.3
ts-jest: 29.1.0
tsc-alias: ^1.8.2
typescript: 4.9.5
typescript: 5.4
languageName: unknown
linkType: soft
@ -13491,12 +13491,12 @@ __metadata:
tinycolor2: ^1.4.2
to-json-schema: ^0.2.5
toposort: ^2.0.2
ts-jest: 27.0.0
ts-jest: 29.1.0
ts-jest-mock-import-meta: ^0.12.0
ts-loader: ^9.4.1
ts-node: ^10.9.1
tslib: ^2.3.1
typescript: 4.9.5
typescript: 5.4
unescape-js: ^1.1.4
url-search-params-polyfill: ^8.0.0
uuid: ^9.0.0
@ -14892,7 +14892,7 @@ __metadata:
languageName: node
linkType: hard
"buffer-from@npm:1.x, buffer-from@npm:^1.0.0":
"buffer-from@npm:^1.0.0":
version: 1.1.2
resolution: "buffer-from@npm:1.1.2"
checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb
@ -23714,7 +23714,7 @@ __metadata:
languageName: node
linkType: hard
"jest-util@npm:^27.0.0, jest-util@npm:^27.5.1":
"jest-util@npm:^27.5.1":
version: 27.5.1
resolution: "jest-util@npm:27.5.1"
dependencies:
@ -24802,7 +24802,7 @@ __metadata:
languageName: node
linkType: hard
"lodash@npm:*, lodash@npm:4.x, lodash@npm:^4, lodash@npm:^4.17.10, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.7.0, lodash@npm:~4.17.21":
"lodash@npm:*, lodash@npm:^4, lodash@npm:^4.17.10, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.7.0, lodash@npm:~4.17.21":
version: 4.17.21
resolution: "lodash@npm:4.17.21"
checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7
@ -26000,15 +26000,6 @@ __metadata:
languageName: node
linkType: hard
"mkdirp@npm:1.x, mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4":
version: 1.0.4
resolution: "mkdirp@npm:1.0.4"
bin:
mkdirp: bin/cmd.js
checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f
languageName: node
linkType: hard
"mkdirp@npm:^0.5.1, mkdirp@npm:^0.5.5, mkdirp@npm:~0.5.1":
version: 0.5.6
resolution: "mkdirp@npm:0.5.6"
@ -26020,6 +26011,15 @@ __metadata:
languageName: node
linkType: hard
"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4":
version: 1.0.4
resolution: "mkdirp@npm:1.0.4"
bin:
mkdirp: bin/cmd.js
checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f
languageName: node
linkType: hard
"mochawesome-merge@npm:^4.2.1":
version: 4.3.0
resolution: "mochawesome-merge@npm:4.3.0"
@ -34225,63 +34225,7 @@ __metadata:
languageName: node
linkType: hard
"ts-jest@npm:27.0.0":
version: 27.0.0
resolution: "ts-jest@npm:27.0.0"
dependencies:
bs-logger: 0.x
buffer-from: 1.x
fast-json-stable-stringify: 2.x
jest-util: ^27.0.0
json5: 2.x
lodash: 4.x
make-error: 1.x
mkdirp: 1.x
semver: 7.x
yargs-parser: 20.x
peerDependencies:
jest: ^27.0.0
typescript: ">=3.8 <5.0"
bin:
ts-jest: cli.js
checksum: 02ef5ed2d444bb003f8e6bef1cf0fb1e45446f80a94e2673dd6a2c8ae35ae80b668c6ba09962add2962a27258dd79a67dd4cb062358769749d74ba9a81caad2c
languageName: node
linkType: hard
"ts-jest@npm:29.0.1":
version: 29.0.1
resolution: "ts-jest@npm:29.0.1"
dependencies:
bs-logger: 0.x
fast-json-stable-stringify: 2.x
jest-util: ^29.0.0
json5: ^2.2.1
lodash.memoize: 4.x
make-error: 1.x
semver: 7.x
yargs-parser: ^21.0.1
peerDependencies:
"@babel/core": ">=7.0.0-beta.0 <8"
"@jest/types": ^29.0.0
babel-jest: ^29.0.0
jest: ^29.0.0
typescript: ">=4.3"
peerDependenciesMeta:
"@babel/core":
optional: true
"@jest/types":
optional: true
babel-jest:
optional: true
esbuild:
optional: true
bin:
ts-jest: cli.js
checksum: f126675beb0d103d440b0297dc331ce37ba0f1e1a8002f4e97bfeb9043cf21b4de03deebf11ac1f08b7e4978d87f6a1c71e398b1c2f8535df3b684338786408e
languageName: node
linkType: hard
"ts-jest@npm:^29.0.3, ts-jest@npm:^29.1.0":
"ts-jest@npm:29.1.0, ts-jest@npm:^29.1.0":
version: 29.1.0
resolution: "ts-jest@npm:29.1.0"
dependencies:
@ -34680,43 +34624,23 @@ __metadata:
languageName: node
linkType: hard
"typescript@npm:4.5.5":
version: 4.5.5
resolution: "typescript@npm:4.5.5"
"typescript@npm:5.4":
version: 5.4.5
resolution: "typescript@npm:5.4.5"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 506f4c919dc8aeaafa92068c997f1d213b9df4d9756d0fae1a1e7ab66b585ab3498050e236113a1c9e57ee08c21ec6814ca7a7f61378c058d79af50a4b1f5a5e
checksum: 53c879c6fa1e3bcb194b274d4501ba1985894b2c2692fa079db03c5a5a7140587a1e04e1ba03184605d35f439b40192d9e138eb3279ca8eee313c081c8bcd9b0
languageName: node
linkType: hard
"typescript@npm:4.9.5":
version: 4.9.5
resolution: "typescript@npm:4.9.5"
"typescript@patch:typescript@5.4#~builtin<compat/typescript>":
version: 5.4.5
resolution: "typescript@patch:typescript@npm%3A5.4.5#~builtin<compat/typescript>::version=5.4.5&hash=77c9e2"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: ee000bc26848147ad423b581bd250075662a354d84f0e06eb76d3b892328d8d4440b7487b5a83e851b12b255f55d71835b008a66cbf8f255a11e4400159237db
languageName: node
linkType: hard
"typescript@patch:typescript@4.5.5#~builtin<compat/typescript>":
version: 4.5.5
resolution: "typescript@patch:typescript@npm%3A4.5.5#~builtin<compat/typescript>::version=4.5.5&hash=bcec9a"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 858c61fa63f7274ca4aaaffeced854d550bf416cff6e558c4884041b3311fb662f476f167cf5c9f8680c607239797e26a2ee0bcc6467fbc05bfcb218e1c6c671
languageName: node
linkType: hard
"typescript@patch:typescript@4.9.5#~builtin<compat/typescript>":
version: 4.9.5
resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin<compat/typescript>::version=4.9.5&hash=289587"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 1f8f3b6aaea19f0f67cba79057674ba580438a7db55057eb89cc06950483c5d632115c14077f6663ea76fd09fce3c190e6414bb98582ec80aa5a4eaf345d5b68
checksum: 2373c693f3b328f3b2387c3efafe6d257b057a142f9a79291854b14ff4d5367d3d730810aee981726b677ae0fd8329b23309da3b6aaab8263dbdccf1da07a3ba
languageName: node
linkType: hard
@ -36542,13 +36466,6 @@ __metadata:
languageName: node
linkType: hard
"yargs-parser@npm:20.x, yargs-parser@npm:^20.2.2":
version: 20.2.9
resolution: "yargs-parser@npm:20.2.9"
checksum: 8bb69015f2b0ff9e17b2c8e6bfe224ab463dd00ca211eece72a4cd8a906224d2703fb8a326d36fdd0e68701e201b2a60ed7cf81ce0fd9b3799f9fe7745977ae3
languageName: node
linkType: hard
"yargs-parser@npm:^15.0.1":
version: 15.0.1
resolution: "yargs-parser@npm:15.0.1"
@ -36569,6 +36486,13 @@ __metadata:
languageName: node
linkType: hard
"yargs-parser@npm:^20.2.2":
version: 20.2.9
resolution: "yargs-parser@npm:20.2.9"
checksum: 8bb69015f2b0ff9e17b2c8e6bfe224ab463dd00ca211eece72a4cd8a906224d2703fb8a326d36fdd0e68701e201b2a60ed7cf81ce0fd9b3799f9fe7745977ae3
languageName: node
linkType: hard
"yargs-parser@npm:^21.0.1, yargs-parser@npm:^21.1.1":
version: 21.1.1
resolution: "yargs-parser@npm:21.1.1"