From ce3ffe791302a8a25f606347b9a550fd5438f589 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2026 10:09:56 -0400 Subject: [PATCH 01/51] chore(deps): update dependency vue to v3.5.43 (#4762) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../code/stackblitz/v8/vue/package-lock.json | 122 +++++++++--------- .../code/stackblitz/v9/vue/package-lock.json | 116 ++++++++--------- 2 files changed, 119 insertions(+), 119 deletions(-) diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index d708a13c7c..89569e5168 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -1058,53 +1058,53 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.42", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.42.tgz", - "integrity": "sha512-2Ye1ilMtKXxl8qZUrQ5j0CdgenFp/HFQmta6rfRyfEsTG69L6Wk+tWuNoHYHMx9E8tF2Slvdg1FuwDvAXdy1LQ==", + "version": "3.5.43", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.43.tgz", + "integrity": "sha512-zdiLhnbe1QQqgDT8xZMpNmyqZ3qlI+/Q/FHQco57Kwl/b05HhCzN6eVGN9QU9rbga4CrS0H5SYY8VGHZCt/1Hg==", "license": "MIT", "dependencies": { "@babel/parser": "^7.29.8", - "@vue/shared": "3.5.42", + "@vue/shared": "3.5.43", "entities": "^7.0.1", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" } }, "node_modules/@vue/compiler-dom": { - "version": "3.5.42", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.42.tgz", - "integrity": "sha512-qbhQZEFmycr+ni/qyuccS4sucNN7VAbDfbkvNxWOX2VfgFm90MNs3/UhRNKoPMEIVn0F8gdlYjLPvqxHwHeQOA==", + "version": "3.5.43", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.43.tgz", + "integrity": "sha512-PEZoAk3NQmsn/ejMzSOCyTYqwGqczrWm70PuhBKjjv1+TCoQAaO/zOqNwjV+honlNstT5ILxtc+8r8UUfj+iEQ==", "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.42", - "@vue/shared": "3.5.42" + "@vue/compiler-core": "3.5.43", + "@vue/shared": "3.5.43" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.42", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.42.tgz", - "integrity": "sha512-fkCAFB4okcAANGMThboWnScp/gzWjU0ZSkVnjTIiplmMDq2uq0tIB3j+xVu4rhv5rvOgBySCysudmbMd6xRRqw==", + "version": "3.5.43", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.43.tgz", + "integrity": "sha512-FCbrG3XNCRl+js3huuKx4IVHBLTvMkJhVepjbxSPu1gn4yWLaYtGNQdjJGZaMytXB6qb76qQDDmDSLy/vkmleQ==", "license": "MIT", "dependencies": { "@babel/parser": "^7.29.8", - "@vue/compiler-core": "3.5.42", - "@vue/compiler-dom": "3.5.42", - "@vue/compiler-ssr": "3.5.42", - "@vue/shared": "3.5.42", + "@vue/compiler-core": "3.5.43", + "@vue/compiler-dom": "3.5.43", + "@vue/compiler-ssr": "3.5.43", + "@vue/shared": "3.5.43", "estree-walker": "^2.0.2", "magic-string": "^0.30.21", - "postcss": "^8.5.19", + "postcss": "^8.5.28", "source-map-js": "^1.2.1" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.42", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.42.tgz", - "integrity": "sha512-xmLk3wLkbizPAiLyomjgFFosf2ys9b5Ghb+oh/k2tnvipNz8OFrQOiTcWCzyK7MpBp9KkyGtfvgfLUivbmuGYA==", + "version": "3.5.43", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.43.tgz", + "integrity": "sha512-GF62orf7KiJX9RqrHNGrYBudsQGD0OhJ5nDs90O8UiDuS40+YMYomiXu6w6EuvtXuRDc3MSNis3EaaSKAVSWpg==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.42", - "@vue/shared": "3.5.42" + "@vue/compiler-dom": "3.5.43", + "@vue/shared": "3.5.43" } }, "node_modules/@vue/devtools-api": { @@ -1151,51 +1151,51 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.5.42", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.42.tgz", - "integrity": "sha512-TzNNfKpb7hDxbQltwAut8VDQA5YP+BuRlxntHUuRjyKwlMvmAPbs3unhCvieijifY6vFfVBwsS7wG/C7uq+bEQ==", + "version": "3.5.43", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.43.tgz", + "integrity": "sha512-G/c9GyOZNI2jVaaS6OX1EF1SSFSv7H0ERqNTl4+DTFMlZmB5eVAB53aLQNam/7NL2NPtaDD7RdVrzf8uJzMuOA==", "license": "MIT", "dependencies": { - "@vue/shared": "3.5.42" + "@vue/shared": "3.5.43" } }, "node_modules/@vue/runtime-core": { - "version": "3.5.42", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.42.tgz", - "integrity": "sha512-9uACtuHs7vJGkm5Bp3xu4xRDLFTIYy5DgxpToVjqGIAhAEKwQfsaLvKINhM6nFVp6bZPRFGdDqd1g52MqKsotA==", + "version": "3.5.43", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.43.tgz", + "integrity": "sha512-hU6U6VnVhBGQDpvlnnDlIB8ZGJBiOcgk2lh/0InltHiz3D8oSkluvuvY+do1G2H3+udeKFsmaBlgVYP7gXQzEw==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.42", - "@vue/shared": "3.5.42" + "@vue/reactivity": "3.5.43", + "@vue/shared": "3.5.43" } }, "node_modules/@vue/runtime-dom": { - "version": "3.5.42", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.42.tgz", - "integrity": "sha512-rsCmhiWLaRxGltLwhlCWyYkFn7WAbKRh0q17eZ1A6Dq6eqc2ACQ61IIryxz0LrsvCzHSilLA9JHovVwM8CNE2g==", + "version": "3.5.43", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.43.tgz", + "integrity": "sha512-Bb2Jc0YjjJdMt1SJmb9b2L/IWd3I8lIT9x9eS/xvvP9CiVgna0ffua74xKRmt4/uSJ+0r4iN8ex1jrqkhQGWQw==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.42", - "@vue/runtime-core": "3.5.42", - "@vue/shared": "3.5.42", + "@vue/reactivity": "3.5.43", + "@vue/runtime-core": "3.5.43", + "@vue/shared": "3.5.43", "csstype": "^3.2.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.5.42", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.42.tgz", - "integrity": "sha512-2++5dUyYS4gvo7xQXSECUDhB7TS0aOl5SeVfC5qSq1Jgfhjvegw1zqhwTIR3imZ+QYPJQw9gfcFvXGAjGZ7ajQ==", + "version": "3.5.43", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.43.tgz", + "integrity": "sha512-l2Ygjv9NehV94PSBxNWsAHC0j/eIIKbn92mBuWXAPGLnn6HfJ6MH5ubsd+Nk0YoZ5FRuxWI1P2VSoh+dbPQhCQ==", "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.5.42", - "@vue/runtime-dom": "3.5.42", - "@vue/shared": "3.5.42" + "@vue/compiler-ssr": "3.5.43", + "@vue/runtime-dom": "3.5.43", + "@vue/shared": "3.5.43" } }, "node_modules/@vue/shared": { - "version": "3.5.42", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.42.tgz", - "integrity": "sha512-2rPxex1jQf4jvl9MOHl6YaXCPcrNqz/FstMOEh3QWY+/OME9nQTvl9WYeCwhW7AFjaR0SnngZGlp/wkR6rkI6g==", + "version": "3.5.43", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.43.tgz", + "integrity": "sha512-uksS7YGMR5NZyr4JNq0Rp+QyLns0ueaz20KwzIPW9R0LH1Vnt4E+XUM29PNseEbf1www2gOuhuDi5AKOIXag9Q==", "license": "MIT" }, "node_modules/acorn": { @@ -1475,9 +1475,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.16", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", - "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", + "version": "3.3.19", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz", + "integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==", "funding": [ { "type": "github", @@ -1547,9 +1547,9 @@ } }, "node_modules/postcss": { - "version": "8.5.24", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.24.tgz", - "integrity": "sha512-8RyVklq0owXUTa4xlpzu4l9AaVKIdQvAcOHZWaMh98HgySsUtxRVf/chRe3dsSLqb6i40BzGRzEUddRaI+9TSw==", + "version": "8.5.28", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.28.tgz", + "integrity": "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==", "funding": [ { "type": "opencollective", @@ -1566,7 +1566,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.16", + "nanoid": "^3.3.18", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -1974,16 +1974,16 @@ "license": "MIT" }, "node_modules/vue": { - "version": "3.5.42", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.42.tgz", - "integrity": "sha512-4RyHQTbQvOPs3MfvUO1Sg0YRrKNnA0mAVtvpd12Tg1fKDN7OHBUl1IqSn8zGJjK9nI3NkNp8cgTpVrSZC5TTcA==", + "version": "3.5.43", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.43.tgz", + "integrity": "sha512-o5qZoksdnjIKvW1srZ3ab7pcDNYAerBjRe54D0LBLfRdCYFrSgBHVXokMas35czQc0//lmx4/tuY4ZNQ+Rf2Ng==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.42", - "@vue/compiler-sfc": "3.5.42", - "@vue/runtime-dom": "3.5.42", - "@vue/server-renderer": "3.5.42", - "@vue/shared": "3.5.42" + "@vue/compiler-dom": "3.5.43", + "@vue/compiler-sfc": "3.5.43", + "@vue/runtime-dom": "3.5.43", + "@vue/server-renderer": "3.5.43", + "@vue/shared": "3.5.43" }, "peerDependencies": { "typescript": "*" diff --git a/static/code/stackblitz/v9/vue/package-lock.json b/static/code/stackblitz/v9/vue/package-lock.json index 0d3b8bbbec..063272d09f 100644 --- a/static/code/stackblitz/v9/vue/package-lock.json +++ b/static/code/stackblitz/v9/vue/package-lock.json @@ -370,53 +370,53 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.42", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.42.tgz", - "integrity": "sha512-2Ye1ilMtKXxl8qZUrQ5j0CdgenFp/HFQmta6rfRyfEsTG69L6Wk+tWuNoHYHMx9E8tF2Slvdg1FuwDvAXdy1LQ==", + "version": "3.5.43", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.43.tgz", + "integrity": "sha512-zdiLhnbe1QQqgDT8xZMpNmyqZ3qlI+/Q/FHQco57Kwl/b05HhCzN6eVGN9QU9rbga4CrS0H5SYY8VGHZCt/1Hg==", "license": "MIT", "dependencies": { "@babel/parser": "^7.29.8", - "@vue/shared": "3.5.42", + "@vue/shared": "3.5.43", "entities": "^7.0.1", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" } }, "node_modules/@vue/compiler-dom": { - "version": "3.5.42", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.42.tgz", - "integrity": "sha512-qbhQZEFmycr+ni/qyuccS4sucNN7VAbDfbkvNxWOX2VfgFm90MNs3/UhRNKoPMEIVn0F8gdlYjLPvqxHwHeQOA==", + "version": "3.5.43", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.43.tgz", + "integrity": "sha512-PEZoAk3NQmsn/ejMzSOCyTYqwGqczrWm70PuhBKjjv1+TCoQAaO/zOqNwjV+honlNstT5ILxtc+8r8UUfj+iEQ==", "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.42", - "@vue/shared": "3.5.42" + "@vue/compiler-core": "3.5.43", + "@vue/shared": "3.5.43" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.42", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.42.tgz", - "integrity": "sha512-fkCAFB4okcAANGMThboWnScp/gzWjU0ZSkVnjTIiplmMDq2uq0tIB3j+xVu4rhv5rvOgBySCysudmbMd6xRRqw==", + "version": "3.5.43", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.43.tgz", + "integrity": "sha512-FCbrG3XNCRl+js3huuKx4IVHBLTvMkJhVepjbxSPu1gn4yWLaYtGNQdjJGZaMytXB6qb76qQDDmDSLy/vkmleQ==", "license": "MIT", "dependencies": { "@babel/parser": "^7.29.8", - "@vue/compiler-core": "3.5.42", - "@vue/compiler-dom": "3.5.42", - "@vue/compiler-ssr": "3.5.42", - "@vue/shared": "3.5.42", + "@vue/compiler-core": "3.5.43", + "@vue/compiler-dom": "3.5.43", + "@vue/compiler-ssr": "3.5.43", + "@vue/shared": "3.5.43", "estree-walker": "^2.0.2", "magic-string": "^0.30.21", - "postcss": "^8.5.19", + "postcss": "^8.5.28", "source-map-js": "^1.2.1" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.42", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.42.tgz", - "integrity": "sha512-xmLk3wLkbizPAiLyomjgFFosf2ys9b5Ghb+oh/k2tnvipNz8OFrQOiTcWCzyK7MpBp9KkyGtfvgfLUivbmuGYA==", + "version": "3.5.43", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.43.tgz", + "integrity": "sha512-GF62orf7KiJX9RqrHNGrYBudsQGD0OhJ5nDs90O8UiDuS40+YMYomiXu6w6EuvtXuRDc3MSNis3EaaSKAVSWpg==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.42", - "@vue/shared": "3.5.42" + "@vue/compiler-dom": "3.5.43", + "@vue/shared": "3.5.43" } }, "node_modules/@vue/devtools-api": { @@ -463,51 +463,51 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.5.42", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.42.tgz", - "integrity": "sha512-TzNNfKpb7hDxbQltwAut8VDQA5YP+BuRlxntHUuRjyKwlMvmAPbs3unhCvieijifY6vFfVBwsS7wG/C7uq+bEQ==", + "version": "3.5.43", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.43.tgz", + "integrity": "sha512-G/c9GyOZNI2jVaaS6OX1EF1SSFSv7H0ERqNTl4+DTFMlZmB5eVAB53aLQNam/7NL2NPtaDD7RdVrzf8uJzMuOA==", "license": "MIT", "dependencies": { - "@vue/shared": "3.5.42" + "@vue/shared": "3.5.43" } }, "node_modules/@vue/runtime-core": { - "version": "3.5.42", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.42.tgz", - "integrity": "sha512-9uACtuHs7vJGkm5Bp3xu4xRDLFTIYy5DgxpToVjqGIAhAEKwQfsaLvKINhM6nFVp6bZPRFGdDqd1g52MqKsotA==", + "version": "3.5.43", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.43.tgz", + "integrity": "sha512-hU6U6VnVhBGQDpvlnnDlIB8ZGJBiOcgk2lh/0InltHiz3D8oSkluvuvY+do1G2H3+udeKFsmaBlgVYP7gXQzEw==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.42", - "@vue/shared": "3.5.42" + "@vue/reactivity": "3.5.43", + "@vue/shared": "3.5.43" } }, "node_modules/@vue/runtime-dom": { - "version": "3.5.42", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.42.tgz", - "integrity": "sha512-rsCmhiWLaRxGltLwhlCWyYkFn7WAbKRh0q17eZ1A6Dq6eqc2ACQ61IIryxz0LrsvCzHSilLA9JHovVwM8CNE2g==", + "version": "3.5.43", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.43.tgz", + "integrity": "sha512-Bb2Jc0YjjJdMt1SJmb9b2L/IWd3I8lIT9x9eS/xvvP9CiVgna0ffua74xKRmt4/uSJ+0r4iN8ex1jrqkhQGWQw==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.42", - "@vue/runtime-core": "3.5.42", - "@vue/shared": "3.5.42", + "@vue/reactivity": "3.5.43", + "@vue/runtime-core": "3.5.43", + "@vue/shared": "3.5.43", "csstype": "^3.2.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.5.42", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.42.tgz", - "integrity": "sha512-2++5dUyYS4gvo7xQXSECUDhB7TS0aOl5SeVfC5qSq1Jgfhjvegw1zqhwTIR3imZ+QYPJQw9gfcFvXGAjGZ7ajQ==", + "version": "3.5.43", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.43.tgz", + "integrity": "sha512-l2Ygjv9NehV94PSBxNWsAHC0j/eIIKbn92mBuWXAPGLnn6HfJ6MH5ubsd+Nk0YoZ5FRuxWI1P2VSoh+dbPQhCQ==", "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.5.42", - "@vue/runtime-dom": "3.5.42", - "@vue/shared": "3.5.42" + "@vue/compiler-ssr": "3.5.43", + "@vue/runtime-dom": "3.5.43", + "@vue/shared": "3.5.43" } }, "node_modules/@vue/shared": { - "version": "3.5.42", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.42.tgz", - "integrity": "sha512-2rPxex1jQf4jvl9MOHl6YaXCPcrNqz/FstMOEh3QWY+/OME9nQTvl9WYeCwhW7AFjaR0SnngZGlp/wkR6rkI6g==", + "version": "3.5.43", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.43.tgz", + "integrity": "sha512-uksS7YGMR5NZyr4JNq0Rp+QyLns0ueaz20KwzIPW9R0LH1Vnt4E+XUM29PNseEbf1www2gOuhuDi5AKOIXag9Q==", "license": "MIT" }, "node_modules/acorn": { @@ -787,9 +787,9 @@ } }, "node_modules/postcss": { - "version": "8.5.26", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", - "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", + "version": "8.5.28", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.28.tgz", + "integrity": "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==", "funding": [ { "type": "opencollective", @@ -806,7 +806,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.17", + "nanoid": "^3.3.18", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -1052,16 +1052,16 @@ "license": "MIT" }, "node_modules/vue": { - "version": "3.5.42", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.42.tgz", - "integrity": "sha512-4RyHQTbQvOPs3MfvUO1Sg0YRrKNnA0mAVtvpd12Tg1fKDN7OHBUl1IqSn8zGJjK9nI3NkNp8cgTpVrSZC5TTcA==", + "version": "3.5.43", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.43.tgz", + "integrity": "sha512-o5qZoksdnjIKvW1srZ3ab7pcDNYAerBjRe54D0LBLfRdCYFrSgBHVXokMas35czQc0//lmx4/tuY4ZNQ+Rf2Ng==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.42", - "@vue/compiler-sfc": "3.5.42", - "@vue/runtime-dom": "3.5.42", - "@vue/server-renderer": "3.5.42", - "@vue/shared": "3.5.42" + "@vue/compiler-dom": "3.5.43", + "@vue/compiler-sfc": "3.5.43", + "@vue/runtime-dom": "3.5.43", + "@vue/server-renderer": "3.5.43", + "@vue/shared": "3.5.43" }, "peerDependencies": { "typescript": "*" From 0c054841f431e2394075ac5444daccd47b2b21ea Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2026 10:10:22 -0400 Subject: [PATCH 02/51] chore(deps): update dependency cspell to v10.3.5 (#4761) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 236 +++++++++++++++++++++++----------------------- 1 file changed, 118 insertions(+), 118 deletions(-) diff --git a/package-lock.json b/package-lock.json index 56ea914136..f43691eecd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2149,9 +2149,9 @@ ] }, "node_modules/@cspell/cspell-bundled-dicts": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-10.3.4.tgz", - "integrity": "sha512-43nfJOuuiWohR4kpH+uMsko2GMlW8ns+SolGcKK5fdp56POS45UbGKtGlmOmC5bi+1H/1bZmyHI/H7EX+wQNgA==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-10.3.5.tgz", + "integrity": "sha512-gmgpSYyPP1kAZrKVulmJ+lycQUEFG54n2dsMxLfPtBcTpOhvFZUHfyzLmpkukujU8JySOeCSjynEtqIPqzxvUg==", "dev": true, "license": "MIT", "dependencies": { @@ -2220,22 +2220,22 @@ } }, "node_modules/@cspell/cspell-json-reporter": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-10.3.4.tgz", - "integrity": "sha512-ycVkt2bS9QTpo0tqlWRnTzAdk6VR9ZJSV5nNo4QqDt7rFZl4m0NdQxryJn8+hnqQ0hc7UJN8kcSbWIjVFmoCHA==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-10.3.5.tgz", + "integrity": "sha512-eB7nQU4pyV9SgT78yfqiaC5IKQkbYPu/3474CqlzKc+uZQ5/J0ujz0JQQgkVlwZf6i0N03mSQr/LI/iLmMWg5g==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-types": "10.3.4" + "@cspell/cspell-types": "10.3.5" }, "engines": { "node": ">=22.18.0" } }, "node_modules/@cspell/cspell-performance-monitor": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/@cspell/cspell-performance-monitor/-/cspell-performance-monitor-10.3.4.tgz", - "integrity": "sha512-vJ1MIQRUTAbqY/VN1UiqBBeLiC159A2PtNE/Xn95ON6J6awiBCImp+7Qp4haNvzUXGFcsMhWuklxP4Bk8zNw6w==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/@cspell/cspell-performance-monitor/-/cspell-performance-monitor-10.3.5.tgz", + "integrity": "sha512-ZcnwB607vx9I4Ap8NFn1gDwRZRHAmU41pBgRW0IO2Dceue4zyEE4Hn7uh8I2ODHY0cgqHkueVjNekG7eUPFQ3A==", "dev": true, "license": "MIT", "engines": { @@ -2243,9 +2243,9 @@ } }, "node_modules/@cspell/cspell-pipe": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-10.3.4.tgz", - "integrity": "sha512-PcqO2pcnNad3uOP2wmq4XD7MVpN8jm3ippyl5OfQD9PflKlwHMawLG/bWQ1eCdtWlARRQIR63ghfgNFFpjfCeg==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-10.3.5.tgz", + "integrity": "sha512-ZeJCIFmak+UQf7DaBVh0mUFZes7NzbVAUtL8Gyhqmn3QBsIlngs75vVKNtS/4Dqf0HvuzDejUTK3TUtx0pwFAg==", "dev": true, "license": "MIT", "engines": { @@ -2253,9 +2253,9 @@ } }, "node_modules/@cspell/cspell-resolver": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-10.3.4.tgz", - "integrity": "sha512-7dizl4j0FWyUymxCBO6UFLmQhALxYCxgZ2bf3bNc/BUO8wf/MP9B2Os5DwDaX/jFpMtpNnZ2rM5RAxWW7UKizA==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-10.3.5.tgz", + "integrity": "sha512-UR+wX7rEUMVpOzBo6jhvIB0r5+mg/ZevtqJlj/haxtZaphNDrfcHEt5RUcofKQ03YU2QhlJearMU9RWiPaR1Ww==", "dev": true, "license": "MIT", "dependencies": { @@ -2266,9 +2266,9 @@ } }, "node_modules/@cspell/cspell-service-bus": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-10.3.4.tgz", - "integrity": "sha512-D7C0Pr8bNHGzSn3HjiKrPXTD22Nui2Wk26aSZ4HFk6FMpxKe3pOT+STp9TYEK8D4hKA3sHLMef+YP4lCAPhD1g==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-10.3.5.tgz", + "integrity": "sha512-MsVtZ1YoiajW3zObXqqr+6rWHQuk97XKdB2Jl+Wv1djGVmLm5zJQ0ME35iK+OwYicswnBzAO9AIMjn2pPamtUQ==", "dev": true, "license": "MIT", "engines": { @@ -2276,9 +2276,9 @@ } }, "node_modules/@cspell/cspell-types": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-10.3.4.tgz", - "integrity": "sha512-BFUDEATv9lhIa/JPK+BYulWEQcKmGHS0x8XLNeN+OeZtXNKOPGbvpgbXBRjQ33XqNuuOGRHulcok8M2998xA3w==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-10.3.5.tgz", + "integrity": "sha512-zNnZVIE3+BfSG7CN5kLNSNo4US8066BCqoebrVksqo+5cn1LGPhgEPvM93wZwJ+LwCJRCuObEW+5BWn8+sqAWw==", "dev": true, "license": "MIT", "engines": { @@ -2286,13 +2286,13 @@ } }, "node_modules/@cspell/cspell-worker": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/@cspell/cspell-worker/-/cspell-worker-10.3.4.tgz", - "integrity": "sha512-KtJupFqoXR8tUwxiVDX0JA7cj98nTAJSZvukl++g1qQNlJZiVyxqlJ15lCo72A+YnfzOi2rUSoiChRERt1f2yg==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/@cspell/cspell-worker/-/cspell-worker-10.3.5.tgz", + "integrity": "sha512-3M1iFXpHj3gvcDLS+GDBBlGnW8mfsrgeoHNp9WLRTm5YmOlovyYUNEcmDBdYK5Ji7fvrw4Osxob0W89Ny6id4w==", "dev": true, "license": "MIT", "dependencies": { - "cspell-lib": "10.3.4" + "cspell-lib": "10.3.5" }, "engines": { "node": ">=22.18.0" @@ -2724,13 +2724,13 @@ "license": "MIT" }, "node_modules/@cspell/dynamic-import": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-10.3.4.tgz", - "integrity": "sha512-qhnQpKALDV1grrGVMGZsvX1YCgP9Yq6is94V3LUvyK0r3Vx61UK/J4rwm4DUqUMshHL3i/5nE0HLcpjotHfIFA==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-10.3.5.tgz", + "integrity": "sha512-qg+KtbuVMP1WPZO6hj9jux1+UuaCUUoQ+/Rqh0G7LIK+72T81lv8tmJMymiCr31Wjd9w3cs0nOYdPZJ9o0ypQQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "10.3.4", + "@cspell/url": "10.3.5", "import-meta-resolve": "^4.2.0" }, "engines": { @@ -2738,9 +2738,9 @@ } }, "node_modules/@cspell/filetypes": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/@cspell/filetypes/-/filetypes-10.3.4.tgz", - "integrity": "sha512-rMX/t5LUo8KkonCMeiAV5TWAcMqrABC5JOjq2SIt6krnpsqGJOTsBZYnJt24xQwpb0/WVpYrhLORkJQ3I6t3jg==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/@cspell/filetypes/-/filetypes-10.3.5.tgz", + "integrity": "sha512-sgRV+O8bROVE9Qn6sTRYERdQ5g0jL6v+pxBLkvvQpiCovk9me7ycIDbY6OkRUiggqQr0uBeo/7lu4GtXyMTn8Q==", "dev": true, "license": "MIT", "engines": { @@ -2748,9 +2748,9 @@ } }, "node_modules/@cspell/rpc": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/@cspell/rpc/-/rpc-10.3.4.tgz", - "integrity": "sha512-GfkT0IYgWKqFH8pEEwzAiVtSYDlp5hAZp6f8lxKMdshw+LEQ/g4OCIG4tr1eZao35xMO4oiImnuBJahhIdddlQ==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/@cspell/rpc/-/rpc-10.3.5.tgz", + "integrity": "sha512-+Yei/jfo8anBaRM6eAaV6+W3FvpQX+Ethe+llZRVM4BnSVc8FLoNkTQiZUTrFq85KPDnmAfyI1Q77Fea3rKekA==", "dev": true, "license": "MIT", "engines": { @@ -2758,9 +2758,9 @@ } }, "node_modules/@cspell/strong-weak-map": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-10.3.4.tgz", - "integrity": "sha512-0zibARpg8VECScJKGO/Eqr4rdHJvqP+lfNHxUk8ftYvbSHS8AQ//EEDcieM3Oyp7ILraVlVvanI6YeXFmdU7JA==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-10.3.5.tgz", + "integrity": "sha512-78zH/wgrEJnY4pHmuC2MONaGIp7nQq/eceflF5qIaopnTz9Xn93Tm83BX4Goy1qNXAkgSOuYQibn5hQwx54INw==", "dev": true, "license": "MIT", "engines": { @@ -2768,9 +2768,9 @@ } }, "node_modules/@cspell/url": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/@cspell/url/-/url-10.3.4.tgz", - "integrity": "sha512-QGl/AmrVg+91ua2oVDFQSpIdqP1hUJjVeihYnsBIiQNjOfR8wPzj7aA8I9lyuC2/dC+iPDmmuI19KE65UwhPHg==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/@cspell/url/-/url-10.3.5.tgz", + "integrity": "sha512-wC2T2Fex2NIAJqZkAZBDAgDrvG9jWdS2DtbcAI+pCu+C/DDZ/2v9BCbE/rz/jy5/KrUUxEDJR+/MW90s7dX7nQ==", "dev": true, "license": "MIT", "engines": { @@ -9716,29 +9716,29 @@ } }, "node_modules/cspell": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-10.3.4.tgz", - "integrity": "sha512-WuyGrlaJdZXW0AHqcTFTe5DQoyB36JcAZAbdZJb7i7cKyMX8oKyRWuGP8r+mw0QcsZNZpsnxRX0oMd/D8Wkccw==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-10.3.5.tgz", + "integrity": "sha512-Ru3hh2mpZ1wRt8NR69rp+kMEks+pHfdskwAdFIw0FtV+G9JUJbXV3B0wCc8A5KbQlhnR3vBeEX81V8chgl5g6g==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-json-reporter": "10.3.4", - "@cspell/cspell-performance-monitor": "10.3.4", - "@cspell/cspell-pipe": "10.3.4", - "@cspell/cspell-types": "10.3.4", - "@cspell/cspell-worker": "10.3.4", - "@cspell/dynamic-import": "10.3.4", - "@cspell/url": "10.3.4", + "@cspell/cspell-json-reporter": "10.3.5", + "@cspell/cspell-performance-monitor": "10.3.5", + "@cspell/cspell-pipe": "10.3.5", + "@cspell/cspell-types": "10.3.5", + "@cspell/cspell-worker": "10.3.5", + "@cspell/dynamic-import": "10.3.5", + "@cspell/url": "10.3.5", "ansi-regex": "^6.3.0", "chalk": "^6.0.0", "chalk-template": "^1.1.2", "commander": "^15.0.0", - "cspell-config-lib": "10.3.4", - "cspell-dictionary": "10.3.4", - "cspell-gitignore": "10.3.4", - "cspell-glob": "10.3.4", - "cspell-io": "10.3.4", - "cspell-lib": "10.3.4", + "cspell-config-lib": "10.3.5", + "cspell-dictionary": "10.3.5", + "cspell-gitignore": "10.3.5", + "cspell-glob": "10.3.5", + "cspell-io": "10.3.5", + "cspell-lib": "10.3.5", "flatted": "^3.4.4", "semver": "^7.8.5", "tinyglobby": "^0.2.17" @@ -9755,13 +9755,13 @@ } }, "node_modules/cspell-config-lib": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-10.3.4.tgz", - "integrity": "sha512-/0YHlZq6jPwXZ4Jbwv6Zwv3OpJRwrO4uXcyZB7+RBcj2AdyLZHr6T1VFElESHxCSzWBdZ0rsBVlgUZaeQaSrTg==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-10.3.5.tgz", + "integrity": "sha512-eAbLtQL72FOL0I6NKqrLXY8aPsKgL0nLHAJNKBg7lhV1hyiJeF71+8lE4qE0Nipx+OsZIUa6MespTKUwmfXd5A==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-types": "10.3.4", + "@cspell/cspell-types": "10.3.5", "comment-json": "^5.0.0", "smol-toml": "^1.8.0", "yaml": "^2.9.0" @@ -9771,16 +9771,16 @@ } }, "node_modules/cspell-dictionary": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-10.3.4.tgz", - "integrity": "sha512-20jH9pCYfx1IiscrUcEa+ZxKeHafexE8WY6NW/l3UdXd38y4PhzeMovLG1QQEFoqN++KYsLO5Scn/A6sAEFFig==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-10.3.5.tgz", + "integrity": "sha512-rm+HN3dAs0XulakSodra4s6afLAD8KA+DWx8gniakV4JZBjxdKImNqC3W2yDxQJ6Sn+pI3IjSn6lCeQmwtnfXg==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-performance-monitor": "10.3.4", - "@cspell/cspell-pipe": "10.3.4", - "@cspell/cspell-types": "10.3.4", - "cspell-trie-lib": "10.3.4", + "@cspell/cspell-performance-monitor": "10.3.5", + "@cspell/cspell-pipe": "10.3.5", + "@cspell/cspell-types": "10.3.5", + "cspell-trie-lib": "10.3.5", "fast-equals": "^6.0.2" }, "engines": { @@ -9788,15 +9788,15 @@ } }, "node_modules/cspell-gitignore": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-10.3.4.tgz", - "integrity": "sha512-sXtjB8VagZ9+GbAATQr+2u+vk4HACpfG+uPNOxjAYcYSZTWhF/VTx2FW1M/lsqNda5yLizI0xCW1eyU2or3DkA==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-10.3.5.tgz", + "integrity": "sha512-qQLZw+nfa+Zy2okSm3L8YLbonTKkuESChvCa3MLc1rWNLdYF5Vb5wPmsxna2nm90qEAZJBe41ognN47bHQlgJg==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "10.3.4", - "cspell-glob": "10.3.4", - "cspell-io": "10.3.4" + "@cspell/url": "10.3.5", + "cspell-glob": "10.3.5", + "cspell-io": "10.3.5" }, "bin": { "cspell-gitignore": "bin.mjs" @@ -9806,13 +9806,13 @@ } }, "node_modules/cspell-glob": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-10.3.4.tgz", - "integrity": "sha512-uCUL8rqw8cfL+WY9Av9WFxIqw84Ek/MGLZhx+ROkbvYAm0Vjv5anw3GlZrQQCdDtQi902KFRrcHanqBngAKKXQ==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-10.3.5.tgz", + "integrity": "sha512-2FcPCV3nHIZrrJxt6mfE38trf6TMt8cZWIn/w/fTD6KdX6gK0a7nKlgMcHPj/EByjNTorKBYxj+tG0G0DBcrgQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "10.3.4", + "@cspell/url": "10.3.5", "picomatch": "^4.0.7" }, "engines": { @@ -9833,14 +9833,14 @@ } }, "node_modules/cspell-grammar": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-10.3.4.tgz", - "integrity": "sha512-RBvvCtrKSv+QRyywsKa5XQCcN3xFAXBFtBdhJqt5irmrtQJGELkZAd/AwbFw6jOeHKPKR2OEhfqwcx6lP83gkg==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-10.3.5.tgz", + "integrity": "sha512-isBahk4y5BOw12U3Iltb+gejea7gTNhUDE4XOqH/F+38W3HskJL4hRrxA/C8RyT/b+jvu8jy4hKafGzjsuM7oA==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-pipe": "10.3.4", - "@cspell/cspell-types": "10.3.4" + "@cspell/cspell-pipe": "10.3.5", + "@cspell/cspell-types": "10.3.5" }, "bin": { "cspell-grammar": "bin.mjs" @@ -9850,42 +9850,42 @@ } }, "node_modules/cspell-io": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-10.3.4.tgz", - "integrity": "sha512-/wl1ATfDNw4zTh0zy9I3y6uX2liZqrwF13uo2bon8+frEQOttg3NrsXS13Ox3G0cfMKY33aulRX+9uRSxMtqIA==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-10.3.5.tgz", + "integrity": "sha512-3rt3Hen3dDixXQtAjzV8oak/HTjGPqkdYckG2tkwu3Lfe0DnasD+dEGasxRu3uaEWGFY0SDIOUzA9+hi7bxCHA==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-service-bus": "10.3.4", - "@cspell/url": "10.3.4" + "@cspell/cspell-service-bus": "10.3.5", + "@cspell/url": "10.3.5" }, "engines": { "node": ">=22.18.0" } }, "node_modules/cspell-lib": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-10.3.4.tgz", - "integrity": "sha512-1TVE9OExPc9cbD65HoNWcBovkb3uu4M6hjZ2+36+P2JBqXmE3IwsyDy2fk5gdL+YYY/GTmEYW48NePQd9/gPvg==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-10.3.5.tgz", + "integrity": "sha512-4o0vN7WoZheOWtuobmm39NcQ7sFpd/80o+d7W3rrc6TDa1hxGJfMcC35dZhLcsAQKbG45fBcIl1KM/W7MRXzDQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-bundled-dicts": "10.3.4", - "@cspell/cspell-performance-monitor": "10.3.4", - "@cspell/cspell-pipe": "10.3.4", - "@cspell/cspell-resolver": "10.3.4", - "@cspell/cspell-types": "10.3.4", - "@cspell/dynamic-import": "10.3.4", - "@cspell/filetypes": "10.3.4", - "@cspell/rpc": "10.3.4", - "@cspell/strong-weak-map": "10.3.4", - "@cspell/url": "10.3.4", - "cspell-config-lib": "10.3.4", - "cspell-dictionary": "10.3.4", - "cspell-glob": "10.3.4", - "cspell-grammar": "10.3.4", - "cspell-io": "10.3.4", - "cspell-trie-lib": "10.3.4", + "@cspell/cspell-bundled-dicts": "10.3.5", + "@cspell/cspell-performance-monitor": "10.3.5", + "@cspell/cspell-pipe": "10.3.5", + "@cspell/cspell-resolver": "10.3.5", + "@cspell/cspell-types": "10.3.5", + "@cspell/dynamic-import": "10.3.5", + "@cspell/filetypes": "10.3.5", + "@cspell/rpc": "10.3.5", + "@cspell/strong-weak-map": "10.3.5", + "@cspell/url": "10.3.5", + "cspell-config-lib": "10.3.5", + "cspell-dictionary": "10.3.5", + "cspell-glob": "10.3.5", + "cspell-grammar": "10.3.5", + "cspell-io": "10.3.5", + "cspell-trie-lib": "10.3.5", "env-paths": "^4.0.0", "gensequence": "^8.0.8", "import-fresh": "^4.0.0", @@ -9912,22 +9912,22 @@ } }, "node_modules/cspell-trie-lib": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-10.3.4.tgz", - "integrity": "sha512-JgdMuAfYEzUTfbi0yVId/Nu3uze119QqU4Ss3oSD8li3IrmgCcNIk/RcDtfx+6dl20bmnXacx+J2xfXj6gPfiA==", + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-10.3.5.tgz", + "integrity": "sha512-lVeiLN9U8EVrfW05BCSkMlSRPNG9RtjEGQD1cnFrrEKk/Af6Z3CJ+Yi2a6y37RTPQv8o6Tl4tBo3uBh+U6MvLQ==", "dev": true, "license": "MIT", "engines": { "node": ">=22.18.0" }, "peerDependencies": { - "@cspell/cspell-types": "10.3.4" + "@cspell/cspell-types": "10.3.5" } }, "node_modules/cspell/node_modules/ansi-regex": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.3.0.tgz", - "integrity": "sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", "dev": true, "license": "MIT", "engines": { @@ -9938,9 +9938,9 @@ } }, "node_modules/cspell/node_modules/chalk": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-6.0.0.tgz", - "integrity": "sha512-2uNTXIuTTxk7ciZgAU1BQcgnchcG0xXnrs6jzkQfj9SsRa9M2s5zE8WT96hS6KmG4MzWHSrvH43DF1m4XRkrFg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-6.0.1.tgz", + "integrity": "sha512-/Ce6KNm3vIbWdMlNna6RVIZ/ICQxnJxCicet5LBKK9ZffBkqzDw0xh9EiKSljdRtiIQ1S1z4YgcscUUGzNCWrA==", "dev": true, "license": "MIT", "engines": { From ecafe0db1208551c78a9617a1fb6ff0679a4c571 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2026 10:03:54 -0700 Subject: [PATCH 03/51] chore(deps): update ionic to v9.0.6 (#4764) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../stackblitz/v9/angular/package-lock.json | 18 ++++++------- .../code/stackblitz/v9/angular/package.json | 4 +-- .../code/stackblitz/v9/html/package-lock.json | 8 +++--- static/code/stackblitz/v9/html/package.json | 2 +- .../stackblitz/v9/react/package-lock.json | 27 ++++++++++--------- static/code/stackblitz/v9/react/package.json | 4 +-- .../code/stackblitz/v9/vue/package-lock.json | 26 +++++++++--------- static/code/stackblitz/v9/vue/package.json | 4 +-- 8 files changed, 47 insertions(+), 46 deletions(-) diff --git a/static/code/stackblitz/v9/angular/package-lock.json b/static/code/stackblitz/v9/angular/package-lock.json index 6d436bfab6..de4f9b3d3a 100644 --- a/static/code/stackblitz/v9/angular/package-lock.json +++ b/static/code/stackblitz/v9/angular/package-lock.json @@ -14,8 +14,8 @@ "@angular/platform-browser": "^22.0.0", "@angular/platform-browser-dynamic": "^22.0.0", "@angular/router": "^22.0.0", - "@ionic/angular": "9.0.4", - "@ionic/core": "9.0.4", + "@ionic/angular": "9.0.6", + "@ionic/core": "9.0.6", "ionicons": "8.1.0", "rxjs": "^7.8.1", "tslib": "^2.5.0" @@ -2578,12 +2578,12 @@ } }, "node_modules/@ionic/angular": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-9.0.4.tgz", - "integrity": "sha512-lGddXHacpnhBFUNqRHwWCF2U2ei4VaFaBuJWrlin56lRnASm3ZVbMWUA/+6Vv+2n2/BTeP8MOv4Ga/DISkuRPg==", + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-9.0.6.tgz", + "integrity": "sha512-XgdKn87zqNAJF0bSQDuKhtXIc0mYU8Ic05pq5Vd+Rj81WhnvSilbqVZY5vMZhVXNsdiWcvf4VZHGK8CMacirHg==", "license": "MIT", "dependencies": { - "@ionic/core": "9.0.4", + "@ionic/core": "9.0.6", "ionicons": "^8.0.13", "jsonc-parser": "^3.0.0", "tslib": "^2.3.0" @@ -2602,9 +2602,9 @@ } }, "node_modules/@ionic/core": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.4.tgz", - "integrity": "sha512-tNYTxBt8+Tla61B8OwAeEHuTWuJdJn6+buftCNikhPHi5TW9MbduIPsWn+D8KtlWhZKPVshVyvItfWcYxMN3JA==", + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.6.tgz", + "integrity": "sha512-WWxjOjwKPU75BuEhc42t3n2Tn89YEDe5Pce9kA61w/TlWVM3tqiAYC+qfR9MXmER4pQcST01oM2gftheMzcV6g==", "license": "MIT", "dependencies": { "@stencil/core": "^4.44.2", diff --git a/static/code/stackblitz/v9/angular/package.json b/static/code/stackblitz/v9/angular/package.json index bdc97279ac..a3708e2829 100644 --- a/static/code/stackblitz/v9/angular/package.json +++ b/static/code/stackblitz/v9/angular/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^22.0.0", "@angular/platform-browser-dynamic": "^22.0.0", "@angular/router": "^22.0.0", - "@ionic/angular": "9.0.4", - "@ionic/core": "9.0.4", + "@ionic/angular": "9.0.6", + "@ionic/core": "9.0.6", "ionicons": "8.1.0", "rxjs": "^7.8.1", "tslib": "^2.5.0" diff --git a/static/code/stackblitz/v9/html/package-lock.json b/static/code/stackblitz/v9/html/package-lock.json index d5f2fcda0b..e57e78b2fb 100644 --- a/static/code/stackblitz/v9/html/package-lock.json +++ b/static/code/stackblitz/v9/html/package-lock.json @@ -6,7 +6,7 @@ "": { "name": "html-starter", "dependencies": { - "@ionic/core": "9.0.4", + "@ionic/core": "9.0.6", "ionicons": "8.1.0" }, "devDependencies": { @@ -16,9 +16,9 @@ } }, "node_modules/@ionic/core": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.4.tgz", - "integrity": "sha512-tNYTxBt8+Tla61B8OwAeEHuTWuJdJn6+buftCNikhPHi5TW9MbduIPsWn+D8KtlWhZKPVshVyvItfWcYxMN3JA==", + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.6.tgz", + "integrity": "sha512-WWxjOjwKPU75BuEhc42t3n2Tn89YEDe5Pce9kA61w/TlWVM3tqiAYC+qfR9MXmER4pQcST01oM2gftheMzcV6g==", "license": "MIT", "dependencies": { "@stencil/core": "^4.44.2", diff --git a/static/code/stackblitz/v9/html/package.json b/static/code/stackblitz/v9/html/package.json index f69ea94511..a2dd491c31 100644 --- a/static/code/stackblitz/v9/html/package.json +++ b/static/code/stackblitz/v9/html/package.json @@ -9,7 +9,7 @@ "start": "vite preview" }, "dependencies": { - "@ionic/core": "9.0.4", + "@ionic/core": "9.0.6", "ionicons": "8.1.0" }, "devDependencies": { diff --git a/static/code/stackblitz/v9/react/package-lock.json b/static/code/stackblitz/v9/react/package-lock.json index 4674db31cb..16d43d437a 100644 --- a/static/code/stackblitz/v9/react/package-lock.json +++ b/static/code/stackblitz/v9/react/package-lock.json @@ -8,8 +8,8 @@ "name": "vite-react-typescript", "version": "0.1.0", "dependencies": { - "@ionic/react": "9.0.4", - "@ionic/react-router": "9.0.4", + "@ionic/react": "9.0.6", + "@ionic/react-router": "9.0.6", "@types/node": "^24.0.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", @@ -254,9 +254,9 @@ "license": "MIT" }, "node_modules/@ionic/core": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.4.tgz", - "integrity": "sha512-tNYTxBt8+Tla61B8OwAeEHuTWuJdJn6+buftCNikhPHi5TW9MbduIPsWn+D8KtlWhZKPVshVyvItfWcYxMN3JA==", + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.6.tgz", + "integrity": "sha512-WWxjOjwKPU75BuEhc42t3n2Tn89YEDe5Pce9kA61w/TlWVM3tqiAYC+qfR9MXmER4pQcST01oM2gftheMzcV6g==", "license": "MIT", "dependencies": { "@stencil/core": "^4.44.2", @@ -268,12 +268,12 @@ } }, "node_modules/@ionic/react": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-9.0.4.tgz", - "integrity": "sha512-SR43RjjD0g/AbaJU7AIp+g9QD3+HsiOJLPpryTCfx/WYSAnpvuLPQCpIavRmlQsqgjc5Jba4CVtzwkD0n04ctw==", + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-9.0.6.tgz", + "integrity": "sha512-WAcbe7ZDIDqQaXvcAF7+AxpYW3Y3HFvZbDnpwQtoSUo8RTAw+AQQOTTSlp1eHOjwqpVqYceBFAdhfNbzBfw/1w==", "license": "MIT", "dependencies": { - "@ionic/core": "9.0.4", + "@ionic/core": "9.0.6", "@stencil/react-output-target": "^1.6.2", "ionicons": "^8.0.13", "tslib": "*" @@ -284,12 +284,13 @@ } }, "node_modules/@ionic/react-router": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-9.0.4.tgz", - "integrity": "sha512-7ErfMiEQcZ/p0WWwMI0QHEaR3/ZkMqNzkekb1m/tVaUnUIjTEesCFTqPmm8wBElHIolrTQEBw2cyRI79iQZarg==", + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-9.0.6.tgz", + "integrity": "sha512-YHw3ss1AemSRZArEvi7MITTE2JrrLW/su0ZGl51pShKLZdH5TKI0dM+0BzsBbZ1Xmi423t8NRjZseYk3do/NQg==", "license": "MIT", "dependencies": { - "@ionic/react": "9.0.4", + "@ionic/core": "9.0.6", + "@ionic/react": "9.0.6", "tslib": "*" }, "peerDependencies": { diff --git a/static/code/stackblitz/v9/react/package.json b/static/code/stackblitz/v9/react/package.json index b4e1004d07..2e16e25a05 100644 --- a/static/code/stackblitz/v9/react/package.json +++ b/static/code/stackblitz/v9/react/package.json @@ -3,8 +3,8 @@ "version": "0.1.0", "private": true, "dependencies": { - "@ionic/react": "9.0.4", - "@ionic/react-router": "9.0.4", + "@ionic/react": "9.0.6", + "@ionic/react-router": "9.0.6", "@types/node": "^24.0.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", diff --git a/static/code/stackblitz/v9/vue/package-lock.json b/static/code/stackblitz/v9/vue/package-lock.json index 063272d09f..19206895c5 100644 --- a/static/code/stackblitz/v9/vue/package-lock.json +++ b/static/code/stackblitz/v9/vue/package-lock.json @@ -8,8 +8,8 @@ "name": "vite-vue-starter", "version": "0.0.0", "dependencies": { - "@ionic/vue": "9.0.4", - "@ionic/vue-router": "9.0.4", + "@ionic/vue": "9.0.6", + "@ionic/vue-router": "9.0.6", "vue": "^3.2.25", "vue-router": "5.3.1" }, @@ -63,9 +63,9 @@ } }, "node_modules/@ionic/core": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.4.tgz", - "integrity": "sha512-tNYTxBt8+Tla61B8OwAeEHuTWuJdJn6+buftCNikhPHi5TW9MbduIPsWn+D8KtlWhZKPVshVyvItfWcYxMN3JA==", + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.6.tgz", + "integrity": "sha512-WWxjOjwKPU75BuEhc42t3n2Tn89YEDe5Pce9kA61w/TlWVM3tqiAYC+qfR9MXmER4pQcST01oM2gftheMzcV6g==", "license": "MIT", "dependencies": { "@stencil/core": "^4.44.2", @@ -77,23 +77,23 @@ } }, "node_modules/@ionic/vue": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-9.0.4.tgz", - "integrity": "sha512-tFGJnnsD1ODiu8daRtOdoB/ee+N7qkaqXZvpFFqpGgTgFcsfwf4gJCCg5JsCrKfoRb0dS8LAyrwI8WZ7k+tUhw==", + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-9.0.6.tgz", + "integrity": "sha512-Bg8RqfnsVejulSXF+YENjZBtx1cEwZPUZAA47oLhFceYlSodapLI2qWeHgn6hgKmapCe+GzyJQIuxyRIfXqlXQ==", "license": "MIT", "dependencies": { - "@ionic/core": "9.0.4", + "@ionic/core": "9.0.6", "@stencil/vue-output-target": "0.14.2", "ionicons": "^8.0.13" } }, "node_modules/@ionic/vue-router": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-9.0.4.tgz", - "integrity": "sha512-C136j+B2cVBSEDiZaJReB5VO/z+0uc1qo9grn8bLzuSM/Y9iz11YWgxhII0hUq2WEXzLBexEn1JUGSXJdiWLBA==", + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-9.0.6.tgz", + "integrity": "sha512-kxc+6Ix648UL6Nr2MAetcTE8RHRXt7nP03C5KnuFgXaL5wC+YZKnGMQL0BAnROVTdu5ARTyA2CDKLBDGhDe/Gg==", "license": "MIT", "dependencies": { - "@ionic/vue": "9.0.4" + "@ionic/vue": "9.0.6" } }, "node_modules/@jridgewell/gen-mapping": { diff --git a/static/code/stackblitz/v9/vue/package.json b/static/code/stackblitz/v9/vue/package.json index 9528839e8b..15a3b7b12a 100644 --- a/static/code/stackblitz/v9/vue/package.json +++ b/static/code/stackblitz/v9/vue/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@ionic/vue": "9.0.4", - "@ionic/vue-router": "9.0.4", + "@ionic/vue": "9.0.6", + "@ionic/vue-router": "9.0.6", "vue": "^3.2.25", "vue-router": "5.3.1" }, From 24cfd3fe844295d2e2fbf1d86f4fa2c6ff56ffb8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2026 10:54:55 -0700 Subject: [PATCH 04/51] chore(deps): update dependency web-vitals to v6.2.2 (#4763) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v8/react/package-lock.json | 6 +++--- static/code/stackblitz/v9/react/package-lock.json | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index d983a56267..d0a1169112 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -2142,9 +2142,9 @@ } }, "node_modules/web-vitals": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-6.2.1.tgz", - "integrity": "sha512-rLcLXA2sx6+9dE88NHFubwTtGxpK4yYBLj6qHPdFoCaLr0cXGb4efOqtKLlm4loGA4OEKHIQKMKzZkKyOh5ctw==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-6.2.2.tgz", + "integrity": "sha512-oto5x6dLEgrRqfcWed+pZEUb2q6ikbFmqF54CRDhI/QGbn+qxC49b4C4OkbH+kb9C3a8shpFD3SgR9kRcs80ZQ==", "license": "Apache-2.0" }, "node_modules/yallist": { diff --git a/static/code/stackblitz/v9/react/package-lock.json b/static/code/stackblitz/v9/react/package-lock.json index 16d43d437a..6fc7790af8 100644 --- a/static/code/stackblitz/v9/react/package-lock.json +++ b/static/code/stackblitz/v9/react/package-lock.json @@ -1306,9 +1306,9 @@ } }, "node_modules/web-vitals": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-6.2.1.tgz", - "integrity": "sha512-rLcLXA2sx6+9dE88NHFubwTtGxpK4yYBLj6qHPdFoCaLr0cXGb4efOqtKLlm4loGA4OEKHIQKMKzZkKyOh5ctw==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-6.2.2.tgz", + "integrity": "sha512-oto5x6dLEgrRqfcWed+pZEUb2q6ikbFmqF54CRDhI/QGbn+qxC49b4C4OkbH+kb9C3a8shpFD3SgR9kRcs80ZQ==", "license": "Apache-2.0" }, "node_modules/yallist": { From 985cf4a1c5a091bbf0623fdcf7b7ca70b87b115f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 2 Oct 2026 10:10:13 -0400 Subject: [PATCH 05/51] chore(deps): update dependency sass to v1.105.0 (#4769) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index f43691eecd..50f9105d47 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19530,9 +19530,9 @@ "license": "MIT" }, "node_modules/sass": { - "version": "1.104.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.104.1.tgz", - "integrity": "sha512-yDA+1aIG3EHgN4V/BvuhCvu61FF6hEd4e+9DxikUm9U0CAGuvdIZ/UYy7qbOxjhbbWQraoyLlMuzdRGOSV5Bmw==", + "version": "1.105.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.105.0.tgz", + "integrity": "sha512-4EjSuRTyG8M4yRXXY1PT9OUV5zz23xBxJkbIAprohKHqf6HOU4MCpE3U3vAC+iO1gxobBjESNbcj8rYAQZWnyA==", "license": "MIT", "dependencies": { "chokidar": "^5.0.0", From 9a5c76cc715c880fa90f720b9c29653b8fce2f4b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Oct 2026 10:29:32 -0400 Subject: [PATCH 06/51] chore(deps): update dependency cspell to v10.3.6 (#4770) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 260 +++++++++++++++++++++++----------------------- 1 file changed, 130 insertions(+), 130 deletions(-) diff --git a/package-lock.json b/package-lock.json index 50f9105d47..0dff7b1f06 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2149,9 +2149,9 @@ ] }, "node_modules/@cspell/cspell-bundled-dicts": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-10.3.5.tgz", - "integrity": "sha512-gmgpSYyPP1kAZrKVulmJ+lycQUEFG54n2dsMxLfPtBcTpOhvFZUHfyzLmpkukujU8JySOeCSjynEtqIPqzxvUg==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-10.3.6.tgz", + "integrity": "sha512-C3ggnJkA3q6/uap0h/UY1CH6SsAzfn6Y5xUDoA1PH7OJUtgGgrW/LY/vo2orN6ppH072L0Ke+sxSEY1OSBRpnA==", "dev": true, "license": "MIT", "dependencies": { @@ -2220,22 +2220,22 @@ } }, "node_modules/@cspell/cspell-json-reporter": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-10.3.5.tgz", - "integrity": "sha512-eB7nQU4pyV9SgT78yfqiaC5IKQkbYPu/3474CqlzKc+uZQ5/J0ujz0JQQgkVlwZf6i0N03mSQr/LI/iLmMWg5g==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-10.3.6.tgz", + "integrity": "sha512-eYwTqMZDIpNntPN+9pLD64ZFWJ9EiQrbas8kB6JXrS7gd+xXnDg6U+k2CmZGCpFKsArPE66PSudYRv+PoAb4CQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-types": "10.3.5" + "@cspell/cspell-types": "10.3.6" }, "engines": { "node": ">=22.18.0" } }, "node_modules/@cspell/cspell-performance-monitor": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/@cspell/cspell-performance-monitor/-/cspell-performance-monitor-10.3.5.tgz", - "integrity": "sha512-ZcnwB607vx9I4Ap8NFn1gDwRZRHAmU41pBgRW0IO2Dceue4zyEE4Hn7uh8I2ODHY0cgqHkueVjNekG7eUPFQ3A==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/@cspell/cspell-performance-monitor/-/cspell-performance-monitor-10.3.6.tgz", + "integrity": "sha512-NISfRQ1bENcT+U9otrj+N1uyizZb7NJ8bXXnB8WYp4OHp7Hztb7wUDiNNcWoF3S8joMfMjxNr6HABeThl/Ohow==", "dev": true, "license": "MIT", "engines": { @@ -2243,9 +2243,9 @@ } }, "node_modules/@cspell/cspell-pipe": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-10.3.5.tgz", - "integrity": "sha512-ZeJCIFmak+UQf7DaBVh0mUFZes7NzbVAUtL8Gyhqmn3QBsIlngs75vVKNtS/4Dqf0HvuzDejUTK3TUtx0pwFAg==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-10.3.6.tgz", + "integrity": "sha512-gh/a0TL5hNSegkDiRFPC4nz4qK0BaLXi+tyoZWWZA9cfkOWsQMHApBxmJcukKeFFPsId2jyep814yy8O3xwdrg==", "dev": true, "license": "MIT", "engines": { @@ -2253,9 +2253,9 @@ } }, "node_modules/@cspell/cspell-resolver": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-10.3.5.tgz", - "integrity": "sha512-UR+wX7rEUMVpOzBo6jhvIB0r5+mg/ZevtqJlj/haxtZaphNDrfcHEt5RUcofKQ03YU2QhlJearMU9RWiPaR1Ww==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-10.3.6.tgz", + "integrity": "sha512-P+90E0ED3qfGhmYqV0JZcASeWBoXqddOsknnU5SYrEbEd5+LAU0SYX2H2p+GPk7uYuPE0IP1eGATfY3KkFlSfg==", "dev": true, "license": "MIT", "dependencies": { @@ -2266,9 +2266,9 @@ } }, "node_modules/@cspell/cspell-service-bus": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-10.3.5.tgz", - "integrity": "sha512-MsVtZ1YoiajW3zObXqqr+6rWHQuk97XKdB2Jl+Wv1djGVmLm5zJQ0ME35iK+OwYicswnBzAO9AIMjn2pPamtUQ==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-10.3.6.tgz", + "integrity": "sha512-4voVfeS+HEJy+bsWTQw9+cX4V2v6aGf97BRQDf0QQs/mlOfa07tLIYto/ZCbjCYUBMix64xziELrmqWkWcf2Kw==", "dev": true, "license": "MIT", "engines": { @@ -2276,9 +2276,9 @@ } }, "node_modules/@cspell/cspell-types": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-10.3.5.tgz", - "integrity": "sha512-zNnZVIE3+BfSG7CN5kLNSNo4US8066BCqoebrVksqo+5cn1LGPhgEPvM93wZwJ+LwCJRCuObEW+5BWn8+sqAWw==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-10.3.6.tgz", + "integrity": "sha512-EJW6qFg/N1KcuNhOBo25nfL6QgrtBg1/KTzzsHpITxHSAnnZmLYCsSmEkunP8Voy4px2lkjDYN3OYEDBvPfd7A==", "dev": true, "license": "MIT", "engines": { @@ -2286,13 +2286,13 @@ } }, "node_modules/@cspell/cspell-worker": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/@cspell/cspell-worker/-/cspell-worker-10.3.5.tgz", - "integrity": "sha512-3M1iFXpHj3gvcDLS+GDBBlGnW8mfsrgeoHNp9WLRTm5YmOlovyYUNEcmDBdYK5Ji7fvrw4Osxob0W89Ny6id4w==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/@cspell/cspell-worker/-/cspell-worker-10.3.6.tgz", + "integrity": "sha512-gzmadwr0R20S8w2gUMqRHd1qQjzJmm8KgFyMVo9Hb7RBaVkqthwITw1FLJW6XqGGcBBZ1nNCfc8OrTOaeA2hxQ==", "dev": true, "license": "MIT", "dependencies": { - "cspell-lib": "10.3.5" + "cspell-lib": "10.3.6" }, "engines": { "node": ">=22.18.0" @@ -2337,9 +2337,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-cpp": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-7.1.2.tgz", - "integrity": "sha512-bkR33oE+ToyD1hwSV4XeEUB9oDkizHRX03CrQfj23tX4VUVbie5vkEHzlKVhcw/Q+fO2dtV/Vz4f6O5M4a2iZQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-7.1.3.tgz", + "integrity": "sha512-2d2MSh+C+xzzdqjLwtt40TdXWDR/pK0q1Q9L5zC+1EPSCIZxlN7CHbhlXWpl0JqUSdy2xaWaWucwnoGznMTneA==", "dev": true, "license": "MIT" }, @@ -2414,9 +2414,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-en-common-misspellings": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.2.2.tgz", - "integrity": "sha512-gu0zS7nm0jgVA2EswgWOR8od8wbNYVgcGzo0pGaDqcSkKS4WhABehLOwbyI0NIEVB+ME6SmckLVGk7g+VD1C6A==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.2.3.tgz", + "integrity": "sha512-rwskWjznsDSZe3ck03BGUNT3UY9MjO1e4E9LJWACFzdDjkdM7uzro2/WfKvZTBVWVnRlzdRXPrtjkUZFI2A66A==", "dev": true, "license": "CC BY-SA 4.0" }, @@ -2463,9 +2463,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-gaming-terms": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-gaming-terms/-/dict-gaming-terms-1.1.2.tgz", - "integrity": "sha512-9XnOvaoTBscq0xuD6KTEIkk9hhdfBkkvJAIsvw3JMcnp1214OCGW8+kako5RqQ2vTZR3Tnf3pc57o7VgkM0q1Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-gaming-terms/-/dict-gaming-terms-1.1.3.tgz", + "integrity": "sha512-hLGzd/f+KX5B/5YxAXuQi4DYEfu6IKudtNFO/Nima3JLXD+8Xn+d0q6VdaBxkWVhGYlzow9o+dce+S9mNtgpMg==", "dev": true, "license": "MIT" }, @@ -2595,9 +2595,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-npm": { - "version": "5.2.50", - "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.2.50.tgz", - "integrity": "sha512-JZhJb0wrWpqnzDBM1VG8f6zZPRCOo6YMxct0hFhgBnbOTIHQiqZf9S1BSXCRMmmQlAWqFXjKNDp+rf7ZiJcO9w==", + "version": "5.2.52", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.2.52.tgz", + "integrity": "sha512-JttzSladJ4KVhfg9QiBM4os+wAKbet2F58wpbM5VJLnL8fAj3xwvBvSxdY64yrW6Y5wdSPHoTCLqXOKoyBJFnA==", "dev": true, "license": "MIT" }, @@ -2616,9 +2616,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-public-licenses": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.16.tgz", - "integrity": "sha512-EQRrPvEOmwhwWezV+W7LjXbIBjiy6y/shrET6Qcpnk3XANTzfvWflf9PnJ5kId/oKWvihFy0za0AV1JHd03pSQ==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.17.tgz", + "integrity": "sha512-Asdumgg3oZ4ki//b2a+beiVIsNZA5thim4t4v3lTDLY/6a8VAPmTjzC3Y2t0x7ywC/bzAhi1KW/fg8JlwHDgig==", "dev": true, "license": "MIT" }, @@ -2668,9 +2668,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-software-terms": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-5.4.5.tgz", - "integrity": "sha512-5PgLJNdaFKeA6iklB0XXjmgNaoLJJqf54oRTD1raG/mgwojVlRnWE1G7x4QH9Gz07h3B3+lMDv1F57Xxs4jang==", + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-5.4.6.tgz", + "integrity": "sha512-r4Xw367hTosVCAQ884nPWhwcy3Jc6YWQFkW1XBdxFGdzdCltzuNf9qdJL1AwiTWMbiRnifIqKaXN0A38WCVEbQ==", "dev": true, "license": "MIT" }, @@ -2724,13 +2724,13 @@ "license": "MIT" }, "node_modules/@cspell/dynamic-import": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-10.3.5.tgz", - "integrity": "sha512-qg+KtbuVMP1WPZO6hj9jux1+UuaCUUoQ+/Rqh0G7LIK+72T81lv8tmJMymiCr31Wjd9w3cs0nOYdPZJ9o0ypQQ==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-10.3.6.tgz", + "integrity": "sha512-HGPM+lUJYIJqzjqEGteEy4w2WSiWxwjc1vBRVTncaxVMpRk5llk6SxnmautqGwvIGbEkipZ1CBuRnFpdwX9dGQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "10.3.5", + "@cspell/url": "10.3.6", "import-meta-resolve": "^4.2.0" }, "engines": { @@ -2738,9 +2738,9 @@ } }, "node_modules/@cspell/filetypes": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/@cspell/filetypes/-/filetypes-10.3.5.tgz", - "integrity": "sha512-sgRV+O8bROVE9Qn6sTRYERdQ5g0jL6v+pxBLkvvQpiCovk9me7ycIDbY6OkRUiggqQr0uBeo/7lu4GtXyMTn8Q==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/@cspell/filetypes/-/filetypes-10.3.6.tgz", + "integrity": "sha512-0zCfqsPhZY/1v6qB87AwpCgduLcVRAMyq+MQN6XhmRTfxrMZF8B4qsJafspOpYQ4XTNw5lyciwx60y1ba151cQ==", "dev": true, "license": "MIT", "engines": { @@ -2748,9 +2748,9 @@ } }, "node_modules/@cspell/rpc": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/@cspell/rpc/-/rpc-10.3.5.tgz", - "integrity": "sha512-+Yei/jfo8anBaRM6eAaV6+W3FvpQX+Ethe+llZRVM4BnSVc8FLoNkTQiZUTrFq85KPDnmAfyI1Q77Fea3rKekA==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/@cspell/rpc/-/rpc-10.3.6.tgz", + "integrity": "sha512-ZWwwYhrlcILvmH389pShyG0ef17lKMza25eSiG6snVnpVcIK96o1Pfr4ylNkbtMlYayvmbt9kLjHroMYdmFmRQ==", "dev": true, "license": "MIT", "engines": { @@ -2758,9 +2758,9 @@ } }, "node_modules/@cspell/strong-weak-map": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-10.3.5.tgz", - "integrity": "sha512-78zH/wgrEJnY4pHmuC2MONaGIp7nQq/eceflF5qIaopnTz9Xn93Tm83BX4Goy1qNXAkgSOuYQibn5hQwx54INw==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-10.3.6.tgz", + "integrity": "sha512-tkvKTTu8GRdNGZbC/Fl8Sat5UsAVhX7qsi4YX9mfd4a/Lrp9x73/mP8wGB637qqBPoN7f9x8ZR6YtTpOFVVfDA==", "dev": true, "license": "MIT", "engines": { @@ -2768,9 +2768,9 @@ } }, "node_modules/@cspell/url": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/@cspell/url/-/url-10.3.5.tgz", - "integrity": "sha512-wC2T2Fex2NIAJqZkAZBDAgDrvG9jWdS2DtbcAI+pCu+C/DDZ/2v9BCbE/rz/jy5/KrUUxEDJR+/MW90s7dX7nQ==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/@cspell/url/-/url-10.3.6.tgz", + "integrity": "sha512-IaEu6ePAWmb8QG+MFdhEnnGBAVhI+Qhph97x0v6RrwytwlyuO6MynaIcuYDCb9aLEDBVrDIGDj/+dplL+Sj8LQ==", "dev": true, "license": "MIT", "engines": { @@ -9716,29 +9716,29 @@ } }, "node_modules/cspell": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-10.3.5.tgz", - "integrity": "sha512-Ru3hh2mpZ1wRt8NR69rp+kMEks+pHfdskwAdFIw0FtV+G9JUJbXV3B0wCc8A5KbQlhnR3vBeEX81V8chgl5g6g==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-10.3.6.tgz", + "integrity": "sha512-RZDeSxy1L82U7I+cF00pG2Bh3nBy0UoNRJF3Xbq4xbbKMZHwQRYrwospDyuIvsYmKjqDSAAciNvAjHOeEhP+5A==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-json-reporter": "10.3.5", - "@cspell/cspell-performance-monitor": "10.3.5", - "@cspell/cspell-pipe": "10.3.5", - "@cspell/cspell-types": "10.3.5", - "@cspell/cspell-worker": "10.3.5", - "@cspell/dynamic-import": "10.3.5", - "@cspell/url": "10.3.5", + "@cspell/cspell-json-reporter": "10.3.6", + "@cspell/cspell-performance-monitor": "10.3.6", + "@cspell/cspell-pipe": "10.3.6", + "@cspell/cspell-types": "10.3.6", + "@cspell/cspell-worker": "10.3.6", + "@cspell/dynamic-import": "10.3.6", + "@cspell/url": "10.3.6", "ansi-regex": "^6.3.0", "chalk": "^6.0.0", "chalk-template": "^1.1.2", "commander": "^15.0.0", - "cspell-config-lib": "10.3.5", - "cspell-dictionary": "10.3.5", - "cspell-gitignore": "10.3.5", - "cspell-glob": "10.3.5", - "cspell-io": "10.3.5", - "cspell-lib": "10.3.5", + "cspell-config-lib": "10.3.6", + "cspell-dictionary": "10.3.6", + "cspell-gitignore": "10.3.6", + "cspell-glob": "10.3.6", + "cspell-io": "10.3.6", + "cspell-lib": "10.3.6", "flatted": "^3.4.4", "semver": "^7.8.5", "tinyglobby": "^0.2.17" @@ -9755,13 +9755,13 @@ } }, "node_modules/cspell-config-lib": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-10.3.5.tgz", - "integrity": "sha512-eAbLtQL72FOL0I6NKqrLXY8aPsKgL0nLHAJNKBg7lhV1hyiJeF71+8lE4qE0Nipx+OsZIUa6MespTKUwmfXd5A==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-10.3.6.tgz", + "integrity": "sha512-3LcA2uIgB90Ucn3xa1lO5VVncHtsD4LZUf2ENBtHVmxFVFw1wvm1hbXL1mhenLY2xJDONGvLKRnNoowUWIZoDQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-types": "10.3.5", + "@cspell/cspell-types": "10.3.6", "comment-json": "^5.0.0", "smol-toml": "^1.8.0", "yaml": "^2.9.0" @@ -9771,16 +9771,16 @@ } }, "node_modules/cspell-dictionary": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-10.3.5.tgz", - "integrity": "sha512-rm+HN3dAs0XulakSodra4s6afLAD8KA+DWx8gniakV4JZBjxdKImNqC3W2yDxQJ6Sn+pI3IjSn6lCeQmwtnfXg==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-10.3.6.tgz", + "integrity": "sha512-retLLs4RFAxrduMfcgGXrHbMBc4fEqFt9pFRAyyH2HOlBmEU7CsBupx91A1FUJXUrGWDnfYwSzhQcWuFAAX8iQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-performance-monitor": "10.3.5", - "@cspell/cspell-pipe": "10.3.5", - "@cspell/cspell-types": "10.3.5", - "cspell-trie-lib": "10.3.5", + "@cspell/cspell-performance-monitor": "10.3.6", + "@cspell/cspell-pipe": "10.3.6", + "@cspell/cspell-types": "10.3.6", + "cspell-trie-lib": "10.3.6", "fast-equals": "^6.0.2" }, "engines": { @@ -9788,15 +9788,15 @@ } }, "node_modules/cspell-gitignore": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-10.3.5.tgz", - "integrity": "sha512-qQLZw+nfa+Zy2okSm3L8YLbonTKkuESChvCa3MLc1rWNLdYF5Vb5wPmsxna2nm90qEAZJBe41ognN47bHQlgJg==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-10.3.6.tgz", + "integrity": "sha512-Nvvbz2JA4c/ykzfzmdRazmKFMAV/dmt7pg+PB5WCCe7oKPjyKTbWoWFMEF3ActteYatV+lyamGLdncJov3rREw==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "10.3.5", - "cspell-glob": "10.3.5", - "cspell-io": "10.3.5" + "@cspell/url": "10.3.6", + "cspell-glob": "10.3.6", + "cspell-io": "10.3.6" }, "bin": { "cspell-gitignore": "bin.mjs" @@ -9806,13 +9806,13 @@ } }, "node_modules/cspell-glob": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-10.3.5.tgz", - "integrity": "sha512-2FcPCV3nHIZrrJxt6mfE38trf6TMt8cZWIn/w/fTD6KdX6gK0a7nKlgMcHPj/EByjNTorKBYxj+tG0G0DBcrgQ==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-10.3.6.tgz", + "integrity": "sha512-mWlrUYSZh2DnXyfi5ZsHlclcd/grSbtZmv1Ug7EO2hPEWzIVctYp4RtaTEwOdjUit3dzybtSXqzqVhd4leZOKQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "10.3.5", + "@cspell/url": "10.3.6", "picomatch": "^4.0.7" }, "engines": { @@ -9833,14 +9833,14 @@ } }, "node_modules/cspell-grammar": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-10.3.5.tgz", - "integrity": "sha512-isBahk4y5BOw12U3Iltb+gejea7gTNhUDE4XOqH/F+38W3HskJL4hRrxA/C8RyT/b+jvu8jy4hKafGzjsuM7oA==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-10.3.6.tgz", + "integrity": "sha512-Z9CCWEcp+Y6lVAUtY8DykG4bcp9LEh09An0qdthRXVutAvkfNKzGeSK+m6IgJNIh+eb6jW1pZ69XoSOHFDADxg==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-pipe": "10.3.5", - "@cspell/cspell-types": "10.3.5" + "@cspell/cspell-pipe": "10.3.6", + "@cspell/cspell-types": "10.3.6" }, "bin": { "cspell-grammar": "bin.mjs" @@ -9850,42 +9850,42 @@ } }, "node_modules/cspell-io": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-10.3.5.tgz", - "integrity": "sha512-3rt3Hen3dDixXQtAjzV8oak/HTjGPqkdYckG2tkwu3Lfe0DnasD+dEGasxRu3uaEWGFY0SDIOUzA9+hi7bxCHA==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-10.3.6.tgz", + "integrity": "sha512-n8iBChxmLLjpFR2BaSYGVwWwM5MK3PQe83QZj6qzastb3lYff0oyH5NVXVQspyglUDy7muViddKkNJ/MbxuV/A==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-service-bus": "10.3.5", - "@cspell/url": "10.3.5" + "@cspell/cspell-service-bus": "10.3.6", + "@cspell/url": "10.3.6" }, "engines": { "node": ">=22.18.0" } }, "node_modules/cspell-lib": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-10.3.5.tgz", - "integrity": "sha512-4o0vN7WoZheOWtuobmm39NcQ7sFpd/80o+d7W3rrc6TDa1hxGJfMcC35dZhLcsAQKbG45fBcIl1KM/W7MRXzDQ==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-10.3.6.tgz", + "integrity": "sha512-zlH+vh5R6/7mEARy0Qsf9fNOihYeb15r0+bKZ0bwx0CDLuyVM1rs/BEAdRIPoaAcqdvdig0ARLdakkgM1zco/g==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-bundled-dicts": "10.3.5", - "@cspell/cspell-performance-monitor": "10.3.5", - "@cspell/cspell-pipe": "10.3.5", - "@cspell/cspell-resolver": "10.3.5", - "@cspell/cspell-types": "10.3.5", - "@cspell/dynamic-import": "10.3.5", - "@cspell/filetypes": "10.3.5", - "@cspell/rpc": "10.3.5", - "@cspell/strong-weak-map": "10.3.5", - "@cspell/url": "10.3.5", - "cspell-config-lib": "10.3.5", - "cspell-dictionary": "10.3.5", - "cspell-glob": "10.3.5", - "cspell-grammar": "10.3.5", - "cspell-io": "10.3.5", - "cspell-trie-lib": "10.3.5", + "@cspell/cspell-bundled-dicts": "10.3.6", + "@cspell/cspell-performance-monitor": "10.3.6", + "@cspell/cspell-pipe": "10.3.6", + "@cspell/cspell-resolver": "10.3.6", + "@cspell/cspell-types": "10.3.6", + "@cspell/dynamic-import": "10.3.6", + "@cspell/filetypes": "10.3.6", + "@cspell/rpc": "10.3.6", + "@cspell/strong-weak-map": "10.3.6", + "@cspell/url": "10.3.6", + "cspell-config-lib": "10.3.6", + "cspell-dictionary": "10.3.6", + "cspell-glob": "10.3.6", + "cspell-grammar": "10.3.6", + "cspell-io": "10.3.6", + "cspell-trie-lib": "10.3.6", "env-paths": "^4.0.0", "gensequence": "^8.0.8", "import-fresh": "^4.0.0", @@ -9912,16 +9912,16 @@ } }, "node_modules/cspell-trie-lib": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-10.3.5.tgz", - "integrity": "sha512-lVeiLN9U8EVrfW05BCSkMlSRPNG9RtjEGQD1cnFrrEKk/Af6Z3CJ+Yi2a6y37RTPQv8o6Tl4tBo3uBh+U6MvLQ==", + "version": "10.3.6", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-10.3.6.tgz", + "integrity": "sha512-8PWHpsMUAl8RcB5Ho+lhrSapjcjO/f7wkF8XOxw4oSAF2mERJEm9ejuTRJyXtDmUtt831HB4f/RwKmVgjJyLGg==", "dev": true, "license": "MIT", "engines": { "node": ">=22.18.0" }, "peerDependencies": { - "@cspell/cspell-types": "10.3.5" + "@cspell/cspell-types": "10.3.6" } }, "node_modules/cspell/node_modules/ansi-regex": { From 8b380625e6e609c929c528b666fe732bc4d8b99d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Oct 2026 10:30:04 -0400 Subject: [PATCH 07/51] chore(deps): update dependency @prismicio/react to v3.5.0 (#4767) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0dff7b1f06..58a1454624 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6259,9 +6259,9 @@ } }, "node_modules/@prismicio/react": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@prismicio/react/-/react-3.4.2.tgz", - "integrity": "sha512-SidnulhV59glv4phajLviuJV8ppmSPKUWa+OD5tsm7S96Xjp1DNZ0KaORWBCWr603ixhRsLZqegDKTz2Ttw07g==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@prismicio/react/-/react-3.5.0.tgz", + "integrity": "sha512-FbNmXFuQKmgPQwfPgcTbj7sj3J83OXIUWNjsE8/l+P6tigbGhdkI+99V1TeNWU/2cRXZ3ZDkb2d40WeWuaftUg==", "license": "Apache-2.0", "workspaces": [ ".", @@ -6271,7 +6271,7 @@ "esm-env": "^1.2.2" }, "engines": { - "node": ">=20" + "node": ">=22" }, "peerDependencies": { "@prismicio/client": "^7", From 6258d913c87c5e9eba1d8d70e2c1b65931a28cdd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Oct 2026 10:30:15 -0400 Subject: [PATCH 08/51] chore(deps): update dependency sass to v1.105.1 (#4771) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 58a1454624..58d7da4f47 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19530,9 +19530,9 @@ "license": "MIT" }, "node_modules/sass": { - "version": "1.105.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.105.0.tgz", - "integrity": "sha512-4EjSuRTyG8M4yRXXY1PT9OUV5zz23xBxJkbIAprohKHqf6HOU4MCpE3U3vAC+iO1gxobBjESNbcj8rYAQZWnyA==", + "version": "1.105.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.105.1.tgz", + "integrity": "sha512-1CnAWPyrrnVQzXGB/DUep1vYCKCm1CIBr+YxjjiW6wk9qtzemnGP4qicH56T2F9S4Hjtv/Ne3jDz8JqfdDU4oA==", "license": "MIT", "dependencies": { "chokidar": "^5.0.0", From e82d814e43279d42670863fa78f6651fb1112eb9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Oct 2026 10:30:37 -0400 Subject: [PATCH 09/51] chore(deps): update dependency @types/node to v24.19.0 (#4768) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v8/react/package-lock.json | 14 +++++++------- static/code/stackblitz/v9/react/package-lock.json | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index d0a1169112..30aab9bb0d 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -1251,12 +1251,12 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.13.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.6.tgz", - "integrity": "sha512-SGrw/h3KPFshy3OE6ZL53LMBG5vGQQ8/gIpiqz/kRZhPJ7HgwCEs8LBuNtWLa8dvGZVpSF7+Bf+c11HUrCb/yg==", + "version": "24.19.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.19.0.tgz", + "integrity": "sha512-zY+5tKxXdhGh1PYI0ac+7juvEu4OI6vWtVVoj5i2m42jxAY1U+zHGt6QCyOFwykdP62sM3MJ9stoYYUw5aCWew==", "license": "MIT", "dependencies": { - "undici-types": "~7.18.0" + "undici-types": ">=7.24.0 <7.24.7" } }, "node_modules/@types/react": { @@ -2026,9 +2026,9 @@ } }, "node_modules/undici-types": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", - "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", + "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", "license": "MIT" }, "node_modules/update-browserslist-db": { diff --git a/static/code/stackblitz/v9/react/package-lock.json b/static/code/stackblitz/v9/react/package-lock.json index 6fc7790af8..e9f8c3b71b 100644 --- a/static/code/stackblitz/v9/react/package-lock.json +++ b/static/code/stackblitz/v9/react/package-lock.json @@ -569,12 +569,12 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.13.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.6.tgz", - "integrity": "sha512-SGrw/h3KPFshy3OE6ZL53LMBG5vGQQ8/gIpiqz/kRZhPJ7HgwCEs8LBuNtWLa8dvGZVpSF7+Bf+c11HUrCb/yg==", + "version": "24.19.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.19.0.tgz", + "integrity": "sha512-zY+5tKxXdhGh1PYI0ac+7juvEu4OI6vWtVVoj5i2m42jxAY1U+zHGt6QCyOFwykdP62sM3MJ9stoYYUw5aCWew==", "license": "MIT", "dependencies": { - "undici-types": "~7.18.0" + "undici-types": ">=7.24.0 <7.24.7" } }, "node_modules/@types/react": { @@ -1200,9 +1200,9 @@ } }, "node_modules/undici-types": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", - "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", + "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", "license": "MIT" }, "node_modules/update-browserslist-db": { From 03f8775187d2e6c115434a813edf8f8fc508a6b2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Oct 2026 10:31:50 -0400 Subject: [PATCH 10/51] chore(deps): update dependency @crowdin/cli to v5.3.0 (#4766) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 62 +++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/package-lock.json b/package-lock.json index 58d7da4f47..96e373563c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2025,9 +2025,9 @@ } }, "node_modules/@crowdin/cli": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@crowdin/cli/-/cli-5.0.2.tgz", - "integrity": "sha512-TBUGFCIzAexEvePLet8aBRUEicB1A8r+A3/3gz+4paVKEc86cHK2CtaNhbto1ptKMRPkgFGXq8Z3f/TaoF09Lw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@crowdin/cli/-/cli-5.3.0.tgz", + "integrity": "sha512-L4rhTfrChM1nMDNCcbX5twniY4/R1PPts8UMeyqxm7ODMYaglq3jXqlMDLDjO/t8YekiP8Y5MwIQzrclFeZ02Q==", "license": "MIT", "bin": { "crowdin": "bin/crowdin.js" @@ -2036,19 +2036,19 @@ "node": ">=20" }, "optionalDependencies": { - "@crowdin/cli-darwin-arm64": "5.0.2", - "@crowdin/cli-darwin-x64": "5.0.2", - "@crowdin/cli-linux-arm64": "5.0.2", - "@crowdin/cli-linux-arm64-musl": "5.0.2", - "@crowdin/cli-linux-x64": "5.0.2", - "@crowdin/cli-linux-x64-musl": "5.0.2", - "@crowdin/cli-win32-x64": "5.0.2" + "@crowdin/cli-darwin-arm64": "5.3.0", + "@crowdin/cli-darwin-x64": "5.3.0", + "@crowdin/cli-linux-arm64": "5.3.0", + "@crowdin/cli-linux-arm64-musl": "5.3.0", + "@crowdin/cli-linux-x64": "5.3.0", + "@crowdin/cli-linux-x64-musl": "5.3.0", + "@crowdin/cli-win32-x64": "5.3.0" } }, "node_modules/@crowdin/cli-darwin-arm64": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@crowdin/cli-darwin-arm64/-/cli-darwin-arm64-5.0.2.tgz", - "integrity": "sha512-gMNXyJYxkfgJF4cAXrss6mgkvPoFOkwRi4PO/93+wlOMTLOQ7ENlq45hbjQqxAsLbysYF1oHyzafaPNlC7JuMQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@crowdin/cli-darwin-arm64/-/cli-darwin-arm64-5.3.0.tgz", + "integrity": "sha512-SPapOiqXLzHmi+xEwIA0ld0GIBT6pKGXy3QvihhWFVHrBdQTpTcrEN6tFWC1+UFnD069nDA49ZW7WTR8FV93vQ==", "cpu": [ "arm64" ], @@ -2059,9 +2059,9 @@ ] }, "node_modules/@crowdin/cli-darwin-x64": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@crowdin/cli-darwin-x64/-/cli-darwin-x64-5.0.2.tgz", - "integrity": "sha512-0iBJLy+kn0W095lFlkPG0jE0uLamFGjSR15N9yW3Q+Yps1zJBVyIH9IpjvALZOEHX0w9l5DZdCWzDowD9GTSQg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@crowdin/cli-darwin-x64/-/cli-darwin-x64-5.3.0.tgz", + "integrity": "sha512-ZkkCXcDQBcSAGHnaHnI1NaddCSXcWZCBCevKThjoJ4Sk+y54gJe/YnlOugZrl4RXvjJr7mpbh2QmJxTl8sQ8sw==", "cpu": [ "x64" ], @@ -2072,9 +2072,9 @@ ] }, "node_modules/@crowdin/cli-linux-arm64": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@crowdin/cli-linux-arm64/-/cli-linux-arm64-5.0.2.tgz", - "integrity": "sha512-8LPMdQqqdVrn5t1KWywv/ewmxslwvUKMaFLFlNj44DFwRyd34yCXM3J56HazepMhuXIBD8tx0W6WMt9axv4j5w==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@crowdin/cli-linux-arm64/-/cli-linux-arm64-5.3.0.tgz", + "integrity": "sha512-hygG99NgyQDJ8mNA4UCyvqmJ8209h2TRJQB3aA6na1F7ITuaMceJ5wYrrlxCteQAKJ7Tebu0tPP3AyBs4AHf/A==", "cpu": [ "arm64" ], @@ -2088,9 +2088,9 @@ ] }, "node_modules/@crowdin/cli-linux-arm64-musl": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@crowdin/cli-linux-arm64-musl/-/cli-linux-arm64-musl-5.0.2.tgz", - "integrity": "sha512-/cfHw6bvPgFCGdIhYyFltGSQt33vgYbK1gFZO3BVGpM4gxLj/7cHz6sU4IRw+vHvSIHanfqeyAZzVLpCsfQwiA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@crowdin/cli-linux-arm64-musl/-/cli-linux-arm64-musl-5.3.0.tgz", + "integrity": "sha512-4NH98a/qgqVx9ydR9skFg8kDLXuLgssRp5rqghEhekgmbS2MWLm+aR9Kii30v2ateci9MirJMgaUi0B0F7m8ZQ==", "cpu": [ "arm64" ], @@ -2104,9 +2104,9 @@ ] }, "node_modules/@crowdin/cli-linux-x64": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@crowdin/cli-linux-x64/-/cli-linux-x64-5.0.2.tgz", - "integrity": "sha512-Fk1abpG2a9tM+49NyZU6l1/OyooNz9ZPIrpsR4xWP/c6ui0rh1l2XjOtbPjvXh2dW3YWemeOqiatW2j+WFj/cg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@crowdin/cli-linux-x64/-/cli-linux-x64-5.3.0.tgz", + "integrity": "sha512-046w21yHd0qiY2qziKbL69r27HXwA6oBrUEnYCzkPmjfUR/JFcQRhKae/jxWLxx8tymobR1W3mUhPc+vP5ZBcA==", "cpu": [ "x64" ], @@ -2120,9 +2120,9 @@ ] }, "node_modules/@crowdin/cli-linux-x64-musl": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@crowdin/cli-linux-x64-musl/-/cli-linux-x64-musl-5.0.2.tgz", - "integrity": "sha512-0BwcXbcBvCqutHyegSUqdUfSSrkNSxaar4y4TZE3Kgfjcw2laiTeOK8CAWhWxk523Jj/3/6P45wById07g0qKQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@crowdin/cli-linux-x64-musl/-/cli-linux-x64-musl-5.3.0.tgz", + "integrity": "sha512-4lP/MO/4KSTZuoB0YIKqzzwY9wmDK4uqggAycRGPs6kyUD6qcyd6JeiFZO0Bi2YFNf8115LPRE3YDGh4EGF3pQ==", "cpu": [ "x64" ], @@ -2136,9 +2136,9 @@ ] }, "node_modules/@crowdin/cli-win32-x64": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@crowdin/cli-win32-x64/-/cli-win32-x64-5.0.2.tgz", - "integrity": "sha512-cMarWbzeJvJ6f0MNwRH2fEEKKUM8gQn+oEtCo2PQ3a3wXXMpOb1gRw96tthgYxaHIHISYxdYalNNITnswLGE/A==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@crowdin/cli-win32-x64/-/cli-win32-x64-5.3.0.tgz", + "integrity": "sha512-Ce1QU5g0cilhBHb5DEt2wBCobZa8LPtveVna+n7tAjl5qE5sun1Tq7I7NPSKpslEe6jBrF+BCA4Ci0XPg4TErQ==", "cpu": [ "x64" ], From ec554264897a5c98b3cf350d8cea88456dd27b9b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Oct 2026 17:36:41 -0400 Subject: [PATCH 11/51] chore(deps): update dependency @prismicio/react to v3.5.1 (#4772) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 96e373563c..15417065ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6259,9 +6259,9 @@ } }, "node_modules/@prismicio/react": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@prismicio/react/-/react-3.5.0.tgz", - "integrity": "sha512-FbNmXFuQKmgPQwfPgcTbj7sj3J83OXIUWNjsE8/l+P6tigbGhdkI+99V1TeNWU/2cRXZ3ZDkb2d40WeWuaftUg==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@prismicio/react/-/react-3.5.1.tgz", + "integrity": "sha512-+hY91LZsywC2NivjkCGYpiwmyeIl2gNAbg0KjLUJVTzJ/LapRLA9RJElq57qWCrWXDVmSkvO88IQd514BU05ew==", "license": "Apache-2.0", "workspaces": [ ".", From f7ab5de5fbbc8a834d4ff3724ccfb99983285bc9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Oct 2026 17:40:16 -0400 Subject: [PATCH 12/51] chore(deps): update dependency @types/node to v24.19.1 (#4773) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v8/react/package-lock.json | 6 +++--- static/code/stackblitz/v9/react/package-lock.json | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index 30aab9bb0d..c69d30146a 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -1251,9 +1251,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.19.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.19.0.tgz", - "integrity": "sha512-zY+5tKxXdhGh1PYI0ac+7juvEu4OI6vWtVVoj5i2m42jxAY1U+zHGt6QCyOFwykdP62sM3MJ9stoYYUw5aCWew==", + "version": "24.19.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.19.1.tgz", + "integrity": "sha512-aS3/DG0oM05K0RIXXP+hKjinGG5IgSSVGzswZxW3O0sS3pH4/fycXundUC9XsszgKCk4gHXylTEK6hyFxVxnoQ==", "license": "MIT", "dependencies": { "undici-types": ">=7.24.0 <7.24.7" diff --git a/static/code/stackblitz/v9/react/package-lock.json b/static/code/stackblitz/v9/react/package-lock.json index e9f8c3b71b..a95ab89271 100644 --- a/static/code/stackblitz/v9/react/package-lock.json +++ b/static/code/stackblitz/v9/react/package-lock.json @@ -569,9 +569,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.19.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.19.0.tgz", - "integrity": "sha512-zY+5tKxXdhGh1PYI0ac+7juvEu4OI6vWtVVoj5i2m42jxAY1U+zHGt6QCyOFwykdP62sM3MJ9stoYYUw5aCWew==", + "version": "24.19.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.19.1.tgz", + "integrity": "sha512-aS3/DG0oM05K0RIXXP+hKjinGG5IgSSVGzswZxW3O0sS3pH4/fycXundUC9XsszgKCk4gHXylTEK6hyFxVxnoQ==", "license": "MIT", "dependencies": { "undici-types": ">=7.24.0 <7.24.7" From c06a94f88c3ce9a961f40fb124706dcbe880f074 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 6 Oct 2026 10:24:42 -0700 Subject: [PATCH 13/51] chore(deps): update dependency vue-tsc to v3.3.12 (#4775) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v8/vue/package-lock.json | 14 +++++++------- static/code/stackblitz/v9/vue/package-lock.json | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index 89569e5168..aeb95d1bad 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -1135,9 +1135,9 @@ "license": "MIT" }, "node_modules/@vue/language-core": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.3.11.tgz", - "integrity": "sha512-QJmpliwAVpC/OxubIByPAhNzsQPRc8/gxlN2qnVzVfIMjMDz/9RnXRFoetjz5yEgXVXyp4LqhXq3V53PjmNzFw==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.3.12.tgz", + "integrity": "sha512-k7uIKR0n4CBidk233y7cac9osnDQ5WRidTl6nsrNvpZ3nf8cx9iJxRVsRzVsoPRHbowT/iKgGMTS9RGov3jeIA==", "dev": true, "license": "MIT", "dependencies": { @@ -2043,14 +2043,14 @@ } }, "node_modules/vue-tsc": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.3.11.tgz", - "integrity": "sha512-gOb0B9rtU2+f1dszwPqSH5kAieIF9ReeLhD3kSRNHv5WZZUQz/JdVXW0RTdqhNTMlQkqKzrTTviqKr/4FYZraQ==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.3.12.tgz", + "integrity": "sha512-kbpaz18O9jPVkXVHD1BEjpUXM6WhXSu+62L1sGGr6Wbzd8GbvkBQWjoj3KZ/C0aq2MZllce7UdtWzwCIYsBMGA==", "dev": true, "license": "MIT", "dependencies": { "@volar/typescript": "2.4.28", - "@vue/language-core": "3.3.11" + "@vue/language-core": "3.3.12" }, "bin": { "vue-tsc": "bin/vue-tsc.js" diff --git a/static/code/stackblitz/v9/vue/package-lock.json b/static/code/stackblitz/v9/vue/package-lock.json index 19206895c5..33dbc41984 100644 --- a/static/code/stackblitz/v9/vue/package-lock.json +++ b/static/code/stackblitz/v9/vue/package-lock.json @@ -447,9 +447,9 @@ "license": "MIT" }, "node_modules/@vue/language-core": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.3.11.tgz", - "integrity": "sha512-QJmpliwAVpC/OxubIByPAhNzsQPRc8/gxlN2qnVzVfIMjMDz/9RnXRFoetjz5yEgXVXyp4LqhXq3V53PjmNzFw==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.3.12.tgz", + "integrity": "sha512-k7uIKR0n4CBidk233y7cac9osnDQ5WRidTl6nsrNvpZ3nf8cx9iJxRVsRzVsoPRHbowT/iKgGMTS9RGov3jeIA==", "dev": true, "license": "MIT", "dependencies": { @@ -1121,14 +1121,14 @@ } }, "node_modules/vue-tsc": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.3.11.tgz", - "integrity": "sha512-gOb0B9rtU2+f1dszwPqSH5kAieIF9ReeLhD3kSRNHv5WZZUQz/JdVXW0RTdqhNTMlQkqKzrTTviqKr/4FYZraQ==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.3.12.tgz", + "integrity": "sha512-kbpaz18O9jPVkXVHD1BEjpUXM6WhXSu+62L1sGGr6Wbzd8GbvkBQWjoj3KZ/C0aq2MZllce7UdtWzwCIYsBMGA==", "dev": true, "license": "MIT", "dependencies": { "@volar/typescript": "2.4.28", - "@vue/language-core": "3.3.11" + "@vue/language-core": "3.3.12" }, "bin": { "vue-tsc": "bin/vue-tsc.js" From 358e21605c57618ad6a24875b9f8940149ac8cce Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 6 Oct 2026 10:25:02 -0700 Subject: [PATCH 14/51] chore(deps): update dependency vitest to v5.0.3 (#4774) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 66 +++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/package-lock.json b/package-lock.json index 15417065ee..033d5d2680 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8009,14 +8009,14 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, "node_modules/@vitest/mocker": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-5.0.2.tgz", - "integrity": "sha512-Z5FS00Q1SJHkB35xATsmWGdQ5WA1/0MV3CDjqyv7GavHv1OfOj145MNfHOlHk7QLes21dKFDHr8EO2zvL+9WGA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-5.0.3.tgz", + "integrity": "sha512-T8sWAIbkSyAjkwTcaEc3Iu0o9A27X1/kdXrizhZkGuSKScRQtRzclfAMpOTcGdXCsqxeWlpGy3XjqaW8CpLORg==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.31", - "@vitest/spy": "5.0.2", + "@vitest/spy": "5.0.3", "estree-walker": "^3.0.3", "magic-string": "^1.2.3" }, @@ -8037,9 +8037,9 @@ } }, "node_modules/@vitest/spy": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-5.0.2.tgz", - "integrity": "sha512-Ijc7T1nT9efNb5LxvjaBrEqw3f/QwUv5EE0nKqZxgqsaV/FxAAZ8baGylA8X/Z2oS4Lp+K74Jr6dTJsDKxJDeg==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-5.0.3.tgz", + "integrity": "sha512-XhFysQTB8AZ+P4gMi+Lpo99vg2AZi0qKpaB9yXQl37+CaMEAPO3iH/wGVnSyL5MPERiLezpqTVtrR6UZH5GCXg==", "dev": true, "license": "MIT", "funding": { @@ -21581,14 +21581,14 @@ } }, "node_modules/vitest": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-5.0.2.tgz", - "integrity": "sha512-7MQrx9pDv5aHiUcovIb/70Ys3tgtkUVgCtledvKdCmEO+/1Dicq5ZqoSxOW034m03oqC+oHOKui2dM6qtMLoJg==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-5.0.3.tgz", + "integrity": "sha512-xMw97S3rjdtj5dkVat7jCsqWBpvchs3RlpQctUqwJD0KkERk40vz2fJ77lDwW/Vzh/pk18eItYAzkodhSes3jQ==", "dev": true, "license": "MIT", "dependencies": { "@types/chai": "^5.2.2", - "@vitest/mocker": "5.0.2", + "@vitest/mocker": "5.0.3", "chai": "^6.2.2", "es-module-lexer": "^2.3.2", "expect-type": "^1.4.0", @@ -21599,7 +21599,7 @@ "tinybench": "^6.1.4", "tinyexec": "^1.3.0", "tinyglobby": "^0.2.17", - "why-is-node-running": "^3.2.1" + "why-is-node-running": "3.2.1" }, "bin": { "vitest": "vitest.mjs" @@ -21614,12 +21614,12 @@ "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "5.0.2", - "@vitest/browser-preview": "5.0.2", + "@vitest/browser-playwright": "5.0.3", + "@vitest/browser-preview": "5.0.3", "@vitest/browser-webdriverio": "^5.0.0-beta.5 || >=5.0.0", - "@vitest/coverage-istanbul": "5.0.2", - "@vitest/coverage-v8": "5.0.2", - "@vitest/ui": "5.0.2", + "@vitest/coverage-istanbul": "5.0.3", + "@vitest/coverage-v8": "5.0.3", + "@vitest/ui": "5.0.3", "happy-dom": "*", "jsdom": "*", "vite": "^6.4.0 || ^7.0.0 || ^8.0.0" @@ -21677,12 +21677,25 @@ } }, "node_modules/vitest/node_modules/std-env": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.2.0.tgz", - "integrity": "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.3.0.tgz", + "integrity": "sha512-OtU/EgQ1kIm5KwqQpBC6ZEMXrZRui11w8zgfTWp8cdO9B8OaPsbA8bTHO2P+HNo1VlUTGMVBwPhydu6poeXiag==", "dev": true, "license": "MIT" }, + "node_modules/vitest/node_modules/why-is-node-running": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-3.2.1.tgz", + "integrity": "sha512-Tb2FUhB4vUsGQlfSquQLYkApkuPAFQXGFzxWKHHumVz2dK+X1RUm/HnID4+TfIGYJ1kTcwOaCk/buYCEJr6YjQ==", + "dev": true, + "license": "MIT", + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=20.11" + } + }, "node_modules/vscode-languageserver-textdocument": { "version": "1.0.15", "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.15.tgz", @@ -22082,19 +22095,6 @@ "node": ">= 8" } }, - "node_modules/why-is-node-running": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-3.2.2.tgz", - "integrity": "sha512-NKUzAelcoCXhXL4dJzKIwXeR8iEVqsA0Lq6Vnd0UXvgaKbzVo4ZTHROF2Jidrv+SgxOQ03fMinnNhzZATxOD3A==", - "dev": true, - "license": "MIT", - "bin": { - "why-is-node-running": "cli.js" - }, - "engines": { - "node": ">=20.11" - } - }, "node_modules/widest-line": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", From a4c1d240bfe992568f02624b2f9d22c7b64471bc Mon Sep 17 00:00:00 2001 From: Shane Date: Thu, 8 Oct 2026 08:25:37 -0700 Subject: [PATCH 15/51] docs(hardware-back-button): query IonRouterOutlet with @ViewChild in Angular exit app example (#4776) --- docs/developing/hardware-back-button.mdx | 24 +++++++++---------- .../developing/hardware-back-button.mdx | 24 +++++++++---------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/docs/developing/hardware-back-button.mdx b/docs/developing/hardware-back-button.mdx index 5ae0b32a07..eed9f7fdb8 100644 --- a/docs/developing/hardware-back-button.mdx +++ b/docs/developing/hardware-back-button.mdx @@ -314,18 +314,17 @@ document.addEventListener('ionBackButton', (event: BackButtonEvent) => { ```tsx -import { Optional } from '@angular/core'; +import { ViewChild } from '@angular/core'; import { IonRouterOutlet, Platform } from '@ionic/angular/lazy'; import { App } from '@capacitor/app'; ... -constructor( - private platform: Platform, - @Optional() private routerOutlet?: IonRouterOutlet -) { +@ViewChild(IonRouterOutlet, { static: true }) routerOutlet?: IonRouterOutlet; + +constructor(private platform: Platform) { this.platform.backButton.subscribeWithPriority(-1, () => { - if (!this.routerOutlet.canGoBack()) { + if (this.routerOutlet && !this.routerOutlet.canGoBack()) { App.exitApp(); } }); @@ -336,18 +335,17 @@ constructor( ```tsx -import { Optional } from '@angular/core'; +import { ViewChild } from '@angular/core'; import { IonRouterOutlet, Platform } from '@ionic/angular'; import { App } from '@capacitor/app'; ... -constructor( - private platform: Platform, - @Optional() private routerOutlet?: IonRouterOutlet -) { +@ViewChild(IonRouterOutlet, { static: true }) routerOutlet?: IonRouterOutlet; + +constructor(private platform: Platform) { this.platform.backButton.subscribeWithPriority(-1, () => { - if (!this.routerOutlet.canGoBack()) { + if (this.routerOutlet && !this.routerOutlet.canGoBack()) { App.exitApp(); } }); @@ -396,6 +394,8 @@ This example shows the application exiting when the user presses the hardware ba It is recommended to check whether or not the user is on the root page prior to exiting the application. Developers can use the `canGoBack` method on `IonRouterOutlet` in Ionic Angular and `IonRouter` in Ionic React and Ionic Vue. +In Ionic Angular, `IonRouterOutlet` can only be injected into components rendered inside the outlet. The component whose template contains `ion-router-outlet`, such as `AppComponent`, should query it with `@ViewChild`, as demonstrated in the example above. + ## Internal Framework Handlers {/* #internal-framework-handlers */} The table below lists all of the internal hardware back button event handlers that Ionic Framework uses. The `Propagates` column notes whether or not that particular handler tells Ionic Framework to call the next back button handler. diff --git a/versioned_docs/version-v8/developing/hardware-back-button.mdx b/versioned_docs/version-v8/developing/hardware-back-button.mdx index 22646de197..7bb9f38904 100644 --- a/versioned_docs/version-v8/developing/hardware-back-button.mdx +++ b/versioned_docs/version-v8/developing/hardware-back-button.mdx @@ -314,18 +314,17 @@ document.addEventListener('ionBackButton', (event: BackButtonEvent) => { ```tsx -import { Optional } from '@angular/core'; +import { ViewChild } from '@angular/core'; import { IonRouterOutlet, Platform } from '@ionic/angular'; import { App } from '@capacitor/app'; ... -constructor( - private platform: Platform, - @Optional() private routerOutlet?: IonRouterOutlet -) { +@ViewChild(IonRouterOutlet, { static: true }) routerOutlet?: IonRouterOutlet; + +constructor(private platform: Platform) { this.platform.backButton.subscribeWithPriority(-1, () => { - if (!this.routerOutlet.canGoBack()) { + if (this.routerOutlet && !this.routerOutlet.canGoBack()) { App.exitApp(); } }); @@ -336,18 +335,17 @@ constructor( ```tsx -import { Optional } from '@angular/core'; +import { ViewChild } from '@angular/core'; import { IonRouterOutlet, Platform } from '@ionic/angular/standalone'; import { App } from '@capacitor/app'; ... -constructor( - private platform: Platform, - @Optional() private routerOutlet?: IonRouterOutlet -) { +@ViewChild(IonRouterOutlet, { static: true }) routerOutlet?: IonRouterOutlet; + +constructor(private platform: Platform) { this.platform.backButton.subscribeWithPriority(-1, () => { - if (!this.routerOutlet.canGoBack()) { + if (this.routerOutlet && !this.routerOutlet.canGoBack()) { App.exitApp(); } }); @@ -396,6 +394,8 @@ This example shows the application exiting when the user presses the hardware ba It is recommended to check whether or not the user is on the root page prior to exiting the application. Developers can use the `canGoBack` method on `IonRouterOutlet` in Ionic Angular and `IonRouter` in Ionic React and Ionic Vue. +In Ionic Angular, `IonRouterOutlet` can only be injected into components rendered inside the outlet. The component whose template contains `ion-router-outlet`, such as `AppComponent`, should query it with `@ViewChild`, as demonstrated in the example above. + ## Internal Framework Handlers The table below lists all of the internal hardware back button event handlers that Ionic Framework uses. The `Propagates` column notes whether or not that particular handler tells Ionic Framework to call the next back button handler. From b71c55c6a99592d7e6a9279c22d6fb3fc7bfd1f6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 8 Oct 2026 08:26:18 -0700 Subject: [PATCH 16/51] chore(deps): update ionic to v9.0.7 (#4778) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../stackblitz/v9/angular/package-lock.json | 18 ++++++------ .../code/stackblitz/v9/angular/package.json | 4 +-- .../code/stackblitz/v9/html/package-lock.json | 8 +++--- static/code/stackblitz/v9/html/package.json | 2 +- .../stackblitz/v9/react/package-lock.json | 28 +++++++++---------- static/code/stackblitz/v9/react/package.json | 4 +-- .../code/stackblitz/v9/vue/package-lock.json | 26 ++++++++--------- static/code/stackblitz/v9/vue/package.json | 4 +-- 8 files changed, 47 insertions(+), 47 deletions(-) diff --git a/static/code/stackblitz/v9/angular/package-lock.json b/static/code/stackblitz/v9/angular/package-lock.json index de4f9b3d3a..cd42441814 100644 --- a/static/code/stackblitz/v9/angular/package-lock.json +++ b/static/code/stackblitz/v9/angular/package-lock.json @@ -14,8 +14,8 @@ "@angular/platform-browser": "^22.0.0", "@angular/platform-browser-dynamic": "^22.0.0", "@angular/router": "^22.0.0", - "@ionic/angular": "9.0.6", - "@ionic/core": "9.0.6", + "@ionic/angular": "9.0.7", + "@ionic/core": "9.0.7", "ionicons": "8.1.0", "rxjs": "^7.8.1", "tslib": "^2.5.0" @@ -2578,12 +2578,12 @@ } }, "node_modules/@ionic/angular": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-9.0.6.tgz", - "integrity": "sha512-XgdKn87zqNAJF0bSQDuKhtXIc0mYU8Ic05pq5Vd+Rj81WhnvSilbqVZY5vMZhVXNsdiWcvf4VZHGK8CMacirHg==", + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-9.0.7.tgz", + "integrity": "sha512-Ca/kboiVFu86O2fOuPDftV54/iwb7Z1mQwZfcuJZ5tk7w9lR5e2f7p3/FzpQQyPJWMmBuZdJxn4QmwXNo8AwXg==", "license": "MIT", "dependencies": { - "@ionic/core": "9.0.6", + "@ionic/core": "9.0.7", "ionicons": "^8.0.13", "jsonc-parser": "^3.0.0", "tslib": "^2.3.0" @@ -2602,9 +2602,9 @@ } }, "node_modules/@ionic/core": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.6.tgz", - "integrity": "sha512-WWxjOjwKPU75BuEhc42t3n2Tn89YEDe5Pce9kA61w/TlWVM3tqiAYC+qfR9MXmER4pQcST01oM2gftheMzcV6g==", + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.7.tgz", + "integrity": "sha512-ypaMX9RujNJa9V12ex614dkvadggc1QGPaF+qq0ZO7WyLilseMfsEv7FiY1J+o2LnXyr++gOPwpvZnE2hvL0Lg==", "license": "MIT", "dependencies": { "@stencil/core": "^4.44.2", diff --git a/static/code/stackblitz/v9/angular/package.json b/static/code/stackblitz/v9/angular/package.json index a3708e2829..8d30c0d545 100644 --- a/static/code/stackblitz/v9/angular/package.json +++ b/static/code/stackblitz/v9/angular/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^22.0.0", "@angular/platform-browser-dynamic": "^22.0.0", "@angular/router": "^22.0.0", - "@ionic/angular": "9.0.6", - "@ionic/core": "9.0.6", + "@ionic/angular": "9.0.7", + "@ionic/core": "9.0.7", "ionicons": "8.1.0", "rxjs": "^7.8.1", "tslib": "^2.5.0" diff --git a/static/code/stackblitz/v9/html/package-lock.json b/static/code/stackblitz/v9/html/package-lock.json index e57e78b2fb..65b3afe187 100644 --- a/static/code/stackblitz/v9/html/package-lock.json +++ b/static/code/stackblitz/v9/html/package-lock.json @@ -6,7 +6,7 @@ "": { "name": "html-starter", "dependencies": { - "@ionic/core": "9.0.6", + "@ionic/core": "9.0.7", "ionicons": "8.1.0" }, "devDependencies": { @@ -16,9 +16,9 @@ } }, "node_modules/@ionic/core": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.6.tgz", - "integrity": "sha512-WWxjOjwKPU75BuEhc42t3n2Tn89YEDe5Pce9kA61w/TlWVM3tqiAYC+qfR9MXmER4pQcST01oM2gftheMzcV6g==", + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.7.tgz", + "integrity": "sha512-ypaMX9RujNJa9V12ex614dkvadggc1QGPaF+qq0ZO7WyLilseMfsEv7FiY1J+o2LnXyr++gOPwpvZnE2hvL0Lg==", "license": "MIT", "dependencies": { "@stencil/core": "^4.44.2", diff --git a/static/code/stackblitz/v9/html/package.json b/static/code/stackblitz/v9/html/package.json index a2dd491c31..474956ffd2 100644 --- a/static/code/stackblitz/v9/html/package.json +++ b/static/code/stackblitz/v9/html/package.json @@ -9,7 +9,7 @@ "start": "vite preview" }, "dependencies": { - "@ionic/core": "9.0.6", + "@ionic/core": "9.0.7", "ionicons": "8.1.0" }, "devDependencies": { diff --git a/static/code/stackblitz/v9/react/package-lock.json b/static/code/stackblitz/v9/react/package-lock.json index a95ab89271..3b2b601d53 100644 --- a/static/code/stackblitz/v9/react/package-lock.json +++ b/static/code/stackblitz/v9/react/package-lock.json @@ -8,8 +8,8 @@ "name": "vite-react-typescript", "version": "0.1.0", "dependencies": { - "@ionic/react": "9.0.6", - "@ionic/react-router": "9.0.6", + "@ionic/react": "9.0.7", + "@ionic/react-router": "9.0.7", "@types/node": "^24.0.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", @@ -254,9 +254,9 @@ "license": "MIT" }, "node_modules/@ionic/core": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.6.tgz", - "integrity": "sha512-WWxjOjwKPU75BuEhc42t3n2Tn89YEDe5Pce9kA61w/TlWVM3tqiAYC+qfR9MXmER4pQcST01oM2gftheMzcV6g==", + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.7.tgz", + "integrity": "sha512-ypaMX9RujNJa9V12ex614dkvadggc1QGPaF+qq0ZO7WyLilseMfsEv7FiY1J+o2LnXyr++gOPwpvZnE2hvL0Lg==", "license": "MIT", "dependencies": { "@stencil/core": "^4.44.2", @@ -268,12 +268,12 @@ } }, "node_modules/@ionic/react": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-9.0.6.tgz", - "integrity": "sha512-WAcbe7ZDIDqQaXvcAF7+AxpYW3Y3HFvZbDnpwQtoSUo8RTAw+AQQOTTSlp1eHOjwqpVqYceBFAdhfNbzBfw/1w==", + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-9.0.7.tgz", + "integrity": "sha512-KavLmQ2UBGHMbCX5qTjSRIGqgVcHJbZjEJFCjVxueVRflYy2SbYow63BL4xHSPALRB25jnu5bvaW9DqXExrg0w==", "license": "MIT", "dependencies": { - "@ionic/core": "9.0.6", + "@ionic/core": "9.0.7", "@stencil/react-output-target": "^1.6.2", "ionicons": "^8.0.13", "tslib": "*" @@ -284,13 +284,13 @@ } }, "node_modules/@ionic/react-router": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-9.0.6.tgz", - "integrity": "sha512-YHw3ss1AemSRZArEvi7MITTE2JrrLW/su0ZGl51pShKLZdH5TKI0dM+0BzsBbZ1Xmi423t8NRjZseYk3do/NQg==", + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-9.0.7.tgz", + "integrity": "sha512-cWn0doH4N1C/mv5qKiOTjBGJ8KbwpdIiLy/478M1h13ArncKpVgySRPvBvdPunDutQcQZa8M1bjiYz3L96Or4Q==", "license": "MIT", "dependencies": { - "@ionic/core": "9.0.6", - "@ionic/react": "9.0.6", + "@ionic/core": "9.0.7", + "@ionic/react": "9.0.7", "tslib": "*" }, "peerDependencies": { diff --git a/static/code/stackblitz/v9/react/package.json b/static/code/stackblitz/v9/react/package.json index 2e16e25a05..f6b95bed31 100644 --- a/static/code/stackblitz/v9/react/package.json +++ b/static/code/stackblitz/v9/react/package.json @@ -3,8 +3,8 @@ "version": "0.1.0", "private": true, "dependencies": { - "@ionic/react": "9.0.6", - "@ionic/react-router": "9.0.6", + "@ionic/react": "9.0.7", + "@ionic/react-router": "9.0.7", "@types/node": "^24.0.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", diff --git a/static/code/stackblitz/v9/vue/package-lock.json b/static/code/stackblitz/v9/vue/package-lock.json index 33dbc41984..28bb3c19f0 100644 --- a/static/code/stackblitz/v9/vue/package-lock.json +++ b/static/code/stackblitz/v9/vue/package-lock.json @@ -8,8 +8,8 @@ "name": "vite-vue-starter", "version": "0.0.0", "dependencies": { - "@ionic/vue": "9.0.6", - "@ionic/vue-router": "9.0.6", + "@ionic/vue": "9.0.7", + "@ionic/vue-router": "9.0.7", "vue": "^3.2.25", "vue-router": "5.3.1" }, @@ -63,9 +63,9 @@ } }, "node_modules/@ionic/core": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.6.tgz", - "integrity": "sha512-WWxjOjwKPU75BuEhc42t3n2Tn89YEDe5Pce9kA61w/TlWVM3tqiAYC+qfR9MXmER4pQcST01oM2gftheMzcV6g==", + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.7.tgz", + "integrity": "sha512-ypaMX9RujNJa9V12ex614dkvadggc1QGPaF+qq0ZO7WyLilseMfsEv7FiY1J+o2LnXyr++gOPwpvZnE2hvL0Lg==", "license": "MIT", "dependencies": { "@stencil/core": "^4.44.2", @@ -77,23 +77,23 @@ } }, "node_modules/@ionic/vue": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-9.0.6.tgz", - "integrity": "sha512-Bg8RqfnsVejulSXF+YENjZBtx1cEwZPUZAA47oLhFceYlSodapLI2qWeHgn6hgKmapCe+GzyJQIuxyRIfXqlXQ==", + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-9.0.7.tgz", + "integrity": "sha512-oFHXIM5eMukVEB27J7/iWYSyqNPF6ILxdCXiGyCqFEkJ32Tna6ayt2+F4p+e8hghCUZS1PC12KMypqTut9OH2Q==", "license": "MIT", "dependencies": { - "@ionic/core": "9.0.6", + "@ionic/core": "9.0.7", "@stencil/vue-output-target": "0.14.2", "ionicons": "^8.0.13" } }, "node_modules/@ionic/vue-router": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-9.0.6.tgz", - "integrity": "sha512-kxc+6Ix648UL6Nr2MAetcTE8RHRXt7nP03C5KnuFgXaL5wC+YZKnGMQL0BAnROVTdu5ARTyA2CDKLBDGhDe/Gg==", + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-9.0.7.tgz", + "integrity": "sha512-LSPScX2iZb4jSjVyf1Q1bttE+BT1LXCFFfJ6P9FVZrIiMRT64g4Go7YF/ka8ooBx38lqQmELaBxIn2rR36WXIA==", "license": "MIT", "dependencies": { - "@ionic/vue": "9.0.6" + "@ionic/vue": "9.0.7" } }, "node_modules/@jridgewell/gen-mapping": { diff --git a/static/code/stackblitz/v9/vue/package.json b/static/code/stackblitz/v9/vue/package.json index 15a3b7b12a..9dca17c77a 100644 --- a/static/code/stackblitz/v9/vue/package.json +++ b/static/code/stackblitz/v9/vue/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@ionic/vue": "9.0.6", - "@ionic/vue-router": "9.0.6", + "@ionic/vue": "9.0.7", + "@ionic/vue-router": "9.0.7", "vue": "^3.2.25", "vue-router": "5.3.1" }, From faa2958f926479381e1ae74c3fad854574576fe3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 8 Oct 2026 12:40:41 -0700 Subject: [PATCH 17/51] chore(deps): update dependency web-vitals to v6.2.3 (#4777) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v8/react/package-lock.json | 6 +++--- static/code/stackblitz/v9/react/package-lock.json | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index c69d30146a..098f45d3bd 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -2142,9 +2142,9 @@ } }, "node_modules/web-vitals": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-6.2.2.tgz", - "integrity": "sha512-oto5x6dLEgrRqfcWed+pZEUb2q6ikbFmqF54CRDhI/QGbn+qxC49b4C4OkbH+kb9C3a8shpFD3SgR9kRcs80ZQ==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-6.2.3.tgz", + "integrity": "sha512-Dmy+vdO1UPMqXiAtZSNayhl4f794Bxfd94W4HIj2HlYtczEQfEOon969memlcpcHrTuOKLa5baFjX7WbgmOq+A==", "license": "Apache-2.0" }, "node_modules/yallist": { diff --git a/static/code/stackblitz/v9/react/package-lock.json b/static/code/stackblitz/v9/react/package-lock.json index 3b2b601d53..8986b01cf8 100644 --- a/static/code/stackblitz/v9/react/package-lock.json +++ b/static/code/stackblitz/v9/react/package-lock.json @@ -1306,9 +1306,9 @@ } }, "node_modules/web-vitals": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-6.2.2.tgz", - "integrity": "sha512-oto5x6dLEgrRqfcWed+pZEUb2q6ikbFmqF54CRDhI/QGbn+qxC49b4C4OkbH+kb9C3a8shpFD3SgR9kRcs80ZQ==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-6.2.3.tgz", + "integrity": "sha512-Dmy+vdO1UPMqXiAtZSNayhl4f794Bxfd94W4HIj2HlYtczEQfEOon969memlcpcHrTuOKLa5baFjX7WbgmOq+A==", "license": "Apache-2.0" }, "node_modules/yallist": { From 6b540d677c23b44f3c05d624f1d93413e32adf4a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 9 Oct 2026 06:39:16 -0700 Subject: [PATCH 18/51] chore(deps): update dependency vite to v7.3.7 (#4781) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v8/react/package-lock.json | 6 +++--- static/code/stackblitz/v9/react/package-lock.json | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index 098f45d3bd..3e79587149 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -2068,9 +2068,9 @@ "license": "MIT" }, "node_modules/vite": { - "version": "7.3.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.6.tgz", - "integrity": "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.7.tgz", + "integrity": "sha512-AHEzTORMbi7/7aXp7w7KZ5+DCUdSeLsJz0grY8xHpc9DHdYb0vQu6DqJfm2tOw3gDExNgPgnJTXxM6syYFHaCA==", "license": "MIT", "dependencies": { "esbuild": "^0.27.0 || ^0.28.0", diff --git a/static/code/stackblitz/v9/react/package-lock.json b/static/code/stackblitz/v9/react/package-lock.json index 8986b01cf8..d5491339ff 100644 --- a/static/code/stackblitz/v9/react/package-lock.json +++ b/static/code/stackblitz/v9/react/package-lock.json @@ -1234,7 +1234,9 @@ } }, "node_modules/vite": { - "version": "7.3.6", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.7.tgz", + "integrity": "sha512-AHEzTORMbi7/7aXp7w7KZ5+DCUdSeLsJz0grY8xHpc9DHdYb0vQu6DqJfm2tOw3gDExNgPgnJTXxM6syYFHaCA==", "license": "MIT", "dependencies": { "esbuild": "^0.27.0 || ^0.28.0", From ed3efe6c8979a3463de75ab1590de69680ec21dc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 9 Oct 2026 06:39:36 -0700 Subject: [PATCH 19/51] chore(deps): update dependency vite to v7.3.7 (#4780) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v8/html/package-lock.json | 6 +++--- static/code/stackblitz/v9/html/package-lock.json | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/static/code/stackblitz/v8/html/package-lock.json b/static/code/stackblitz/v8/html/package-lock.json index a38aeeced4..7072660f32 100644 --- a/static/code/stackblitz/v8/html/package-lock.json +++ b/static/code/stackblitz/v8/html/package-lock.json @@ -1463,9 +1463,9 @@ } }, "node_modules/vite": { - "version": "7.3.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.6.tgz", - "integrity": "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.7.tgz", + "integrity": "sha512-AHEzTORMbi7/7aXp7w7KZ5+DCUdSeLsJz0grY8xHpc9DHdYb0vQu6DqJfm2tOw3gDExNgPgnJTXxM6syYFHaCA==", "dev": true, "license": "MIT", "dependencies": { diff --git a/static/code/stackblitz/v9/html/package-lock.json b/static/code/stackblitz/v9/html/package-lock.json index 65b3afe187..2cee5e1598 100644 --- a/static/code/stackblitz/v9/html/package-lock.json +++ b/static/code/stackblitz/v9/html/package-lock.json @@ -512,7 +512,9 @@ } }, "node_modules/vite": { - "version": "7.3.6", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.7.tgz", + "integrity": "sha512-AHEzTORMbi7/7aXp7w7KZ5+DCUdSeLsJz0grY8xHpc9DHdYb0vQu6DqJfm2tOw3gDExNgPgnJTXxM6syYFHaCA==", "dev": true, "license": "MIT", "dependencies": { From 49cb49eb1e425afc8299ef8334b314137e9f0584 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 9 Oct 2026 08:34:23 -0700 Subject: [PATCH 20/51] chore(deps): update dependency vite to v7.3.7 (#4782) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v8/vue/package-lock.json | 6 +++--- static/code/stackblitz/v9/vue/package-lock.json | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index aeb95d1bad..edd3feb296 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -1892,9 +1892,9 @@ } }, "node_modules/vite": { - "version": "7.3.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.6.tgz", - "integrity": "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.7.tgz", + "integrity": "sha512-AHEzTORMbi7/7aXp7w7KZ5+DCUdSeLsJz0grY8xHpc9DHdYb0vQu6DqJfm2tOw3gDExNgPgnJTXxM6syYFHaCA==", "devOptional": true, "license": "MIT", "dependencies": { diff --git a/static/code/stackblitz/v9/vue/package-lock.json b/static/code/stackblitz/v9/vue/package-lock.json index 28bb3c19f0..1dc5291f54 100644 --- a/static/code/stackblitz/v9/vue/package-lock.json +++ b/static/code/stackblitz/v9/vue/package-lock.json @@ -974,7 +974,9 @@ } }, "node_modules/vite": { - "version": "7.3.6", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.7.tgz", + "integrity": "sha512-AHEzTORMbi7/7aXp7w7KZ5+DCUdSeLsJz0grY8xHpc9DHdYb0vQu6DqJfm2tOw3gDExNgPgnJTXxM6syYFHaCA==", "devOptional": true, "license": "MIT", "dependencies": { From fb8bec15db389c7fdac9515ea40e2c3dc07f0ec7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Oct 2026 11:45:12 -0400 Subject: [PATCH 21/51] chore(deps): update dependency @types/node to v24.19.2 (#4785) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v8/react/package-lock.json | 6 +++--- static/code/stackblitz/v9/react/package-lock.json | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index 3e79587149..c2f8811153 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -1251,9 +1251,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.19.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.19.1.tgz", - "integrity": "sha512-aS3/DG0oM05K0RIXXP+hKjinGG5IgSSVGzswZxW3O0sS3pH4/fycXundUC9XsszgKCk4gHXylTEK6hyFxVxnoQ==", + "version": "24.19.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.19.2.tgz", + "integrity": "sha512-93d49wCWJkCyN87MxLpNN6KXPCwFw7bVUg79mGUV1OS40JGWwVCr8n61DXCSqz7CV6/VfPkb7xec7uP2M+QHWQ==", "license": "MIT", "dependencies": { "undici-types": ">=7.24.0 <7.24.7" diff --git a/static/code/stackblitz/v9/react/package-lock.json b/static/code/stackblitz/v9/react/package-lock.json index d5491339ff..beef0578c4 100644 --- a/static/code/stackblitz/v9/react/package-lock.json +++ b/static/code/stackblitz/v9/react/package-lock.json @@ -569,9 +569,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.19.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.19.1.tgz", - "integrity": "sha512-aS3/DG0oM05K0RIXXP+hKjinGG5IgSSVGzswZxW3O0sS3pH4/fycXundUC9XsszgKCk4gHXylTEK6hyFxVxnoQ==", + "version": "24.19.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.19.2.tgz", + "integrity": "sha512-93d49wCWJkCyN87MxLpNN6KXPCwFw7bVUg79mGUV1OS40JGWwVCr8n61DXCSqz7CV6/VfPkb7xec7uP2M+QHWQ==", "license": "MIT", "dependencies": { "undici-types": ">=7.24.0 <7.24.7" From 4a7516d9d61bd2d52b01b8710c83540ab0d3dd6c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Oct 2026 12:19:29 -0400 Subject: [PATCH 22/51] chore(deps): update dependency @vitejs/plugin-vue to v6.0.10 (#4786) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v8/vue/package-lock.json | 8 ++++---- static/code/stackblitz/v9/vue/package-lock.json | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index edd3feb296..53452e4fef 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -985,9 +985,9 @@ "license": "MIT" }, "node_modules/@vitejs/plugin-vue": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.9.tgz", - "integrity": "sha512-rD/MORlhaZMlXWW0rEn4FB4wMinWC0z/D7Ye160S5+Rs1mC8ZDAdcDp4SjKfUhG5t8q1ktcPVw4xuTkPRlzrSA==", + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.10.tgz", + "integrity": "sha512-b80aUQh3n+qEzzZm5oQp3rT2QImeCx58K6eFl/RkJ3d65KW0kTuv5lNsLRVAjbW9YRUpo/wzmvzMgV34bTAItA==", "dev": true, "license": "MIT", "dependencies": { @@ -998,7 +998,7 @@ }, "peerDependencies": { "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", - "vue": "^3.2.25" + "vue": "^3.2.25 || ^3.6.0-rc.10" } }, "node_modules/@volar/language-core": { diff --git a/static/code/stackblitz/v9/vue/package-lock.json b/static/code/stackblitz/v9/vue/package-lock.json index 1dc5291f54..e511c31fde 100644 --- a/static/code/stackblitz/v9/vue/package-lock.json +++ b/static/code/stackblitz/v9/vue/package-lock.json @@ -303,9 +303,9 @@ "license": "MIT" }, "node_modules/@vitejs/plugin-vue": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.9.tgz", - "integrity": "sha512-rD/MORlhaZMlXWW0rEn4FB4wMinWC0z/D7Ye160S5+Rs1mC8ZDAdcDp4SjKfUhG5t8q1ktcPVw4xuTkPRlzrSA==", + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.10.tgz", + "integrity": "sha512-b80aUQh3n+qEzzZm5oQp3rT2QImeCx58K6eFl/RkJ3d65KW0kTuv5lNsLRVAjbW9YRUpo/wzmvzMgV34bTAItA==", "dev": true, "license": "MIT", "dependencies": { @@ -316,7 +316,7 @@ }, "peerDependencies": { "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", - "vue": "^3.2.25" + "vue": "^3.2.25 || ^3.6.0-rc.10" } }, "node_modules/@volar/language-core": { From d72ad20f80b890a731a1818c78980e601a11b66a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Oct 2026 12:20:04 -0400 Subject: [PATCH 23/51] chore(deps): update dependency @prismicio/client to v7.22.3 (#4783) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 033d5d2680..e2279ff544 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6247,15 +6247,15 @@ "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==" }, "node_modules/@prismicio/client": { - "version": "7.22.1", - "resolved": "https://registry.npmjs.org/@prismicio/client/-/client-7.22.1.tgz", - "integrity": "sha512-7W86TSmGMtE/LVFduePP2Lznk0qC6sennOyw7kRfVbVtyfFD7BMs8H9vyOp8LvtSrzNoJh3/p9gj46v8Oc8h1Q==", + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@prismicio/client/-/client-7.22.3.tgz", + "integrity": "sha512-IOaRlqBSbb7HRaf61bkD7dzGdRvE5qNRjmcdMW/W52Qn0C9y8w3jGW+NJzxKKUs8youR6FilGoh6xqC2t8Sonw==", "license": "Apache-2.0", "dependencies": { "imgix-url-builder": "^0.0.6" }, "engines": { - "node": ">=20" + "node": ">=22" } }, "node_modules/@prismicio/react": { From 086689d31448a56d1502bc00325dbf552c90907a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Oct 2026 12:20:32 -0400 Subject: [PATCH 24/51] chore(deps): update actions/setup-node action to v7.1.0 (#4784) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/CI.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 69ef7cea29..3d3c22755f 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -36,7 +36,7 @@ jobs: steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: ⚙️ Use Node.js - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 + uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 with: node-version: ${{ env.NODE_VERSION }} cache: npm @@ -78,7 +78,7 @@ jobs: steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: ⚙️ Use Node.js - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 + uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 with: node-version: ${{ env.NODE_VERSION }} cache: npm From 8c073b34e796ff71e1ebbeea6829e0b86709d32f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Oct 2026 11:29:22 -0400 Subject: [PATCH 25/51] chore(deps): update dependency prettier to v3.9.10 (#4787) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index e2279ff544..9f09bd324f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18561,9 +18561,9 @@ } }, "node_modules/prettier": { - "version": "3.9.9", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.9.tgz", - "integrity": "sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg==", + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.10.tgz", + "integrity": "sha512-skGHTH1Yb9QvaTC4hWnRTzEYtCpApF0UMBPz+t/0ZPzP8ihefo/btKd+QA7pUE0fEwA1SbS/NmhyEcstdXOIdA==", "dev": true, "license": "MIT", "bin": { From 6fd5392b6f33760be7448ec993bb2679b0fc9752 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Oct 2026 11:30:34 -0400 Subject: [PATCH 26/51] chore(deps): update dependency vitest to v5.0.4 (#4788) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 104 +++++++++++++++++++++++----------------------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9f09bd324f..762310ec82 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8009,22 +8009,22 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, "node_modules/@vitest/mocker": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-5.0.3.tgz", - "integrity": "sha512-T8sWAIbkSyAjkwTcaEc3Iu0o9A27X1/kdXrizhZkGuSKScRQtRzclfAMpOTcGdXCsqxeWlpGy3XjqaW8CpLORg==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-5.0.4.tgz", + "integrity": "sha512-tqAlrYWce4iUxhr3ncNohejtCTOcHeE8XWrSNZY3OhPoDn01yeGv+gnaBy64ATp7o6pb03eIbBAjzmibpc9vIQ==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.31", - "@vitest/spy": "5.0.3", + "@vitest/spy": "5.0.4", "estree-walker": "^3.0.3", - "magic-string": "^1.2.3" + "magic-string": "^1.4.3" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "msw": "^2.4.9", + "msw": "^2.4.9 || ^3.0.0", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { @@ -8037,9 +8037,9 @@ } }, "node_modules/@vitest/spy": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-5.0.3.tgz", - "integrity": "sha512-XhFysQTB8AZ+P4gMi+Lpo99vg2AZi0qKpaB9yXQl37+CaMEAPO3iH/wGVnSyL5MPERiLezpqTVtrR6UZH5GCXg==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-5.0.4.tgz", + "integrity": "sha512-MZKk/gSkm2q+ICobMxCpH1mA+cCAWm8WV7UhxlqGjq/sJ3AGc1BqFOs5CRVXxH78wQtme9q/NAAgBquj4AcyMw==", "dev": true, "license": "MIT", "funding": { @@ -9028,9 +9028,9 @@ } }, "node_modules/chai": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", - "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.3.0.tgz", + "integrity": "sha512-XWAtwJ6OHO+tj0EKCs0Y2UamnyOxseZWltU4x2U2wh8g4AigdjwvtUjvLP2tqkA/avxHEtzxNaqGq/YGNwckKg==", "dev": true, "license": "MIT", "engines": { @@ -13839,9 +13839,9 @@ } }, "node_modules/magic-string": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.4.2.tgz", - "integrity": "sha512-vG+rjFRj1PqdIBozIxAGMjPlOhaVe+GXpbttY/iSK7rGcJRMlwNJO7dcUwmUqkymsFLJiNGI06t4D7Fr7yRC9g==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.4.3.tgz", + "integrity": "sha512-z12OxmaPGE0F4xlpGdjuAUckipLpQlTAuAmyGhNoD7ODpYUzvDfvtxUbjM/jwznyP178oju/KDdyi220wNJ0RQ==", "dev": true, "license": "MIT", "dependencies": { @@ -16468,9 +16468,9 @@ "license": "MIT" }, "node_modules/obug": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.4.tgz", - "integrity": "sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/obug/-/obug-3.0.0.tgz", + "integrity": "sha512-5vvB5+W7ePv+p3uqxi+RcW1XAzLW0/hxt3/4X4Lc4qHudzOhmBiBwOY6DRob4WnanAEGvNcLjF+KNOufrUoEQw==", "dev": true, "funding": [ "https://github.com/sponsors/sxzz", @@ -20700,9 +20700,9 @@ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" }, "node_modules/tinybench": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-6.1.4.tgz", - "integrity": "sha512-9APumHG7r4yOk4X4WlkmE71aZcv1gvin1czO3OQ1U9iJcFA5Ja/ygyb0vPOVHTthFozUYs8CLoLUlM8grb2lTQ==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-6.2.2.tgz", + "integrity": "sha512-nIZ2N2dFpjBsg2hgitKu7mA+FvsIJuGJOwysRngmVRRmWgR/UyPjwJj8c/fT/dhm8EkHnF5EOogRf+0Z2qrimA==", "dev": true, "license": "MIT", "engines": { @@ -20710,9 +20710,9 @@ } }, "node_modules/tinyexec": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.0.tgz", - "integrity": "sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.1.tgz", + "integrity": "sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==", "dev": true, "license": "MIT", "engines": { @@ -21581,23 +21581,23 @@ } }, "node_modules/vitest": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-5.0.3.tgz", - "integrity": "sha512-xMw97S3rjdtj5dkVat7jCsqWBpvchs3RlpQctUqwJD0KkERk40vz2fJ77lDwW/Vzh/pk18eItYAzkodhSes3jQ==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-5.0.4.tgz", + "integrity": "sha512-z0WxZRV2Sg48wF0FSgMq3TFG8JS38/Qr96vZVZdX6+Em9raQTvnXQvdTFJe2m3rfyJnEHeHQ/snceIdi8D1pVg==", "dev": true, "license": "MIT", "dependencies": { "@types/chai": "^5.2.2", - "@vitest/mocker": "5.0.3", - "chai": "^6.2.2", + "@vitest/mocker": "5.0.4", + "chai": "^6.3.0", "es-module-lexer": "^2.3.2", "expect-type": "^1.4.0", - "magic-string": "^1.2.3", - "obug": "^2.1.4", + "magic-string": "^1.4.3", + "obug": "^3.0.0", "picomatch": "^4.0.7", - "std-env": "^4.2.0", - "tinybench": "^6.1.4", - "tinyexec": "^1.3.0", + "std-env": "^4.3.0", + "tinybench": "^6.2.2", + "tinyexec": "^1.3.1", "tinyglobby": "^0.2.17", "why-is-node-running": "3.2.1" }, @@ -21614,12 +21614,12 @@ "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "5.0.3", - "@vitest/browser-preview": "5.0.3", + "@vitest/browser-playwright": "5.0.4", + "@vitest/browser-preview": "5.0.4", "@vitest/browser-webdriverio": "^5.0.0-beta.5 || >=5.0.0", - "@vitest/coverage-istanbul": "5.0.3", - "@vitest/coverage-v8": "5.0.3", - "@vitest/ui": "5.0.3", + "@vitest/coverage-istanbul": "5.0.4", + "@vitest/coverage-v8": "5.0.4", + "@vitest/ui": "5.0.4", "happy-dom": "*", "jsdom": "*", "vite": "^6.4.0 || ^7.0.0 || ^8.0.0" @@ -21683,19 +21683,6 @@ "dev": true, "license": "MIT" }, - "node_modules/vitest/node_modules/why-is-node-running": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-3.2.1.tgz", - "integrity": "sha512-Tb2FUhB4vUsGQlfSquQLYkApkuPAFQXGFzxWKHHumVz2dK+X1RUm/HnID4+TfIGYJ1kTcwOaCk/buYCEJr6YjQ==", - "dev": true, - "license": "MIT", - "bin": { - "why-is-node-running": "cli.js" - }, - "engines": { - "node": ">=20.11" - } - }, "node_modules/vscode-languageserver-textdocument": { "version": "1.0.15", "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.15.tgz", @@ -22095,6 +22082,19 @@ "node": ">= 8" } }, + "node_modules/why-is-node-running": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-3.2.1.tgz", + "integrity": "sha512-Tb2FUhB4vUsGQlfSquQLYkApkuPAFQXGFzxWKHHumVz2dK+X1RUm/HnID4+TfIGYJ1kTcwOaCk/buYCEJr6YjQ==", + "dev": true, + "license": "MIT", + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=20.11" + } + }, "node_modules/widest-line": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", From 6f08f902a49c4def2229f12190074d9f6d3be452 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Oct 2026 11:30:56 -0400 Subject: [PATCH 27/51] chore(deps): update dependency docusaurus-plugin-copy-page-button to v0.8.5 (#4789) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 762310ec82..85cb7948c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10648,9 +10648,9 @@ } }, "node_modules/docusaurus-plugin-copy-page-button": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/docusaurus-plugin-copy-page-button/-/docusaurus-plugin-copy-page-button-0.8.4.tgz", - "integrity": "sha512-OBWmUEFIqR3BJ5giae6D518b69ZfZQ5HKrazrY2IPA6tDNX2F3m1ejeyE0oqcVcE7GVkE+K0+vJ5T+kIos8u1w==", + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/docusaurus-plugin-copy-page-button/-/docusaurus-plugin-copy-page-button-0.8.5.tgz", + "integrity": "sha512-2/rvjwGprqh4gWYpcJt5PFh9j4sKskMZOt9GEwVau7KLZdIgHW15w3UghWKhhFvIvk+NMblzWTKSf3ZN/QEelg==", "license": "MIT", "engines": { "node": ">=18.0" From 90f35a1691756940d195efad43ca4150bbc6b369 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Oct 2026 11:32:34 -0400 Subject: [PATCH 28/51] chore(deps): update dependency vue-tsc to v3.3.13 (#4790) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v8/vue/package-lock.json | 14 +++++++------- static/code/stackblitz/v9/vue/package-lock.json | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index 53452e4fef..e0e158ec49 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -1135,9 +1135,9 @@ "license": "MIT" }, "node_modules/@vue/language-core": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.3.12.tgz", - "integrity": "sha512-k7uIKR0n4CBidk233y7cac9osnDQ5WRidTl6nsrNvpZ3nf8cx9iJxRVsRzVsoPRHbowT/iKgGMTS9RGov3jeIA==", + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.3.13.tgz", + "integrity": "sha512-axA0Xemn5LuUKuKWob0/kVq7xQ2mJJM6VqA9Exvt35nM9yRC31goWVve/G/Zb2ZCLsXC8FHYjjfXlnshknSCew==", "dev": true, "license": "MIT", "dependencies": { @@ -2043,14 +2043,14 @@ } }, "node_modules/vue-tsc": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.3.12.tgz", - "integrity": "sha512-kbpaz18O9jPVkXVHD1BEjpUXM6WhXSu+62L1sGGr6Wbzd8GbvkBQWjoj3KZ/C0aq2MZllce7UdtWzwCIYsBMGA==", + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.3.13.tgz", + "integrity": "sha512-jE4/bXdOMSHVxEGgQCqNllJy+9N3Gx6tfSAsg0yhFK/MAN6eXqISihupnDEKSCt12VVnjN2gI3AqLYcqoh5x/A==", "dev": true, "license": "MIT", "dependencies": { "@volar/typescript": "2.4.28", - "@vue/language-core": "3.3.12" + "@vue/language-core": "3.3.13" }, "bin": { "vue-tsc": "bin/vue-tsc.js" diff --git a/static/code/stackblitz/v9/vue/package-lock.json b/static/code/stackblitz/v9/vue/package-lock.json index e511c31fde..457842f454 100644 --- a/static/code/stackblitz/v9/vue/package-lock.json +++ b/static/code/stackblitz/v9/vue/package-lock.json @@ -447,9 +447,9 @@ "license": "MIT" }, "node_modules/@vue/language-core": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.3.12.tgz", - "integrity": "sha512-k7uIKR0n4CBidk233y7cac9osnDQ5WRidTl6nsrNvpZ3nf8cx9iJxRVsRzVsoPRHbowT/iKgGMTS9RGov3jeIA==", + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.3.13.tgz", + "integrity": "sha512-axA0Xemn5LuUKuKWob0/kVq7xQ2mJJM6VqA9Exvt35nM9yRC31goWVve/G/Zb2ZCLsXC8FHYjjfXlnshknSCew==", "dev": true, "license": "MIT", "dependencies": { @@ -1123,14 +1123,14 @@ } }, "node_modules/vue-tsc": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.3.12.tgz", - "integrity": "sha512-kbpaz18O9jPVkXVHD1BEjpUXM6WhXSu+62L1sGGr6Wbzd8GbvkBQWjoj3KZ/C0aq2MZllce7UdtWzwCIYsBMGA==", + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.3.13.tgz", + "integrity": "sha512-jE4/bXdOMSHVxEGgQCqNllJy+9N3Gx6tfSAsg0yhFK/MAN6eXqISihupnDEKSCt12VVnjN2gI3AqLYcqoh5x/A==", "dev": true, "license": "MIT", "dependencies": { "@volar/typescript": "2.4.28", - "@vue/language-core": "3.3.12" + "@vue/language-core": "3.3.13" }, "bin": { "vue-tsc": "bin/vue-tsc.js" From 5a020864c77770b027a824aff838fff2cf03d8a8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 Oct 2026 05:52:01 -0700 Subject: [PATCH 29/51] chore(deps): update ionic to v9.0.8 (#4792) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../stackblitz/v9/angular/package-lock.json | 18 ++++++------ .../code/stackblitz/v9/angular/package.json | 4 +-- .../code/stackblitz/v9/html/package-lock.json | 8 +++--- static/code/stackblitz/v9/html/package.json | 2 +- .../stackblitz/v9/react/package-lock.json | 28 +++++++++---------- static/code/stackblitz/v9/react/package.json | 4 +-- .../code/stackblitz/v9/vue/package-lock.json | 26 ++++++++--------- static/code/stackblitz/v9/vue/package.json | 4 +-- 8 files changed, 47 insertions(+), 47 deletions(-) diff --git a/static/code/stackblitz/v9/angular/package-lock.json b/static/code/stackblitz/v9/angular/package-lock.json index cd42441814..0272d75d9e 100644 --- a/static/code/stackblitz/v9/angular/package-lock.json +++ b/static/code/stackblitz/v9/angular/package-lock.json @@ -14,8 +14,8 @@ "@angular/platform-browser": "^22.0.0", "@angular/platform-browser-dynamic": "^22.0.0", "@angular/router": "^22.0.0", - "@ionic/angular": "9.0.7", - "@ionic/core": "9.0.7", + "@ionic/angular": "9.0.8", + "@ionic/core": "9.0.8", "ionicons": "8.1.0", "rxjs": "^7.8.1", "tslib": "^2.5.0" @@ -2578,12 +2578,12 @@ } }, "node_modules/@ionic/angular": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-9.0.7.tgz", - "integrity": "sha512-Ca/kboiVFu86O2fOuPDftV54/iwb7Z1mQwZfcuJZ5tk7w9lR5e2f7p3/FzpQQyPJWMmBuZdJxn4QmwXNo8AwXg==", + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-9.0.8.tgz", + "integrity": "sha512-eCgXKqezRdWyjQ1FBsY2X6kYQ4X4yJVmca4JzA8a+05+IxDrQUxzCpe/IjmOo0d0bxufEGpCnxRol0Dn152jdw==", "license": "MIT", "dependencies": { - "@ionic/core": "9.0.7", + "@ionic/core": "9.0.8", "ionicons": "^8.0.13", "jsonc-parser": "^3.0.0", "tslib": "^2.3.0" @@ -2602,9 +2602,9 @@ } }, "node_modules/@ionic/core": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.7.tgz", - "integrity": "sha512-ypaMX9RujNJa9V12ex614dkvadggc1QGPaF+qq0ZO7WyLilseMfsEv7FiY1J+o2LnXyr++gOPwpvZnE2hvL0Lg==", + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.8.tgz", + "integrity": "sha512-0KmlxdVWb8dryWTyX69bnH54764jiQnqxX9RHZE313xpyunxDl8UfdxpLiKRWKocawOWa/YgOI4GaHX2RODEGw==", "license": "MIT", "dependencies": { "@stencil/core": "^4.44.2", diff --git a/static/code/stackblitz/v9/angular/package.json b/static/code/stackblitz/v9/angular/package.json index 8d30c0d545..16258af55a 100644 --- a/static/code/stackblitz/v9/angular/package.json +++ b/static/code/stackblitz/v9/angular/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^22.0.0", "@angular/platform-browser-dynamic": "^22.0.0", "@angular/router": "^22.0.0", - "@ionic/angular": "9.0.7", - "@ionic/core": "9.0.7", + "@ionic/angular": "9.0.8", + "@ionic/core": "9.0.8", "ionicons": "8.1.0", "rxjs": "^7.8.1", "tslib": "^2.5.0" diff --git a/static/code/stackblitz/v9/html/package-lock.json b/static/code/stackblitz/v9/html/package-lock.json index 2cee5e1598..44feac9de6 100644 --- a/static/code/stackblitz/v9/html/package-lock.json +++ b/static/code/stackblitz/v9/html/package-lock.json @@ -6,7 +6,7 @@ "": { "name": "html-starter", "dependencies": { - "@ionic/core": "9.0.7", + "@ionic/core": "9.0.8", "ionicons": "8.1.0" }, "devDependencies": { @@ -16,9 +16,9 @@ } }, "node_modules/@ionic/core": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.7.tgz", - "integrity": "sha512-ypaMX9RujNJa9V12ex614dkvadggc1QGPaF+qq0ZO7WyLilseMfsEv7FiY1J+o2LnXyr++gOPwpvZnE2hvL0Lg==", + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.8.tgz", + "integrity": "sha512-0KmlxdVWb8dryWTyX69bnH54764jiQnqxX9RHZE313xpyunxDl8UfdxpLiKRWKocawOWa/YgOI4GaHX2RODEGw==", "license": "MIT", "dependencies": { "@stencil/core": "^4.44.2", diff --git a/static/code/stackblitz/v9/html/package.json b/static/code/stackblitz/v9/html/package.json index 474956ffd2..f18500d3da 100644 --- a/static/code/stackblitz/v9/html/package.json +++ b/static/code/stackblitz/v9/html/package.json @@ -9,7 +9,7 @@ "start": "vite preview" }, "dependencies": { - "@ionic/core": "9.0.7", + "@ionic/core": "9.0.8", "ionicons": "8.1.0" }, "devDependencies": { diff --git a/static/code/stackblitz/v9/react/package-lock.json b/static/code/stackblitz/v9/react/package-lock.json index beef0578c4..3ca1a22e70 100644 --- a/static/code/stackblitz/v9/react/package-lock.json +++ b/static/code/stackblitz/v9/react/package-lock.json @@ -8,8 +8,8 @@ "name": "vite-react-typescript", "version": "0.1.0", "dependencies": { - "@ionic/react": "9.0.7", - "@ionic/react-router": "9.0.7", + "@ionic/react": "9.0.8", + "@ionic/react-router": "9.0.8", "@types/node": "^24.0.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", @@ -254,9 +254,9 @@ "license": "MIT" }, "node_modules/@ionic/core": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.7.tgz", - "integrity": "sha512-ypaMX9RujNJa9V12ex614dkvadggc1QGPaF+qq0ZO7WyLilseMfsEv7FiY1J+o2LnXyr++gOPwpvZnE2hvL0Lg==", + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.8.tgz", + "integrity": "sha512-0KmlxdVWb8dryWTyX69bnH54764jiQnqxX9RHZE313xpyunxDl8UfdxpLiKRWKocawOWa/YgOI4GaHX2RODEGw==", "license": "MIT", "dependencies": { "@stencil/core": "^4.44.2", @@ -268,12 +268,12 @@ } }, "node_modules/@ionic/react": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-9.0.7.tgz", - "integrity": "sha512-KavLmQ2UBGHMbCX5qTjSRIGqgVcHJbZjEJFCjVxueVRflYy2SbYow63BL4xHSPALRB25jnu5bvaW9DqXExrg0w==", + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-9.0.8.tgz", + "integrity": "sha512-8N9l+SA2VdcpX6lT9C6bH7brdHfekdbbRmjvXOU4kl86KHdVeqirkkt63iyLWm6VoEKLc2OuAfy4tjUSnlv0rw==", "license": "MIT", "dependencies": { - "@ionic/core": "9.0.7", + "@ionic/core": "9.0.8", "@stencil/react-output-target": "^1.6.2", "ionicons": "^8.0.13", "tslib": "*" @@ -284,13 +284,13 @@ } }, "node_modules/@ionic/react-router": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-9.0.7.tgz", - "integrity": "sha512-cWn0doH4N1C/mv5qKiOTjBGJ8KbwpdIiLy/478M1h13ArncKpVgySRPvBvdPunDutQcQZa8M1bjiYz3L96Or4Q==", + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-9.0.8.tgz", + "integrity": "sha512-5keNmGpmlUKIn+IrXQhW0ZhglKB9kT2mSQYR7FwuhiPlYDXHDIA4Re2w+u6lLr5FbQVQpx9q9AUujIItYgvL7g==", "license": "MIT", "dependencies": { - "@ionic/core": "9.0.7", - "@ionic/react": "9.0.7", + "@ionic/core": "9.0.8", + "@ionic/react": "9.0.8", "tslib": "*" }, "peerDependencies": { diff --git a/static/code/stackblitz/v9/react/package.json b/static/code/stackblitz/v9/react/package.json index f6b95bed31..4fe40e75e3 100644 --- a/static/code/stackblitz/v9/react/package.json +++ b/static/code/stackblitz/v9/react/package.json @@ -3,8 +3,8 @@ "version": "0.1.0", "private": true, "dependencies": { - "@ionic/react": "9.0.7", - "@ionic/react-router": "9.0.7", + "@ionic/react": "9.0.8", + "@ionic/react-router": "9.0.8", "@types/node": "^24.0.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", diff --git a/static/code/stackblitz/v9/vue/package-lock.json b/static/code/stackblitz/v9/vue/package-lock.json index 457842f454..a025c6fb7f 100644 --- a/static/code/stackblitz/v9/vue/package-lock.json +++ b/static/code/stackblitz/v9/vue/package-lock.json @@ -8,8 +8,8 @@ "name": "vite-vue-starter", "version": "0.0.0", "dependencies": { - "@ionic/vue": "9.0.7", - "@ionic/vue-router": "9.0.7", + "@ionic/vue": "9.0.8", + "@ionic/vue-router": "9.0.8", "vue": "^3.2.25", "vue-router": "5.3.1" }, @@ -63,9 +63,9 @@ } }, "node_modules/@ionic/core": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.7.tgz", - "integrity": "sha512-ypaMX9RujNJa9V12ex614dkvadggc1QGPaF+qq0ZO7WyLilseMfsEv7FiY1J+o2LnXyr++gOPwpvZnE2hvL0Lg==", + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.8.tgz", + "integrity": "sha512-0KmlxdVWb8dryWTyX69bnH54764jiQnqxX9RHZE313xpyunxDl8UfdxpLiKRWKocawOWa/YgOI4GaHX2RODEGw==", "license": "MIT", "dependencies": { "@stencil/core": "^4.44.2", @@ -77,23 +77,23 @@ } }, "node_modules/@ionic/vue": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-9.0.7.tgz", - "integrity": "sha512-oFHXIM5eMukVEB27J7/iWYSyqNPF6ILxdCXiGyCqFEkJ32Tna6ayt2+F4p+e8hghCUZS1PC12KMypqTut9OH2Q==", + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-9.0.8.tgz", + "integrity": "sha512-SpHWvKU2a3t2x03cFQt5mLNBbxuPsNtwiJvOhzfZdmEfnyj7bN0zJkevwToiGyYdmBh7kWuuq4wrUohdtzEwgA==", "license": "MIT", "dependencies": { - "@ionic/core": "9.0.7", + "@ionic/core": "9.0.8", "@stencil/vue-output-target": "0.14.2", "ionicons": "^8.0.13" } }, "node_modules/@ionic/vue-router": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-9.0.7.tgz", - "integrity": "sha512-LSPScX2iZb4jSjVyf1Q1bttE+BT1LXCFFfJ6P9FVZrIiMRT64g4Go7YF/ka8ooBx38lqQmELaBxIn2rR36WXIA==", + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-9.0.8.tgz", + "integrity": "sha512-RmgLVk+cXHl+c01aBF0ujtoeO18peNBQ2FnWNgMxGskBxztv2DMNCM7lxstuAwaRGPOGWAKshqMHzuyX/vfHwg==", "license": "MIT", "dependencies": { - "@ionic/vue": "9.0.7" + "@ionic/vue": "9.0.8" } }, "node_modules/@jridgewell/gen-mapping": { diff --git a/static/code/stackblitz/v9/vue/package.json b/static/code/stackblitz/v9/vue/package.json index 9dca17c77a..2f092dfaa5 100644 --- a/static/code/stackblitz/v9/vue/package.json +++ b/static/code/stackblitz/v9/vue/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@ionic/vue": "9.0.7", - "@ionic/vue-router": "9.0.7", + "@ionic/vue": "9.0.8", + "@ionic/vue-router": "9.0.8", "vue": "^3.2.25", "vue-router": "5.3.1" }, From 1776be25a690ca3fa6c380d339548b5c3de04370 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 Oct 2026 09:28:24 -0400 Subject: [PATCH 30/51] chore(deps): update dependency vue-router to v5.4.0 (#4793) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../code/stackblitz/v8/vue/package-lock.json | 152 ++++++++++++++---- static/code/stackblitz/v8/vue/package.json | 2 +- .../code/stackblitz/v9/vue/package-lock.json | 146 ++++++++++++++--- static/code/stackblitz/v9/vue/package.json | 2 +- 4 files changed, 244 insertions(+), 58 deletions(-) diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index e0e158ec49..1bda816c5d 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -11,7 +11,7 @@ "@ionic/vue": "8.8.19", "@ionic/vue-router": "8.8.19", "vue": "^3.2.25", - "vue-router": "5.3.1" + "vue-router": "5.4.0" }, "devDependencies": { "@vitejs/plugin-vue": "^6.0.0", @@ -568,9 +568,9 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", + "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { @@ -981,7 +981,6 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", - "devOptional": true, "license": "MIT" }, "node_modules/@vitejs/plugin-vue": { @@ -1234,22 +1233,94 @@ } }, "node_modules/ast-walker-scope": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/ast-walker-scope/-/ast-walker-scope-0.9.0.tgz", - "integrity": "sha512-IJdzo2vLiElBxKzwS36VsCue/62d6IdWjnPB2v3nuPKeWGynp6FF/CYoLa5i/3jXH/z97ZDdsXz6abpgM6w07A==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/ast-walker-scope/-/ast-walker-scope-0.10.0.tgz", + "integrity": "sha512-KzvoxDfXNz2Gm8KYLh47K3qcY3Zza3WKOuh2xoqa7LBu6MDKWAZLovJtU9DuAd/Er+rhQHCRn619lHS5U+qmhw==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.29.2", - "@babel/types": "^7.29.0", - "ast-kit": "^2.2.0" + "@babel/parser": "^8.0.0", + "@babel/types": "^8.0.0", + "ast-kit": "^3.0.0" }, "engines": { - "node": ">=20.19.0" + "node": "^22.18.0 || >=24.11.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/ast-walker-scope/node_modules/@babel/helper-string-parser": { + "version": "8.0.6", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-8.0.6.tgz", + "integrity": "sha512-+6HYEBnsDRZHJtUTAEfMQd0zMDqdFHS7C+5vAsEZqBUr3vEMWOWlHJ0Jz1gS8jJIlCvLsuA6ivmeoqzH936YcA==", + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/ast-walker-scope/node_modules/@babel/helper-validator-identifier": { + "version": "8.0.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.6.tgz", + "integrity": "sha512-HYx0YmuchRxRSpnjvcNffnPS8DCauKNmnumIuHG3jnQAVewRA7kfJGwF13ayEpSZs7s4R/oBH4eppuXcAQd5JQ==", + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/ast-walker-scope/node_modules/@babel/parser": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-8.0.7.tgz", + "integrity": "sha512-UkDwEbPO1px2JQSrdh4qIgaH1JgG7GO/pFeJkpxhDxIETkT/QvGpnigXIw75ViHYPtIgKITmVUJqLjiO+JuWjA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^8.0.6" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/ast-walker-scope/node_modules/@babel/types": { + "version": "8.0.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-8.0.6.tgz", + "integrity": "sha512-c+xgSWboV2pdwXP67BUWDVRHi2BO5Q3KwxyFVs7taVTY+fsK47/L51ZXQoV9rozHJDNHvJ4v4WEsI/IlxV2l2A==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^8.0.6", + "@babel/helper-validator-identifier": "^8.0.6" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/ast-walker-scope/node_modules/ast-kit": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-3.0.0.tgz", + "integrity": "sha512-8OG92q3R35qjC/4i6BLBMg8IB+fClWu/1PEwg2Z9Rn+BuNaiEgJzpzn+pxWOdHJWDCAwu2JP0wCDTozAM4QirQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^8.0.0", + "estree-walker": "^3.0.3", + "pathe": "^2.0.3" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" }, "funding": { "url": "https://github.com/sponsors/sxzz" } }, + "node_modules/ast-walker-scope/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "node_modules/birpc": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz", @@ -1493,9 +1564,9 @@ } }, "node_modules/nostics": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/nostics/-/nostics-1.2.0.tgz", - "integrity": "sha512-FGqEfhQjrvo1lL8KFifdTQiNwwQHJxC1jtYE1Rc54qF/jxONUNL+kC9gS1krX8Q65PgrQ5fCqH/I4NhWBvdSqg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/nostics/-/nostics-1.3.0.tgz", + "integrity": "sha512-wzRsrJwNlFbqIRQt8aCeL2WE8USip/uuvGSOZV1D02CxX8ABTMbw8IywKjH7yWHETMXbWJI4OBpihg9rmz2Vyg==", "license": "MIT" }, "node_modules/path-browserify": { @@ -1524,9 +1595,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", - "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", "license": "MIT", "engines": { "node": ">=12" @@ -1822,13 +1893,13 @@ "license": "MIT" }, "node_modules/unplugin": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-3.3.0.tgz", - "integrity": "sha512-qa66K+crbfyE6JK10GjvbJeRrOsuC/JpbnHctfyp/i4oBTxWOzJfRZyDiOk1PtErMFRu8JhsU/wPvOdBNWe5Rg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-3.4.0.tgz", + "integrity": "sha512-9skdIFlCsPdFV7wUfZxNsFInlW+7nJmGu2gkTu0OUhF56aXGsHab9x52/QhdJ4lC7ZDPWTxbiC4ANqVlsuaW3w==", "license": "MIT", "dependencies": { "@jridgewell/remapping": "^2.3.5", - "picomatch": "^4.0.4", + "picomatch": "^4.0.7", "webpack-virtual-modules": "^0.6.2" }, "engines": { @@ -1836,6 +1907,7 @@ }, "peerDependencies": { "@farmfe/core": "*", + "@rsbuild/core": "*", "@rspack/core": "*", "bun-types-no-globals": "*", "esbuild": "*", @@ -1849,6 +1921,9 @@ "@farmfe/core": { "optional": true }, + "@rsbuild/core": { + "optional": true + }, "@rspack/core": { "optional": true }, @@ -1995,26 +2070,26 @@ } }, "node_modules/vue-router": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-5.3.1.tgz", - "integrity": "sha512-GDBZzgmILxA/kFnkFbJjQZdZ2QQbngnIMMuoUcjhZIfH1RGMaPjPwX5ASnV38qamuA9uhO0RDjSBHTDNG2uXyQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-5.4.0.tgz", + "integrity": "sha512-pFvcYcxinDHjZUlf7AzFBrT8r8Xqvv4uMHoJnjc+EqPawXQvHTkF8S4tfSmQLpriVHUGfkaKlI7Et0KRjTMTdw==", "license": "MIT", "dependencies": { "@vue-macros/common": "^3.1.3", "@vue/devtools-api": "^8.1.5", - "ast-walker-scope": "^0.9.0", + "ast-walker-scope": "^0.10.0", "chokidar": "^5.0.0", - "confbox": "^0.2.4", + "confbox": "^0.3.1", "local-pkg": "^1.2.1", - "magic-string": "^0.30.21", + "magic-string": "^1.4.3", "mlly": "^1.8.2", "muggle-string": "^0.4.1", - "nostics": "^1.1.4", + "nostics": "^1.3.0", "pathe": "^2.0.3", - "picomatch": "^4.0.5", + "picomatch": "^4.0.7", "scule": "^1.3.0", "tinyglobby": "^0.2.17", - "unplugin": "^3.3.0", + "unplugin": "^3.4.0", "unplugin-utils": "^0.3.2" }, "funding": { @@ -2042,6 +2117,21 @@ } } }, + "node_modules/vue-router/node_modules/confbox": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.3.1.tgz", + "integrity": "sha512-cKUSoKa8YxFZZSmraVi7onONx3amu77ngK3kGpsYHDH7drPwCRkQE1RYMPlLRrMtnciRj274XNRxcHxnKmDSnA==", + "license": "MIT" + }, + "node_modules/vue-router/node_modules/magic-string": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.4.3.tgz", + "integrity": "sha512-z12OxmaPGE0F4xlpGdjuAUckipLpQlTAuAmyGhNoD7ODpYUzvDfvtxUbjM/jwznyP178oju/KDdyi220wNJ0RQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.6.0" + } + }, "node_modules/vue-tsc": { "version": "3.3.13", "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.3.13.tgz", diff --git a/static/code/stackblitz/v8/vue/package.json b/static/code/stackblitz/v8/vue/package.json index 179b4fbee5..4ee6d59a2a 100644 --- a/static/code/stackblitz/v8/vue/package.json +++ b/static/code/stackblitz/v8/vue/package.json @@ -11,7 +11,7 @@ "@ionic/vue": "8.8.19", "@ionic/vue-router": "8.8.19", "vue": "^3.2.25", - "vue-router": "5.3.1" + "vue-router": "5.4.0" }, "devDependencies": { "@vitejs/plugin-vue": "^6.0.0", diff --git a/static/code/stackblitz/v9/vue/package-lock.json b/static/code/stackblitz/v9/vue/package-lock.json index a025c6fb7f..d9ed01c8d5 100644 --- a/static/code/stackblitz/v9/vue/package-lock.json +++ b/static/code/stackblitz/v9/vue/package-lock.json @@ -11,7 +11,7 @@ "@ionic/vue": "9.0.8", "@ionic/vue-router": "9.0.8", "vue": "^3.2.25", - "vue-router": "5.3.1" + "vue-router": "5.4.0" }, "devDependencies": { "@vitejs/plugin-vue": "^6.0.0", @@ -120,7 +120,9 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", + "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { @@ -299,7 +301,6 @@ }, "node_modules/@types/estree": { "version": "1.0.9", - "devOptional": true, "license": "MIT" }, "node_modules/@vitejs/plugin-vue": { @@ -540,20 +541,94 @@ } }, "node_modules/ast-walker-scope": { - "version": "0.9.0", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/ast-walker-scope/-/ast-walker-scope-0.10.0.tgz", + "integrity": "sha512-KzvoxDfXNz2Gm8KYLh47K3qcY3Zza3WKOuh2xoqa7LBu6MDKWAZLovJtU9DuAd/Er+rhQHCRn619lHS5U+qmhw==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.29.2", - "@babel/types": "^7.29.0", - "ast-kit": "^2.2.0" + "@babel/parser": "^8.0.0", + "@babel/types": "^8.0.0", + "ast-kit": "^3.0.0" }, "engines": { - "node": ">=20.19.0" + "node": "^22.18.0 || >=24.11.0" }, "funding": { "url": "https://github.com/sponsors/sxzz" } }, + "node_modules/ast-walker-scope/node_modules/@babel/helper-string-parser": { + "version": "8.0.6", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-8.0.6.tgz", + "integrity": "sha512-+6HYEBnsDRZHJtUTAEfMQd0zMDqdFHS7C+5vAsEZqBUr3vEMWOWlHJ0Jz1gS8jJIlCvLsuA6ivmeoqzH936YcA==", + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/ast-walker-scope/node_modules/@babel/helper-validator-identifier": { + "version": "8.0.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.6.tgz", + "integrity": "sha512-HYx0YmuchRxRSpnjvcNffnPS8DCauKNmnumIuHG3jnQAVewRA7kfJGwF13ayEpSZs7s4R/oBH4eppuXcAQd5JQ==", + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/ast-walker-scope/node_modules/@babel/parser": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-8.0.7.tgz", + "integrity": "sha512-UkDwEbPO1px2JQSrdh4qIgaH1JgG7GO/pFeJkpxhDxIETkT/QvGpnigXIw75ViHYPtIgKITmVUJqLjiO+JuWjA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^8.0.6" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/ast-walker-scope/node_modules/@babel/types": { + "version": "8.0.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-8.0.6.tgz", + "integrity": "sha512-c+xgSWboV2pdwXP67BUWDVRHi2BO5Q3KwxyFVs7taVTY+fsK47/L51ZXQoV9rozHJDNHvJ4v4WEsI/IlxV2l2A==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^8.0.6", + "@babel/helper-validator-identifier": "^8.0.6" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + } + }, + "node_modules/ast-walker-scope/node_modules/ast-kit": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-3.0.0.tgz", + "integrity": "sha512-8OG92q3R35qjC/4i6BLBMg8IB+fClWu/1PEwg2Z9Rn+BuNaiEgJzpzn+pxWOdHJWDCAwu2JP0wCDTozAM4QirQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^8.0.0", + "estree-walker": "^3.0.3", + "pathe": "^2.0.3" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/ast-walker-scope/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "node_modules/birpc": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz", @@ -743,9 +818,9 @@ } }, "node_modules/nostics": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/nostics/-/nostics-1.2.0.tgz", - "integrity": "sha512-FGqEfhQjrvo1lL8KFifdTQiNwwQHJxC1jtYE1Rc54qF/jxONUNL+kC9gS1krX8Q65PgrQ5fCqH/I4NhWBvdSqg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/nostics/-/nostics-1.3.0.tgz", + "integrity": "sha512-wzRsrJwNlFbqIRQt8aCeL2WE8USip/uuvGSOZV1D02CxX8ABTMbw8IywKjH7yWHETMXbWJI4OBpihg9rmz2Vyg==", "license": "MIT" }, "node_modules/path-browserify": { @@ -768,7 +843,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.5", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", "license": "MIT", "engines": { "node": ">=12" @@ -904,13 +981,13 @@ "license": "MIT" }, "node_modules/unplugin": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-3.3.0.tgz", - "integrity": "sha512-qa66K+crbfyE6JK10GjvbJeRrOsuC/JpbnHctfyp/i4oBTxWOzJfRZyDiOk1PtErMFRu8JhsU/wPvOdBNWe5Rg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-3.4.0.tgz", + "integrity": "sha512-9skdIFlCsPdFV7wUfZxNsFInlW+7nJmGu2gkTu0OUhF56aXGsHab9x52/QhdJ4lC7ZDPWTxbiC4ANqVlsuaW3w==", "license": "MIT", "dependencies": { "@jridgewell/remapping": "^2.3.5", - "picomatch": "^4.0.4", + "picomatch": "^4.0.7", "webpack-virtual-modules": "^0.6.2" }, "engines": { @@ -918,6 +995,7 @@ }, "peerDependencies": { "@farmfe/core": "*", + "@rsbuild/core": "*", "@rspack/core": "*", "bun-types-no-globals": "*", "esbuild": "*", @@ -931,6 +1009,9 @@ "@farmfe/core": { "optional": true }, + "@rsbuild/core": { + "optional": true + }, "@rspack/core": { "optional": true }, @@ -1075,26 +1156,26 @@ } }, "node_modules/vue-router": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-5.3.1.tgz", - "integrity": "sha512-GDBZzgmILxA/kFnkFbJjQZdZ2QQbngnIMMuoUcjhZIfH1RGMaPjPwX5ASnV38qamuA9uhO0RDjSBHTDNG2uXyQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-5.4.0.tgz", + "integrity": "sha512-pFvcYcxinDHjZUlf7AzFBrT8r8Xqvv4uMHoJnjc+EqPawXQvHTkF8S4tfSmQLpriVHUGfkaKlI7Et0KRjTMTdw==", "license": "MIT", "dependencies": { "@vue-macros/common": "^3.1.3", "@vue/devtools-api": "^8.1.5", - "ast-walker-scope": "^0.9.0", + "ast-walker-scope": "^0.10.0", "chokidar": "^5.0.0", - "confbox": "^0.2.4", + "confbox": "^0.3.1", "local-pkg": "^1.2.1", - "magic-string": "^0.30.21", + "magic-string": "^1.4.3", "mlly": "^1.8.2", "muggle-string": "^0.4.1", - "nostics": "^1.1.4", + "nostics": "^1.3.0", "pathe": "^2.0.3", - "picomatch": "^4.0.5", + "picomatch": "^4.0.7", "scule": "^1.3.0", "tinyglobby": "^0.2.17", - "unplugin": "^3.3.0", + "unplugin": "^3.4.0", "unplugin-utils": "^0.3.2" }, "funding": { @@ -1122,6 +1203,21 @@ } } }, + "node_modules/vue-router/node_modules/confbox": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.3.1.tgz", + "integrity": "sha512-cKUSoKa8YxFZZSmraVi7onONx3amu77ngK3kGpsYHDH7drPwCRkQE1RYMPlLRrMtnciRj274XNRxcHxnKmDSnA==", + "license": "MIT" + }, + "node_modules/vue-router/node_modules/magic-string": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.4.3.tgz", + "integrity": "sha512-z12OxmaPGE0F4xlpGdjuAUckipLpQlTAuAmyGhNoD7ODpYUzvDfvtxUbjM/jwznyP178oju/KDdyi220wNJ0RQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.6.0" + } + }, "node_modules/vue-tsc": { "version": "3.3.13", "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.3.13.tgz", diff --git a/static/code/stackblitz/v9/vue/package.json b/static/code/stackblitz/v9/vue/package.json index 2f092dfaa5..99aa65f043 100644 --- a/static/code/stackblitz/v9/vue/package.json +++ b/static/code/stackblitz/v9/vue/package.json @@ -11,7 +11,7 @@ "@ionic/vue": "9.0.8", "@ionic/vue-router": "9.0.8", "vue": "^3.2.25", - "vue-router": "5.3.1" + "vue-router": "5.4.0" }, "devDependencies": { "@vitejs/plugin-vue": "^6.0.0", From d56c13cd02f826be1b8b149cee4d300b5ce187f7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 Oct 2026 09:31:17 -0400 Subject: [PATCH 31/51] chore(deps): update dependency vue to v3.5.44 (#4791) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../code/stackblitz/v8/vue/package-lock.json | 144 +++++++++--------- .../code/stackblitz/v9/vue/package-lock.json | 142 ++++++++--------- 2 files changed, 144 insertions(+), 142 deletions(-) diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index 1bda816c5d..f2268db9a7 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -39,9 +39,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.29.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz", - "integrity": "sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==", + "version": "7.29.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.9.tgz", + "integrity": "sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==", "license": "MIT", "dependencies": { "@babel/types": "^7.29.8" @@ -1057,53 +1057,53 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.43.tgz", - "integrity": "sha512-zdiLhnbe1QQqgDT8xZMpNmyqZ3qlI+/Q/FHQco57Kwl/b05HhCzN6eVGN9QU9rbga4CrS0H5SYY8VGHZCt/1Hg==", + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.44.tgz", + "integrity": "sha512-k34nCytbK8PQ1gR2mGROYOw6Pnv/mumqIdrZ3x2tbyXZDWm7ViKGLTfdB+DRrWqEQsLgGJvn0WN9jBif5zCTLQ==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.29.8", - "@vue/shared": "3.5.43", + "@babel/parser": "^7.29.9", + "@vue/shared": "3.5.44", "entities": "^7.0.1", "estree-walker": "^2.0.2", - "source-map-js": "^1.2.1" + "source-map-js": "^1.2.2" } }, "node_modules/@vue/compiler-dom": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.43.tgz", - "integrity": "sha512-PEZoAk3NQmsn/ejMzSOCyTYqwGqczrWm70PuhBKjjv1+TCoQAaO/zOqNwjV+honlNstT5ILxtc+8r8UUfj+iEQ==", + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.44.tgz", + "integrity": "sha512-W5AoBFWdw1lQAKiHowkfgFKFab82oSRT6sGsPfw/q1GRjsy/ZJFLHGhJyBRIFN9APLTUduDH9U2JAiPOIyKuYg==", "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.43", - "@vue/shared": "3.5.43" + "@vue/compiler-core": "3.5.44", + "@vue/shared": "3.5.44" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.43.tgz", - "integrity": "sha512-FCbrG3XNCRl+js3huuKx4IVHBLTvMkJhVepjbxSPu1gn4yWLaYtGNQdjJGZaMytXB6qb76qQDDmDSLy/vkmleQ==", + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.44.tgz", + "integrity": "sha512-dzHmQ4jXTpdr5FjIQUeykVakN/uzqFbUo9/C5ikBFg3a3PeM6uRxeczx1ZbXBML0/zJstEh3ygYipzR5Z7b2Pw==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.29.8", - "@vue/compiler-core": "3.5.43", - "@vue/compiler-dom": "3.5.43", - "@vue/compiler-ssr": "3.5.43", - "@vue/shared": "3.5.43", + "@babel/parser": "^7.29.9", + "@vue/compiler-core": "3.5.44", + "@vue/compiler-dom": "3.5.44", + "@vue/compiler-ssr": "3.5.44", + "@vue/shared": "3.5.44", "estree-walker": "^2.0.2", "magic-string": "^0.30.21", - "postcss": "^8.5.28", - "source-map-js": "^1.2.1" + "postcss": "^8.5.29", + "source-map-js": "^1.2.2" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.43.tgz", - "integrity": "sha512-GF62orf7KiJX9RqrHNGrYBudsQGD0OhJ5nDs90O8UiDuS40+YMYomiXu6w6EuvtXuRDc3MSNis3EaaSKAVSWpg==", + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.44.tgz", + "integrity": "sha512-xr5gb1JVHlfXJwSlRz1FeP6uxoazdzHuMTVLE7up+4Vrqxk219CvxLPxD9NXBt47yvZW7+p4DXfyp4O1fkByIA==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.43", - "@vue/shared": "3.5.43" + "@vue/compiler-dom": "3.5.44", + "@vue/shared": "3.5.44" } }, "node_modules/@vue/devtools-api": { @@ -1150,51 +1150,51 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.43.tgz", - "integrity": "sha512-G/c9GyOZNI2jVaaS6OX1EF1SSFSv7H0ERqNTl4+DTFMlZmB5eVAB53aLQNam/7NL2NPtaDD7RdVrzf8uJzMuOA==", + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.44.tgz", + "integrity": "sha512-u+QJdKeBBEADkPdevsL+6E12QlYVfBD8Zcw5qjDQKtamI6l14KyqazJMobhCKelhWN5zpyKUiEDoTyHE93cqWw==", "license": "MIT", "dependencies": { - "@vue/shared": "3.5.43" + "@vue/shared": "3.5.44" } }, "node_modules/@vue/runtime-core": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.43.tgz", - "integrity": "sha512-hU6U6VnVhBGQDpvlnnDlIB8ZGJBiOcgk2lh/0InltHiz3D8oSkluvuvY+do1G2H3+udeKFsmaBlgVYP7gXQzEw==", + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.44.tgz", + "integrity": "sha512-uEa/ndwjhrrhnOfb2p+sZy6zeoamJOISqaLSJGk/8R6nABT1ZldpzcJoPzKj+zHVomVBPcmQYyC2r4LtvDV6CQ==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.43", - "@vue/shared": "3.5.43" + "@vue/reactivity": "3.5.44", + "@vue/shared": "3.5.44" } }, "node_modules/@vue/runtime-dom": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.43.tgz", - "integrity": "sha512-Bb2Jc0YjjJdMt1SJmb9b2L/IWd3I8lIT9x9eS/xvvP9CiVgna0ffua74xKRmt4/uSJ+0r4iN8ex1jrqkhQGWQw==", + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.44.tgz", + "integrity": "sha512-3fc4ARcXVhVBaJ3ujWiNZJARD6pkyRcwG+ZYhMzjKtKUp7MAY0HLwr7r3Smep3Li6ZaWT6ewdmx8XqdaD5oNZg==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.43", - "@vue/runtime-core": "3.5.43", - "@vue/shared": "3.5.43", + "@vue/reactivity": "3.5.44", + "@vue/runtime-core": "3.5.44", + "@vue/shared": "3.5.44", "csstype": "^3.2.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.43.tgz", - "integrity": "sha512-l2Ygjv9NehV94PSBxNWsAHC0j/eIIKbn92mBuWXAPGLnn6HfJ6MH5ubsd+Nk0YoZ5FRuxWI1P2VSoh+dbPQhCQ==", + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.44.tgz", + "integrity": "sha512-R4S1UoH4h5Frrauv8Z5XE5TxV9oBiUSgWIC4TyVK1FK+RocRnOLwFA5Xcmo2011RlgJp+AbZCnw6afrhlgRuUQ==", "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.5.43", - "@vue/runtime-dom": "3.5.43", - "@vue/shared": "3.5.43" + "@vue/compiler-ssr": "3.5.44", + "@vue/runtime-dom": "3.5.44", + "@vue/shared": "3.5.44" } }, "node_modules/@vue/shared": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.43.tgz", - "integrity": "sha512-uksS7YGMR5NZyr4JNq0Rp+QyLns0ueaz20KwzIPW9R0LH1Vnt4E+XUM29PNseEbf1www2gOuhuDi5AKOIXag9Q==", + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.44.tgz", + "integrity": "sha512-H82XLH0DjmSOdbEwO15x3QTo1f5PWEtv237eLpYKc0mqLu+B8hnq16lFWmuBmNurkeiG3wr+oM1FhOll/YVFRg==", "license": "MIT" }, "node_modules/acorn": { @@ -1546,9 +1546,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.19", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz", - "integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==", + "version": "3.3.20", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.20.tgz", + "integrity": "sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==", "funding": [ { "type": "github", @@ -1618,9 +1618,9 @@ } }, "node_modules/postcss": { - "version": "8.5.28", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.28.tgz", - "integrity": "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==", + "version": "8.5.30", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.30.tgz", + "integrity": "sha512-zkd+e9S1AQHhmaBKye9zlFHWjOwVgqXl1q3ECYy8561K7qxR2cREf/STLskulBFd78k6AOFeA+ff1TtEzk9bAA==", "funding": [ { "type": "opencollective", @@ -1637,9 +1637,9 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.18", + "nanoid": "^3.3.20", "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" + "source-map-js": "^1.2.2" }, "engines": { "node": "^10 || ^12 || >=14" @@ -1842,9 +1842,9 @@ "license": "MIT" }, "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz", + "integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==", "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -2049,16 +2049,16 @@ "license": "MIT" }, "node_modules/vue": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.43.tgz", - "integrity": "sha512-o5qZoksdnjIKvW1srZ3ab7pcDNYAerBjRe54D0LBLfRdCYFrSgBHVXokMas35czQc0//lmx4/tuY4ZNQ+Rf2Ng==", + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.44.tgz", + "integrity": "sha512-dvvmaOCG7lAMkJTPqPwWeGMsPS6DIsFsfZDUgBp9V6mHf9b3+/wyVwYR4Es+WV6uJC0FKRxp81Obcq0ZwUcGFQ==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.43", - "@vue/compiler-sfc": "3.5.43", - "@vue/runtime-dom": "3.5.43", - "@vue/server-renderer": "3.5.43", - "@vue/shared": "3.5.43" + "@vue/compiler-dom": "3.5.44", + "@vue/compiler-sfc": "3.5.44", + "@vue/runtime-dom": "3.5.44", + "@vue/server-renderer": "3.5.44", + "@vue/shared": "3.5.44" }, "peerDependencies": { "typescript": "*" diff --git a/static/code/stackblitz/v9/vue/package-lock.json b/static/code/stackblitz/v9/vue/package-lock.json index d9ed01c8d5..2dd2bbac5a 100644 --- a/static/code/stackblitz/v9/vue/package-lock.json +++ b/static/code/stackblitz/v9/vue/package-lock.json @@ -35,9 +35,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.29.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz", - "integrity": "sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==", + "version": "7.29.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.9.tgz", + "integrity": "sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==", "license": "MIT", "dependencies": { "@babel/types": "^7.29.8" @@ -371,53 +371,53 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.43.tgz", - "integrity": "sha512-zdiLhnbe1QQqgDT8xZMpNmyqZ3qlI+/Q/FHQco57Kwl/b05HhCzN6eVGN9QU9rbga4CrS0H5SYY8VGHZCt/1Hg==", + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.44.tgz", + "integrity": "sha512-k34nCytbK8PQ1gR2mGROYOw6Pnv/mumqIdrZ3x2tbyXZDWm7ViKGLTfdB+DRrWqEQsLgGJvn0WN9jBif5zCTLQ==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.29.8", - "@vue/shared": "3.5.43", + "@babel/parser": "^7.29.9", + "@vue/shared": "3.5.44", "entities": "^7.0.1", "estree-walker": "^2.0.2", - "source-map-js": "^1.2.1" + "source-map-js": "^1.2.2" } }, "node_modules/@vue/compiler-dom": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.43.tgz", - "integrity": "sha512-PEZoAk3NQmsn/ejMzSOCyTYqwGqczrWm70PuhBKjjv1+TCoQAaO/zOqNwjV+honlNstT5ILxtc+8r8UUfj+iEQ==", + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.44.tgz", + "integrity": "sha512-W5AoBFWdw1lQAKiHowkfgFKFab82oSRT6sGsPfw/q1GRjsy/ZJFLHGhJyBRIFN9APLTUduDH9U2JAiPOIyKuYg==", "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.43", - "@vue/shared": "3.5.43" + "@vue/compiler-core": "3.5.44", + "@vue/shared": "3.5.44" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.43.tgz", - "integrity": "sha512-FCbrG3XNCRl+js3huuKx4IVHBLTvMkJhVepjbxSPu1gn4yWLaYtGNQdjJGZaMytXB6qb76qQDDmDSLy/vkmleQ==", + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.44.tgz", + "integrity": "sha512-dzHmQ4jXTpdr5FjIQUeykVakN/uzqFbUo9/C5ikBFg3a3PeM6uRxeczx1ZbXBML0/zJstEh3ygYipzR5Z7b2Pw==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.29.8", - "@vue/compiler-core": "3.5.43", - "@vue/compiler-dom": "3.5.43", - "@vue/compiler-ssr": "3.5.43", - "@vue/shared": "3.5.43", + "@babel/parser": "^7.29.9", + "@vue/compiler-core": "3.5.44", + "@vue/compiler-dom": "3.5.44", + "@vue/compiler-ssr": "3.5.44", + "@vue/shared": "3.5.44", "estree-walker": "^2.0.2", "magic-string": "^0.30.21", - "postcss": "^8.5.28", - "source-map-js": "^1.2.1" + "postcss": "^8.5.29", + "source-map-js": "^1.2.2" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.43.tgz", - "integrity": "sha512-GF62orf7KiJX9RqrHNGrYBudsQGD0OhJ5nDs90O8UiDuS40+YMYomiXu6w6EuvtXuRDc3MSNis3EaaSKAVSWpg==", + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.44.tgz", + "integrity": "sha512-xr5gb1JVHlfXJwSlRz1FeP6uxoazdzHuMTVLE7up+4Vrqxk219CvxLPxD9NXBt47yvZW7+p4DXfyp4O1fkByIA==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.43", - "@vue/shared": "3.5.43" + "@vue/compiler-dom": "3.5.44", + "@vue/shared": "3.5.44" } }, "node_modules/@vue/devtools-api": { @@ -464,51 +464,51 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.43.tgz", - "integrity": "sha512-G/c9GyOZNI2jVaaS6OX1EF1SSFSv7H0ERqNTl4+DTFMlZmB5eVAB53aLQNam/7NL2NPtaDD7RdVrzf8uJzMuOA==", + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.44.tgz", + "integrity": "sha512-u+QJdKeBBEADkPdevsL+6E12QlYVfBD8Zcw5qjDQKtamI6l14KyqazJMobhCKelhWN5zpyKUiEDoTyHE93cqWw==", "license": "MIT", "dependencies": { - "@vue/shared": "3.5.43" + "@vue/shared": "3.5.44" } }, "node_modules/@vue/runtime-core": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.43.tgz", - "integrity": "sha512-hU6U6VnVhBGQDpvlnnDlIB8ZGJBiOcgk2lh/0InltHiz3D8oSkluvuvY+do1G2H3+udeKFsmaBlgVYP7gXQzEw==", + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.44.tgz", + "integrity": "sha512-uEa/ndwjhrrhnOfb2p+sZy6zeoamJOISqaLSJGk/8R6nABT1ZldpzcJoPzKj+zHVomVBPcmQYyC2r4LtvDV6CQ==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.43", - "@vue/shared": "3.5.43" + "@vue/reactivity": "3.5.44", + "@vue/shared": "3.5.44" } }, "node_modules/@vue/runtime-dom": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.43.tgz", - "integrity": "sha512-Bb2Jc0YjjJdMt1SJmb9b2L/IWd3I8lIT9x9eS/xvvP9CiVgna0ffua74xKRmt4/uSJ+0r4iN8ex1jrqkhQGWQw==", + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.44.tgz", + "integrity": "sha512-3fc4ARcXVhVBaJ3ujWiNZJARD6pkyRcwG+ZYhMzjKtKUp7MAY0HLwr7r3Smep3Li6ZaWT6ewdmx8XqdaD5oNZg==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.43", - "@vue/runtime-core": "3.5.43", - "@vue/shared": "3.5.43", + "@vue/reactivity": "3.5.44", + "@vue/runtime-core": "3.5.44", + "@vue/shared": "3.5.44", "csstype": "^3.2.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.43.tgz", - "integrity": "sha512-l2Ygjv9NehV94PSBxNWsAHC0j/eIIKbn92mBuWXAPGLnn6HfJ6MH5ubsd+Nk0YoZ5FRuxWI1P2VSoh+dbPQhCQ==", + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.44.tgz", + "integrity": "sha512-R4S1UoH4h5Frrauv8Z5XE5TxV9oBiUSgWIC4TyVK1FK+RocRnOLwFA5Xcmo2011RlgJp+AbZCnw6afrhlgRuUQ==", "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.5.43", - "@vue/runtime-dom": "3.5.43", - "@vue/shared": "3.5.43" + "@vue/compiler-ssr": "3.5.44", + "@vue/runtime-dom": "3.5.44", + "@vue/shared": "3.5.44" } }, "node_modules/@vue/shared": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.43.tgz", - "integrity": "sha512-uksS7YGMR5NZyr4JNq0Rp+QyLns0ueaz20KwzIPW9R0LH1Vnt4E+XUM29PNseEbf1www2gOuhuDi5AKOIXag9Q==", + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.44.tgz", + "integrity": "sha512-H82XLH0DjmSOdbEwO15x3QTo1f5PWEtv237eLpYKc0mqLu+B8hnq16lFWmuBmNurkeiG3wr+oM1FhOll/YVFRg==", "license": "MIT" }, "node_modules/acorn": { @@ -800,9 +800,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.18", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", - "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", + "version": "3.3.20", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.20.tgz", + "integrity": "sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==", "funding": [ { "type": "github", @@ -864,9 +864,9 @@ } }, "node_modules/postcss": { - "version": "8.5.28", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.28.tgz", - "integrity": "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==", + "version": "8.5.30", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.30.tgz", + "integrity": "sha512-zkd+e9S1AQHhmaBKye9zlFHWjOwVgqXl1q3ECYy8561K7qxR2cREf/STLskulBFd78k6AOFeA+ff1TtEzk9bAA==", "funding": [ { "type": "opencollective", @@ -883,9 +883,9 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.18", + "nanoid": "^3.3.20", "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" + "source-map-js": "^1.2.2" }, "engines": { "node": "^10 || ^12 || >=14" @@ -940,7 +940,9 @@ "license": "MIT" }, "node_modules/source-map-js": { - "version": "1.2.1", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz", + "integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==", "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -1135,16 +1137,16 @@ "license": "MIT" }, "node_modules/vue": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.43.tgz", - "integrity": "sha512-o5qZoksdnjIKvW1srZ3ab7pcDNYAerBjRe54D0LBLfRdCYFrSgBHVXokMas35czQc0//lmx4/tuY4ZNQ+Rf2Ng==", + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.44.tgz", + "integrity": "sha512-dvvmaOCG7lAMkJTPqPwWeGMsPS6DIsFsfZDUgBp9V6mHf9b3+/wyVwYR4Es+WV6uJC0FKRxp81Obcq0ZwUcGFQ==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.43", - "@vue/compiler-sfc": "3.5.43", - "@vue/runtime-dom": "3.5.43", - "@vue/server-renderer": "3.5.43", - "@vue/shared": "3.5.43" + "@vue/compiler-dom": "3.5.44", + "@vue/compiler-sfc": "3.5.44", + "@vue/runtime-dom": "3.5.44", + "@vue/server-renderer": "3.5.44", + "@vue/shared": "3.5.44" }, "peerDependencies": { "typescript": "*" From f7676f6d618b83df30ea8f59d547ba0af3a94e1c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 19 Oct 2026 11:43:54 -0400 Subject: [PATCH 32/51] chore(deps): update dependency sass to v1.105.2 (#4795) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 85cb7948c2..61916087d5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19530,9 +19530,9 @@ "license": "MIT" }, "node_modules/sass": { - "version": "1.105.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.105.1.tgz", - "integrity": "sha512-1CnAWPyrrnVQzXGB/DUep1vYCKCm1CIBr+YxjjiW6wk9qtzemnGP4qicH56T2F9S4Hjtv/Ne3jDz8JqfdDU4oA==", + "version": "1.105.2", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.105.2.tgz", + "integrity": "sha512-KxW6ZKZiBKWK3ziQ4YZ3cpqo8/1TlHXE8t9nBNvGDZFoBFbk2MD7RacxYFs8zy8hzeFwpFYkVyAhboi47uYPEQ==", "license": "MIT", "dependencies": { "chokidar": "^5.0.0", From 73f2e032e560a33b7e45309ef3a92f7fa8e78fc1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 19 Oct 2026 12:52:04 -0400 Subject: [PATCH 33/51] chore(deps): update dependency vitest to v5.0.5 (#4796) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 61916087d5..415c8e3ede 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8009,14 +8009,14 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, "node_modules/@vitest/mocker": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-5.0.4.tgz", - "integrity": "sha512-tqAlrYWce4iUxhr3ncNohejtCTOcHeE8XWrSNZY3OhPoDn01yeGv+gnaBy64ATp7o6pb03eIbBAjzmibpc9vIQ==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-5.0.5.tgz", + "integrity": "sha512-xLL3lkDegJZw+MGoGaCCsFayDZthGgpAtr3Vziyfc4p7xH89K7KRPcRBBh/kEYm0Aqkt5DtTmkYpBtRV/FrHZg==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.31", - "@vitest/spy": "5.0.4", + "@vitest/spy": "5.0.5", "estree-walker": "^3.0.3", "magic-string": "^1.4.3" }, @@ -8037,9 +8037,9 @@ } }, "node_modules/@vitest/spy": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-5.0.4.tgz", - "integrity": "sha512-MZKk/gSkm2q+ICobMxCpH1mA+cCAWm8WV7UhxlqGjq/sJ3AGc1BqFOs5CRVXxH78wQtme9q/NAAgBquj4AcyMw==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-5.0.5.tgz", + "integrity": "sha512-lwJRExuH417257Q5wv9QYugN9IMJkoxcrKrYxGPQkBzl7wlNpTUxD/5yNX4ESKVUIShKPgkGchYPFMWOOk0wzw==", "dev": true, "license": "MIT", "funding": { @@ -21581,14 +21581,14 @@ } }, "node_modules/vitest": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-5.0.4.tgz", - "integrity": "sha512-z0WxZRV2Sg48wF0FSgMq3TFG8JS38/Qr96vZVZdX6+Em9raQTvnXQvdTFJe2m3rfyJnEHeHQ/snceIdi8D1pVg==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-5.0.5.tgz", + "integrity": "sha512-cPODOMF8YnkiiYtDdHo6n4wWmBrOBBbOIYH2d33M4l3CdNn72h+qMmO6uXffUN6A5AZFXNND/d+krS9mgkXRfg==", "dev": true, "license": "MIT", "dependencies": { "@types/chai": "^5.2.2", - "@vitest/mocker": "5.0.4", + "@vitest/mocker": "5.0.5", "chai": "^6.3.0", "es-module-lexer": "^2.3.2", "expect-type": "^1.4.0", @@ -21614,12 +21614,12 @@ "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "5.0.4", - "@vitest/browser-preview": "5.0.4", + "@vitest/browser-playwright": "5.0.5", + "@vitest/browser-preview": "5.0.5", "@vitest/browser-webdriverio": "^5.0.0-beta.5 || >=5.0.0", - "@vitest/coverage-istanbul": "5.0.4", - "@vitest/coverage-v8": "5.0.4", - "@vitest/ui": "5.0.4", + "@vitest/coverage-istanbul": "5.0.5", + "@vitest/coverage-v8": "5.0.5", + "@vitest/ui": "5.0.5", "happy-dom": "*", "jsdom": "*", "vite": "^6.4.0 || ^7.0.0 || ^8.0.0" From 3d33ac7aee90dbd99e07fa284dfc73a60db285df Mon Sep 17 00:00:00 2001 From: Shane Date: Tue, 20 Oct 2026 15:23:54 +0000 Subject: [PATCH 34/51] docs(vue): document useIonRouter replace using 'none' direction to preserve stack (#4794) --- docs/vue/utility-functions.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/vue/utility-functions.mdx b/docs/vue/utility-functions.mdx index 6993064013..0fed8d8f31 100644 --- a/docs/vue/utility-functions.mdx +++ b/docs/vue/utility-functions.mdx @@ -69,7 +69,7 @@ interface UseIonRouterResult { forward: (routerAnimation?: AnimationBuilder) => void; navigate: ( location: string | Location, - routerDirection?: 'forward' | 'back' | 'root', + routerDirection?: 'forward' | 'back' | 'root' | 'none', routerAction?: 'push' | 'pop' | 'replace', routerAnimation?: AnimationBuilder ) => void; @@ -80,7 +80,7 @@ useIonRouter(): UseIonRouterResult; - The `push` method is the equivalent of calling `ionRouter.navigate(location, 'forward', 'push', animation)`. -- The `replace` method is the equivalent of calling `ionRouter.navigate(location, 'root', 'replace', animation)`. +- The `replace` method is the equivalent of calling `ionRouter.navigate(location, 'none', 'replace', animation)`. It swaps the current page for the new one and keeps the pages beneath it, so the back button still returns to the previous page. No transition plays unless an `animation` is passed. To clear the navigation stack instead, call `ionRouter.navigate(location, 'root', 'replace', animation)`. Refer to the [Vue Navigation Documentation](./navigation#navigating-using-useionrouter) for more usage examples. From 314a147b0e769ece4f373226ffcc00c1b6f48d38 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 21 Oct 2026 10:55:45 -0400 Subject: [PATCH 35/51] chore(deps): update dependency @crowdin/cli to v5.4.0 (#4800) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 62 +++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/package-lock.json b/package-lock.json index 415c8e3ede..2f20e0923c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2025,9 +2025,9 @@ } }, "node_modules/@crowdin/cli": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@crowdin/cli/-/cli-5.3.0.tgz", - "integrity": "sha512-L4rhTfrChM1nMDNCcbX5twniY4/R1PPts8UMeyqxm7ODMYaglq3jXqlMDLDjO/t8YekiP8Y5MwIQzrclFeZ02Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@crowdin/cli/-/cli-5.4.0.tgz", + "integrity": "sha512-OE4hyoaX7+unsIDxZKGvO5k+9FjiV9bz1ccBcg2WHK5wTshT+9z7QfDx4zGFU7wlOwe29HutxTsJ1yX0LTXjyw==", "license": "MIT", "bin": { "crowdin": "bin/crowdin.js" @@ -2036,19 +2036,19 @@ "node": ">=20" }, "optionalDependencies": { - "@crowdin/cli-darwin-arm64": "5.3.0", - "@crowdin/cli-darwin-x64": "5.3.0", - "@crowdin/cli-linux-arm64": "5.3.0", - "@crowdin/cli-linux-arm64-musl": "5.3.0", - "@crowdin/cli-linux-x64": "5.3.0", - "@crowdin/cli-linux-x64-musl": "5.3.0", - "@crowdin/cli-win32-x64": "5.3.0" + "@crowdin/cli-darwin-arm64": "5.4.0", + "@crowdin/cli-darwin-x64": "5.4.0", + "@crowdin/cli-linux-arm64": "5.4.0", + "@crowdin/cli-linux-arm64-musl": "5.4.0", + "@crowdin/cli-linux-x64": "5.4.0", + "@crowdin/cli-linux-x64-musl": "5.4.0", + "@crowdin/cli-win32-x64": "5.4.0" } }, "node_modules/@crowdin/cli-darwin-arm64": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@crowdin/cli-darwin-arm64/-/cli-darwin-arm64-5.3.0.tgz", - "integrity": "sha512-SPapOiqXLzHmi+xEwIA0ld0GIBT6pKGXy3QvihhWFVHrBdQTpTcrEN6tFWC1+UFnD069nDA49ZW7WTR8FV93vQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@crowdin/cli-darwin-arm64/-/cli-darwin-arm64-5.4.0.tgz", + "integrity": "sha512-Z2GPhpSoVbrhPjecnw9UacEJ7WHaVosO8qmBOnfmeQZbxYvtvBfz+pxJgnKcae1TWUhyaMS2r7tqQMerF1Nb6g==", "cpu": [ "arm64" ], @@ -2059,9 +2059,9 @@ ] }, "node_modules/@crowdin/cli-darwin-x64": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@crowdin/cli-darwin-x64/-/cli-darwin-x64-5.3.0.tgz", - "integrity": "sha512-ZkkCXcDQBcSAGHnaHnI1NaddCSXcWZCBCevKThjoJ4Sk+y54gJe/YnlOugZrl4RXvjJr7mpbh2QmJxTl8sQ8sw==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@crowdin/cli-darwin-x64/-/cli-darwin-x64-5.4.0.tgz", + "integrity": "sha512-dPhM2UwBFHS6OzeyWg17RFCu1A5yp0dKwLJfylqTpcFtHTPv6cM2c6dFvzlqE7g+iatDpeerkJgLabJM+bc3xA==", "cpu": [ "x64" ], @@ -2072,9 +2072,9 @@ ] }, "node_modules/@crowdin/cli-linux-arm64": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@crowdin/cli-linux-arm64/-/cli-linux-arm64-5.3.0.tgz", - "integrity": "sha512-hygG99NgyQDJ8mNA4UCyvqmJ8209h2TRJQB3aA6na1F7ITuaMceJ5wYrrlxCteQAKJ7Tebu0tPP3AyBs4AHf/A==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@crowdin/cli-linux-arm64/-/cli-linux-arm64-5.4.0.tgz", + "integrity": "sha512-87+fLTBWMt4WYRRc6rieK6cGtyeOS4qoxAsy6Js2OyWIZmsDVGr+bcBx9uSl/107yJa7LWGomZE+jns/n/2Cfw==", "cpu": [ "arm64" ], @@ -2088,9 +2088,9 @@ ] }, "node_modules/@crowdin/cli-linux-arm64-musl": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@crowdin/cli-linux-arm64-musl/-/cli-linux-arm64-musl-5.3.0.tgz", - "integrity": "sha512-4NH98a/qgqVx9ydR9skFg8kDLXuLgssRp5rqghEhekgmbS2MWLm+aR9Kii30v2ateci9MirJMgaUi0B0F7m8ZQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@crowdin/cli-linux-arm64-musl/-/cli-linux-arm64-musl-5.4.0.tgz", + "integrity": "sha512-Pd0GvgxTEouqEf5NnxEtvK81K5IerZ/yP2s2pDiIscohlNKRsrlNJV0vLWY8i/Lbs16CJD4tfeEVCyQjJYgZhw==", "cpu": [ "arm64" ], @@ -2104,9 +2104,9 @@ ] }, "node_modules/@crowdin/cli-linux-x64": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@crowdin/cli-linux-x64/-/cli-linux-x64-5.3.0.tgz", - "integrity": "sha512-046w21yHd0qiY2qziKbL69r27HXwA6oBrUEnYCzkPmjfUR/JFcQRhKae/jxWLxx8tymobR1W3mUhPc+vP5ZBcA==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@crowdin/cli-linux-x64/-/cli-linux-x64-5.4.0.tgz", + "integrity": "sha512-Sb6m1hzRvct2f1UOgNGJsPdBGLwvyxiJeFCAA107TIgUOaNJnkMSljNQX/oW62KrflZNAYQu8HIrBmFAcE8VWA==", "cpu": [ "x64" ], @@ -2120,9 +2120,9 @@ ] }, "node_modules/@crowdin/cli-linux-x64-musl": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@crowdin/cli-linux-x64-musl/-/cli-linux-x64-musl-5.3.0.tgz", - "integrity": "sha512-4lP/MO/4KSTZuoB0YIKqzzwY9wmDK4uqggAycRGPs6kyUD6qcyd6JeiFZO0Bi2YFNf8115LPRE3YDGh4EGF3pQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@crowdin/cli-linux-x64-musl/-/cli-linux-x64-musl-5.4.0.tgz", + "integrity": "sha512-IZGBwTzee1j4NeAWJdV+ZE5cJLHj10TODx4TV/j+03NGu0OpL2vnoDBLJ51SHHT+z02c2FUmBILZyfVcogpRcw==", "cpu": [ "x64" ], @@ -2136,9 +2136,9 @@ ] }, "node_modules/@crowdin/cli-win32-x64": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@crowdin/cli-win32-x64/-/cli-win32-x64-5.3.0.tgz", - "integrity": "sha512-Ce1QU5g0cilhBHb5DEt2wBCobZa8LPtveVna+n7tAjl5qE5sun1Tq7I7NPSKpslEe6jBrF+BCA4Ci0XPg4TErQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@crowdin/cli-win32-x64/-/cli-win32-x64-5.4.0.tgz", + "integrity": "sha512-gZRVXBG4jZ7y4a6Boc4oMu932V1pHZHm4Au4q9yCc7gf8loj+wv8SzktEKG1CNI9QbuoyPv/b/tqNrGaFsl1+Q==", "cpu": [ "x64" ], From 1b1610b69b1dd398935d36f279b24e6a7ecd460a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 21 Oct 2026 10:56:32 -0400 Subject: [PATCH 36/51] chore(deps): update dependency cspell to v10.4.0 (#4801) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 320 +++++++++++++++++++++++----------------------- 1 file changed, 160 insertions(+), 160 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2f20e0923c..648b3a850c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2149,9 +2149,9 @@ ] }, "node_modules/@cspell/cspell-bundled-dicts": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-10.3.6.tgz", - "integrity": "sha512-C3ggnJkA3q6/uap0h/UY1CH6SsAzfn6Y5xUDoA1PH7OJUtgGgrW/LY/vo2orN6ppH072L0Ke+sxSEY1OSBRpnA==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-10.4.0.tgz", + "integrity": "sha512-ey23dut7NdnOsQQinQhROFZUh4LvLhJnnZCiq7y+KXMngdqXnIAZuEnnwXk3IfdOX+tycDC8OuMssLXDJ3Fnxw==", "dev": true, "license": "MIT", "dependencies": { @@ -2160,25 +2160,25 @@ "@cspell/dict-aws": "^4.0.17", "@cspell/dict-bash": "^4.2.3", "@cspell/dict-companies": "^3.2.13", - "@cspell/dict-cpp": "^7.1.2", + "@cspell/dict-cpp": "^7.1.3", "@cspell/dict-cryptocurrencies": "^5.0.5", "@cspell/dict-csharp": "^4.0.8", "@cspell/dict-css": "^4.1.2", "@cspell/dict-dart": "^2.3.2", "@cspell/dict-data-science": "^2.0.16", - "@cspell/dict-django": "^4.1.6", + "@cspell/dict-django": "^4.1.7", "@cspell/dict-docker": "^1.1.17", "@cspell/dict-dotnet": "^5.0.15", "@cspell/dict-elixir": "^4.0.8", - "@cspell/dict-en_us": "^4.4.40", - "@cspell/dict-en-common-misspellings": "^2.2.2", - "@cspell/dict-en-gb-mit": "^3.1.29", + "@cspell/dict-en_us": "^4.4.41", + "@cspell/dict-en-common-misspellings": "^2.2.5", + "@cspell/dict-en-gb-mit": "^3.1.30", "@cspell/dict-filetypes": "^3.0.18", "@cspell/dict-flutter": "^1.1.1", "@cspell/dict-fonts": "^4.0.6", "@cspell/dict-fsharp": "^1.1.1", "@cspell/dict-fullstack": "^3.2.9", - "@cspell/dict-gaming-terms": "^1.1.2", + "@cspell/dict-gaming-terms": "^1.1.3", "@cspell/dict-git": "^3.1.1", "@cspell/dict-golang": "^6.0.29", "@cspell/dict-google": "^1.0.9", @@ -2196,17 +2196,17 @@ "@cspell/dict-markdown": "^2.0.18", "@cspell/dict-monkeyc": "^1.1.2", "@cspell/dict-node": "^5.0.9", - "@cspell/dict-npm": "^5.2.50", + "@cspell/dict-npm": "^5.2.54", "@cspell/dict-php": "^4.1.3", "@cspell/dict-powershell": "^5.0.17", - "@cspell/dict-public-licenses": "^2.0.16", + "@cspell/dict-public-licenses": "^2.0.17", "@cspell/dict-python": "^4.5.2", "@cspell/dict-r": "^2.1.1", "@cspell/dict-ruby": "^5.1.4", "@cspell/dict-rust": "^4.1.2", "@cspell/dict-scala": "^5.0.11", "@cspell/dict-shell": "^1.2.0", - "@cspell/dict-software-terms": "^5.4.5", + "@cspell/dict-software-terms": "^5.4.8", "@cspell/dict-sql": "^2.2.1", "@cspell/dict-svelte": "^1.0.7", "@cspell/dict-swift": "^2.0.6", @@ -2220,22 +2220,22 @@ } }, "node_modules/@cspell/cspell-json-reporter": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-10.3.6.tgz", - "integrity": "sha512-eYwTqMZDIpNntPN+9pLD64ZFWJ9EiQrbas8kB6JXrS7gd+xXnDg6U+k2CmZGCpFKsArPE66PSudYRv+PoAb4CQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-10.4.0.tgz", + "integrity": "sha512-P4v7z0QbOaM7UiKvhws+/Vn5XSEtJLv9DyJCvPXoAn5it4U76hme646DvM/ChMlSG23BnrYGuryqufdxqQPuZQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-types": "10.3.6" + "@cspell/cspell-types": "10.4.0" }, "engines": { "node": ">=22.18.0" } }, "node_modules/@cspell/cspell-performance-monitor": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/@cspell/cspell-performance-monitor/-/cspell-performance-monitor-10.3.6.tgz", - "integrity": "sha512-NISfRQ1bENcT+U9otrj+N1uyizZb7NJ8bXXnB8WYp4OHp7Hztb7wUDiNNcWoF3S8joMfMjxNr6HABeThl/Ohow==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-performance-monitor/-/cspell-performance-monitor-10.4.0.tgz", + "integrity": "sha512-0hCqI8pR0waFKKOR3SZ4VtWddx7HZTr0v7MPCPG0IpaqMzzaibrXn9AtFCe+9T1+UDQrM109YKS+yr0c6xVvMQ==", "dev": true, "license": "MIT", "engines": { @@ -2243,9 +2243,9 @@ } }, "node_modules/@cspell/cspell-pipe": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-10.3.6.tgz", - "integrity": "sha512-gh/a0TL5hNSegkDiRFPC4nz4qK0BaLXi+tyoZWWZA9cfkOWsQMHApBxmJcukKeFFPsId2jyep814yy8O3xwdrg==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-10.4.0.tgz", + "integrity": "sha512-cXHgST9ySpECyiE5ZK7TcwBqrCb3h9X49j/lSDcWNAVp7GkwnPfcdylH+Zq/VfYMlHad24z8CNXd5H91O9DhEA==", "dev": true, "license": "MIT", "engines": { @@ -2253,9 +2253,9 @@ } }, "node_modules/@cspell/cspell-resolver": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-10.3.6.tgz", - "integrity": "sha512-P+90E0ED3qfGhmYqV0JZcASeWBoXqddOsknnU5SYrEbEd5+LAU0SYX2H2p+GPk7uYuPE0IP1eGATfY3KkFlSfg==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-10.4.0.tgz", + "integrity": "sha512-uyI9qX8hagtcFtRTElYGXXyVhhnVxPBSf1Ltds9AlU9cktPOFYeTXQOfBR+Dpt9dCruzX29ZJbd3hR1i5yryZg==", "dev": true, "license": "MIT", "dependencies": { @@ -2266,9 +2266,9 @@ } }, "node_modules/@cspell/cspell-service-bus": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-10.3.6.tgz", - "integrity": "sha512-4voVfeS+HEJy+bsWTQw9+cX4V2v6aGf97BRQDf0QQs/mlOfa07tLIYto/ZCbjCYUBMix64xziELrmqWkWcf2Kw==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-10.4.0.tgz", + "integrity": "sha512-IZzx+EWADkN5xbFrW+VS+JQ52+w5tWaZNxDgGa+0Mv79hks6wNa2Vcnce+9vGcBJYgA24VcuAfekI38tYzcDtw==", "dev": true, "license": "MIT", "engines": { @@ -2276,9 +2276,9 @@ } }, "node_modules/@cspell/cspell-types": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-10.3.6.tgz", - "integrity": "sha512-EJW6qFg/N1KcuNhOBo25nfL6QgrtBg1/KTzzsHpITxHSAnnZmLYCsSmEkunP8Voy4px2lkjDYN3OYEDBvPfd7A==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-10.4.0.tgz", + "integrity": "sha512-LTOrZcDSHj5BkeNSvimuV3AMF7gWjxzXUdQ7zYT/h/57/5flHuE6NPKSXS69ty8vJM0WrVh35L5aDxnCPfDzXA==", "dev": true, "license": "MIT", "engines": { @@ -2286,13 +2286,13 @@ } }, "node_modules/@cspell/cspell-worker": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/@cspell/cspell-worker/-/cspell-worker-10.3.6.tgz", - "integrity": "sha512-gzmadwr0R20S8w2gUMqRHd1qQjzJmm8KgFyMVo9Hb7RBaVkqthwITw1FLJW6XqGGcBBZ1nNCfc8OrTOaeA2hxQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-worker/-/cspell-worker-10.4.0.tgz", + "integrity": "sha512-3Y1+nF1Wyyh4kwlpooNhfGSbYXK4LIYLa5xOusig2X/LmCznfN2g5wIqh8K2zSDsmjrm9PLq11MUDDXJ4ZjMKw==", "dev": true, "license": "MIT", "dependencies": { - "cspell-lib": "10.3.6" + "cspell-lib": "10.4.0" }, "engines": { "node": ">=22.18.0" @@ -2379,11 +2379,11 @@ "license": "MIT" }, "node_modules/@cspell/dict-django": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@cspell/dict-django/-/dict-django-4.1.6.tgz", - "integrity": "sha512-SdbSFDGy9ulETqNz15oWv2+kpWLlk8DJYd573xhIkeRdcXOjskRuxjSZPKfW7O3NxN/KEf3gm3IevVOiNuFS+w==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@cspell/dict-django/-/dict-django-4.1.7.tgz", + "integrity": "sha512-94LIxiF/StBTxDkmBhi1eoOX9D/B7gk6pabBvIZFh0gmREAU6ESqU2Wv/RfGARdueMQMPfOJka+vbtL4yKv0oA==", "dev": true, - "license": "MIT" + "license": "WTFPL" }, "node_modules/@cspell/dict-docker": { "version": "1.1.17", @@ -2407,23 +2407,23 @@ "license": "MIT" }, "node_modules/@cspell/dict-en_us": { - "version": "4.4.40", - "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.4.40.tgz", - "integrity": "sha512-TGyOaWP1dD28GRHH2Lt04ciMZC8Z6UX+5kJsi04pbQHq6uRxv14/bBVCBeSsajUXRZsJYUqXyHaHB9O0ODuFuQ==", + "version": "4.4.41", + "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.4.41.tgz", + "integrity": "sha512-PsfGqN/dSSPpaSl1vKaPI4DHAmgbFITON398YUEvoduDM1mWXnDOL+qBQ/ZjpWs5+aaShPq5c1vpJg8fuQFOQw==", "dev": true, "license": "MIT" }, "node_modules/@cspell/dict-en-common-misspellings": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.2.3.tgz", - "integrity": "sha512-rwskWjznsDSZe3ck03BGUNT3UY9MjO1e4E9LJWACFzdDjkdM7uzro2/WfKvZTBVWVnRlzdRXPrtjkUZFI2A66A==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.2.5.tgz", + "integrity": "sha512-c1bj+HXT8fafxrBT/nmVLwr7ILVomgVSGlWsb2wjJYanqvLJHXkCVmr0sM97F9FJeWQFIgwrRi5MWSYbNQAQ6A==", "dev": true, "license": "CC BY-SA 4.0" }, "node_modules/@cspell/dict-en-gb-mit": { - "version": "3.1.29", - "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb-mit/-/dict-en-gb-mit-3.1.29.tgz", - "integrity": "sha512-mInExsCFZui0f9Vg/MToWfQZzwMfPgHX8BCYdZNdXWbYz+jITXcnvssbdUkui/DVbriZVJ74Zu9bv2jOEqTCNA==", + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb-mit/-/dict-en-gb-mit-3.1.30.tgz", + "integrity": "sha512-wmsPqPrO+GRfD8iA2jSKzRdEVd46ZbnDttRWM8RC4a8DkeiIanTtIgqX5V23jJibSgpsRVAtY+ktTw2nOK/Yvw==", "dev": true, "license": "MIT" }, @@ -2595,9 +2595,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-npm": { - "version": "5.2.52", - "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.2.52.tgz", - "integrity": "sha512-JttzSladJ4KVhfg9QiBM4os+wAKbet2F58wpbM5VJLnL8fAj3xwvBvSxdY64yrW6Y5wdSPHoTCLqXOKoyBJFnA==", + "version": "5.2.54", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.2.54.tgz", + "integrity": "sha512-7jQPRZL1XnZ0HPk5iYAq5WpJ5dpgKHRDBl9aB6uQQBJdo90mCF4bjPGSVl2HrWgx+IXlafiyx/QNO2XII/hgYg==", "dev": true, "license": "MIT" }, @@ -2668,9 +2668,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-software-terms": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-5.4.6.tgz", - "integrity": "sha512-r4Xw367hTosVCAQ884nPWhwcy3Jc6YWQFkW1XBdxFGdzdCltzuNf9qdJL1AwiTWMbiRnifIqKaXN0A38WCVEbQ==", + "version": "5.4.8", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-5.4.8.tgz", + "integrity": "sha512-7Fv/jgRghpcEcvpmrRR54gPp1l85pPLmlMua74hjhMJoWklAp905V742XR6u5HwvGRH7aBTW9euNsJULav1E6A==", "dev": true, "license": "MIT" }, @@ -2724,13 +2724,13 @@ "license": "MIT" }, "node_modules/@cspell/dynamic-import": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-10.3.6.tgz", - "integrity": "sha512-HGPM+lUJYIJqzjqEGteEy4w2WSiWxwjc1vBRVTncaxVMpRk5llk6SxnmautqGwvIGbEkipZ1CBuRnFpdwX9dGQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-10.4.0.tgz", + "integrity": "sha512-scSwtJDqpRT/Kqzo64XR8OWzXYfdpp9Yneq99Drhqm5gXXI2BAlgjzhBnMGKa+x7eIJZVM2+D2uFeDI2xQYM2w==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "10.3.6", + "@cspell/url": "10.4.0", "import-meta-resolve": "^4.2.0" }, "engines": { @@ -2738,9 +2738,9 @@ } }, "node_modules/@cspell/filetypes": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/@cspell/filetypes/-/filetypes-10.3.6.tgz", - "integrity": "sha512-0zCfqsPhZY/1v6qB87AwpCgduLcVRAMyq+MQN6XhmRTfxrMZF8B4qsJafspOpYQ4XTNw5lyciwx60y1ba151cQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@cspell/filetypes/-/filetypes-10.4.0.tgz", + "integrity": "sha512-ez0MyFxnpYN9eMkH8vGGseQPsCRwD7ZlsR+ivQ2rPx04CX7ctp015nWv71P7m+T6V05AsyAwyEGZP9vrTlB4Ig==", "dev": true, "license": "MIT", "engines": { @@ -2748,9 +2748,9 @@ } }, "node_modules/@cspell/rpc": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/@cspell/rpc/-/rpc-10.3.6.tgz", - "integrity": "sha512-ZWwwYhrlcILvmH389pShyG0ef17lKMza25eSiG6snVnpVcIK96o1Pfr4ylNkbtMlYayvmbt9kLjHroMYdmFmRQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@cspell/rpc/-/rpc-10.4.0.tgz", + "integrity": "sha512-tX1YLQYPQz+p73U5OTLmOxIrsmRkpaaKrPnfrVIpK5yv3erWE8ELVZD0zK01rursbL1rW3gyOv0ShHlmoE5VNA==", "dev": true, "license": "MIT", "engines": { @@ -2758,9 +2758,9 @@ } }, "node_modules/@cspell/strong-weak-map": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-10.3.6.tgz", - "integrity": "sha512-tkvKTTu8GRdNGZbC/Fl8Sat5UsAVhX7qsi4YX9mfd4a/Lrp9x73/mP8wGB637qqBPoN7f9x8ZR6YtTpOFVVfDA==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-10.4.0.tgz", + "integrity": "sha512-y8+Hk90mA3UY4HYEWBJokvNcixQOKkRDLEr+yXSYyOJnt6MhAu8D7N567HjEVNj0e7oirXl62wpNglPfo7qAcQ==", "dev": true, "license": "MIT", "engines": { @@ -2768,9 +2768,9 @@ } }, "node_modules/@cspell/url": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/@cspell/url/-/url-10.3.6.tgz", - "integrity": "sha512-IaEu6ePAWmb8QG+MFdhEnnGBAVhI+Qhph97x0v6RrwytwlyuO6MynaIcuYDCb9aLEDBVrDIGDj/+dplL+Sj8LQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@cspell/url/-/url-10.4.0.tgz", + "integrity": "sha512-8NvDv8h3eaxejAvD+crMsSEgGq6LiunfS6iD2TBAcDqskNsIpN43AMHNNRf7T7Fd/3Y413nQDBH4RmsHcNsiqg==", "dev": true, "license": "MIT", "engines": { @@ -9053,9 +9053,9 @@ } }, "node_modules/chalk-template": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-1.1.2.tgz", - "integrity": "sha512-2bxTP2yUH7AJj/VAXfcA+4IcWGdQ87HwBANLt5XxGTeomo8yG0y95N1um9i5StvhT/Bl0/2cARA5v1PpPXUxUA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-1.1.3.tgz", + "integrity": "sha512-KDt7oQ+LRF2VLFsTAZd76ZNCKQa8LuW7SZkNJMkriMzvlSNj6dI+S+f41mfK9oTtil49seHVyabtt1753sFL2w==", "dev": true, "license": "MIT", "dependencies": { @@ -9716,29 +9716,29 @@ } }, "node_modules/cspell": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-10.3.6.tgz", - "integrity": "sha512-RZDeSxy1L82U7I+cF00pG2Bh3nBy0UoNRJF3Xbq4xbbKMZHwQRYrwospDyuIvsYmKjqDSAAciNvAjHOeEhP+5A==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-10.4.0.tgz", + "integrity": "sha512-fr7PD9nDXtOwJmW8vk2MOXBuc+oGsYF9uLgUtg+1pWiPo2TwxJVLePfCIKmL6x4AAYSYqaRTrNGppYCDKcHOYw==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-json-reporter": "10.3.6", - "@cspell/cspell-performance-monitor": "10.3.6", - "@cspell/cspell-pipe": "10.3.6", - "@cspell/cspell-types": "10.3.6", - "@cspell/cspell-worker": "10.3.6", - "@cspell/dynamic-import": "10.3.6", - "@cspell/url": "10.3.6", - "ansi-regex": "^6.3.0", - "chalk": "^6.0.0", - "chalk-template": "^1.1.2", + "@cspell/cspell-json-reporter": "10.4.0", + "@cspell/cspell-performance-monitor": "10.4.0", + "@cspell/cspell-pipe": "10.4.0", + "@cspell/cspell-types": "10.4.0", + "@cspell/cspell-worker": "10.4.0", + "@cspell/dynamic-import": "10.4.0", + "@cspell/url": "10.4.0", + "ansi-regex": "^6.4.0", + "chalk": "^6.0.1", + "chalk-template": "^1.1.3", "commander": "^15.0.0", - "cspell-config-lib": "10.3.6", - "cspell-dictionary": "10.3.6", - "cspell-gitignore": "10.3.6", - "cspell-glob": "10.3.6", - "cspell-io": "10.3.6", - "cspell-lib": "10.3.6", + "cspell-config-lib": "10.4.0", + "cspell-dictionary": "10.4.0", + "cspell-gitignore": "10.4.0", + "cspell-glob": "10.4.0", + "cspell-io": "10.4.0", + "cspell-lib": "10.4.0", "flatted": "^3.4.4", "semver": "^7.8.5", "tinyglobby": "^0.2.17" @@ -9755,48 +9755,48 @@ } }, "node_modules/cspell-config-lib": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-10.3.6.tgz", - "integrity": "sha512-3LcA2uIgB90Ucn3xa1lO5VVncHtsD4LZUf2ENBtHVmxFVFw1wvm1hbXL1mhenLY2xJDONGvLKRnNoowUWIZoDQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-10.4.0.tgz", + "integrity": "sha512-1P0xmWIlGqwsHf8he9BWNdqV2bvRBkxCv5ctj3oHBraRFS6CPjdJBptyjuM0dgTwxmxPFcuWhTG8miTvFMje5g==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-types": "10.3.6", + "@cspell/cspell-types": "10.4.0", "comment-json": "^5.0.0", - "smol-toml": "^1.8.0", - "yaml": "^2.9.0" + "smol-toml": "^1.9.1", + "yaml": "^2.9.1" }, "engines": { "node": ">=22.18.0" } }, "node_modules/cspell-dictionary": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-10.3.6.tgz", - "integrity": "sha512-retLLs4RFAxrduMfcgGXrHbMBc4fEqFt9pFRAyyH2HOlBmEU7CsBupx91A1FUJXUrGWDnfYwSzhQcWuFAAX8iQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-10.4.0.tgz", + "integrity": "sha512-FwCQBzqOxjAg+GhymrY288As9DmJqHVrkAr++0tCQ1wWFVw2Nt1W3cCKn9W987Dr+giSuNREdQFpGbQ/cHluTg==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-performance-monitor": "10.3.6", - "@cspell/cspell-pipe": "10.3.6", - "@cspell/cspell-types": "10.3.6", - "cspell-trie-lib": "10.3.6", - "fast-equals": "^6.0.2" + "@cspell/cspell-performance-monitor": "10.4.0", + "@cspell/cspell-pipe": "10.4.0", + "@cspell/cspell-types": "10.4.0", + "cspell-trie-lib": "10.4.0", + "fast-equals": "^6.1.1" }, "engines": { "node": ">=22.18.0" } }, "node_modules/cspell-gitignore": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-10.3.6.tgz", - "integrity": "sha512-Nvvbz2JA4c/ykzfzmdRazmKFMAV/dmt7pg+PB5WCCe7oKPjyKTbWoWFMEF3ActteYatV+lyamGLdncJov3rREw==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-10.4.0.tgz", + "integrity": "sha512-2jwooVHqRvWYr21V8lOASOYGnf8wEMXiy5ifob1oqotVZ3PfucuWAYpVaeTm3bFz6uU4yqFUU/HdizAEKWt6zg==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "10.3.6", - "cspell-glob": "10.3.6", - "cspell-io": "10.3.6" + "@cspell/url": "10.4.0", + "cspell-glob": "10.4.0", + "cspell-io": "10.4.0" }, "bin": { "cspell-gitignore": "bin.mjs" @@ -9806,13 +9806,13 @@ } }, "node_modules/cspell-glob": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-10.3.6.tgz", - "integrity": "sha512-mWlrUYSZh2DnXyfi5ZsHlclcd/grSbtZmv1Ug7EO2hPEWzIVctYp4RtaTEwOdjUit3dzybtSXqzqVhd4leZOKQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-10.4.0.tgz", + "integrity": "sha512-XnctlpRbhln7dTmJyISw7HdsXM38CW+S7Ygm5kkAEixSyceim8RJfRj2rhtofL7B6Ra6YdRmJnm2/PWDOIVzLw==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "10.3.6", + "@cspell/url": "10.4.0", "picomatch": "^4.0.7" }, "engines": { @@ -9833,14 +9833,14 @@ } }, "node_modules/cspell-grammar": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-10.3.6.tgz", - "integrity": "sha512-Z9CCWEcp+Y6lVAUtY8DykG4bcp9LEh09An0qdthRXVutAvkfNKzGeSK+m6IgJNIh+eb6jW1pZ69XoSOHFDADxg==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-10.4.0.tgz", + "integrity": "sha512-zWxN9g0oh2tzJDM3C11prpsqF2nTw5AHpXtOslTm3D5d4ZL4BfBHRj5PFxbz3Px4fKz/KptPhxSP5yGDCNtjJg==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-pipe": "10.3.6", - "@cspell/cspell-types": "10.3.6" + "@cspell/cspell-pipe": "10.4.0", + "@cspell/cspell-types": "10.4.0" }, "bin": { "cspell-grammar": "bin.mjs" @@ -9850,47 +9850,47 @@ } }, "node_modules/cspell-io": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-10.3.6.tgz", - "integrity": "sha512-n8iBChxmLLjpFR2BaSYGVwWwM5MK3PQe83QZj6qzastb3lYff0oyH5NVXVQspyglUDy7muViddKkNJ/MbxuV/A==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-10.4.0.tgz", + "integrity": "sha512-EunMcHZbgA7PYj6172t2nPFVVWo0L7xi4awIhMay27c3vYGiA+ajowIBtIdy2MLOTSqL+XOfcjkuahXh8L8BzQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-service-bus": "10.3.6", - "@cspell/url": "10.3.6" + "@cspell/cspell-service-bus": "10.4.0", + "@cspell/url": "10.4.0" }, "engines": { "node": ">=22.18.0" } }, "node_modules/cspell-lib": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-10.3.6.tgz", - "integrity": "sha512-zlH+vh5R6/7mEARy0Qsf9fNOihYeb15r0+bKZ0bwx0CDLuyVM1rs/BEAdRIPoaAcqdvdig0ARLdakkgM1zco/g==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-10.4.0.tgz", + "integrity": "sha512-wfqmn19pfEUjWy7UJ4xPeRwyb/LFXHxFVJ6maX87OLRuSE9fTP+cr74VANpKycd/rieuB2ffKta7l38n+Xhj/Q==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-bundled-dicts": "10.3.6", - "@cspell/cspell-performance-monitor": "10.3.6", - "@cspell/cspell-pipe": "10.3.6", - "@cspell/cspell-resolver": "10.3.6", - "@cspell/cspell-types": "10.3.6", - "@cspell/dynamic-import": "10.3.6", - "@cspell/filetypes": "10.3.6", - "@cspell/rpc": "10.3.6", - "@cspell/strong-weak-map": "10.3.6", - "@cspell/url": "10.3.6", - "cspell-config-lib": "10.3.6", - "cspell-dictionary": "10.3.6", - "cspell-glob": "10.3.6", - "cspell-grammar": "10.3.6", - "cspell-io": "10.3.6", - "cspell-trie-lib": "10.3.6", + "@cspell/cspell-bundled-dicts": "10.4.0", + "@cspell/cspell-performance-monitor": "10.4.0", + "@cspell/cspell-pipe": "10.4.0", + "@cspell/cspell-resolver": "10.4.0", + "@cspell/cspell-types": "10.4.0", + "@cspell/dynamic-import": "10.4.0", + "@cspell/filetypes": "10.4.0", + "@cspell/rpc": "10.4.0", + "@cspell/strong-weak-map": "10.4.0", + "@cspell/url": "10.4.0", + "cspell-config-lib": "10.4.0", + "cspell-dictionary": "10.4.0", + "cspell-glob": "10.4.0", + "cspell-grammar": "10.4.0", + "cspell-io": "10.4.0", + "cspell-trie-lib": "10.4.0", "env-paths": "^4.0.0", "gensequence": "^8.0.8", - "import-fresh": "^4.0.0", + "import-fresh": "^4.0.1", "resolve-from": "^5.0.0", - "vscode-languageserver-textdocument": "^1.0.14", + "vscode-languageserver-textdocument": "^1.0.15", "vscode-uri": "^3.2.0", "xdg-basedir": "^5.1.0" }, @@ -9912,16 +9912,16 @@ } }, "node_modules/cspell-trie-lib": { - "version": "10.3.6", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-10.3.6.tgz", - "integrity": "sha512-8PWHpsMUAl8RcB5Ho+lhrSapjcjO/f7wkF8XOxw4oSAF2mERJEm9ejuTRJyXtDmUtt831HB4f/RwKmVgjJyLGg==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-10.4.0.tgz", + "integrity": "sha512-3APfmYOrYEcoiDjupm3JsxLWvqa6IbJ76CqUTuIgXQH2EK0nOJ5SRKSTNP6AplDtalCs0o6VllbiRX6S81g8yw==", "dev": true, "license": "MIT", "engines": { "node": ">=22.18.0" }, "peerDependencies": { - "@cspell/cspell-types": "10.3.6" + "@cspell/cspell-types": "10.4.0" } }, "node_modules/cspell/node_modules/ansi-regex": { @@ -11314,9 +11314,9 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-equals": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-6.0.4.tgz", - "integrity": "sha512-JiBeR0k76FIahi9zAtQR7X1jgZDKLE+fs5S9ryjOGYZWZCOcm8QiwgeahkFvaboS3i6PkGBopRznHKuKhm9zpg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-6.2.1.tgz", + "integrity": "sha512-s7KFkLPAAbIDGTh+nVYhjTiwKGvgMXAUG5vwzg8vQKj7NSRZ4eEGExBQ4rq9V90fTYVWd1cb/Wr4ffCNBmLQMQ==", "dev": true, "license": "MIT", "engines": { @@ -20126,9 +20126,9 @@ } }, "node_modules/smol-toml": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.9.0.tgz", - "integrity": "sha512-hpd+HLON7HdZXqYchMM/+LaTTbdK0AU3NngIJ4KVyWbY9bfQqdL9cD+4yf6dUoU2Ap4VsU0JkQi6FxAI1B2mXQ==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.9.1.tgz", + "integrity": "sha512-j7WyPdf0CJoutMzMoPLF/bVXHtKZIT9Rb4eGeEbWw8X2t5oirjPgpL+OpaENZrILYaXqYwnVH+qgUwVbl+pUJQ==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -22258,9 +22258,9 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "node_modules/yaml": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", - "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.1.tgz", + "integrity": "sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==", "dev": true, "license": "ISC", "bin": { From e5bbba9b6d1916bd8a0af1ae7f59de8c5bae0f0a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 21 Oct 2026 10:57:05 -0400 Subject: [PATCH 37/51] chore(deps): update react-root to v19.3.1 (#4799) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 648b3a850c..ef1aeb341b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18808,24 +18808,24 @@ } }, "node_modules/react": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.3.0.tgz", - "integrity": "sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog==", + "version": "19.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-19.3.1.tgz", + "integrity": "sha512-QNhWdt7nrgVWWQG58QuGsAR3jv3Hbe4mb4vz7w2csnHavciZJgda1CPNaldF6eVxv90ud3jUXpKlHL69gO38yw==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.0.tgz", - "integrity": "sha512-JDk8dgif51OjFoDE70+OT9ICyYr+69HlmihNwp1+Nsfbna3t5sIiCa9ZJktDmQ4/1b/rn26hIAR2uYXDMr5r0Q==", + "version": "19.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.1.tgz", + "integrity": "sha512-Y0bARz53lhEC1NMCASs0/j+faB/zqt3R8hpvg1e8+61ZVJ4UL0UdC4cBbXfZMcIuhrfgeILTLe+ZeBCavQPtKQ==", "license": "MIT", "dependencies": { "scheduler": "^0.28.0" }, "peerDependencies": { - "react": "^19.3.0" + "react": "^19.3.1" } }, "node_modules/react-fast-compare": { From 44cd5e1f52af9c00f469f4655fe38f9777ac94a3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 21 Oct 2026 10:57:56 -0400 Subject: [PATCH 38/51] chore(deps): update react to v19.3.1 (#4798) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v8/react/package-lock.json | 14 +++++++------- static/code/stackblitz/v9/react/package-lock.json | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index c2f8811153..8398939550 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -1715,24 +1715,24 @@ } }, "node_modules/react": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.3.0.tgz", - "integrity": "sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog==", + "version": "19.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-19.3.1.tgz", + "integrity": "sha512-QNhWdt7nrgVWWQG58QuGsAR3jv3Hbe4mb4vz7w2csnHavciZJgda1CPNaldF6eVxv90ud3jUXpKlHL69gO38yw==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.0.tgz", - "integrity": "sha512-JDk8dgif51OjFoDE70+OT9ICyYr+69HlmihNwp1+Nsfbna3t5sIiCa9ZJktDmQ4/1b/rn26hIAR2uYXDMr5r0Q==", + "version": "19.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.1.tgz", + "integrity": "sha512-Y0bARz53lhEC1NMCASs0/j+faB/zqt3R8hpvg1e8+61ZVJ4UL0UdC4cBbXfZMcIuhrfgeILTLe+ZeBCavQPtKQ==", "license": "MIT", "dependencies": { "scheduler": "^0.28.0" }, "peerDependencies": { - "react": "^19.3.0" + "react": "^19.3.1" } }, "node_modules/react-is": { diff --git a/static/code/stackblitz/v9/react/package-lock.json b/static/code/stackblitz/v9/react/package-lock.json index 3ca1a22e70..5863bf223b 100644 --- a/static/code/stackblitz/v9/react/package-lock.json +++ b/static/code/stackblitz/v9/react/package-lock.json @@ -1037,24 +1037,24 @@ } }, "node_modules/react": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.3.0.tgz", - "integrity": "sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog==", + "version": "19.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-19.3.1.tgz", + "integrity": "sha512-QNhWdt7nrgVWWQG58QuGsAR3jv3Hbe4mb4vz7w2csnHavciZJgda1CPNaldF6eVxv90ud3jUXpKlHL69gO38yw==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.0.tgz", - "integrity": "sha512-JDk8dgif51OjFoDE70+OT9ICyYr+69HlmihNwp1+Nsfbna3t5sIiCa9ZJktDmQ4/1b/rn26hIAR2uYXDMr5r0Q==", + "version": "19.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.1.tgz", + "integrity": "sha512-Y0bARz53lhEC1NMCASs0/j+faB/zqt3R8hpvg1e8+61ZVJ4UL0UdC4cBbXfZMcIuhrfgeILTLe+ZeBCavQPtKQ==", "license": "MIT", "dependencies": { "scheduler": "^0.28.0" }, "peerDependencies": { - "react": "^19.3.0" + "react": "^19.3.1" } }, "node_modules/react-property": { From dbdc35b54351db45368204331d55e6fc63a384e4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 22 Oct 2026 09:01:23 -0700 Subject: [PATCH 39/51] chore(deps): update ionic to v9.0.9 (#4803) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../stackblitz/v9/angular/package-lock.json | 18 ++++++------ .../code/stackblitz/v9/angular/package.json | 4 +-- .../code/stackblitz/v9/html/package-lock.json | 8 +++--- static/code/stackblitz/v9/html/package.json | 2 +- .../stackblitz/v9/react/package-lock.json | 28 +++++++++---------- static/code/stackblitz/v9/react/package.json | 4 +-- .../code/stackblitz/v9/vue/package-lock.json | 26 ++++++++--------- static/code/stackblitz/v9/vue/package.json | 4 +-- 8 files changed, 47 insertions(+), 47 deletions(-) diff --git a/static/code/stackblitz/v9/angular/package-lock.json b/static/code/stackblitz/v9/angular/package-lock.json index 0272d75d9e..537fbeb40d 100644 --- a/static/code/stackblitz/v9/angular/package-lock.json +++ b/static/code/stackblitz/v9/angular/package-lock.json @@ -14,8 +14,8 @@ "@angular/platform-browser": "^22.0.0", "@angular/platform-browser-dynamic": "^22.0.0", "@angular/router": "^22.0.0", - "@ionic/angular": "9.0.8", - "@ionic/core": "9.0.8", + "@ionic/angular": "9.0.9", + "@ionic/core": "9.0.9", "ionicons": "8.1.0", "rxjs": "^7.8.1", "tslib": "^2.5.0" @@ -2578,12 +2578,12 @@ } }, "node_modules/@ionic/angular": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-9.0.8.tgz", - "integrity": "sha512-eCgXKqezRdWyjQ1FBsY2X6kYQ4X4yJVmca4JzA8a+05+IxDrQUxzCpe/IjmOo0d0bxufEGpCnxRol0Dn152jdw==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-9.0.9.tgz", + "integrity": "sha512-YbiqiIN40I7MPgJrBdvfm0JhvrQ2p02Zjp7KE9Z9LQaf0HkNWM+33t7ubqboy9CYOpr9ulBA8hSjCQAcu23YgQ==", "license": "MIT", "dependencies": { - "@ionic/core": "9.0.8", + "@ionic/core": "9.0.9", "ionicons": "^8.0.13", "jsonc-parser": "^3.0.0", "tslib": "^2.3.0" @@ -2602,9 +2602,9 @@ } }, "node_modules/@ionic/core": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.8.tgz", - "integrity": "sha512-0KmlxdVWb8dryWTyX69bnH54764jiQnqxX9RHZE313xpyunxDl8UfdxpLiKRWKocawOWa/YgOI4GaHX2RODEGw==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.9.tgz", + "integrity": "sha512-+8MlijXbYbnCoRuexWuPIYxigh9ZsU/X5iXA7mzFBKWzRb7t33uibGiPl1VIF2RG3oLLxeSySewH98R3LAd9Vg==", "license": "MIT", "dependencies": { "@stencil/core": "^4.44.2", diff --git a/static/code/stackblitz/v9/angular/package.json b/static/code/stackblitz/v9/angular/package.json index 16258af55a..f4b7eec25e 100644 --- a/static/code/stackblitz/v9/angular/package.json +++ b/static/code/stackblitz/v9/angular/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^22.0.0", "@angular/platform-browser-dynamic": "^22.0.0", "@angular/router": "^22.0.0", - "@ionic/angular": "9.0.8", - "@ionic/core": "9.0.8", + "@ionic/angular": "9.0.9", + "@ionic/core": "9.0.9", "ionicons": "8.1.0", "rxjs": "^7.8.1", "tslib": "^2.5.0" diff --git a/static/code/stackblitz/v9/html/package-lock.json b/static/code/stackblitz/v9/html/package-lock.json index 44feac9de6..be63179eaa 100644 --- a/static/code/stackblitz/v9/html/package-lock.json +++ b/static/code/stackblitz/v9/html/package-lock.json @@ -6,7 +6,7 @@ "": { "name": "html-starter", "dependencies": { - "@ionic/core": "9.0.8", + "@ionic/core": "9.0.9", "ionicons": "8.1.0" }, "devDependencies": { @@ -16,9 +16,9 @@ } }, "node_modules/@ionic/core": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.8.tgz", - "integrity": "sha512-0KmlxdVWb8dryWTyX69bnH54764jiQnqxX9RHZE313xpyunxDl8UfdxpLiKRWKocawOWa/YgOI4GaHX2RODEGw==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.9.tgz", + "integrity": "sha512-+8MlijXbYbnCoRuexWuPIYxigh9ZsU/X5iXA7mzFBKWzRb7t33uibGiPl1VIF2RG3oLLxeSySewH98R3LAd9Vg==", "license": "MIT", "dependencies": { "@stencil/core": "^4.44.2", diff --git a/static/code/stackblitz/v9/html/package.json b/static/code/stackblitz/v9/html/package.json index f18500d3da..5144b155a4 100644 --- a/static/code/stackblitz/v9/html/package.json +++ b/static/code/stackblitz/v9/html/package.json @@ -9,7 +9,7 @@ "start": "vite preview" }, "dependencies": { - "@ionic/core": "9.0.8", + "@ionic/core": "9.0.9", "ionicons": "8.1.0" }, "devDependencies": { diff --git a/static/code/stackblitz/v9/react/package-lock.json b/static/code/stackblitz/v9/react/package-lock.json index 5863bf223b..d2b894d7a7 100644 --- a/static/code/stackblitz/v9/react/package-lock.json +++ b/static/code/stackblitz/v9/react/package-lock.json @@ -8,8 +8,8 @@ "name": "vite-react-typescript", "version": "0.1.0", "dependencies": { - "@ionic/react": "9.0.8", - "@ionic/react-router": "9.0.8", + "@ionic/react": "9.0.9", + "@ionic/react-router": "9.0.9", "@types/node": "^24.0.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", @@ -254,9 +254,9 @@ "license": "MIT" }, "node_modules/@ionic/core": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.8.tgz", - "integrity": "sha512-0KmlxdVWb8dryWTyX69bnH54764jiQnqxX9RHZE313xpyunxDl8UfdxpLiKRWKocawOWa/YgOI4GaHX2RODEGw==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.9.tgz", + "integrity": "sha512-+8MlijXbYbnCoRuexWuPIYxigh9ZsU/X5iXA7mzFBKWzRb7t33uibGiPl1VIF2RG3oLLxeSySewH98R3LAd9Vg==", "license": "MIT", "dependencies": { "@stencil/core": "^4.44.2", @@ -268,12 +268,12 @@ } }, "node_modules/@ionic/react": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-9.0.8.tgz", - "integrity": "sha512-8N9l+SA2VdcpX6lT9C6bH7brdHfekdbbRmjvXOU4kl86KHdVeqirkkt63iyLWm6VoEKLc2OuAfy4tjUSnlv0rw==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-9.0.9.tgz", + "integrity": "sha512-bnfGMECWnaFNIuljq1Z18YmQUu8Tk9UhPPLqkbKBmzO9MTKPqOGTrcKWOuYaPGHELTQLVENYHt43igpIhWpHVg==", "license": "MIT", "dependencies": { - "@ionic/core": "9.0.8", + "@ionic/core": "9.0.9", "@stencil/react-output-target": "^1.6.2", "ionicons": "^8.0.13", "tslib": "*" @@ -284,13 +284,13 @@ } }, "node_modules/@ionic/react-router": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-9.0.8.tgz", - "integrity": "sha512-5keNmGpmlUKIn+IrXQhW0ZhglKB9kT2mSQYR7FwuhiPlYDXHDIA4Re2w+u6lLr5FbQVQpx9q9AUujIItYgvL7g==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-9.0.9.tgz", + "integrity": "sha512-CuA9Sr6gD0wpdenoYuMj+9dbMgxkrQjYN+NlTRI16iC5oGquHZwjJW/x8D1MsRSeYSXH71alxTCzBSCzYlFWVQ==", "license": "MIT", "dependencies": { - "@ionic/core": "9.0.8", - "@ionic/react": "9.0.8", + "@ionic/core": "9.0.9", + "@ionic/react": "9.0.9", "tslib": "*" }, "peerDependencies": { diff --git a/static/code/stackblitz/v9/react/package.json b/static/code/stackblitz/v9/react/package.json index 4fe40e75e3..1ebc68534c 100644 --- a/static/code/stackblitz/v9/react/package.json +++ b/static/code/stackblitz/v9/react/package.json @@ -3,8 +3,8 @@ "version": "0.1.0", "private": true, "dependencies": { - "@ionic/react": "9.0.8", - "@ionic/react-router": "9.0.8", + "@ionic/react": "9.0.9", + "@ionic/react-router": "9.0.9", "@types/node": "^24.0.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", diff --git a/static/code/stackblitz/v9/vue/package-lock.json b/static/code/stackblitz/v9/vue/package-lock.json index 2dd2bbac5a..d3545b758e 100644 --- a/static/code/stackblitz/v9/vue/package-lock.json +++ b/static/code/stackblitz/v9/vue/package-lock.json @@ -8,8 +8,8 @@ "name": "vite-vue-starter", "version": "0.0.0", "dependencies": { - "@ionic/vue": "9.0.8", - "@ionic/vue-router": "9.0.8", + "@ionic/vue": "9.0.9", + "@ionic/vue-router": "9.0.9", "vue": "^3.2.25", "vue-router": "5.4.0" }, @@ -63,9 +63,9 @@ } }, "node_modules/@ionic/core": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.8.tgz", - "integrity": "sha512-0KmlxdVWb8dryWTyX69bnH54764jiQnqxX9RHZE313xpyunxDl8UfdxpLiKRWKocawOWa/YgOI4GaHX2RODEGw==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-9.0.9.tgz", + "integrity": "sha512-+8MlijXbYbnCoRuexWuPIYxigh9ZsU/X5iXA7mzFBKWzRb7t33uibGiPl1VIF2RG3oLLxeSySewH98R3LAd9Vg==", "license": "MIT", "dependencies": { "@stencil/core": "^4.44.2", @@ -77,23 +77,23 @@ } }, "node_modules/@ionic/vue": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-9.0.8.tgz", - "integrity": "sha512-SpHWvKU2a3t2x03cFQt5mLNBbxuPsNtwiJvOhzfZdmEfnyj7bN0zJkevwToiGyYdmBh7kWuuq4wrUohdtzEwgA==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-9.0.9.tgz", + "integrity": "sha512-ASaDjaWfV/Rwt5GyNNOsvKD49VddzoxGi3rl5y/p7lN1+1JB6pkFiTK4BphmPLBI+zVO3S61PO0rVPl3GeXi5Q==", "license": "MIT", "dependencies": { - "@ionic/core": "9.0.8", + "@ionic/core": "9.0.9", "@stencil/vue-output-target": "0.14.2", "ionicons": "^8.0.13" } }, "node_modules/@ionic/vue-router": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-9.0.8.tgz", - "integrity": "sha512-RmgLVk+cXHl+c01aBF0ujtoeO18peNBQ2FnWNgMxGskBxztv2DMNCM7lxstuAwaRGPOGWAKshqMHzuyX/vfHwg==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-9.0.9.tgz", + "integrity": "sha512-iiXaxLubxSuresi0Zq4l+S+5arlHOcuOw0hvWzGNZtUbw95jSfldts2SBOBOIabUZhfTU5kyJLN/P3p5L6DfEw==", "license": "MIT", "dependencies": { - "@ionic/vue": "9.0.8" + "@ionic/vue": "9.0.9" } }, "node_modules/@jridgewell/gen-mapping": { diff --git a/static/code/stackblitz/v9/vue/package.json b/static/code/stackblitz/v9/vue/package.json index 99aa65f043..d4559c46ec 100644 --- a/static/code/stackblitz/v9/vue/package.json +++ b/static/code/stackblitz/v9/vue/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@ionic/vue": "9.0.8", - "@ionic/vue-router": "9.0.8", + "@ionic/vue": "9.0.9", + "@ionic/vue-router": "9.0.9", "vue": "^3.2.25", "vue-router": "5.4.0" }, From 8d649afa97d59d64ca3e772a2a27ca8273928d1a Mon Sep 17 00:00:00 2001 From: Brandy Smith Date: Tue, 27 Oct 2026 16:37:40 -0400 Subject: [PATCH 40/51] docs: align tutorial, quickstart, and testing pages with the updated starters (#4805) * docs: align tutorial, quickstart, and testing pages with the updated starters * docs: fix review findings in tutorial, quickstart, and testing pages * docs: register the tabs icon in Angular and key Vue photos by file path * docs: explain the Camera.getPhoto options in the Your First App tutorials * docs: pass native photo data straight to the filesystem in React and Vue * docs(vue): remove the e2e type check when converting to JavaScript --------- Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com> --- docs/angular/quickstart.mdx | 4 +- docs/angular/your-first-app.mdx | 31 ++++++- .../your-first-app/2-taking-photos.mdx | 29 ++++--- .../your-first-app/3-saving-photos.mdx | 21 ++--- .../your-first-app/4-loading-photos.mdx | 40 ++++----- .../your-first-app/5-adding-mobile.mdx | 40 +++++---- docs/angular/your-first-app/7-live-reload.mdx | 16 ++-- docs/react/quickstart.mdx | 20 ++++- docs/react/testing/introduction.mdx | 17 +++- .../testing/unit-testing/best-practices.mdx | 9 +- docs/react/testing/unit-testing/examples.mdx | 2 + docs/react/testing/unit-testing/setup.mdx | 68 ++++++++++++--- docs/react/your-first-app.mdx | 17 ++-- docs/react/your-first-app/2-taking-photos.mdx | 56 +++++++----- docs/react/your-first-app/3-saving-photos.mdx | 52 +++++++----- .../react/your-first-app/4-loading-photos.mdx | 47 ++++++---- docs/react/your-first-app/5-adding-mobile.mdx | 31 ++++--- docs/react/your-first-app/7-live-reload.mdx | 24 ++++-- docs/vue/navigation.mdx | 21 ++--- docs/vue/quickstart.mdx | 56 +++++++++--- docs/vue/testing.mdx | 18 +++- docs/vue/troubleshooting.mdx | 13 +-- docs/vue/your-first-app.mdx | 8 +- docs/vue/your-first-app/2-taking-photos.mdx | 53 +++++++----- docs/vue/your-first-app/3-saving-photos.mdx | 52 ++++++++---- docs/vue/your-first-app/4-loading-photos.mdx | 85 ++++++++++++------- docs/vue/your-first-app/5-adding-mobile.mdx | 38 +++++---- docs/vue/your-first-app/7-live-reload.mdx | 25 ++++-- 28 files changed, 591 insertions(+), 302 deletions(-) diff --git a/docs/angular/quickstart.mdx b/docs/angular/quickstart.mdx index e043b556dd..46d9e8f73c 100644 --- a/docs/angular/quickstart.mdx +++ b/docs/angular/quickstart.mdx @@ -112,7 +112,7 @@ This sets up the root of your application, using Ionic's `ion-app` and `ion-rout Routes are defined in `app.routes.ts`: ```ts title="src/app/app.routes.ts" -import { Routes } from '@angular/router'; +import type { Routes } from '@angular/router'; export const routes: Routes = [ { @@ -382,7 +382,7 @@ export class NewPage implements OnInit { ngOnInit() {} - scrollToBottom = () => { + scrollToBottom = (): void => { this.content.scrollToBottom(300); }; } diff --git a/docs/angular/your-first-app.mdx b/docs/angular/your-first-app.mdx index 7db2aaac48..89c4ce5f26 100644 --- a/docs/angular/your-first-app.mdx +++ b/docs/angular/your-first-app.mdx @@ -115,8 +115,8 @@ import { IonicRouteStrategy, provideIonicAngular } from '@ionic/angular'; // CHANGE: Add the following import import { defineCustomElements } from '@ionic/pwa-elements/loader'; -import { routes } from './app/app.routes'; import { AppComponent } from './app/app.component'; +import { routes } from './app/app.routes'; // CHANGE: Call the element loader before the `bootstrapApplication` call defineCustomElements(window); @@ -195,11 +195,11 @@ We put the visual aspects of our app into ``. In this case, it’s ```html - Photo Gallery + Photo Gallery - + Photo Gallery @@ -243,4 +243,29 @@ Next, open `src/app/tabs/tabs.page.html`. Change the label to "Photos" and the ` ``` +Then open `src/app/tabs/tabs.page.ts` and register the `images` icon in place of `ellipse`, so the new icon can display: + +```ts +import { Component, EnvironmentInjector, inject } from '@angular/core'; +import { IonTabs, IonTabBar, IonTabButton, IonIcon, IonLabel } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +// CHANGE: Update import +import { triangle, images, square } from 'ionicons/icons'; + +@Component({ + selector: 'app-tabs', + templateUrl: 'tabs.page.html', + styleUrls: ['tabs.page.scss'], + imports: [IonTabs, IonTabBar, IonTabButton, IonIcon, IonLabel], +}) +export class TabsPage { + public environmentInjector = inject(EnvironmentInjector); + + constructor() { + // CHANGE: Register the `images` icon instead of `ellipse` + addIcons({ triangle, images, square }); + } +} +``` + That’s just the start of all the cool things we can do with Ionic. Up next, implement camera taking functionality on the web, then build it for iOS and Android. diff --git a/docs/angular/your-first-app/2-taking-photos.mdx b/docs/angular/your-first-app/2-taking-photos.mdx index 898e2d6fc9..f9bea16149 100644 --- a/docs/angular/your-first-app/2-taking-photos.mdx +++ b/docs/angular/your-first-app/2-taking-photos.mdx @@ -45,12 +45,12 @@ import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; }) export class PhotoService { // CHANGE: Add the gallery method - public async addNewToGallery() { + public async addNewToGallery(): Promise { // Take a photo const capturedPhoto = await Camera.getPhoto({ - resultType: CameraResultType.Uri, - source: CameraSource.Camera, - quality: 100, + resultType: CameraResultType.Uri, // file-based data; provides best performance + source: CameraSource.Camera, // automatically take a new photo with the camera + quality: 100, // highest quality (0 to 100) }); } } @@ -78,6 +78,7 @@ import { // CHANGE: Register the camera icon used by the FAB import { addIcons } from 'ionicons'; import { camera } from 'ionicons/icons'; + // CHANGE: Import the PhotoService import { PhotoService } from '../services/photo.service'; @@ -98,7 +99,7 @@ export class Tab2Page { } // CHANGE: Add `addPhotoToGallery()` method - addPhotoToGallery() { + addPhotoToGallery(): void { this.photoService.addNewToGallery(); } } @@ -166,7 +167,7 @@ export class PhotoService { // CHANGE: Add the `photos` signal public photos = signal([]); - public async addNewToGallery() { + public async addNewToGallery(): Promise { // ...existing code... } } @@ -176,12 +177,12 @@ Over in the `addNewToGallery` method, add the newly captured photo to the beginn ```ts // CHANGE: Update `addNewToGallery()` method -public async addNewToGallery() { +public async addNewToGallery(): Promise { // Take a photo const capturedPhoto = await Camera.getPhoto({ - resultType: CameraResultType.Uri, - source: CameraSource.Camera, - quality: 100 + resultType: CameraResultType.Uri, // file-based data; provides best performance + source: CameraSource.Camera, // automatically take a new photo with the camera + quality: 100, // highest quality (0 to 100) }); // CHANGE: Add the new photo to the front of the photos signal @@ -207,12 +208,12 @@ import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; export class PhotoService { public photos = signal([]); - public async addNewToGallery() { + public async addNewToGallery(): Promise { // Take a photo const capturedPhoto = await Camera.getPhoto({ - resultType: CameraResultType.Uri, - source: CameraSource.Camera, - quality: 100, + resultType: CameraResultType.Uri, // file-based data; provides best performance + source: CameraSource.Camera, // automatically take a new photo with the camera + quality: 100, // highest quality (0 to 100) }); this.photos.update((photos) => [ diff --git a/docs/angular/your-first-app/3-saving-photos.mdx b/docs/angular/your-first-app/3-saving-photos.mdx index 5529c6dbd2..73eac223d1 100644 --- a/docs/angular/your-first-app/3-saving-photos.mdx +++ b/docs/angular/your-first-app/3-saving-photos.mdx @@ -47,7 +47,8 @@ We can use this new method immediately in `addNewToGallery()`. ```ts import { Injectable, signal } from '@angular/core'; -import { Camera, CameraResultType, CameraSource, Photo } from '@capacitor/camera'; +import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; +import type { Photo } from '@capacitor/camera'; @Injectable({ providedIn: 'root', @@ -56,12 +57,12 @@ export class PhotoService { public photos = signal([]); // CHANGE: Update the `addNewToGallery()` method - public async addNewToGallery() { + public async addNewToGallery(): Promise { // Take a photo const capturedPhoto = await Camera.getPhoto({ - resultType: CameraResultType.Uri, - source: CameraSource.Camera, - quality: 100, + resultType: CameraResultType.Uri, // file-based data; provides best performance + source: CameraSource.Camera, // automatically take a new photo with the camera + quality: 100, // highest quality (0 to 100) }); // CHANGE: Add `savedImageFile` @@ -93,7 +94,7 @@ Then, pass the data to the Filesystem's `writeFile` method. Recall that we displ Create a new helper method, `base64FromPath()`, to implement the necessary logic for running on the web: ```ts -import { Injectable } from '@angular/core'; +import { Injectable, signal } from '@angular/core'; import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; import type { Photo } from '@capacitor/camera'; // CHANGE: Add import @@ -164,12 +165,12 @@ import { Filesystem, Directory } from '@capacitor/filesystem'; export class PhotoService { public photos = signal([]); - public async addNewToGallery() { + public async addNewToGallery(): Promise { // Take a photo const capturedPhoto = await Camera.getPhoto({ - resultType: CameraResultType.Uri, - source: CameraSource.Camera, - quality: 100, + resultType: CameraResultType.Uri, // file-based data; provides best performance + source: CameraSource.Camera, // automatically take a new photo with the camera + quality: 100, // highest quality (0 to 100) }); // Save the picture and add it to photo collection diff --git a/docs/angular/your-first-app/4-loading-photos.mdx b/docs/angular/your-first-app/4-loading-photos.mdx index 5a5b5fc626..6b92091810 100644 --- a/docs/angular/your-first-app/4-loading-photos.mdx +++ b/docs/angular/your-first-app/4-loading-photos.mdx @@ -33,7 +33,7 @@ export class PhotoService { Next, at the end of the `addNewToGallery()` method, add a call to `Preferences.set()` to save the `photos` array. By adding it here, the `photos` array is stored each time a new photo is taken. This way, it doesn’t matter when the app user closes or switches to a different app - all photo data is saved. ```ts -import { Injectable } from '@angular/core'; +import { Injectable, signal } from '@angular/core'; import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; import type { Photo } from '@capacitor/camera'; import { Filesystem, Directory } from '@capacitor/filesystem'; @@ -47,12 +47,12 @@ export class PhotoService { // ...existing code... // CHANGE: Update `addNewToGallery()` method - public async addNewToGallery() { + public async addNewToGallery(): Promise { // Take a photo const capturedPhoto = await Camera.getPhoto({ - resultType: CameraResultType.Uri, - source: CameraSource.Camera, - quality: 100, + resultType: CameraResultType.Uri, // file-based data; provides best performance + source: CameraSource.Camera, // automatically take a new photo with the camera + quality: 100, // highest quality (0 to 100) }); const savedImageFile = await this.savePicture(capturedPhoto); @@ -82,7 +82,7 @@ export class PhotoService { // ...existing code... // CHANGE: Add the method to load the photo data - public async loadSaved() { + public async loadSaved(): Promise { // Retrieve cached photo array data const { value: photoList } = await Preferences.get({ key: this.PHOTO_STORAGE }); this.photos.set((photoList ? JSON.parse(photoList) : []) as UserPhoto[]); @@ -97,7 +97,7 @@ export class PhotoService { // ...existing code... // CHANGE: Update the `loadSaved()` method - public async loadSaved() { + public async loadSaved(): Promise { // Retrieve cached photo array data const { value: photoList } = await Preferences.get({ key: this.PHOTO_STORAGE }); const photos = (photoList ? JSON.parse(photoList) : []) as UserPhoto[]; @@ -105,13 +105,13 @@ export class PhotoService { // CHANGE: Display the photo by reading into base64 format for (const photo of photos) { // Read each saved photo's data from the Filesystem - const file = await Filesystem.readFile({ + const readFile = await Filesystem.readFile({ path: photo.filepath, directory: Directory.Data, }); // Web platform only: Load the photo as base64 data - photo.webviewPath = `data:image/jpeg;base64,${file.data}`; + photo.webviewPath = `data:image/jpeg;base64,${readFile.data}`; } // CHANGE: Set the signal so the gallery view updates @@ -137,12 +137,12 @@ export class PhotoService { private PHOTO_STORAGE: string = 'photos'; - public async addNewToGallery() { + public async addNewToGallery(): Promise { // Take a photo const capturedPhoto = await Camera.getPhoto({ - resultType: CameraResultType.Uri, - source: CameraSource.Camera, - quality: 100, + resultType: CameraResultType.Uri, // file-based data; provides best performance + source: CameraSource.Camera, // automatically take a new photo with the camera + quality: 100, // highest quality (0 to 100) }); // Save the picture and add it to photo collection @@ -192,20 +192,20 @@ export class PhotoService { }); } - public async loadSaved() { + public async loadSaved(): Promise { // Retrieve cached photo array data const { value: photoList } = await Preferences.get({ key: this.PHOTO_STORAGE }); const photos = (photoList ? JSON.parse(photoList) : []) as UserPhoto[]; for (const photo of photos) { // Read each saved photo's data from the Filesystem - const file = await Filesystem.readFile({ + const readFile = await Filesystem.readFile({ path: photo.filepath, directory: Directory.Data, }); // Web platform only: Load the photo as base64 data - photo.webviewPath = `data:image/jpeg;base64,${file.data}`; + photo.webviewPath = `data:image/jpeg;base64,${readFile.data}`; } this.photos.set(photos); @@ -223,7 +223,8 @@ Our `PhotoService` can now load the saved images, but we'll need to update `tab2 Update `tab2.page.ts` to look like the following: ```ts -import { Component, OnInit, inject } from '@angular/core'; +import type { OnInit } from '@angular/core'; +import { Component, inject } from '@angular/core'; import { IonHeader, IonToolbar, @@ -238,6 +239,7 @@ import { } from '@ionic/angular'; import { addIcons } from 'ionicons'; import { camera } from 'ionicons/icons'; + import { PhotoService } from '../services/photo.service'; @Component({ @@ -254,11 +256,11 @@ export class Tab2Page implements OnInit { } // CHANGE: Add call to `loadSaved()` when navigating to the Photos tab - async ngOnInit() { + async ngOnInit(): Promise { await this.photoService.loadSaved(); } - addPhotoToGallery() { + addPhotoToGallery(): void { this.photoService.addNewToGallery(); } } diff --git a/docs/angular/your-first-app/5-adding-mobile.mdx b/docs/angular/your-first-app/5-adding-mobile.mdx index 0f3ce3eb08..864c1062bd 100644 --- a/docs/angular/your-first-app/5-adding-mobile.mdx +++ b/docs/angular/your-first-app/5-adding-mobile.mdx @@ -61,8 +61,9 @@ private async savePicture(photo: Photo) { if (this.platform.is('hybrid')) { // Read the file into base64 format const file = await Filesystem.readFile({ - path: photo.path! + path: photo.path!, }); + base64Data = file.data; } else { base64Data = await this.base64FromPath(photo.webPath!); @@ -73,7 +74,7 @@ private async savePicture(photo: Photo) { const savedFile = await Filesystem.writeFile({ path: fileName, data: base64Data, - directory: Directory.Data + directory: Directory.Data, }); // Use webPath to display the new image instead of base64 since it's @@ -91,11 +92,11 @@ When running on mobile, set `filepath` to the result of the `writeFile()` operat import { Injectable, inject, signal } from '@angular/core'; import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; import type { Photo } from '@capacitor/camera'; +// CHANGE: Add import +import { Capacitor } from '@capacitor/core'; import { Filesystem, Directory } from '@capacitor/filesystem'; import { Preferences } from '@capacitor/preferences'; import { Platform } from '@ionic/angular'; -// Change: Add import -import { Capacitor } from '@capacitor/core'; // ...existing code... ``` @@ -106,11 +107,13 @@ Then update `savePicture()` to look like the following: // CHANGE: Update `savePicture()` method private async savePicture(photo: Photo) { let base64Data: string | Blob; + // "hybrid" will detect mobile - iOS or Android if (this.platform.is('hybrid')) { const file = await Filesystem.readFile({ path: photo.path!, }); + base64Data = file.data; } else { base64Data = await this.base64FromPath(photo.webPath!); @@ -146,7 +149,7 @@ Next, add a new bit of logic in the `loadSaved()` method. On mobile, we can dire ```ts // CHANGE: Update `loadSaved()` method -public async loadSaved() { +public async loadSaved(): Promise { const { value: photoList } = await Preferences.get({ key: this.PHOTO_STORAGE }); const photos = (photoList ? JSON.parse(photoList) : []) as UserPhoto[]; @@ -154,13 +157,13 @@ public async loadSaved() { // If running on the web... if (!this.platform.is('hybrid')) { for (const photo of photos) { - const file = await Filesystem.readFile({ - path: photo.filepath, - directory: Directory.Data + const readFile = await Filesystem.readFile({ + path: photo.filepath, + directory: Directory.Data, }); // Web platform only: Load the photo as base64 data - photo.webviewPath = `data:image/jpeg;base64,${file.data}`; + photo.webviewPath = `data:image/jpeg;base64,${readFile.data}`; } } @@ -171,16 +174,16 @@ public async loadSaved() { Our Photo Gallery now consists of one codebase that runs on the web, Android, and iOS. -`photos.service.ts` should now look like this: +`photo.service.ts` should now look like this: ```ts import { Injectable, inject, signal } from '@angular/core'; import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; import type { Photo } from '@capacitor/camera'; +import { Capacitor } from '@capacitor/core'; import { Filesystem, Directory } from '@capacitor/filesystem'; import { Preferences } from '@capacitor/preferences'; import { Platform } from '@ionic/angular'; -import { Capacitor } from '@capacitor/core'; @Injectable({ providedIn: 'root', @@ -192,12 +195,12 @@ export class PhotoService { private platform = inject(Platform); - public async addNewToGallery() { + public async addNewToGallery(): Promise { // Take a photo const capturedPhoto = await Camera.getPhoto({ - resultType: CameraResultType.Uri, - source: CameraSource.Camera, - quality: 100, + resultType: CameraResultType.Uri, // file-based data; provides best performance + source: CameraSource.Camera, // automatically take a new photo with the camera + quality: 100, // highest quality (0 to 100) }); const savedImageFile = await this.savePicture(capturedPhoto); @@ -266,7 +269,7 @@ export class PhotoService { }); } - public async loadSaved() { + public async loadSaved(): Promise { // Retrieve cached photo array data const { value: photoList } = await Preferences.get({ key: this.PHOTO_STORAGE }); const photos = (photoList ? JSON.parse(photoList) : []) as UserPhoto[]; @@ -274,12 +277,13 @@ export class PhotoService { // If running on the web... if (!this.platform.is('hybrid')) { for (const photo of photos) { - const file = await Filesystem.readFile({ + const readFile = await Filesystem.readFile({ path: photo.filepath, directory: Directory.Data, }); + // Web platform only: Load the photo as base64 data - photo.webviewPath = `data:image/jpeg;base64,${file.data}`; + photo.webviewPath = `data:image/jpeg;base64,${readFile.data}`; } } diff --git a/docs/angular/your-first-app/7-live-reload.mdx b/docs/angular/your-first-app/7-live-reload.mdx index 74dac3b0cf..9473e6e9cc 100644 --- a/docs/angular/your-first-app/7-live-reload.mdx +++ b/docs/angular/your-first-app/7-live-reload.mdx @@ -41,10 +41,10 @@ In `photo.service.ts`, add the `deletePhoto()` method. The selected photo is rem import { Injectable, inject, signal } from '@angular/core'; import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; import type { Photo } from '@capacitor/camera'; +import { Capacitor } from '@capacitor/core'; import { Filesystem, Directory } from '@capacitor/filesystem'; import { Preferences } from '@capacitor/preferences'; import { Platform } from '@ionic/angular'; -import { Capacitor } from '@capacitor/core'; @Injectable({ providedIn: 'root', @@ -53,7 +53,7 @@ export class PhotoService { // ...existing code... // CHANGE: Add `deletePhoto()` method - public async deletePhoto(photo: UserPhoto, position: number) { + public async deletePhoto(photo: UserPhoto, position: number): Promise { // Remove this photo from the photos signal this.photos.update((photos) => photos.filter((_, index) => index !== position)); @@ -82,7 +82,8 @@ export interface UserPhoto { Next, in `tab2.page.ts`, implement the `showActionSheet()` method. We're adding two options: "Delete", which calls `PhotoService.deletePhoto()`, and "Cancel". The cancel button will automatically close the action sheet when assigned the "cancel" role. ```ts -import { Component, OnInit, inject } from '@angular/core'; +import type { OnInit } from '@angular/core'; +import { Component, inject } from '@angular/core'; import { IonHeader, IonToolbar, @@ -100,7 +101,8 @@ import { import { addIcons } from 'ionicons'; // CHANGE: Register the `trash` and `close` icons used by the action sheet import { camera, trash, close } from 'ionicons/icons'; -// Change: Add import + +// CHANGE: Add import import type { UserPhoto } from '../services/photo.service'; import { PhotoService } from '../services/photo.service'; @@ -120,16 +122,16 @@ export class Tab2Page implements OnInit { addIcons({ camera, trash, close }); } - async ngOnInit() { + async ngOnInit(): Promise { await this.photoService.loadSaved(); } - addPhotoToGallery() { + addPhotoToGallery(): void { this.photoService.addNewToGallery(); } // CHANGE: Add `showActionSheet()` method - public async showActionSheet(photo: UserPhoto, position: number) { + public async showActionSheet(photo: UserPhoto, position: number): Promise { const actionSheet = await this.actionSheetController.create({ header: 'Photos', buttons: [ diff --git a/docs/react/quickstart.mdx b/docs/react/quickstart.mdx index 972203a096..29263b0287 100644 --- a/docs/react/quickstart.mdx +++ b/docs/react/quickstart.mdx @@ -80,9 +80,10 @@ Let's walk through these files to understand the app's structure. The root of your app is defined in `App.tsx`: ```tsx title="src/App.tsx" -import { Route, Navigate } from 'react-router-dom'; import { IonApp, IonRouterOutlet, setupIonicReact } from '@ionic/react'; import { IonReactRouter } from '@ionic/react-router'; +import { Navigate, Route } from 'react-router-dom'; + import Home from './pages/Home'; // ..CSS imports... @@ -124,6 +125,7 @@ The Home page component, defined in `Home.tsx`, imports the Ionic components and ```tsx title="src/pages/Home.tsx" import { IonContent, IonHeader, IonPage, IonTitle, IonToolbar } from '@ionic/react'; + import ExploreContainer from '../components/ExploreContainer'; import './Home.css'; @@ -303,9 +305,21 @@ Update `New.tsx` to add a `ref` on `IonContent` and a button and some items afte Then, add the imports for the additional components and define the `scrollToBottom` function: ```tsx title="src/pages/New.tsx" -import { useRef } from 'react'; -import { IonButton, IonBackButton, IonButtons, IonContent, IonHeader, IonIcon, IonItem, IonLabel, IonPage, IonTitle, IonToolbar } from '@ionic/react'; +import { + IonButton, + IonBackButton, + IonButtons, + IonContent, + IonHeader, + IonIcon, + IonItem, + IonLabel, + IonPage, + IonTitle, + IonToolbar, +} from '@ionic/react'; import { heart, logoIonic } from 'ionicons/icons'; +import { useRef } from 'react'; const New: React.FC = () => { const content = useRef(null); diff --git a/docs/react/testing/introduction.mdx b/docs/react/testing/introduction.mdx index 25698b2956..94ba66f2ae 100644 --- a/docs/react/testing/introduction.mdx +++ b/docs/react/testing/introduction.mdx @@ -10,7 +10,20 @@ This document provides an overview of how to test an application built with `@io ## Introduction {/* #introduction */} -Testing is an important part of the development process, and it helps to ensure that an application is working as intended. In `@ionic/react`, testing is done using a combination of tools and libraries, including Jest or Vitest, React Testing Library, Playwright or Cypress. +Testing is an important part of the development process, and it helps to ensure that an application is working as intended. Applications generated with the Ionic CLI are set up for unit testing with [Vitest](https://vitest.dev) and [React Testing Library](https://testing-library.com), and for end-to-end testing with [Playwright](https://playwright.dev). Unit tests live next to the code they test in `src` and end-to-end tests live in `e2e`. + +The generated `package.json` includes scripts for running them: + +| Script | Description | +| ------------------------- | ------------------------------------------------------------ | +| `npm test` | Runs the unit tests once, then the end-to-end tests. | +| `npm run test:unit` | Runs the unit tests once. | +| `npm run test:unit:watch` | Runs the unit tests and re-runs them when files change. | +| `npm run test:e2e` | Runs the end-to-end tests, starting the dev server for them. | + +:::note +Playwright downloads its browsers separately from the npm package. Run `npx playwright install` once before running the end-to-end tests for the first time. +::: ## Types of Tests {/* #types-of-tests */} @@ -18,4 +31,4 @@ There are two types of tests that can be written: **Unit Tests**: Unit tests are used to test individual functions and components in isolation. [Jest](https://jestjs.io), [Vitest](https://vitest.dev/) and [React Testing Library](https://testing-library.com) are commonly used for unit testing. -**Integration Tests**: Integration tests are used to test how different components work together. [Cypress](https://www.cypress.io) or [Playwright](https://playwright.dev) are commonly used for integration testing. +**End-to-end Tests**: End-to-end tests are used to test how different components work together in the running application. [Playwright](https://playwright.dev) and [Cypress](https://www.cypress.io) are commonly used for end-to-end testing. diff --git a/docs/react/testing/unit-testing/best-practices.mdx b/docs/react/testing/unit-testing/best-practices.mdx index 1a705eb4db..2e85bf7932 100644 --- a/docs/react/testing/unit-testing/best-practices.mdx +++ b/docs/react/testing/unit-testing/best-practices.mdx @@ -10,7 +10,8 @@ In your test template when rendering with React Testing Library, you must wrap y ```tsx title="Example.test.tsx" import { IonApp } from '@ionic/react'; -import { render } from "@testing-library/react"; +import { render } from '@testing-library/react'; +import { test } from 'vitest'; import Example from './Example'; @@ -30,8 +31,9 @@ React Testing Library recommends using the `user-event` library for simulating u ```tsx title="Example.test.tsx" import { IonApp } from '@ionic/react'; -import { render } from '@testing-library/react'; +import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; +import { test } from 'vitest'; import Example from './Example'; @@ -55,9 +57,10 @@ For more information on `user-event`, refer to the [user-event documentation](ht When you need to wait for an Ionic component to render before asserting against its DOM, use the `componentOnReady` helper exported from `@ionic/core`. Do not call `el.componentOnReady()` directly. `@ionic/react` uses Stencil's custom elements build, where that method does not exist on the element. The helper waits one animation frame instead, giving the component's inner contents a chance to render. ```tsx +import { componentOnReady } from '@ionic/core'; import { IonApp } from '@ionic/react'; import { render } from '@testing-library/react'; -import { componentOnReady } from '@ionic/core'; +import { expect, test } from 'vitest'; import Example from './Example'; diff --git a/docs/react/testing/unit-testing/examples.mdx b/docs/react/testing/unit-testing/examples.mdx index 1b5a84ac10..9186aaf917 100644 --- a/docs/react/testing/unit-testing/examples.mdx +++ b/docs/react/testing/unit-testing/examples.mdx @@ -30,6 +30,7 @@ export default function Example() { ```tsx title="src/Example.test.tsx" import { IonApp } from '@ionic/react'; import { fireEvent, render, screen, waitFor } from '@testing-library/react'; +import { expect, test } from 'vitest'; import Example from './Example'; @@ -92,6 +93,7 @@ export default Example; ```tsx title="src/Example.test.tsx" import { IonApp } from '@ionic/react'; import { fireEvent, render, screen, waitFor } from '@testing-library/react'; +import { expect, test } from 'vitest'; import Example from './Example'; diff --git a/docs/react/testing/unit-testing/setup.mdx b/docs/react/testing/unit-testing/setup.mdx index aae81f5703..2ca4acd782 100644 --- a/docs/react/testing/unit-testing/setup.mdx +++ b/docs/react/testing/unit-testing/setup.mdx @@ -6,35 +6,79 @@ description: Learn how to set up unit tests for an Ionic React application. # Unit Testing Setup -Ionic requires a few additional steps to set up unit tests. If you are using an Ionic starter project, these steps have already been completed for you. +Ionic requires a few additional steps to set up unit tests. If you are using an Ionic starter project, Vitest, React Testing Library, and jest-dom are already installed and `src/setupTests.ts` is already configured; you only need to initialize Ionic React as described below. + +### Install Vitest {/* #install-vitest */} + +[Vitest](https://vitest.dev) runs the tests. It uses [jsdom](https://github.com/jsdom/jsdom) to provide a browser-like environment for the components. + +```bash +npm install --save-dev vitest jsdom +``` + +Then configure Vitest in `vite.config.ts` to use jsdom and load `src/setupTests.ts` before the tests run: + +```ts title="vite.config.ts" +import react from '@vitejs/plugin-react'; +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + plugins: [react()], + test: { + environment: 'jsdom', + setupFiles: './src/setupTests.ts', + include: ['src/**/*.test.{ts,tsx}'], + }, +}); +``` ### Install React Testing Library {/* #install-react-testing-library */} React Testing Library is a set of utilities that make it easier to test React components. It's used to interact with components and test their behavior. ```bash -npm install --save-dev @testing-library/react @testing-library/jest-dom @testing-library/user-event +npm install --save-dev @testing-library/react @testing-library/dom @testing-library/jest-dom +``` + +To simulate user interactions with [`user-event`](./best-practices.mdx#use-user-event-for-user-interactions), install it as well. It is not included in Ionic starter projects: + +```bash +npm install --save-dev @testing-library/user-event ``` ### Initialize Ionic React {/* #initialize-ionic-react */} Ionic React requires the `setupIonicReact` function to be called before any tests are run. Failing to do so will result in mode-based classes and platform behaviors not being applied to your components. -In `src/setupTest.ts`, add the following code: +In `src/setupTests.ts`, add the following code: ```diff -import '@testing-library/jest-dom/extend-expect'; - +// Adds jest-dom's DOM matchers (toBeInTheDocument, toHaveTextContent, ...) to Vitest's expect. +import '@testing-library/jest-dom/vitest'; + import { setupIonicReact } from '@ionic/react'; +import { cleanup } from '@testing-library/react'; +import { afterEach } from 'vitest'; + setupIonicReact(); ++ +// Testing Library only cleans up automatically when Vitest globals are enabled. +afterEach(() => { + cleanup(); +}); -// Mock matchmedia -window.matchMedia = window.matchMedia || function () { - return { - matches: false, - addListener: function () { }, - removeListener: function () { } +// jsdom doesn't implement matchMedia, which Ionic uses for platform and dark mode checks. +window.matchMedia = + window.matchMedia || + function (query: string): MediaQueryList { + return { + matches: false, + media: query, + onchange: null, + addListener: () => undefined, + removeListener: () => undefined, + addEventListener: () => undefined, + removeEventListener: () => undefined, + dispatchEvent: () => false, + }; }; -}; ``` diff --git a/docs/react/your-first-app.mdx b/docs/react/your-first-app.mdx index fa052a476d..91d8e8d890 100644 --- a/docs/react/your-first-app.mdx +++ b/docs/react/your-first-app.mdx @@ -103,15 +103,15 @@ npm install @ionic/pwa-elements Next, import `@ionic/pwa-elements` by editing `src/main.tsx`. ```tsx +// CHANGE: Add the following import +import { defineCustomElements } from '@ionic/pwa-elements/loader'; import React from 'react'; import { createRoot } from 'react-dom/client'; + import App from './App'; -// CHANGE: Add the following import -import { defineCustomElements } from '@ionic/pwa-elements/loader'; // CHANGE: Call the element loader before the render call defineCustomElements(window); - const container = document.getElementById('root'); const root = createRoot(container!); root.render( @@ -143,6 +143,7 @@ Open `/src/pages/Tab2.tsx`. It contains: ```tsx import { IonContent, IonHeader, IonPage, IonTitle, IonToolbar } from '@ionic/react'; + import ExploreContainer from '../components/ExploreContainer'; import './Tab2.css'; @@ -195,10 +196,11 @@ export default Tab2; We put the visual aspects of our app into ``. In this case, it’s where we’ll add a button that opens the device’s camera as well as displays the image captured by the camera. Start by adding a [floating action button](../api/fab.mdx) (FAB) to the bottom of the page and set the camera image as the icon. ```tsx -// CHANGE: Add the following import -import { camera } from 'ionicons/icons'; // CHANGE: Update the following import import { IonContent, IonHeader, IonPage, IonTitle, IonToolbar, IonFab, IonFabButton, IonIcon } from '@ionic/react'; +// CHANGE: Add the following import +import { camera } from 'ionicons/icons'; + // CHANGE: Remove or comment out `ExploreContainer` // import ExploreContainer from '../components/ExploreContainer'; import './Tab2.css'; @@ -238,7 +240,6 @@ export default Tab2; Next, open `src/App.tsx`. Change the label to "Photos" and the `ellipse` icon to `images` for the middle tab button. ```tsx -import { Route, Navigate } from 'react-router-dom'; import { IonApp, IonIcon, @@ -252,12 +253,16 @@ import { import { IonReactRouter } from '@ionic/react-router'; // CHANGE: Update the following import import { images, square, triangle } from 'ionicons/icons'; +import { Navigate, Route } from 'react-router-dom'; + import Tab1 from './pages/Tab1'; import Tab2 from './pages/Tab2'; import Tab3 from './pages/Tab3'; /* ...existing Ionic styles... */ +setupIonicReact(); + const App: React.FC = () => ( diff --git a/docs/react/your-first-app/2-taking-photos.mdx b/docs/react/your-first-app/2-taking-photos.mdx index b65238b780..1bc8f47ae9 100644 --- a/docs/react/your-first-app/2-taking-photos.mdx +++ b/docs/react/your-first-app/2-taking-photos.mdx @@ -24,13 +24,15 @@ Next, define a new method, `usePhotoGallery()`, that will contain the core logic ```ts import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; -export function usePhotoGallery() { +export function usePhotoGallery(): { + addNewToGallery: () => Promise; +} { const addNewToGallery = async () => { // Take a photo const capturedPhoto = await Camera.getPhoto({ - resultType: CameraResultType.Uri, - source: CameraSource.Camera, - quality: 100, + resultType: CameraResultType.Uri, // file-based data; provides best performance + source: CameraSource.Camera, // automatically take a new photo with the camera + quality: 100, // highest quality (0 to 100) }); }; @@ -45,8 +47,9 @@ Notice the magic here: there's no platform-specific code (web, iOS, or Android)! Next, in `Tab2.tsx`, import the `usePhotoGallery()` method and destructure it to call its `addNewToGallery()` method. ```tsx -import { camera } from 'ionicons/icons'; import { IonContent, IonHeader, IonPage, IonTitle, IonToolbar, IonFab, IonFabButton, IonIcon } from '@ionic/react'; +import { camera } from 'ionicons/icons'; + // CHANGE: Add `usePhotoGallery` import import { usePhotoGallery } from '../hooks/usePhotoGallery'; import './Tab2.css'; @@ -96,7 +99,9 @@ After taking a photo, it disappears right away. We need to display it within our To define the data structure for our photo metadata, create a new interface named `UserPhoto`. Add this interface at the very bottom of the `usePhotoGallery.ts` file, immediately after the `usePhotoGallery()` method definition. ```ts -export function usePhotoGallery() { +export function usePhotoGallery(): { + addNewToGallery: () => Promise; +} { // ...existing code... } @@ -110,11 +115,13 @@ export interface UserPhoto { Above the `addNewToGallery()` method, define an array of `UserPhoto`, which will contain a reference to each photo captured with the Camera. Make it a state variable using React's [useState hook](https://react.dev/reference/react/useState). ```ts +import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; // CHANGE: Add import import { useState } from 'react'; -import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; -export function usePhotoGallery() { +export function usePhotoGallery(): { + addNewToGallery: () => Promise; +} { // CHANGE: Add the `photos` array const [photos, setPhotos] = useState([]); @@ -125,20 +132,24 @@ export function usePhotoGallery() { Over in the `addNewToGallery()` method, add the newly captured photo to the beginning of the `photos` array. Then, update the `usePhotoGallery()` return statement with the `photos` array. ```ts -export function usePhotoGallery() { +export function usePhotoGallery(): { + addNewToGallery: () => Promise; + // CHANGE: Add `photos` to the return type + photos: UserPhoto[]; +} { const [photos, setPhotos] = useState([]); // CHANGE: Update `addNewToGallery()` method const addNewToGallery = async () => { // Take a photo const capturedPhoto = await Camera.getPhoto({ - resultType: CameraResultType.Uri, - source: CameraSource.Camera, - quality: 100, + resultType: CameraResultType.Uri, // file-based data; provides best performance + source: CameraSource.Camera, // automatically take a new photo with the camera + quality: 100, // highest quality (0 to 100) }); // CHANGE: Create the `fileName` with current timestamp - const fileName = Date.now() + '.jpeg'; + const fileName = new Date().getTime() + '.jpeg'; // CHANGE: Create `savedImageFile` matching `UserPhoto` interface const savedImageFile = [ { @@ -163,21 +174,24 @@ export function usePhotoGallery() { `usePhotoGallery.ts` should now look like this: ```ts -import { useState } from 'react'; import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; +import { useState } from 'react'; -export function usePhotoGallery() { +export function usePhotoGallery(): { + addNewToGallery: () => Promise; + photos: UserPhoto[]; +} { const [photos, setPhotos] = useState([]); const addNewToGallery = async () => { // Take a photo const capturedPhoto = await Camera.getPhoto({ - resultType: CameraResultType.Uri, - source: CameraSource.Camera, - quality: 100, + resultType: CameraResultType.Uri, // file-based data; provides best performance + source: CameraSource.Camera, // automatically take a new photo with the camera + quality: 100, // highest quality (0 to 100) }); - const fileName = Date.now() + '.jpeg'; + const fileName = new Date().getTime() + '.jpeg'; const savedImageFile = [ { filepath: fileName, @@ -204,7 +218,6 @@ export interface UserPhoto { Next, switch to `Tab2.tsx` to display the images. We'll add a [Grid component](../../api/grid.mdx) to ensure the photos display neatly as they're added to the gallery. Inside the grid, loop through each photo in the `UserPhoto`'s `photos` array. For each item, add an `` element and set its `src` property to the photo's path. ```tsx -import { camera } from 'ionicons/icons'; // CHANGE: Update import import { IonContent, @@ -219,7 +232,10 @@ import { IonRow, IonCol, } from '@ionic/react'; +import { camera } from 'ionicons/icons'; + import { usePhotoGallery } from '../hooks/usePhotoGallery'; +import './Tab2.css'; const Tab2: React.FC = () => { // CHANGE: Add `photos` array to destructure from `usePhotoGallery()` diff --git a/docs/react/your-first-app/3-saving-photos.mdx b/docs/react/your-first-app/3-saving-photos.mdx index 0a88055487..029ad1107f 100644 --- a/docs/react/your-first-app/3-saving-photos.mdx +++ b/docs/react/your-first-app/3-saving-photos.mdx @@ -18,12 +18,15 @@ We’re now able to take multiple photos and display them in a photo gallery on Fortunately, saving them to the filesystem only takes a few steps. Begin by creating a new class method, `savePicture()`, in the `usePhotoGallery()` method in `usePhotoGallery.ts`. ```ts -import { useState } from 'react'; -import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; // CHANGE: Add import import type { Photo } from '@capacitor/camera'; +import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; +import { useState } from 'react'; -export function usePhotoGallery() { +export function usePhotoGallery(): { + addNewToGallery: () => Promise; + photos: UserPhoto[]; +} { // ...existing code... // CHANGE: Add the `savePicture()` method @@ -49,22 +52,25 @@ export interface UserPhoto { We can use this new method immediately in `addNewToGallery()`. ```ts -import { useState } from 'react'; -import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; import type { Photo } from '@capacitor/camera'; +import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; +import { useState } from 'react'; -export function usePhotoGallery() { +export function usePhotoGallery(): { + addNewToGallery: () => Promise; + photos: UserPhoto[]; +} { const [photos, setPhotos] = useState([]); const addNewToGallery = async () => { // Take a photo const capturedPhoto = await Camera.getPhoto({ - resultType: CameraResultType.Uri, - source: CameraSource.Camera, - quality: 100, + resultType: CameraResultType.Uri, // file-based data; provides best performance + source: CameraSource.Camera, // automatically take a new photo with the camera + quality: 100, // highest quality (0 to 100) }); - const fileName = Date.now() + '.jpeg'; + const fileName = new Date().getTime() + '.jpeg'; // CHANGE: Add `savedImageFile` // Save the picture and add it to photo collection const savedImageFile = await savePicture(capturedPhoto, fileName); @@ -100,13 +106,16 @@ Then, pass the data to the Filesystem's `writeFile` method. Recall that we displ Create a new helper method, `base64FromPath()`, to implement the necessary logic for running on the web: ```ts -import { useState } from 'react'; -import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; import type { Photo } from '@capacitor/camera'; +import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; // CHANGE: Add import import { Filesystem, Directory } from '@capacitor/filesystem'; +import { useState } from 'react'; -export function usePhotoGallery() { +export function usePhotoGallery(): { + addNewToGallery: () => Promise; + photos: UserPhoto[]; +} { // ...existing code... // CHANGE: Update the `savePicture()` method @@ -160,23 +169,26 @@ export interface UserPhoto { `usePhotoGallery.ts` should now look like this: ```ts -import { useState } from 'react'; -import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; import type { Photo } from '@capacitor/camera'; +import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; import { Filesystem, Directory } from '@capacitor/filesystem'; +import { useState } from 'react'; -export function usePhotoGallery() { +export function usePhotoGallery(): { + addNewToGallery: () => Promise; + photos: UserPhoto[]; +} { const [photos, setPhotos] = useState([]); const addNewToGallery = async () => { // Take a photo const capturedPhoto = await Camera.getPhoto({ - resultType: CameraResultType.Uri, - source: CameraSource.Camera, - quality: 100, + resultType: CameraResultType.Uri, // file-based data; provides best performance + source: CameraSource.Camera, // automatically take a new photo with the camera + quality: 100, // highest quality (0 to 100) }); - const fileName = Date.now() + '.jpeg'; + const fileName = new Date().getTime() + '.jpeg'; // Save the picture and add it to photo collection const savedImageFile = await savePicture(capturedPhoto, fileName); diff --git a/docs/react/your-first-app/4-loading-photos.mdx b/docs/react/your-first-app/4-loading-photos.mdx index 6bd1465a38..6c4712b303 100644 --- a/docs/react/your-first-app/4-loading-photos.mdx +++ b/docs/react/your-first-app/4-loading-photos.mdx @@ -20,7 +20,10 @@ Fortunately, this is easy: we’ll leverage the Capacitor [Preferences API](/nat Open `usePhotoGallery.ts` and begin by defining a constant variable that will act as the key for the store. ```ts -export function usePhotoGallery() { +export function usePhotoGallery(): { + addNewToGallery: () => Promise; + photos: UserPhoto[]; +} { const [photos, setPhotos] = useState([]); // CHANGE: Add a key for photo storage const PHOTO_STORAGE = 'photos'; @@ -32,14 +35,17 @@ export function usePhotoGallery() { Next, at the end of the `addNewToGallery()` method, add a call to the `Preferences.set()` method to save the `photos` array. By adding it here, the `photos` array is stored each time a new photo is taken. This way, it doesn’t matter when the app user closes or switches to a different app - all photo data is saved. ```ts -import { useState } from 'react'; -import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; import type { Photo } from '@capacitor/camera'; +import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; import { Filesystem, Directory } from '@capacitor/filesystem'; // CHANGE: Add import import { Preferences } from '@capacitor/preferences'; +import { useState } from 'react'; -export function usePhotoGallery() { +export function usePhotoGallery(): { + addNewToGallery: () => Promise; + photos: UserPhoto[]; +} { // ...existing code... const addNewToGallery = async () => { @@ -61,14 +67,17 @@ export function usePhotoGallery() { With the photo array data saved, create a new method in the `usePhotoGallery()` called `loadSaved()` that can retrieve the photo data. We use the same key to retrieve the `photos` array in JSON format, then parse it into an array. ```ts -// CHANGE: Update import -import { useState, useEffect } from 'react'; -import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; import type { Photo } from '@capacitor/camera'; +import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; import { Filesystem, Directory } from '@capacitor/filesystem'; import { Preferences } from '@capacitor/preferences'; +// CHANGE: Update import +import { useState, useEffect } from 'react'; -export function usePhotoGallery() { +export function usePhotoGallery(): { + addNewToGallery: () => Promise; + photos: UserPhoto[]; +} { const [photos, setPhotos] = useState([]); const PHOTO_STORAGE = 'photos'; @@ -93,7 +102,10 @@ The second parameter, the empty dependency array (`[]`), is what tells React to On mobile (coming up next!), we can directly set the source of an image tag - `` - to each photo file on the `Filesystem`, displaying them automatically. On the web, however, we must read each image from the `Filesystem` into base64 format, using a new `base64` property on the `Photo` object. This is because the `Filesystem` API uses [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) under the hood. Add the following code to complete the `loadSaved()` method. ```ts -export function usePhotoGallery() { +export function usePhotoGallery(): { + addNewToGallery: () => Promise; + photos: UserPhoto[]; +} { const [photos, setPhotos] = useState([]); const PHOTO_STORAGE = 'photos'; @@ -126,13 +138,16 @@ export function usePhotoGallery() { `usePhotoGallery.ts` should now look like this: ```ts -import { useState, useEffect } from 'react'; -import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; import type { Photo } from '@capacitor/camera'; +import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; import { Filesystem, Directory } from '@capacitor/filesystem'; import { Preferences } from '@capacitor/preferences'; +import { useState, useEffect } from 'react'; -export function usePhotoGallery() { +export function usePhotoGallery(): { + addNewToGallery: () => Promise; + photos: UserPhoto[]; +} { const [photos, setPhotos] = useState([]); const PHOTO_STORAGE = 'photos'; @@ -159,12 +174,12 @@ export function usePhotoGallery() { const addNewToGallery = async () => { // Take a photo const capturedPhoto = await Camera.getPhoto({ - resultType: CameraResultType.Uri, - source: CameraSource.Camera, - quality: 100, + resultType: CameraResultType.Uri, // file-based data; provides best performance + source: CameraSource.Camera, // automatically take a new photo with the camera + quality: 100, // highest quality (0 to 100) }); - const fileName = Date.now() + '.jpeg'; + const fileName = new Date().getTime() + '.jpeg'; // Save the picture and add it to photo collection const savedImageFile = await savePicture(capturedPhoto, fileName); diff --git a/docs/react/your-first-app/5-adding-mobile.mdx b/docs/react/your-first-app/5-adding-mobile.mdx index c0e285d68f..0bfb1ab6df 100644 --- a/docs/react/your-first-app/5-adding-mobile.mdx +++ b/docs/react/your-first-app/5-adding-mobile.mdx @@ -22,13 +22,15 @@ Import the Ionic [Platform API](../platform.mdx) into `usePhotoGallery.ts`, whic Add `isPlatform` to the imports at the top of the file to use the `isPlatform` method. `Capacitor` is also imported to help with file paths on mobile devices. ```ts -import { useState, useEffect } from 'react'; -import { Camera, CameraResultType, CameraSource, Photo } from '@capacitor/camera'; +import type { Photo } from '@capacitor/camera'; +import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; +// CHANGE: Add import +import { Capacitor } from '@capacitor/core'; import { Filesystem, Directory } from '@capacitor/filesystem'; import { Preferences } from '@capacitor/preferences'; // CHANGE: Add import import { isPlatform } from '@ionic/react'; -import { Capacitor } from '@capacitor/core'; +import { useState, useEffect } from 'react'; // ...existing code... ``` @@ -49,7 +51,7 @@ const savePicture = async (photo: Photo, fileName: string): Promise = const file = await Filesystem.readFile({ path: photo.path!, }); - base64Data = typeof file.data === 'string' ? file.data : await file.data.text(); + base64Data = file.data; } else { base64Data = await base64FromPath(photo.webPath!); } @@ -107,15 +109,18 @@ Our Photo Gallery now consists of one codebase that runs on the web, Android, an `usePhotoGallery.ts` should now look like this: ```ts -import { useState, useEffect } from 'react'; -import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; import type { Photo } from '@capacitor/camera'; +import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; +import { Capacitor } from '@capacitor/core'; import { Filesystem, Directory } from '@capacitor/filesystem'; import { Preferences } from '@capacitor/preferences'; import { isPlatform } from '@ionic/react'; -import { Capacitor } from '@capacitor/core'; +import { useState, useEffect } from 'react'; -export function usePhotoGallery() { +export function usePhotoGallery(): { + addNewToGallery: () => Promise; + photos: UserPhoto[]; +} { const [photos, setPhotos] = useState([]); const PHOTO_STORAGE = 'photos'; @@ -145,12 +150,12 @@ export function usePhotoGallery() { const addNewToGallery = async () => { // Take a photo const capturedPhoto = await Camera.getPhoto({ - resultType: CameraResultType.Uri, - source: CameraSource.Camera, - quality: 100, + resultType: CameraResultType.Uri, // file-based data; provides best performance + source: CameraSource.Camera, // automatically take a new photo with the camera + quality: 100, // highest quality (0 to 100) }); - const fileName = Date.now() + '.jpeg'; + const fileName = new Date().getTime() + '.jpeg'; // Save the picture and add it to photo collection const savedImageFile = await savePicture(capturedPhoto, fileName); @@ -167,7 +172,7 @@ export function usePhotoGallery() { const file = await Filesystem.readFile({ path: photo.path!, }); - base64Data = typeof file.data === 'string' ? file.data : await file.data.text(); + base64Data = file.data; } else { base64Data = await base64FromPath(photo.webPath!); } diff --git a/docs/react/your-first-app/7-live-reload.mdx b/docs/react/your-first-app/7-live-reload.mdx index f93cf02adb..aa6f97e515 100644 --- a/docs/react/your-first-app/7-live-reload.mdx +++ b/docs/react/your-first-app/7-live-reload.mdx @@ -38,15 +38,20 @@ With Live Reload running and the app open on your device, let’s implement phot In `usePhotoGallery.ts`, add the `deletePhoto()` method. The selected photo is removed from the `photos` array first. Then, we delete the actual photo file itself using the Filesystem API. ```ts -import { useState, useEffect } from 'react'; -import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; import type { Photo } from '@capacitor/camera'; +import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; +import { Capacitor } from '@capacitor/core'; import { Filesystem, Directory } from '@capacitor/filesystem'; import { Preferences } from '@capacitor/preferences'; import { isPlatform } from '@ionic/react'; -import { Capacitor } from '@capacitor/core'; +import { useState, useEffect } from 'react'; -export function usePhotoGallery() { +export function usePhotoGallery(): { + addNewToGallery: () => Promise; + // CHANGE: Add `deletePhoto()` to the return type + deletePhoto: (photo: UserPhoto) => Promise; + photos: UserPhoto[]; +} { // ...existing code... // CHANGE: Add `deletePhoto()` method @@ -68,10 +73,10 @@ export function usePhotoGallery() { }; return { - photos, addNewToGallery, // CHANGE: Add `deletePhoto()` to the return statement deletePhoto, + photos, }; } @@ -84,10 +89,6 @@ export interface UserPhoto { Next, in `Tab2.tsx`, implement the `IonActionSheet` component. We're adding two options: "Delete", which calls `usePhotoGallery.deletePhoto()`, and "Cancel". The cancel button will automatically close the action sheet when assigned the "cancel" role. ```tsx -// CHANGE: Add import -import { useState } from 'react'; -// CHANGE: Update import -import { camera, trash, close } from 'ionicons/icons'; // CHANGE: Update import import { IonContent, @@ -103,6 +104,11 @@ import { IonCol, IonActionSheet, } from '@ionic/react'; +// CHANGE: Update import +import { camera, trash, close } from 'ionicons/icons'; +// CHANGE: Add import +import { useState } from 'react'; + // CHANGE: Add import import type { UserPhoto } from '../hooks/usePhotoGallery'; import { usePhotoGallery } from '../hooks/usePhotoGallery'; diff --git a/docs/vue/navigation.mdx b/docs/vue/navigation.mdx index 84e8981f75..957bf22afa 100644 --- a/docs/vue/navigation.mdx +++ b/docs/vue/navigation.mdx @@ -31,10 +31,11 @@ Here is a sample routing configuration that defines a single route to the "/home ```tsx import { createRouter, createWebHistory } from '@ionic/vue-router'; -import { RouteRecordRaw } from 'vue-router'; +import type { RouteRecordRaw } from 'vue-router'; + import HomePage from '@/views/Home.vue'; -const routes: Array = [ +const routes: RouteRecordRaw[] = [ { path: '/', name: 'Home', @@ -57,7 +58,7 @@ On the app's initial load, the app will render the `HomePage` component as that What if we wanted to land a different path on our initial load? For this, we can use router redirects. Redirects work the same way that a typical route object does, but just includes some different keys: ```tsx -const routes: Array = [ +const routes: RouteRecordRaw[] = [ { path: '/', redirect: '/home', @@ -77,7 +78,7 @@ In our redirect, we look for the index path of our app. Then if we load that, we This is all great, but how does one actually navigate to a route? For this, we can use the `router-link` property. Let's create a new routing setup: ```tsx -const routes: Array = [ +const routes: RouteRecordRaw[] = [ { path: '/', redirect: '/home', @@ -187,7 +188,7 @@ A key characteristic of `router.go()` is that it expects your application histor The current way our routes are setup makes it so they are included in the same initial chunk when loading the app, which is not always ideal. Instead, we can set up our routes so that components are loaded as they are needed: ```tsx -const routes: Array = [ +const routes: RouteRecordRaw[] = [ { path: '/', redirect: '/home', @@ -280,7 +281,7 @@ A common point of confusion when setting up routing is deciding between shared U Shared URLs is a route configuration where routes have pieces of the URL in common. The following is an example of a shared URL configuration: ```tsx -const routes: Array = [ +const routes: RouteRecordRaw[] = [ { path: '/dashboard', component: DashboardMainPage, @@ -299,7 +300,7 @@ The above routes are considered "shared" because they reuse the `dashboard` piec Nested Routes is a route configuration where routes are listed as children of other routes. The following is an example of a nested route configuration: ```tsx -const routes: Array = [ +const routes: RouteRecordRaw[] = [ { path: '/dashboard/:id', component: DashboardRouterOutlet, @@ -332,7 +333,7 @@ There are very few use cases in which nested routes make sense in mobile applica When working with tabs, Ionic Vue needs a way to know which view belongs to which tab. The `IonTabs` component comes in handy here, but let's examine the routing setup for this: ```tsx -const routes: Array = [ +const routes: RouteRecordRaw[] = [ { path: '/', redirect: '/tabs/tab1', @@ -412,7 +413,7 @@ Since Ionic is focused on helping developers build mobile apps, the tabs in Ioni When adding additional routes to tabs you should write them as sibling routes with the parent tab as the path prefix. The example below defines the `/tabs/tab1/view` route as a sibling of the `/tabs/tab1` route. Since this new route has the `tab1` prefix, it will be rendered inside of the `Tabs` component, and Tab 1 will still be selected in the `ion-tab-bar`. ```tsx -const routes: Array = [ +const routes: RouteRecordRaw[] = [ { path: '/', redirect: '/tabs/tab1', @@ -532,7 +533,7 @@ For example usages, please refer to our [Utility Functions](utility-functions#us Let's expand upon our original routing example to show how we can use URL parameters. We recommend [passing URL parameters as props](https://router.vuejs.org/guide/essentials/passing-props.html) so that the component does not need a direct reference to the router, which makes it easier to reuse and test in isolation. ```tsx -const routes: Array = [ +const routes: RouteRecordRaw[] = [ { path: '/', redirect: '/home', diff --git a/docs/vue/quickstart.mdx b/docs/vue/quickstart.mdx index 9be48c4edb..6f116429b9 100644 --- a/docs/vue/quickstart.mdx +++ b/docs/vue/quickstart.mdx @@ -97,10 +97,11 @@ Routes are defined in `router/index.ts`: ```ts title="src/router/index.ts" import { createRouter, createWebHistory } from '@ionic/vue-router'; -import { RouteRecordRaw } from 'vue-router'; +import type { RouteRecordRaw } from 'vue-router'; + import HomePage from '../views/HomePage.vue'; -const routes: Array = [ +const routes: RouteRecordRaw[] = [ { path: '/', redirect: '/home', @@ -240,7 +241,7 @@ import NewPage from '../views/NewPage.vue'; Then, add its route in the `routes` array: ```ts title="src/router/index.ts" -const routes: Array = [ +const routes: RouteRecordRaw[] = [ { path: '/', redirect: '/home', @@ -375,24 +376,59 @@ Ionic Vue projects are created with TypeScript by default, but you can easily co 1. Remove the TypeScript dependencies: ```shell -npm uninstall --save typescript @types/jest @typescript-eslint/eslint-plugin @typescript-eslint/parser @vue/cli-plugin-typescript @vue/eslint-config-typescript vue-tsc +npm uninstall --save typescript @types/node @ionic/eslint-config @vue/eslint-config-typescript vue-tsc ``` -2. Change the extension of all `.ts` files to `.js`. In a blank Ionic Vue app, this will be the `src/router/index.ts`, `src/main.ts`, and files in the `tests` directory. +2. Change the extension of all `.ts` files to `.js`, except `src/vite-env.d.ts`, which is deleted in a later step. In a blank Ionic Vue app, this will be the `src/router/index.ts`, `src/main.ts`, `vite.config.ts`, `playwright.config.ts`, and files in the `tests` directory. 3. In `index.html`, change the imported `