@achs/env 3.0.0 → 3.1.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 (139) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc.json +329 -0
  3. package/.vscode/extensions.json +18 -0
  4. package/.vscode/launch.json +30 -0
  5. package/.vscode/settings.json +29 -0
  6. package/CHANGELOG.md +4 -0
  7. package/jest.config.json +28 -0
  8. package/package.json +16 -16
  9. package/{arguments.js → src/arguments.ts} +32 -8
  10. package/src/commands/env.command.ts +139 -0
  11. package/src/commands/export.command.ts +88 -0
  12. package/{commands/index.d.ts → src/commands/index.ts} +0 -1
  13. package/src/commands/pull.command.ts +52 -0
  14. package/src/commands/push.command.ts +48 -0
  15. package/src/commands/schema.command.ts +31 -0
  16. package/src/exec.ts +221 -0
  17. package/{index.d.ts → src/index.ts} +0 -1
  18. package/{interfaces/index.d.ts → src/interfaces/index.ts} +0 -1
  19. package/src/interfaces/loader.interface.ts +66 -0
  20. package/src/main.ts +6 -0
  21. package/src/providers/app-settings.provider.ts +67 -0
  22. package/src/providers/azure-key-vault.provider.ts +277 -0
  23. package/src/providers/index.ts +29 -0
  24. package/src/providers/local.provider.ts +44 -0
  25. package/src/providers/package-json.provider.ts +39 -0
  26. package/src/utils/command.util.ts +223 -0
  27. package/{utils/index.d.ts → src/utils/index.ts} +0 -1
  28. package/src/utils/interpolate.util.ts +65 -0
  29. package/src/utils/json.util.ts +116 -0
  30. package/{utils/logger.js → src/utils/logger.ts} +6 -6
  31. package/src/utils/normalize.util.ts +142 -0
  32. package/src/utils/schema.util.ts +191 -0
  33. package/tests/env/appsettings.json +32 -0
  34. package/tests/env/dev.env.json +12 -0
  35. package/tests/env/dev.local.env.json +9 -0
  36. package/tests/env/env.schema.json +225 -0
  37. package/tests/env/keys.json +7 -0
  38. package/tests/env/settings/schema.json +239 -0
  39. package/tests/env/settings/settings.json +22 -0
  40. package/tests/env.int.test.ts +42 -0
  41. package/tests/exec.ts +19 -0
  42. package/tests/export.int.test.ts +9 -0
  43. package/tests/pull-push.int.test.ts +15 -0
  44. package/tests/run.js +32 -0
  45. package/tests/schema.int.test.ts +9 -0
  46. package/tests/setup.ts +13 -0
  47. package/tsconfig.build.json +10 -0
  48. package/tsconfig.json +37 -0
  49. package/arguments.d.ts +0 -25
  50. package/arguments.d.ts.map +0 -1
  51. package/arguments.js.map +0 -1
  52. package/commands/env.command.d.ts +0 -8
  53. package/commands/env.command.d.ts.map +0 -1
  54. package/commands/env.command.js +0 -85
  55. package/commands/env.command.js.map +0 -1
  56. package/commands/export.command.d.ts +0 -8
  57. package/commands/export.command.d.ts.map +0 -1
  58. package/commands/export.command.js +0 -54
  59. package/commands/export.command.js.map +0 -1
  60. package/commands/index.d.ts.map +0 -1
  61. package/commands/index.js +0 -14
  62. package/commands/index.js.map +0 -1
  63. package/commands/pull.command.d.ts +0 -7
  64. package/commands/pull.command.d.ts.map +0 -1
  65. package/commands/pull.command.js +0 -39
  66. package/commands/pull.command.js.map +0 -1
  67. package/commands/push.command.d.ts +0 -7
  68. package/commands/push.command.d.ts.map +0 -1
  69. package/commands/push.command.js +0 -38
  70. package/commands/push.command.js.map +0 -1
  71. package/commands/schema.command.d.ts +0 -4
  72. package/commands/schema.command.d.ts.map +0 -1
  73. package/commands/schema.command.js +0 -18
  74. package/commands/schema.command.js.map +0 -1
  75. package/exec.d.ts +0 -3
  76. package/exec.d.ts.map +0 -1
  77. package/exec.js +0 -142
  78. package/exec.js.map +0 -1
  79. package/index.d.ts.map +0 -1
  80. package/index.js +0 -20
  81. package/index.js.map +0 -1
  82. package/interfaces/index.d.ts.map +0 -1
  83. package/interfaces/index.js +0 -18
  84. package/interfaces/index.js.map +0 -1
  85. package/interfaces/loader.interface.d.ts +0 -21
  86. package/interfaces/loader.interface.d.ts.map +0 -1
  87. package/interfaces/loader.interface.js +0 -3
  88. package/interfaces/loader.interface.js.map +0 -1
  89. package/main.d.ts +0 -3
  90. package/main.d.ts.map +0 -1
  91. package/main.js +0 -6
  92. package/main.js.map +0 -1
  93. package/providers/app-settings.provider.d.ts +0 -8
  94. package/providers/app-settings.provider.d.ts.map +0 -1
  95. package/providers/app-settings.provider.js +0 -50
  96. package/providers/app-settings.provider.js.map +0 -1
  97. package/providers/azure-key-vault.provider.d.ts +0 -20
  98. package/providers/azure-key-vault.provider.d.ts.map +0 -1
  99. package/providers/azure-key-vault.provider.js +0 -143
  100. package/providers/azure-key-vault.provider.js.map +0 -1
  101. package/providers/index.d.ts +0 -7
  102. package/providers/index.d.ts.map +0 -1
  103. package/providers/index.js +0 -30
  104. package/providers/index.js.map +0 -1
  105. package/providers/local.provider.d.ts +0 -8
  106. package/providers/local.provider.d.ts.map +0 -1
  107. package/providers/local.provider.js +0 -31
  108. package/providers/local.provider.js.map +0 -1
  109. package/providers/package-json.provider.d.ts +0 -8
  110. package/providers/package-json.provider.d.ts.map +0 -1
  111. package/providers/package-json.provider.js +0 -29
  112. package/providers/package-json.provider.js.map +0 -1
  113. package/tsconfig.build.tsbuildinfo +0 -1
  114. package/utils/command.util.d.ts +0 -13
  115. package/utils/command.util.d.ts.map +0 -1
  116. package/utils/command.util.js +0 -134
  117. package/utils/command.util.js.map +0 -1
  118. package/utils/index.d.ts.map +0 -1
  119. package/utils/index.js +0 -23
  120. package/utils/index.js.map +0 -1
  121. package/utils/interpolate.util.d.ts +0 -4
  122. package/utils/interpolate.util.d.ts.map +0 -1
  123. package/utils/interpolate.util.js +0 -33
  124. package/utils/interpolate.util.js.map +0 -1
  125. package/utils/json.util.d.ts +0 -5
  126. package/utils/json.util.d.ts.map +0 -1
  127. package/utils/json.util.js +0 -48
  128. package/utils/json.util.js.map +0 -1
  129. package/utils/logger.d.ts +0 -3
  130. package/utils/logger.d.ts.map +0 -1
  131. package/utils/logger.js.map +0 -1
  132. package/utils/normalize.util.d.ts +0 -3
  133. package/utils/normalize.util.d.ts.map +0 -1
  134. package/utils/normalize.util.js +0 -61
  135. package/utils/normalize.util.js.map +0 -1
  136. package/utils/schema.util.d.ts +0 -11
  137. package/utils/schema.util.d.ts.map +0 -1
  138. package/utils/schema.util.js +0 -100
  139. package/utils/schema.util.js.map +0 -1
package/.eslintignore ADDED
@@ -0,0 +1,3 @@
1
+ .vscode/**/*
2
+ dist/**/*
3
+ *.js
package/.eslintrc.json ADDED
@@ -0,0 +1,329 @@
1
+ {
2
+ "root": true,
3
+ "env": {
4
+ "es6": true,
5
+ "jest": true,
6
+ "node": true,
7
+ "es2021": true,
8
+ "jest/globals": true
9
+ },
10
+ "parser": "@typescript-eslint/parser",
11
+ "parserOptions": {
12
+ "ecmaVersion": 12,
13
+ "project": "tsconfig.json",
14
+ "sourceType": "module",
15
+ "ecmaFeatures": {
16
+ "modules": true,
17
+ "legacyDecorators": true
18
+ }
19
+ },
20
+ "plugins": [
21
+ "@typescript-eslint/eslint-plugin",
22
+ "prettier",
23
+ "sonarjs",
24
+ "unicorn",
25
+ "promise",
26
+ "jest",
27
+ "jest-formatting"
28
+ ],
29
+ "extends": [
30
+ "plugin:@typescript-eslint/recommended",
31
+ "plugin:prettier/recommended",
32
+ "plugin:eslint-comments/recommended",
33
+ "plugin:sonarjs/recommended"
34
+ ],
35
+ "rules": {
36
+ "prettier/prettier": [
37
+ "warn",
38
+ {
39
+ "useTabs": false,
40
+ "tabWidth": 4,
41
+ "printWidth": 80,
42
+ "trailingComma": "none",
43
+ "singleQuote": true,
44
+ "semi": true,
45
+ "bracketSpacing": true,
46
+ "bracketSameLine": false,
47
+ "quoteProps": "as-needed",
48
+ "arrowParens": "always",
49
+ "endOfLine": "auto"
50
+ }
51
+ ],
52
+ "@typescript-eslint/explicit-function-return-type": "off",
53
+ "@typescript-eslint/explicit-module-boundary-types": "off",
54
+ "@typescript-eslint/interface-name-prefix": "off",
55
+ "@typescript-eslint/no-empty-interface": [
56
+ "error",
57
+ {
58
+ "allowSingleExtends": true
59
+ }
60
+ ],
61
+ "@typescript-eslint/no-explicit-any": "off",
62
+ "@typescript-eslint/no-non-null-assertion": "off",
63
+ "@typescript-eslint/no-unused-vars": [
64
+ "warn",
65
+ {
66
+ "args": "after-used",
67
+ "caughtErrors": "all",
68
+ "vars": "local",
69
+ "varsIgnorePattern": "^_.*"
70
+ }
71
+ ],
72
+ "array-callback-return": "error",
73
+ "block-scoped-var": "warn",
74
+ "block-spacing": "warn",
75
+ "class-methods-use-this": "off",
76
+ "comma-dangle": ["warn", "never"],
77
+ "comma-spacing": [
78
+ "warn",
79
+ {
80
+ "after": true,
81
+ "before": false
82
+ }
83
+ ],
84
+ "comma-style": ["warn", "last"],
85
+ "curly": ["warn", "multi-or-nest", "consistent"],
86
+ "default-case": "warn",
87
+ "dot-location": ["warn", "property"],
88
+ "dot-notation": "warn",
89
+ "eqeqeq": "warn",
90
+ "func-call-spacing": ["warn", "never"],
91
+ "getter-return": [
92
+ "error",
93
+ {
94
+ "allowImplicit": true
95
+ }
96
+ ],
97
+ "jest-formatting/padding-around-all": "warn",
98
+ "jest/no-disabled-tests": "warn",
99
+ "jest/no-focused-tests": "error",
100
+ "jest/no-identical-title": "error",
101
+ "jest/prefer-to-have-length": "warn",
102
+ "jest/valid-expect": "error",
103
+ "key-spacing": [
104
+ "warn",
105
+ {
106
+ "beforeColon": false
107
+ }
108
+ ],
109
+ "lines-around-comment": [
110
+ "warn",
111
+ {
112
+ "allowArrayStart": true,
113
+ "allowBlockStart": true,
114
+ "allowClassStart": true,
115
+ "allowObjectStart": true,
116
+ "beforeBlockComment": true,
117
+ "beforeLineComment": false
118
+ }
119
+ ],
120
+ "lines-between-class-members": ["warn", "always"],
121
+ "no-console": "warn",
122
+ "no-duplicate-case": "error",
123
+ "no-empty": "error",
124
+ "no-empty-pattern": "error",
125
+ "no-eq-null": "warn",
126
+ "no-extra-semi": "warn",
127
+ "no-mixed-spaces-and-tabs": ["warn", "smart-tabs"],
128
+ "no-multi-spaces": "warn",
129
+ "no-multiple-empty-lines": [
130
+ "warn",
131
+ {
132
+ "max": 1,
133
+ "maxBOF": 0,
134
+ "maxEOF": 0
135
+ }
136
+ ],
137
+ "no-throw-literal": "error",
138
+ "no-trailing-spaces": "warn",
139
+ "no-unneeded-ternary": "warn",
140
+ "no-unreachable": "error",
141
+ "object-curly-spacing": ["warn", "always"],
142
+ "object-shorthand": "warn",
143
+ "padded-blocks": ["warn", "never"],
144
+ "padding-line-between-statements": [
145
+ "warn",
146
+ {
147
+ "blankLine": "always",
148
+ "next": "return",
149
+ "prev": "*"
150
+ },
151
+ {
152
+ "blankLine": "always",
153
+ "next": "class",
154
+ "prev": "*"
155
+ },
156
+ {
157
+ "blankLine": "never",
158
+ "next": "import",
159
+ "prev": "import"
160
+ }
161
+ ],
162
+ "prefer-promise-reject-errors": "warn",
163
+ "promise/always-return": "error",
164
+ "promise/avoid-new": "off",
165
+ "promise/catch-or-return": "error",
166
+ "promise/no-callback-in-promise": "warn",
167
+ "promise/no-native": "off",
168
+ "promise/no-nesting": "warn",
169
+ "promise/no-new-statics": "error",
170
+ "promise/no-promise-in-callback": "warn",
171
+ "promise/no-return-in-finally": "warn",
172
+ "promise/no-return-wrap": "error",
173
+ "promise/param-names": "error",
174
+ "promise/valid-params": "off",
175
+ "quote-props": ["warn", "as-needed"],
176
+ "quotes": ["warn", "single", "avoid-escape"],
177
+ "radix": ["warn", "as-needed"],
178
+ "require-await": "error",
179
+ "semi": ["error", "always"],
180
+ "semi-spacing": "warn",
181
+ "semi-style": ["warn", "last"],
182
+ "sonarjs/cognitive-complexity": ["warn", 14],
183
+ "sonarjs/max-switch-cases": ["warn", 10],
184
+ "sonarjs/no-all-duplicated-branches": "error",
185
+ "sonarjs/no-collapsible-if": "warn",
186
+ "sonarjs/no-collection-size-mischeck": "error",
187
+ "sonarjs/no-duplicate-string": "warn",
188
+ "sonarjs/no-duplicated-branches": "error",
189
+ "sonarjs/no-element-overwrite": "error",
190
+ "sonarjs/no-extra-arguments": "warn",
191
+ "sonarjs/no-identical-conditions": "error",
192
+ "sonarjs/no-identical-expressions": "warn",
193
+ "sonarjs/no-identical-functions": "warn",
194
+ "sonarjs/no-inverted-boolean-check": "warn",
195
+ "sonarjs/no-one-iteration-loop": "error",
196
+ "sonarjs/no-redundant-boolean": "error",
197
+ "sonarjs/no-redundant-jump": "error",
198
+ "sonarjs/no-same-line-conditional": "error",
199
+ "sonarjs/no-small-switch": "warn",
200
+ "sonarjs/no-unused-collection": "warn",
201
+ "sonarjs/no-use-of-empty-return-value": "error",
202
+ "sonarjs/no-useless-catch": "warn",
203
+ "sonarjs/prefer-immediate-return": "warn",
204
+ "sonarjs/prefer-object-literal": "warn",
205
+ "sonarjs/prefer-single-boolean-return": "warn",
206
+ "sonarjs/prefer-while": "error",
207
+ "sort-imports": "off",
208
+ "sort-keys": ["off", "asc"],
209
+ "space-before-blocks": "warn",
210
+ "space-in-parens": ["warn", "never"],
211
+ "spaced-comment": [
212
+ "warn",
213
+ "always",
214
+ {
215
+ "block": {
216
+ "balanced": true,
217
+ "exceptions": ["*"],
218
+ "markers": ["!"]
219
+ },
220
+ "line": {
221
+ "exceptions": ["-", "+"],
222
+ "markers": ["/"]
223
+ }
224
+ }
225
+ ],
226
+ "switch-colon-spacing": "warn",
227
+ "vars-on-top": "warn",
228
+ "unicorn/better-regex": "error",
229
+ "unicorn/catch-error-name": "error",
230
+ "unicorn/consistent-destructuring": "error",
231
+ "unicorn/consistent-function-scoping": "error",
232
+ "unicorn/custom-error-definition": "off",
233
+ "unicorn/empty-brace-spaces": "error",
234
+ "unicorn/error-message": "error",
235
+ "unicorn/escape-case": "error",
236
+ "unicorn/expiring-todo-comments": "error",
237
+ "unicorn/explicit-length-check": "error",
238
+ "unicorn/filename-case": "error",
239
+ "unicorn/import-index": "off",
240
+ "unicorn/import-style": "error",
241
+ "unicorn/new-for-builtins": "error",
242
+ "unicorn/no-abusive-eslint-disable": "error",
243
+ "unicorn/no-array-callback-reference": "error",
244
+ "unicorn/no-array-for-each": "error",
245
+ "unicorn/no-array-method-this-argument": "error",
246
+ "unicorn/no-array-push-push": "error",
247
+ "unicorn/no-array-reduce": "off",
248
+ "unicorn/no-await-expression-member": "error",
249
+ "unicorn/no-console-spaces": "error",
250
+ "unicorn/no-document-cookie": "error",
251
+ "unicorn/no-empty-file": "error",
252
+ "unicorn/no-for-loop": "off",
253
+ "unicorn/no-hex-escape": "error",
254
+ "unicorn/no-instanceof-array": "error",
255
+ "unicorn/no-invalid-remove-event-listener": "error",
256
+ "unicorn/no-keyword-prefix": "off",
257
+ "unicorn/no-lonely-if": "error",
258
+ "no-nested-ternary": "off",
259
+ "unicorn/no-nested-ternary": "error",
260
+ "unicorn/no-new-array": "error",
261
+ "unicorn/no-new-buffer": "error",
262
+ "unicorn/no-null": "off",
263
+ "unicorn/no-object-as-default-parameter": "error",
264
+ "unicorn/no-process-exit": "off",
265
+ "unicorn/no-static-only-class": "error",
266
+ "unicorn/no-thenable": "error",
267
+ "unicorn/no-this-assignment": "error",
268
+ "unicorn/no-unreadable-array-destructuring": "error",
269
+ "unicorn/no-unsafe-regex": "off",
270
+ "unicorn/no-unused-properties": "off",
271
+ "unicorn/no-useless-fallback-in-spread": "error",
272
+ "unicorn/no-useless-length-check": "error",
273
+ "unicorn/no-useless-promise-resolve-reject": "error",
274
+ "unicorn/no-useless-spread": "error",
275
+ "unicorn/no-useless-undefined": "error",
276
+ "unicorn/no-zero-fractions": "error",
277
+ "unicorn/number-literal-case": "error",
278
+ "unicorn/numeric-separators-style": "error",
279
+ "unicorn/prefer-add-event-listener": "error",
280
+ "unicorn/prefer-array-find": "error",
281
+ "unicorn/prefer-array-flat": "error",
282
+ "unicorn/prefer-array-flat-map": "error",
283
+ "unicorn/prefer-array-index-of": "error",
284
+ "unicorn/prefer-array-some": "error",
285
+ "unicorn/prefer-at": "off",
286
+ "unicorn/prefer-code-point": "error",
287
+ "unicorn/prefer-date-now": "error",
288
+ "unicorn/prefer-default-parameters": "error",
289
+ "unicorn/prefer-dom-node-append": "error",
290
+ "unicorn/prefer-dom-node-dataset": "error",
291
+ "unicorn/prefer-dom-node-remove": "error",
292
+ "unicorn/prefer-dom-node-text-content": "error",
293
+ "unicorn/prefer-export-from": "error",
294
+ "unicorn/prefer-includes": "error",
295
+ "unicorn/prefer-json-parse-buffer": "error",
296
+ "unicorn/prefer-keyboard-event-key": "error",
297
+ "unicorn/prefer-math-trunc": "error",
298
+ "unicorn/prefer-modern-dom-apis": "error",
299
+ "unicorn/prefer-module": "off",
300
+ "unicorn/prefer-negative-index": "error",
301
+ "unicorn/prefer-node-protocol": "off",
302
+ "unicorn/prefer-number-properties": "error",
303
+ "unicorn/prefer-object-from-entries": "error",
304
+ "unicorn/prefer-optional-catch-binding": "error",
305
+ "unicorn/prefer-prototype-methods": "error",
306
+ "unicorn/prefer-query-selector": "error",
307
+ "unicorn/prefer-reflect-apply": "error",
308
+ "unicorn/prefer-regexp-test": "error",
309
+ "unicorn/prefer-set-has": "error",
310
+ "unicorn/prefer-spread": "error",
311
+ "unicorn/prefer-string-replace-all": "off",
312
+ "unicorn/prefer-string-slice": "error",
313
+ "unicorn/prefer-string-starts-ends-with": "error",
314
+ "unicorn/prefer-string-trim-start-end": "error",
315
+ "unicorn/prefer-switch": "error",
316
+ "unicorn/prefer-ternary": "off",
317
+ "unicorn/prefer-top-level-await": "off",
318
+ "unicorn/prefer-type-error": "error",
319
+ "unicorn/prevent-abbreviations": "off",
320
+ "unicorn/relative-url-style": "error",
321
+ "unicorn/require-array-join-separator": "error",
322
+ "unicorn/require-number-to-fixed-digits-argument": "error",
323
+ "unicorn/require-post-message-target-origin": "off",
324
+ "unicorn/string-content": "off",
325
+ "unicorn/template-indent": "warn",
326
+ "unicorn/text-encoding-identifier-case": "error",
327
+ "unicorn/throw-new-error": "error"
328
+ }
329
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "recommendations": [
3
+ "abhijoybasak.nestjs-files",
4
+ "adam-bender.commit-message-editor",
5
+ "alefragnani.bookmarks",
6
+ "bradgashler.htmltagwrap",
7
+ "dbaeumer.vscode-eslint",
8
+ "eamodio.gitlens",
9
+ "exodiusstudios.comment-anchors",
10
+ "manuelalabor.rxjs-debugging-for-vs-code",
11
+ "oouo-diogo-perdigao.docthis",
12
+ "rbbit.typescript-hero",
13
+ "svipas.prettier-plus",
14
+ "tyriar.windows-terminal",
15
+ "waderyan.gitblame",
16
+ "yatki.vscode-surround"
17
+ ]
18
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "version": "0.2.0",
3
+ "configurations": [
4
+ {
5
+ "name": "Test",
6
+ "type": "node",
7
+ "request": "launch",
8
+ "cwd": "${workspaceFolder}",
9
+ "sourceMaps": true,
10
+ "restart": true,
11
+ "disableOptimisticBPs": true,
12
+ "runtimeExecutable": "npm",
13
+ "runtimeArgs": [
14
+ "run",
15
+ "test",
16
+ "${fileBasenameNoExtension}",
17
+ "-no-cache"
18
+ ],
19
+ "outFiles": [
20
+ "${workspaceFolder}/src/**/*.ts"
21
+ ],
22
+ "skipFiles": [
23
+ "<node_internals>/**/*.js"
24
+ ],
25
+ "protocol": "inspector",
26
+ "console": "integratedTerminal",
27
+ "internalConsoleOptions": "neverOpen"
28
+ }
29
+ ]
30
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "editor.rulers": [80, 100],
3
+ "explorer.sortOrder": "type",
4
+ "files.exclude": {
5
+ "**/*.log": true,
6
+ "**/*.map.js": true,
7
+ "**/.DS_Store": true,
8
+ "**/.git": true,
9
+ "**/.git/objects/**": true,
10
+ "**/.git/subtree-cache/**": true,
11
+ "**/.hg": true,
12
+ "**/.history/**": true,
13
+ "**/.svn": true,
14
+ "**/CVS": true,
15
+ "**/bower_components/**": true,
16
+ "**/node_modules/**": true,
17
+ "desktop.ini": true,
18
+ "folderico*.ico": true
19
+ },
20
+ "files.insertFinalNewline": true,
21
+ "files.trimTrailingWhitespace": true,
22
+ "typescript.tsdk": "node_modules\\typescript\\lib",
23
+ "[javascript]": {
24
+ "editor.defaultFormatter": "dbaeumer.vscode-eslint"
25
+ },
26
+ "[typescript]": {
27
+ "editor.defaultFormatter": "dbaeumer.vscode-eslint"
28
+ }
29
+ }
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [3.1.0] - 2022-07-18
6
+
7
+ - dependencies updated
8
+
5
9
  ## [3.0.0] - 2022-05-15
6
10
 
7
11
  - reworked file paths
@@ -0,0 +1,28 @@
1
+ {
2
+ "rootDir": ".",
3
+ "roots": ["src", "tests"],
4
+ "testEnvironment": "node",
5
+ "globalSetup": "./tests/setup.ts",
6
+ "bail": 1,
7
+ "verbose": true,
8
+ "clearMocks": true,
9
+ "testTimeout": 30000,
10
+ "slowTestThreshold": 10,
11
+ "moduleDirectories": ["node_modules", "src"],
12
+ "moduleFileExtensions": ["js", "json", "ts"],
13
+ "testRegex": ".*\\.(spec|test)\\.ts$",
14
+ "transform": {
15
+ "^.+\\.(t|j)s$": "ts-jest"
16
+ },
17
+ "collectCoverageFrom": ["src/**/*.(t|j)s"],
18
+ "coverageDirectory": "__reports__/coverage",
19
+ "coveragePathIgnorePatterns": [
20
+ "index.ts",
21
+ "main.ts",
22
+ ".d.ts",
23
+ "tests",
24
+ "__reports__",
25
+ "__tests__",
26
+ "__mocks__"
27
+ ]
28
+ }
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.0.0",
2
+ "version": "3.1.0",
3
3
  "project": "common",
4
4
  "name": "@achs/env",
5
5
  "title": "Environment Variables CLI Tool",
@@ -23,7 +23,7 @@
23
23
  "postbuild": "copyfiles package.json README.md LICENSE.md CHANGELOG.md assets/* dist"
24
24
  },
25
25
  "dependencies": {
26
- "@achs/azure-key-vault": "^3.2.0",
26
+ "@achs/azure-key-vault": "^3.3.0",
27
27
  "ajv": "^8.11.0",
28
28
  "ajv-formats": "^2.1.1",
29
29
  "chalk": "^4.1.2",
@@ -31,28 +31,28 @@
31
31
  "subslate": "^1.0.0",
32
32
  "to-json-schema": "^0.2.5",
33
33
  "tslog": "^3.3.3",
34
- "yargs": "^17.5.0"
34
+ "yargs": "^17.5.1"
35
35
  },
36
36
  "devDependencies": {
37
- "@types/jest": "^27.5.1",
37
+ "@types/jest": "^28.1.6",
38
38
  "@types/merge-deep": "^3.0.0",
39
- "@types/node": "^17.0.33",
39
+ "@types/node": "^18.0.6",
40
40
  "@types/to-json-schema": "^0.2.1",
41
- "@typescript-eslint/eslint-plugin": "^5.23.0",
42
- "@typescript-eslint/parser": "^5.23.0",
41
+ "@typescript-eslint/eslint-plugin": "^5.30.7",
42
+ "@typescript-eslint/parser": "^5.30.7",
43
43
  "copyfiles": "^2.4.1",
44
- "eslint": "^8.15.0",
44
+ "eslint": "^8.20.0",
45
45
  "eslint-config-prettier": "^8.5.0",
46
46
  "eslint-plugin-eslint-comments": "^3.2.0",
47
- "eslint-plugin-jest": "^26.2.1",
47
+ "eslint-plugin-jest": "^26.6.0",
48
48
  "eslint-plugin-jest-formatting": "^3.1.0",
49
- "eslint-plugin-prettier": "^4.0.0",
49
+ "eslint-plugin-prettier": "^4.2.1",
50
50
  "eslint-plugin-promise": "^6.0.0",
51
51
  "eslint-plugin-sonarjs": "^0.13.0",
52
- "eslint-plugin-unicorn": "^42.0.0",
53
- "jest": "^28.1.0",
54
- "ts-jest": "^28.0.2",
55
- "typescript": "^4.6.4"
52
+ "eslint-plugin-unicorn": "^43.0.2",
53
+ "jest": "^28.1.3",
54
+ "ts-jest": "^28.0.7",
55
+ "typescript": "^4.7.4"
56
56
  },
57
57
  "main": "index.js",
58
58
  "types": "index.d.ts",
@@ -60,8 +60,8 @@
60
60
  "env": "main.js"
61
61
  },
62
62
  "engines": {
63
- "node": "~14.0.0 || ^16.14.2",
64
- "npm": ">=7.5.6"
63
+ "node": ">=16.16.0 || ^18.0.0",
64
+ "npm": ">=8.0.0"
65
65
  },
66
66
  "config": {
67
67
  "delimiters": {
@@ -1,13 +1,37 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.args = void 0;
4
- const providers_1 = require("./providers");
1
+ import { JSONSchemaType } from 'ajv';
2
+ import { Arguments, Options } from 'yargs';
3
+ import { EnvProviderConfig } from './interfaces';
4
+ import { IntegratedProviderConfig } from './providers';
5
+
5
6
  const GROUPS = {
6
7
  LOG_WORKSPACE: 'Logger Options',
7
8
  GROUP_WORKSPACE: 'Workspace Options',
8
9
  JSON_SCHEMA_WORKSPACE: 'JSON Schema Options'
9
10
  };
10
- exports.args = {
11
+
12
+ export interface CommandArguments extends Arguments {
13
+ env: string;
14
+ modes?: string[];
15
+ app?: Record<string, unknown>;
16
+ schema?: Record<string, JSONSchemaType<object>>;
17
+ providers: EnvProviderConfig[];
18
+ ci: boolean;
19
+ nestingDelimiter: string;
20
+ arrayDescomposition: boolean;
21
+ expand: boolean;
22
+ root: string;
23
+ configFile: string;
24
+ schemaFile: string;
25
+ resolve: 'merge' | 'override';
26
+ nullable: boolean;
27
+ detectFormat: boolean;
28
+ logLevel?: 'silly' | 'trace' | 'debug' | 'info' | 'warn' | 'error';
29
+ logMaskAnyRegEx?: string[];
30
+ logMaskValuesOfKeys?: string[];
31
+ }
32
+
33
+ // common CLI arguments
34
+ export const args: Record<keyof CommandArguments, Options> = {
11
35
  env: {
12
36
  alias: 'e',
13
37
  type: 'string',
@@ -23,7 +47,7 @@ exports.args = {
23
47
  providers: {
24
48
  type: 'array',
25
49
  hidden: true,
26
- default: providers_1.IntegratedProviderConfig,
50
+ default: IntegratedProviderConfig,
27
51
  describe: 'Providers handling variables loading'
28
52
  },
29
53
  ci: {
@@ -36,7 +60,8 @@ exports.args = {
36
60
  alias: 'nd',
37
61
  type: 'string',
38
62
  default: '__',
39
- describe: 'Nesting level delimiter for flatten, i.e. { l1: { l2: "value" } } turns into { l1__l2: "value" }'
63
+ describe:
64
+ 'Nesting level delimiter for flatten, i.e. { l1: { l2: "value" } } turns into { l1__l2: "value" }'
40
65
  },
41
66
  arrayDescomposition: {
42
67
  alias: 'arrDesc',
@@ -114,4 +139,3 @@ exports.args = {
114
139
  default: []
115
140
  }
116
141
  };
117
- //# sourceMappingURL=arguments.js.map