diff --git a/package-lock.json b/package-lock.json index 4eed80a67..772acc408 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,6 +19,7 @@ "sass": "^1.74.1", "sql-formatter": "^4.0.2", "vite": "^5.2.8", + "vite-plugin-manifest-sri": "^0.2.0", "vue": "^2.7.16", "vue-copy-to-clipboard": "^1.0.3", "vue-json-pretty": "^1.9.5", @@ -1380,6 +1381,12 @@ "picomatch": "^2.3.1" } }, + "node_modules/vite-plugin-manifest-sri": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-manifest-sri/-/vite-plugin-manifest-sri-0.2.0.tgz", + "integrity": "sha512-Zt5jt19xTIJ91LOuQTCtNG7rTFc5OziAjBz2H5NdCGqaOD1nxrWExLhcKW+W4/q8/jOPCg/n5ncYEQmqCxiGQQ==", + "dev": true + }, "node_modules/vue": { "version": "2.7.16", "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.16.tgz", diff --git a/package.json b/package.json index 3b9dd5ecc..99ef799b1 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "sass": "^1.74.1", "sql-formatter": "^4.0.2", "vite": "^5.2.8", + "vite-plugin-manifest-sri": "^0.2.0", "vue": "^2.7.16", "vue-json-pretty": "^1.9.5", "vue-router": "^3.6.5", diff --git a/public/build/manifest.json b/public/build/manifest.json index e56651a30..cc3238eae 100644 --- a/public/build/manifest.json +++ b/public/build/manifest.json @@ -1,7 +1,8 @@ { "resources/img/favicon.ico": { "file": "favicon.ico", - "src": "resources/img/favicon.ico" + "src": "resources/img/favicon.ico", + "integrity": "sha384-qq+rp+VctxiZdCG1H4EuMLbay0TmMKRw9/AMIToF+uoiexMCWbCmtPzrU6MeAHQz" }, "resources/js/app.js": { "file": "app.js", @@ -10,16 +11,19 @@ "isEntry": true, "css": [ "app.css" - ] + ], + "integrity": "sha384-6AywQ89qF1DHGgFQTE+7C9EL1dDfpzF3OMrLl+DZaBlaag+1Siuwbq/DiwDmRO6r" }, "resources/sass/styles-dark.scss": { "file": "styles-dark.css", "src": "resources/sass/styles-dark.scss", - "isEntry": true + "isEntry": true, + "integrity": "sha384-M9RRJ/l5Ei2BaDikjqqhjnhhKxFLMdJVXGtsI5xxBPcdVjF7jg9RLEO2W4F4YyuT" }, "resources/sass/styles.scss": { "file": "styles.css", "src": "resources/sass/styles.scss", - "isEntry": true + "isEntry": true, + "integrity": "sha384-fArREpvoBcln8Ka3MTaQaj1IPYRqVVC/Q0+Bqq1I++o5+Ub5mnh+pAfiifFE5RCI" } } \ No newline at end of file diff --git a/vite.config.mjs b/vite.config.mjs index 2358f9d4c..aa6967253 100644 --- a/vite.config.mjs +++ b/vite.config.mjs @@ -1,6 +1,7 @@ import vue2 from "@vitejs/plugin-vue2"; import { defineConfig } from "vite"; import laravel from "laravel-vite-plugin"; +import manifestSRI from "vite-plugin-manifest-sri"; const config = defineConfig({ plugins: [ @@ -10,6 +11,7 @@ const config = defineConfig({ "resources/js/app.js", ]), vue2(), + manifestSRI(), ], resolve: { alias: {