@visulima/packem-rollup 1.0.0-alpha.31 → 1.0.0-alpha.32

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,13 @@
1
+ ## @visulima/packem-rollup [1.0.0-alpha.32](https://github.com/visulima/packem/compare/@visulima/packem-rollup@1.0.0-alpha.31...@visulima/packem-rollup@1.0.0-alpha.32) (2025-12-09)
2
+
3
+ ### Bug Fixes
4
+
5
+ * update pnpm-lock.yaml and example files for consistency ([d11dd48](https://github.com/visulima/packem/commit/d11dd4868a3cb5265035897148f81dca3b33f359))
6
+
7
+ ### Miscellaneous Chores
8
+
9
+ * update package versions and add tests for debarrel plugin ([cb4cc0a](https://github.com/visulima/packem/commit/cb4cc0ae0716f93436a875d44aed392f0592195a))
10
+
1
11
  ## @visulima/packem-rollup [1.0.0-alpha.31](https://github.com/visulima/packem/compare/@visulima/packem-rollup@1.0.0-alpha.30...@visulima/packem-rollup@1.0.0-alpha.31) (2025-12-09)
2
12
 
3
13
  ### Features
@@ -1,2 +1,2 @@
1
- var F=Object.defineProperty;var $=(e,t)=>F(e,"name",{value:t,configurable:!0});import I from"node:fs/promises";import{createFilter as j}from"@rollup/pluginutils";import M from"magic-string";import*as B from"rs-module-lexer";var E=Object.defineProperty,d=$((e,t)=>E(e,"name",{value:t,configurable:!0}),"u");const A=/\.[mc]?tsx?(?:\?.*)?$/,D=/(?:\.(?:[tj]s|[tj]sx)|\/index\.(?:[tj]s|[tj]sx))(?:\?.*)?$/,O=/^\s*export/,_={exports:[],facade:!1,imports:[]},y=d(e=>A.test(e),"isSourceFile"),b=d(e=>e.includes("/build/cache/vite/")||e.includes("/node_modules/"),"isIgnoredModule"),k=d((e,t)=>b(e)?!1:D.test(e)?!0:t.possibleBarrelFiles?t.possibleBarrelFiles.some(s=>e.match(s)):!1,"isPossibleBarrelSpecifier"),N=d(e=>O.test(e)?"export":"import","getDeclarationKind"),{parseAsync:z}=B,C=d(async(e,t,s)=>{try{const{output:r}=await z({input:[{code:t,filename:e}]});return r[0]}catch(r){return s.warn({message:`Failed to parse ${e}:
2
- ${r instanceof Error?r.message:String(r)}`,prefix:"plugin:debarrel"}),_}},"safeParse"),K=d(async(e,t,s,r)=>{const a=e.parseCache.get(t);if(a!==void 0)return a;const o=await C(t,s,r);return e.parseCache.set(t,o),o},"parsePotentialBarrelFile"),R=d((e,t)=>{const s=e.fileCache.get(t);if(s!==void 0)return s;const r=I.readFile(t,"utf8");return e.fileCache.set(t,r),r},"readFileCached"),P=d(e=>{const t=/^(?:import|export)\s+([\w$]+)/,s=/([\w$]+)\s*,\s*\{|\}\s*,\s*([\w$]+)/,r=/[{,]\s*(type\s+)?([\w$]+)(?:\s+as\s+([\w$]+))?/gi;r.lastIndex=0;const a=[];if(e.includes("*"))return a;if(!e.includes("{")){const i=e.match(t);return i&&a.push({imported:"default",local:i[1]}),a}const o=e.match(s);o&&a.push({imported:"default",local:o[1]||o[2]});let n;for(;n=r.exec(e);)n[1]||n[2]&&a.push({imported:n[2],local:n[3]});return a},"getImportNames"),T=d((e,t,s)=>{let r=e.ln,a=t.find(o=>o.ss<e.s&&o.se>e.e&&o.d===-1);if(!a||!a.n){const o=r||s.slice(e.s).match(/default\s+([a-zA-Z_$][\w$]*)(?:;|\n|$)/)?.[1];o&&(a=t.find(n=>{const i=P(s.slice(n.ss,n.s)).find(c=>c.local===o);return i&&(r=i.imported),i}))}if(a&&!r){const o=s.slice(a.ss,e.s);if(!o.includes("*")){const n=o.match(/([\w$]+)\s*as\s*$/)?.[1];n&&(r=n)}}return{imp:a,localExportName:r}},"findMatchingImport"),v=d(async(e,t,s,r,a)=>{const{resolve:o}=e,n=await R(e,t),{exports:i,imports:c}=await K(e,t,n,a);for await(const l of i){const p=l.n;if(p!==s)continue;const u=T(l,c,n),{imp:f,localExportName:w}=u;if(!f||!f.n)return{exportName:s,id:t,resolved:!0};if(f.d>-1)return{exportName:s,id:t,resolved:!0};let h;const g=n.slice(f.ss,l.s);if(N(g)==="import"&&/\bas\b/.test(g)){const S=new RegExp(String.raw`(\w+)\s+as\s+${s}(?!\w)`);h=g.match(S)?.[0]}const x=(await o(f.n,t))?.id;return x?k(x,r)?v(e,x,w||p,r,a):{aliasedImportName:h,exportName:w||s,id:x,resolved:!1}:{aliasedImportName:h,exportName:w,id:t,resolved:!1}}const m=c.filter(l=>/^export\s+\*(?!\s+as)/.test(n.slice(l.ss,l.s)));if(m.length===1){const l=m[0]?.n,p=l?(await e.resolve(l,t))?.id:void 0;if(!p)return{exportName:s,id:t,resolved:!1};const u=await v(e,p,s,r);if(u.resolved)return u}else if(m.length>1){const l=(await Promise.all(m.map(async p=>{const u=p.n,f=u?(await e.resolve(u,t))?.id:void 0;if(f)return v(e,f,s,r)}))).find(p=>p?.resolved);if(l)return l}return{exportName:s,id:t,resolved:!1}},"resolveThroughBarrel"),J=d((e,t,s)=>{const{aliasedImportName:r,exportName:a}=e,o=t.local||t.imported;return r?`{${r}}`:a==="default"&&s!=="export"?o:`{${a!==o?`${a} as ${o}`:a}}`},"getDeclarationClause"),L=d(async(e,t,s,r,a)=>{const o=[],{imports:n}=await C(t,s,a);return await Promise.all(n.map(async i=>{if(!i.n||i.d!==-1)return;const c=s.slice(i.ss,i.s),m=P(c);if(m.length===0)return;const l=(await e.resolve(i.n,t))?.id;if(!l||!y(l)||b(l))return;const p=N(c);try{const u=await Promise.all(m.map(async f=>{const w=await v(e,l,f.imported,r);if(!w)return;const h=J(w,f,p),g=JSON.stringify(w.id);return`${p} ${h} from ${g}`}));if(u.includes(void 0))return;o.push([i.ss,i.se,u.join(";")])}catch(u){a.warn({context:{error:u},message:u.toString(),prefix:"plugin:debarrel"})}})),o},"getDebarrelModifications"),X=d((e,t,s,r)=>{if(s.length===0)return;const a=new M(t,{filename:e});for(const[o,n,i]of s)a.update(o,n,i);return{code:a.toString(),map:r?a.generateMap({file:e}):void 0}},"applyModifications"),Q=d((e,t)=>{const s=new Map,r=new Map,a=d(()=>{s.clear(),r.clear()},"purgeCaches"),o=e.include?j(e.include,[]):void 0;let n=!0;return{buildEnd:a,buildStart:a,async load(i){const c=s.get(i);if(c)return await c},name:"packem:debarrel",options(i){(i.output&&(Array.isArray(i.output)?i.output[0]?.sourcemap:i.output?.sourcemap))===!1&&(n=!1)},async transform(i,c){if(!y(c)||o&&!o(c))return;const m={fileCache:s,parseCache:r,resolve:this.resolve.bind(this)},l=await L(m,c,i,e,t);return X(c,i,l,n)},watchChange(i){s.delete(i),r.delete(i)}}},"debarrelPlugin");export{Q as debarrelPlugin};
1
+ var I=Object.defineProperty;var $=(e,t)=>I(e,"name",{value:t,configurable:!0});import j from"node:fs/promises";import{createFilter as M}from"@rollup/pluginutils";import B from"magic-string";import*as E from"rs-module-lexer";var A=Object.defineProperty,d=$((e,t)=>A(e,"name",{value:t,configurable:!0}),"c");const D=/\.[mc]?tsx?(?:\?.*)?$/,O=/(?:\.(?:[tj]s|[tj]sx)|\/index\.(?:[tj]s|[tj]sx))(?:\?.*)?$/,k=/^\s*export/,z={exports:[],facade:!1,imports:[]},b=d(e=>D.test(e),"isSourceFile"),y=d(e=>e.includes("/build/cache/vite/")||e.includes("/node_modules/"),"isIgnoredModule"),K=d((e,t)=>y(e)?!1:O.test(e)?!0:t.possibleBarrelFiles?t.possibleBarrelFiles.some(s=>e.match(s)):!1,"isPossibleBarrelSpecifier"),N=d(e=>k.test(e)?"export":"import","getDeclarationKind"),{parseAsync:R}=E,C=d(async(e,t,s)=>{try{const{output:r}=await R({input:[{code:t,filename:e}]});return r[0]}catch(r){return s.debug({message:`Failed to parse ${e}:
2
+ ${r instanceof Error?r.message:String(r)}`,prefix:"plugin:debarrel"}),z}},"safeParse"),T=d(async(e,t,s,r)=>{const a=e.parseCache.get(t);if(a!==void 0)return a;const i=await C(t,s,r);return e.parseCache.set(t,i),i},"parsePotentialBarrelFile"),P=d((e,t)=>{const s=e.fileCache.get(t);if(s!==void 0)return s;const r=j.readFile(t,"utf8");return e.fileCache.set(t,r),r},"readFileCached"),S=d(e=>{const t=/^(?:import|export)\s+([\w$]+)/,s=/([\w$]+)\s*,\s*\{|\}\s*,\s*([\w$]+)/,r=/[{,]\s*(type\s+)?([\w$]+)(?:\s+as\s+([\w$]+))?/gi;r.lastIndex=0;const a=[];if(e.includes("*"))return a;if(!e.includes("{")){const n=e.match(t);return n&&a.push({imported:"default",local:n[1]}),a}const i=e.match(s);i&&a.push({imported:"default",local:i[1]||i[2]});let o;for(;o=r.exec(e);)o[1]||o[2]&&a.push({imported:o[2],local:o[3]});return a},"getImportNames"),_=d((e,t,s)=>{let r=e.ln,a=t.find(i=>i.ss<e.s&&i.se>e.e&&i.d===-1);if(!a||!a.n){const i=r||s.slice(e.s).match(/default\s+([a-zA-Z_$][\w$]*)(?:;|\n|$)/)?.[1];i&&(a=t.find(o=>{const n=S(s.slice(o.ss,o.s)).find(l=>l.local===i);return n&&(r=n.imported),n}))}if(a&&!r){const i=s.slice(a.ss,e.s);if(!i.includes("*")){const o=i.match(/([\w$]+)\s*as\s*$/)?.[1];o&&(r=o)}}return{imp:a,localExportName:r}},"findMatchingImport"),v=d(async(e,t,s,r,a)=>{const{resolve:i}=e,o=await P(e,t),{exports:n,imports:l}=await T(e,t,o,a);for await(const c of n){const u=c.n;if(u!==s)continue;const f=_(c,l,o),{imp:p,localExportName:h}=f;if(!p||!p.n)return{exportName:s,id:t,resolved:!0};if(p.d>-1)return{exportName:s,id:t,resolved:!0};let g;const x=o.slice(p.ss,c.s);if(N(x)==="import"&&/\bas\b/.test(x)){const F=new RegExp(String.raw`(\w+)\s+as\s+${s}(?!\w)`);g=x.match(F)?.[0]}const w=(await i(p.n,t))?.id;return w?K(w,r)?v(e,w,h||u,r,a):{aliasedImportName:g,exportName:h||s,id:w,resolved:!1}:{aliasedImportName:g,exportName:h,id:t,resolved:!1}}const m=l.filter(c=>/^export\s+\*(?!\s+as)/.test(o.slice(c.ss,c.s)));if(m.length===1){const c=m[0]?.n,u=c?(await e.resolve(c,t))?.id:void 0;if(!u)return{exportName:s,id:t,resolved:!1};const f=await v(e,u,s,r);if(f.resolved)return f}else if(m.length>1){const c=(await Promise.all(m.map(async u=>{const f=u.n,p=f?(await e.resolve(f,t))?.id:void 0;if(p)return v(e,p,s,r)}))).find(u=>u?.resolved);if(c)return c}return{exportName:s,id:t,resolved:!1}},"resolveThroughBarrel"),J=d((e,t,s)=>{const{aliasedImportName:r,exportName:a}=e,i=t.local||t.imported;return r?`{${r}}`:a==="default"&&s!=="export"?i:`{${a!==i?`${a} as ${i}`:a}}`},"getDeclarationClause"),L=d(async(e,t,s,r,a)=>{const i=[],o=await P(e,t),{imports:n}=await C(t,o,a);return await Promise.all(n.map(async l=>{if(!l.n||l.d!==-1)return;const m=o.slice(l.ss,l.s),c=S(m);if(c.length===0)return;const u=(await e.resolve(l.n,t))?.id;if(!u||!b(u)||y(u))return;const f=N(m);try{const p=await Promise.all(c.map(async h=>{const g=await v(e,u,h.imported,r);if(!g)return;const x=J(g,h,f),w=JSON.stringify(g.id);return`${f} ${x} from ${w}`}));if(p.includes(void 0))return;i.push([l.ss,l.se,p.join(";")])}catch(p){a.warn({context:{error:p},message:p.toString(),prefix:"plugin:debarrel"})}})),i},"getDebarrelModifications"),X=d((e,t,s,r)=>{if(s.length===0)return;const a=new B(t,{filename:e});for(const[i,o,n]of s)a.update(i,o,n);return{code:a.toString(),map:r?a.generateMap({file:e}):void 0}},"applyModifications"),Q=d((e,t)=>{const s=new Map,r=new Map,a=d(()=>{s.clear(),r.clear()},"purgeCaches"),i=e.include?M(e.include,[]):void 0;let o=!0;return{buildEnd:a,buildStart:a,async load(n){const l=s.get(n);if(l)return await l},name:"packem:debarrel",options(n){(n.output&&(Array.isArray(n.output)?n.output[0]?.sourcemap:n.output?.sourcemap))===!1&&(o=!1)},async transform(n,l){if(!b(l)||i&&!i(l))return;const m={fileCache:s,parseCache:r,resolve:this.resolve.bind(this)},c=await L(m,l,n,e,t);return X(l,n,c,o)},watchChange(n){s.delete(n),r.delete(n)}}},"debarrelPlugin");export{Q as debarrelPlugin};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visulima/packem-rollup",
3
- "version": "1.0.0-alpha.31",
3
+ "version": "1.0.0-alpha.32",
4
4
  "description": "Rollup plugins for packem",
5
5
  "keywords": [
6
6
  "visulima",