@achs/env 2.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc.json +329 -0
  3. package/.vscode/extensions.json +18 -0
  4. package/.vscode/launch.json +30 -0
  5. package/.vscode/settings.json +29 -0
  6. package/CHANGELOG.md +13 -0
  7. package/README.md +14 -7
  8. package/jest.config.json +28 -0
  9. package/package.json +16 -16
  10. package/{arguments.js → src/arguments.ts} +38 -14
  11. package/src/commands/env.command.ts +139 -0
  12. package/src/commands/export.command.ts +88 -0
  13. package/{commands/index.d.ts → src/commands/index.ts} +0 -1
  14. package/src/commands/pull.command.ts +52 -0
  15. package/src/commands/push.command.ts +48 -0
  16. package/src/commands/schema.command.ts +31 -0
  17. package/src/exec.ts +221 -0
  18. package/{index.d.ts → src/index.ts} +0 -1
  19. package/{interfaces/index.d.ts → src/interfaces/index.ts} +0 -1
  20. package/src/interfaces/loader.interface.ts +66 -0
  21. package/src/main.ts +6 -0
  22. package/src/providers/app-settings.provider.ts +67 -0
  23. package/src/providers/azure-key-vault.provider.ts +277 -0
  24. package/src/providers/index.ts +29 -0
  25. package/src/providers/local.provider.ts +44 -0
  26. package/src/providers/package-json.provider.ts +39 -0
  27. package/src/utils/command.util.ts +223 -0
  28. package/{utils/index.d.ts → src/utils/index.ts} +0 -1
  29. package/src/utils/interpolate.util.ts +65 -0
  30. package/src/utils/json.util.ts +116 -0
  31. package/{utils/logger.js → src/utils/logger.ts} +6 -6
  32. package/src/utils/normalize.util.ts +142 -0
  33. package/src/utils/schema.util.ts +191 -0
  34. package/tests/env/appsettings.json +32 -0
  35. package/tests/env/dev.env.json +12 -0
  36. package/tests/env/dev.local.env.json +9 -0
  37. package/tests/env/env.schema.json +225 -0
  38. package/tests/env/keys.json +7 -0
  39. package/tests/env/settings/schema.json +239 -0
  40. package/tests/env/settings/settings.json +22 -0
  41. package/tests/env.int.test.ts +42 -0
  42. package/tests/exec.ts +19 -0
  43. package/tests/export.int.test.ts +9 -0
  44. package/tests/pull-push.int.test.ts +15 -0
  45. package/tests/run.js +32 -0
  46. package/tests/schema.int.test.ts +9 -0
  47. package/tests/setup.ts +13 -0
  48. package/tsconfig.build.json +10 -0
  49. package/tsconfig.json +37 -0
  50. package/arguments.d.ts +0 -25
  51. package/arguments.d.ts.map +0 -1
  52. package/arguments.js.map +0 -1
  53. package/commands/env.command.d.ts +0 -8
  54. package/commands/env.command.d.ts.map +0 -1
  55. package/commands/env.command.js +0 -85
  56. package/commands/env.command.js.map +0 -1
  57. package/commands/export.command.d.ts +0 -8
  58. package/commands/export.command.d.ts.map +0 -1
  59. package/commands/export.command.js +0 -54
  60. package/commands/export.command.js.map +0 -1
  61. package/commands/index.d.ts.map +0 -1
  62. package/commands/index.js +0 -14
  63. package/commands/index.js.map +0 -1
  64. package/commands/pull.command.d.ts +0 -7
  65. package/commands/pull.command.d.ts.map +0 -1
  66. package/commands/pull.command.js +0 -39
  67. package/commands/pull.command.js.map +0 -1
  68. package/commands/push.command.d.ts +0 -7
  69. package/commands/push.command.d.ts.map +0 -1
  70. package/commands/push.command.js +0 -38
  71. package/commands/push.command.js.map +0 -1
  72. package/commands/schema.command.d.ts +0 -4
  73. package/commands/schema.command.d.ts.map +0 -1
  74. package/commands/schema.command.js +0 -18
  75. package/commands/schema.command.js.map +0 -1
  76. package/exec.d.ts +0 -3
  77. package/exec.d.ts.map +0 -1
  78. package/exec.js +0 -142
  79. package/exec.js.map +0 -1
  80. package/index.d.ts.map +0 -1
  81. package/index.js +0 -20
  82. package/index.js.map +0 -1
  83. package/interfaces/index.d.ts.map +0 -1
  84. package/interfaces/index.js +0 -18
  85. package/interfaces/index.js.map +0 -1
  86. package/interfaces/loader.interface.d.ts +0 -21
  87. package/interfaces/loader.interface.d.ts.map +0 -1
  88. package/interfaces/loader.interface.js +0 -3
  89. package/interfaces/loader.interface.js.map +0 -1
  90. package/main.d.ts +0 -3
  91. package/main.d.ts.map +0 -1
  92. package/main.js +0 -6
  93. package/main.js.map +0 -1
  94. package/providers/app-settings.provider.d.ts +0 -8
  95. package/providers/app-settings.provider.d.ts.map +0 -1
  96. package/providers/app-settings.provider.js +0 -50
  97. package/providers/app-settings.provider.js.map +0 -1
  98. package/providers/azure-key-vault.provider.d.ts +0 -22
  99. package/providers/azure-key-vault.provider.d.ts.map +0 -1
  100. package/providers/azure-key-vault.provider.js +0 -164
  101. package/providers/azure-key-vault.provider.js.map +0 -1
  102. package/providers/index.d.ts +0 -8
  103. package/providers/index.d.ts.map +0 -1
  104. package/providers/index.js +0 -28
  105. package/providers/index.js.map +0 -1
  106. package/providers/package-json.provider.d.ts +0 -8
  107. package/providers/package-json.provider.d.ts.map +0 -1
  108. package/providers/package-json.provider.js +0 -29
  109. package/providers/package-json.provider.js.map +0 -1
  110. package/tsconfig.build.tsbuildinfo +0 -1
  111. package/utils/command.util.d.ts +0 -13
  112. package/utils/command.util.d.ts.map +0 -1
  113. package/utils/command.util.js +0 -134
  114. package/utils/command.util.js.map +0 -1
  115. package/utils/index.d.ts.map +0 -1
  116. package/utils/index.js +0 -23
  117. package/utils/index.js.map +0 -1
  118. package/utils/interpolate.util.d.ts +0 -4
  119. package/utils/interpolate.util.d.ts.map +0 -1
  120. package/utils/interpolate.util.js +0 -33
  121. package/utils/interpolate.util.js.map +0 -1
  122. package/utils/json.util.d.ts +0 -5
  123. package/utils/json.util.d.ts.map +0 -1
  124. package/utils/json.util.js +0 -48
  125. package/utils/json.util.js.map +0 -1
  126. package/utils/logger.d.ts +0 -3
  127. package/utils/logger.d.ts.map +0 -1
  128. package/utils/logger.js.map +0 -1
  129. package/utils/normalize.util.d.ts +0 -3
  130. package/utils/normalize.util.d.ts.map +0 -1
  131. package/utils/normalize.util.js +0 -61
  132. package/utils/normalize.util.js.map +0 -1
  133. package/utils/schema.util.d.ts +0 -11
  134. package/utils/schema.util.d.ts.map +0 -1
  135. package/utils/schema.util.js +0 -100
  136. package/utils/schema.util.js.map +0 -1
@@ -1,33 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,5 +0,0 @@
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, undefinedAsNull?: 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
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.util.d.ts","sourceRoot":"","sources":["../../src/utils/json.util.ts"],"names":[],"mappings":"AAwBA,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;AAaD,wBAAsB,SAAS,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,UAAQ,EACjB,eAAe,UAAQ,GACxB,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,CAgB1B;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"}
@@ -1,48 +0,0 @@
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
- const replacer = (_, value) => value === undefined ? null : value;
12
- function resolvePath(filePath) {
13
- const home = os_1.default.homedir();
14
- if (home !== undefined)
15
- filePath = filePath.replace(/^~($|\/|\\)/, `${home}$1`);
16
- return path_1.default.resolve(process.cwd(), filePath);
17
- }
18
- exports.resolvePath = resolvePath;
19
- async function readJson(path) {
20
- if (!(0, fs_1.existsSync)(path))
21
- return [{}, false];
22
- return [JSON.parse(await (0, promises_1.readFile)(path, 'utf8')), true];
23
- }
24
- exports.readJson = readJson;
25
- async function writeJson(path, content, overwrite = false, undefinedAsNull = false) {
26
- const exists = (0, fs_1.existsSync)(path);
27
- if (exists && !overwrite)
28
- return false;
29
- await (0, promises_1.writeFile)(path, `${JSON.stringify(content, undefinedAsNull ? replacer : undefined, 4)}\n`, 'utf8');
30
- return true;
31
- }
32
- exports.writeJson = writeJson;
33
- async function writeEnvFromJson(path, content, overwrite = false) {
34
- const exists = (0, fs_1.existsSync)(path);
35
- if (exists && !overwrite)
36
- return false;
37
- let data = '';
38
- for (const key in content) {
39
- let value = content[key];
40
- if (typeof value === 'string')
41
- value = `"${value}"`;
42
- data += `${key}=${value}\n`;
43
- }
44
- await (0, promises_1.writeFile)(path, data, 'utf8');
45
- return true;
46
- }
47
- exports.writeEnvFromJson = writeEnvFromJson;
48
- //# sourceMappingURL=json.util.js.map
@@ -1 +0,0 @@
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,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,KAAU,EAAuB,EAAE,CAC5D,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAUvC,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;AAaM,KAAK,UAAU,SAAS,CAC3B,IAAY,EACZ,OAAgC,EAChC,SAAS,GAAG,KAAK,EACjB,eAAe,GAAG,KAAK;IAEvB,MAAM,MAAM,GAAG,IAAA,eAAU,EAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,MAAM,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAEvC,MAAM,IAAA,oBAAS,EACX,IAAI,EACJ,GAAG,IAAI,CAAC,SAAS,CACb,OAAO,EACP,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EACtC,CAAC,CACJ,IAAI,EACL,MAAM,CACT,CAAC;IAEF,OAAO,IAAI,CAAC;AAChB,CAAC;AArBD,8BAqBC;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"}
package/utils/logger.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import { LoggerWithoutCallSite as Logger } from 'tslog';
2
- export declare const logger: Logger;
3
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
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"}
@@ -1,3 +0,0 @@
1
- export declare function flatten(obj: Record<string, any>, nestingDelimiter?: string, pkey?: string): Record<string, string>;
2
- export declare function normalize(obj: Record<string, any>, nestingDelimiter?: string, arrayDescomposition?: boolean, pkey?: string): Record<string, string>;
3
- //# sourceMappingURL=normalize.util.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"normalize.util.d.ts","sourceRoot":"","sources":["../../src/utils/normalize.util.ts"],"names":[],"mappings":"AAYA,wBAAgB,OAAO,CACnB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,gBAAgB,SAAO,EACvB,IAAI,SAAK,GACV,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA0BxB;AAcD,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,CAyCxB"}
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.normalize = exports.flatten = void 0;
4
- function flatten(obj, nestingDelimiter = '__', pkey = '') {
5
- const flattened = {};
6
- for (let key in obj) {
7
- const value = obj[key];
8
- const type = typeof value;
9
- if (value === undefined || type === 'function')
10
- continue;
11
- if (key[0] === '#')
12
- continue;
13
- key = pkey + key;
14
- if (value === null || type !== 'object' || Array.isArray(value)) {
15
- flattened[key] = value;
16
- continue;
17
- }
18
- Object.assign(flattened, flatten(value, nestingDelimiter, `${key}${nestingDelimiter}`));
19
- }
20
- return flattened;
21
- }
22
- exports.flatten = flatten;
23
- function normalize(obj, nestingDelimiter = '__', arrayDescomposition = false, pkey = '') {
24
- const flattened = {};
25
- for (let key in obj) {
26
- const value = obj[key];
27
- const type = typeof value;
28
- if (value === null || value === undefined || type === 'function')
29
- continue;
30
- key = pkey + key.replace('$', '');
31
- if (type !== 'object') {
32
- flattened[key] = value;
33
- continue;
34
- }
35
- if (Array.isArray(value)) {
36
- normalizeArray(flattened, key, value, nestingDelimiter, arrayDescomposition);
37
- }
38
- else {
39
- Object.assign(flattened, normalize(value, nestingDelimiter, arrayDescomposition, `${key}${nestingDelimiter}`));
40
- }
41
- }
42
- return flattened;
43
- }
44
- exports.normalize = normalize;
45
- function normalizeArray(flattened, key, value, nestingDelimiter = '__', arrayDescomposition = false) {
46
- if (arrayDescomposition) {
47
- key = `${key}${nestingDelimiter}`;
48
- for (let i = 0; i < value.length; i++) {
49
- if (typeof value[i] === 'object') {
50
- Object.assign(flattened, normalize(value[i], nestingDelimiter, arrayDescomposition, `${key}${i}${nestingDelimiter}`));
51
- }
52
- else {
53
- flattened[`${key}${i}`] = value[i];
54
- }
55
- }
56
- }
57
- else {
58
- flattened[key] = value.filter((v) => typeof v !== 'object').join(',');
59
- }
60
- }
61
- //# sourceMappingURL=normalize.util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"normalize.util.js","sourceRoot":"","sources":["../../src/utils/normalize.util.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { JSONSchemaType, 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 isJsonSchemaObject(schema: Record<string, unknown>): schema is JSONSchemaType<object>;
7
- export declare function schemaToJson(schema: Record<string, unknown>, container?: Record<string, any>): unknown;
8
- export declare function flatSchema(schema: Record<string, unknown>, parentKey?: string, nestingDelimiter?: string, container?: Record<string, any>): Record<string, unknown>;
9
- export declare function createValidator(schema: Record<string, unknown>, enableFormats?: boolean): ValidateFunction;
10
- export declare function createValidators(schemaLookup: Record<string, object>, enableFormats?: boolean): Record<string, ValidateFunction>;
11
- //# sourceMappingURL=schema.util.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.util.d.ts","sourceRoot":"","sources":["../../src/utils/schema.util.ts"],"names":[],"mappings":"AAAA,OAAY,EAAU,cAAc,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAEpE,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;AAUD,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,CAIlC;AAWD,wBAAgB,YAAY,CACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GACpC,OAAO,CAST;AAaD,wBAAgB,UAAU,CACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,SAAK,EACd,gBAAgB,SAAO,EACvB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GACpC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmBzB;AAaD,wBAAgB,eAAe,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,aAAa,UAAO,GACrB,gBAAgB,CAclB;AAaD,wBAAgB,gBAAgB,CAC5B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,aAAa,UAAO,GACrB,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAmBlC"}
@@ -1,100 +0,0 @@
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.createValidator = exports.flatSchema = exports.schemaToJson = exports.isJsonSchemaObject = 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 isJsonSchemaObject(schema) {
36
- if (schema.type === 'object')
37
- return true;
38
- return Array.isArray(schema.type) && schema.type.includes('object');
39
- }
40
- exports.isJsonSchemaObject = isJsonSchemaObject;
41
- function schemaToJson(schema, container = {}) {
42
- var _a;
43
- if (isJsonSchemaObject(schema)) {
44
- for (const key in schema.properties)
45
- container[key] = schemaToJson(schema.properties[key]);
46
- return container;
47
- }
48
- else {
49
- return (_a = schema.default) !== null && _a !== void 0 ? _a : (schema.nullable ? null : undefined);
50
- }
51
- }
52
- exports.schemaToJson = schemaToJson;
53
- function flatSchema(schema, parentKey = '', nestingDelimiter = '__', container = {}) {
54
- if (isJsonSchemaObject(schema)) {
55
- for (const key in schema.properties) {
56
- if (key[0] === '#')
57
- continue;
58
- const subKey = parentKey + (parentKey ? nestingDelimiter : '') + key;
59
- container = {
60
- ...container,
61
- ...flatSchema(schema.properties[key], subKey, nestingDelimiter)
62
- };
63
- }
64
- return container;
65
- }
66
- else {
67
- return { [parentKey]: schema };
68
- }
69
- }
70
- exports.flatSchema = flatSchema;
71
- function createValidator(schema, enableFormats = true) {
72
- const ajv = new ajv_1.default({
73
- allErrors: true,
74
- allowUnionTypes: true
75
- });
76
- if (enableFormats) {
77
- (0, ajv_formats_1.default)(ajv, { mode: 'fast' });
78
- for (const key in FORMAT_REGEXPS)
79
- ajv.addFormat(key, FORMAT_REGEXPS[key]);
80
- }
81
- return ajv.compile(schema);
82
- }
83
- exports.createValidator = createValidator;
84
- function createValidators(schemaLookup, enableFormats = true) {
85
- const ajv = new ajv_1.default({
86
- allErrors: true,
87
- allowUnionTypes: true
88
- });
89
- if (enableFormats) {
90
- (0, ajv_formats_1.default)(ajv, { mode: 'fast' });
91
- for (const key in FORMAT_REGEXPS)
92
- ajv.addFormat(key, FORMAT_REGEXPS[key]);
93
- }
94
- const validators = {};
95
- for (const key in schemaLookup)
96
- validators[key] = ajv.compile(schemaLookup[key]);
97
- return validators;
98
- }
99
- exports.createValidators = createValidators;
100
- //# sourceMappingURL=schema.util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.util.js","sourceRoot":"","sources":["../../src/utils/schema.util.ts"],"names":[],"mappings":"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"}