@visulima/packem 1.0.0-alpha.53 → 1.0.0-alpha.54

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,9 @@
1
+ ## @visulima/packem [1.0.0-alpha.54](https://github.com/visulima/packem/compare/@visulima/packem@1.0.0-alpha.53...@visulima/packem@1.0.0-alpha.54) (2024-07-19)
2
+
3
+ ### Bug Fixes
4
+
5
+ * fixed some tests, allowed to have typescript optional ([0b72a91](https://github.com/visulima/packem/commit/0b72a91809e1a0a2082cf79675c413db5c65be1b))
6
+
1
7
  ## @visulima/packem [1.0.0-alpha.53](https://github.com/visulima/packem/compare/@visulima/packem@1.0.0-alpha.52...@visulima/packem@1.0.0-alpha.53) (2024-07-18)
2
8
 
3
9
  ### Features
package/dist/cli.mjs CHANGED
@@ -7,7 +7,7 @@ import __cjs_mod__ from "node:module";
7
7
  const __filename = __cjs_url__.fileURLToPath(import.meta.url);
8
8
  const __dirname = __cjs_path__.dirname(__filename);
9
9
  const require = __cjs_mod__.createRequire(import.meta.url);
10
- const jo="@visulima/packem",ko="1.0.0-alpha.52",F=[...Yt.extensions,".cjs",".ts",".cts",".mts",".tsx",".jsx"],xo=["development","production"],Ge=["react-server","react-native","edge-light"];[...xo,...Ge];const G=/node_modules/;var Eo=Object.defineProperty,q=m((e,t)=>Eo(e,"name",{value:t,configurable:!0}),"i$d");const pe=/^#![^\n]*/,te=q(async e=>{await Ct(e,493).catch(()=>{})},"makeExecutable"),Oo=q((e,t=`#!/usr/bin/env node
10
+ const jo="@visulima/packem",ko="1.0.0-alpha.53",F=[...Yt.extensions,".cjs",".ts",".cts",".mts",".tsx",".jsx"],xo=["development","production"],Ge=["react-server","react-native","edge-light"];[...xo,...Ge];const G=/node_modules/;var Eo=Object.defineProperty,q=m((e,t)=>Eo(e,"name",{value:t,configurable:!0}),"i$d");const pe=/^#![^\n]*/,te=q(async e=>{await Ct(e,493).catch(()=>{})},"makeExecutable"),Oo=q((e,t=`#!/usr/bin/env node
11
11
  `)=>({name:"packem:shebang",renderChunk:{handler(o,n,r){if(!n.isEntry||!n.facadeModuleId||o.startsWith("#")&&o[1]==="!")return null;if(e.includes(n.name)){const s=new P(o);return s.prepend(t),{code:s.toString(),map:r.sourcemap?s.generateMap({hires:!0}):void 0}}return null},order:"post"},async writeBundle(o,n){for(const[r,s]of Object.entries(n))if(s.type==="chunk"&&pe.test(s.code)&&o.dir){const i=h(o.dir,r);await te(i)}}}),"shebangPlugin"),Do=q(()=>({name:"packem:remove-shebang",renderChunk(e){return e.replace(pe,"")}}),"removeShebangPlugin"),So=q((e,t=`
12
12
  `)=>{const o=pe.exec(e);return o?o+t:""},"getShebang");var No=Object.defineProperty,Po=m((e,t)=>No(e,"name",{value:t,configurable:!0}),"p$4");const ue=Po((e,t)=>{let o={};if(e.pkg.name&&(o[e.pkg.name]=e.options.rootDir),e.pkg.imports){const{imports:n}=e.pkg;for(const r in n){if(r.startsWith("#"))continue;const s=n[r];typeof s=="string"&&(o[r]=b(e.options.rootDir,s))}}return o={...o,...e.options.alias},e.options.rollup.alias&&(Array.isArray(e.options.rollup.alias.entries)?Object.assign(o,Object.fromEntries(e.options.rollup.alias.entries.map(n=>[n.find,n.replacement]))):Object.assign(o,e.options.rollup.alias.entries??e.options.rollup.alias)),e.logger.debug({message:"Resolved aliases: "+JSON.stringify(o),prefix:t}),o},"resolveAliases");var _o=Object.defineProperty,Co=m((e,t)=>_o(e,"name",{value:t,configurable:!0}),"o$3");const Mo=Co((e,t)=>{const o=Ue(t,{esmResolve:!0,interopDefault:!0});try{return o.resolve(e)}catch(n){if(n.code!=="MODULE_NOT_FOUND")throw new Error(`Error trying import ${e} from ${t}`,{cause:n});return e}},"tryResolve");var Io=Object.defineProperty,Fo=m((e,t)=>Io(e,"name",{value:t,configurable:!0}),"r$a");const B=Fo((e,t)=>{e.warnings.has(t)||e.warnings.add(t)},"warn");var Ro=Object.defineProperty,To=m((e,t)=>Ro(e,"name",{value:t,configurable:!0}),"u$a");const Ao=To(async e=>{const t=await Zt("jiti",{url:import.meta.url}),o=JSON.stringify({...e.options.stubOptions.jiti,alias:{...ue(e,"jit"),...e.options.stubOptions.jiti.alias}},null,2);for(const n of e.options.entries){const r=h(e.options.rootDir,e.options.outDir,n.name),s=ie(Mo(n.input,e.options.rootDir)||n.input),i=s.slice(0,Math.max(0,s.length-ae(s).length)),a=await ne(s),l=So(a);e.options.emitCJS&&await W(`${r}.cjs`,l+[`const jiti = require(${JSON.stringify(t)})`,"",`const _jiti = jiti(null, ${o})`,"",`/** @type {import(${JSON.stringify(i)})} */`,`module.exports = _jiti(${JSON.stringify(s)})`].join(`
13
13
  `));let c=[];try{c=await Qt(s,{extensions:F})}catch(u){B(e,`Cannot analyze ${s} for exports: ${u.toString()}`);return}const p=c.includes("default")||c.length===0;await W(`${r}.mjs`,l+[`import jiti from ${JSON.stringify(Kt(t).href)};`,"",`const _jiti = jiti(null, ${o})`,"",`/** @type {import(${JSON.stringify(s)})} */`,`const _module = await _jiti.import(${JSON.stringify(s)});`,p?`
@@ -86,7 +86,7 @@ The published ${g} artifact additionally contains code with the following licens
86
86
  ${u.join(", ")}
87
87
 
88
88
  # Bundled types:
89
- `+d,"dtsTemplate")},patchTypes:{},polyfillNode:{},preserveDynamicImports:!0,raw:{exclude:G,include:["**/*.data","**/*.txt"]},replace:{objectGuards:!0,preventAssignment:!0},resolve:{allowExportsFolderMapping:!1,preferBuiltins:!1},shim:!0,sucrase:{disableESTransforms:!0,enableLegacyBabel5ModuleInterop:!1,enableLegacyTypeScriptModuleInterop:l?.config.compilerOptions?.esModuleInterop===!1,include:/\.[jt]sx?$/,injectCreateRequireForImportRequire:!1,preserveDynamicImport:!0,production:E.NODE_ENV==="production",...l?.config.compilerOptions?.jsx&&["react","react-jsx","react-jsxdev"].includes(l.config.compilerOptions.jsx)?{jsxFragmentPragma:l.config.compilerOptions.jsxFragmentFactory,jsxImportSource:l.config.compilerOptions.jsxImportSource,jsxPragma:l.config.compilerOptions.jsxFactory,jsxRuntime:c,transforms:["typescript","jsx",...l.config.compilerOptions.esModuleInterop?["imports"]:[]]}:{transforms:["typescript",...l?.config.compilerOptions?.esModuleInterop?["imports"]:[]]}},swc:{include:/\.[jt]sx?$/,inlineSourcesContent:!1,inputSourceMap:!1,isModule:!0,jsc:{experimental:{keepImportAttributes:!0},externalHelpers:!1,keepClassNames:!0,loose:!0,parser:{decorators:l?.config.compilerOptions?.experimentalDecorators,syntax:l?"typescript":"ecmascript",[l?"tsx":"jsx"]:!0},target:l?.config.compilerOptions?.target?.toLowerCase(),transform:{decoratorMetadata:l?.config.compilerOptions?.emitDecoratorMetadata,legacyDecorator:l?.config.compilerOptions?.experimentalDecorators,react:{development:E.NODE_ENV!=="production",pragma:l?.config.compilerOptions?.jsxFactory,pragmaFrag:l?.config.compilerOptions?.jsxFragmentFactory,runtime:c,throwIfNamespace:!0},treatConstEnumAsEnum:l?.config.compilerOptions?.preserveConstEnums,useDefineForClassFields:l?.config.compilerOptions?.useDefineForClassFields}},module:{ignoreDynamic:!0,importInterop:"none",preserveImportMeta:!0,strict:!1,strictMode:!1,type:"es6"},transform:{decoratorVersion:"2022-03"}},treeshake:{moduleSideEffects:Jn(t,a),preset:"recommended"},watch:{chokidar:{ignoreInitial:!0,ignorePermissionErrors:!0},clearScreen:!0,exclude:G}},rootDir:t,sourceDir:"src",sourcemap:!1,stub:o==="jit",stubOptions:{jiti:{alias:{},esmResolve:!0,interopDefault:!0}},transformerName:void 0});if(!p.transformerName){const u=new Map([...Object.entries(a.dependencies??{}),...Object.entries(a.devDependencies??{})]);let d="0.0.0";if(u.has("esbuild"))p.transformerName="esbuild",d=u.get("esbuild");else if(u.has("@swc/core"))p.transformerName="swc",d=u.get("@swc/core");else if(u.has("sucrase"))p.transformerName="sucrase",d=u.get("sucrase");else throw new Error("Unknown transformer, check your transformer options or install one of the supported transformers: esbuild, swc, sucrase");e.info("Using "+v("rollup ")+Gt),e.info({message:"Using "+v(p.transformerName)+" "+d,prefix:"transformer"})}return p.rollup.resolve&&p.rollup.resolve.preferBuiltins===!0&&(p.rollup.polyfillNode=!1,e.debug("Disabling polyfillNode because preferBuiltins is set to true")),l?.config.compilerOptions?.isolatedModules||e.warn(`'compilerOptions.isolatedModules' is not enabled in tsconfig.
89
+ `+d,"dtsTemplate")},patchTypes:{},polyfillNode:{},preserveDynamicImports:!0,raw:{exclude:G,include:["**/*.data","**/*.txt"]},replace:{objectGuards:!0,preventAssignment:!0},resolve:{allowExportsFolderMapping:!1,preferBuiltins:!1},shim:!0,sucrase:{disableESTransforms:!0,enableLegacyBabel5ModuleInterop:!1,enableLegacyTypeScriptModuleInterop:l?.config.compilerOptions?.esModuleInterop===!1,include:/\.[jt]sx?$/,injectCreateRequireForImportRequire:!1,preserveDynamicImport:!0,production:E.NODE_ENV==="production",...l?.config.compilerOptions?.jsx&&["react","react-jsx","react-jsxdev"].includes(l.config.compilerOptions.jsx)?{jsxFragmentPragma:l.config.compilerOptions.jsxFragmentFactory,jsxImportSource:l.config.compilerOptions.jsxImportSource,jsxPragma:l.config.compilerOptions.jsxFactory,jsxRuntime:c,transforms:["typescript","jsx",...l.config.compilerOptions.esModuleInterop?["imports"]:[]]}:{transforms:["typescript",...l?.config.compilerOptions?.esModuleInterop?["imports"]:[]]}},swc:{include:/\.[jt]sx?$/,inlineSourcesContent:!1,inputSourceMap:!1,isModule:!0,jsc:{experimental:{keepImportAttributes:!0},externalHelpers:!1,keepClassNames:!0,loose:!0,parser:{decorators:l?.config.compilerOptions?.experimentalDecorators,syntax:l?"typescript":"ecmascript",[l?"tsx":"jsx"]:!0},target:l?.config.compilerOptions?.target?.toLowerCase(),transform:{decoratorMetadata:l?.config.compilerOptions?.emitDecoratorMetadata,legacyDecorator:l?.config.compilerOptions?.experimentalDecorators,react:{development:E.NODE_ENV!=="production",pragma:l?.config.compilerOptions?.jsxFactory,pragmaFrag:l?.config.compilerOptions?.jsxFragmentFactory,runtime:c,throwIfNamespace:!0},treatConstEnumAsEnum:l?.config.compilerOptions?.preserveConstEnums,useDefineForClassFields:l?.config.compilerOptions?.useDefineForClassFields}},module:{ignoreDynamic:!0,importInterop:"none",preserveImportMeta:!0,strict:!1,strictMode:!1,type:"es6"},transform:{decoratorVersion:"2022-03"}},treeshake:{moduleSideEffects:Jn(t,a),preset:"recommended"},watch:{chokidar:{ignoreInitial:!0,ignorePermissionErrors:!0},clearScreen:!0,exclude:G}},rootDir:t,sourceDir:"src",sourcemap:!1,stub:o==="jit",stubOptions:{jiti:{alias:{},esmResolve:!0,interopDefault:!0}},transformerName:void 0});if(!p.transformerName){const u=new Map([...Object.entries(a.dependencies??{}),...Object.entries(a.devDependencies??{})]);let d="0.0.0";if(u.has("esbuild"))p.transformerName="esbuild",d=u.get("esbuild");else if(u.has("@swc/core"))p.transformerName="swc",d=u.get("@swc/core");else if(u.has("sucrase"))p.transformerName="sucrase",d=u.get("sucrase");else throw new Error("Unknown transformer, check your transformer options or install one of the supported transformers: esbuild, swc, sucrase");e.info("Using "+v("rollup ")+Gt),e.info({message:"Using "+v(p.transformerName)+" "+d,prefix:"transformer"})}return p.rollup.resolve&&p.rollup.resolve.preferBuiltins===!0&&(p.rollup.polyfillNode=!1,e.debug("Disabling polyfillNode because preferBuiltins is set to true")),a.devDependencies?.typescript&&!l?.config.compilerOptions?.isolatedModules&&e.warn(`'compilerOptions.isolatedModules' is not enabled in tsconfig.
90
90
  Because none of the third-party transpiler, packem uses under the hood is type-aware, some techniques or features often used in TypeScript are not properly checked and can cause mis-compilation or even runtime errors.
91
91
  To mitigate this, you should set the isolatedModules option to true in tsconfig and let your IDE warn you when such incompatible constructs are used.`),p.dependencies=Object.keys(a.dependencies??{}),p.peerDependencies=Object.keys(a.peerDependencies??{}),p.devDependencies=Object.keys(a.devDependencies??{}),p.optionalDependencies=Object.keys(a.optionalDependencies??{}),p.externals.push(...p.dependencies,...p.peerDependencies,...p.optionalDependencies),p},"generateOptions"),os=k(e=>e.replace(/\.(?:js|mjs|cjs|ts|mts|cts|json|jsx|tsx)$/,""),"removeExtension"),rs=k(async(e,t)=>{e.options.entries=e.options.entries.map(o=>typeof o=="string"?{input:o}:o);for await(const o of e.options.entries){if(typeof o.name!="string"){let n=We(o.input)?D(t,o.input):ie(o.input);n.startsWith("./")&&(n=n.slice(2)),o.name=os(n.replace(/^src\//,""))}if(!o.input)throw new Error(`Missing entry input: ${kt(o)}`);if(o.input=h(e.options.rootDir,o.input),!O(o.input)){const n=new Set(await Mt(le(o.input)));let r=!1;for(const s of F)if(n.has(V(o.input)+s)){r=!0;break}if(!r)throw new Lt("Your configured entry: "+v(o.input)+" does not exist.")}o.outDir=h(e.options.rootDir,o.outDir??e.options.outDir)}},"prepareEntries"),ns=k((e,t,o)=>{const n=k(s=>D(t.options.rootDir,h(t.options.outDir,s)),"rPath");let r=!1;for(const s of t.buildEntries.filter(i=>!i.chunk)){let i=s.bytes??0;for(const l of s.chunks??[])i+=t.buildEntries.find(c=>c.path===l)?.bytes??0;let a=` ${S(n(s.path))} (${["total size: "+v(_(i)),s.type!=="asset"&&s.bytes&&"chunk size: "+v(_(s.bytes))].filter(Boolean).join(", ")})`;if(a+=s.exports?.length?`
92
92
  exports: `+M(s.exports.join(", ")):"",s.chunks?.length&&(a+=`
@@ -101,7 +101,7 @@ ${s.chunks.map(l=>{const c=t.buildEntries.find(p=>p.path===l)??{};return M("
101
101
  types: `+S(n(p.path))+" (total size: "+v(_(p.bytes??0))+")"}}r=!0,a+=`
102
102
 
103
103
  `,e.raw(s.chunk?M(a):a)}return r&&e.raw("Σ Total dist size (byte size):",v(_(t.buildEntries.reduce((s,i)=>s+(i.bytes??0),0))),`
104
- `),r},"showSizeInformation"),ss=k(async(e,t,o,n,r,s,i,a)=>{const l=tr(s.preset??r.preset??"auto",t),c=ts(e,t,o,n,r,s,l,i,a);Bt(b(c.rootDir,c.outDir));const p={buildEntries:[],dependencyGraphMap:new Map,hooks:qt(),logger:e,mode:o,options:c,pkg:i,tsconfig:a,usedImports:new Set,warnings:new Set};if(l.hooks&&p.hooks.addHooks(l.hooks),r.hooks&&p.hooks.addHooks(r.hooks),s.hooks&&p.hooks.addHooks(s.hooks),await p.hooks.callHook("build:prepare",p),!p.options.emitESM&&!p.options.emitCJS)throw new Error("Both emitESM and emitCJS are disabled. At least one of them must be enabled.");if(p.options.declaration&&a===void 0)throw new Error("Cannot build declaration files without a tsconfig.json");return p.options.emitESM===void 0&&p.logger.info("Emitting ESM bundles, is disabled."),p.options.emitCJS===void 0&&p.logger.info("Emitting CJS bundles, is disabled."),p.options.declaration||p.logger.info("Declaration files, are disabled."),p},"createContext"),is=k(async e=>{const t=[];if(e.options.clean)for(const o of new Set(e.options.entries.map(n=>n.outDir).filter(Boolean).sort()))o===e.options.rootDir||o===e.options.sourceDir||e.options.rootDir.startsWith(o.endsWith("/")?o:`${o}/`)||t.some(n=>o.startsWith(n))||(t.push(o),e.logger.info(`Cleaning dist directory: \`./${D(e.options.rootDir,o)}\``),await Ae(o))},"cleanDistributionDirectories"),as=k(async(e,t,o)=>{await e.hooks.callHook("build:before",e);const n=Un(e.options.entries,"environment","runtime"),r=[];for(const[i,a]of Object.entries(n))for(const[l,c]of Object.entries(a)){e.logger.info("Preparing build for "+v(i)+" environment with "+v(l)+" runtime"),e.options.rollup.replace?(e.options.rollup.replace.values={...e.options.rollup.replace.values,production:i},l==="edge-light"&&(e.options.rollup.replace.values.EdgeRuntime="edge-runtime")):e.logger.warn("'replace' plugin is disabled. You should enable it to replace 'process.env.*' environments.");const p=[],u=[],d=[];for(const f of c)f.cjs&&f.esm?p.push(f):f.cjs?d.push(f):f.esm&&u.push(f);const g=i!=="development"&&e.options.minify;if(p.length>0){const f={...e,options:{...e.options,emitCJS:!0,emitESM:!0,entries:p,minify:g}};r.push(Z(f,o));const $=f.options.entries.filter(w=>w.declaration);e.options.declaration&&$.length>0&&r.push(Q({...f,options:{...f.options,entries:$}},o))}if(u.length>0){const f={...e,options:{...e.options,emitCJS:!1,emitESM:!0,entries:u,minify:g}};r.push(Z(f,o));const $=f.options.entries.filter(w=>w.declaration);e.options.declaration&&$.length>0&&r.push(Q({...f,options:{...f.options,entries:$}},o))}if(d.length>0){const f={...e,options:{...e.options,emitCJS:!1,emitESM:!1,entries:d,minify:g}};r.push(Z(f,o));const $=f.options.entries.filter(w=>w.declaration);e.options.declaration&&$.length>0&&r.push(Q({...f,options:{...f.options,entries:$}},o))}}await Promise.all(r),e.logger.success(Rt(`Build succeeded for ${e.options.name}`));for await(const i of Wt(b(e.options.rootDir,e.options.outDir))){let a=e.buildEntries.find(l=>b(e.options.rootDir,e.options.outDir,l.path)===i.path);if(a||(a={chunk:!0,path:i.path},e.buildEntries.push(a)),!a.bytes){const l=await Re(h(e.options.rootDir,e.options.outDir,i.path));a.bytes=l.size}}const s=ns(e.logger,e,t);qn(e),Zn(t,e),await e.hooks.callHook("build:done",e),Et(e,s)},"build"),ls=k(async(e,t,o,n={})=>{const{configPath:r,debug:s,tsconfigPath:i,...a}=n;o.wrapAll(),e=h(Pt(),e),o.debug("Root directory:",e);const l=b(e,"package.json"),c=Be(l);o.debug("Using package.json found at",l);let p;if(i){const u=b(e,i);if(!await Jt(u))throw new Error("tsconfig.json not found at "+u);p={config:Ut(u),path:u},o.info("Using tsconfig settings at",u)}else try{p=await Vt(e),o.debug("Using tsconfig settings found at",p.path)}catch{o.info("No tsconfig.json or jsconfig.json found.")}try{const u=r??"./packem.config.ts";if(!/\.(?:js|mjs|cjs|ts)$/.test(u))throw new Error("Invalid packem config file extension. Only .js, .mjs, .cjs, .ts extensions are allowed.");const d=Ye(u,e);o.debug("Using packem config found at",b(e,u));const g=Date.now(),f=k(()=>zt(Math.floor(Date.now()-g)),"getDuration"),$=C(JSON.stringify({version:c.version,...c.dependencies,...c.devDependencies,browser:c.browser,eNode:c.engines?.node,exports:c.exports,main:c.main,module:c.module,type:c.type,types:c.types})),w=new An(e,$,o);w.cachePath&&!O(b(w.cachePath,$))&&O(w.cachePath)&&(o.info("Clearing file cache because the cache key has changed."),await Ae(w.cachePath));const y=await ss(o,e,t,s??!1,a,d,c,p);if(w.isEnabled=y.options.fileCache,await rs(y,e),y.logger.info(v((t==="watch"?"Watching":t==="jit"?"Stubbing":"Building")+" "+y.options.name)),y.logger.debug(`${S("Root dir:")} ${y.options.rootDir}
104
+ `),r},"showSizeInformation"),ss=k(async(e,t,o,n,r,s,i,a)=>{const l=tr(s.preset??r.preset??"auto",t),c=ts(e,t,o,n,r,s,l,i,a);Bt(b(c.rootDir,c.outDir));const p={buildEntries:[],dependencyGraphMap:new Map,hooks:qt(),logger:e,mode:o,options:c,pkg:i,tsconfig:a,usedImports:new Set,warnings:new Set};if(l.hooks&&p.hooks.addHooks(l.hooks),r.hooks&&p.hooks.addHooks(r.hooks),s.hooks&&p.hooks.addHooks(s.hooks),await p.hooks.callHook("build:prepare",p),!p.options.emitESM&&!p.options.emitCJS)throw new Error("Both emitESM and emitCJS are disabled. At least one of them must be enabled.");if(p.options.declaration&&a===void 0&&i.devDependencies?.typescript)throw new Error(" Cannot build declaration files without a tsconfig.json");return p.options.emitESM===void 0&&p.logger.info("Emitting ESM bundles, is disabled."),p.options.emitCJS===void 0&&p.logger.info("Emitting CJS bundles, is disabled."),(!p.options.declaration||!i.devDependencies?.typescript)&&p.logger.info("Declaration files, are disabled."),p},"createContext"),is=k(async e=>{const t=[];if(e.options.clean)for(const o of new Set(e.options.entries.map(n=>n.outDir).filter(Boolean).sort()))o===e.options.rootDir||o===e.options.sourceDir||e.options.rootDir.startsWith(o.endsWith("/")?o:`${o}/`)||t.some(n=>o.startsWith(n))||(t.push(o),e.logger.info(`Cleaning dist directory: \`./${D(e.options.rootDir,o)}\``),await Ae(o))},"cleanDistributionDirectories"),as=k(async(e,t,o)=>{await e.hooks.callHook("build:before",e);const n=Un(e.options.entries,"environment","runtime"),r=[];for(const[i,a]of Object.entries(n))for(const[l,c]of Object.entries(a)){e.logger.info("Preparing build for "+v(i)+" environment with "+v(l)+" runtime"),e.options.rollup.replace?(e.options.rollup.replace.values={...e.options.rollup.replace.values,production:i},l==="edge-light"&&(e.options.rollup.replace.values.EdgeRuntime="edge-runtime")):e.logger.warn("'replace' plugin is disabled. You should enable it to replace 'process.env.*' environments.");const p=[],u=[],d=[];for(const f of c)f.cjs&&f.esm?p.push(f):f.cjs?d.push(f):f.esm&&u.push(f);const g=i!=="development"&&e.options.minify;if(p.length>0){const f={...e,options:{...e.options,emitCJS:!0,emitESM:!0,entries:p,minify:g}};r.push(Z(f,o));const $=f.options.entries.filter(w=>w.declaration);e.options.declaration&&$.length>0&&r.push(Q({...f,options:{...f.options,entries:$}},o))}if(u.length>0){const f={...e,options:{...e.options,emitCJS:!1,emitESM:!0,entries:u,minify:g}};r.push(Z(f,o));const $=f.options.entries.filter(w=>w.declaration);e.options.declaration&&$.length>0&&r.push(Q({...f,options:{...f.options,entries:$}},o))}if(d.length>0){const f={...e,options:{...e.options,emitCJS:!1,emitESM:!1,entries:d,minify:g}};r.push(Z(f,o));const $=f.options.entries.filter(w=>w.declaration);e.options.declaration&&$.length>0&&r.push(Q({...f,options:{...f.options,entries:$}},o))}}await Promise.all(r),e.logger.success(Rt(`Build succeeded for ${e.options.name}`));for await(const i of Wt(b(e.options.rootDir,e.options.outDir))){let a=e.buildEntries.find(l=>b(e.options.rootDir,e.options.outDir,l.path)===i.path);if(a||(a={chunk:!0,path:i.path},e.buildEntries.push(a)),!a.bytes){const l=await Re(h(e.options.rootDir,e.options.outDir,i.path));a.bytes=l.size}}const s=ns(e.logger,e,t);qn(e),Zn(t,e),await e.hooks.callHook("build:done",e),Et(e,s)},"build"),ls=k(async(e,t,o,n={})=>{const{configPath:r,debug:s,tsconfigPath:i,...a}=n;o.wrapAll(),e=h(Pt(),e),o.debug("Root directory:",e);const l=b(e,"package.json"),c=Be(l);o.debug("Using package.json found at",l);let p;if(i){const u=b(e,i);if(!await Jt(u))throw new Error("tsconfig.json not found at "+u);p={config:Ut(u),path:u},o.info("Using tsconfig settings at",u)}else if(c.devDependencies?.typescript)try{p=await Vt(e),o.debug("Using tsconfig settings found at",p.path)}catch{o.info("No tsconfig.json or jsconfig.json found.")}try{const u=r??"./packem.config.ts";if(!/\.(?:js|mjs|cjs|ts)$/.test(u))throw new Error("Invalid packem config file extension. Only .js, .mjs, .cjs, .ts extensions are allowed.");const d=Ye(u,e);o.debug("Using packem config found at",b(e,u));const g=Date.now(),f=k(()=>zt(Math.floor(Date.now()-g)),"getDuration"),$=C(JSON.stringify({version:c.version,...c.dependencies,...c.devDependencies,browser:c.browser,eNode:c.engines?.node,exports:c.exports,main:c.main,module:c.module,type:c.type,types:c.types})),w=new An(e,$,o);w.cachePath&&!O(b(w.cachePath,$))&&O(w.cachePath)&&(o.info("Clearing file cache because the cache key has changed."),await Ae(w.cachePath));const y=await ss(o,e,t,s??!1,a,d,c,p);if(w.isEnabled=y.options.fileCache,await rs(y,e),y.logger.info(v((t==="watch"?"Watching":t==="jit"?"Stubbing":"Building")+" "+y.options.name)),y.logger.debug(`${S("Root dir:")} ${y.options.rootDir}
105
105
  ${S("Entries:")}
106
106
  ${y.options.entries.map(R=>` ${kt(R)}`).join(`
107
107
  `)}`),await is(y),y.options.stub){await Ao(y),await y.hooks.callHook("build:done",y);return}if(t==="watch"){if(y.options.rollup.watch===!1)throw new Error("Rollup watch is disabled. You should check your packem.config file.");await Mn(y,w),Et(y,!1);return}await as(y,c,w),o.raw(`
@@ -77,7 +77,7 @@ The published ${y} artifact additionally contains code with the following licens
77
77
  ${u.join(", ")}
78
78
 
79
79
  # Bundled types:
80
- `+d,"dtsTemplate")},patchTypes:{},polyfillNode:{},preserveDynamicImports:!0,raw:{exclude:D.EXCLUDE_REGEXP,include:["**/*.data","**/*.txt"]},replace:{objectGuards:!0,preventAssignment:!0},resolve:{allowExportsFolderMapping:!1,preferBuiltins:!1},shim:!0,sucrase:{disableESTransforms:!0,enableLegacyBabel5ModuleInterop:!1,enableLegacyTypeScriptModuleInterop:l?.config.compilerOptions?.esModuleInterop===!1,include:/\.[jt]sx?$/,injectCreateRequireForImportRequire:!1,preserveDynamicImport:!0,production:x.env.NODE_ENV==="production",...l?.config.compilerOptions?.jsx&&["react","react-jsx","react-jsxdev"].includes(l.config.compilerOptions.jsx)?{jsxFragmentPragma:l.config.compilerOptions.jsxFragmentFactory,jsxImportSource:l.config.compilerOptions.jsxImportSource,jsxPragma:l.config.compilerOptions.jsxFactory,jsxRuntime:c,transforms:["typescript","jsx",...l.config.compilerOptions.esModuleInterop?["imports"]:[]]}:{transforms:["typescript",...l?.config.compilerOptions?.esModuleInterop?["imports"]:[]]}},swc:{include:/\.[jt]sx?$/,inlineSourcesContent:!1,inputSourceMap:!1,isModule:!0,jsc:{experimental:{keepImportAttributes:!0},externalHelpers:!1,keepClassNames:!0,loose:!0,parser:{decorators:l?.config.compilerOptions?.experimentalDecorators,syntax:l?"typescript":"ecmascript",[l?"tsx":"jsx"]:!0},target:l?.config.compilerOptions?.target?.toLowerCase(),transform:{decoratorMetadata:l?.config.compilerOptions?.emitDecoratorMetadata,legacyDecorator:l?.config.compilerOptions?.experimentalDecorators,react:{development:x.env.NODE_ENV!=="production",pragma:l?.config.compilerOptions?.jsxFactory,pragmaFrag:l?.config.compilerOptions?.jsxFragmentFactory,runtime:c,throwIfNamespace:!0},treatConstEnumAsEnum:l?.config.compilerOptions?.preserveConstEnums,useDefineForClassFields:l?.config.compilerOptions?.useDefineForClassFields}},module:{ignoreDynamic:!0,importInterop:"none",preserveImportMeta:!0,strict:!1,strictMode:!1,type:"es6"},transform:{decoratorVersion:"2022-03"}},treeshake:{moduleSideEffects:Qn(t,a),preset:"recommended"},watch:{chokidar:{ignoreInitial:!0,ignorePermissionErrors:!0},clearScreen:!0,exclude:D.EXCLUDE_REGEXP}},rootDir:t,sourceDir:"src",sourcemap:!1,stub:o==="jit",stubOptions:{jiti:{alias:{},esmResolve:!0,interopDefault:!0}},transformerName:void 0});if(!p.transformerName){const u=new Map([...Object.entries(a.dependencies??{}),...Object.entries(a.devDependencies??{})]);let d="0.0.0";if(u.has("esbuild"))p.transformerName="esbuild",d=u.get("esbuild");else if(u.has("@swc/core"))p.transformerName="swc",d=u.get("@swc/core");else if(u.has("sucrase"))p.transformerName="sucrase",d=u.get("sucrase");else throw new Error("Unknown transformer, check your transformer options or install one of the supported transformers: esbuild, swc, sucrase");e.info("Using "+g.cyan("rollup ")+T.VERSION),e.info({message:"Using "+g.cyan(p.transformerName)+" "+d,prefix:"transformer"})}return p.rollup.resolve&&p.rollup.resolve.preferBuiltins===!0&&(p.rollup.polyfillNode=!1,e.debug("Disabling polyfillNode because preferBuiltins is set to true")),l?.config.compilerOptions?.isolatedModules||e.warn(`'compilerOptions.isolatedModules' is not enabled in tsconfig.
80
+ `+d,"dtsTemplate")},patchTypes:{},polyfillNode:{},preserveDynamicImports:!0,raw:{exclude:D.EXCLUDE_REGEXP,include:["**/*.data","**/*.txt"]},replace:{objectGuards:!0,preventAssignment:!0},resolve:{allowExportsFolderMapping:!1,preferBuiltins:!1},shim:!0,sucrase:{disableESTransforms:!0,enableLegacyBabel5ModuleInterop:!1,enableLegacyTypeScriptModuleInterop:l?.config.compilerOptions?.esModuleInterop===!1,include:/\.[jt]sx?$/,injectCreateRequireForImportRequire:!1,preserveDynamicImport:!0,production:x.env.NODE_ENV==="production",...l?.config.compilerOptions?.jsx&&["react","react-jsx","react-jsxdev"].includes(l.config.compilerOptions.jsx)?{jsxFragmentPragma:l.config.compilerOptions.jsxFragmentFactory,jsxImportSource:l.config.compilerOptions.jsxImportSource,jsxPragma:l.config.compilerOptions.jsxFactory,jsxRuntime:c,transforms:["typescript","jsx",...l.config.compilerOptions.esModuleInterop?["imports"]:[]]}:{transforms:["typescript",...l?.config.compilerOptions?.esModuleInterop?["imports"]:[]]}},swc:{include:/\.[jt]sx?$/,inlineSourcesContent:!1,inputSourceMap:!1,isModule:!0,jsc:{experimental:{keepImportAttributes:!0},externalHelpers:!1,keepClassNames:!0,loose:!0,parser:{decorators:l?.config.compilerOptions?.experimentalDecorators,syntax:l?"typescript":"ecmascript",[l?"tsx":"jsx"]:!0},target:l?.config.compilerOptions?.target?.toLowerCase(),transform:{decoratorMetadata:l?.config.compilerOptions?.emitDecoratorMetadata,legacyDecorator:l?.config.compilerOptions?.experimentalDecorators,react:{development:x.env.NODE_ENV!=="production",pragma:l?.config.compilerOptions?.jsxFactory,pragmaFrag:l?.config.compilerOptions?.jsxFragmentFactory,runtime:c,throwIfNamespace:!0},treatConstEnumAsEnum:l?.config.compilerOptions?.preserveConstEnums,useDefineForClassFields:l?.config.compilerOptions?.useDefineForClassFields}},module:{ignoreDynamic:!0,importInterop:"none",preserveImportMeta:!0,strict:!1,strictMode:!1,type:"es6"},transform:{decoratorVersion:"2022-03"}},treeshake:{moduleSideEffects:Qn(t,a),preset:"recommended"},watch:{chokidar:{ignoreInitial:!0,ignorePermissionErrors:!0},clearScreen:!0,exclude:D.EXCLUDE_REGEXP}},rootDir:t,sourceDir:"src",sourcemap:!1,stub:o==="jit",stubOptions:{jiti:{alias:{},esmResolve:!0,interopDefault:!0}},transformerName:void 0});if(!p.transformerName){const u=new Map([...Object.entries(a.dependencies??{}),...Object.entries(a.devDependencies??{})]);let d="0.0.0";if(u.has("esbuild"))p.transformerName="esbuild",d=u.get("esbuild");else if(u.has("@swc/core"))p.transformerName="swc",d=u.get("@swc/core");else if(u.has("sucrase"))p.transformerName="sucrase",d=u.get("sucrase");else throw new Error("Unknown transformer, check your transformer options or install one of the supported transformers: esbuild, swc, sucrase");e.info("Using "+g.cyan("rollup ")+T.VERSION),e.info({message:"Using "+g.cyan(p.transformerName)+" "+d,prefix:"transformer"})}return p.rollup.resolve&&p.rollup.resolve.preferBuiltins===!0&&(p.rollup.polyfillNode=!1,e.debug("Disabling polyfillNode because preferBuiltins is set to true")),a.devDependencies?.typescript&&!l?.config.compilerOptions?.isolatedModules&&e.warn(`'compilerOptions.isolatedModules' is not enabled in tsconfig.
81
81
  Because none of the third-party transpiler, packem uses under the hood is type-aware, some techniques or features often used in TypeScript are not properly checked and can cause mis-compilation or even runtime errors.
82
82
  To mitigate this, you should set the isolatedModules option to true in tsconfig and let your IDE warn you when such incompatible constructs are used.`),p.dependencies=Object.keys(a.dependencies??{}),p.peerDependencies=Object.keys(a.peerDependencies??{}),p.devDependencies=Object.keys(a.devDependencies??{}),p.optionalDependencies=Object.keys(a.optionalDependencies??{}),p.externals.push(...p.dependencies,...p.peerDependencies,...p.optionalDependencies),p},"generateOptions"),mr=k(e=>e.replace(/\.(?:js|mjs|cjs|ts|mts|cts|json|jsx|tsx)$/,""),"removeExtension"),fr=k(async(e,t)=>{e.options.entries=e.options.entries.map(o=>typeof o=="string"?{input:o}:o);for await(const o of e.options.entries){if(typeof o.name!="string"){let r=m.isAbsolute(o.input)?m.relative(t,o.input):m.normalize(o.input);r.startsWith("./")&&(r=r.slice(2)),o.name=mr(r.replace(/^src\//,""))}if(!o.input)throw new Error(`Missing entry input: ${nt(o)}`);if(o.input=m.resolve(e.options.rootDir,o.input),!v.isAccessibleSync(o.input)){const r=new Set(await U.readdir(m.dirname(o.input)));let n=!1;for(const s of D.DEFAULT_EXTENSIONS)if(r.has(m.basename(o.input)+s)){n=!0;break}if(!n)throw new lt.NotFoundError("Your configured entry: "+g.cyan(o.input)+" does not exist.")}o.outDir=m.resolve(e.options.rootDir,o.outDir??e.options.outDir)}},"prepareEntries"),gr=k((e,t,o)=>{const r=k(s=>m.relative(t.options.rootDir,m.resolve(t.options.outDir,s)),"rPath");let n=!1;for(const s of t.buildEntries.filter(i=>!i.chunk)){let i=s.bytes??0;for(const l of s.chunks??[])i+=t.buildEntries.find(c=>c.path===l)?.bytes??0;let a=` ${g.bold(r(s.path))} (${["total size: "+g.cyan(S.formatBytes(i)),s.type!=="asset"&&s.bytes&&"chunk size: "+g.cyan(S.formatBytes(s.bytes))].filter(Boolean).join(", ")})`;if(a+=s.exports?.length?`
83
83
  exports: `+g.gray(s.exports.join(", ")):"",s.chunks?.length&&(a+=`
@@ -92,7 +92,7 @@ ${s.chunks.map(l=>{const c=t.buildEntries.find(p=>p.path===l)??{};return g.gray(
92
92
  types: `+g.bold(r(p.path))+" (total size: "+g.cyan(S.formatBytes(p.bytes??0))+")"}}n=!0,a+=`
93
93
 
94
94
  `,e.raw(s.chunk?g.gray(a):a)}return n&&e.raw("Σ Total dist size (byte size):",g.cyan(S.formatBytes(t.buildEntries.reduce((s,i)=>s+(i.bytes??0),0))),`
95
- `),n},"showSizeInformation"),hr=k(async(e,t,o,r,n,s,i,a)=>{const l=uo(s.preset??n.preset??"auto",t),c=dr(e,t,o,r,n,s,l,i,a);v.ensureDirSync(m.join(c.rootDir,c.outDir));const p={buildEntries:[],dependencyGraphMap:new Map,hooks:ut.createHooks(),logger:e,mode:o,options:c,pkg:i,tsconfig:a,usedImports:new Set,warnings:new Set};if(l.hooks&&p.hooks.addHooks(l.hooks),n.hooks&&p.hooks.addHooks(n.hooks),s.hooks&&p.hooks.addHooks(s.hooks),await p.hooks.callHook("build:prepare",p),!p.options.emitESM&&!p.options.emitCJS)throw new Error("Both emitESM and emitCJS are disabled. At least one of them must be enabled.");if(p.options.declaration&&a===void 0)throw new Error("Cannot build declaration files without a tsconfig.json");return p.options.emitESM===void 0&&p.logger.info("Emitting ESM bundles, is disabled."),p.options.emitCJS===void 0&&p.logger.info("Emitting CJS bundles, is disabled."),p.options.declaration||p.logger.info("Declaration files, are disabled."),p},"createContext"),yr=k(async e=>{const t=[];if(e.options.clean)for(const o of new Set(e.options.entries.map(r=>r.outDir).filter(Boolean).sort()))o===e.options.rootDir||o===e.options.sourceDir||e.options.rootDir.startsWith(o.endsWith("/")?o:`${o}/`)||t.some(r=>o.startsWith(r))||(t.push(o),e.logger.info(`Cleaning dist directory: \`./${m.relative(e.options.rootDir,o)}\``),await v.emptyDir(o))},"cleanDistributionDirectories"),vr=k(async(e,t,o)=>{await e.hooks.callHook("build:before",e);const r=tr(e.options.entries,"environment","runtime"),n=[];for(const[i,a]of Object.entries(r))for(const[l,c]of Object.entries(a)){e.logger.info("Preparing build for "+g.cyan(i)+" environment with "+g.cyan(l)+" runtime"),e.options.rollup.replace?(e.options.rollup.replace.values={...e.options.rollup.replace.values,production:i},l==="edge-light"&&(e.options.rollup.replace.values.EdgeRuntime="edge-runtime")):e.logger.warn("'replace' plugin is disabled. You should enable it to replace 'process.env.*' environments.");const p=[],u=[],d=[];for(const h of c)h.cjs&&h.esm?p.push(h):h.cjs?d.push(h):h.esm&&u.push(h);const y=i!=="development"&&e.options.minify;if(p.length>0){const h={...e,options:{...e.options,emitCJS:!0,emitESM:!0,entries:p,minify:y}};n.push(Y(h,o));const $=h.options.entries.filter(j=>j.declaration);e.options.declaration&&$.length>0&&n.push(K({...h,options:{...h.options,entries:$}},o))}if(u.length>0){const h={...e,options:{...e.options,emitCJS:!1,emitESM:!0,entries:u,minify:y}};n.push(Y(h,o));const $=h.options.entries.filter(j=>j.declaration);e.options.declaration&&$.length>0&&n.push(K({...h,options:{...h.options,entries:$}},o))}if(d.length>0){const h={...e,options:{...e.options,emitCJS:!1,emitESM:!1,entries:d,minify:y}};n.push(Y(h,o));const $=h.options.entries.filter(j=>j.declaration);e.options.declaration&&$.length>0&&n.push(K({...h,options:{...h.options,entries:$}},o))}}await Promise.all(n),e.logger.success(g.green(`Build succeeded for ${e.options.name}`));for await(const i of v.walk(m.join(e.options.rootDir,e.options.outDir))){let a=e.buildEntries.find(l=>m.join(e.options.rootDir,e.options.outDir,l.path)===i.path);if(a||(a={chunk:!0,path:i.path},e.buildEntries.push(a)),!a.bytes){const l=await U.stat(m.resolve(e.options.rootDir,e.options.outDir,i.path));a.bytes=l.size}}const s=gr(e.logger,e,t);rr(e),cr(t,e),await e.hooks.callHook("build:done",e),st(e,s)},"build"),br=k(async(e,t,o,r={})=>{const{configPath:n,debug:s,tsconfigPath:i,...a}=r;o.wrapAll(),e=m.resolve(x.cwd(),e),o.debug("Root directory:",e);const l=m.join(e,"package.json"),c=ct.parsePackageJson(l);o.debug("Using package.json found at",l);let p;if(i){const u=m.join(e,i);if(!await v.isAccessible(u))throw new Error("tsconfig.json not found at "+u);p={config:le.readTsConfig(u),path:u},o.info("Using tsconfig settings at",u)}else try{p=await le.findTsConfig(e),o.debug("Using tsconfig settings found at",p.path)}catch{o.info("No tsconfig.json or jsconfig.json found.")}try{const u=n??"./packem.config.ts";if(!/\.(?:js|mjs|cjs|ts)$/.test(u))throw new Error("Invalid packem config file extension. Only .js, .mjs, .cjs, .ts extensions are allowed.");const d=_e(u,e);o.debug("Using packem config found at",m.join(e,u));const y=Date.now(),h=k(()=>S.duration(Math.floor(Date.now()-y)),"getDuration"),$=P(JSON.stringify({version:c.version,...c.dependencies,...c.devDependencies,browser:c.browser,eNode:c.engines?.node,exports:c.exports,main:c.main,module:c.module,type:c.type,types:c.types})),j=new Gn(e,$,o);j.cachePath&&!v.isAccessibleSync(m.join(j.cachePath,$))&&v.isAccessibleSync(j.cachePath)&&(o.info("Clearing file cache because the cache key has changed."),await v.emptyDir(j.cachePath));const b=await hr(o,e,t,s??!1,a,d,c,p);if(j.isEnabled=b.options.fileCache,await fr(b,e),b.logger.info(g.cyan((t==="watch"?"Watching":t==="jit"?"Stubbing":"Building")+" "+b.options.name)),b.logger.debug(`${g.bold("Root dir:")} ${b.options.rootDir}
95
+ `),n},"showSizeInformation"),hr=k(async(e,t,o,r,n,s,i,a)=>{const l=uo(s.preset??n.preset??"auto",t),c=dr(e,t,o,r,n,s,l,i,a);v.ensureDirSync(m.join(c.rootDir,c.outDir));const p={buildEntries:[],dependencyGraphMap:new Map,hooks:ut.createHooks(),logger:e,mode:o,options:c,pkg:i,tsconfig:a,usedImports:new Set,warnings:new Set};if(l.hooks&&p.hooks.addHooks(l.hooks),n.hooks&&p.hooks.addHooks(n.hooks),s.hooks&&p.hooks.addHooks(s.hooks),await p.hooks.callHook("build:prepare",p),!p.options.emitESM&&!p.options.emitCJS)throw new Error("Both emitESM and emitCJS are disabled. At least one of them must be enabled.");if(p.options.declaration&&a===void 0&&i.devDependencies?.typescript)throw new Error(" Cannot build declaration files without a tsconfig.json");return p.options.emitESM===void 0&&p.logger.info("Emitting ESM bundles, is disabled."),p.options.emitCJS===void 0&&p.logger.info("Emitting CJS bundles, is disabled."),(!p.options.declaration||!i.devDependencies?.typescript)&&p.logger.info("Declaration files, are disabled."),p},"createContext"),yr=k(async e=>{const t=[];if(e.options.clean)for(const o of new Set(e.options.entries.map(r=>r.outDir).filter(Boolean).sort()))o===e.options.rootDir||o===e.options.sourceDir||e.options.rootDir.startsWith(o.endsWith("/")?o:`${o}/`)||t.some(r=>o.startsWith(r))||(t.push(o),e.logger.info(`Cleaning dist directory: \`./${m.relative(e.options.rootDir,o)}\``),await v.emptyDir(o))},"cleanDistributionDirectories"),vr=k(async(e,t,o)=>{await e.hooks.callHook("build:before",e);const r=tr(e.options.entries,"environment","runtime"),n=[];for(const[i,a]of Object.entries(r))for(const[l,c]of Object.entries(a)){e.logger.info("Preparing build for "+g.cyan(i)+" environment with "+g.cyan(l)+" runtime"),e.options.rollup.replace?(e.options.rollup.replace.values={...e.options.rollup.replace.values,production:i},l==="edge-light"&&(e.options.rollup.replace.values.EdgeRuntime="edge-runtime")):e.logger.warn("'replace' plugin is disabled. You should enable it to replace 'process.env.*' environments.");const p=[],u=[],d=[];for(const h of c)h.cjs&&h.esm?p.push(h):h.cjs?d.push(h):h.esm&&u.push(h);const y=i!=="development"&&e.options.minify;if(p.length>0){const h={...e,options:{...e.options,emitCJS:!0,emitESM:!0,entries:p,minify:y}};n.push(Y(h,o));const $=h.options.entries.filter(j=>j.declaration);e.options.declaration&&$.length>0&&n.push(K({...h,options:{...h.options,entries:$}},o))}if(u.length>0){const h={...e,options:{...e.options,emitCJS:!1,emitESM:!0,entries:u,minify:y}};n.push(Y(h,o));const $=h.options.entries.filter(j=>j.declaration);e.options.declaration&&$.length>0&&n.push(K({...h,options:{...h.options,entries:$}},o))}if(d.length>0){const h={...e,options:{...e.options,emitCJS:!1,emitESM:!1,entries:d,minify:y}};n.push(Y(h,o));const $=h.options.entries.filter(j=>j.declaration);e.options.declaration&&$.length>0&&n.push(K({...h,options:{...h.options,entries:$}},o))}}await Promise.all(n),e.logger.success(g.green(`Build succeeded for ${e.options.name}`));for await(const i of v.walk(m.join(e.options.rootDir,e.options.outDir))){let a=e.buildEntries.find(l=>m.join(e.options.rootDir,e.options.outDir,l.path)===i.path);if(a||(a={chunk:!0,path:i.path},e.buildEntries.push(a)),!a.bytes){const l=await U.stat(m.resolve(e.options.rootDir,e.options.outDir,i.path));a.bytes=l.size}}const s=gr(e.logger,e,t);rr(e),cr(t,e),await e.hooks.callHook("build:done",e),st(e,s)},"build"),br=k(async(e,t,o,r={})=>{const{configPath:n,debug:s,tsconfigPath:i,...a}=r;o.wrapAll(),e=m.resolve(x.cwd(),e),o.debug("Root directory:",e);const l=m.join(e,"package.json"),c=ct.parsePackageJson(l);o.debug("Using package.json found at",l);let p;if(i){const u=m.join(e,i);if(!await v.isAccessible(u))throw new Error("tsconfig.json not found at "+u);p={config:le.readTsConfig(u),path:u},o.info("Using tsconfig settings at",u)}else if(c.devDependencies?.typescript)try{p=await le.findTsConfig(e),o.debug("Using tsconfig settings found at",p.path)}catch{o.info("No tsconfig.json or jsconfig.json found.")}try{const u=n??"./packem.config.ts";if(!/\.(?:js|mjs|cjs|ts)$/.test(u))throw new Error("Invalid packem config file extension. Only .js, .mjs, .cjs, .ts extensions are allowed.");const d=_e(u,e);o.debug("Using packem config found at",m.join(e,u));const y=Date.now(),h=k(()=>S.duration(Math.floor(Date.now()-y)),"getDuration"),$=P(JSON.stringify({version:c.version,...c.dependencies,...c.devDependencies,browser:c.browser,eNode:c.engines?.node,exports:c.exports,main:c.main,module:c.module,type:c.type,types:c.types})),j=new Gn(e,$,o);j.cachePath&&!v.isAccessibleSync(m.join(j.cachePath,$))&&v.isAccessibleSync(j.cachePath)&&(o.info("Clearing file cache because the cache key has changed."),await v.emptyDir(j.cachePath));const b=await hr(o,e,t,s??!1,a,d,c,p);if(j.isEnabled=b.options.fileCache,await fr(b,e),b.logger.info(g.cyan((t==="watch"?"Watching":t==="jit"?"Stubbing":"Building")+" "+b.options.name)),b.logger.debug(`${g.bold("Root dir:")} ${b.options.rootDir}
96
96
  ${g.bold("Entries:")}
97
97
  ${b.options.entries.map(C=>` ${nt(C)}`).join(`
98
98
  `)}`),await yr(b),b.options.stub){await Xt(b),await b.hooks.callHook("build:done",b);return}if(t==="watch"){if(b.options.rollup.watch===!1)throw new Error("Rollup watch is disabled. You should check your packem.config file.");await Un(b,j),st(b,!1);return}await vr(b,c,j),o.raw(`
@@ -85,7 +85,7 @@ The published ${g} artifact additionally contains code with the following licens
85
85
  ${u.join(", ")}
86
86
 
87
87
  # Bundled types:
88
- `+d,"dtsTemplate")},patchTypes:{},polyfillNode:{},preserveDynamicImports:!0,raw:{exclude:Y,include:["**/*.data","**/*.txt"]},replace:{objectGuards:!0,preventAssignment:!0},resolve:{allowExportsFolderMapping:!1,preferBuiltins:!1},shim:!0,sucrase:{disableESTransforms:!0,enableLegacyBabel5ModuleInterop:!1,enableLegacyTypeScriptModuleInterop:l?.config.compilerOptions?.esModuleInterop===!1,include:/\.[jt]sx?$/,injectCreateRequireForImportRequire:!1,preserveDynamicImport:!0,production:E.NODE_ENV==="production",...l?.config.compilerOptions?.jsx&&["react","react-jsx","react-jsxdev"].includes(l.config.compilerOptions.jsx)?{jsxFragmentPragma:l.config.compilerOptions.jsxFragmentFactory,jsxImportSource:l.config.compilerOptions.jsxImportSource,jsxPragma:l.config.compilerOptions.jsxFactory,jsxRuntime:c,transforms:["typescript","jsx",...l.config.compilerOptions.esModuleInterop?["imports"]:[]]}:{transforms:["typescript",...l?.config.compilerOptions?.esModuleInterop?["imports"]:[]]}},swc:{include:/\.[jt]sx?$/,inlineSourcesContent:!1,inputSourceMap:!1,isModule:!0,jsc:{experimental:{keepImportAttributes:!0},externalHelpers:!1,keepClassNames:!0,loose:!0,parser:{decorators:l?.config.compilerOptions?.experimentalDecorators,syntax:l?"typescript":"ecmascript",[l?"tsx":"jsx"]:!0},target:l?.config.compilerOptions?.target?.toLowerCase(),transform:{decoratorMetadata:l?.config.compilerOptions?.emitDecoratorMetadata,legacyDecorator:l?.config.compilerOptions?.experimentalDecorators,react:{development:E.NODE_ENV!=="production",pragma:l?.config.compilerOptions?.jsxFactory,pragmaFrag:l?.config.compilerOptions?.jsxFragmentFactory,runtime:c,throwIfNamespace:!0},treatConstEnumAsEnum:l?.config.compilerOptions?.preserveConstEnums,useDefineForClassFields:l?.config.compilerOptions?.useDefineForClassFields}},module:{ignoreDynamic:!0,importInterop:"none",preserveImportMeta:!0,strict:!1,strictMode:!1,type:"es6"},transform:{decoratorVersion:"2022-03"}},treeshake:{moduleSideEffects:kn(t,a),preset:"recommended"},watch:{chokidar:{ignoreInitial:!0,ignorePermissionErrors:!0},clearScreen:!0,exclude:Y}},rootDir:t,sourceDir:"src",sourcemap:!1,stub:o==="jit",stubOptions:{jiti:{alias:{},esmResolve:!0,interopDefault:!0}},transformerName:void 0});if(!p.transformerName){const u=new Map([...Object.entries(a.dependencies??{}),...Object.entries(a.devDependencies??{})]);let d="0.0.0";if(u.has("esbuild"))p.transformerName="esbuild",d=u.get("esbuild");else if(u.has("@swc/core"))p.transformerName="swc",d=u.get("@swc/core");else if(u.has("sucrase"))p.transformerName="sucrase",d=u.get("sucrase");else throw new Error("Unknown transformer, check your transformer options or install one of the supported transformers: esbuild, swc, sucrase");e.info("Using "+v("rollup ")+Bt),e.info({message:"Using "+v(p.transformerName)+" "+d,prefix:"transformer"})}return p.rollup.resolve&&p.rollup.resolve.preferBuiltins===!0&&(p.rollup.polyfillNode=!1,e.debug("Disabling polyfillNode because preferBuiltins is set to true")),l?.config.compilerOptions?.isolatedModules||e.warn(`'compilerOptions.isolatedModules' is not enabled in tsconfig.
88
+ `+d,"dtsTemplate")},patchTypes:{},polyfillNode:{},preserveDynamicImports:!0,raw:{exclude:Y,include:["**/*.data","**/*.txt"]},replace:{objectGuards:!0,preventAssignment:!0},resolve:{allowExportsFolderMapping:!1,preferBuiltins:!1},shim:!0,sucrase:{disableESTransforms:!0,enableLegacyBabel5ModuleInterop:!1,enableLegacyTypeScriptModuleInterop:l?.config.compilerOptions?.esModuleInterop===!1,include:/\.[jt]sx?$/,injectCreateRequireForImportRequire:!1,preserveDynamicImport:!0,production:E.NODE_ENV==="production",...l?.config.compilerOptions?.jsx&&["react","react-jsx","react-jsxdev"].includes(l.config.compilerOptions.jsx)?{jsxFragmentPragma:l.config.compilerOptions.jsxFragmentFactory,jsxImportSource:l.config.compilerOptions.jsxImportSource,jsxPragma:l.config.compilerOptions.jsxFactory,jsxRuntime:c,transforms:["typescript","jsx",...l.config.compilerOptions.esModuleInterop?["imports"]:[]]}:{transforms:["typescript",...l?.config.compilerOptions?.esModuleInterop?["imports"]:[]]}},swc:{include:/\.[jt]sx?$/,inlineSourcesContent:!1,inputSourceMap:!1,isModule:!0,jsc:{experimental:{keepImportAttributes:!0},externalHelpers:!1,keepClassNames:!0,loose:!0,parser:{decorators:l?.config.compilerOptions?.experimentalDecorators,syntax:l?"typescript":"ecmascript",[l?"tsx":"jsx"]:!0},target:l?.config.compilerOptions?.target?.toLowerCase(),transform:{decoratorMetadata:l?.config.compilerOptions?.emitDecoratorMetadata,legacyDecorator:l?.config.compilerOptions?.experimentalDecorators,react:{development:E.NODE_ENV!=="production",pragma:l?.config.compilerOptions?.jsxFactory,pragmaFrag:l?.config.compilerOptions?.jsxFragmentFactory,runtime:c,throwIfNamespace:!0},treatConstEnumAsEnum:l?.config.compilerOptions?.preserveConstEnums,useDefineForClassFields:l?.config.compilerOptions?.useDefineForClassFields}},module:{ignoreDynamic:!0,importInterop:"none",preserveImportMeta:!0,strict:!1,strictMode:!1,type:"es6"},transform:{decoratorVersion:"2022-03"}},treeshake:{moduleSideEffects:kn(t,a),preset:"recommended"},watch:{chokidar:{ignoreInitial:!0,ignorePermissionErrors:!0},clearScreen:!0,exclude:Y}},rootDir:t,sourceDir:"src",sourcemap:!1,stub:o==="jit",stubOptions:{jiti:{alias:{},esmResolve:!0,interopDefault:!0}},transformerName:void 0});if(!p.transformerName){const u=new Map([...Object.entries(a.dependencies??{}),...Object.entries(a.devDependencies??{})]);let d="0.0.0";if(u.has("esbuild"))p.transformerName="esbuild",d=u.get("esbuild");else if(u.has("@swc/core"))p.transformerName="swc",d=u.get("@swc/core");else if(u.has("sucrase"))p.transformerName="sucrase",d=u.get("sucrase");else throw new Error("Unknown transformer, check your transformer options or install one of the supported transformers: esbuild, swc, sucrase");e.info("Using "+v("rollup ")+Bt),e.info({message:"Using "+v(p.transformerName)+" "+d,prefix:"transformer"})}return p.rollup.resolve&&p.rollup.resolve.preferBuiltins===!0&&(p.rollup.polyfillNode=!1,e.debug("Disabling polyfillNode because preferBuiltins is set to true")),a.devDependencies?.typescript&&!l?.config.compilerOptions?.isolatedModules&&e.warn(`'compilerOptions.isolatedModules' is not enabled in tsconfig.
89
89
  Because none of the third-party transpiler, packem uses under the hood is type-aware, some techniques or features often used in TypeScript are not properly checked and can cause mis-compilation or even runtime errors.
90
90
  To mitigate this, you should set the isolatedModules option to true in tsconfig and let your IDE warn you when such incompatible constructs are used.`),p.dependencies=Object.keys(a.dependencies??{}),p.peerDependencies=Object.keys(a.peerDependencies??{}),p.devDependencies=Object.keys(a.devDependencies??{}),p.optionalDependencies=Object.keys(a.optionalDependencies??{}),p.externals.push(...p.dependencies,...p.peerDependencies,...p.optionalDependencies),p},"generateOptions"),An=k(e=>e.replace(/\.(?:js|mjs|cjs|ts|mts|cts|json|jsx|tsx)$/,""),"removeExtension"),Wn=k(async(e,t)=>{e.options.entries=e.options.entries.map(o=>typeof o=="string"?{input:o}:o);for await(const o of e.options.entries){if(typeof o.name!="string"){let n=Ie(o.input)?O(t,o.input):ne(o.input);n.startsWith("./")&&(n=n.slice(2)),o.name=An(n.replace(/^src\//,""))}if(!o.input)throw new Error(`Missing entry input: ${yt(o)}`);if(o.input=h(e.options.rootDir,o.input),!C(o.input)){const n=new Set(await jt(ie(o.input)));let r=!1;for(const s of I)if(n.has(H(o.input)+s)){r=!0;break}if(!r)throw new Ct("Your configured entry: "+v(o.input)+" does not exist.")}o.outDir=h(e.options.rootDir,o.outDir??e.options.outDir)}},"prepareEntries"),Bn=k((e,t,o)=>{const n=k(s=>O(t.options.rootDir,h(t.options.outDir,s)),"rPath");let r=!1;for(const s of t.buildEntries.filter(i=>!i.chunk)){let i=s.bytes??0;for(const l of s.chunks??[])i+=t.buildEntries.find(c=>c.path===l)?.bytes??0;let a=` ${D(n(s.path))} (${["total size: "+v(_(i)),s.type!=="asset"&&s.bytes&&"chunk size: "+v(_(s.bytes))].filter(Boolean).join(", ")})`;if(a+=s.exports?.length?`
91
91
  exports: `+M(s.exports.join(", ")):"",s.chunks?.length&&(a+=`
@@ -100,7 +100,7 @@ ${s.chunks.map(l=>{const c=t.buildEntries.find(p=>p.path===l)??{};return M("
100
100
  types: `+D(n(p.path))+" (total size: "+v(_(p.bytes??0))+")"}}r=!0,a+=`
101
101
 
102
102
  `,e.raw(s.chunk?M(a):a)}return r&&e.raw("Σ Total dist size (byte size):",v(_(t.buildEntries.reduce((s,i)=>s+(i.bytes??0),0))),`
103
- `),r},"showSizeInformation"),Jn=k(async(e,t,o,n,r,s,i,a)=>{const l=To(s.preset??r.preset??"auto",t),c=Tn(e,t,o,n,r,s,l,i,a);_t(w(c.rootDir,c.outDir));const p={buildEntries:[],dependencyGraphMap:new Map,hooks:Wt(),logger:e,mode:o,options:c,pkg:i,tsconfig:a,usedImports:new Set,warnings:new Set};if(l.hooks&&p.hooks.addHooks(l.hooks),r.hooks&&p.hooks.addHooks(r.hooks),s.hooks&&p.hooks.addHooks(s.hooks),await p.hooks.callHook("build:prepare",p),!p.options.emitESM&&!p.options.emitCJS)throw new Error("Both emitESM and emitCJS are disabled. At least one of them must be enabled.");if(p.options.declaration&&a===void 0)throw new Error("Cannot build declaration files without a tsconfig.json");return p.options.emitESM===void 0&&p.logger.info("Emitting ESM bundles, is disabled."),p.options.emitCJS===void 0&&p.logger.info("Emitting CJS bundles, is disabled."),p.options.declaration||p.logger.info("Declaration files, are disabled."),p},"createContext"),Ln=k(async e=>{const t=[];if(e.options.clean)for(const o of new Set(e.options.entries.map(n=>n.outDir).filter(Boolean).sort()))o===e.options.rootDir||o===e.options.sourceDir||e.options.rootDir.startsWith(o.endsWith("/")?o:`${o}/`)||t.some(n=>o.startsWith(n))||(t.push(o),e.logger.info(`Cleaning dist directory: \`./${O(e.options.rootDir,o)}\``),await Fe(o))},"cleanDistributionDirectories"),zn=k(async(e,t,o)=>{await e.hooks.callHook("build:before",e);const n=On(e.options.entries,"environment","runtime"),r=[];for(const[i,a]of Object.entries(n))for(const[l,c]of Object.entries(a)){e.logger.info("Preparing build for "+v(i)+" environment with "+v(l)+" runtime"),e.options.rollup.replace?(e.options.rollup.replace.values={...e.options.rollup.replace.values,production:i},l==="edge-light"&&(e.options.rollup.replace.values.EdgeRuntime="edge-runtime")):e.logger.warn("'replace' plugin is disabled. You should enable it to replace 'process.env.*' environments.");const p=[],u=[],d=[];for(const f of c)f.cjs&&f.esm?p.push(f):f.cjs?d.push(f):f.esm&&u.push(f);const g=i!=="development"&&e.options.minify;if(p.length>0){const f={...e,options:{...e.options,emitCJS:!0,emitESM:!0,entries:p,minify:g}};r.push(Q(f,o));const b=f.options.entries.filter($=>$.declaration);e.options.declaration&&b.length>0&&r.push(Z({...f,options:{...f.options,entries:b}},o))}if(u.length>0){const f={...e,options:{...e.options,emitCJS:!1,emitESM:!0,entries:u,minify:g}};r.push(Q(f,o));const b=f.options.entries.filter($=>$.declaration);e.options.declaration&&b.length>0&&r.push(Z({...f,options:{...f.options,entries:b}},o))}if(d.length>0){const f={...e,options:{...e.options,emitCJS:!1,emitESM:!1,entries:d,minify:g}};r.push(Q(f,o));const b=f.options.entries.filter($=>$.declaration);e.options.declaration&&b.length>0&&r.push(Z({...f,options:{...f.options,entries:b}},o))}}await Promise.all(r),e.logger.success(Dt(`Build succeeded for ${e.options.name}`));for await(const i of Pt(w(e.options.rootDir,e.options.outDir))){let a=e.buildEntries.find(l=>w(e.options.rootDir,e.options.outDir,l.path)===i.path);if(a||(a={chunk:!0,path:i.path},e.buildEntries.push(a)),!a.bytes){const l=await Pe(h(e.options.rootDir,e.options.outDir,i.path));a.bytes=l.size}}const s=Bn(e.logger,e,t);Nn(e),Fn(t,e),await e.hooks.callHook("build:done",e),bt(e,s)},"build"),Ss=k(async(e,t,o,n={})=>{const{configPath:r,debug:s,tsconfigPath:i,...a}=n;o.wrapAll(),e=h(xt(),e),o.debug("Root directory:",e);const l=w(e,"package.json"),c=It(l);o.debug("Using package.json found at",l);let p;if(i){const u=w(e,i);if(!await Mt(u))throw new Error("tsconfig.json not found at "+u);p={config:Rt(u),path:u},o.info("Using tsconfig settings at",u)}else try{p=await Tt(e),o.debug("Using tsconfig settings found at",p.path)}catch{o.info("No tsconfig.json or jsconfig.json found.")}try{const u=r??"./packem.config.ts";if(!/\.(?:js|mjs|cjs|ts)$/.test(u))throw new Error("Invalid packem config file extension. Only .js, .mjs, .cjs, .ts extensions are allowed.");const d=ze(u,e);o.debug("Using packem config found at",w(e,u));const g=Date.now(),f=k(()=>Ft(Math.floor(Date.now()-g)),"getDuration"),b=P(JSON.stringify({version:c.version,...c.dependencies,...c.devDependencies,browser:c.browser,eNode:c.engines?.node,exports:c.exports,main:c.main,module:c.module,type:c.type,types:c.types})),$=new $n(e,b,o);$.cachePath&&!C(w($.cachePath,b))&&C($.cachePath)&&(o.info("Clearing file cache because the cache key has changed."),await Fe($.cachePath));const y=await Jn(o,e,t,s??!1,a,d,c,p);if($.isEnabled=y.options.fileCache,await Wn(y,e),y.logger.info(v((t==="watch"?"Watching":t==="jit"?"Stubbing":"Building")+" "+y.options.name)),y.logger.debug(`${D("Root dir:")} ${y.options.rootDir}
103
+ `),r},"showSizeInformation"),Jn=k(async(e,t,o,n,r,s,i,a)=>{const l=To(s.preset??r.preset??"auto",t),c=Tn(e,t,o,n,r,s,l,i,a);_t(w(c.rootDir,c.outDir));const p={buildEntries:[],dependencyGraphMap:new Map,hooks:Wt(),logger:e,mode:o,options:c,pkg:i,tsconfig:a,usedImports:new Set,warnings:new Set};if(l.hooks&&p.hooks.addHooks(l.hooks),r.hooks&&p.hooks.addHooks(r.hooks),s.hooks&&p.hooks.addHooks(s.hooks),await p.hooks.callHook("build:prepare",p),!p.options.emitESM&&!p.options.emitCJS)throw new Error("Both emitESM and emitCJS are disabled. At least one of them must be enabled.");if(p.options.declaration&&a===void 0&&i.devDependencies?.typescript)throw new Error(" Cannot build declaration files without a tsconfig.json");return p.options.emitESM===void 0&&p.logger.info("Emitting ESM bundles, is disabled."),p.options.emitCJS===void 0&&p.logger.info("Emitting CJS bundles, is disabled."),(!p.options.declaration||!i.devDependencies?.typescript)&&p.logger.info("Declaration files, are disabled."),p},"createContext"),Ln=k(async e=>{const t=[];if(e.options.clean)for(const o of new Set(e.options.entries.map(n=>n.outDir).filter(Boolean).sort()))o===e.options.rootDir||o===e.options.sourceDir||e.options.rootDir.startsWith(o.endsWith("/")?o:`${o}/`)||t.some(n=>o.startsWith(n))||(t.push(o),e.logger.info(`Cleaning dist directory: \`./${O(e.options.rootDir,o)}\``),await Fe(o))},"cleanDistributionDirectories"),zn=k(async(e,t,o)=>{await e.hooks.callHook("build:before",e);const n=On(e.options.entries,"environment","runtime"),r=[];for(const[i,a]of Object.entries(n))for(const[l,c]of Object.entries(a)){e.logger.info("Preparing build for "+v(i)+" environment with "+v(l)+" runtime"),e.options.rollup.replace?(e.options.rollup.replace.values={...e.options.rollup.replace.values,production:i},l==="edge-light"&&(e.options.rollup.replace.values.EdgeRuntime="edge-runtime")):e.logger.warn("'replace' plugin is disabled. You should enable it to replace 'process.env.*' environments.");const p=[],u=[],d=[];for(const f of c)f.cjs&&f.esm?p.push(f):f.cjs?d.push(f):f.esm&&u.push(f);const g=i!=="development"&&e.options.minify;if(p.length>0){const f={...e,options:{...e.options,emitCJS:!0,emitESM:!0,entries:p,minify:g}};r.push(Q(f,o));const b=f.options.entries.filter($=>$.declaration);e.options.declaration&&b.length>0&&r.push(Z({...f,options:{...f.options,entries:b}},o))}if(u.length>0){const f={...e,options:{...e.options,emitCJS:!1,emitESM:!0,entries:u,minify:g}};r.push(Q(f,o));const b=f.options.entries.filter($=>$.declaration);e.options.declaration&&b.length>0&&r.push(Z({...f,options:{...f.options,entries:b}},o))}if(d.length>0){const f={...e,options:{...e.options,emitCJS:!1,emitESM:!1,entries:d,minify:g}};r.push(Q(f,o));const b=f.options.entries.filter($=>$.declaration);e.options.declaration&&b.length>0&&r.push(Z({...f,options:{...f.options,entries:b}},o))}}await Promise.all(r),e.logger.success(Dt(`Build succeeded for ${e.options.name}`));for await(const i of Pt(w(e.options.rootDir,e.options.outDir))){let a=e.buildEntries.find(l=>w(e.options.rootDir,e.options.outDir,l.path)===i.path);if(a||(a={chunk:!0,path:i.path},e.buildEntries.push(a)),!a.bytes){const l=await Pe(h(e.options.rootDir,e.options.outDir,i.path));a.bytes=l.size}}const s=Bn(e.logger,e,t);Nn(e),Fn(t,e),await e.hooks.callHook("build:done",e),bt(e,s)},"build"),Ss=k(async(e,t,o,n={})=>{const{configPath:r,debug:s,tsconfigPath:i,...a}=n;o.wrapAll(),e=h(xt(),e),o.debug("Root directory:",e);const l=w(e,"package.json"),c=It(l);o.debug("Using package.json found at",l);let p;if(i){const u=w(e,i);if(!await Mt(u))throw new Error("tsconfig.json not found at "+u);p={config:Rt(u),path:u},o.info("Using tsconfig settings at",u)}else if(c.devDependencies?.typescript)try{p=await Tt(e),o.debug("Using tsconfig settings found at",p.path)}catch{o.info("No tsconfig.json or jsconfig.json found.")}try{const u=r??"./packem.config.ts";if(!/\.(?:js|mjs|cjs|ts)$/.test(u))throw new Error("Invalid packem config file extension. Only .js, .mjs, .cjs, .ts extensions are allowed.");const d=ze(u,e);o.debug("Using packem config found at",w(e,u));const g=Date.now(),f=k(()=>Ft(Math.floor(Date.now()-g)),"getDuration"),b=P(JSON.stringify({version:c.version,...c.dependencies,...c.devDependencies,browser:c.browser,eNode:c.engines?.node,exports:c.exports,main:c.main,module:c.module,type:c.type,types:c.types})),$=new $n(e,b,o);$.cachePath&&!C(w($.cachePath,b))&&C($.cachePath)&&(o.info("Clearing file cache because the cache key has changed."),await Fe($.cachePath));const y=await Jn(o,e,t,s??!1,a,d,c,p);if($.isEnabled=y.options.fileCache,await Wn(y,e),y.logger.info(v((t==="watch"?"Watching":t==="jit"?"Stubbing":"Building")+" "+y.options.name)),y.logger.debug(`${D("Root dir:")} ${y.options.rootDir}
104
104
  ${D("Entries:")}
105
105
  ${y.options.entries.map(R=>` ${yt(R)}`).join(`
106
106
  `)}`),await Ln(y),y.options.stub){await $o(y),await y.hooks.callHook("build:done",y);return}if(t==="watch"){if(y.options.rollup.watch===!1)throw new Error("Rollup watch is disabled. You should check your packem.config file.");await gn(y,$),bt(y,!1);return}await zn(y,c,$),o.raw(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visulima/packem",
3
- "version": "1.0.0-alpha.53",
3
+ "version": "1.0.0-alpha.54",
4
4
  "description": "A fast and modern bundler for Node.js and TypeScript.",
5
5
  "keywords": [
6
6
  "anolilab",