@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/exec.js CHANGED
@@ -1,164 +1,88 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.exec = exec;
41
- const picocolors_1 = __importDefault(require("picocolors"));
42
- const yargs_parser_1 = __importDefault(require("yargs-parser"));
43
- const yargs_1 = __importDefault(require("yargs"));
44
- const providers_1 = require("./providers");
45
- const arguments_1 = require("./arguments");
46
- const commands_1 = require("./commands");
47
- const utils_1 = require("./utils");
48
- async function preloadConfig(rawArgv, parser, delimiters) {
49
- const preloadedArgv = (0, yargs_parser_1.default)(rawArgv, {
50
- configuration: parser,
51
- boolean: ['help'],
52
- string: ['root', 'env', 'configFile', 'schemaFile', 'logLevel'],
53
- array: ['modes', 'logMaskAnyRegEx', 'logMaskValuesOfKeys'],
54
- alias: {
55
- env: arguments_1.args.env.alias,
56
- modes: arguments_1.args.modes.alias,
57
- configFile: arguments_1.args.configFile.alias,
58
- logLevel: arguments_1.args.logLevel.alias,
59
- logMaskAnyRegEx: arguments_1.args.logMaskAnyRegEx.alias,
60
- logMaskValuesOfKeys: arguments_1.args.logMaskValuesOfKeys.alias
61
- },
62
- default: {
63
- root: arguments_1.args.root.default,
64
- configFile: arguments_1.args.configFile.default
65
- }
66
- });
67
- await (0, utils_1.loadConfigFile)(preloadedArgv, delimiters);
68
- preloadedArgv.logLevel ??= arguments_1.args.logLevel.default;
69
- preloadedArgv.logMaskAnyRegEx ??= arguments_1.args.logMaskAnyRegEx.default;
70
- preloadedArgv.logMaskValuesOfKeys ??= arguments_1.args.logMaskValuesOfKeys.default;
71
- preloadedArgv.providers ??= arguments_1.args.providers.default;
72
- const { logLevel, logMaskAnyRegEx, logMaskValuesOfKeys } = preloadedArgv;
73
- utils_1.logger.setSettings({
74
- minLevel: logLevel,
75
- maskAnyRegEx: logMaskAnyRegEx,
76
- maskValuesOfKeys: logMaskValuesOfKeys
77
- });
78
- if (logLevel === 'silly' || logLevel === 'trace')
79
- process.env.AKV_DEBUG = 'true';
80
- return preloadedArgv;
1
+ import { getSubcommand as e, loadConfigFile as t, loadProjectInfo as n, loadSchemaFile as r } from "./utils/command.util.js";
2
+ import { interpolateJson as i } from "./utils/interpolate.util.js";
3
+ import { resolvePath as a } from "./utils/json.util.js";
4
+ import { configureLogger as o, logger as s } from "./utils/logger.js";
5
+ import "./utils/index.js";
6
+ import { IntegratedProviders as c } from "./providers/index.js";
7
+ import { args as l } from "./arguments.js";
8
+ import { envCommand as u } from "./commands/env.command.js";
9
+ import { exportCommand as d } from "./commands/export.command.js";
10
+ import { pullCommand as f } from "./commands/pull.command.js";
11
+ import { pushCommand as p } from "./commands/push.command.js";
12
+ import { schemaCommand as m } from "./commands/schema.command.js";
13
+ import "./commands/index.js";
14
+ import h from "picocolors";
15
+ import { readFileSync as g } from "node:fs";
16
+ import { fileURLToPath as _ } from "node:url";
17
+ import v from "yargs";
18
+ import { Parser as y } from "yargs/helpers";
19
+ //#region src/exec.ts
20
+ async function b(e, n, r) {
21
+ let i = y.detailed(e, {
22
+ array: [
23
+ "modes",
24
+ "logMaskAnyRegEx",
25
+ "logMaskValuesOfKeys"
26
+ ],
27
+ boolean: ["help"],
28
+ configuration: n,
29
+ string: [
30
+ "root",
31
+ "env",
32
+ "configFile",
33
+ "schemaFile",
34
+ "logLevel"
35
+ ],
36
+ alias: {
37
+ configFile: l.configFile.alias,
38
+ env: l.env.alias,
39
+ logLevel: l.logLevel.alias,
40
+ logMaskAnyRegEx: l.logMaskAnyRegEx.alias,
41
+ logMaskValuesOfKeys: l.logMaskValuesOfKeys.alias,
42
+ modes: l.modes.alias
43
+ },
44
+ default: {
45
+ configFile: l.configFile.default,
46
+ root: l.root.default
47
+ }
48
+ }).argv;
49
+ await t(i, r), i.logLevel ??= l.logLevel.default, i.logMaskAnyRegEx ??= l.logMaskAnyRegEx.default, i.logMaskValuesOfKeys ??= l.logMaskValuesOfKeys.default, i.providers ??= l.providers.default;
50
+ let { logLevel: a, logMaskAnyRegEx: c, logMaskValuesOfKeys: u } = i;
51
+ return o(s, {
52
+ maskAnyRegEx: c,
53
+ maskValuesOfKeys: u,
54
+ minLevel: a
55
+ }), (a === "silly" || a === "trace") && (process.env.AKV_DEBUG = "true"), i;
81
56
  }
82
- async function exec(rawArgv) {
83
- const { config, version } = await Promise.resolve(`${`${__dirname}/package.json`}`).then(s => __importStar(require(s)));
84
- const subcommand = (0, utils_1.getSubcommand)(rawArgv, config.delimiters.subcommand);
85
- const preloadedArgv = await preloadConfig(rawArgv, config.parser, config.delimiters.template);
86
- const { env, modes, providers, help } = preloadedArgv;
87
- if (help)
88
- build(rawArgv, preloadedArgv, subcommand, config, version);
89
- if (!Array.isArray(providers) || providers.length === 0) {
90
- utils_1.logger.error('no providers found');
91
- process.exit(1);
92
- }
93
- const envMsg = env
94
- ? ` ${picocolors_1.default.bold(picocolors_1.default.underline(picocolors_1.default.green(env)))} environment`
95
- : '';
96
- const modesMsg = modes
97
- ? ` ${picocolors_1.default.bold(picocolors_1.default.magenta(modes.join('+')))} mode`
98
- : '';
99
- utils_1.logger.info(`loading${envMsg}${env && modes ? ' in' : ''}${modesMsg}`);
100
- for (const provider of providers) {
101
- try {
102
- utils_1.logger.debug(`using ${picocolors_1.default.yellow(provider.path)} provider`);
103
- if (!provider.type || provider.type === 'integrated') {
104
- provider.handler = providers_1.IntegratedProviders[provider.path];
105
- }
106
- else {
107
- const { default: module } = await Promise.resolve(`${provider.type === 'module'
108
- ? provider.path
109
- : (0, utils_1.resolvePath)(provider.path)}`).then(s => __importStar(require(s)));
110
- provider.handler = module;
111
- }
112
- }
113
- catch {
114
- utils_1.logger.error(`${picocolors_1.default.yellow(provider.path)} provider not found or not compatible`);
115
- process.exit(1);
116
- }
117
- }
118
- build(rawArgv, preloadedArgv, subcommand, config, version);
57
+ async function x(t) {
58
+ let { config: n, version: r } = JSON.parse(g(_(new URL("package.json", "" + import.meta.url)), "utf8")), i = e(t, n.delimiters.subcommand), o = await b(t, n.parser, n.delimiters.template), { env: l, help: u, modes: d, providers: f } = o;
59
+ u && S(t, o, i, n, r), (!Array.isArray(f) || f.length === 0) && (s.error("no providers found"), process.exit(1));
60
+ let p = l ? ` ${h.bold(h.underline(h.green(l)))} environment` : "", m = d ? ` ${h.bold(h.magenta(d.join("+")))} mode` : "";
61
+ s.info(`loading${p}${l && d ? " in" : ""}${m}`);
62
+ for (let e of f) try {
63
+ if (s.debug(`using ${h.yellow(e.path)} provider`), !e.type || e.type === "integrated") e.handler = c[e.path];
64
+ else {
65
+ let { default: t } = await (e.type === "module" ? import(e.path) : import(a(e.path)));
66
+ e.handler = t;
67
+ }
68
+ } catch {
69
+ s.error(`${h.yellow(e.path)} provider not found or not compatible`), process.exit(1);
70
+ }
71
+ S(t, o, i, n, r);
119
72
  }
120
- function build(rawArgv, preloadedArgv, subcommand, config, version = 'unknown') {
121
- const builder = (0, yargs_1.default)(rawArgv)
122
- .strict()
123
- .scriptName('env')
124
- .version(version)
125
- .detectLocale(false)
126
- .showHelpOnFail(false)
127
- .parserConfiguration(config.parser)
128
- .usage('Usage: $0 [command] [options..] [: subcmd [:]] [options..]')
129
- .options(arguments_1.args)
130
- .middleware(async (argv) => {
131
- if (subcommand?.length > 0)
132
- argv.subcmd = subcommand;
133
- Object.assign(argv, preloadedArgv);
134
- utils_1.logger.silly('interpolating arguments surrounded by', picocolors_1.default.bold(picocolors_1.default.yellow(`${config.delimiters.template[0]} ${config.delimiters.template[1]}`)));
135
- const subcmdAux = argv.subcmd;
136
- (0, utils_1.interpolateJson)(argv, argv, config.delimiters.template);
137
- if (Array.isArray(argv.subcmd)) {
138
- for (const index in argv.subcmd) {
139
- if (argv.subcmd[index]?.includes('undefined'))
140
- argv.subcmd[index] = subcmdAux[index];
141
- }
142
- }
143
- utils_1.logger.silly('config loaded:', argv);
144
- [argv.projectInfo, argv.schema] = await Promise.all([
145
- (0, utils_1.loadProjectInfo)((argv.packageJson ?? argv.pkg)),
146
- (0, utils_1.loadSchemaFile)(argv, config.delimiters.template)
147
- ]);
148
- if (argv.schemaValidate) {
149
- argv.schemaValidate = !!argv.schema;
150
- if (argv.schemaValidate)
151
- utils_1.logger.silly('schema loaded:', argv.schema);
152
- }
153
- });
154
- builder.command(commands_1.envCommand);
155
- builder.command(commands_1.exportCommand);
156
- builder.command(commands_1.pullCommand);
157
- builder.command(commands_1.pushCommand);
158
- builder.command(commands_1.schemaCommand);
159
- const { providers } = preloadedArgv;
160
- for (const { handler } of providers)
161
- handler?.builder && handler.builder(builder);
162
- builder.parse();
73
+ function S(e, t, a, o, c = "unknown") {
74
+ let g = v(e).strict().scriptName("env").version(c).detectLocale(!1).showHelpOnFail(!1).parserConfiguration(o.parser).usage("Usage: $0 [command] [options..] [: subcmd [:]] [options..]").options(l).middleware(async (e) => {
75
+ a?.length > 0 && (e.subcmd = a), Object.assign(e, t), s.silly("interpolating arguments surrounded by", h.bold(h.yellow(`${o.delimiters.template[0]} ${o.delimiters.template[1]}`)));
76
+ let c = e.subcmd;
77
+ if (i(e, e, o.delimiters.template), Array.isArray(e.subcmd)) for (let t in e.subcmd) e.subcmd[t]?.includes("undefined") && (e.subcmd[t] = c[t]);
78
+ s.silly("config loaded:", e), [e.projectInfo, e.schema] = await Promise.all([n(e.packageJson ?? e.pkg), r(e, o.delimiters.template)]), e.schemaValidate && (e.schemaValidate = !!e.schema, e.schemaValidate && s.silly("schema loaded:", e.schema));
79
+ });
80
+ g.command(u), g.command(d), g.command(f), g.command(p), g.command(m);
81
+ let { providers: _ } = t;
82
+ for (let { handler: e } of _) e?.builder && e.builder(g);
83
+ g.parse();
163
84
  }
85
+ //#endregion
86
+ export { x as exec };
87
+
164
88
  //# sourceMappingURL=exec.js.map
package/exec.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"exec.js","sourceRoot":"","sources":["../src/exec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exec.js","names":[],"sources":["../src/exec.ts"],"sourcesContent":["import { readFileSync } from 'node:fs';\r\nimport { fileURLToPath } from 'node:url';\r\nimport pc from 'picocolors';\r\nimport yargs from 'yargs';\r\nimport type { Arguments } from 'yargs';\r\nimport { Parser } from 'yargs/helpers';\r\nimport { args } from './arguments.js';\r\nimport type { CommandArguments } from './arguments.js';\r\nimport {\r\n\tenvCommand,\r\n\texportCommand,\r\n\tpullCommand,\r\n\tpushCommand,\r\n\tschemaCommand,\r\n} from './commands/index.js';\r\nimport { IntegratedProviders } from './providers/index.js';\r\nimport {\r\n\tconfigureLogger,\r\n\tgetSubcommand,\r\n\tinterpolateJson,\r\n\tloadConfigFile,\r\n\tloadProjectInfo,\r\n\tloadSchemaFile,\r\n\tlogger,\r\n\tresolvePath,\r\n} from './utils/index.js';\r\n\r\ntype Alias = string[] | string;\r\n\r\n/**\r\n * Preload basic config from command line and config file.\r\n *\r\n * @param {string[]} rawArgv process.argv\r\n * @param {Partial<yargsParser.Configuration>} parser yargs parser config\r\n * @param {[string, string]} delimiters\r\n *\r\n * @returns {Promise<Partial<CommandArguments>>} preloaded config\r\n */\r\nasync function preloadConfig(\r\n\trawArgv: string[],\r\n\tparser: Record<string, unknown>,\r\n\tdelimiters: [string, string],\r\n): Promise<Partial<CommandArguments>> {\r\n\t// preload base config\r\n\tconst preloadedArgv = Parser.detailed(rawArgv, {\r\n\t\tarray: ['modes', 'logMaskAnyRegEx', 'logMaskValuesOfKeys'],\r\n\t\tboolean: ['help'],\r\n\t\tconfiguration: parser as any,\r\n\t\tstring: ['root', 'env', 'configFile', 'schemaFile', 'logLevel'],\r\n\t\talias: {\r\n\t\t\tconfigFile: args.configFile.alias as Alias,\r\n\t\t\tenv: args.env.alias as Alias,\r\n\t\t\tlogLevel: args.logLevel.alias as Alias,\r\n\t\t\tlogMaskAnyRegEx: args.logMaskAnyRegEx.alias as Alias,\r\n\t\t\tlogMaskValuesOfKeys: args.logMaskValuesOfKeys.alias as Alias,\r\n\t\t\tmodes: args.modes.alias as Alias,\r\n\t\t},\r\n\t\tdefault: {\r\n\t\t\tconfigFile: args.configFile.default,\r\n\t\t\troot: args.root.default,\r\n\t\t},\r\n\t}).argv;\r\n\r\n\t// loads configuration file\r\n\tawait loadConfigFile(preloadedArgv, delimiters);\r\n\r\n\tpreloadedArgv.logLevel ??= args.logLevel.default;\r\n\tpreloadedArgv.logMaskAnyRegEx ??= args.logMaskAnyRegEx.default;\r\n\tpreloadedArgv.logMaskValuesOfKeys ??= args.logMaskValuesOfKeys.default;\r\n\tpreloadedArgv.providers ??= args.providers.default;\r\n\r\n\tconst { logLevel, logMaskAnyRegEx, logMaskValuesOfKeys } = preloadedArgv;\r\n\r\n\t// logging level\r\n\tconfigureLogger(logger, {\r\n\t\tmaskAnyRegEx: logMaskAnyRegEx,\r\n\t\tmaskValuesOfKeys: logMaskValuesOfKeys,\r\n\t\tminLevel: logLevel,\r\n\t});\r\n\r\n\tif (logLevel === 'silly' || logLevel === 'trace')\r\n\t\tprocess.env.AKV_DEBUG = 'true';\r\n\r\n\treturn preloadedArgv;\r\n}\r\n\r\n/**\r\n * Command preprocessing and lib info\r\n * reading from package.json.\r\n * Preloads config file and setup basic config.\r\n *\r\n * @param {string[]} rawArgv process.argv\r\n */\r\nexport async function exec(rawArgv: string[]) {\r\n\t// reads some lib base config from package.json\r\n\tconst pkg = JSON.parse(\r\n\t\treadFileSync(\r\n\t\t\tfileURLToPath(new URL('package.json', import.meta.url)),\r\n\t\t\t'utf8',\r\n\t\t),\r\n\t) as { config: Record<string, any>; version: string };\r\n\tconst { config, version } = pkg;\r\n\r\n\t// execs yargs\r\n\tconst subcommand = getSubcommand(rawArgv, config.delimiters.subcommand);\r\n\r\n\tconst preloadedArgv = await preloadConfig(\r\n\t\trawArgv,\r\n\t\tconfig.parser,\r\n\t\tconfig.delimiters.template,\r\n\t);\r\n\r\n\tconst { env, help, modes, providers } = preloadedArgv;\r\n\r\n\tif (help) build(rawArgv, preloadedArgv, subcommand, config, version);\r\n\r\n\tif (!Array.isArray(providers) || providers.length === 0) {\r\n\t\tlogger.error('no providers found');\r\n\r\n\t\tprocess.exit(1);\r\n\t}\r\n\r\n\tconst envMsg = env\r\n\t\t? ` ${pc.bold(pc.underline(pc.green(env)))} environment`\r\n\t\t: '';\r\n\tconst modesMsg = modes\r\n\t\t? ` ${pc.bold(pc.magenta(modes.join('+')))} mode`\r\n\t\t: '';\r\n\r\n\tlogger.info(`loading${envMsg}${env && modes ? ' in' : ''}${modesMsg}`);\r\n\r\n\t// read loaders from config\r\n\tfor (const provider of providers!) {\r\n\t\ttry {\r\n\t\t\tlogger.debug(`using ${pc.yellow(provider.path)} provider`);\r\n\r\n\t\t\tif (!provider.type || provider.type === 'integrated') {\r\n\t\t\t\tprovider.handler = IntegratedProviders[provider.path];\r\n\t\t\t} else {\r\n\t\t\t\tconst { default: module } = await import(\r\n\t\t\t\t\tprovider.type === 'module'\r\n\t\t\t\t\t\t? provider.path\r\n\t\t\t\t\t\t: resolvePath(provider.path)\r\n\t\t\t\t);\r\n\r\n\t\t\t\tprovider.handler = module;\r\n\t\t\t}\r\n\t\t} catch {\r\n\t\t\tlogger.error(\r\n\t\t\t\t`${pc.yellow(\r\n\t\t\t\t\tprovider.path,\r\n\t\t\t\t)} provider not found or not compatible`,\r\n\t\t\t);\r\n\r\n\t\t\tprocess.exit(1);\r\n\t\t}\r\n\t}\r\n\r\n\tbuild(rawArgv, preloadedArgv, subcommand, config, version);\r\n}\r\n\r\n/**\r\n * Builds commands and execs Yargs.\r\n *\r\n * @param {string[]} rawArgv process.argv.slice(2)\r\n * @param {Partial<Arguments<CommandArguments>>} preloadedArgv\r\n * @param {string[]} subcommand subcommand for wrap if exists\r\n * @param {Record<string, any>} config lib config from package.json\r\n * @param {string} version lib version from package.json\r\n */\r\nfunction build(\r\n\trawArgv: string[],\r\n\tpreloadedArgv: Partial<Arguments<CommandArguments>>,\r\n\tsubcommand: string[],\r\n\tconfig: Record<string, any>,\r\n\tversion = 'unknown',\r\n): void {\r\n\tconst builder = yargs(rawArgv)\r\n\t\t.strict()\r\n\t\t.scriptName('env')\r\n\t\t.version(version)\r\n\t\t.detectLocale(false)\r\n\t\t.showHelpOnFail(false)\r\n\t\t.parserConfiguration(config.parser)\r\n\t\t.usage('Usage: $0 [command] [options..] [: subcmd [:]] [options..]')\r\n\t\t.options(args)\r\n\t\t.middleware(async (argv): Promise<void> => {\r\n\t\t\t// in case of subcommand argument for main\r\n\t\t\tif (subcommand?.length > 0) argv.subcmd = subcommand;\r\n\r\n\t\t\t// merges preloaded args\r\n\t\t\tObject.assign(argv, preloadedArgv);\r\n\r\n\t\t\tlogger.silly(\r\n\t\t\t\t'interpolating arguments surrounded by',\r\n\t\t\t\tpc.bold(\r\n\t\t\t\t\tpc.yellow(\r\n\t\t\t\t\t\t`${config.delimiters.template[0]} ${config.delimiters.template[1]}`,\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 subcmdAux = argv.subcmd as string[];\r\n\t\t\t// applies string templating with current vars\r\n\t\t\tinterpolateJson(argv, argv, config.delimiters.template);\r\n\r\n\t\t\tif (Array.isArray(argv.subcmd)) {\r\n\t\t\t\t// fix for argv interpolation pre env interpolation for subcommand\r\n\t\t\t\tfor (const index in argv.subcmd) {\r\n\t\t\t\t\tif (argv.subcmd[index]?.includes('undefined'))\r\n\t\t\t\t\t\targv.subcmd[index] = subcmdAux[index];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlogger.silly('config loaded:', argv);\r\n\r\n\t\t\t// loads environment JSON schema if exists\r\n\t\t\t// and current project info from package.json\r\n\t\t\t[argv.projectInfo, argv.schema] = await Promise.all([\r\n\t\t\t\tloadProjectInfo((argv.packageJson ?? argv.pkg) as string),\r\n\t\t\t\tloadSchemaFile(argv, config.delimiters.template),\r\n\t\t\t]);\r\n\r\n\t\t\tif (argv.schemaValidate) {\r\n\t\t\t\targv.schemaValidate = !!argv.schema;\r\n\r\n\t\t\t\tif (argv.schemaValidate)\r\n\t\t\t\t\tlogger.silly('schema loaded:', argv.schema);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t// integrated commands builder\r\n\tbuilder.command(envCommand);\r\n\tbuilder.command(exportCommand);\r\n\tbuilder.command(pullCommand);\r\n\tbuilder.command(pushCommand);\r\n\tbuilder.command(schemaCommand);\r\n\r\n\tconst { providers } = preloadedArgv;\r\n\r\n\t// extends command from plugins\r\n\tfor (const { handler } of providers!)\r\n\t\tif (handler?.builder) handler.builder(builder);\r\n\r\n\t// executes command processing\r\n\tvoid builder.parse();\r\n}\r\n"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from './interfaces';
2
- export * from './utils/logger';
3
- export * from './arguments';
1
+ export * from './arguments.js';
2
+ export * from './interfaces/index.js';
3
+ export * from './utils/logger.js';
4
4
  //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
package/index.js CHANGED
@@ -1,20 +1,3 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./interfaces"), exports);
18
- __exportStar(require("./utils/logger"), exports);
19
- __exportStar(require("./arguments"), exports);
20
- //# sourceMappingURL=index.js.map
1
+ import { LOG_LEVELS as e, configureLogger as t, createLogger as n, logger as r } from "./utils/logger.js";
2
+ import { args as i } from "./arguments.js";
3
+ export { e as LOG_LEVELS, i as args, t as configureLogger, n as createLogger, r as logger };
@@ -1,2 +1,2 @@
1
- export * from './loader.interface';
1
+ export * from './loader.interface.js';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -1,10 +1,30 @@
1
1
  import { Arguments, Argv } from 'yargs';
2
- export type EnvResult = Record<string, unknown> | Record<string, unknown>[] | Promise<Record<string, unknown>> | Promise<Record<string, unknown>[]>;
2
+ /**
3
+ * Result of provider environment load.
4
+ *
5
+ * @export
6
+ * @type EnvResult
7
+ */
8
+ export type EnvResult = Promise<Record<string, unknown>[]> | Promise<Record<string, unknown>> | Record<string, unknown> | Record<string, unknown>[];
9
+ /**
10
+ * Wrapped provider result for inject to env.
11
+ *
12
+ * @export
13
+ * @interface EnvProviderResult
14
+ */
3
15
  export interface EnvProviderResult {
4
16
  key: string;
5
- config?: Record<string, unknown>;
6
17
  value: Record<string, any> | Record<string, any>[];
18
+ config?: Record<string, unknown>;
7
19
  }
20
+ /**
21
+ * Provider handler.
22
+ *
23
+ * @export
24
+ * @interface EnvProvider
25
+ * @template A define arguments used by provider
26
+ * @template C define config used by provider
27
+ */
8
28
  export interface EnvProvider<A, C extends Record<string, any> | undefined = undefined> {
9
29
  key: string;
10
30
  builder?: (builder: Argv<unknown>) => void;
@@ -12,10 +32,16 @@ export interface EnvProvider<A, C extends Record<string, any> | undefined = unde
12
32
  pull?: (argv: Arguments<A>, config?: C) => void;
13
33
  push?: (argv: Arguments<A>, config?: C) => void;
14
34
  }
35
+ /**
36
+ * Provider definition for config file.
37
+ *
38
+ * @export
39
+ * @interface EnvProviderConfig
40
+ */
15
41
  export interface EnvProviderConfig {
42
+ handler: EnvProvider<any, any>;
16
43
  path: string;
17
44
  type: 'integrated' | 'module' | 'script';
18
- handler: EnvProvider<any, any>;
19
45
  config?: Record<string, unknown>;
20
46
  }
21
47
  //# sourceMappingURL=loader.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/loader.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAQxC,MAAM,MAAM,SAAS,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;AAQtC,MAAM,WAAW,iBAAiB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;CACnD;AAUD,MAAM,WAAW,WAAW,CAC3B,CAAC,EACD,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS;IAGrD,GAAG,EAAE,MAAM,CAAC;IAGZ,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IAG3C,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,SAAS,GAAG,KAAK,CAAC;IAG5D,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IAGhD,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;CAChD;AAQD,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACzC,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC"}
1
+ {"version":3,"file":"loader.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/loader.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAClB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,GAClC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;AAE7B;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW,CAC3B,CAAC,EACD,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS;IAGrD,GAAG,EAAE,MAAM,CAAC;IAGZ,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IAG3C,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,SAAS,GAAG,KAAK,CAAC;IAG5D,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IAGhD,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;CAChD;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC"}
package/main.d.ts CHANGED
@@ -1,3 +1,2 @@
1
- #!/usr/bin/env node
2
1
  export {};
3
2
  //# sourceMappingURL=main.d.ts.map
package/main.js CHANGED
@@ -1,28 +1,9 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const exec_1 = require("./exec");
5
- const argv = process.argv;
6
- const cmdArgs = [];
7
- let composite = '';
8
- for (let i = 0; i < argv.length; i++) {
9
- let arg = argv[i];
10
- if (arg.includes(' '))
11
- arg = `"${arg}"`;
12
- if (arg.at(-1) === "'") {
13
- cmdArgs.push(`${composite} ${arg}`.replaceAll("'", '"'));
14
- composite = '';
15
- continue;
16
- }
17
- if (arg[0] === "'") {
18
- composite += arg;
19
- continue;
20
- }
21
- if (composite) {
22
- composite += ` ${arg}`;
23
- continue;
24
- }
25
- cmdArgs.push(arg);
26
- }
27
- (0, exec_1.exec)(cmdArgs.slice(2));
2
+ import { normalizeRawArgv as e } from "./utils/argv.util.js";
3
+ import "./utils/index.js";
4
+ import { exec as t } from "./exec.js";
5
+ //#region src/main.ts
6
+ t(e(process.argv));
7
+ //#endregion
8
+
28
9
  //# sourceMappingURL=main.js.map
package/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;AAEA,iCAA8B;AAE9B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAC1B,MAAM,OAAO,GAAG,EAAE,CAAC;AACnB,IAAI,SAAS,GAAG,EAAE,CAAC;AAInB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;IACtC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAElB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;IAExC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACzD,SAAS,GAAG,EAAE,CAAC;QACf,SAAS;IACV,CAAC;IAED,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACpB,SAAS,IAAI,GAAG,CAAC;QACjB,SAAS;IACV,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACf,SAAS,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,SAAS;IACV,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC;AAGD,IAAA,WAAI,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"main.js","names":[],"sources":["../src/main.ts"],"sourcesContent":["import { exec } from './exec.js';\nimport { normalizeRawArgv } from './utils/index.js';\n\nvoid exec(normalizeRawArgv(process.argv));\n"],"mappings":";;;;;AAGK,EAAK,EAAiB,QAAQ,IAAI,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
- "version": "4.12.3",
2
+ "version": "5.0.0-alpha.0",
3
3
  "project": "common",
4
4
  "name": "@achs/env",
5
+ "type": "module",
5
6
  "title": "Environment Variables CLI Tool",
6
7
  "description": "Extensible environment variables handler for NodeJS apps",
7
8
  "author": "Alvear Candia, Cristopher Alejandro <caalvearc@achs.cl>",
@@ -14,41 +15,52 @@
14
15
  ],
15
16
  "dependencies": {
16
17
  "@achs/azure-key-vault": "^4.6.0",
17
- "ajv": "^8.18.0",
18
+ "ajv": "^8.20.0",
18
19
  "ajv-formats": "^3.0.1",
19
20
  "ci-info": "^4.4.0",
20
21
  "merge-deep": "^3.0.3",
21
22
  "picocolors": "^1.1.1",
22
23
  "subslate": "^1.0.0",
23
24
  "to-json-schema": "^0.2.5",
24
- "tslog": "^3.3.4",
25
- "yargs": "^17.7.2",
26
- "yargs-parser": "^21.1.1"
25
+ "tslog": "^4.10.2",
26
+ "yargs": "^18.0.0"
27
27
  },
28
28
  "devDependencies": {
29
- "@types/jest": "^29.5.12",
30
29
  "@types/merge-deep": "^3.0.3",
31
- "@types/node": "^22.1.0",
30
+ "@types/node": "^25.9.1",
32
31
  "@types/to-json-schema": "^0.2.4",
33
- "@types/yargs": "^17.0.32",
34
- "@types/yargs-parser": "^21.0.3",
35
- "@typescript-eslint/eslint-plugin": "^6.20.0",
36
- "@typescript-eslint/parser": "^6.20.0",
32
+ "@types/yargs": "^17.0.35",
33
+ "@vitest/coverage-v8": "^4.1.7",
34
+ "@vitest/eslint-plugin": "^1.6.18",
37
35
  "copyfiles": "^2.4.1",
38
- "del-cli": "^5.1.0",
39
- "eslint": "^8.56.0",
40
- "eslint-config-prettier": "^9.1.0",
41
- "eslint-plugin-eslint-comments": "^3.2.0",
42
- "eslint-plugin-jest": "^27.6.3",
43
- "eslint-plugin-jest-formatting": "^3.1.0",
44
- "eslint-plugin-prettier": "^5.1.3",
45
- "eslint-plugin-promise": "^6.1.1",
46
- "eslint-plugin-sonarjs": "^0.23.0",
47
- "eslint-plugin-unicorn": "^50.0.1",
48
- "jest": "^29.7.0",
49
- "prettier": "^3.3.3",
50
- "ts-jest": "^29.2.4",
51
- "typescript": "^5.5.4"
36
+ "del-cli": "^7.0.0",
37
+ "eslint": "^10.4.1",
38
+ "eslint-config-prettier": "^10.1.8",
39
+ "eslint-plugin-perfectionist": "^5.9.0",
40
+ "eslint-plugin-prettier": "^5.5.6",
41
+ "eslint-plugin-promise": "^7.3.0",
42
+ "eslint-plugin-regexp": "^3.1.0",
43
+ "eslint-plugin-sonarjs": "^4.0.3",
44
+ "eslint-plugin-unicorn": "^64.0.0",
45
+ "globals": "^17.6.0",
46
+ "prettier": "^3.8.3",
47
+ "typescript": "^6.0.3",
48
+ "typescript-eslint": "^8.60.0",
49
+ "vite": "^8.0.14",
50
+ "vite-plugin-dts": "^5.0.1",
51
+ "vite-tsconfig-paths": "^6.1.1",
52
+ "vitest": "^4.1.7"
53
+ },
54
+ "exports": {
55
+ ".": {
56
+ "types": "./index.d.ts",
57
+ "import": "./index.js"
58
+ },
59
+ "./utils": {
60
+ "types": "./utils/index.d.ts",
61
+ "import": "./utils/index.js"
62
+ },
63
+ "./package.json": "./package.json"
52
64
  },
53
65
  "main": "index.js",
54
66
  "types": "index.d.ts",
@@ -56,9 +68,8 @@
56
68
  "env": "main.js"
57
69
  },
58
70
  "engines": {
59
- "node": ">=18",
60
- "npm": ">=8",
61
- "pnpm": ">=7"
71
+ "node": ">=20",
72
+ "pnpm": ">=9"
62
73
  },
63
74
  "config": {
64
75
  "delimiters": {
@@ -79,13 +90,23 @@
79
90
  "boolean-negation": false
80
91
  }
81
92
  },
93
+ "contributors": [
94
+ "Cristopher Alvear Candia <caalvearc@achs.cl>"
95
+ ],
82
96
  "scripts": {
83
- "build": "pnpm prebuild && tsc --p tsconfig.build.json && pnpm postbuild",
84
- "test": "jest --watchAll=false --verbose",
85
- "pub": "pnpm build && pnpm login && pnpm publish dist --access public",
86
- "lint": "eslint --ext .ts src/",
87
- "lint:fix": "eslint --fix --ext .ts, src/",
88
- "prebuild": "del-cli dist/**",
97
+ "build": "pnpm prebuild && vite build && pnpm postbuild",
98
+ "test": "vitest run --project unit",
99
+ "test:watch": "vitest --project unit",
100
+ "test:cov": "vitest run --project unit --coverage",
101
+ "test:int": "vitest run --project integration",
102
+ "typecheck": "tsc --noEmit",
103
+ "lint": "eslint --cache --cache-location node_modules/.cache/eslint/ .",
104
+ "lint:fix": "eslint --fix --cache --cache-location node_modules/.cache/eslint/ .",
105
+ "format": "prettier --cache --write \"**/*.{ts,cts,mts,js,cjs,mjs,json,md,yml,yaml}\"",
106
+ "format:check": "prettier --cache --check \"**/*.{ts,cts,mts,js,cjs,mjs,json,md,yml,yaml}\"",
107
+ "pub": "pnpm typecheck && pnpm lint && pnpm test:cov && pnpm build && pnpm publish dist --access public --no-git-checks",
108
+ "pub:alpha": "pnpm typecheck && pnpm lint && pnpm test:cov && pnpm build && pnpm publish dist --tag alpha --access public --no-git-checks",
109
+ "prebuild": "del-cli dist",
89
110
  "postbuild": "copyfiles package.json README.md LICENSE.md CHANGELOG.md schemas/env.schema.json schemas/settings.schema.json assets/* dist"
90
111
  }
91
112
  }
@@ -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 AppSettingsCommandArguments extends CommandArguments {
4
4
  envFile: string;
5
5
  }
6
+ /**
7
+ * Loads config from appsettings.json.
8
+ */
6
9
  export declare const AppSettingsProvider: EnvProvider<AppSettingsCommandArguments>;
7
10
  export {};
8
11
  //# sourceMappingURL=app-settings.provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-settings.provider.d.ts","sourceRoot":"","sources":["../../src/providers/app-settings.provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,UAAU,2BAA4B,SAAQ,gBAAgB;IAC7D,OAAO,EAAE,MAAM,CAAC;CAChB;AAKD,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,2BAA2B,CAyDxE,CAAC"}
1
+ {"version":3,"file":"app-settings.provider.d.ts","sourceRoot":"","sources":["../../src/providers/app-settings.provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAS1D,UAAU,2BAA4B,SAAQ,gBAAgB;IAC7D,OAAO,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,2BAA2B,CAyDxE,CAAC"}