@gigadrive/network-config 4.4.0 → 4.5.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.mts +295 -107
- package/dist/index.d.ts +295 -107
- package/dist/index.js +418 -196
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +302 -93
- package/dist/index.mjs.map +1 -1
- package/dist/nextjs-adapter.js +188 -9
- package/dist/nextjs-adapter.js.map +1 -1
- package/dist/nextjs-adapter.mjs +189 -10
- package/dist/nextjs-adapter.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,60 @@
|
|
|
1
|
+
// src/asset-manifest.ts
|
|
2
|
+
import { Schema as Schema2 } from "effect";
|
|
3
|
+
|
|
4
|
+
// src/manifest-schema.ts
|
|
5
|
+
import { Option, Schema } from "effect";
|
|
6
|
+
var HTTP_HEADER_NAME = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
|
|
7
|
+
var HTTP_HEADER_VALUE = /^[\t\x20-\x7e\x80-\xff]*$/;
|
|
8
|
+
var URL_PATHNAME_FORBIDDEN_CHARACTER = /[\x00-\x1f\x7f?#\\]/;
|
|
9
|
+
var isUrlDotSegment = (segment) => {
|
|
10
|
+
const decodedDots = segment.replace(/%2e/gi, ".");
|
|
11
|
+
return decodedDots === "." || decodedDots === "..";
|
|
12
|
+
};
|
|
13
|
+
var isPortableRelativePath = (value, allowCurrentDirectory = false) => {
|
|
14
|
+
const normalized = value.replaceAll("\\", "/").replace(/^\.\//, "").replace(/\/+$/, "");
|
|
15
|
+
return (allowCurrentDirectory || normalized !== "" && normalized !== ".") && !normalized.startsWith("/") && !/^[A-Za-z]:/.test(normalized) && !normalized.includes(":") && !normalized.split("/").includes("..");
|
|
16
|
+
};
|
|
17
|
+
var PortableRelativePathSchema = Schema.String.pipe(Schema.filter((value) => isPortableRelativePath(value)));
|
|
18
|
+
var RepositoryRelativePathSchema = Schema.String.pipe(
|
|
19
|
+
Schema.filter((value) => isPortableRelativePath(value, true))
|
|
20
|
+
);
|
|
21
|
+
var UrlPathnameSchema = Schema.String.pipe(
|
|
22
|
+
Schema.filter(
|
|
23
|
+
(value) => value.startsWith("/") && !URL_PATHNAME_FORBIDDEN_CHARACTER.test(value) && !value.split("/").some(isUrlDotSegment)
|
|
24
|
+
)
|
|
25
|
+
);
|
|
26
|
+
var HttpHeaderValueSchema = Schema.String.pipe(Schema.pattern(HTTP_HEADER_VALUE));
|
|
27
|
+
var HttpHeadersSchema = Schema.mutable(
|
|
28
|
+
Schema.Record({
|
|
29
|
+
key: Schema.String,
|
|
30
|
+
value: Schema.Union(HttpHeaderValueSchema, Schema.mutable(Schema.Array(HttpHeaderValueSchema)))
|
|
31
|
+
})
|
|
32
|
+
).pipe(Schema.filter((headers) => Object.keys(headers).every((name) => HTTP_HEADER_NAME.test(name))));
|
|
33
|
+
var HttpSingleValueHeadersSchema = Schema.mutable(
|
|
34
|
+
Schema.Record({ key: Schema.String, value: HttpHeaderValueSchema })
|
|
35
|
+
).pipe(Schema.filter((headers) => Object.keys(headers).every((name) => HTTP_HEADER_NAME.test(name))));
|
|
36
|
+
var decodeUnknown = (schema, value) => Schema.decodeUnknownOption(schema, { onExcessProperty: "preserve" })(value).pipe(Option.getOrUndefined);
|
|
37
|
+
var decodeJson = (schema, content) => decodeUnknown(Schema.parseJson(schema), content);
|
|
38
|
+
|
|
39
|
+
// src/asset-manifest.ts
|
|
40
|
+
var StaticAssetHeadersSchema = HttpHeadersSchema;
|
|
41
|
+
var StaticAssetManifestEntrySchema = Schema2.mutable(
|
|
42
|
+
Schema2.Struct({
|
|
43
|
+
source: PortableRelativePathSchema,
|
|
44
|
+
path: UrlPathnameSchema,
|
|
45
|
+
status: Schema2.optional(Schema2.Int.pipe(Schema2.between(100, 599))),
|
|
46
|
+
headers: Schema2.optional(StaticAssetHeadersSchema),
|
|
47
|
+
immutable: Schema2.optional(Schema2.Boolean)
|
|
48
|
+
})
|
|
49
|
+
);
|
|
50
|
+
var StaticAssetManifestV1Schema = Schema2.mutable(
|
|
51
|
+
Schema2.Struct({
|
|
52
|
+
version: Schema2.Literal(1),
|
|
53
|
+
assets: Schema2.mutable(Schema2.Array(StaticAssetManifestEntrySchema))
|
|
54
|
+
})
|
|
55
|
+
).pipe(Schema2.filter(({ assets }) => new Set(assets.map(({ path: path2 }) => path2)).size === assets.length));
|
|
56
|
+
var parseStaticAssetManifest = (content) => decodeJson(StaticAssetManifestV1Schema, content);
|
|
57
|
+
|
|
1
58
|
// src/detection/detect-framework.ts
|
|
2
59
|
import { FileSystem as FileSystem8, Path as Path6 } from "@effect/platform";
|
|
3
60
|
import { Effect as Effect10 } from "effect";
|
|
@@ -335,54 +392,189 @@ var getDefaultPathMap = Effect4.fn("getDefaultPathMap")(function* (directory) {
|
|
|
335
392
|
return result;
|
|
336
393
|
});
|
|
337
394
|
|
|
395
|
+
// src/nextjs-constants.ts
|
|
396
|
+
var MAXIMUM_ENTRY_PAGE_PATHS = 50;
|
|
397
|
+
|
|
338
398
|
// src/nextjs-manifest.ts
|
|
339
|
-
|
|
340
|
-
var
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
var
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
399
|
+
import { Schema as Schema3 } from "effect";
|
|
400
|
+
var StringArraySchema = Schema3.mutable(Schema3.Array(Schema3.String));
|
|
401
|
+
var StringRecordSchema = Schema3.mutable(Schema3.Record({ key: Schema3.String, value: Schema3.String }));
|
|
402
|
+
var JsonValueSchema = Schema3.suspend(
|
|
403
|
+
() => Schema3.Union(
|
|
404
|
+
Schema3.Null,
|
|
405
|
+
Schema3.Boolean,
|
|
406
|
+
Schema3.Number,
|
|
407
|
+
Schema3.String,
|
|
408
|
+
Schema3.mutable(Schema3.Array(JsonValueSchema)),
|
|
409
|
+
Schema3.mutable(Schema3.Record({ key: Schema3.String, value: JsonValueSchema }))
|
|
410
|
+
)
|
|
411
|
+
);
|
|
412
|
+
var ImageLocalPatternSchema = Schema3.mutable(
|
|
413
|
+
Schema3.Struct({
|
|
414
|
+
pathname: Schema3.optional(Schema3.String),
|
|
415
|
+
search: Schema3.optional(Schema3.String)
|
|
416
|
+
})
|
|
417
|
+
);
|
|
418
|
+
var ImageRemotePatternSchema = Schema3.mutable(
|
|
419
|
+
Schema3.Struct({
|
|
420
|
+
protocol: Schema3.optional(Schema3.Literal("http", "https")),
|
|
421
|
+
hostname: Schema3.String,
|
|
422
|
+
port: Schema3.optional(Schema3.String),
|
|
423
|
+
pathname: Schema3.optional(Schema3.String),
|
|
424
|
+
search: Schema3.optional(Schema3.String)
|
|
425
|
+
})
|
|
426
|
+
);
|
|
427
|
+
var ImageVariantSchema = Schema3.mutable(
|
|
428
|
+
Schema3.Struct({
|
|
429
|
+
width: Schema3.optional(Schema3.Number),
|
|
430
|
+
height: Schema3.optional(Schema3.Number),
|
|
431
|
+
quality: Schema3.optional(Schema3.Number),
|
|
432
|
+
format: Schema3.optional(Schema3.Literal("image/avif", "image/webp", "image/jpeg", "image/png")),
|
|
433
|
+
fit: Schema3.optional(Schema3.Literal("contain", "cover", "fill", "inside", "outside"))
|
|
434
|
+
})
|
|
435
|
+
);
|
|
436
|
+
var PositiveIntSchema = Schema3.Int.pipe(Schema3.greaterThan(0));
|
|
437
|
+
var ImagePolicySchema = Schema3.mutable(
|
|
438
|
+
Schema3.Struct({
|
|
439
|
+
localPatterns: Schema3.mutable(Schema3.Array(ImageLocalPatternSchema)),
|
|
440
|
+
remotePatterns: Schema3.mutable(Schema3.Array(ImageRemotePatternSchema)),
|
|
441
|
+
widths: Schema3.mutable(Schema3.Array(PositiveIntSchema)),
|
|
442
|
+
heights: Schema3.mutable(Schema3.Array(PositiveIntSchema)),
|
|
443
|
+
qualities: Schema3.mutable(Schema3.Array(Schema3.Number.pipe(Schema3.between(1, 100)))),
|
|
444
|
+
formats: Schema3.mutable(Schema3.Array(Schema3.Literal("image/avif", "image/webp", "image/jpeg", "image/png"))),
|
|
445
|
+
minimumCacheTTL: Schema3.Number,
|
|
446
|
+
dangerouslyAllowSVG: Schema3.Boolean,
|
|
447
|
+
contentSecurityPolicy: Schema3.String,
|
|
448
|
+
contentDispositionType: Schema3.Literal("inline", "attachment"),
|
|
449
|
+
maximumRedirects: Schema3.Number,
|
|
450
|
+
maximumResponseBody: Schema3.Number,
|
|
451
|
+
variants: Schema3.mutable(Schema3.Record({ key: Schema3.String, value: ImageVariantSchema }))
|
|
452
|
+
})
|
|
453
|
+
);
|
|
454
|
+
var GigadriveNextPrerenderOutputSchema = Schema3.mutable(
|
|
455
|
+
Schema3.Struct({
|
|
456
|
+
id: Schema3.String,
|
|
457
|
+
type: Schema3.Literal("PRERENDER"),
|
|
458
|
+
pathname: UrlPathnameSchema,
|
|
459
|
+
parentOutputId: Schema3.String,
|
|
460
|
+
groupId: Schema3.Number,
|
|
461
|
+
pprChain: Schema3.optional(Schema3.mutable(Schema3.Struct({ headers: HttpSingleValueHeadersSchema }))),
|
|
462
|
+
parentFallbackMode: Schema3.optional(JsonValueSchema),
|
|
463
|
+
fallback: Schema3.optional(
|
|
464
|
+
Schema3.mutable(
|
|
465
|
+
Schema3.Struct({
|
|
466
|
+
filePath: Schema3.optional(PortableRelativePathSchema),
|
|
467
|
+
initialStatus: Schema3.optional(Schema3.Int.pipe(Schema3.between(100, 599))),
|
|
468
|
+
initialHeaders: Schema3.optional(HttpHeadersSchema),
|
|
469
|
+
initialExpiration: Schema3.optional(Schema3.Number),
|
|
470
|
+
initialRevalidate: Schema3.optional(Schema3.Union(Schema3.Number, Schema3.Literal(false))),
|
|
471
|
+
postponedState: Schema3.optional(Schema3.String)
|
|
472
|
+
})
|
|
473
|
+
)
|
|
474
|
+
),
|
|
475
|
+
config: Schema3.mutable(
|
|
476
|
+
Schema3.Struct({
|
|
477
|
+
allowQuery: Schema3.optional(StringArraySchema),
|
|
478
|
+
allowHeader: Schema3.optional(StringArraySchema),
|
|
479
|
+
bypassFor: Schema3.optional(Schema3.mutable(Schema3.Array(JsonValueSchema))),
|
|
480
|
+
renderingMode: Schema3.optional(Schema3.String),
|
|
481
|
+
partialFallback: Schema3.optional(Schema3.Boolean),
|
|
482
|
+
bypassToken: Schema3.optional(Schema3.String)
|
|
483
|
+
})
|
|
484
|
+
)
|
|
485
|
+
})
|
|
486
|
+
);
|
|
487
|
+
var GigadriveNextStaticAssetPrefixSchema = Schema3.mutable(
|
|
488
|
+
Schema3.Struct({
|
|
489
|
+
sourceDir: PortableRelativePathSchema,
|
|
490
|
+
urlPrefix: PortableRelativePathSchema,
|
|
491
|
+
immutable: Schema3.Boolean
|
|
492
|
+
})
|
|
493
|
+
);
|
|
494
|
+
var GigadriveNextServerDescriptorSchema = Schema3.mutable(
|
|
495
|
+
Schema3.Struct({
|
|
496
|
+
maxDuration: Schema3.optional(Schema3.Number),
|
|
497
|
+
preferredRegion: Schema3.optional(Schema3.Union(Schema3.String, StringArraySchema)),
|
|
498
|
+
env: Schema3.optional(StringRecordSchema)
|
|
499
|
+
})
|
|
500
|
+
);
|
|
501
|
+
var PrerenderArraySchema = Schema3.mutable(Schema3.Array(GigadriveNextPrerenderOutputSchema));
|
|
502
|
+
var StaticAssetArraySchema = Schema3.mutable(Schema3.Array(GigadriveNextStaticAssetPrefixSchema));
|
|
503
|
+
var JsonValueArraySchema = Schema3.mutable(Schema3.Array(JsonValueSchema));
|
|
504
|
+
var GigadriveNextBuildManifestV1Schema = Schema3.mutable(
|
|
505
|
+
Schema3.Struct({
|
|
506
|
+
version: Schema3.Literal(1),
|
|
507
|
+
output: Schema3.Literal("standalone", "export"),
|
|
508
|
+
distDir: PortableRelativePathSchema,
|
|
509
|
+
repoRootToProject: RepositoryRelativePathSchema,
|
|
510
|
+
nextVersion: Schema3.String,
|
|
511
|
+
buildId: Schema3.String
|
|
512
|
+
})
|
|
513
|
+
);
|
|
514
|
+
var GigadriveNextBuildManifestV2ExportSchema = Schema3.mutable(
|
|
515
|
+
Schema3.Struct({
|
|
516
|
+
version: Schema3.Literal(2),
|
|
517
|
+
mode: Schema3.Literal("export"),
|
|
518
|
+
distDir: PortableRelativePathSchema,
|
|
519
|
+
repoRootToProject: RepositoryRelativePathSchema,
|
|
520
|
+
nextVersion: Schema3.String,
|
|
521
|
+
buildId: Schema3.String
|
|
522
|
+
})
|
|
523
|
+
);
|
|
524
|
+
var GigadriveNextBuildManifestV2StandaloneSchema = Schema3.mutable(
|
|
525
|
+
Schema3.Struct({
|
|
526
|
+
version: Schema3.Literal(2),
|
|
527
|
+
mode: Schema3.Literal("standalone-v2"),
|
|
528
|
+
distDir: PortableRelativePathSchema,
|
|
529
|
+
repoRootToProject: RepositoryRelativePathSchema,
|
|
530
|
+
nextVersion: Schema3.String,
|
|
531
|
+
buildId: Schema3.String,
|
|
532
|
+
server: GigadriveNextServerDescriptorSchema,
|
|
533
|
+
config: Schema3.mutable(
|
|
534
|
+
Schema3.Struct({
|
|
535
|
+
basePath: Schema3.String,
|
|
536
|
+
trailingSlash: Schema3.Boolean,
|
|
537
|
+
cacheComponents: Schema3.Boolean,
|
|
538
|
+
i18n: Schema3.optional(JsonValueSchema),
|
|
539
|
+
images: Schema3.optional(ImagePolicySchema)
|
|
540
|
+
})
|
|
541
|
+
),
|
|
542
|
+
routing: Schema3.mutable(
|
|
543
|
+
Schema3.Struct({
|
|
544
|
+
beforeMiddleware: JsonValueArraySchema,
|
|
545
|
+
beforeFiles: JsonValueArraySchema,
|
|
546
|
+
afterFiles: JsonValueArraySchema,
|
|
547
|
+
dynamicRoutes: JsonValueArraySchema,
|
|
548
|
+
onMatch: JsonValueArraySchema,
|
|
549
|
+
fallback: JsonValueArraySchema,
|
|
550
|
+
shouldNormalizeNextData: Schema3.Boolean,
|
|
551
|
+
rsc: JsonValueSchema
|
|
552
|
+
})
|
|
553
|
+
),
|
|
554
|
+
outputs: Schema3.mutable(
|
|
555
|
+
Schema3.Struct({
|
|
556
|
+
prerenders: PrerenderArraySchema,
|
|
557
|
+
prerenderManifest: Schema3.optional(PortableRelativePathSchema),
|
|
558
|
+
assetManifest: Schema3.optional(PortableRelativePathSchema),
|
|
559
|
+
entryPagePaths: Schema3.optional(Schema3.mutable(Schema3.Array(UrlPathnameSchema))),
|
|
560
|
+
staticAssets: StaticAssetArraySchema
|
|
561
|
+
})
|
|
562
|
+
)
|
|
563
|
+
})
|
|
564
|
+
);
|
|
565
|
+
var GigadriveNextBuildManifestSchema = Schema3.Union(
|
|
566
|
+
GigadriveNextBuildManifestV1Schema,
|
|
567
|
+
GigadriveNextBuildManifestV2ExportSchema,
|
|
568
|
+
GigadriveNextBuildManifestV2StandaloneSchema
|
|
569
|
+
);
|
|
570
|
+
var GigadriveNextPrerenderManifestV1Schema = Schema3.mutable(
|
|
571
|
+
Schema3.Struct({
|
|
572
|
+
version: Schema3.Literal(1),
|
|
573
|
+
prerenders: PrerenderArraySchema
|
|
574
|
+
})
|
|
575
|
+
);
|
|
576
|
+
var parseGigadriveNextBuildManifest = (content) => decodeJson(GigadriveNextBuildManifestSchema, content);
|
|
577
|
+
var parseGigadriveNextPrerenderManifest = (content) => decodeJson(GigadriveNextPrerenderManifestV1Schema, content);
|
|
386
578
|
|
|
387
579
|
// src/regions.ts
|
|
388
580
|
var REGION_DEFINITIONS = [
|
|
@@ -408,7 +600,6 @@ var AVAILABLE_REGIONS = [...REGION_DEFINITIONS];
|
|
|
408
600
|
|
|
409
601
|
// src/detection/frameworks/nextjs.ts
|
|
410
602
|
var toPortablePath = (value) => value.replaceAll("\\", "/");
|
|
411
|
-
var MAXIMUM_ENTRY_PAGE_PATHS = 50;
|
|
412
603
|
var STANDALONE_SERVER_MEMORY_MB = 1024;
|
|
413
604
|
var resolveStandaloneServer = Effect5.fn("nextjs.resolveStandaloneServer")(function* (projectFolder, distDir, repoRootToProject) {
|
|
414
605
|
const fs = yield* FileSystem5.FileSystem;
|
|
@@ -513,9 +704,11 @@ var createStandaloneV2Config = Effect5.fn("nextjs.createStandaloneV2Config")(fun
|
|
|
513
704
|
immutable: staticAsset.immutable,
|
|
514
705
|
populateCache: true
|
|
515
706
|
}));
|
|
516
|
-
const
|
|
707
|
+
const assetManifests = manifest.outputs.assetManifest ? [{ source: manifest.outputs.assetManifest }] : void 0;
|
|
708
|
+
const { entryPagePaths: manifestEntryPagePaths, ...manifestOutputs } = manifest.outputs;
|
|
709
|
+
const entryPagePaths = manifestEntryPagePaths?.slice(0, MAXIMUM_ENTRY_PAGE_PATHS) ?? [
|
|
517
710
|
...new Set(
|
|
518
|
-
manifest.outputs.prerenders.filter((output) =>
|
|
711
|
+
manifest.outputs.prerenders.filter((output) => output.fallback?.postponedState === void 0).map((output) => output.pathname).filter((pathname) => pathname.startsWith("/") && !pathname.includes("["))
|
|
519
712
|
)
|
|
520
713
|
].sort((left, right) => left.split("/").length - right.split("/").length || left.localeCompare(right)).slice(0, MAXIMUM_ENTRY_PAGE_PATHS);
|
|
521
714
|
const singleEntrypoint = {
|
|
@@ -544,10 +737,9 @@ var createStandaloneV2Config = Effect5.fn("nextjs.createStandaloneV2Config")(fun
|
|
|
544
737
|
server: manifest.server,
|
|
545
738
|
config: manifest.config,
|
|
546
739
|
routing: manifest.routing,
|
|
547
|
-
//
|
|
548
|
-
//
|
|
549
|
-
|
|
550
|
-
outputs: { prerenders: [], staticAssets: manifest.outputs.staticAssets },
|
|
740
|
+
// Keep high-cardinality output metadata in portable sidecars rather than
|
|
741
|
+
// expanding it into normalized deployment configuration.
|
|
742
|
+
outputs: { ...manifestOutputs, prerenders: [] },
|
|
551
743
|
entryPagePaths,
|
|
552
744
|
type: "nextjs",
|
|
553
745
|
schemaVersion: 2
|
|
@@ -559,6 +751,7 @@ var createStandaloneV2Config = Effect5.fn("nextjs.createStandaloneV2Config")(fun
|
|
|
559
751
|
assetPaths,
|
|
560
752
|
assetOverrides,
|
|
561
753
|
assetPrefixes,
|
|
754
|
+
assetManifests,
|
|
562
755
|
assetsDir: manifest.distDir,
|
|
563
756
|
assetsPrefixToStrip: "",
|
|
564
757
|
populateAssetCache: true,
|
|
@@ -820,12 +1013,13 @@ var generateConfig = Effect7.fn("generateConfig")(function* (framework, packageM
|
|
|
820
1013
|
errors: [],
|
|
821
1014
|
...defaults.normalizedConfig
|
|
822
1015
|
};
|
|
823
|
-
if (defaults.assetsDir || defaults.assetPaths || defaults.assetPrefixes) {
|
|
1016
|
+
if (defaults.assetsDir || defaults.assetPaths || defaults.assetPrefixes || defaults.assetManifests) {
|
|
824
1017
|
config.assets = {
|
|
825
1018
|
paths: defaults.assetPaths ? [...defaults.assetPaths] : [],
|
|
826
1019
|
prefixToStrip: defaults.assetsPrefixToStrip ?? (defaults.assetsDir ? defaults.assetsDir + "/" : ""),
|
|
827
1020
|
overrides: defaults.assetOverrides ? { ...defaults.assetOverrides } : void 0,
|
|
828
1021
|
prefixes: defaults.assetPrefixes ? defaults.assetPrefixes.map((prefix) => ({ ...prefix })) : void 0,
|
|
1022
|
+
manifests: defaults.assetManifests ? defaults.assetManifests.map((manifest) => ({ ...manifest })) : void 0,
|
|
829
1023
|
dynamicRoutes: true,
|
|
830
1024
|
populateCache: defaults.populateAssetCache ?? false
|
|
831
1025
|
};
|
|
@@ -838,27 +1032,27 @@ import { FileSystem as FileSystem7, Path as Path5 } from "@effect/platform";
|
|
|
838
1032
|
import { Effect as Effect9 } from "effect";
|
|
839
1033
|
|
|
840
1034
|
// src/detection/types.ts
|
|
841
|
-
import { Schema } from "effect";
|
|
842
|
-
var ManifestNotFoundError = class extends
|
|
843
|
-
message:
|
|
844
|
-
filePath:
|
|
1035
|
+
import { Schema as Schema4 } from "effect";
|
|
1036
|
+
var ManifestNotFoundError = class extends Schema4.TaggedError()("ManifestNotFoundError", {
|
|
1037
|
+
message: Schema4.String,
|
|
1038
|
+
filePath: Schema4.String
|
|
845
1039
|
}) {
|
|
846
1040
|
};
|
|
847
|
-
var ManifestReadError = class extends
|
|
848
|
-
message:
|
|
849
|
-
filePath:
|
|
1041
|
+
var ManifestReadError = class extends Schema4.TaggedError()("ManifestReadError", {
|
|
1042
|
+
message: Schema4.String,
|
|
1043
|
+
filePath: Schema4.String
|
|
850
1044
|
}) {
|
|
851
1045
|
};
|
|
852
|
-
var ManifestParseError = class extends
|
|
853
|
-
message:
|
|
854
|
-
filePath:
|
|
1046
|
+
var ManifestParseError = class extends Schema4.TaggedError()("ManifestParseError", {
|
|
1047
|
+
message: Schema4.String,
|
|
1048
|
+
filePath: Schema4.String
|
|
855
1049
|
}) {
|
|
856
1050
|
};
|
|
857
|
-
var FrameworkNotDetectedError = class extends
|
|
1051
|
+
var FrameworkNotDetectedError = class extends Schema4.TaggedError()(
|
|
858
1052
|
"FrameworkNotDetectedError",
|
|
859
1053
|
{
|
|
860
|
-
message:
|
|
861
|
-
directory:
|
|
1054
|
+
message: Schema4.String,
|
|
1055
|
+
directory: Schema4.String
|
|
862
1056
|
}
|
|
863
1057
|
) {
|
|
864
1058
|
};
|
|
@@ -974,12 +1168,13 @@ var detectFramework = Effect10.fn("detectFramework")(function* (projectFolder) {
|
|
|
974
1168
|
import { Effect as Effect11 } from "effect";
|
|
975
1169
|
var mergeWithFrameworkDefaults = Effect11.fn("mergeWithFrameworkDefaults")(function* (userConfig, frameworkConfig) {
|
|
976
1170
|
yield* Effect11.logDebug("Merging user config with framework defaults");
|
|
1171
|
+
const userHasAssets = (userConfig.assets?.paths?.length ?? 0) > 0 || (userConfig.assets?.prefixes?.length ?? 0) > 0 || (userConfig.assets?.manifests?.length ?? 0) > 0;
|
|
977
1172
|
const merged = {
|
|
978
1173
|
regions: userConfig.regions,
|
|
979
1174
|
commands: userConfig.commands.length > 0 ? userConfig.commands : frameworkConfig.commands,
|
|
980
1175
|
entrypoints: userConfig.entrypoints.length > 0 ? userConfig.entrypoints : frameworkConfig.entrypoints,
|
|
981
1176
|
routes: userConfig.routes.length > 0 ? userConfig.routes : frameworkConfig.routes,
|
|
982
|
-
assets:
|
|
1177
|
+
assets: userHasAssets ? userConfig.assets : frameworkConfig.assets,
|
|
983
1178
|
environmentVariables: {
|
|
984
1179
|
...frameworkConfig.environmentVariables,
|
|
985
1180
|
...userConfig.environmentVariables
|
|
@@ -994,41 +1189,41 @@ var mergeWithFrameworkDefaults = Effect11.fn("mergeWithFrameworkDefaults")(funct
|
|
|
994
1189
|
});
|
|
995
1190
|
|
|
996
1191
|
// src/errors.ts
|
|
997
|
-
import { Schema as
|
|
998
|
-
var ConfigFileNotFoundError = class extends
|
|
999
|
-
message:
|
|
1000
|
-
filePath:
|
|
1192
|
+
import { Schema as Schema5 } from "effect";
|
|
1193
|
+
var ConfigFileNotFoundError = class extends Schema5.TaggedError()("ConfigFileNotFoundError", {
|
|
1194
|
+
message: Schema5.String,
|
|
1195
|
+
filePath: Schema5.String
|
|
1001
1196
|
}) {
|
|
1002
1197
|
};
|
|
1003
|
-
var ConfigFileEmptyError = class extends
|
|
1004
|
-
message:
|
|
1005
|
-
filePath:
|
|
1198
|
+
var ConfigFileEmptyError = class extends Schema5.TaggedError()("ConfigFileEmptyError", {
|
|
1199
|
+
message: Schema5.String,
|
|
1200
|
+
filePath: Schema5.String
|
|
1006
1201
|
}) {
|
|
1007
1202
|
};
|
|
1008
|
-
var ConfigFileParseError = class extends
|
|
1009
|
-
message:
|
|
1010
|
-
filePath:
|
|
1011
|
-
cause:
|
|
1203
|
+
var ConfigFileParseError = class extends Schema5.TaggedError()("ConfigFileParseError", {
|
|
1204
|
+
message: Schema5.String,
|
|
1205
|
+
filePath: Schema5.String,
|
|
1206
|
+
cause: Schema5.optional(Schema5.String)
|
|
1012
1207
|
}) {
|
|
1013
1208
|
};
|
|
1014
|
-
var ConfigVersionError = class extends
|
|
1015
|
-
message:
|
|
1016
|
-
filePath:
|
|
1017
|
-
version:
|
|
1209
|
+
var ConfigVersionError = class extends Schema5.TaggedError()("ConfigVersionError", {
|
|
1210
|
+
message: Schema5.String,
|
|
1211
|
+
filePath: Schema5.String,
|
|
1212
|
+
version: Schema5.optional(Schema5.Number)
|
|
1018
1213
|
}) {
|
|
1019
1214
|
};
|
|
1020
|
-
var ConfigSchemaValidationError = class extends
|
|
1215
|
+
var ConfigSchemaValidationError = class extends Schema5.TaggedError()(
|
|
1021
1216
|
"ConfigSchemaValidationError",
|
|
1022
1217
|
{
|
|
1023
|
-
message:
|
|
1024
|
-
filePath:
|
|
1025
|
-
validationErrors:
|
|
1218
|
+
message: Schema5.String,
|
|
1219
|
+
filePath: Schema5.String,
|
|
1220
|
+
validationErrors: Schema5.Array(Schema5.String)
|
|
1026
1221
|
}
|
|
1027
1222
|
) {
|
|
1028
1223
|
};
|
|
1029
|
-
var FunctionConfigError = class extends
|
|
1030
|
-
message:
|
|
1031
|
-
functionPath:
|
|
1224
|
+
var FunctionConfigError = class extends Schema5.TaggedError()("FunctionConfigError", {
|
|
1225
|
+
message: Schema5.String,
|
|
1226
|
+
functionPath: Schema5.String
|
|
1032
1227
|
}) {
|
|
1033
1228
|
};
|
|
1034
1229
|
|
|
@@ -2135,11 +2330,12 @@ var parseConfig = Effect16.fn("parseConfig")(function* (filePath, projectFolder)
|
|
|
2135
2330
|
var postProcessConfig = Effect16.fn("postProcessConfig")(function* (config, projectFolder) {
|
|
2136
2331
|
const vercelParser = yield* VercelBuildOutputParser;
|
|
2137
2332
|
let result = yield* vercelParser.parse(config, projectFolder);
|
|
2138
|
-
|
|
2333
|
+
const hasAssets = (result.assets?.paths?.length ?? 0) > 0 || (result.assets?.prefixes?.length ?? 0) > 0 || (result.assets?.manifests?.length ?? 0) > 0;
|
|
2334
|
+
if (result.entrypoints.length === 0 && !hasAssets && result.routes.length === 0) {
|
|
2139
2335
|
result.errors.push(
|
|
2140
2336
|
"The current project config does not resolve to any functions, assets or routes and can not be deployed."
|
|
2141
2337
|
);
|
|
2142
|
-
} else if (result.entrypoints.length === 0 &&
|
|
2338
|
+
} else if (result.entrypoints.length === 0 && !hasAssets) {
|
|
2143
2339
|
result.warnings.push("The current project does not have any functions or assets to deploy.");
|
|
2144
2340
|
}
|
|
2145
2341
|
result = filterFunctionsFromAssets(result);
|
|
@@ -2176,6 +2372,14 @@ export {
|
|
|
2176
2372
|
FRAMEWORK_DEFINITIONS,
|
|
2177
2373
|
FrameworkNotDetectedError,
|
|
2178
2374
|
FunctionConfigError,
|
|
2375
|
+
GigadriveNextBuildManifestSchema,
|
|
2376
|
+
GigadriveNextBuildManifestV1Schema,
|
|
2377
|
+
GigadriveNextBuildManifestV2ExportSchema,
|
|
2378
|
+
GigadriveNextBuildManifestV2StandaloneSchema,
|
|
2379
|
+
GigadriveNextPrerenderManifestV1Schema,
|
|
2380
|
+
GigadriveNextPrerenderOutputSchema,
|
|
2381
|
+
GigadriveNextServerDescriptorSchema,
|
|
2382
|
+
GigadriveNextStaticAssetPrefixSchema,
|
|
2179
2383
|
MAX_FUNCTION_DURATION_SECONDS,
|
|
2180
2384
|
ManifestNotFoundError,
|
|
2181
2385
|
ManifestParseError,
|
|
@@ -2183,6 +2387,9 @@ export {
|
|
|
2183
2387
|
NetworkConfigLive,
|
|
2184
2388
|
RawConfigReader,
|
|
2185
2389
|
SchemaValidator,
|
|
2390
|
+
StaticAssetHeadersSchema,
|
|
2391
|
+
StaticAssetManifestEntrySchema,
|
|
2392
|
+
StaticAssetManifestV1Schema,
|
|
2186
2393
|
V4ConfigParser,
|
|
2187
2394
|
VercelBuildOutputParser,
|
|
2188
2395
|
detectFramework,
|
|
@@ -2194,6 +2401,8 @@ export {
|
|
|
2194
2401
|
parseConfig,
|
|
2195
2402
|
parseConfigRaw,
|
|
2196
2403
|
parseGigadriveNextBuildManifest,
|
|
2404
|
+
parseGigadriveNextPrerenderManifest,
|
|
2405
|
+
parseStaticAssetManifest,
|
|
2197
2406
|
postProcessConfig,
|
|
2198
2407
|
readDependencies
|
|
2199
2408
|
};
|