@gigadrive/network-config 4.5.0 → 4.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import { Schema, Effect, Layer } from 'effect';
2
- import { FileSystem, Path } from '@effect/platform';
3
- import * as _effect_platform_Path from '@effect/platform/Path';
4
2
  import * as _effect_platform_FileSystem from '@effect/platform/FileSystem';
3
+ import * as _effect_platform_Path from '@effect/platform/Path';
4
+ import * as effect_Layer from 'effect/Layer';
5
+ import { Path, FileSystem } from '@effect/platform';
5
6
 
6
7
  declare const StaticAssetHeadersSchema: Schema.filter<Schema.mutable<Schema.Record$<typeof Schema.String, Schema.Union<[Schema.filter<typeof Schema.String>, Schema.mutable<Schema.Array$<Schema.filter<typeof Schema.String>>>]>>>>;
7
8
  type StaticAssetHeaders = Schema.Schema.Type<typeof StaticAssetHeadersSchema>;
@@ -73,10 +74,23 @@ interface NormalizedImagePolicy {
73
74
  type JsonValue = null | boolean | number | string | JsonValue[] | {
74
75
  [key: string]: JsonValue;
75
76
  };
76
- declare const GigadriveNextPrerenderOutputSchema: Schema.mutable<Schema.Struct<{
77
+ /**
78
+ * Portable Next.js prerender metadata.
79
+ *
80
+ * A fallback file is a mutable incremental-cache build seed, not a permanently
81
+ * authoritative static asset. Consumers must evaluate bypass, preview,
82
+ * revalidation, and PPR metadata before using it, and may only short-circuit
83
+ * ordinary GET and HEAD requests.
84
+ */
85
+ declare const GigadriveNextPrerenderOutputSchema: Schema.Union<[Schema.mutable<Schema.Struct<{
86
+ routeType: Schema.Literal<["route", "fallback", "shell", "page"]>;
87
+ response: Schema.Literal<["empty", "initial", "complete"]>;
88
+ compute: Schema.Literal<["blocking", "resuming", "static"]>;
89
+ htmlSize: Schema.optional<typeof Schema.Number>;
77
90
  id: typeof Schema.String;
78
91
  type: Schema.Literal<["PRERENDER"]>;
79
92
  pathname: Schema.filter<typeof Schema.String>;
93
+ route: Schema.optional<Schema.filter<typeof Schema.String>>;
80
94
  parentOutputId: typeof Schema.String;
81
95
  groupId: typeof Schema.Number;
82
96
  pprChain: Schema.optional<Schema.mutable<Schema.Struct<{
@@ -99,7 +113,38 @@ declare const GigadriveNextPrerenderOutputSchema: Schema.mutable<Schema.Struct<{
99
113
  partialFallback: Schema.optional<typeof Schema.Boolean>;
100
114
  bypassToken: Schema.optional<typeof Schema.String>;
101
115
  }>>;
102
- }>>;
116
+ }>>, Schema.mutable<Schema.Struct<{
117
+ routeType: Schema.optional<typeof Schema.Never>;
118
+ response: Schema.optional<typeof Schema.Never>;
119
+ compute: Schema.optional<typeof Schema.Never>;
120
+ htmlSize: Schema.optional<typeof Schema.Never>;
121
+ id: typeof Schema.String;
122
+ type: Schema.Literal<["PRERENDER"]>;
123
+ pathname: Schema.filter<typeof Schema.String>;
124
+ route: Schema.optional<Schema.filter<typeof Schema.String>>;
125
+ parentOutputId: typeof Schema.String;
126
+ groupId: typeof Schema.Number;
127
+ pprChain: Schema.optional<Schema.mutable<Schema.Struct<{
128
+ headers: Schema.filter<Schema.mutable<Schema.Record$<typeof Schema.String, Schema.filter<typeof Schema.String>>>>;
129
+ }>>>;
130
+ parentFallbackMode: Schema.optional<Schema.Schema<JsonValue, JsonValue, never>>;
131
+ fallback: Schema.optional<Schema.mutable<Schema.Struct<{
132
+ filePath: Schema.optional<Schema.filter<typeof Schema.String>>;
133
+ initialStatus: Schema.optional<Schema.filter<typeof Schema.Int>>;
134
+ initialHeaders: Schema.optional<Schema.filter<Schema.mutable<Schema.Record$<typeof Schema.String, Schema.Union<[Schema.filter<typeof Schema.String>, Schema.mutable<Schema.Array$<Schema.filter<typeof Schema.String>>>]>>>>>;
135
+ initialExpiration: Schema.optional<typeof Schema.Number>;
136
+ initialRevalidate: Schema.optional<Schema.Union<[typeof Schema.Number, Schema.Literal<[false]>]>>;
137
+ postponedState: Schema.optional<typeof Schema.String>;
138
+ }>>>;
139
+ config: Schema.mutable<Schema.Struct<{
140
+ allowQuery: Schema.optional<Schema.mutable<Schema.Array$<typeof Schema.String>>>;
141
+ allowHeader: Schema.optional<Schema.mutable<Schema.Array$<typeof Schema.String>>>;
142
+ bypassFor: Schema.optional<Schema.mutable<Schema.Array$<Schema.Schema<JsonValue, JsonValue, never>>>>;
143
+ renderingMode: Schema.optional<typeof Schema.String>;
144
+ partialFallback: Schema.optional<typeof Schema.Boolean>;
145
+ bypassToken: Schema.optional<typeof Schema.String>;
146
+ }>>;
147
+ }>>]>;
103
148
  type GigadriveNextPrerenderOutput = Schema.Schema.Type<typeof GigadriveNextPrerenderOutputSchema>;
104
149
  /** A directory subtree published under one URL prefix. */
105
150
  declare const GigadriveNextStaticAssetPrefixSchema: Schema.mutable<Schema.Struct<{
@@ -108,6 +153,72 @@ declare const GigadriveNextStaticAssetPrefixSchema: Schema.mutable<Schema.Struct
108
153
  immutable: typeof Schema.Boolean;
109
154
  }>>;
110
155
  type GigadriveNextStaticAssetPrefix = Schema.Schema.Type<typeof GigadriveNextStaticAssetPrefixSchema>;
156
+ /** Portable request condition used by a Next.js middleware/Proxy matcher. */
157
+ declare const GigadriveNextRouteConditionSchema: Schema.Union<[Schema.mutable<Schema.Struct<{
158
+ type: Schema.Literal<["header", "cookie", "query"]>;
159
+ key: typeof Schema.String;
160
+ value: Schema.optional<typeof Schema.String>;
161
+ }>>, Schema.mutable<Schema.Struct<{
162
+ type: Schema.Literal<["host"]>;
163
+ value: typeof Schema.String;
164
+ }>>]>;
165
+ type GigadriveNextRouteCondition = Schema.Schema.Type<typeof GigadriveNextRouteConditionSchema>;
166
+ /** Validated public matcher metadata for a Next.js middleware or Proxy entrypoint. */
167
+ declare const GigadriveNextMiddlewareMatcherSchema: Schema.mutable<Schema.Struct<{
168
+ source: typeof Schema.String;
169
+ sourceRegex: typeof Schema.String;
170
+ has: Schema.optional<Schema.mutable<Schema.Array$<Schema.Union<[Schema.mutable<Schema.Struct<{
171
+ type: Schema.Literal<["header", "cookie", "query"]>;
172
+ key: typeof Schema.String;
173
+ value: Schema.optional<typeof Schema.String>;
174
+ }>>, Schema.mutable<Schema.Struct<{
175
+ type: Schema.Literal<["host"]>;
176
+ value: typeof Schema.String;
177
+ }>>]>>>>;
178
+ missing: Schema.optional<Schema.mutable<Schema.Array$<Schema.Union<[Schema.mutable<Schema.Struct<{
179
+ type: Schema.Literal<["header", "cookie", "query"]>;
180
+ key: typeof Schema.String;
181
+ value: Schema.optional<typeof Schema.String>;
182
+ }>>, Schema.mutable<Schema.Struct<{
183
+ type: Schema.Literal<["host"]>;
184
+ value: typeof Schema.String;
185
+ }>>]>>>>;
186
+ }>>;
187
+ type GigadriveNextMiddlewareMatcher = Schema.Schema.Type<typeof GigadriveNextMiddlewareMatcherSchema>;
188
+ /**
189
+ * Portable middleware/Proxy discovery result.
190
+ *
191
+ * The object is emitted for every new standalone build. Its optional position
192
+ * in the containing manifest preserves parsing of manifests written by older
193
+ * SDK releases, where absence means that middleware presence is unknown.
194
+ */
195
+ declare const GigadriveNextMiddlewareDescriptorSchema: Schema.Union<[Schema.mutable<Schema.Struct<{
196
+ present: Schema.Literal<[true]>;
197
+ matchers: Schema.mutable<Schema.Array$<Schema.mutable<Schema.Struct<{
198
+ source: typeof Schema.String;
199
+ sourceRegex: typeof Schema.String;
200
+ has: Schema.optional<Schema.mutable<Schema.Array$<Schema.Union<[Schema.mutable<Schema.Struct<{
201
+ type: Schema.Literal<["header", "cookie", "query"]>;
202
+ key: typeof Schema.String;
203
+ value: Schema.optional<typeof Schema.String>;
204
+ }>>, Schema.mutable<Schema.Struct<{
205
+ type: Schema.Literal<["host"]>;
206
+ value: typeof Schema.String;
207
+ }>>]>>>>;
208
+ missing: Schema.optional<Schema.mutable<Schema.Array$<Schema.Union<[Schema.mutable<Schema.Struct<{
209
+ type: Schema.Literal<["header", "cookie", "query"]>;
210
+ key: typeof Schema.String;
211
+ value: Schema.optional<typeof Schema.String>;
212
+ }>>, Schema.mutable<Schema.Struct<{
213
+ type: Schema.Literal<["host"]>;
214
+ value: typeof Schema.String;
215
+ }>>]>>>>;
216
+ }>>>>;
217
+ }>>, Schema.mutable<Schema.Struct<{
218
+ present: Schema.Literal<[false]>;
219
+ matchers: Schema.mutable<Schema.Tuple<[]>>;
220
+ }>>]>;
221
+ type GigadriveNextMiddlewareDescriptor = Schema.Schema.Type<typeof GigadriveNextMiddlewareDescriptorSchema>;
111
222
  /** Aggregated runtime configuration for the standalone server. */
112
223
  declare const GigadriveNextServerDescriptorSchema: Schema.mutable<Schema.Struct<{
113
224
  maxDuration: Schema.optional<typeof Schema.Number>;
@@ -115,6 +226,9 @@ declare const GigadriveNextServerDescriptorSchema: Schema.mutable<Schema.Struct<
115
226
  env: Schema.optional<Schema.mutable<Schema.Record$<typeof Schema.String, typeof Schema.String>>>;
116
227
  }>>;
117
228
  type GigadriveNextServerDescriptor = Schema.Schema.Type<typeof GigadriveNextServerDescriptorSchema>;
229
+ /** Methods for which a validated prerender seed may participate in response lookup. */
230
+ declare const GigadriveNextPrerenderSeedMethodsSchema: Schema.mutable<Schema.Tuple2<Schema.Literal<["GET"]>, Schema.Literal<["HEAD"]>>>;
231
+ type GigadriveNextPrerenderSeedMethods = Schema.Schema.Type<typeof GigadriveNextPrerenderSeedMethodsSchema>;
118
232
  declare const GigadriveNextBuildManifestV1Schema: Schema.mutable<Schema.Struct<{
119
233
  version: Schema.Literal<[1]>;
120
234
  output: Schema.Literal<["standalone", "export"]>;
@@ -165,10 +279,15 @@ declare const GigadriveNextBuildManifestV2StandaloneSchema: Schema.mutable<Schem
165
279
  rsc: Schema.Schema<JsonValue, JsonValue, never>;
166
280
  }>>;
167
281
  outputs: Schema.mutable<Schema.Struct<{
168
- prerenders: Schema.mutable<Schema.Array$<Schema.mutable<Schema.Struct<{
282
+ prerenders: Schema.mutable<Schema.Array$<Schema.Union<[Schema.mutable<Schema.Struct<{
283
+ routeType: Schema.Literal<["route", "fallback", "shell", "page"]>;
284
+ response: Schema.Literal<["empty", "initial", "complete"]>;
285
+ compute: Schema.Literal<["blocking", "resuming", "static"]>;
286
+ htmlSize: Schema.optional<typeof Schema.Number>;
169
287
  id: typeof Schema.String;
170
288
  type: Schema.Literal<["PRERENDER"]>;
171
289
  pathname: Schema.filter<typeof Schema.String>;
290
+ route: Schema.optional<Schema.filter<typeof Schema.String>>;
172
291
  parentOutputId: typeof Schema.String;
173
292
  groupId: typeof Schema.Number;
174
293
  pprChain: Schema.optional<Schema.mutable<Schema.Struct<{
@@ -191,7 +310,38 @@ declare const GigadriveNextBuildManifestV2StandaloneSchema: Schema.mutable<Schem
191
310
  partialFallback: Schema.optional<typeof Schema.Boolean>;
192
311
  bypassToken: Schema.optional<typeof Schema.String>;
193
312
  }>>;
194
- }>>>>;
313
+ }>>, Schema.mutable<Schema.Struct<{
314
+ routeType: Schema.optional<typeof Schema.Never>;
315
+ response: Schema.optional<typeof Schema.Never>;
316
+ compute: Schema.optional<typeof Schema.Never>;
317
+ htmlSize: Schema.optional<typeof Schema.Never>;
318
+ id: typeof Schema.String;
319
+ type: Schema.Literal<["PRERENDER"]>;
320
+ pathname: Schema.filter<typeof Schema.String>;
321
+ route: Schema.optional<Schema.filter<typeof Schema.String>>;
322
+ parentOutputId: typeof Schema.String;
323
+ groupId: typeof Schema.Number;
324
+ pprChain: Schema.optional<Schema.mutable<Schema.Struct<{
325
+ headers: Schema.filter<Schema.mutable<Schema.Record$<typeof Schema.String, Schema.filter<typeof Schema.String>>>>;
326
+ }>>>;
327
+ parentFallbackMode: Schema.optional<Schema.Schema<JsonValue, JsonValue, never>>;
328
+ fallback: Schema.optional<Schema.mutable<Schema.Struct<{
329
+ filePath: Schema.optional<Schema.filter<typeof Schema.String>>;
330
+ initialStatus: Schema.optional<Schema.filter<typeof Schema.Int>>;
331
+ initialHeaders: Schema.optional<Schema.filter<Schema.mutable<Schema.Record$<typeof Schema.String, Schema.Union<[Schema.filter<typeof Schema.String>, Schema.mutable<Schema.Array$<Schema.filter<typeof Schema.String>>>]>>>>>;
332
+ initialExpiration: Schema.optional<typeof Schema.Number>;
333
+ initialRevalidate: Schema.optional<Schema.Union<[typeof Schema.Number, Schema.Literal<[false]>]>>;
334
+ postponedState: Schema.optional<typeof Schema.String>;
335
+ }>>>;
336
+ config: Schema.mutable<Schema.Struct<{
337
+ allowQuery: Schema.optional<Schema.mutable<Schema.Array$<typeof Schema.String>>>;
338
+ allowHeader: Schema.optional<Schema.mutable<Schema.Array$<typeof Schema.String>>>;
339
+ bypassFor: Schema.optional<Schema.mutable<Schema.Array$<Schema.Schema<JsonValue, JsonValue, never>>>>;
340
+ renderingMode: Schema.optional<typeof Schema.String>;
341
+ partialFallback: Schema.optional<typeof Schema.Boolean>;
342
+ bypassToken: Schema.optional<typeof Schema.String>;
343
+ }>>;
344
+ }>>]>>>;
195
345
  prerenderManifest: Schema.optional<Schema.filter<typeof Schema.String>>;
196
346
  assetManifest: Schema.optional<Schema.filter<typeof Schema.String>>;
197
347
  entryPagePaths: Schema.optional<Schema.mutable<Schema.Array$<Schema.filter<typeof Schema.String>>>>;
@@ -200,6 +350,32 @@ declare const GigadriveNextBuildManifestV2StandaloneSchema: Schema.mutable<Schem
200
350
  urlPrefix: Schema.filter<typeof Schema.String>;
201
351
  immutable: typeof Schema.Boolean;
202
352
  }>>>>;
353
+ middleware: Schema.optional<Schema.Union<[Schema.mutable<Schema.Struct<{
354
+ present: Schema.Literal<[true]>;
355
+ matchers: Schema.mutable<Schema.Array$<Schema.mutable<Schema.Struct<{
356
+ source: typeof Schema.String;
357
+ sourceRegex: typeof Schema.String;
358
+ has: Schema.optional<Schema.mutable<Schema.Array$<Schema.Union<[Schema.mutable<Schema.Struct<{
359
+ type: Schema.Literal<["header", "cookie", "query"]>;
360
+ key: typeof Schema.String;
361
+ value: Schema.optional<typeof Schema.String>;
362
+ }>>, Schema.mutable<Schema.Struct<{
363
+ type: Schema.Literal<["host"]>;
364
+ value: typeof Schema.String;
365
+ }>>]>>>>;
366
+ missing: Schema.optional<Schema.mutable<Schema.Array$<Schema.Union<[Schema.mutable<Schema.Struct<{
367
+ type: Schema.Literal<["header", "cookie", "query"]>;
368
+ key: typeof Schema.String;
369
+ value: Schema.optional<typeof Schema.String>;
370
+ }>>, Schema.mutable<Schema.Struct<{
371
+ type: Schema.Literal<["host"]>;
372
+ value: typeof Schema.String;
373
+ }>>]>>>>;
374
+ }>>>>;
375
+ }>>, Schema.mutable<Schema.Struct<{
376
+ present: Schema.Literal<[false]>;
377
+ matchers: Schema.mutable<Schema.Tuple<[]>>;
378
+ }>>]>>;
203
379
  }>>;
204
380
  }>>;
205
381
  type GigadriveNextBuildManifestV2Standalone = Schema.Schema.Type<typeof GigadriveNextBuildManifestV2StandaloneSchema>;
@@ -247,10 +423,15 @@ declare const GigadriveNextBuildManifestSchema: Schema.Union<[Schema.mutable<Sch
247
423
  rsc: Schema.Schema<JsonValue, JsonValue, never>;
248
424
  }>>;
249
425
  outputs: Schema.mutable<Schema.Struct<{
250
- prerenders: Schema.mutable<Schema.Array$<Schema.mutable<Schema.Struct<{
426
+ prerenders: Schema.mutable<Schema.Array$<Schema.Union<[Schema.mutable<Schema.Struct<{
427
+ routeType: Schema.Literal<["route", "fallback", "shell", "page"]>;
428
+ response: Schema.Literal<["empty", "initial", "complete"]>;
429
+ compute: Schema.Literal<["blocking", "resuming", "static"]>;
430
+ htmlSize: Schema.optional<typeof Schema.Number>;
251
431
  id: typeof Schema.String;
252
432
  type: Schema.Literal<["PRERENDER"]>;
253
433
  pathname: Schema.filter<typeof Schema.String>;
434
+ route: Schema.optional<Schema.filter<typeof Schema.String>>;
254
435
  parentOutputId: typeof Schema.String;
255
436
  groupId: typeof Schema.Number;
256
437
  pprChain: Schema.optional<Schema.mutable<Schema.Struct<{
@@ -273,7 +454,38 @@ declare const GigadriveNextBuildManifestSchema: Schema.Union<[Schema.mutable<Sch
273
454
  partialFallback: Schema.optional<typeof Schema.Boolean>;
274
455
  bypassToken: Schema.optional<typeof Schema.String>;
275
456
  }>>;
276
- }>>>>;
457
+ }>>, Schema.mutable<Schema.Struct<{
458
+ routeType: Schema.optional<typeof Schema.Never>;
459
+ response: Schema.optional<typeof Schema.Never>;
460
+ compute: Schema.optional<typeof Schema.Never>;
461
+ htmlSize: Schema.optional<typeof Schema.Never>;
462
+ id: typeof Schema.String;
463
+ type: Schema.Literal<["PRERENDER"]>;
464
+ pathname: Schema.filter<typeof Schema.String>;
465
+ route: Schema.optional<Schema.filter<typeof Schema.String>>;
466
+ parentOutputId: typeof Schema.String;
467
+ groupId: typeof Schema.Number;
468
+ pprChain: Schema.optional<Schema.mutable<Schema.Struct<{
469
+ headers: Schema.filter<Schema.mutable<Schema.Record$<typeof Schema.String, Schema.filter<typeof Schema.String>>>>;
470
+ }>>>;
471
+ parentFallbackMode: Schema.optional<Schema.Schema<JsonValue, JsonValue, never>>;
472
+ fallback: Schema.optional<Schema.mutable<Schema.Struct<{
473
+ filePath: Schema.optional<Schema.filter<typeof Schema.String>>;
474
+ initialStatus: Schema.optional<Schema.filter<typeof Schema.Int>>;
475
+ initialHeaders: Schema.optional<Schema.filter<Schema.mutable<Schema.Record$<typeof Schema.String, Schema.Union<[Schema.filter<typeof Schema.String>, Schema.mutable<Schema.Array$<Schema.filter<typeof Schema.String>>>]>>>>>;
476
+ initialExpiration: Schema.optional<typeof Schema.Number>;
477
+ initialRevalidate: Schema.optional<Schema.Union<[typeof Schema.Number, Schema.Literal<[false]>]>>;
478
+ postponedState: Schema.optional<typeof Schema.String>;
479
+ }>>>;
480
+ config: Schema.mutable<Schema.Struct<{
481
+ allowQuery: Schema.optional<Schema.mutable<Schema.Array$<typeof Schema.String>>>;
482
+ allowHeader: Schema.optional<Schema.mutable<Schema.Array$<typeof Schema.String>>>;
483
+ bypassFor: Schema.optional<Schema.mutable<Schema.Array$<Schema.Schema<JsonValue, JsonValue, never>>>>;
484
+ renderingMode: Schema.optional<typeof Schema.String>;
485
+ partialFallback: Schema.optional<typeof Schema.Boolean>;
486
+ bypassToken: Schema.optional<typeof Schema.String>;
487
+ }>>;
488
+ }>>]>>>;
277
489
  prerenderManifest: Schema.optional<Schema.filter<typeof Schema.String>>;
278
490
  assetManifest: Schema.optional<Schema.filter<typeof Schema.String>>;
279
491
  entryPagePaths: Schema.optional<Schema.mutable<Schema.Array$<Schema.filter<typeof Schema.String>>>>;
@@ -282,17 +494,54 @@ declare const GigadriveNextBuildManifestSchema: Schema.Union<[Schema.mutable<Sch
282
494
  urlPrefix: Schema.filter<typeof Schema.String>;
283
495
  immutable: typeof Schema.Boolean;
284
496
  }>>>>;
497
+ middleware: Schema.optional<Schema.Union<[Schema.mutable<Schema.Struct<{
498
+ present: Schema.Literal<[true]>;
499
+ matchers: Schema.mutable<Schema.Array$<Schema.mutable<Schema.Struct<{
500
+ source: typeof Schema.String;
501
+ sourceRegex: typeof Schema.String;
502
+ has: Schema.optional<Schema.mutable<Schema.Array$<Schema.Union<[Schema.mutable<Schema.Struct<{
503
+ type: Schema.Literal<["header", "cookie", "query"]>;
504
+ key: typeof Schema.String;
505
+ value: Schema.optional<typeof Schema.String>;
506
+ }>>, Schema.mutable<Schema.Struct<{
507
+ type: Schema.Literal<["host"]>;
508
+ value: typeof Schema.String;
509
+ }>>]>>>>;
510
+ missing: Schema.optional<Schema.mutable<Schema.Array$<Schema.Union<[Schema.mutable<Schema.Struct<{
511
+ type: Schema.Literal<["header", "cookie", "query"]>;
512
+ key: typeof Schema.String;
513
+ value: Schema.optional<typeof Schema.String>;
514
+ }>>, Schema.mutable<Schema.Struct<{
515
+ type: Schema.Literal<["host"]>;
516
+ value: typeof Schema.String;
517
+ }>>]>>>>;
518
+ }>>>>;
519
+ }>>, Schema.mutable<Schema.Struct<{
520
+ present: Schema.Literal<[false]>;
521
+ matchers: Schema.mutable<Schema.Tuple<[]>>;
522
+ }>>]>>;
285
523
  }>>;
286
524
  }>>]>;
287
525
  type GigadriveNextBuildManifestV2 = GigadriveNextBuildManifestV2Standalone | GigadriveNextBuildManifestV2Export;
288
526
  type GigadriveNextBuildManifest = Schema.Schema.Type<typeof GigadriveNextBuildManifestSchema>;
289
- /** Portable sidecar containing high-cardinality Next.js prerender metadata. */
527
+ /**
528
+ * Portable sidecar containing high-cardinality Next.js prerender build seeds.
529
+ *
530
+ * `seedMethods` is optional only for parsing sidecars emitted by older SDK
531
+ * releases. New adapters always emit the explicit GET/HEAD method scope.
532
+ */
290
533
  declare const GigadriveNextPrerenderManifestV1Schema: Schema.mutable<Schema.Struct<{
291
534
  version: Schema.Literal<[1]>;
292
- prerenders: Schema.mutable<Schema.Array$<Schema.mutable<Schema.Struct<{
535
+ seedMethods: Schema.optional<Schema.mutable<Schema.Tuple2<Schema.Literal<["GET"]>, Schema.Literal<["HEAD"]>>>>;
536
+ prerenders: Schema.mutable<Schema.Array$<Schema.Union<[Schema.mutable<Schema.Struct<{
537
+ routeType: Schema.Literal<["route", "fallback", "shell", "page"]>;
538
+ response: Schema.Literal<["empty", "initial", "complete"]>;
539
+ compute: Schema.Literal<["blocking", "resuming", "static"]>;
540
+ htmlSize: Schema.optional<typeof Schema.Number>;
293
541
  id: typeof Schema.String;
294
542
  type: Schema.Literal<["PRERENDER"]>;
295
543
  pathname: Schema.filter<typeof Schema.String>;
544
+ route: Schema.optional<Schema.filter<typeof Schema.String>>;
296
545
  parentOutputId: typeof Schema.String;
297
546
  groupId: typeof Schema.Number;
298
547
  pprChain: Schema.optional<Schema.mutable<Schema.Struct<{
@@ -315,7 +564,38 @@ declare const GigadriveNextPrerenderManifestV1Schema: Schema.mutable<Schema.Stru
315
564
  partialFallback: Schema.optional<typeof Schema.Boolean>;
316
565
  bypassToken: Schema.optional<typeof Schema.String>;
317
566
  }>>;
318
- }>>>>;
567
+ }>>, Schema.mutable<Schema.Struct<{
568
+ routeType: Schema.optional<typeof Schema.Never>;
569
+ response: Schema.optional<typeof Schema.Never>;
570
+ compute: Schema.optional<typeof Schema.Never>;
571
+ htmlSize: Schema.optional<typeof Schema.Never>;
572
+ id: typeof Schema.String;
573
+ type: Schema.Literal<["PRERENDER"]>;
574
+ pathname: Schema.filter<typeof Schema.String>;
575
+ route: Schema.optional<Schema.filter<typeof Schema.String>>;
576
+ parentOutputId: typeof Schema.String;
577
+ groupId: typeof Schema.Number;
578
+ pprChain: Schema.optional<Schema.mutable<Schema.Struct<{
579
+ headers: Schema.filter<Schema.mutable<Schema.Record$<typeof Schema.String, Schema.filter<typeof Schema.String>>>>;
580
+ }>>>;
581
+ parentFallbackMode: Schema.optional<Schema.Schema<JsonValue, JsonValue, never>>;
582
+ fallback: Schema.optional<Schema.mutable<Schema.Struct<{
583
+ filePath: Schema.optional<Schema.filter<typeof Schema.String>>;
584
+ initialStatus: Schema.optional<Schema.filter<typeof Schema.Int>>;
585
+ initialHeaders: Schema.optional<Schema.filter<Schema.mutable<Schema.Record$<typeof Schema.String, Schema.Union<[Schema.filter<typeof Schema.String>, Schema.mutable<Schema.Array$<Schema.filter<typeof Schema.String>>>]>>>>>;
586
+ initialExpiration: Schema.optional<typeof Schema.Number>;
587
+ initialRevalidate: Schema.optional<Schema.Union<[typeof Schema.Number, Schema.Literal<[false]>]>>;
588
+ postponedState: Schema.optional<typeof Schema.String>;
589
+ }>>>;
590
+ config: Schema.mutable<Schema.Struct<{
591
+ allowQuery: Schema.optional<Schema.mutable<Schema.Array$<typeof Schema.String>>>;
592
+ allowHeader: Schema.optional<Schema.mutable<Schema.Array$<typeof Schema.String>>>;
593
+ bypassFor: Schema.optional<Schema.mutable<Schema.Array$<Schema.Schema<JsonValue, JsonValue, never>>>>;
594
+ renderingMode: Schema.optional<typeof Schema.String>;
595
+ partialFallback: Schema.optional<typeof Schema.Boolean>;
596
+ bypassToken: Schema.optional<typeof Schema.String>;
597
+ }>>;
598
+ }>>]>>>;
319
599
  }>>;
320
600
  type GigadriveNextPrerenderManifestV1 = Schema.Schema.Type<typeof GigadriveNextPrerenderManifestV1Schema>;
321
601
  /** Parses and structurally validates adapter metadata before deployment code consumes it. */
@@ -582,263 +862,85 @@ type NormalizedConfigRouteMatchRequirements = [] | [
582
862
  }
583
863
  ];
584
864
 
585
- declare const ManifestNotFoundError_base: Schema.TaggedErrorClass<ManifestNotFoundError, "ManifestNotFoundError", {
586
- readonly _tag: Schema.tag<"ManifestNotFoundError">;
865
+ declare const ConfigFileNotFoundError_base: Schema.TaggedErrorClass<ConfigFileNotFoundError, "ConfigFileNotFoundError", {
866
+ readonly _tag: Schema.tag<"ConfigFileNotFoundError">;
587
867
  } & {
588
868
  message: typeof Schema.String;
589
869
  filePath: typeof Schema.String;
590
870
  }>;
591
- declare class ManifestNotFoundError extends ManifestNotFoundError_base {
871
+ declare class ConfigFileNotFoundError extends ConfigFileNotFoundError_base {
592
872
  }
593
- declare const ManifestReadError_base: Schema.TaggedErrorClass<ManifestReadError, "ManifestReadError", {
594
- readonly _tag: Schema.tag<"ManifestReadError">;
873
+ declare const ConfigFileEmptyError_base: Schema.TaggedErrorClass<ConfigFileEmptyError, "ConfigFileEmptyError", {
874
+ readonly _tag: Schema.tag<"ConfigFileEmptyError">;
595
875
  } & {
596
876
  message: typeof Schema.String;
597
877
  filePath: typeof Schema.String;
598
878
  }>;
599
- declare class ManifestReadError extends ManifestReadError_base {
879
+ declare class ConfigFileEmptyError extends ConfigFileEmptyError_base {
600
880
  }
601
- declare const ManifestParseError_base: Schema.TaggedErrorClass<ManifestParseError, "ManifestParseError", {
602
- readonly _tag: Schema.tag<"ManifestParseError">;
881
+ declare const ConfigFileParseError_base: Schema.TaggedErrorClass<ConfigFileParseError, "ConfigFileParseError", {
882
+ readonly _tag: Schema.tag<"ConfigFileParseError">;
603
883
  } & {
604
884
  message: typeof Schema.String;
605
885
  filePath: typeof Schema.String;
886
+ cause: Schema.optional<typeof Schema.String>;
606
887
  }>;
607
- declare class ManifestParseError extends ManifestParseError_base {
888
+ declare class ConfigFileParseError extends ConfigFileParseError_base {
608
889
  }
609
- declare const FrameworkNotDetectedError_base: Schema.TaggedErrorClass<FrameworkNotDetectedError, "FrameworkNotDetectedError", {
610
- readonly _tag: Schema.tag<"FrameworkNotDetectedError">;
890
+ declare const ConfigModuleLoadError_base: Schema.TaggedErrorClass<ConfigModuleLoadError, "ConfigModuleLoadError", {
891
+ readonly _tag: Schema.tag<"ConfigModuleLoadError">;
611
892
  } & {
612
893
  message: typeof Schema.String;
613
- directory: typeof Schema.String;
894
+ filePath: typeof Schema.String;
895
+ cause: Schema.optional<typeof Schema.String>;
614
896
  }>;
615
- declare class FrameworkNotDetectedError extends FrameworkNotDetectedError_base {
897
+ declare class ConfigModuleLoadError extends ConfigModuleLoadError_base {
616
898
  }
617
- interface FrameworkDetectionItem {
618
- /** Check manifest dependencies for this package (routed by framework language) */
619
- matchPackage?: string;
620
- /** Check if this file exists (relative to project root) */
621
- path?: string;
622
- /** If path is set, also check file content matches this regex */
623
- matchContent?: string;
899
+ declare const ConfigVersionError_base: Schema.TaggedErrorClass<ConfigVersionError, "ConfigVersionError", {
900
+ readonly _tag: Schema.tag<"ConfigVersionError">;
901
+ } & {
902
+ message: typeof Schema.String;
903
+ filePath: typeof Schema.String;
904
+ version: Schema.optional<typeof Schema.Number>;
905
+ }>;
906
+ declare class ConfigVersionError extends ConfigVersionError_base {
624
907
  }
625
- type FrameworkLanguage = 'node' | 'php';
626
- type PackageManager = 'npm' | 'yarn' | 'pnpm' | 'bun' | 'composer';
627
- interface FrameworkDefinition {
628
- slug: string;
629
- name: string;
630
- language: FrameworkLanguage;
631
- /** ALL items must match for the framework to be detected */
632
- detectors: FrameworkDetectionItem[];
633
- /** Higher = higher priority (specific frameworks beat generic ones) */
634
- priority: number;
635
- /** Generates deployment defaults for this framework */
636
- getDefaultConfig: (packageManager: PackageManager) => FrameworkDefaultConfig;
637
- /** Refines defaults with project files after a framework match, e.g. framework CLI config. */
638
- refineDefaultConfig?: (defaults: FrameworkDefaultConfig, projectFolder: string) => Effect.Effect<FrameworkDefaultConfig, never, FileSystem.FileSystem | Path.Path>;
908
+ declare const ConfigSchemaValidationError_base: Schema.TaggedErrorClass<ConfigSchemaValidationError, "ConfigSchemaValidationError", {
909
+ readonly _tag: Schema.tag<"ConfigSchemaValidationError">;
910
+ } & {
911
+ message: typeof Schema.String;
912
+ filePath: typeof Schema.String;
913
+ validationErrors: Schema.Array$<typeof Schema.String>;
914
+ }>;
915
+ declare class ConfigSchemaValidationError extends ConfigSchemaValidationError_base {
639
916
  }
640
- interface FrameworkDefaultConfig {
641
- runtime: Runtime;
642
- memory: number;
643
- maxDuration: number;
644
- streaming: boolean;
645
- /** Overrides the auto-generated install command (e.g. for custom composer flags) */
646
- installCommand?: string;
647
- /** Build commands (install command is auto-prepended by generateConfig) */
648
- commands: string[];
649
- entrypoint?: string;
650
- assetsDir?: string;
651
- assetsPrefixToStrip?: string;
652
- /** Explicit project-relative files to publish as static assets. */
653
- assetPaths?: string[];
654
- /** Public path overrides keyed by project-relative asset path. */
655
- assetOverrides?: Record<string, {
656
- path?: string;
657
- contentType?: string;
658
- }>;
659
- /** Directory subtrees to publish under a URL prefix without per-file enumeration. */
660
- assetPrefixes?: Array<{
661
- source: string;
662
- destination: string;
663
- immutable?: boolean;
664
- populateCache?: boolean;
665
- contentType?: string;
666
- }>;
667
- /** Project-relative manifests containing logical static asset entries. */
668
- assetManifests?: Array<{
669
- source: string;
670
- }>;
671
- populateAssetCache?: boolean;
672
- routes: Array<{
673
- source: string;
674
- destination: string;
675
- }>;
676
- environmentVariables: Record<string, string>;
677
- symlinks?: Record<string, string>;
678
- excludeFiles?: string[];
679
- package?: {
680
- trace?: boolean;
681
- includeProjectFiles?: boolean;
682
- preserveSymlinks?: boolean;
683
- rootOverwrite?: string;
684
- filePathMap?: Record<string, string>;
685
- includeFiles?: string[];
686
- excludeFiles?: string[];
687
- };
688
- /** Advanced framework output that replaces the one-entrypoint defaults. */
689
- normalizedConfig?: Partial<NormalizedConfig>;
917
+ declare const FunctionConfigError_base: Schema.TaggedErrorClass<FunctionConfigError, "FunctionConfigError", {
918
+ readonly _tag: Schema.tag<"FunctionConfigError">;
919
+ } & {
920
+ message: typeof Schema.String;
921
+ functionPath: typeof Schema.String;
922
+ }>;
923
+ declare class FunctionConfigError extends FunctionConfigError_base {
690
924
  }
691
- interface DetectionResult {
692
- framework: FrameworkDefinition;
693
- packageManager: PackageManager;
694
- config: NormalizedConfig;
925
+
926
+ declare const ConfigModuleLoader_base: Effect.Service.Class<ConfigModuleLoader, "ConfigModuleLoader", {
927
+ readonly effect: Effect.Effect<{
928
+ loadConfigModule: (filePath: string) => Effect.Effect<Record<string, unknown>, ConfigModuleLoadError, never>;
929
+ }, never, never>;
930
+ }>;
931
+ declare class ConfigModuleLoader extends ConfigModuleLoader_base {
695
932
  }
696
933
 
697
- /**
698
- * Detects the framework used in a project by checking framework definitions
699
- * against the project's dependencies and file structure.
700
- *
701
- * Framework definitions are checked in priority order (highest first).
702
- * All detectors for a framework must match for it to be selected.
703
- *
704
- * @param projectFolder - Absolute path to the project root
705
- * @returns DetectionResult with framework, package manager, and generated config
706
- */
707
- declare const detectFramework: (projectFolder: string) => Effect.Effect<{
708
- framework: FrameworkDefinition;
709
- packageManager: PackageManager;
710
- config: NormalizedConfig;
711
- }, ManifestReadError | ManifestParseError | FrameworkNotDetectedError, FileSystem.FileSystem | Path.Path>;
712
-
713
- /**
714
- * Detects the package manager by checking for lockfiles in the project folder.
715
- * Falls back to `npm` if no lockfile is found.
716
- *
717
- * @param projectFolder - Absolute path to the project root
718
- * @returns The detected package manager
719
- */
720
- declare const detectPackageManager: (projectFolder: string) => Effect.Effect<PackageManager, never, FileSystem.FileSystem | Path.Path>;
721
-
722
- /**
723
- * All supported framework definitions, sorted by priority descending.
724
- * Higher priority frameworks are checked first during detection.
725
- */
726
- declare const FRAMEWORK_DEFINITIONS: FrameworkDefinition[];
727
-
728
- /**
729
- * Generates a NormalizedConfig from a framework definition and detected package manager.
730
- * Prepends the install command and builds a complete deployment configuration.
731
- *
732
- * @param framework - The detected framework definition
733
- * @param packageManager - The detected package manager
734
- * @returns A complete NormalizedConfig with framework defaults
735
- */
736
- declare const generateConfig: (framework: FrameworkDefinition, packageManager: PackageManager, refinedDefaults?: FrameworkDefaultConfig | undefined) => Effect.Effect<NormalizedConfig, never, never>;
737
-
738
- /**
739
- * Merges framework defaults with a user-provided config.
740
- * User config always takes precedence; framework defaults fill gaps.
741
- *
742
- * - commands: use user's if non-empty, otherwise framework's
743
- * - entrypoints: use user's if non-empty, otherwise framework's
744
- * - routes: use user's if non-empty, otherwise framework's
745
- * - assets: use user's if it declares any sources, otherwise framework's
746
- * - excludeFiles: use user's if non-empty, otherwise framework's
747
- * - regions: always use user's (always populated from parsing)
748
- * - environmentVariables: deep merge (framework base, user overrides)
749
- * - services: always use user's (frameworks don't define services)
750
- * - warnings/errors: concatenate both
751
- *
752
- * @param userConfig - The config parsed from the user's config file
753
- * @param frameworkConfig - The config generated from framework detection
754
- * @returns The merged config
755
- */
756
- declare const mergeWithFrameworkDefaults: (userConfig: NormalizedConfig, frameworkConfig: NormalizedConfig) => Effect.Effect<NormalizedConfig, never, never>;
757
-
758
- /**
759
- * Reads dependency names from the appropriate manifest file for a language.
760
- * Returns a set of all dependency names (production + dev).
761
- *
762
- * If the manifest file does not exist, returns an empty set (graceful).
763
- * If the file exists but cannot be read (`ManifestReadError`) or parsed
764
- * (`ManifestParseError`), the error propagates — this indicates a real
765
- * problem the user should know about.
766
- *
767
- * @param projectFolder - Absolute path to the project root
768
- * @param language - The framework language to determine which manifest to read
769
- * @returns A set of dependency package names
770
- */
771
- declare const readDependencies: (projectFolder: string, language: FrameworkLanguage) => Effect.Effect<Set<string>, ManifestReadError | ManifestParseError, FileSystem.FileSystem | Path.Path>;
772
-
773
- declare const ConfigFileNotFoundError_base: Schema.TaggedErrorClass<ConfigFileNotFoundError, "ConfigFileNotFoundError", {
774
- readonly _tag: Schema.tag<"ConfigFileNotFoundError">;
775
- } & {
776
- message: typeof Schema.String;
777
- filePath: typeof Schema.String;
778
- }>;
779
- declare class ConfigFileNotFoundError extends ConfigFileNotFoundError_base {
780
- }
781
- declare const ConfigFileEmptyError_base: Schema.TaggedErrorClass<ConfigFileEmptyError, "ConfigFileEmptyError", {
782
- readonly _tag: Schema.tag<"ConfigFileEmptyError">;
783
- } & {
784
- message: typeof Schema.String;
785
- filePath: typeof Schema.String;
786
- }>;
787
- declare class ConfigFileEmptyError extends ConfigFileEmptyError_base {
788
- }
789
- declare const ConfigFileParseError_base: Schema.TaggedErrorClass<ConfigFileParseError, "ConfigFileParseError", {
790
- readonly _tag: Schema.tag<"ConfigFileParseError">;
791
- } & {
792
- message: typeof Schema.String;
793
- filePath: typeof Schema.String;
794
- cause: Schema.optional<typeof Schema.String>;
795
- }>;
796
- declare class ConfigFileParseError extends ConfigFileParseError_base {
797
- }
798
- declare const ConfigVersionError_base: Schema.TaggedErrorClass<ConfigVersionError, "ConfigVersionError", {
799
- readonly _tag: Schema.tag<"ConfigVersionError">;
800
- } & {
801
- message: typeof Schema.String;
802
- filePath: typeof Schema.String;
803
- version: Schema.optional<typeof Schema.Number>;
804
- }>;
805
- declare class ConfigVersionError extends ConfigVersionError_base {
806
- }
807
- declare const ConfigSchemaValidationError_base: Schema.TaggedErrorClass<ConfigSchemaValidationError, "ConfigSchemaValidationError", {
808
- readonly _tag: Schema.tag<"ConfigSchemaValidationError">;
809
- } & {
810
- message: typeof Schema.String;
811
- filePath: typeof Schema.String;
812
- validationErrors: Schema.Array$<typeof Schema.String>;
813
- }>;
814
- declare class ConfigSchemaValidationError extends ConfigSchemaValidationError_base {
815
- }
816
- declare const FunctionConfigError_base: Schema.TaggedErrorClass<FunctionConfigError, "FunctionConfigError", {
817
- readonly _tag: Schema.tag<"FunctionConfigError">;
818
- } & {
819
- message: typeof Schema.String;
820
- functionPath: typeof Schema.String;
821
- }>;
822
- declare class FunctionConfigError extends FunctionConfigError_base {
823
- }
824
-
825
- /**
826
- * Ensure a normalized config has no function files that are also defined as assets.
827
- * For example, a file `public/index.php` should not be defined as an asset, when it is a function and `public` is an asset folder.
828
- * @param config The normalized config to filter.
829
- * @returns A promise that resolves to the filtered config.
830
- */
831
- declare const filterFunctionsFromAssets: (config: NormalizedConfig) => NormalizedConfig;
832
-
833
- declare const ALLOWED_CONFIG_NAMES: readonly ["gigadrive.yaml", "gigadrive.yml", "nebula.yaml", "nebula.yml", "nebula.json"];
934
+ declare const ALLOWED_CONFIG_NAMES: readonly ["gigadrive.ts", "gigadrive.mts", "gigadrive.cts", "gigadrive.js", "gigadrive.mjs", "gigadrive.cjs", "gigadrive.yaml", "gigadrive.yml", "gigadrive.json", "nebula.yaml", "nebula.yml", "nebula.json"];
834
935
  declare const RawConfigReader_base: Effect.Service.Class<RawConfigReader, "RawConfigReader", {
936
+ readonly dependencies: readonly [effect_Layer.Layer<ConfigModuleLoader, never, never>];
835
937
  readonly effect: Effect.Effect<{
836
938
  findConfig: (projectFolder: string) => Effect.Effect<string | null, never, never>;
837
939
  readRawConfig: (filePath: string, options?: {
838
940
  disableVersionCheck?: boolean;
839
- } | undefined) => Effect.Effect<Record<string, unknown>, ConfigFileNotFoundError | ConfigFileEmptyError | ConfigFileParseError | ConfigVersionError, never>;
840
- readConfigFile: <T>(configFilePath: string) => Effect.Effect<T | null, ConfigFileEmptyError | ConfigFileParseError | ConfigVersionError, never>;
841
- }, never, FileSystem.FileSystem | Path.Path>;
941
+ } | undefined) => Effect.Effect<Record<string, unknown>, ConfigFileNotFoundError | ConfigFileEmptyError | ConfigFileParseError | ConfigModuleLoadError | ConfigVersionError, never>;
942
+ readConfigFile: <T>(configFilePath: string) => Effect.Effect<T | null, ConfigFileEmptyError | ConfigFileParseError | ConfigModuleLoadError | ConfigVersionError, never>;
943
+ }, never, ConfigModuleLoader | Path.Path | FileSystem.FileSystem>;
842
944
  }>;
843
945
  declare class RawConfigReader extends RawConfigReader_base {
844
946
  }
@@ -851,6 +953,103 @@ declare const SchemaValidator_base: Effect.Service.Class<SchemaValidator, "Schem
851
953
  declare class SchemaValidator extends SchemaValidator_base {
852
954
  }
853
955
 
956
+ /**
957
+ * Resolves merged function settings for a given path by iterating all function
958
+ * patterns in the config. Later patterns override earlier ones.
959
+ *
960
+ * @returns The merged settings, or undefined when no pattern matches the path.
961
+ */
962
+ declare const getFunctionSettings: (path: string, config: ConfigV4) => ConfigV4FunctionSettings | undefined;
963
+ declare const V4ConfigParser_base: Effect.Service.Class<V4ConfigParser, "V4ConfigParser", {
964
+ readonly accessors: true;
965
+ readonly effect: Effect.Effect<{
966
+ /**
967
+ * Parses a ConfigV4 into a NormalizedConfig.
968
+ *
969
+ * @param config - The raw V4 config object
970
+ * @param projectFolder - Absolute path to the project root
971
+ */
972
+ parse: (config: ConfigV4, projectFolder: string) => Effect.Effect<{
973
+ regions: ("us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "ap-south-1" | "ap-northeast-3" | "ap-northeast-2" | "ap-southeast-1" | "ap-southeast-2" | "ap-northeast-1" | "ca-central-1" | "eu-central-1" | "eu-west-1" | "eu-west-2" | "eu-west-3" | "eu-north-1" | "sa-east-1")[];
974
+ assets: {
975
+ paths: string[];
976
+ prefixToStrip: string;
977
+ dynamicRoutes: boolean;
978
+ populateCache: boolean;
979
+ };
980
+ environmentVariables: Record<string, string>;
981
+ commands: string[];
982
+ images: NormalizedImagePolicy | undefined;
983
+ services: NormalizedConfigServiceDefinition[] | undefined;
984
+ entrypoints: NormalizedConfigEntrypoint[];
985
+ errors: never[];
986
+ warnings: never[];
987
+ routes: NormalizedConfigRoute[];
988
+ }, FunctionConfigError, Path.Path | FileSystem.FileSystem>;
989
+ }, never, never>;
990
+ }>;
991
+ declare class V4ConfigParser extends V4ConfigParser_base {
992
+ }
993
+
994
+ declare const VercelBuildOutputParser_base: Effect.Service.Class<VercelBuildOutputParser, "VercelBuildOutputParser", {
995
+ readonly effect: Effect.Effect<{
996
+ parse: (parseResult: NormalizedConfig, projectFolder: string) => Effect.Effect<NormalizedConfig, ConfigFileEmptyError | ConfigFileParseError | ConfigModuleLoadError | ConfigVersionError, Path.Path | _effect_platform_FileSystem.FileSystem>;
997
+ }, never, RawConfigReader | Path.Path>;
998
+ }>;
999
+ declare class VercelBuildOutputParser extends VercelBuildOutputParser_base {
1000
+ }
1001
+
1002
+ interface Config {
1003
+ version: number;
1004
+ env?: Record<string, string>;
1005
+ }
1006
+ /**
1007
+ * Parses a config file at the given path and validates it against the appropriate
1008
+ * JSON Schema, returning a NormalizedConfig **without** post-processing.
1009
+ *
1010
+ * Use {@link parseConfig} when you also want Vercel BOv3 merging, empty-deployment
1011
+ * checks, and function/asset deduplication applied automatically.
1012
+ *
1013
+ * @param filePath - Absolute path to the config file
1014
+ * @param projectFolder - Absolute path to the project root
1015
+ */
1016
+ declare const parseConfigRaw: (filePath: string, projectFolder: string) => Effect.Effect<{
1017
+ regions: ("us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "ap-south-1" | "ap-northeast-3" | "ap-northeast-2" | "ap-southeast-1" | "ap-southeast-2" | "ap-northeast-1" | "ca-central-1" | "eu-central-1" | "eu-west-1" | "eu-west-2" | "eu-west-3" | "eu-north-1" | "sa-east-1")[];
1018
+ assets: {
1019
+ paths: string[];
1020
+ prefixToStrip: string;
1021
+ dynamicRoutes: boolean;
1022
+ populateCache: boolean;
1023
+ };
1024
+ environmentVariables: Record<string, string>;
1025
+ commands: string[];
1026
+ images: NormalizedImagePolicy | undefined;
1027
+ services: NormalizedConfigServiceDefinition[] | undefined;
1028
+ entrypoints: NormalizedConfigEntrypoint[];
1029
+ errors: never[];
1030
+ warnings: never[];
1031
+ routes: NormalizedConfigRoute[];
1032
+ }, ConfigFileNotFoundError | ConfigFileEmptyError | ConfigFileParseError | ConfigModuleLoadError | ConfigVersionError | ConfigSchemaValidationError | FunctionConfigError, RawConfigReader | _effect_platform_Path.Path | _effect_platform_FileSystem.FileSystem | SchemaValidator | V4ConfigParser>;
1033
+ /**
1034
+ * Parses a config file at the given path, validates it against the appropriate
1035
+ * JSON Schema, converts it to a NormalizedConfig, and applies post-processing.
1036
+ *
1037
+ * @param filePath - Absolute path to the config file
1038
+ * @param projectFolder - Absolute path to the project root
1039
+ */
1040
+ declare const parseConfig: (filePath: string, projectFolder: string) => Effect.Effect<NormalizedConfig, ConfigFileNotFoundError | ConfigFileEmptyError | ConfigFileParseError | ConfigModuleLoadError | ConfigVersionError | ConfigSchemaValidationError | FunctionConfigError, RawConfigReader | _effect_platform_Path.Path | _effect_platform_FileSystem.FileSystem | SchemaValidator | V4ConfigParser | VercelBuildOutputParser>;
1041
+ /**
1042
+ * Applies post-processing transformers to a NormalizedConfig:
1043
+ * - Vercel Build Output v3 (merges functions/routes from .vercel/output if present)
1044
+ * - Empty deployment validation
1045
+ * - Filter functions from assets
1046
+ *
1047
+ * @param config - The parsed NormalizedConfig
1048
+ * @param projectFolder - Absolute path to the project root
1049
+ * @returns The post-processed NormalizedConfig
1050
+ */
1051
+ declare const postProcessConfig: (config: NormalizedConfig, projectFolder: string) => Effect.Effect<NormalizedConfig, ConfigFileEmptyError | ConfigFileParseError | ConfigModuleLoadError | ConfigVersionError, _effect_platform_Path.Path | _effect_platform_FileSystem.FileSystem | VercelBuildOutputParser>;
1052
+
854
1053
  interface ConfigV4 extends Config {
855
1054
  version: 4;
856
1055
  /**
@@ -1054,102 +1253,231 @@ interface ConfigV4FunctionSettings {
1054
1253
  }
1055
1254
 
1056
1255
  /**
1057
- * Resolves merged function settings for a given path by iterating all function
1058
- * patterns in the config. Later patterns override earlier ones.
1256
+ * Identity helper providing type inference and checking for `gigadrive.ts`
1257
+ * config files. Using it is optional — a plain object default export works the
1258
+ * same, but `defineConfig` gives editor autocompletion without a type
1259
+ * annotation. Requires `@gigadrive/network-config` to be installed in the
1260
+ * project (e.g. as a devDependency).
1059
1261
  *
1060
- * @returns The merged settings, or undefined when no pattern matches the path.
1262
+ * Prefer importing from the `@gigadrive/network-config/define-config` subpath:
1263
+ * it is dependency-free, whereas the package root eagerly imports peer
1264
+ * dependencies (`effect`, `@effect/platform`) that package managers which do
1265
+ * not auto-install peers (e.g. Yarn) will not have installed.
1266
+ *
1267
+ * Note that a `gigadrive.ts` config is executed as code when the config is
1268
+ * read — the same trust model as `build_commands`.
1269
+ *
1270
+ * @param config - The deployment configuration
1271
+ * @returns The configuration, unchanged
1272
+ * @example
1273
+ * ```ts
1274
+ * // gigadrive.ts
1275
+ * import { defineConfig } from '@gigadrive/network-config/define-config';
1276
+ *
1277
+ * export default defineConfig({
1278
+ * version: 4,
1279
+ * regions: ['eu-central-1'],
1280
+ * });
1281
+ * ```
1061
1282
  */
1062
- declare const getFunctionSettings: (path: string, config: ConfigV4) => ConfigV4FunctionSettings | undefined;
1063
- declare const V4ConfigParser_base: Effect.Service.Class<V4ConfigParser, "V4ConfigParser", {
1064
- readonly accessors: true;
1065
- readonly effect: Effect.Effect<{
1066
- /**
1067
- * Parses a ConfigV4 into a NormalizedConfig.
1068
- *
1069
- * @param config - The raw V4 config object
1070
- * @param projectFolder - Absolute path to the project root
1071
- */
1072
- parse: (config: ConfigV4, projectFolder: string) => Effect.Effect<{
1073
- regions: ("us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "ap-south-1" | "ap-northeast-3" | "ap-northeast-2" | "ap-southeast-1" | "ap-southeast-2" | "ap-northeast-1" | "ca-central-1" | "eu-central-1" | "eu-west-1" | "eu-west-2" | "eu-west-3" | "eu-north-1" | "sa-east-1")[];
1074
- assets: {
1075
- paths: string[];
1076
- prefixToStrip: string;
1077
- dynamicRoutes: boolean;
1078
- populateCache: boolean;
1079
- };
1080
- environmentVariables: Record<string, string>;
1081
- commands: string[];
1082
- images: NormalizedImagePolicy | undefined;
1083
- services: NormalizedConfigServiceDefinition[] | undefined;
1084
- entrypoints: NormalizedConfigEntrypoint[];
1085
- errors: never[];
1086
- warnings: never[];
1087
- routes: NormalizedConfigRoute[];
1088
- }, FunctionConfigError, FileSystem.FileSystem | Path.Path>;
1089
- }, never, never>;
1283
+ declare const defineConfig: (config: ConfigV4) => ConfigV4;
1284
+
1285
+ declare const ManifestNotFoundError_base: Schema.TaggedErrorClass<ManifestNotFoundError, "ManifestNotFoundError", {
1286
+ readonly _tag: Schema.tag<"ManifestNotFoundError">;
1287
+ } & {
1288
+ message: typeof Schema.String;
1289
+ filePath: typeof Schema.String;
1090
1290
  }>;
1091
- declare class V4ConfigParser extends V4ConfigParser_base {
1291
+ declare class ManifestNotFoundError extends ManifestNotFoundError_base {
1092
1292
  }
1093
-
1094
- declare const VercelBuildOutputParser_base: Effect.Service.Class<VercelBuildOutputParser, "VercelBuildOutputParser", {
1095
- readonly effect: Effect.Effect<{
1096
- parse: (parseResult: NormalizedConfig, projectFolder: string) => Effect.Effect<NormalizedConfig, ConfigFileEmptyError | ConfigFileParseError | ConfigVersionError, _effect_platform_FileSystem.FileSystem | Path.Path>;
1097
- }, never, Path.Path | RawConfigReader>;
1293
+ declare const ManifestReadError_base: Schema.TaggedErrorClass<ManifestReadError, "ManifestReadError", {
1294
+ readonly _tag: Schema.tag<"ManifestReadError">;
1295
+ } & {
1296
+ message: typeof Schema.String;
1297
+ filePath: typeof Schema.String;
1098
1298
  }>;
1099
- declare class VercelBuildOutputParser extends VercelBuildOutputParser_base {
1299
+ declare class ManifestReadError extends ManifestReadError_base {
1100
1300
  }
1101
-
1102
- interface Config {
1103
- version: number;
1104
- env?: Record<string, string>;
1301
+ declare const ManifestParseError_base: Schema.TaggedErrorClass<ManifestParseError, "ManifestParseError", {
1302
+ readonly _tag: Schema.tag<"ManifestParseError">;
1303
+ } & {
1304
+ message: typeof Schema.String;
1305
+ filePath: typeof Schema.String;
1306
+ }>;
1307
+ declare class ManifestParseError extends ManifestParseError_base {
1308
+ }
1309
+ declare const FrameworkNotDetectedError_base: Schema.TaggedErrorClass<FrameworkNotDetectedError, "FrameworkNotDetectedError", {
1310
+ readonly _tag: Schema.tag<"FrameworkNotDetectedError">;
1311
+ } & {
1312
+ message: typeof Schema.String;
1313
+ directory: typeof Schema.String;
1314
+ }>;
1315
+ declare class FrameworkNotDetectedError extends FrameworkNotDetectedError_base {
1316
+ }
1317
+ interface FrameworkDetectionItem {
1318
+ /** Check manifest dependencies for this package (routed by framework language) */
1319
+ matchPackage?: string;
1320
+ /** Check if this file exists (relative to project root) */
1321
+ path?: string;
1322
+ /** If path is set, also check file content matches this regex */
1323
+ matchContent?: string;
1324
+ }
1325
+ type FrameworkLanguage = 'node' | 'php';
1326
+ type PackageManager = 'npm' | 'yarn' | 'pnpm' | 'bun' | 'composer';
1327
+ interface FrameworkDefinition {
1328
+ slug: string;
1329
+ name: string;
1330
+ language: FrameworkLanguage;
1331
+ /** ALL items must match for the framework to be detected */
1332
+ detectors: FrameworkDetectionItem[];
1333
+ /** Higher = higher priority (specific frameworks beat generic ones) */
1334
+ priority: number;
1335
+ /** Generates deployment defaults for this framework */
1336
+ getDefaultConfig: (packageManager: PackageManager) => FrameworkDefaultConfig;
1337
+ /** Refines defaults with project files after a framework match, e.g. framework CLI config. */
1338
+ refineDefaultConfig?: (defaults: FrameworkDefaultConfig, projectFolder: string) => Effect.Effect<FrameworkDefaultConfig, never, FileSystem.FileSystem | Path.Path>;
1339
+ }
1340
+ interface FrameworkDefaultConfig {
1341
+ runtime: Runtime;
1342
+ memory: number;
1343
+ maxDuration: number;
1344
+ streaming: boolean;
1345
+ /** Overrides the auto-generated install command (e.g. for custom composer flags) */
1346
+ installCommand?: string;
1347
+ /** Build commands (install command is auto-prepended by generateConfig) */
1348
+ commands: string[];
1349
+ entrypoint?: string;
1350
+ assetsDir?: string;
1351
+ assetsPrefixToStrip?: string;
1352
+ /** Explicit project-relative files to publish as static assets. */
1353
+ assetPaths?: string[];
1354
+ /** Public path overrides keyed by project-relative asset path. */
1355
+ assetOverrides?: Record<string, {
1356
+ path?: string;
1357
+ contentType?: string;
1358
+ }>;
1359
+ /** Directory subtrees to publish under a URL prefix without per-file enumeration. */
1360
+ assetPrefixes?: Array<{
1361
+ source: string;
1362
+ destination: string;
1363
+ immutable?: boolean;
1364
+ populateCache?: boolean;
1365
+ contentType?: string;
1366
+ }>;
1367
+ /** Project-relative manifests containing logical static asset entries. */
1368
+ assetManifests?: Array<{
1369
+ source: string;
1370
+ }>;
1371
+ populateAssetCache?: boolean;
1372
+ routes: Array<{
1373
+ source: string;
1374
+ destination: string;
1375
+ }>;
1376
+ environmentVariables: Record<string, string>;
1377
+ symlinks?: Record<string, string>;
1378
+ excludeFiles?: string[];
1379
+ package?: {
1380
+ trace?: boolean;
1381
+ includeProjectFiles?: boolean;
1382
+ preserveSymlinks?: boolean;
1383
+ rootOverwrite?: string;
1384
+ filePathMap?: Record<string, string>;
1385
+ includeFiles?: string[];
1386
+ excludeFiles?: string[];
1387
+ };
1388
+ /** Advanced framework output that replaces the one-entrypoint defaults. */
1389
+ normalizedConfig?: Partial<NormalizedConfig>;
1105
1390
  }
1391
+ interface DetectionResult {
1392
+ framework: FrameworkDefinition;
1393
+ packageManager: PackageManager;
1394
+ config: NormalizedConfig;
1395
+ }
1396
+
1106
1397
  /**
1107
- * Parses a config file at the given path and validates it against the appropriate
1108
- * JSON Schema, returning a NormalizedConfig **without** post-processing.
1398
+ * Detects the framework used in a project by checking framework definitions
1399
+ * against the project's dependencies and file structure.
1109
1400
  *
1110
- * Use {@link parseConfig} when you also want Vercel BOv3 merging, empty-deployment
1111
- * checks, and function/asset deduplication applied automatically.
1401
+ * Framework definitions are checked in priority order (highest first).
1402
+ * All detectors for a framework must match for it to be selected.
1112
1403
  *
1113
- * @param filePath - Absolute path to the config file
1114
1404
  * @param projectFolder - Absolute path to the project root
1405
+ * @returns DetectionResult with framework, package manager, and generated config
1115
1406
  */
1116
- declare const parseConfigRaw: (filePath: string, projectFolder: string) => Effect.Effect<{
1117
- regions: ("us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "ap-south-1" | "ap-northeast-3" | "ap-northeast-2" | "ap-southeast-1" | "ap-southeast-2" | "ap-northeast-1" | "ca-central-1" | "eu-central-1" | "eu-west-1" | "eu-west-2" | "eu-west-3" | "eu-north-1" | "sa-east-1")[];
1118
- assets: {
1119
- paths: string[];
1120
- prefixToStrip: string;
1121
- dynamicRoutes: boolean;
1122
- populateCache: boolean;
1123
- };
1124
- environmentVariables: Record<string, string>;
1125
- commands: string[];
1126
- images: NormalizedImagePolicy | undefined;
1127
- services: NormalizedConfigServiceDefinition[] | undefined;
1128
- entrypoints: NormalizedConfigEntrypoint[];
1129
- errors: never[];
1130
- warnings: never[];
1131
- routes: NormalizedConfigRoute[];
1132
- }, ConfigFileNotFoundError | ConfigFileEmptyError | ConfigFileParseError | ConfigVersionError | ConfigSchemaValidationError | FunctionConfigError, _effect_platform_FileSystem.FileSystem | _effect_platform_Path.Path | RawConfigReader | SchemaValidator | V4ConfigParser>;
1407
+ declare const detectFramework: (projectFolder: string) => Effect.Effect<{
1408
+ framework: FrameworkDefinition;
1409
+ packageManager: PackageManager;
1410
+ config: NormalizedConfig;
1411
+ }, ManifestReadError | ManifestParseError | FrameworkNotDetectedError, Path.Path | FileSystem.FileSystem>;
1412
+
1133
1413
  /**
1134
- * Parses a config file at the given path, validates it against the appropriate
1135
- * JSON Schema, converts it to a NormalizedConfig, and applies post-processing.
1414
+ * Detects the package manager by checking for lockfiles in the project folder.
1415
+ * Falls back to `npm` if no lockfile is found.
1136
1416
  *
1137
- * @param filePath - Absolute path to the config file
1138
1417
  * @param projectFolder - Absolute path to the project root
1418
+ * @returns The detected package manager
1139
1419
  */
1140
- declare const parseConfig: (filePath: string, projectFolder: string) => Effect.Effect<NormalizedConfig, ConfigFileNotFoundError | ConfigFileEmptyError | ConfigFileParseError | ConfigVersionError | ConfigSchemaValidationError | FunctionConfigError, _effect_platform_FileSystem.FileSystem | _effect_platform_Path.Path | RawConfigReader | SchemaValidator | V4ConfigParser | VercelBuildOutputParser>;
1420
+ declare const detectPackageManager: (projectFolder: string) => Effect.Effect<PackageManager, never, Path.Path | FileSystem.FileSystem>;
1421
+
1141
1422
  /**
1142
- * Applies post-processing transformers to a NormalizedConfig:
1143
- * - Vercel Build Output v3 (merges functions/routes from .vercel/output if present)
1144
- * - Empty deployment validation
1145
- * - Filter functions from assets
1423
+ * All supported framework definitions, sorted by priority descending.
1424
+ * Higher priority frameworks are checked first during detection.
1425
+ */
1426
+ declare const FRAMEWORK_DEFINITIONS: FrameworkDefinition[];
1427
+
1428
+ /**
1429
+ * Generates a NormalizedConfig from a framework definition and detected package manager.
1430
+ * Prepends the install command and builds a complete deployment configuration.
1431
+ *
1432
+ * @param framework - The detected framework definition
1433
+ * @param packageManager - The detected package manager
1434
+ * @returns A complete NormalizedConfig with framework defaults
1435
+ */
1436
+ declare const generateConfig: (framework: FrameworkDefinition, packageManager: PackageManager, refinedDefaults?: FrameworkDefaultConfig | undefined) => Effect.Effect<NormalizedConfig, never, never>;
1437
+
1438
+ /**
1439
+ * Merges framework defaults with a user-provided config.
1440
+ * User config always takes precedence; framework defaults fill gaps.
1441
+ *
1442
+ * - commands: use user's if non-empty, otherwise framework's
1443
+ * - entrypoints: use user's if non-empty, otherwise framework's
1444
+ * - routes: use user's if non-empty, otherwise framework's
1445
+ * - assets: use user's if it declares any sources, otherwise framework's
1446
+ * - excludeFiles: use user's if non-empty, otherwise framework's
1447
+ * - regions: always use user's (always populated from parsing)
1448
+ * - environmentVariables: deep merge (framework base, user overrides)
1449
+ * - services: always use user's (frameworks don't define services)
1450
+ * - warnings/errors: concatenate both
1451
+ *
1452
+ * @param userConfig - The config parsed from the user's config file
1453
+ * @param frameworkConfig - The config generated from framework detection
1454
+ * @returns The merged config
1455
+ */
1456
+ declare const mergeWithFrameworkDefaults: (userConfig: NormalizedConfig, frameworkConfig: NormalizedConfig) => Effect.Effect<NormalizedConfig, never, never>;
1457
+
1458
+ /**
1459
+ * Reads dependency names from the appropriate manifest file for a language.
1460
+ * Returns a set of all dependency names (production + dev).
1461
+ *
1462
+ * If the manifest file does not exist, returns an empty set (graceful).
1463
+ * If the file exists but cannot be read (`ManifestReadError`) or parsed
1464
+ * (`ManifestParseError`), the error propagates — this indicates a real
1465
+ * problem the user should know about.
1146
1466
  *
1147
- * @param config - The parsed NormalizedConfig
1148
1467
  * @param projectFolder - Absolute path to the project root
1149
- * @returns The post-processed NormalizedConfig
1468
+ * @param language - The framework language to determine which manifest to read
1469
+ * @returns A set of dependency package names
1470
+ */
1471
+ declare const readDependencies: (projectFolder: string, language: FrameworkLanguage) => Effect.Effect<Set<string>, ManifestReadError | ManifestParseError, Path.Path | FileSystem.FileSystem>;
1472
+
1473
+ /**
1474
+ * Ensure a normalized config has no function files that are also defined as assets.
1475
+ * For example, a file `public/index.php` should not be defined as an asset, when it is a function and `public` is an asset folder.
1476
+ * @param config The normalized config to filter.
1477
+ * @returns A promise that resolves to the filtered config.
1150
1478
  */
1151
- declare const postProcessConfig: (config: NormalizedConfig, projectFolder: string) => Effect.Effect<NormalizedConfig, ConfigFileEmptyError | ConfigFileParseError | ConfigVersionError, _effect_platform_FileSystem.FileSystem | _effect_platform_Path.Path | VercelBuildOutputParser>;
1479
+ declare const filterFunctionsFromAssets: (config: NormalizedConfig) => NormalizedConfig;
1152
1480
 
1153
- declare const NetworkConfigLive: Layer.Layer<RawConfigReader | SchemaValidator | V4ConfigParser | VercelBuildOutputParser, never, _effect_platform_FileSystem.FileSystem | _effect_platform_Path.Path>;
1481
+ declare const NetworkConfigLive: Layer.Layer<ConfigModuleLoader | RawConfigReader | SchemaValidator | V4ConfigParser | VercelBuildOutputParser, never, _effect_platform_Path.Path | _effect_platform_FileSystem.FileSystem>;
1154
1482
 
1155
- export { ALLOWED_CONFIG_NAMES, AVAILABLE_REGIONS, AVAILABLE_RUNTIMES, type Config, ConfigFileEmptyError, ConfigFileNotFoundError, ConfigFileParseError, ConfigSchemaValidationError, type ConfigV4, type ConfigV4FunctionSettings, type ConfigV4Service, type ConfigV4ServicePostgres, type ConfigV4ServiceRedis, type ConfigV4ServiceStorage, type ConfigV4Services, type ConfigV4StorageBucket, ConfigVersionError, DEFAULT_FUNCTION_DURATION_SECONDS, type DetectionResult, FRAMEWORK_DEFINITIONS, type FilePathMap, type FrameworkDefaultConfig, type FrameworkDefinition, type FrameworkDetectionItem, type FrameworkLanguage, FrameworkNotDetectedError, FunctionConfigError, type GigadriveNextBuildManifest, GigadriveNextBuildManifestSchema, type GigadriveNextBuildManifestV1, GigadriveNextBuildManifestV1Schema, type GigadriveNextBuildManifestV2, type GigadriveNextBuildManifestV2Export, GigadriveNextBuildManifestV2ExportSchema, type GigadriveNextBuildManifestV2Standalone, GigadriveNextBuildManifestV2StandaloneSchema, type GigadriveNextPrerenderManifestV1, GigadriveNextPrerenderManifestV1Schema, type GigadriveNextPrerenderOutput, GigadriveNextPrerenderOutputSchema, type GigadriveNextServerDescriptor, GigadriveNextServerDescriptorSchema, type GigadriveNextStaticAssetPrefix, GigadriveNextStaticAssetPrefixSchema, type JsonValue, MAX_FUNCTION_DURATION_SECONDS, ManifestNotFoundError, ManifestParseError, ManifestReadError, type NeonAWSRegion, NetworkConfigLive, type NormalizedConfig, type NormalizedConfigEntrypoint, type NormalizedConfigRoute, type NormalizedConfigRouteHandler, type NormalizedConfigRouteMatchRequirements, type NormalizedConfigRouteMethod, type NormalizedConfigService, type NormalizedConfigServiceDefinition, type NormalizedConfigServicePostgres, type NormalizedConfigServiceRedis, type NormalizedConfigServiceStorage, type NormalizedConfigServiceType, type NormalizedConfigStorageBucket, type NormalizedFramework, type NormalizedImageFit, type NormalizedImageFormat, type NormalizedImageLocalPattern, type NormalizedImagePolicy, type NormalizedImageRemotePattern, type NormalizedImageVariant, type NormalizedNextjsFramework, type NormalizedSharedArtifact, type PackageManager, RawConfigReader, type Region, type Runtime, SchemaValidator, type StaticAssetHeaders, StaticAssetHeadersSchema, type StaticAssetManifest, type StaticAssetManifestEntry, StaticAssetManifestEntrySchema, type StaticAssetManifestV1, StaticAssetManifestV1Schema, type UpstashAWSRegion, V4ConfigParser, VercelBuildOutputParser, detectFramework, detectPackageManager, filterFunctionsFromAssets, generateConfig, getFunctionSettings, mergeWithFrameworkDefaults, parseConfig, parseConfigRaw, parseGigadriveNextBuildManifest, parseGigadriveNextPrerenderManifest, parseStaticAssetManifest, postProcessConfig, readDependencies };
1483
+ export { ALLOWED_CONFIG_NAMES, AVAILABLE_REGIONS, AVAILABLE_RUNTIMES, type Config, ConfigFileEmptyError, ConfigFileNotFoundError, ConfigFileParseError, ConfigModuleLoadError, ConfigModuleLoader, ConfigSchemaValidationError, type ConfigV4, type ConfigV4FunctionSettings, type ConfigV4Service, type ConfigV4ServicePostgres, type ConfigV4ServiceRedis, type ConfigV4ServiceStorage, type ConfigV4Services, type ConfigV4StorageBucket, ConfigVersionError, DEFAULT_FUNCTION_DURATION_SECONDS, type DetectionResult, FRAMEWORK_DEFINITIONS, type FilePathMap, type FrameworkDefaultConfig, type FrameworkDefinition, type FrameworkDetectionItem, type FrameworkLanguage, FrameworkNotDetectedError, FunctionConfigError, type GigadriveNextBuildManifest, GigadriveNextBuildManifestSchema, type GigadriveNextBuildManifestV1, GigadriveNextBuildManifestV1Schema, type GigadriveNextBuildManifestV2, type GigadriveNextBuildManifestV2Export, GigadriveNextBuildManifestV2ExportSchema, type GigadriveNextBuildManifestV2Standalone, GigadriveNextBuildManifestV2StandaloneSchema, type GigadriveNextMiddlewareDescriptor, GigadriveNextMiddlewareDescriptorSchema, type GigadriveNextMiddlewareMatcher, GigadriveNextMiddlewareMatcherSchema, type GigadriveNextPrerenderManifestV1, GigadriveNextPrerenderManifestV1Schema, type GigadriveNextPrerenderOutput, GigadriveNextPrerenderOutputSchema, type GigadriveNextPrerenderSeedMethods, GigadriveNextPrerenderSeedMethodsSchema, type GigadriveNextRouteCondition, GigadriveNextRouteConditionSchema, type GigadriveNextServerDescriptor, GigadriveNextServerDescriptorSchema, type GigadriveNextStaticAssetPrefix, GigadriveNextStaticAssetPrefixSchema, type JsonValue, MAX_FUNCTION_DURATION_SECONDS, ManifestNotFoundError, ManifestParseError, ManifestReadError, type NeonAWSRegion, NetworkConfigLive, type NormalizedConfig, type NormalizedConfigEntrypoint, type NormalizedConfigRoute, type NormalizedConfigRouteHandler, type NormalizedConfigRouteMatchRequirements, type NormalizedConfigRouteMethod, type NormalizedConfigService, type NormalizedConfigServiceDefinition, type NormalizedConfigServicePostgres, type NormalizedConfigServiceRedis, type NormalizedConfigServiceStorage, type NormalizedConfigServiceType, type NormalizedConfigStorageBucket, type NormalizedFramework, type NormalizedImageFit, type NormalizedImageFormat, type NormalizedImageLocalPattern, type NormalizedImagePolicy, type NormalizedImageRemotePattern, type NormalizedImageVariant, type NormalizedNextjsFramework, type NormalizedSharedArtifact, type PackageManager, RawConfigReader, type Region, type Runtime, SchemaValidator, type StaticAssetHeaders, StaticAssetHeadersSchema, type StaticAssetManifest, type StaticAssetManifestEntry, StaticAssetManifestEntrySchema, type StaticAssetManifestV1, StaticAssetManifestV1Schema, type UpstashAWSRegion, V4ConfigParser, VercelBuildOutputParser, defineConfig, detectFramework, detectPackageManager, filterFunctionsFromAssets, generateConfig, getFunctionSettings, mergeWithFrameworkDefaults, parseConfig, parseConfigRaw, parseGigadriveNextBuildManifest, parseGigadriveNextPrerenderManifest, parseStaticAssetManifest, postProcessConfig, readDependencies };