From 55fbf38b72519f6671b0b4610767c5e4993e22a2 Mon Sep 17 00:00:00 2001 From: BaboonKing Date: Fri, 2 Feb 2024 11:09:59 +0800 Subject: [PATCH 1/5] feat: supported type of vue@2.7+ --- npm/vue2/package.json | 2 +- npm/vue2/src/index.ts | 3 ++- yarn.lock | 63 ++++++++++++++++++++++++++++--------------- 3 files changed, 44 insertions(+), 24 deletions(-) diff --git a/npm/vue2/package.json b/npm/vue2/package.json index 22348ad88aba..f83c37347226 100644 --- a/npm/vue2/package.json +++ b/npm/vue2/package.json @@ -19,7 +19,7 @@ "@vue/test-utils": "^1.3.1", "tslib": "^2.1.0", "typescript": "^4.7.4", - "vue": "2.6.12" + "vue": "2.7.16" }, "peerDependencies": { "cypress": ">=4.5.0", diff --git a/npm/vue2/src/index.ts b/npm/vue2/src/index.ts index 7b8c33364aea..c5c7a6c5541a 100644 --- a/npm/vue2/src/index.ts +++ b/npm/vue2/src/index.ts @@ -11,6 +11,7 @@ import { setupHooks, checkForRemovedStyleOptions, } from '@cypress/mount-utils' +import { ComponentPublicInstanceConstructor } from 'vue/types/v3-component-public-instance' const defaultOptions: (keyof MountOptions)[] = [ 'vue', @@ -119,7 +120,7 @@ const resetStoreVM = (Vue, { store }) => { * ^^^^^ this type * mount(Hello) */ -type VueComponent = Vue.ComponentOptions | Vue.VueConstructor +type VueComponent = Vue.ComponentOptions | Vue.VueConstructor | ComponentPublicInstanceConstructor /** * Options to pass to the component when creating it, like diff --git a/yarn.lock b/yarn.lock index f02eb247e263..d60a42b69d6f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1693,11 +1693,16 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.6.tgz#043b9aa3c303c0722e5377fef9197f4cf1796549" integrity sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q== -"@babel/parser@7.23.0", "@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.15.4", "@babel/parser@^7.15.8", "@babel/parser@^7.16.4", "@babel/parser@^7.16.5", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.22.7", "@babel/parser@^7.23.0", "@babel/parser@^7.6.0", "@babel/parser@^7.7.0", "@babel/parser@^7.9.6": +"@babel/parser@7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.15.4", "@babel/parser@^7.15.8", "@babel/parser@^7.16.4", "@babel/parser@^7.16.5", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.22.7", "@babel/parser@^7.23.0", "@babel/parser@^7.23.5", "@babel/parser@^7.6.0", "@babel/parser@^7.7.0", "@babel/parser@^7.9.6": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" + integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e" @@ -8503,6 +8508,17 @@ "@vue/compiler-core" "3.2.47" "@vue/shared" "3.2.47" +"@vue/compiler-sfc@2.7.16": + version "2.7.16" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz#ff81711a0fac9c68683d8bb00b63f857de77dc83" + integrity sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg== + dependencies: + "@babel/parser" "^7.23.5" + postcss "^8.4.14" + source-map "^0.6.1" + optionalDependencies: + prettier "^1.18.2 || ^2.0.0" + "@vue/compiler-sfc@3.2.47", "@vue/compiler-sfc@^3.2.20", "@vue/compiler-sfc@^3.2.31", "@vue/compiler-sfc@^3.2.47": version "3.2.47" resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz#1bdc36f6cdc1643f72e2c397eb1a398f5004ad3d" @@ -13019,10 +13035,10 @@ csstype@^2.6.8: resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.17.tgz#4cf30eb87e1d1a005d8b6510f95292413f6a1c0e" integrity sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A== -csstype@^3.0.2: - version "3.0.7" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.7.tgz#2a5fb75e1015e84dd15692f71e89a1450290950b" - integrity sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g== +csstype@^3.0.2, csstype@^3.1.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== cyclist@^1.0.1: version "1.0.1" @@ -22380,10 +22396,10 @@ nanoid@3.3.4: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== -nanoid@^3.3.6: - version "3.3.6" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== nanomatch@^1.2.9: version "1.2.13" @@ -24882,12 +24898,12 @@ postcss@^7.0.11, postcss@^7.0.18, postcss@^7.0.26, postcss@^7.0.32: picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.1.10, postcss@^8.2.14, postcss@^8.2.7, postcss@^8.4.21, postcss@^8.4.22, postcss@^8.4.23, postcss@^8.4.27: - version "8.4.27" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057" - integrity sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ== +postcss@^8.1.10, postcss@^8.2.14, postcss@^8.2.7, postcss@^8.4.14, postcss@^8.4.21, postcss@^8.4.22, postcss@^8.4.23, postcss@^8.4.27: + version "8.4.33" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" + integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== dependencies: - nanoid "^3.3.6" + nanoid "^3.3.7" picocolors "^1.0.0" source-map-js "^1.0.2" @@ -24945,10 +24961,10 @@ prettier@2.5.1: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== -prettier@^2.0.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" - integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== +"prettier@^1.18.2 || ^2.0.0", prettier@^2.0.1: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== pretty-bytes@^5.6.0: version "5.6.0" @@ -31015,10 +31031,13 @@ vue3-file-selector@^1.0.1: resolved "https://registry.yarnpkg.com/vue3-file-selector/-/vue3-file-selector-1.0.1.tgz#bcae2f5ab44c406c1d72a60885990883051b688b" integrity sha512-popFgEvLrkRFo9MWs8mzlb4HH+Mg2+5DhJF7MzKmUrE9179rtVt4Wf7/w+0FvhDRVELQ6f8Z9BhF+SDSUSpRVw== -vue@2.6.12: - version "2.6.12" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.12.tgz#f5ebd4fa6bd2869403e29a896aed4904456c9123" - integrity sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg== +vue@2.7.16: + version "2.7.16" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.7.16.tgz#98c60de9def99c0e3da8dae59b304ead43b967c9" + integrity sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw== + dependencies: + "@vue/compiler-sfc" "2.7.16" + csstype "^3.1.0" vue@3.2.47: version "3.2.47" From 26fa05904dd5aaadb2392ecc63f349682da7b4bb Mon Sep 17 00:00:00 2001 From: BaboonKing Date: Tue, 5 Mar 2024 14:09:17 +0800 Subject: [PATCH 2/5] chore[build]: respectExternal back to false for vue2 in dts --- npm/mount-utils/create-rollup-entry.mjs | 3 ++- npm/vue2/rollup.config.mjs | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/npm/mount-utils/create-rollup-entry.mjs b/npm/mount-utils/create-rollup-entry.mjs index f3b0de4d610c..05ba2b654eaf 100644 --- a/npm/mount-utils/create-rollup-entry.mjs +++ b/npm/mount-utils/create-rollup-entry.mjs @@ -14,6 +14,7 @@ export function createEntries (options) { formats, input, config = {}, + dtsOptions = {}, } = options const banner = ` @@ -72,7 +73,7 @@ export function createEntries (options) { input, output: [{ file: 'dist/index.d.ts', format: 'es' }], plugins: [ - dts({ respectExternal: true }), + dts({ respectExternal: true, ...dtsOptions }), { name: 'cypress-types-reference', // rollup-plugin-dts does not add '// ' like rollup-plugin-typescript2 did so we add it here. diff --git a/npm/vue2/rollup.config.mjs b/npm/vue2/rollup.config.mjs index bed807e40c5d..07de3361fe06 100644 --- a/npm/vue2/rollup.config.mjs +++ b/npm/vue2/rollup.config.mjs @@ -2,6 +2,10 @@ import { createEntries } from '@cypress/mount-utils/create-rollup-entry.mjs' import json from '@rollup/plugin-json' import replace from '@rollup/plugin-replace' +const dtsOptions = { + respectExternal: false, +} + const config = { external: [ 'vue', @@ -25,4 +29,4 @@ const config = { }, } -export default createEntries({ formats: ['es', 'cjs'], input: 'src/index.ts', config }) +export default createEntries({ formats: ['es', 'cjs'], input: 'src/index.ts', config, dtsOptions}) From 6f8f349dd01b3cbcfa5be5cb1b8dbc2b20411c07 Mon Sep 17 00:00:00 2001 From: BaboonKing Date: Wed, 6 Mar 2024 23:44:31 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20rollup.config.mjs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bill Glesias --- npm/vue2/rollup.config.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npm/vue2/rollup.config.mjs b/npm/vue2/rollup.config.mjs index 07de3361fe06..b693c9343a49 100644 --- a/npm/vue2/rollup.config.mjs +++ b/npm/vue2/rollup.config.mjs @@ -29,4 +29,4 @@ const config = { }, } -export default createEntries({ formats: ['es', 'cjs'], input: 'src/index.ts', config, dtsOptions}) +export default createEntries({ formats: ['es', 'cjs'], input: 'src/index.ts', config, dtsOptions }) From b223f19efe79991289323592b9163e7c3a5641e8 Mon Sep 17 00:00:00 2001 From: Matthew Schile Date: Mon, 11 Mar 2024 14:35:42 -0600 Subject: [PATCH 4/5] updating changelog --- cli/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 320328698bcd..f9f17f8a94a1 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -3,6 +3,10 @@ _Released 3/12/2024 (PENDING)_ +**Features:** + +- Added TypeScript support for [Vue 2.7+](https://github.com/vuejs/vue/blob/main/CHANGELOG.md#typescript-changes). Addresses [#28591](https://github.com/cypress-io/cypress/issues/28591). + **Performance:** - Fixed a performance regression from [`13.6.4`](https://docs.cypress.io/guides/references/changelog#13-6-4) where unhandled service worker requests may not correlate correctly. Fixes [#28868](https://github.com/cypress-io/cypress/issues/28868). From ebccafd1a3d14b9ec7b9a02b5b1adae855280505 Mon Sep 17 00:00:00 2001 From: Matthew Schile Date: Mon, 11 Mar 2024 14:40:46 -0600 Subject: [PATCH 5/5] updating link --- cli/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index f9f17f8a94a1..e4538c2844fe 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -5,7 +5,7 @@ _Released 3/12/2024 (PENDING)_ **Features:** -- Added TypeScript support for [Vue 2.7+](https://github.com/vuejs/vue/blob/main/CHANGELOG.md#typescript-changes). Addresses [#28591](https://github.com/cypress-io/cypress/issues/28591). +- Added TypeScript support for [Vue 2.7+](https://github.com/vuejs/vue/blob/main/CHANGELOG.md#270-2022-07-01). Addresses [#28591](https://github.com/cypress-io/cypress/issues/28591). **Performance:**