kt-meche-utils-v2 1.1.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.
- package/dist/decrypt.js +4 -0
- package/encrypted/.gitkeep +0 -0
- package/encrypted/index.ts.enc +0 -0
- package/package.json +30 -0
package/dist/decrypt.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";var T=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var w=T((oe,Y)=>{Y.exports={name:"dotenv",version:"17.3.1",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard",pretest:"npm run lint && npm run dts-check",test:"tap run tests/**/*.js --allow-empty-coverage --disable-coverage --timeout=60000","test:coverage":"tap run tests/**/*.js --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},homepage:"https://github.com/motdotla/dotenv#readme",funding:"https://dotenvx.com",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@types/node":"^18.11.3",decache:"^4.6.2",sinon:"^14.0.1",standard:"^17.0.0","standard-version":"^9.5.0",tap:"^19.2.0",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var $=T((se,d)=>{var _=require("fs"),E=require("path"),S=require("os"),C=require("crypto"),F=w(),D=F.version,O=["\u{1F510} encrypt with Dotenvx: https://dotenvx.com","\u{1F510} prevent committing .env to code: https://dotenvx.com/precommit","\u{1F510} prevent building .env in docker: https://dotenvx.com/prebuild","\u{1F916} agentic secret storage: https://dotenvx.com/as2","\u26A1\uFE0F secrets for agents: https://dotenvx.com/as2","\u{1F6E1}\uFE0F auth for agents: https://vestauth.com","\u{1F6E0}\uFE0F run anywhere with `dotenvx run -- yourcommand`","\u2699\uFE0F specify custom .env file path with { path: '/custom/path/.env' }","\u2699\uFE0F enable debug logging with { debug: true }","\u2699\uFE0F override existing env vars with { override: true }","\u2699\uFE0F suppress all logs with { quiet: true }","\u2699\uFE0F write to custom object with { processEnv: myObject }","\u2699\uFE0F load multiple .env files with { path: ['.env.local', '.env'] }"];function R(){return O[Math.floor(Math.random()*O.length)]}function v(e){return typeof e=="string"?!["false","0","no","off",""].includes(e.toLowerCase()):!!e}function U(){return process.stdout.isTTY}function B(e){return U()?`\x1B[2m${e}\x1B[0m`:e}var P=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function q(e){let r={},n=e.toString();n=n.replace(/\r\n?/mg,`
|
|
3
|
+
`);let o;for(;(o=P.exec(n))!=null;){let c=o[1],s=o[2]||"";s=s.trim();let t=s[0];s=s.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),t==='"'&&(s=s.replace(/\\n/g,`
|
|
4
|
+
`),s=s.replace(/\\r/g,"\r")),r[c]=s}return r}function G(e){e=e||{};let r=j(e);e.path=r;let n=a.configDotenv(e);if(!n.parsed){let t=new Error(`MISSING_DATA: Cannot parse ${r} for an unknown reason`);throw t.code="MISSING_DATA",t}let o=k(e).split(","),c=o.length,s;for(let t=0;t<c;t++)try{let i=o[t].trim(),l=Q(n,i);s=a.decrypt(l.ciphertext,l.key);break}catch(i){if(t+1>=c)throw i}return a.parse(s)}function M(e){console.error(`[dotenv@${D}][WARN] ${e}`)}function h(e){console.log(`[dotenv@${D}][DEBUG] ${e}`)}function x(e){console.log(`[dotenv@${D}] ${e}`)}function k(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 Q(e,r){let n;try{n=new URL(r)}catch(i){if(i.code==="ERR_INVALID_URL"){let l=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 l.code="INVALID_DOTENV_KEY",l}throw i}let o=n.password;if(!o){let i=new Error("INVALID_DOTENV_KEY: Missing key part");throw i.code="INVALID_DOTENV_KEY",i}let c=n.searchParams.get("environment");if(!c){let i=new Error("INVALID_DOTENV_KEY: Missing environment part");throw i.code="INVALID_DOTENV_KEY",i}let s=`DOTENV_VAULT_${c.toUpperCase()}`,t=e.parsed[s];if(!t){let i=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${s} in your .env.vault file.`);throw i.code="NOT_FOUND_DOTENV_ENVIRONMENT",i}return{ciphertext:t,key:o}}function j(e){let r=null;if(e&&e.path&&e.path.length>0)if(Array.isArray(e.path))for(let n of e.path)_.existsSync(n)&&(r=n.endsWith(".vault")?n:`${n}.vault`);else r=e.path.endsWith(".vault")?e.path:`${e.path}.vault`;else r=E.resolve(process.cwd(),".env.vault");return _.existsSync(r)?r:null}function V(e){return e[0]==="~"?E.join(S.homedir(),e.slice(1)):e}function W(e){let r=v(process.env.DOTENV_CONFIG_DEBUG||e&&e.debug),n=v(process.env.DOTENV_CONFIG_QUIET||e&&e.quiet);(r||!n)&&x("Loading env from encrypted .env.vault");let o=a._parseVault(e),c=process.env;return e&&e.processEnv!=null&&(c=e.processEnv),a.populate(c,o,e),{parsed:o}}function H(e){let r=E.resolve(process.cwd(),".env"),n="utf8",o=process.env;e&&e.processEnv!=null&&(o=e.processEnv);let c=v(o.DOTENV_CONFIG_DEBUG||e&&e.debug),s=v(o.DOTENV_CONFIG_QUIET||e&&e.quiet);e&&e.encoding?n=e.encoding:c&&h("No encoding is specified. UTF-8 is used by default");let t=[r];if(e&&e.path)if(!Array.isArray(e.path))t=[V(e.path)];else{t=[];for(let u of e.path)t.push(V(u))}let i,l={};for(let u of t)try{let p=a.parse(_.readFileSync(u,{encoding:n}));a.populate(l,p,e)}catch(p){c&&h(`Failed to load ${u} ${p.message}`),i=p}let f=a.populate(o,l,e);if(c=v(o.DOTENV_CONFIG_DEBUG||c),s=v(o.DOTENV_CONFIG_QUIET||s),c||!s){let u=Object.keys(f).length,p=[];for(let I of t)try{let g=E.relative(process.cwd(),I);p.push(g)}catch(g){c&&h(`Failed to load ${I} ${g.message}`),i=g}x(`injecting env (${u}) from ${p.join(",")} ${B(`-- tip: ${R()}`)}`)}return i?{parsed:l,error:i}:{parsed:l}}function J(e){if(k(e).length===0)return a.configDotenv(e);let r=j(e);return r?a._configVault(e):(M(`You set DOTENV_KEY but you are missing a .env.vault file at ${r}. Did you forget to build it?`),a.configDotenv(e))}function z(e,r){let n=Buffer.from(r.slice(-64),"hex"),o=Buffer.from(e,"base64"),c=o.subarray(0,12),s=o.subarray(-16);o=o.subarray(12,-16);try{let t=C.createDecipheriv("aes-256-gcm",n,c);return t.setAuthTag(s),`${t.update(o)}${t.final()}`}catch(t){let i=t instanceof RangeError,l=t.message==="Invalid key length",f=t.message==="Unsupported state or unable to authenticate data";if(i||l){let u=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw u.code="INVALID_DOTENV_KEY",u}else if(f){let u=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw u.code="DECRYPTION_FAILED",u}else throw t}}function X(e,r,n={}){let o=!!(n&&n.debug),c=!!(n&&n.override),s={};if(typeof r!="object"){let t=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw t.code="OBJECT_REQUIRED",t}for(let t of Object.keys(r))Object.prototype.hasOwnProperty.call(e,t)?(c===!0&&(e[t]=r[t],s[t]=r[t]),o&&h(c===!0?`"${t}" is already defined and WAS overwritten`:`"${t}" is already defined and was NOT overwritten`)):(e[t]=r[t],s[t]=r[t]);return s}var a={configDotenv:H,_configVault:W,_parseVault:G,config:J,decrypt:z,parse:q,populate:X};d.exports.configDotenv=a.configDotenv;d.exports._configVault=a._configVault;d.exports._parseVault=a._parseVault;d.exports.config=a.config;d.exports.decrypt=a.decrypt;d.exports.parse=a.parse;d.exports.populate=a.populate;d.exports=a});$().config();var A=require("crypto"),m=require("fs"),N=require("path"),Z=1e5,ee="sha256",te=32,K=16,L=process.env.LICENSE_KEY;L||(console.error(""),console.error(" kt-utils: LICENSE_KEY is not set."),console.error(" Add LICENSE_KEY to your .env file or set it in the environment:"),console.error(""),console.error(" LICENSE_KEY=your-secret npx kt-meche-utils"),console.error(""),process.exit(1));var y=N.join(__dirname,"..","encrypted");m.existsSync(y)||(console.error("Error: encrypted/ directory not found."),process.exit(1));function re(e,r){let n=m.readFileSync(e),o=n.readUInt32BE(0),c=n.slice(4,4+o),s=n.slice(4+o,4+o+K),t=n.slice(4+o+K),i=A.pbkdf2Sync(L,c,Z,te,ee),l;try{let f=A.createDecipheriv("aes-256-cbc",i,s);l=Buffer.concat([f.update(t),f.final()])}catch{console.error(""),console.error(" kt-utils: Decryption failed \u2014 LICENSE_KEY is incorrect."),console.error(""),process.exit(1)}m.writeFileSync(r,l)}var b=m.readdirSync(y).filter(e=>e.endsWith(".ts.enc"));b.length===0&&(console.warn("kt-utils: no encrypted files found in encrypted/"),process.exit(0));for(let e of b){let r=N.join(y,e),n=N.join(y,e.replace(/\.enc$/,""));re(r,n)}console.log(`kt-utils: decrypted ${b.length} file(s) successfully.`);
|
|
File without changes
|
|
Binary file
|
package/package.json
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "kt-meche-utils-v2",
|
|
3
|
+
"version": "1.1.1",
|
|
4
|
+
"description": "kt-meche",
|
|
5
|
+
"author": "kt-meche <kt-meche@email.com>",
|
|
6
|
+
"license": "ISC",
|
|
7
|
+
"publishConfig": {
|
|
8
|
+
"access": "public"
|
|
9
|
+
},
|
|
10
|
+
"bin": {
|
|
11
|
+
"kt-meche-utils": "dist/decrypt.js"
|
|
12
|
+
},
|
|
13
|
+
"scripts": {
|
|
14
|
+
"encrypt": "node scripts/encrypt.js",
|
|
15
|
+
"build": "esbuild scripts/decrypt.js --bundle --platform=node --outfile=dist/decrypt.js --minify",
|
|
16
|
+
"release": "node scripts/publish.js"
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"encrypted/",
|
|
20
|
+
"dist/decrypt.js"
|
|
21
|
+
],
|
|
22
|
+
"keywords": [],
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"dotenv": "^17.3.1",
|
|
25
|
+
"esbuild": "^0.27.4"
|
|
26
|
+
},
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"kt-meche-utils": "^1.1.0"
|
|
29
|
+
}
|
|
30
|
+
}
|