@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.
- package/CHANGELOG.md +11 -0
- package/LICENSE.md +19 -0
- package/README.md +659 -0
- package/arguments.d.ts +22 -0
- package/arguments.d.ts.map +1 -0
- package/arguments.js +105 -0
- package/arguments.js.map +1 -0
- package/commands/env.command.d.ts +8 -0
- package/commands/env.command.d.ts.map +1 -0
- package/commands/env.command.js +63 -0
- package/commands/env.command.js.map +1 -0
- package/commands/export.command.d.ts +8 -0
- package/commands/export.command.d.ts.map +1 -0
- package/commands/export.command.js +51 -0
- package/commands/export.command.js.map +1 -0
- package/commands/index.d.ts +6 -0
- package/commands/index.d.ts.map +1 -0
- package/commands/index.js +14 -0
- package/commands/index.js.map +1 -0
- package/commands/pull.command.d.ts +7 -0
- package/commands/pull.command.d.ts.map +1 -0
- package/commands/pull.command.js +39 -0
- package/commands/pull.command.js.map +1 -0
- package/commands/push.command.d.ts +7 -0
- package/commands/push.command.d.ts.map +1 -0
- package/commands/push.command.js +38 -0
- package/commands/push.command.js.map +1 -0
- package/commands/schema.command.d.ts +4 -0
- package/commands/schema.command.d.ts.map +1 -0
- package/commands/schema.command.js +18 -0
- package/commands/schema.command.js.map +1 -0
- package/exec.d.ts +3 -0
- package/exec.d.ts.map +1 -0
- package/exec.js +142 -0
- package/exec.js.map +1 -0
- package/index.d.ts +4 -0
- package/index.d.ts.map +1 -0
- package/index.js +20 -0
- package/index.js.map +1 -0
- package/interfaces/index.d.ts +2 -0
- package/interfaces/index.d.ts.map +1 -0
- package/interfaces/index.js +18 -0
- package/interfaces/index.js.map +1 -0
- package/interfaces/loader.interface.d.ts +21 -0
- package/interfaces/loader.interface.d.ts.map +1 -0
- package/interfaces/loader.interface.js +3 -0
- package/interfaces/loader.interface.js.map +1 -0
- package/main.d.ts +3 -0
- package/main.d.ts.map +1 -0
- package/main.js +6 -0
- package/main.js.map +1 -0
- package/package.json +85 -0
- package/providers/app-settings.provider.d.ts +9 -0
- package/providers/app-settings.provider.d.ts.map +1 -0
- package/providers/app-settings.provider.js +50 -0
- package/providers/app-settings.provider.js.map +1 -0
- package/providers/index.d.ts +8 -0
- package/providers/index.d.ts.map +1 -0
- package/providers/index.js +28 -0
- package/providers/index.js.map +1 -0
- package/providers/package-json.provider.d.ts +8 -0
- package/providers/package-json.provider.d.ts.map +1 -0
- package/providers/package-json.provider.js +29 -0
- package/providers/package-json.provider.js.map +1 -0
- package/providers/secrets.provider.d.ts +9 -0
- package/providers/secrets.provider.d.ts.map +1 -0
- package/providers/secrets.provider.js +43 -0
- package/providers/secrets.provider.js.map +1 -0
- package/tsconfig.build.tsbuildinfo +1 -0
- package/utils/command.util.d.ts +12 -0
- package/utils/command.util.d.ts.map +1 -0
- package/utils/command.util.js +135 -0
- package/utils/command.util.js.map +1 -0
- package/utils/index.d.ts +7 -0
- package/utils/index.d.ts.map +1 -0
- package/utils/index.js +23 -0
- package/utils/index.js.map +1 -0
- package/utils/interpolate.util.d.ts +4 -0
- package/utils/interpolate.util.d.ts.map +1 -0
- package/utils/interpolate.util.js +33 -0
- package/utils/interpolate.util.js.map +1 -0
- package/utils/json.util.d.ts +5 -0
- package/utils/json.util.d.ts.map +1 -0
- package/utils/json.util.js +47 -0
- package/utils/json.util.js.map +1 -0
- package/utils/logger.d.ts +3 -0
- package/utils/logger.d.ts.map +1 -0
- package/utils/logger.js +18 -0
- package/utils/logger.js.map +1 -0
- package/utils/normalize.util.d.ts +2 -0
- package/utils/normalize.util.d.ts.map +1 -0
- package/utils/normalize.util.js +44 -0
- package/utils/normalize.util.js.map +1 -0
- package/utils/schema.util.d.ts +7 -0
- package/utils/schema.util.d.ts.map +1 -0
- package/utils/schema.util.js +51 -0
- 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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"}
|
package/utils/index.d.ts
ADDED
|
@@ -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 @@
|
|
|
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"}
|
package/utils/logger.js
ADDED
|
@@ -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 @@
|
|
|
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"}
|