Fix code quality violations and exclude Manifest from checks

Document application modes (development/debug/production)
Add global file drop handler, order column normalization, SPA hash fix
Serve CDN assets via /_vendor/ URLs instead of merging into bundles
Add production minification with license preservation
Improve JSON formatting for debugging and production optimization
Add CDN asset caching with CSS URL inlining for production builds
Add three-mode system (development, debug, production)
Update Manifest CLAUDE.md to reflect helper class architecture
Refactor Manifest.php into helper classes for better organization
Pre-manifest-refactor checkpoint: Add app_mode documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
root
2026-01-14 10:38:22 +00:00
parent bb9046af1b
commit d523f0f600
2355 changed files with 231384 additions and 32223 deletions

31
node_modules/postcss-svgo/README.md generated vendored
View File

@@ -63,27 +63,26 @@ below. Note that you can either disable the plugin by setting it to `false`,
or pass different options to change the default behaviour.
```js
var postcss = require('postcss');
var svgo = require('postcss-svgo');
const postcss = require('postcss');
const svgo = require('postcss-svgo');
var opts = {
const opts = {
plugins: [{
removeDoctype: false
}, {
removeComments: false
}, {
cleanupNumericValues: {
floatPrecision: 2
}
}, {
convertColors: {
names2hex: false,
rgb2hex: false
name: 'preset-default',
params: {
overrides: {
removeViewBox: false,
removeComments: false,
cleanupNumericValues: {
floatPrecision: 2
}
}
}
}]
};
postcss([ svgo(opts) ]).process(css).then(function (result) {
postcss([ svgo(opts) ]).process(css).then((result) => {
console.log(result.css)
});
```
@@ -107,4 +106,4 @@ See [CONTRIBUTORS.md](https://github.com/cssnano/cssnano/blob/master/CONTRIBUTOR
MIT © [Ben Briggs](http://beneb.info)
[postcss]: https://github.com/postcss/postcss
[plugins]: https://github.com/svg/svgo/tree/master/plugins
[plugins]: https://svgo.dev/docs/plugins/

View File

@@ -1,6 +1,6 @@
{
"name": "postcss-svgo",
"version": "5.1.0",
"version": "7.1.0",
"description": "Optimise inline SVG with PostCSS.",
"main": "src/index.js",
"types": "types/index.d.ts",
@@ -28,20 +28,19 @@
"repository": "cssnano/cssnano",
"dependencies": {
"postcss-value-parser": "^4.2.0",
"svgo": "^2.7.0"
"svgo": "^4.0.0"
},
"bugs": {
"url": "https://github.com/cssnano/cssnano/issues"
},
"engines": {
"node": "^10 || ^12 || >=14.0"
"node": "^18.12.0 || ^20.9.0 || >= 18"
},
"devDependencies": {
"@types/svgo": "^2.6.2",
"postcss": "^8.2.15"
"pleeease-filters": "^4.0.0",
"postcss": "^8.5.6"
},
"peerDependencies": {
"postcss": "^8.2.15"
},
"readme": "# [postcss][postcss]-svgo\n\n> Optimise inline SVG with PostCSS.\n\n\n## Install\n\nWith [npm](https://npmjs.org/package/postcss-svgo) do:\n\n```\nnpm install postcss-svgo --save\n```\n\n\n## Example\n\n### Input\n\n```css\nh1 {\n background: url('data:image/svg+xml;charset=utf-8,<?xml version=\"1.0\" encoding=\"utf-8\"?><!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\"><svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:space=\"preserve\"><circle cx=\"50\" cy=\"50\" r=\"40\" fill=\"yellow\" /></svg>');\n}\n\nh2 {\n background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNDAiIGZpbGw9InllbGxvdyIgLz48IS0tdGVzdCBjb21tZW50LS0+PC9zdmc+');\n}\n```\n\n### Output\n\n```css\nh1 {\n background: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"50\" cy=\"50\" r=\"40\" fill=\"%23ff0\"/></svg>');\n}\n\nh2 {\n background: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjQwIiBmaWxsPSIjZmYwIi8+PC9zdmc+');\n}\n```\n\n\n## API\n\n### `svgo([options])`\n\n#### options\n\n##### encode\n\nType: `boolean`\nDefault: `undefined`\n\nIf `true`, it will encode URL-unsafe characters such as `<`, `>` and `&`;\n`false` will decode these characters, and `undefined` will neither encode nor\ndecode the original input. Note that regardless of this setting, `#` will\nalways be URL-encoded.\n\n##### plugins\n\nOptionally, you can customise the output by specifying the `plugins` option. You\nwill need to provide the config in comma separated objects, like the example\nbelow. Note that you can either disable the plugin by setting it to `false`,\nor pass different options to change the default behaviour.\n\n```js\nvar postcss = require('postcss');\nvar svgo = require('postcss-svgo');\n\nvar opts = {\n plugins: [{\n removeDoctype: false\n }, {\n removeComments: false\n }, {\n cleanupNumericValues: {\n floatPrecision: 2\n }\n }, {\n convertColors: {\n names2hex: false,\n rgb2hex: false\n }\n }]\n};\n\npostcss([ svgo(opts) ]).process(css).then(function (result) {\n console.log(result.css)\n});\n```\n\nYou can view the [full list of plugins here][plugins].\n\n\n## Usage\n\nSee the [PostCSS documentation](https://github.com/postcss/postcss#usage) for\nexamples for your environment.\n\n\n## Contributors\n\nSee [CONTRIBUTORS.md](https://github.com/cssnano/cssnano/blob/master/CONTRIBUTORS.md).\n\n\n## License\n\nMIT © [Ben Briggs](http://beneb.info)\n\n[postcss]: https://github.com/postcss/postcss\n[plugins]: https://github.com/svg/svgo/tree/master/plugins\n"
"postcss": "^8.4.32"
}
}

View File

@@ -24,7 +24,7 @@ function minifySVG(input, opts) {
try {
decodedUri = decode(input);
isUriEncoded = decodedUri !== input;
} catch (e) {
} catch {
// Swallow exception if we cannot decode the value
isUriEncoded = false;
}
@@ -43,12 +43,9 @@ function minifySVG(input, opts) {
svg = svg.replace(escapedQuotes, '$1="$2"');
const result = optimize(svg, opts);
if (result.error) {
throw new Error(result.error);
}
return {
result: /** @type {import('svgo').OptimizedSvg}*/ (result).data,
result: /** @type {import('svgo').Output}*/ (result).data,
isUriEncoded,
};
}
@@ -117,7 +114,7 @@ function minify(decl, opts, postcssResult) {
decl.value = minified.toString();
}
/** @typedef {{encode?: boolean, plugins?: object[]} & import('svgo').OptimizeOptions} Options */
/** @typedef {{encode?: boolean} & import('svgo').Config} Options */
/**
* @type {import('postcss').PluginCreator<Options>}
* @param {Options} opts

View File

@@ -1,17 +1,16 @@
export = pluginCreator;
/** @typedef {{encode?: boolean, plugins?: object[]} & import('svgo').OptimizeOptions} Options */
/** @typedef {{encode?: boolean} & import('svgo').Config} Options */
/**
* @type {import('postcss').PluginCreator<Options>}
* @param {Options} opts
* @return {import('postcss').Plugin}
*/
declare function pluginCreator(opts?: Options): import('postcss').Plugin;
declare function pluginCreator(opts?: Options): import("postcss").Plugin;
declare namespace pluginCreator {
export { postcss, Options };
}
declare var postcss: true;
type Options = {
encode?: boolean;
plugins?: object[];
} & import('svgo').OptimizeOptions;
declare var postcss: true;
import { encode } from "./lib/url";
} & import("svgo").Config;
//# sourceMappingURL=index.d.ts.map

1
node_modules/postcss-svgo/types/index.d.ts.map generated vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":";AAoHA,oEAAoE;AACpE;;;;GAIG;AACH,sCAHW,OAAO,GACN,OAAO,SAAS,EAAE,MAAM,CAgBnC;;;;;eApBa;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAC,GAAG,OAAO,MAAM,EAAE,MAAM"}

View File

@@ -4,3 +4,4 @@
*/
export function encode(data: string): string;
export const decode: typeof decodeURIComponent;
//# sourceMappingURL=url.d.ts.map

1
node_modules/postcss-svgo/types/lib/url.d.ts.map generated vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/lib/url.js"],"names":[],"mappings":"AACA;;;GAGG;AACH,6BAHW,MAAM,GACL,MAAM,CAWjB;AAED,+CAAkC"}