@calvear/env 2.10.6 → 3.0.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 (107) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +97 -113
  3. package/arguments.d.ts +15 -15
  4. package/arguments.d.ts.map +1 -1
  5. package/arguments.js +142 -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 +65 -81
  10. package/commands/env.command.js.map +1 -1
  11. package/commands/export.command.d.ts +9 -2
  12. package/commands/export.command.d.ts.map +1 -1
  13. package/commands/export.command.js +54 -56
  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 +21 -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 +21 -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 +17 -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 +88 -147
  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 +53 -33
  45. package/providers/app-settings.provider.d.ts +5 -3
  46. package/providers/app-settings.provider.d.ts.map +1 -1
  47. package/providers/app-settings.provider.js +36 -51
  48. package/providers/app-settings.provider.js.map +1 -1
  49. package/providers/index.d.ts +2 -2
  50. package/providers/index.d.ts.map +1 -1
  51. package/providers/index.js +18 -28
  52. package/providers/index.js.map +1 -1
  53. package/providers/local.provider.d.ts +5 -2
  54. package/providers/local.provider.d.ts.map +1 -1
  55. package/providers/local.provider.js +27 -40
  56. package/providers/local.provider.js.map +1 -1
  57. package/providers/package-json.provider.d.ts +5 -2
  58. package/providers/package-json.provider.d.ts.map +1 -1
  59. package/providers/package-json.provider.js +26 -28
  60. package/providers/package-json.provider.js.map +1 -1
  61. package/providers/secrets.provider.d.ts +5 -2
  62. package/providers/secrets.provider.d.ts.map +1 -1
  63. package/providers/secrets.provider.js +24 -33
  64. package/providers/secrets.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 +71 -4
  70. package/utils/command.util.d.ts.map +1 -1
  71. package/utils/command.util.js +60 -135
  72. package/utils/command.util.js.map +1 -1
  73. package/utils/index.d.ts +8 -6
  74. package/utils/index.d.ts.map +1 -1
  75. package/utils/index.js +9 -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 -29
  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 +29 -41
  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 -57
  91. package/utils/normalize.util.js.map +1 -1
  92. package/utils/schema.util.d.ts +62 -3
  93. package/utils/schema.util.d.ts.map +1 -1
  94. package/utils/schema.util.js +64 -92
  95. package/utils/schema.util.js.map +1 -1
  96. package/utils/ui.d.ts +14 -0
  97. package/utils/ui.d.ts.map +1 -0
  98. package/utils/ui.js +75 -0
  99. package/utils/ui.js.map +1 -0
  100. package/commands/index.js.map +0 -1
  101. package/index.js.map +0 -1
  102. package/interfaces/index.js +0 -18
  103. package/interfaces/index.js.map +0 -1
  104. package/interfaces/loader.interface.js +0 -3
  105. package/interfaces/loader.interface.js.map +0 -1
  106. package/tsconfig.build.tsbuildinfo +0 -1
  107. package/utils/index.js.map +0 -1
@@ -1,53 +1,38 @@
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.AppSettingsProvider = void 0;
7
- const chalk_1 = __importDefault(require("chalk"));
8
- const utils_1 = require("../utils");
9
- const KEY = 'app-settings';
10
- const APP_SETTINGS_DEFAULT = {
11
- '|DEFAULT|': {},
12
- '|MODE|': {},
13
- '|ENV|': {},
14
- '|LOCAL|': {}
15
- };
16
- exports.AppSettingsProvider = {
17
- key: KEY,
18
- builder: (builder) => {
19
- builder.options({
20
- envFile: {
21
- group: KEY,
22
- alias: 'ef',
23
- type: 'string',
24
- default: '[[root]]/appsettings.json',
25
- describe: 'Environment variables file path (non secrets)'
26
- },
27
- sectionPrefix: {
28
- group: KEY,
29
- alias: 'sp',
30
- type: 'string',
31
- default: '',
32
- describe: 'Prefix for env and modes in env file'
33
- }
34
- });
35
- },
36
- load: async ({ env, modes = [], envFile, sectionPrefix, ci }) => {
37
- const [appsettings = APP_SETTINGS_DEFAULT, wasFound] = await (0, utils_1.readJson)(envFile);
38
- if (!wasFound) {
39
- utils_1.logger.warn(`${chalk_1.default.blue(envFile)} not found`);
40
- utils_1.logger.debug(`creating default ${chalk_1.default.blue(envFile)} file`);
41
- await (0, utils_1.writeJson)(envFile, APP_SETTINGS_DEFAULT);
42
- }
43
- if (ci)
44
- appsettings['|LOCAL|'] = null;
45
- return [
46
- appsettings['|DEFAULT|'],
47
- appsettings['|ENV|']?.[`${sectionPrefix}${env}`],
48
- ...modes.map((mode) => appsettings['|MODE|']?.[`${sectionPrefix}${mode}`]),
49
- appsettings['|LOCAL|']?.[`${sectionPrefix}${env}`]
50
- ];
51
- }
1
+ import { readJson as e } from "../utils/json.util.js";
2
+ import { logger as t } from "../utils/logger.js";
3
+ import "../utils/index.js";
4
+ import n from "picocolors";
5
+ //#region src/providers/app-settings.provider.ts
6
+ var r = "app-settings", i = t.getSubLogger({ prefix: [n.bold(n.blue(`[${r}]`))] }), a = {
7
+ key: r,
8
+ builder: (e) => {
9
+ e.options({ envFile: {
10
+ alias: "ef",
11
+ default: "[[root]]/appsettings.json",
12
+ describe: "Environment variables file path (non secrets)",
13
+ group: r,
14
+ type: "string"
15
+ } });
16
+ },
17
+ load: async ({ ci: t, env: r, envFile: a, modes: o = [], root: s }) => {
18
+ let [c = {}, l] = await e(a);
19
+ l || i.warn(`${n.blue(a)} not found`);
20
+ let u = c["|DEFAULT|"] || c["|ENV|"] || c["|MODE|"] || c["|LOCAL|"], d = await Promise.all([
21
+ e(`${s}/appsettings.${r}.json`).then(([e]) => e),
22
+ e(`${s}/appsettings.${r}.local.json`).then(([e]) => t ? {} : e),
23
+ ...o.map((t) => e(`${s}/appsettings.${t}.json`).then(([e]) => e))
24
+ ]);
25
+ return t && (c["|LOCAL|"] = null), [
26
+ u ? {} : c,
27
+ c["|DEFAULT|"],
28
+ c["|ENV|"]?.[r],
29
+ ...o.map((e) => c["|MODE|"]?.[e]),
30
+ c["|LOCAL|"]?.[r],
31
+ ...d
32
+ ];
33
+ }
52
34
  };
35
+ //#endregion
36
+ export { a as AppSettingsProvider };
37
+
53
38
  //# sourceMappingURL=app-settings.provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-settings.provider.js","sourceRoot":"","sources":["../../src/providers/app-settings.provider.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,oCAAuD;AAEvD,MAAM,GAAG,GAAG,cAAc,CAAC;AAE3B,MAAM,oBAAoB,GAAG;IAC5B,WAAW,EAAE,EAAE;IACf,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;CACb,CAAC;AAUW,QAAA,mBAAmB,GAA6C;IAC5E,GAAG,EAAE,GAAG;IAER,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;QACpB,OAAO,CAAC,OAAO,CAAC;YACf,OAAO,EAAE;gBACR,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,2BAA2B;gBACpC,QAAQ,EAAE,+CAA+C;aACzD;YACD,aAAa,EAAE;gBACd,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,sCAAsC;aAChD;SACD,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE;QAC/D,MAAM,CAAC,WAAW,GAAG,oBAAoB,EAAE,QAAQ,CAAC,GAAG,MAAM,IAAA,gBAAQ,EACpE,OAAO,CACP,CAAC;QAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,cAAM,CAAC,IAAI,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAEhD,cAAM,CAAC,KAAK,CAAC,oBAAoB,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAE7D,MAAM,IAAA,iBAAS,EAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAChD,CAAC;QAGD,IAAI,EAAE;YAAE,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QAEtC,OAAO;YACN,WAAW,CAAC,WAAW,CAAC;YAExB,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,aAAa,GAAG,GAAG,EAAE,CAAC;YAEhD,GAAG,KAAK,CAAC,GAAG,CACX,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,aAAa,GAAG,IAAI,EAAE,CAAC,CAC5D;YAED,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,aAAa,GAAG,GAAG,EAAE,CAAC;SAClD,CAAC;IACH,CAAC;CACD,CAAC"}
1
+ {"version":3,"file":"app-settings.provider.js","names":[],"sources":["../../src/providers/app-settings.provider.ts"],"sourcesContent":["import pc from 'picocolors';\r\nimport type { CommandArguments } from '../arguments.js';\r\nimport type { EnvProvider } from '../interfaces/index.js';\r\nimport { logger as globalLogger, readJson } from '../utils/index.js';\r\n\r\nconst KEY = 'app-settings';\r\n\r\nconst logger = globalLogger.getSubLogger({\r\n\tprefix: [pc.bold(pc.blue(`[${KEY}]`))],\r\n});\r\n\r\ninterface AppSettingsCommandArguments extends CommandArguments {\r\n\tenvFile: string;\r\n}\r\n\r\n/**\r\n * Loads config from appsettings.json.\r\n */\r\nexport const AppSettingsProvider: EnvProvider<AppSettingsCommandArguments> = {\r\n\tkey: KEY,\r\n\r\n\tbuilder: (builder) => {\r\n\t\tbuilder.options({\r\n\t\t\tenvFile: {\r\n\t\t\t\talias: 'ef',\r\n\t\t\t\tdefault: '[[root]]/appsettings.json',\r\n\t\t\t\tdescribe: 'Environment variables file path (non secrets)',\r\n\t\t\t\tgroup: KEY,\r\n\t\t\t\ttype: 'string',\r\n\t\t\t},\r\n\t\t});\r\n\t},\r\n\r\n\tload: async ({ ci, env, envFile, modes = [], root }) => {\r\n\t\tconst [appsettings = {}, wasFound] = await readJson(envFile);\r\n\r\n\t\tif (!wasFound) logger.warn(`${pc.blue(envFile)} not found`);\r\n\r\n\t\tconst composite =\r\n\t\t\tappsettings['|DEFAULT|'] ||\r\n\t\t\tappsettings['|ENV|'] ||\r\n\t\t\tappsettings['|MODE|'] ||\r\n\t\t\tappsettings['|LOCAL|'];\r\n\r\n\t\tconst unitary = await Promise.all([\r\n\t\t\treadJson(`${root}/appsettings.${env}.json`).then(\r\n\t\t\t\t([settings]) => settings,\r\n\t\t\t),\r\n\t\t\treadJson(`${root}/appsettings.${env}.local.json`).then(\r\n\t\t\t\t([settings]) => (ci ? {} : settings),\r\n\t\t\t),\r\n\t\t\t...modes.map((mode) =>\r\n\t\t\t\treadJson(`${root}/appsettings.${mode}.json`).then(\r\n\t\t\t\t\t([settings]) => settings,\r\n\t\t\t\t),\r\n\t\t\t),\r\n\t\t]);\r\n\r\n\t\t// only load local in env load cmd\r\n\t\tif (ci) appsettings['|LOCAL|'] = null;\r\n\r\n\t\treturn [\r\n\t\t\tcomposite ? {} : appsettings,\r\n\r\n\t\t\tappsettings['|DEFAULT|'],\r\n\r\n\t\t\tappsettings['|ENV|']?.[env],\r\n\r\n\t\t\t...modes.map((mode) => appsettings['|MODE|']?.[mode]),\r\n\r\n\t\t\tappsettings['|LOCAL|']?.[env],\r\n\r\n\t\t\t...unitary,\r\n\t\t];\r\n\t},\r\n};\r\n"],"mappings":";;;;;AAKA,IAAM,IAAM,gBAEN,IAAS,EAAa,aAAa,EACxC,QAAQ,CAAC,EAAG,KAAK,EAAG,KAAK,IAAI,EAAI,EAAE,CAAC,CAAC,EACtC,CAAC,GASY,IAAgE;CAC5E,KAAK;CAEL,UAAU,MAAY;EACrB,EAAQ,QAAQ,EACf,SAAS;GACR,OAAO;GACP,SAAS;GACT,UAAU;GACV,OAAO;GACP,MAAM;EACP,EACD,CAAC;CACF;CAEA,MAAM,OAAO,EAAE,OAAI,QAAK,YAAS,WAAQ,CAAC,GAAG,cAAW;EACvD,IAAM,CAAC,IAAc,CAAC,GAAG,KAAY,MAAM,EAAS,CAAO;EAE3D,AAAK,KAAU,EAAO,KAAK,GAAG,EAAG,KAAK,CAAO,EAAE,WAAW;EAE1D,IAAM,IACL,EAAY,gBACZ,EAAY,YACZ,EAAY,aACZ,EAAY,YAEP,IAAU,MAAM,QAAQ,IAAI;GACjC,EAAS,GAAG,EAAK,eAAe,EAAI,MAAM,EAAE,MAC1C,CAAC,OAAc,CACjB;GACA,EAAS,GAAG,EAAK,eAAe,EAAI,YAAY,EAAE,MAChD,CAAC,OAAe,IAAK,CAAC,IAAI,CAC5B;GACA,GAAG,EAAM,KAAK,MACb,EAAS,GAAG,EAAK,eAAe,EAAK,MAAM,EAAE,MAC3C,CAAC,OAAc,CACjB,CACD;EACD,CAAC;EAKD,OAFI,MAAI,EAAY,aAAa,OAE1B;GACN,IAAY,CAAC,IAAI;GAEjB,EAAY;GAEZ,EAAY,WAAW;GAEvB,GAAG,EAAM,KAAK,MAAS,EAAY,YAAY,EAAK;GAEpD,EAAY,aAAa;GAEzB,GAAG;EACJ;CACD;AACD"}
@@ -1,7 +1,7 @@
1
- import { EnvProvider } from '../interfaces';
1
+ import { EnvProvider } from '../interfaces/index.js';
2
2
  declare const IntegratedProviders: Record<string, EnvProvider<any, any>>;
3
3
  declare const IntegratedProviderConfig: {
4
4
  path: string;
5
5
  }[];
6
- export { IntegratedProviders, IntegratedProviderConfig };
6
+ export { IntegratedProviderConfig, IntegratedProviders };
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,QAAA,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAK9D,CAAC;AAEF,QAAA,MAAM,wBAAwB;;GAa7B,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAM1D,QAAA,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAK9D,CAAC;AAKF,QAAA,MAAM,wBAAwB;;GAa7B,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,CAAC"}
@@ -1,30 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IntegratedProviderConfig = exports.IntegratedProviders = void 0;
4
- const app_settings_provider_1 = require("./app-settings.provider");
5
- const secrets_provider_1 = require("./secrets.provider");
6
- const package_json_provider_1 = require("./package-json.provider");
7
- const local_provider_1 = require("./local.provider");
8
- const IntegratedProviders = {
9
- [package_json_provider_1.PackageJsonProvider.key]: package_json_provider_1.PackageJsonProvider,
10
- [app_settings_provider_1.AppSettingsProvider.key]: app_settings_provider_1.AppSettingsProvider,
11
- [secrets_provider_1.SecretsProvider.key]: secrets_provider_1.SecretsProvider,
12
- [local_provider_1.LocalProvider.key]: local_provider_1.LocalProvider
13
- };
14
- exports.IntegratedProviders = IntegratedProviders;
15
- const IntegratedProviderConfig = [
16
- {
17
- path: package_json_provider_1.PackageJsonProvider.key
18
- },
19
- {
20
- path: app_settings_provider_1.AppSettingsProvider.key
21
- },
22
- {
23
- path: secrets_provider_1.SecretsProvider.key
24
- },
25
- {
26
- path: local_provider_1.LocalProvider.key
27
- }
1
+ import { AppSettingsProvider as e } from "./app-settings.provider.js";
2
+ import { LocalProvider as t } from "./local.provider.js";
3
+ import { PackageJsonProvider as n } from "./package-json.provider.js";
4
+ import { SecretsProvider as r } from "./secrets.provider.js";
5
+ //#region src/providers/index.ts
6
+ var i = {
7
+ [e.key]: e,
8
+ [t.key]: t,
9
+ [n.key]: n,
10
+ [r.key]: r
11
+ }, a = [
12
+ { path: n.key },
13
+ { path: e.key },
14
+ { path: r.key },
15
+ { path: t.key }
28
16
  ];
29
- exports.IntegratedProviderConfig = IntegratedProviderConfig;
17
+ //#endregion
18
+ export { a as IntegratedProviderConfig, i as IntegratedProviders };
19
+
30
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":";;;AACA,mEAA8D;AAC9D,yDAAqD;AACrD,mEAA8D;AAC9D,qDAAiD;AAEjD,MAAM,mBAAmB,GAA0C;IAClE,CAAC,2CAAmB,CAAC,GAAG,CAAC,EAAE,2CAAmB;IAC9C,CAAC,2CAAmB,CAAC,GAAG,CAAC,EAAE,2CAAmB;IAC9C,CAAC,kCAAe,CAAC,GAAG,CAAC,EAAE,kCAAe;IACtC,CAAC,8BAAa,CAAC,GAAG,CAAC,EAAE,8BAAa;CAClC,CAAC;AAiBO,kDAAmB;AAf5B,MAAM,wBAAwB,GAAG;IAChC;QACC,IAAI,EAAE,2CAAmB,CAAC,GAAG;KAC7B;IACD;QACC,IAAI,EAAE,2CAAmB,CAAC,GAAG;KAC7B;IACD;QACC,IAAI,EAAE,kCAAe,CAAC,GAAG;KACzB;IACD;QACC,IAAI,EAAE,8BAAa,CAAC,GAAG;KACvB;CACD,CAAC;AAE4B,4DAAwB"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/providers/index.ts"],"sourcesContent":["import type { EnvProvider } from '../interfaces/index.js';\nimport { AppSettingsProvider } from './app-settings.provider.js';\nimport { LocalProvider } from './local.provider.js';\nimport { PackageJsonProvider } from './package-json.provider.js';\nimport { SecretsProvider } from './secrets.provider.js';\n\nconst IntegratedProviders: Record<string, EnvProvider<any, any>> = {\n\t[AppSettingsProvider.key]: AppSettingsProvider,\n\t[LocalProvider.key]: LocalProvider,\n\t[PackageJsonProvider.key]: PackageJsonProvider,\n\t[SecretsProvider.key]: SecretsProvider,\n};\n\n// order defines provider load + merge precedence (later entries win):\n// package-json (base info) < app-settings < secrets < local (highest).\n// Do NOT alphabetize this array — the sequence is semantic.\nconst IntegratedProviderConfig = [\n\t{\n\t\tpath: PackageJsonProvider.key,\n\t},\n\t{\n\t\tpath: AppSettingsProvider.key,\n\t},\n\t{\n\t\tpath: SecretsProvider.key,\n\t},\n\t{\n\t\tpath: LocalProvider.key,\n\t},\n];\n\nexport { IntegratedProviderConfig, IntegratedProviders };\n"],"mappings":";;;;;AAMA,IAAM,IAA6D;EACjE,EAAoB,MAAM;EAC1B,EAAc,MAAM;EACpB,EAAoB,MAAM;EAC1B,EAAgB,MAAM;AACxB,GAKM,IAA2B;CAChC,EACC,MAAM,EAAoB,IAC3B;CACA,EACC,MAAM,EAAoB,IAC3B;CACA,EACC,MAAM,EAAgB,IACvB;CACA,EACC,MAAM,EAAc,IACrB;AACD"}
@@ -1,8 +1,11 @@
1
- import { CommandArguments } from '../arguments';
2
- import { EnvProvider } from '../interfaces';
1
+ import { CommandArguments } from '../arguments.js';
2
+ import { EnvProvider } from '../interfaces/index.js';
3
3
  interface LocalCommandArguments extends CommandArguments {
4
4
  localFile: string;
5
5
  }
6
+ /**
7
+ * Loads local variables from env files in env folder.
8
+ */
6
9
  export declare const LocalProvider: EnvProvider<LocalCommandArguments>;
7
10
  export {};
8
11
  //# sourceMappingURL=local.provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"local.provider.d.ts","sourceRoot":"","sources":["../../src/providers/local.provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,UAAU,qBAAsB,SAAQ,gBAAgB;IACvD,SAAS,EAAE,MAAM,CAAC;CAClB;AAKD,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,qBAAqB,CAmC5D,CAAC"}
1
+ {"version":3,"file":"local.provider.d.ts","sourceRoot":"","sources":["../../src/providers/local.provider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAS1D,UAAU,qBAAsB,SAAQ,gBAAgB;IACvD,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,qBAAqB,CAmC5D,CAAC"}
@@ -1,42 +1,29 @@
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.LocalProvider = void 0;
7
- const chalk_1 = __importDefault(require("chalk"));
8
- const fs_1 = require("fs");
9
- const utils_1 = require("../utils");
10
- const KEY = 'local';
11
- const logger = utils_1.logger.getChildLogger({
12
- prefix: [chalk_1.default.bold.blue(`[${KEY}]`)]
13
- });
14
- exports.LocalProvider = {
15
- key: KEY,
16
- builder: (builder) => {
17
- builder.options({
18
- localFile: {
19
- group: KEY,
20
- alias: 'lf',
21
- type: 'string',
22
- default: '[[root]]/[[env]].local.env.json',
23
- describe: 'Local secret variables file path'
24
- }
25
- });
26
- },
27
- load: async ({ env, localFile, ci }) => {
28
- if (ci)
29
- return [];
30
- if (!env) {
31
- logger.silly('no env, provider skipped');
32
- return [];
33
- }
34
- if (!(0, fs_1.existsSync)(localFile)) {
35
- await (0, utils_1.writeJson)(localFile, {});
36
- return [];
37
- }
38
- const [vars] = await (0, utils_1.readJson)(localFile);
39
- return [vars];
40
- }
1
+ import { readJson as e, writeJson as t } from "../utils/json.util.js";
2
+ import { logger as n } from "../utils/logger.js";
3
+ import "../utils/index.js";
4
+ import r from "picocolors";
5
+ import { existsSync as i } from "node:fs";
6
+ //#region src/providers/local.provider.ts
7
+ var a = "local", o = n.getSubLogger({ prefix: [r.bold(r.blue(`[${a}]`))] }), s = {
8
+ key: a,
9
+ builder: (e) => {
10
+ e.options({ localFile: {
11
+ alias: "lf",
12
+ default: "[[root]]/[[env]].local.env.json",
13
+ describe: "Local secret variables file path",
14
+ group: a,
15
+ type: "string"
16
+ } });
17
+ },
18
+ load: async ({ ci: n, env: r, localFile: a }) => {
19
+ if (n) return [];
20
+ if (!r) return o.silly("no env, so skipping provider"), [];
21
+ if (!i(a)) return await t(a, {}), [];
22
+ let [s] = await e(a);
23
+ return [s];
24
+ }
41
25
  };
26
+ //#endregion
27
+ export { s as LocalProvider };
28
+
42
29
  //# sourceMappingURL=local.provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"local.provider.js","sourceRoot":"","sources":["../../src/providers/local.provider.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,2BAAgC;AAGhC,oCAAuE;AAEvE,MAAM,GAAG,GAAG,OAAO,CAAC;AAEpB,MAAM,MAAM,GAAG,cAAY,CAAC,cAAc,CAAC;IAC1C,MAAM,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;CACrC,CAAC,CAAC;AASU,QAAA,aAAa,GAAuC;IAChE,GAAG,EAAE,GAAG;IAER,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;QACpB,OAAO,CAAC,OAAO,CAAC;YACf,SAAS,EAAE;gBACV,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,iCAAiC;gBAC1C,QAAQ,EAAE,kCAAkC;aAC5C;SACD,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE;QAEtC,IAAI,EAAE;YAAE,OAAO,EAAE,CAAC;QAElB,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAEzC,OAAO,EAAE,CAAC;QACX,CAAC;QAED,IAAI,CAAC,IAAA,eAAU,EAAC,SAAS,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAA,iBAAS,EAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAE/B,OAAO,EAAE,CAAC;QACX,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAA,gBAAQ,EAAC,SAAS,CAAC,CAAC;QAEzC,OAAO,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;CACD,CAAC"}
1
+ {"version":3,"file":"local.provider.js","names":[],"sources":["../../src/providers/local.provider.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\r\nimport pc from 'picocolors';\r\nimport type { CommandArguments } from '../arguments.js';\r\nimport type { EnvProvider } from '../interfaces/index.js';\r\nimport { logger as globalLogger, readJson, writeJson } from '../utils/index.js';\r\n\r\nconst KEY = 'local';\r\n\r\nconst logger = globalLogger.getSubLogger({\r\n\tprefix: [pc.bold(pc.blue(`[${KEY}]`))],\r\n});\r\n\r\ninterface LocalCommandArguments extends CommandArguments {\r\n\tlocalFile: string;\r\n}\r\n\r\n/**\r\n * Loads local variables from env files in env folder.\r\n */\r\nexport const LocalProvider: EnvProvider<LocalCommandArguments> = {\r\n\tkey: KEY,\r\n\r\n\tbuilder: (builder) => {\r\n\t\tbuilder.options({\r\n\t\t\tlocalFile: {\r\n\t\t\t\talias: 'lf',\r\n\t\t\t\tdefault: '[[root]]/[[env]].local.env.json',\r\n\t\t\t\tdescribe: 'Local secret variables file path',\r\n\t\t\t\tgroup: KEY,\r\n\t\t\t\ttype: 'string',\r\n\t\t\t},\r\n\t\t});\r\n\t},\r\n\r\n\tload: async ({ ci, env, localFile }) => {\r\n\t\t// ci mode doesn't load local vars\r\n\t\tif (ci) return [];\r\n\r\n\t\tif (!env) {\r\n\t\t\tlogger.silly('no env, so skipping provider');\r\n\r\n\t\t\treturn [];\r\n\t\t}\r\n\r\n\t\tif (!existsSync(localFile)) {\r\n\t\t\tawait writeJson(localFile, {});\r\n\r\n\t\t\treturn [];\r\n\t\t}\r\n\r\n\t\tconst [vars] = await readJson(localFile);\r\n\r\n\t\treturn [vars];\r\n\t},\r\n};\r\n"],"mappings":";;;;;;AAMA,IAAM,IAAM,SAEN,IAAS,EAAa,aAAa,EACxC,QAAQ,CAAC,EAAG,KAAK,EAAG,KAAK,IAAI,EAAI,EAAE,CAAC,CAAC,EACtC,CAAC,GASY,IAAoD;CAChE,KAAK;CAEL,UAAU,MAAY;EACrB,EAAQ,QAAQ,EACf,WAAW;GACV,OAAO;GACP,SAAS;GACT,UAAU;GACV,OAAO;GACP,MAAM;EACP,EACD,CAAC;CACF;CAEA,MAAM,OAAO,EAAE,OAAI,QAAK,mBAAgB;EAEvC,IAAI,GAAI,OAAO,CAAC;EAEhB,IAAI,CAAC,GAGJ,OAFA,EAAO,MAAM,8BAA8B,GAEpC,CAAC;EAGT,IAAI,CAAC,EAAW,CAAS,GAGxB,OAFA,MAAM,EAAU,GAAW,CAAC,CAAC,GAEtB,CAAC;EAGT,IAAM,CAAC,KAAQ,MAAM,EAAS,CAAS;EAEvC,OAAO,CAAC,CAAI;CACb;AACD"}
@@ -1,8 +1,11 @@
1
- import { CommandArguments } from '../arguments';
2
- import { EnvProvider } from '../interfaces';
1
+ import { CommandArguments } from '../arguments.js';
2
+ import { EnvProvider } from '../interfaces/index.js';
3
3
  interface PackageJsonCommandArguments extends CommandArguments {
4
4
  packageInfoPrefix: string;
5
5
  }
6
+ /**
7
+ * Loads project info from package.json.
8
+ */
6
9
  export declare const PackageJsonProvider: EnvProvider<PackageJsonCommandArguments>;
7
10
  export {};
8
11
  //# sourceMappingURL=package-json.provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-json.provider.d.ts","sourceRoot":"","sources":["../../src/providers/package-json.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,UAAU,2BAA4B,SAAQ,gBAAgB;IAC7D,iBAAiB,EAAE,MAAM,CAAC;CAC1B;AAKD,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,2BAA2B,CA4BxE,CAAC"}
1
+ {"version":3,"file":"package-json.provider.d.ts","sourceRoot":"","sources":["../../src/providers/package-json.provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAI1D,UAAU,2BAA4B,SAAQ,gBAAgB;IAC7D,iBAAiB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,2BAA2B,CA6BxE,CAAC"}
@@ -1,30 +1,28 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PackageJsonProvider = void 0;
4
- const KEY = 'package-json';
5
- exports.PackageJsonProvider = {
6
- key: KEY,
7
- builder: (builder) => {
8
- builder.options({
9
- packageInfoPrefix: {
10
- group: KEY,
11
- alias: 'vp',
12
- type: 'string',
13
- default: '',
14
- describe: 'Prefix for loaded variables'
15
- }
16
- });
17
- },
18
- load: ({ env = 'development', projectInfo, packageInfoPrefix }) => {
19
- const { version, project, name, title, description } = projectInfo;
20
- return {
21
- [`${packageInfoPrefix}ENV`]: env,
22
- [`${packageInfoPrefix}VERSION`]: version,
23
- [`${packageInfoPrefix}PROJECT`]: project,
24
- [`${packageInfoPrefix}NAME`]: name,
25
- [`${packageInfoPrefix}TITLE`]: title,
26
- [`${packageInfoPrefix}DESCRIPTION`]: description
27
- };
28
- }
1
+ //#region src/providers/package-json.provider.ts
2
+ var e = "package-json", t = {
3
+ key: e,
4
+ builder: (t) => {
5
+ t.options({ packageInfoPrefix: {
6
+ alias: "vp",
7
+ default: "",
8
+ group: e,
9
+ type: "string",
10
+ describe: "Prefix for loaded variables using package-json provider"
11
+ } });
12
+ },
13
+ load: ({ env: e = "development", packageInfoPrefix: t, projectInfo: n }) => {
14
+ let { description: r, name: i, project: a, title: o, version: s } = n;
15
+ return {
16
+ [`${t}ENV`]: e ?? null,
17
+ [`${t}DESCRIPTION`]: r ?? null,
18
+ [`${t}NAME`]: i ?? null,
19
+ [`${t}PROJECT`]: a ?? null,
20
+ [`${t}TITLE`]: o ?? null,
21
+ [`${t}VERSION`]: s ?? null
22
+ };
23
+ }
29
24
  };
25
+ //#endregion
26
+ export { t as PackageJsonProvider };
27
+
30
28
  //# sourceMappingURL=package-json.provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-json.provider.js","sourceRoot":"","sources":["../../src/providers/package-json.provider.ts"],"names":[],"mappings":";;;AAGA,MAAM,GAAG,GAAG,cAAc,CAAC;AASd,QAAA,mBAAmB,GAA6C;IAC5E,GAAG,EAAE,GAAG;IAER,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;QACpB,OAAO,CAAC,OAAO,CAAC;YACf,iBAAiB,EAAE;gBAClB,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,6BAA6B;aACvC;SACD,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,EAAE,EAAE;QACjE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC;QAEnE,OAAO;YACN,CAAC,GAAG,iBAAiB,KAAK,CAAC,EAAE,GAAG;YAEhC,CAAC,GAAG,iBAAiB,SAAS,CAAC,EAAE,OAAO;YACxC,CAAC,GAAG,iBAAiB,SAAS,CAAC,EAAE,OAAO;YACxC,CAAC,GAAG,iBAAiB,MAAM,CAAC,EAAE,IAAI;YAClC,CAAC,GAAG,iBAAiB,OAAO,CAAC,EAAE,KAAK;YACpC,CAAC,GAAG,iBAAiB,aAAa,CAAC,EAAE,WAAW;SAChD,CAAC;IACH,CAAC;CACD,CAAC"}
1
+ {"version":3,"file":"package-json.provider.js","names":[],"sources":["../../src/providers/package-json.provider.ts"],"sourcesContent":["import type { CommandArguments } from '../arguments.js';\r\nimport type { EnvProvider } from '../interfaces/index.js';\r\n\r\nconst KEY = 'package-json';\r\n\r\ninterface PackageJsonCommandArguments extends CommandArguments {\r\n\tpackageInfoPrefix: string;\r\n}\r\n\r\n/**\r\n * Loads project info from package.json.\r\n */\r\nexport const PackageJsonProvider: EnvProvider<PackageJsonCommandArguments> = {\r\n\tkey: KEY,\r\n\r\n\tbuilder: (builder) => {\r\n\t\tbuilder.options({\r\n\t\t\tpackageInfoPrefix: {\r\n\t\t\t\talias: 'vp',\r\n\t\t\t\tdefault: '',\r\n\t\t\t\tgroup: KEY,\r\n\t\t\t\ttype: 'string',\r\n\t\t\t\tdescribe:\r\n\t\t\t\t\t'Prefix for loaded variables using package-json provider',\r\n\t\t\t},\r\n\t\t});\r\n\t},\r\n\r\n\tload: ({ env = 'development', packageInfoPrefix, projectInfo }) => {\r\n\t\tconst { description, name, project, title, version } = projectInfo;\r\n\r\n\t\treturn {\r\n\t\t\t[`${packageInfoPrefix}ENV`]: env ?? null,\r\n\r\n\t\t\t[`${packageInfoPrefix}DESCRIPTION`]: description ?? null,\r\n\t\t\t[`${packageInfoPrefix}NAME`]: name ?? null,\r\n\t\t\t[`${packageInfoPrefix}PROJECT`]: project ?? null,\r\n\t\t\t[`${packageInfoPrefix}TITLE`]: title ?? null,\r\n\t\t\t[`${packageInfoPrefix}VERSION`]: version ?? null,\r\n\t\t};\r\n\t},\r\n};\r\n"],"mappings":";AAGA,IAAM,IAAM,gBASC,IAAgE;CAC5E,KAAK;CAEL,UAAU,MAAY;EACrB,EAAQ,QAAQ,EACf,mBAAmB;GAClB,OAAO;GACP,SAAS;GACT,OAAO;GACP,MAAM;GACN,UACC;EACF,EACD,CAAC;CACF;CAEA,OAAO,EAAE,SAAM,eAAe,sBAAmB,qBAAkB;EAClE,IAAM,EAAE,gBAAa,SAAM,YAAS,UAAO,eAAY;EAEvD,OAAO;IACL,GAAG,EAAkB,OAAO,KAAO;IAEnC,GAAG,EAAkB,eAAe,KAAe;IACnD,GAAG,EAAkB,QAAQ,KAAQ;IACrC,GAAG,EAAkB,WAAW,KAAW;IAC3C,GAAG,EAAkB,SAAS,KAAS;IACvC,GAAG,EAAkB,WAAW,KAAW;EAC7C;CACD;AACD"}
@@ -1,8 +1,11 @@
1
- import { CommandArguments } from '../arguments';
2
- import { EnvProvider } from '../interfaces';
1
+ import { CommandArguments } from '../arguments.js';
2
+ import { EnvProvider } from '../interfaces/index.js';
3
3
  interface SecretsCommandArguments extends CommandArguments {
4
4
  secretsFile: string;
5
5
  }
6
+ /**
7
+ * Loads secrets from env files in env folder.
8
+ */
6
9
  export declare const SecretsProvider: EnvProvider<SecretsCommandArguments>;
7
10
  export {};
8
11
  //# sourceMappingURL=secrets.provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"secrets.provider.d.ts","sourceRoot":"","sources":["../../src/providers/secrets.provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,UAAU,uBAAwB,SAAQ,gBAAgB;IACzD,WAAW,EAAE,MAAM,CAAC;CACpB;AAKD,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,uBAAuB,CA0BhE,CAAC"}
1
+ {"version":3,"file":"secrets.provider.d.ts","sourceRoot":"","sources":["../../src/providers/secrets.provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAS1D,UAAU,uBAAwB,SAAQ,gBAAgB;IACzD,WAAW,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,uBAAuB,CA0BhE,CAAC"}
@@ -1,35 +1,26 @@
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.SecretsProvider = void 0;
7
- const chalk_1 = __importDefault(require("chalk"));
8
- const utils_1 = require("../utils");
9
- const KEY = 'secrets';
10
- const logger = utils_1.logger.getChildLogger({
11
- prefix: [chalk_1.default.bold.blue(`[${KEY}]`)]
12
- });
13
- exports.SecretsProvider = {
14
- key: KEY,
15
- builder: (builder) => {
16
- builder.options({
17
- secretsFile: {
18
- group: KEY,
19
- alias: 'sf',
20
- type: 'string',
21
- default: '[[root]]/[[env]].env.json',
22
- describe: 'Secret variables file path'
23
- }
24
- });
25
- },
26
- load: async ({ env, secretsFile }) => {
27
- if (!env) {
28
- logger.silly('no env, provider skipped');
29
- return [];
30
- }
31
- const [secrets] = await (0, utils_1.readJson)(secretsFile);
32
- return [secrets];
33
- }
1
+ import { readJson as e } from "../utils/json.util.js";
2
+ import { logger as t } from "../utils/logger.js";
3
+ import "../utils/index.js";
4
+ import n from "picocolors";
5
+ //#region src/providers/secrets.provider.ts
6
+ var r = "secrets", i = t.getSubLogger({ prefix: [n.bold(n.blue(`[${r}]`))] }), a = {
7
+ key: r,
8
+ builder: (e) => {
9
+ e.options({ secretsFile: {
10
+ alias: "sf",
11
+ default: "[[root]]/[[env]].env.json",
12
+ describe: "Secret variables file path",
13
+ group: r,
14
+ type: "string"
15
+ } });
16
+ },
17
+ load: async ({ env: t, secretsFile: n }) => {
18
+ if (!t) return i.silly("no env, provider skipped"), [];
19
+ let [r] = await e(n);
20
+ return [r];
21
+ }
34
22
  };
23
+ //#endregion
24
+ export { a as SecretsProvider };
25
+
35
26
  //# sourceMappingURL=secrets.provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"secrets.provider.js","sourceRoot":"","sources":["../../src/providers/secrets.provider.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,oCAA4D;AAE5D,MAAM,GAAG,GAAG,SAAS,CAAC;AAEtB,MAAM,MAAM,GAAG,cAAY,CAAC,cAAc,CAAC;IAC1C,MAAM,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;CACrC,CAAC,CAAC;AASU,QAAA,eAAe,GAAyC;IACpE,GAAG,EAAE,GAAG;IAER,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;QACpB,OAAO,CAAC,OAAO,CAAC;YACf,WAAW,EAAE;gBACZ,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,2BAA2B;gBACpC,QAAQ,EAAE,4BAA4B;aACtC;SACD,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE;QACpC,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAEzC,OAAO,EAAE,CAAC;QACX,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,IAAA,gBAAQ,EAAC,WAAW,CAAC,CAAC;QAE9C,OAAO,CAAC,OAAO,CAAC,CAAC;IAClB,CAAC;CACD,CAAC"}
1
+ {"version":3,"file":"secrets.provider.js","names":[],"sources":["../../src/providers/secrets.provider.ts"],"sourcesContent":["import pc from 'picocolors';\nimport type { CommandArguments } from '../arguments.js';\nimport type { EnvProvider } from '../interfaces/index.js';\nimport { logger as globalLogger, readJson } from '../utils/index.js';\n\nconst KEY = 'secrets';\n\nconst logger = globalLogger.getSubLogger({\n\tprefix: [pc.bold(pc.blue(`[${KEY}]`))],\n});\n\ninterface SecretsCommandArguments extends CommandArguments {\n\tsecretsFile: string;\n}\n\n/**\n * Loads secrets from env files in env folder.\n */\nexport const SecretsProvider: EnvProvider<SecretsCommandArguments> = {\n\tkey: KEY,\n\n\tbuilder: (builder) => {\n\t\tbuilder.options({\n\t\t\tsecretsFile: {\n\t\t\t\talias: 'sf',\n\t\t\t\tdefault: '[[root]]/[[env]].env.json',\n\t\t\t\tdescribe: 'Secret variables file path',\n\t\t\t\tgroup: KEY,\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t});\n\t},\n\n\tload: async ({ env, secretsFile }) => {\n\t\tif (!env) {\n\t\t\tlogger.silly('no env, provider skipped');\n\n\t\t\treturn [];\n\t\t}\n\n\t\tconst [secrets] = await readJson(secretsFile);\n\n\t\treturn [secrets];\n\t},\n};\n"],"mappings":";;;;;AAKA,IAAM,IAAM,WAEN,IAAS,EAAa,aAAa,EACxC,QAAQ,CAAC,EAAG,KAAK,EAAG,KAAK,IAAI,EAAI,EAAE,CAAC,CAAC,EACtC,CAAC,GASY,IAAwD;CACpE,KAAK;CAEL,UAAU,MAAY;EACrB,EAAQ,QAAQ,EACf,aAAa;GACZ,OAAO;GACP,SAAS;GACT,UAAU;GACV,OAAO;GACP,MAAM;EACP,EACD,CAAC;CACF;CAEA,MAAM,OAAO,EAAE,QAAK,qBAAkB;EACrC,IAAI,CAAC,GAGJ,OAFA,EAAO,MAAM,0BAA0B,GAEhC,CAAC;EAGT,IAAM,CAAC,KAAW,MAAM,EAAS,CAAW;EAE5C,OAAO,CAAC,CAAO;CAChB;AACD"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Recombines argv tokens so single-quoted, space-containing argument values
3
+ * survive shell splitting. Mirrors the original main.ts pre-processing as a
4
+ * pure, testable function.
5
+ *
6
+ * @param argv raw process.argv
7
+ * @returns normalized argv (already sliced past node + script path)
8
+ */
9
+ export declare function normalizeRawArgv(argv: string[]): string[];
10
+ //# sourceMappingURL=argv.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"argv.util.d.ts","sourceRoot":"","sources":["../../src/utils/argv.util.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CA2BzD"}
@@ -0,0 +1,24 @@
1
+ //#region src/utils/argv.util.ts
2
+ function e(e) {
3
+ let t = [], n = "";
4
+ for (let r of e) {
5
+ if (r.includes(" ") && (r = `"${r}"`), r.at(-1) === "'") {
6
+ t.push(`${n} ${r}`.replaceAll("'", "\"")), n = "";
7
+ continue;
8
+ }
9
+ if (r[0] === "'") {
10
+ n += r;
11
+ continue;
12
+ }
13
+ if (n) {
14
+ n += ` ${r}`;
15
+ continue;
16
+ }
17
+ t.push(r);
18
+ }
19
+ return t.slice(2);
20
+ }
21
+ //#endregion
22
+ export { e as normalizeRawArgv };
23
+
24
+ //# sourceMappingURL=argv.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"argv.util.js","names":[],"sources":["../../src/utils/argv.util.ts"],"sourcesContent":["/**\n * Recombines argv tokens so single-quoted, space-containing argument values\n * survive shell splitting. Mirrors the original main.ts pre-processing as a\n * pure, testable function.\n *\n * @param argv raw process.argv\n * @returns normalized argv (already sliced past node + script path)\n */\nexport function normalizeRawArgv(argv: string[]): string[] {\n\tconst cmdArgs: string[] = [];\n\tlet composite = '';\n\n\tfor (let arg of argv) {\n\t\tif (arg.includes(' ')) arg = `\"${arg}\"`;\n\n\t\tif (arg.at(-1) === \"'\") {\n\t\t\tcmdArgs.push(`${composite} ${arg}`.replaceAll(\"'\", '\"'));\n\t\t\tcomposite = '';\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (arg[0] === \"'\") {\n\t\t\tcomposite += arg;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (composite) {\n\t\t\tcomposite += ` ${arg}`;\n\t\t\tcontinue;\n\t\t}\n\n\t\tcmdArgs.push(arg);\n\t}\n\n\treturn cmdArgs.slice(2);\n}\n"],"mappings":";AAQA,SAAgB,EAAiB,GAA0B;CAC1D,IAAM,IAAoB,CAAC,GACvB,IAAY;CAEhB,KAAK,IAAI,KAAO,GAAM;EAGrB,IAFI,EAAI,SAAS,GAAG,MAAG,IAAM,IAAI,EAAI,KAEjC,EAAI,GAAG,EAAE,MAAM,KAAK;GAEvB,AADA,EAAQ,KAAK,GAAG,EAAU,GAAG,IAAM,WAAW,KAAK,IAAG,CAAC,GACvD,IAAY;GACZ;EACD;EAEA,IAAI,EAAI,OAAO,KAAK;GACnB,KAAa;GACb;EACD;EAEA,IAAI,GAAW;GACd,KAAa,IAAI;GACjB;EACD;EAEA,EAAQ,KAAK,CAAG;CACjB;CAEA,OAAO,EAAQ,MAAM,CAAC;AACvB"}
@@ -1,13 +1,80 @@
1
1
  import { Arguments } from 'yargs';
2
- import { CommandArguments } from 'arguments';
3
- import { EnvCommandArguments } from 'commands/env.command';
4
- import { EnvProviderConfig, EnvProviderResult } from '../interfaces';
2
+ import { CommandArguments } from '../arguments.js';
3
+ import { EnvCommandArguments } from '../commands/env.command.js';
4
+ import { EnvProviderConfig, EnvProviderResult } from '../interfaces/index.js';
5
+ /**
6
+ * Injects config to command arguments from file.
7
+ *
8
+ * @param {Record<string, unknown>} argv
9
+ * @param {[string, string]} delimiters
10
+ */
5
11
  export declare function loadConfigFile(argv: Record<string, unknown>, delimiters: [string, string]): Promise<void>;
12
+ /**
13
+ * Extracts subcommand from command line parameters.
14
+ *
15
+ * @export
16
+ * @param {string[]} rawArgv process.argv.slice(2)
17
+ * @param {[string, string]} delimiters
18
+ *
19
+ * @returns {string[]} subcommand for wrap if exists
20
+ */
6
21
  export declare function getSubcommand(rawArgv: string[], delimiters: [string, string]): string[];
22
+ /**
23
+ * Loads providers JSON schema from file.
24
+ *
25
+ * @param {Record<string, unknown>} argv
26
+ * @param {[string, string]} delimiters
27
+ *
28
+ * @returns {Promise<Record<string, unknown>>}
29
+ */
7
30
  export declare function loadSchemaFile(argv: Record<string, unknown>, delimiters: [string, string]): Promise<Record<string, unknown> | undefined>;
31
+ /**
32
+ * Reads project package.json.
33
+ *
34
+ * @export
35
+ * @returns {Promise<Record<string, unknown>> | never}
36
+ */
8
37
  export declare function loadProjectInfo(relativePath?: string): Promise<Record<string, unknown>>;
38
+ /**
39
+ * Executes load functions from provider handlers.
40
+ *
41
+ * @param {EnvProviderConfig[]} providers
42
+ * @param {Partial<Arguments<EnvCommandArguments>>} argv
43
+ *
44
+ * @returns {EnvProviderResult[]}
45
+ */
9
46
  export declare function loadVariablesFromProviders(providers: EnvProviderConfig[], argv: Partial<Arguments<EnvCommandArguments>>): Promise<EnvProviderResult[]>;
47
+ /**
48
+ * Flattern environment provider results.
49
+ *
50
+ * @param {EnvProviderResult[]} results
51
+ * @param {Partial<Arguments<EnvCommandArguments>>} argv
52
+ *
53
+ * @throws {Error} on schema validation failed
54
+ *
55
+ * @returns {EnvProviderResult[]} flatten results
56
+ */
10
57
  export declare function flatResults(results: EnvProviderResult[], nestingDelimiter?: string): EnvProviderResult[] | never;
11
- export declare function flatAndValidateResults(results: EnvProviderResult[], argv: Partial<Arguments<EnvCommandArguments>>): EnvProviderResult[] | never;
58
+ /**
59
+ * Flattern and validates environment provider results.
60
+ *
61
+ * @param {EnvProviderResult[]} results
62
+ * @param {Partial<Arguments<EnvCommandArguments>>} argv
63
+ *
64
+ * @throws {Error} on schema validation failed
65
+ *
66
+ * @returns {EnvProviderResult[]}
67
+ */
68
+ export declare function flatAndValidateResults(results: EnvProviderResult[], argv: Partial<Arguments<EnvCommandArguments>>): Promise<EnvProviderResult[]>;
69
+ /**
70
+ * Creates or updates JSON schema from
71
+ * environment variables grouped by provider key.
72
+ *
73
+ * @export
74
+ * @param {EnvProviderResult[]} env
75
+ * @param {Arguments<EnvCommandArguments>} argv
76
+ *
77
+ * @returns {Promise<object>} JSON schema grouped by provider key.
78
+ */
12
79
  export declare function generateSchemaFrom(env: EnvProviderResult[], argv: Arguments<CommandArguments>): Promise<object>;
13
80
  //# sourceMappingURL=command.util.d.ts.map