envlys 1.0.0 → 1.0.1

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.
Files changed (2) hide show
  1. package/dist/index.js +11 -13
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -1,16 +1,14 @@
1
- var se=Object.create;var G=Object.defineProperty;var ie=Object.getOwnPropertyDescriptor;var le=Object.getOwnPropertyNames;var ae=Object.getPrototypeOf,ce=Object.prototype.hasOwnProperty;var T=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var S=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ue=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of le(t))!ce.call(e,n)&&n!==r&&G(e,n,{get:()=>t[n],enumerable:!(o=ie(t,n))||o.enumerable});return e};var O=(e,t,r)=>(r=e!=null?se(ae(e)):{},ue(t||!e||!e.__esModule?G(r,"default",{value:e,enumerable:!0}):r,e));var L=S((He,b)=>{"use strict";var R=T("fs"),k=T("path"),Be=T("os"),xe=T("crypto"),W=["\u25C8 encrypted .env [www.dotenvx.com]","\u25C8 secrets for agents [www.dotenvx.com]","\u2301 auth for agents [www.vestauth.com]","\u2318 custom filepath { path: '/custom/path/.env' }","\u2318 enable debugging { debug: true }","\u2318 override existing { override: true }","\u2318 suppress logs { quiet: true }","\u2318 multiple files { path: ['.env.local', '.env'] }"];function ye(){return W[Math.floor(Math.random()*W.length)]}function x(e){return typeof e=="string"?!["false","0","no","off",""].includes(e.toLowerCase()):!!e}function _e(){return process.stdout.isTTY}function De(e){return _e()?`\x1B[2m${e}\x1B[0m`:e}var Ne=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function Te(e){let t={},r=e.toString();r=r.replace(/\r\n?/mg,`
2
- `);let o;for(;(o=Ne.exec(r))!=null;){let n=o[1],i=o[2]||"";i=i.trim();let s=i[0];i=i.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),s==='"'&&(i=i.replace(/\\n/g,`
3
- `),i=i.replace(/\\r/g,"\r")),t[n]=i}return t}function Oe(e){e=e||{};let t=Z(e);e.path=t;let r=h.configDotenv(e);if(!r.parsed){let s=new Error(`MISSING_DATA: Cannot parse ${t} for an unknown reason`);throw s.code="MISSING_DATA",s}let o=Q(e).split(","),n=o.length,i;for(let s=0;s<n;s++)try{let l=o[s].trim(),c=Ie(r,l);i=h.decrypt(c.ciphertext,c.key);break}catch(l){if(s+1>=n)throw l}return h.parse(i)}function ke(e){console.error(`\u26A0 ${e}`)}function _(e){console.log(`\u2506 ${e}`)}function z(e){console.log(`\u25C7 ${e}`)}function Q(e){return e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0?e.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function Ie(e,t){let r;try{r=new URL(t)}catch(l){if(l.code==="ERR_INVALID_URL"){let c=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw c.code="INVALID_DOTENV_KEY",c}throw l}let o=r.password;if(!o){let l=new Error("INVALID_DOTENV_KEY: Missing key part");throw l.code="INVALID_DOTENV_KEY",l}let n=r.searchParams.get("environment");if(!n){let l=new Error("INVALID_DOTENV_KEY: Missing environment part");throw l.code="INVALID_DOTENV_KEY",l}let i=`DOTENV_VAULT_${n.toUpperCase()}`,s=e.parsed[i];if(!s){let l=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${i} in your .env.vault file.`);throw l.code="NOT_FOUND_DOTENV_ENVIRONMENT",l}return{ciphertext:s,key:o}}function Z(e){let t=null;if(e&&e.path&&e.path.length>0)if(Array.isArray(e.path))for(let r of e.path)R.existsSync(r)&&(t=r.endsWith(".vault")?r:`${r}.vault`);else t=e.path.endsWith(".vault")?e.path:`${e.path}.vault`;else t=k.resolve(process.cwd(),".env.vault");return R.existsSync(t)?t:null}function q(e){return e[0]==="~"?k.join(Be.homedir(),e.slice(1)):e}function Ve(e){let t=x(process.env.DOTENV_CONFIG_DEBUG||e&&e.debug),r=x(process.env.DOTENV_CONFIG_QUIET||e&&e.quiet);(t||!r)&&z("loading env from encrypted .env.vault");let o=h._parseVault(e),n=process.env;return e&&e.processEnv!=null&&(n=e.processEnv),h.populate(n,o,e),{parsed:o}}function Fe(e){let t=k.resolve(process.cwd(),".env"),r="utf8",o=process.env;e&&e.processEnv!=null&&(o=e.processEnv);let n=x(o.DOTENV_CONFIG_DEBUG||e&&e.debug),i=x(o.DOTENV_CONFIG_QUIET||e&&e.quiet);e&&e.encoding?r=e.encoding:n&&_("no encoding is specified (UTF-8 is used by default)");let s=[t];if(e&&e.path)if(!Array.isArray(e.path))s=[q(e.path)];else{s=[];for(let g of e.path)s.push(q(g))}let l,c={};for(let g of s)try{let d=h.parse(R.readFileSync(g,{encoding:r}));h.populate(c,d,e)}catch(d){n&&_(`failed to load ${g} ${d.message}`),l=d}let p=h.populate(o,c,e);if(n=x(o.DOTENV_CONFIG_DEBUG||n),i=x(o.DOTENV_CONFIG_QUIET||i),n||!i){let g=Object.keys(p).length,d=[];for(let B of s)try{let w=k.relative(process.cwd(),B);d.push(w)}catch(w){n&&_(`failed to load ${B} ${w.message}`),l=w}z(`injected env (${g}) from ${d.join(",")} ${De(`// tip: ${ye()}`)}`)}return l?{parsed:c,error:l}:{parsed:c}}function Ae(e){if(Q(e).length===0)return h.configDotenv(e);let t=Z(e);return t?h._configVault(e):(ke(`you set DOTENV_KEY but you are missing a .env.vault file at ${t}`),h.configDotenv(e))}function Ce(e,t){let r=Buffer.from(t.slice(-64),"hex"),o=Buffer.from(e,"base64"),n=o.subarray(0,12),i=o.subarray(-16);o=o.subarray(12,-16);try{let s=xe.createDecipheriv("aes-256-gcm",r,n);return s.setAuthTag(i),`${s.update(o)}${s.final()}`}catch(s){let l=s instanceof RangeError,c=s.message==="Invalid key length",p=s.message==="Unsupported state or unable to authenticate data";if(l||c){let g=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw g.code="INVALID_DOTENV_KEY",g}else if(p){let g=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw g.code="DECRYPTION_FAILED",g}else throw s}}function Re(e,t,r={}){let o=!!(r&&r.debug),n=!!(r&&r.override),i={};if(typeof t!="object"){let s=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw s.code="OBJECT_REQUIRED",s}for(let s of Object.keys(t))Object.prototype.hasOwnProperty.call(e,s)?(n===!0&&(e[s]=t[s],i[s]=t[s]),o&&_(n===!0?`"${s}" is already defined and WAS overwritten`:`"${s}" is already defined and was NOT overwritten`)):(e[s]=t[s],i[s]=t[s]);return i}var h={configDotenv:Fe,_configVault:Ve,_parseVault:Oe,config:Ae,decrypt:Ce,parse:Te,populate:Re};b.exports.configDotenv=h.configDotenv;b.exports._configVault=h._configVault;b.exports._parseVault=h._parseVault;b.exports.config=h.config;b.exports.decrypt=h.decrypt;b.exports.parse=h.parse;b.exports.populate=h.populate;b.exports=h});var j=S((Xe,H)=>{"use strict";function J(e){return e.replace(/\\\$/g,"$")}function Le(e,t,r){let o={...r,...t},n=/(?<!\\)\${([^{}]+)}|(?<!\\)\$([A-Za-z_][A-Za-z0-9_]*)/g,i=e,s,l=new Set;for(;(s=n.exec(i))!==null;){l.add(i);let[c,p,g]=s,d=p||g,B=/(:\+|\+|:-|-)/,w=d.match(B),D=w?w[0]:null,I=d.split(D),N,y,V=I.shift();if([":+","+"].includes(D)?(N=o[V]?I.join(D):"",y=null):(N=I.join(D),y=o[V]),y?l.has(y)?i=i.replace(c,N):i=i.replace(c,y):i=i.replace(c,N),i===r[V])break;n.lastIndex=0}return i}function je(e){let t={},r=process.env;e&&e.processEnv!=null&&(r=e.processEnv);for(let o in e.parsed){let n=e.parsed[o];r[o]&&r[o]!==n?n=r[o]:n=Le(n,r,t),e.parsed[o]=J(n),t[o]=J(n)}for(let o in e.parsed)r[o]=e.parsed[o];return e}H.exports.expand=je});var a={black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",purple:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",blueBright:"\x1B[94m",redBright:"\x1B[91m",greenBright:"\x1B[92m",yellowBright:"\x1B[93m",cyanBright:"\x1B[96m",whiteBright:"\x1B[97m",gray:"\x1B[90m",reset:"\x1B[0m",bgBlack:"\x1B[40m",bgBlue:"\x1B[44m",bgGreen:"\x1B[42m",bgAzure:"\x1B[104m",bgCyan:"\x1B[46m",bgYellow:"\x1B[43m",bgRed:"\x1B[41m",bgPurple:"\x1B[45m",bgGray:"\x1B[100m",bgWhite:"\x1B[47m",bgBlueBright:"\x1B[104m",bgRedBright:"\x1B[101m",bgGreenBright:"\x1B[102m",bgYellowBright:"\x1B[103m",bgCyanBright:"\x1B[106m",bgWhiteBright:"\x1B[107m"},u={black:"#000000",blue:"#60a5fa",green:"#4ade80",yellow:"#facc15",red:"#f87171",purple:"#c084fc",cyan:"#06b6d4",white:"#ffffff",gray:"#a3a3a3",blueBright:"#38bdf8",redBright:"#f87171",greenBright:"#4ade80",yellowBright:"#facc15",cyanBright:"#06b6d4",whiteBright:"#ffffff",bgBlue:"#2563eb",bgGreen:"#16a34a",bgYellow:"#ca8a04",bgRed:"#dc2626",bgPurple:"#9333ea",bgCyan:"#0891b2",bgWhite:"#ffffff",bgGray:"#525252",bgBlack:"#000000",bgBlueBright:"#2563eb",bgGreenBright:"#16a34a",bgYellowBright:"#ca8a04",bgRedBright:"#dc2626",bgPurpleBright:"#9333ea",bgCyanBright:"#0891b2",bgWhiteBright:"#ffffff"},v={check:"\u2705",error:"\u274C",info:"\u2139\uFE0F",warning:"\u26A0\uFE0F",http:"\u{1F310}",debug:"\u{1FAB2}",log:"\u{1F4CB}",rocket:"\u{1F680}"},m={check:"\uF00C",error:"\uF00D",info:"\uF05A",warning:"\uF071",debug:"\uED7B",http:"\u{F059F}",log:"\uF03A",rocket:"\uF135"},ge={error:{level:"error",icon:m.error,emoji:v.error,showBadge:!0,ansi:{color:a.red,bg:a.bgRed},css:{color:u.red,bg:u.bgRed}},info:{level:"info",icon:m.info,emoji:v.info,showBadge:!0,ansi:{color:a.blue,bg:a.bgBlue},css:{color:u.blue,bg:u.bgBlue}},http:{level:"http",icon:m.http,emoji:v.http,showBadge:!0,ansi:{color:a.blueBright,bg:a.bgBlueBright},css:{color:u.bgBlueBright,bg:u.bgBlueBright}},warning:{level:"warning",icon:m.warning,emoji:v.warning,showBadge:!0,ansi:{color:a.yellow,bg:a.bgYellow},css:{color:u.yellow,bg:u.bgYellow}},success:{level:"success",icon:m.check,emoji:v.check,showBadge:!0,ansi:{color:a.green,bg:a.bgGreen},css:{color:u.green,bg:u.bgGreen}},debug:{level:"debug",icon:m.debug,emoji:v.debug,showBadge:!0,ansi:{color:a.purple,bg:a.bgPurple},css:{color:u.purple,bg:u.bgPurple}},log:{level:"log",icon:m.log,emoji:v.log,showBadge:!0,ansi:{color:a.gray,bg:a.bgGray},css:{color:u.gray,bg:u.bgGray}},setup:{level:"setup",icon:m.rocket,emoji:v.rocket,showBadge:!0,ansi:{color:a.cyan,bg:a.bgCyan},css:{color:u.cyan,bg:u.bgCyan}}},he={double:{border:"\u2550",topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",left:"\u2551",right:"\u2551"},simple:{border:"\u2500",topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",left:"\u2502",right:"\u2502"},rounded:{border:"\u2500",topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",left:"\u2502",right:"\u2502"},bold:{border:"\u2501",topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",left:"\u2503",right:"\u2503"},dashed:{border:"\u2504",topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",left:"\u2502",right:"\u2502"}},pe=e=>Math.floor(e/2)*2,A=typeof process<"u"&&process.release.name==="node",K={height:5,ansi:{color:a.white,borderColor:a.white},css:{color:u.white,borderColor:u.white,bgColor:u.bgGray},blankAbove:!1,blankBelow:!1,width:12,boxStyle:"rounded"},de=(e,t)=>{let r=e.split(`
4
- `),o=pe(t.width??0),n=he[t.boxStyle??"rounded"],i=n.border.repeat(e.length+4+o),s=`${t.ansi?.borderColor??""}${n.topLeft}${i}${n.topRight}`,l=" ".repeat(Math.floor((4+o)/2)),c="";for(let g of r){let d=" ".repeat(Math.floor((e.length-g.length)/2)),B=g===r.at(-1);c+=`${n.left}${l}${d}${t.ansi?.color??""}${g}${a.reset}${t.ansi?.borderColor}${d}${l}${n.right}${B?"":`
5
- `}`}let p=`${n.bottomLeft}${i}${n.bottomRight}${a.reset}`;return{style:n,top:s,middle:c,bottom:p,space:l}},fe=(e,t)=>{let r={...K,...t},{style:o,top:n,middle:i,bottom:s,space:l}=de(e,r);if(r.blankAbove&&console.log(""),console.log(n),r.height&&r.height>1){let c=`${o.left}${l}${" ".repeat(e.length)}${l}${o.right}`;for(let p=0;p<r.height-2;p++)p===Math.floor((r.height-2)/2)?console.log(i):console.log(c)}console.log(s),r.blankBelow&&console.log("")},me=(e,t)=>{let r={...K,...t},o=`display: flex;
1
+ var i={black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",purple:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",blueBright:"\x1B[94m",redBright:"\x1B[91m",greenBright:"\x1B[92m",yellowBright:"\x1B[93m",cyanBright:"\x1B[96m",whiteBright:"\x1B[97m",gray:"\x1B[90m",reset:"\x1B[0m",bgBlack:"\x1B[40m",bgBlue:"\x1B[44m",bgGreen:"\x1B[42m",bgAzure:"\x1B[104m",bgCyan:"\x1B[46m",bgYellow:"\x1B[43m",bgRed:"\x1B[41m",bgPurple:"\x1B[45m",bgGray:"\x1B[100m",bgWhite:"\x1B[47m",bgBlueBright:"\x1B[104m",bgRedBright:"\x1B[101m",bgGreenBright:"\x1B[102m",bgYellowBright:"\x1B[103m",bgCyanBright:"\x1B[106m",bgWhiteBright:"\x1B[107m"},s={black:"#000000",blue:"#60a5fa",green:"#4ade80",yellow:"#facc15",red:"#f87171",purple:"#c084fc",cyan:"#06b6d4",white:"#ffffff",gray:"#a3a3a3",blueBright:"#38bdf8",redBright:"#f87171",greenBright:"#4ade80",yellowBright:"#facc15",cyanBright:"#06b6d4",whiteBright:"#ffffff",bgBlue:"#2563eb",bgGreen:"#16a34a",bgYellow:"#ca8a04",bgRed:"#dc2626",bgPurple:"#9333ea",bgCyan:"#0891b2",bgWhite:"#ffffff",bgGray:"#525252",bgBlack:"#000000",bgBlueBright:"#2563eb",bgGreenBright:"#16a34a",bgYellowBright:"#ca8a04",bgRedBright:"#dc2626",bgPurpleBright:"#9333ea",bgCyanBright:"#0891b2",bgWhiteBright:"#ffffff"},u={check:"\u2705",error:"\u274C",info:"\u2139\uFE0F",warning:"\u26A0\uFE0F",http:"\u{1F310}",debug:"\u{1FAB2}",log:"\u{1F4CB}",rocket:"\u{1F680}"},h={check:"\uF00C",error:"\uF00D",info:"\uF05A",warning:"\uF071",debug:"\uED7B",http:"\u{F059F}",log:"\uF03A",rocket:"\uF135"},L={error:{level:"error",icon:h.error,emoji:u.error,showBadge:!0,ansi:{color:i.red,bg:i.bgRed},css:{color:s.red,bg:s.bgRed}},info:{level:"info",icon:h.info,emoji:u.info,showBadge:!0,ansi:{color:i.blue,bg:i.bgBlue},css:{color:s.blue,bg:s.bgBlue}},http:{level:"http",icon:h.http,emoji:u.http,showBadge:!0,ansi:{color:i.blueBright,bg:i.bgBlueBright},css:{color:s.bgBlueBright,bg:s.bgBlueBright}},warning:{level:"warning",icon:h.warning,emoji:u.warning,showBadge:!0,ansi:{color:i.yellow,bg:i.bgYellow},css:{color:s.yellow,bg:s.bgYellow}},success:{level:"success",icon:h.check,emoji:u.check,showBadge:!0,ansi:{color:i.green,bg:i.bgGreen},css:{color:s.green,bg:s.bgGreen}},debug:{level:"debug",icon:h.debug,emoji:u.debug,showBadge:!0,ansi:{color:i.purple,bg:i.bgPurple},css:{color:s.purple,bg:s.bgPurple}},log:{level:"log",icon:h.log,emoji:u.log,showBadge:!0,ansi:{color:i.gray,bg:i.bgGray},css:{color:s.gray,bg:s.bgGray}},setup:{level:"setup",icon:h.rocket,emoji:u.rocket,showBadge:!0,ansi:{color:i.cyan,bg:i.bgCyan},css:{color:s.cyan,bg:s.bgCyan}}},A={double:{border:"\u2550",topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",left:"\u2551",right:"\u2551"},simple:{border:"\u2500",topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",left:"\u2502",right:"\u2502"},rounded:{border:"\u2500",topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",left:"\u2502",right:"\u2502"},bold:{border:"\u2501",topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",left:"\u2503",right:"\u2503"},dashed:{border:"\u2504",topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",left:"\u2502",right:"\u2502"}},G=o=>Math.floor(o/2)*2,$=typeof process<"u"&&process.release.name==="node",E={height:5,ansi:{color:i.white,borderColor:i.white},css:{color:s.white,borderColor:s.white,bgColor:s.bgGray},blankAbove:!1,blankBelow:!1,width:12,boxStyle:"rounded"},T=(o,e)=>{let t=o.split(`
2
+ `),r=G(e.width??0),n=A[e.boxStyle??"rounded"],l=n.border.repeat(o.length+4+r),a=`${e.ansi?.borderColor??""}${n.topLeft}${l}${n.topRight}`,c=" ".repeat(Math.floor((4+r)/2)),b="";for(let f of t){let w=" ".repeat(Math.floor((o.length-f.length)/2)),j=f===t.at(-1);b+=`${n.left}${c}${w}${e.ansi?.color??""}${f}${i.reset}${e.ansi?.borderColor}${w}${c}${n.right}${j?"":`
3
+ `}`}let p=`${n.bottomLeft}${l}${n.bottomRight}${i.reset}`;return{style:n,top:a,middle:b,bottom:p,space:c}},D=(o,e)=>{let t={...E,...e},{style:r,top:n,middle:l,bottom:a,space:c}=T(o,t);if(t.blankAbove&&console.log(""),console.log(n),t.height&&t.height>1){let b=`${r.left}${c}${" ".repeat(o.length)}${c}${r.right}`;for(let p=0;p<t.height-2;p++)p===Math.floor((t.height-2)/2)?console.log(l):console.log(b)}console.log(a),t.blankBelow&&console.log("")},M=(o,e)=>{let t={...E,...e},r=`display: flex;
6
4
  align-items: center;
7
5
  justify-content: center;
8
- color: ${r.css?.color};
9
- background-color: ${r.css?.bgColor};
10
- border: 2px solid ${r.css?.borderColor};
6
+ color: ${t.css?.color};
7
+ background-color: ${t.css?.bgColor};
8
+ border: 2px solid ${t.css?.borderColor};
11
9
  border-radius: 4px;
12
- padding: ${r.css?.padding??"10px"};
13
- `;return r.blankAbove&&console.log(""),console.log(`%c${e}`,o),r.blankBelow&&console.log(""),[`%c${e}`,o]},be=(e,t)=>{A?fe(e,t):me(e,t)},Y={dots:["\u28FE","\u28F7","\u28EF","\u28DF","\u28FB","\u28FD","\u28FE"],line:["-","\\","|","/"],bounce:["\u2801","\u2802","\u2804","\u2802"],circle:["\u25D0","\u25D3","\u25D1","\u25D2"],arrow:["\u2190","\u2196","\u2191","\u2197","\u2192","\u2198","\u2193","\u2199"],grow:[".","..","...","....",".....","......","......."]},E={reset:"\x1B[0m",underline:"\x1B[4m",bold:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m",inverse:"\x1B[7m",hidden:"\x1B[8m",strikethrough:"\x1B[9m"},ve=(e,t)=>(t.bold&&e.push(E.bold),t.dim&&e.push(E.dim),t.italic&&e.push(E.italic),t.inverse&&e.push(E.inverse),t.hidden&&e.push(E.hidden),t.underline&&e.push(E.underline),t.strikethrough&&e.push(E.strikethrough),t.reset&&e.push(E.reset),e.join("")),f={ansi:(e,t)=>{let r=[];return t.color&&r.push(t.color),t.bg&&r.push(t.bg),ve(r,t),`${r.join("")}${e}${a.reset}`},css:(e,t)=>[`%c${e}`,t]},F=()=>new Date().toLocaleTimeString("en-GB",{hour12:!1}),Ee=class{color=a.blueBright;frameIndex=0;message="Loading...";position="right";showTimestamp=!1;timer=null;type="dots";constructor({message:e,position:t,color:r,showTimestamp:o,type:n}){this.message=e,this.position=t??this.position,this.color=r??this.color,this.showTimestamp=o??this.showTimestamp,this.type=n??this.type}start(){if(!A)return;let e=f.ansi(F(),{color:a.gray}),t=this.showTimestamp?`${e} `:"";process.stdout.write("\x1B[?25l"),this.timer=setInterval(()=>{let r=f.ansi(Y[this.type][this.frameIndex],{color:this.color}),o=f.ansi(this.message,{color:this.color});this.position==="left"?process.stdout.write(`\r${t}${r} ${o} `):process.stdout.write(`\r${t}${o} ${r}`),this.frameIndex=(this.frameIndex+1)%Y[this.type].length},80)}stop(e,t=m.check){this.timer&&(clearInterval(this.timer),this.timer=null),process.stdout.write("\r\x1B[2K");let r=f.ansi(F(),{color:a.gray}),o=this.showTimestamp?`${r} `:"",n=f.ansi(e??this.message,{color:this.color}),i=f.ansi(t,{color:a.greenBright});this.position==="left"?process.stdout.write(`\r\x1B[K${o}${i} ${n}
14
- `):process.stdout.write(`\r\x1B[K${o}${n} ${i}
15
- `),process.stdout.write("\x1B[?25h")}},M=e=>{let t=new URL(e);return t.pathname+t.search};var C=class{options;constructor(e={}){this.options={showTimestamp:!0,showBadge:!0,isDev:!0,prefix:"",...e}}formatAnsi(e,t,r,o){let n=f.ansi(e,{color:a.gray}),i=f.ansi(` ${o.icon} ${t.toUpperCase()} `,{color:o.ansi?.color,bg:o.ansi?.bg,bold:!0}),s=o.showBadge?` ${i} `:" ",l=f.ansi(r,{color:o.ansi?.color});return[`${n}${s}${l}`]}formatCss(e,t,r,o){let n=`background: ${o.css?.bg}; color: ${u.white}; font-weight: bold; padding: 2px 6px; border-radius: 3px;`,[i,s]=f.css(e,`color: ${u.gray};`),[l,c]=f.css(`${o.emoji} ${t.toUpperCase()}`,n),[p,g]=f.css(` ${r}`,`color: ${o.css?.color}; font-weight: bold;`);return[`${i} ${l} ${p}`,s,c,g]}formatMessage(e,t,r){let o={...ge[e],...this.options[e],...r},n=r?.showTimestamp??this.options.showTimestamp?F():"",i=r?.prefix??this.options.prefix,s=i?`${i} ${t}`:t;return A?this.formatAnsi(n,e,s,o):this.formatCss(n,e,s,o)}run(e,t,r){this.options.isDev&&this.runWithSpacing(()=>{console.log(...this.formatMessage(e,t,r))},r)}runWithSpacing(e,t){(t?.blankAbove||this.options.blankAbove)&&console.log(""),e(),(t?.blankBelow||this.options.blankBelow)&&console.log("")}blank(){console.log("")}box(e,t){be(e,t)}custom(e,t){this.run("debug",e,t)}debug(e,t){this.run("debug",e,t)}error(e,t){this.run("error",e,t)}http(e){let t=M(e?.url??"");this.run("http",`${e?.method} ${e?.status} - ${t} (${e?.time}ms)`,e)}httpError(e,t){let r=M(t?.url??"");this.run("error",`${t?.method} ${t?.status} - ${r} (${t?.time}ms) - ${e}`,t)}info(e,t){this.run("info",e,t)}loader(e){return new Ee({...e})}log(e,t){this.run("log",e,t)}setup(e,t){this.run("setup",e,t)}success(e,t){this.run("success",e,t)}warning(e,t){this.run("warning",e,t)}};var Me=new C;var $=new C;import we from"fs";import{resolve as $e}from"path";var P=(e,t)=>{let o=`${$e(process.cwd(),t?.path??"",t?.fileName??`.env.${t?.currentState}`)}.example`,n=Object.entries(e).map(([i,s])=>{let l=s===void 0?`<${i}>`:s;return`${i}=${l}`}).join(`
16
- `);we.writeFileSync(o,n),$.success(`Example file generated: ${o}`)},U=(e,t)=>{if(t?.listEnvironment&&t.listEnvironment.length>0)for(let r of t.listEnvironment){let o=Object.fromEntries(Object.entries(e).filter(([n])=>n===r));P(o,t)}else P(e,t)};var X=O(L(),1),ee=O(j(),1);import{existsSync as Ge}from"fs";import{resolve as Se}from"path";var te=e=>{let t=process.env.NODE_ENV??"development",r=Se(process.cwd(),e?.path??"",e?.fileName??`.env.${t}`);if(Ge(r)){let o=X.default.config({path:r});return(0,ee.expand)(o),{path:r,state:t}}throw new Error(`No se encontr\xF3 el archivo de entorno en la ruta: ${r}`)};var re=e=>{$.error("Invalid environment configuration detected");let{fieldErrors:t}=e.flatten();Object.entries(t).forEach(([r,o])=>{let n=Array.isArray(o)?o:[o];n.length>0&&$.error(`Field [${r}]: ${n.join(", ")}`)}),process.exit(1)};var oe=O(L(),1),ne=O(j(),1),ct=(e,t)=>{let r=te(t);(0,ne.expand)(oe.default.config({path:r.path}));let o=e.safeParse(process.env);if(o.success)return $.success("Environment configuration loaded successfully"),t?.generateExample&&U(o.data,{...t,currentState:r.state,listEnvironment:t.listEnvironment}),o.data;throw re(o.error),new Error("Environment validation failed")};export{ct as createEnvironment};
10
+ padding: ${t.css?.padding??"10px"};
11
+ `;return t.blankAbove&&console.log(""),console.log(`%c${o}`,r),t.blankBelow&&console.log(""),[`%c${o}`,r]},S=(o,e)=>{$?D(o,e):M(o,e)},v={dots:["\u28FE","\u28F7","\u28EF","\u28DF","\u28FB","\u28FD","\u28FE"],line:["-","\\","|","/"],bounce:["\u2801","\u2802","\u2804","\u2802"],circle:["\u25D0","\u25D3","\u25D1","\u25D2"],arrow:["\u2190","\u2196","\u2191","\u2197","\u2192","\u2198","\u2193","\u2199"],grow:[".","..","...","....",".....","......","......."]},m={reset:"\x1B[0m",underline:"\x1B[4m",bold:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m",inverse:"\x1B[7m",hidden:"\x1B[8m",strikethrough:"\x1B[9m"},O=(o,e)=>(e.bold&&o.push(m.bold),e.dim&&o.push(m.dim),e.italic&&o.push(m.italic),e.inverse&&o.push(m.inverse),e.hidden&&o.push(m.hidden),e.underline&&o.push(m.underline),e.strikethrough&&o.push(m.strikethrough),e.reset&&o.push(m.reset),o.join("")),g={ansi:(o,e)=>{let t=[];return e.color&&t.push(e.color),e.bg&&t.push(e.bg),O(t,e),`${t.join("")}${o}${i.reset}`},css:(o,e)=>[`%c${o}`,e]},B=()=>new Date().toLocaleTimeString("en-GB",{hour12:!1}),I=class{color=i.blueBright;frameIndex=0;message="Loading...";position="right";showTimestamp=!1;timer=null;type="dots";constructor({message:o,position:e,color:t,showTimestamp:r,type:n}){this.message=o,this.position=e??this.position,this.color=t??this.color,this.showTimestamp=r??this.showTimestamp,this.type=n??this.type}start(){if(!$)return;let o=g.ansi(B(),{color:i.gray}),e=this.showTimestamp?`${o} `:"";process.stdout.write("\x1B[?25l"),this.timer=setInterval(()=>{let t=g.ansi(v[this.type][this.frameIndex],{color:this.color}),r=g.ansi(this.message,{color:this.color});this.position==="left"?process.stdout.write(`\r${e}${t} ${r} `):process.stdout.write(`\r${e}${r} ${t}`),this.frameIndex=(this.frameIndex+1)%v[this.type].length},80)}stop(o,e=h.check){this.timer&&(clearInterval(this.timer),this.timer=null),process.stdout.write("\r\x1B[2K");let t=g.ansi(B(),{color:i.gray}),r=this.showTimestamp?`${t} `:"",n=g.ansi(o??this.message,{color:this.color}),l=g.ansi(e,{color:i.greenBright});this.position==="left"?process.stdout.write(`\r\x1B[K${r}${l} ${n}
12
+ `):process.stdout.write(`\r\x1B[K${r}${n} ${l}
13
+ `),process.stdout.write("\x1B[?25h")}},y=o=>{let e=new URL(o);return e.pathname+e.search};var x=class{options;constructor(o={}){this.options={showTimestamp:!0,showBadge:!0,isDev:!0,prefix:"",...o}}formatAnsi(o,e,t,r){let n=g.ansi(o,{color:i.gray}),l=g.ansi(` ${r.icon} ${e.toUpperCase()} `,{color:r.ansi?.color,bg:r.ansi?.bg,bold:!0}),a=r.showBadge?` ${l} `:" ",c=g.ansi(t,{color:r.ansi?.color});return[`${n}${a}${c}`]}formatCss(o,e,t,r){let n=`background: ${r.css?.bg}; color: ${s.white}; font-weight: bold; padding: 2px 6px; border-radius: 3px;`,[l,a]=g.css(o,`color: ${s.gray};`),[c,b]=g.css(`${r.emoji} ${e.toUpperCase()}`,n),[p,f]=g.css(` ${t}`,`color: ${r.css?.color}; font-weight: bold;`);return[`${l} ${c} ${p}`,a,b,f]}formatMessage(o,e,t){let r={...L[o],...this.options[o],...t},n=t?.showTimestamp??this.options.showTimestamp?B():"",l=t?.prefix??this.options.prefix,a=l?`${l} ${e}`:e;return $?this.formatAnsi(n,o,a,r):this.formatCss(n,o,a,r)}run(o,e,t){this.options.isDev&&this.runWithSpacing(()=>{console.log(...this.formatMessage(o,e,t))},t)}runWithSpacing(o,e){(e?.blankAbove||this.options.blankAbove)&&console.log(""),o(),(e?.blankBelow||this.options.blankBelow)&&console.log("")}blank(){console.log("")}box(o,e){S(o,e)}custom(o,e){this.run("debug",o,e)}debug(o,e){this.run("debug",o,e)}error(o,e){this.run("error",o,e)}http(o){let e=y(o?.url??"");this.run("http",`${o?.method} ${o?.status} - ${e} (${o?.time}ms)`,o)}httpError(o,e){let t=y(e?.url??"");this.run("error",`${e?.method} ${e?.status} - ${t} (${e?.time}ms) - ${o}`,e)}info(o,e){this.run("info",o,e)}loader(o){return new I({...o})}log(o,e){this.run("log",o,e)}setup(o,e){this.run("setup",o,e)}success(o,e){this.run("success",o,e)}warning(o,e){this.run("warning",o,e)}};var U=new x;var d=new x;import P from"fs";import{resolve as N}from"path";var F=(o,e)=>{let t=N(process.cwd(),e?.path??"",e?.fileName??`.env.${e?.currentState}`),r=Object.entries(o).map(([n,l])=>{let a=l===void 0?`<${n}>`:l;return`${n}=${a}`}).join(`
14
+ `);P.writeFileSync(t,r),d.success(`Example file generated: ${e?.fileName}`)},k=(o,e)=>{if(e?.listEnvironment&&e.listEnvironment.length>0)for(let t of e.listEnvironment){let r=`.env.${t}.example`;F(o,{...e,fileName:r})}else F(o,e)};import W from"dotenv";import{expand as Y}from"dotenv-expand";import{existsSync as z}from"fs";import{resolve as _}from"path";var C=o=>{let e=process.env.NODE_ENV??"development",t=_(process.cwd(),o?.path??"",o?.fileName??`.env.${e}`);if(z(t)){let r=W.config({path:t,quiet:!0});return Y(r),{path:t,state:e}}throw new Error(`File not found: ${t}`)};var R=o=>{d.error("Invalid environment configuration detected");let{fieldErrors:e}=o.flatten();Object.entries(e).forEach(([t,r])=>{let n=Array.isArray(r)?r:[r];n.length>0&&d.error(`Field [${t}]: ${n.join(", ")}`)}),process.exit(1)};var ue=(o,e)=>{let t=C(e),r=o.safeParse(process.env);if(r.success)return d.success("Environment configuration loaded successfully"),e?.generateExample&&k(r.data,{...e,currentState:t.state,listEnvironment:e.listEnvironment}),r.data;throw R(r.error),new Error("Environment validation failed")};export{ue as createEnvironment};
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "envlys",
3
3
  "description": "📦️ A lightweight, type-safe environment variable validator for TypeScript and Bun, powered by Zod. Features auto-loading, variable expansion, and automatic .env.example generation",
4
4
  "author": "Luis Monsalve",
5
- "version": "1.0.0",
5
+ "version": "1.0.1",
6
6
  "homepage": "https://github.com/TheElegantCoding/envlys#readme",
7
7
  "repository": {
8
8
  "type": "git",
@@ -46,8 +46,8 @@
46
46
  "dotenv": "^17.4.2",
47
47
  "dotenv-expand": "^13.0.0",
48
48
  "eslint-config-universal-code": "^1.0.15",
49
- "gitlys": "^1.1.5",
50
- "logginlys": "^3.0.2",
49
+ "gitlys": "^2.1.4",
50
+ "logginlys": "^4.0.2",
51
51
  "tsup": "^8.5.1",
52
52
  "typescript": "^5.9.3",
53
53
  "zod": "^4.3.6"