@achs/env 4.12.3 → 5.0.0-alpha.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 (103) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +98 -110
  3. package/arguments.d.ts +14 -14
  4. package/arguments.d.ts.map +1 -1
  5. package/arguments.js +135 -131
  6. package/arguments.js.map +1 -1
  7. package/commands/env.command.d.ts +8 -2
  8. package/commands/env.command.d.ts.map +1 -1
  9. package/commands/env.command.js +55 -82
  10. package/commands/env.command.js.map +1 -1
  11. package/commands/export.command.d.ts +8 -2
  12. package/commands/export.command.d.ts.map +1 -1
  13. package/commands/export.command.js +53 -62
  14. package/commands/export.command.js.map +1 -1
  15. package/commands/index.d.ts +5 -5
  16. package/commands/index.d.ts.map +1 -1
  17. package/commands/index.js +5 -14
  18. package/commands/pull.command.d.ts +6 -1
  19. package/commands/pull.command.d.ts.map +1 -1
  20. package/commands/pull.command.js +20 -37
  21. package/commands/pull.command.js.map +1 -1
  22. package/commands/push.command.d.ts +6 -1
  23. package/commands/push.command.d.ts.map +1 -1
  24. package/commands/push.command.js +20 -36
  25. package/commands/push.command.js.map +1 -1
  26. package/commands/schema.command.d.ts +6 -1
  27. package/commands/schema.command.d.ts.map +1 -1
  28. package/commands/schema.command.js +16 -17
  29. package/commands/schema.command.js.map +1 -1
  30. package/exec.d.ts +7 -1
  31. package/exec.d.ts.map +1 -1
  32. package/exec.js +84 -160
  33. package/exec.js.map +1 -1
  34. package/index.d.ts +3 -3
  35. package/index.d.ts.map +1 -1
  36. package/index.js +3 -20
  37. package/interfaces/index.d.ts +1 -1
  38. package/interfaces/index.d.ts.map +1 -1
  39. package/interfaces/loader.interface.d.ts +29 -3
  40. package/interfaces/loader.interface.d.ts.map +1 -1
  41. package/main.d.ts +0 -1
  42. package/main.js +7 -26
  43. package/main.js.map +1 -1
  44. package/package.json +55 -34
  45. package/providers/app-settings.provider.d.ts +5 -2
  46. package/providers/app-settings.provider.d.ts.map +1 -1
  47. package/providers/app-settings.provider.js +36 -49
  48. package/providers/app-settings.provider.js.map +1 -1
  49. package/providers/azure-key-vault.provider.d.ts +12 -8
  50. package/providers/azure-key-vault.provider.d.ts.map +1 -1
  51. package/providers/azure-key-vault.provider.js +138 -169
  52. package/providers/azure-key-vault.provider.js.map +1 -1
  53. package/providers/index.d.ts +2 -2
  54. package/providers/index.d.ts.map +1 -1
  55. package/providers/index.js +18 -28
  56. package/providers/index.js.map +1 -1
  57. package/providers/local.provider.d.ts +5 -2
  58. package/providers/local.provider.d.ts.map +1 -1
  59. package/providers/local.provider.js +27 -40
  60. package/providers/local.provider.js.map +1 -1
  61. package/providers/package-json.provider.d.ts +5 -2
  62. package/providers/package-json.provider.d.ts.map +1 -1
  63. package/providers/package-json.provider.js +26 -28
  64. package/providers/package-json.provider.js.map +1 -1
  65. package/utils/argv.util.d.ts +10 -0
  66. package/utils/argv.util.d.ts.map +1 -0
  67. package/utils/argv.util.js +24 -0
  68. package/utils/argv.util.js.map +1 -0
  69. package/utils/command.util.d.ts +70 -3
  70. package/utils/command.util.d.ts.map +1 -1
  71. package/utils/command.util.js +60 -140
  72. package/utils/command.util.js.map +1 -1
  73. package/utils/index.d.ts +7 -6
  74. package/utils/index.d.ts.map +1 -1
  75. package/utils/index.js +8 -23
  76. package/utils/interpolate.util.d.ts +29 -1
  77. package/utils/interpolate.util.d.ts.map +1 -1
  78. package/utils/interpolate.util.js +12 -30
  79. package/utils/interpolate.util.js.map +1 -1
  80. package/utils/json.util.d.ts +41 -3
  81. package/utils/json.util.d.ts.map +1 -1
  82. package/utils/json.util.js +24 -42
  83. package/utils/json.util.js.map +1 -1
  84. package/utils/logger.d.ts +21 -2
  85. package/utils/logger.d.ts.map +1 -1
  86. package/utils/logger.js +31 -17
  87. package/utils/logger.js.map +1 -1
  88. package/utils/normalize.util.d.ts +24 -2
  89. package/utils/normalize.util.d.ts.map +1 -1
  90. package/utils/normalize.util.js +35 -56
  91. package/utils/normalize.util.js.map +1 -1
  92. package/utils/schema.util.d.ts +59 -0
  93. package/utils/schema.util.d.ts.map +1 -1
  94. package/utils/schema.util.js +62 -97
  95. package/utils/schema.util.js.map +1 -1
  96. package/commands/index.js.map +0 -1
  97. package/index.js.map +0 -1
  98. package/interfaces/index.js +0 -18
  99. package/interfaces/index.js.map +0 -1
  100. package/interfaces/loader.interface.js +0 -3
  101. package/interfaces/loader.interface.js.map +0 -1
  102. package/tsconfig.build.tsbuildinfo +0 -1
  103. package/utils/index.js.map +0 -1
package/arguments.js CHANGED
@@ -1,133 +1,137 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.args = void 0;
7
- const ci_info_1 = __importDefault(require("ci-info"));
8
- const providers_1 = require("./providers");
9
- const GROUPS = {
10
- LOG_WORKSPACE: 'Logger Options',
11
- GROUP_WORKSPACE: 'Workspace Options',
12
- JSON_SCHEMA_WORKSPACE: 'JSON Schema Options'
13
- };
14
- exports.args = {
15
- env: {
16
- alias: 'e',
17
- type: 'string',
18
- describe: 'Environment for load, i.e. dev, prod'
19
- },
20
- modes: {
21
- alias: 'm',
22
- type: 'array',
23
- describe: 'Execution modes, i.e. debug, test'
24
- },
25
- providers: {
26
- type: 'array',
27
- hidden: true,
28
- default: providers_1.IntegratedProviderConfig,
29
- describe: 'Providers handling variables loading'
30
- },
31
- ci: {
32
- alias: 'ci',
33
- type: 'boolean',
34
- default: ci_info_1.default.isCI,
35
- describe: 'Whether providers executes in continuous integration mode'
36
- },
37
- nestingDelimiter: {
38
- alias: 'nd',
39
- type: 'string',
40
- default: '__',
41
- describe: 'Nesting level delimiter for flatten, i.e. { l1: { l2: "value" } } turns into { l1__l2: "value" }'
42
- },
43
- arrayDescomposition: {
44
- alias: 'arrDesc',
45
- type: 'boolean',
46
- default: false,
47
- describe: 'Whether serialize or break down arrays'
48
- },
49
- expand: {
50
- alias: 'x',
51
- type: 'boolean',
52
- default: false,
53
- describe: 'Interpolates environment variables using itself'
54
- },
55
- root: {
56
- group: GROUPS.GROUP_WORKSPACE,
57
- type: 'string',
58
- default: 'env',
59
- describe: 'Default environment folder path'
60
- },
61
- configFile: {
62
- group: GROUPS.GROUP_WORKSPACE,
63
- alias: 'c',
64
- type: 'string',
65
- default: '[[root]]/settings/settings.json',
66
- describe: 'Config JSON file path'
67
- },
68
- schemaFile: {
69
- group: GROUPS.GROUP_WORKSPACE,
70
- alias: ['s', 'schema'],
71
- type: 'string',
72
- default: '[[root]]/settings/schema.json',
73
- describe: 'Environment Schema JSON file path'
74
- },
75
- packageJson: {
76
- group: GROUPS.GROUP_WORKSPACE,
77
- alias: ['pkg'],
78
- type: 'string',
79
- default: '',
80
- describe: 'package.json path'
81
- },
82
- resolve: {
83
- group: GROUPS.JSON_SCHEMA_WORKSPACE,
84
- alias: 'r',
85
- type: 'string',
86
- default: 'merge',
87
- choices: ['merge', 'override'],
88
- describe: 'Whether merges new schema or override'
89
- },
90
- nullable: {
91
- group: GROUPS.JSON_SCHEMA_WORKSPACE,
92
- alias: 'null',
93
- type: 'boolean',
94
- default: true,
95
- describe: 'Whether variables are nullable'
96
- },
97
- detectFormat: {
98
- group: GROUPS.JSON_SCHEMA_WORKSPACE,
99
- alias: 'df',
100
- type: 'boolean',
101
- default: false,
102
- describe: 'Whether format of strings variables are included in schema'
103
- },
104
- logLevel: {
105
- group: GROUPS.LOG_WORKSPACE,
106
- alias: 'log',
107
- type: 'string',
108
- default: 'info',
109
- choices: ['silly', 'trace', 'debug', 'info', 'warn', 'error']
110
- },
111
- logMaskAnyRegEx: {
112
- group: GROUPS.LOG_WORKSPACE,
113
- alias: 'mrx',
114
- type: 'array',
115
- hidden: true,
116
- default: []
117
- },
118
- logMaskValuesOfKeys: {
119
- group: GROUPS.LOG_WORKSPACE,
120
- alias: 'mvk',
121
- type: 'array',
122
- hidden: true,
123
- default: []
124
- },
125
- exportIgnoreKeys: {
126
- group: GROUPS.JSON_SCHEMA_WORKSPACE,
127
- alias: 'iek',
128
- type: 'array',
129
- hidden: true,
130
- default: []
131
- }
1
+ import { IntegratedProviderConfig as e } from "./providers/index.js";
2
+ import t from "ci-info";
3
+ //#region src/arguments.ts
4
+ var n = {
5
+ GROUP_WORKSPACE: "Workspace Options",
6
+ JSON_SCHEMA_WORKSPACE: "JSON Schema Options",
7
+ LOG_WORKSPACE: "Logger Options"
8
+ }, r = {
9
+ arrayDescomposition: {
10
+ alias: "arrDesc",
11
+ default: !1,
12
+ describe: "Whether serialize or break down arrays",
13
+ type: "boolean"
14
+ },
15
+ ci: {
16
+ alias: "ci",
17
+ default: t.isCI,
18
+ describe: "Whether providers executes in continuous integration mode",
19
+ type: "boolean"
20
+ },
21
+ configFile: {
22
+ alias: "c",
23
+ default: "[[root]]/settings/settings.json",
24
+ describe: "Config JSON file path",
25
+ group: n.GROUP_WORKSPACE,
26
+ type: "string"
27
+ },
28
+ detectFormat: {
29
+ alias: "df",
30
+ default: !1,
31
+ describe: "Whether format of strings variables are included in schema",
32
+ group: n.JSON_SCHEMA_WORKSPACE,
33
+ type: "boolean"
34
+ },
35
+ env: {
36
+ alias: "e",
37
+ describe: "Environment for load, i.e. dev, prod",
38
+ type: "string"
39
+ },
40
+ expand: {
41
+ alias: "x",
42
+ default: !1,
43
+ describe: "Interpolates environment variables using itself",
44
+ type: "boolean"
45
+ },
46
+ exportIgnoreKeys: {
47
+ alias: "iek",
48
+ default: [],
49
+ group: n.JSON_SCHEMA_WORKSPACE,
50
+ hidden: !0,
51
+ type: "array"
52
+ },
53
+ logLevel: {
54
+ alias: "log",
55
+ choices: [
56
+ "silly",
57
+ "trace",
58
+ "debug",
59
+ "info",
60
+ "warn",
61
+ "error"
62
+ ],
63
+ default: "info",
64
+ group: n.LOG_WORKSPACE,
65
+ type: "string"
66
+ },
67
+ logMaskAnyRegEx: {
68
+ alias: "mrx",
69
+ default: [],
70
+ group: n.LOG_WORKSPACE,
71
+ hidden: !0,
72
+ type: "array"
73
+ },
74
+ logMaskValuesOfKeys: {
75
+ alias: "mvk",
76
+ default: [],
77
+ group: n.LOG_WORKSPACE,
78
+ hidden: !0,
79
+ type: "array"
80
+ },
81
+ modes: {
82
+ alias: "m",
83
+ describe: "Execution modes, i.e. debug, test",
84
+ type: "array"
85
+ },
86
+ nestingDelimiter: {
87
+ alias: "nd",
88
+ default: "__",
89
+ type: "string",
90
+ describe: "Nesting level delimiter for flatten, i.e. { l1: { l2: \"value\" } } turns into { l1__l2: \"value\" }"
91
+ },
92
+ nullable: {
93
+ alias: "null",
94
+ default: !0,
95
+ describe: "Whether variables are nullable",
96
+ group: n.JSON_SCHEMA_WORKSPACE,
97
+ type: "boolean"
98
+ },
99
+ packageJson: {
100
+ alias: ["pkg"],
101
+ default: "",
102
+ describe: "package.json path",
103
+ group: n.GROUP_WORKSPACE,
104
+ type: "string"
105
+ },
106
+ providers: {
107
+ default: e,
108
+ describe: "Providers handling variables loading",
109
+ hidden: !0,
110
+ type: "array"
111
+ },
112
+ resolve: {
113
+ alias: "r",
114
+ choices: ["merge", "override"],
115
+ default: "merge",
116
+ describe: "Whether merges new schema or override",
117
+ group: n.JSON_SCHEMA_WORKSPACE,
118
+ type: "string"
119
+ },
120
+ root: {
121
+ default: "env",
122
+ describe: "Default environment folder path",
123
+ group: n.GROUP_WORKSPACE,
124
+ type: "string"
125
+ },
126
+ schemaFile: {
127
+ alias: ["s", "schema"],
128
+ default: "[[root]]/settings/schema.json",
129
+ describe: "Environment Schema JSON file path",
130
+ group: n.GROUP_WORKSPACE,
131
+ type: "string"
132
+ }
132
133
  };
134
+ //#endregion
135
+ export { r as args };
136
+
133
137
  //# sourceMappingURL=arguments.js.map
package/arguments.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"arguments.js","sourceRoot":"","sources":["../src/arguments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arguments.js","names":[],"sources":["../src/arguments.ts"],"sourcesContent":["import type { JSONSchemaType } from 'ajv';\r\nimport ci from 'ci-info';\r\nimport type { Arguments, Options } from 'yargs';\r\nimport type { EnvProviderConfig } from './interfaces/index.js';\r\nimport { IntegratedProviderConfig } from './providers/index.js';\r\n\r\nconst GROUPS = {\r\n\tGROUP_WORKSPACE: 'Workspace Options',\r\n\tJSON_SCHEMA_WORKSPACE: 'JSON Schema Options',\r\n\tLOG_WORKSPACE: 'Logger Options',\r\n};\r\n\r\nexport interface CommandArguments extends Arguments {\r\n\tarrayDescomposition: boolean;\r\n\tci: boolean;\r\n\tconfigFile: string;\r\n\tdetectFormat: boolean;\r\n\tenv: string;\r\n\texpand: boolean;\r\n\tnestingDelimiter: string;\r\n\tnullable: boolean;\r\n\tpackageJson: string;\r\n\tprojectInfo: Record<string, string>;\r\n\tproviders: EnvProviderConfig[];\r\n\tresolve: 'merge' | 'override';\r\n\troot: string;\r\n\tschemaFile: string;\r\n\texportIgnoreKeys?: string[];\r\n\tlogLevel?: 'debug' | 'error' | 'info' | 'silly' | 'trace' | 'warn';\r\n\tlogMaskAnyRegEx?: string[];\r\n\tlogMaskValuesOfKeys?: string[];\r\n\tmodes?: string[];\r\n\tschema?: Record<string, JSONSchemaType<object>>;\r\n}\r\n\r\n// common CLI arguments\r\nexport const args: Record<keyof CommandArguments, Options> = {\r\n\tarrayDescomposition: {\r\n\t\talias: 'arrDesc',\r\n\t\tdefault: false,\r\n\t\tdescribe: 'Whether serialize or break down arrays',\r\n\t\ttype: 'boolean',\r\n\t},\r\n\tci: {\r\n\t\talias: 'ci',\r\n\t\tdefault: ci.isCI,\r\n\t\tdescribe: 'Whether providers executes in continuous integration mode',\r\n\t\ttype: 'boolean',\r\n\t},\r\n\tconfigFile: {\r\n\t\talias: 'c',\r\n\t\tdefault: '[[root]]/settings/settings.json',\r\n\t\tdescribe: 'Config JSON file path',\r\n\t\tgroup: GROUPS.GROUP_WORKSPACE,\r\n\t\ttype: 'string',\r\n\t},\r\n\tdetectFormat: {\r\n\t\talias: 'df',\r\n\t\tdefault: false,\r\n\t\tdescribe: 'Whether format of strings variables are included in schema',\r\n\t\tgroup: GROUPS.JSON_SCHEMA_WORKSPACE,\r\n\t\ttype: 'boolean',\r\n\t},\r\n\tenv: {\r\n\t\talias: 'e',\r\n\t\tdescribe: 'Environment for load, i.e. dev, prod',\r\n\t\ttype: 'string',\r\n\t},\r\n\texpand: {\r\n\t\talias: 'x',\r\n\t\tdefault: false,\r\n\t\tdescribe: 'Interpolates environment variables using itself',\r\n\t\ttype: 'boolean',\r\n\t},\r\n\texportIgnoreKeys: {\r\n\t\talias: 'iek',\r\n\t\tdefault: [],\r\n\t\tgroup: GROUPS.JSON_SCHEMA_WORKSPACE,\r\n\t\thidden: true,\r\n\t\ttype: 'array',\r\n\t},\r\n\tlogLevel: {\r\n\t\talias: 'log',\r\n\t\tchoices: ['silly', 'trace', 'debug', 'info', 'warn', 'error'],\r\n\t\tdefault: 'info',\r\n\t\tgroup: GROUPS.LOG_WORKSPACE,\r\n\t\ttype: 'string',\r\n\t},\r\n\tlogMaskAnyRegEx: {\r\n\t\talias: 'mrx',\r\n\t\tdefault: [],\r\n\t\tgroup: GROUPS.LOG_WORKSPACE,\r\n\t\thidden: true,\r\n\t\ttype: 'array',\r\n\t},\r\n\tlogMaskValuesOfKeys: {\r\n\t\talias: 'mvk',\r\n\t\tdefault: [],\r\n\t\tgroup: GROUPS.LOG_WORKSPACE,\r\n\t\thidden: true,\r\n\t\ttype: 'array',\r\n\t},\r\n\tmodes: {\r\n\t\talias: 'm',\r\n\t\tdescribe: 'Execution modes, i.e. debug, test',\r\n\t\ttype: 'array',\r\n\t},\r\n\tnestingDelimiter: {\r\n\t\talias: 'nd',\r\n\t\tdefault: '__',\r\n\t\ttype: 'string',\r\n\t\tdescribe:\r\n\t\t\t'Nesting level delimiter for flatten, i.e. { l1: { l2: \"value\" } } turns into { l1__l2: \"value\" }',\r\n\t},\r\n\tnullable: {\r\n\t\talias: 'null',\r\n\t\tdefault: true,\r\n\t\tdescribe: 'Whether variables are nullable',\r\n\t\tgroup: GROUPS.JSON_SCHEMA_WORKSPACE,\r\n\t\ttype: 'boolean',\r\n\t},\r\n\tpackageJson: {\r\n\t\talias: ['pkg'],\r\n\t\tdefault: '',\r\n\t\tdescribe: 'package.json path',\r\n\t\tgroup: GROUPS.GROUP_WORKSPACE,\r\n\t\ttype: 'string',\r\n\t},\r\n\tproviders: {\r\n\t\tdefault: IntegratedProviderConfig,\r\n\t\tdescribe: 'Providers handling variables loading',\r\n\t\thidden: true,\r\n\t\ttype: 'array',\r\n\t},\r\n\tresolve: {\r\n\t\talias: 'r',\r\n\t\tchoices: ['merge', 'override'],\r\n\t\tdefault: 'merge',\r\n\t\tdescribe: 'Whether merges new schema or override',\r\n\t\tgroup: GROUPS.JSON_SCHEMA_WORKSPACE,\r\n\t\ttype: 'string',\r\n\t},\r\n\troot: {\r\n\t\tdefault: 'env',\r\n\t\tdescribe: 'Default environment folder path',\r\n\t\tgroup: GROUPS.GROUP_WORKSPACE,\r\n\t\ttype: 'string',\r\n\t},\r\n\tschemaFile: {\r\n\t\talias: ['s', 'schema'],\r\n\t\tdefault: '[[root]]/settings/schema.json',\r\n\t\tdescribe: 'Environment Schema JSON file path',\r\n\t\tgroup: GROUPS.GROUP_WORKSPACE,\r\n\t\ttype: 'string',\r\n\t},\r\n};\r\n"],"mappings":";;;AAMA,IAAM,IAAS;CACd,iBAAiB;CACjB,uBAAuB;CACvB,eAAe;AAChB,GA0Ba,IAAgD;CAC5D,qBAAqB;EACpB,OAAO;EACP,SAAS;EACT,UAAU;EACV,MAAM;CACP;CACA,IAAI;EACH,OAAO;EACP,SAAS,EAAG;EACZ,UAAU;EACV,MAAM;CACP;CACA,YAAY;EACX,OAAO;EACP,SAAS;EACT,UAAU;EACV,OAAO,EAAO;EACd,MAAM;CACP;CACA,cAAc;EACb,OAAO;EACP,SAAS;EACT,UAAU;EACV,OAAO,EAAO;EACd,MAAM;CACP;CACA,KAAK;EACJ,OAAO;EACP,UAAU;EACV,MAAM;CACP;CACA,QAAQ;EACP,OAAO;EACP,SAAS;EACT,UAAU;EACV,MAAM;CACP;CACA,kBAAkB;EACjB,OAAO;EACP,SAAS,CAAC;EACV,OAAO,EAAO;EACd,QAAQ;EACR,MAAM;CACP;CACA,UAAU;EACT,OAAO;EACP,SAAS;GAAC;GAAS;GAAS;GAAS;GAAQ;GAAQ;EAAO;EAC5D,SAAS;EACT,OAAO,EAAO;EACd,MAAM;CACP;CACA,iBAAiB;EAChB,OAAO;EACP,SAAS,CAAC;EACV,OAAO,EAAO;EACd,QAAQ;EACR,MAAM;CACP;CACA,qBAAqB;EACpB,OAAO;EACP,SAAS,CAAC;EACV,OAAO,EAAO;EACd,QAAQ;EACR,MAAM;CACP;CACA,OAAO;EACN,OAAO;EACP,UAAU;EACV,MAAM;CACP;CACA,kBAAkB;EACjB,OAAO;EACP,SAAS;EACT,MAAM;EACN,UACC;CACF;CACA,UAAU;EACT,OAAO;EACP,SAAS;EACT,UAAU;EACV,OAAO,EAAO;EACd,MAAM;CACP;CACA,aAAa;EACZ,OAAO,CAAC,KAAK;EACb,SAAS;EACT,UAAU;EACV,OAAO,EAAO;EACd,MAAM;CACP;CACA,WAAW;EACV,SAAS;EACT,UAAU;EACV,QAAQ;EACR,MAAM;CACP;CACA,SAAS;EACR,OAAO;EACP,SAAS,CAAC,SAAS,UAAU;EAC7B,SAAS;EACT,UAAU;EACV,OAAO,EAAO;EACd,MAAM;CACP;CACA,MAAM;EACL,SAAS;EACT,UAAU;EACV,OAAO,EAAO;EACd,MAAM;CACP;CACA,YAAY;EACX,OAAO,CAAC,KAAK,QAAQ;EACrB,SAAS;EACT,UAAU;EACV,OAAO,EAAO;EACd,MAAM;CACP;AACD"}
@@ -1,8 +1,14 @@
1
1
  import { CommandModule } from 'yargs';
2
- import { CommandArguments } from '../arguments';
2
+ import { CommandArguments } from '../arguments.js';
3
3
  export interface EnvCommandArguments extends CommandArguments {
4
- subcmd: string[];
5
4
  schemaValidate: boolean;
5
+ subcmd: string[];
6
6
  }
7
+ /**
8
+ * Main command.
9
+ * Injects environment variables into process.env.
10
+ *
11
+ * @example [>_]: env -e dev -m debug : npm start
12
+ */
7
13
  export declare const envCommand: CommandModule<any, EnvCommandArguments>;
8
14
  //# sourceMappingURL=env.command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"env.command.d.ts","sourceRoot":"","sources":["../../src/commands/env.command.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAYhD,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAG5D,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,cAAc,EAAE,OAAO,CAAC;CACxB;AAQD,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,GAAG,EAAE,mBAAmB,CA+G9D,CAAC"}
1
+ {"version":3,"file":"env.command.d.ts","sourceRoot":"","sources":["../../src/commands/env.command.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAWxD,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAE5D,cAAc,EAAE,OAAO,CAAC;IAGxB,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,GAAG,EAAE,mBAAmB,CAgH9D,CAAC"}
@@ -1,84 +1,57 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.envCommand = void 0;
7
- const picocolors_1 = __importDefault(require("picocolors"));
8
- const merge_deep_1 = __importDefault(require("merge-deep"));
9
- const child_process_1 = require("child_process");
10
- const utils_1 = require("../utils");
11
- exports.envCommand = {
12
- command: '$0 [options..] [: <subcmd> :]',
13
- describe: 'Inject environment variables into process',
14
- builder: (builder) => {
15
- builder
16
- .options({
17
- subcmd: {
18
- type: 'array',
19
- describe: 'Command for inject environment variables'
20
- },
21
- schemaValidate: {
22
- alias: 'validate',
23
- type: 'boolean',
24
- default: true,
25
- describe: 'Whether validates variables using JSON schema'
26
- }
27
- })
28
- .example('env -e dev -m test unit : npm test', 'Loads "dev" environment variables, in "test" and "unit" modes, for "npm start" command')
29
- .example('env -e dev -m debug : npm start : -c my-config.json', 'Loads "dev" environment variables, in "debug" mode, for "npm test" command and custom config file')
30
- .example('env -e dev -m debug -c [[root]]/[[env]].env.json : npm start', 'Loads custom config file placed in root folder and named same as the env')
31
- .check((argv) => {
32
- if (argv._.length === 0 && !argv.subcmd) {
33
- utils_1.logger.error('No one subcommand provided for exec surrounded by :');
34
- process.exit(1);
35
- }
36
- return true;
37
- });
38
- return builder;
39
- },
40
- handler: async ({ providers, schemaValidate, expand, ...argv }) => {
41
- const results = await (0, utils_1.loadVariablesFromProviders)(providers, argv);
42
- let env = (0, merge_deep_1.default)({ NODE_ENV: 'development' }, ...(0, utils_1.flatResults)(results, argv.nestingDelimiter));
43
- if (schemaValidate) {
44
- let schema = {};
45
- for (const { handler: { key } } of providers) {
46
- const providerSchema = argv.schema?.[key];
47
- if (providerSchema) {
48
- schema = Object.assign(schema, (0, utils_1.flatSchema)(providerSchema, '', argv.nestingDelimiter));
49
- }
50
- }
51
- const validator = (0, utils_1.createValidator)({
52
- type: 'object',
53
- properties: schema
54
- });
55
- if (!validator(env)) {
56
- utils_1.logger.error('schema validation failed', validator.errors);
57
- process.exit(1);
58
- }
59
- }
60
- env = (0, utils_1.normalize)(env, argv.nestingDelimiter, argv.arrayDescomposition);
61
- if (expand) {
62
- env = (0, utils_1.interpolate)(env, env);
63
- argv.subcmd = (0, utils_1.interpolate)(argv.subcmd, env);
64
- }
65
- utils_1.logger.debug('environment loaded:', env);
66
- for (const varname in env)
67
- process.env[varname] = env[varname];
68
- utils_1.logger.info('executing command >', picocolors_1.default.bold(picocolors_1.default.yellow(argv.subcmd.join(' '))));
69
- const cmdProcess = argv.subcmd.join(' ');
70
- (0, child_process_1.spawn)(cmdProcess, {
71
- stdio: 'inherit',
72
- shell: true
73
- }).on('exit', (code) => {
74
- if (code === 0) {
75
- utils_1.logger.info('process finished successfully');
76
- }
77
- else if (code === 1) {
78
- utils_1.logger.error('process finished with error');
79
- process.exit(code);
80
- }
81
- });
82
- }
1
+ import { flatResults as e, loadVariablesFromProviders as t } from "../utils/command.util.js";
2
+ import { interpolate as n } from "../utils/interpolate.util.js";
3
+ import { logger as r } from "../utils/logger.js";
4
+ import { normalize as i } from "../utils/normalize.util.js";
5
+ import { createValidator as a, flatSchema as o } from "../utils/schema.util.js";
6
+ import "../utils/index.js";
7
+ import s from "picocolors";
8
+ import c from "merge-deep";
9
+ import { spawn as l } from "node:child_process";
10
+ //#region src/commands/env.command.ts
11
+ var u = {
12
+ command: "$0 [options..] [: <subcmd> :]",
13
+ describe: "Inject environment variables into process",
14
+ builder: (e) => (e.options({
15
+ schemaValidate: {
16
+ alias: "validate",
17
+ default: !0,
18
+ describe: "Whether validates variables using JSON schema",
19
+ type: "boolean"
20
+ },
21
+ subcmd: {
22
+ describe: "Command for inject environment variables",
23
+ type: "array"
24
+ }
25
+ }).example("env -e dev -m test unit : npm test", "Loads \"dev\" environment variables, in \"test\" and \"unit\" modes, for \"npm start\" command").example("env -e dev -m debug : npm start : -c my-config.json", "Loads \"dev\" environment variables, in \"debug\" mode, for \"npm test\" command and custom config file").example("env -e dev -m debug -c [[root]]/[[env]].env.json : npm start", "Loads custom config file placed in root folder and named same as the env").check((e) => (e._.length === 0 && !e.subcmd && (r.error("No one subcommand provided for exec surrounded by :"), process.exit(1)), !0)), e),
26
+ handler: async ({ expand: u, providers: d, schemaValidate: f, ...p }) => {
27
+ let m = c({ NODE_ENV: "development" }, ...e(await t(d, p), p.nestingDelimiter));
28
+ if (f) {
29
+ let e = {};
30
+ for (let { handler: { key: t } } of d) {
31
+ let n = p.schema?.[t];
32
+ n && (e = Object.assign(e, o(n, "", p.nestingDelimiter)));
33
+ }
34
+ let t = a({
35
+ properties: e,
36
+ type: "object"
37
+ });
38
+ t(m) || (r.error("schema validation failed", t.errors), process.exit(1));
39
+ }
40
+ m = i(m, p.nestingDelimiter, p.arrayDescomposition), u && (m = n(m, m), p.subcmd = n(p.subcmd, m)), r.debug("environment loaded:", m);
41
+ for (let e in m) process.env[e] = String(m[e]);
42
+ r.info("executing command >", s.bold(s.yellow(p.subcmd.join(" ")))), l(p.subcmd.join(" "), {
43
+ shell: !0,
44
+ stdio: "inherit"
45
+ }).on("exit", (e) => {
46
+ if (e === 0 || e === null) {
47
+ r.info("process finished successfully");
48
+ return;
49
+ }
50
+ r.error("process finished with error"), process.exit(e);
51
+ });
52
+ }
83
53
  };
54
+ //#endregion
55
+ export { u as envCommand };
56
+
84
57
  //# sourceMappingURL=env.command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"env.command.js","sourceRoot":"","sources":["../../src/commands/env.command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env.command.js","names":[],"sources":["../../src/commands/env.command.ts"],"sourcesContent":["import merge from 'merge-deep';\r\nimport { spawn } from 'node:child_process';\r\nimport pc from 'picocolors';\r\nimport type { CommandModule } from 'yargs';\r\nimport type { CommandArguments } from '../arguments.js';\r\nimport {\r\n\tcreateValidator,\r\n\tflatResults,\r\n\tflatSchema,\r\n\tinterpolate,\r\n\tloadVariablesFromProviders,\r\n\tlogger,\r\n\tnormalize,\r\n} from '../utils/index.js';\r\n\r\nexport interface EnvCommandArguments extends CommandArguments {\r\n\t// whether validate schema before injecting variables\r\n\tschemaValidate: boolean;\r\n\t// command for execute after inject environment variables.\r\n\t// Should be prefixed or surrounded by ':' character.\r\n\tsubcmd: string[];\r\n}\r\n\r\n/**\r\n * Main command.\r\n * Injects environment variables into process.env.\r\n *\r\n * @example [>_]: env -e dev -m debug : npm start\r\n */\r\nexport const envCommand: CommandModule<any, EnvCommandArguments> = {\r\n\tcommand: '$0 [options..] [: <subcmd> :]',\r\n\tdescribe: 'Inject environment variables into process',\r\n\tbuilder: (builder) => {\r\n\t\tbuilder\r\n\t\t\t.options({\r\n\t\t\t\tschemaValidate: {\r\n\t\t\t\t\talias: 'validate',\r\n\t\t\t\t\tdefault: true,\r\n\t\t\t\t\tdescribe: 'Whether validates variables using JSON schema',\r\n\t\t\t\t\ttype: 'boolean',\r\n\t\t\t\t},\r\n\t\t\t\tsubcmd: {\r\n\t\t\t\t\tdescribe: 'Command for inject environment variables',\r\n\t\t\t\t\ttype: 'array',\r\n\t\t\t\t},\r\n\t\t\t})\r\n\t\t\t.example(\r\n\t\t\t\t'env -e dev -m test unit : npm test',\r\n\t\t\t\t'Loads \"dev\" environment variables, in \"test\" and \"unit\" modes, for \"npm start\" command',\r\n\t\t\t)\r\n\t\t\t.example(\r\n\t\t\t\t'env -e dev -m debug : npm start : -c my-config.json',\r\n\t\t\t\t'Loads \"dev\" environment variables, in \"debug\" mode, for \"npm test\" command and custom config file',\r\n\t\t\t)\r\n\t\t\t.example(\r\n\t\t\t\t'env -e dev -m debug -c [[root]]/[[env]].env.json : npm start',\r\n\t\t\t\t'Loads custom config file placed in root folder and named same as the env',\r\n\t\t\t)\r\n\t\t\t.check((argv): boolean => {\r\n\t\t\t\t// special check for custom argument\r\n\t\t\t\tif (argv._.length === 0 && !argv.subcmd) {\r\n\t\t\t\t\tlogger.error(\r\n\t\t\t\t\t\t'No one subcommand provided for exec surrounded by :',\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\tprocess.exit(1);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\r\n\t\treturn builder;\r\n\t},\r\n\thandler: async ({ expand, providers, schemaValidate, ...argv }) => {\r\n\t\tconst results = await loadVariablesFromProviders(providers, argv);\r\n\r\n\t\tlet env = merge(\r\n\t\t\t{ NODE_ENV: 'development' },\r\n\t\t\t...flatResults(results, argv.nestingDelimiter),\r\n\t\t);\r\n\r\n\t\tif (schemaValidate) {\r\n\t\t\tlet schema = {};\r\n\r\n\t\t\tfor (const {\r\n\t\t\t\thandler: { key },\r\n\t\t\t} of providers) {\r\n\t\t\t\tconst providerSchema = argv.schema?.[key];\r\n\r\n\t\t\t\tif (providerSchema) {\r\n\t\t\t\t\tschema = Object.assign(\r\n\t\t\t\t\t\tschema,\r\n\t\t\t\t\t\tflatSchema(providerSchema, '', argv.nestingDelimiter),\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst validator = createValidator({\r\n\t\t\t\tproperties: schema,\r\n\t\t\t\ttype: 'object',\r\n\t\t\t});\r\n\r\n\t\t\tif (!validator(env)) {\r\n\t\t\t\tlogger.error('schema validation failed', validator.errors);\r\n\r\n\t\t\t\tprocess.exit(1);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tenv = normalize(env, argv.nestingDelimiter, argv.arrayDescomposition);\r\n\t\tif (expand) {\r\n\t\t\tenv = interpolate(env, env);\r\n\t\t\targv.subcmd = interpolate(argv.subcmd, env);\r\n\t\t}\r\n\r\n\t\tlogger.debug('environment loaded:', env);\r\n\r\n\t\t// loads env vars to process.env\r\n\t\tfor (const varname in env) process.env[varname] = String(env[varname]);\r\n\r\n\t\tlogger.info(\r\n\t\t\t'executing command >',\r\n\t\t\tpc.bold(pc.yellow(argv.subcmd.join(' '))),\r\n\t\t);\r\n\r\n\t\tconst cmdProcess = argv.subcmd.join(' ');\r\n\r\n\t\tspawn(cmdProcess, {\r\n\t\t\tshell: true,\r\n\t\t\tstdio: 'inherit',\r\n\t\t}).on('exit', (code) => {\r\n\t\t\tif (code === 0 || code === null) {\r\n\t\t\t\tlogger.info('process finished successfully');\r\n\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlogger.error('process finished with error');\r\n\t\t\tprocess.exit(code);\r\n\t\t});\r\n\t},\r\n};\r\n"],"mappings":";;;;;;;;;;AA6BA,IAAa,IAAsD;CAClE,SAAS;CACT,UAAU;CACV,UAAU,OACT,EACE,QAAQ;EACR,gBAAgB;GACf,OAAO;GACP,SAAS;GACT,UAAU;GACV,MAAM;EACP;EACA,QAAQ;GACP,UAAU;GACV,MAAM;EACP;CACD,CAAC,EACA,QACA,sCACA,gGACD,EACC,QACA,uDACA,yGACD,EACC,QACA,gEACA,0EACD,EACC,OAAO,OAEH,EAAK,EAAE,WAAW,KAAK,CAAC,EAAK,WAChC,EAAO,MACN,qDACD,GAEA,QAAQ,KAAK,CAAC,IAGR,GACP,GAEK;CAER,SAAS,OAAO,EAAE,WAAQ,cAAW,mBAAgB,GAAG,QAAW;EAGlE,IAAI,IAAM,EACT,EAAE,UAAU,cAAc,GAC1B,GAAG,EAAY,MAJM,EAA2B,GAAW,CAAI,GAIvC,EAAK,gBAAgB,CAC9C;EAEA,IAAI,GAAgB;GACnB,IAAI,IAAS,CAAC;GAEd,KAAK,IAAM,EACV,SAAS,EAAE,cACP,GAAW;IACf,IAAM,IAAiB,EAAK,SAAS;IAErC,AAAI,MACH,IAAS,OAAO,OACf,GACA,EAAW,GAAgB,IAAI,EAAK,gBAAgB,CACrD;GAEF;GAEA,IAAM,IAAY,EAAgB;IACjC,YAAY;IACZ,MAAM;GACP,CAAC;GAED,AAAK,EAAU,CAAG,MACjB,EAAO,MAAM,4BAA4B,EAAU,MAAM,GAEzD,QAAQ,KAAK,CAAC;EAEhB;EAQA,AANA,IAAM,EAAU,GAAK,EAAK,kBAAkB,EAAK,mBAAmB,GAChE,MACH,IAAM,EAAY,GAAK,CAAG,GAC1B,EAAK,SAAS,EAAY,EAAK,QAAQ,CAAG,IAG3C,EAAO,MAAM,uBAAuB,CAAG;EAGvC,KAAK,IAAM,KAAW,GAAK,QAAQ,IAAI,KAAW,OAAO,EAAI,EAAQ;EASrE,AAPA,EAAO,KACN,uBACA,EAAG,KAAK,EAAG,OAAO,EAAK,OAAO,KAAK,GAAG,CAAC,CAAC,CACzC,GAIA,EAFmB,EAAK,OAAO,KAAK,GAE9B,GAAY;GACjB,OAAO;GACP,OAAO;EACR,CAAC,EAAE,GAAG,SAAS,MAAS;GACvB,IAAI,MAAS,KAAK,MAAS,MAAM;IAChC,EAAO,KAAK,+BAA+B;IAE3C;GACD;GAGA,AADA,EAAO,MAAM,6BAA6B,GAC1C,QAAQ,KAAK,CAAI;EAClB,CAAC;CACF;AACD"}
@@ -1,9 +1,15 @@
1
1
  import { CommandModule } from 'yargs';
2
- import { CommandArguments } from '../arguments';
2
+ import { CommandArguments } from '../arguments.js';
3
3
  export interface ExportCommandArguments extends CommandArguments {
4
- format: 'json' | 'dotenv';
4
+ format: 'dotenv' | 'json';
5
5
  uri: string;
6
6
  exportQuotes: boolean;
7
7
  }
8
+ /**
9
+ * Export command.
10
+ * Export environment variables to a file.
11
+ *
12
+ * @example [>_]: env export -e dev -m build
13
+ */
8
14
  export declare const exportCommand: CommandModule<any, ExportCommandArguments>;
9
15
  //# sourceMappingURL=export.command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"export.command.d.ts","sourceRoot":"","sources":["../../src/commands/export.command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAYhD,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC/D,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAE1B,GAAG,EAAE,MAAM,CAAC;IAEZ,YAAY,EAAE,OAAO,CAAC;CACtB;AAQD,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,GAAG,EAAE,sBAAsB,CA6EpE,CAAC"}
1
+ {"version":3,"file":"export.command.d.ts","sourceRoot":"","sources":["../../src/commands/export.command.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAWxD,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC/D,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAE1B,GAAG,EAAE,MAAM,CAAC;IAEZ,YAAY,EAAE,OAAO,CAAC;CACtB;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,GAAG,EAAE,sBAAsB,CAkFpE,CAAC"}