@visulima/packem-rollup 1.0.0-alpha.10 → 1.0.0-alpha.11
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
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
## @visulima/packem-rollup [1.0.0-alpha.11](https://github.com/visulima/packem/compare/@visulima/packem-rollup@1.0.0-alpha.10...@visulima/packem-rollup@1.0.0-alpha.11) (2025-08-25)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* Add Data URI plugin support for SVG files ([8528648](https://github.com/visulima/packem/commit/852864828d09a70367c93228b1bee8699e1e00f2))
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Dependencies
|
|
9
|
+
|
|
10
|
+
* **@visulima/packem-share:** upgraded to 1.0.0-alpha.8
|
|
11
|
+
|
|
1
12
|
## @visulima/packem-rollup [1.0.0-alpha.10](https://github.com/visulima/packem/compare/@visulima/packem-rollup@1.0.0-alpha.9...@visulima/packem-rollup@1.0.0-alpha.10) (2025-08-21)
|
|
2
13
|
|
|
3
14
|
### Bug Fixes
|
package/README.md
CHANGED
|
@@ -41,6 +41,60 @@ pnpm add @visulima/packem-rollup
|
|
|
41
41
|
|
|
42
42
|
## Usage
|
|
43
43
|
|
|
44
|
+
### Data URI Plugin
|
|
45
|
+
|
|
46
|
+
The `dataUriPlugin` converts files to data URIs for inline embedding. It supports configurable SVG encoding strategies via query parameters.
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
import { dataUriPlugin } from "@visulima/packem-rollup";
|
|
50
|
+
|
|
51
|
+
export default {
|
|
52
|
+
plugins: [
|
|
53
|
+
dataUriPlugin()
|
|
54
|
+
]
|
|
55
|
+
};
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
#### Query Parameters
|
|
59
|
+
|
|
60
|
+
- `?data-uri` - Basic data URI conversion
|
|
61
|
+
- `?data-uri&encoding=css` - Use CSS-optimized SVG encoding
|
|
62
|
+
- `?data-uri&encoding=tiny` - Use tiny SVG encoding (default)
|
|
63
|
+
- `?data-uri&srcset` - Encode spaces as %20 for srcset compatibility
|
|
64
|
+
|
|
65
|
+
#### Examples
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
// Tiny SVG encoding (default)
|
|
69
|
+
import icon from './icon.svg?data-uri';
|
|
70
|
+
|
|
71
|
+
// CSS-optimized SVG encoding
|
|
72
|
+
import icon from './icon.svg?data-uri&encoding=css';
|
|
73
|
+
|
|
74
|
+
// Tiny SVG with srcset compatibility
|
|
75
|
+
import icon from './icon.svg?data-uri&srcset';
|
|
76
|
+
|
|
77
|
+
// CSS encoding with srcset compatibility
|
|
78
|
+
import icon from './icon.svg?data-uri&encoding=css&srcset';
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### URL Plugin
|
|
82
|
+
|
|
83
|
+
The `urlPlugin` handles asset URLs, either inlining them as data URIs or copying them to a destination directory. SVG files are optimized using the shared `svgEncoder` utility before being base64 encoded.
|
|
84
|
+
|
|
85
|
+
```typescript
|
|
86
|
+
import { urlPlugin } from "@visulima/packem-rollup";
|
|
87
|
+
|
|
88
|
+
export default {
|
|
89
|
+
plugins: [
|
|
90
|
+
urlPlugin({
|
|
91
|
+
limit: 14336, // 14kb
|
|
92
|
+
fileName: '[hash][extname]'
|
|
93
|
+
})
|
|
94
|
+
]
|
|
95
|
+
};
|
|
96
|
+
```
|
|
97
|
+
|
|
44
98
|
## Related
|
|
45
99
|
|
|
46
100
|
## Supported Node.js Versions
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{default as o}from"./packem_shared/chunkSplitter-DWAy1JkE.mjs";import{cjsInteropPlugin as a}from"./packem_shared/cjsInteropPlugin-D5wyoQ_B.mjs";import{copyPlugin as f}from"./packem_shared/copyPlugin--6RITp1-.mjs";import{dataUriPlugin as u}from"./packem_shared/dataUriPlugin-
|
|
1
|
+
import{default as o}from"./packem_shared/chunkSplitter-DWAy1JkE.mjs";import{cjsInteropPlugin as a}from"./packem_shared/cjsInteropPlugin-D5wyoQ_B.mjs";import{copyPlugin as f}from"./packem_shared/copyPlugin--6RITp1-.mjs";import{dataUriPlugin as u}from"./packem_shared/dataUriPlugin-CfKiUIP_.mjs";import{default as p}from"./packem_shared/browserslistToEsbuild-C0IWmbNe.mjs";import{esmShimCjsSyntaxPlugin as x}from"./packem_shared/esmShimCjsSyntaxPlugin-DjKqX4DE.mjs";import{fixDtsDefaultCjsExportsPlugin as d}from"./packem_shared/fixDtsDefaultCjsExportsPlugin-Dp1UcHVR.mjs";import{default as P}from"./packem_shared/fixDynamicImportExtension-BBGNRniz.mjs";import{isolatedDeclarationsPlugin as b}from"./packem_shared/isolatedDeclarationsPlugin-B34s_qkE.mjs";import{default as j}from"./packem_shared/jsonPlugin-BAi3Da-h.mjs";import{jsxRemoveAttributes as y}from"./packem_shared/jsxRemoveAttributes-B1PLPffj.mjs";import{license as D}from"./packem_shared/licensePlugin-C5yzUqe-.mjs";import{default as E}from"./packem_shared/metafilePlugin-ObS4J7mO.mjs";import{default as w}from"./packem_shared/cachingPlugin-D0BBFJPD.mjs";import{default as L}from"./packem_shared/preserveDirectivesPlugin-B49Cbykd.mjs";import{rawPlugin as R}from"./packem_shared/rawPlugin-DgRj14Xy.mjs";import{default as z}from"./packem_shared/resolveFileUrlPlugin-BkpjVHeK.mjs";import{getShebang as F,makeExecutable as N,removeShebangPlugin as T,shebangPlugin as V}from"./packem_shared/makeExecutable-6aOVHoJR.mjs";import{sourcemapsPlugin as B}from"./packem_shared/sourcemapsPlugin-B4W3J79w.mjs";import{urlPlugin as H}from"./packem_shared/urlPlugin-Bm2IE00y.mjs";import{default as K}from"./packem_shared/createSplitChunks-CGDk55G3.mjs";import{default as Q}from"./packem_shared/getCustomModuleLayer-d8i66lfh.mjs";import{default as X}from"./packem_shared/getModuleLayer-rF9RxnJ5.mjs";import{default as Z}from"@rollup/plugin-alias";import{default as $}from"@rollup/plugin-commonjs";import{default as re}from"@rollup/plugin-dynamic-import-vars";import{default as te}from"@rollup/plugin-inject";import{default as le}from"@rollup/plugin-node-resolve";import{default as se}from"@rollup/plugin-replace";import{default as me}from"@rollup/plugin-wasm";import{default as ie}from"rollup-plugin-polyfill-node";import{PluginPure as ne}from"rollup-plugin-pure";import{default as ge}from"rollup-plugin-visualizer";export{Z as alias,p as browserslistToEsbuild,w as cachingPlugin,o as chunkSplitter,a as cjsInteropPlugin,$ as commonjs,f as copyPlugin,K as createSplitChunks,u as dataUriPlugin,re as dynamicImportVars,x as esmShimCjsSyntaxPlugin,d as fixDtsDefaultCjsExportsPlugin,P as fixDynamicImportExtension,Q as getCustomModuleLayer,X as getModuleLayer,F as getShebang,te as inject,b as isolatedDeclarationsPlugin,j as jsonPlugin,y as jsxRemoveAttributes,D as licensePlugin,N as makeExecutable,E as metafilePlugin,le as nodeResolve,ie as polyfillNode,L as preserveDirectivesPlugin,ne as pure,R as rawPlugin,T as removeShebangPlugin,se as replace,z as resolveFileUrlPlugin,V as shebangPlugin,B as sourcemapsPlugin,H as urlPlugin,ge as visualizer,me as wasm};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var p=Object.defineProperty;var c=(a,e)=>p(a,"name",{value:e,configurable:!0});import{createFilter as g}from"@rollup/pluginutils";import{readFile as u}from"@visulima/fs";import{svgToCssDataUri as h,svgToTinyDataUri as b}from"@visulima/packem-share";import{R as v}from"./index-Cj1Okk1t.mjs";var x=Object.defineProperty,$=c((a,e)=>x(a,"name",{value:e,configurable:!0}),"l");const F=$((a={})=>{const e=g(a.include??[/\?data-uri/],a.exclude);return{async load(s){if(!e(s)||!s.includes("?data-uri"))return;const i=new URL(s,"file://"),t=i.pathname,f=i.searchParams.get("encoding")||"tiny",l=i.searchParams.has("srcset")||a.srcset;this.addWatchFile(t);const r=v.getType(t)||"application/octet-stream";if(r==="image/svg+xml"){const n=await u(t,{buffer:!1}),o=f==="css"?h(n):b(n);return`export default "${l?o.replaceAll(" ","%20"):o}"`}const d=await u(t,{buffer:!0}),m=Buffer.from(d).toString("base64");return`export default "${`${r.startsWith("text/")?`data:${r};charset=utf-8;base64,`:`data:${r};base64,`}${m}`}"`},name:"packem:data-uri"}},"dataUriPlugin");export{F as dataUriPlugin,F as default};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visulima/packem-rollup",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.11",
|
|
4
4
|
"description": "Rollup plugins for packem",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"visulima",
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"@visulima/find-cache-dir": "1.0.31",
|
|
79
79
|
"@visulima/fs": "3.1.5",
|
|
80
80
|
"@visulima/package": "3.5.8",
|
|
81
|
-
"@visulima/packem-share": "1.0.0-alpha.
|
|
81
|
+
"@visulima/packem-share": "1.0.0-alpha.8",
|
|
82
82
|
"@visulima/path": "1.4.0",
|
|
83
83
|
"@visulima/source-map": "1.0.20",
|
|
84
84
|
"es-module-lexer": "1.7.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var f=Object.defineProperty;var o=(e,a)=>f(e,"name",{value:a,configurable:!0});import{createFilter as m}from"@rollup/pluginutils";import{readFile as n}from"@visulima/fs";import{R as g}from"./index-Cj1Okk1t.mjs";var h=Object.defineProperty,r=o((e,a)=>h(e,"name",{value:a,configurable:!0}),"e");const l={quotes:/"/g,urlHexPairs:/%[\dA-F]{2}/g,whitespace:/\s+/g},x=r(e=>{switch(e){case"%2F":return"/";case"%3A":return":";case"%3D":return"=";case"%20":return" ";default:return e.toLowerCase()}},"specialHexEncode"),$=r(e=>e.trim().replaceAll(l.whitespace," "),"collapseWhitespace"),F=r(e=>encodeURIComponent(e).replaceAll(l.urlHexPairs,x),"dataUriPayload"),b=r(e=>e.replaceAll(/<!--[\s\S]*?-->/g,""),"stripSvgComments"),u=r(e=>{const a=e.startsWith("\uFEFF")?e.slice(1):e,s=b(a),t=$(s).replaceAll(l.quotes,"'");return`data:image/svg+xml,${F(t)}`},"svgToTinyDataUri"),y=r((e={})=>{const a=m(e.include??[/\?data-uri$/],e.exclude);return{async load(s){if(!a(s)||!s.endsWith("?data-uri"))return;const t=s.replace(/\?data-uri$/,"");this.addWatchFile(t);const i=g.getType(t)||"application/octet-stream";if(i==="image/svg+xml"){const c=await n(t,{buffer:!1});return`export default "${e.srcset?u(c).replaceAll(" ","%20"):u(c)}"`}const d=await n(t,{buffer:!0}),p=Buffer.from(d).toString("base64");return`export default "${`${i.startsWith("text/")?`data:${i};charset=utf-8;base64,`:`data:${i};base64,`}${p}`}"`},name:"packem:data-uri"}},"dataUriPlugin");export{y as dataUriPlugin,y as default};
|