@nymbalhq/config 0.2.0 → 1.1.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,4 +1,6 @@
1
1
  import { z } from 'zod';
2
+ import { CommerceSlotAdapters } from '@nymbalhq/types';
3
+ export { CommerceSlot, Slot } from '@nymbalhq/types';
2
4
 
3
5
  /** The schema's JWT secret when none is configured: fine for development, refused in production. */
4
6
  declare const DEFAULT_JWT_SECRET = "dev-secret-please-override-me-1234567890";
@@ -18,24 +20,200 @@ declare const storeSchema: z.ZodObject<{
18
20
  locale: string;
19
21
  timezone: string;
20
22
  }>;
21
- declare const infrastructureSchema: z.ZodObject<{
22
- cloud: z.ZodEnum<["local", "aws", "gcp", "azure", "docker"]>;
23
+ /** The shared Redis connection of the `redis` document store and the `redis-streams` bus. */
24
+ declare const redisSchema: z.ZodObject<{
25
+ /** Defaults to `REDIS_URL`. */
26
+ url: z.ZodOptional<z.ZodString>;
27
+ /** Namespaces every key and stream; defaults to `NYMBAL_REDIS_PREFIX`, then `'nymbal'`. */
28
+ prefix: z.ZodOptional<z.ZodString>;
29
+ /** How long a publish waits for the groups it delivers to (default 15 000). */
30
+ ackTimeoutMs: z.ZodOptional<z.ZodNumber>;
31
+ /** How long an entry may stay pending on a consumer before a live one takes it over (default 5 000). */
32
+ claimIdleMs: z.ZodOptional<z.ZodNumber>;
33
+ /** The approximate length each stream is trimmed to (default 10 000). */
34
+ streamMaxLen: z.ZodOptional<z.ZodNumber>;
35
+ }, "strict", z.ZodTypeAny, {
36
+ url?: string | undefined;
37
+ prefix?: string | undefined;
38
+ ackTimeoutMs?: number | undefined;
39
+ claimIdleMs?: number | undefined;
40
+ streamMaxLen?: number | undefined;
41
+ }, {
42
+ url?: string | undefined;
43
+ prefix?: string | undefined;
44
+ ackTimeoutMs?: number | undefined;
45
+ claimIdleMs?: number | undefined;
46
+ streamMaxLen?: number | undefined;
47
+ }>;
48
+ /**
49
+ * The bucket `media: 's3'` stores in. Each field falls back to the environment in the platform; credentials are never
50
+ * config keys: the AWS SDK's default chain provides them.
51
+ */
52
+ declare const s3Schema: z.ZodObject<{
53
+ /** Defaults to `S3_BUCKET`; one of the two is required. */
54
+ bucket: z.ZodOptional<z.ZodString>;
55
+ /** Defaults to `AWS_REGION`, then `'us-east-1'`. */
56
+ region: z.ZodOptional<z.ZodString>;
57
+ /** An S3-compatible API (MinIO, R2); defaults to `S3_ENDPOINT`, then AWS. */
58
+ endpoint: z.ZodOptional<z.ZodString>;
59
+ /** Where every object key starts; defaults to `NYMBAL_S3_PREFIX`, then none. */
60
+ prefix: z.ZodOptional<z.ZodString>;
61
+ /** Where the bucket's objects are served from (a CDN); defaults to `S3_PUBLIC_URL`, then the bucket's own URL. */
62
+ publicUrl: z.ZodOptional<z.ZodString>;
63
+ /** Path-style requests; true by default when an endpoint is set. */
64
+ forcePathStyle: z.ZodOptional<z.ZodBoolean>;
65
+ }, "strict", z.ZodTypeAny, {
66
+ prefix?: string | undefined;
67
+ bucket?: string | undefined;
68
+ region?: string | undefined;
69
+ endpoint?: string | undefined;
70
+ publicUrl?: string | undefined;
71
+ forcePathStyle?: boolean | undefined;
72
+ }, {
73
+ prefix?: string | undefined;
74
+ bucket?: string | undefined;
75
+ region?: string | undefined;
76
+ endpoint?: string | undefined;
77
+ publicUrl?: string | undefined;
78
+ forcePathStyle?: boolean | undefined;
79
+ }>;
80
+ declare const infrastructureSchema: z.ZodEffects<z.ZodObject<{
23
81
  commandStore: z.ZodEnum<["sqlite", "postgres"]>;
24
- documentStore: z.ZodEnum<["in-memory", "dynamodb", "firestore", "cosmosdb", "postgres-jsonb"]>;
25
- eventBus: z.ZodEnum<["in-process", "eventbridge", "pubsub", "service-bus", "redis-streams"]>;
26
- compute: z.ZodEnum<["in-process", "lambda", "cloud-functions", "azure-functions", "worker-threads"]>;
27
- }, "strip", z.ZodTypeAny, {
28
- cloud: "local" | "aws" | "gcp" | "azure" | "docker";
82
+ documentStore: z.ZodEnum<["in-memory", "redis", "postgres-jsonb"]>;
83
+ eventBus: z.ZodEnum<["in-process", "redis-streams"]>;
84
+ media: z.ZodDefault<z.ZodEnum<["local-fs", "s3"]>>;
85
+ redis: z.ZodOptional<z.ZodObject<{
86
+ /** Defaults to `REDIS_URL`. */
87
+ url: z.ZodOptional<z.ZodString>;
88
+ /** Namespaces every key and stream; defaults to `NYMBAL_REDIS_PREFIX`, then `'nymbal'`. */
89
+ prefix: z.ZodOptional<z.ZodString>;
90
+ /** How long a publish waits for the groups it delivers to (default 15 000). */
91
+ ackTimeoutMs: z.ZodOptional<z.ZodNumber>;
92
+ /** How long an entry may stay pending on a consumer before a live one takes it over (default 5 000). */
93
+ claimIdleMs: z.ZodOptional<z.ZodNumber>;
94
+ /** The approximate length each stream is trimmed to (default 10 000). */
95
+ streamMaxLen: z.ZodOptional<z.ZodNumber>;
96
+ }, "strict", z.ZodTypeAny, {
97
+ url?: string | undefined;
98
+ prefix?: string | undefined;
99
+ ackTimeoutMs?: number | undefined;
100
+ claimIdleMs?: number | undefined;
101
+ streamMaxLen?: number | undefined;
102
+ }, {
103
+ url?: string | undefined;
104
+ prefix?: string | undefined;
105
+ ackTimeoutMs?: number | undefined;
106
+ claimIdleMs?: number | undefined;
107
+ streamMaxLen?: number | undefined;
108
+ }>>;
109
+ s3: z.ZodOptional<z.ZodObject<{
110
+ /** Defaults to `S3_BUCKET`; one of the two is required. */
111
+ bucket: z.ZodOptional<z.ZodString>;
112
+ /** Defaults to `AWS_REGION`, then `'us-east-1'`. */
113
+ region: z.ZodOptional<z.ZodString>;
114
+ /** An S3-compatible API (MinIO, R2); defaults to `S3_ENDPOINT`, then AWS. */
115
+ endpoint: z.ZodOptional<z.ZodString>;
116
+ /** Where every object key starts; defaults to `NYMBAL_S3_PREFIX`, then none. */
117
+ prefix: z.ZodOptional<z.ZodString>;
118
+ /** Where the bucket's objects are served from (a CDN); defaults to `S3_PUBLIC_URL`, then the bucket's own URL. */
119
+ publicUrl: z.ZodOptional<z.ZodString>;
120
+ /** Path-style requests; true by default when an endpoint is set. */
121
+ forcePathStyle: z.ZodOptional<z.ZodBoolean>;
122
+ }, "strict", z.ZodTypeAny, {
123
+ prefix?: string | undefined;
124
+ bucket?: string | undefined;
125
+ region?: string | undefined;
126
+ endpoint?: string | undefined;
127
+ publicUrl?: string | undefined;
128
+ forcePathStyle?: boolean | undefined;
129
+ }, {
130
+ prefix?: string | undefined;
131
+ bucket?: string | undefined;
132
+ region?: string | undefined;
133
+ endpoint?: string | undefined;
134
+ publicUrl?: string | undefined;
135
+ forcePathStyle?: boolean | undefined;
136
+ }>>;
137
+ }, "strict", z.ZodTypeAny, {
138
+ commandStore: "sqlite" | "postgres";
139
+ documentStore: "in-memory" | "redis" | "postgres-jsonb";
140
+ eventBus: "in-process" | "redis-streams";
141
+ media: "local-fs" | "s3";
142
+ redis?: {
143
+ url?: string | undefined;
144
+ prefix?: string | undefined;
145
+ ackTimeoutMs?: number | undefined;
146
+ claimIdleMs?: number | undefined;
147
+ streamMaxLen?: number | undefined;
148
+ } | undefined;
149
+ s3?: {
150
+ prefix?: string | undefined;
151
+ bucket?: string | undefined;
152
+ region?: string | undefined;
153
+ endpoint?: string | undefined;
154
+ publicUrl?: string | undefined;
155
+ forcePathStyle?: boolean | undefined;
156
+ } | undefined;
157
+ }, {
158
+ commandStore: "sqlite" | "postgres";
159
+ documentStore: "in-memory" | "redis" | "postgres-jsonb";
160
+ eventBus: "in-process" | "redis-streams";
161
+ redis?: {
162
+ url?: string | undefined;
163
+ prefix?: string | undefined;
164
+ ackTimeoutMs?: number | undefined;
165
+ claimIdleMs?: number | undefined;
166
+ streamMaxLen?: number | undefined;
167
+ } | undefined;
168
+ media?: "local-fs" | "s3" | undefined;
169
+ s3?: {
170
+ prefix?: string | undefined;
171
+ bucket?: string | undefined;
172
+ region?: string | undefined;
173
+ endpoint?: string | undefined;
174
+ publicUrl?: string | undefined;
175
+ forcePathStyle?: boolean | undefined;
176
+ } | undefined;
177
+ }>, {
29
178
  commandStore: "sqlite" | "postgres";
30
- documentStore: "in-memory" | "dynamodb" | "firestore" | "cosmosdb" | "postgres-jsonb";
31
- eventBus: "in-process" | "eventbridge" | "pubsub" | "service-bus" | "redis-streams";
32
- compute: "in-process" | "lambda" | "cloud-functions" | "azure-functions" | "worker-threads";
179
+ documentStore: "in-memory" | "redis" | "postgres-jsonb";
180
+ eventBus: "in-process" | "redis-streams";
181
+ media: "local-fs" | "s3";
182
+ redis?: {
183
+ url?: string | undefined;
184
+ prefix?: string | undefined;
185
+ ackTimeoutMs?: number | undefined;
186
+ claimIdleMs?: number | undefined;
187
+ streamMaxLen?: number | undefined;
188
+ } | undefined;
189
+ s3?: {
190
+ prefix?: string | undefined;
191
+ bucket?: string | undefined;
192
+ region?: string | undefined;
193
+ endpoint?: string | undefined;
194
+ publicUrl?: string | undefined;
195
+ forcePathStyle?: boolean | undefined;
196
+ } | undefined;
33
197
  }, {
34
- cloud: "local" | "aws" | "gcp" | "azure" | "docker";
35
198
  commandStore: "sqlite" | "postgres";
36
- documentStore: "in-memory" | "dynamodb" | "firestore" | "cosmosdb" | "postgres-jsonb";
37
- eventBus: "in-process" | "eventbridge" | "pubsub" | "service-bus" | "redis-streams";
38
- compute: "in-process" | "lambda" | "cloud-functions" | "azure-functions" | "worker-threads";
199
+ documentStore: "in-memory" | "redis" | "postgres-jsonb";
200
+ eventBus: "in-process" | "redis-streams";
201
+ redis?: {
202
+ url?: string | undefined;
203
+ prefix?: string | undefined;
204
+ ackTimeoutMs?: number | undefined;
205
+ claimIdleMs?: number | undefined;
206
+ streamMaxLen?: number | undefined;
207
+ } | undefined;
208
+ media?: "local-fs" | "s3" | undefined;
209
+ s3?: {
210
+ prefix?: string | undefined;
211
+ bucket?: string | undefined;
212
+ region?: string | undefined;
213
+ endpoint?: string | undefined;
214
+ publicUrl?: string | undefined;
215
+ forcePathStyle?: boolean | undefined;
216
+ } | undefined;
39
217
  }>;
40
218
  declare const securitySchema: z.ZodObject<{
41
219
  adapter: z.ZodEnum<["middleware", "cloudflare", "aws-waf", "akamai"]>;
@@ -141,83 +319,83 @@ declare const securitySchema: z.ZodObject<{
141
319
  }>;
142
320
  declare const commerceSchema: z.ZodObject<{
143
321
  payments: z.ZodObject<{
144
- provider: z.ZodString;
322
+ provider: z.ZodEnum<["native", "stripe", "custom"]>;
145
323
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
146
324
  }, "strip", z.ZodTypeAny, {
147
- provider: string;
325
+ provider: "native" | "stripe" | "custom";
148
326
  config?: Record<string, unknown> | undefined;
149
327
  }, {
150
- provider: string;
328
+ provider: "native" | "stripe" | "custom";
151
329
  config?: Record<string, unknown> | undefined;
152
330
  }>;
153
331
  email: z.ZodObject<{
154
- provider: z.ZodString;
332
+ provider: z.ZodEnum<["native", "smtp", "custom"]>;
155
333
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
156
334
  }, "strip", z.ZodTypeAny, {
157
- provider: string;
335
+ provider: "native" | "custom" | "smtp";
158
336
  config?: Record<string, unknown> | undefined;
159
337
  }, {
160
- provider: string;
338
+ provider: "native" | "custom" | "smtp";
161
339
  config?: Record<string, unknown> | undefined;
162
340
  }>;
163
341
  reviews: z.ZodObject<{
164
- provider: z.ZodString;
342
+ provider: z.ZodEnum<["native", "custom"]>;
165
343
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
166
344
  }, "strip", z.ZodTypeAny, {
167
- provider: string;
345
+ provider: "native" | "custom";
168
346
  config?: Record<string, unknown> | undefined;
169
347
  }, {
170
- provider: string;
348
+ provider: "native" | "custom";
171
349
  config?: Record<string, unknown> | undefined;
172
350
  }>;
173
351
  search: z.ZodObject<{
174
- provider: z.ZodString;
352
+ provider: z.ZodEnum<["native", "custom"]>;
175
353
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
176
354
  }, "strip", z.ZodTypeAny, {
177
- provider: string;
355
+ provider: "native" | "custom";
178
356
  config?: Record<string, unknown> | undefined;
179
357
  }, {
180
- provider: string;
358
+ provider: "native" | "custom";
181
359
  config?: Record<string, unknown> | undefined;
182
360
  }>;
183
361
  analytics: z.ZodObject<{
184
- provider: z.ZodString;
362
+ provider: z.ZodEnum<["native", "custom"]>;
185
363
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
186
364
  }, "strip", z.ZodTypeAny, {
187
- provider: string;
365
+ provider: "native" | "custom";
188
366
  config?: Record<string, unknown> | undefined;
189
367
  }, {
190
- provider: string;
368
+ provider: "native" | "custom";
191
369
  config?: Record<string, unknown> | undefined;
192
370
  }>;
193
371
  shipping: z.ZodObject<{
194
- provider: z.ZodString;
372
+ provider: z.ZodEnum<["native", "custom"]>;
195
373
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
196
374
  }, "strip", z.ZodTypeAny, {
197
- provider: string;
375
+ provider: "native" | "custom";
198
376
  config?: Record<string, unknown> | undefined;
199
377
  }, {
200
- provider: string;
378
+ provider: "native" | "custom";
201
379
  config?: Record<string, unknown> | undefined;
202
380
  }>;
203
381
  tax: z.ZodObject<{
204
- provider: z.ZodString;
382
+ provider: z.ZodEnum<["native", "custom"]>;
205
383
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
206
384
  }, "strip", z.ZodTypeAny, {
207
- provider: string;
385
+ provider: "native" | "custom";
208
386
  config?: Record<string, unknown> | undefined;
209
387
  }, {
210
- provider: string;
388
+ provider: "native" | "custom";
211
389
  config?: Record<string, unknown> | undefined;
212
390
  }>;
213
391
  ai: z.ZodObject<{
214
- provider: z.ZodString;
392
+ provider: z.ZodEnum<["none", "anthropic", "custom"]>;
215
393
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
216
394
  }, "strip", z.ZodTypeAny, {
217
- provider: string;
395
+ provider: "custom" | "none" | "anthropic";
218
396
  config?: Record<string, unknown> | undefined;
219
397
  }, {
220
- provider: string;
398
+ provider: "custom" | "none" | "anthropic";
221
399
  config?: Record<string, unknown> | undefined;
222
400
  }>;
223
401
  orders: z.ZodDefault<z.ZodObject<{
@@ -232,35 +410,35 @@ declare const commerceSchema: z.ZodObject<{
232
410
  }>>;
233
411
  }, "strip", z.ZodTypeAny, {
234
412
  payments: {
235
- provider: string;
413
+ provider: "native" | "stripe" | "custom";
236
414
  config?: Record<string, unknown> | undefined;
237
415
  };
238
416
  email: {
239
- provider: string;
417
+ provider: "native" | "custom" | "smtp";
240
418
  config?: Record<string, unknown> | undefined;
241
419
  };
242
420
  reviews: {
243
- provider: string;
421
+ provider: "native" | "custom";
244
422
  config?: Record<string, unknown> | undefined;
245
423
  };
246
424
  search: {
247
- provider: string;
425
+ provider: "native" | "custom";
248
426
  config?: Record<string, unknown> | undefined;
249
427
  };
250
428
  analytics: {
251
- provider: string;
429
+ provider: "native" | "custom";
252
430
  config?: Record<string, unknown> | undefined;
253
431
  };
254
432
  shipping: {
255
- provider: string;
433
+ provider: "native" | "custom";
256
434
  config?: Record<string, unknown> | undefined;
257
435
  };
258
436
  tax: {
259
- provider: string;
437
+ provider: "native" | "custom";
260
438
  config?: Record<string, unknown> | undefined;
261
439
  };
262
440
  ai: {
263
- provider: string;
441
+ provider: "custom" | "none" | "anthropic";
264
442
  config?: Record<string, unknown> | undefined;
265
443
  };
266
444
  orders: {
@@ -269,35 +447,35 @@ declare const commerceSchema: z.ZodObject<{
269
447
  };
270
448
  }, {
271
449
  payments: {
272
- provider: string;
450
+ provider: "native" | "stripe" | "custom";
273
451
  config?: Record<string, unknown> | undefined;
274
452
  };
275
453
  email: {
276
- provider: string;
454
+ provider: "native" | "custom" | "smtp";
277
455
  config?: Record<string, unknown> | undefined;
278
456
  };
279
457
  reviews: {
280
- provider: string;
458
+ provider: "native" | "custom";
281
459
  config?: Record<string, unknown> | undefined;
282
460
  };
283
461
  search: {
284
- provider: string;
462
+ provider: "native" | "custom";
285
463
  config?: Record<string, unknown> | undefined;
286
464
  };
287
465
  analytics: {
288
- provider: string;
466
+ provider: "native" | "custom";
289
467
  config?: Record<string, unknown> | undefined;
290
468
  };
291
469
  shipping: {
292
- provider: string;
470
+ provider: "native" | "custom";
293
471
  config?: Record<string, unknown> | undefined;
294
472
  };
295
473
  tax: {
296
- provider: string;
474
+ provider: "native" | "custom";
297
475
  config?: Record<string, unknown> | undefined;
298
476
  };
299
477
  ai: {
300
- provider: string;
478
+ provider: "custom" | "none" | "anthropic";
301
479
  config?: Record<string, unknown> | undefined;
302
480
  };
303
481
  orders?: {
@@ -378,24 +556,143 @@ declare const nymbalConfigSchema: z.ZodEffects<z.ZodObject<{
378
556
  timezone: string;
379
557
  }>;
380
558
  template: z.ZodEnum<["astro", "nextjs"]>;
381
- infrastructure: z.ZodObject<{
382
- cloud: z.ZodEnum<["local", "aws", "gcp", "azure", "docker"]>;
559
+ infrastructure: z.ZodEffects<z.ZodObject<{
383
560
  commandStore: z.ZodEnum<["sqlite", "postgres"]>;
384
- documentStore: z.ZodEnum<["in-memory", "dynamodb", "firestore", "cosmosdb", "postgres-jsonb"]>;
385
- eventBus: z.ZodEnum<["in-process", "eventbridge", "pubsub", "service-bus", "redis-streams"]>;
386
- compute: z.ZodEnum<["in-process", "lambda", "cloud-functions", "azure-functions", "worker-threads"]>;
387
- }, "strip", z.ZodTypeAny, {
388
- cloud: "local" | "aws" | "gcp" | "azure" | "docker";
561
+ documentStore: z.ZodEnum<["in-memory", "redis", "postgres-jsonb"]>;
562
+ eventBus: z.ZodEnum<["in-process", "redis-streams"]>;
563
+ media: z.ZodDefault<z.ZodEnum<["local-fs", "s3"]>>;
564
+ redis: z.ZodOptional<z.ZodObject<{
565
+ /** Defaults to `REDIS_URL`. */
566
+ url: z.ZodOptional<z.ZodString>;
567
+ /** Namespaces every key and stream; defaults to `NYMBAL_REDIS_PREFIX`, then `'nymbal'`. */
568
+ prefix: z.ZodOptional<z.ZodString>;
569
+ /** How long a publish waits for the groups it delivers to (default 15 000). */
570
+ ackTimeoutMs: z.ZodOptional<z.ZodNumber>;
571
+ /** How long an entry may stay pending on a consumer before a live one takes it over (default 5 000). */
572
+ claimIdleMs: z.ZodOptional<z.ZodNumber>;
573
+ /** The approximate length each stream is trimmed to (default 10 000). */
574
+ streamMaxLen: z.ZodOptional<z.ZodNumber>;
575
+ }, "strict", z.ZodTypeAny, {
576
+ url?: string | undefined;
577
+ prefix?: string | undefined;
578
+ ackTimeoutMs?: number | undefined;
579
+ claimIdleMs?: number | undefined;
580
+ streamMaxLen?: number | undefined;
581
+ }, {
582
+ url?: string | undefined;
583
+ prefix?: string | undefined;
584
+ ackTimeoutMs?: number | undefined;
585
+ claimIdleMs?: number | undefined;
586
+ streamMaxLen?: number | undefined;
587
+ }>>;
588
+ s3: z.ZodOptional<z.ZodObject<{
589
+ /** Defaults to `S3_BUCKET`; one of the two is required. */
590
+ bucket: z.ZodOptional<z.ZodString>;
591
+ /** Defaults to `AWS_REGION`, then `'us-east-1'`. */
592
+ region: z.ZodOptional<z.ZodString>;
593
+ /** An S3-compatible API (MinIO, R2); defaults to `S3_ENDPOINT`, then AWS. */
594
+ endpoint: z.ZodOptional<z.ZodString>;
595
+ /** Where every object key starts; defaults to `NYMBAL_S3_PREFIX`, then none. */
596
+ prefix: z.ZodOptional<z.ZodString>;
597
+ /** Where the bucket's objects are served from (a CDN); defaults to `S3_PUBLIC_URL`, then the bucket's own URL. */
598
+ publicUrl: z.ZodOptional<z.ZodString>;
599
+ /** Path-style requests; true by default when an endpoint is set. */
600
+ forcePathStyle: z.ZodOptional<z.ZodBoolean>;
601
+ }, "strict", z.ZodTypeAny, {
602
+ prefix?: string | undefined;
603
+ bucket?: string | undefined;
604
+ region?: string | undefined;
605
+ endpoint?: string | undefined;
606
+ publicUrl?: string | undefined;
607
+ forcePathStyle?: boolean | undefined;
608
+ }, {
609
+ prefix?: string | undefined;
610
+ bucket?: string | undefined;
611
+ region?: string | undefined;
612
+ endpoint?: string | undefined;
613
+ publicUrl?: string | undefined;
614
+ forcePathStyle?: boolean | undefined;
615
+ }>>;
616
+ }, "strict", z.ZodTypeAny, {
617
+ commandStore: "sqlite" | "postgres";
618
+ documentStore: "in-memory" | "redis" | "postgres-jsonb";
619
+ eventBus: "in-process" | "redis-streams";
620
+ media: "local-fs" | "s3";
621
+ redis?: {
622
+ url?: string | undefined;
623
+ prefix?: string | undefined;
624
+ ackTimeoutMs?: number | undefined;
625
+ claimIdleMs?: number | undefined;
626
+ streamMaxLen?: number | undefined;
627
+ } | undefined;
628
+ s3?: {
629
+ prefix?: string | undefined;
630
+ bucket?: string | undefined;
631
+ region?: string | undefined;
632
+ endpoint?: string | undefined;
633
+ publicUrl?: string | undefined;
634
+ forcePathStyle?: boolean | undefined;
635
+ } | undefined;
636
+ }, {
389
637
  commandStore: "sqlite" | "postgres";
390
- documentStore: "in-memory" | "dynamodb" | "firestore" | "cosmosdb" | "postgres-jsonb";
391
- eventBus: "in-process" | "eventbridge" | "pubsub" | "service-bus" | "redis-streams";
392
- compute: "in-process" | "lambda" | "cloud-functions" | "azure-functions" | "worker-threads";
638
+ documentStore: "in-memory" | "redis" | "postgres-jsonb";
639
+ eventBus: "in-process" | "redis-streams";
640
+ redis?: {
641
+ url?: string | undefined;
642
+ prefix?: string | undefined;
643
+ ackTimeoutMs?: number | undefined;
644
+ claimIdleMs?: number | undefined;
645
+ streamMaxLen?: number | undefined;
646
+ } | undefined;
647
+ media?: "local-fs" | "s3" | undefined;
648
+ s3?: {
649
+ prefix?: string | undefined;
650
+ bucket?: string | undefined;
651
+ region?: string | undefined;
652
+ endpoint?: string | undefined;
653
+ publicUrl?: string | undefined;
654
+ forcePathStyle?: boolean | undefined;
655
+ } | undefined;
656
+ }>, {
657
+ commandStore: "sqlite" | "postgres";
658
+ documentStore: "in-memory" | "redis" | "postgres-jsonb";
659
+ eventBus: "in-process" | "redis-streams";
660
+ media: "local-fs" | "s3";
661
+ redis?: {
662
+ url?: string | undefined;
663
+ prefix?: string | undefined;
664
+ ackTimeoutMs?: number | undefined;
665
+ claimIdleMs?: number | undefined;
666
+ streamMaxLen?: number | undefined;
667
+ } | undefined;
668
+ s3?: {
669
+ prefix?: string | undefined;
670
+ bucket?: string | undefined;
671
+ region?: string | undefined;
672
+ endpoint?: string | undefined;
673
+ publicUrl?: string | undefined;
674
+ forcePathStyle?: boolean | undefined;
675
+ } | undefined;
393
676
  }, {
394
- cloud: "local" | "aws" | "gcp" | "azure" | "docker";
395
677
  commandStore: "sqlite" | "postgres";
396
- documentStore: "in-memory" | "dynamodb" | "firestore" | "cosmosdb" | "postgres-jsonb";
397
- eventBus: "in-process" | "eventbridge" | "pubsub" | "service-bus" | "redis-streams";
398
- compute: "in-process" | "lambda" | "cloud-functions" | "azure-functions" | "worker-threads";
678
+ documentStore: "in-memory" | "redis" | "postgres-jsonb";
679
+ eventBus: "in-process" | "redis-streams";
680
+ redis?: {
681
+ url?: string | undefined;
682
+ prefix?: string | undefined;
683
+ ackTimeoutMs?: number | undefined;
684
+ claimIdleMs?: number | undefined;
685
+ streamMaxLen?: number | undefined;
686
+ } | undefined;
687
+ media?: "local-fs" | "s3" | undefined;
688
+ s3?: {
689
+ prefix?: string | undefined;
690
+ bucket?: string | undefined;
691
+ region?: string | undefined;
692
+ endpoint?: string | undefined;
693
+ publicUrl?: string | undefined;
694
+ forcePathStyle?: boolean | undefined;
695
+ } | undefined;
399
696
  }>;
400
697
  security: z.ZodObject<{
401
698
  adapter: z.ZodEnum<["middleware", "cloudflare", "aws-waf", "akamai"]>;
@@ -501,83 +798,83 @@ declare const nymbalConfigSchema: z.ZodEffects<z.ZodObject<{
501
798
  }>;
502
799
  commerce: z.ZodObject<{
503
800
  payments: z.ZodObject<{
504
- provider: z.ZodString;
801
+ provider: z.ZodEnum<["native", "stripe", "custom"]>;
505
802
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
506
803
  }, "strip", z.ZodTypeAny, {
507
- provider: string;
804
+ provider: "native" | "stripe" | "custom";
508
805
  config?: Record<string, unknown> | undefined;
509
806
  }, {
510
- provider: string;
807
+ provider: "native" | "stripe" | "custom";
511
808
  config?: Record<string, unknown> | undefined;
512
809
  }>;
513
810
  email: z.ZodObject<{
514
- provider: z.ZodString;
811
+ provider: z.ZodEnum<["native", "smtp", "custom"]>;
515
812
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
516
813
  }, "strip", z.ZodTypeAny, {
517
- provider: string;
814
+ provider: "native" | "custom" | "smtp";
518
815
  config?: Record<string, unknown> | undefined;
519
816
  }, {
520
- provider: string;
817
+ provider: "native" | "custom" | "smtp";
521
818
  config?: Record<string, unknown> | undefined;
522
819
  }>;
523
820
  reviews: z.ZodObject<{
524
- provider: z.ZodString;
821
+ provider: z.ZodEnum<["native", "custom"]>;
525
822
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
526
823
  }, "strip", z.ZodTypeAny, {
527
- provider: string;
824
+ provider: "native" | "custom";
528
825
  config?: Record<string, unknown> | undefined;
529
826
  }, {
530
- provider: string;
827
+ provider: "native" | "custom";
531
828
  config?: Record<string, unknown> | undefined;
532
829
  }>;
533
830
  search: z.ZodObject<{
534
- provider: z.ZodString;
831
+ provider: z.ZodEnum<["native", "custom"]>;
535
832
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
536
833
  }, "strip", z.ZodTypeAny, {
537
- provider: string;
834
+ provider: "native" | "custom";
538
835
  config?: Record<string, unknown> | undefined;
539
836
  }, {
540
- provider: string;
837
+ provider: "native" | "custom";
541
838
  config?: Record<string, unknown> | undefined;
542
839
  }>;
543
840
  analytics: z.ZodObject<{
544
- provider: z.ZodString;
841
+ provider: z.ZodEnum<["native", "custom"]>;
545
842
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
546
843
  }, "strip", z.ZodTypeAny, {
547
- provider: string;
844
+ provider: "native" | "custom";
548
845
  config?: Record<string, unknown> | undefined;
549
846
  }, {
550
- provider: string;
847
+ provider: "native" | "custom";
551
848
  config?: Record<string, unknown> | undefined;
552
849
  }>;
553
850
  shipping: z.ZodObject<{
554
- provider: z.ZodString;
851
+ provider: z.ZodEnum<["native", "custom"]>;
555
852
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
556
853
  }, "strip", z.ZodTypeAny, {
557
- provider: string;
854
+ provider: "native" | "custom";
558
855
  config?: Record<string, unknown> | undefined;
559
856
  }, {
560
- provider: string;
857
+ provider: "native" | "custom";
561
858
  config?: Record<string, unknown> | undefined;
562
859
  }>;
563
860
  tax: z.ZodObject<{
564
- provider: z.ZodString;
861
+ provider: z.ZodEnum<["native", "custom"]>;
565
862
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
566
863
  }, "strip", z.ZodTypeAny, {
567
- provider: string;
864
+ provider: "native" | "custom";
568
865
  config?: Record<string, unknown> | undefined;
569
866
  }, {
570
- provider: string;
867
+ provider: "native" | "custom";
571
868
  config?: Record<string, unknown> | undefined;
572
869
  }>;
573
870
  ai: z.ZodObject<{
574
- provider: z.ZodString;
871
+ provider: z.ZodEnum<["none", "anthropic", "custom"]>;
575
872
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
576
873
  }, "strip", z.ZodTypeAny, {
577
- provider: string;
874
+ provider: "custom" | "none" | "anthropic";
578
875
  config?: Record<string, unknown> | undefined;
579
876
  }, {
580
- provider: string;
877
+ provider: "custom" | "none" | "anthropic";
581
878
  config?: Record<string, unknown> | undefined;
582
879
  }>;
583
880
  orders: z.ZodDefault<z.ZodObject<{
@@ -592,35 +889,35 @@ declare const nymbalConfigSchema: z.ZodEffects<z.ZodObject<{
592
889
  }>>;
593
890
  }, "strip", z.ZodTypeAny, {
594
891
  payments: {
595
- provider: string;
892
+ provider: "native" | "stripe" | "custom";
596
893
  config?: Record<string, unknown> | undefined;
597
894
  };
598
895
  email: {
599
- provider: string;
896
+ provider: "native" | "custom" | "smtp";
600
897
  config?: Record<string, unknown> | undefined;
601
898
  };
602
899
  reviews: {
603
- provider: string;
900
+ provider: "native" | "custom";
604
901
  config?: Record<string, unknown> | undefined;
605
902
  };
606
903
  search: {
607
- provider: string;
904
+ provider: "native" | "custom";
608
905
  config?: Record<string, unknown> | undefined;
609
906
  };
610
907
  analytics: {
611
- provider: string;
908
+ provider: "native" | "custom";
612
909
  config?: Record<string, unknown> | undefined;
613
910
  };
614
911
  shipping: {
615
- provider: string;
912
+ provider: "native" | "custom";
616
913
  config?: Record<string, unknown> | undefined;
617
914
  };
618
915
  tax: {
619
- provider: string;
916
+ provider: "native" | "custom";
620
917
  config?: Record<string, unknown> | undefined;
621
918
  };
622
919
  ai: {
623
- provider: string;
920
+ provider: "custom" | "none" | "anthropic";
624
921
  config?: Record<string, unknown> | undefined;
625
922
  };
626
923
  orders: {
@@ -629,35 +926,35 @@ declare const nymbalConfigSchema: z.ZodEffects<z.ZodObject<{
629
926
  };
630
927
  }, {
631
928
  payments: {
632
- provider: string;
929
+ provider: "native" | "stripe" | "custom";
633
930
  config?: Record<string, unknown> | undefined;
634
931
  };
635
932
  email: {
636
- provider: string;
933
+ provider: "native" | "custom" | "smtp";
637
934
  config?: Record<string, unknown> | undefined;
638
935
  };
639
936
  reviews: {
640
- provider: string;
937
+ provider: "native" | "custom";
641
938
  config?: Record<string, unknown> | undefined;
642
939
  };
643
940
  search: {
644
- provider: string;
941
+ provider: "native" | "custom";
645
942
  config?: Record<string, unknown> | undefined;
646
943
  };
647
944
  analytics: {
648
- provider: string;
945
+ provider: "native" | "custom";
649
946
  config?: Record<string, unknown> | undefined;
650
947
  };
651
948
  shipping: {
652
- provider: string;
949
+ provider: "native" | "custom";
653
950
  config?: Record<string, unknown> | undefined;
654
951
  };
655
952
  tax: {
656
- provider: string;
953
+ provider: "native" | "custom";
657
954
  config?: Record<string, unknown> | undefined;
658
955
  };
659
956
  ai: {
660
- provider: string;
957
+ provider: "custom" | "none" | "anthropic";
661
958
  config?: Record<string, unknown> | undefined;
662
959
  };
663
960
  orders?: {
@@ -729,11 +1026,25 @@ declare const nymbalConfigSchema: z.ZodEffects<z.ZodObject<{
729
1026
  };
730
1027
  template: "astro" | "nextjs";
731
1028
  infrastructure: {
732
- cloud: "local" | "aws" | "gcp" | "azure" | "docker";
733
1029
  commandStore: "sqlite" | "postgres";
734
- documentStore: "in-memory" | "dynamodb" | "firestore" | "cosmosdb" | "postgres-jsonb";
735
- eventBus: "in-process" | "eventbridge" | "pubsub" | "service-bus" | "redis-streams";
736
- compute: "in-process" | "lambda" | "cloud-functions" | "azure-functions" | "worker-threads";
1030
+ documentStore: "in-memory" | "redis" | "postgres-jsonb";
1031
+ eventBus: "in-process" | "redis-streams";
1032
+ media: "local-fs" | "s3";
1033
+ redis?: {
1034
+ url?: string | undefined;
1035
+ prefix?: string | undefined;
1036
+ ackTimeoutMs?: number | undefined;
1037
+ claimIdleMs?: number | undefined;
1038
+ streamMaxLen?: number | undefined;
1039
+ } | undefined;
1040
+ s3?: {
1041
+ prefix?: string | undefined;
1042
+ bucket?: string | undefined;
1043
+ region?: string | undefined;
1044
+ endpoint?: string | undefined;
1045
+ publicUrl?: string | undefined;
1046
+ forcePathStyle?: boolean | undefined;
1047
+ } | undefined;
737
1048
  };
738
1049
  security: {
739
1050
  adapter: "middleware" | "cloudflare" | "aws-waf" | "akamai";
@@ -761,35 +1072,35 @@ declare const nymbalConfigSchema: z.ZodEffects<z.ZodObject<{
761
1072
  };
762
1073
  commerce: {
763
1074
  payments: {
764
- provider: string;
1075
+ provider: "native" | "stripe" | "custom";
765
1076
  config?: Record<string, unknown> | undefined;
766
1077
  };
767
1078
  email: {
768
- provider: string;
1079
+ provider: "native" | "custom" | "smtp";
769
1080
  config?: Record<string, unknown> | undefined;
770
1081
  };
771
1082
  reviews: {
772
- provider: string;
1083
+ provider: "native" | "custom";
773
1084
  config?: Record<string, unknown> | undefined;
774
1085
  };
775
1086
  search: {
776
- provider: string;
1087
+ provider: "native" | "custom";
777
1088
  config?: Record<string, unknown> | undefined;
778
1089
  };
779
1090
  analytics: {
780
- provider: string;
1091
+ provider: "native" | "custom";
781
1092
  config?: Record<string, unknown> | undefined;
782
1093
  };
783
1094
  shipping: {
784
- provider: string;
1095
+ provider: "native" | "custom";
785
1096
  config?: Record<string, unknown> | undefined;
786
1097
  };
787
1098
  tax: {
788
- provider: string;
1099
+ provider: "native" | "custom";
789
1100
  config?: Record<string, unknown> | undefined;
790
1101
  };
791
1102
  ai: {
792
- provider: string;
1103
+ provider: "custom" | "none" | "anthropic";
793
1104
  config?: Record<string, unknown> | undefined;
794
1105
  };
795
1106
  orders: {
@@ -824,11 +1135,25 @@ declare const nymbalConfigSchema: z.ZodEffects<z.ZodObject<{
824
1135
  };
825
1136
  template: "astro" | "nextjs";
826
1137
  infrastructure: {
827
- cloud: "local" | "aws" | "gcp" | "azure" | "docker";
828
1138
  commandStore: "sqlite" | "postgres";
829
- documentStore: "in-memory" | "dynamodb" | "firestore" | "cosmosdb" | "postgres-jsonb";
830
- eventBus: "in-process" | "eventbridge" | "pubsub" | "service-bus" | "redis-streams";
831
- compute: "in-process" | "lambda" | "cloud-functions" | "azure-functions" | "worker-threads";
1139
+ documentStore: "in-memory" | "redis" | "postgres-jsonb";
1140
+ eventBus: "in-process" | "redis-streams";
1141
+ redis?: {
1142
+ url?: string | undefined;
1143
+ prefix?: string | undefined;
1144
+ ackTimeoutMs?: number | undefined;
1145
+ claimIdleMs?: number | undefined;
1146
+ streamMaxLen?: number | undefined;
1147
+ } | undefined;
1148
+ media?: "local-fs" | "s3" | undefined;
1149
+ s3?: {
1150
+ prefix?: string | undefined;
1151
+ bucket?: string | undefined;
1152
+ region?: string | undefined;
1153
+ endpoint?: string | undefined;
1154
+ publicUrl?: string | undefined;
1155
+ forcePathStyle?: boolean | undefined;
1156
+ } | undefined;
832
1157
  };
833
1158
  security: {
834
1159
  adapter: "middleware" | "cloudflare" | "aws-waf" | "akamai";
@@ -856,35 +1181,35 @@ declare const nymbalConfigSchema: z.ZodEffects<z.ZodObject<{
856
1181
  };
857
1182
  commerce: {
858
1183
  payments: {
859
- provider: string;
1184
+ provider: "native" | "stripe" | "custom";
860
1185
  config?: Record<string, unknown> | undefined;
861
1186
  };
862
1187
  email: {
863
- provider: string;
1188
+ provider: "native" | "custom" | "smtp";
864
1189
  config?: Record<string, unknown> | undefined;
865
1190
  };
866
1191
  reviews: {
867
- provider: string;
1192
+ provider: "native" | "custom";
868
1193
  config?: Record<string, unknown> | undefined;
869
1194
  };
870
1195
  search: {
871
- provider: string;
1196
+ provider: "native" | "custom";
872
1197
  config?: Record<string, unknown> | undefined;
873
1198
  };
874
1199
  analytics: {
875
- provider: string;
1200
+ provider: "native" | "custom";
876
1201
  config?: Record<string, unknown> | undefined;
877
1202
  };
878
1203
  shipping: {
879
- provider: string;
1204
+ provider: "native" | "custom";
880
1205
  config?: Record<string, unknown> | undefined;
881
1206
  };
882
1207
  tax: {
883
- provider: string;
1208
+ provider: "native" | "custom";
884
1209
  config?: Record<string, unknown> | undefined;
885
1210
  };
886
1211
  ai: {
887
- provider: string;
1212
+ provider: "custom" | "none" | "anthropic";
888
1213
  config?: Record<string, unknown> | undefined;
889
1214
  };
890
1215
  orders?: {
@@ -919,11 +1244,25 @@ declare const nymbalConfigSchema: z.ZodEffects<z.ZodObject<{
919
1244
  };
920
1245
  template: "astro" | "nextjs";
921
1246
  infrastructure: {
922
- cloud: "local" | "aws" | "gcp" | "azure" | "docker";
923
1247
  commandStore: "sqlite" | "postgres";
924
- documentStore: "in-memory" | "dynamodb" | "firestore" | "cosmosdb" | "postgres-jsonb";
925
- eventBus: "in-process" | "eventbridge" | "pubsub" | "service-bus" | "redis-streams";
926
- compute: "in-process" | "lambda" | "cloud-functions" | "azure-functions" | "worker-threads";
1248
+ documentStore: "in-memory" | "redis" | "postgres-jsonb";
1249
+ eventBus: "in-process" | "redis-streams";
1250
+ media: "local-fs" | "s3";
1251
+ redis?: {
1252
+ url?: string | undefined;
1253
+ prefix?: string | undefined;
1254
+ ackTimeoutMs?: number | undefined;
1255
+ claimIdleMs?: number | undefined;
1256
+ streamMaxLen?: number | undefined;
1257
+ } | undefined;
1258
+ s3?: {
1259
+ prefix?: string | undefined;
1260
+ bucket?: string | undefined;
1261
+ region?: string | undefined;
1262
+ endpoint?: string | undefined;
1263
+ publicUrl?: string | undefined;
1264
+ forcePathStyle?: boolean | undefined;
1265
+ } | undefined;
927
1266
  };
928
1267
  security: {
929
1268
  adapter: "middleware" | "cloudflare" | "aws-waf" | "akamai";
@@ -951,35 +1290,35 @@ declare const nymbalConfigSchema: z.ZodEffects<z.ZodObject<{
951
1290
  };
952
1291
  commerce: {
953
1292
  payments: {
954
- provider: string;
1293
+ provider: "native" | "stripe" | "custom";
955
1294
  config?: Record<string, unknown> | undefined;
956
1295
  };
957
1296
  email: {
958
- provider: string;
1297
+ provider: "native" | "custom" | "smtp";
959
1298
  config?: Record<string, unknown> | undefined;
960
1299
  };
961
1300
  reviews: {
962
- provider: string;
1301
+ provider: "native" | "custom";
963
1302
  config?: Record<string, unknown> | undefined;
964
1303
  };
965
1304
  search: {
966
- provider: string;
1305
+ provider: "native" | "custom";
967
1306
  config?: Record<string, unknown> | undefined;
968
1307
  };
969
1308
  analytics: {
970
- provider: string;
1309
+ provider: "native" | "custom";
971
1310
  config?: Record<string, unknown> | undefined;
972
1311
  };
973
1312
  shipping: {
974
- provider: string;
1313
+ provider: "native" | "custom";
975
1314
  config?: Record<string, unknown> | undefined;
976
1315
  };
977
1316
  tax: {
978
- provider: string;
1317
+ provider: "native" | "custom";
979
1318
  config?: Record<string, unknown> | undefined;
980
1319
  };
981
1320
  ai: {
982
- provider: string;
1321
+ provider: "custom" | "none" | "anthropic";
983
1322
  config?: Record<string, unknown> | undefined;
984
1323
  };
985
1324
  orders: {
@@ -1014,11 +1353,25 @@ declare const nymbalConfigSchema: z.ZodEffects<z.ZodObject<{
1014
1353
  };
1015
1354
  template: "astro" | "nextjs";
1016
1355
  infrastructure: {
1017
- cloud: "local" | "aws" | "gcp" | "azure" | "docker";
1018
1356
  commandStore: "sqlite" | "postgres";
1019
- documentStore: "in-memory" | "dynamodb" | "firestore" | "cosmosdb" | "postgres-jsonb";
1020
- eventBus: "in-process" | "eventbridge" | "pubsub" | "service-bus" | "redis-streams";
1021
- compute: "in-process" | "lambda" | "cloud-functions" | "azure-functions" | "worker-threads";
1357
+ documentStore: "in-memory" | "redis" | "postgres-jsonb";
1358
+ eventBus: "in-process" | "redis-streams";
1359
+ redis?: {
1360
+ url?: string | undefined;
1361
+ prefix?: string | undefined;
1362
+ ackTimeoutMs?: number | undefined;
1363
+ claimIdleMs?: number | undefined;
1364
+ streamMaxLen?: number | undefined;
1365
+ } | undefined;
1366
+ media?: "local-fs" | "s3" | undefined;
1367
+ s3?: {
1368
+ prefix?: string | undefined;
1369
+ bucket?: string | undefined;
1370
+ region?: string | undefined;
1371
+ endpoint?: string | undefined;
1372
+ publicUrl?: string | undefined;
1373
+ forcePathStyle?: boolean | undefined;
1374
+ } | undefined;
1022
1375
  };
1023
1376
  security: {
1024
1377
  adapter: "middleware" | "cloudflare" | "aws-waf" | "akamai";
@@ -1046,35 +1399,35 @@ declare const nymbalConfigSchema: z.ZodEffects<z.ZodObject<{
1046
1399
  };
1047
1400
  commerce: {
1048
1401
  payments: {
1049
- provider: string;
1402
+ provider: "native" | "stripe" | "custom";
1050
1403
  config?: Record<string, unknown> | undefined;
1051
1404
  };
1052
1405
  email: {
1053
- provider: string;
1406
+ provider: "native" | "custom" | "smtp";
1054
1407
  config?: Record<string, unknown> | undefined;
1055
1408
  };
1056
1409
  reviews: {
1057
- provider: string;
1410
+ provider: "native" | "custom";
1058
1411
  config?: Record<string, unknown> | undefined;
1059
1412
  };
1060
1413
  search: {
1061
- provider: string;
1414
+ provider: "native" | "custom";
1062
1415
  config?: Record<string, unknown> | undefined;
1063
1416
  };
1064
1417
  analytics: {
1065
- provider: string;
1418
+ provider: "native" | "custom";
1066
1419
  config?: Record<string, unknown> | undefined;
1067
1420
  };
1068
1421
  shipping: {
1069
- provider: string;
1422
+ provider: "native" | "custom";
1070
1423
  config?: Record<string, unknown> | undefined;
1071
1424
  };
1072
1425
  tax: {
1073
- provider: string;
1426
+ provider: "native" | "custom";
1074
1427
  config?: Record<string, unknown> | undefined;
1075
1428
  };
1076
1429
  ai: {
1077
- provider: string;
1430
+ provider: "custom" | "none" | "anthropic";
1078
1431
  config?: Record<string, unknown> | undefined;
1079
1432
  };
1080
1433
  orders?: {
@@ -1111,12 +1464,44 @@ declare function envOptional(key: string): string | undefined;
1111
1464
  declare function envNumber(key: string, defaultValue?: number): number;
1112
1465
  declare function envBool(key: string, defaultValue?: boolean): boolean;
1113
1466
 
1467
+ /**
1468
+ * The providers each commerce slot accepts. A provider that needs an SDK lives in an `@nymbalhq/adapter-*` package the
1469
+ * kernel loads only when the config names it; `custom` takes the adapter a project passes to `createApp`.
1470
+ */
1471
+ declare const KNOWN_PROVIDERS: {
1472
+ readonly payments: readonly ["native", "stripe", "custom"];
1473
+ readonly email: readonly ["native", "smtp", "custom"];
1474
+ readonly reviews: readonly ["native", "custom"];
1475
+ readonly search: readonly ["native", "custom"];
1476
+ readonly analytics: readonly ["native", "custom"];
1477
+ readonly shipping: readonly ["native", "custom"];
1478
+ readonly tax: readonly ["native", "custom"];
1479
+ readonly ai: readonly ["none", "anthropic", "custom"];
1480
+ };
1481
+
1482
+ /**
1483
+ * The values each infrastructure slot accepts: only what is built. `in-memory`, `in-process` and `local-fs` are the
1484
+ * kernel's own; `redis`, `postgres-jsonb`, `redis-streams` and `s3` live in `@nymbalhq/*` packages the kernel loads
1485
+ * only when the config names them.
1486
+ */
1487
+ declare const KNOWN_INFRASTRUCTURE: {
1488
+ readonly commandStore: readonly ["sqlite", "postgres"];
1489
+ readonly documentStore: readonly ["in-memory", "redis", "postgres-jsonb"];
1490
+ readonly eventBus: readonly ["in-process", "redis-streams"];
1491
+ readonly media: readonly ["local-fs", "s3"];
1492
+ };
1493
+ type InfrastructureSlot = keyof typeof KNOWN_INFRASTRUCTURE;
1494
+ /** Keys that drove nothing and were removed; a config that still sets one is told to delete it. */
1495
+ declare const REMOVED_INFRASTRUCTURE_KEYS: readonly ["cloud", "compute"];
1496
+
1114
1497
  interface LoadedConfig {
1115
1498
  config: NymbalConfig;
1116
1499
  path: string;
1117
1500
  projectRoot: string;
1501
+ /** The module's named `adapters` export: one adapter per slot whose provider is `custom`, for createApp. */
1502
+ adapters?: Partial<CommerceSlotAdapters>;
1118
1503
  }
1119
1504
  declare function findConfigFile(startDir: string): string | null;
1120
1505
  declare function loadConfig(startDir?: string): Promise<LoadedConfig>;
1121
1506
 
1122
- export { DEFAULT_JWT_SECRET, type LoadedConfig, type NymbalConfig, type NymbalConfigInput, commerceSchema, defineConfig, deploymentSchema, env, envBool, envNumber, envOptional, featuresSchema, findConfigFile, httpSchema, infrastructureSchema, loadConfig, nymbalConfigSchema, securitySchema, storeSchema };
1507
+ export { DEFAULT_JWT_SECRET, type InfrastructureSlot, KNOWN_INFRASTRUCTURE, KNOWN_PROVIDERS, type LoadedConfig, type NymbalConfig, type NymbalConfigInput, REMOVED_INFRASTRUCTURE_KEYS, commerceSchema, defineConfig, deploymentSchema, env, envBool, envNumber, envOptional, featuresSchema, findConfigFile, httpSchema, infrastructureSchema, loadConfig, nymbalConfigSchema, redisSchema, s3Schema, securitySchema, storeSchema };