Bugzilla – Attachment 172967 Details for
Bug 37911
Prototype vue islands within static pages
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 37911: (follow-up) Update to vue ^3.5.4, use vue's web component implementation instead
Bug-37911-follow-up-Update-to-vue-354-use-vues-web.patch (text/plain), 25.11 KB, created by
Matt Blenkinsop
on 2024-10-18 12:07:10 UTC
(
hide
)
Description:
Bug 37911: (follow-up) Update to vue ^3.5.4, use vue's web component implementation instead
Filename:
MIME Type:
Creator:
Matt Blenkinsop
Created:
2024-10-18 12:07:10 UTC
Size:
25.11 KB
patch
obsolete
>From fe20bedefdb353305c34967d36eac3b7e36b796f Mon Sep 17 00:00:00 2001 >From: Paul Derscheid <paul.derscheid@lmscloud.de> >Date: Fri, 13 Sep 2024 01:38:35 +0200 >Subject: [PATCH] Bug 37911: (follow-up) Update to vue ^3.5.4, use vue's web > component implementation instead > >- This would require us to update vue to a new minor version. > - We could then use the defineCustomElement function with the shadowRoot option set to false (this is important). >- The current implementation in islands.ts is naive and would result in an intolerable bundle size. > - The right way to do code splitting here is to use dynamic imports. > >Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com> >--- > .../prog/en/modules/intranet-main.tt | 7 +- > .../prog/js/vue/components/HelloIslands.vue | 8 +- > .../prog/js/vue/modules/islands.ts | 103 ++------- > package.json | 2 +- > rspack.config.js | 1 + > yarn.lock | 202 +++++++++++++----- > 6 files changed, 178 insertions(+), 145 deletions(-) > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt >index eb39d0f626e..b4f1dfe59e9 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt >@@ -11,7 +11,7 @@ > [% t("Koha staff interface") | html %] > [% END %]</title> > [% Asset.css("css/mainpage.css") | $raw %] >-[% Asset.js("js/vue/dist/islands.js") | $raw %] >+[% Asset.js("js/vue/dist/islands.js", "defer" => 1, async => "1") | $raw %] > [% INCLUDE 'doc-head-close.inc' %] > </head> > >@@ -305,7 +305,7 @@ > <div class="row w-25 m-auto p-4 border border-4 border-warning br-4 rounded text-center"> > <h1>ð§ Static Page with Vue Components ð§</h1> > >- <div id="hello-islands" data-component="HelloIslands" data-props='{"message": "Hello from props!"}'></div> >+ <hello-islands message="This is an attribute on the web component, that's bound to a prop in the Vue component. Cool, right?" color="dodgerblue"></hello-islands> > </div> <!-- /.row --> > > [% MACRO jsinclude BLOCK %] >@@ -317,7 +317,8 @@ > }); > > setTimeout(() => { >- document.getElementById("hello-islands").dataset.props = JSON.stringify({ message: 'This is a delayed message! Changes to data-props currently unfortunately reset the internal state.' }); >+ const [firstHelloIslandsElement] = document.getElementsByTagName("hello-islands"); >+ firstHelloIslandsElement.message = 'This is a delayed update to the message attribute of the web commponent.' > }, 2000); > }); > </script> >diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/HelloIslands.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/HelloIslands.vue >index 782296d5e3b..9d8350f2877 100644 >--- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/HelloIslands.vue >+++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/HelloIslands.vue >@@ -1,5 +1,5 @@ > <template> >- <h2>Hello from Islands!</h2> >+ <h2 :style="{ color }">Hello from Islands!</h2> > <p>This component is rendered as an island in a static HTML page.</p> > > <!-- Display message prop --> >@@ -20,7 +20,11 @@ export default { > props: { > message: { > type: String, >- default: "", >+ default: "No content", >+ }, >+ color: { >+ type: String, >+ default: "crimson", > }, > }, > data() { >diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/modules/islands.ts b/koha-tmpl/intranet-tmpl/prog/js/vue/modules/islands.ts >index 379c1c954a7..db8dcb5d928 100644 >--- a/koha-tmpl/intranet-tmpl/prog/js/vue/modules/islands.ts >+++ b/koha-tmpl/intranet-tmpl/prog/js/vue/modules/islands.ts >@@ -1,93 +1,20 @@ >-import { createApp, Component, App } from "vue"; >+import { Component, defineCustomElement } from "vue"; >+import HelloIslands from "../components/HelloIslands.vue"; > > /** > * A registry for Vue components. >- * @type {Map<string, Component>} >- */ >-export const componentRegistry: Map<string, Component> = new Map< >- string, >- Component >->(); >- >-/** >- * Registers a Vue component with a name. >- * @param {string} name - The name of the component. >- * @param {Component} component - The Vue component to register. >- * @returns {void} >- */ >-export function registerComponent(name: string, component: Component): void { >- componentRegistry.set(name, component); >-} >- >-/** >- * Mounts Vue components to DOM elements based on the `data-component` attribute. >- * Components are created with props parsed from the `data-props` attribute. >- * Watches for changes in props and updates the component accordingly. >- * @returns {void} >- */ >-export function mountComponents(): void { >- console.log("Mounting components"); >- >- const elements: NodeListOf<Element> = >- document.querySelectorAll("[data-component]"); >- elements.forEach((element: Element) => { >- const componentName: string | null = >- element.getAttribute("data-component"); >- if (!componentName) { >- console.warn("No data-component attribute found."); >- return; >- } >- >- const component: Component | undefined = >- componentRegistry.get(componentName); >- if (!component) { >- console.warn(`Component ${componentName} not found.`); >- return; >- } >- >- const props: string | null = element.getAttribute("data-props"); >- const parsedProps: Record<string, any> = props ? JSON.parse(props) : {}; >- >- // Create and mount the Vue component >- const app: App = createApp(component, parsedProps); >- app.mount(element); >- >- // Watch for updates to props >- watchProps(element, app, component); >- }); >-} >- >-/** >- * Watches for changes in props and updates the component accordingly. >- * @param {Element} element - The DOM element where the component is mounted. >- * @param {App} app - The Vue application instance. >- * @param {Component} component - The Vue component. >- * @returns {void} >+ * @type {Map<string, string>} > */ >-function watchProps(element: Element, app: App, component: Component): void { >- const propsAttr: string | null = element.getAttribute("data-props"); >- let prevProps: Record<string, any> = propsAttr ? JSON.parse(propsAttr) : {}; >- >- const observer = new MutationObserver(() => { >- const newPropsAttr: string | null = element.getAttribute("data-props"); >- if (newPropsAttr) { >- const newProps: Record<string, any> = JSON.parse(newPropsAttr); >- if (JSON.stringify(newProps) !== JSON.stringify(prevProps)) { >- prevProps = newProps; >- app.unmount(); // Unmount existing component >- createApp(component, newProps).mount(element); // Mount with new props >- } >- } >+export const componentRegistry: Map<string, () => Promise<Component>> = new Map( >+ [["hello-islands", HelloIslands]] >+); >+ >+// Register and define custom elements >+window.requestIdleCallback(() => { >+ componentRegistry.forEach((component, name) => { >+ customElements.define( >+ name, >+ defineCustomElement(component as any, { shadowRoot: false }) >+ ); > }); >- >- observer.observe(element, { >- attributes: true, >- attributeFilter: ["data-props"], >- }); >-} >- >-import HelloIslands from "../components/HelloIslands.vue"; >-registerComponent("HelloIslands", HelloIslands); >- >-// Automatically mount components when the DOM is fully loaded >-document.addEventListener("DOMContentLoaded", mountComponents); >+}); >diff --git a/package.json b/package.json >index ef76a1d58b5..29b808a903b 100644 >--- a/package.json >+++ b/package.json >@@ -40,7 +40,7 @@ > "po2json": "^0.4.5", > "sass": "^1.58.1", > "style-loader": "^3.3.1", >- "vue": "^3.2.31", >+ "vue": "^3.5.4", > "vue-flatpickr-component": "^9", > "vue-router": "^4.0.14", > "vue-select": "4.0.0-beta.3" >diff --git a/rspack.config.js b/rspack.config.js >index 12b621b3fea..7aa53b03bc4 100644 >--- a/rspack.config.js >+++ b/rspack.config.js >@@ -80,6 +80,7 @@ module.exports = { > new rspack.DefinePlugin({ > __VUE_OPTIONS_API__: true, > __VUE_PROD_DEVTOOLS__: false, >+ __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: false, > }), > ], > externals: { >diff --git a/yarn.lock b/yarn.lock >index 275b7299e57..61a1011aacf 100755 >--- a/yarn.lock >+++ b/yarn.lock >@@ -275,6 +275,11 @@ > resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" > integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== > >+"@babel/helper-string-parser@^7.24.8": >+ version "7.24.8" >+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" >+ integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== >+ > "@babel/helper-validator-identifier@^7.18.6": > version "7.18.6" > resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" >@@ -285,6 +290,11 @@ > resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" > integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== > >+"@babel/helper-validator-identifier@^7.24.7": >+ version "7.24.7" >+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" >+ integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== >+ > "@babel/helper-validator-option@^7.18.6": > version "7.18.6" > resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" >@@ -318,7 +328,14 @@ > chalk "^2.0.0" > js-tokens "^4.0.0" > >-"@babel/parser@^7.16.4", "@babel/parser@^7.18.10", "@babel/parser@^7.19.3", "@babel/parser@^7.19.4": >+"@babel/parser@^7.16.4", "@babel/parser@^7.25.3": >+ version "7.25.6" >+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.6.tgz#85660c5ef388cbbf6e3d2a694ee97a38f18afe2f" >+ integrity sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q== >+ dependencies: >+ "@babel/types" "^7.25.6" >+ >+"@babel/parser@^7.18.10", "@babel/parser@^7.19.3", "@babel/parser@^7.19.4": > version "7.19.4" > resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.4.tgz#03c4339d2b8971eb3beca5252bafd9b9f79db3dc" > integrity sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA== >@@ -966,6 +983,15 @@ > "@babel/helper-validator-identifier" "^7.19.1" > to-fast-properties "^2.0.0" > >+"@babel/types@^7.25.6": >+ version "7.25.6" >+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.6.tgz#893942ddb858f32ae7a004ec9d3a76b3463ef8e6" >+ integrity sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw== >+ dependencies: >+ "@babel/helper-string-parser" "^7.24.8" >+ "@babel/helper-validator-identifier" "^7.24.7" >+ to-fast-properties "^2.0.0" >+ > "@choojs/findup@^0.2.1": > version "0.2.1" > resolved "https://registry.yarnpkg.com/@choojs/findup/-/findup-0.2.1.tgz#ac13c59ae7be6e1da64de0779a0a7f03d75615a3" >@@ -1172,6 +1198,11 @@ > resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" > integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== > >+"@jridgewell/sourcemap-codec@^1.5.0": >+ version "1.5.0" >+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" >+ integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== >+ > "@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.9": > version "0.3.17" > resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" >@@ -1889,6 +1920,17 @@ > estree-walker "^2.0.2" > source-map "^0.6.1" > >+"@vue/compiler-core@3.5.4": >+ version "3.5.4" >+ resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.4.tgz#b8b5805e767b94d84af01f5527dbb4896326c478" >+ integrity sha512-oNwn+BAt3n9dK9uAYvI+XGlutwuTq/wfj4xCBaZCqwwVIGtD7D6ViihEbyYZrDHIHTDE3Q6oL3/hqmAyFEy9DQ== >+ dependencies: >+ "@babel/parser" "^7.25.3" >+ "@vue/shared" "3.5.4" >+ entities "^4.5.0" >+ estree-walker "^2.0.2" >+ source-map-js "^1.2.0" >+ > "@vue/compiler-dom@3.2.41": > version "3.2.41" > resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.41.tgz#dc63dcd3ce8ca8a8721f14009d498a7a54380299" >@@ -1897,7 +1939,30 @@ > "@vue/compiler-core" "3.2.41" > "@vue/shared" "3.2.41" > >-"@vue/compiler-sfc@3.2.41", "@vue/compiler-sfc@^3.2.31": >+"@vue/compiler-dom@3.5.4": >+ version "3.5.4" >+ resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.4.tgz#3f98e6ca76abab73630dad055b3ef6e2e6c2b006" >+ integrity sha512-yP9RRs4BDLOLfldn6ah+AGCNovGjMbL9uHvhDHf5wan4dAHLnFGOkqtfE7PPe4HTXIqE7l/NILdYw53bo1C8jw== >+ dependencies: >+ "@vue/compiler-core" "3.5.4" >+ "@vue/shared" "3.5.4" >+ >+"@vue/compiler-sfc@3.5.4": >+ version "3.5.4" >+ resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.4.tgz#a530accc9afed38506b14ce7ac6fb237eb09ff2d" >+ integrity sha512-P+yiPhL+NYH7m0ZgCq7AQR2q7OIE+mpAEgtkqEeH9oHSdIRvUO+4X6MPvblJIWcoe4YC5a2Gdf/RsoyP8FFiPQ== >+ dependencies: >+ "@babel/parser" "^7.25.3" >+ "@vue/compiler-core" "3.5.4" >+ "@vue/compiler-dom" "3.5.4" >+ "@vue/compiler-ssr" "3.5.4" >+ "@vue/shared" "3.5.4" >+ estree-walker "^2.0.2" >+ magic-string "^0.30.11" >+ postcss "^8.4.44" >+ source-map-js "^1.2.0" >+ >+"@vue/compiler-sfc@^3.2.31": > version "3.2.41" > resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.41.tgz#238fb8c48318408c856748f4116aff8cc1dc2a73" > integrity sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w== >@@ -1921,6 +1986,14 @@ > "@vue/compiler-dom" "3.2.41" > "@vue/shared" "3.2.41" > >+"@vue/compiler-ssr@3.5.4": >+ version "3.5.4" >+ resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.4.tgz#b6d011adaca367e7cc364cb09dfb6a5c12ad974a" >+ integrity sha512-acESdTXsxPnYr2C4Blv0ggx5zIFMgOzZmYU2UgvIff9POdRGbRNBHRyzHAnizcItvpgerSKQbllUc9USp3V7eg== >+ dependencies: >+ "@vue/compiler-dom" "3.5.4" >+ "@vue/shared" "3.5.4" >+ > "@vue/component-compiler-utils@^3.1.0", "@vue/component-compiler-utils@^3.3.0": > version "3.3.0" > resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz#f9f5fb53464b0c37b2c8d2f3fbfe44df60f61dc9" >@@ -1953,43 +2026,49 @@ > estree-walker "^2.0.2" > magic-string "^0.25.7" > >-"@vue/reactivity@3.2.41": >- version "3.2.41" >- resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.41.tgz#0ad3bdf76d76822da1502dc9f394dafd02642963" >- integrity sha512-9JvCnlj8uc5xRiQGZ28MKGjuCoPhhTwcoAdv3o31+cfGgonwdPNuvqAXLhlzu4zwqavFEG5tvaoINQEfxz+l6g== >+"@vue/reactivity@3.5.4": >+ version "3.5.4" >+ resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.4.tgz#f1c771612e0612443583bac6ce52b8cef0ac5c40" >+ integrity sha512-HKKbEuP7tYSGCq4e4nK6ZW6l5hyG66OUetefBp4budUyjvAYsnQDf+bgFzg2RAgnH0CInyqXwD9y47jwJEHrQw== > dependencies: >- "@vue/shared" "3.2.41" >+ "@vue/shared" "3.5.4" > >-"@vue/runtime-core@3.2.41": >- version "3.2.41" >- resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.41.tgz#775bfc00b3fadbaddab77138f23322aee3517a76" >- integrity sha512-0LBBRwqnI0p4FgIkO9q2aJBBTKDSjzhnxrxHYengkAF6dMOjeAIZFDADAlcf2h3GDALWnblbeprYYpItiulSVQ== >+"@vue/runtime-core@3.5.4": >+ version "3.5.4" >+ resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.4.tgz#411e4f6d445d44354bbc242dfb168379c3bec5c3" >+ integrity sha512-f3ek2sTA0AFu0n+w+kCtz567Euqqa3eHewvo4klwS7mWfSj/A+UmYTwsnUFo35KeyAFY60JgrCGvEBsu1n/3LA== > dependencies: >- "@vue/reactivity" "3.2.41" >- "@vue/shared" "3.2.41" >+ "@vue/reactivity" "3.5.4" >+ "@vue/shared" "3.5.4" > >-"@vue/runtime-dom@3.2.41": >- version "3.2.41" >- resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.41.tgz#cdf86be7410f7b15c29632a96ce879e5b4c9ab92" >- integrity sha512-U7zYuR1NVIP8BL6jmOqmapRAHovEFp7CSw4pR2FacqewXNGqZaRfHoNLQsqQvVQ8yuZNZtxSZy0FFyC70YXPpA== >+"@vue/runtime-dom@3.5.4": >+ version "3.5.4" >+ resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.4.tgz#68242033e648a6d1400f27d923d5788362fbefb8" >+ integrity sha512-ofyc0w6rbD5KtjhP1i9hGOKdxGpvmuB1jprP7Djlj0X7R5J/oLwuNuE98GJ8WW31Hu2VxQHtk/LYTAlW8xrJdw== > dependencies: >- "@vue/runtime-core" "3.2.41" >- "@vue/shared" "3.2.41" >- csstype "^2.6.8" >+ "@vue/reactivity" "3.5.4" >+ "@vue/runtime-core" "3.5.4" >+ "@vue/shared" "3.5.4" >+ csstype "^3.1.3" > >-"@vue/server-renderer@3.2.41": >- version "3.2.41" >- resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.41.tgz#ca64552c05878f94e8d191ac439141c06c0fb2ad" >- integrity sha512-7YHLkfJdTlsZTV0ae5sPwl9Gn/EGr2hrlbcS/8naXm2CDpnKUwC68i1wGlrYAfIgYWL7vUZwk2GkYLQH5CvFig== >+"@vue/server-renderer@3.5.4": >+ version "3.5.4" >+ resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.4.tgz#8b9a102474922156c881c8ed1442907512d5435b" >+ integrity sha512-FbjV6DJLgKRetMYFBA1UXCroCiED/Ckr53/ba9wivyd7D/Xw9fpo0T6zXzCnxQwyvkyrL7y6plgYhWhNjGxY5g== > dependencies: >- "@vue/compiler-ssr" "3.2.41" >- "@vue/shared" "3.2.41" >+ "@vue/compiler-ssr" "3.5.4" >+ "@vue/shared" "3.5.4" > > "@vue/shared@3.2.41": > version "3.2.41" > resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.41.tgz#fbc95422df654ea64e8428eced96ba6ad555d2bb" > integrity sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw== > >+"@vue/shared@3.5.4": >+ version "3.5.4" >+ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.4.tgz#d4768ddf13aded2774162298a3b5658cc999e1ee" >+ integrity sha512-L2MCDD8l7yC62Te5UUyPVpmexhL9ipVnYRw9CsWfm/BGRL5FwDX4a25bcJ/OJSD3+Hx+k/a8LDKcG2AFdJV3BA== >+ > "@vue/test-utils@^2.0.0-rc.10": > version "2.1.0" > resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-2.1.0.tgz#c2f646aa2d6ac779f79a83f18c5b82fc40952bfd" >@@ -4036,10 +4115,10 @@ csstype@3.1.2: > resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" > integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== > >-csstype@^2.6.8: >- version "2.6.21" >- resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e" >- integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w== >+csstype@^3.1.3: >+ version "3.1.3" >+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" >+ integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== > > cypress-mysql@^1.0.0: > version "1.0.0" >@@ -4597,6 +4676,11 @@ entities@^2.0.0: > resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" > integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== > >+entities@^4.5.0: >+ version "4.5.0" >+ resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" >+ integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== >+ > envinfo@^7.7.3: > version "7.8.1" > resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" >@@ -7337,6 +7421,13 @@ magic-string@^0.25.7: > dependencies: > sourcemap-codec "^1.4.8" > >+magic-string@^0.30.11: >+ version "0.30.11" >+ resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.11.tgz#301a6f93b3e8c2cb13ac1a7a673492c0dfd12954" >+ integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== >+ dependencies: >+ "@jridgewell/sourcemap-codec" "^1.5.0" >+ > make-dir@^3.0.2, make-dir@^3.1.0: > version "3.1.0" > resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" >@@ -7780,12 +7871,7 @@ nan@^2.12.1: > resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" > integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== > >-nanoid@^3.3.4: >- version "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: >+nanoid@^3.3.4, nanoid@^3.3.6, nanoid@^3.3.7: > version "3.3.7" > resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" > integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== >@@ -8513,10 +8599,10 @@ picocolors@^0.2.1: > resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" > integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== > >-picocolors@^1.0.0: >- version "1.0.0" >- resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" >- integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== >+picocolors@^1.0.0, picocolors@^1.0.1: >+ version "1.1.0" >+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59" >+ integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== > > picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: > version "2.3.1" >@@ -8923,7 +9009,16 @@ postcss@^7.0.36: > picocolors "^0.2.1" > source-map "^0.6.1" > >-postcss@^8.1.10, postcss@^8.2.6, postcss@^8.3.5, postcss@^8.4.7: >+postcss@^8.1.10, postcss@^8.4.44: >+ version "8.4.45" >+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.45.tgz#538d13d89a16ef71edbf75d895284ae06b79e603" >+ integrity sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q== >+ dependencies: >+ nanoid "^3.3.7" >+ picocolors "^1.0.1" >+ source-map-js "^1.2.0" >+ >+postcss@^8.2.6, postcss@^8.3.5, postcss@^8.4.7: > version "8.4.18" > resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.18.tgz#6d50046ea7d3d66a85e0e782074e7203bc7fbca2" > integrity sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA== >@@ -10120,11 +10215,16 @@ sockjs@^0.3.24: > uuid "^8.3.2" > websocket-driver "^0.7.4" > >-"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: >+"source-map-js@>=0.6.2 <2.0.0": > version "1.0.2" > resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" > integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== > >+source-map-js@^1.0.2, source-map-js@^1.2.0: >+ version "1.2.1" >+ resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" >+ integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== >+ > source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: > version "0.5.3" > resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" >@@ -11444,15 +11544,15 @@ vue-template-es2015-compiler@^1.9.0: > integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== > > vue@^3.2.31: >- version "3.2.41" >- resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.41.tgz#ed452b8a0f7f2b962f055c8955139c28b1c06806" >- integrity sha512-uuuvnrDXEeZ9VUPljgHkqB5IaVO8SxhPpqF2eWOukVrBnRBx2THPSGQBnVRt0GrIG1gvCmFXMGbd7FqcT1ixNQ== >- dependencies: >- "@vue/compiler-dom" "3.2.41" >- "@vue/compiler-sfc" "3.2.41" >- "@vue/runtime-dom" "3.2.41" >- "@vue/server-renderer" "3.2.41" >- "@vue/shared" "3.2.41" >+ version "3.5.4" >+ resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.4.tgz#0e5935e8b1e5505d484aee732b72c6e77c7567fd" >+ integrity sha512-3yAj2gkmiY+i7+22A1PWM+kjOVXjU74UPINcTiN7grIVPyFFI0lpGwHlV/4xydDmobaBn7/xmi+YG8HeSlCTcg== >+ dependencies: >+ "@vue/compiler-dom" "3.5.4" >+ "@vue/compiler-sfc" "3.5.4" >+ "@vue/runtime-dom" "3.5.4" >+ "@vue/server-renderer" "3.5.4" >+ "@vue/shared" "3.5.4" > > watchify@^4.0.0: > version "4.0.0" >-- >2.39.3 (Apple Git-146)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 37911
:
171425
|
171426
|
171432
|
171439
|
171440
|
171445
|
171459
|
171517
|
171538
|
171608
|
171685
|
172962
|
172963
|
172965
|
172966
| 172967 |
172968
|
172969
|
172970
|
172971
|
172972
|
172973
|
172974
|
172975