Преглед изворни кода

Merge pull request #13223 from overleaf/ae-typescript-upgrade

Upgrade TypeScript to v5

GitOrigin-RevId: 55d98c0e8fdeb39c1297b4472f0d604e25af995b
Alf Eaton пре 3 година
родитељ
комит
5382178309

+ 2 - 2
libraries/o-error/package.json

@@ -26,7 +26,7 @@
     "prepublishOnly": "npm run --silent declaration:build && npm run --silent declaration:check",
     "test": "mocha",
     "test:coverage": "nyc --reporter=lcov --reporter=text-summary npm run test",
-    "typecheck": "tsc --allowJs --checkJs --noEmit --moduleResolution node --strict --target ES6 *.cjs test/**/*.js",
+    "typecheck": "tsc --allowJs --checkJs --noEmit --skipLibCheck --moduleResolution node --strict --target ES6 *.cjs test/**/*.js",
     "update-readme": "doc/update-readme.js",
     "format": "prettier --list-different $PWD/'**/*.js'",
     "format:fix": "prettier --write $PWD/'**/*.js'",
@@ -43,6 +43,6 @@
     "markdown-toc": "^1.2.0",
     "mocha": "^10.2.0",
     "nyc": "^15.1.0",
-    "typescript": "^4.5.4"
+    "typescript": "^5.0.4"
   }
 }

+ 1 - 1
libraries/overleaf-editor-core/package.json

@@ -20,7 +20,7 @@
     "chai": "^3.3.0",
     "istanbul": "^0.4.5",
     "mocha": "^10.2.0",
-    "typescript": "^4.5.5"
+    "typescript": "^5.0.4"
   },
   "dependencies": {
     "@overleaf/o-error": "*",

+ 80 - 19
package-lock.json

@@ -245,7 +245,20 @@
         "markdown-toc": "^1.2.0",
         "mocha": "^10.2.0",
         "nyc": "^15.1.0",
-        "typescript": "^4.5.4"
+        "typescript": "^5.0.4"
+      }
+    },
+    "libraries/o-error/node_modules/typescript": {
+      "version": "5.0.4",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
+      "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
+      "dev": true,
+      "bin": {
+        "tsc": "bin/tsc",
+        "tsserver": "bin/tsserver"
+      },
+      "engines": {
+        "node": ">=12.20"
       }
     },
     "libraries/object-persistor": {
@@ -290,7 +303,7 @@
         "chai": "^3.3.0",
         "istanbul": "^0.4.5",
         "mocha": "^10.2.0",
-        "typescript": "^4.5.5"
+        "typescript": "^5.0.4"
       }
     },
     "libraries/overleaf-editor-core/node_modules/chai": {
@@ -337,6 +350,19 @@
         "node": "*"
       }
     },
+    "libraries/overleaf-editor-core/node_modules/typescript": {
+      "version": "5.0.4",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
+      "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
+      "dev": true,
+      "bin": {
+        "tsc": "bin/tsc",
+        "tsserver": "bin/tsserver"
+      },
+      "engines": {
+        "node": ">=12.20"
+      }
+    },
     "libraries/overleaf-error-type": {
       "version": "1.0.0",
       "extraneous": true,
@@ -15306,16 +15332,15 @@
       }
     },
     "node_modules/cache-flow": {
-      "version": "1.8.0",
-      "resolved": "https://registry.npmjs.org/cache-flow/-/cache-flow-1.8.0.tgz",
-      "integrity": "sha512-52gsny8MHjkB8wpQF8iwd0ATxmZ4KKSakKhNezbHVCE4jo/5pbaR5j9SD5id63CYMwupP6j/Sx0cYYgy+dOL6g==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/cache-flow/-/cache-flow-1.9.0.tgz",
+      "integrity": "sha512-oGRBf4bCZbzyKAbZrfSqtfv9+rrDCtSiHihjjc1okmmvIYT0WqPHNq/yh/sDAUBT46RkpxZ4FqaGVrLBagnzgQ==",
       "dependencies": {
         "cluster": "^0.7.7",
         "date-fns": "^2.23.0",
         "ioredis": "^4.27.6",
         "lru-cache-for-clusters-as-promised": "^1.7.1",
-        "object-hash": "^2.2.0",
-        "typescript": "^4.3.5"
+        "object-hash": "^2.2.0"
       }
     },
     "node_modules/cache-point": {
@@ -37676,6 +37701,8 @@
       "version": "4.5.5",
       "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz",
       "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==",
+      "dev": true,
+      "peer": true,
       "bin": {
         "tsc": "bin/tsc",
         "tsserver": "bin/tsserver"
@@ -41542,7 +41569,7 @@
         "bowser": "^2.11.0",
         "bull": "^3.18.0",
         "bunyan": "^1.8.15",
-        "cache-flow": "^1.7.4",
+        "cache-flow": "^1.9.0",
         "celebrate": "^10.0.1",
         "chart.js": "^4.0.1",
         "chartjs-adapter-moment": "^1.0.1",
@@ -41742,7 +41769,7 @@
         "timekeeper": "^2.2.0",
         "to-string-loader": "^1.2.0",
         "tough-cookie": "^4.0.0",
-        "typescript": "^4.5.5",
+        "typescript": "^5.0.4",
         "val-loader": "^5.0.1",
         "webpack": "^5.83.1",
         "webpack-assets-manifest": "^5.1.0",
@@ -42723,6 +42750,19 @@
         "uuid": "dist/bin/uuid"
       }
     },
+    "services/web/node_modules/typescript": {
+      "version": "5.0.4",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
+      "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
+      "dev": true,
+      "bin": {
+        "tsc": "bin/tsc",
+        "tsserver": "bin/tsserver"
+      },
+      "engines": {
+        "node": ">=12.20"
+      }
+    },
     "services/web/node_modules/universalify": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
@@ -49443,7 +49483,15 @@
         "markdown-toc": "^1.2.0",
         "mocha": "^10.2.0",
         "nyc": "^15.1.0",
-        "typescript": "^4.5.4"
+        "typescript": "^5.0.4"
+      },
+      "dependencies": {
+        "typescript": {
+          "version": "5.0.4",
+          "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
+          "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
+          "dev": true
+        }
       }
     },
     "@overleaf/object-persistor": {
@@ -50284,7 +50332,7 @@
         "bull": "^3.18.0",
         "bunyan": "^1.8.15",
         "c8": "^7.2.0",
-        "cache-flow": "^1.7.4",
+        "cache-flow": "^1.9.0",
         "celebrate": "^10.0.1",
         "chai": "^4.3.6",
         "chai-as-promised": "^7.1.1",
@@ -50439,7 +50487,7 @@
         "to-string-loader": "^1.2.0",
         "tough-cookie": "^4.0.0",
         "tsscmp": "^1.0.6",
-        "typescript": "^4.5.5",
+        "typescript": "^5.0.4",
         "underscore": "^1.13.1",
         "utf-8-validate": "^5.0.2",
         "uuid": "^3.0.1",
@@ -51207,6 +51255,12 @@
             }
           }
         },
+        "typescript": {
+          "version": "5.0.4",
+          "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
+          "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
+          "dev": true
+        },
         "universalify": {
           "version": "0.1.2",
           "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
@@ -56499,16 +56553,15 @@
       }
     },
     "cache-flow": {
-      "version": "1.8.0",
-      "resolved": "https://registry.npmjs.org/cache-flow/-/cache-flow-1.8.0.tgz",
-      "integrity": "sha512-52gsny8MHjkB8wpQF8iwd0ATxmZ4KKSakKhNezbHVCE4jo/5pbaR5j9SD5id63CYMwupP6j/Sx0cYYgy+dOL6g==",
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/cache-flow/-/cache-flow-1.9.0.tgz",
+      "integrity": "sha512-oGRBf4bCZbzyKAbZrfSqtfv9+rrDCtSiHihjjc1okmmvIYT0WqPHNq/yh/sDAUBT46RkpxZ4FqaGVrLBagnzgQ==",
       "requires": {
         "cluster": "^0.7.7",
         "date-fns": "^2.23.0",
         "ioredis": "^4.27.6",
         "lru-cache-for-clusters-as-promised": "^1.7.1",
-        "object-hash": "^2.2.0",
-        "typescript": "^4.3.5"
+        "object-hash": "^2.2.0"
       }
     },
     "cache-point": {
@@ -68539,7 +68592,7 @@
         "istanbul": "^0.4.5",
         "lodash": "^4.17.19",
         "mocha": "^10.2.0",
-        "typescript": "^4.5.5"
+        "typescript": "^5.0.4"
       },
       "dependencies": {
         "chai": {
@@ -68575,6 +68628,12 @@
           "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz",
           "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=",
           "dev": true
+        },
+        "typescript": {
+          "version": "5.0.4",
+          "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
+          "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
+          "dev": true
         }
       }
     },
@@ -73984,7 +74043,9 @@
     "typescript": {
       "version": "4.5.5",
       "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz",
-      "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA=="
+      "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==",
+      "dev": true,
+      "peer": true
     },
     "typical": {
       "version": "2.6.1",

+ 1 - 0
services/web/frontend/js/features/user-content-domain-access-check/index.ts

@@ -267,6 +267,7 @@ window.addEventListener('online', () => {
 try {
   // Note: navigator.connection is not available on Firefox and Safari.
   // Docs: https://developer.mozilla.org/en-US/docs/Web/API/NetworkInformation
+  // @ts-ignore
   navigator.connection.addEventListener('change', () => {
     // The network changed. Schedule another check for it.
     accessCheckStatus = ACCESS_CHECK_PENDING

+ 2 - 2
services/web/frontend/js/shared/components/controlled-dropdown.tsx

@@ -40,12 +40,12 @@ const ControlledDropdown: FC<ControlledDropdownProps> = ({
 
         // Dropdown.Menu
         if ('open' in child.props) {
-          return cloneElement(child, { open: dropdownProps.open })
+          return cloneElement<any>(child, { open: dropdownProps.open })
         }
 
         // Overlay
         if ('show' in child.props) {
-          return cloneElement(child, { show: dropdownProps.open })
+          return cloneElement<any>(child, { show: dropdownProps.open })
         }
 
         // anything else

+ 2 - 2
services/web/package.json

@@ -139,7 +139,7 @@
     "bowser": "^2.11.0",
     "bull": "^3.18.0",
     "bunyan": "^1.8.15",
-    "cache-flow": "^1.7.4",
+    "cache-flow": "^1.9.0",
     "celebrate": "^10.0.1",
     "chart.js": "^4.0.1",
     "chartjs-adapter-moment": "^1.0.1",
@@ -339,7 +339,7 @@
     "timekeeper": "^2.2.0",
     "to-string-loader": "^1.2.0",
     "tough-cookie": "^4.0.0",
-    "typescript": "^4.5.5",
+    "typescript": "^5.0.4",
     "val-loader": "^5.0.1",
     "webpack": "^5.83.1",
     "webpack-assets-manifest": "^5.1.0",

+ 2 - 1
services/web/test/frontend/features/source-editor/helpers/active-editor-line.ts

@@ -17,8 +17,9 @@ export const activeEditorLine = () => {
     }
 
     // use the parent element if this is a node, e.g. text
-    const activeElement =
+    const activeElement = (
       'closest' in activeNode ? activeNode : activeNode.parentElement
+    ) as HTMLElement | undefined
 
     return cy.wrap(activeElement?.closest('.cm-line'))
   })

+ 2 - 1
services/web/tsconfig.json

@@ -22,5 +22,6 @@
     "modules/**/stories/**/*.*",
     "cypress",
     "types"
-  ]
+  ],
+  "exclude": ["**/*.min.js"]
 }