@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 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.77",
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.77",
54
- "@stacksjs/validation": "0.70.77"
53
+ "@stacksjs/path": "0.70.79",
54
+ "@stacksjs/validation": "0.70.79"
55
55
  }
56
56
  }