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