@calvear/env 1.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 (97) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/LICENSE.md +19 -0
  3. package/README.md +659 -0
  4. package/arguments.d.ts +22 -0
  5. package/arguments.d.ts.map +1 -0
  6. package/arguments.js +105 -0
  7. package/arguments.js.map +1 -0
  8. package/commands/env.command.d.ts +8 -0
  9. package/commands/env.command.d.ts.map +1 -0
  10. package/commands/env.command.js +63 -0
  11. package/commands/env.command.js.map +1 -0
  12. package/commands/export.command.d.ts +8 -0
  13. package/commands/export.command.d.ts.map +1 -0
  14. package/commands/export.command.js +51 -0
  15. package/commands/export.command.js.map +1 -0
  16. package/commands/index.d.ts +6 -0
  17. package/commands/index.d.ts.map +1 -0
  18. package/commands/index.js +14 -0
  19. package/commands/index.js.map +1 -0
  20. package/commands/pull.command.d.ts +7 -0
  21. package/commands/pull.command.d.ts.map +1 -0
  22. package/commands/pull.command.js +39 -0
  23. package/commands/pull.command.js.map +1 -0
  24. package/commands/push.command.d.ts +7 -0
  25. package/commands/push.command.d.ts.map +1 -0
  26. package/commands/push.command.js +38 -0
  27. package/commands/push.command.js.map +1 -0
  28. package/commands/schema.command.d.ts +4 -0
  29. package/commands/schema.command.d.ts.map +1 -0
  30. package/commands/schema.command.js +18 -0
  31. package/commands/schema.command.js.map +1 -0
  32. package/exec.d.ts +3 -0
  33. package/exec.d.ts.map +1 -0
  34. package/exec.js +142 -0
  35. package/exec.js.map +1 -0
  36. package/index.d.ts +4 -0
  37. package/index.d.ts.map +1 -0
  38. package/index.js +20 -0
  39. package/index.js.map +1 -0
  40. package/interfaces/index.d.ts +2 -0
  41. package/interfaces/index.d.ts.map +1 -0
  42. package/interfaces/index.js +18 -0
  43. package/interfaces/index.js.map +1 -0
  44. package/interfaces/loader.interface.d.ts +21 -0
  45. package/interfaces/loader.interface.d.ts.map +1 -0
  46. package/interfaces/loader.interface.js +3 -0
  47. package/interfaces/loader.interface.js.map +1 -0
  48. package/main.d.ts +3 -0
  49. package/main.d.ts.map +1 -0
  50. package/main.js +6 -0
  51. package/main.js.map +1 -0
  52. package/package.json +85 -0
  53. package/providers/app-settings.provider.d.ts +9 -0
  54. package/providers/app-settings.provider.d.ts.map +1 -0
  55. package/providers/app-settings.provider.js +50 -0
  56. package/providers/app-settings.provider.js.map +1 -0
  57. package/providers/index.d.ts +8 -0
  58. package/providers/index.d.ts.map +1 -0
  59. package/providers/index.js +28 -0
  60. package/providers/index.js.map +1 -0
  61. package/providers/package-json.provider.d.ts +8 -0
  62. package/providers/package-json.provider.d.ts.map +1 -0
  63. package/providers/package-json.provider.js +29 -0
  64. package/providers/package-json.provider.js.map +1 -0
  65. package/providers/secrets.provider.d.ts +9 -0
  66. package/providers/secrets.provider.d.ts.map +1 -0
  67. package/providers/secrets.provider.js +43 -0
  68. package/providers/secrets.provider.js.map +1 -0
  69. package/tsconfig.build.tsbuildinfo +1 -0
  70. package/utils/command.util.d.ts +12 -0
  71. package/utils/command.util.d.ts.map +1 -0
  72. package/utils/command.util.js +135 -0
  73. package/utils/command.util.js.map +1 -0
  74. package/utils/index.d.ts +7 -0
  75. package/utils/index.d.ts.map +1 -0
  76. package/utils/index.js +23 -0
  77. package/utils/index.js.map +1 -0
  78. package/utils/interpolate.util.d.ts +4 -0
  79. package/utils/interpolate.util.d.ts.map +1 -0
  80. package/utils/interpolate.util.js +33 -0
  81. package/utils/interpolate.util.js.map +1 -0
  82. package/utils/json.util.d.ts +5 -0
  83. package/utils/json.util.d.ts.map +1 -0
  84. package/utils/json.util.js +47 -0
  85. package/utils/json.util.js.map +1 -0
  86. package/utils/logger.d.ts +3 -0
  87. package/utils/logger.d.ts.map +1 -0
  88. package/utils/logger.js +18 -0
  89. package/utils/logger.js.map +1 -0
  90. package/utils/normalize.util.d.ts +2 -0
  91. package/utils/normalize.util.d.ts.map +1 -0
  92. package/utils/normalize.util.js +44 -0
  93. package/utils/normalize.util.js.map +1 -0
  94. package/utils/schema.util.d.ts +7 -0
  95. package/utils/schema.util.d.ts.map +1 -0
  96. package/utils/schema.util.js +51 -0
  97. package/utils/schema.util.js.map +1 -0
@@ -0,0 +1,135 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.generateSchemaFrom = exports.flatAndValidateResults = exports.loadVariablesFromProviders = exports.loadProjectInfo = exports.loadSchemaFile = exports.getSubcommand = exports.loadConfigFile = void 0;
30
+ const chalk_1 = __importDefault(require("chalk"));
31
+ const merge_deep_1 = __importDefault(require("merge-deep"));
32
+ const utils_1 = require("../utils");
33
+ async function loadConfigFile(argv, delimiters) {
34
+ var _a;
35
+ if (typeof argv.configFile === 'string') {
36
+ const path = (0, utils_1.interpolate)(argv.configFile, argv, delimiters);
37
+ const [config, success] = await (0, utils_1.readJson)(path);
38
+ if (success) {
39
+ for (const key in config)
40
+ (_a = argv[key]) !== null && _a !== void 0 ? _a : (argv[key] = config[key]);
41
+ }
42
+ else {
43
+ utils_1.logger.warn(`config file ${chalk_1.default.underline.yellow(path)} not found, using defaults`);
44
+ }
45
+ }
46
+ }
47
+ exports.loadConfigFile = loadConfigFile;
48
+ function getSubcommand(rawArgv, delimiters) {
49
+ let subcommand = [];
50
+ const begin = rawArgv.indexOf(delimiters[0]);
51
+ const count = rawArgv.lastIndexOf(delimiters[1]) - begin;
52
+ if (begin > 0) {
53
+ subcommand =
54
+ count > 0
55
+ ? rawArgv.splice(begin, count + 1).slice(1, -1)
56
+ : rawArgv.splice(begin).slice(1);
57
+ }
58
+ return subcommand;
59
+ }
60
+ exports.getSubcommand = getSubcommand;
61
+ async function loadSchemaFile(argv, delimiters) {
62
+ if (typeof argv.schemaFile === 'string') {
63
+ const path = (0, utils_1.interpolate)(argv.schemaFile, argv, delimiters);
64
+ const [schema, success] = await (0, utils_1.readJson)(path);
65
+ return success ? schema : undefined;
66
+ }
67
+ return undefined;
68
+ }
69
+ exports.loadSchemaFile = loadSchemaFile;
70
+ async function loadProjectInfo() {
71
+ try {
72
+ return await Promise.resolve().then(() => __importStar(require(`${process.cwd()}/package.json`)));
73
+ }
74
+ catch (_a) {
75
+ utils_1.logger.warn(`project file ${chalk_1.default.underline.yellow('package.json')} not found`);
76
+ return undefined;
77
+ }
78
+ }
79
+ exports.loadProjectInfo = loadProjectInfo;
80
+ function loadVariablesFromProviders(providers, argv) {
81
+ if (!providers)
82
+ return Promise.resolve([]);
83
+ return Promise.all(providers.map(({ handler: { key, load }, config }) => {
84
+ utils_1.logger.silly(`executing ${chalk_1.default.yellow(key)} provider`);
85
+ const value = load(argv, config);
86
+ if (value instanceof Promise) {
87
+ return value.then((value) => ({
88
+ key,
89
+ config,
90
+ value
91
+ }));
92
+ }
93
+ else {
94
+ return { key, config, value };
95
+ }
96
+ }));
97
+ }
98
+ exports.loadVariablesFromProviders = loadVariablesFromProviders;
99
+ function flatAndValidateResults(results, argv) {
100
+ if (!argv.schemaValidate) {
101
+ return results.flatMap(({ value }) => {
102
+ if (Array.isArray(value))
103
+ value = (0, merge_deep_1.default)({}, ...value);
104
+ return value;
105
+ });
106
+ }
107
+ const validators = (0, utils_1.createValidators)(argv.schema, argv.detectFormat);
108
+ return results.flatMap(({ key, value }) => {
109
+ if (Array.isArray(value))
110
+ value = (0, merge_deep_1.default)({}, ...value);
111
+ const validator = validators[key];
112
+ if (validator(value))
113
+ return value;
114
+ utils_1.logger.error(`schema validation failed for ${chalk_1.default.yellow(key)}`, validator.errors);
115
+ throw new Error(`schema validation failed for ${key}`);
116
+ });
117
+ }
118
+ exports.flatAndValidateResults = flatAndValidateResults;
119
+ async function generateSchemaFrom(env, argv) {
120
+ const { resolve, nullable, detectFormat, schemaFile } = argv;
121
+ let schema = env.reduce((schema, { key, value }) => {
122
+ const env = Array.isArray(value) ? (0, merge_deep_1.default)({}, ...value) : value;
123
+ schema[key] = (0, utils_1.schemaFrom)(env, {
124
+ nullable,
125
+ strings: { detectFormat }
126
+ });
127
+ return schema;
128
+ }, {});
129
+ if (resolve === 'merge')
130
+ schema = (0, merge_deep_1.default)(argv.schema, schema);
131
+ await (0, utils_1.writeJson)(schemaFile, schema, true);
132
+ return schema;
133
+ }
134
+ exports.generateSchemaFrom = generateSchemaFrom;
135
+ //# sourceMappingURL=command.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.util.js","sourceRoot":"","sources":["../../src/utils/command.util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from './command.util';
2
+ export * from './interpolate.util';
3
+ export * from './json.util';
4
+ export * from './logger';
5
+ export * from './normalize.util';
6
+ export * from './schema.util';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC"}
package/utils/index.js ADDED
@@ -0,0 +1,23 @@
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("./command.util"), exports);
18
+ __exportStar(require("./interpolate.util"), exports);
19
+ __exportStar(require("./json.util"), exports);
20
+ __exportStar(require("./logger"), exports);
21
+ __exportStar(require("./normalize.util"), exports);
22
+ __exportStar(require("./schema.util"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,qDAAmC;AACnC,8CAA4B;AAC5B,2CAAyB;AACzB,mDAAiC;AACjC,gDAA8B"}
@@ -0,0 +1,4 @@
1
+ export declare function isRecord(obj: unknown): obj is Record<string, unknown>;
2
+ export declare function interpolate<T extends string | unknown>(value: T, args: Record<string, unknown>, delimiters?: [string, string]): T;
3
+ export declare function interpolateJson(values: Record<string, unknown>, args: Record<string, unknown>, delimiters?: [string, string]): Record<string, unknown>;
4
+ //# sourceMappingURL=interpolate.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpolate.util.d.ts","sourceRoot":"","sources":["../../src/utils/interpolate.util.ts"],"names":[],"mappings":"AASA,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIrE;AAaD,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,OAAO,EAClD,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU,GAAE,CAAC,MAAM,EAAE,MAAM,CAAgB,GAC5C,CAAC,CAaH;AAYD,wBAAgB,eAAe,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU,GAAE,CAAC,MAAM,EAAE,MAAM,CAAgB,GAC5C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKzB"}
@@ -0,0 +1,33 @@
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.interpolateJson = exports.interpolate = exports.isRecord = void 0;
7
+ const subslate_1 = __importDefault(require("subslate"));
8
+ function isRecord(obj) {
9
+ if (!obj || typeof obj !== 'object')
10
+ return false;
11
+ return Object.keys(obj).length > 0;
12
+ }
13
+ exports.isRecord = isRecord;
14
+ function interpolate(value, args, delimiters = ['[[', ']]']) {
15
+ if (typeof value === 'string') {
16
+ return (0, subslate_1.default)(value, args, {
17
+ startStopPairs: delimiters
18
+ });
19
+ }
20
+ if (Array.isArray(value))
21
+ return value.map((a) => interpolate(a, args, delimiters));
22
+ if (isRecord(value))
23
+ return interpolateJson(value, args, delimiters);
24
+ return value;
25
+ }
26
+ exports.interpolate = interpolate;
27
+ function interpolateJson(values, args, delimiters = ['[[', ']]']) {
28
+ for (const key in values)
29
+ values[key] = interpolate(values[key], args, delimiters);
30
+ return values;
31
+ }
32
+ exports.interpolateJson = interpolateJson;
33
+ //# sourceMappingURL=interpolate.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpolate.util.js","sourceRoot":"","sources":["../../src/utils/interpolate.util.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAShC,SAAgB,QAAQ,CAAC,GAAY;IACjC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAElD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACvC,CAAC;AAJD,4BAIC;AAaD,SAAgB,WAAW,CACvB,KAAQ,EACR,IAA6B,EAC7B,aAA+B,CAAC,IAAI,EAAE,IAAI,CAAC;IAE3C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC3B,OAAO,IAAA,kBAAQ,EAAC,KAAK,EAAE,IAAI,EAAE;YACzB,cAAc,EAAE,UAAU;SAC7B,CAAM,CAAC;KACX;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACpB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAM,CAAC;IAEnE,IAAI,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAM,CAAC;IAE1E,OAAO,KAAK,CAAC;AACjB,CAAC;AAjBD,kCAiBC;AAYD,SAAgB,eAAe,CAC3B,MAA+B,EAC/B,IAA6B,EAC7B,aAA+B,CAAC,IAAI,EAAE,IAAI,CAAC;IAE3C,KAAK,MAAM,GAAG,IAAI,MAAM;QACpB,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAE7D,OAAO,MAAM,CAAC;AAClB,CAAC;AATD,0CASC"}
@@ -0,0 +1,5 @@
1
+ export declare function resolvePath(filePath: string): string;
2
+ export declare function readJson<T = Record<string, any>>(path: string): Promise<[T | Record<string, any>, boolean] | never>;
3
+ export declare function writeJson(path: string, content: Record<string, unknown>, overwrite?: boolean): Promise<boolean | never>;
4
+ export declare function writeEnvFromJson(path: string, content: Record<string, unknown>, overwrite?: boolean): Promise<boolean | never>;
5
+ //# sourceMappingURL=json.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.util.d.ts","sourceRoot":"","sources":["../../src/utils/json.util.ts"],"names":[],"mappings":"AAaA,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOpD;AAWD,wBAAsB,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAClD,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAIrD;AAYD,wBAAsB,SAAS,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,UAAQ,GAClB,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,CAQ1B;AAYD,wBAAsB,gBAAgB,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,UAAQ,GAClB,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,CAiB1B"}
@@ -0,0 +1,47 @@
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.writeEnvFromJson = exports.writeJson = exports.readJson = exports.resolvePath = void 0;
7
+ const os_1 = __importDefault(require("os"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const fs_1 = require("fs");
10
+ const promises_1 = require("fs/promises");
11
+ function resolvePath(filePath) {
12
+ const home = os_1.default.homedir();
13
+ if (home !== undefined)
14
+ filePath = filePath.replace(/^~($|\/|\\)/, `${home}$1`);
15
+ return path_1.default.resolve(process.cwd(), filePath);
16
+ }
17
+ exports.resolvePath = resolvePath;
18
+ async function readJson(path) {
19
+ if (!(0, fs_1.existsSync)(path))
20
+ return [{}, false];
21
+ return [JSON.parse(await (0, promises_1.readFile)(path, 'utf8')), true];
22
+ }
23
+ exports.readJson = readJson;
24
+ async function writeJson(path, content, overwrite = false) {
25
+ const exists = (0, fs_1.existsSync)(path);
26
+ if (exists && !overwrite)
27
+ return false;
28
+ await (0, promises_1.writeFile)(path, JSON.stringify(content, undefined, 4), 'utf8');
29
+ return true;
30
+ }
31
+ exports.writeJson = writeJson;
32
+ async function writeEnvFromJson(path, content, overwrite = false) {
33
+ const exists = (0, fs_1.existsSync)(path);
34
+ if (exists && !overwrite)
35
+ return false;
36
+ let data = '';
37
+ for (const key in content) {
38
+ let value = content[key];
39
+ if (typeof value === 'string')
40
+ value = `"${value}"`;
41
+ data += `${key}=${value}\n`;
42
+ }
43
+ await (0, promises_1.writeFile)(path, data, 'utf8');
44
+ return true;
45
+ }
46
+ exports.writeEnvFromJson = writeEnvFromJson;
47
+ //# sourceMappingURL=json.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.util.js","sourceRoot":"","sources":["../../src/utils/json.util.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,2BAAgC;AAChC,0CAAkD;AAUlD,SAAgB,WAAW,CAAC,QAAgB;IACxC,MAAM,IAAI,GAAG,YAAE,CAAC,OAAO,EAAE,CAAC;IAE1B,IAAI,IAAI,KAAK,SAAS;QAClB,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC;IAE5D,OAAO,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;AACjD,CAAC;AAPD,kCAOC;AAWM,KAAK,UAAU,QAAQ,CAC1B,IAAY;IAEZ,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC;QAAE,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAE1C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAA,mBAAQ,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC5D,CAAC;AAND,4BAMC;AAYM,KAAK,UAAU,SAAS,CAC3B,IAAY,EACZ,OAAgC,EAChC,SAAS,GAAG,KAAK;IAEjB,MAAM,MAAM,GAAG,IAAA,eAAU,EAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,MAAM,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAEvC,MAAM,IAAA,oBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAErE,OAAO,IAAI,CAAC;AAChB,CAAC;AAZD,8BAYC;AAYM,KAAK,UAAU,gBAAgB,CAClC,IAAY,EACZ,OAAgC,EAChC,SAAS,GAAG,KAAK;IAEjB,MAAM,MAAM,GAAG,IAAA,eAAU,EAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,MAAM,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAEvC,IAAI,IAAI,GAAG,EAAE,CAAC;IAEd,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;QACvB,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,KAAK,GAAG,IAAI,KAAK,GAAG,CAAC;QAEpD,IAAI,IAAI,GAAG,GAAG,IAAI,KAAK,IAAI,CAAC;KAC/B;IAED,MAAM,IAAA,oBAAS,EAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAEpC,OAAO,IAAI,CAAC;AAChB,CAAC;AArBD,4CAqBC"}
@@ -0,0 +1,3 @@
1
+ import { LoggerWithoutCallSite as Logger } from 'tslog';
2
+ export declare const logger: Logger;
3
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,IAAI,MAAM,EAAE,MAAM,OAAO,CAAC;AAKxD,eAAO,MAAM,MAAM,QAYjB,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logger = void 0;
4
+ const tslog_1 = require("tslog");
5
+ exports.logger = new tslog_1.LoggerWithoutCallSite({
6
+ displayDateTime: true,
7
+ displayLoggerName: false,
8
+ displayInstanceName: false,
9
+ displayFunctionName: false,
10
+ prettyInspectHighlightStyles: {
11
+ regexp: 'green',
12
+ number: 'cyan'
13
+ },
14
+ displayFilePath: 'hidden',
15
+ dateTimePattern: 'hour:minute:second.millisecond',
16
+ maskPlaceholder: '***'
17
+ });
18
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;AAAA,iCAAwD;AAK3C,QAAA,MAAM,GAAG,IAAI,6BAAM,CAAC;IAC7B,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,KAAK;IACxB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,4BAA4B,EAAE;QAC1B,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,MAAM;KACjB;IACD,eAAe,EAAE,QAAQ;IACzB,eAAe,EAAE,gCAAgC;IACjD,eAAe,EAAE,KAAK;CACzB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function normalize(obj: Record<string, any>, nestingDelimiter?: string, arrayDescomposition?: boolean, pkey?: string): Record<string, string>;
2
+ //# sourceMappingURL=normalize.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.util.d.ts","sourceRoot":"","sources":["../../src/utils/normalize.util.ts"],"names":[],"mappings":"AAcA,wBAAgB,SAAS,CACrB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,gBAAgB,SAAO,EACvB,mBAAmB,UAAQ,EAC3B,IAAI,SAAK,GACV,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA2CxB"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalize = void 0;
4
+ function normalize(obj, nestingDelimiter = '__', arrayDescomposition = false, pkey = '') {
5
+ const flattened = {};
6
+ for (let key in obj) {
7
+ const value = obj[key];
8
+ const type = typeof value;
9
+ if (value === null || value === undefined || type === 'function')
10
+ continue;
11
+ if (key[0] === '#')
12
+ continue;
13
+ key = pkey + key.replace('$', '');
14
+ if (type !== 'object') {
15
+ flattened[key] = value;
16
+ continue;
17
+ }
18
+ if (Array.isArray(value)) {
19
+ normalizeArray(flattened, key, value, nestingDelimiter, arrayDescomposition);
20
+ }
21
+ else {
22
+ Object.assign(flattened, normalize(value, nestingDelimiter, arrayDescomposition, `${key}${nestingDelimiter}`));
23
+ }
24
+ }
25
+ return flattened;
26
+ }
27
+ exports.normalize = normalize;
28
+ function normalizeArray(flattened, key, value, nestingDelimiter = '__', arrayDescomposition = false) {
29
+ if (arrayDescomposition) {
30
+ key = `${key}${nestingDelimiter}`;
31
+ for (let i = 0; i < value.length; i++) {
32
+ if (typeof value[i] === 'object') {
33
+ Object.assign(flattened, normalize(value[i], nestingDelimiter, arrayDescomposition, `${key}${i}${nestingDelimiter}`));
34
+ }
35
+ else {
36
+ flattened[`${key}${i}`] = value[i];
37
+ }
38
+ }
39
+ }
40
+ else {
41
+ flattened[key] = value.filter((v) => typeof v !== 'object').join(',');
42
+ }
43
+ }
44
+ //# sourceMappingURL=normalize.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.util.js","sourceRoot":"","sources":["../../src/utils/normalize.util.ts"],"names":[],"mappings":";;;AAcA,SAAgB,SAAS,CACrB,GAAwB,EACxB,gBAAgB,GAAG,IAAI,EACvB,mBAAmB,GAAG,KAAK,EAC3B,IAAI,GAAG,EAAE;IAET,MAAM,SAAS,GAA2B,EAAE,CAAC;IAE7C,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;QACjB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;QAE1B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU;YAC5D,SAAS;QAGb,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,SAAS;QAE7B,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAElC,IAAI,IAAI,KAAK,QAAQ,EAAE;YACnB,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAEvB,SAAS;SACZ;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtB,cAAc,CACV,SAAS,EACT,GAAG,EACH,KAAK,EACL,gBAAgB,EAChB,mBAAmB,CACtB,CAAC;SACL;aAAM;YACH,MAAM,CAAC,MAAM,CACT,SAAS,EACT,SAAS,CACL,KAAK,EACL,gBAAgB,EAChB,mBAAmB,EACnB,GAAG,GAAG,GAAG,gBAAgB,EAAE,CAC9B,CACJ,CAAC;SACL;KACJ;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAhDD,8BAgDC;AAWD,SAAS,cAAc,CACnB,SAAiC,EACjC,GAAW,EACX,KAAY,EACZ,gBAAgB,GAAG,IAAI,EACvB,mBAAmB,GAAG,KAAK;IAE3B,IAAI,mBAAmB,EAAE;QACrB,GAAG,GAAG,GAAG,GAAG,GAAG,gBAAgB,EAAE,CAAC;QAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;gBAC9B,MAAM,CAAC,MAAM,CACT,SAAS,EACT,SAAS,CACL,KAAK,CAAC,CAAC,CAAC,EACR,gBAAgB,EAChB,mBAAmB,EACnB,GAAG,GAAG,GAAG,CAAC,GAAG,gBAAgB,EAAE,CAClC,CACJ,CAAC;aACL;iBAAM;gBACH,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;aACtC;SACJ;KACJ;SAAM;QACH,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACzE;AACL,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ValidateFunction } from 'ajv';
2
+ import { Options } from 'to-json-schema';
3
+ export declare function schemaFrom(json: Record<string, unknown>, options?: Options & {
4
+ nullable?: boolean;
5
+ }): Record<string, unknown>;
6
+ export declare function createValidators(schemaLookup: Record<string, object>, enableFormats?: boolean): Record<string, ValidateFunction>;
7
+ //# sourceMappingURL=schema.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.util.d.ts","sourceRoot":"","sources":["../../src/utils/schema.util.ts"],"names":[],"mappings":"AAAA,OAAY,EAAU,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAEpD,OAAqB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AA+BvD,wBAAgB,UAAU,CACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE,OAAO,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAazB;AAaD,wBAAgB,gBAAgB,CAC5B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,aAAa,UAAO,GACrB,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAmBlC"}
@@ -0,0 +1,51 @@
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.createValidators = exports.schemaFrom = void 0;
7
+ const ajv_1 = __importDefault(require("ajv"));
8
+ const ajv_formats_1 = __importDefault(require("ajv-formats"));
9
+ const to_json_schema_1 = __importDefault(require("to-json-schema"));
10
+ const FORMAT_REGEXPS = {
11
+ 'ip-address': /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d{1,2})\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d{1,2})$/,
12
+ color: /^(#?([\dA-Fa-f]{3}){1,2}\b|aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow|(rgb\(\s*\b(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\b\s*,\s*\b(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\b\s*,\s*\b(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\b\s*\))|(rgb\(\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*\)))$/,
13
+ hostname: /^(?=.{1,255}$)[\dA-Za-z](?:(?:[\dA-Za-z]|-){0,61}[\dA-Za-z])?(?:\.[\dA-Za-z](?:(?:[\dA-Za-z]|-){0,61}[\dA-Za-z])?)*\.?$/,
14
+ alphanumeric: /^[\dA-Za-z]+$/,
15
+ 'utc-millisec': (input) => !Number.isNaN(+input),
16
+ alpha: /^[A-Za-z]+$/,
17
+ style: /\s*(.+?):\s*([^;]+);?/g,
18
+ phone: /^\+(?:\d ?){6,14}\d$/
19
+ };
20
+ function schemaFrom(json, options) {
21
+ return (0, to_json_schema_1.default)(json, {
22
+ required: false,
23
+ ...options,
24
+ postProcessFnc: (type, schema, value, defaultFunc) => {
25
+ var _a;
26
+ if (value !== json) {
27
+ schema.type = [type];
28
+ schema.nullable = (_a = options === null || options === void 0 ? void 0 : options.nullable) !== null && _a !== void 0 ? _a : false;
29
+ }
30
+ return defaultFunc(type, schema, value);
31
+ }
32
+ });
33
+ }
34
+ exports.schemaFrom = schemaFrom;
35
+ function createValidators(schemaLookup, enableFormats = true) {
36
+ const ajv = new ajv_1.default({
37
+ allErrors: true,
38
+ allowUnionTypes: true
39
+ });
40
+ if (enableFormats) {
41
+ (0, ajv_formats_1.default)(ajv, { mode: 'fast' });
42
+ for (const key in FORMAT_REGEXPS)
43
+ ajv.addFormat(key, FORMAT_REGEXPS[key]);
44
+ }
45
+ const validators = {};
46
+ for (const key in schemaLookup)
47
+ validators[key] = ajv.compile(schemaLookup[key]);
48
+ return validators;
49
+ }
50
+ exports.createValidators = createValidators;
51
+ //# sourceMappingURL=schema.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.util.js","sourceRoot":"","sources":["../../src/utils/schema.util.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoD;AACpD,8DAAqC;AACrC,oEAAuD;AAEvD,MAAM,cAAc,GAA2B;IAC3C,YAAY,EACR,+EAA+E;IAEnF,KAAK,EAAE,8VAA8V;IAErW,QAAQ,EACJ,yHAAyH;IAE7H,YAAY,EAAE,eAAe;IAE7B,cAAc,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;IAExD,KAAK,EAAE,aAAa;IAEpB,KAAK,EAAE,wBAAwB;IAE/B,KAAK,EAAE,sBAAsB;CAChC,CAAC;AAWF,SAAgB,UAAU,CACtB,IAA6B,EAC7B,OAA0C;IAE1C,OAAO,IAAA,wBAAY,EAAC,IAAI,EAAE;QACtB,QAAQ,EAAE,KAAK;QACf,GAAG,OAAO;QACV,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;;YACjD,IAAI,KAAK,KAAK,IAAI,EAAE;gBAChB,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrB,MAAM,CAAC,QAAQ,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,KAAK,CAAC;aAChD;YAED,OAAO,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;KACJ,CAAC,CAAC;AACP,CAAC;AAhBD,gCAgBC;AAaD,SAAgB,gBAAgB,CAC5B,YAAoC,EACpC,aAAa,GAAG,IAAI;IAEpB,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC;QAChB,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,IAAI;KACxB,CAAC,CAAC;IAEH,IAAI,aAAa,EAAE;QACf,IAAA,qBAAU,EAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAElC,KAAK,MAAM,GAAG,IAAI,cAAc;YAC5B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;KAC/C;IAED,MAAM,UAAU,GAAqC,EAAE,CAAC;IAExD,KAAK,MAAM,GAAG,IAAI,YAAY;QAC1B,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IAErD,OAAO,UAAU,CAAC;AACtB,CAAC;AAtBD,4CAsBC"}