@visulima/packem 2.0.0-alpha.47 → 2.0.0-alpha.48

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,15 @@
1
+ ## @visulima/packem [2.0.0-alpha.48](https://github.com/visulima/packem/compare/@visulima/packem@2.0.0-alpha.47...@visulima/packem@2.0.0-alpha.48) (2025-12-28)
2
+
3
+ ### Features
4
+
5
+ * **preact:** add Preact and React compatibility examples with Babel support ([0b77282](https://github.com/visulima/packem/commit/0b77282b802ed3d7c5df0733c1d7f5e2156df721))
6
+
7
+
8
+ ### Dependencies
9
+
10
+ * **@visulima/packem-rollup:** upgraded to 1.0.0-alpha.36
11
+ * **@visulima/rollup-plugin-css:** upgraded to 1.0.0-alpha.16
12
+
1
13
  ## @visulima/packem [2.0.0-alpha.47](https://github.com/visulima/packem/compare/@visulima/packem@2.0.0-alpha.46...@visulima/packem@2.0.0-alpha.47) (2025-12-24)
2
14
 
3
15
  ### Miscellaneous Chores
package/dist/cli/index.js CHANGED
@@ -1,67 +1,68 @@
1
1
  #!/usr/bin/env node
2
- var Y=Object.defineProperty;var v=(t,s)=>Y(t,"name",{value:s,configurable:!0});import{createCerebro as Q}from"@visulima/cerebro";import Z from"@visulima/cerebro/logger/pail";import{SimpleReporter as ee}from"@visulima/pail/reporter/simple";import j,{cwd as B,exit as se}from"node:process";import{installPackage as D}from"@antfu/install-pkg";import{confirm as w,select as h,multiselect as J,spinner as L,cancel as G,intro as te,log as V,outro as ae}from"@clack/prompts";import{isAccessible as ie,readFile as re,writeFile as oe,isAccessibleSync as I,writeJsonSync as ne,writeFileSync as ce}from"@visulima/fs";import{parsePackageJson as U}from"@visulima/package/package-json";import{join as S,resolve as M}from"@visulima/path";import le from"magic-string";import{exec as de}from"tinyexec";import{t as A,E as pe}from"../packem_shared/index-CUp9WuCG.js";import{createJiti as ue}from"jiti";import{c as me,w as fe,j as ge}from"../packem_shared/index-BdncxKzQ.js";import{existsSync as N}from"node:fs";import{parseEnv as R}from"node:util";import{readFile as ye,writeFile as be}from"node:fs/promises";import{createInterface as we}from"node:readline/promises";import __cjs_mod__ from "node:module"; // -- packem CommonJS require shim --
2
+ var Q=Object.defineProperty;var v=(t,s)=>Q(t,"name",{value:s,configurable:!0});import{createCerebro as Z}from"@visulima/cerebro";import ee from"@visulima/cerebro/logger/pail";import{SimpleReporter as se}from"@visulima/pail/reporter/simple";import j,{cwd as B,exit as te}from"node:process";import{installPackage as x}from"@antfu/install-pkg";import{confirm as b,select as h,multiselect as K,spinner as L,cancel as G,intro as ae,log as V,outro as ie}from"@clack/prompts";import{isAccessible as re,readFile as ne,writeFile as oe,isAccessibleSync as I,writeJsonSync as ce,writeFileSync as le}from"@visulima/fs";import{parsePackageJson as U}from"@visulima/package/package-json";import{join as S,resolve as T}from"@visulima/path";import de from"magic-string";import{exec as pe}from"tinyexec";import{t as A,E as ue}from"../packem_shared/index-CUp9WuCG.js";import{createJiti as me}from"jiti";import{c as fe,w as ge,j as ye}from"../packem_shared/index-DkaUAiHf.js";import{existsSync as N}from"node:fs";import{parseEnv as R}from"node:util";import{readFile as be,writeFile as we}from"node:fs/promises";import{createInterface as ve}from"node:readline/promises";import __cjs_mod__ from "node:module"; // -- packem CommonJS require shim --
3
3
  const require = __cjs_mod__.createRequire(import.meta.url);
4
- var ve="@visulima/packem",z="2.0.0-alpha.46";const F={version:z};var he=Object.defineProperty,ke=v((t,s)=>he(t,"name",{value:s,configurable:!0}),"t");const W=ke(async(t,s="")=>{let e=s;if(!e){const a=["packem.config.js","packem.config.mjs","packem.config.cjs","packem.config.ts","packem.config.cts","packem.config.mts"];for(const r of a)if(await ie(S(t,r))){e=`./${r}`;break}}if(!/\.(?:js|mjs|cjs|ts|cts|mts)$/.test(e))throw new Error("Invalid packem config file extension. Only .js, .mjs, .cjs, .ts, .cts and .mts extensions are allowed.");return e},"findPackemFile"),_={less:["less"],lightningcss:["lightningcss"],"node-sass":["node-sass"],postcss:["postcss","postcss-load-config","postcss-modules-extract-imports","postcss-modules-local-by-default","postcss-modules-scope","postcss-modules-values","postcss-value-parser","@csstools/css-parser-algorithms","@csstools/css-tokenizer","@csstools/postcss-slow-plugins","icss-utils","@visulima/css-style-inject"],sass:["sass"],"sass-embedded":["sass-embedded"],stylus:["stylus"],tailwindcss:["@tailwindcss/node","@tailwindcss/oxide","tailwindcss"]};var Se=Object.defineProperty,y=v((t,s)=>Se(t,"name",{value:s,configurable:!0}),"r$1");const $e=["typedoc","typedoc-plugin-markdown","typedoc-plugin-rename-defaults"],je=["@babel/core","@babel/preset-react"],Ce=["react","react-dom"],xe=["@babel/core","babel-preset-solid"],De=["solid-js"],Pe=["unplugin-vue"],Me=["vue"],Oe=["rollup-plugin-svelte"],Ee=["svelte"],O=y((t,s,e)=>t.includes(`preset: '${s}'`)||t.includes(`preset: "${s}"`)||t.includes(`preset: '${s}',`)||t.includes(`preset: "${s}",`)||t.includes(e)||t.includes(`@visulima/packem/config/preset/${s}`),"checkPresetExists"),E=y((t,s)=>{const{logger:e,magic:a,packemConfig:r}=t,o=r.match(/defineConfig\s*\(\s*\{/);if(o&&o.index!==void 0){const n=o.index+o[0].length;if(r.includes("preset:")){const i=r.match(/preset:\s*['"]([^'"]+)['"]/);if(i)a.replace(i[0],`preset: '${s}'`);else throw e.warn(`A preset already exists in the config. Please manually set it to '${s}'.`),new Error("Preset exists but is not a string")}else a.appendLeft(n,`
4
+ var he="@visulima/packem",z="2.0.0-alpha.47";const F={version:z};var ke=Object.defineProperty,Se=v((t,s)=>ke(t,"name",{value:s,configurable:!0}),"t");const W=Se(async(t,s="")=>{let e=s;if(!e){const a=["packem.config.js","packem.config.mjs","packem.config.cjs","packem.config.ts","packem.config.cts","packem.config.mts"];for(const r of a)if(await re(S(t,r))){e=`./${r}`;break}}if(!/\.(?:js|mjs|cjs|ts|cts|mts)$/.test(e))throw new Error("Invalid packem config file extension. Only .js, .mjs, .cjs, .ts, .cts and .mts extensions are allowed.");return e},"findPackemFile"),_={less:["less"],lightningcss:["lightningcss"],"node-sass":["node-sass"],postcss:["postcss","postcss-load-config","postcss-modules-extract-imports","postcss-modules-local-by-default","postcss-modules-scope","postcss-modules-values","postcss-value-parser","@csstools/css-parser-algorithms","@csstools/css-tokenizer","@csstools/postcss-slow-plugins","icss-utils","@visulima/css-style-inject"],sass:["sass"],"sass-embedded":["sass-embedded"],stylus:["stylus"],tailwindcss:["@tailwindcss/node","@tailwindcss/oxide","tailwindcss"]};var $e=Object.defineProperty,y=v((t,s)=>$e(t,"name",{value:s,configurable:!0}),"r$1");const je=["typedoc","typedoc-plugin-markdown","typedoc-plugin-rename-defaults"],Ce=["@babel/core","@babel/preset-react"],Pe=["react","react-dom"],xe=["@babel/core","babel-preset-solid"],De=["solid-js"],Me=["@babel/core","@babel/preset-react","babel-plugin-transform-hook-names"],Oe=["preact"],Ee=["unplugin-vue"],Te=["vue"],Ie=["rollup-plugin-svelte"],Le=["svelte"],D=y((t,s,e)=>t.includes(`preset: '${s}'`)||t.includes(`preset: "${s}"`)||t.includes(`preset: '${s}',`)||t.includes(`preset: "${s}",`)||t.includes(e)||t.includes(`@visulima/packem/config/preset/${s}`),"checkPresetExists"),M=y((t,s)=>{const{logger:e,magic:a,packemConfig:r}=t,n=r.match(/defineConfig\s*\(\s*\{/);if(n&&n.index!==void 0){const o=n.index+n[0].length;if(r.includes("preset:")){const i=r.match(/preset:\s*['"]([^'"]+)['"]/);if(i)a.replace(i[0],`preset: '${s}'`);else throw e.warn(`A preset already exists in the config. Please manually set it to '${s}'.`),new Error("Preset exists but is not a string")}else a.appendLeft(o,`
5
5
  preset: '${s}',`)}else if(r.includes("transformer:"))a.replace("transformer:",`preset: '${s}',
6
- transformer:`);else{const n=r.indexOf("{");n!==-1&&a.appendLeft(n+1,`
7
- preset: '${s}',`)}},"insertPreset"),Te=y(async t=>{try{return((await de("git",["status","--porcelain"],{nodeOptions:{cwd:t,stdio:["pipe","pipe","pipe"]}})).stdout?.trim().length??0)>0}catch{return!1}},"checkGitDirty"),Ie=y(async t=>{const s=S(t,"package.json"),e=await U(s,{resolveCatalogs:!0});return!!(e.devDependencies?.typescript??e.dependencies?.typescript)},"checkTypeScriptInstalled"),Le=y(async t=>{const s=await Ie(t),e=[...Ce],a=[...je];return s?a.push("@types/react","@types/react-dom"):await w({initialValue:!1,message:"Do you want to use TypeScript?"})&&a.push("typescript","@types/react","@types/react-dom"),{devPackages:a,packages:e}},"getReactTypeDependencies"),T=y(async(t,s,e)=>{const{rootDirectory:a,spinner:r}=t;r.start("Installing packages"),await D(e,{cwd:a,dev:!1,silent:!0}),await D(s,{cwd:a,dev:!0,silent:!0}),r.stop("Installed packages")},"installPackages"),Be=y(async t=>{const{logger:s,magic:e,packemConfig:a,packemConfigFormat:r,rootDirectory:o,spinner:n,transformerReplaceKey:i,transformerSearchKey:l}=t;if(a.includes("typedoc: typedocBuilder")||a.includes("@visulima/packem/builder/typedoc")){s.warn("Typedoc has already been added to the packem config.");return}r==="cjs"?e.prepend(`const typedocBuilder = require("@visulima/packem/builder/typedoc");
6
+ transformer:`);else{const o=r.indexOf("{");o!==-1&&a.appendLeft(o+1,`
7
+ preset: '${s}',`)}},"insertPreset"),Be=y(async t=>{try{return((await pe("git",["status","--porcelain"],{nodeOptions:{cwd:t,stdio:["pipe","pipe","pipe"]}})).stdout?.trim().length??0)>0}catch{return!1}},"checkGitDirty"),X=y(async t=>{const s=S(t,"package.json"),e=await U(s,{resolveCatalogs:!0});return!!(e.devDependencies?.typescript??e.dependencies?.typescript)},"checkTypeScriptInstalled"),Ne=y(async t=>{const s=await X(t),e=[...Pe],a=[...Ce];return s?a.push("@types/react","@types/react-dom"):await b({initialValue:!1,message:"Do you want to use TypeScript?"})&&a.push("typescript","@types/react","@types/react-dom"),{devPackages:a,packages:e}},"getReactTypeDependencies"),O=y(async(t,s,e)=>{const{rootDirectory:a,spinner:r}=t;r.start("Installing packages"),await x(e,{cwd:a,dev:!1,silent:!0}),await x(s,{cwd:a,dev:!0,silent:!0}),r.stop("Installed packages")},"installPackages"),Ve=y(async t=>{const{logger:s,magic:e,packemConfig:a,packemConfigFormat:r,rootDirectory:n,spinner:o,transformerReplaceKey:i,transformerSearchKey:l}=t;if(a.includes("typedoc: typedocBuilder")||a.includes("@visulima/packem/builder/typedoc")){s.warn("Typedoc has already been added to the packem config.");return}r==="cjs"?e.prepend(`const typedocBuilder = require("@visulima/packem/builder/typedoc");
8
8
  `):e.prepend(`import typedocBuilder from "@visulima/packem/builder/typedoc";
9
9
  `),a.includes("builder: {")?e.replace("builder: {",`builder: {
10
10
  typedoc: typedocBuilder,
11
11
  `):e.replace(l,`${i}
12
12
  builder: {
13
13
  typedoc: typedocBuilder,
14
- },`),s.info("Adding typedoc dependencies..."),n.start("Installing packages"),await D($e,{cwd:o,dev:!0,silent:!0}),n.stop("Installed packages"),s.success(`
15
- Typedoc added!`)},"addTypedoc"),Ne=y(async t=>{const{logger:s,packemConfig:e}=t;if(O(e,"react","createReactPreset")){s.warn("React preset has already been added to the packem config.");return}E(t,"react");const{devPackages:a,packages:r}=await Le(t.rootDirectory);s.info("Adding React dependencies..."),await T(t,a,r),s.success(`
16
- React preset added!`)},"addReact"),Ve=y(async t=>{const{logger:s,packemConfig:e}=t;if(O(e,"solid","createSolidPreset")){s.warn("Solid preset has already been added to the packem config.");return}E(t,"solid"),s.info("Adding Solid dependencies..."),await T(t,xe,De),s.success(`
17
- Solid preset added!`)},"addSolid"),Ae=y(async t=>{const{logger:s,packemConfig:e}=t;if(O(e,"vue","createVuePreset")){s.warn("Vue preset has already been added to the packem config.");return}E(t,"vue"),s.info("Adding Vue dependencies..."),await T(t,Pe,Me),s.success(`
18
- Vue preset added!`)},"addVue"),Re=y(async t=>{const{logger:s,packemConfig:e}=t;if(O(e,"svelte","createSveltePreset")){s.warn("Svelte preset has already been added to the packem config.");return}E(t,"svelte"),s.info("Adding Svelte dependencies..."),await T(t,Oe,Ee),s.success(`
19
- Svelte preset added!`)},"addSvelte"),Fe=y(async t=>{const{logger:s,magic:e,packemConfig:a,packemConfigFormat:r,transformerReplaceKey:o,transformerSearchKey:n}=t;if(a.includes("css: {")||a.includes("@visulima/packem/css")){s.warn("Css loaders have already been added to the packem config.");return}const i=[],l=await h({message:"Pick a css loader",options:[{label:"PostCSS",value:"postcss"},{hint:"experimental",label:"Lightning CSS",value:"lightningcss"},{hint:"Tailwind Css Oxide",label:"Tailwind CSS",value:"tailwindcss"}]});if(i.push(l),l!=="tailwindcss"){let p=await J({message:"Pick extra loaders",options:[{label:"Sass",value:"sass"},{label:"Stylus",value:"stylus"},{label:"Less",value:"less"}],required:!1});if(p.includes("sass")){const b=await h({message:"Pick a sass loader",options:[{hint:"recommended",label:"Sass embedded",value:"sass-embedded"},{label:"Sass",value:"sass"},{hint:"legacy",label:"Node Sass",value:"node-sass"}]});b!=="sass"&&(p=p.filter(c=>c!=="sass"),p.push(b))}i.push(...p)}const d=[];for(const p of i)d.push(..._[p]);l!=="tailwindcss"&&i.push("sourceMap");for(const p of i){const b=p==="sass-embedded"||p==="node-sass"?"sass":p;r==="cjs"?e.prepend(`const ${b}Loader = require("@visulima/packem/css/loader/${b.toLowerCase()}");
20
- `):e.prepend(`import ${b}Loader from "@visulima/packem/css/loader/${b.toLowerCase()}";
21
- `)}const m=await w({initialValue:!1,message:"Do you want to minify your css?"});let f;m&&(f=await h({message:"Pick a css minifier",options:[{label:"CSSNano",value:"cssnano"},{label:"Lightning CSS",value:"lightningcss"}]}),i.includes("lightningcss")||d.push(f),r==="cjs"?e.prepend(`const ${f}Minifier = require("@visulima/packem/css/minifier/${f.toLowerCase()}");
22
- `):e.prepend(`import ${f}Minifier from "@visulima/packem/css/minifier/${f.toLowerCase()}";
23
- `));const g=i.map(p=>p==="sass-embedded"||p==="node-sass"?"sass":`${p}Loader`).join(", ");a.includes("rollup: {")?e.replace("rollup: {",`rollup: {
24
- css: {${f?`
25
- minifier: ${f}Minifier,`:""}
26
- loaders: [${g}],
14
+ },`),s.info("Adding typedoc dependencies..."),o.start("Installing packages"),await x(je,{cwd:n,dev:!0,silent:!0}),o.stop("Installed packages"),s.success(`
15
+ Typedoc added!`)},"addTypedoc"),Ae=y(async t=>{const{logger:s,packemConfig:e}=t;if(D(e,"react","createReactPreset")){s.warn("React preset has already been added to the packem config.");return}M(t,"react");const{devPackages:a,packages:r}=await Ne(t.rootDirectory);s.info("Adding React dependencies..."),await O(t,a,r),s.success(`
16
+ React preset added!`)},"addReact"),Re=y(async t=>{const{logger:s,packemConfig:e}=t;if(D(e,"solid","createSolidPreset")){s.warn("Solid preset has already been added to the packem config.");return}M(t,"solid"),s.info("Adding Solid dependencies..."),await O(t,xe,De),s.success(`
17
+ Solid preset added!`)},"addSolid"),Fe=y(async t=>{const s=await X(t),e=[...Oe],a=[...Me];return s?a.push("@types/preact"):await b({initialValue:!1,message:"Do you want to use TypeScript?"})&&a.push("typescript","@types/preact"),{devPackages:a,packages:e}},"getPreactTypeDependencies"),qe=y(async t=>{const{logger:s,packemConfig:e}=t;if(D(e,"preact","createPreactPreset")){s.warn("Preact preset has already been added to the packem config.");return}M(t,"preact");const{devPackages:a,packages:r}=await Fe(t.rootDirectory);s.info("Adding Preact dependencies..."),await O(t,a,r),s.success(`
18
+ Preact preset added!`)},"addPreact"),Je=y(async t=>{const{logger:s,packemConfig:e}=t;if(D(e,"vue","createVuePreset")){s.warn("Vue preset has already been added to the packem config.");return}M(t,"vue"),s.info("Adding Vue dependencies..."),await O(t,Ee,Te),s.success(`
19
+ Vue preset added!`)},"addVue"),Ke=y(async t=>{const{logger:s,packemConfig:e}=t;if(D(e,"svelte","createSveltePreset")){s.warn("Svelte preset has already been added to the packem config.");return}M(t,"svelte"),s.info("Adding Svelte dependencies..."),await O(t,Ie,Le),s.success(`
20
+ Svelte preset added!`)},"addSvelte"),Ge=y(async t=>{const{logger:s,magic:e,packemConfig:a,packemConfigFormat:r,transformerReplaceKey:n,transformerSearchKey:o}=t;if(a.includes("css: {")||a.includes("@visulima/packem/css")){s.warn("Css loaders have already been added to the packem config.");return}const i=[],l=await h({message:"Pick a css loader",options:[{label:"PostCSS",value:"postcss"},{hint:"experimental",label:"Lightning CSS",value:"lightningcss"},{hint:"Tailwind Css Oxide",label:"Tailwind CSS",value:"tailwindcss"}]});if(i.push(l),l!=="tailwindcss"){let p=await K({message:"Pick extra loaders",options:[{label:"Sass",value:"sass"},{label:"Stylus",value:"stylus"},{label:"Less",value:"less"}],required:!1});if(p.includes("sass")){const w=await h({message:"Pick a sass loader",options:[{hint:"recommended",label:"Sass embedded",value:"sass-embedded"},{label:"Sass",value:"sass"},{hint:"legacy",label:"Node Sass",value:"node-sass"}]});w!=="sass"&&(p=p.filter(c=>c!=="sass"),p.push(w))}i.push(...p)}const d=[];for(const p of i)d.push(..._[p]);l!=="tailwindcss"&&i.push("sourceMap");for(const p of i){const w=p==="sass-embedded"||p==="node-sass"?"sass":p;r==="cjs"?e.prepend(`const ${w}Loader = require("@visulima/packem/css/loader/${w.toLowerCase()}");
21
+ `):e.prepend(`import ${w}Loader from "@visulima/packem/css/loader/${w.toLowerCase()}";
22
+ `)}const m=await b({initialValue:!1,message:"Do you want to minify your css?"});let g;m&&(g=await h({message:"Pick a css minifier",options:[{label:"CSSNano",value:"cssnano"},{label:"Lightning CSS",value:"lightningcss"}]}),i.includes("lightningcss")||d.push(g),r==="cjs"?e.prepend(`const ${g}Minifier = require("@visulima/packem/css/minifier/${g.toLowerCase()}");
23
+ `):e.prepend(`import ${g}Minifier from "@visulima/packem/css/minifier/${g.toLowerCase()}";
24
+ `));const f=i.map(p=>p==="sass-embedded"||p==="node-sass"?"sass":`${p}Loader`).join(", ");a.includes("rollup: {")?e.replace("rollup: {",`rollup: {
25
+ css: {${g?`
26
+ minifier: ${g}Minifier,`:""}
27
+ loaders: [${f}],
27
28
  },
28
- `):e.replace(n,`${o}
29
+ `):e.replace(o,`${n}
29
30
  rollup: {
30
- css: {${f?`
31
- minifier: ${f}Minifier,`:""}
32
- loaders: [${g}],
31
+ css: {${g?`
32
+ minifier: ${g}Minifier,`:""}
33
+ loaders: [${f}],
33
34
  },
34
- },`),t.spinner.start("Installing packages"),await D(d,{cwd:t.rootDirectory,dev:!0,silent:!0}),t.spinner.stop("Installed packages"),s.success(`
35
- CSS loaders added!`)},"addCss"),qe=y(t=>{t.addCommand({argument:{description:"Add a packem feature to your project",name:"feature",required:!0},description:"Add a optional packem feature to your project",execute:y(async({argument:s,logger:e,options:a})=>{const r=L(),o=M(B(),a.dir??".");let n;try{n=await W(o,a.config)}catch{e.error("Could not find a packem config file, please run `packem init` first.");return}if(await Te(o)&&!await w({initialValue:!1,message:"Git repository has uncommitted changes. Do you want to proceed?"})){G("Operation cancelled.");return}const i=await re(n,{buffer:!1}),l=i.includes("import")?"esm":"cjs",d=new le(i),m=" transformer,",f=i.includes(" transformer,")?" transformer,":" transformer",g={logger:e,magic:d,packemConfig:i,packemConfigFilePath:n,packemConfigFormat:l,rootDirectory:o,spinner:r,transformerReplaceKey:m,transformerSearchKey:f};s.includes("typedoc")&&await Be(g),s.includes("react")&&await Ne(g),s.includes("solid")&&await Ve(g),s.includes("vue")&&await Ae(g),s.includes("svelte")&&await Re(g),s.includes("css")&&await Fe(g),await oe(n,d.toString(),{overwrite:!0})},"execute"),name:"add",options:[{defaultValue:".",description:"The directory to build",name:"dir",type:String},{description:"Use a custom config file",name:"config",type:String}]})},"createAddCommand");var Ke=Object.defineProperty,X=v((t,s)=>Ke(t,"name",{value:s,configurable:!0}),"a$2");const Je=X(async(t,s,e="PACKEM_")=>{const a=M(s,t);if(!N(a))return{};const{readFile:r}=await import("node:fs/promises"),o=await r(a,"utf-8"),n={};if(typeof R=="function")try{const i=R(o);for(const[l,d]of Object.entries(i))(!e||l.startsWith(e))&&(n[`process.env.${l}`]=JSON.stringify(d))}catch{return q(o,e)}else return q(o,e);return n},"loadEnvFile"),q=X((t,s="PACKEM_")=>{const e={};for(const a of t.split(`
36
- `)){const r=a.trim();if(!r||r.startsWith("#"))continue;const o=r.match(/^([^=:#]+)=(.*)$/);if(o&&o[1]&&o[2]!==void 0){const n=o[1].trim();let i=o[2].trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),(!s||n.startsWith(s))&&(e[`process.env.${n}`]=JSON.stringify(i))}}return e},"loadEnvFileManually");var Ge=Object.defineProperty,Ue=v((t,s)=>Ge(t,"name",{value:s,configurable:!0}),"e$2");const ze=Ue(async(t,s,e,a,r)=>{const o=await W(s,r);let n=await t.import(o,{default:!0,try:!0})||{};return typeof n=="function"&&(n=await n(e,a)),{config:n,path:o}},"loadPackemConfig");var We=Object.defineProperty,_e=v((t,s)=>We(t,"name",{value:s,configurable:!0}),"e$1");const Xe=_e(async(t,s)=>{switch(t){case"none":return{};case"react":{const{createReactPreset:e}=await import("../config/preset/react.js");t=e();break}case"solid":{const{createSolidPreset:e}=await import("../config/preset/solid.js");t=e();break}case"svelte":{const{createSveltePreset:e}=await import("../config/preset/svelte.js");t=e();break}case"vue":{const{createVuePreset:e}=await import("../config/preset/vue.js");t=e();break}default:typeof t=="string"&&(t=await s.import(t)||{})}return typeof t=="function"&&(t=t()),t},"loadPreset");var He=Object.defineProperty,C=v((t,s)=>He(t,"name",{value:s,configurable:!0}),"a$1");const Ye=C(t=>{t.addCommand({description:"Demonstrate options required",execute:C(async({logger:s,options:e})=>{let a="build";e.watch?a="watch":e.jit&&(a="jit");let r;const o={};if(e.env)for(const c of e.env)c.key==="NODE_ENV"?r=c.value:o[`process.env.${c.key}`]=JSON.stringify(c.value);r===void 0&&(e.production?r=A:e.development&&(r=pe));const n=[];if(e.external)for(const c of e.external)n.push(c.split(","));const i=M(B(),e.dir??"."),l=ue(i,{debug:e.debug}),{config:d,path:m}=await ze(l,i,r,a,e.config??void 0);s.debug("Using packem config found at",m);const f=e.envFile??d.envFile,g=e.envPrefix??d.envPrefix??"PACKEM_",p={};if(f){const c=await Je(f,i,g);Object.assign(p,c)}Object.assign(p,o);const b=await Xe(d.preset??"none",l);e.minify&&e.sourcemap===void 0&&(e.sourcemap=!0);try{const c=me()(d,fe,b,{analyze:e.analyze,cjsInterop:e.cjsInterop,clean:e.clean,dtsOnly:e.dtsOnly,externals:n,killSignal:e.killSignal,minify:e.minify===void 0?r===A:e.minify,onSuccess:e.onSuccess,rollup:{esbuild:{target:e.target},license:{path:e.license},metafile:e.metafile,...Object.keys(p).length>0||Object.keys(o).length>0?{replace:{values:p}}:{},resolveExternals:e.noExternal?{builtins:!1,deps:!1,devDeps:!1,optDeps:!1,peerDeps:!1}:{}},runtime:e.runtime,sourcemap:e.metafile||e.analyze||e.sourcemap,unbundle:e.unbundle,validation:e.validation===!1?!1:{},...e.typedoc?{typedoc:{format:"html"}}:{}});await ge(i,a,r,s,e.debug,c,e.tsconfig??void 0)}catch(c){s.error(c),se(1)}},"execute"),name:"build",options:[{defaultValue:".",description:"The directory to build",name:"dir",type:String},{alias:"t",description:"Environments to support. `target` in tsconfig.json is automatically added. Defaults to the current Node.js version.",name:"target"},{description:"Use a custom config file",name:"config",type:String},{description:"Path to the tsconfig.json file",name:"tsconfig",type:String},{description:"Minify the output",name:"minify",type:Boolean},{description:"Generate sourcemaps (experimental)",name:"sourcemap",type:Boolean},{conflicts:"jit",description:"Watch for changes",name:"watch",type:Boolean},{conflicts:"watch",description:"Stub the package for JIT compilation",name:"jit",type:Boolean},{description:"Compile-time environment variables (eg. --env.NODE_ENV=production)",multiple:!0,name:"env",type:C(s=>{const[e,a]=s.split("=");return{key:e,value:a}},"type")},{description:"Path to the .env file to load environment variables from",name:"env-file",type:String},{description:"Prefix for environment variables to load from .env file (default: PACKEM_)",name:"env-prefix",type:String},{defaultValue:!1,description:"Generate meta file (experimental)",name:"metafile",type:Boolean},{description:"Path to the license file",name:"license",type:String},{conflicts:"watch",description:"Visualize and analyze the bundle",name:"analyze",type:Boolean},{description:"CJS interop mode, can export default and named export, (experimental).",name:"cjsInterop",type:Boolean},{conflicts:"development",description:"Run code in production environment",name:"production",type:Boolean},{conflicts:"production",description:"Run code in development environment",name:"development",type:Boolean},{description:"Do not clean the dist directory before building",name:"no-clean",type:Boolean},{description:"Only generate .d.ts files",name:"dts-only",type:Boolean},{description:"Disable the output validation",name:"no-validation",type:Boolean},{description:"Disable the cache",name:"no-cache",type:Boolean},{description:"Generate type documentation",name:"typedoc",type:Boolean},{description:"Execute command after successful build, specially useful for watch mode",name:"onSuccess",type:String},{description:'Signal to kill child process, "SIGTERM" or "SIGKILL"',name:"killSignal",type:C(s=>{if(s==="SIGTERM"||s==="SIGKILL")return s;throw new Error("Invalid kill signal. Use 'SIGTERM' or 'SIGKILL'.")},"type")},{description:"Specify an external dependency, separate by comma (eg. --external lodash,react,react-dom)",multiple:!0,name:"external",typeLabel:"string[]"},{description:"do not bundle external dependencies",name:"no-external",type:Boolean},{description:"Specify the build runtime (nodejs, browser).",name:"runtime",type:C(s=>{if(s==="node"||s==="browser")return s;throw new Error("Invalid runtime. Use 'node' or 'browser'.")},"type")},{description:"Enable unbundle mode to preserve source file structure instead of bundling into a single file",name:"unbundle",type:Boolean}]})},"createBuildCommand");var Qe=Object.defineProperty,x=v((t,s)=>Qe(t,"name",{value:s,configurable:!0}),"f");const Ze=x(t=>{t.addCommand({description:"Initialize packem configuration",execute:x(async({logger:s,options:e})=>{if(te("Welcome to packem setup"),I(S(e.dir,"packem.config.mjs"))){s.info("Packem project already initialized, you can use `packem build` to build your project");return}const a=M(B(),e.dir??"."),r=S(a,"package.json");if(!I(r))throw new Error("No package.json found in the directory");const o=await U(r,{resolveCatalogs:!0}),n=[];o.dependencies&&n.push(...Object.keys(o.dependencies)),o.devDependencies&&n.push(...Object.keys(o.devDependencies));const i=!!(o.devDependencies?.typescript??o.dependencies?.typescript),l=[];if(e.typescript===void 0&&!i?(e.typescript=await w({message:"Do you want to install TypeScript?"}),e.typescript&&l.push("typescript@latest")):V.message(`TypeScript version ${o.devDependencies?.typescript??o.dependencies?.typescript} is already installed`),!I(S(a,"tsconfig.json"))){const c=await w({message:"Do you want to use generate a tsconfig.json?"}),u=await w({message:"Do you want to run your code in the DOM?"});if(c){const k=L();k.start("Generating tsconfig.json"),ne(S(a,"tsconfig.json"),{compilerOptions:{esModuleInterop:!0,skipLibCheck:!0,target:"es2022",allowJs:!0,resolveJsonModule:!0,moduleDetection:"force",isolatedModules:!0,verbatimModuleSyntax:!0,strict:!0,noUncheckedIndexedAccess:!0,noImplicitOverride:!0,module:"NodeNext",outDir:"dist",sourceMap:!0,declaration:!0,lib:u?["es2022","dom","dom.iterable"]:["es2022"]}}),k.stop("")}}if(e.runtime===void 0&&(e.runtime=await h({message:"Pick a build runtime",options:[{label:"Node",value:"node"},{label:"Browser",value:"browser"}]})),n.includes("esbuild")?e.transformer="esbuild":n.includes("@swc/core")?e.transformer="swc":n.includes("sucrase")&&(e.transformer="sucrase"),e.transformer===void 0?(e.transformer=await h({message:"Pick a transformer",options:[{label:"esbuild",value:"esbuild"},{label:"swc",value:"swc"},{label:"Sucrase",value:"sucrase"},{label:"OXC",value:"oxc"}]}),e.transformer&&e.transformer!=="oxc"&&!n.includes(e.transformer)&&await w({message:`Do you want to install ${e.transformer}?`})&&l.push(e.transformer==="swc"?"@swc/core":e.transformer)):V.message(`Transformer ${e.transformer} is already installed.`),e.isolatedDeclarationTransformer===void 0&&(e.isolatedDeclarationTransformer=await w({message:"Do you want to use an isolated declaration types?",initialValue:!1})),e.isolatedDeclarationTransformer===void 0&&(e.isolatedDeclarationTransformer=await h({message:"Pick a isolated declaration transformer",options:[{label:"Typescript",value:"typescript"},{label:"swc",value:"swc"},{label:"OXC",value:"oxc"},{label:"None",value:void 0}]}),e.isolatedDeclarationTransformer!==void 0)){let c;switch(e.isolatedDeclarationTransformer){case"oxc":{c="oxc-transform";break}case"swc":{c="@swc/core";break}case"typescript":{c="typescript";break}default:G("Invalid isolated declaration transformer")}c!==void 0&&!n.includes(c)&&await w({message:`Do you want to install ${c}?`})&&l.push(c)}e.css===void 0&&(e.css=await w({message:"Do you want to use css in your project?",initialValue:!1}));const d=[];if(e.css){const c=await h({message:"Pick a css loader",options:[{label:"PostCSS",value:"postcss"},{hint:"experimental",label:"Lightning CSS",value:"lightningcss"}]});d.push(c);let u=await J({message:"Pick your loaders",options:[{label:"Sass",value:"sass"},{label:"Stylus",value:"stylus"},{label:"Less",value:"less"}],required:!1});if(u.includes("sass")){const k=await h({message:"Pick a sass loader",options:[{label:"Sass embedded",value:"sass-embedded",hint:"recommended"},{label:"Sass",value:"sass"},{label:"Node Sass",value:"node-sass",hint:"legacy"}]});k!=="sass"&&(u=u.filter(H=>H!=="sass"),u.push(k))}if(d.push(...u),await w({message:`Do you want to install "${d.join('", "')}"?`}))for(const k of d)l.push(..._[k]);d.push("sourceMap")}e.cssMinifier===void 0&&(e.cssMinifier=await w({message:"Do you want to minify your css?",initialValue:!1}));let m;e.cssMinifier&&(m=await h({message:"Pick a css minifier",options:[{label:"CSSNano",value:"cssnano"},{label:"Lightning CSS",value:"lightningcss"}]}),d.includes("lightningcss")||await w({message:`Do you want to install "${m}"?`})&&l.push(m));let f="",g="";if(e.isolatedDeclarationTransformer&&(g+=`,
37
- isolatedDeclarationTransformer`),(e.css||e.cssMinifier)&&(g+=`,
35
+ },`),t.spinner.start("Installing packages"),await x(d,{cwd:t.rootDirectory,dev:!0,silent:!0}),t.spinner.stop("Installed packages"),s.success(`
36
+ CSS loaders added!`)},"addCss"),Ue=y(t=>{t.addCommand({argument:{description:"Add a packem feature to your project",name:"feature",required:!0},description:"Add a optional packem feature to your project",execute:y(async({argument:s,logger:e,options:a})=>{const r=L(),n=T(B(),a.dir??".");let o;try{o=await W(n,a.config)}catch{e.error("Could not find a packem config file, please run `packem init` first.");return}if(await Be(n)&&!await b({initialValue:!1,message:"Git repository has uncommitted changes. Do you want to proceed?"})){G("Operation cancelled.");return}const i=await ne(o,{buffer:!1}),l=i.includes("import")?"esm":"cjs",d=new de(i),m=" transformer,",g=i.includes(" transformer,")?" transformer,":" transformer",f={logger:e,magic:d,packemConfig:i,packemConfigFilePath:o,packemConfigFormat:l,rootDirectory:n,spinner:r,transformerReplaceKey:m,transformerSearchKey:g};s.includes("typedoc")&&await Ve(f),s.includes("react")&&await Ae(f),s.includes("solid")&&await Re(f),s.includes("preact")&&await qe(f),s.includes("vue")&&await Je(f),s.includes("svelte")&&await Ke(f),s.includes("css")&&await Ge(f),await oe(o,d.toString(),{overwrite:!0})},"execute"),name:"add",options:[{defaultValue:".",description:"The directory to build",name:"dir",type:String},{description:"Use a custom config file",name:"config",type:String}]})},"createAddCommand");var ze=Object.defineProperty,H=v((t,s)=>ze(t,"name",{value:s,configurable:!0}),"a$2");const We=H(async(t,s,e="PACKEM_")=>{const a=T(s,t);if(!N(a))return{};const{readFile:r}=await import("node:fs/promises"),n=await r(a,"utf-8"),o={};if(typeof R=="function")try{const i=R(n);for(const[l,d]of Object.entries(i))(!e||l.startsWith(e))&&(o[`process.env.${l}`]=JSON.stringify(d))}catch{return q(n,e)}else return q(n,e);return o},"loadEnvFile"),q=H((t,s="PACKEM_")=>{const e={};for(const a of t.split(`
37
+ `)){const r=a.trim();if(!r||r.startsWith("#"))continue;const n=r.match(/^([^=:#]+)=(.*)$/);if(n&&n[1]&&n[2]!==void 0){const o=n[1].trim();let i=n[2].trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),(!s||o.startsWith(s))&&(e[`process.env.${o}`]=JSON.stringify(i))}}return e},"loadEnvFileManually");var _e=Object.defineProperty,Xe=v((t,s)=>_e(t,"name",{value:s,configurable:!0}),"e$2");const He=Xe(async(t,s,e,a,r)=>{const n=await W(s,r);let o=await t.import(n,{default:!0,try:!0})||{};return typeof o=="function"&&(o=await o(e,a)),{config:o,path:n}},"loadPackemConfig");var Ye=Object.defineProperty,Qe=v((t,s)=>Ye(t,"name",{value:s,configurable:!0}),"e$1");const Ze=Qe(async(t,s)=>{switch(t){case"none":return{};case"react":{const{createReactPreset:e}=await import("../config/preset/react.js");t=e();break}case"solid":{const{createSolidPreset:e}=await import("../config/preset/solid.js");t=e();break}case"svelte":{const{createSveltePreset:e}=await import("../config/preset/svelte.js");t=e();break}case"preact":{const{createPreactPreset:e}=await import("../config/preset/preact.js");t=e();break}case"vue":{const{createVuePreset:e}=await import("../config/preset/vue.js");t=e();break}default:typeof t=="string"&&(t=await s.import(t)||{})}return typeof t=="function"&&(t=t()),t},"loadPreset");var es=Object.defineProperty,C=v((t,s)=>es(t,"name",{value:s,configurable:!0}),"a$1");const ss=C(t=>{t.addCommand({description:"Demonstrate options required",execute:C(async({logger:s,options:e})=>{let a="build";e.watch?a="watch":e.jit&&(a="jit");let r;const n={};if(e.env)for(const c of e.env)c.key==="NODE_ENV"?r=c.value:n[`process.env.${c.key}`]=JSON.stringify(c.value);r===void 0&&(e.production?r=A:e.development&&(r=ue));const o=[];if(e.external)for(const c of e.external)o.push(c.split(","));const i=T(B(),e.dir??"."),l=me(i,{debug:e.debug}),{config:d,path:m}=await He(l,i,r,a,e.config??void 0);s.debug("Using packem config found at",m);const g=e.envFile??d.envFile,f=e.envPrefix??d.envPrefix??"PACKEM_",p={};if(g){const c=await We(g,i,f);Object.assign(p,c)}Object.assign(p,n);const w=await Ze(d.preset??"none",l);e.minify&&e.sourcemap===void 0&&(e.sourcemap=!0);try{const c=fe()(d,ge,w,{analyze:e.analyze,cjsInterop:e.cjsInterop,clean:e.clean,dtsOnly:e.dtsOnly,externals:o,killSignal:e.killSignal,minify:e.minify===void 0?r===A:e.minify,onSuccess:e.onSuccess,rollup:{esbuild:{target:e.target},license:{path:e.license},metafile:e.metafile,...Object.keys(p).length>0||Object.keys(n).length>0?{replace:{values:p}}:{},resolveExternals:e.noExternal?{builtins:!1,deps:!1,devDeps:!1,optDeps:!1,peerDeps:!1}:{}},runtime:e.runtime,sourcemap:e.metafile||e.analyze||e.sourcemap,unbundle:e.unbundle,validation:e.validation===!1?!1:{},...e.typedoc?{typedoc:{format:"html"}}:{}});await ye(i,a,r,s,e.debug,c,e.tsconfig??void 0)}catch(c){s.error(c),te(1)}},"execute"),name:"build",options:[{defaultValue:".",description:"The directory to build",name:"dir",type:String},{alias:"t",description:"Environments to support. `target` in tsconfig.json is automatically added. Defaults to the current Node.js version.",name:"target"},{description:"Use a custom config file",name:"config",type:String},{description:"Path to the tsconfig.json file",name:"tsconfig",type:String},{description:"Minify the output",name:"minify",type:Boolean},{description:"Generate sourcemaps (experimental)",name:"sourcemap",type:Boolean},{conflicts:"jit",description:"Watch for changes",name:"watch",type:Boolean},{conflicts:"watch",description:"Stub the package for JIT compilation",name:"jit",type:Boolean},{description:"Compile-time environment variables (eg. --env.NODE_ENV=production)",multiple:!0,name:"env",type:C(s=>{const[e,a]=s.split("=");return{key:e,value:a}},"type")},{description:"Path to the .env file to load environment variables from",name:"env-file",type:String},{description:"Prefix for environment variables to load from .env file (default: PACKEM_)",name:"env-prefix",type:String},{defaultValue:!1,description:"Generate meta file (experimental)",name:"metafile",type:Boolean},{description:"Path to the license file",name:"license",type:String},{conflicts:"watch",description:"Visualize and analyze the bundle",name:"analyze",type:Boolean},{description:"CJS interop mode, can export default and named export, (experimental).",name:"cjsInterop",type:Boolean},{conflicts:"development",description:"Run code in production environment",name:"production",type:Boolean},{conflicts:"production",description:"Run code in development environment",name:"development",type:Boolean},{description:"Do not clean the dist directory before building",name:"no-clean",type:Boolean},{description:"Only generate .d.ts files",name:"dts-only",type:Boolean},{description:"Disable the output validation",name:"no-validation",type:Boolean},{description:"Disable the cache",name:"no-cache",type:Boolean},{description:"Generate type documentation",name:"typedoc",type:Boolean},{description:"Execute command after successful build, specially useful for watch mode",name:"onSuccess",type:String},{description:'Signal to kill child process, "SIGTERM" or "SIGKILL"',name:"killSignal",type:C(s=>{if(s==="SIGTERM"||s==="SIGKILL")return s;throw new Error("Invalid kill signal. Use 'SIGTERM' or 'SIGKILL'.")},"type")},{description:"Specify an external dependency, separate by comma (eg. --external lodash,react,react-dom)",multiple:!0,name:"external",typeLabel:"string[]"},{description:"do not bundle external dependencies",name:"no-external",type:Boolean},{description:"Specify the build runtime (nodejs, browser).",name:"runtime",type:C(s=>{if(s==="node"||s==="browser")return s;throw new Error("Invalid runtime. Use 'node' or 'browser'.")},"type")},{description:"Enable unbundle mode to preserve source file structure instead of bundling into a single file",name:"unbundle",type:Boolean}]})},"createBuildCommand");var ts=Object.defineProperty,P=v((t,s)=>ts(t,"name",{value:s,configurable:!0}),"f");const as=P(t=>{t.addCommand({description:"Initialize packem configuration",execute:P(async({logger:s,options:e})=>{if(ae("Welcome to packem setup"),I(S(e.dir,"packem.config.mjs"))){s.info("Packem project already initialized, you can use `packem build` to build your project");return}const a=T(B(),e.dir??"."),r=S(a,"package.json");if(!I(r))throw new Error("No package.json found in the directory");const n=await U(r,{resolveCatalogs:!0}),o=[];n.dependencies&&o.push(...Object.keys(n.dependencies)),n.devDependencies&&o.push(...Object.keys(n.devDependencies));const i=!!(n.devDependencies?.typescript??n.dependencies?.typescript),l=[];if(e.typescript===void 0&&!i?(e.typescript=await b({message:"Do you want to install TypeScript?"}),e.typescript&&l.push("typescript@latest")):V.message(`TypeScript version ${n.devDependencies?.typescript??n.dependencies?.typescript} is already installed`),!I(S(a,"tsconfig.json"))){const c=await b({message:"Do you want to use generate a tsconfig.json?"}),u=await b({message:"Do you want to run your code in the DOM?"});if(c){const k=L();k.start("Generating tsconfig.json"),ce(S(a,"tsconfig.json"),{compilerOptions:{esModuleInterop:!0,skipLibCheck:!0,target:"es2022",allowJs:!0,resolveJsonModule:!0,moduleDetection:"force",isolatedModules:!0,verbatimModuleSyntax:!0,strict:!0,noUncheckedIndexedAccess:!0,noImplicitOverride:!0,module:"NodeNext",outDir:"dist",sourceMap:!0,declaration:!0,lib:u?["es2022","dom","dom.iterable"]:["es2022"]}}),k.stop("")}}if(e.runtime===void 0&&(e.runtime=await h({message:"Pick a build runtime",options:[{label:"Node",value:"node"},{label:"Browser",value:"browser"}]})),o.includes("esbuild")?e.transformer="esbuild":o.includes("@swc/core")?e.transformer="swc":o.includes("sucrase")&&(e.transformer="sucrase"),e.transformer===void 0?(e.transformer=await h({message:"Pick a transformer",options:[{label:"esbuild",value:"esbuild"},{label:"swc",value:"swc"},{label:"Sucrase",value:"sucrase"},{label:"OXC",value:"oxc"}]}),e.transformer&&e.transformer!=="oxc"&&!o.includes(e.transformer)&&await b({message:`Do you want to install ${e.transformer}?`})&&l.push(e.transformer==="swc"?"@swc/core":e.transformer)):V.message(`Transformer ${e.transformer} is already installed.`),e.isolatedDeclarationTransformer===void 0&&(e.isolatedDeclarationTransformer=await b({message:"Do you want to use an isolated declaration types?",initialValue:!1})),e.isolatedDeclarationTransformer===void 0&&(e.isolatedDeclarationTransformer=await h({message:"Pick a isolated declaration transformer",options:[{label:"Typescript",value:"typescript"},{label:"swc",value:"swc"},{label:"OXC",value:"oxc"},{label:"None",value:void 0}]}),e.isolatedDeclarationTransformer!==void 0)){let c;switch(e.isolatedDeclarationTransformer){case"oxc":{c="oxc-transform";break}case"swc":{c="@swc/core";break}case"typescript":{c="typescript";break}default:G("Invalid isolated declaration transformer")}c!==void 0&&!o.includes(c)&&await b({message:`Do you want to install ${c}?`})&&l.push(c)}e.css===void 0&&(e.css=await b({message:"Do you want to use css in your project?",initialValue:!1}));const d=[];if(e.css){const c=await h({message:"Pick a css loader",options:[{label:"PostCSS",value:"postcss"},{hint:"experimental",label:"Lightning CSS",value:"lightningcss"}]});d.push(c);let u=await K({message:"Pick your loaders",options:[{label:"Sass",value:"sass"},{label:"Stylus",value:"stylus"},{label:"Less",value:"less"}],required:!1});if(u.includes("sass")){const k=await h({message:"Pick a sass loader",options:[{label:"Sass embedded",value:"sass-embedded",hint:"recommended"},{label:"Sass",value:"sass"},{label:"Node Sass",value:"node-sass",hint:"legacy"}]});k!=="sass"&&(u=u.filter(Y=>Y!=="sass"),u.push(k))}if(d.push(...u),await b({message:`Do you want to install "${d.join('", "')}"?`}))for(const k of d)l.push(..._[k]);d.push("sourceMap")}e.cssMinifier===void 0&&(e.cssMinifier=await b({message:"Do you want to minify your css?",initialValue:!1}));let m;e.cssMinifier&&(m=await h({message:"Pick a css minifier",options:[{label:"CSSNano",value:"cssnano"},{label:"Lightning CSS",value:"lightningcss"}]}),d.includes("lightningcss")||await b({message:`Do you want to install "${m}"?`})&&l.push(m));let g="",f="";if(e.isolatedDeclarationTransformer&&(f+=`,
38
+ isolatedDeclarationTransformer`),(e.css||e.cssMinifier)&&(f+=`,
38
39
  rollup: {
39
- css: {`),e.css){const c=d.map(u=>((u==="sass-embedded"||u==="node-sass")&&(u="sass"),`${u}Loader`)).join(", ");g+=`
40
- loaders: [${c}],`}if(e.cssMinifier&&m&&(g+=`
41
- minifier: ${m}Minifier,`),(e.css||e.cssMinifier)&&(g+=`
40
+ css: {`),e.css){const c=d.map(u=>((u==="sass-embedded"||u==="node-sass")&&(u="sass"),`${u}Loader`)).join(", ");f+=`
41
+ loaders: [${c}],`}if(e.cssMinifier&&m&&(f+=`
42
+ minifier: ${m}Minifier,`),(e.css||e.cssMinifier)&&(f+=`
42
43
  }
43
- }`),i||o.type==="module"){let c="";if(e.isolatedDeclarationTransformer&&(c+=`import isolatedDeclarationTransformer from "@visulima/packem/dts/isolated/transformer/${e.isolatedDeclarationTransformer}";
44
+ }`),i||n.type==="module"){let c="";if(e.isolatedDeclarationTransformer&&(c+=`import isolatedDeclarationTransformer from "@visulima/packem/dts/isolated/transformer/${e.isolatedDeclarationTransformer}";
44
45
  `),e.css)for(let u of d)(u==="sass-embedded"||u==="node-sass")&&(u="sass"),c+=`import ${u}Loader from "@visulima/packem/css/loader/${u.toLowerCase()}";
45
46
  `;e.cssMinifier&&m&&(c+=`import ${m}Minifier from "@visulima/packem/css/minifier/${m.toLowerCase()}";
46
- `),f=`import { defineConfig } from "@visulima/packem/config";
47
+ `),g=`import { defineConfig } from "@visulima/packem/config";
47
48
  import transformer from "@visulima/packem/transformer/${e.transformer}";
48
49
  ${c}
49
50
  export default defineConfig({
50
51
  runtime: "${e.runtime}",
51
- transformer${g}
52
+ transformer${f}
52
53
  });
53
54
  `}else{let c="";if(e.isolatedDeclarationTransformer&&(c+=`const isolatedDeclarationTransformer = require("@visulima/packem/dts/isolated/transformer/${e.isolatedDeclarationTransformer}");
54
55
  `),e.css)for(let u of d)(u==="sass-embedded"||u==="node-sass")&&(u="sass"),c+=`const ${u}Loader = require("@visulima/packem/css/loader/${u.toLowerCase()}");
55
56
  `;e.cssMinifier&&m&&(c+=`const ${m}Minifier = require("@visulima/packem/css/minifier/${m.toLowerCase()}");
56
- `),f=`const { defineConfig } = require("@visulima/packem/config");
57
+ `),g=`const { defineConfig } = require("@visulima/packem/config");
57
58
  const transformer = require("@visulima/packem/transformer/${e.transformer}");
58
59
  ${c}
59
60
  module.exports = defineConfig({
60
61
  runtime: ${e.runtime},
61
- transformer${g}
62
+ transformer${f}
62
63
  });
63
- `}const p=L(),b=i?"ts":"js";l.length>0&&(p.start("Installing packages"),await D(l,{cwd:a,dev:!0,silent:!0}),p.stop("Installed packages")),p.start(`Creating packem.config.${b}`),ce(S(a,`packem.config.${b}`),f),p.stop(`Created packem.config.${b}`),ae("Now you can run `packem build` to build your project")},"execute"),name:"init",options:[{defaultValue:".",description:"The directory to initialize",name:"dir",type:String},{description:"Choose a transformer",name:"transformer",type:x(s=>{if(typeof s=="string"&&["esbuild","sucrase","swc"].includes(s))return s;throw new Error("Invalid transformer, please choose one of 'swc', 'sucrase' or 'esbuild'")},"type")},{description:"Choose a isolated declaration transformer",name:"isolated-declaration-transformer",type:x(s=>{if(typeof s=="string"&&["none","oxc","swc","typescript"].includes(s))return s;throw new Error("Invalid isolated declaration isolated declaration, please choose one of 'none', 'oxc', 'swc' or 'typescript'")},"type")},{description:"Use CSS",name:"css",type:Boolean},{description:"Use CSS minifier",name:"css-minifier",type:Boolean},{Description:"Use TypeScript",name:"typescript",type:Boolean},{description:"Specify the build runtime (nodejs, browser).",name:"runtime",type:x(s=>{if(s==="node"||s==="browser")return s;throw new Error("Invalid runtime. Use 'node' or 'browser'.")},"type")}]})},"createInitCommand");var es=Object.defineProperty,$=v((t,s)=>es(t,"name",{value:s,configurable:!0}),"a");const ss=$(async({cwd:t,dryRun:s,logger:e})=>{if(s)e.info("Dry run enabled. No changes will be made.");else{const r=we({input:j.stdin,output:j.stdout});e.warn(`
64
+ `}const p=L(),w=i?"ts":"js";l.length>0&&(p.start("Installing packages"),await x(l,{cwd:a,dev:!0,silent:!0}),p.stop("Installed packages")),p.start(`Creating packem.config.${w}`),le(S(a,`packem.config.${w}`),g),p.stop(`Created packem.config.${w}`),ie("Now you can run `packem build` to build your project")},"execute"),name:"init",options:[{defaultValue:".",description:"The directory to initialize",name:"dir",type:String},{description:"Choose a transformer",name:"transformer",type:P(s=>{if(typeof s=="string"&&["esbuild","sucrase","swc"].includes(s))return s;throw new Error("Invalid transformer, please choose one of 'swc', 'sucrase' or 'esbuild'")},"type")},{description:"Choose a isolated declaration transformer",name:"isolated-declaration-transformer",type:P(s=>{if(typeof s=="string"&&["none","oxc","swc","typescript"].includes(s))return s;throw new Error("Invalid isolated declaration isolated declaration, please choose one of 'none', 'oxc', 'swc' or 'typescript'")},"type")},{description:"Use CSS",name:"css",type:Boolean},{description:"Use CSS minifier",name:"css-minifier",type:Boolean},{Description:"Use TypeScript",name:"typescript",type:Boolean},{description:"Specify the build runtime (nodejs, browser).",name:"runtime",type:P(s=>{if(s==="node"||s==="browser")return s;throw new Error("Invalid runtime. Use 'node' or 'browser'.")},"type")}]})},"createInitCommand");var is=Object.defineProperty,$=v((t,s)=>is(t,"name",{value:s,configurable:!0}),"a");const rs=$(async({cwd:t,dryRun:s,logger:e})=>{if(s)e.info("Dry run enabled. No changes will be made.");else{const r=ve({input:j.stdin,output:j.stdout});e.warn(`
64
65
 
65
66
  Before proceeding, review the migration guide at https://www.visulima.com/docs/package/packem, as this process will modify your files.
66
- Uncommitted changes will be lost. Use the --dry-run flag to preview changes without applying them.`);const o=await r.question("Continue? (Y/n) ");if(r.close(),!(o.toLowerCase()==="y"||o==="")){e.error("Migration cancelled."),j.exitCode=1;return}}t&&j.chdir(t);let a=!1;await as(s,e)&&(a=!0),await rs(s,e)&&(a=!0),a?e.success("Migration completed. Remember to run install command with your package manager."):(e.error("No migration performed."),j.exitCode=1)},"migrate"),K={bunchee:"@visulima/packem",tsup:"@visulima/packem","tsup-node":"@visulima/packem",unbuild:"@visulima/packem"},ts={dependencies:`^${F.version}`,devDependencies:`^${F.version}`,peerDependencies:"*"},as=$(async(t,s)=>{if(!N("package.json"))return s.error("No package.json found"),!1;const e=await ye("package.json","utf8"),a=JSON.parse(e);let r=!1;for(const[i,l]of Object.entries(ts))for(const[d,m]of Object.entries(K))a[i]?.[d]&&(s.info(`Migrating \`${i}\` from ${d} to ${m}.`),r=!0,a[i]=os(a[i],d,m,l));if(a.scripts)for(const i of Object.keys(a.scripts)){for(const[l,d]of Object.entries(K))a.scripts[i].includes(l)&&(s.info(`Migrating \`${i}\` script from ${l} to packem`),r=!0,a.scripts[i]=a.scripts[i].replaceAll(new RegExp(String.raw`\b${l}\b`,"g"),"packem").replaceAll(new RegExp(String.raw`\b${l}-node\b`,"g"),"packem"));a.scripts[i].includes("tsup")&&(s.info(`Migrating \`${i}\` script from tsup to packem`),r=!0,a.scripts[i]=a.scripts[i].replaceAll(/\btsup(?:-node)?/g,"packem build").replaceAll(/\bbuild\b/g,"build")),a.scripts[i].includes("unbuild")&&(s.info(`Migrating \`${i}\` script from unbuild to packem`),r=!0,a.scripts[i]=a.scripts[i].replaceAll(/\bunbuild\b/g,"packem build")),a.scripts[i].includes("bunchee")&&(s.info(`Migrating \`${i}\` script from bunchee to packem`),r=!0,a.scripts[i]=a.scripts[i].replaceAll(/\bbunchee\b/g,"packem build"))}const o=["tsup","unbuild","bunchee"];for(const i of o)a[i]&&s.info(`Found \`${i}\` config field in package.json. Consider moving to packem.config.ts`);if(!r)return s.warn("No migratable bundler dependencies found in package.json"),!1;const n=`${JSON.stringify(a,null,e.includes(" ")?" ":2)}
67
- `;return t?(s.info("[dry-run] package.json changes:"),s.info("Old content:"),console.info(e),s.info("New content:"),console.info(n)):(await be("package.json",n),s.success("Migrated `package.json`")),!0},"migratePackageJson"),is=["tsup.config.ts","tsup.config.cts","tsup.config.mts","tsup.config.js","tsup.config.cjs","tsup.config.mjs","tsup.config.json","build.config.ts","build.config.cts","build.config.mts","build.config.js","build.config.cjs","build.config.mjs","bunchee.config.ts","bunchee.config.cts","bunchee.config.mts","bunchee.config.js","bunchee.config.cjs","bunchee.config.mjs"],rs=$(async(t,s)=>{let e=!1;for(const a of is)N(a)&&(s.info(`Found config file \`${a}\`. Consider creating packem.config.ts instead.`),s.warn("Manual migration required for config files. See https://www.visulima.com/docs/package/packem"),e=!0);return e||s.warn("No bundler config files found"),e},"migrateConfigFiles"),os=$((t,s,e,a)=>{const r={};for(const o of Object.keys(t))o===s?r[e]=a||t[s]:r[o]=t[o];return r},"renameKey"),ns=$(t=>{t.addCommand({description:"Migrate from other bundlers (tsup, unbuild, bunchee, etc.) to packem",execute:$(async({logger:s,options:e})=>{await ss({cwd:e.cwd,dryRun:e.dryRun,logger:s})},"execute"),name:"migrate",options:[{defaultValue:".",description:"The directory to migrate",name:"cwd",type:String},{description:"Preview changes without applying them",name:"dry-run",type:Boolean}]})},"createMigrateCommand");try{require("node:module")?.enableCompileCache?.()||require("v8-compile-cache")}catch{}const P=Q("packem",{logger:await Z({reporters:[new ee({error:{hideErrorCauseCodeView:!0,hideErrorCodeView:!0,hideErrorErrorsCodeView:!0}})],scope:"packem"}),packageName:ve,packageVersion:z});Ze(P);Ye(P);qe(P);ns(P);P.run({shouldExitProcess:!1});
67
+ Uncommitted changes will be lost. Use the --dry-run flag to preview changes without applying them.`);const n=await r.question("Continue? (Y/n) ");if(r.close(),!(n.toLowerCase()==="y"||n==="")){e.error("Migration cancelled."),j.exitCode=1;return}}t&&j.chdir(t);let a=!1;await os(s,e)&&(a=!0),await ls(s,e)&&(a=!0),a?e.success("Migration completed. Remember to run install command with your package manager."):(e.error("No migration performed."),j.exitCode=1)},"migrate"),J={bunchee:"@visulima/packem",tsup:"@visulima/packem","tsup-node":"@visulima/packem",unbuild:"@visulima/packem"},ns={dependencies:`^${F.version}`,devDependencies:`^${F.version}`,peerDependencies:"*"},os=$(async(t,s)=>{if(!N("package.json"))return s.error("No package.json found"),!1;const e=await be("package.json","utf8"),a=JSON.parse(e);let r=!1;for(const[i,l]of Object.entries(ns))for(const[d,m]of Object.entries(J))a[i]?.[d]&&(s.info(`Migrating \`${i}\` from ${d} to ${m}.`),r=!0,a[i]=ds(a[i],d,m,l));if(a.scripts)for(const i of Object.keys(a.scripts)){for(const[l,d]of Object.entries(J))a.scripts[i].includes(l)&&(s.info(`Migrating \`${i}\` script from ${l} to packem`),r=!0,a.scripts[i]=a.scripts[i].replaceAll(new RegExp(String.raw`\b${l}\b`,"g"),"packem").replaceAll(new RegExp(String.raw`\b${l}-node\b`,"g"),"packem"));a.scripts[i].includes("tsup")&&(s.info(`Migrating \`${i}\` script from tsup to packem`),r=!0,a.scripts[i]=a.scripts[i].replaceAll(/\btsup(?:-node)?/g,"packem build").replaceAll(/\bbuild\b/g,"build")),a.scripts[i].includes("unbuild")&&(s.info(`Migrating \`${i}\` script from unbuild to packem`),r=!0,a.scripts[i]=a.scripts[i].replaceAll(/\bunbuild\b/g,"packem build")),a.scripts[i].includes("bunchee")&&(s.info(`Migrating \`${i}\` script from bunchee to packem`),r=!0,a.scripts[i]=a.scripts[i].replaceAll(/\bbunchee\b/g,"packem build"))}const n=["tsup","unbuild","bunchee"];for(const i of n)a[i]&&s.info(`Found \`${i}\` config field in package.json. Consider moving to packem.config.ts`);if(!r)return s.warn("No migratable bundler dependencies found in package.json"),!1;const o=`${JSON.stringify(a,null,e.includes(" ")?" ":2)}
68
+ `;return t?(s.info("[dry-run] package.json changes:"),s.info("Old content:"),console.info(e),s.info("New content:"),console.info(o)):(await we("package.json",o),s.success("Migrated `package.json`")),!0},"migratePackageJson"),cs=["tsup.config.ts","tsup.config.cts","tsup.config.mts","tsup.config.js","tsup.config.cjs","tsup.config.mjs","tsup.config.json","build.config.ts","build.config.cts","build.config.mts","build.config.js","build.config.cjs","build.config.mjs","bunchee.config.ts","bunchee.config.cts","bunchee.config.mts","bunchee.config.js","bunchee.config.cjs","bunchee.config.mjs"],ls=$(async(t,s)=>{let e=!1;for(const a of cs)N(a)&&(s.info(`Found config file \`${a}\`. Consider creating packem.config.ts instead.`),s.warn("Manual migration required for config files. See https://www.visulima.com/docs/package/packem"),e=!0);return e||s.warn("No bundler config files found"),e},"migrateConfigFiles"),ds=$((t,s,e,a)=>{const r={};for(const n of Object.keys(t))n===s?r[e]=a||t[s]:r[n]=t[n];return r},"renameKey"),ps=$(t=>{t.addCommand({description:"Migrate from other bundlers (tsup, unbuild, bunchee, etc.) to packem",execute:$(async({logger:s,options:e})=>{await rs({cwd:e.cwd,dryRun:e.dryRun,logger:s})},"execute"),name:"migrate",options:[{defaultValue:".",description:"The directory to migrate",name:"cwd",type:String},{description:"Preview changes without applying them",name:"dry-run",type:Boolean}]})},"createMigrateCommand");try{require("node:module")?.enableCompileCache?.()||require("v8-compile-cache")}catch{}const E=Z("packem",{logger:await ee({reporters:[new se({error:{hideErrorCauseCodeView:!0,hideErrorCodeView:!0,hideErrorErrorsCodeView:!0}})],scope:"packem"}),packageName:he,packageVersion:z});as(E);ss(E);Ue(E);ps(E);E.run({shouldExitProcess:!1});
@@ -0,0 +1,18 @@
1
+ import type { BabelPluginConfig } from "@visulima/packem-rollup/babel";
2
+ import type { BuildConfig } from "../../types.d.ts";
3
+ export interface PreactPresetOptions {
4
+ /**
5
+ * Enable Preact devtools in production builds
6
+ * @default false
7
+ */
8
+ devtoolsInProd?: boolean;
9
+ /**
10
+ * Custom Babel plugins to add
11
+ */
12
+ plugins?: BabelPluginConfig["plugins"];
13
+ /**
14
+ * Custom Babel presets to add
15
+ */
16
+ presets?: BabelPluginConfig["presets"];
17
+ }
18
+ export declare const createPreactPreset: (options?: PreactPresetOptions) => BuildConfig;
@@ -0,0 +1,2 @@
1
+ var v=Object.defineProperty;var m=(o,a)=>v(o,"name",{value:a,configurable:!0});var y=Object.defineProperty,n=m((o,a)=>y(o,"name",{value:a,configurable:!0}),"o");const A=n(()=>({name:"packem:preact-alias-transform",transform(o,a){if(a.includes("/node_modules/"))return;let t=!1,e=o;if((e.includes('from "react"')||e.includes("from 'react'"))&&(e=e.replaceAll(/from\s+["']react["']/g,'from "preact/compat"'),t=!0),(e.includes('from "react-dom"')||e.includes("from 'react-dom'"))&&(e=e.replaceAll(/from\s+["']react-dom["']/g,'from "preact/compat"'),t=!0),(e.includes('from "react-dom/test-utils"')||e.includes("from 'react-dom/test-utils'"))&&(e=e.replaceAll(/from\s+["']react-dom\/test-utils["']/g,'from "preact/test-utils"'),t=!0),(e.includes('from "react-dom/client"')||e.includes("from 'react-dom/client'"))&&(e=e.replaceAll(/from\s+["']react-dom\/client["']/g,'from "preact/compat"'),t=!0),(e.includes('from "react/jsx-runtime"')||e.includes("from 'react/jsx-runtime'"))&&(e=e.replaceAll(/from\s+["']react\/jsx-runtime["']/g,'from "preact/jsx-runtime"'),t=!0),!!t)return{code:e,map:void 0}}}),"createPreactAliasTransformPlugin"),b=n((o,a)=>({name:"packem:preact-devtools",transform(t,e){return!this.getModuleInfo(e)?.isEntry||a&&!o||t.includes("preact/debug")||t.includes("preact/devtools")?void 0:{code:`import "${a?"preact/devtools":"preact/debug"}";
2
+ ${t}`,map:void 0}}}),"createPreactDevtoolsPlugin"),P=n((o={})=>{const{devtoolsInProd:a=!1,plugins:t=[],presets:e=[]}=o,s=[],p=[["@babel/preset-react",{importSource:"preact",runtime:"automatic"}]];s.push("babel-plugin-transform-hook-names");const l=[...s,...Array.isArray(t)?t:[]],i=[...p,...Array.isArray(e)?e:[]];return{hooks:{"rollup:options":n((u,c)=>{if(!c.input&&!c.plugins)return;const d=u.environment==="production";Array.isArray(c.plugins)||(c.plugins=[]);const f=A();c.plugins.some(r=>typeof r=="object"&&r!==null&&"name"in r&&r.name==="packem:preact-alias-transform"||Array.isArray(r)&&r[0]&&typeof r[0]=="object"&&r[0]!==null&&"name"in r[0]&&r[0].name==="packem:preact-alias-transform")||c.plugins.unshift(f);const g=b(a,d);c.plugins.some(r=>typeof r=="object"&&r!==null&&"name"in r&&r.name==="packem:preact-devtools"||Array.isArray(r)&&r[0]&&typeof r[0]=="object"&&r[0]!==null&&"name"in r[0]&&r[0].name==="packem:preact-devtools")||c.plugins.push(g)},"rollup:options")},rollup:{alias:{entries:[{find:"react",replacement:"preact/compat"},{find:"react-dom",replacement:"preact/compat"},{find:"react-dom/test-utils",replacement:"preact/test-utils"},{find:"react/jsx-runtime",replacement:"preact/jsx-runtime"}]},babel:{plugins:l.length>0?l:void 0,presets:i.length>0?i:void 0}},validation:{dependencies:{hoisted:{exclude:["react","react-dom"]},unused:{exclude:["preact","react","react-dom"]}}}}},"createPreactPreset");export{P as createPreactPreset};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var c=Object.defineProperty;var o=(e,r)=>c(e,"name",{value:r,configurable:!0});import{createPail as s}from"@visulima/pail";import{SimpleReporter as u}from"@visulima/pail/reporter";import{j as g}from"./packem_shared/index-BdncxKzQ.js";var f=Object.defineProperty,l=o((e,r)=>f(e,"name",{value:r,configurable:!0}),"r");const C=l(async(e,r={})=>{const{debug:t,environment:i,logger:a,mode:n,tsconfigPath:m,...d}={debug:!1,environment:"production",logger:{},mode:"build",tsconfigPath:void 0,...r},p=s({reporters:[new u({error:{hideErrorCauseCodeView:!0,hideErrorCodeView:!0,hideErrorErrorsCodeView:!0}})],scope:"packem",...a});await g(e,n,i,p,t,d,m)},"packem");export{C as packem};
1
+ var c=Object.defineProperty;var o=(e,r)=>c(e,"name",{value:r,configurable:!0});import{createPail as s}from"@visulima/pail";import{SimpleReporter as u}from"@visulima/pail/reporter";import{j as g}from"./packem_shared/index-DkaUAiHf.js";var f=Object.defineProperty,l=o((e,r)=>f(e,"name",{value:r,configurable:!0}),"r");const C=l(async(e,r={})=>{const{debug:t,environment:i,logger:a,mode:n,tsconfigPath:m,...d}={debug:!1,environment:"production",logger:{},mode:"build",tsconfigPath:void 0,...r},p=s({reporters:[new u({error:{hideErrorCauseCodeView:!0,hideErrorCodeView:!0,hideErrorErrorsCodeView:!0}})],scope:"packem",...a});await g(e,n,i,p,t,d,m)},"packem");export{C as packem};
@@ -11,7 +11,7 @@ ${Fe(Ga(e.frame))}`),e.message=i,t!==void 0&&(e.stack=`${e.message}
11
11
  ${t}`)},"enhanceRollupError");var Ya=Object.defineProperty,yo=y((e,t)=>Ya(e,"name",{value:t,configurable:!0}),"f$j"),Xa=Object.defineProperty,Ne=yo((e,t)=>Xa(e,"name",{value:t,configurable:!0}),"n"),Za=Object.defineProperty,bo=Ne(e=>{throw TypeError(e)},"y"),$o=Ne((e,t)=>Za(e,"name",{value:t,configurable:!0}),"d"),wo=Ne((e,t,i)=>t.has(e)||bo("Cannot "+i),"m"),V=Ne((e,t,i)=>(wo(e,t,"read from private field"),i?i.call(e):t.get(e)),"r"),Ue=Ne((e,t,i)=>t.has(e)?bo("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,i),"a"),rt=Ne((e,t,i,o)=>(wo(e,t,"write to private field"),t.set(e,i),i),"f");const Qa=$o(e=>{try{JSON.parse(e)}catch{return!1}return!0},"isJson");var ft,je,gt,Ee,Te,Ct;const jo=(Ct=class{static{y(this,"u$k")}static{yo(this,"c")}constructor(e,t,i,o){Ue(this,ft),Ue(this,je),Ue(this,gt),Ue(this,Ee,!0),Ue(this,Te,new Map),rt(this,ft,e),rt(this,gt,i),t===void 0?o.debug({message:"Could not create cache directory."}):(rt(this,je,t),o.debug({message:`Cache path is: ${V(this,je)}`}))}set isEnabled(e){rt(this,Ee,e)}get isEnabled(){return V(this,Ee)}has(e,t){return!V(this,Ee)||V(this,je)===void 0?!1:le(this.getFilePath(e,t))}get(e,t){if(!V(this,Ee)||V(this,je)===void 0)return;const i=this.getFilePath(e,t);if(V(this,Te).has(i))return V(this,Te).get(i);if(!le(i))return;const o=kt(i);if(Qa(o)){const n=JSON.parse(o);return V(this,Te).set(i,n),n}return V(this,Te).set(i,o),o}set(e,t,i){if(!V(this,Ee)||V(this,je)===void 0||t===void 0)return;const o=this.getFilePath(e,i);(typeof t=="object"||typeof t=="number"||typeof t=="boolean")&&(t=JSON.stringify(t)),ze(o,t,{overwrite:!0})}getFilePath(e,t){let i=e.replaceAll(We(V(this,ft)),"");return i=i.replaceAll(":","-"),C(V(this,je),V(this,gt),t?.replaceAll(":","-")??"",We(i))}},Ne(Ct,"p"),Ct);ft=new WeakMap,je=new WeakMap,gt=new WeakMap,Ee=new WeakMap,Te=new WeakMap,$o(jo,"FileCache");let er=jo;var tr=Object.defineProperty,ir=y((e,t)=>tr(e,"name",{value:t,configurable:!0}),"n$h"),or=Object.defineProperty,nr=ir((e,t)=>or(e,"name",{value:t,configurable:!0}),"n"),ar=Object.defineProperty,rr=nr((e,t)=>ar(e,"name",{value:t,configurable:!0}),"n");const Me=rr((e,t)=>e.isDynamicEntry?`${$n}/[name].${t}`:`${wn}/${e.name}-[hash].${t}`,"getChunkFilename");var sr=Object.defineProperty,lr=y((e,t)=>sr(e,"name",{value:t,configurable:!0}),"o$g"),pr=Object.defineProperty,cr=lr((e,t)=>pr(e,"name",{value:t,configurable:!0}),"a"),dr=Object.defineProperty,ur=cr((e,t)=>dr(e,"name",{value:t,configurable:!0}),"o");const mr=process.platform==="win32",fr=ur((e,t)=>{const i=mr?"\\":"/";for(let o of Array.isArray(e.names)?e.names:[]){if(o.includes(`node_modules${i}.pnpm`))return o=`${o.replace(`node_modules${i}.pnpm`,"external")}.${t}`,o.replace(`node_modules${i}`,"");if(o.includes("node_modules"))return`${o.replace("node_modules","external")}.${t}`}return`[name].${t}`},"getEntryFileNames");var gr=Object.defineProperty,vr=y((e,t)=>gr(e,"name",{value:t,configurable:!0}),"r$5"),hr=Object.defineProperty,xr=vr((e,t)=>hr(e,"name",{value:t,configurable:!0}),"t"),yr=Object.defineProperty,br=xr((e,t)=>yr(e,"name",{value:t,configurable:!0}),"t");const ge=br(e=>Sn("sha256").update(e).digest("hex"),"getHash");var $r=Object.defineProperty,wr=y((e,t)=>$r(e,"name",{value:t,configurable:!0}),"r$4"),jr=Object.defineProperty,kr=wr((e,t)=>jr(e,"name",{value:t,configurable:!0}),"a"),Sr=Object.defineProperty,Or=kr((e,t)=>Sr(e,"name",{value:t,configurable:!0}),"a");const Er=Or((e="")=>{const t=e.split("/");return t[0].startsWith("@")?`${t[0]}/${t[1]}`:t[0]},"getPackageName");var Pr=Object.defineProperty,Dr=y((e,t)=>Pr(e,"name",{value:t,configurable:!0}),"a$g"),Mr=Object.defineProperty,Nr=Dr((e,t)=>Mr(e,"name",{value:t,configurable:!0}),"p"),Cr=Object.defineProperty,Ar=Nr((e,t)=>Cr(e,"name",{value:t,configurable:!0}),"t");const ko=Ar((e,t)=>{const i=[],o=[],n=[];return e&&e.filter(Boolean).filter(r=>r.type===t?!0:t==="build"&&r.type===void 0).forEach(r=>{r.enforce==="pre"?i.push(r.plugin):r.enforce==="post"?o.push(r.plugin):n.push(r.plugin)}),[i,n,o]},"sortUserPlugins");var Tr=Object.defineProperty,_r=y((e,t)=>Tr(e,"name",{value:t,configurable:!0}),"l$h"),Fr=Object.defineProperty,zr=_r((e,t)=>Fr(e,"name",{value:t,configurable:!0}),"l"),Ir=Object.defineProperty,Rr=zr((e,t)=>Ir(e,"name",{value:t,configurable:!0}),"r");const Wr=Rr(e=>{let t=e.toString("utf8");return t=t.replaceAll("//gs",""),t=t.replaceAll(/\s*\bclass\s*=\s*(?:"[^"]*"|'[^']*')/gi,""),t=t.replaceAll(/\s{2,}/g," "),t=t.replaceAll(/[\n\r\t]/g," "),t=t.replaceAll(/\s{2,}/g," "),t=t.trim(),Buffer.from(t,"utf8").toString("base64")},"svgEncoder");var Jr=Object.defineProperty,qr=y((e,t)=>Jr(e,"name",{value:t,configurable:!0}),"r$3"),Br=Object.defineProperty,Lr=qr((e,t)=>Br(e,"name",{value:t,configurable:!0}),"r"),Kr=Object.defineProperty,Ur=Lr((e,t)=>Kr(e,"name",{value:t,configurable:!0}),"i");const O=Ur((e,t)=>{e.warnings.has(t)||e.warnings.add(t)},"warn");var Hr=Object.defineProperty,Vr=y((e,t)=>Hr(e,"name",{value:t,configurable:!0}),"l$g"),Gr=Object.defineProperty,Yr=Vr((e,t)=>Gr(e,"name",{value:t,configurable:!0}),"l"),Xr=Object.defineProperty,Xt=Yr((e,t)=>Xr(e,"name",{value:t,configurable:!0}),"a");const Zr=new Map([["cjs","d.cts"],["js","d.ts"],["mjs","d.mts"]]),Ie={dts:{cjs:"d.ts",esm:"d.ts"},traditional:{cjs:"cjs",esm:"mjs"},traditionalDts:{cjs:"d.cts",esm:"d.mts"}},So=Xt(e=>{const{declaration:t,emitCJS:i,emitESM:o,node10Compatibility:n,outputExtensionMap:r}=e.options,a=!!(i&&o),s=!a&&(i&&!o||o&&!i);return{hasOutputMap:!!r,isCompatible:(t==="compatible"||t===!0)&&!(n===!1&&s),isDualFormat:a,isSingleFormat:s,outputExtensionMap:r}},"getExtensionStrategy"),ne=Xt((e,t)=>{const i=So(e);return i.hasOutputMap?i.outputExtensionMap?.[t]??Ie.traditional[t]:i.isSingleFormat&&!i.isCompatible?"js":Ie.traditional[t]},"getOutputExtension"),pe=Xt((e,t)=>{const i=So(e);if(i.hasOutputMap){const o=i.outputExtensionMap?.[t];if(o){const n=Zr.get(o)??"d.ts";return n==="d.ts"&&o!=="js"&&i.isDualFormat?Ie.traditionalDts[t]:n}return Ie.traditionalDts[t]}return i.isSingleFormat&&!i.isCompatible?"d.ts":i.isCompatible||i.isDualFormat?Ie.traditionalDts[t]:Ie.dts[t]},"getDtsExtension");var Qr=Object.defineProperty,es=y((e,t)=>Qr(e,"name",{value:t,configurable:!0}),"c$f"),ts=Object.defineProperty,is=es((e,t)=>ts(e,"name",{value:t,configurable:!0}),"s"),os=Object.defineProperty,Oo=is((e,t)=>os(e,"name",{value:t,configurable:!0}),"s");const Eo=Oo((e,t,i)=>{const o=i??new Map;return((...n)=>{const r=t?typeof t=="function"?t(...n):t:JSON.stringify({args:n}),a=o.get(r);if(a!==void 0)return a;const s=e(...n);return o.set(r,s),s})},"memoize"),ns=Oo(e=>{const t=new Map;return i=>Eo(e,i,t)},"memoizeByKey");var as=Object.defineProperty,rs=y((e,t)=>as(e,"name",{value:t,configurable:!0}),"s$k"),ss=Object.defineProperty,ls=rs((e,t)=>ss(e,"name",{value:t,configurable:!0}),"t"),ps=Object.defineProperty,Be=ls((e,t)=>ps(e,"name",{value:t,configurable:!0}),"e");const Zt={quotes:/"/g,urlHexPairs:/%[\dA-F]{2}/g,whitespace:/\s+/g},cs=Be(e=>{switch(e){case"%2F":return"/";case"%3A":return":";case"%3D":return"=";case"%20":return" ";default:return e.toLowerCase()}},"specialHexEncode"),ds=Be(e=>e.trim().replaceAll(Zt.whitespace," "),"collapseWhitespace"),us=Be(e=>encodeURIComponent(e).replaceAll(Zt.urlHexPairs,cs),"dataUriPayload"),ms=Be(e=>e.replaceAll(/<!--[\s\S]*?-->/g,""),"stripSvgComments"),fs=Be(e=>{const t=e.startsWith("\uFEFF")?e.slice(1):e,i=ms(t),o=ds(i).replaceAll(Zt.quotes,"'");return`data:image/svg+xml;charset=utf-8,${us(o)}`},"svgToTinyDataUri"),gs=Be(e=>{const t=e.replaceAll(/<!--[\s\S]*?-->/g,"").replaceAll(/\s+/g," ").trim();return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(t)}`},"svgToCssDataUri");var vs=Object.defineProperty,Po=y((e,t)=>vs(e,"name",{value:t,configurable:!0}),"s$j");const bt=Po(e=>{if(e.endsWith(".mjs")||e.endsWith(".d.mts"))return"esm";if(e.endsWith(".cjs")||e.endsWith(".d.cts"))return"cjs"},"inferExportTypeFromFileName"),Jt=Po((e,t,i,o)=>{if(e==="module-sync")return"esm";if(o){const a=bt(o);if(a)return a}if(e==="module"||e==="import")return"esm";if(e==="require")return"cjs";if(t.length===0)return i;const[n,...r]=t;return Jt(n,r,i,o)},"inferExportType");var hs=Object.defineProperty,xs=y((e,t)=>hs(e,"name",{value:t,configurable:!0}),"x$7");const ys=new Set(["browser","bun","default","deno","electron","import","module-sync","node","node-addons","require","types","workerd",...to,...io]),Qt=xs((e,t,i,o=[],n=[])=>{if(!e)return[];if(typeof e=="string"){const r=bt(e);if(r&&r!==t)throw new Error(`Exported file "${e}" has an extension that does not match the package.json type "${t==="esm"?"module":"commonjs"}".`);return[{file:e,key:"exports",type:r??t}]}if(typeof e=="object"){const r=Object.entries(e).filter(([s])=>!s.endsWith(".json"));let a=[];for(const[s,l]of r){const p=s.replace("./",""),c=n.some(m=>p===m||p.startsWith(`${m}/`));if(typeof l=="string"){let m={};Number.isInteger(+s)?m={exportKey:"*"}:s.startsWith("./")?m={exportKey:s.replace("./","")}:m={exportKey:s==="."?".":"*",subKey:s},a.push({...m,file:l,key:"exports",type:Jt(s,o,t,l),...c&&{ignored:!0}})}else if(typeof l=="object"&&l!==void 0)for(const[m,u]of Object.entries(l)){if(i===!1&&m==="types")continue;const d=Number.isInteger(+s)?m:s;if(typeof u=="string")a.push({exportKey:d.replace("./",""),file:u,key:"exports",...ys.has(m)?{subKey:m}:{},type:Jt(m,o,t,u),...c&&{ignored:!0}});else{const f=d.replace("./",""),v=c||n.some(g=>f===g||f.startsWith(`${g}/`)),h=Qt({[d]:u},t,i,[...o,m],n);v&&h.forEach(g=>{g.ignored=!0}),a=[...a,...h]}}}return a}return[]},"extractExportFilenames");var bs=Object.defineProperty,se=y((e,t)=>bs(e,"name",{value:t,configurable:!0}),"C$3");const qt=new Map,Bt=/\.[^./]+$/,Do=se((e,t)=>{const i=e.match(/\.d\.[mc]?ts$/);if(i)return i[0];if(t)for(const o of Object.values(t)){const n=o.startsWith(".")?o:`.${o}`;if(e.endsWith(n))return n}return qe(e)},"getFullExtension"),$s=se(async e=>{try{return await ao.readdir(e,{withFileTypes:!0})}catch(t){const{code:i}=t;if(i==="ENOENT")return[];throw t}},"safeReaddir"),Mo=se(async(e,t)=>{const i=await $s(e);return(await Promise.all(i.map(async o=>{const n=gi.join(e,o.name);return o.isDirectory()?Mo(n,t):o.isFile()?gi.relative(t,n):[]}))).flat()},"getDirectoryFilesRecursive"),ws=se(async e=>{let t=qt.get(e);return t||(t=Mo(e,e),qt.set(e,t)),t},"getDirectoryFiles"),xi=se((e,t,i)=>{const o=e.replace(Bt,"");if(t==="*"){const s=o.split("/").filter(Boolean);return s.length===0?void 0:i&&i>1?s:[s[0]]}const n=t.replaceAll(/[.+?^${}()|[\]\\]/g,String.raw`\$&`).replaceAll("*","(.*)"),r=new RegExp(`^${n}$`),a=o.match(r);return a?a.slice(1):void 0},"matchWildcardPattern"),we=se((e,t)=>{let i=e;for(const o of t)i=i.replace("*",o);return i},"substituteWildcards"),js=se((e,t)=>e.key==="exports"&&e.subKey===Ge?Ge:e.key==="exports"&&e.subKey===ui?ui:t,"getEnvironment"),ks=se(e=>{const t=e.replace(/^\.\/dist\//,"").replace(/^dist\//,"").replace(/\.[^./]+$/,"").split("/"),i=t[t.length-1]||"",o=[".browser",".server",".development",".production",".node",".workerd"];for(const r of o)if(i.includes(r)){const a=i.replace(r,""),s=t.length>1?t.slice(0,-1).join("/"):"";return{baseName:s?`${s}/${a}`:a,pattern:r}}const n=i.split(".");if(n.length>2){const r=n.slice(0,-2).join("."),a=`.${n[n.length-2]}`,s=t.length>1?t.slice(0,-1).join("/"):"";return{baseName:s?`${s}/${r}`:r,pattern:a}}},"detectFilePattern"),Ss=se((e,t,i,o)=>{const n=`${t.replace(new RegExp(`^${o}/?`),"")}${i}`,r=n.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`),a=new RegExp(String.raw`${r}\.([cm]?[tj]sx?|ts|js)$`),s=e.find(p=>{const c=p.replace(o,"").replace(/^\//,"");return a.test(c)});if(s)return s;const l=`${o}/${n}`;return e.find(p=>{const c=p.replace(/\.[^./]+$/,"");return c===l||c.endsWith(`/${n}`)})||void 0},"tryFindPatternFile"),Ce=se((e,t,i,o,n,r,a,s)=>{const l=js(n,r.environment);let p=r.options.runtime;const c=n.subKey==="browser"||n.subKey?.includes("browser"),m=n.file.includes(".browser");if(c||m)p="browser";else{for(const j of to)if(n.file.includes(`.${j}.`)||n.subKey===j){p=j;break}(n.subKey==="node"||n.subKey==="workerd"||n.file.includes(".node")||n.file.includes(".workerd")||n.file.includes(".server"))&&(p="node")}const u=Do(n.file,r.options.outputExtensionMap),d=n.file.replace(u,""),f=r.options.outDir.replace(/^\.\//,""),v=d.replace(new RegExp(`^(./)?${f}/`),""),h=t.replace(/\.[^./]+$/,"").split("/").pop()||"",g=v.split("/").pop()||"",x=!t.includes(v)&&h!==g;let b=e.find(j=>j.input===t&&j.environment===l&&j.runtime===p&&j.fileAlias===(x?v:void 0));if(b===void 0?b=e[e.push({environment:l,exportKey:new Set([n.exportKey].filter(Boolean)),fileAlias:x?v:void 0,input:t,runtime:p})-1]:b.exportKey&&n.exportKey&&b.exportKey.add(n.exportKey),a&&(b.isGlob=!0),i&&(b.outDir=o),n.isExecutable)b.executable=!0,b.declaration=!1,n.type==="cjs"?b.cjs=!0:n.type==="esm"&&(b.esm=!0);else{const j=/\.d\.[mc]?ts$/.test(n.file),M=s.filter($=>$.exportKey===n.exportKey),z=M.length>0&&M.every($=>/\.d\.[mc]?ts$/.test($.file));if(j&&r.options.declaration!==!1&&(b.declaration=r.options.declaration),j||z){z&&r.options.declaration!==!1&&(b.declaration=r.options.declaration);const $=M.some(A=>/\.d\.mts$/.test(A.file)),D=M.some(A=>/\.d\.cts$/.test(A.file));if($&&D?((r.options.declaration===void 0||r.options.declaration==="node16")&&(r.options.declaration="compatible"),r.options.emitCJS=!0,r.options.emitESM=!0):D?(r.options.emitCJS=!0,(r.options.declaration===void 0||r.options.declaration==="node16")&&(r.options.declaration="compatible")):$&&(r.options.emitESM=!0,(r.options.declaration===void 0||r.options.declaration==="node16")&&(r.options.declaration="compatible")),z){const A=s.filter(S=>/\.d\.[mc]?ts$/.test(S.file)),w=A.some(S=>/\.d\.mts$/.test(S.file));A.some(S=>/\.d\.cts$/.test(S.file))&&(b.cjs=!0),w&&(b.esm=!0)}}else n.type==="cjs"?b.cjs=!0:n.type==="esm"&&(b.esm=!0)}x&&!b.fileAlias&&(b.fileAlias=v)},"createOrUpdateEntry");let yi=!1;const bi=se(e=>{if(e.pkg?.dependencies?.typescript===void 0&&e.pkg?.devDependencies?.typescript===void 0)throw new Error("You tried to use a `.ts`, `.cts` or `.mts` file but `typescript` was not found in your package.json.")},"validateIfTypescriptIsInstalled"),Os=se(async(e,t,i)=>{const o=e.types||e.typings;qt.clear();const n=[];t.sort((d,f)=>d.split("/").length-f.split("/").length);const r=e.type==="module"?"esm":"cjs",a=i.options.declaration??"node16",s=Qt(e.exports,r,a,[],i.options.ignoreExportKeys??[]).filter(d=>!d.ignored),l=new Set;for(const d of s){const f=s.filter(v=>v.exportKey===d.exportKey);if(f.length>0&&f.every(v=>/\.d\.[mc]?ts$/.test(v.file))&&!l.has(d.exportKey)){l.add(d.exportKey),f.some(g=>g.file.endsWith(".d.ts"));const v=f.some(g=>g.file.endsWith(".d.mts")),h=f.some(g=>g.file.endsWith(".d.cts"));v&&h?((i.options.declaration===void 0||i.options.declaration==="node16")&&(i.options.declaration="compatible"),i.options.emitCJS=!0,i.options.emitESM=!0):h?((i.options.declaration===void 0||i.options.declaration==="node16")&&(i.options.declaration="compatible"),i.options.emitCJS=!0):v&&((i.options.declaration===void 0||i.options.declaration==="node16")&&(i.options.declaration="compatible"),i.options.emitESM=!0)}}i.options.declaration===void 0&&(i.options.declaration="node16");const p=s.some(d=>d.type==="esm"&&!/\.d\.mts$/.test(d.file)),c=s.some(d=>d.type==="cjs"&&!/\.d\.cts$/.test(d.file));p&&c?(i.options.emitESM=!0,i.options.emitCJS=!0):p?i.options.emitESM=!0:c?i.options.emitCJS=!0:r==="esm"?i.options.emitESM=!0:r==="cjs"&&(i.options.emitCJS=!0);const m=i.options.emitCJS&&i.options.emitESM;if(i.options.declaration==="node16"&&m&&(i.options.declaration="compatible"),e.bin){const d=(typeof e.bin=="string"?[e.bin]:Object.values(e.bin)).filter(Boolean);for(const f of d){const v=bt(f);if(v&&v!==r)throw new Error(`Exported file "${f}" has an extension that does not match the package.json type "${e.type??"commonjs"}".`);s.push({file:f,isExecutable:!0,key:"bin",type:v??r})}}e.main&&s.push({file:e.main,key:"main",type:bt(e.main)??r}),e.module&&s.push({file:e.module,key:"module",type:"esm"}),o&&(bi(i),(i.options.declaration===void 0||i.options.declaration==="node16")&&m&&(i.options.declaration="compatible"),s.push({file:e.types??e.typings,key:"types"}));const u=[];for await(const d of s){const f=/\.d\.[mc]?ts$/.test(d.file),v=Do(d.file,i.options.outputExtensionMap),h=[...St];if(i.options.outputExtensionMap)for(const w of Object.values(i.options.outputExtensionMap)){const S=w.startsWith(".")?w:`.${w}`;h.includes(S)||h.push(S)}if(!f&&v!==""&&!h.includes(v)||!f&&/\.(tsx?|cts|mts)$/.test(d.file))continue;let g=d.type;if(!g&&f){if(d.file.endsWith(".d.mts"))g="esm";else if(d.file.endsWith(".d.cts"))g="cjs";else if(d.file.endsWith(".d.ts")){const w=s.some(R=>R.subKey==="import"&&R.file.endsWith(".d.mts")),S=s.some(R=>R.subKey==="require"&&R.file.endsWith(".d.cts"));w&&S?g=void 0:g=i.pkg?.type==="module"?"esm":"cjs"}}if(/\.d\.[mc]?ts$/.test(d.file)||(i.options.emitCJS===void 0&&(g==="cjs"||d.type==="cjs")&&(i.options.emitCJS=!0),i.options.emitESM===void 0&&(g==="esm"||d.type==="esm")&&(i.options.emitESM=!0)),i.options.declaration===void 0||i.options.declaration==="node16"){const w=i.options.emitCJS&&i.options.emitESM;i.options.declaration=w?"compatible":"node16"}let x=d.file;if(i.options.outputExtensionMap)for(const w of Object.values(i.options.outputExtensionMap)){const S=w.startsWith(".")?w:`.${w}`;if(d.file.endsWith(S)){x=d.file.slice(0,-S.length);break}}x===d.file&&(x=d.file.replace(new RegExp(String.raw`(?:\*[^/\\]|\.d\.[mc]?ts|\.\w+)$`),""));const b=x.endsWith("/");if(b&&["./","/"].includes(x))continue;const j=x.replace(new RegExp(`(./)?${i.options.outDir}`),i.options.sourceDir).replace("./",""),M=b?"":String.raw`(\.d\.[cm]?ts|(\.[cm]?[tj]sx?))$`,z="(?:^|/)";if((d.file.includes("/*")||x.includes("*"))&&d.key==="exports"){yi||(i.logger.debug("Private subfolders are not supported, if you need this feature please open an issue on GitHub."),yi=!0);let w;d.exportKey?w=d.exportKey.startsWith("./")?d.exportKey.slice(2):d.exportKey:w=(d.file.startsWith("./")?d.file.slice(2):d.file).replace(/^dist\//,"");const S=d.file,R=S.match(/\.\w+$/),L=S.replace(/^\.\//,"").replace(/^dist\//,"").replace(/\.\w+$/,""),B=w.replace(/^\.\//,"")===L;if(S.includes("*")&&!R&&!B){const J=d.exportKey?`package.json#exports["${d.exportKey}"]`:"package.json#exports";n.push(`Wildcard pattern must include a file extension: ${S} at ${J}`)}const Y=i.options.sourceDir.replace(/^\.\//,""),U=N(i.options.rootDir,Y),X=[],ot=await ws(U),I=(S.match(/\*/g)||[]).length,be=(w.match(/\*/g)||[]).length;for(const J of ot){const E=xi(J,w,I);if(E){if(I>be&&I>1){if(E.length>=I){const _=E[0];if(E.every(k=>k===_)){const k=we(S,E.slice(0,I));k.includes("*")||X.push({input:N(U,J),output:k})}continue}const P=J.replace(Bt,"").split("/").filter(Boolean);if(P.length>=I){const _=Math.floor(P.length/I),k=[];for(let F=0;F<I;F++){const me=F*_,Oe=F===I-1?P.length:(F+1)*_;k.push(P.slice(me,Oe).join("/"))}const q=k[0];if(k.every(F=>F===q)){const F=we(S,k);F.includes("*")||X.push({input:N(U,J),output:F})}}else if(P.length>0){const _=P[0];if(P.every(k=>k===_)){const k=new Array(I).fill(_),q=we(S,k);q.includes("*")||X.push({input:N(U,J),output:q})}}continue}if(E.length<I)continue;if(be>0&&be<I&&I>1&&E.length>1){const P=E[0];if(!E.every(_=>_===P))continue}const T=we(S,E);if(T.includes("*"))continue;X.push({input:N(U,J),output:T})}}if(X.length===0&&S.includes("*")){let J=(d.file.startsWith("./")?d.file.slice(2):d.file).replace(/^dist\//,"");J=J.replace(/\.\w+$/,""),(J.match(/\*/g)||[]).length;for(const E of ot){const T=xi(E,J,I);if(T){if(I>1&&be<I){if(T.length>=I){const _=T[0];if(T.every(k=>k===_)){const k=we(S,T);k.includes("*")||X.push({input:N(U,E),output:k})}continue}const P=E.replace(Bt,"").split("/").filter(Boolean);if(P.length>=I){const _=Math.floor(P.length/I),k=[];for(let F=0;F<I;F++){const me=F*_,Oe=F===I-1?P.length:(F+1)*_;k.push(P.slice(me,Oe).join("/"))}const q=k[0];if(k.every(F=>F===q)){const F=we(S,k);F.includes("*")||X.push({input:N(U,E),output:F})}}else if(P.length>0){const _=P[0];if(P.every(k=>k===_)){const k=new Array(I).fill(_),q=we(S,k);q.includes("*")||X.push({input:N(U,E),output:q})}}continue}if(T.length>=I){if(be>0&&be<I&&I>1&&T.length>1){const _=T[0];if(!T.every(k=>k===_))continue}const P=we(S,T);P.includes("*")||X.push({input:N(U,E),output:P})}}}}if(X.length===0){s.length>1||n.push(`Could not find entrypoints matching pattern \`${w}\` for output \`${S}\``);continue}const ue=s.filter(J=>J.exportKey===d.exportKey);if(ue.length>0&&ue.every(J=>/\.d\.[mc]?ts$/.test(J.file))){const J=ue.some(k=>k.file.endsWith(".d.ts")),E=ue.some(k=>k.file.endsWith(".d.mts")),T=ue.some(k=>k.file.endsWith(".d.cts"));E&&T?((i.options.declaration===void 0||i.options.declaration==="node16")&&(i.options.declaration="compatible"),i.options.emitCJS=!0,i.options.emitESM=!0):T?((i.options.declaration===void 0||i.options.declaration==="node16")&&(i.options.declaration="compatible"),i.options.emitCJS=!0):E&&((i.options.declaration===void 0||i.options.declaration==="node16")&&(i.options.declaration="compatible"),i.options.emitESM=!0);const P=ue.find(k=>k.file.endsWith(".d.ts")),_=P||ue.find(k=>k.file.endsWith(".d.mts"))||ue.find(k=>k.file.endsWith(".d.cts"))||d;if(!(_===d||P&&d===P||!P&&_===d))continue;for(const{input:k,output:q}of X){let F=q;if(q.endsWith(".d.mts")||q.endsWith(".d.cts"))F=q.replace(/\.d\.[mc]ts$/,".d.ts");else if(!q.endsWith(".d.ts")){const Oe=q.replace(/\.d\.[mc]ts$/,".d.ts");J&&(F=Oe)}const me={..._,file:F,subKey:"types",type:void 0};Ce(u,k,b,x,me,i,!0,s)}}else for(const{input:J,output:E}of X){const T=/\.d\.[mc]?ts$/.test(E);let P=d.type;T||(E.endsWith(".mjs")?P="esm":E.endsWith(".cjs")?P="cjs":E.endsWith(".js")&&!P&&(P=i.pkg?.type==="module"?"esm":"cjs"));const _={...d,file:E,...!T&&P&&{type:P}};Ce(u,J,b,x,_,i,!0,s)}continue}const $=new RegExp(z+j.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`)+M);let D=t.find(w=>$.test(w));if(D===void 0){const w=i.options.sourceDir.replace(/^\.\//,""),S=N(i.options.rootDir,w),R=ks(d.file);if(R){const L=Ss(t,R.baseName,R.pattern,S);if(L)D=L;else{const B=R.baseName,Y=new RegExp(z+B.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`)+M);D=t.find(U=>Y.test(U))}}else{const L=j.replace(/^(.+?)\.[^.]*$/,"$1").replace(/\/$/,"");if(io.has(d.subKey)){const B=new RegExp(z+L.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`)+M);D=t.find(Y=>B.test(Y))}}}if(D===void 0){le(N(i.options.rootDir,d.file))||n.push(`Could not find entrypoint for \`${d.file}\``);continue}le(D)&&/\.[cm]?tsx?$/.test(D)&&bi(i);const A=s.filter(w=>w.exportKey===d.exportKey);if(A.length>0&&A.every(w=>/\.d\.[mc]?ts$/.test(w.file))){A.some(L=>L.file.endsWith(".d.ts"));const w=A.some(L=>L.file.endsWith(".d.mts")),S=A.some(L=>L.file.endsWith(".d.cts"));w&&S?((i.options.declaration===void 0||i.options.declaration==="node16")&&(i.options.declaration="compatible"),i.options.emitCJS=!0,i.options.emitESM=!0):S?((i.options.declaration===void 0||i.options.declaration==="node16")&&(i.options.declaration="compatible"),i.options.emitCJS=!0):w&&((i.options.declaration===void 0||i.options.declaration==="node16")&&(i.options.declaration="compatible"),i.options.emitESM=!0);const R={...d,subKey:"types",type:void 0};Ce(u,D,b,x,R,i,!1,s)}else{const w=We(D.replace(xe,""));le(`${w}.cts`)&&le(`${w}.mts`)?(Ce(u,`${w}.cts`,b,x,{...d,type:"cjs"},i,!1,s),Ce(u,`${w}.mts`,b,x,{...d,type:"esm"},i,!1,s)):Ce(u,D,b,x,d,i,!1,s)}}return{entries:u,warnings:n}},"inferEntries");var Es=Object.defineProperty,Ps=y((e,t)=>Es(e,"name",{value:t,configurable:!0}),"o$9");const Ds=Ps((e,t)=>{const{publishConfig:i}=e;return i&&(i.bin&&(typeof i.bin=="object"||typeof i.bin=="string")&&(e.bin=i.bin),i.type&&typeof i.type=="string"&&i.type!==""&&(e.type=i.type),i.main&&typeof i.main=="string"&&i.main!==""&&(e.main=i.main),i.module&&typeof i.module=="string"&&i.module!==""&&(e.module=i.module),t===void 0&&i.types&&typeof i.types=="string"&&i.types!==""?e.types=i.types:t===void 0&&i.typings&&typeof i.typings=="string"&&i.typings!==""&&(e.typings=i.typings),i.exports&&typeof i.exports=="object"&&(e.exports=i.exports)),e},"overwriteWithPublishConfig");var Ms=Object.defineProperty,Ns=y((e,t)=>Ms(e,"name",{value:t,configurable:!0}),"f$f");const Cs={hooks:{"build:prepare":Ns(async function(e){if(e.options.unbundle){e.options.entries.length=0;const n=C(e.options.rootDir,e.options.sourceDir);if(!le(n))throw new Error("No 'src' directory found. Please provide entries manually.");const r=pi(n,{extensions:[],includeDirs:!1,includeSymlinks:!1,skip:[ve,/.*\/dist\/.*/]}).filter(a=>he.test(a)&&!a.endsWith(".d.ts"));for(const a of r){const s=a.replace(`${n}/`,"").replace(he,"").replaceAll("/","/");e.options.entries.push({input:a,name:s})}return}if(e.options.entries.length>0)return;const t=C(e.options.rootDir,e.options.sourceDir);if(!le(t))throw new Error("No 'src' directory found. Please provide entries manually.");const i=pi(t,{extensions:[],includeDirs:!1,includeSymlinks:!1,skip:[ve,/.*\/dist\/.*/]});if(i.length===0)throw new Error("No source files found in 'src' directory. Please provide entries manually.");let o={...e.pkg};if(o.publishConfig&&(e.logger.info(`Using publishConfig found in package.json, to override the default key-value pairs of "${Object.keys(o.publishConfig).join(", ")}".`),e.logger.debug(o.publishConfig),o=Ds(o,e.options.declaration)),e.options.unbundle){e.logger.info("Unbundle mode detected, creating entries for all source files");const n=i.filter(r=>he.test(r)&&!r.endsWith(".d.ts"));e.logger.info(`Found ${n.length} code files for unbundle mode`);for(const r of n){const a=r.replace(`${t}/`,"").replace(he,"").replaceAll("/","/");e.logger.info(`Adding entry: ${a} -> ${r}`),e.options.entries.push({input:r,name:a})}}else{const n=await Os(o,i,e);for(const r of n.warnings)O(e,r);e.options.entries.push(...n.entries)}if(e.options.entries.length===0)throw new Error("No entries detected. Please provide entries manually.");e.logger.info("Automatically detected entries:",W(e.options.entries.map(n=>n.fileAlias?`${ie(n.fileAlias)} => ${ie(n.input.replace(`${e.options.rootDir}/`,"").replace(/\/$/,"/*"))}`:ie(n.input.replace(`${e.options.rootDir}/`,"").replace(/\/$/,"/*"))).join(", ")),fe([e.options.emitESM&&"esm",e.options.emitCJS&&"cjs",e.options.declaration&&"dts"].filter(Boolean).map(n=>`[${n}]`).join(" ")))},"build:prepare")}};var As=Object.defineProperty,Ts=y((e,t)=>As(e,"name",{value:t,configurable:!0}),"e$7");const ei=Ts(e=>{const t=C(e,"package.json");if(!le(t))throw new Error(`package.json not found at ${t}`);const i=_n(t,{resolveCatalogs:!0});return i.publishConfig&&Object.assign(i,i.publishConfig),{packageJson:i,packageJsonPath:t}},"loadPackageJson");var _s=Object.defineProperty,Fs=y((e,t)=>_s(e,"name",{value:t,configurable:!0}),"a$e");const zs=Fs(async(e,t,i,o)=>{let n;if(o){const r=C(e,o);if(!await Kt(r))throw new Error(`tsconfig.json not found at ${r}`);n={config:zn(r),path:r},i.info("Using tsconfig settings at",r)}else if(eo(t,["typescript"]))try{n=await In(e),i.debug("Using tsconfig settings found at",n.path)}catch{i.info("No tsconfig.json or jsconfig.json found.")}return n},"loadTsconfig");var Is=Object.defineProperty,No=y((e,t)=>Is(e,"name",{value:t,configurable:!0}),"l$f");const $i=No(async(e,t)=>{if(typeof e.name!="string"){let i=xt(e.input)?ae(t.options.rootDir,e.input):oo(e.input);i.startsWith("./")&&(i=i.slice(2)),e.name=i.replace(new RegExp(`^${t.options.sourceDir}/`),"").replace(xe,"")}if(!e.input)throw new Error(`Missing entry input: ${JSON.stringify(e)}`);Wn(e.input)&&(e.input=N(t.options.rootDir,e.input)),t.options.declaration&&e.declaration===void 0&&(e.declaration=t.options.declaration),e.executable&&(e.cjs===void 0||e.esm===void 0)?t.pkg.type==="commonjs"&&e.cjs===void 0&&t.options.emitCJS!==void 0?(e.cjs=t.options.emitCJS,e.esm=!1):t.pkg.type==="module"&&e.esm===void 0&&t.options.emitESM!==void 0&&(e.esm=t.options.emitESM,e.cjs=!1):e.cjs===void 0&&e.esm===void 0&&(e.declaration&&e.cjs===void 0&&e.esm===void 0||(t.options.emitCJS!==void 0&&(e.cjs=t.options.emitCJS),t.options.emitESM!==void 0&&(e.esm=t.options.emitESM))),e.outDir=N(t.options.rootDir,e.outDir??t.options.outDir)},"extendEntry"),Rs=No(async e=>{e.options.entries=e.options.entries.map(t=>typeof t=="string"?{input:t,isGlob:Wt(t)}:{...t,exportKey:t.exportKey??new Set,isGlob:Wt(t.input)});for(const t of e.options.entries.filter(i=>i.isGlob)){const{isGlob:i,...o}=t,n=["**/.git/**","**/node_modules/**","**/test-results/**"];if(e.options.rollup.watch){if(typeof e.options.rollup.watch.exclude=="string")n.push(e.options.rollup.watch.exclude);else if(Array.isArray(e.options.rollup.watch.exclude))for(const a of e.options.rollup.watch.exclude)typeof a=="string"&&n.push(a)}const r=lo([o.input],{cwd:e.options.rootDir,dot:!1,ignore:n,onlyFiles:!0});if(r.length===0)throw new Rn(`No files found in the glob pattern: ${W(C(e.options.rootDir,o.input))}`);for(const a of r)e.options.entries.push({...o,input:N(e.options.rootDir,a)});e.options.entries.splice(e.options.entries.indexOf(t),1)}for(const t of e.options.entries){if(t.runtime)continue;const i=t.exportKey&&[...t.exportKey].some(n=>n.includes("browser")||n==="browser"),o=t.fileAlias?.includes(".browser")??!1;if(i||o)t.runtime="browser";else if(t.exportKey){for(const n of t.exportKey)if(n==="node"||n==="workerd"||n.includes("node")||n.includes("workerd")){t.runtime="node";break}}!t.runtime&&t.fileAlias&&(t.fileAlias.includes(".server")||t.fileAlias.includes(".node")||t.fileAlias.includes(".workerd"))&&(t.runtime="node")}for(const t of e.options.entries)if(t.fileAlias){let i=t.fileAlias;for(;i.startsWith("./")||i.startsWith("../");)i=i.replace(/^\.\.?\//,"");t.name=i}for(const t of e.options.entries.filter(i=>!i.fileAlias))await $i(t,e);for(const t of e.options.entries.filter(i=>i.fileAlias))await $i(t,e),t.fileAlias=void 0},"prepareEntries");var Ws=Object.defineProperty,Js=y((e,t)=>Ws(e,"name",{value:t,configurable:!0}),"u$f"),qs=Object.defineProperty,Bs=Js((e,t)=>qs(e,"name",{value:t,configurable:!0}),"u"),Ls=Object.defineProperty,Et=Bs((e,t)=>Ls(e,"name",{value:t,configurable:!0}),"o");const $t=/^#![^\n]*/,Lt=Et(async e=>{await Nn(e,493).catch(()=>{})},"makeExecutable"),Ks=Et((e,t)=>({name:"packem:shebang",renderChunk:{handler(i,o,n){if(!o.isEntry||!o.facadeModuleId)return;const r=i.startsWith("#")&&i[1]==="!";if(r&&t.replace)return i.replace($t,`${t.shebang}
12
12
  `);if(!r&&e.includes(o.name)){const a=new K(i);return a.prepend(`${t.shebang}
13
13
  `),{code:a.toString(),map:n.sourcemap?a.generateMap({hires:!0}):void 0}}},order:"post"},async writeBundle(i,o){for(const[n,r]of Object.entries(o))if(r.type==="chunk"&&$t.test(r.code)&&i.dir){const a=N(i.dir,n);await Lt(a)}}}),"shebangPlugin"),Us=Et(()=>({name:"packem:remove-shebang",renderChunk(e){return e.replace($t,"")}}),"removeShebangPlugin"),Hs=Et((e,t=`
14
- `)=>{const i=$t.exec(e);return i?i+t:""},"getShebang");var Vs=Object.defineProperty,Gs=y((e,t)=>Vs(e,"name",{value:t,configurable:!0}),"i$8");const Pt=Gs((e,t)=>{let i={};return e.name&&(i[e.name]=t.rootDir),i={...i,...t.alias},t.rollup.alias&&(Array.isArray(t.rollup.alias.entries)?Object.assign(i,Object.fromEntries(t.rollup.alias.entries.map(o=>[o.find,o.replacement]))):Object.assign(i,t.rollup.alias.entries??t.rollup.alias)),i},"resolveAliases");var Ys=Object.defineProperty,Xs=y((e,t)=>Ys(e,"name",{value:t,configurable:!0}),"h$d");const Zs=/^[_$a-z\u00A0-\uFFFF][\w$\u00A0-\uFFFF]*$/iu,Qs=Xs(async e=>{const t=e.options.jiti.transformOptions?.babel?.plugins,i=[],o=JSON.stringify({...e.options.jiti,alias:{...Pt(e.pkg,e.options),...e.options.jiti.alias},transformOptions:{...e.options.jiti.transformOptions,babel:{...e.options.jiti.transformOptions?.babel,plugins:"__$BABEL_PLUGINS"}}},void 0,2).replace('"__$BABEL_PLUGINS"',Array.isArray(t)?`[${t.map((n,r)=>{if(Array.isArray(n)){const[a,...s]=n;return i.push(a),`[${[`plugin${r}`,...s.map(l=>JSON.stringify(l))].join(", ")}]`}return i.push(n),`plugin${r}`}).join(",")}]`:"[]");for(const n of e.options.entries){const r=N(e.options.rootDir,e.options.outDir,n.name),a=Bn(e.jiti.esmResolve(n.input,{try:!0})??n.input),s=a.replace(xe,""),l=kt(a),p=Hs(l);let c=[];try{c=await Ln(a,{extensions:St})}catch(d){O(e,`Cannot analyze ${a} for exports: ${d.toString()}`);return}const m=c.includes("default")||c.length===0,u=e.options.jiti.absoluteJitiPath?(...d)=>Kn(N(...d)):ae;if(e.options.emitESM){const d=u(Q(r),await vi("jiti",{conditions:["node","import"],url:import.meta.url})),f=pe(e,"esm"),v=`${s}.${f}`;ze(`${r}.${ne(e,"esm")}`,p+[`import { createJiti } from "${d}";`,...i.map((h,g)=>`import plugin${g} from "${h}";`),"",`const jiti = createJiti(import.meta.url, ${o});`,"",`/** @type {import("${v}")} */`,`const _module = await jiti.import("${a}");`,...m?["export default _module?.default ?? _module;"]:[],...c.filter(h=>h!=="default").map((h,g)=>{if(Zs.test(h))return`export const ${h} = _module.${h};`;const x=`__packem_export_${g}`,b=h.startsWith("'")&&h.endsWith("'")?`_module[${h}]`:`_module[${JSON.stringify(h)}]`;return`const ${x} = ${b};
14
+ `)=>{const i=$t.exec(e);return i?i+t:""},"getShebang");var Vs=Object.defineProperty,Gs=y((e,t)=>Vs(e,"name",{value:t,configurable:!0}),"i$8");const Pt=Gs((e,t)=>{let i={};return e.name&&(i[e.name]=t.rootDir),i={...i,...t.alias},t.rollup.alias&&t.rollup.alias.entries&&(Array.isArray(t.rollup.alias.entries)?Object.assign(i,Object.fromEntries(t.rollup.alias.entries.map(o=>[o.find,o.replacement]))):Object.assign(i,t.rollup.alias.entries)),i},"resolveAliases");var Ys=Object.defineProperty,Xs=y((e,t)=>Ys(e,"name",{value:t,configurable:!0}),"h$d");const Zs=/^[_$a-z\u00A0-\uFFFF][\w$\u00A0-\uFFFF]*$/iu,Qs=Xs(async e=>{const t=e.options.jiti.transformOptions?.babel?.plugins,i=[],o=JSON.stringify({...e.options.jiti,alias:{...Pt(e.pkg,e.options),...e.options.jiti.alias},transformOptions:{...e.options.jiti.transformOptions,babel:{...e.options.jiti.transformOptions?.babel,plugins:"__$BABEL_PLUGINS"}}},void 0,2).replace('"__$BABEL_PLUGINS"',Array.isArray(t)?`[${t.map((n,r)=>{if(Array.isArray(n)){const[a,...s]=n;return i.push(a),`[${[`plugin${r}`,...s.map(l=>JSON.stringify(l))].join(", ")}]`}return i.push(n),`plugin${r}`}).join(",")}]`:"[]");for(const n of e.options.entries){const r=N(e.options.rootDir,e.options.outDir,n.name),a=Bn(e.jiti.esmResolve(n.input,{try:!0})??n.input),s=a.replace(xe,""),l=kt(a),p=Hs(l);let c=[];try{c=await Ln(a,{extensions:St})}catch(d){O(e,`Cannot analyze ${a} for exports: ${d.toString()}`);return}const m=c.includes("default")||c.length===0,u=e.options.jiti.absoluteJitiPath?(...d)=>Kn(N(...d)):ae;if(e.options.emitESM){const d=u(Q(r),await vi("jiti",{conditions:["node","import"],url:import.meta.url})),f=pe(e,"esm"),v=`${s}.${f}`;ze(`${r}.${ne(e,"esm")}`,p+[`import { createJiti } from "${d}";`,...i.map((h,g)=>`import plugin${g} from "${h}";`),"",`const jiti = createJiti(import.meta.url, ${o});`,"",`/** @type {import("${v}")} */`,`const _module = await jiti.import("${a}");`,...m?["export default _module?.default ?? _module;"]:[],...c.filter(h=>h!=="default").map((h,g)=>{if(Zs.test(h))return`export const ${h} = _module.${h};`;const x=`__packem_export_${g}`,b=h.startsWith("'")&&h.endsWith("'")?`_module[${h}]`:`_module[${JSON.stringify(h)}]`;return`const ${x} = ${b};
15
15
  export { ${x} as ${JSON.stringify(h)} };`})].join(`
16
16
  `)),e.options.declaration&&ze(`${r}.${f}`,`export * from "${v}";
17
17
  ${m?`export { default } from "${v}";`:""}`)}if(e.options.emitCJS){const d=u(Q(r),await vi("jiti",{conditions:["node","require"],url:import.meta.url})),f=pe(e,"cjs"),v=`${s}.${f}`;ze(`${r}.${ne(e,"cjs")}`,p+[`const { createJiti } = require("${d}");`,...i.map((h,g)=>`const plugin${g} = require(${JSON.stringify(h)})`),"",`const jiti = createJiti(__filename, ${o});`,"",`/** @type {import("${v}")} */`,`module.exports = jiti("${a}")`].join(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visulima/packem",
3
- "version": "2.0.0-alpha.47",
3
+ "version": "2.0.0-alpha.48",
4
4
  "description": "A fast and modern bundler for Node.js and TypeScript.",
5
5
  "keywords": [
6
6
  "anolilab",
@@ -82,6 +82,10 @@
82
82
  "types": "./dist/config/preset/react.d.ts",
83
83
  "default": "./dist/config/preset/react.js"
84
84
  },
85
+ "./config/preset/preact": {
86
+ "types": "./dist/config/preset/preact.d.ts",
87
+ "default": "./dist/config/preset/preact.js"
88
+ },
85
89
  "./config/preset/solid": {
86
90
  "types": "./dist/config/preset/solid.d.ts",
87
91
  "default": "./dist/config/preset/solid.js"
@@ -187,11 +191,11 @@
187
191
  "@visulima/fs": "4.1.0",
188
192
  "@visulima/humanizer": "2.0.5",
189
193
  "@visulima/package": "4.1.7",
190
- "@visulima/packem-rollup": "1.0.0-alpha.35",
194
+ "@visulima/packem-rollup": "1.0.0-alpha.36",
191
195
  "@visulima/packem-share": "1.0.0-alpha.18",
192
196
  "@visulima/pail": "3.2.2",
193
197
  "@visulima/path": "2.0.5",
194
- "@visulima/rollup-plugin-css": "1.0.0-alpha.15",
198
+ "@visulima/rollup-plugin-css": "1.0.0-alpha.16",
195
199
  "@visulima/source-map": "2.0.5",
196
200
  "@visulima/tabular": "^3.1.3",
197
201
  "@visulima/tsconfig": "2.1.3",