@hzab/vite-config 0.0.2-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +83 -0
- package/LICENSE +21 -0
- package/README.md +173 -0
- package/dist/create-app-vite-config.cjs +426 -0
- package/dist/create-app-vite-config.cjs.map +1 -0
- package/dist/create-app-vite-config.d.cts +19 -0
- package/dist/create-app-vite-config.d.ts +19 -0
- package/dist/create-app-vite-config.js +415 -0
- package/dist/create-app-vite-config.js.map +1 -0
- package/dist/create-library-vite-config.cjs +281 -0
- package/dist/create-library-vite-config.cjs.map +1 -0
- package/dist/create-library-vite-config.d.cts +31 -0
- package/dist/create-library-vite-config.d.ts +31 -0
- package/dist/create-library-vite-config.js +268 -0
- package/dist/create-library-vite-config.js.map +1 -0
- package/dist/create-package-vitest-config.cjs +73 -0
- package/dist/create-package-vitest-config.cjs.map +1 -0
- package/dist/create-package-vitest-config.d.cts +12 -0
- package/dist/create-package-vitest-config.d.ts +12 -0
- package/dist/create-package-vitest-config.js +67 -0
- package/dist/create-package-vitest-config.js.map +1 -0
- package/dist/create-vite-config.cjs +438 -0
- package/dist/create-vite-config.cjs.map +1 -0
- package/dist/create-vite-config.d.cts +17 -0
- package/dist/create-vite-config.d.ts +17 -0
- package/dist/create-vite-config.js +427 -0
- package/dist/create-vite-config.js.map +1 -0
- package/dist/index.cjs +631 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +16 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +603 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/copy.cjs +16 -0
- package/dist/plugins/copy.cjs.map +1 -0
- package/dist/plugins/copy.d.cts +18 -0
- package/dist/plugins/copy.d.ts +18 -0
- package/dist/plugins/copy.js +13 -0
- package/dist/plugins/copy.js.map +1 -0
- package/dist/plugins/hash-deploy.cjs +128 -0
- package/dist/plugins/hash-deploy.cjs.map +1 -0
- package/dist/plugins/hash-deploy.d.cts +56 -0
- package/dist/plugins/hash-deploy.d.ts +56 -0
- package/dist/plugins/hash-deploy.js +119 -0
- package/dist/plugins/hash-deploy.js.map +1 -0
- package/dist/plugins/less-tilde.cjs +32 -0
- package/dist/plugins/less-tilde.cjs.map +1 -0
- package/dist/plugins/less-tilde.d.cts +36 -0
- package/dist/plugins/less-tilde.d.ts +36 -0
- package/dist/plugins/less-tilde.js +29 -0
- package/dist/plugins/less-tilde.js.map +1 -0
- package/dist/plugins/lifecycle.cjs +28 -0
- package/dist/plugins/lifecycle.cjs.map +1 -0
- package/dist/plugins/lifecycle.d.cts +20 -0
- package/dist/plugins/lifecycle.d.ts +20 -0
- package/dist/plugins/lifecycle.js +26 -0
- package/dist/plugins/lifecycle.js.map +1 -0
- package/dist/plugins/public-assets.cjs +28 -0
- package/dist/plugins/public-assets.cjs.map +1 -0
- package/dist/plugins/public-assets.d.cts +17 -0
- package/dist/plugins/public-assets.d.ts +17 -0
- package/dist/plugins/public-assets.js +26 -0
- package/dist/plugins/public-assets.js.map +1 -0
- package/dist/plugins/public-config.cjs +31 -0
- package/dist/plugins/public-config.cjs.map +1 -0
- package/dist/plugins/public-config.d.cts +20 -0
- package/dist/plugins/public-config.d.ts +20 -0
- package/dist/plugins/public-config.js +29 -0
- package/dist/plugins/public-config.js.map +1 -0
- package/dist/plugins/react-compiler.cjs +22 -0
- package/dist/plugins/react-compiler.cjs.map +1 -0
- package/dist/plugins/react-compiler.d.cts +24 -0
- package/dist/plugins/react-compiler.d.ts +24 -0
- package/dist/plugins/react-compiler.js +16 -0
- package/dist/plugins/react-compiler.js.map +1 -0
- package/dist/plugins/relative-base.cjs +19 -0
- package/dist/plugins/relative-base.cjs.map +1 -0
- package/dist/plugins/relative-base.d.cts +9 -0
- package/dist/plugins/relative-base.d.ts +9 -0
- package/dist/plugins/relative-base.js +17 -0
- package/dist/plugins/relative-base.js.map +1 -0
- package/dist/plugins/stub-less.cjs +26 -0
- package/dist/plugins/stub-less.cjs.map +1 -0
- package/dist/plugins/stub-less.d.cts +9 -0
- package/dist/plugins/stub-less.d.ts +9 -0
- package/dist/plugins/stub-less.js +24 -0
- package/dist/plugins/stub-less.js.map +1 -0
- package/dist/plugins/svg-react.cjs +70 -0
- package/dist/plugins/svg-react.cjs.map +1 -0
- package/dist/plugins/svg-react.d.cts +28 -0
- package/dist/plugins/svg-react.d.ts +28 -0
- package/dist/plugins/svg-react.js +63 -0
- package/dist/plugins/svg-react.js.map +1 -0
- package/dist/svg-react-runtime.cjs +4 -0
- package/dist/svg-react-runtime.cjs.map +1 -0
- package/dist/svg-react-runtime.d.cts +2 -0
- package/dist/svg-react-runtime.d.ts +2 -0
- package/dist/svg-react-runtime.js +3 -0
- package/dist/svg-react-runtime.js.map +1 -0
- package/dist/types.cjs +4 -0
- package/dist/types.cjs.map +1 -0
- package/dist/types.d.cts +291 -0
- package/dist/types.d.ts +291 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/vitest-types.cjs +4 -0
- package/dist/vitest-types.cjs.map +1 -0
- package/dist/vitest-types.d.cts +22 -0
- package/dist/vitest-types.d.ts +22 -0
- package/dist/vitest-types.js +3 -0
- package/dist/vitest-types.js.map +1 -0
- package/dist/vitest.cjs +73 -0
- package/dist/vitest.cjs.map +1 -0
- package/dist/vitest.d.cts +4 -0
- package/dist/vitest.d.ts +4 -0
- package/dist/vitest.js +67 -0
- package/dist/vitest.js.map +1 -0
- package/docs/README.md +15 -0
- package/docs/abt-management-ui/vite.config.mts +226 -0
- package/docs/api.md +366 -0
- package/docs/migration-from-webpack.md +722 -0
- package/docs/sync-public-path.md +52 -0
- package/docs/vite-config-integration.md +476 -0
- package/docs/vite-pnpm-integration.md +279 -0
- package/docs/vs-ccc-vite-config.md +26 -0
- package/docs/webpack-gap.md +107 -0
- package/package.json +113 -0
- package/src/client.d.ts +9 -0
- package/src/create-app-vite-config.ts +218 -0
- package/src/create-library-vite-config.ts +199 -0
- package/src/create-package-vitest-config.ts +54 -0
- package/src/create-vite-config.ts +22 -0
- package/src/index.ts +42 -0
- package/src/plugins/copy.ts +25 -0
- package/src/plugins/hash-deploy.ts +199 -0
- package/src/plugins/less-tilde.ts +44 -0
- package/src/plugins/lifecycle.ts +40 -0
- package/src/plugins/public-assets.ts +28 -0
- package/src/plugins/public-config.ts +34 -0
- package/src/plugins/react-compiler.ts +32 -0
- package/src/plugins/relative-base.ts +20 -0
- package/src/plugins/stub-less.ts +26 -0
- package/src/plugins/svg-react.ts +90 -0
- package/src/svg-react-runtime.ts +4 -0
- package/src/svg-react.d.ts +6 -0
- package/src/types.ts +314 -0
- package/src/vitest-types.ts +20 -0
- package/src/vitest.ts +2 -0
- package/templates/src/vite-env.d.ts +2 -0
- package/templates/tsconfig.json +12 -0
- package/templates/vite.config.ts +26 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/plugins/relative-base.ts
|
|
4
|
+
function relativeBasePlugin(deployPath = "./") {
|
|
5
|
+
return {
|
|
6
|
+
name: "relative-base",
|
|
7
|
+
transformIndexHtml(html) {
|
|
8
|
+
return html.replace(/href="\.?\/assets\//g, `href="${deployPath}assets/`).replace(/src="\.?\/assets\//g, `src="${deployPath}assets/`);
|
|
9
|
+
},
|
|
10
|
+
transform(code, id) {
|
|
11
|
+
if (id.includes("node_modules")) return null;
|
|
12
|
+
return code.replace(/import\.meta\.env\.BASE_URL/g, `'${deployPath}'`);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
exports.relativeBasePlugin = relativeBasePlugin;
|
|
18
|
+
//# sourceMappingURL=relative-base.cjs.map
|
|
19
|
+
//# sourceMappingURL=relative-base.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/plugins/relative-base.ts"],"names":[],"mappings":";;;AAMO,SAAS,kBAAA,CAAmB,aAAqB,IAAA,EAAoB;AAC1E,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,eAAA;AAAA,IACN,mBAAmB,IAAA,EAAc;AAC/B,MAAA,OAAO,IAAA,CACJ,OAAA,CAAQ,sBAAA,EAAwB,CAAA,MAAA,EAAS,UAAU,CAAA,OAAA,CAAS,CAAA,CAC5D,OAAA,CAAQ,qBAAA,EAAuB,CAAA,KAAA,EAAQ,UAAU,CAAA,OAAA,CAAS,CAAA;AAAA,IAC/D,CAAA;AAAA,IACA,SAAA,CAAU,MAAc,EAAA,EAAY;AAClC,MAAA,IAAI,EAAA,CAAG,QAAA,CAAS,cAAc,CAAA,EAAG,OAAO,IAAA;AACxC,MAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,8BAAA,EAAgC,CAAA,CAAA,EAAI,UAAU,CAAA,CAAA,CAAG,CAAA;AAAA,IACvE;AAAA,GACF;AACF","file":"relative-base.cjs","sourcesContent":["import type { PluginOption } from \"vite\";\r\n\r\n/**\r\n * hash 部署场景下,把资源路径与 `import.meta.env.BASE_URL` 改写成相对部署目录。\r\n * @public\r\n */\r\nexport function relativeBasePlugin(deployPath: string = \"./\"): PluginOption {\r\n return {\r\n name: \"relative-base\",\r\n transformIndexHtml(html: string) {\r\n return html\r\n .replace(/href=\"\\.?\\/assets\\//g, `href=\"${deployPath}assets/`)\r\n .replace(/src=\"\\.?\\/assets\\//g, `src=\"${deployPath}assets/`);\r\n },\r\n transform(code: string, id: string) {\r\n if (id.includes(\"node_modules\")) return null;\r\n return code.replace(/import\\.meta\\.env\\.BASE_URL/g, `'${deployPath}'`);\r\n },\r\n };\r\n}\r\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// src/plugins/relative-base.ts
|
|
2
|
+
function relativeBasePlugin(deployPath = "./") {
|
|
3
|
+
return {
|
|
4
|
+
name: "relative-base",
|
|
5
|
+
transformIndexHtml(html) {
|
|
6
|
+
return html.replace(/href="\.?\/assets\//g, `href="${deployPath}assets/`).replace(/src="\.?\/assets\//g, `src="${deployPath}assets/`);
|
|
7
|
+
},
|
|
8
|
+
transform(code, id) {
|
|
9
|
+
if (id.includes("node_modules")) return null;
|
|
10
|
+
return code.replace(/import\.meta\.env\.BASE_URL/g, `'${deployPath}'`);
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { relativeBasePlugin };
|
|
16
|
+
//# sourceMappingURL=relative-base.js.map
|
|
17
|
+
//# sourceMappingURL=relative-base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/plugins/relative-base.ts"],"names":[],"mappings":";AAMO,SAAS,kBAAA,CAAmB,aAAqB,IAAA,EAAoB;AAC1E,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,eAAA;AAAA,IACN,mBAAmB,IAAA,EAAc;AAC/B,MAAA,OAAO,IAAA,CACJ,OAAA,CAAQ,sBAAA,EAAwB,CAAA,MAAA,EAAS,UAAU,CAAA,OAAA,CAAS,CAAA,CAC5D,OAAA,CAAQ,qBAAA,EAAuB,CAAA,KAAA,EAAQ,UAAU,CAAA,OAAA,CAAS,CAAA;AAAA,IAC/D,CAAA;AAAA,IACA,SAAA,CAAU,MAAc,EAAA,EAAY;AAClC,MAAA,IAAI,EAAA,CAAG,QAAA,CAAS,cAAc,CAAA,EAAG,OAAO,IAAA;AACxC,MAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,8BAAA,EAAgC,CAAA,CAAA,EAAI,UAAU,CAAA,CAAA,CAAG,CAAA;AAAA,IACvE;AAAA,GACF;AACF","file":"relative-base.js","sourcesContent":["import type { PluginOption } from \"vite\";\r\n\r\n/**\r\n * hash 部署场景下,把资源路径与 `import.meta.env.BASE_URL` 改写成相对部署目录。\r\n * @public\r\n */\r\nexport function relativeBasePlugin(deployPath: string = \"./\"): PluginOption {\r\n return {\r\n name: \"relative-base\",\r\n transformIndexHtml(html: string) {\r\n return html\r\n .replace(/href=\"\\.?\\/assets\\//g, `href=\"${deployPath}assets/`)\r\n .replace(/src=\"\\.?\\/assets\\//g, `src=\"${deployPath}assets/`);\r\n },\r\n transform(code: string, id: string) {\r\n if (id.includes(\"node_modules\")) return null;\r\n return code.replace(/import\\.meta\\.env\\.BASE_URL/g, `'${deployPath}'`);\r\n },\r\n };\r\n}\r\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/plugins/stub-less.ts
|
|
4
|
+
var cssModuleStub = `
|
|
5
|
+
const styles = new Proxy({}, {
|
|
6
|
+
get: (_target, property) => typeof property === "string" ? property : undefined,
|
|
7
|
+
});
|
|
8
|
+
export default styles;
|
|
9
|
+
`;
|
|
10
|
+
function stubLessPlugin() {
|
|
11
|
+
return {
|
|
12
|
+
name: "stub-less",
|
|
13
|
+
load(id) {
|
|
14
|
+
if (/\.module\.less(?:$|\?)/.test(id)) {
|
|
15
|
+
return cssModuleStub;
|
|
16
|
+
}
|
|
17
|
+
if (/\.less(?:$|\?)/.test(id)) {
|
|
18
|
+
return "";
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
exports.stubLessPlugin = stubLessPlugin;
|
|
25
|
+
//# sourceMappingURL=stub-less.cjs.map
|
|
26
|
+
//# sourceMappingURL=stub-less.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/plugins/stub-less.ts"],"names":[],"mappings":";;;AAEA,IAAM,aAAA,GAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAWf,SAAS,cAAA,GAAyB;AACvC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,WAAA;AAAA,IACN,KAAK,EAAA,EAAI;AACP,MAAA,IAAI,wBAAA,CAAyB,IAAA,CAAK,EAAE,CAAA,EAAG;AACrC,QAAA,OAAO,aAAA;AAAA,MACT;AACA,MAAA,IAAI,gBAAA,CAAiB,IAAA,CAAK,EAAE,CAAA,EAAG;AAC7B,QAAA,OAAO,EAAA;AAAA,MACT;AAAA,IACF;AAAA,GACF;AACF","file":"stub-less.cjs","sourcesContent":["import type { Plugin } from \"vite\";\r\n\r\nconst cssModuleStub = `\r\nconst styles = new Proxy({}, {\r\n get: (_target, property) => typeof property === \"string\" ? property : undefined,\r\n});\r\nexport default styles;\r\n`;\r\n\r\n/**\r\n * 单测不解析 less,并为 CSS Modules 提供 identity stub\r\n * @public\r\n */\r\nexport function stubLessPlugin(): Plugin {\r\n return {\r\n name: \"stub-less\",\r\n load(id) {\r\n if (/\\.module\\.less(?:$|\\?)/.test(id)) {\r\n return cssModuleStub;\r\n }\r\n if (/\\.less(?:$|\\?)/.test(id)) {\r\n return \"\";\r\n }\r\n },\r\n };\r\n}\r\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// src/plugins/stub-less.ts
|
|
2
|
+
var cssModuleStub = `
|
|
3
|
+
const styles = new Proxy({}, {
|
|
4
|
+
get: (_target, property) => typeof property === "string" ? property : undefined,
|
|
5
|
+
});
|
|
6
|
+
export default styles;
|
|
7
|
+
`;
|
|
8
|
+
function stubLessPlugin() {
|
|
9
|
+
return {
|
|
10
|
+
name: "stub-less",
|
|
11
|
+
load(id) {
|
|
12
|
+
if (/\.module\.less(?:$|\?)/.test(id)) {
|
|
13
|
+
return cssModuleStub;
|
|
14
|
+
}
|
|
15
|
+
if (/\.less(?:$|\?)/.test(id)) {
|
|
16
|
+
return "";
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { stubLessPlugin };
|
|
23
|
+
//# sourceMappingURL=stub-less.js.map
|
|
24
|
+
//# sourceMappingURL=stub-less.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/plugins/stub-less.ts"],"names":[],"mappings":";AAEA,IAAM,aAAA,GAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAWf,SAAS,cAAA,GAAyB;AACvC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,WAAA;AAAA,IACN,KAAK,EAAA,EAAI;AACP,MAAA,IAAI,wBAAA,CAAyB,IAAA,CAAK,EAAE,CAAA,EAAG;AACrC,QAAA,OAAO,aAAA;AAAA,MACT;AACA,MAAA,IAAI,gBAAA,CAAiB,IAAA,CAAK,EAAE,CAAA,EAAG;AAC7B,QAAA,OAAO,EAAA;AAAA,MACT;AAAA,IACF;AAAA,GACF;AACF","file":"stub-less.js","sourcesContent":["import type { Plugin } from \"vite\";\r\n\r\nconst cssModuleStub = `\r\nconst styles = new Proxy({}, {\r\n get: (_target, property) => typeof property === \"string\" ? property : undefined,\r\n});\r\nexport default styles;\r\n`;\r\n\r\n/**\r\n * 单测不解析 less,并为 CSS Modules 提供 identity stub\r\n * @public\r\n */\r\nexport function stubLessPlugin(): Plugin {\r\n return {\r\n name: \"stub-less\",\r\n load(id) {\r\n if (/\\.module\\.less(?:$|\\?)/.test(id)) {\r\n return cssModuleStub;\r\n }\r\n if (/\\.less(?:$|\\?)/.test(id)) {\r\n return \"\";\r\n }\r\n },\r\n };\r\n}\r\n"]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var fs = require('fs/promises');
|
|
4
|
+
var vite = require('vite');
|
|
5
|
+
|
|
6
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
|
|
8
|
+
var fs__default = /*#__PURE__*/_interopDefault(fs);
|
|
9
|
+
|
|
10
|
+
// src/plugins/svg-react.ts
|
|
11
|
+
var SVG_EXT_RE = /\.svg$/i;
|
|
12
|
+
function isSvgReactId(id) {
|
|
13
|
+
const queryStart = id.indexOf("?");
|
|
14
|
+
if (queryStart === -1) return false;
|
|
15
|
+
const file = id.slice(0, queryStart);
|
|
16
|
+
if (!SVG_EXT_RE.test(file)) return false;
|
|
17
|
+
return /(?:^|&)react(?:&|$)/.test(id.slice(queryStart + 1));
|
|
18
|
+
}
|
|
19
|
+
function missingPeerError(pkg, cause) {
|
|
20
|
+
const error = new Error(
|
|
21
|
+
`[svg-react] "${pkg}" is required to transform *.svg?react. Install the optional peer or disable CreateAppViteConfigOptions.svgr.`
|
|
22
|
+
);
|
|
23
|
+
error.cause = cause;
|
|
24
|
+
return error;
|
|
25
|
+
}
|
|
26
|
+
async function resolveSvgrConfig(options) {
|
|
27
|
+
const merged = { svgo: true, ...options };
|
|
28
|
+
if (merged.plugins != null) return merged;
|
|
29
|
+
const plugins = [];
|
|
30
|
+
if (merged.svgo !== false) {
|
|
31
|
+
try {
|
|
32
|
+
plugins.push((await import('@svgr/plugin-svgo')).default);
|
|
33
|
+
} catch (cause) {
|
|
34
|
+
throw missingPeerError("@svgr/plugin-svgo", cause);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
plugins.push((await import('@svgr/plugin-jsx')).default);
|
|
39
|
+
} catch (cause) {
|
|
40
|
+
throw missingPeerError("@svgr/plugin-jsx", cause);
|
|
41
|
+
}
|
|
42
|
+
return { ...merged, plugins };
|
|
43
|
+
}
|
|
44
|
+
function svgReactPlugin(options = {}) {
|
|
45
|
+
return {
|
|
46
|
+
name: "ccc:svg-react",
|
|
47
|
+
enforce: "pre",
|
|
48
|
+
async load(id) {
|
|
49
|
+
if (!isSvgReactId(id)) return;
|
|
50
|
+
const filePath = id.slice(0, id.indexOf("?"));
|
|
51
|
+
const svg = await fs__default.default.readFile(filePath, "utf8");
|
|
52
|
+
let transform;
|
|
53
|
+
try {
|
|
54
|
+
({ transform } = await import('@svgr/core'));
|
|
55
|
+
} catch (cause) {
|
|
56
|
+
throw missingPeerError("@svgr/core", cause);
|
|
57
|
+
}
|
|
58
|
+
const componentCode = await transform(svg, await resolveSvgrConfig(options), { filePath });
|
|
59
|
+
const result = await vite.transformWithOxc(componentCode, `${filePath}.jsx`, {
|
|
60
|
+
lang: "jsx"
|
|
61
|
+
});
|
|
62
|
+
return { code: result.code, map: result.map };
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
exports.isSvgReactId = isSvgReactId;
|
|
68
|
+
exports.svgReactPlugin = svgReactPlugin;
|
|
69
|
+
//# sourceMappingURL=svg-react.cjs.map
|
|
70
|
+
//# sourceMappingURL=svg-react.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/plugins/svg-react.ts"],"names":["fs","transformWithOxc"],"mappings":";;;;;;;;;;AAiBA,IAAM,UAAA,GAAa,SAAA;AAMZ,SAAS,aAAa,EAAA,EAAqB;AAChD,EAAA,MAAM,UAAA,GAAa,EAAA,CAAG,OAAA,CAAQ,GAAG,CAAA;AACjC,EAAA,IAAI,UAAA,KAAe,IAAI,OAAO,KAAA;AAC9B,EAAA,MAAM,IAAA,GAAO,EAAA,CAAG,KAAA,CAAM,CAAA,EAAG,UAAU,CAAA;AACnC,EAAA,IAAI,CAAC,UAAA,CAAW,IAAA,CAAK,IAAI,GAAG,OAAO,KAAA;AACnC,EAAA,OAAO,sBAAsB,IAAA,CAAK,EAAA,CAAG,KAAA,CAAM,UAAA,GAAa,CAAC,CAAC,CAAA;AAC5D;AAEA,SAAS,gBAAA,CAAiB,KAAa,KAAA,EAAuB;AAC5D,EAAA,MAAM,QAAQ,IAAI,KAAA;AAAA,IAChB,gBAAgB,GAAG,CAAA,6GAAA;AAAA,GACrB;AACA,EAAA,KAAA,CAAM,KAAA,GAAQ,KAAA;AACd,EAAA,OAAO,KAAA;AACT;AAEA,eAAe,kBAAkB,OAAA,EAA2C;AAC1E,EAAA,MAAM,MAAA,GAAiB,EAAE,IAAA,EAAM,IAAA,EAAM,GAAG,OAAA,EAAQ;AAChD,EAAA,IAAI,MAAA,CAAO,OAAA,IAAW,IAAA,EAAM,OAAO,MAAA;AAEnC,EAAA,MAAM,UAA0C,EAAC;AACjD,EAAA,IAAI,MAAA,CAAO,SAAS,KAAA,EAAO;AACzB,IAAA,IAAI;AACF,MAAA,OAAA,CAAQ,IAAA,CAAA,CAAM,MAAM,OAAO,mBAAmB,GAAG,OAAO,CAAA;AAAA,IAC1D,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,gBAAA,CAAiB,qBAAqB,KAAK,CAAA;AAAA,IACnD;AAAA,EACF;AACA,EAAA,IAAI;AACF,IAAA,OAAA,CAAQ,IAAA,CAAA,CAAM,MAAM,OAAO,kBAAkB,GAAG,OAAO,CAAA;AAAA,EACzD,SAAS,KAAA,EAAO;AACd,IAAA,MAAM,gBAAA,CAAiB,oBAAoB,KAAK,CAAA;AAAA,EAClD;AACA,EAAA,OAAO,EAAE,GAAG,MAAA,EAAQ,OAAA,EAAQ;AAC9B;AAUO,SAAS,cAAA,CAAe,OAAA,GAA2B,EAAC,EAAW;AACpE,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,eAAA;AAAA,IACN,OAAA,EAAS,KAAA;AAAA,IACT,MAAM,KAAK,EAAA,EAAI;AACb,MAAA,IAAI,CAAC,YAAA,CAAa,EAAE,CAAA,EAAG;AAEvB,MAAA,MAAM,WAAW,EAAA,CAAG,KAAA,CAAM,GAAG,EAAA,CAAG,OAAA,CAAQ,GAAG,CAAC,CAAA;AAC5C,MAAA,MAAM,GAAA,GAAM,MAAMA,mBAAA,CAAG,QAAA,CAAS,UAAU,MAAM,CAAA;AAC9C,MAAA,IAAI,SAAA;AACJ,MAAA,IAAI;AACF,QAAA,CAAC,EAAE,SAAA,EAAU,GAAI,MAAM,OAAO,YAAY,CAAA;AAAA,MAC5C,SAAS,KAAA,EAAO;AACd,QAAA,MAAM,gBAAA,CAAiB,cAAc,KAAK,CAAA;AAAA,MAC5C;AACA,MAAA,MAAM,aAAA,GAAgB,MAAM,SAAA,CAAU,GAAA,EAAK,MAAM,kBAAkB,OAAO,CAAA,EAAG,EAAE,QAAA,EAAU,CAAA;AACzF,MAAA,MAAM,SAAS,MAAMC,qBAAA,CAAiB,aAAA,EAAe,CAAA,EAAG,QAAQ,CAAA,IAAA,CAAA,EAAQ;AAAA,QACtE,IAAA,EAAM;AAAA,OACP,CAAA;AACD,MAAA,OAAO,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAM,GAAA,EAAK,OAAO,GAAA,EAAI;AAAA,IAC9C;AAAA,GACF;AACF","file":"svg-react.cjs","sourcesContent":["import fs from \"node:fs/promises\";\r\nimport { transformWithOxc } from \"vite\";\r\n\r\nimport type { Config } from \"@svgr/core\";\r\nimport type { Plugin } from \"vite\";\r\n\r\n/**\r\n * @see https://react-svgr.com/docs/options/\r\n * @public\r\n */\r\nexport interface SvgReactOptions {\r\n /** @defaultValue true */\r\n svgo?: boolean;\r\n icon?: boolean;\r\n [key: string]: unknown;\r\n}\r\n\r\nconst SVG_EXT_RE = /\\.svg$/i;\r\n\r\n/**\r\n * `*.svg?react`(及带其它 query 时的 `react` 段)。\r\n * 不匹配 `?reactive` / webpack 的 `?svgEle`。\r\n */\r\nexport function isSvgReactId(id: string): boolean {\r\n const queryStart = id.indexOf(\"?\");\r\n if (queryStart === -1) return false;\r\n const file = id.slice(0, queryStart);\r\n if (!SVG_EXT_RE.test(file)) return false;\r\n return /(?:^|&)react(?:&|$)/.test(id.slice(queryStart + 1));\r\n}\r\n\r\nfunction missingPeerError(pkg: string, cause: unknown): Error {\r\n const error = new Error(\r\n `[svg-react] \"${pkg}\" is required to transform *.svg?react. Install the optional peer or disable CreateAppViteConfigOptions.svgr.`,\r\n );\r\n error.cause = cause;\r\n return error;\r\n}\r\n\r\nasync function resolveSvgrConfig(options: SvgReactOptions): Promise<Config> {\r\n const merged: Config = { svgo: true, ...options };\r\n if (merged.plugins != null) return merged;\r\n\r\n const plugins: NonNullable<Config[\"plugins\"]> = [];\r\n if (merged.svgo !== false) {\r\n try {\r\n plugins.push((await import(\"@svgr/plugin-svgo\")).default);\r\n } catch (cause) {\r\n throw missingPeerError(\"@svgr/plugin-svgo\", cause);\r\n }\r\n }\r\n try {\r\n plugins.push((await import(\"@svgr/plugin-jsx\")).default);\r\n } catch (cause) {\r\n throw missingPeerError(\"@svgr/plugin-jsx\", cause);\r\n }\r\n return { ...merged, plugins };\r\n}\r\n\r\n/**\r\n * 将 `import Icon from \"./icon.svg?react\"` 编成 React 组件。\r\n * 普通 `*.svg` 仍走 Vite 默认资源 URL,本插件不处理。\r\n *\r\n * `@svgr/core` / `@svgr/plugin-jsx`(以及默认开启 SVGO 时的 `@svgr/plugin-svgo`)\r\n * 仅在真正命中 `?react` 时动态加载,根入口不会静态依赖它们。\r\n * @public\r\n */\r\nexport function svgReactPlugin(options: SvgReactOptions = {}): Plugin {\r\n return {\r\n name: \"ccc:svg-react\",\r\n enforce: \"pre\",\r\n async load(id) {\r\n if (!isSvgReactId(id)) return;\r\n\r\n const filePath = id.slice(0, id.indexOf(\"?\"));\r\n const svg = await fs.readFile(filePath, \"utf8\");\r\n let transform;\r\n try {\r\n ({ transform } = await import(\"@svgr/core\"));\r\n } catch (cause) {\r\n throw missingPeerError(\"@svgr/core\", cause);\r\n }\r\n const componentCode = await transform(svg, await resolveSvgrConfig(options), { filePath });\r\n const result = await transformWithOxc(componentCode, `${filePath}.jsx`, {\r\n lang: \"jsx\",\r\n });\r\n return { code: result.code, map: result.map };\r\n },\r\n };\r\n}\r\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Plugin } from 'vite';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @see https://react-svgr.com/docs/options/
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
interface SvgReactOptions {
|
|
8
|
+
/** @defaultValue true */
|
|
9
|
+
svgo?: boolean;
|
|
10
|
+
icon?: boolean;
|
|
11
|
+
[key: string]: unknown;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* `*.svg?react`(及带其它 query 时的 `react` 段)。
|
|
15
|
+
* 不匹配 `?reactive` / webpack 的 `?svgEle`。
|
|
16
|
+
*/
|
|
17
|
+
declare function isSvgReactId(id: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* 将 `import Icon from "./icon.svg?react"` 编成 React 组件。
|
|
20
|
+
* 普通 `*.svg` 仍走 Vite 默认资源 URL,本插件不处理。
|
|
21
|
+
*
|
|
22
|
+
* `@svgr/core` / `@svgr/plugin-jsx`(以及默认开启 SVGO 时的 `@svgr/plugin-svgo`)
|
|
23
|
+
* 仅在真正命中 `?react` 时动态加载,根入口不会静态依赖它们。
|
|
24
|
+
* @public
|
|
25
|
+
*/
|
|
26
|
+
declare function svgReactPlugin(options?: SvgReactOptions): Plugin;
|
|
27
|
+
|
|
28
|
+
export { type SvgReactOptions, isSvgReactId, svgReactPlugin };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Plugin } from 'vite';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @see https://react-svgr.com/docs/options/
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
interface SvgReactOptions {
|
|
8
|
+
/** @defaultValue true */
|
|
9
|
+
svgo?: boolean;
|
|
10
|
+
icon?: boolean;
|
|
11
|
+
[key: string]: unknown;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* `*.svg?react`(及带其它 query 时的 `react` 段)。
|
|
15
|
+
* 不匹配 `?reactive` / webpack 的 `?svgEle`。
|
|
16
|
+
*/
|
|
17
|
+
declare function isSvgReactId(id: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* 将 `import Icon from "./icon.svg?react"` 编成 React 组件。
|
|
20
|
+
* 普通 `*.svg` 仍走 Vite 默认资源 URL,本插件不处理。
|
|
21
|
+
*
|
|
22
|
+
* `@svgr/core` / `@svgr/plugin-jsx`(以及默认开启 SVGO 时的 `@svgr/plugin-svgo`)
|
|
23
|
+
* 仅在真正命中 `?react` 时动态加载,根入口不会静态依赖它们。
|
|
24
|
+
* @public
|
|
25
|
+
*/
|
|
26
|
+
declare function svgReactPlugin(options?: SvgReactOptions): Plugin;
|
|
27
|
+
|
|
28
|
+
export { type SvgReactOptions, isSvgReactId, svgReactPlugin };
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import fs from 'fs/promises';
|
|
2
|
+
import { transformWithOxc } from 'vite';
|
|
3
|
+
|
|
4
|
+
// src/plugins/svg-react.ts
|
|
5
|
+
var SVG_EXT_RE = /\.svg$/i;
|
|
6
|
+
function isSvgReactId(id) {
|
|
7
|
+
const queryStart = id.indexOf("?");
|
|
8
|
+
if (queryStart === -1) return false;
|
|
9
|
+
const file = id.slice(0, queryStart);
|
|
10
|
+
if (!SVG_EXT_RE.test(file)) return false;
|
|
11
|
+
return /(?:^|&)react(?:&|$)/.test(id.slice(queryStart + 1));
|
|
12
|
+
}
|
|
13
|
+
function missingPeerError(pkg, cause) {
|
|
14
|
+
const error = new Error(
|
|
15
|
+
`[svg-react] "${pkg}" is required to transform *.svg?react. Install the optional peer or disable CreateAppViteConfigOptions.svgr.`
|
|
16
|
+
);
|
|
17
|
+
error.cause = cause;
|
|
18
|
+
return error;
|
|
19
|
+
}
|
|
20
|
+
async function resolveSvgrConfig(options) {
|
|
21
|
+
const merged = { svgo: true, ...options };
|
|
22
|
+
if (merged.plugins != null) return merged;
|
|
23
|
+
const plugins = [];
|
|
24
|
+
if (merged.svgo !== false) {
|
|
25
|
+
try {
|
|
26
|
+
plugins.push((await import('@svgr/plugin-svgo')).default);
|
|
27
|
+
} catch (cause) {
|
|
28
|
+
throw missingPeerError("@svgr/plugin-svgo", cause);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
plugins.push((await import('@svgr/plugin-jsx')).default);
|
|
33
|
+
} catch (cause) {
|
|
34
|
+
throw missingPeerError("@svgr/plugin-jsx", cause);
|
|
35
|
+
}
|
|
36
|
+
return { ...merged, plugins };
|
|
37
|
+
}
|
|
38
|
+
function svgReactPlugin(options = {}) {
|
|
39
|
+
return {
|
|
40
|
+
name: "ccc:svg-react",
|
|
41
|
+
enforce: "pre",
|
|
42
|
+
async load(id) {
|
|
43
|
+
if (!isSvgReactId(id)) return;
|
|
44
|
+
const filePath = id.slice(0, id.indexOf("?"));
|
|
45
|
+
const svg = await fs.readFile(filePath, "utf8");
|
|
46
|
+
let transform;
|
|
47
|
+
try {
|
|
48
|
+
({ transform } = await import('@svgr/core'));
|
|
49
|
+
} catch (cause) {
|
|
50
|
+
throw missingPeerError("@svgr/core", cause);
|
|
51
|
+
}
|
|
52
|
+
const componentCode = await transform(svg, await resolveSvgrConfig(options), { filePath });
|
|
53
|
+
const result = await transformWithOxc(componentCode, `${filePath}.jsx`, {
|
|
54
|
+
lang: "jsx"
|
|
55
|
+
});
|
|
56
|
+
return { code: result.code, map: result.map };
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export { isSvgReactId, svgReactPlugin };
|
|
62
|
+
//# sourceMappingURL=svg-react.js.map
|
|
63
|
+
//# sourceMappingURL=svg-react.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/plugins/svg-react.ts"],"names":[],"mappings":";;;;AAiBA,IAAM,UAAA,GAAa,SAAA;AAMZ,SAAS,aAAa,EAAA,EAAqB;AAChD,EAAA,MAAM,UAAA,GAAa,EAAA,CAAG,OAAA,CAAQ,GAAG,CAAA;AACjC,EAAA,IAAI,UAAA,KAAe,IAAI,OAAO,KAAA;AAC9B,EAAA,MAAM,IAAA,GAAO,EAAA,CAAG,KAAA,CAAM,CAAA,EAAG,UAAU,CAAA;AACnC,EAAA,IAAI,CAAC,UAAA,CAAW,IAAA,CAAK,IAAI,GAAG,OAAO,KAAA;AACnC,EAAA,OAAO,sBAAsB,IAAA,CAAK,EAAA,CAAG,KAAA,CAAM,UAAA,GAAa,CAAC,CAAC,CAAA;AAC5D;AAEA,SAAS,gBAAA,CAAiB,KAAa,KAAA,EAAuB;AAC5D,EAAA,MAAM,QAAQ,IAAI,KAAA;AAAA,IAChB,gBAAgB,GAAG,CAAA,6GAAA;AAAA,GACrB;AACA,EAAA,KAAA,CAAM,KAAA,GAAQ,KAAA;AACd,EAAA,OAAO,KAAA;AACT;AAEA,eAAe,kBAAkB,OAAA,EAA2C;AAC1E,EAAA,MAAM,MAAA,GAAiB,EAAE,IAAA,EAAM,IAAA,EAAM,GAAG,OAAA,EAAQ;AAChD,EAAA,IAAI,MAAA,CAAO,OAAA,IAAW,IAAA,EAAM,OAAO,MAAA;AAEnC,EAAA,MAAM,UAA0C,EAAC;AACjD,EAAA,IAAI,MAAA,CAAO,SAAS,KAAA,EAAO;AACzB,IAAA,IAAI;AACF,MAAA,OAAA,CAAQ,IAAA,CAAA,CAAM,MAAM,OAAO,mBAAmB,GAAG,OAAO,CAAA;AAAA,IAC1D,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,gBAAA,CAAiB,qBAAqB,KAAK,CAAA;AAAA,IACnD;AAAA,EACF;AACA,EAAA,IAAI;AACF,IAAA,OAAA,CAAQ,IAAA,CAAA,CAAM,MAAM,OAAO,kBAAkB,GAAG,OAAO,CAAA;AAAA,EACzD,SAAS,KAAA,EAAO;AACd,IAAA,MAAM,gBAAA,CAAiB,oBAAoB,KAAK,CAAA;AAAA,EAClD;AACA,EAAA,OAAO,EAAE,GAAG,MAAA,EAAQ,OAAA,EAAQ;AAC9B;AAUO,SAAS,cAAA,CAAe,OAAA,GAA2B,EAAC,EAAW;AACpE,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,eAAA;AAAA,IACN,OAAA,EAAS,KAAA;AAAA,IACT,MAAM,KAAK,EAAA,EAAI;AACb,MAAA,IAAI,CAAC,YAAA,CAAa,EAAE,CAAA,EAAG;AAEvB,MAAA,MAAM,WAAW,EAAA,CAAG,KAAA,CAAM,GAAG,EAAA,CAAG,OAAA,CAAQ,GAAG,CAAC,CAAA;AAC5C,MAAA,MAAM,GAAA,GAAM,MAAM,EAAA,CAAG,QAAA,CAAS,UAAU,MAAM,CAAA;AAC9C,MAAA,IAAI,SAAA;AACJ,MAAA,IAAI;AACF,QAAA,CAAC,EAAE,SAAA,EAAU,GAAI,MAAM,OAAO,YAAY,CAAA;AAAA,MAC5C,SAAS,KAAA,EAAO;AACd,QAAA,MAAM,gBAAA,CAAiB,cAAc,KAAK,CAAA;AAAA,MAC5C;AACA,MAAA,MAAM,aAAA,GAAgB,MAAM,SAAA,CAAU,GAAA,EAAK,MAAM,kBAAkB,OAAO,CAAA,EAAG,EAAE,QAAA,EAAU,CAAA;AACzF,MAAA,MAAM,SAAS,MAAM,gBAAA,CAAiB,aAAA,EAAe,CAAA,EAAG,QAAQ,CAAA,IAAA,CAAA,EAAQ;AAAA,QACtE,IAAA,EAAM;AAAA,OACP,CAAA;AACD,MAAA,OAAO,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAM,GAAA,EAAK,OAAO,GAAA,EAAI;AAAA,IAC9C;AAAA,GACF;AACF","file":"svg-react.js","sourcesContent":["import fs from \"node:fs/promises\";\r\nimport { transformWithOxc } from \"vite\";\r\n\r\nimport type { Config } from \"@svgr/core\";\r\nimport type { Plugin } from \"vite\";\r\n\r\n/**\r\n * @see https://react-svgr.com/docs/options/\r\n * @public\r\n */\r\nexport interface SvgReactOptions {\r\n /** @defaultValue true */\r\n svgo?: boolean;\r\n icon?: boolean;\r\n [key: string]: unknown;\r\n}\r\n\r\nconst SVG_EXT_RE = /\\.svg$/i;\r\n\r\n/**\r\n * `*.svg?react`(及带其它 query 时的 `react` 段)。\r\n * 不匹配 `?reactive` / webpack 的 `?svgEle`。\r\n */\r\nexport function isSvgReactId(id: string): boolean {\r\n const queryStart = id.indexOf(\"?\");\r\n if (queryStart === -1) return false;\r\n const file = id.slice(0, queryStart);\r\n if (!SVG_EXT_RE.test(file)) return false;\r\n return /(?:^|&)react(?:&|$)/.test(id.slice(queryStart + 1));\r\n}\r\n\r\nfunction missingPeerError(pkg: string, cause: unknown): Error {\r\n const error = new Error(\r\n `[svg-react] \"${pkg}\" is required to transform *.svg?react. Install the optional peer or disable CreateAppViteConfigOptions.svgr.`,\r\n );\r\n error.cause = cause;\r\n return error;\r\n}\r\n\r\nasync function resolveSvgrConfig(options: SvgReactOptions): Promise<Config> {\r\n const merged: Config = { svgo: true, ...options };\r\n if (merged.plugins != null) return merged;\r\n\r\n const plugins: NonNullable<Config[\"plugins\"]> = [];\r\n if (merged.svgo !== false) {\r\n try {\r\n plugins.push((await import(\"@svgr/plugin-svgo\")).default);\r\n } catch (cause) {\r\n throw missingPeerError(\"@svgr/plugin-svgo\", cause);\r\n }\r\n }\r\n try {\r\n plugins.push((await import(\"@svgr/plugin-jsx\")).default);\r\n } catch (cause) {\r\n throw missingPeerError(\"@svgr/plugin-jsx\", cause);\r\n }\r\n return { ...merged, plugins };\r\n}\r\n\r\n/**\r\n * 将 `import Icon from \"./icon.svg?react\"` 编成 React 组件。\r\n * 普通 `*.svg` 仍走 Vite 默认资源 URL,本插件不处理。\r\n *\r\n * `@svgr/core` / `@svgr/plugin-jsx`(以及默认开启 SVGO 时的 `@svgr/plugin-svgo`)\r\n * 仅在真正命中 `?react` 时动态加载,根入口不会静态依赖它们。\r\n * @public\r\n */\r\nexport function svgReactPlugin(options: SvgReactOptions = {}): Plugin {\r\n return {\r\n name: \"ccc:svg-react\",\r\n enforce: \"pre\",\r\n async load(id) {\r\n if (!isSvgReactId(id)) return;\r\n\r\n const filePath = id.slice(0, id.indexOf(\"?\"));\r\n const svg = await fs.readFile(filePath, \"utf8\");\r\n let transform;\r\n try {\r\n ({ transform } = await import(\"@svgr/core\"));\r\n } catch (cause) {\r\n throw missingPeerError(\"@svgr/core\", cause);\r\n }\r\n const componentCode = await transform(svg, await resolveSvgrConfig(options), { filePath });\r\n const result = await transformWithOxc(componentCode, `${filePath}.jsx`, {\r\n lang: \"jsx\",\r\n });\r\n return { code: result.code, map: result.map };\r\n },\r\n };\r\n}\r\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"svg-react-runtime.cjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"svg-react-runtime.js"}
|
package/dist/types.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"types.cjs"}
|