@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,306 @@
1
+ import { cloneConfigValue, configValuesEqual, freezeConfigValue, } from "../configValue/configValue.core.js";
2
+ import { createConfigEntry } from "../configEntry/configEntry.type.js";
3
+ /**
4
+ * Normalizes a configuration key.
5
+ */
6
+ export function normalizeKey(key) {
7
+ if (typeof key !== "string") {
8
+ throw new TypeError("Configuration key must be a string.");
9
+ }
10
+ const normalized = key.trim();
11
+ if (normalized.length === 0) {
12
+ throw new TypeError("Configuration key cannot be empty.");
13
+ }
14
+ return normalized;
15
+ }
16
+ /**
17
+ * Central in-memory configuration store.
18
+ *
19
+ * The store keeps resolved values and their metadata together so
20
+ * consumers can inspect where a value originated from.
21
+ */
22
+ export class ConfigStore {
23
+ entries = new Map();
24
+ listeners = new Set();
25
+ shouldFreeze;
26
+ disposed = false;
27
+ constructor(options = {}) {
28
+ this.shouldFreeze = options.freeze ?? true;
29
+ if (options.initialValues) {
30
+ for (const [key, value] of Object.entries(options.initialValues)) {
31
+ this.set(key, value);
32
+ }
33
+ }
34
+ if (options.entries) {
35
+ for (const entry of options.entries) {
36
+ this.setEntry(entry);
37
+ }
38
+ }
39
+ }
40
+ /**
41
+ * Returns whether the store has been disposed.
42
+ */
43
+ get isDisposed() {
44
+ return this.disposed;
45
+ }
46
+ /**
47
+ * Returns the number of stored configuration entries.
48
+ */
49
+ get size() {
50
+ return this.entries.size;
51
+ }
52
+ /**
53
+ * Checks whether a key exists.
54
+ */
55
+ has(key) {
56
+ this.assertActive();
57
+ return this.entries.has(normalizeKey(key));
58
+ }
59
+ /**
60
+ * Gets a configuration value.
61
+ */
62
+ get(key) {
63
+ this.assertActive();
64
+ const entry = this.entries.get(normalizeKey(key));
65
+ if (!entry) {
66
+ return undefined;
67
+ }
68
+ return entry.value;
69
+ }
70
+ /**
71
+ * Gets a configuration entry.
72
+ */
73
+ getEntry(key) {
74
+ this.assertActive();
75
+ return this.entries.get(normalizeKey(key));
76
+ }
77
+ /**
78
+ * Gets a value or returns the supplied fallback.
79
+ */
80
+ getOrDefault(key, fallback) {
81
+ const value = this.get(key);
82
+ return value === undefined ? fallback : value;
83
+ }
84
+ /**
85
+ * Sets a configuration value.
86
+ */
87
+ set(key, value, options = {}) {
88
+ this.assertActive();
89
+ const normalizedKey = normalizeKey(key);
90
+ const previous = this.entries.get(normalizedKey);
91
+ const normalizedValue = this.shouldFreeze
92
+ ? freezeConfigValue(cloneConfigValue(value))
93
+ : value;
94
+ const entry = createConfigEntry({
95
+ key: normalizedKey,
96
+ value: normalizedValue,
97
+ source: options.source ?? "runtime",
98
+ sourceType: options.sourceType,
99
+ priority: options.priority ?? 0,
100
+ sensitive: options.sensitive ?? false,
101
+ resolved: options.resolved ?? true,
102
+ });
103
+ if (previous &&
104
+ configValuesEqual(previous.value, entry.value) &&
105
+ previous.source === entry.source &&
106
+ previous.sourceType === entry.sourceType &&
107
+ previous.priority === entry.priority &&
108
+ previous.sensitive === entry.sensitive &&
109
+ previous.resolved === entry.resolved) {
110
+ return entry;
111
+ }
112
+ this.entries.set(normalizedKey, entry);
113
+ this.emitChange({
114
+ key: normalizedKey,
115
+ previous,
116
+ current: entry,
117
+ timestamp: Date.now(),
118
+ });
119
+ return entry;
120
+ }
121
+ /**
122
+ * Stores an existing configuration entry.
123
+ */
124
+ setEntry(entry) {
125
+ this.assertActive();
126
+ this.set(entry.key, entry.value, {
127
+ source: entry.source,
128
+ sourceType: entry.sourceType,
129
+ priority: entry.priority,
130
+ sensitive: entry.sensitive,
131
+ resolved: entry.resolved,
132
+ });
133
+ }
134
+ /**
135
+ * Sets multiple configuration values.
136
+ */
137
+ setMany(values, options = {}) {
138
+ this.assertActive();
139
+ for (const [key, value] of Object.entries(values)) {
140
+ this.set(key, value, options);
141
+ }
142
+ }
143
+ /**
144
+ * Removes a configuration value.
145
+ */
146
+ delete(key) {
147
+ this.assertActive();
148
+ const normalizedKey = normalizeKey(key);
149
+ const previous = this.entries.get(normalizedKey);
150
+ if (!previous) {
151
+ return false;
152
+ }
153
+ this.entries.delete(normalizedKey);
154
+ this.emitChange({
155
+ key: normalizedKey,
156
+ previous,
157
+ current: undefined,
158
+ timestamp: Date.now(),
159
+ });
160
+ return true;
161
+ }
162
+ /**
163
+ * Removes every configuration entry.
164
+ */
165
+ clear() {
166
+ this.assertActive();
167
+ const entries = Array.from(this.entries.values());
168
+ this.entries.clear();
169
+ const timestamp = Date.now();
170
+ for (const previous of entries) {
171
+ this.emitChange({
172
+ key: previous.key,
173
+ previous,
174
+ current: undefined,
175
+ timestamp,
176
+ });
177
+ }
178
+ }
179
+ /**
180
+ * Returns all entries.
181
+ */
182
+ getEntries() {
183
+ this.assertActive();
184
+ return Array.from(this.entries.values());
185
+ }
186
+ /**
187
+ * Returns all keys.
188
+ */
189
+ keys() {
190
+ this.assertActive();
191
+ return Array.from(this.entries.keys());
192
+ }
193
+ /**
194
+ * Returns all values.
195
+ */
196
+ values() {
197
+ this.assertActive();
198
+ return Array.from(this.entries.values(), (entry) => entry.value);
199
+ }
200
+ /**
201
+ * Returns a plain object containing all configuration values.
202
+ */
203
+ toObject() {
204
+ this.assertActive();
205
+ const result = {};
206
+ for (const entry of this.entries.values()) {
207
+ result[entry.key] = entry.value;
208
+ }
209
+ if (this.shouldFreeze) {
210
+ freezeConfigValue(result);
211
+ }
212
+ return result;
213
+ }
214
+ /**
215
+ * Returns entries matching a prefix.
216
+ */
217
+ getByPrefix(prefix) {
218
+ this.assertActive();
219
+ const normalizedPrefix = normalizeKey(prefix);
220
+ return Array.from(this.entries.values()).filter((entry) => entry.key === normalizedPrefix ||
221
+ entry.key.startsWith(`${normalizedPrefix}.`));
222
+ }
223
+ /**
224
+ * Returns configuration values matching a prefix.
225
+ */
226
+ getObjectByPrefix(prefix) {
227
+ const entries = this.getByPrefix(prefix);
228
+ const normalizedPrefix = normalizeKey(prefix);
229
+ const result = {};
230
+ for (const entry of entries) {
231
+ const key = entry.key === normalizedPrefix
232
+ ? ""
233
+ : entry.key.slice(normalizedPrefix.length + 1);
234
+ if (key.length > 0) {
235
+ result[key] = entry.value;
236
+ }
237
+ }
238
+ if (this.shouldFreeze) {
239
+ freezeConfigValue(result);
240
+ }
241
+ return result;
242
+ }
243
+ /**
244
+ * Subscribes to configuration changes.
245
+ */
246
+ subscribe(listener) {
247
+ this.assertActive();
248
+ if (typeof listener !== "function") {
249
+ throw new TypeError("Configuration change listener must be a function.");
250
+ }
251
+ this.listeners.add(listener);
252
+ return () => {
253
+ this.listeners.delete(listener);
254
+ };
255
+ }
256
+ /**
257
+ * Creates a snapshot of the current store.
258
+ */
259
+ snapshot() {
260
+ this.assertActive();
261
+ return new ConfigStore({
262
+ entries: this.getEntries(),
263
+ freeze: this.shouldFreeze,
264
+ });
265
+ }
266
+ /**
267
+ * Replaces the current store contents.
268
+ */
269
+ replace(values, options = {}) {
270
+ this.assertActive();
271
+ const incomingKeys = new Set(Object.keys(values).map(normalizeKey));
272
+ for (const key of this.keys()) {
273
+ if (!incomingKeys.has(key)) {
274
+ this.delete(key);
275
+ }
276
+ }
277
+ this.setMany(values, options);
278
+ }
279
+ /**
280
+ * Disposes the store and removes listeners.
281
+ */
282
+ dispose() {
283
+ if (this.disposed) {
284
+ return;
285
+ }
286
+ this.listeners.clear();
287
+ this.entries.clear();
288
+ this.disposed = true;
289
+ }
290
+ emitChange(event) {
291
+ for (const listener of this.listeners) {
292
+ try {
293
+ listener(event);
294
+ }
295
+ catch {
296
+ // Listener failures must not break configuration writes.
297
+ }
298
+ }
299
+ }
300
+ assertActive() {
301
+ if (this.disposed) {
302
+ throw new Error("ConfigStore has been disposed.");
303
+ }
304
+ }
305
+ }
306
+ //# sourceMappingURL=configStore.core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configStore.core.js","sourceRoot":"","sources":["../../src/configStore/configStore.core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @zudojs/config/configStore/configStore.factory
3
+ *
4
+ * Factory and utility functions for ConfigStore.
5
+ */
6
+ export { normalizeKey } from "./configStore.core.js";
7
+ import type { ConfigStoreOptions } from "./configStore.type.js";
8
+ import { ConfigStore } from "./configStore.core.js";
9
+ /**
10
+ * Creates a configuration store.
11
+ */
12
+ export declare function createConfigStore(options?: ConfigStoreOptions): ConfigStore;
13
+ //# sourceMappingURL=configStore.factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configStore.factory.d.ts","sourceRoot":"","sources":["../../src/configStore/configStore.factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,kBAAuB,GAC/B,WAAW,CAEb"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @zudojs/config/configStore/configStore.factory
3
+ *
4
+ * Factory and utility functions for ConfigStore.
5
+ */
6
+ export { normalizeKey } from "./configStore.core.js";
7
+ import { ConfigStore } from "./configStore.core.js";
8
+ /**
9
+ * Creates a configuration store.
10
+ */
11
+ export function createConfigStore(options = {}) {
12
+ return new ConfigStore(options);
13
+ }
14
+ //# sourceMappingURL=configStore.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configStore.factory.js","sourceRoot":"","sources":["../../src/configStore/configStore.factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIrD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAO,GAAuB,EAAE;IAEhC,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { ConfigValue } from "../configValue/configValue.core.js";
2
+ import type { ConfigEntry } from "../configEntry/configEntry.type.js";
3
+ /**
4
+ * Event emitted when a configuration value changes.
5
+ */
6
+ export interface ConfigChangeEvent {
7
+ readonly key: string;
8
+ readonly previous?: ConfigEntry;
9
+ readonly current?: ConfigEntry;
10
+ readonly timestamp: number;
11
+ }
12
+ /**
13
+ * Listener called when configuration changes.
14
+ */
15
+ export type ConfigChangeListener = (event: ConfigChangeEvent) => void;
16
+ /**
17
+ * Options used to initialize a configuration store.
18
+ */
19
+ export interface ConfigStoreOptions {
20
+ readonly initialValues?: Readonly<Record<string, ConfigValue>>;
21
+ readonly entries?: readonly ConfigEntry[];
22
+ readonly freeze?: boolean;
23
+ }
24
+ //# sourceMappingURL=configStore.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configStore.type.d.ts","sourceRoot":"","sources":["../../src/configStore/configStore.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAItE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAE/D,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAE1C,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=configStore.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configStore.type.js","sourceRoot":"","sources":["../../src/configStore/configStore.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @zudojs/config/configStore
3
+ *
4
+ * In-memory configuration storage and access.
5
+ */
6
+ export * from "./configStore.type.js";
7
+ export * from "./configStore.core.js";
8
+ export * from "./configStore.factory.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/configStore/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @zudojs/config/configStore
3
+ *
4
+ * In-memory configuration storage and access.
5
+ */
6
+ export * from "./configStore.type.js";
7
+ export * from "./configStore.core.js";
8
+ export * from "./configStore.factory.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/configStore/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Configuration values used throughout Zudojs.
3
+ *
4
+ * This module provides the common value types and utilities used by
5
+ * the configuration system. Values remain JSON-compatible where
6
+ * possible, while allowing common runtime values such as undefined,
7
+ * Date, and Buffer-like binary data to be handled safely.
8
+ */
9
+ /**
10
+ * Primitive configuration values.
11
+ */
12
+ export type ConfigPrimitive = string | number | boolean | bigint | null | undefined;
13
+ /**
14
+ * JSON-compatible configuration values.
15
+ */
16
+ export type ConfigJsonValue = string | number | boolean | null | ConfigJsonValue[] | {
17
+ readonly [key: string]: ConfigJsonValue;
18
+ };
19
+ /**
20
+ * Values accepted by the Zudojs configuration system.
21
+ */
22
+ export type ConfigValue = ConfigPrimitive | Date | ConfigValue[] | {
23
+ readonly [key: string]: ConfigValue;
24
+ };
25
+ /**
26
+ * Configuration values after environment-variable parsing.
27
+ */
28
+ export type ResolvedConfigValue = string | number | boolean | bigint | null | undefined | Date | ResolvedConfigValue[] | {
29
+ readonly [key: string]: ResolvedConfigValue;
30
+ };
31
+ /**
32
+ * Checks whether a value is a configuration primitive.
33
+ */
34
+ export declare function isConfigPrimitive(value: unknown): value is ConfigPrimitive;
35
+ /**
36
+ * Checks whether a value is a plain configuration object.
37
+ */
38
+ export declare function isConfigObject(value: unknown): value is {
39
+ readonly [key: string]: ConfigValue;
40
+ };
41
+ /**
42
+ * Checks whether a value can be stored as a configuration value.
43
+ */
44
+ export declare function isConfigValue(value: unknown): value is ConfigValue;
45
+ /**
46
+ * Converts a configuration value into a JSON-compatible value.
47
+ *
48
+ * Undefined values are preserved by default so callers can decide
49
+ * whether they should be omitted.
50
+ */
51
+ export declare function toConfigJsonValue(value: ConfigValue): ConfigJsonValue | undefined;
52
+ /**
53
+ * Converts a configuration value to a string.
54
+ *
55
+ * This is primarily useful when generating environment-like output.
56
+ */
57
+ export declare function configValueToString(value: ConfigValue): string | undefined;
58
+ /**
59
+ * Parses a primitive environment-style value.
60
+ *
61
+ * The parser intentionally does not aggressively infer numbers or
62
+ * booleans from arbitrary strings. Use the typed config resolvers
63
+ * when a specific type is required.
64
+ */
65
+ export declare function parseConfigString(value: string | undefined): ConfigPrimitive;
66
+ /**
67
+ * Parses a boolean configuration value.
68
+ */
69
+ export declare function parseConfigBoolean(value: string | boolean | undefined): boolean | undefined;
70
+ /**
71
+ * Parses a numeric configuration value.
72
+ */
73
+ export declare function parseConfigNumber(value: string | number | undefined): number | undefined;
74
+ /**
75
+ * Parses a bigint configuration value.
76
+ */
77
+ export declare function parseConfigBigInt(value: string | bigint | undefined): bigint | undefined;
78
+ /**
79
+ * Parses a Date configuration value.
80
+ */
81
+ export declare function parseConfigDate(value: string | Date | undefined): Date | undefined;
82
+ /**
83
+ * Deeply freezes a configuration value.
84
+ *
85
+ * Configuration objects should normally be immutable after
86
+ * resolution to prevent accidental runtime mutation.
87
+ */
88
+ export declare function freezeConfigValue<T extends ConfigValue>(value: T): T;
89
+ /**
90
+ * Deeply clones a configuration value.
91
+ */
92
+ export declare function cloneConfigValue<T extends ConfigValue>(value: T): T;
93
+ /**
94
+ * Compares two configuration values deeply.
95
+ */
96
+ export declare function configValuesEqual(left: ConfigValue, right: ConfigValue): boolean;
97
+ //# sourceMappingURL=configValue.core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configValue.core.d.ts","sourceRoot":"","sources":["../../src/configValue/configValue.core.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GACzB,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,eAAe,EAAE,GACjB;IACE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;CACzC,CAAC;AAEN;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,eAAe,GACf,IAAI,GACJ,WAAW,EAAE,GACb;IACE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;CACrC,CAAC;AAEN;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,MAAM,GACN,MAAM,GACN,OAAO,GACP,MAAM,GACN,IAAI,GACJ,SAAS,GACT,IAAI,GACJ,mBAAmB,EAAE,GACrB;IACE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAAC;CAC7C,CAAC;AAEN;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAS1E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI;IACvD,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;CACrC,CAaA;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAkBlE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,GACjB,eAAe,GAAG,SAAS,CAkD7B;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAoC1E;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,CAM5E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAClC,OAAO,GAAG,SAAS,CA2BrB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GACjC,MAAM,GAAG,SAAS,CAkBpB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GACjC,MAAM,GAAG,SAAS,CAoBpB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,IAAI,GAAG,SAAS,CAclB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAoBpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAwBnE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,WAAW,GACjB,OAAO,CAkCT"}