envlys 1.0.0 → 1.0.2
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/dist/index.js +11 -13
- package/package.json +10 -6
package/dist/index.js
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
var
|
|
2
|
-
`)
|
|
3
|
-
`
|
|
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: ${
|
|
9
|
-
background-color: ${
|
|
10
|
-
border: 2px solid ${
|
|
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: ${
|
|
13
|
-
`;return
|
|
14
|
-
`):process.stdout.write(`\r\x1B[K${
|
|
15
|
-
`),process.stdout.write("\x1B[?25h")}},
|
|
16
|
-
`);
|
|
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.
|
|
5
|
+
"version": "1.0.2",
|
|
6
6
|
"homepage": "https://github.com/TheElegantCoding/envlys#readme",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
@@ -28,7 +28,9 @@
|
|
|
28
28
|
},
|
|
29
29
|
"main": "./dist/index.js",
|
|
30
30
|
"types": "./dist/index.d.ts",
|
|
31
|
-
"files": [
|
|
31
|
+
"files": [
|
|
32
|
+
"./dist"
|
|
33
|
+
],
|
|
32
34
|
"engines": {
|
|
33
35
|
"node": ">=22.17.0",
|
|
34
36
|
"bun": ">=1.1.0"
|
|
@@ -41,13 +43,15 @@
|
|
|
41
43
|
"lint": "eslint --fix",
|
|
42
44
|
"release": "bunx gitlys release"
|
|
43
45
|
},
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"dotenv": "^17.4.2",
|
|
48
|
+
"dotenv-expand": "^13.0.0"
|
|
49
|
+
},
|
|
44
50
|
"devDependencies": {
|
|
45
51
|
"@types/node": "^25.6.0",
|
|
46
|
-
"dotenv": "^17.4.2",
|
|
47
|
-
"dotenv-expand": "^13.0.0",
|
|
48
52
|
"eslint-config-universal-code": "^1.0.15",
|
|
49
|
-
"gitlys": "^
|
|
50
|
-
"logginlys": "^
|
|
53
|
+
"gitlys": "^2.1.4",
|
|
54
|
+
"logginlys": "^4.0.2",
|
|
51
55
|
"tsup": "^8.5.1",
|
|
52
56
|
"typescript": "^5.9.3",
|
|
53
57
|
"zod": "^4.3.6"
|