diff --git a/console/atest-ui/package-lock.json b/console/atest-ui/package-lock.json index ecf238d35..09fb49e43 100644 --- a/console/atest-ui/package-lock.json +++ b/console/atest-ui/package-lock.json @@ -8,14 +8,15 @@ "name": "atest-ui", "version": "v0.0.14", "dependencies": { - "@vueuse/core": "^10.11.0", + "codemirror": "^5.65.17", + "diff-match-patch": "^1.0.5", "element-plus": "^2.3.7", "intro.js": "^7.0.1", "jsonlint-mod": "^1.7.6", "jsonpath-plus": "^7.2.0", "skywalking-client-js": "^0.10.0", "vue": "^3.3.4", - "vue-codemirror": "^6.1.1", + "vue-codemirror": "^5.1.0", "vue-i18n": "^9.2.2", "vue-json-viewer": "^3.0.4", "vue-router": "^4.2.2" @@ -662,10 +663,9 @@ "dev": true }, "node_modules/@codemirror/autocomplete": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.11.1.tgz", - "integrity": "sha512-L5UInv8Ffd6BPw0P3EF7JLYAMeEbclY7+6Q11REt8vhih8RuLreKtPy/xk8wPxs4EQgYqzI7cdgpiYwWlbS/ow==", - "peer": true, + "version": "6.18.0", + "resolved": "https://registry.npmmirror.com/@codemirror/autocomplete/-/autocomplete-6.18.0.tgz", + "integrity": "sha512-5DbOvBbY4qW5l57cjDsmmpDh3/TeK1vXfTHa+BUMrRzdWdcxKZ4U4V7vQaTtOpApNU4kLS4FQ6cINtLg245LXA==", "dependencies": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", @@ -704,10 +704,9 @@ } }, "node_modules/@codemirror/lint": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.4.2.tgz", - "integrity": "sha512-wzRkluWb1ptPKdzlsrbwwjYCPLgzU6N88YBAmlZi8WFyuiEduSd05MnJYNogzyc8rPK7pj6m95ptUApc8sHKVA==", - "peer": true, + "version": "6.8.1", + "resolved": "https://registry.npmmirror.com/@codemirror/lint/-/lint-6.8.1.tgz", + "integrity": "sha512-IZ0Y7S4/bpaunwggW2jYqwLuHj0QtESf5xcROewY6+lDNwZ/NzvR4t+vpYgg9m7V8UXLPYqG+lu3DF470E5Oxg==", "dependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0", @@ -715,10 +714,9 @@ } }, "node_modules/@codemirror/search": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.5.5.tgz", - "integrity": "sha512-PIEN3Ke1buPod2EHbJsoQwlbpkz30qGZKcnmH1eihq9+bPQx8gelauUwLYaY4vBOuBAuEhmpDLii4rj/uO0yMA==", - "peer": true, + "version": "6.5.6", + "resolved": "https://registry.npmmirror.com/@codemirror/search/-/search-6.5.6.tgz", + "integrity": "sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==", "dependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0", @@ -4109,19 +4107,9 @@ } }, "node_modules/codemirror": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz", - "integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==", - "peer": true, - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" - } + "version": "5.65.17", + "resolved": "https://registry.npmmirror.com/codemirror/-/codemirror-5.65.17.tgz", + "integrity": "sha512-1zOsUx3lzAOu/gnMAZkQ9kpIHcPYOc9y1Fbm2UVk5UBPkdq380nhkelG0qUwm1f7wPvTbndu9ZYlug35EwAZRQ==" }, "node_modules/collect-v8-coverage": { "version": "1.0.2", @@ -4278,9 +4266,8 @@ }, "node_modules/crelt": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", - "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", - "peer": true + "resolved": "https://registry.npmmirror.com/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==" }, "node_modules/cross-spawn": { "version": "7.0.3", @@ -4635,6 +4622,11 @@ "node": ">=8" } }, + "node_modules/diff-match-patch": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz", + "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==" + }, "node_modules/diff-sequences": { "version": "29.4.3", "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-29.4.3.tgz", @@ -11616,20 +11608,40 @@ } }, "node_modules/vue-codemirror": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/vue-codemirror/-/vue-codemirror-6.1.1.tgz", - "integrity": "sha512-rTAYo44owd282yVxKtJtnOi7ERAcXTeviwoPXjIc6K/IQYUsoDkzPvw/JDFtSP6T7Cz/2g3EHaEyeyaQCKoDMg==", + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/vue-codemirror/-/vue-codemirror-5.1.0.tgz", + "integrity": "sha512-U8t71S8Dk+9W3Yxfwv30E3vGYjfiKOqluoKkV1bW3Mh9y/T1cQAdGLzz7pN+Z8llivX+/8CJ5sg17xLPSOsvvQ==", "dependencies": { "@codemirror/commands": "6.x", "@codemirror/language": "6.x", "@codemirror/state": "6.x", - "@codemirror/view": "6.x" + "@codemirror/view": "6.x", + "codemirror": "6.x", + "csstype": "^2.6.8" }, "peerDependencies": { - "codemirror": "6.x", "vue": "3.x" } }, + "node_modules/vue-codemirror/node_modules/codemirror": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/codemirror/-/codemirror-6.0.1.tgz", + "integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/commands": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/search": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" + } + }, + "node_modules/vue-codemirror/node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, "node_modules/vue-component-type-helpers": { "version": "1.6.5", "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-1.6.5.tgz", @@ -12585,10 +12597,9 @@ "dev": true }, "@codemirror/autocomplete": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.11.1.tgz", - "integrity": "sha512-L5UInv8Ffd6BPw0P3EF7JLYAMeEbclY7+6Q11REt8vhih8RuLreKtPy/xk8wPxs4EQgYqzI7cdgpiYwWlbS/ow==", - "peer": true, + "version": "6.18.0", + "resolved": "https://registry.npmmirror.com/@codemirror/autocomplete/-/autocomplete-6.18.0.tgz", + "integrity": "sha512-5DbOvBbY4qW5l57cjDsmmpDh3/TeK1vXfTHa+BUMrRzdWdcxKZ4U4V7vQaTtOpApNU4kLS4FQ6cINtLg245LXA==", "requires": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", @@ -12621,10 +12632,9 @@ } }, "@codemirror/lint": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.4.2.tgz", - "integrity": "sha512-wzRkluWb1ptPKdzlsrbwwjYCPLgzU6N88YBAmlZi8WFyuiEduSd05MnJYNogzyc8rPK7pj6m95ptUApc8sHKVA==", - "peer": true, + "version": "6.8.1", + "resolved": "https://registry.npmmirror.com/@codemirror/lint/-/lint-6.8.1.tgz", + "integrity": "sha512-IZ0Y7S4/bpaunwggW2jYqwLuHj0QtESf5xcROewY6+lDNwZ/NzvR4t+vpYgg9m7V8UXLPYqG+lu3DF470E5Oxg==", "requires": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0", @@ -12632,10 +12642,9 @@ } }, "@codemirror/search": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.5.5.tgz", - "integrity": "sha512-PIEN3Ke1buPod2EHbJsoQwlbpkz30qGZKcnmH1eihq9+bPQx8gelauUwLYaY4vBOuBAuEhmpDLii4rj/uO0yMA==", - "peer": true, + "version": "6.5.6", + "resolved": "https://registry.npmmirror.com/@codemirror/search/-/search-6.5.6.tgz", + "integrity": "sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==", "requires": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0", @@ -15209,19 +15218,9 @@ "dev": true }, "codemirror": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz", - "integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==", - "peer": true, - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" - } + "version": "5.65.17", + "resolved": "https://registry.npmmirror.com/codemirror/-/codemirror-5.65.17.tgz", + "integrity": "sha512-1zOsUx3lzAOu/gnMAZkQ9kpIHcPYOc9y1Fbm2UVk5UBPkdq380nhkelG0qUwm1f7wPvTbndu9ZYlug35EwAZRQ==" }, "collect-v8-coverage": { "version": "1.0.2", @@ -15365,9 +15364,8 @@ }, "crelt": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", - "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", - "peer": true + "resolved": "https://registry.npmmirror.com/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==" }, "cross-spawn": { "version": "7.0.3", @@ -15651,6 +15649,11 @@ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, + "diff-match-patch": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz", + "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==" + }, "diff-sequences": { "version": "29.4.3", "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-29.4.3.tgz", @@ -21041,14 +21044,37 @@ } }, "vue-codemirror": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/vue-codemirror/-/vue-codemirror-6.1.1.tgz", - "integrity": "sha512-rTAYo44owd282yVxKtJtnOi7ERAcXTeviwoPXjIc6K/IQYUsoDkzPvw/JDFtSP6T7Cz/2g3EHaEyeyaQCKoDMg==", + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/vue-codemirror/-/vue-codemirror-5.1.0.tgz", + "integrity": "sha512-U8t71S8Dk+9W3Yxfwv30E3vGYjfiKOqluoKkV1bW3Mh9y/T1cQAdGLzz7pN+Z8llivX+/8CJ5sg17xLPSOsvvQ==", "requires": { "@codemirror/commands": "6.x", "@codemirror/language": "6.x", "@codemirror/state": "6.x", - "@codemirror/view": "6.x" + "@codemirror/view": "6.x", + "codemirror": "6.x", + "csstype": "^2.6.8" + }, + "dependencies": { + "codemirror": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/codemirror/-/codemirror-6.0.1.tgz", + "integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==", + "requires": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/commands": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/search": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" + } + }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + } } }, "vue-component-type-helpers": { diff --git a/console/atest-ui/package.json b/console/atest-ui/package.json index 652f21338..8e34fdfc5 100644 --- a/console/atest-ui/package.json +++ b/console/atest-ui/package.json @@ -17,13 +17,15 @@ }, "dependencies": { "@vueuse/core": "^10.11.0", + "codemirror": "^5.65.17", + "diff-match-patch": "^1.0.5", "element-plus": "^2.3.7", "intro.js": "^7.0.1", "jsonlint-mod": "^1.7.6", "jsonpath-plus": "^7.2.0", "skywalking-client-js": "^0.10.0", "vue": "^3.3.4", - "vue-codemirror": "^6.1.1", + "vue-codemirror": "^5.1.0", "vue-i18n": "^9.2.2", "vue-json-viewer": "^3.0.4", "vue-router": "^4.2.2" diff --git a/console/atest-ui/src/App.vue b/console/atest-ui/src/App.vue index 1d3fc62dc..c9785a0f4 100644 --- a/console/atest-ui/src/App.vue +++ b/console/atest-ui/src/App.vue @@ -2,6 +2,7 @@ import { Document, Menu as IconMenu, + Histogram, Location, Share, ArrowDown @@ -10,6 +11,7 @@ import { ref, watch } from 'vue' import { API } from './views/net' import { Cache } from './views/cache' import TestingPanel from './views/TestingPanel.vue' +import TestingHistoryPanel from './views/TestingHistoryPanel.vue' import MockManager from './views/MockManager.vue' import StoreManager from './views/StoreManager.vue' import SecretManager from './views/SecretManager.vue' @@ -81,6 +83,12 @@ const handleChangeLan = (command: string) => { } }; +const ID = ref(null); +const toHistoryPanel = ({ ID: selectID, panelName: historyPanelName }) => { + ID.value = selectID; + panelName.value = historyPanelName; +} +