@lindorm/config 0.1.2 → 0.2.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 (42) hide show
  1. package/.node_config.json +3 -0
  2. package/.node_config.yml +3 -0
  3. package/CHANGELOG.md +12 -0
  4. package/dist/cli.d.ts +3 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +56 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/types/types.d.ts +8 -0
  9. package/dist/types/types.d.ts.map +1 -1
  10. package/dist/utils/configuration.d.ts +3 -13
  11. package/dist/utils/configuration.d.ts.map +1 -1
  12. package/dist/utils/configuration.js +14 -9
  13. package/dist/utils/configuration.js.map +1 -1
  14. package/dist/utils/private/coerce-all.d.ts +3 -0
  15. package/dist/utils/private/coerce-all.d.ts.map +1 -0
  16. package/dist/utils/private/coerce-all.js +33 -0
  17. package/dist/utils/private/coerce-all.js.map +1 -0
  18. package/dist/utils/private/find-process-env-value.d.ts +1 -1
  19. package/dist/utils/private/find-process-env-value.d.ts.map +1 -1
  20. package/dist/utils/private/find-process-env-value.js +6 -16
  21. package/dist/utils/private/find-process-env-value.js.map +1 -1
  22. package/dist/utils/private/index.d.ts +3 -1
  23. package/dist/utils/private/index.d.ts.map +1 -1
  24. package/dist/utils/private/index.js +3 -1
  25. package/dist/utils/private/index.js.map +1 -1
  26. package/dist/utils/private/load-config.d.ts +4 -0
  27. package/dist/utils/private/load-config.d.ts.map +1 -0
  28. package/dist/utils/private/load-config.js +16 -0
  29. package/dist/utils/private/load-config.js.map +1 -0
  30. package/dist/utils/private/load-node-config.d.ts +4 -0
  31. package/dist/utils/private/load-node-config.d.ts.map +1 -0
  32. package/dist/utils/private/load-node-config.js +17 -0
  33. package/dist/utils/private/load-node-config.js.map +1 -0
  34. package/dist/utils/private/merge-object-with-process-env.d.ts +1 -1
  35. package/dist/utils/private/merge-object-with-process-env.d.ts.map +1 -1
  36. package/dist/utils/private/merge-object-with-process-env.js +13 -6
  37. package/dist/utils/private/merge-object-with-process-env.js.map +1 -1
  38. package/package.json +19 -9
  39. package/dist/utils/private/merge-value-with-process-env.d.ts +0 -3
  40. package/dist/utils/private/merge-value-with-process-env.d.ts.map +0 -1
  41. package/dist/utils/private/merge-value-with-process-env.js +0 -10
  42. package/dist/utils/private/merge-value-with-process-env.js.map +0 -1
@@ -0,0 +1,3 @@
1
+ {
2
+ "test": "test"
3
+ }
@@ -0,0 +1,3 @@
1
+ test2:
2
+ test3:
3
+ test4: test5
package/CHANGELOG.md CHANGED
@@ -3,6 +3,18 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [0.2.0](https://github.com/lindorm-io/monorepo/compare/@lindorm/config@0.1.2...@lindorm/config@0.2.0) (2025-06-17)
7
+
8
+ ### Bug Fixes
9
+
10
+ - solve issues with merge ([6561027](https://github.com/lindorm-io/monorepo/commit/6561027172f31f154be84f122a68c1361399abd3))
11
+ - update cli ([552a9f0](https://github.com/lindorm-io/monorepo/commit/552a9f0a0839d756d9e856b7a6842aee4e01cac5))
12
+
13
+ ### Features
14
+
15
+ - add cli for generating node_config env ([57e5ff9](https://github.com/lindorm-io/monorepo/commit/57e5ff9cad0aa655420f6232f23ae526545331b4))
16
+ - use zod to coerce and validate config ([03ed9b6](https://github.com/lindorm-io/monorepo/commit/03ed9b65f95bab3168a081c669118b3ed6d45538))
17
+
6
18
  ## [0.1.2](https://github.com/lindorm-io/monorepo/compare/@lindorm/config@0.1.1...@lindorm/config@0.1.2) (2025-01-28)
7
19
 
8
20
  **Note:** Version bump only for package @lindorm/config
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const commander_1 = require("commander");
5
+ const fs_1 = require("fs");
6
+ const js_yaml_1 = require("js-yaml");
7
+ const path_1 = require("path");
8
+ commander_1.program.name("config").description("CLI for managing configuration files");
9
+ const parseFile = (file) => {
10
+ if (file.endsWith(".json")) {
11
+ return parseJson(file);
12
+ }
13
+ if (file.endsWith(".yml") || file.endsWith(".yaml")) {
14
+ return parseYaml(file);
15
+ }
16
+ throw new Error("Unsupported file type");
17
+ };
18
+ const parseJson = (file) => JSON.parse((0, fs_1.readFileSync)(file, "utf-8"));
19
+ const parseYaml = (file) => (0, js_yaml_1.load)((0, fs_1.readFileSync)(file, "utf-8"));
20
+ commander_1.program
21
+ .command("node_config")
22
+ .description("Generate a NODE_CONFIG environment string from existing .node_config file")
23
+ .option("-f, --file <file>", "Path to the .node_config(?.json|yml|yaml) file", ".node_config")
24
+ .action((options) => {
25
+ try {
26
+ if (options.file !== ".node_config" &&
27
+ !(0, fs_1.existsSync)((0, path_1.join)(process.cwd(), options.file))) {
28
+ throw new Error(`File ${options.file} does not exist. Please provide a valid path to a .node_config file.`);
29
+ }
30
+ let file = options.file;
31
+ let result = "";
32
+ if ((0, fs_1.existsSync)((0, path_1.join)(process.cwd(), options.file))) {
33
+ file = options.file;
34
+ }
35
+ else if ((0, fs_1.existsSync)((0, path_1.join)(process.cwd(), ".node_config.json"))) {
36
+ file = (0, path_1.join)(process.cwd(), ".node_config.json");
37
+ }
38
+ else if ((0, fs_1.existsSync)((0, path_1.join)(process.cwd(), ".node_config.yml"))) {
39
+ file = (0, path_1.join)(process.cwd(), ".node_config.yml");
40
+ }
41
+ else if ((0, fs_1.existsSync)((0, path_1.join)(process.cwd(), ".node_config.yaml"))) {
42
+ file = (0, path_1.join)(process.cwd(), ".node_config.yaml");
43
+ }
44
+ else {
45
+ throw new Error("No .node_config file found. Please provide a valid path to a .node_config file.");
46
+ }
47
+ result = JSON.stringify(parseFile(file)).replace(/'/g, "'\\''");
48
+ console.log(`\nInsert the following into your env:\n\nNODE_CONFIG='${result}'\n`);
49
+ }
50
+ catch (error) {
51
+ console.error(error.message);
52
+ process.exit(1);
53
+ }
54
+ });
55
+ commander_1.program.parse();
56
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,11 @@
1
1
  import { Dict } from "@lindorm/types";
2
+ export type NpmInformation = {
3
+ npm: {
4
+ package: {
5
+ name: string;
6
+ version: string;
7
+ };
8
+ };
9
+ };
2
10
  export type ProcessEnv = Dict<string | undefined>;
3
11
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,MAAM,MAAM,cAAc,GAAG;IAAE,GAAG,EAAE;QAAE,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,CAAC;AAErF,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC"}
@@ -1,14 +1,4 @@
1
- import { ChangeCase } from "@lindorm/case";
2
- import { Dict } from "@lindorm/types";
3
- type NpmInformation = {
4
- npm: {
5
- package: {
6
- name: string;
7
- version: string;
8
- };
9
- };
10
- };
11
- type Configuration<T extends Dict = Dict> = NpmInformation & T;
12
- export declare const configuration: <T extends Dict = Dict>(mode?: ChangeCase) => Configuration<T>;
13
- export {};
1
+ import { ZodRawShape } from "zod";
2
+ import { NpmInformation } from "../types";
3
+ export declare const configuration: <T extends ZodRawShape>(schema: T) => NpmInformation & T;
14
4
  //# sourceMappingURL=configuration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/utils/configuration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAc,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAItC,KAAK,cAAc,GAAG;IACpB,GAAG,EAAE;QACH,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;CACH,CAAC;AAEF,KAAK,aAAa,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,IAAI,cAAc,GAAG,CAAC,CAAC;AAE/D,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,IAAI,gBACpC,UAAU,KACf,aAAa,CAAC,CAAC,CAiBjB,CAAC"}
1
+ {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/utils/configuration.ts"],"names":[],"mappings":"AAEA,OAAO,EAAK,WAAW,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,WAAW,EAAE,QAAQ,CAAC,KAAG,cAAc,GAAG,CAuBjF,CAAC"}
@@ -5,23 +5,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.configuration = void 0;
7
7
  const dotenvx_1 = __importDefault(require("@dotenvx/dotenvx"));
8
- const case_1 = require("@lindorm/case");
9
- const config_1 = __importDefault(require("config"));
8
+ const utils_1 = require("@lindorm/utils");
9
+ const zod_1 = require("zod");
10
10
  const private_1 = require("./private");
11
- const configuration = (mode = case_1.ChangeCase.Camel) => {
11
+ const configuration = (schema) => {
12
12
  dotenvx_1.default.config({
13
13
  path: process.env.NODE_ENV ? [`.env.${process.env.NODE_ENV}`, ".env"] : ".env",
14
14
  quiet: true,
15
15
  });
16
- const merged = (0, private_1.mergeObjectWithProcessEnv)(process.env, config_1.default.util.toObject());
17
- const config = (0, case_1.changeKeys)(merged, mode);
16
+ const config = (0, private_1.loadConfig)(process.env);
17
+ const node = (0, private_1.loadNodeConfig)(process.env);
18
+ const merged = (0, utils_1.merge)(config, node);
19
+ const zod = (0, private_1.coerceAll)(zod_1.z.object(schema));
20
+ const parsed = zod.parse(merged);
18
21
  const npm = {
19
- package: {
20
- name: process.env.npm_package_name || "",
21
- version: process.env.npm_package_version || "",
22
+ npm: {
23
+ package: {
24
+ name: process.env.npm_package_name || "",
25
+ version: process.env.npm_package_version || "",
26
+ },
22
27
  },
23
28
  };
24
- return { npm, ...config };
29
+ return (0, utils_1.merge)(parsed, npm);
25
30
  };
26
31
  exports.configuration = configuration;
27
32
  //# sourceMappingURL=configuration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/utils/configuration.ts"],"names":[],"mappings":";;;;;;AAAA,+DAAuC;AACvC,wCAAuD;AAEvD,oDAAuB;AACvB,uCAAsD;AAa/C,MAAM,aAAa,GAAG,CAC3B,OAAmB,iBAAU,CAAC,KAAK,EACjB,EAAE;IACpB,iBAAO,CAAC,MAAM,CAAC;QACb,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;QAC9E,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAA,mCAAyB,EAAI,OAAO,CAAC,GAAG,EAAE,gBAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAI,MAAM,EAAE,IAAI,CAAC,CAAC;IAE3C,MAAM,GAAG,GAAG;QACV,OAAO,EAAE;YACP,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE;YACxC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE;SAC/C;KACF,CAAC;IAEF,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;AAC5B,CAAC,CAAC;AAnBW,QAAA,aAAa,iBAmBxB"}
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/utils/configuration.ts"],"names":[],"mappings":";;;;;;AAAA,+DAAuC;AACvC,0CAAuC;AACvC,6BAAqC;AAErC,uCAAkE;AAE3D,MAAM,aAAa,GAAG,CAAwB,MAAS,EAAsB,EAAE;IACpF,iBAAO,CAAC,MAAM,CAAC;QACb,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;QAC9E,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAA,oBAAU,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAA,wBAAc,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAA,aAAK,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAEnC,MAAM,GAAG,GAAG,IAAA,mBAAS,EAAC,OAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAEjC,MAAM,GAAG,GAAG;QACV,GAAG,EAAE;YACH,OAAO,EAAE;gBACP,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE;gBACxC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE;aAC/C;SACF;KACF,CAAC;IAEF,OAAO,IAAA,aAAK,EAAqB,MAAM,EAAE,GAAU,CAAC,CAAC;AACvD,CAAC,CAAC;AAvBW,QAAA,aAAa,iBAuBxB"}
@@ -0,0 +1,3 @@
1
+ import { ZodTypeAny } from "zod";
2
+ export declare const coerceAll: <T extends ZodTypeAny>(schema: T) => T;
3
+ //# sourceMappingURL=coerce-all.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce-all.d.ts","sourceRoot":"","sources":["../../../src/utils/private/coerce-all.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,UAAU,EAAE,MAAM,KAAK,CAAC;AAE3D,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,UAAU,EAAE,QAAQ,CAAC,KAAG,CAkC3D,CAAC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.coerceAll = void 0;
4
+ const zod_1 = require("zod");
5
+ const coerceAll = (schema) => {
6
+ const def = schema._def;
7
+ switch (def.typeName) {
8
+ case zod_1.ZodFirstPartyTypeKind.ZodString:
9
+ return zod_1.z.coerce.string(def);
10
+ case zod_1.ZodFirstPartyTypeKind.ZodNumber:
11
+ return zod_1.z.coerce.number(def);
12
+ case zod_1.ZodFirstPartyTypeKind.ZodBoolean:
13
+ return zod_1.z.coerce.boolean(def);
14
+ case zod_1.ZodFirstPartyTypeKind.ZodDate:
15
+ return zod_1.z.coerce.date(def);
16
+ case zod_1.ZodFirstPartyTypeKind.ZodBigInt:
17
+ return zod_1.z.coerce.bigint(def);
18
+ case zod_1.ZodFirstPartyTypeKind.ZodArray:
19
+ return zod_1.z.array((0, exports.coerceAll)(def.type), def);
20
+ case zod_1.ZodFirstPartyTypeKind.ZodObject: {
21
+ const shape = def.shape();
22
+ const newShape = {};
23
+ for (const key in shape) {
24
+ newShape[key] = (0, exports.coerceAll)(shape[key]);
25
+ }
26
+ return zod_1.z.object(newShape, def);
27
+ }
28
+ default:
29
+ return schema;
30
+ }
31
+ };
32
+ exports.coerceAll = coerceAll;
33
+ //# sourceMappingURL=coerce-all.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce-all.js","sourceRoot":"","sources":["../../../src/utils/private/coerce-all.ts"],"names":[],"mappings":";;;AACA,6BAA2D;AAEpD,MAAM,SAAS,GAAG,CAAuB,MAAS,EAAK,EAAE;IAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC;IAExB,QAAQ,GAAG,CAAC,QAAQ,EAAE,CAAC;QACrB,KAAK,2BAAqB,CAAC,SAAS;YAClC,OAAO,OAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAQ,CAAC;QAErC,KAAK,2BAAqB,CAAC,SAAS;YAClC,OAAO,OAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAQ,CAAC;QAErC,KAAK,2BAAqB,CAAC,UAAU;YACnC,OAAO,OAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAQ,CAAC;QAEtC,KAAK,2BAAqB,CAAC,OAAO;YAChC,OAAO,OAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAQ,CAAC;QAEnC,KAAK,2BAAqB,CAAC,SAAS;YAClC,OAAO,OAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAQ,CAAC;QAErC,KAAK,2BAAqB,CAAC,QAAQ;YACjC,OAAO,OAAC,CAAC,KAAK,CAAC,IAAA,iBAAS,EAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAQ,CAAC;QAElD,KAAK,2BAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;YACrC,MAAM,KAAK,GAAI,GAAG,CAAC,KAAgC,EAAE,CAAC;YACtD,MAAM,QAAQ,GAAqB,EAAE,CAAC;YACtC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,OAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAQ,CAAC;QACxC,CAAC;QAED;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAlCW,QAAA,SAAS,aAkCpB"}
@@ -1,3 +1,3 @@
1
1
  import { ProcessEnv } from "../../types";
2
- export declare const findProcessEnvValue: (processEnv: ProcessEnv, key: string, parentKey?: string) => string | null;
2
+ export declare const findProcessEnvValue: (processEnv: ProcessEnv, key: string, parent?: string) => any;
3
3
  //# sourceMappingURL=find-process-env-value.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"find-process-env-value.d.ts","sourceRoot":"","sources":["../../../src/utils/private/find-process-env-value.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAUzC,eAAO,MAAM,mBAAmB,eAClB,UAAU,OACjB,MAAM,cACC,MAAM,KACjB,MAAM,GAAG,IAYX,CAAC"}
1
+ {"version":3,"file":"find-process-env-value.d.ts","sourceRoot":"","sources":["../../../src/utils/private/find-process-env-value.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,eAAO,MAAM,mBAAmB,GAC9B,YAAY,UAAU,EACtB,KAAK,MAAM,EACX,SAAS,MAAM,KACd,GAQF,CAAC"}
@@ -2,23 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.findProcessEnvValue = void 0;
4
4
  const case_1 = require("@lindorm/case");
5
- const is_1 = require("@lindorm/is");
6
- const tryParse = (value) => {
7
- try {
8
- return JSON.parse(value);
9
- }
10
- catch {
11
- return value;
12
- }
13
- };
14
- const findProcessEnvValue = (processEnv, key, parentKey) => {
5
+ const utils_1 = require("@lindorm/utils");
6
+ const findProcessEnvValue = (processEnv, key, parent) => {
15
7
  const k = (0, case_1.changeCase)(key, case_1.ChangeCase.Constant);
16
- const p = parentKey ? (0, case_1.changeCase)(parentKey, case_1.ChangeCase.Constant) : null;
17
- const search = p ? `${p}_${k}` : k;
18
- const value = processEnv[search] ? processEnv[search] : null;
19
- const parsed = value ? tryParse(value) : null;
20
- const splitArray = (0, is_1.isString)(parsed) && parsed.includes(";") ? parsed.split(";").map(tryParse) : null;
21
- return splitArray ? splitArray : parsed;
8
+ const pkey = parent ? (0, case_1.changeCase)(parent, case_1.ChangeCase.Constant) : undefined;
9
+ const search = pkey ? `${pkey}_${k}` : k;
10
+ const value = processEnv[search] ? processEnv[search] : undefined;
11
+ return value ? (0, utils_1.safelyParse)(value) : undefined;
22
12
  };
23
13
  exports.findProcessEnvValue = findProcessEnvValue;
24
14
  //# sourceMappingURL=find-process-env-value.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"find-process-env-value.js","sourceRoot":"","sources":["../../../src/utils/private/find-process-env-value.ts"],"names":[],"mappings":";;;AAAA,wCAAuD;AACvD,oCAAuC;AAGvC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAO,EAAE;IACtC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEK,MAAM,mBAAmB,GAAG,CACjC,UAAsB,EACtB,GAAW,EACX,SAAkB,EACH,EAAE;IACjB,MAAM,CAAC,GAAW,IAAA,iBAAU,EAAC,GAAG,EAAE,iBAAU,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,CAAC,GAAkB,SAAS,CAAC,CAAC,CAAC,IAAA,iBAAU,EAAC,SAAS,EAAE,iBAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEvF,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE7D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9C,MAAM,UAAU,GACd,IAAA,aAAQ,EAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEpF,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;AAC1C,CAAC,CAAC;AAhBW,QAAA,mBAAmB,uBAgB9B"}
1
+ {"version":3,"file":"find-process-env-value.js","sourceRoot":"","sources":["../../../src/utils/private/find-process-env-value.ts"],"names":[],"mappings":";;;AAAA,wCAAuD;AACvD,0CAA6C;AAGtC,MAAM,mBAAmB,GAAG,CACjC,UAAsB,EACtB,GAAW,EACX,MAAe,EACV,EAAE;IACP,MAAM,CAAC,GAAG,IAAA,iBAAU,EAAC,GAAG,EAAE,iBAAU,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAA,iBAAU,EAAC,MAAM,EAAE,iBAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1E,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAElE,OAAO,KAAK,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC,CAAC;AAZW,QAAA,mBAAmB,uBAY9B"}
@@ -1,2 +1,4 @@
1
- export * from "./merge-object-with-process-env";
1
+ export * from "./coerce-all";
2
+ export * from "./load-config";
3
+ export * from "./load-node-config";
2
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/private/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/private/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC"}
@@ -14,5 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./merge-object-with-process-env"), exports);
17
+ __exportStar(require("./coerce-all"), exports);
18
+ __exportStar(require("./load-config"), exports);
19
+ __exportStar(require("./load-node-config"), exports);
18
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/private/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kEAAgD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/private/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,gDAA8B;AAC9B,qDAAmC"}
@@ -0,0 +1,4 @@
1
+ import { Dict } from "@lindorm/types";
2
+ import { ProcessEnv } from "../../types";
3
+ export declare const loadConfig: (processEnv: ProcessEnv) => Dict;
4
+ //# sourceMappingURL=load-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-config.d.ts","sourceRoot":"","sources":["../../../src/utils/private/load-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,eAAO,MAAM,UAAU,GAAI,YAAY,UAAU,KAAG,IAKnD,CAAC"}
@@ -0,0 +1,16 @@
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.loadConfig = void 0;
7
+ const case_1 = require("@lindorm/case");
8
+ const config_1 = __importDefault(require("config"));
9
+ const merge_object_with_process_env_1 = require("./merge-object-with-process-env");
10
+ const loadConfig = (processEnv) => {
11
+ const config = config_1.default.util.toObject();
12
+ const merged = (0, merge_object_with_process_env_1.mergeObjectWithProcessEnv)(processEnv, config);
13
+ return (0, case_1.changeKeys)(merged, case_1.ChangeCase.Camel);
14
+ };
15
+ exports.loadConfig = loadConfig;
16
+ //# sourceMappingURL=load-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-config.js","sourceRoot":"","sources":["../../../src/utils/private/load-config.ts"],"names":[],"mappings":";;;;;;AAAA,wCAAuD;AAEvD,oDAAuB;AAEvB,mFAA4E;AAErE,MAAM,UAAU,GAAG,CAAC,UAAsB,EAAQ,EAAE;IACzD,MAAM,MAAM,GAAG,gBAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,IAAA,yDAAyB,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAE7D,OAAO,IAAA,iBAAU,EAAC,MAAM,EAAE,iBAAU,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC,CAAC;AALW,QAAA,UAAU,cAKrB"}
@@ -0,0 +1,4 @@
1
+ import { Dict } from "@lindorm/types";
2
+ import { ProcessEnv } from "../../types";
3
+ export declare const loadNodeConfig: (processEnv: ProcessEnv) => Dict;
4
+ //# sourceMappingURL=load-node-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-node-config.d.ts","sourceRoot":"","sources":["../../../src/utils/private/load-node-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,eAAO,MAAM,cAAc,GAAI,YAAY,UAAU,KAAG,IAYvD,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadNodeConfig = void 0;
4
+ const is_1 = require("@lindorm/is");
5
+ const utils_1 = require("@lindorm/utils");
6
+ const loadNodeConfig = (processEnv) => {
7
+ if (!processEnv.NODE_CONFIG)
8
+ return {};
9
+ if (!(0, is_1.isString)(processEnv.NODE_CONFIG) ||
10
+ !processEnv.NODE_CONFIG.startsWith("{") ||
11
+ !processEnv.NODE_CONFIG.endsWith("}")) {
12
+ throw new Error("Environment variable NODE_CONFIG must be a valid JSON string");
13
+ }
14
+ return (0, utils_1.safelyParse)(processEnv.NODE_CONFIG);
15
+ };
16
+ exports.loadNodeConfig = loadNodeConfig;
17
+ //# sourceMappingURL=load-node-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-node-config.js","sourceRoot":"","sources":["../../../src/utils/private/load-node-config.ts"],"names":[],"mappings":";;;AAAA,oCAAuC;AAEvC,0CAA6C;AAGtC,MAAM,cAAc,GAAG,CAAC,UAAsB,EAAQ,EAAE;IAC7D,IAAI,CAAC,UAAU,CAAC,WAAW;QAAE,OAAO,EAAE,CAAC;IAEvC,IACE,CAAC,IAAA,aAAQ,EAAC,UAAU,CAAC,WAAW,CAAC;QACjC,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC;QACvC,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EACrC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IAED,OAAO,IAAA,mBAAW,EAAO,UAAU,CAAC,WAAW,CAAC,CAAC;AACnD,CAAC,CAAC;AAZW,QAAA,cAAc,kBAYzB"}
@@ -1,4 +1,4 @@
1
1
  import { Dict } from "@lindorm/types";
2
2
  import { ProcessEnv } from "../../types";
3
- export declare const mergeObjectWithProcessEnv: <T extends Dict = Dict>(processEnv: ProcessEnv, config: T, parentKey?: string) => T;
3
+ export declare const mergeObjectWithProcessEnv: (processEnv: ProcessEnv, config: Dict, parent?: string) => Dict;
4
4
  //# sourceMappingURL=merge-object-with-process-env.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"merge-object-with-process-env.d.ts","sourceRoot":"","sources":["../../../src/utils/private/merge-object-with-process-env.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,IAAI,qBAC1C,UAAU,UACd,CAAC,cACG,MAAM,KACjB,CAYF,CAAC"}
1
+ {"version":3,"file":"merge-object-with-process-env.d.ts","sourceRoot":"","sources":["../../../src/utils/private/merge-object-with-process-env.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,eAAO,MAAM,yBAAyB,GACpC,YAAY,UAAU,EACtB,QAAQ,IAAI,EACZ,SAAS,MAAM,KACd,IAqBF,CAAC"}
@@ -2,14 +2,21 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mergeObjectWithProcessEnv = void 0;
4
4
  const is_1 = require("@lindorm/is");
5
- const merge_value_with_process_env_1 = require("./merge-value-with-process-env");
6
- const mergeObjectWithProcessEnv = (processEnv, config, parentKey) => {
5
+ const find_process_env_value_1 = require("./find-process-env-value");
6
+ const mergeObjectWithProcessEnv = (processEnv, config, parent) => {
7
7
  const result = {};
8
8
  for (const [key, value] of Object.entries(config)) {
9
- const p = parentKey ? `${parentKey}_${key}` : key;
10
- result[key] = (0, is_1.isObject)(value)
11
- ? (0, exports.mergeObjectWithProcessEnv)(processEnv, value, p)
12
- : (0, merge_value_with_process_env_1.mergeValueWithProcessEnv)(processEnv, value, key, parentKey);
9
+ const env = (0, find_process_env_value_1.findProcessEnvValue)(processEnv, key, parent);
10
+ if (!(0, is_1.isUndefined)(env)) {
11
+ result[key] = env;
12
+ continue;
13
+ }
14
+ if ((0, is_1.isObject)(value)) {
15
+ const pkey = parent ? `${parent}_${key}` : key;
16
+ result[key] = (0, exports.mergeObjectWithProcessEnv)(processEnv, value, pkey);
17
+ continue;
18
+ }
19
+ result[key] = value;
13
20
  }
14
21
  return result;
15
22
  };
@@ -1 +1 @@
1
- {"version":3,"file":"merge-object-with-process-env.js","sourceRoot":"","sources":["../../../src/utils/private/merge-object-with-process-env.ts"],"names":[],"mappings":";;;AAAA,oCAAuC;AAGvC,iFAA0E;AAEnE,MAAM,yBAAyB,GAAG,CACvC,UAAsB,EACtB,MAAS,EACT,SAAkB,EACf,EAAE;IACL,MAAM,MAAM,GAAS,EAAE,CAAC;IAExB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAElD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAA,aAAQ,EAAC,KAAK,CAAC;YAC3B,CAAC,CAAC,IAAA,iCAAyB,EAAC,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;YACjD,CAAC,CAAC,IAAA,uDAAwB,EAAC,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,MAAW,CAAC;AACrB,CAAC,CAAC;AAhBW,QAAA,yBAAyB,6BAgBpC"}
1
+ {"version":3,"file":"merge-object-with-process-env.js","sourceRoot":"","sources":["../../../src/utils/private/merge-object-with-process-env.ts"],"names":[],"mappings":";;;AAAA,oCAAoD;AAGpD,qEAA+D;AAExD,MAAM,yBAAyB,GAAG,CACvC,UAAsB,EACtB,MAAY,EACZ,MAAe,EACT,EAAE;IACR,MAAM,MAAM,GAAS,EAAE,CAAC;IAExB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,IAAA,4CAAmB,EAAC,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAEzD,IAAI,CAAC,IAAA,gBAAW,EAAC,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YAClB,SAAS;QACX,CAAC;QAED,IAAI,IAAA,aAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,IAAA,iCAAyB,EAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACjE,SAAS;QACX,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAzBW,QAAA,yBAAyB,6BAyBpC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lindorm/config",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "license": "AGPL-3.0-or-later",
5
5
  "author": "Jonn Nilsson",
6
6
  "repository": {
@@ -14,28 +14,38 @@
14
14
  "main": "dist/index.js",
15
15
  "typings": "dist/index.d.ts",
16
16
  "scripts": {
17
- "build": "rimraf dist && tsc -b ./tsconfig.build.json",
17
+ "build": "rimraf dist && tsc -b ./tsconfig.build.json && chmod +x dist/cli.js",
18
18
  "example": "ts-node example",
19
19
  "integration": "compd --file docker-compose.yml jest --config jest.config.integration.js --watch",
20
20
  "integration:focus": "compd --file docker-compose.yml jest --config jest.config.integration.js --watch $1",
21
+ "prettier": "prettier --write ./src/*",
21
22
  "test": "jest --watch --",
22
23
  "test:ci": "npm run test:unit",
23
24
  "test:integration": "jest --config jest.config.integration.js --",
24
25
  "test:unit": "jest --config jest.config.js --",
25
26
  "typecheck": "tsc --watch",
26
27
  "typecheck:ci": "tsc",
27
- "update": "ncu -u"
28
+ "update": "ncu -i",
29
+ "update:auto": "ncu -u"
30
+ },
31
+ "bin": {
32
+ "config": "dist/cli.js"
28
33
  },
29
34
  "dependencies": {
30
35
  "@dotenvx/dotenvx": "^1.10.3",
31
- "@lindorm/case": "^0.1.7",
32
- "@lindorm/is": "^0.1.7",
36
+ "@lindorm/case": "^0.1.8",
37
+ "@lindorm/is": "^0.1.8",
38
+ "@lindorm/utils": "^0.5.0",
39
+ "commander": "^13.1.0",
33
40
  "config": "^3.3.12",
34
- "dotenv": "^16.4.5"
41
+ "dotenv": "^16.4.5",
42
+ "js-yaml": "^4.1.0",
43
+ "zod": "^3.24.3"
35
44
  },
36
45
  "devDependencies": {
37
- "@lindorm/types": "^0.2.1",
38
- "@types/config": "^3.3.4"
46
+ "@lindorm/types": "^0.3.0",
47
+ "@types/config": "^3.3.4",
48
+ "@types/js-yaml": "^4.0.9"
39
49
  },
40
- "gitHead": "c3a0944569f1344aea5fa3431de8b36e4468a115"
50
+ "gitHead": "c1800f039a816f7ebce30379f8dce9c53ea9f5d1"
41
51
  }
@@ -1,3 +0,0 @@
1
- import { ProcessEnv } from "../../types";
2
- export declare const mergeValueWithProcessEnv: (processEnv: ProcessEnv, value: string, key: string, parentKey?: string) => string;
3
- //# sourceMappingURL=merge-value-with-process-env.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"merge-value-with-process-env.d.ts","sourceRoot":"","sources":["../../../src/utils/private/merge-value-with-process-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,eAAO,MAAM,wBAAwB,eACvB,UAAU,SACf,MAAM,OACR,MAAM,cACC,MAAM,KACjB,MAIF,CAAC"}
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mergeValueWithProcessEnv = void 0;
4
- const find_process_env_value_1 = require("./find-process-env-value");
5
- const mergeValueWithProcessEnv = (processEnv, value, key, parentKey) => {
6
- const envValue = (0, find_process_env_value_1.findProcessEnvValue)(processEnv, key, parentKey);
7
- return envValue ? envValue : value;
8
- };
9
- exports.mergeValueWithProcessEnv = mergeValueWithProcessEnv;
10
- //# sourceMappingURL=merge-value-with-process-env.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"merge-value-with-process-env.js","sourceRoot":"","sources":["../../../src/utils/private/merge-value-with-process-env.ts"],"names":[],"mappings":";;;AACA,qEAA+D;AAExD,MAAM,wBAAwB,GAAG,CACtC,UAAsB,EACtB,KAAa,EACb,GAAW,EACX,SAAkB,EACV,EAAE;IACV,MAAM,QAAQ,GAAG,IAAA,4CAAmB,EAAC,UAAU,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IAEjE,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACrC,CAAC,CAAC;AATW,QAAA,wBAAwB,4BASnC"}