@zudojs/config 0.0.1

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 (140) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +41 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/configEntry/configEntry.type.d.ts +77 -0
  5. package/dist/configEntry/configEntry.type.d.ts.map +1 -0
  6. package/dist/configEntry/configEntry.type.js +149 -0
  7. package/dist/configEntry/configEntry.type.js.map +1 -0
  8. package/dist/configEntry/index.d.ts +7 -0
  9. package/dist/configEntry/index.d.ts.map +1 -0
  10. package/dist/configEntry/index.js +7 -0
  11. package/dist/configEntry/index.js.map +1 -0
  12. package/dist/configFactory/configFactory.core.d.ts +54 -0
  13. package/dist/configFactory/configFactory.core.d.ts.map +1 -0
  14. package/dist/configFactory/configFactory.core.js +69 -0
  15. package/dist/configFactory/configFactory.core.js.map +1 -0
  16. package/dist/configFactory/index.d.ts +7 -0
  17. package/dist/configFactory/index.d.ts.map +1 -0
  18. package/dist/configFactory/index.js +7 -0
  19. package/dist/configFactory/index.js.map +1 -0
  20. package/dist/configLoader/configLoader.core.d.ts +121 -0
  21. package/dist/configLoader/configLoader.core.d.ts.map +1 -0
  22. package/dist/configLoader/configLoader.core.js +292 -0
  23. package/dist/configLoader/configLoader.core.js.map +1 -0
  24. package/dist/configLoader/index.d.ts +7 -0
  25. package/dist/configLoader/index.d.ts.map +1 -0
  26. package/dist/configLoader/index.js +7 -0
  27. package/dist/configLoader/index.js.map +1 -0
  28. package/dist/configManager/configManager.core.d.ts +165 -0
  29. package/dist/configManager/configManager.core.d.ts.map +1 -0
  30. package/dist/configManager/configManager.core.js +328 -0
  31. package/dist/configManager/configManager.core.js.map +1 -0
  32. package/dist/configManager/configManager.error.d.ts +18 -0
  33. package/dist/configManager/configManager.error.d.ts.map +1 -0
  34. package/dist/configManager/configManager.error.js +24 -0
  35. package/dist/configManager/configManager.error.js.map +1 -0
  36. package/dist/configManager/configManager.factory.d.ts +11 -0
  37. package/dist/configManager/configManager.factory.d.ts.map +1 -0
  38. package/dist/configManager/configManager.factory.js +22 -0
  39. package/dist/configManager/configManager.factory.js.map +1 -0
  40. package/dist/configManager/configManager.type.d.ts +48 -0
  41. package/dist/configManager/configManager.type.d.ts.map +1 -0
  42. package/dist/configManager/configManager.type.js +13 -0
  43. package/dist/configManager/configManager.type.js.map +1 -0
  44. package/dist/configManager/index.d.ts +10 -0
  45. package/dist/configManager/index.d.ts.map +1 -0
  46. package/dist/configManager/index.js +10 -0
  47. package/dist/configManager/index.js.map +1 -0
  48. package/dist/configResolver/accessors/configResolver.accessors.d.ts +19 -0
  49. package/dist/configResolver/accessors/configResolver.accessors.d.ts.map +1 -0
  50. package/dist/configResolver/accessors/configResolver.accessors.js +237 -0
  51. package/dist/configResolver/accessors/configResolver.accessors.js.map +1 -0
  52. package/dist/configResolver/accessors/configResolver.scoped.d.ts +28 -0
  53. package/dist/configResolver/accessors/configResolver.scoped.d.ts.map +1 -0
  54. package/dist/configResolver/accessors/configResolver.scoped.js +54 -0
  55. package/dist/configResolver/accessors/configResolver.scoped.js.map +1 -0
  56. package/dist/configResolver/accessors/index.d.ts +8 -0
  57. package/dist/configResolver/accessors/index.d.ts.map +1 -0
  58. package/dist/configResolver/accessors/index.js +8 -0
  59. package/dist/configResolver/accessors/index.js.map +1 -0
  60. package/dist/configResolver/core/configResolver.core.d.ts +100 -0
  61. package/dist/configResolver/core/configResolver.core.d.ts.map +1 -0
  62. package/dist/configResolver/core/configResolver.core.js +347 -0
  63. package/dist/configResolver/core/configResolver.core.js.map +1 -0
  64. package/dist/configResolver/core/configResolver.error.d.ts +8 -0
  65. package/dist/configResolver/core/configResolver.error.d.ts.map +1 -0
  66. package/dist/configResolver/core/configResolver.error.js +8 -0
  67. package/dist/configResolver/core/configResolver.error.js.map +1 -0
  68. package/dist/configResolver/core/configResolver.factory.d.ts +8 -0
  69. package/dist/configResolver/core/configResolver.factory.d.ts.map +1 -0
  70. package/dist/configResolver/core/configResolver.factory.js +8 -0
  71. package/dist/configResolver/core/configResolver.factory.js.map +1 -0
  72. package/dist/configResolver/core/configResolver.type.d.ts +20 -0
  73. package/dist/configResolver/core/configResolver.type.d.ts.map +1 -0
  74. package/dist/configResolver/core/configResolver.type.js +2 -0
  75. package/dist/configResolver/core/configResolver.type.js.map +1 -0
  76. package/dist/configResolver/core/index.d.ts +10 -0
  77. package/dist/configResolver/core/index.d.ts.map +1 -0
  78. package/dist/configResolver/core/index.js +10 -0
  79. package/dist/configResolver/core/index.js.map +1 -0
  80. package/dist/configResolver/index.d.ts +8 -0
  81. package/dist/configResolver/index.d.ts.map +1 -0
  82. package/dist/configResolver/index.js +8 -0
  83. package/dist/configResolver/index.js.map +1 -0
  84. package/dist/configSchema/configSchema.core.d.ts +8 -0
  85. package/dist/configSchema/configSchema.core.d.ts.map +1 -0
  86. package/dist/configSchema/configSchema.core.js +8 -0
  87. package/dist/configSchema/configSchema.core.js.map +1 -0
  88. package/dist/configSchema/configSchema.rules.d.ts +18 -0
  89. package/dist/configSchema/configSchema.rules.d.ts.map +1 -0
  90. package/dist/configSchema/configSchema.rules.js +108 -0
  91. package/dist/configSchema/configSchema.rules.js.map +1 -0
  92. package/dist/configSchema/configSchema.type.d.ts +115 -0
  93. package/dist/configSchema/configSchema.type.d.ts.map +1 -0
  94. package/dist/configSchema/configSchema.type.js +24 -0
  95. package/dist/configSchema/configSchema.type.js.map +1 -0
  96. package/dist/configSchema/configSchema.validator.d.ts +37 -0
  97. package/dist/configSchema/configSchema.validator.d.ts.map +1 -0
  98. package/dist/configSchema/configSchema.validator.js +340 -0
  99. package/dist/configSchema/configSchema.validator.js.map +1 -0
  100. package/dist/configSchema/index.d.ts +8 -0
  101. package/dist/configSchema/index.d.ts.map +1 -0
  102. package/dist/configSchema/index.js +8 -0
  103. package/dist/configSchema/index.js.map +1 -0
  104. package/dist/configSource/configSource.core.d.ts +131 -0
  105. package/dist/configSource/configSource.core.d.ts.map +1 -0
  106. package/dist/configSource/configSource.core.js +195 -0
  107. package/dist/configSource/configSource.core.js.map +1 -0
  108. package/dist/configSource/index.d.ts +7 -0
  109. package/dist/configSource/index.d.ts.map +1 -0
  110. package/dist/configSource/index.js +7 -0
  111. package/dist/configSource/index.js.map +1 -0
  112. package/dist/configStore/configStore.core.d.ts +124 -0
  113. package/dist/configStore/configStore.core.d.ts.map +1 -0
  114. package/dist/configStore/configStore.core.js +306 -0
  115. package/dist/configStore/configStore.core.js.map +1 -0
  116. package/dist/configStore/configStore.factory.d.ts +13 -0
  117. package/dist/configStore/configStore.factory.d.ts.map +1 -0
  118. package/dist/configStore/configStore.factory.js +14 -0
  119. package/dist/configStore/configStore.factory.js.map +1 -0
  120. package/dist/configStore/configStore.type.d.ts +24 -0
  121. package/dist/configStore/configStore.type.d.ts.map +1 -0
  122. package/dist/configStore/configStore.type.js +2 -0
  123. package/dist/configStore/configStore.type.js.map +1 -0
  124. package/dist/configStore/index.d.ts +9 -0
  125. package/dist/configStore/index.d.ts.map +1 -0
  126. package/dist/configStore/index.js +9 -0
  127. package/dist/configStore/index.js.map +1 -0
  128. package/dist/configValue/configValue.core.d.ts +97 -0
  129. package/dist/configValue/configValue.core.d.ts.map +1 -0
  130. package/dist/configValue/configValue.core.js +293 -0
  131. package/dist/configValue/configValue.core.js.map +1 -0
  132. package/dist/configValue/index.d.ts +7 -0
  133. package/dist/configValue/index.d.ts.map +1 -0
  134. package/dist/configValue/index.js +7 -0
  135. package/dist/configValue/index.js.map +1 -0
  136. package/dist/index.d.ts +15 -0
  137. package/dist/index.d.ts.map +1 -0
  138. package/dist/index.js +15 -0
  139. package/dist/index.js.map +1 -0
  140. package/package.json +51 -0
@@ -0,0 +1,237 @@
1
+ import { parseConfigBigInt, parseConfigBoolean, parseConfigDate, parseConfigNumber, } from "../../configValue/configValue.core.js";
2
+ import { ConfigResolutionError } from "../core/configResolver.error.js";
3
+ /**
4
+ * Typed accessor methods for configuration resolution.
5
+ *
6
+ * These functions provide type-safe access to configuration values
7
+ * with optional fallback and type coercion support.
8
+ */
9
+ export function resolveString(get, key, fallback, strict = true) {
10
+ const value = get(key);
11
+ if (value === undefined) {
12
+ return fallback;
13
+ }
14
+ if (typeof value !== "string") {
15
+ if (strict) {
16
+ throw new ConfigResolutionError(key, [
17
+ {
18
+ path: key,
19
+ message: `Expected configuration "${key}" to be string.`,
20
+ code: "TYPE_MISMATCH",
21
+ expected: "string",
22
+ received: typeof value,
23
+ },
24
+ ]);
25
+ }
26
+ return fallback;
27
+ }
28
+ return value;
29
+ }
30
+ export function resolveRequiredString(get, key) {
31
+ const value = resolveString(get, key);
32
+ if (value === undefined) {
33
+ throw new ConfigResolutionError(key, [
34
+ {
35
+ path: key,
36
+ message: `Required string configuration "${key}" is missing.`,
37
+ code: "REQUIRED_STRING",
38
+ },
39
+ ]);
40
+ }
41
+ return value;
42
+ }
43
+ export function resolveNumber(get, key, fallback, strict = true) {
44
+ const value = get(key);
45
+ if (value === undefined) {
46
+ return fallback;
47
+ }
48
+ if (typeof value === "number") {
49
+ if (Number.isFinite(value)) {
50
+ return value;
51
+ }
52
+ }
53
+ if (typeof value === "string") {
54
+ const parsed = parseConfigNumber(value);
55
+ if (parsed !== undefined) {
56
+ return parsed;
57
+ }
58
+ }
59
+ if (strict) {
60
+ throw new ConfigResolutionError(key, [
61
+ {
62
+ path: key,
63
+ message: `Expected configuration "${key}" to be number.`,
64
+ code: "TYPE_MISMATCH",
65
+ expected: "number",
66
+ received: typeof value,
67
+ },
68
+ ]);
69
+ }
70
+ return fallback;
71
+ }
72
+ export function resolveRequiredNumber(get, key) {
73
+ const value = resolveNumber(get, key);
74
+ if (value === undefined) {
75
+ throw new ConfigResolutionError(key, [
76
+ {
77
+ path: key,
78
+ message: `Required number configuration "${key}" is missing.`,
79
+ code: "REQUIRED_NUMBER",
80
+ },
81
+ ]);
82
+ }
83
+ return value;
84
+ }
85
+ export function resolveBoolean(get, key, fallback, strict = true) {
86
+ const value = get(key);
87
+ if (value === undefined) {
88
+ return fallback;
89
+ }
90
+ if (typeof value === "boolean") {
91
+ return value;
92
+ }
93
+ if (typeof value === "string") {
94
+ const parsed = parseConfigBoolean(value);
95
+ if (parsed !== undefined) {
96
+ return parsed;
97
+ }
98
+ }
99
+ if (strict) {
100
+ throw new ConfigResolutionError(key, [
101
+ {
102
+ path: key,
103
+ message: `Expected configuration "${key}" to be boolean.`,
104
+ code: "TYPE_MISMATCH",
105
+ expected: "boolean",
106
+ received: typeof value,
107
+ },
108
+ ]);
109
+ }
110
+ return fallback;
111
+ }
112
+ export function resolveRequiredBoolean(get, key) {
113
+ const value = resolveBoolean(get, key);
114
+ if (value === undefined) {
115
+ throw new ConfigResolutionError(key, [
116
+ {
117
+ path: key,
118
+ message: `Required boolean configuration "${key}" is missing.`,
119
+ code: "REQUIRED_BOOLEAN",
120
+ },
121
+ ]);
122
+ }
123
+ return value;
124
+ }
125
+ export function resolveBigint(get, key, fallback, strict = true) {
126
+ const value = get(key);
127
+ if (value === undefined) {
128
+ return fallback;
129
+ }
130
+ if (typeof value === "bigint") {
131
+ return value;
132
+ }
133
+ if (typeof value === "string") {
134
+ const parsed = parseConfigBigInt(value);
135
+ if (parsed !== undefined) {
136
+ return parsed;
137
+ }
138
+ }
139
+ if (strict) {
140
+ throw new ConfigResolutionError(key, [
141
+ {
142
+ path: key,
143
+ message: `Expected configuration "${key}" to be bigint.`,
144
+ code: "TYPE_MISMATCH",
145
+ expected: "bigint",
146
+ received: typeof value,
147
+ },
148
+ ]);
149
+ }
150
+ return fallback;
151
+ }
152
+ export function resolveDate(get, key, fallback, strict = true) {
153
+ const value = get(key);
154
+ if (value === undefined) {
155
+ return fallback;
156
+ }
157
+ if (value instanceof Date) {
158
+ return parseConfigDate(value);
159
+ }
160
+ if (typeof value === "string") {
161
+ const parsed = parseConfigDate(value);
162
+ if (parsed !== undefined) {
163
+ return parsed;
164
+ }
165
+ }
166
+ if (strict) {
167
+ throw new ConfigResolutionError(key, [
168
+ {
169
+ path: key,
170
+ message: `Expected configuration "${key}" to be date.`,
171
+ code: "TYPE_MISMATCH",
172
+ expected: "date",
173
+ received: typeof value,
174
+ },
175
+ ]);
176
+ }
177
+ return fallback;
178
+ }
179
+ export function resolveRequiredDate(get, key) {
180
+ const value = resolveDate(get, key);
181
+ if (value === undefined) {
182
+ throw new ConfigResolutionError(key, [
183
+ {
184
+ path: key,
185
+ message: `Required date configuration "${key}" is missing.`,
186
+ code: "REQUIRED_DATE",
187
+ },
188
+ ]);
189
+ }
190
+ return value;
191
+ }
192
+ export function resolveObject(get, key, fallback, strict = true) {
193
+ const value = get(key);
194
+ if (value === undefined) {
195
+ return fallback;
196
+ }
197
+ if (typeof value !== "object" ||
198
+ value === null ||
199
+ Array.isArray(value) ||
200
+ value instanceof Date) {
201
+ if (strict) {
202
+ throw new ConfigResolutionError(key, [
203
+ {
204
+ path: key,
205
+ message: `Expected configuration "${key}" to be object.`,
206
+ code: "TYPE_MISMATCH",
207
+ expected: "object",
208
+ received: typeof value,
209
+ },
210
+ ]);
211
+ }
212
+ return fallback;
213
+ }
214
+ return value;
215
+ }
216
+ export function resolveArray(get, key, fallback, strict = true) {
217
+ const value = get(key);
218
+ if (value === undefined) {
219
+ return fallback;
220
+ }
221
+ if (!Array.isArray(value)) {
222
+ if (strict) {
223
+ throw new ConfigResolutionError(key, [
224
+ {
225
+ path: key,
226
+ message: `Expected configuration "${key}" to be array.`,
227
+ code: "TYPE_MISMATCH",
228
+ expected: "array",
229
+ received: typeof value,
230
+ },
231
+ ]);
232
+ }
233
+ return fallback;
234
+ }
235
+ return value;
236
+ }
237
+ //# sourceMappingURL=configResolver.accessors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configResolver.accessors.js","sourceRoot":"","sources":["../../../src/configResolver/accessors/configResolver.accessors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { ConfigValue } from "../../configValue/configValue.core.js";
2
+ import type { ConfigSchema } from "../../configSchema/configSchema.core.js";
3
+ import type { ConfigResolver } from "../core/configResolver.core.js";
4
+ /**
5
+ * Resolver scoped to a configuration key prefix.
6
+ */
7
+ export declare class ScopedConfigResolver {
8
+ private readonly resolver;
9
+ private readonly prefix;
10
+ constructor(resolver: ConfigResolver, prefix: string);
11
+ /**
12
+ * Resolves a key inside the current scope.
13
+ */
14
+ key(key: string): string;
15
+ get<T extends ConfigValue = ConfigValue>(key: string): T | undefined;
16
+ required<T extends ConfigValue = ConfigValue>(key: string): T;
17
+ string(key: string, fallback?: string): string | undefined;
18
+ number(key: string, fallback?: number): number | undefined;
19
+ boolean(key: string, fallback?: boolean): boolean | undefined;
20
+ bigint(key: string, fallback?: bigint): bigint | undefined;
21
+ date(key: string, fallback?: Date): Date | undefined;
22
+ object<T extends ConfigValue = ConfigValue>(key: string, fallback?: T): T | undefined;
23
+ array<T extends ConfigValue = ConfigValue>(key: string, fallback?: readonly T[]): readonly T[] | undefined;
24
+ resolve<T extends ConfigValue>(key: string, schema: ConfigSchema<T>): T | undefined;
25
+ pick(keys: readonly string[]): Readonly<Record<string, ConfigValue>>;
26
+ scoped(prefix: string): ScopedConfigResolver;
27
+ }
28
+ //# sourceMappingURL=configResolver.scoped.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configResolver.scoped.d.ts","sourceRoot":"","sources":["../../../src/configResolver/accessors/configResolver.scoped.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAEzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAE5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAE1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,YAAY,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAInD;IAED;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvB;IAED,GAAG,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAEnE;IAED,QAAQ,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,CAE5D;IAED,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEzD;IAED,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEzD;IAED,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAE5D;IAED,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEzD;IAED,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAEnD;IAED,MAAM,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EACxC,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,CAAC,GACX,CAAC,GAAG,SAAS,CAEf;IAED,KAAK,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EACvC,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,SAAS,CAAC,EAAE,GACtB,SAAS,CAAC,EAAE,GAAG,SAAS,CAE1B;IAED,OAAO,CAAC,CAAC,SAAS,WAAW,EAC3B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GACtB,CAAC,GAAG,SAAS,CAEf;IAED,IAAI,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAEnE;IAED,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAE3C;CACF"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Resolver scoped to a configuration key prefix.
3
+ */
4
+ export class ScopedConfigResolver {
5
+ resolver;
6
+ prefix;
7
+ constructor(resolver, prefix) {
8
+ this.resolver = resolver;
9
+ this.prefix = prefix.trim().replace(/\.$/, "");
10
+ }
11
+ /**
12
+ * Resolves a key inside the current scope.
13
+ */
14
+ key(key) {
15
+ return this.prefix ? `${this.prefix}.${key}` : key;
16
+ }
17
+ get(key) {
18
+ return this.resolver.get(this.key(key));
19
+ }
20
+ required(key) {
21
+ return this.resolver.required(this.key(key));
22
+ }
23
+ string(key, fallback) {
24
+ return this.resolver.string(this.key(key), fallback);
25
+ }
26
+ number(key, fallback) {
27
+ return this.resolver.number(this.key(key), fallback);
28
+ }
29
+ boolean(key, fallback) {
30
+ return this.resolver.boolean(this.key(key), fallback);
31
+ }
32
+ bigint(key, fallback) {
33
+ return this.resolver.bigint(this.key(key), fallback);
34
+ }
35
+ date(key, fallback) {
36
+ return this.resolver.date(this.key(key), fallback);
37
+ }
38
+ object(key, fallback) {
39
+ return this.resolver.object(this.key(key), fallback);
40
+ }
41
+ array(key, fallback) {
42
+ return this.resolver.array(this.key(key), fallback);
43
+ }
44
+ resolve(key, schema) {
45
+ return this.resolver.resolve(this.key(key), schema);
46
+ }
47
+ pick(keys) {
48
+ return this.resolver.pick(keys.map((key) => this.key(key)));
49
+ }
50
+ scoped(prefix) {
51
+ return this.resolver.scoped(this.key(prefix));
52
+ }
53
+ }
54
+ //# sourceMappingURL=configResolver.scoped.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configResolver.scoped.js","sourceRoot":"","sources":["../../../src/configResolver/accessors/configResolver.scoped.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,OAAO,oBAAoB;IACd,QAAQ,CAAiB;IAEzB,MAAM,CAAS;IAEhC,YAAY,QAAwB,EAAE,MAAc;QAClD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACrD,CAAC;IAED,GAAG,CAAsC,GAAW;QAClD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,QAAQ,CAAsC,GAAW;QACvD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,GAAW,EAAE,QAAiB;QACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,GAAW,EAAE,QAAiB;QACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,QAAkB;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,GAAW,EAAE,QAAiB;QACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,CAAC,GAAW,EAAE,QAAe;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CACJ,GAAW,EACX,QAAY;QAEZ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CACH,GAAW,EACX,QAAuB;QAEvB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,CACL,GAAW,EACX,MAAuB;QAEvB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,CAAC,IAAuB;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @zudojs/config/configResolver/accessors
3
+ *
4
+ * Configuration accessors and scoped resolver.
5
+ */
6
+ export * from "./configResolver.accessors.js";
7
+ export * from "./configResolver.scoped.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/configResolver/accessors/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @zudojs/config/configResolver/accessors
3
+ *
4
+ * Configuration accessors and scoped resolver.
5
+ */
6
+ export * from "./configResolver.accessors.js";
7
+ export * from "./configResolver.scoped.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/configResolver/accessors/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,100 @@
1
+ import type { ConfigValue } from "../../configValue/configValue.core.js";
2
+ import type { ConfigSchema } from "../../configSchema/configSchema.core.js";
3
+ import type { ConfigStore } from "../../configStore/configStore.core.js";
4
+ import type { ConfigResolverOptions, ConfigResolutionResult } from "./configResolver.type.js";
5
+ import { ScopedConfigResolver } from "../accessors/configResolver.scoped.js";
6
+ /**
7
+ * Resolves typed configuration values from a ConfigStore.
8
+ *
9
+ * This class is intentionally separate from ConfigStore. The store
10
+ * owns values, while the resolver owns interpretation and validation.
11
+ */
12
+ export declare class ConfigResolver {
13
+ private readonly store;
14
+ private readonly options;
15
+ constructor(store: ConfigStore, options?: ConfigResolverOptions);
16
+ /**
17
+ * Returns the raw configuration value.
18
+ */
19
+ get<T extends ConfigValue = ConfigValue>(key: string): T | undefined;
20
+ /**
21
+ * Resolves a value using a schema.
22
+ */
23
+ resolve<T extends ConfigValue>(key: string, schema: ConfigSchema<T>): T | undefined;
24
+ /**
25
+ * Resolves a value and returns diagnostic information.
26
+ */
27
+ resolveResult<T extends ConfigValue>(key: string, schema: ConfigSchema<T>): ConfigResolutionResult<T>;
28
+ /**
29
+ * Returns a required configuration value.
30
+ */
31
+ required<T extends ConfigValue = ConfigValue>(key: string): T;
32
+ /**
33
+ * Returns a string configuration value.
34
+ */
35
+ string(key: string, fallback?: string): string | undefined;
36
+ /**
37
+ * Returns a required string.
38
+ */
39
+ requiredString(key: string): string;
40
+ /**
41
+ * Returns a number configuration value.
42
+ */
43
+ number(key: string, fallback?: number): number | undefined;
44
+ /**
45
+ * Returns a required number.
46
+ */
47
+ requiredNumber(key: string): number;
48
+ /**
49
+ * Returns a boolean configuration value.
50
+ */
51
+ boolean(key: string, fallback?: boolean): boolean | undefined;
52
+ /**
53
+ * Returns a required boolean.
54
+ */
55
+ requiredBoolean(key: string): boolean;
56
+ /**
57
+ * Returns a bigint configuration value.
58
+ */
59
+ bigint(key: string, fallback?: bigint): bigint | undefined;
60
+ /**
61
+ * Returns a Date configuration value.
62
+ */
63
+ date(key: string, fallback?: Date): Date | undefined;
64
+ /**
65
+ * Returns a required Date.
66
+ */
67
+ requiredDate(key: string): Date;
68
+ /**
69
+ * Returns an object configuration value.
70
+ */
71
+ object<T extends ConfigValue = ConfigValue>(key: string, fallback?: T): T | undefined;
72
+ /**
73
+ * Returns an array configuration value.
74
+ */
75
+ array<T extends ConfigValue = ConfigValue>(key: string, fallback?: readonly T[]): readonly T[] | undefined;
76
+ /**
77
+ * Resolves a group of configuration keys.
78
+ */
79
+ pick(keys: readonly string[]): Readonly<Record<string, ConfigValue>>;
80
+ /**
81
+ * Creates a resolver for a nested key prefix.
82
+ */
83
+ scoped(prefix: string): ScopedConfigResolver;
84
+ /**
85
+ * Returns the underlying store.
86
+ */
87
+ getStore(): ConfigStore;
88
+ private prepareValue;
89
+ private invalidType;
90
+ }
91
+ import { ConfigurationError } from "@zudojs/errors";
92
+ /**
93
+ * Error thrown when configuration resolution fails.
94
+ */
95
+ export declare class ConfigResolutionError extends ConfigurationError {
96
+ readonly key: string;
97
+ readonly issues: readonly unknown[];
98
+ constructor(key: string, issues: readonly unknown[]);
99
+ }
100
+ //# sourceMappingURL=configResolver.core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configResolver.core.d.ts","sourceRoot":"","sources":["../../../src/configResolver/core/configResolver.core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AASzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAI5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAEzE,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IAEpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAE1D,YAAY,KAAK,EAAE,WAAW,EAAE,OAAO,GAAE,qBAA0B,EAQlE;IAED;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAInE;IAED;;OAEG;IACH,OAAO,CAAC,CAAC,SAAS,WAAW,EAC3B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GACtB,CAAC,GAAG,SAAS,CA2Bf;IAED;;OAEG;IACH,aAAa,CAAC,CAAC,SAAS,WAAW,EACjC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GACtB,sBAAsB,CAAC,CAAC,CAAC,CAmB3B;IAED;;OAEG;IACH,QAAQ,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,CAc5D;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAYzD;IAED;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAclC;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAwBzD;IAED;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAclC;IAED;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAoB5D;IAED;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAcpC;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAoBzD;IAED;;OAEG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAoBnD;IAED;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAc9B;IAED;;OAEG;IACH,MAAM,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EACxC,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,CAAC,GACX,CAAC,GAAG,SAAS,CAiBf;IAED;;OAEG;IACH,KAAK,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EACvC,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,SAAS,CAAC,EAAE,GACtB,SAAS,CAAC,EAAE,GAAG,SAAS,CAY1B;IAED;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAYnE;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAE3C;IAED;;OAEG;IACH,QAAQ,IAAI,WAAW,CAEtB;IAED,OAAO,CAAC,YAAY;IAgCpB,OAAO,CAAC,WAAW;CAoBpB;AACD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,kBAAkB;IAC3D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IAEpC,YAAY,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE,EASlD;CACF"}