@holo-js/config 0.2.6 → 0.3.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/dist/index.d.ts CHANGED
@@ -1,47 +1,23 @@
1
- interface HoloConfigRegistry {
2
- app: NormalizedHoloAppConfig;
3
- database: NormalizedHoloDatabaseConfig;
4
- redis: NormalizedHoloRedisConfig;
5
- cache: NormalizedHoloCacheConfig;
6
- cors: NormalizedHoloCorsConfig;
7
- storage: NormalizedHoloStorageConfig;
8
- queue: NormalizedHoloQueueConfig;
9
- broadcast: NormalizedHoloBroadcastConfig;
10
- mail: NormalizedHoloMailConfig;
11
- notifications: NormalizedHoloNotificationsConfig;
12
- media: HoloMediaConfig;
13
- session: NormalizedHoloSessionConfig;
14
- security: NormalizedHoloSecurityConfig;
15
- auth: NormalizedHoloAuthConfig;
16
- }
1
+ import { HoloProjectPaths, HoloProjectConfig, NormalizedHoloRedisConfig } from '@holo-js/kernel';
2
+ export { HoloConfigNormalizer, HoloConfigNormalizerContext, composeRegisteredConfig, configRegistryInternals, registerConfigNormalizer, resetConfigNormalizers } from './registry.js';
3
+
17
4
  type HoloConfigMap = object;
5
+ type HoloConfigMetadataKey = 'all' | 'custom' | 'environment' | 'loadedFiles' | 'warnings';
6
+ type HoloCustomConfig<TCustom extends HoloConfigMap> = Omit<TCustom, HoloConfigMetadataKey>;
7
+ type HoloConfigValues<TCustom extends HoloConfigMap = HoloConfigMap> = Readonly<HoloConfigRegistry & HoloCustomConfig<TCustom>>;
18
8
  interface LoadedEnvironment {
19
9
  readonly name: HoloAppEnv;
20
10
  readonly values: Readonly<Record<string, string>>;
21
11
  readonly loadedFiles: readonly string[];
22
12
  readonly warnings: readonly string[];
23
13
  }
24
- interface LoadedHoloConfig<TCustom extends HoloConfigMap = HoloConfigMap> {
25
- readonly app: NormalizedHoloAppConfig;
26
- readonly database: NormalizedHoloDatabaseConfig;
27
- readonly redis: NormalizedHoloRedisConfig;
28
- readonly cache: NormalizedHoloCacheConfig;
29
- readonly cors: NormalizedHoloCorsConfig;
30
- readonly storage: NormalizedHoloStorageConfig;
31
- readonly queue: NormalizedHoloQueueConfig;
32
- readonly broadcast: NormalizedHoloBroadcastConfig;
33
- readonly notifications: NormalizedHoloNotificationsConfig;
34
- readonly mail: NormalizedHoloMailConfig;
35
- readonly media: HoloMediaConfig;
36
- readonly session: NormalizedHoloSessionConfig;
37
- readonly security: NormalizedHoloSecurityConfig;
38
- readonly auth: NormalizedHoloAuthConfig;
14
+ type LoadedHoloConfig<TCustom extends HoloConfigMap = HoloConfigMap> = Omit<HoloConfigValues<TCustom>, HoloConfigMetadataKey> & {
39
15
  readonly custom: Readonly<TCustom>;
40
- readonly all: Readonly<HoloConfigRegistry & TCustom>;
16
+ readonly all: HoloConfigValues<TCustom>;
41
17
  readonly environment: LoadedEnvironment;
42
18
  readonly loadedFiles: readonly string[];
43
19
  readonly warnings: readonly string[];
44
- }
20
+ };
45
21
  type ConfigFileName = keyof HoloConfigRegistry | (string & {});
46
22
  type Primitive = string | number | boolean | bigint | symbol | null | undefined;
47
23
  type NonTraversable = Primitive | readonly unknown[] | ((...args: never[]) => unknown);
@@ -54,43 +30,6 @@ type DotPath<T> = T extends NonTraversable ? never : {
54
30
  type ValueAtPath<T, TPath extends string> = TPath extends `${infer THead}.${infer TTail}` ? THead extends keyof T ? ValueAtPath<T[THead], TTail> : never : TPath extends keyof T ? T[TPath] : never;
55
31
  type DefineConfigValue<TConfig extends object> = Readonly<TConfig>;
56
32
 
57
- interface HoloProjectPaths {
58
- models: string;
59
- migrations: string;
60
- generatedSchema: string;
61
- seeders: string;
62
- observers: string;
63
- factories: string;
64
- commands: string;
65
- jobs: string;
66
- authorizationPolicies: string;
67
- authorizationAbilities: string;
68
- }
69
- interface HoloProjectConnectionConfig {
70
- driver?: SupportedDatabaseDriver;
71
- url?: string;
72
- host?: string;
73
- port?: number | string;
74
- username?: string;
75
- password?: string;
76
- database?: string;
77
- filename?: string;
78
- schema?: string;
79
- ssl?: boolean | Record<string, unknown>;
80
- logging?: boolean;
81
- }
82
- interface HoloProjectDatabaseConfig {
83
- defaultConnection?: string;
84
- connections?: Record<string, HoloProjectConnectionConfig | string>;
85
- }
86
- interface HoloProjectConfig {
87
- paths?: Partial<HoloProjectPaths>;
88
- database?: HoloProjectDatabaseConfig;
89
- models?: readonly string[];
90
- migrations?: readonly string[];
91
- seeders?: readonly string[];
92
- }
93
- type SupportedDatabaseDriver = 'sqlite' | 'postgres' | 'mysql';
94
33
  type HoloAppEnv = 'development' | 'production' | 'test';
95
34
  interface HoloAppConfig extends HoloProjectConfig {
96
35
  name?: string;
@@ -98,681 +37,7 @@ interface HoloAppConfig extends HoloProjectConfig {
98
37
  url?: string;
99
38
  debug?: boolean;
100
39
  env?: HoloAppEnv;
101
- }
102
- type HoloDatabaseConnectionConfig = HoloProjectConnectionConfig;
103
- type HoloDatabaseConfig = HoloProjectDatabaseConfig;
104
- interface HoloRedisConnectionConfig {
105
- readonly url?: string;
106
- readonly clusters?: readonly HoloRedisClusterNodeConfig[];
107
- readonly socketPath?: string;
108
- readonly host?: string;
109
- readonly port?: number | string;
110
- readonly username?: string;
111
- readonly password?: string;
112
- readonly db?: number | string;
113
- }
114
- interface HoloRedisClusterNodeConfig {
115
- readonly url?: string;
116
- readonly socketPath?: string;
117
- readonly host?: string;
118
- readonly port?: number | string;
119
- }
120
- interface HoloRedisConfig {
121
- readonly default?: string;
122
- readonly connections?: Readonly<Record<string, HoloRedisConnectionConfig>>;
123
- }
124
- interface NormalizedHoloRedisConnectionConfig {
125
- readonly name: string;
126
- readonly url?: string;
127
- readonly clusters?: readonly NormalizedHoloRedisClusterNodeConfig[];
128
- readonly socketPath?: string;
129
- readonly host: string;
130
- readonly port: number;
131
- readonly username?: string;
132
- readonly password?: string;
133
- readonly db: number;
134
- }
135
- interface NormalizedHoloRedisClusterNodeConfig {
136
- readonly url?: string;
137
- readonly socketPath?: string;
138
- readonly host: string;
139
- readonly port: number;
140
- }
141
- interface NormalizedHoloRedisConfig {
142
- readonly default: string;
143
- readonly connections: Readonly<Record<string, NormalizedHoloRedisConnectionConfig>>;
144
- }
145
- type StorageDriver = 'local' | 'public' | 's3';
146
- type StorageVisibility = 'private' | 'public';
147
- interface BaseDiskConfig {
148
- driver: StorageDriver;
149
- visibility?: StorageVisibility;
150
- root?: string;
151
- url?: string;
152
- [key: string]: unknown;
153
- }
154
- interface LocalDiskConfig extends BaseDiskConfig {
155
- driver: 'local' | 'public';
156
- }
157
- interface S3DiskConfig extends BaseDiskConfig {
158
- driver: 's3';
159
- bucket?: string;
160
- region?: string;
161
- endpoint?: string;
162
- accessKeyId?: string;
163
- secretAccessKey?: string;
164
- sessionToken?: string;
165
- forcePathStyleEndpoint?: boolean;
166
- }
167
- type DiskConfig = LocalDiskConfig | S3DiskConfig;
168
- interface HoloStorageConfig {
169
- defaultDisk?: string;
170
- routePrefix?: string;
171
- disks?: Record<string, DiskConfig>;
172
- }
173
- interface HoloMediaConfig {
174
- [key: string]: unknown;
175
- }
176
- type BroadcastConnectionDriver = 'holo' | 'pusher' | 'log' | 'null';
177
- type BroadcastConnectionScheme = 'http' | 'https';
178
- interface BroadcastConnectionOptionsConfig {
179
- readonly host?: string;
180
- readonly port?: number | string;
181
- readonly scheme?: BroadcastConnectionScheme;
182
- readonly useTLS?: boolean;
183
- readonly cluster?: string;
184
- }
185
- interface BroadcastWorkerScalingConfig {
186
- readonly driver: 'redis';
187
- readonly connection?: string;
188
- }
189
- interface BroadcastWorkerConfig {
190
- readonly host?: string;
191
- readonly port?: number | string;
192
- readonly path?: string;
193
- readonly publicHost?: string;
194
- readonly publicPort?: number | string;
195
- readonly publicScheme?: BroadcastConnectionScheme;
196
- readonly healthPath?: string;
197
- readonly statsPath?: string;
198
- readonly scaling?: false | BroadcastWorkerScalingConfig;
199
- }
200
- type BroadcastConnectionConfigValue = string | number | boolean | object | undefined;
201
- interface BaseBroadcastConnectionConfig {
202
- readonly driver: BroadcastConnectionDriver | (string & {});
203
- readonly options?: BroadcastConnectionOptionsConfig;
204
- readonly clientOptions?: Readonly<Record<string, unknown>>;
205
- readonly [key: string]: BroadcastConnectionConfigValue;
206
- }
207
- interface HoloBroadcastConnectionConfig extends BaseBroadcastConnectionConfig {
208
- readonly driver: 'holo';
209
- readonly key?: string;
210
- readonly secret?: string;
211
- readonly appId?: string | number;
212
- }
213
- interface PusherBroadcastConnectionConfig extends BaseBroadcastConnectionConfig {
214
- readonly driver: 'pusher';
215
- readonly key?: string;
216
- readonly secret?: string;
217
- readonly appId?: string | number;
218
- }
219
- interface LogBroadcastConnectionConfig extends BaseBroadcastConnectionConfig {
220
- readonly driver: 'log';
221
- }
222
- interface NullBroadcastConnectionConfig extends BaseBroadcastConnectionConfig {
223
- readonly driver: 'null';
224
- }
225
- type HoloBroadcastConnection = HoloBroadcastConnectionConfig | PusherBroadcastConnectionConfig | LogBroadcastConnectionConfig | NullBroadcastConnectionConfig | BaseBroadcastConnectionConfig;
226
- interface HoloBroadcastConfig {
227
- readonly default?: string;
228
- readonly connections?: Readonly<Record<string, HoloBroadcastConnection>>;
229
- readonly worker?: BroadcastWorkerConfig;
230
- }
231
- interface NormalizedBroadcastConnectionOptionsConfig {
232
- readonly host: string;
233
- readonly port: number;
234
- readonly scheme: BroadcastConnectionScheme;
235
- readonly useTLS: boolean;
236
- readonly cluster?: string;
237
- }
238
- interface NormalizedBroadcastWorkerScalingConfig {
239
- readonly driver: 'redis';
240
- readonly connection: string;
241
- }
242
- interface NormalizedBroadcastWorkerConfig {
243
- readonly host: string;
244
- readonly port: number;
245
- readonly path: string;
246
- readonly publicHost?: string;
247
- readonly publicPort?: number;
248
- readonly publicScheme: BroadcastConnectionScheme;
249
- readonly healthPath: string;
250
- readonly statsPath: string;
251
- readonly scaling: false | NormalizedBroadcastWorkerScalingConfig;
252
- }
253
- interface NormalizedBaseBroadcastConnectionConfig {
254
- readonly name: string;
255
- readonly driver: string;
256
- readonly clientOptions: Readonly<Record<string, unknown>>;
257
- }
258
- interface NormalizedHoloBroadcastConnectionConfig extends NormalizedBaseBroadcastConnectionConfig {
259
- readonly driver: 'holo';
260
- readonly key: string;
261
- readonly secret: string;
262
- readonly appId: string;
263
- readonly options: NormalizedBroadcastConnectionOptionsConfig;
264
- }
265
- interface NormalizedPusherBroadcastConnectionConfig extends NormalizedBaseBroadcastConnectionConfig {
266
- readonly driver: 'pusher';
267
- readonly key: string;
268
- readonly secret: string;
269
- readonly appId: string;
270
- readonly options: NormalizedBroadcastConnectionOptionsConfig;
271
- }
272
- interface NormalizedLogBroadcastConnectionConfig extends NormalizedBaseBroadcastConnectionConfig {
273
- readonly driver: 'log';
274
- }
275
- interface NormalizedNullBroadcastConnectionConfig extends NormalizedBaseBroadcastConnectionConfig {
276
- readonly driver: 'null';
277
- }
278
- type NormalizedHoloBroadcastConnection = NormalizedHoloBroadcastConnectionConfig | NormalizedPusherBroadcastConnectionConfig | NormalizedLogBroadcastConnectionConfig | NormalizedNullBroadcastConnectionConfig | NormalizedBaseBroadcastConnectionConfig;
279
- interface NormalizedHoloBroadcastConfig {
280
- readonly default: string;
281
- readonly connections: Readonly<Record<string, NormalizedHoloBroadcastConnection>>;
282
- readonly worker: NormalizedBroadcastWorkerConfig;
283
- }
284
- type CacheDriver = 'memory' | 'file' | 'redis' | 'database';
285
- interface CacheMemoryDriverConfig {
286
- readonly driver: 'memory';
287
- readonly maxEntries?: number | string;
288
- readonly prefix?: string;
289
- }
290
- interface CacheFileDriverConfig {
291
- readonly driver: 'file';
292
- readonly path?: string;
293
- readonly prefix?: string;
294
- }
295
- interface CacheRedisDriverConfig {
296
- readonly driver: 'redis';
297
- readonly connection?: string;
298
- readonly prefix?: string;
299
- }
300
- interface CacheDatabaseDriverConfig {
301
- readonly driver: 'database';
302
- readonly connection?: string;
303
- readonly table?: string;
304
- readonly lockTable?: string;
305
- readonly prefix?: string;
306
- }
307
- type CacheDriverConfig = CacheMemoryDriverConfig | CacheFileDriverConfig | CacheRedisDriverConfig | CacheDatabaseDriverConfig;
308
- interface HoloCacheConfig {
309
- readonly default?: string;
310
- readonly prefix?: string;
311
- readonly drivers?: Readonly<Record<string, CacheDriverConfig>>;
312
- }
313
- interface NormalizedCacheMemoryDriverConfig {
314
- readonly name: string;
315
- readonly driver: 'memory';
316
- readonly prefix: string;
317
- readonly maxEntries?: number;
318
- }
319
- interface NormalizedCacheFileDriverConfig {
320
- readonly name: string;
321
- readonly driver: 'file';
322
- readonly path: string;
323
- readonly prefix: string;
324
- }
325
- interface NormalizedCacheRedisDriverConfig {
326
- readonly name: string;
327
- readonly driver: 'redis';
328
- readonly connection: string;
329
- readonly prefix: string;
330
- }
331
- interface NormalizedCacheDatabaseDriverConfig {
332
- readonly name: string;
333
- readonly driver: 'database';
334
- readonly connection: string;
335
- readonly table: string;
336
- readonly lockTable: string;
337
- readonly prefix: string;
338
- }
339
- type NormalizedCacheDriverConfig = NormalizedCacheMemoryDriverConfig | NormalizedCacheFileDriverConfig | NormalizedCacheRedisDriverConfig | NormalizedCacheDatabaseDriverConfig;
340
- interface NormalizedHoloCacheConfig {
341
- readonly default: string;
342
- readonly prefix: string;
343
- readonly drivers: Readonly<Record<string, NormalizedCacheDriverConfig>>;
344
- }
345
- type SessionCookieSameSite = 'lax' | 'strict' | 'none';
346
- interface HoloSessionCookieConfig {
347
- readonly name?: string;
348
- readonly path?: string;
349
- readonly domain?: string;
350
- readonly secure?: boolean;
351
- readonly httpOnly?: boolean;
352
- readonly sameSite?: SessionCookieSameSite;
353
- readonly partitioned?: boolean;
354
- readonly maxAge?: number | string;
355
- }
356
- interface SessionFileStoreConfig {
357
- readonly driver: 'file';
358
- readonly path?: string;
359
- }
360
- interface SessionDatabaseStoreConfig {
361
- readonly driver: 'database';
362
- readonly connection?: string;
363
- readonly table?: string;
364
- }
365
- interface SessionRedisStoreConfig {
366
- readonly driver: 'redis';
367
- readonly connection?: string;
368
- readonly prefix?: string;
369
- }
370
- type SessionStoreConfig = SessionFileStoreConfig | SessionDatabaseStoreConfig | SessionRedisStoreConfig;
371
- interface HoloSessionConfig {
372
- readonly driver?: string;
373
- readonly stores?: Readonly<Record<string, SessionStoreConfig>>;
374
- readonly cookie?: HoloSessionCookieConfig;
375
- readonly idleTimeout?: number | string;
376
- readonly absoluteLifetime?: number | string;
377
- readonly rememberMeLifetime?: number | string;
378
- }
379
- interface NormalizedHoloSessionCookieConfig {
380
- readonly name: string;
381
- readonly path: string;
382
- readonly domain?: string;
383
- readonly secure: boolean;
384
- readonly httpOnly: boolean;
385
- readonly sameSite: SessionCookieSameSite;
386
- readonly partitioned: boolean;
387
- readonly maxAge: number;
388
- }
389
- interface NormalizedSessionFileStoreConfig {
390
- readonly name: string;
391
- readonly driver: 'file';
392
- readonly path: string;
393
- }
394
- interface NormalizedSessionDatabaseStoreConfig {
395
- readonly name: string;
396
- readonly driver: 'database';
397
- readonly connection: string;
398
- readonly table: string;
399
- }
400
- interface NormalizedSessionRedisStoreConfig {
401
- readonly name: string;
402
- readonly driver: 'redis';
403
- readonly connection: string;
404
- readonly url?: string;
405
- readonly clusters?: readonly NormalizedHoloRedisClusterNodeConfig[];
406
- readonly host: string;
407
- readonly port: number;
408
- readonly username?: string;
409
- readonly password?: string;
410
- readonly db: number;
411
- readonly prefix: string;
412
- }
413
- type NormalizedSessionStoreConfig = NormalizedSessionFileStoreConfig | NormalizedSessionDatabaseStoreConfig | NormalizedSessionRedisStoreConfig;
414
- interface NormalizedHoloSessionConfig {
415
- readonly driver: string;
416
- readonly stores: Readonly<Record<string, NormalizedSessionStoreConfig>>;
417
- readonly cookie: NormalizedHoloSessionCookieConfig;
418
- readonly idleTimeout: number;
419
- readonly absoluteLifetime: number;
420
- readonly rememberMeLifetime: number;
421
- }
422
- interface HoloCorsConfig {
423
- readonly paths?: readonly string[];
424
- readonly origins?: readonly string[];
425
- readonly methods?: readonly string[];
426
- readonly headers?: readonly string[];
427
- readonly credentials?: boolean;
428
- readonly maxAge?: number | string;
429
- readonly statefulDomains?: readonly string[];
430
- }
431
- interface NormalizedHoloCorsConfig {
432
- readonly paths: readonly string[];
433
- readonly origins: readonly string[];
434
- readonly methods: readonly string[];
435
- readonly headers: readonly string[];
436
- readonly credentials: boolean;
437
- readonly maxAge: number;
438
- readonly statefulDomains: readonly string[];
439
- }
440
- type SecurityRateLimitDriver = 'memory' | 'file' | 'redis';
441
- interface HoloSecurityCsrfConfig {
442
- readonly enabled?: boolean;
443
- readonly field?: string;
444
- readonly header?: string;
445
- readonly cookie?: string;
446
- readonly except?: readonly string[];
447
- }
448
- interface NormalizedHoloSecurityCsrfConfig {
449
- readonly enabled: boolean;
450
- readonly field: string;
451
- readonly header: string;
452
- readonly cookie: string;
453
- readonly except: readonly string[];
454
- }
455
- interface SecurityRateLimitContext<TValues extends Readonly<Record<string, unknown>> | undefined = Readonly<Record<string, unknown>> | undefined> {
456
- readonly request: Request;
457
- readonly values?: TValues;
458
- }
459
- interface SecurityRateLimitKeyResolver<TValues extends Readonly<Record<string, unknown>> | undefined = Readonly<Record<string, unknown>> | undefined> {
460
- (context: SecurityRateLimitContext<TValues>): string | Promise<string>;
461
- }
462
- interface SecurityLimiterConfig<TValues extends Readonly<Record<string, unknown>> | undefined = Readonly<Record<string, unknown>> | undefined> {
463
- readonly maxAttempts: number | string;
464
- readonly decaySeconds: number | string;
465
- readonly key?: SecurityRateLimitKeyResolver<TValues>;
466
- }
467
- interface NormalizedSecurityLimiterConfig<TValues extends Readonly<Record<string, unknown>> | undefined = Readonly<Record<string, unknown>> | undefined> {
468
- readonly name: string;
469
- readonly maxAttempts: number;
470
- readonly decaySeconds: number;
471
- readonly key?: SecurityRateLimitKeyResolver<TValues>;
472
- }
473
- interface SecurityRateLimitMemoryConfig {
474
- readonly driver?: 'memory';
475
- }
476
- interface SecurityRateLimitFileConfig {
477
- readonly path?: string;
478
- }
479
- interface SecurityRateLimitRedisConnectionConfig {
480
- readonly url?: string;
481
- readonly clusters?: readonly HoloRedisClusterNodeConfig[];
482
- readonly host?: string;
483
- readonly port?: number | string;
484
- readonly password?: string;
485
- readonly username?: string;
486
- readonly db?: number | string;
487
- }
488
- interface SecurityRateLimitRedisConfig {
489
- readonly connection?: string;
490
- readonly prefix?: string;
491
- }
492
- interface HoloSecurityRateLimitConfig {
493
- readonly driver?: SecurityRateLimitDriver;
494
- readonly memory?: SecurityRateLimitMemoryConfig;
495
- readonly file?: SecurityRateLimitFileConfig;
496
- readonly redis?: SecurityRateLimitRedisConfig;
497
- readonly limiters?: Readonly<Record<string, SecurityLimiterConfig>>;
498
- }
499
- interface NormalizedSecurityRateLimitMemoryConfig {
500
- readonly driver: 'memory';
501
- }
502
- interface NormalizedSecurityRateLimitFileConfig {
503
- readonly path: string;
504
- }
505
- interface NormalizedSecurityRateLimitRedisConfig {
506
- readonly url?: string;
507
- readonly clusters?: readonly NormalizedHoloRedisClusterNodeConfig[];
508
- readonly host: string;
509
- readonly port: number;
510
- readonly password?: string;
511
- readonly username?: string;
512
- readonly db: number;
513
- readonly connection: string;
514
- readonly prefix: string;
515
- }
516
- interface NormalizedHoloSecurityRateLimitConfig {
517
- readonly driver: SecurityRateLimitDriver;
518
- readonly memory: NormalizedSecurityRateLimitMemoryConfig;
519
- readonly file: NormalizedSecurityRateLimitFileConfig;
520
- readonly redis: NormalizedSecurityRateLimitRedisConfig;
521
- readonly limiters: Readonly<Record<string, NormalizedSecurityLimiterConfig>>;
522
- }
523
- interface HoloSecurityConfig {
524
- readonly csrf?: boolean | HoloSecurityCsrfConfig;
525
- readonly rateLimit?: HoloSecurityRateLimitConfig;
526
- }
527
- interface NormalizedHoloSecurityConfig {
528
- readonly csrf: NormalizedHoloSecurityCsrfConfig;
529
- readonly rateLimit: NormalizedHoloSecurityRateLimitConfig;
530
- }
531
- type AuthGuardDriver = 'session' | 'token';
532
- interface AuthGuardConfig {
533
- readonly driver: AuthGuardDriver;
534
- readonly provider?: string;
535
- }
536
- interface AuthProviderConfig {
537
- readonly model: string;
538
- readonly identifiers?: readonly string[];
539
- }
540
- interface AuthPasswordBrokerConfig {
541
- readonly provider?: string;
542
- readonly table?: string;
543
- readonly expire?: number | string;
544
- readonly throttle?: number | string;
545
- readonly route?: string;
546
- }
547
- interface AuthEmailVerificationConfig {
548
- readonly required?: boolean;
549
- readonly route?: string;
550
- }
551
- interface AuthPersonalAccessTokenConfig {
552
- readonly defaultAbilities?: readonly string[];
553
- }
554
- interface AuthSocialProviderConfig {
555
- readonly runtime?: string;
556
- readonly clientId?: string;
557
- readonly clientSecret?: string;
558
- readonly redirectUri?: string;
559
- readonly scopes?: readonly string[];
560
- readonly guard?: string;
561
- readonly mapToProvider?: string;
562
- readonly encryptTokens?: boolean;
563
- }
564
- interface AuthWorkosProviderConfig {
565
- readonly clientId?: string;
566
- readonly apiKey?: string;
567
- readonly redirectUri?: string;
568
- readonly guard?: string;
569
- readonly mapToProvider?: string;
570
- }
571
- interface AuthHostedIdentityRecord {
572
- readonly provider: string;
573
- readonly providerUserId: string;
574
- readonly guard: string;
575
- readonly authProvider: string;
576
- readonly userId: string | number;
577
- readonly email?: string;
578
- readonly emailVerified: boolean;
579
- readonly profile: Readonly<Record<string, unknown>>;
580
- readonly linkedAt: Date;
581
- readonly updatedAt: Date;
582
- }
583
- interface AuthHostedIdentityStore {
584
- findByProviderUserId(provider: string, providerUserId: string): Promise<AuthHostedIdentityRecord | null>;
585
- findByUserId(provider: string, authProvider: string, userId: string | number): Promise<AuthHostedIdentityRecord | null>;
586
- claim?(record: AuthHostedIdentityRecord): Promise<AuthHostedIdentityRecord>;
587
- save(record: AuthHostedIdentityRecord): Promise<void>;
588
- }
589
- interface HoloAuthWorkosConfig {
590
- readonly provider?: string;
591
- readonly identityStore?: AuthHostedIdentityStore;
592
- readonly [provider: string]: AuthHostedIdentityStore | AuthWorkosProviderConfig | string | undefined;
593
- }
594
- interface AuthClerkProviderConfig {
595
- readonly publishableKey?: string;
596
- readonly secretKey?: string;
597
- readonly apiUrl?: string;
598
- readonly frontendApi?: string;
599
- readonly redirectUri?: string;
600
- readonly sessionCookie?: string;
601
- readonly authorizedParties?: readonly string[];
602
- readonly guard?: string;
603
- readonly mapToProvider?: string;
604
- }
605
- interface HoloAuthClerkConfig {
606
- readonly provider?: string;
607
- readonly identityStore?: AuthHostedIdentityStore;
608
- readonly [provider: string]: AuthHostedIdentityStore | AuthClerkProviderConfig | string | undefined;
609
- }
610
- interface HoloAuthConfig {
611
- readonly defaults?: {
612
- readonly guard?: string;
613
- readonly passwords?: string;
614
- };
615
- readonly guards?: Readonly<Record<string, AuthGuardConfig>>;
616
- readonly providers?: Readonly<Record<string, AuthProviderConfig>>;
617
- readonly passwords?: Readonly<Record<string, AuthPasswordBrokerConfig>>;
618
- readonly emailVerification?: boolean | AuthEmailVerificationConfig;
619
- readonly personalAccessTokens?: AuthPersonalAccessTokenConfig;
620
- readonly socialEncryptionKey?: string;
621
- readonly social?: Readonly<Record<string, AuthSocialProviderConfig>>;
622
- readonly workos?: HoloAuthWorkosConfig;
623
- readonly clerk?: HoloAuthClerkConfig;
624
- }
625
- interface NormalizedAuthGuardConfig {
626
- readonly name: string;
627
- readonly driver: AuthGuardDriver;
628
- readonly provider: string;
629
- }
630
- interface NormalizedAuthProviderConfig {
631
- readonly name: string;
632
- readonly model: string;
633
- readonly identifiers: readonly string[];
634
- }
635
- interface NormalizedAuthPasswordBrokerConfig {
636
- readonly name: string;
637
- readonly provider: string;
638
- readonly table: string;
639
- readonly expire: number;
640
- readonly throttle: number;
641
- readonly route: string;
642
- }
643
- interface NormalizedAuthSocialProviderConfig {
644
- readonly name: string;
645
- readonly runtime?: string;
646
- readonly clientId?: string;
647
- readonly clientSecret?: string;
648
- readonly redirectUri?: string;
649
- readonly scopes: readonly string[];
650
- readonly guard?: string;
651
- readonly mapToProvider?: string;
652
- readonly encryptTokens: boolean;
653
- }
654
- interface NormalizedAuthWorkosProviderConfig {
655
- readonly name: string;
656
- readonly clientId?: string;
657
- readonly apiKey?: string;
658
- readonly redirectUri?: string;
659
- readonly sessionCookie: string;
660
- readonly guard?: string;
661
- readonly mapToProvider?: string;
662
- }
663
- interface NormalizedHoloAuthWorkosConfig {
664
- readonly provider?: string;
665
- readonly identityStore?: AuthHostedIdentityStore;
666
- readonly [provider: string]: AuthHostedIdentityStore | NormalizedAuthWorkosProviderConfig | string | undefined;
667
- }
668
- interface NormalizedAuthClerkProviderConfig {
669
- readonly name: string;
670
- readonly publishableKey?: string;
671
- readonly secretKey?: string;
672
- readonly apiUrl?: string;
673
- readonly frontendApi?: string;
674
- readonly redirectUri?: string;
675
- readonly sessionCookie: string;
676
- readonly authorizedParties: readonly string[];
677
- readonly guard?: string;
678
- readonly mapToProvider?: string;
679
- }
680
- interface NormalizedHoloAuthClerkConfig {
681
- readonly provider?: string;
682
- readonly identityStore?: AuthHostedIdentityStore;
683
- readonly [provider: string]: AuthHostedIdentityStore | NormalizedAuthClerkProviderConfig | string | undefined;
684
- }
685
- interface NormalizedHoloAuthConfig {
686
- readonly defaults: {
687
- readonly guard: string;
688
- readonly passwords: string;
689
- };
690
- readonly guards: Readonly<Record<string, NormalizedAuthGuardConfig>>;
691
- readonly providers: Readonly<Record<string, NormalizedAuthProviderConfig>>;
692
- readonly passwords: Readonly<Record<string, NormalizedAuthPasswordBrokerConfig>>;
693
- readonly emailVerification: {
694
- readonly required: boolean;
695
- readonly route: string;
696
- };
697
- readonly personalAccessTokens: {
698
- readonly defaultAbilities: readonly string[];
699
- };
700
- readonly socialEncryptionKey?: string;
701
- readonly social: Readonly<Record<string, NormalizedAuthSocialProviderConfig>>;
702
- readonly workos: NormalizedHoloAuthWorkosConfig;
703
- readonly clerk: NormalizedHoloAuthClerkConfig;
704
- }
705
- interface QueueRedisConnectionConfig {
706
- readonly driver: 'redis';
707
- readonly connection?: string;
708
- readonly queue?: string;
709
- readonly retryAfter?: number | string;
710
- readonly blockFor?: number | string;
711
- }
712
- interface QueueDatabaseConnectionConfig {
713
- readonly driver: 'database';
714
- readonly queue?: string;
715
- readonly retryAfter?: number | string;
716
- readonly sleep?: number | string;
717
- readonly connection?: string;
718
- readonly table?: string;
719
- }
720
- interface QueueFailedStoreConfig {
721
- readonly driver?: 'database';
722
- readonly connection?: string;
723
- readonly table?: string;
724
- }
725
- interface QueueSyncConnectionConfig {
726
- readonly driver: 'sync';
727
- readonly queue?: string;
728
- }
729
- type QueueConnectionConfig = QueueSyncConnectionConfig | QueueRedisConnectionConfig | QueueDatabaseConnectionConfig;
730
- interface HoloQueueConfig {
731
- readonly default?: string;
732
- readonly failed?: false | QueueFailedStoreConfig;
733
- readonly connections?: Readonly<Record<string, QueueConnectionConfig>>;
734
- }
735
- interface NormalizedQueueFailedStoreConfig {
736
- readonly driver: 'database';
737
- readonly connection: string;
738
- readonly table: string;
739
- }
740
- interface NormalizedQueueSyncConnectionConfig {
741
- readonly name: string;
742
- readonly driver: 'sync';
743
- readonly queue: string;
744
- }
745
- interface NormalizedQueueRedisConnectionConfig {
746
- readonly name: string;
747
- readonly driver: 'redis';
748
- readonly connection: string;
749
- readonly queue: string;
750
- readonly retryAfter: number;
751
- readonly blockFor: number;
752
- readonly redis: {
753
- readonly url?: string;
754
- readonly clusters?: readonly NormalizedHoloRedisClusterNodeConfig[];
755
- readonly host: string;
756
- readonly port: number;
757
- readonly password?: string;
758
- readonly username?: string;
759
- readonly db: number;
760
- };
761
- }
762
- interface NormalizedQueueDatabaseConnectionConfig {
763
- readonly name: string;
764
- readonly driver: 'database';
765
- readonly queue: string;
766
- readonly retryAfter: number;
767
- readonly sleep: number;
768
- readonly connection: string;
769
- readonly table: string;
770
- }
771
- type NormalizedQueueConnectionConfig = NormalizedQueueSyncConnectionConfig | NormalizedQueueRedisConnectionConfig | NormalizedQueueDatabaseConnectionConfig;
772
- interface NormalizedHoloQueueConfig {
773
- readonly default: string;
774
- readonly failed: false | NormalizedQueueFailedStoreConfig;
775
- readonly connections: Readonly<Record<string, NormalizedQueueConnectionConfig>>;
40
+ plugins?: readonly string[];
776
41
  }
777
42
  interface NormalizedHoloAppConfig {
778
43
  readonly name: string;
@@ -780,175 +45,17 @@ interface NormalizedHoloAppConfig {
780
45
  readonly url: string;
781
46
  readonly debug: boolean;
782
47
  readonly env: HoloAppEnv;
48
+ readonly plugins: readonly string[];
783
49
  readonly paths: Readonly<HoloProjectPaths>;
784
50
  readonly models: readonly string[];
785
51
  readonly migrations: readonly string[];
786
52
  readonly seeders: readonly string[];
787
53
  }
788
- interface NormalizedHoloDatabaseConfig {
789
- readonly defaultConnection?: string;
790
- readonly connections: Readonly<Record<string, HoloDatabaseConnectionConfig | string>>;
791
- }
792
- interface NormalizedHoloStorageConfig {
793
- readonly defaultDisk?: string;
794
- readonly routePrefix: string;
795
- readonly disks: Readonly<Record<string, DiskConfig>>;
796
- }
797
- interface HoloNotificationsConfig {
798
- readonly table?: string;
799
- readonly queue?: {
800
- readonly connection?: string;
801
- readonly queue?: string;
802
- readonly afterCommit?: boolean;
803
- };
804
- }
805
- interface NormalizedHoloNotificationsConfig {
806
- readonly table: string;
807
- readonly queue: {
808
- readonly connection?: string;
809
- readonly queue?: string;
810
- readonly afterCommit: boolean;
811
- };
812
- }
813
- interface HoloMailAddressConfig {
814
- readonly email: string;
815
- readonly name?: string;
816
- }
817
- interface HoloMailQueueConfig {
818
- readonly queued?: boolean;
819
- readonly connection?: string;
820
- readonly queue?: string;
821
- readonly afterCommit?: boolean;
822
- }
823
- interface HoloMailPreviewConfig {
824
- readonly allowedEnvironments?: readonly HoloAppEnv[];
825
- }
826
- interface HoloMailMarkdownConfig {
827
- readonly wrapper?: string;
828
- }
829
- interface BaseMailDriverConfig {
830
- readonly driver: string;
831
- readonly from?: HoloMailAddressConfig;
832
- readonly replyTo?: HoloMailAddressConfig;
833
- readonly queue?: HoloMailQueueConfig;
834
- }
835
- interface PreviewMailDriverConfig extends BaseMailDriverConfig {
836
- readonly driver: 'preview';
837
- readonly path?: string;
838
- }
839
- interface LogMailDriverConfig extends BaseMailDriverConfig {
840
- readonly driver: 'log';
841
- readonly logBodies?: boolean;
842
- }
843
- interface FakeMailDriverConfig extends BaseMailDriverConfig {
844
- readonly driver: 'fake';
845
- }
846
- interface SmtpMailDriverConfig extends BaseMailDriverConfig {
847
- readonly driver: 'smtp';
848
- readonly host?: string;
849
- readonly port?: number | string;
850
- readonly secure?: boolean;
851
- readonly user?: string;
852
- readonly password?: string;
853
- }
854
- type HoloMailMailerConfig = PreviewMailDriverConfig | LogMailDriverConfig | FakeMailDriverConfig | SmtpMailDriverConfig | (BaseMailDriverConfig & Record<string, unknown>);
855
- interface HoloMailConfig {
856
- readonly default?: string;
857
- readonly from?: HoloMailAddressConfig;
858
- readonly replyTo?: HoloMailAddressConfig;
859
- readonly queue?: HoloMailQueueConfig;
860
- readonly preview?: HoloMailPreviewConfig;
861
- readonly markdown?: HoloMailMarkdownConfig;
862
- readonly mailers?: Readonly<Record<string, HoloMailMailerConfig>>;
863
- }
864
- interface NormalizedHoloMailAddressConfig {
865
- readonly email: string;
866
- readonly name?: string;
867
- }
868
- interface NormalizedHoloMailQueueConfig {
869
- readonly queued: boolean;
870
- readonly connection?: string;
871
- readonly queue?: string;
872
- readonly afterCommit: boolean;
873
- }
874
- interface NormalizedHoloMailPreviewConfig {
875
- readonly allowedEnvironments: readonly HoloAppEnv[];
876
- }
877
- interface NormalizedHoloMailMarkdownConfig {
878
- readonly wrapper?: string;
879
- }
880
- interface NormalizedBaseMailDriverConfig {
881
- readonly name: string;
882
- readonly driver: string;
883
- readonly from?: NormalizedHoloMailAddressConfig;
884
- readonly replyTo?: NormalizedHoloMailAddressConfig;
885
- readonly queue: NormalizedHoloMailQueueConfig;
886
- }
887
- interface NormalizedPreviewMailDriverConfig extends NormalizedBaseMailDriverConfig {
888
- readonly driver: 'preview';
889
- readonly path: string;
890
- }
891
- interface NormalizedLogMailDriverConfig extends NormalizedBaseMailDriverConfig {
892
- readonly driver: 'log';
893
- readonly logBodies: boolean;
894
- }
895
- interface NormalizedFakeMailDriverConfig extends NormalizedBaseMailDriverConfig {
896
- readonly driver: 'fake';
897
- }
898
- interface NormalizedSmtpMailDriverConfig extends NormalizedBaseMailDriverConfig {
899
- readonly driver: 'smtp';
900
- readonly host: string;
901
- readonly port: number;
902
- readonly secure: boolean;
903
- readonly user?: string;
904
- readonly password?: string;
905
- }
906
- type NormalizedHoloMailMailerConfig = NormalizedPreviewMailDriverConfig | NormalizedLogMailDriverConfig | NormalizedFakeMailDriverConfig | NormalizedSmtpMailDriverConfig | NormalizedBaseMailDriverConfig;
907
- interface NormalizedHoloMailConfig {
908
- readonly default: string;
909
- readonly from?: NormalizedHoloMailAddressConfig;
910
- readonly replyTo?: NormalizedHoloMailAddressConfig;
911
- readonly queue: NormalizedHoloMailQueueConfig;
912
- readonly preview: NormalizedHoloMailPreviewConfig;
913
- readonly markdown: NormalizedHoloMailMarkdownConfig;
914
- readonly mailers: Readonly<Record<string, NormalizedHoloMailMailerConfig>>;
915
- }
916
54
 
917
55
  declare const DEFAULT_APP_NAME = "Holo";
918
56
  declare const holoAppDefaults: Readonly<NormalizedHoloAppConfig>;
919
- declare const holoDatabaseDefaults: Readonly<NormalizedHoloDatabaseConfig>;
920
- declare const holoRedisDefaults: Readonly<NormalizedHoloRedisConfig>;
921
- declare const holoStorageDefaults: Readonly<NormalizedHoloStorageConfig>;
922
- declare const holoNotificationsDefaults: Readonly<NormalizedHoloNotificationsConfig>;
923
- declare const holoBroadcastDefaults: Readonly<NormalizedHoloBroadcastConfig>;
924
- declare const holoCacheDefaults: Readonly<NormalizedHoloCacheConfig>;
925
- type CacheNormalizationOptions = {
926
- readonly database?: NormalizedHoloDatabaseConfig;
927
- readonly redis?: NormalizedHoloRedisConfig;
928
- };
929
- declare const holoMailDefaults: Readonly<NormalizedHoloMailConfig>;
930
- declare const DEFAULT_SESSION_COOKIE_NAME = "holo_session";
931
- declare const holoSessionDefaults: Readonly<NormalizedHoloSessionConfig>;
932
- declare const holoCorsDefaults: Readonly<NormalizedHoloCorsConfig>;
933
- declare const holoSecurityDefaults: Readonly<NormalizedHoloSecurityConfig>;
934
- declare const holoAuthDefaults: Readonly<NormalizedHoloAuthConfig>;
935
- declare function normalizeCacheConfig(config?: HoloCacheConfig, options?: CacheNormalizationOptions): NormalizedHoloCacheConfig;
936
- declare function normalizeCorsConfig(config?: HoloCorsConfig): NormalizedHoloCorsConfig;
937
- declare const holoQueueDefaultsNormalized: Readonly<NormalizedHoloQueueConfig>;
938
57
  declare function normalizeAppEnv(value: string | undefined, fallback?: HoloAppEnv): HoloAppEnv;
939
58
  declare function normalizeAppConfig(config?: HoloAppConfig): NormalizedHoloAppConfig;
940
- declare function normalizeSessionConfig(config?: HoloSessionConfig, redisConfig?: NormalizedHoloRedisConfig): NormalizedHoloSessionConfig;
941
- declare function normalizeSecurityConfig(config?: HoloSecurityConfig, redisConfig?: NormalizedHoloRedisConfig): NormalizedHoloSecurityConfig;
942
- declare function normalizeAuthConfig(config?: HoloAuthConfig, _options?: {
943
- readonly appKey?: string;
944
- }): NormalizedHoloAuthConfig;
945
- declare function normalizeDatabaseConfig(config?: HoloDatabaseConfig): NormalizedHoloDatabaseConfig;
946
- declare function normalizeStorageConfig(config?: HoloStorageConfig): NormalizedHoloStorageConfig;
947
- declare function normalizeBroadcastConfig(config?: HoloBroadcastConfig): NormalizedHoloBroadcastConfig;
948
- declare function normalizeMailConfig(config?: HoloMailConfig): NormalizedHoloMailConfig;
949
- declare function normalizeNotificationsConfig(config?: HoloNotificationsConfig): NormalizedHoloNotificationsConfig;
950
- declare function normalizeRedisConfig(config?: HoloRedisConfig): NormalizedHoloRedisConfig;
951
- declare function normalizeQueueConfigForHolo(config?: HoloQueueConfig, redisConfig?: NormalizedHoloRedisConfig): NormalizedHoloQueueConfig;
952
59
 
953
60
  type RuntimeConfigMap = HoloConfigRegistry & HoloConfigMap;
954
61
  type UseConfigAccessor<TConfig extends RuntimeConfigMap> = {
@@ -1006,6 +113,7 @@ type ConfigCachePayload = {
1006
113
  readonly configFiles: readonly string[];
1007
114
  readonly config: RawConfigMap;
1008
115
  readonly deferredConfigNames: readonly ConfigFileName[];
116
+ readonly normalizerConfigNames?: readonly ConfigFileName[];
1009
117
  };
1010
118
  declare function resolveConfigExport<TConfig extends object>(moduleValue: unknown): TConfig;
1011
119
  declare function getConfigExtensionPriority(fileName: string): number;
@@ -1014,6 +122,7 @@ declare function splitCacheableConfig(rawConfig: RawConfigMap): {
1014
122
  readonly deferredConfigNames: readonly ConfigFileName[];
1015
123
  };
1016
124
  declare function getDeferredConfigNames(payload: ConfigCachePayload): readonly ConfigFileName[];
125
+ declare function getNormalizerConfigNames(payload: Pick<ConfigCachePayload, 'normalizerConfigNames'>): readonly ConfigFileName[];
1017
126
  declare function resolveConfigCachePath(projectRoot: string): string;
1018
127
  declare function writeConfigCache(projectRoot: string, options?: {
1019
128
  envName?: string;
@@ -1027,24 +136,17 @@ declare function loadConfigDirectory<TCustom extends HoloConfigMap = HoloConfigM
1027
136
  }): Promise<LoadedHoloConfig<TCustom>>;
1028
137
  declare function defineConfig<TConfig extends object>(config: TConfig): DefineConfigValue<TConfig>;
1029
138
  declare function defineAppConfig<TConfig extends HoloAppConfig>(config: TConfig): DefineConfigValue<TConfig>;
1030
- declare function defineDatabaseConfig<TConfig extends HoloDatabaseConfig>(config: TConfig): DefineConfigValue<TConfig>;
1031
- declare function defineRedisConfig<TConfig extends HoloRedisConfig>(config: TConfig): DefineConfigValue<TConfig>;
1032
- declare function defineCacheConfig<TConfig extends HoloCacheConfig>(config: TConfig): DefineConfigValue<TConfig>;
1033
- declare function defineStorageConfig<TConfig extends HoloStorageConfig>(config: TConfig): DefineConfigValue<TConfig>;
1034
- declare function defineQueueConfig<TConfig extends HoloQueueConfig>(config: TConfig): DefineConfigValue<TConfig>;
1035
- declare function defineBroadcastConfig<TConfig extends HoloBroadcastConfig>(config: TConfig): DefineConfigValue<TConfig>;
1036
- declare function defineMailConfig<TConfig extends HoloMailConfig>(config: TConfig): DefineConfigValue<TConfig>;
1037
- declare function defineNotificationsConfig<const TConfig extends HoloNotificationsConfig>(config: TConfig): DefineConfigValue<TConfig>;
1038
- declare function defineMediaConfig<TConfig extends HoloMediaConfig>(config: TConfig): DefineConfigValue<TConfig>;
1039
- declare function defineSessionConfig<TConfig extends HoloSessionConfig>(config: TConfig): DefineConfigValue<TConfig>;
1040
- declare function defineSecurityConfig<TConfig extends HoloSecurityConfig>(config: TConfig): DefineConfigValue<TConfig>;
1041
- declare function defineCorsConfig<TConfig extends HoloCorsConfig>(config: TConfig): DefineConfigValue<TConfig>;
1042
- declare function defineAuthConfig<TConfig extends HoloAuthConfig>(config: TConfig): DefineConfigValue<TConfig>;
1043
139
  declare const loaderInternals: {
1044
140
  getDeferredConfigNames: typeof getDeferredConfigNames;
141
+ getNormalizerConfigNames: typeof getNormalizerConfigNames;
1045
142
  getConfigExtensionPriority: typeof getConfigExtensionPriority;
1046
143
  resolveConfigExport: typeof resolveConfigExport;
1047
144
  splitCacheableConfig: typeof splitCacheableConfig;
1048
145
  };
1049
146
 
1050
- export { type AuthClerkProviderConfig, type AuthEmailVerificationConfig, type AuthGuardConfig, type AuthHostedIdentityRecord, type AuthHostedIdentityStore, type AuthPasswordBrokerConfig, type AuthPersonalAccessTokenConfig, type AuthProviderConfig, type AuthSocialProviderConfig, type AuthWorkosProviderConfig, type BroadcastConnectionDriver, type BroadcastConnectionOptionsConfig, type BroadcastConnectionScheme, type BroadcastWorkerConfig, type BroadcastWorkerScalingConfig, type CacheDatabaseDriverConfig, type CacheDriver, type CacheDriverConfig, type CacheFileDriverConfig, type CacheMemoryDriverConfig, type CacheRedisDriverConfig, type ConfigFileName, DEFAULT_APP_NAME, DEFAULT_SESSION_COOKIE_NAME, type DefineConfigValue, type DiskConfig, type DotPath, type HoloAppConfig, type HoloAppEnv, type HoloAuthClerkConfig, type HoloAuthConfig, type HoloAuthWorkosConfig, type HoloBroadcastConfig, type HoloBroadcastConnection, type HoloBroadcastConnectionConfig, type HoloCacheConfig, type HoloConfigMap, type HoloConfigRegistry, type HoloCorsConfig, type HoloDatabaseConfig, type HoloDatabaseConnectionConfig, type HoloMailAddressConfig, type HoloMailConfig, type HoloMailMailerConfig, type HoloMailPreviewConfig, type HoloMailQueueConfig, type HoloMediaConfig, type HoloNotificationsConfig, type HoloQueueConfig, type HoloRedisClusterNodeConfig, type HoloRedisConfig, type HoloRedisConnectionConfig, type HoloSecurityConfig, type HoloSecurityCsrfConfig, type HoloSecurityRateLimitConfig, type HoloSessionConfig, type HoloSessionCookieConfig, type HoloStorageConfig, type LoadedEnvironment, type LoadedHoloConfig, type NormalizedAuthClerkProviderConfig, type NormalizedAuthGuardConfig, type NormalizedAuthPasswordBrokerConfig, type NormalizedAuthProviderConfig, type NormalizedAuthSocialProviderConfig, type NormalizedAuthWorkosProviderConfig, type NormalizedBroadcastConnectionOptionsConfig, type NormalizedBroadcastWorkerConfig, type NormalizedCacheDatabaseDriverConfig, type NormalizedCacheDriverConfig, type NormalizedCacheFileDriverConfig, type NormalizedCacheMemoryDriverConfig, type NormalizedCacheRedisDriverConfig, type NormalizedHoloAppConfig, type NormalizedHoloAuthClerkConfig, type NormalizedHoloAuthConfig, type NormalizedHoloAuthWorkosConfig, type NormalizedHoloBroadcastConfig, type NormalizedHoloBroadcastConnection, type NormalizedHoloCacheConfig, type NormalizedHoloCorsConfig, type NormalizedHoloDatabaseConfig, type NormalizedHoloMailAddressConfig, type NormalizedHoloMailConfig, type NormalizedHoloMailMailerConfig, type NormalizedHoloMailPreviewConfig, type NormalizedHoloMailQueueConfig, type NormalizedHoloNotificationsConfig, type NormalizedHoloQueueConfig, type NormalizedHoloRedisClusterNodeConfig, type NormalizedHoloRedisConfig, type NormalizedHoloRedisConnectionConfig, type NormalizedHoloSecurityConfig, type NormalizedHoloSecurityCsrfConfig, type NormalizedHoloSecurityRateLimitConfig, type NormalizedHoloSessionConfig, type NormalizedHoloSessionCookieConfig, type NormalizedHoloStorageConfig, type NormalizedSecurityLimiterConfig, type NormalizedSecurityRateLimitRedisConfig, type NormalizedSessionDatabaseStoreConfig, type NormalizedSessionFileStoreConfig, type NormalizedSessionRedisStoreConfig, type NormalizedSessionStoreConfig, type SecurityLimiterConfig, type SecurityRateLimitContext, type SecurityRateLimitDriver, type SecurityRateLimitFileConfig, type SecurityRateLimitKeyResolver, type SecurityRateLimitMemoryConfig, type SecurityRateLimitRedisConfig, type SecurityRateLimitRedisConnectionConfig, type SessionCookieSameSite, type SessionDatabaseStoreConfig, type SessionFileStoreConfig, type SessionRedisStoreConfig, type SessionStoreConfig, type SupportedDatabaseDriver, type ValueAtPath, clearConfigCache, config, configureConfigRuntime, configureEnvRuntime, createConfigAccessors, defineAppConfig, defineAuthConfig, defineBroadcastConfig, defineCacheConfig, defineConfig, defineCorsConfig, defineDatabaseConfig, defineMailConfig, defineMediaConfig, defineNotificationsConfig, defineQueueConfig, defineRedisConfig, defineSecurityConfig, defineSessionConfig, defineStorageConfig, env, holoAppDefaults, holoAuthDefaults, holoBroadcastDefaults, holoCacheDefaults, holoCorsDefaults, holoDatabaseDefaults, holoMailDefaults, holoNotificationsDefaults, holoQueueDefaultsNormalized, holoRedisDefaults, holoSecurityDefaults, holoSessionDefaults, holoStorageDefaults, isEnvPlaceholder, loadConfigDirectory, loadEnvironment, loaderInternals, normalizeAppConfig, normalizeAppEnv, normalizeAuthConfig, normalizeBroadcastConfig, normalizeCacheConfig, normalizeCorsConfig, normalizeDatabaseConfig, normalizeMailConfig, normalizeNotificationsConfig, normalizeQueueConfigForHolo, normalizeRedisConfig, normalizeSecurityConfig, normalizeSessionConfig, normalizeStorageConfig, resetConfigRuntime, resolveAppEnvironment, resolveConfigCachePath, resolveEnvPlaceholders, resolveEnvironmentFileOrder, useConfig, writeConfigCache };
147
+ interface HoloConfigRegistry {
148
+ app: NormalizedHoloAppConfig;
149
+ redis: NormalizedHoloRedisConfig;
150
+ }
151
+
152
+ export { type ConfigFileName, DEFAULT_APP_NAME, type DefineConfigValue, type DotPath, type HoloAppConfig, type HoloAppEnv, type HoloConfigMap, type HoloConfigRegistry, type HoloConfigValues, type LoadedEnvironment, type LoadedHoloConfig, type NormalizedHoloAppConfig, type ValueAtPath, clearConfigCache, config, configureConfigRuntime, configureEnvRuntime, createConfigAccessors, defineAppConfig, defineConfig, env, holoAppDefaults, isEnvPlaceholder, loadConfigDirectory, loadEnvironment, loaderInternals, normalizeAppConfig, normalizeAppEnv, resetConfigRuntime, resolveAppEnvironment, resolveConfigCachePath, resolveEnvPlaceholders, resolveEnvironmentFileOrder, useConfig, writeConfigCache };