@dotenvx/dotenvx 1.55.0 → 1.56.0

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.
Files changed (62) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/package.json +3 -3
  3. package/src/cli/actions/encrypt.js +0 -3
  4. package/src/cli/actions/get.js +4 -2
  5. package/src/cli/actions/keypair.js +3 -2
  6. package/src/cli/actions/rotate.js +10 -5
  7. package/src/cli/actions/run.js +1 -14
  8. package/src/cli/actions/set.js +3 -2
  9. package/src/cli/commands/ext.js +0 -3
  10. package/src/cli/dotenvx.js +12 -9
  11. package/src/db/session.js +21 -0
  12. package/src/lib/extensions/ops.js +98 -0
  13. package/src/lib/helpers/buildEnvs.js +2 -15
  14. package/src/lib/helpers/{decryptKeyValue.js → cryptography/decryptKeyValue.js} +1 -1
  15. package/src/lib/helpers/cryptography/index.js +14 -0
  16. package/src/lib/helpers/{isPublicKey.js → cryptography/isPublicKey.js} +1 -1
  17. package/src/lib/helpers/{keypair.js → cryptography/localKeypair.js} +2 -2
  18. package/src/lib/helpers/cryptography/mutateKeysSrc.js +38 -0
  19. package/src/lib/helpers/cryptography/mutateSrc.js +24 -0
  20. package/src/lib/helpers/cryptography/opsKeypair.js +14 -0
  21. package/src/lib/helpers/cryptography/provision.js +47 -0
  22. package/src/lib/helpers/cryptography/provisionWithPrivateKey.js +26 -0
  23. package/src/lib/helpers/envResolution/determine.js +46 -0
  24. package/src/lib/helpers/{guessEnvironment.js → envResolution/environment.js} +4 -6
  25. package/src/lib/helpers/envResolution/index.js +8 -0
  26. package/src/lib/helpers/errors.js +13 -0
  27. package/src/lib/helpers/findEnvFiles.js +1 -1
  28. package/src/lib/helpers/isFullyEncrypted.js +3 -3
  29. package/src/lib/helpers/keyResolution/index.js +13 -0
  30. package/src/lib/helpers/keyResolution/keyNames.js +24 -0
  31. package/src/lib/helpers/keyResolution/keyValues.js +85 -0
  32. package/src/lib/helpers/keyResolution/readFileKey.js +15 -0
  33. package/src/lib/helpers/keyResolution/readProcessKey.js +7 -0
  34. package/src/lib/helpers/parse.js +1 -1
  35. package/src/lib/helpers/prependPublicKey.js +17 -0
  36. package/src/lib/helpers/preserveShebang.js +16 -0
  37. package/src/lib/main.d.ts +19 -3
  38. package/src/lib/main.js +9 -17
  39. package/src/lib/services/decrypt.js +23 -19
  40. package/src/lib/services/encrypt.js +41 -136
  41. package/src/lib/services/get.js +3 -3
  42. package/src/lib/services/keypair.js +12 -16
  43. package/src/lib/services/prebuild.js +2 -2
  44. package/src/lib/services/precommit.js +2 -2
  45. package/src/lib/services/rotate.js +59 -42
  46. package/src/lib/services/run.js +29 -112
  47. package/src/lib/services/sets.js +40 -124
  48. package/src/lib/helpers/decrypt.js +0 -31
  49. package/src/lib/helpers/deprecationNotice.js +0 -17
  50. package/src/lib/helpers/determineEnvs.js +0 -65
  51. package/src/lib/helpers/encrypt.js +0 -29
  52. package/src/lib/helpers/findPrivateKey.js +0 -25
  53. package/src/lib/helpers/findPublicKey.js +0 -15
  54. package/src/lib/helpers/guessPrivateKeyName.js +0 -18
  55. package/src/lib/helpers/guessPublicKeyName.js +0 -18
  56. package/src/lib/helpers/parseEncryptionKeyFromDotenvKey.js +0 -19
  57. package/src/lib/helpers/parseEnvironmentFromDotenvKey.js +0 -19
  58. package/src/lib/helpers/smartDotenvPrivateKey.js +0 -89
  59. package/src/lib/helpers/smartDotenvPublicKey.js +0 -42
  60. package/src/lib/services/ops.js +0 -111
  61. /package/src/lib/helpers/{encryptValue.js → cryptography/encryptValue.js} +0 -0
  62. /package/src/lib/helpers/{isEncrypted.js → cryptography/isEncrypted.js} +0 -0
@@ -1,111 +0,0 @@
1
- const path = require('path')
2
- const childProcess = require('child_process')
3
-
4
- const { logger } = require('./../../shared/logger')
5
-
6
- class Ops {
7
- constructor () {
8
- this.opsLib = null
9
-
10
- // check npm lib
11
- try {
12
- this.opsLib = this._opsNpm()
13
- logger.successv(`🛡️ ops: ${this.opsLib.status}`)
14
- } catch (e) {
15
- // check binary cli
16
- try {
17
- this.opsLib = this._opsCli()
18
- logger.successv(`🛡️ ops: ${this.opsLib.status}`)
19
- } catch (_e2) {
20
- // noop
21
- }
22
- // noop
23
- }
24
- }
25
-
26
- observe (payload) {
27
- if (this.opsLib && this.opsLib.status !== 'off') {
28
- const encoded = this.encode(payload)
29
- this.opsLib.observe(encoded)
30
- }
31
- }
32
-
33
- keypair (publicKey) {
34
- const args = ['keypair']
35
- if (publicKey) {
36
- args.push(publicKey)
37
- }
38
-
39
- const options = { stdio: ['pipe', 'pipe', 'ignore'] }
40
- const fallbackBin = path.resolve(process.cwd(), 'node_modules/.bin/dotenvx-ops')
41
-
42
- try {
43
- const output = childProcess.execFileSync(fallbackBin, args, options)
44
- const parsed = JSON.parse(output.toString())
45
- if (parsed && parsed.private_key) {
46
- return parsed.private_key
47
- }
48
- } catch (e) {
49
- // noop
50
- }
51
-
52
- try {
53
- const output = childProcess.execFileSync('dotenvx-ops', args, options)
54
- const parsed = JSON.parse(output.toString())
55
- if (parsed && parsed.private_key) {
56
- return parsed.private_key
57
- }
58
- } catch (e) {
59
- // noop
60
- }
61
-
62
- return null
63
- }
64
-
65
- encode (payload) {
66
- return Buffer.from(JSON.stringify(payload)).toString('base64')
67
- }
68
-
69
- _opsNpm () {
70
- const fallbackBin = path.resolve(process.cwd(), 'node_modules/.bin/dotenvx-ops')
71
- const status = childProcess.execSync(`${fallbackBin} status`, { stdio: ['pipe', 'pipe', 'ignore'] })
72
-
73
- return {
74
- status: status.toString().trim(),
75
- observe: (encoded) => {
76
- try {
77
- const subprocess = childProcess.spawn(fallbackBin, ['observe', encoded], {
78
- stdio: 'ignore',
79
- detached: true
80
- })
81
-
82
- subprocess.unref() // let it run independently
83
- } catch (e) {
84
- // noop
85
- }
86
- }
87
- }
88
- }
89
-
90
- _opsCli () {
91
- const status = childProcess.execSync('dotenvx-ops status', { stdio: ['pipe', 'pipe', 'ignore'] })
92
-
93
- return {
94
- status: status.toString().trim(),
95
- observe: (encoded) => {
96
- try {
97
- const subprocess = childProcess.spawn('dotenvx-ops', ['observe', encoded], {
98
- stdio: 'ignore',
99
- detached: true
100
- })
101
-
102
- subprocess.unref() // let it run independently
103
- } catch (e) {
104
- // noop
105
- }
106
- }
107
- }
108
- }
109
- }
110
-
111
- module.exports = Ops