From 9aa42a1ef46ad05986bdc13ed9dabdd01ae8af64 Mon Sep 17 00:00:00 2001 From: Hdoc1509 Date: Thu, 1 Jan 2026 13:00:40 -0500 Subject: [PATCH 01/22] refactor: remove `splitVendorChunkPlugin()` from `vite` --- TODO.md | 23 ----------------------- _templates/app/react/vite.config.ts.hygen | 16 ++++++++++++++-- legacy/country-quiz/vite.config.ts | 13 +++++++++++-- legacy/windbnb/vite.config.ts | 13 +++++++++++-- 4 files changed, 36 insertions(+), 29 deletions(-) diff --git a/TODO.md b/TODO.md index 2dbaf805..98bd17b6 100644 --- a/TODO.md +++ b/TODO.md @@ -6,26 +6,3 @@ - Ensure `github-jobs`, `quote-generator` and `weather-app` uses version from `catalog:` - -### Use `build.rollupOptions.output.manualChunks` instead of `splitVendorChunkPlugin()` - -Create custom `vite-config` package that exports this option. By default, it -will split into `index-.(js|css)` and `vendor-.(js|css)`. i.e.: - -```js -{ - build: { - rollupOptions: { - output: { - manualChunks(id) {} - } - } - } -} -``` - -Affected files: - -- `legacy/country-quiz/vite.config.ts` -- `legacy/windbnb/vite.config.ts` -- `_templates/app/react/vite.config.ts.hygen` diff --git a/_templates/app/react/vite.config.ts.hygen b/_templates/app/react/vite.config.ts.hygen index a50f95ae..3f4f3fcb 100644 --- a/_templates/app/react/vite.config.ts.hygen +++ b/_templates/app/react/vite.config.ts.hygen @@ -2,10 +2,22 @@ to: apps/<%= name %>/vite.config.ts --- -import { defineConfig, splitVendorChunkPlugin } from 'vite' +import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' // https://vitejs.dev/config/ export default defineConfig({ - plugins: [react(), splitVendorChunkPlugin()], + plugins: [react()], + // TODO: choose a sub-path for `react` apps + // base: '/dev-challenges/PATH/<%= name %>', + build: { + rollupOptions: { + output: { + manualChunks(id) { + if (id.includes("node_modules")) return "vendor"; + }, + }, + }, + }, + // TODO: add `resolve.alias` option }) diff --git a/legacy/country-quiz/vite.config.ts b/legacy/country-quiz/vite.config.ts index 8cab0e83..6173229c 100644 --- a/legacy/country-quiz/vite.config.ts +++ b/legacy/country-quiz/vite.config.ts @@ -1,12 +1,21 @@ import path from 'path' -import { defineConfig, splitVendorChunkPlugin } from 'vite' +import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' import hrcImportPlugin from 'vite-plugin-hrc-import' // https://vitejs.dev/config/ export default defineConfig({ - plugins: [react(), splitVendorChunkPlugin(), hrcImportPlugin()], + plugins: [react(), hrcImportPlugin()], base: '/dev-challenges/legacy/country-quiz', + build: { + rollupOptions: { + output: { + manualChunks(id) { + if (id.includes('node_modules')) return 'vendor'; + }, + }, + }, + }, resolve: { alias: { '@': path.resolve(__dirname, 'src') diff --git a/legacy/windbnb/vite.config.ts b/legacy/windbnb/vite.config.ts index b034fafd..36ff5d9a 100644 --- a/legacy/windbnb/vite.config.ts +++ b/legacy/windbnb/vite.config.ts @@ -1,11 +1,20 @@ -import { defineConfig, splitVendorChunkPlugin } from "vite"; +import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; import { resolve } from "path"; // https://vitejs.dev/config/ export default defineConfig({ - plugins: [react(), splitVendorChunkPlugin()], + plugins: [react()], base: "/dev-challenges/legacy/windbnb/", + build: { + rollupOptions: { + output: { + manualChunks(id) { + if (id.includes("node_modules")) return "vendor"; + }, + }, + }, + }, resolve: { alias: { "@": resolve(__dirname, "src"), From a7d8388bff50426197867f3efacf413936b4d326 Mon Sep 17 00:00:00 2001 From: Hdoc1509 Date: Thu, 1 Jan 2026 20:20:34 -0500 Subject: [PATCH 02/22] fix(vite-plugin-html-minifier): set `config` parameter as optional --- packages/vite-plugin-html-minifier/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite-plugin-html-minifier/index.d.ts b/packages/vite-plugin-html-minifier/index.d.ts index 446290db..ec7aeaff 100644 --- a/packages/vite-plugin-html-minifier/index.d.ts +++ b/packages/vite-plugin-html-minifier/index.d.ts @@ -11,4 +11,4 @@ import type { Plugin } from "vite"; * `useShortDoctype: true` * `minifyCSS: true` */ -export function htmlMinifierPlugin(config: MinifierOptions): Plugin; +export function htmlMinifierPlugin(config?: MinifierOptions): Plugin; From 066e633ce4c9102d43074e2aab99c1afcf0bbb27 Mon Sep 17 00:00:00 2001 From: Hdoc1509 Date: Thu, 1 Jan 2026 20:25:22 -0500 Subject: [PATCH 03/22] build(contact-page): use local `vite-plugin-html-minifier` package --- pnpm-lock.yaml | 6 +++--- vanilla/contact-page/package.json | 2 +- vanilla/contact-page/vite.config.js | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5bdb373d..2a5f7378 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -853,9 +853,9 @@ importers: vite: specifier: 'catalog:' version: 5.0.2(@types/node@22.15.21)(lightningcss@1.30.2)(sass@1.65.0)(terser@5.44.1) - vite-plugin-html: - specifier: 'catalog:' - version: 3.2.2(vite@5.0.2(@types/node@22.15.21)(lightningcss@1.30.2)(sass@1.65.0)(terser@5.44.1)) + vite-plugin-html-minifier: + specifier: workspace:* + version: link:../../packages/vite-plugin-html-minifier vanilla/flip-the-coin: dependencies: diff --git a/vanilla/contact-page/package.json b/vanilla/contact-page/package.json index 07565403..31e17a43 100644 --- a/vanilla/contact-page/package.json +++ b/vanilla/contact-page/package.json @@ -14,6 +14,6 @@ }, "devDependencies": { "vite": "catalog:", - "vite-plugin-html": "catalog:" + "vite-plugin-html-minifier": "workspace:*" } } diff --git a/vanilla/contact-page/vite.config.js b/vanilla/contact-page/vite.config.js index dabbe612..8d6f43fd 100644 --- a/vanilla/contact-page/vite.config.js +++ b/vanilla/contact-page/vite.config.js @@ -1,8 +1,8 @@ import { defineConfig } from "vite"; -import { createHtmlPlugin } from "vite-plugin-html"; +import { htmlMinifierPlugin } from "vite-plugin-html-minifier"; // https://vite.dev/config/ export default defineConfig({ - plugins: [createHtmlPlugin({ minify: true })], + plugins: [htmlMinifierPlugin()], base: "/dev-challenges/contact-page", }); From a1f4a3734f906e6bd5b89c9efc9b4cc242b08a5d Mon Sep 17 00:00:00 2001 From: Hdoc1509 Date: Thu, 1 Jan 2026 20:40:50 -0500 Subject: [PATCH 04/22] build(random-quote): use local `vite-plugin-html-minifier` package --- pnpm-lock.yaml | 6 +++--- vanilla/random-quote/package.json | 2 +- vanilla/random-quote/vite.config.js | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2a5f7378..4e46ee10 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1018,9 +1018,9 @@ importers: vite: specifier: 'catalog:' version: 5.0.2(@types/node@22.15.21)(lightningcss@1.30.2)(sass@1.65.0)(terser@5.44.1) - vite-plugin-html: - specifier: 'catalog:' - version: 3.2.2(vite@5.0.2(@types/node@22.15.21)(lightningcss@1.30.2)(sass@1.65.0)(terser@5.44.1)) + vite-plugin-html-minifier: + specifier: workspace:* + version: link:../../packages/vite-plugin-html-minifier packages: diff --git a/vanilla/random-quote/package.json b/vanilla/random-quote/package.json index 9a47773a..e0c7b001 100644 --- a/vanilla/random-quote/package.json +++ b/vanilla/random-quote/package.json @@ -18,6 +18,6 @@ }, "devDependencies": { "vite": "catalog:", - "vite-plugin-html": "catalog:" + "vite-plugin-html-minifier": "workspace:*" } } diff --git a/vanilla/random-quote/vite.config.js b/vanilla/random-quote/vite.config.js index 793e4cfa..aeaaa1ae 100644 --- a/vanilla/random-quote/vite.config.js +++ b/vanilla/random-quote/vite.config.js @@ -1,10 +1,10 @@ import { resolve } from "node:path"; import { defineConfig } from "vite"; -import { createHtmlPlugin } from "vite-plugin-html"; +import { htmlMinifierPlugin } from "vite-plugin-html-minifier"; // https://vite.dev/config/ export default defineConfig({ - plugins: [createHtmlPlugin({ minify: true })], + plugins: [htmlMinifierPlugin()], base: "/dev-challenges/random-quote", build: { rollupOptions: { From 2a189ae94c8242c98f4ed81794475195d7610c9e Mon Sep 17 00:00:00 2001 From: Hdoc1509 Date: Thu, 1 Jan 2026 20:55:31 -0500 Subject: [PATCH 05/22] build(qr-code-generator): use local `vite-plugin-html-minifier` package --- pnpm-lock.yaml | 20 ++++---------------- vanilla/qr-code-generator/package.json | 2 +- vanilla/qr-code-generator/vite.config.js | 10 +++++++--- 3 files changed, 12 insertions(+), 20 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4e46ee10..34a91831 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -990,9 +990,9 @@ importers: vite: specifier: 'catalog:' version: 5.0.2(@types/node@22.15.21)(lightningcss@1.30.2)(sass@1.65.0)(terser@5.44.1) - vite-plugin-html: - specifier: 'catalog:' - version: 3.2.2(vite@5.0.2(@types/node@22.15.21)(lightningcss@1.30.2)(sass@1.65.0)(terser@5.44.1)) + vite-plugin-html-minifier: + specifier: workspace:* + version: link:../../packages/vite-plugin-html-minifier vanilla/random-quote: dependencies: @@ -4736,11 +4736,6 @@ packages: resolution: {integrity: sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==} engines: {node: ^14.18.0 || >=16.0.0} - terser@5.36.0: - resolution: {integrity: sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==} - engines: {node: '>=10'} - hasBin: true - terser@5.44.1: resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} engines: {node: '>=10'} @@ -8030,7 +8025,7 @@ snapshots: he: 1.2.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.36.0 + terser: 5.44.1 html-void-elements@3.0.0: {} @@ -9656,13 +9651,6 @@ snapshots: '@pkgr/core': 0.1.1 tslib: 2.6.3 - terser@5.36.0: - dependencies: - '@jridgewell/source-map': 0.3.6 - acorn: 8.15.0 - commander: 2.20.3 - source-map-support: 0.5.21 - terser@5.44.1: dependencies: '@jridgewell/source-map': 0.3.6 diff --git a/vanilla/qr-code-generator/package.json b/vanilla/qr-code-generator/package.json index 4d2263e9..70b4d4e8 100644 --- a/vanilla/qr-code-generator/package.json +++ b/vanilla/qr-code-generator/package.json @@ -19,6 +19,6 @@ "devDependencies": { "@types/qrcodejs": "1.0.4", "vite": "catalog:", - "vite-plugin-html": "catalog:" + "vite-plugin-html-minifier": "workspace:*" } } diff --git a/vanilla/qr-code-generator/vite.config.js b/vanilla/qr-code-generator/vite.config.js index 91902512..31f8a4b7 100644 --- a/vanilla/qr-code-generator/vite.config.js +++ b/vanilla/qr-code-generator/vite.config.js @@ -4,14 +4,18 @@ import { buildInjectScripts, serverInjectScripts, } from "./plugin/inject-scripts"; -// import { createHtmlPlugin } from "vite-plugin-html"; +import { htmlMinifierPlugin } from "vite-plugin-html-minifier"; const BASE_URL = "/dev-challenges/qr-code-generator"; // https://vite.dev/config/ export default defineConfig({ - // plugins: [createHtmlPlugin({ minify: true })], - plugins: [serverInjectScripts(BASE_URL), buildInjectScripts(BASE_URL)], + plugins: [ + // TODO: merge inject plugins into one plugin that returns an array of plugins + serverInjectScripts(BASE_URL), + buildInjectScripts(BASE_URL), + htmlMinifierPlugin(), + ], base: BASE_URL, build: { rollupOptions: { From a893ada6d9746227d1cb42f7228a7983644659df Mon Sep 17 00:00:00 2001 From: Hdoc1509 Date: Thu, 1 Jan 2026 21:14:56 -0500 Subject: [PATCH 06/22] build(multi-step-form): use local `vite-plugin-html-minifier` package --- pnpm-lock.yaml | 6 +++--- vanilla/multi-step-form/TODO.md | 6 ++++++ vanilla/multi-step-form/package.json | 2 +- vanilla/multi-step-form/vite.config.js | 4 ++-- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 34a91831..96dc0d54 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -940,9 +940,9 @@ importers: vite: specifier: 'catalog:' version: 5.0.2(@types/node@22.15.21)(lightningcss@1.30.2)(sass@1.65.0)(terser@5.44.1) - vite-plugin-html: - specifier: 'catalog:' - version: 3.2.2(vite@5.0.2(@types/node@22.15.21)(lightningcss@1.30.2)(sass@1.65.0)(terser@5.44.1)) + vite-plugin-html-minifier: + specifier: workspace:* + version: link:../../packages/vite-plugin-html-minifier vanilla/music-player: dependencies: diff --git a/vanilla/multi-step-form/TODO.md b/vanilla/multi-step-form/TODO.md index 9b56c22e..2f0126d3 100644 --- a/vanilla/multi-step-form/TODO.md +++ b/vanilla/multi-step-form/TODO.md @@ -1,3 +1,9 @@ +# TODO + +- update `NAME_REGEX`: + - use `\s` instead of literal space + - allow accented characters: `[A-ZáéióúÁÉÍÓÚ]` + - [ ] create a library for stepper slider - need a `.steps-container` diff --git a/vanilla/multi-step-form/package.json b/vanilla/multi-step-form/package.json index 447ace81..652721f2 100644 --- a/vanilla/multi-step-form/package.json +++ b/vanilla/multi-step-form/package.json @@ -16,6 +16,6 @@ }, "devDependencies": { "vite": "catalog:", - "vite-plugin-html": "catalog:" + "vite-plugin-html-minifier": "workspace:*" } } diff --git a/vanilla/multi-step-form/vite.config.js b/vanilla/multi-step-form/vite.config.js index a0818c96..3a008a70 100644 --- a/vanilla/multi-step-form/vite.config.js +++ b/vanilla/multi-step-form/vite.config.js @@ -1,10 +1,10 @@ import { resolve } from "node:path"; import { defineConfig } from "vite"; -import { createHtmlPlugin } from "vite-plugin-html"; +import { htmlMinifierPlugin } from "vite-plugin-html-minifier"; // https://vite.dev/config/ export default defineConfig({ - plugins: [createHtmlPlugin({ minify: true })], + plugins: [htmlMinifierPlugin()], base: "/dev-challenges/multi-step-form", resolve: { alias: { From 24e1ebd958c12a279b7760dd211ace4f64084b42 Mon Sep 17 00:00:00 2001 From: Hdoc1509 Date: Thu, 1 Jan 2026 21:50:26 -0500 Subject: [PATCH 07/22] build(music-player): use local `vite-plugin-html-minifier` package remove `vite-plugin-html` completely --- pnpm-lock.yaml | 185 +--------------------------- pnpm-workspace.yaml | 1 - vanilla/contact-page/README.md | 1 - vanilla/multi-step-form/README.md | 1 - vanilla/music-player/README.md | 1 - vanilla/music-player/TODO.md | 8 ++ vanilla/music-player/package.json | 2 +- vanilla/music-player/src/utils.js | 2 +- vanilla/music-player/vite.config.js | 4 +- vanilla/qr-code-generator/README.md | 1 - vanilla/random-quote/README.md | 1 - 11 files changed, 15 insertions(+), 192 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 96dc0d54..a7060847 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -162,9 +162,6 @@ catalogs: vite-plugin-hrc-import: specifier: 1.1.0 version: 1.1.0 - vite-plugin-html: - specifier: 3.2.2 - version: 3.2.2 vitest: specifier: 0.34.6 version: 0.34.6 @@ -959,9 +956,9 @@ importers: vite: specifier: 'catalog:' version: 5.0.2(@types/node@22.15.21)(lightningcss@1.30.2)(sass@1.65.0)(terser@5.44.1) - vite-plugin-html: - specifier: 'catalog:' - version: 3.2.2(vite@5.0.2(@types/node@22.15.21)(lightningcss@1.30.2)(sass@1.65.0)(terser@5.44.1)) + vite-plugin-html-minifier: + specifier: workspace:* + version: link:../../packages/vite-plugin-html-minifier vanilla/qr-code-generator: dependencies: @@ -2045,10 +2042,6 @@ packages: resolution: {integrity: sha512-es2g3dq6Nb07iFxGk5GuHN20RwBZOsuDQN7izWIisUcv9r+d2C5jQxqmgkdebXgReWfiyUabcki6Fg77mSNrig==} engines: {node: '>=14.0.0'} - '@rollup/pluginutils@4.2.1': - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} - '@rollup/rollup-android-arm-eabi@4.17.2': resolution: {integrity: sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==} cpu: [arm] @@ -2533,9 +2526,6 @@ packages: bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - boxen@7.1.1: resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} engines: {node: '>=14.16'} @@ -2642,10 +2632,6 @@ packages: resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} engines: {node: '>=8'} - clean-css@5.3.3: - resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} - engines: {node: '>= 10.0'} - cli-boxes@3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} @@ -2698,9 +2684,6 @@ packages: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} - colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - colors@1.4.0: resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} engines: {node: '>=0.1.90'} @@ -2715,23 +2698,12 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - common-ancestor-path@1.0.1: resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - connect-history-api-fallback@1.6.0: - resolution: {integrity: sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==} - engines: {node: '>=0.8'} - - consola@2.15.3: - resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - constant-case@2.0.0: resolution: {integrity: sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==} @@ -2752,13 +2724,6 @@ packages: css-line-break@2.1.0: resolution: {integrity: sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==} - css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} - - css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -2882,33 +2847,12 @@ packages: dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} - dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} - - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - - domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} - - domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - dot-case@2.1.1: resolution: {integrity: sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==} dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - dotenv-expand@8.0.3: - resolution: {integrity: sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==} - engines: {node: '>=12'} - - dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} - engines: {node: '>=12'} - dset@3.1.3: resolution: {integrity: sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==} engines: {node: '>=4'} @@ -2940,9 +2884,6 @@ packages: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} - entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -3098,9 +3039,6 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} @@ -3371,10 +3309,6 @@ packages: hastscript@8.0.0: resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - header-case@1.0.1: resolution: {integrity: sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==} @@ -3397,11 +3331,6 @@ packages: '@swc/core': optional: true - html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} - engines: {node: '>=12'} - hasBin: true - html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} @@ -4065,9 +3994,6 @@ packages: node-emoji@1.11.0: resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} - node-html-parser@5.4.2: - resolution: {integrity: sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==} - node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} @@ -4088,9 +4014,6 @@ packages: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nwsapi@2.2.20: resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} @@ -4244,9 +4167,6 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - pathe@0.2.0: - resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} - pathe@1.1.1: resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} @@ -5011,11 +4931,6 @@ packages: peerDependencies: vite: ^5.0.0 - vite-plugin-html@3.2.2: - resolution: {integrity: sha512-vb9C9kcdzcIo/Oc3CLZVS03dL5pDlOFuhGlZYDCJ840BhWl/0nGeZWf3Qy7NlOayscY4Cm/QRgULCQkEZige5Q==} - peerDependencies: - vite: '>=2.0.0' - vite@5.0.2: resolution: {integrity: sha512-6CCq1CAJCNM1ya2ZZA7+jS2KgnhbzvxakmlIjN24cF/PXhRMzpM/z8QgsVJA/Dm5fWUWnVEsmtBoMhmerPxT0g==} engines: {node: ^18.0.0 || >=20.0.0} @@ -6247,11 +6162,6 @@ snapshots: '@remix-run/router@1.16.1': {} - '@rollup/pluginutils@4.2.1': - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 - '@rollup/rollup-android-arm-eabi@4.17.2': optional: true @@ -6893,8 +6803,6 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - boolbase@1.0.0: {} - boxen@7.1.1: dependencies: ansi-align: 3.0.1 @@ -7060,10 +6968,6 @@ snapshots: ci-info@4.0.0: {} - clean-css@5.3.3: - dependencies: - source-map: 0.6.1 - cli-boxes@3.0.0: {} cli-cursor@3.1.0: @@ -7112,8 +7016,6 @@ snapshots: color-string: 1.9.1 optional: true - colorette@2.0.20: {} - colors@1.4.0: {} comma-separated-tokens@2.0.3: {} @@ -7122,16 +7024,10 @@ snapshots: commander@2.20.3: {} - commander@8.3.0: {} - common-ancestor-path@1.0.1: {} concat-map@0.0.1: {} - connect-history-api-fallback@1.6.0: {} - - consola@2.15.3: {} - constant-case@2.0.0: dependencies: snake-case: 2.1.0 @@ -7157,16 +7053,6 @@ snapshots: dependencies: utrie: 1.0.2 - css-select@4.3.0: - dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 4.3.1 - domutils: 2.8.0 - nth-check: 2.1.1 - - css-what@6.1.0: {} - cssesc@3.0.0: {} cssstyle@4.3.1: @@ -7273,24 +7159,6 @@ snapshots: dom-accessibility-api@0.5.16: {} - dom-serializer@1.4.1: - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - entities: 2.2.0 - - domelementtype@2.3.0: {} - - domhandler@4.3.1: - dependencies: - domelementtype: 2.3.0 - - domutils@2.8.0: - dependencies: - dom-serializer: 1.4.1 - domelementtype: 2.3.0 - domhandler: 4.3.1 - dot-case@2.1.1: dependencies: no-case: 2.3.2 @@ -7300,10 +7168,6 @@ snapshots: no-case: 3.0.4 tslib: 2.6.3 - dotenv-expand@8.0.3: {} - - dotenv@16.4.5: {} - dset@3.1.3: {} eastasianwidth@0.2.0: {} @@ -7330,8 +7194,6 @@ snapshots: ansi-colors: 4.1.3 strip-ansi: 6.0.1 - entities@2.2.0: {} - entities@4.5.0: {} entities@6.0.0: {} @@ -7650,8 +7512,6 @@ snapshots: estraverse@5.3.0: {} - estree-walker@2.0.2: {} - estree-walker@3.0.3: dependencies: '@types/estree': 1.0.5 @@ -7989,8 +7849,6 @@ snapshots: property-information: 6.5.0 space-separated-tokens: 2.0.2 - he@1.2.0: {} - header-case@1.0.1: dependencies: no-case: 2.3.2 @@ -8017,16 +7875,6 @@ snapshots: relateurl: 0.2.7 terser: 5.44.1 - html-minifier-terser@6.1.0: - dependencies: - camel-case: 4.1.2 - clean-css: 5.3.3 - commander: 8.3.0 - he: 1.2.0 - param-case: 3.0.4 - relateurl: 0.2.7 - terser: 5.44.1 - html-void-elements@3.0.0: {} html2canvas@1.4.1: @@ -8842,11 +8690,6 @@ snapshots: dependencies: lodash: 4.17.21 - node-html-parser@5.4.2: - dependencies: - css-select: 4.3.0 - he: 1.2.0 - node-releases@2.0.14: {} normalize-path@3.0.0: {} @@ -8867,10 +8710,6 @@ snapshots: dependencies: path-key: 4.0.0 - nth-check@2.1.1: - dependencies: - boolbase: 1.0.0 - nwsapi@2.2.20: {} object-assign@4.1.1: {} @@ -9051,8 +8890,6 @@ snapshots: path-type@4.0.0: {} - pathe@0.2.0: {} - pathe@1.1.1: {} pathe@2.0.3: {} @@ -9983,22 +9820,6 @@ snapshots: dependencies: vite: 5.2.11(@types/node@22.15.21)(lightningcss@1.30.2)(sass@1.65.0)(terser@5.44.1) - vite-plugin-html@3.2.2(vite@5.0.2(@types/node@22.15.21)(lightningcss@1.30.2)(sass@1.65.0)(terser@5.44.1)): - dependencies: - '@rollup/pluginutils': 4.2.1 - colorette: 2.0.20 - connect-history-api-fallback: 1.6.0 - consola: 2.15.3 - dotenv: 16.4.5 - dotenv-expand: 8.0.3 - ejs: 3.1.10 - fast-glob: 3.3.2 - fs-extra: 10.1.0 - html-minifier-terser: 6.1.0 - node-html-parser: 5.4.2 - pathe: 0.2.0 - vite: 5.0.2(@types/node@22.15.21)(lightningcss@1.30.2)(sass@1.65.0)(terser@5.44.1) - vite@5.0.2(@types/node@22.15.21)(lightningcss@1.30.2)(sass@1.65.0)(terser@5.44.1): dependencies: esbuild: 0.19.7 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index b850348f..2f71060c 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -59,6 +59,5 @@ catalog: vite: 5.0.2 vitest: 0.34.6 vite-plugin-hrc-import: 1.1.0 - vite-plugin-html: 3.2.2 zod: 3.22.4 zustand: 4.4.3 diff --git a/vanilla/contact-page/README.md b/vanilla/contact-page/README.md index 688e00a0..975f7d06 100644 --- a/vanilla/contact-page/README.md +++ b/vanilla/contact-page/README.md @@ -40,7 +40,6 @@ form, inputs,.. ### Built With - [Vite](https://vitejs.dev/) -- [vite-plugin-html](https://github.com/vbenjs/vite-plugin-html) - [BEM](https://getbem.com/) - [fontsource](https://fontsource.org/) - [Be Vietnam Pro](https://fontsource.org/fonts/be-vietnam-pro) diff --git a/vanilla/multi-step-form/README.md b/vanilla/multi-step-form/README.md index 4a2756aa..bdd5a024 100644 --- a/vanilla/multi-step-form/README.md +++ b/vanilla/multi-step-form/README.md @@ -45,7 +45,6 @@ and improve your JavaScript proficiency. ### Built With - [Vite](https://vitejs.dev/) -- [vite-plugin-html](https://github.com/vbenjs/vite-plugin-html) - [BEM](https://getbem.com/) - [fontsource](https://fontsource.org/) fonts: - [Inter](https://fontsource.org/fonts/inter) diff --git a/vanilla/music-player/README.md b/vanilla/music-player/README.md index 4e573114..39d19797 100644 --- a/vanilla/music-player/README.md +++ b/vanilla/music-player/README.md @@ -40,7 +40,6 @@ using JavaScript. ### Built With - [Vite](https://vitejs.dev/) -- [vite-plugin-html](https://github.com/vbenjs/vite-plugin-html) - [BEM](https://getbem.com/) - [fontsource](https://fontsource.org/) - [Inter](https://fontsource.org/fonts/inter) diff --git a/vanilla/music-player/TODO.md b/vanilla/music-player/TODO.md index 66025342..5885a321 100644 --- a/vanilla/music-player/TODO.md +++ b/vanilla/music-player/TODO.md @@ -1,5 +1,13 @@ # TODO +## Fixes + +- Update play time progress bar when song changes, in `handleSongChange()`: + + ```js + $playProgress.max = `${duration}`; + ``` + ## Vite - Update to Vite 7 to use initial `src` attribute in `