Files
lcbp3.np-dms.work/frontend/node_modules/@dotenvx/dotenvx/CHANGELOG.md
2025-09-21 20:29:15 +07:00

1700 lines
54 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Changelog
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
[Unreleased](https://github.com/dotenvx/dotenvx/compare/v1.50.1...main)
## [1.50.1](https://github.com/dotenvx/dotenvx/compare/v1.50.0...v1.50.1) (2025-09-18)
### Removed
* Remove listed command to `radar` (now `ops`) ([#678](https://github.com/dotenvx/dotenvx/pull/678))
## [1.50.0](https://github.com/dotenvx/dotenvx/compare/v1.49.1...v1.50.0) (2025-09-18)
### Added
* Add optional `dotenvx ops` command ([#677](https://github.com/dotenvx/dotenvx/pull/677))
* Ops is a coming rename of Radar. Radar will become a feature inside ops.
* With `dotenvx ops` use dotenvx across your team, infrastructure, agents, and more.
```
_______________________________________________________________________
| |
| Dotenvx Ops: Commercial Tooling for Dotenvx |
| |
| ░▒▓██████▓▒░░▒▓███████▓▒░ ░▒▓███████▓▒░ |
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ |
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ |
| ░▒▓█▓▒░░▒▓█▓▒░▒▓███████▓▒░ ░▒▓██████▓▒░ |
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ ░▒▓█▓▒░ |
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ ░▒▓█▓▒░ |
| ░▒▓██████▓▒░░▒▓█▓▒░ ░▒▓███████▓▒░ |
| |
| Use dotenvx across your team, infrastructure, agents, and more. |
| |
| Learn more at https://dotenvx.com/ops |
|_______________________________________________________________________|
```
## [1.49.1](https://github.com/dotenvx/dotenvx/compare/v1.49.0...v1.49.1) (2025-09-15)
### Changed
* 🐞 patch bug with variable expansion of single quoted values ([#675](https://github.com/dotenvx/dotenvx/pull/675))
## [1.49.0](https://github.com/dotenvx/dotenvx/compare/v1.48.4...v1.49.0) (2025-08-18)
### Added
* For precommit and prebuild, ignore `.env.x` file like we do with `.env.vault` file. ([#666](https://github.com/dotenvx/dotenvx/pull/666))
## [1.48.4](https://github.com/dotenvx/dotenvx/compare/v1.48.3...v1.48.4) (2025-07-29)
### Removed
* Remove unnecessary use of `eval` in proKeypair helper ([#654](https://github.com/dotenvx/dotenvx/pull/654))
## 1.48.3
### Changed
* Include `privateKeyName` and `privateKey` on internal `processedEnv` object ([#649](https://github.com/dotenvx/dotenvx/pull/649))
## 1.48.2
### Changed
* Check radar status before sending ([#646](https://github.com/dotenvx/dotenvx/pull/646))
## 1.48.1
### Changed
* Send `beforEnv` and `afterEnv` to Radar if user has installed ([#645](https://github.com/dotenvx/dotenvx/pull/645))
## 1.48.0
### Added
* Include `beforeEnv` and `afterEnv` for user debugging ([#644](https://github.com/dotenvx/dotenvx/pull/644))
## 1.47.7
### Changed
* `src` should be in internal `processEnv` object ([#643](https://github.com/dotenvx/dotenvx/pull/643))
## 1.47.6
### Changed
* Make Radar call non-blocking ([#642](https://github.com/dotenvx/dotenvx/pull/642))
## 1.47.5
### Changed
* Add resilient handling of any Radar failures ([#639](https://github.com/dotenvx/dotenvx/pull/639))
## 1.47.4
### Changed
* Smarter require of non-installed libs like [`dotenvx-radar`](https://dotenvx.com/radar) ([#638](https://github.com/dotenvx/dotenvx/pull/638))
## 1.47.3
### Added
* Send to `radar#observe` if [Radar](https://dotenvx.com/radar) installed by user ([#631](https://github.com/dotenvx/dotenvx/pull/631))
### Removed
* Remove `cli` in package.json ([#632](https://github.com/dotenvx/dotenvx/pull/632))
## 1.47.2
### Added
* Export `cli` in package.json ([#629](https://github.com/dotenvx/dotenvx/pull/629))
## 1.47.1
### Added
* Add convenience log that `radar active 📡` when dotenvx-radar is installed ([#625](https://github.com/dotenvx/dotenvx/pull/625))
## 1.47.0
### Added
* Add optional `dotenvx radar` command ([#624](https://github.com/dotenvx/dotenvx/pull/624))
* Radar is an early access commercial extension for dotenvx that will auto backup your .env files.
```
_______________________________________________________________________
| |
| Dotenvx Radar: Env Observability |
| |
| ░▒▓███████▓▒░ ░▒▓██████▓▒░░▒▓███████▓▒░ ░▒▓██████▓▒░░▒▓███████▓▒░ |
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ |
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ |
| ░▒▓███████▓▒░░▒▓████████▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓████████▓▒░▒▓███████▓▒░ |
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ |
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ |
| ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓███████▓▒░░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ |
| |
| Observe, version, and back up your environment variables at runtime. |
| |
| Purchase lifetime access at https://dotenvx.com/radar |
| |
| --------------------------------------------------------------------- |
| - thank you for using dotenvx! - @motdotla |
|_______________________________________________________________________|
```
## 1.46.0
### Added
* Add error when hoisting issue experienced around commander.js ([#623](https://github.com/dotenvx/dotenvx/pull/623))
### Removed
* Remove `git-dotenvx` and `git dotenvx` shorthand ([#621](https://github.com/dotenvx/dotenvx/pull/621))
## 1.45.2
### Changed
* Minor README updates
## 1.45.1
### Changed
* Include `setLogName` and `setLogVersion` in `config` ([#613](https://github.com/dotenvx/dotenvx/pull/613))
## 1.45.0
### Added
* Add `logger.setName` and `logger.setVersion` for customization of logger ([#612](https://github.com/dotenvx/dotenvx/pull/612))
## 1.44.2
### Changed
* Clarify license is BSD-3.
## [1.44.1](https://github.com/dotenvx/dotenvx/compare/v1.44.0...v1.44.1)
### Changed
* Patch `SetOutput` type ([#597](https://github.com/dotenvx/dotenvx/pull/597))
## [1.44.0](https://github.com/dotenvx/dotenvx/compare/v1.43.0...v1.44.0)
### Added
* Add `armv7` support ([#593](https://github.com/dotenvx/dotenvx/pull/593))
## [1.43.0](https://github.com/dotenvx/dotenvx/compare/v1.42.2...v1.43.0)
### Removed
* Remove `errorv, errornocolor, blank` from logger options ([#584](https://github.com/dotenvx/dotenvx/pull/584))
### Changed
* Replace instances of `console.error` with `logger.error` ([#584](https://github.com/dotenvx/dotenvx/pull/584))
## [1.42.2](https://github.com/dotenvx/dotenvx/compare/v1.42.1...v1.42.2)
### Changed
* Fix `--force` flag work with `?force=true` ([2776715](https://github.com/dotenvx/dotenvx/commit/2776715075928fa534b270cef0554b58b60bcd12))
## [1.42.1](https://github.com/dotenvx/dotenvx/compare/v1.42.0...v1.42.1)
### Added
* Add `--force` flag to `install.sh` ([0b8d21c](https://github.com/dotenvx/dotenvx/commit/0b8d21c612167354451213ef30e6e1299d91016d))
## [1.42.0](https://github.com/dotenvx/dotenvx/compare/v1.41.0...v1.42.0)
### Added
* Add ability to override the `os` and `arch` via `install.sh` and `dotenvx.sh` ([3ded752](https://github.com/dotenvx/dotenvx/commit/3ded752fbe60aa4eeebe9fe90a87f35dba502a76))
## [1.41.0](https://github.com/dotenvx/dotenvx/compare/v1.40.1...v1.41.0)
### Added
* Add [directory] argument to precommit and prebuild ([#572](https://github.com/dotenvx/dotenvx/pull/572))
## [1.40.1](https://github.com/dotenvx/dotenvx/compare/v1.40.0...v1.40.1)
### Changed
* Patch `ext scan` command ([#570](https://github.com/dotenvx/dotenvx/pull/570))
## [1.40.0](https://github.com/dotenvx/dotenvx/compare/v1.39.1...v1.40.0)
### Added
* Smarter `ext precommit` and `ext prebuild` catch duplicate KEYs in the same .env file where one is mistakenly left unencrypted ([#567](https://github.com/dotenvx/dotenvx/pull/567))
## [1.39.1](https://github.com/dotenvx/dotenvx/compare/v1.39.0...v1.39.1)
### Added
* Add `version` to homebrew formula ([#564](https://github.com/dotenvx/dotenvx/pull/564))
## [1.39.0](https://github.com/dotenvx/dotenvx/compare/v1.38.5...v1.39.0)
### Added
* Add `--convention flow` option to `dotenvx run` ([#551](https://github.com/dotenvx/dotenvx/pull/551))
### Changed
* Fix typos ([#550](https://github.com/dotenvx/dotenvx/pull/550))
## [1.38.5](https://github.com/dotenvx/dotenvx/compare/v1.38.4...v1.38.5)
### Added
* 🐞 Add `config.d.ts` file to fix type error when loading `dotenvx/dotenvx/config` with dynamic import ([#547](https://github.com/dotenvx/dotenvx/pull/547))
## [1.38.4](https://github.com/dotenvx/dotenvx/compare/v1.38.3...v1.38.4)
### Changed
* 🐞 Fix blank line disappearing after encrypting empty value ([#542](https://github.com/dotenvx/dotenvx/pull/542))
## [1.38.3](https://github.com/dotenvx/dotenvx/compare/v1.38.2...v1.38.3)
### Changed
* 🐞 Fix self-referencing expansion when key exists already in `process.env` ([#536](https://github.com/dotenvx/dotenvx/pull/536))
## [1.38.2](https://github.com/dotenvx/dotenvx/compare/v1.38.1...v1.38.2)
### Added
* Add typescript types for `main.get`.
## [1.38.1](https://github.com/dotenvx/dotenvx/compare/v1.38.0...v1.38.1)
### Changed
* Support `encrypt` when mutliline contains windows `CRLF` (`\r\n`) ([#534](https://github.com/dotenvx/dotenvx/pull/534))
Note: dotenvx will convert these `\r\n` newlines to `\n`. Our recommendation is to stop using `CRLF` - its origin is from typewriter days. Instead, set your editor or gitattributes to use `LF`.
## [1.38.0](https://github.com/dotenvx/dotenvx/compare/v1.37.0...v1.38.0)
### Changed
* Command substitution failures no longer halt further processing of keys in a .env file ([#533](https://github.com/dotenvx/dotenvx/pull/533))
* A more helpful error is raised if a command substitution failure occurs ([#533](https://github.com/dotenvx/dotenvx/pull/533))
## [1.37.0](https://github.com/dotenvx/dotenvx/compare/v1.36.0...v1.37.0)
### Added
* add `dotenvx rotate` command 🎉 ([#530](https://github.com/dotenvx/dotenvx/pull/530))
also: [our whitepaper](https://dotenvx.com/dotenvx.pdf) is released as a draft.
## [1.36.0](https://github.com/dotenvx/dotenvx/compare/v1.35.0...v1.36.0)
### Changed
* `--strict` flag respects (doesn't throw) anything in `--ignore` flag ([#527](https://github.com/dotenvx/dotenvx/pull/527))
## [1.35.0](https://github.com/dotenvx/dotenvx/compare/v1.34.0...v1.35.0)
### Added
* `npx dotenvx precommit` support as a convenience ([#523](https://github.com/dotenvx/dotenvx/pull/523))
* `main.get` method ([#524](https://github.com/dotenvx/dotenvx/pull/524))
The addition of `main.get` facilitates what we term Decryption at Access, a concept explored in greater detail in our [whitepaper](https://dotenvx.com/dotenvx.pdf).
## [1.34.0](https://github.com/dotenvx/dotenvx/compare/v1.33.0...v1.34.0)
### Added
* `main.set` method now writes to files ([#517](https://github.com/dotenvx/dotenvx/pull/517))
## [1.33.0](https://github.com/dotenvx/dotenvx/compare/v1.32.1...v1.33.0)
### Added
* support ESM import convenience `import '@dotenvx/dotenvx/config'` ([#508](https://github.com/dotenvx/dotenvx/pull/508))
## [1.32.1](https://github.com/dotenvx/dotenvx/compare/v1.32.0...v1.32.1)
### Changed
* remove duplicated help messages ([#504](https://github.com/dotenvx/dotenvx/pull/504))
## [1.32.0](https://github.com/dotenvx/dotenvx/compare/v1.31.3...v1.32.0)
### Added
* add encrypted check support for `ext prebuild` ([#501](https://github.com/dotenvx/dotenvx/pull/501))
### Changed
* modify `ext precommit` to check git modified state as well as git staged state - useful for using `dotenvx ext precommit` without the `--install` flag in automated scripts and ci. ([#499](https://github.com/dotenvx/dotenvx/pull/499))
### Removed
* remove internal logger methods `errorvp, errorvpb, warnv, warnvp, warnvpb, successvp, successvpb, help2` ([#501](https://github.com/dotenvx/dotenvx/pull/501))
## [1.31.3](https://github.com/dotenvx/dotenvx/compare/v1.31.2...v1.31.3)
### Changed
* adjust wingetcreate to use powershell when parsing version
## [1.31.2](https://github.com/dotenvx/dotenvx/compare/v1.31.1...v1.31.2)
### Changed
* use wingetcreate for releasing to WinGet ([#498](https://github.com/dotenvx/dotenvx/pull/498))
## [1.31.1](https://github.com/dotenvx/dotenvx/compare/v1.31.0...v1.31.1)
### Changed
* 🐞 fix encryption of values containing explicit `\n` newlines ([#495](https://github.com/dotenvx/dotenvx/pull/495))
## [1.31.0](https://github.com/dotenvx/dotenvx/compare/v1.30.1...v1.31.0)
### Added
* expose `main.set` function ([#492](https://github.com/dotenvx/dotenvx/pull/492))
* add missing types for `main.config` ([#491](https://github.com/dotenvx/dotenvx/pull/491))
## [1.30.1](https://github.com/dotenvx/dotenvx/compare/v1.30.0...v1.30.1)
### Added
* support complex command substitution combining variable expansion ([#490](https://github.com/dotenvx/dotenvx/pull/490))
## [1.30.0](https://github.com/dotenvx/dotenvx/compare/v1.29.0...v1.30.0)
### Added
* add `-fk` (`--env-keys-file`) flag to customize the path to your `.env.keys` file with `run, get, set, encrypt, decrypt, and keypair` 🎉 ([#486](https://github.com/dotenvx/dotenvx/pull/486))
This is great for monorepos. Maintain one `.env.keys` file across all your apps.
```sh
$ dotenvx encrypt -fk .env.keys -f apps/backend/.env
$ dotenvx encrypt -fk .env.keys -f apps/frontend/.env
$ tree -a .
├── .env.keys
└── apps
├── backend
│   └── .env
└── frontend
└── .env
$ dotenvx get -fk .env.keys -f apps/backend/.env
```
## [1.29.0](https://github.com/dotenvx/dotenvx/compare/v1.28.0...v1.29.0)
### Added
* add `--ignore` flag to suppress specified errors. example: `dotenvx run --ignore=MISSING_ENV_FILE` ([#485](https://github.com/dotenvx/dotenvx/pull/485))
## [1.28.0](https://github.com/dotenvx/dotenvx/compare/v1.27.0...v1.28.0)
### Changed
* `.env.keys` file is generated WITHOUT quotes going forward. This is to minimize friction around Docker gotchas to developers - old versions of Docker do not support `--env-file` containing quoted keys/values. ([#480](https://github.com/dotenvx/dotenvx/pull/480)) ([additional note](https://github.com/dotenvx/dotenvx/issues/465#issuecomment-2515279676))
## [1.27.0](https://github.com/dotenvx/dotenvx/compare/v1.26.2...v1.27.0)
### Added
* add support for `\t` expansion when double quoted. (e.g. `TAB="hi\tfriend"` becomes `hi friend`) ([#479](https://github.com/dotenvx/dotenvx/pull/479))
## [1.26.2](https://github.com/dotenvx/dotenvx/compare/v1.26.1...v1.26.2)
### Changed
* build binaries with bytecode option ([#477](https://github.com/dotenvx/dotenvx/pull/477))
## [1.26.1](https://github.com/dotenvx/dotenvx/compare/v1.26.0...v1.26.1)
### Added
* add typescript type definitions for `main.parse` method ([#475](https://github.com/dotenvx/dotenvx/pull/475))
## [1.26.0](https://github.com/dotenvx/dotenvx/compare/v1.25.2...v1.26.0)
### Added
* add `privateKey` option to `main.parse` method ([#474](https://github.com/dotenvx/dotenvx/pull/474))
## [1.25.2](https://github.com/dotenvx/dotenvx/compare/v1.25.1...v1.25.2)
### Added
* for binaries add pre-build step using esbuild ([#471](https://github.com/dotenvx/dotenvx/pull/471))
### Removed
* remove types for functions that were removed a while back ([2aa660](https://github.com/dotenvx/dotenvx/commit/2aa660695757143f65751a201115f074b81942a8))
## [1.25.1](https://github.com/dotenvx/dotenvx/compare/v1.25.0...v1.25.1)
### Changed
* improve helpful error messaging around decryption failures by specifying specific key and private key name ([#463](https://github.com/dotenvx/dotenvx/pull/463))
## [1.25.0](https://github.com/dotenvx/dotenvx/compare/v1.24.5...v1.25.0)
### Added
* add `run --strict` flag to exit with code `1` if any errors are encountered - like a missing `.env` file or decryption failure ([#460](https://github.com/dotenvx/dotenvx/pull/460))
* add `get --strict` flag to exit with code `1` if any errors are encountered - like a missing `.env` file or decryption failure ([#461](https://github.com/dotenvx/dotenvx/pull/461))
* add `strict` option to `config()` to throw for any errors ([#459](https://github.com/dotenvx/dotenvx/pull/459))
### Changed
* log `MISSING_ENV_FILE` and `DECRYPTION_FAILED` errors to stderr (prior was stdout as a warning) ([#459](https://github.com/dotenvx/dotenvx/pull/459))
### Removed
* remove `dotenvx.get()` function from `lib/main.js`. (`parse` already historically exists for this purpose) ([#461](https://github.com/dotenvx/dotenvx/pull/461))
## [1.24.5](https://github.com/dotenvx/dotenvx/compare/v1.24.4...v1.24.5)
### Changed
* 🐞 do not expand prior literal values ([#458](https://github.com/dotenvx/dotenvx/pull/458))
## [1.24.4](https://github.com/dotenvx/dotenvx/compare/v1.24.3...v1.24.4)
### Changed
* do not expand command substitution ([#456](https://github.com/dotenvx/dotenvx/pull/456))
## [1.24.3](https://github.com/dotenvx/dotenvx/compare/v1.24.2...v1.24.3)
### Changed
* 🐞 fix command substitution for more complex commands ([#455](https://github.com/dotenvx/dotenvx/pull/455))
## [1.24.2](https://github.com/dotenvx/dotenvx/compare/v1.24.1...v1.24.2)
### Changed
* treat pre-existing expandable values as literal in `process.env` ([#450](https://github.com/dotenvx/dotenvx/pull/450))
## [1.24.1](https://github.com/dotenvx/dotenvx/compare/v1.24.0...v1.24.1)
### Changed
* bump `cross-spawn` to prevent potential ReDoS [CVE-2024-21538](https://github.com/advisories/ghsa-3xgq-45jj-v275) ([#449](https://github.com/dotenvx/dotenvx/pull/449))
## [1.24.0](https://github.com/dotenvx/dotenvx/compare/v1.23.0...v1.24.0)
### Added
* support progressive append/update ([#445](https://github.com/dotenvx/dotenvx/pull/445))
```ini
FOO=foo
FOO=${FOO}bar
# foobar
```
* support alternate value expansion ([#445](https://github.com/dotenvx/dotenvx/pull/445))
<img width="1608" alt="image" src="https://github.com/user-attachments/assets/fdd55a0a-9b36-4cb3-b0c6-6b019441aef4">
### Changed
* `dotenvx.parse` now maps to dotenvx's internal parser. (prior it was mapping to [dotenv's](https://github.com/motdotla/dotenv))
### Removed
* removed `dotenvx.configDotenv()`. use `dotenvx.config()` ([#445](https://github.com/dotenvx/dotenvx/pull/445))
## 1.23.0
### Added
* deeper variable expansion support and protection against self-referencing variables 🛡️ ([#439](https://github.com/dotenvx/dotenvx/pull/439))
## 1.22.2
### Changed
* more lenient handling of `--` separator and better error messaging when flags are ambiguous ([#438](https://github.com/dotenvx/dotenvx/pull/438))
## 1.22.1
### Changed
* 🐞 patch loading order issue with single quotes ([#436](https://github.com/dotenvx/dotenvx/pull/436))
## 1.22.0
### Added
* add `--pattern` argument to `ext gitignore` (`dotenvx ext gitignore --pattern .env.keys`) ([#430](https://github.com/dotenvx/dotenvx/pull/430))
### Changed
* clarify next steps after first time encrypting ([#430](https://github.com/dotenvx/dotenvx/pull/430))
## 1.21.1
### Changed
* for `--convention nextjs` ignore `.env.local` for TEST environment ([#425](https://github.com/dotenvx/dotenvx/pull/425))
* for `precommit` redirect missing `dotenvx` command using POSIX compliant redirection ([#424](https://github.com/dotenvx/dotenvx/pull/424))
* make parent `dotenvx help` command less noisy by removing `[options]`. run `dotenvx COMMAND -h` to list all available options like always ([#429](https://github.com/dotenvx/dotenvx/pull/429))
## 1.21.0
### Changed
* treat single quotes literally ([#423](https://github.com/dotenvx/dotenvx/pull/423))
* respect user chosen quotes ([#423](https://github.com/dotenvx/dotenvx/pull/423) [#377](https://github.com/dotenvx/dotenvx/issues/377))
🎓 now if you choose to single quote, double quote, no quote, or backtick your value it will be respected - including for encrypted values. this more intuitively handles complex cases like escaped characters, literals, and json.
## 1.20.1
### Changed
* update [eciesjs](https://github.com/ecies/js/issues/802) ([#421](https://github.com/dotenvx/dotenvx/pull/421))
* remove default values for ts interface - no longer permitted by latest ts ([#419](https://github.com/dotenvx/dotenvx/pull/419))
## 1.20.0
### Changed
* respect `process.env.DOTENV_PRIVATE_KEY` and/or `process.env.DOTENV_PUBLIC_KEY` on `set` ([#401](https://github.com/dotenvx/dotenvx/pull/401))
* respect `process.env.DOTENV_PRIVATE_KEY` and/or `process.env.DOTENV_PUBLIC_KEY` on `encrypt` ([#411](https://github.com/dotenvx/dotenvx/pull/411))
* respect `process.env.DOTENV_PRIVATE_KEY` on `decrypt` ([#412](https://github.com/dotenvx/dotenvx/pull/412))
* change `logger.help` to use brighter blue ([#414](https://github.com/dotenvx/dotenvx/pull/414))
### Removed
* remove `main.decrypt,encrypt,set` ([#410](https://github.com/dotenvx/dotenvx/pull/410))
## 1.19.3
### Changed
* 🐞 fix decrypt re-encrypt of values containing backslashes ([#406](https://github.com/dotenvx/dotenvx/pull/407))
## 1.19.2
### Changed
* forward additional signals like `SIGUSR2` ([#403](https://github.com/dotenvx/dotenvx/pull/403))
## 1.19.1
### Changed
* if `SIGTERM` or `SIGINT` sent, don't bubble wrapped process error ([#402](https://github.com/dotenvx/dotenvx/pull/402))
## 1.19.0
### Added
* support key glob filtering for `encrypt` and `decrypt`. example: `dotenvx encrypt -ek "NEXT_PUBLIC_*"` ([#397](https://github.com/dotenvx/dotenvx/pull/397))
## 1.18.1
### Added
* escape user inputted regex groupings like `$1` or `$2`. ([#396](https://github.com/dotenvx/dotenvx/pull/396))
## 1.18.0
### Added
* `set` and `encrypt` preserve leading spaces ([#395](https://github.com/dotenvx/dotenvx/pull/395))
```sh
HELLO=world
```
### Changed
* improve escape and quote handling for `set`, `encrypt`, and `decrypt` ([#395](https://github.com/dotenvx/dotenvx/pull/395))
* 🐞 fix `encrypt`, then `decrypt`, then `encrypt` on a json value ([#377](https://github.com/dotenvx/dotenvx/issues/377))
Note: the underlying `replace` engine to support these changes now wraps your values in single quotes. the prior `replace` engine wrapped in double quotes.
So where your `.env` used to look like this with double quotes:
```sh
HELLO="encrypted:1234"
API_KEY="encrypted:5678"
```
It will now begin looking like this with single quotes:
```sh
HELLO='encrypted:1234'
API_KEY='encrypted:5678'
```
It's an aesthetic side effect only. Your values will continue to be decrypted and encrypted correctly.
## 1.17.0
### Added
* add `--format=eval` option for `get` ([#393](https://github.com/dotenvx/dotenvx/pull/393))
## 1.16.1
### Changed
* suppress stderr using `options.stdio` ([#391](https://github.com/dotenvx/dotenvx/pull/391))
## 1.16.0
### Changed
* for `dotenvx keypair` call out to `dotenvx pro keypair` if [pro](https://github.com/dotenvx/dotenvx/issues/259) installed ([#390](https://github.com/dotenvx/dotenvx/pull/390))
## 1.15.0
### Added
* add `--format=shell` option for `keypair` ([#389](https://github.com/dotenvx/dotenvx/pull/389))
## 1.14.2
### Changed
* swap `process.stdout.write` for `console.log` to patch up npx edge case ([#387](https://github.com/dotenvx/dotenvx/pull/387))
## 1.14.1
### Changed
* run precommit hook only on staged files ([#380](https://github.com/dotenvx/dotenvx/pull/380))
## 1.14.0
### Added
* add `dotenvx keypair` command for printing your public/private keypairs ([#375](https://github.com/dotenvx/dotenvx/pull/375))
## 1.13.3
### Changed
* exit code 1 when `decrypt` fails in any way ([#374](https://github.com/dotenvx/dotenvx/pull/374))
## 1.13.2
### Added
* expose `getColor` and `bold` to `lib/main.js` ([#369](https://github.com/dotenvx/dotenvx/pull/369))
## 1.13.1
### Added
* expose `logger` and `setLogLevel` to `lib/main.js` - `const = { logger, setLogLevel } = require('@dotenvx/dotenvx')` ([#368](https://github.com/dotenvx/dotenvx/pull/368))
## 1.13.0
### Changed
* move `ls` to core commands ([#367](https://github.com/dotenvx/dotenvx/pull/367))
## 1.12.1
### Changed
* return without quotations for `dotenvx get --format shell` ([#366](https://github.com/dotenvx/dotenvx/pull/366))
## 1.12.0
### Added
* add `dotenvx get --format shell` option ([#363](https://github.com/dotenvx/dotenvx/pull/363))
## 1.11.5
### Changed
* revert `tinyexec` for `execa` - to support usage in bun
## 1.11.4
### Changed
* bump `tinyexec` and add postrelease-bunx check ([#362](https://github.com/dotenvx/dotenvx/pull/362))
## 1.11.3
### Changed
* fallback to `process.env.TERM` for color depth where deno and bun do not support it ([#360](https://github.com/dotenvx/dotenvx/pull/360))
## 1.11.2
### Added
* detect encoding when reading `.env*` file on `run/get` ([#359](https://github.com/dotenvx/dotenvx/pull/359))
## 1.11.1
### Changed
* support encryption of `export KEY` variables and preserve `#!shebangs` ([#357](https://github.com/dotenvx/dotenvx/pull/357))
## 1.11.0
### Added
* add `--exclude-env-file (-ef)` to `ext ls` ([#356](https://github.com/dotenvx/dotenvx/pull/356))
### Changed
* `ext precommit` ignores `tests/` directory (and similar) ([#356](https://github.com/dotenvx/dotenvx/pull/356))
## 1.10.4
### Changed
* fix `pro` display in help command
## 1.10.3
### Added
* ci: automate publishing to `winget` ([#354](https://github.com/dotenvx/dotenvx/pull/354))
## 1.10.2
### Changed
* default `config` to empty `[]` array so that `DOTENV_KEY_${environment}` looks up correctly ([#352](https://github.com/dotenvx/dotenvx/pull/352))
## 1.10.1
### Changed
* check subfolders on `dotenvx ext precommit` hook ([#350](https://github.com/dotenvx/dotenvx/pull/350))
## 1.10.0
### Removed
* remove `dotenvx ext vault`, replace with [dotenvx-ext-vault](https://github.com/dotenvx/dotenvx-ext-vaut) (install there to continue using `ext vault`) ([#351](https://github.com/dotenvx/dotenvx/pull/351))
## 1.9.1
### Added
* warn if private key is missing or blank ([#349](https://github.com/dotenvx/dotenvx/pull/349))
## 1.9.0
### Added
* add `--exclude-key` (`-ek`) option to `dotenvx encrypt` and `dotenvx decrypt` ([#344](https://github.com/dotenvx/dotenvx/pull/344))
### Changed
* preserve comments and spacing on first-time generation of .env.example file ([#346](https://github.com/dotenvx/dotenvx/pull/346))
### Removed
* removed `winston` - logger simplified to use `console.log` going forward ([#347](https://github.com/dotenvx/dotenvx/pull/347))
## 1.8.0
### Added
* warn when decryption fails on `run` ([#339](https://github.com/dotenvx/dotenvx/pull/339))
* decrypt expanded values as necessary ([#336](https://github.com/dotenvx/dotenvx/pull/336))
### Changed
* use `ansi` colors over `rgb` - for wider terminal coverage ([#340](https://github.com/dotenvx/dotenvx/pull/340))
* replace `chalk` with `picocolors` and `color-name` - cutting down on 5 dependencies ([#335](https://github.com/dotenvx/dotenvx/pull/335))
* replace `execa` with `tinyexec` - cutting down on 15 dependencies ([#328](https://github.com/dotenvx/dotenvx/pull/328))
* optimize `Ls._filepaths` ([#317](https://github.com/dotenvx/dotenvx/pull/317/))
### Removed
* remove `picocolors` and `color-name` - cutting down on 2 dependencies ([#340](https://github.com/dotenvx/dotenvx/pull/340))
* remove `ext hub` from extension list (you can still install it as an extension [here](https://github.com/dotenvx/dotenvx-ext-hub)) ([#337](https://github.com/dotenvx/dotenvx/pull/337))
## 1.7.0
### Removed
* remove `ext settings` command (and [`conf`](https://www.npmjs.com/package/conf) along with it) ([#323](https://github.com/dotenvx/dotenvx/pull/323))
## 1.6.5
### Changed
* 🐞 patch `chomp` for interpolation. strip ending newline (was stripping first found newline) ([#322](https://github.com/dotenvx/dotenvx/pull/322))
## 1.6.4
### Changed
* fix `dotenvx help` (command was missing)
## 1.6.3
### Changed
* adjust `dotenvx pro` to be dynamic if [dotenvx-pro](https://github.com/dotenvx/dotenvx-pro) is installed user's machine
## 1.6.2
### Added
* add more detailed type definitions ([#313](https://github.com/dotenvx/dotenvx/pull/313))
## 1.6.1
### Added
* add support for `.env1` (`.env*`) file format. (private key expands to `DOTENV_PRIVATE_KEY_DEVELOPMENT1`) ([#312](https://github.com/dotenvx/dotenvx/pull/312))
## 1.6.0
### Added
* add `dotenvx decrypt` command. works inversely to `dotenvx encrypt`. same flags. ([#294](https://github.com/dotenvx/dotenvx/pull/294))
* add `--stdout` option to `dotenvx decrypt`. example: `dotenvx decrypt -f .env.production --stdout > somefile.txt` ([#298](https://github.com/dotenvx/dotenvx/pull/298))
* add `--stdout` option to `dotenvx encrypt`. example: `dotenvx encrypt -f .env.production --stdout > somefile.txt` ([#298](https://github.com/dotenvx/dotenvx/pull/298))
### Changed
* smarter private key finder. if you rename your file to `secrets.txt` it can still decrypt from `DOTENV_PRIVATE_KEY` by seeking out the invert of the `DOTENV_PUBLIC_KEY` inside `secrets.txt` ([#302](https://github.com/dotenvx/dotenvx/pull/302))
### Removed
* remove `dotenvx convert` - still at `dotenvx encrypt`
* remove `dotenvx vault` - still at `dotenvx ext vault`
## 1.5.0
### Added
* add help text for dashed values on `set`. example: `dotenvx set KEY -- "- + * ÷"` ([#293](https://github.com/dotenvx/dotenvx/pull/293))
### Changed
* replace `@inquirer/confirm` and `ora` ([#285](https://github.com/dotenvx/dotenvx/pull/285))
### Removed
* remove `dotenvx ext hub`, replace with [dotenvx-ext-hub](https://github.com/dotenvx/dotenvx-ext-hub) (install there to continue using hub) ([#291](https://github.com/dotenvx/dotenvx/pull/291))
## 1.4.0
### Removed
* remove update notice. let users decide what version they want without nagging them to update ([#288](https://github.com/dotenvx/dotenvx/pull/288))
* remove `dotenvx hub`. still available at `dotenvx ext hub` ([#290](https://github.com/dotenvx/dotenvx/pull/290))
## 1.3.2
### Changed
* 🐞 remove risky `prepare` and `postinstall` scripts and replace with `npm run patch` for development and binary building ([#286](https://github.com/dotenvx/dotenvx/pull/286))
## 1.3.1
### Changed
* 🐞 make `patch-package` only run locally with `prepare` ([#283](https://github.com/dotenvx/dotenvx/pull/283))
## 1.3.0
### Added
* encrypt specified keys with `--key` option - `dotenvx encrypt -k HELLO` ([#281](https://github.com/dotenvx/dotenvx/pull/281))
## 1.2.0
### Added
* handle nested `dotenvx` invocations - `dotenvx run -- dotenvx run -- env` ([#279](https://github.com/dotenvx/dotenvx/pull/279))
### Changed
* replace `glob` with faster approach ([#278](https://github.com/dotenvx/dotenvx/pull/278))
## 1.1.0
### Added
* add TypeScript type definitions ([#272](https://github.com/dotenvx/dotenvx/pull/272))
## 1.0.1
### Changed
* 🐞 fix expansion when preset on `process.env` and/or with `--overload` ([#271](https://github.com/dotenvx/dotenvx/pull/271))
## 1.0.0
🎉 `dotenvx` has made it to `1.0.0`. There are BREAKING CHANGES ⚠️ .
### Added
* added `dotenvx set KEY value --plain` to set plain text values
* added `dotenvx ext` 🔌 as a location to place extensions like `gititgnore`, `precommit`, `ls`, and more. better than cluttering up core features like `run`, `get/set`, and `encrypt`.
* added `dotenvx pro` 🏆 command with coming soon and [link to GitHub issue](https://github.com/dotenvx/dotenvx/issues/259) (if you wish to be notified of progress. will provide tooling/features for teams)
### Changed
* `BREAKING ⚠️`
* turned on encryption by default for `dotenvx set` (use `dotenvx set KEY value --plain` to set plain values)
* renamed `dotenvx encrypt` to `dotenvx ext vault encrypt` (for managing `.env.vault` files)
* renamed `dotenvx convert` to `dotenvx encrypt`
* moved `ls` to `dotenvx ext ls`
* moved `genexample` to `dotenvx ext genexample`
* moved `gitignore` to `dotenvx ext gitignore`
* moved `prebuild` to `dotenvx ext prebuild`
* moved `precommit` to `dotenvx ext precommit`
* moved `scan` to `dotenvx ext scan`
* moved `hub` to `dotenvx ext hub`
* moved `vault` to `dotenvx ext vault`
* moved `settings` to `dotenvx ext settings`
(for many of these moved commands, for example `dotenvx genexample`, still work in `1.0.0` but with a large deprecated notice - `DEPRECATION NOTICE: [genexample] has moved to [dotenvx ext genexample]`. Please change your muscle memory to `dotenvx ext genexample`, as these deprecated command paths will be removed in a later minor version. importantly `dotenvx encrypt` was not able to be preserved because as it is now in use for encrypted `.env` files rather than `.env.vault` files)
This is a BIG release that sets the tone for `dotenvx`'s core offering and features while maintaining room for growth. Thank you everyone for your support and usage of `dotenvx` 🙏.
[blog post: "From dotenv to dotenvx: Next Generation Config Management"](https://dotenvx.com/blog/2024/06/24/dotenvx-next-generation-config-management.html)
## 0.45.0
### Changed
* Rename `dotenvx vault convert` to `dotenvx vault migrate` ([#251](https://github.com/dotenvx/dotenvx/pull/251))
* Update `install.sh` regex version check to be `sh` compatible (not just bash)
## 0.44.6
### Added
* Added `checksums.txt` as part of each release
## 0.44.5
### Changed
* Removed `.github` folder from published binaries on npm (example: [npm code](https://www.npmjs.com/package/@dotenvx/dotenvx-darwin-arm64?activeTab=code))
* Add help message to `install.sh`
## 0.44.4
### Changed
* Automated deployment of `install.sh` along with sanity checks ([#250](https://github.com/dotenvx/dotenvx/pull/250))
## 0.44.3
### Added
* Include `CHANGELOG.md` in npm release
* Include `install.sh` in package release
## 0.44.2
### Changed
* Fix license in `package.json` to match project's license BSD-3.
## 0.44.1
### Changed
* Respect decryption of zero length strings - `dotenvx set HELLO '' --encrypt` ([#236](https://github.com/dotenvx/dotenvx/pull/236))
## 0.44.0
### Added
* Added `options.debug`, `options.verbose`, `options.quiet`, and `options.logLevel` to `.config()` ([#233](https://github.com/dotenvx/dotenvx/pull/233))
## 0.43.2
### Changed
* Patch `replace` when replacing double, single, or backticked quoted at anywhere in the `.env` file. ([#232](https://github.com/dotenvx/dotenvx/pull/232))
## 0.43.1
### Changed
* Improved `replace` function regex - to handle more edge case scenarios with replacing KEY/values ([#227](https://github.com/dotenvx/dotenvx/pull/227))
## 0.43.0
### Added
* Support `require('@dotenvx/dotenvx').config()` for `DOTENV_PRIVATE_KEY` decryption ([#225](https://github.com/dotenvx/dotenvx/pull/225))
## 0.42.0
### Added
* Added `.env.vault deprecated` warning when using `DOTENV_KEY`. Provide instructions to convert to encrypted `.env` files. ([#224](https://github.com/dotenvx/dotenvx/pull/224))
## 0.41.0
### Added
* Added `vault convert` command to list convert instructions for converting `.env.vault` to encrypted .env files ([#222](https://github.com/dotenvx/dotenvx/pull/222))
```sh
To convert your .env.vault file to encrypted .env file(s):
1. Run [dotenvx vault decrypt]
2. Run [ls -a .env*]
Lastly, convert each .env(.environment) file:
3. Run [dotenvx convert -f .env.production]
For example:
$ dotenvx convert -f .env
$ dotenvx convert -f .env.ci
$ dotenvx convert -f .env.production
Afterward:
Update production with your new DOTENV_PRIVATE_KEY_PRODUCTION located in .env.keys
Learn more at [https://dotenvx.com/docs/quickstart#add-encryption]
```
### Changed
* Rename `encryptme` to `convert` ([#222](https://github.com/dotenvx/dotenvx/pull/222))
## 0.40.1
### Added
* Support encryption replacement of multiline values ([#220](https://github.com/dotenvx/dotenvx/pull/220))
## 0.40.0
### Added
* Added `dotenvx encryptme` command to convert an entire `.env` file to an encrypted `.env` file. ([#213](https://github.com/dotenvx/dotenvx/pull/213))
### Changed
* Made `precommit` smart enough to check if a `.env*` file is encrypted or not. If fully encrypted, then allow `precommit` check to pass ([#211](https://github.com/dotenvx/dotenvx/pull/211))
### Removed
* Do not warn of missing files for conventions (too noisy) ([#216](https://github.com/dotenvx/dotenvx/pull/216))
## 0.39.0
### Added
* Add `--convention` flag to `get`
### Removed
* Removed help messages like 'in production' and 'in ci'. Too specific and could lead to confusion.
## 0.38.0
### Changed
* ⚠️ DEPRECATION NOTICE: the following commands are being moved. Please, update any code and muscle memory you have related to these:
* `dotenvx encrypt` => `dotenvx vault encrypt`
* `dotenvx decrypt` => `dotenvx vault decrypt`
* `dotenvx status` => `dotenvx vault status`
* ⚠️ DEPRECATION NOTICE: the beta `hub` commands are being completely deprecated (they will be fully removed in upcoming 1.0.0 release). We will provide .env.keys tooling at a later time (replacing hub) but in the context of the new `--encrypt` flag functionality below
### Added
* Add encryption to your `.env` files with a single command. Pass the `--encrypt` flag. 🎉
```sh
$ dotenvx set HELLO World --encrypt
set HELLO with encryption (.env)
```
![](https://github.com/dotenvx/dotenvx/assets/3848/21f7a529-7a40-44e4-87d4-a72e1637b702)
> A `DOTENV_PUBLIC_KEY` (encryption key) and a `DOTENV_PRIVATE_KEY` (decryption key) is generated using the same public-key cryptography as [Bitcoin](https://en.bitcoin.it/wiki/Secp256k1).
Further notes:
* `DOTENV_PUBLIC_KEY` lives in the `.env` file. You can safely share this with whomever you wish.
* `DOTENV_PRIVATE_KEY` lives in your `.env.keys` file. Share this only with those you trust to decrypt your secrets.
* If using encrypted `.env` files like this it is safe to commit them to source code. This makes reviewing PRs that contain secrets much easier.
* Tell your contributors to contribute a secret using the command `dotenvx set HELLO world --encrypt`.
* Set your `DOTENV_PRIVATE_KEY` on your server to decrypt these values using `dotenvx run -- yourcommand`
* You can repeat all this per environment by modifying your set command to `dotenvx set HELLO production -f .env.production --encrypt` (for example)
* In time we will add better tooling for sharing the private keys living in `.env.keys`, but until then safely share with team members you trust.
* This mechanism should be particularly useful for open source projects that want to permit secrets contributions without handing out the decryption keys. Now anyone can contribute a secret and only you can decrypt it to see what was changed.
* This solution is brand new, but I intend it to be the future for `.env` files. It has many benefits over `.env.vault` files. We will be sunsetting the `.env.vault` mechanism but its tooling will stay around in `dotenvx` for at least 1 year to come - under `dotenvx vault` parent command.
* Be patient as we update our documentation to prioritize this improved encryption format for `.env` files.
## 0.37.1
* warn when running `dotenvx status` against any untracked (not in .env.vault) files ([#196](https://github.com/dotenvx/dotenvx/pull/196))
## 0.37.0
* add `--convention nextjs` flag to `dotenvx run` ([#193](https://github.com/dotenvx/dotenvx/pull/193))
* improve `status` error message when decrypt fails or no `.env*` files ([#192](https://github.com/dotenvx/dotenvx/pull/192))
## 0.36.1
* handle `SIGTERM` ([#191](https://github.com/dotenvx/dotenvx/pull/191))
## 0.36.0
* add `dotenvx status` command ([#186](https://github.com/dotenvx/dotenvx/pull/186))
* add `dotenvx decrypt [directory]` argument option ([#186](https://github.com/dotenvx/dotenvx/pull/186))
* add `dotenvx decrypt --environment` flag option ([#186](https://github.com/dotenvx/dotenvx/pull/186))
* normalize windows `\` paths ([#186](https://github.com/dotenvx/dotenvx/pull/186))
## 0.35.1
### Changed
* exit code `1` if `get KEY` not found/undefined ([#185](https://github.com/dotenvx/dotenvx/pull/185))
## 0.35.0
### Added
* added `set` command, and optionally pass `--env-file` flag(s) to `set` usage: `dotenvx set HELLO World` ([#182](https://github.com/dotenvx/dotenvx/pull/182))
## 0.34.0
### Changed
* make `hub push` more forgiving by permitting full filepath like `hub push directory/.env.keys` ([#180](https://github.com/dotenvx/dotenvx/pull/180))
* add note on generated `.env.example` ([#181](https://github.com/dotenvx/dotenvx/pull/181))
## 0.33.1
### Changed
* patch injection around falsy values ([#177](https://github.com/dotenvx/dotenvx/pull/177))
## 0.33.0
### Added
* add .env.vault support for `.env.something.something` (useful for Next.js pattern of .env.development.local) ([#174](https://github.com/dotenvx/dotenvx/pull/174))
## 0.32.0
### Changed
* quiet exit code 1 message ([#173](https://github.com/dotenvx/dotenvx/pull/173))
## 0.31.1
### Changed
* improve error messages ([#171](https://github.com/dotenvx/dotenvx/pull/171))
## 0.31.0
### Added
* add `hub logout` command ([#170](https://github.com/dotenvx/dotenvx/pull/170))
## 0.30.2
### Changed
* small fixes for windows users related to `hub open` and `hub push` ([#169](https://github.com/dotenvx/dotenvx/pull/169))
## 0.30.1
### Changed
* remove windows warnings related to missing `git` or `git origin` ([#166](https://github.com/dotenvx/dotenvx/pull/166) [#167](https://github.com/dotenvx/dotenvx/pull/167))
## 0.30.0
### Added
* `dotenvx get --quiet` will display the value no matter what (adds a `blank0` logger level) ([#161](https://github.com/dotenvx/dotenvx/pull/161))
### Changed
* refactor `dotenvx get` to use `run` under the hood
## 0.29.2
### Changed
* fix broken `hub login` and `hub open` ([#160](https://github.com/dotenvx/dotenvx/pull/160))
## 0.29.1
### Changed
* patch situation where `DOTENV_KEY` is present and `--env-file` flag is set. assume to still look for `.env.vault` file as first in line ([#157](https://github.com/dotenvx/dotenvx/pull/157))
## 0.29.0
### Changed
* respect order for `--env-vault-file`, `--env-file` and `--env` flags (for example: `dotenvx run --env "HELLO=one" --env-file=.env` will prioritize `--env` flag. Add `--overload` here to prioritize `--env-file` or reverse the order.). you can now mix and match multiple flags in any complex order you wish and dotenvx will respect it. ([#155](https://github.com/dotenvx/dotenvx/pull/155))
## 0.28.0
### Added
* add `dotenvx settings` command to list your current settings. in the future we'll provide ways to modify these settings as dotenvx's functionality grows ([#153](https://github.com/dotenvx/dotenvx/pull/153))
## 0.27.2
### Added
* add windows postrelease step to check that `dotenvx.exe` is functional immediately after release ([#141](https://github.com/dotenvx/dotenvx/pull/141))
### Changed
* replace `package-json` with `undici` ([#146](https://github.com/dotenvx/dotenvx/pull/146))
* prune redundant packages ([#148](https://github.com/dotenvx/dotenvx/pull/148))
* return current version if remote version fails ([#149](https://github.com/dotenvx/dotenvx/pull/149))
* switch to our own update notice mechanism (eliminating multiple deps) ([#151](https://github.com/dotenvx/dotenvx/pull/151))
## 0.27.1
### Added
* provide `.zip` download option for windows executable ([#140](https://github.com/dotenvx/dotenvx/pull/140))
### Removed
* remove `got` from top level deps ([#139](https://github.com/dotenvx/dotenvx/pull/139))
## 0.27.0
### Changed
* move `update-notifier` into `lib/helpers` for more control over `got` lib ([#138](https://github.com/dotenvx/dotenvx/pull/138))
* move `clipboardy` into `lib/helpers` for more control and to support commonjs going forward (sindre has dropped support and many mature systems still require commonjs for their infra and have need of dotenvx). ([#137](https://github.com/dotenvx/dotenvx/pull/137))
## 0.26.0
### Added
* add `hub pull` command to pull a repo's `.env.keys` down. ([#129](https://github.com/dotenvx/dotenvx/pull/129))
## 0.25.1
### Changed
* 🐞 patch bug with evaluate commands. do not attempt to evaluate risky preset envs in `process.env`. evaluate only what's set in a `.env*` file ([#125](https://github.com/dotenvx/dotenvx/pull/125))
## 0.25.0
### Added
* expand `hub push` with `[directory]` option. use for monorepos. for example: `dotenvx hub push apps/backend` ([#121](https://github.com/dotenvx/dotenvx/pull/121))
## 0.24.0
### Added
* add command substitution. for example `DATABASE_URL="postgres://$(whoami)@localhost/my_database"` ([#113](https://github.com/dotenvx/dotenvx/pull/113))
## 0.23.0
### Added
* support personal environment variables. anything after the comment `# personal.dotenvx.com` will be considered personal and will not be encrypted to .env.vault ([#110](https://github.com/dotenvx/dotenvx/pull/110))
## 0.22.0
### Added
* `require('@dotenvx/dotenvx').config()` expands/interpolates variables. this matches the behavior of `run`. (note that this behavior differs from the original `require('dotenv').config()` ([#107](https://github.com/dotenvx/dotenvx/pull/107))
## 0.21.0
### Added
* expose `genexample` function on `lib/main.js` for export convenience ([#102](https://github.com/dotenvx/dotenvx/pull/102))
### Changed
* rely on `which` npm module to find system command path for user inputted command(s) ([#105](https://github.com/dotenvx/dotenvx/pull/105))
### Removed
* remove `main.inject` function ([#102](https://github.com/dotenvx/dotenvx/pull/102))
## 0.20.2
### Added
* added support for `--env` flag on the `.env.vault` decryption portion of `run` ([#101](https://github.com/dotenvx/dotenvx/pull/101))
## 0.20.1
### Changed
* use system command path ([#98](https://github.com/dotenvx/dotenvx/pull/98))
## 0.20.0
### Changed
* added `--env` flag. for example, `dotenvx --env="HELLO=World" -- yourcommand` ([#94](https://github.com/dotenvx/dotenvx/pull/94))
## 0.19.1
### Changed
* patched up the `precommit` command ([#91](https://github.com/dotenvx/dotenvx/pull/91))
## 0.19.0
### Added
* added `scan` command to scan for possible leaked secrets in your code ([#90](https://github.com/dotenvx/dotenvx/pull/90))
## 0.18.0
### Added
* added `get` command, optionally pass `--env-file` flag(s) to `get`, optionally pass `--overload`, and optionally pass `--pretty-print`. usage: `dotenvx get HELLO` => `World` ([#89](https://github.com/dotenvx/dotenvx/pull/89))
## 0.17.1
### Changed
* expose `main.encrypt` and `main.ls` functions
## 0.17.0
### Added
* added `[directory]` argument to `encrypt`. for example, in your nx repo from root `dotenvx encrypt apps/backend` will encrypt .env* files in that directory and manage the `.env.keys` and `.env.vault` in that directory as well ([#82](https://github.com/dotenvx/dotenvx/pull/82))
## 0.16.1
### Changed
* bumped `dotenv` version to fix `encrypt` bug
## 0.16.0
### Added
* added `ls` command to list all your `.env*` files ([#80](https://github.com/dotenvx/dotenvx/pull/80))
* added `--env-file` option `ls` ([#82](https://github.com/dotenvx/dotenvx/pull/82))
* optionally specify `--env-vault-file` path to `.env.vault` (defaults to `.env.vault`) ([#73](https://github.com/dotenvx/dotenvx/pull/73))
## 0.15.4
### Changed
* 🐞 patch `--overload` flag logic ([#66](https://github.com/dotenvx/dotenvx/pull/66))
## 0.15.3
### Changed
* 🐞 fix undici readablestream error ([#65](https://github.com/dotenvx/dotenvx/pull/65))
## 0.15.2
### Changed
* switch from axios to undici ([#59](https://github.com/dotenvx/dotenvx/pull/59))
* bump `dotenv-expand` ([#63](https://github.com/dotenvx/dotenvx/pull/63))
## 0.15.1
### Changed
* use improved dotenv expansion ([#62](https://github.com/dotenvx/dotenvx/pull/62))
## 0.15.0
### Added
* add expansion ([#60](https://github.com/dotenvx/dotenvx/pull/60))
* use `dotenvx.com` ([#56](https://github.com/dotenvx/dotenvx/pull/56))
## 0.14.1
### Changed
* patch esm issue. use update-notifier ^5.1.0
## 0.14.0
### Added
* Added `genexample` command. Generate `.env.example` from your `.env` file. ([#49](https://github.com/dotenvx/dotenvx/pull/49))
* couple security patches ([#50](https://github.com/dotenvx/dotenvx/pull/50), [#51](https://github.com/dotenvx/dotenvx/pull/51))
## 0.13.0
### Added
* Added `decrypt` command. Decrypt `.env.vault` to prospective `.env*` files. `.env.keys` must be present. ([#48](https://github.com/dotenvx/dotenvx/pull/48))
## 0.12.0
### Added
* Append to `.gitignore` with `gitignore` command (also `.dockerignore`, `.npmignore`, and `.vercelignore` if existing) ([#47](https://github.com/dotenvx/dotenvx/pull/47))
## 0.11.0
### Removed
* no longer append to `*ignore` files automatically. too invasive. will provide as separate cli command ([#45](https://github.com/dotenvx/dotenvx/pull/45))
## 0.10.6
### Changed
* Improve error message when decryption fails ([#40](https://github.com/dotenvx/dotenvx/pull/40))
## 0.10.5
### Changed
* Rename `predockerbuild` command to `prebuild` ([#36](https://github.com/dotenvx/pull/36))
## 0.10.4
### Added
* Add `predockerbuild` command to prevent including `.env` file in your docker builds ([#35](https://github.com/dotenvx/pull/35))
## 0.10.3
### Changed
* If dotenvx is missing tell user how to install it from pre-commit ([#34](https://github.com/dotenvx/pull/34))
* Add help notice for ci (when .env file not present) ([#33](https://github.com/dotenvx/pull/33))
## 0.10.2
### Changed
* Improve error message when custom `--env-file` passed ([#32](https://github.com/dotenvx/pull/32))
## 0.10.1
### Changed
* Adjust `precommit` verbosity and coloring
* Add `--install` flag to precommit - installs to `.git/hooks/pre-commit` ([#31](https://github.com/dotenvx/dotenvx/pull/31))
## 0.10.0
### Added
* Added `dotenvx precommit` command and instructions for git pre-commit hook ([#30](https://github.com/dotenvx/dotenvx/pull/30))
## 0.9.0
### Changed
* Remove `.flaskenv` from appends ([#27](https://github.com/dotenvx/dotenvx/pull/27))
* Improved error message when .env file is missing ([#28](https://github.com/dotenvx/dotenvx/pull/28))
## 0.8.4
### Changed
Load `axios` with a try/catch depending on context 🐞 ([#24](https://github.com/dotenvx/dotenvx/pull/24))
## 0.8.3
### Changed
Patched `helpers.guessEnvironment` bug when filepath contained a `.` in the folder name. 🐞 ([#23](https://github.com/dotenvx/dotenvx/pull/23))
## 0.8.2
### Changed
Change path to axios in attempt for `pkg` to build correctly.
## 0.8.1
### Added
Add axios (missing) to `package-lock.json`
## 0.8.0
### Added
Added [hub](https://hub.dotenvx.com) support. 🎉 ([#16](https://github.com/dotenvx/dotenvx/pull/16))
## 0.7.4
### Changed
Create binaries with root:root defaults. ([#21](https://github.com/dotenvx/dotenvx/pull/21))
## 0.7.3
### Added
Tell user about undefined subprocess with additional `debug` logs ([#19](https://github.com/dotenvx/dotenvx/pull/19))
## 0.7.2
### Added
`debug` other signals send to execa process ([#18](https://github.com/dotenvx/dotenvx/pull/18))
## 0.7.1
### Changed
Fix missed package.json#version
## 0.7.0
### Added
handle `SIGINT` ([#17](https://github.com/dotenvx/dotenvx/pull/17))
## 0.6.13
write to `/latest` only for [releases](https://github.com/dotenvx/releases) repo ([#15](https://github.com/dotenvx/dotenvx/pull/15))
## 0.6.12
### Changed
do not package README alongside binary. adds noise to a user's machine. keep their machine shiny. ([#14](https://github.com/dotenvx/dotenvx/pull/14))
## 0.6.11
### Added
tell user what to do next ([#13](https://github.com/dotenvx/dotenvx/pull/13))
## 0.6.10
### Patched
do not log when error code is 0 ([#12](https://github.com/dotenvx/dotenvx/pull/12))
## 0.6.9
### Added
tell user when no changes to re-encrypt ([#11](https://github.com/dotenvx/dotenvx/pull/11))
## 0.6.8
### Added
added help text when user's command fails. include link to report issue ([#10](https://github.com/dotenvx/dotenvx/pull/10))
## 0.6.7
## Added
added next step help message when running `dotenvx run` with no argument ([#9](https://github.com/dotenvx/dotenvx/pull/9))
## 0.6.6
### Added
help includes a command example as well as a full working 'try it out' example ([#8](https://github.com/dotenvx/dotenvx/pull/8))
## 0.6.5
### Changed
made the info messaging more succinct ([#7](https://github.com/dotenvx/dotenvx/pull/7))
## 0.6.4
### Added
added tagged images to [hub.docker.com/u/dotenv](https://hub.docker.com/r/dotenv/dotenvx/tags)
## 0.6.3
### Changed
fixed the `.env.keys` file comment. spacing was off. ([#6](https://github.com/dotenvx/dotenvx/pull/6))
## 0.6.2
### Added
added help text to `encrypt`. ([#5](https://github.com/dotenvx/dotenvx/pull/5))
## 0.6.1
### Changed
removed the `pad` on the logging level. didn't look good when running in default INFO mode. ([#4](https://github.com/dotenvx/dotenvx/pull/4))
## 0.6.0
### Added
prevent committing a `.env*` file to code. append to `.gitignore`, `.dockerignore`, `.vercelignore`, and `.npmignore` 🗂️ ([#3](https://github.com/dotenvx/dotenvx/pull/3))
## 0.5.0
### Added
`run` support for `.env.vault` files 🔑 ([#2](https://github.com/dotenvx/dotenvx/pull/2))
## 0.4.0
### Added
`encrypt` 🔐 ([#1](https://github.com/dotenvx/dotenvx/pull/1))
## 0.3.9 and prior
Please see commit history.