@stacksjs/env 0.70.77 → 0.70.79
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 +1 -1
- package/dist/types.d.ts +2 -0
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -20,6 +20,6 @@ ${U}="${A.privateKey}"
|
|
|
20
20
|
`);return V(Z,I,"utf-8"),{success:!0,output:`set ${J}${$.plain?"":" with encryption"} (${$.file||".env"})`}}catch(Y){return{success:!1,error:`Failed to set: ${Y instanceof Error?Y.message:"Unknown error"}`}}}function fJ(J,Q={}){let $=Q.cwd||process.cwd(),z=C($,Q.file||".env");if(!g(z))return{success:!1,error:`File not found: ${z}`};try{let Z,X=C($,Q.keysFile||".env.keys"),G=((Q.file||".env").split("/").pop()||"").replace(/^\.env\./,"").replace(/^\.env$/,"").toUpperCase(),j=G?`DOTENV_PRIVATE_KEY_${G}`:"DOTENV_PRIVATE_KEY";if(g(X)){let U=L(X,"utf-8"),{parsed:B}=T(U);Z=B[j]}if(!Z)Z=process.env[j];let q=L(z,"utf-8"),{parsed:D}=T(q,{privateKey:Z});if(J&&!Q.all){let U=D[J];if(U===void 0)return{success:!1,error:`Key not found: ${J}`};return{success:!0,output:U}}let H=Q.all?{...process.env,...D}:D,O;switch(Q.format){case"shell":O=Object.entries(H).map(([U,B])=>`${U}=${B}`).join(" ");break;case"eval":O=Object.entries(H).map(([U,B])=>`${U}="${B}"`).join(`
|
|
21
21
|
`);break;case"json":default:O=Q.prettyPrint?JSON.stringify(H,null,2):JSON.stringify(H);break}return{success:!0,output:O}}catch(Z){return{success:!1,error:`Failed to get: ${Z instanceof Error?Z.message:"Unknown error"}`}}}function xJ(J,Q={}){let $=Q.cwd||process.cwd(),z=C($,Q.keysFile||".env.keys");if(!g(z))return{success:!1,error:`Keys file not found: ${z}`};try{let Z=L(z,"utf-8"),{parsed:X}=T(Z),G=((Q.file||".env").split("/").pop()||"").replace(/^\.env\./,"").replace(/^\.env$/,"").toUpperCase(),j=G?`DOTENV_PUBLIC_KEY_${G}`:"DOTENV_PUBLIC_KEY",q=G?`DOTENV_PRIVATE_KEY_${G}`:"DOTENV_PRIVATE_KEY";if(J){let O=X[J];if(!O)return{success:!1,error:`Key not found: ${J}`};return{success:!0,output:O}}let D={[j]:X[j],[q]:X[q]};return{success:!0,output:Q.format==="shell"?`${j}=${D[j]} ${q}=${D[q]}`:JSON.stringify(D)}}catch(Z){return{success:!1,error:`Failed to get keypair: ${Z instanceof Error?Z.message:"Unknown error"}`}}}function SJ(J={}){let Q=JJ({file:J.file,keysFile:J.keysFile,stdout:!0,cwd:J.cwd});if(!Q.success)return Q;let $=J.cwd||process.cwd(),z=C($,J.file||".env"),Z=C($,J.keysFile||".env.keys");if(Q.output)V(z,Q.output,"utf-8");let X=b(),W=L(Z,"utf-8").split(`
|
|
22
22
|
`),G=J.file?J.file.replace(/^\.env\./,"").toUpperCase():"",j=G?`DOTENV_PUBLIC_KEY_${G}`:"DOTENV_PUBLIC_KEY",q=G?`DOTENV_PRIVATE_KEY_${G}`:"DOTENV_PRIVATE_KEY";for(let D=0;D<W.length;D++){let H=W[D];if(H===void 0)continue;if(H.startsWith(`${j}=`))W[D]=`${j}="${X.publicKey}"`;else if(H.startsWith(`${q}=`))W[D]=`${q}="${X.privateKey}"`}return V(Z,W.join(`
|
|
23
|
-
`),"utf-8"),e({file:J.file,keysFile:J.keysFile,key:J.key,excludeKey:J.excludeKey,stdout:J.stdout,cwd:J.cwd})}import _ from"process";import{platform as QJ}from"os";var d=typeof Bun<"u",u=typeof _<"u"&&_.versions?.node!==void 0,ZJ=d?"bun":u?"node":"unknown",mJ={name:ZJ,version:d?Bun.version:u?_.version:void 0},P=QJ(),hJ=P==="win32",kJ=P==="darwin",dJ=P==="linux",c=Boolean(_.stdout?.isTTY),uJ=typeof globalThis.window<"u",$J=Boolean(_.env.CI||_.env.CONTINUOUS_INTEGRATION||_.env.BUILD_NUMBER||_.env.RUN_ID),cJ=Boolean(_.env.DEBUG||_.env.VERBOSE||_.argv.includes("--debug")||_.argv.includes("--verbose")),zJ=$J||!c,vJ=Boolean(!zJ&&(c||_.env.COLORTERM||_.env.FORCE_COLOR||_.env.TERM&&_.env.TERM!=="dumb")),N={github:{name:"GitHub Actions",detected:Boolean(_.env.GITHUB_ACTIONS)},gitlab:{name:"GitLab CI",detected:Boolean(_.env.GITLAB_CI)},circle:{name:"CircleCI",detected:Boolean(_.env.CIRCLECI)},travis:{name:"Travis CI",detected:Boolean(_.env.TRAVIS)},jenkins:{name:"Jenkins",detected:Boolean(_.env.JENKINS_URL)},vercel:{name:"Vercel",detected:Boolean(_.env.VERCEL)},netlify:{name:"Netlify",detected:Boolean(_.env.NETLIFY)},heroku:{name:"Heroku",detected:Boolean(_.env.DYNO)},aws:{name:"AWS",detected:Boolean(_.env.AWS_REGION||_.env.AWS_LAMBDA_FUNCTION_NAME)},azure:{name:"Azure",detected:Boolean(_.env.AZURE_HTTP_USER_AGENT)},cloudflare:{name:"Cloudflare",detected:Boolean(_.env.CF_PAGES)},railway:{name:"Railway",detected:Boolean(_.env.RAILWAY_ENVIRONMENT)},render:{name:"Render",detected:Boolean(_.env.RENDER)}},XJ=Object.keys(N).find((J)=>{let Q=N[J];return Q!==void 0&&Q.detected})||"unknown",lJ=N[XJ]||{name:"Unknown",detected:!1};import jJ from"process";import{projectPath as GJ}from"@stacksjs/path";import l from"fs";var v={APP_ENV:["local","dev","development","staging","prod","production"],DB_CONNECTION:["mysql","sqlite","postgres","dynamodb"],MAIL_MAILER:["smtp","mailgun","ses","log","sendgrid","mailtrap"],SEARCH_ENGINE_DRIVER:["opensearch","meilisearch","algolia","typesense"],FRONTEND_APP_ENV:["development","staging","production"]};var WJ={get:(J,Q)=>{let $=J[Q],z=["_PORT","_TIMEOUT","_TTL","_SIZE","_LIMIT","_MAX","_MIN","_INTERVAL","_RETRIES","_CONCURRENCY","_WORKERS","_CONNECTIONS"];if(typeof $==="string"&&/^\d+$/.test($)&&!$.startsWith("0")&&z.some((Z)=>Q.endsWith(Z)))return Number($);if(typeof $==="string"){let Z=$.toLowerCase();if(Z==="true")return!0;if(Z==="false")return!1}return $}};function OJ(){return typeof Bun<"u"?Bun.env:jJ.env}var y=new Proxy(OJ(),WJ);function oJ(J,Q,$){let z=$?.path||GJ(".env"),X=l.readFileSync(z,"utf-8").split(`
|
|
23
|
+
`),"utf-8"),e({file:J.file,keysFile:J.keysFile,key:J.key,excludeKey:J.excludeKey,stdout:J.stdout,cwd:J.cwd})}import _ from"process";import{platform as QJ}from"os";var d=typeof Bun<"u",u=typeof _<"u"&&_.versions?.node!==void 0,ZJ=d?"bun":u?"node":"unknown",mJ={name:ZJ,version:d?Bun.version:u?_.version:void 0},P=QJ(),hJ=P==="win32",kJ=P==="darwin",dJ=P==="linux",c=Boolean(_.stdout?.isTTY),uJ=typeof globalThis.window<"u",$J=Boolean(_.env.CI||_.env.CONTINUOUS_INTEGRATION||_.env.BUILD_NUMBER||_.env.RUN_ID),cJ=Boolean(_.env.DEBUG||_.env.VERBOSE||_.argv.includes("--debug")||_.argv.includes("--verbose")),zJ=$J||!c,vJ=Boolean(!zJ&&(c||_.env.COLORTERM||_.env.FORCE_COLOR||_.env.TERM&&_.env.TERM!=="dumb")),N={github:{name:"GitHub Actions",detected:Boolean(_.env.GITHUB_ACTIONS)},gitlab:{name:"GitLab CI",detected:Boolean(_.env.GITLAB_CI)},circle:{name:"CircleCI",detected:Boolean(_.env.CIRCLECI)},travis:{name:"Travis CI",detected:Boolean(_.env.TRAVIS)},jenkins:{name:"Jenkins",detected:Boolean(_.env.JENKINS_URL)},vercel:{name:"Vercel",detected:Boolean(_.env.VERCEL)},netlify:{name:"Netlify",detected:Boolean(_.env.NETLIFY)},heroku:{name:"Heroku",detected:Boolean(_.env.DYNO)},aws:{name:"AWS",detected:Boolean(_.env.AWS_REGION||_.env.AWS_LAMBDA_FUNCTION_NAME)},azure:{name:"Azure",detected:Boolean(_.env.AZURE_HTTP_USER_AGENT)},cloudflare:{name:"Cloudflare",detected:Boolean(_.env.CF_PAGES)},railway:{name:"Railway",detected:Boolean(_.env.RAILWAY_ENVIRONMENT)},render:{name:"Render",detected:Boolean(_.env.RENDER)}},XJ=Object.keys(N).find((J)=>{let Q=N[J];return Q!==void 0&&Q.detected})||"unknown",lJ=N[XJ]||{name:"Unknown",detected:!1};import jJ from"process";import{projectPath as GJ}from"@stacksjs/path";import l from"fs";var v={APP_ENV:["local","dev","development","staging","prod","production"],DB_CONNECTION:["mysql","sqlite","postgres","dynamodb"],DB_MIGRATE_FRESH:["allow","confirm","disabled"],MAIL_MAILER:["smtp","mailgun","ses","log","sendgrid","mailtrap"],SEARCH_ENGINE_DRIVER:["opensearch","meilisearch","algolia","typesense"],FRONTEND_APP_ENV:["development","staging","production"]};var WJ={get:(J,Q)=>{let $=J[Q],z=["_PORT","_TIMEOUT","_TTL","_SIZE","_LIMIT","_MAX","_MIN","_INTERVAL","_RETRIES","_CONCURRENCY","_WORKERS","_CONNECTIONS"];if(typeof $==="string"&&/^\d+$/.test($)&&!$.startsWith("0")&&z.some((Z)=>Q.endsWith(Z)))return Number($);if(typeof $==="string"){let Z=$.toLowerCase();if(Z==="true")return!0;if(Z==="false")return!1}return $}};function OJ(){return typeof Bun<"u"?Bun.env:jJ.env}var y=new Proxy(OJ(),WJ);function oJ(J,Q,$){let z=$?.path||GJ(".env"),X=l.readFileSync(z,"utf-8").split(`
|
|
24
24
|
`),Y=X.findIndex((j)=>j.startsWith(`${J}=`)),G=/[\s"'#$\\]/.test(Q)?`"${Q.replace(/"/g,"\\\"")}"`:Q;if(Y!==-1)X[Y]=`${J}=${G}`;else X.push(`${J}=${G}`);l.writeFileSync(z,X.join(`
|
|
25
25
|
`))}function sJ(J=y){let Q=[];for(let[$,z]of Object.entries(v)){let Z=J[$];if(Z!==void 0&&Z!==""&&!z.includes(String(Z)))Q.push(`${$}="${Z}" is not valid. Allowed values: ${z.join(", ")}`)}return Q}function tJ(J,Q=y){let $=[];for(let z of J){let Z=Q[z];if(Z===void 0||Z===""||Z===null)$.push(z)}if($.length>0)throw Error(`[env] Missing required environment variable(s): ${$.join(", ")}. Set them in .env or your process environment before booting.`);return Q}export{oJ as writeEnv,sJ as validateEnv,bJ as setEnv,mJ as runtimeInfo,ZJ as runtime,SJ as rotateKeypair,tJ as requireEnv,lJ as providerInfo,XJ as provider,OJ as process,P as platform,AJ as parseEnvFromKey,T as parse,_J as loadEnvFiles,k as loadEnv,hJ as isWindows,u as isNode,zJ as isMinimal,kJ as isMacOS,dJ as isLinux,cJ as isDebug,vJ as isColorSupported,$J as isCI,d as isBun,uJ as hasWindow,c as hasTTY,m as getPrivateKey,xJ as getKeypair,fJ as getEnv,b as generateKeypair,t as envPlugin,v as envEnum,y as env,S as encryptValue,e as encryptEnv,x as decryptValue,JJ as decryptEnv,LJ as autoLoadEnv,a as aesEncrypt,n as aesDecrypt};
|
package/dist/types.d.ts
CHANGED
|
@@ -61,6 +61,8 @@ export declare interface StacksEnv {
|
|
|
61
61
|
DB_QUERY_LOGGING_ANALYZE_ALL: boolean | undefined
|
|
62
62
|
DB_QUERY_LOGGING_EXPLAIN_PLAN: boolean | undefined
|
|
63
63
|
DB_QUERY_LOGGING_SUGGESTIONS: boolean | undefined
|
|
64
|
+
DB_MIGRATE_CONFIRM: boolean | undefined
|
|
65
|
+
DB_MIGRATE_FRESH: 'allow' | 'confirm' | 'disabled' | undefined
|
|
64
66
|
DATABASE_URL: string | undefined
|
|
65
67
|
AWS_ACCOUNT_ID: string | undefined
|
|
66
68
|
AWS_ACCESS_KEY_ID: string | undefined
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stacksjs/env",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.70.
|
|
4
|
+
"version": "0.70.79",
|
|
5
5
|
"description": "Stacks env helper methods.",
|
|
6
6
|
"author": "Chris Breuer",
|
|
7
7
|
"contributors": [
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"better-dx": "^0.2.16",
|
|
53
|
-
"@stacksjs/path": "0.70.
|
|
54
|
-
"@stacksjs/validation": "0.70.
|
|
53
|
+
"@stacksjs/path": "0.70.79",
|
|
54
|
+
"@stacksjs/validation": "0.70.79"
|
|
55
55
|
}
|
|
56
56
|
}
|