@multiplayer-app/agent 0.1.20 → 0.1.21
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/README.md +14 -7
- package/dist/agent/definition.test.js +8 -3
- package/dist/agent/definition.test.js.map +1 -1
- package/dist/agent/profiles/coding.d.ts +1 -1
- package/dist/agent/profiles/coding.d.ts.map +1 -1
- package/dist/agent/profiles/coding.js +21 -4
- package/dist/agent/profiles/coding.js.map +1 -1
- package/dist/agent/profiles/index.js +1 -1
- package/dist/agent/profiles/index.js.map +1 -1
- package/dist/agent/profiles/research.d.ts.map +1 -1
- package/dist/agent/profiles/research.js +2 -2
- package/dist/agent/profiles/research.js.map +1 -1
- package/dist/agent/turn-history.d.ts.map +1 -1
- package/dist/agent/turn-history.js +7 -1
- package/dist/agent/turn-history.js.map +1 -1
- package/dist/agent/turn-runner.d.ts +8 -0
- package/dist/agent/turn-runner.d.ts.map +1 -1
- package/dist/agent/turn-runner.js +35 -10
- package/dist/agent/turn-runner.js.map +1 -1
- package/dist/app/app-host.d.ts +57 -0
- package/dist/app/app-host.d.ts.map +1 -0
- package/dist/app/app-host.js +252 -0
- package/dist/app/app-host.js.map +1 -0
- package/dist/app/app-host.test.d.ts +2 -0
- package/dist/app/app-host.test.d.ts.map +1 -0
- package/dist/app/app-host.test.js +639 -0
- package/dist/app/app-host.test.js.map +1 -0
- package/dist/app/config.d.ts +196 -0
- package/dist/app/config.d.ts.map +1 -0
- package/dist/app/config.js +362 -0
- package/dist/app/config.js.map +1 -0
- package/dist/app/config.test.d.ts +2 -0
- package/dist/app/config.test.d.ts.map +1 -0
- package/dist/app/config.test.js +224 -0
- package/dist/app/config.test.js.map +1 -0
- package/dist/app/detect.d.ts +68 -0
- package/dist/app/detect.d.ts.map +1 -0
- package/dist/app/detect.js +449 -0
- package/dist/app/detect.js.map +1 -0
- package/dist/app/detect.test.d.ts +2 -0
- package/dist/app/detect.test.d.ts.map +1 -0
- package/dist/app/detect.test.js +267 -0
- package/dist/app/detect.test.js.map +1 -0
- package/dist/app/env.d.ts +5 -0
- package/dist/app/env.d.ts.map +1 -0
- package/dist/app/env.js +22 -0
- package/dist/app/env.js.map +1 -0
- package/dist/app/functions-cli.d.ts +3 -0
- package/dist/app/functions-cli.d.ts.map +1 -0
- package/dist/app/functions-cli.js +27 -0
- package/dist/app/functions-cli.js.map +1 -0
- package/dist/app/functions-host.d.ts +15 -0
- package/dist/app/functions-host.d.ts.map +1 -0
- package/dist/app/functions-host.js +276 -0
- package/dist/app/functions-host.js.map +1 -0
- package/dist/app/functions-host.test.d.ts +2 -0
- package/dist/app/functions-host.test.d.ts.map +1 -0
- package/dist/app/functions-host.test.js +117 -0
- package/dist/app/functions-host.test.js.map +1 -0
- package/dist/app/functions-routes.d.ts +23 -0
- package/dist/app/functions-routes.d.ts.map +1 -0
- package/dist/app/functions-routes.js +85 -0
- package/dist/app/functions-routes.js.map +1 -0
- package/dist/app/functions-routes.test.d.ts +2 -0
- package/dist/app/functions-routes.test.d.ts.map +1 -0
- package/dist/app/functions-routes.test.js +40 -0
- package/dist/app/functions-routes.test.js.map +1 -0
- package/dist/app/manifest.d.ts +17 -0
- package/dist/app/manifest.d.ts.map +1 -0
- package/dist/app/manifest.js +64 -0
- package/dist/app/manifest.js.map +1 -0
- package/dist/app/manifest.test.d.ts +2 -0
- package/dist/app/manifest.test.d.ts.map +1 -0
- package/dist/app/manifest.test.js +173 -0
- package/dist/app/manifest.test.js.map +1 -0
- package/dist/app/release-artifacts.d.ts +39 -0
- package/dist/app/release-artifacts.d.ts.map +1 -0
- package/dist/app/release-artifacts.js +229 -0
- package/dist/app/release-artifacts.js.map +1 -0
- package/dist/app/release-artifacts.test.d.ts +2 -0
- package/dist/app/release-artifacts.test.d.ts.map +1 -0
- package/dist/app/release-artifacts.test.js +295 -0
- package/dist/app/release-artifacts.test.js.map +1 -0
- package/dist/app/route-pattern.d.ts +23 -0
- package/dist/app/route-pattern.d.ts.map +1 -0
- package/dist/app/route-pattern.js +339 -0
- package/dist/app/route-pattern.js.map +1 -0
- package/dist/app/route-pattern.test.d.ts +2 -0
- package/dist/app/route-pattern.test.d.ts.map +1 -0
- package/dist/app/route-pattern.test.js +187 -0
- package/dist/app/route-pattern.test.js.map +1 -0
- package/dist/app/rules.d.ts +61 -0
- package/dist/app/rules.d.ts.map +1 -0
- package/dist/app/rules.js +90 -0
- package/dist/app/rules.js.map +1 -0
- package/dist/app/rules.test.d.ts +2 -0
- package/dist/app/rules.test.d.ts.map +1 -0
- package/dist/app/rules.test.js +69 -0
- package/dist/app/rules.test.js.map +1 -0
- package/dist/app/runner.d.ts +109 -0
- package/dist/app/runner.d.ts.map +1 -0
- package/dist/app/runner.js +429 -0
- package/dist/app/runner.js.map +1 -0
- package/dist/app/site.d.ts +73 -0
- package/dist/app/site.d.ts.map +1 -0
- package/dist/app/site.js +161 -0
- package/dist/app/site.js.map +1 -0
- package/dist/app/site.test.d.ts +2 -0
- package/dist/app/site.test.d.ts.map +1 -0
- package/dist/app/site.test.js +291 -0
- package/dist/app/site.test.js.map +1 -0
- package/dist/app/static-server.d.ts +20 -0
- package/dist/app/static-server.d.ts.map +1 -0
- package/dist/app/static-server.js +145 -0
- package/dist/app/static-server.js.map +1 -0
- package/dist/persistence/conversation-store.d.ts +21 -0
- package/dist/persistence/conversation-store.d.ts.map +1 -0
- package/dist/persistence/conversation-store.js +59 -0
- package/dist/persistence/conversation-store.js.map +1 -0
- package/dist/persistence/conversation-store.test.d.ts +2 -0
- package/dist/persistence/conversation-store.test.d.ts.map +1 -0
- package/dist/persistence/conversation-store.test.js +98 -0
- package/dist/persistence/conversation-store.test.js.map +1 -0
- package/dist/persistence/git-sync.d.ts +14 -1
- package/dist/persistence/git-sync.d.ts.map +1 -1
- package/dist/persistence/git-sync.js +73 -17
- package/dist/persistence/git-sync.js.map +1 -1
- package/dist/persistence/git-sync.test.js +155 -6
- package/dist/persistence/git-sync.test.js.map +1 -1
- package/dist/persistence/snapshot-sync.d.ts +19 -2
- package/dist/persistence/snapshot-sync.d.ts.map +1 -1
- package/dist/persistence/snapshot-sync.js +194 -83
- package/dist/persistence/snapshot-sync.js.map +1 -1
- package/dist/persistence/snapshot-sync.test.js +145 -27
- package/dist/persistence/snapshot-sync.test.js.map +1 -1
- package/dist/persistence/workspace.d.ts +3 -0
- package/dist/persistence/workspace.d.ts.map +1 -1
- package/dist/persistence/workspace.js +1 -0
- package/dist/persistence/workspace.js.map +1 -1
- package/dist/research/extract-texts.d.ts.map +1 -1
- package/dist/research/extract-texts.js +6 -13
- package/dist/research/extract-texts.js.map +1 -1
- package/dist/research/filingramp/attachment-tools.d.ts.map +1 -1
- package/dist/research/filingramp/attachment-tools.js +7 -4
- package/dist/research/filingramp/attachment-tools.js.map +1 -1
- package/dist/research/filingramp/shared.d.ts.map +1 -1
- package/dist/research/filingramp/shared.js +5 -5
- package/dist/research/filingramp/shared.js.map +1 -1
- package/dist/runtime/app-mode.d.ts +10 -0
- package/dist/runtime/app-mode.d.ts.map +1 -0
- package/dist/runtime/app-mode.js +172 -0
- package/dist/runtime/app-mode.js.map +1 -0
- package/dist/runtime/app-mode.test.d.ts +2 -0
- package/dist/runtime/app-mode.test.d.ts.map +1 -0
- package/dist/runtime/app-mode.test.js +130 -0
- package/dist/runtime/app-mode.test.js.map +1 -0
- package/dist/runtime/app-rehearsal.d.ts +2 -0
- package/dist/runtime/app-rehearsal.d.ts.map +1 -0
- package/dist/runtime/app-rehearsal.js +56 -0
- package/dist/runtime/app-rehearsal.js.map +1 -0
- package/dist/runtime/build-mode.d.ts +12 -0
- package/dist/runtime/build-mode.d.ts.map +1 -0
- package/dist/runtime/build-mode.js +116 -0
- package/dist/runtime/build-mode.js.map +1 -0
- package/dist/runtime/build-mode.test.d.ts +2 -0
- package/dist/runtime/build-mode.test.d.ts.map +1 -0
- package/dist/runtime/build-mode.test.js +121 -0
- package/dist/runtime/build-mode.test.js.map +1 -0
- package/dist/runtime/cli.js +7 -2
- package/dist/runtime/cli.js.map +1 -1
- package/dist/runtime/config.d.ts +4 -0
- package/dist/runtime/config.d.ts.map +1 -1
- package/dist/runtime/config.js +13 -2
- package/dist/runtime/config.js.map +1 -1
- package/dist/runtime/guest-server.d.ts +3 -0
- package/dist/runtime/guest-server.d.ts.map +1 -0
- package/dist/runtime/{lambda-microvm.js → guest-server.js} +49 -18
- package/dist/runtime/guest-server.js.map +1 -0
- package/dist/runtime/image-hooks.d.ts +5 -0
- package/dist/runtime/image-hooks.d.ts.map +1 -0
- package/dist/runtime/image-hooks.js +68 -0
- package/dist/runtime/image-hooks.js.map +1 -0
- package/dist/runtime/image-hooks.test.d.ts +2 -0
- package/dist/runtime/image-hooks.test.d.ts.map +1 -0
- package/dist/runtime/image-hooks.test.js +74 -0
- package/dist/runtime/image-hooks.test.js.map +1 -0
- package/dist/runtime/index.d.ts +8 -3
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +53 -35
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/listening-ports.d.ts +13 -0
- package/dist/runtime/listening-ports.d.ts.map +1 -0
- package/dist/runtime/listening-ports.js +78 -0
- package/dist/runtime/listening-ports.js.map +1 -0
- package/dist/runtime/listening-ports.test.d.ts +2 -0
- package/dist/runtime/listening-ports.test.d.ts.map +1 -0
- package/dist/runtime/listening-ports.test.js +39 -0
- package/dist/runtime/listening-ports.test.js.map +1 -0
- package/dist/runtime/preview-proxy.d.ts +56 -0
- package/dist/runtime/preview-proxy.d.ts.map +1 -0
- package/dist/runtime/preview-proxy.js +302 -0
- package/dist/runtime/preview-proxy.js.map +1 -0
- package/dist/runtime/preview-proxy.test.d.ts +2 -0
- package/dist/runtime/preview-proxy.test.d.ts.map +1 -0
- package/dist/runtime/preview-proxy.test.js +122 -0
- package/dist/runtime/preview-proxy.test.js.map +1 -0
- package/dist/runtime/session-mode.d.ts +3 -0
- package/dist/runtime/session-mode.d.ts.map +1 -0
- package/dist/runtime/session-mode.js +60 -0
- package/dist/runtime/session-mode.js.map +1 -0
- package/dist/runtime/workload.d.ts +44 -0
- package/dist/runtime/workload.d.ts.map +1 -0
- package/dist/runtime/workload.js +222 -0
- package/dist/runtime/workload.js.map +1 -0
- package/dist/runtime/workload.test.d.ts +2 -0
- package/dist/runtime/workload.test.d.ts.map +1 -0
- package/dist/runtime/workload.test.js +235 -0
- package/dist/runtime/workload.test.js.map +1 -0
- package/dist/session/conversation.d.ts +3 -2
- package/dist/session/conversation.d.ts.map +1 -1
- package/dist/session/conversation.js +11 -7
- package/dist/session/conversation.js.map +1 -1
- package/dist/session/conversation.test.js +2 -3
- package/dist/session/conversation.test.js.map +1 -1
- package/dist/session/runtime.d.ts +16 -3
- package/dist/session/runtime.d.ts.map +1 -1
- package/dist/session/runtime.js +80 -13
- package/dist/session/runtime.js.map +1 -1
- package/dist/session/runtime.test.js +18 -7
- package/dist/session/runtime.test.js.map +1 -1
- package/dist/session/tools.d.ts.map +1 -1
- package/dist/session/tools.js +3 -3
- package/dist/session/tools.js.map +1 -1
- package/dist/task/loop.d.ts.map +1 -1
- package/dist/task/loop.js +6 -4
- package/dist/task/loop.js.map +1 -1
- package/dist/tools/exec-tools.d.ts +12 -0
- package/dist/tools/exec-tools.d.ts.map +1 -1
- package/dist/tools/exec-tools.js +46 -3
- package/dist/tools/exec-tools.js.map +1 -1
- package/dist/tools/exec-tools.test.d.ts +2 -0
- package/dist/tools/exec-tools.test.d.ts.map +1 -0
- package/dist/tools/exec-tools.test.js +48 -0
- package/dist/tools/exec-tools.test.js.map +1 -0
- package/dist/tools/fs-tools.d.ts.map +1 -1
- package/dist/tools/fs-tools.js +5 -5
- package/dist/tools/fs-tools.js.map +1 -1
- package/dist/transport/link.d.ts.map +1 -1
- package/dist/transport/link.js +16 -5
- package/dist/transport/link.js.map +1 -1
- package/dist/transport/link.test.js +24 -0
- package/dist/transport/link.test.js.map +1 -1
- package/dist/transport/protocol.d.ts +190 -3
- package/dist/transport/protocol.d.ts.map +1 -1
- package/dist/transport/protocol.js +147 -7
- package/dist/transport/protocol.js.map +1 -1
- package/dist/transport/protocol.test.js +41 -0
- package/dist/transport/protocol.test.js.map +1 -1
- package/dist/workspace-sync/eligibility.d.ts +14 -0
- package/dist/workspace-sync/eligibility.d.ts.map +1 -0
- package/dist/workspace-sync/eligibility.js +53 -0
- package/dist/workspace-sync/eligibility.js.map +1 -0
- package/dist/workspace-sync/merge.d.ts +15 -0
- package/dist/workspace-sync/merge.d.ts.map +1 -0
- package/dist/workspace-sync/merge.js +66 -0
- package/dist/workspace-sync/merge.js.map +1 -0
- package/dist/workspace-sync/merge.test.d.ts +2 -0
- package/dist/workspace-sync/merge.test.d.ts.map +1 -0
- package/dist/workspace-sync/merge.test.js +28 -0
- package/dist/workspace-sync/merge.test.js.map +1 -0
- package/dist/workspace-sync/workspace-sync.d.ts +48 -0
- package/dist/workspace-sync/workspace-sync.d.ts.map +1 -0
- package/dist/workspace-sync/workspace-sync.js +308 -0
- package/dist/workspace-sync/workspace-sync.js.map +1 -0
- package/dist/workspace-sync/workspace-sync.test.d.ts +2 -0
- package/dist/workspace-sync/workspace-sync.test.d.ts.map +1 -0
- package/dist/workspace-sync/workspace-sync.test.js +111 -0
- package/dist/workspace-sync/workspace-sync.test.js.map +1 -0
- package/dist/workspace-sync/write-drafts.d.ts +24 -0
- package/dist/workspace-sync/write-drafts.d.ts.map +1 -0
- package/dist/workspace-sync/write-drafts.js +87 -0
- package/dist/workspace-sync/write-drafts.js.map +1 -0
- package/dist/workspace-sync/write-drafts.test.d.ts +2 -0
- package/dist/workspace-sync/write-drafts.test.d.ts.map +1 -0
- package/dist/workspace-sync/write-drafts.test.js +36 -0
- package/dist/workspace-sync/write-drafts.test.js.map +1 -0
- package/package.json +12 -2
- package/dist/runtime/lambda-microvm.d.ts +0 -3
- package/dist/runtime/lambda-microvm.d.ts.map +0 -1
- package/dist/runtime/lambda-microvm.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-host.test.js","sourceRoot":"","sources":["../../src/app/app-host.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type AppFileReader, type Framework } from './detect';
|
|
3
|
+
import type { ReleaseManifest } from './release-artifacts';
|
|
4
|
+
export { detectApp, detectProject, fileListReader, FRAMEWORKS, type AppFileReader, type AppSettings, type DetectedManifest, type DetectedService, type Framework } from './detect';
|
|
5
|
+
/** Where the app runs: a session VM's dev servers, or a deployment's build. */
|
|
6
|
+
export type AppMode = 'dev' | 'production';
|
|
7
|
+
declare const service: z.ZodObject<{
|
|
8
|
+
root: z.ZodOptional<z.ZodString>;
|
|
9
|
+
framework: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
10
|
+
nextjs: "nextjs";
|
|
11
|
+
nuxtjs: "nuxtjs";
|
|
12
|
+
sveltekit: "sveltekit";
|
|
13
|
+
astro: "astro";
|
|
14
|
+
"create-react-app": "create-react-app";
|
|
15
|
+
vite: "vite";
|
|
16
|
+
nestjs: "nestjs";
|
|
17
|
+
express: "express";
|
|
18
|
+
fastify: "fastify";
|
|
19
|
+
hono: "hono";
|
|
20
|
+
koa: "koa";
|
|
21
|
+
fastapi: "fastapi";
|
|
22
|
+
flask: "flask";
|
|
23
|
+
python: "python";
|
|
24
|
+
}>>>;
|
|
25
|
+
installCommand: z.ZodOptional<z.ZodString>;
|
|
26
|
+
devCommand: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
27
|
+
buildCommand: z.ZodOptional<z.ZodString>;
|
|
28
|
+
startCommand: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
29
|
+
outputDirectory: z.ZodOptional<z.ZodString>;
|
|
30
|
+
functions: z.ZodOptional<z.ZodObject<{
|
|
31
|
+
directory: z.ZodString;
|
|
32
|
+
path: z.ZodOptional<z.ZodString>;
|
|
33
|
+
}, z.core.$strict>>;
|
|
34
|
+
port: z.ZodOptional<z.ZodNumber>;
|
|
35
|
+
rewrites: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
36
|
+
source: z.ZodString;
|
|
37
|
+
destination: z.ZodString;
|
|
38
|
+
}, z.core.$strict>>>;
|
|
39
|
+
headers: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
40
|
+
source: z.ZodString;
|
|
41
|
+
headers: z.ZodArray<z.ZodObject<{
|
|
42
|
+
key: z.ZodString;
|
|
43
|
+
value: z.ZodString;
|
|
44
|
+
}, z.core.$strict>>;
|
|
45
|
+
}, z.core.$strict>>>;
|
|
46
|
+
redirects: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
47
|
+
source: z.ZodString;
|
|
48
|
+
destination: z.ZodString;
|
|
49
|
+
permanent: z.ZodOptional<z.ZodBoolean>;
|
|
50
|
+
statusCode: z.ZodOptional<z.ZodNumber>;
|
|
51
|
+
}, z.core.$strict>>>;
|
|
52
|
+
cleanUrls: z.ZodOptional<z.ZodBoolean>;
|
|
53
|
+
trailingSlash: z.ZodOptional<z.ZodBoolean>;
|
|
54
|
+
}, z.core.$strict>;
|
|
55
|
+
declare const daemon: z.ZodObject<{
|
|
56
|
+
root: z.ZodOptional<z.ZodString>;
|
|
57
|
+
installCommand: z.ZodOptional<z.ZodString>;
|
|
58
|
+
command: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
59
|
+
devCommand: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
60
|
+
}, z.core.$strict>;
|
|
61
|
+
export declare const appConfigSchema: z.ZodObject<{
|
|
62
|
+
$schema: z.ZodOptional<z.ZodString>;
|
|
63
|
+
$generated: z.ZodOptional<z.ZodString>;
|
|
64
|
+
services: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
65
|
+
root: z.ZodOptional<z.ZodString>;
|
|
66
|
+
framework: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
67
|
+
nextjs: "nextjs";
|
|
68
|
+
nuxtjs: "nuxtjs";
|
|
69
|
+
sveltekit: "sveltekit";
|
|
70
|
+
astro: "astro";
|
|
71
|
+
"create-react-app": "create-react-app";
|
|
72
|
+
vite: "vite";
|
|
73
|
+
nestjs: "nestjs";
|
|
74
|
+
express: "express";
|
|
75
|
+
fastify: "fastify";
|
|
76
|
+
hono: "hono";
|
|
77
|
+
koa: "koa";
|
|
78
|
+
fastapi: "fastapi";
|
|
79
|
+
flask: "flask";
|
|
80
|
+
python: "python";
|
|
81
|
+
}>>>;
|
|
82
|
+
installCommand: z.ZodOptional<z.ZodString>;
|
|
83
|
+
devCommand: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
84
|
+
buildCommand: z.ZodOptional<z.ZodString>;
|
|
85
|
+
startCommand: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
86
|
+
outputDirectory: z.ZodOptional<z.ZodString>;
|
|
87
|
+
functions: z.ZodOptional<z.ZodObject<{
|
|
88
|
+
directory: z.ZodString;
|
|
89
|
+
path: z.ZodOptional<z.ZodString>;
|
|
90
|
+
}, z.core.$strict>>;
|
|
91
|
+
port: z.ZodOptional<z.ZodNumber>;
|
|
92
|
+
rewrites: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
93
|
+
source: z.ZodString;
|
|
94
|
+
destination: z.ZodString;
|
|
95
|
+
}, z.core.$strict>>>;
|
|
96
|
+
headers: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
97
|
+
source: z.ZodString;
|
|
98
|
+
headers: z.ZodArray<z.ZodObject<{
|
|
99
|
+
key: z.ZodString;
|
|
100
|
+
value: z.ZodString;
|
|
101
|
+
}, z.core.$strict>>;
|
|
102
|
+
}, z.core.$strict>>>;
|
|
103
|
+
redirects: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
104
|
+
source: z.ZodString;
|
|
105
|
+
destination: z.ZodString;
|
|
106
|
+
permanent: z.ZodOptional<z.ZodBoolean>;
|
|
107
|
+
statusCode: z.ZodOptional<z.ZodNumber>;
|
|
108
|
+
}, z.core.$strict>>>;
|
|
109
|
+
cleanUrls: z.ZodOptional<z.ZodBoolean>;
|
|
110
|
+
trailingSlash: z.ZodOptional<z.ZodBoolean>;
|
|
111
|
+
}, z.core.$strict>>>;
|
|
112
|
+
rewrites: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
113
|
+
source: z.ZodString;
|
|
114
|
+
destination: z.ZodObject<{
|
|
115
|
+
service: z.ZodString;
|
|
116
|
+
}, z.core.$strict>;
|
|
117
|
+
}, z.core.$strict>>>;
|
|
118
|
+
daemons: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
119
|
+
root: z.ZodOptional<z.ZodString>;
|
|
120
|
+
installCommand: z.ZodOptional<z.ZodString>;
|
|
121
|
+
command: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
122
|
+
devCommand: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
123
|
+
}, z.core.$strict>>>;
|
|
124
|
+
}, z.core.$strict>;
|
|
125
|
+
/**
|
|
126
|
+
* builder.json's JSON Schema, for editors (what its `$schema` points at; the api serves it). The
|
|
127
|
+
* same rules as parseAppManifest, except those only code can check: paths that leave the app,
|
|
128
|
+
* reserved ports, rewrites naming a service that isn't there. parseAppManifest still has the last word.
|
|
129
|
+
*/
|
|
130
|
+
export declare function appConfigJsonSchema(): Record<string, unknown>;
|
|
131
|
+
/** builder.json as written. */
|
|
132
|
+
export type AppManifest = z.infer<typeof appConfigSchema>;
|
|
133
|
+
export type AppServiceConfig = Omit<z.infer<typeof service>, 'functions'>;
|
|
134
|
+
export type AppDaemonConfig = z.infer<typeof daemon>;
|
|
135
|
+
export type AppCommand = string | string[];
|
|
136
|
+
/** What the runner runs: builder.json with each service's framework preset and functions filled in. */
|
|
137
|
+
export interface AppConfig {
|
|
138
|
+
services: Record<string, AppServiceConfig>;
|
|
139
|
+
rewrites?: Array<{
|
|
140
|
+
source: string;
|
|
141
|
+
destination: {
|
|
142
|
+
service: string;
|
|
143
|
+
};
|
|
144
|
+
}>;
|
|
145
|
+
daemons?: Record<string, AppDaemonConfig>;
|
|
146
|
+
}
|
|
147
|
+
/** The command a service runs in `mode`; undefined for a static one. */
|
|
148
|
+
export declare function serviceCommand(service: AppServiceConfig, mode: AppMode): AppCommand | undefined;
|
|
149
|
+
export declare function daemonCommand(daemon: AppDaemonConfig, mode: AppMode): AppCommand;
|
|
150
|
+
/** Whether the app runs any process in `mode` (a static-only one is served without one). */
|
|
151
|
+
export declare function appRunsProcesses(config: AppConfig, mode: AppMode): boolean;
|
|
152
|
+
/** What keeps an app from running in `mode`: a deployed service needs a start command or built output. */
|
|
153
|
+
export declare function appConfigProblems(config: AppConfig, mode: AppMode): string[];
|
|
154
|
+
export type AppManifestResult = {
|
|
155
|
+
ok: true;
|
|
156
|
+
manifest: AppManifest;
|
|
157
|
+
} | {
|
|
158
|
+
ok: false;
|
|
159
|
+
error: string;
|
|
160
|
+
};
|
|
161
|
+
/** Parses builder.json text, with every problem in one readable line. */
|
|
162
|
+
export declare function parseAppManifest(text: string): AppManifestResult;
|
|
163
|
+
/** A finished release's manifest, or undefined when it can't be one. */
|
|
164
|
+
export declare function parseReleaseManifest(text: string): ReleaseManifest | undefined;
|
|
165
|
+
/**
|
|
166
|
+
* A finished release's builder.json, or undefined when it can't be used. The build that uploaded it
|
|
167
|
+
* ran the app's own code, so it is read like any other, patterns and paths included.
|
|
168
|
+
*/
|
|
169
|
+
export declare function parseReleaseConfig(text: string): AppConfig | undefined;
|
|
170
|
+
export type AppResolution = {
|
|
171
|
+
ok: true;
|
|
172
|
+
config: AppConfig;
|
|
173
|
+
/** The framework its first service to name one runs as; null for none. */
|
|
174
|
+
framework: Framework | null;
|
|
175
|
+
/** Whether builder.json said how it runs, or it was only detected. */
|
|
176
|
+
source: 'detected' | 'builder.json';
|
|
177
|
+
} | {
|
|
178
|
+
ok: false;
|
|
179
|
+
error: string;
|
|
180
|
+
};
|
|
181
|
+
/**
|
|
182
|
+
* The app as the reader's builder.json says, with no looking at anything else unless a service
|
|
183
|
+
* names a framework: undefined when there is no file, not ok when it is invalid or can't run in `mode`.
|
|
184
|
+
*/
|
|
185
|
+
export declare function configuredApp(reader: AppFileReader, mode: AppMode): Promise<AppResolution | undefined>;
|
|
186
|
+
/**
|
|
187
|
+
* The app in the reader's directory: as its builder.json says, or what is detected when it has
|
|
188
|
+
* none (a deployment of a git tree nothing has written one for). Undefined when there is neither.
|
|
189
|
+
*/
|
|
190
|
+
export declare function resolveApp(reader: AppFileReader, mode: AppMode): Promise<AppResolution | undefined>;
|
|
191
|
+
export { appSite, resolveSitePath, siteLocationOf, siteRunsProcess, type AppSite, type SiteAnswer, type SiteLocation } from './site';
|
|
192
|
+
export { siteContentType } from './static-server';
|
|
193
|
+
export type { ReleaseManifest } from './release-artifacts';
|
|
194
|
+
/** Reads an app's files from its directory on disk. */
|
|
195
|
+
export declare function directoryReader(dir: string): AppFileReader;
|
|
196
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/app/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.siteContentType = exports.siteRunsProcess = exports.siteLocationOf = exports.resolveSitePath = exports.appSite = exports.appConfigSchema = exports.FRAMEWORKS = exports.fileListReader = exports.detectProject = exports.detectApp = void 0;
|
|
7
|
+
exports.appConfigJsonSchema = appConfigJsonSchema;
|
|
8
|
+
exports.serviceCommand = serviceCommand;
|
|
9
|
+
exports.daemonCommand = daemonCommand;
|
|
10
|
+
exports.appRunsProcesses = appRunsProcesses;
|
|
11
|
+
exports.appConfigProblems = appConfigProblems;
|
|
12
|
+
exports.parseAppManifest = parseAppManifest;
|
|
13
|
+
exports.parseReleaseManifest = parseReleaseManifest;
|
|
14
|
+
exports.parseReleaseConfig = parseReleaseConfig;
|
|
15
|
+
exports.configuredApp = configuredApp;
|
|
16
|
+
exports.resolveApp = resolveApp;
|
|
17
|
+
exports.directoryReader = directoryReader;
|
|
18
|
+
// builder.json: how an app runs, in the shape of vercel.json's services — `services`, `rewrites` that
|
|
19
|
+
// pick one by path (a static service that has no such file passes the request to the next match, as
|
|
20
|
+
// Vercel's filesystem comes before its routes), and `daemons` that run with no port. With no file the
|
|
21
|
+
// app is detected (detect.ts), and a session VM writes the result into one (manifest.ts); once there
|
|
22
|
+
// is a file it alone says what runs and where, whatever folders the app has. A service's named
|
|
23
|
+
// `framework` supplies what it leaves out, and nothing else is guessed. Dev commands run in the session
|
|
24
|
+
// VM; build and start commands in a deployment. Imported by the api as `@multiplayer-app/agent/app-config`.
|
|
25
|
+
const node_fs_1 = require("node:fs");
|
|
26
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
27
|
+
const zod_1 = require("zod");
|
|
28
|
+
const workload_1 = require("../runtime/workload");
|
|
29
|
+
const protocol_1 = require("../transport/protocol");
|
|
30
|
+
const detect_1 = require("./detect");
|
|
31
|
+
const route_pattern_1 = require("./route-pattern");
|
|
32
|
+
var detect_2 = require("./detect");
|
|
33
|
+
Object.defineProperty(exports, "detectApp", { enumerable: true, get: function () { return detect_2.detectApp; } });
|
|
34
|
+
Object.defineProperty(exports, "detectProject", { enumerable: true, get: function () { return detect_2.detectProject; } });
|
|
35
|
+
Object.defineProperty(exports, "fileListReader", { enumerable: true, get: function () { return detect_2.fileListReader; } });
|
|
36
|
+
Object.defineProperty(exports, "FRAMEWORKS", { enumerable: true, get: function () { return detect_2.FRAMEWORKS; } });
|
|
37
|
+
/** The functions host (functions-host.ts), which the agent package installs on PATH. */
|
|
38
|
+
const FUNCTIONS_BIN = 'builder-functions';
|
|
39
|
+
const NAME = /^[A-Za-z0-9][A-Za-z0-9_-]{0,39}$/;
|
|
40
|
+
/** A workspace-relative directory that stays inside it. */
|
|
41
|
+
function isInsideDir(value) {
|
|
42
|
+
if (!value || value.includes('\\') || value.includes('\0') || node_path_1.default.posix.isAbsolute(value))
|
|
43
|
+
return false;
|
|
44
|
+
return !node_path_1.default.posix.normalize(value).split('/').includes('..');
|
|
45
|
+
}
|
|
46
|
+
const directory = zod_1.z.string().max(500).refine(isInsideDir, 'must be a relative path inside the app');
|
|
47
|
+
const shellCommand = zod_1.z.string().trim().min(1).max(4000);
|
|
48
|
+
/** A shell command line, or an argv run without a shell (as vercel.json's daemon `command`). */
|
|
49
|
+
const command = zod_1.z.union([shellCommand, zod_1.z.array(zod_1.z.string().min(1).max(4000)).min(1).max(64)]);
|
|
50
|
+
const source = zod_1.z
|
|
51
|
+
.string()
|
|
52
|
+
.min(1)
|
|
53
|
+
.max(500)
|
|
54
|
+
.superRefine((value, context) => {
|
|
55
|
+
const problem = (0, route_pattern_1.routeSourceProblem)(value);
|
|
56
|
+
if (problem)
|
|
57
|
+
context.addIssue({ code: 'custom', message: `is not a usable path pattern: ${problem}` });
|
|
58
|
+
});
|
|
59
|
+
/** Each can use up its time limit on a request, so a file can't hold many. Plain paths and wildcards don't count. */
|
|
60
|
+
const MAX_TIME_LIMITED_PATTERNS = 32;
|
|
61
|
+
const port = zod_1.z
|
|
62
|
+
.number()
|
|
63
|
+
.int()
|
|
64
|
+
.min(1)
|
|
65
|
+
.max(65535)
|
|
66
|
+
.refine((value) => !protocol_1.GUEST_RESERVED_PORTS.includes(value), `is reserved by the VM (${protocol_1.GUEST_RESERVED_PORTS.join(', ')})`);
|
|
67
|
+
const headerRule = zod_1.z.strictObject({
|
|
68
|
+
source,
|
|
69
|
+
headers: zod_1.z.array(zod_1.z.strictObject({ key: zod_1.z.string().min(1).max(200), value: zod_1.z.string().max(4000) })).min(1).max(50),
|
|
70
|
+
});
|
|
71
|
+
const pathRewrite = zod_1.z.strictObject({ source, destination: zod_1.z.string().regex(/^\//, 'must be a path').max(500) });
|
|
72
|
+
const REDIRECT_STATUSES = [301, 302, 303, 307, 308];
|
|
73
|
+
const redirect = zod_1.z
|
|
74
|
+
.strictObject({
|
|
75
|
+
source,
|
|
76
|
+
destination: zod_1.z.string().max(2000).regex(/^(\/|https?:\/\/)/i, 'must be a path or an http(s) URL'),
|
|
77
|
+
permanent: zod_1.z.boolean().optional(),
|
|
78
|
+
statusCode: zod_1.z.number().refine((status) => REDIRECT_STATUSES.includes(status), `must be one of ${REDIRECT_STATUSES.join(', ')}`).optional(),
|
|
79
|
+
})
|
|
80
|
+
.refine((rule) => rule.permanent === undefined || rule.statusCode === undefined, 'takes permanent or statusCode, not both');
|
|
81
|
+
const serviceRewrite = zod_1.z.strictObject({
|
|
82
|
+
source: source.describe('The request path: /api/(.*), /blog/:slug.'),
|
|
83
|
+
destination: zod_1.z.strictObject({ service: zod_1.z.string().min(1).describe('A name in "services".') }),
|
|
84
|
+
});
|
|
85
|
+
const functionsConfig = zod_1.z.strictObject({
|
|
86
|
+
directory: directory.describe('The folder of function files, relative to root.'),
|
|
87
|
+
path: zod_1.z.string().max(200).regex(/^\/[A-Za-z0-9/_.-]*$/, 'must be a URL path such as /api').optional().describe("The URL they answer below. Default: the folder's own path."),
|
|
88
|
+
});
|
|
89
|
+
const service = zod_1.z.strictObject({
|
|
90
|
+
root: directory.optional().describe("The service's folder, relative to the workspace. Default: the workspace."),
|
|
91
|
+
framework: zod_1.z.enum(detect_1.FRAMEWORKS).nullable().optional().describe('A framework whose preset supplies the commands this service leaves out; null for none.'),
|
|
92
|
+
installCommand: shellCommand.optional().describe('Installs its dependencies.'),
|
|
93
|
+
devCommand: command.optional().describe('Runs it in a session VM, listening on $PORT. A shell command, or an argv run without a shell.'),
|
|
94
|
+
buildCommand: shellCommand.optional().describe('Builds it for a deployment, or for a session VM when it has no devCommand.'),
|
|
95
|
+
startCommand: command.optional().describe('Runs it in a deployment, listening on $PORT. Without one, outputDirectory is served.'),
|
|
96
|
+
outputDirectory: directory.optional().describe('The static files to serve, relative to root.'),
|
|
97
|
+
functions: functionsConfig.optional().describe('This service is the functions in this folder, run by the platform.'),
|
|
98
|
+
port: port.optional().describe('The port it listens on, also given as $PORT. Default: the next free one from 3000.'),
|
|
99
|
+
rewrites: zod_1.z.array(pathRewrite).max(100).optional().describe("For a static site, a path with no file is served as destination (an SPA's index.html); a server gets destination as the path."),
|
|
100
|
+
headers: zod_1.z.array(headerRule).max(100).optional().describe('Headers set on what this service answers, by path.'),
|
|
101
|
+
redirects: zod_1.z.array(redirect).max(100).optional().describe('To a path or another site; 308 unless permanent: false (307) or a statusCode says otherwise.'),
|
|
102
|
+
cleanUrls: zod_1.z.boolean().optional().describe('Static sites: /about serves about.html, and /about.html redirects to /about.'),
|
|
103
|
+
trailingSlash: zod_1.z.boolean().optional().describe('true: /about redirects to /about/; false: /about/ redirects to /about.'),
|
|
104
|
+
});
|
|
105
|
+
const daemon = zod_1.z.strictObject({
|
|
106
|
+
root: directory.optional().describe("The daemon's folder, relative to the workspace. Default: the workspace."),
|
|
107
|
+
installCommand: shellCommand.optional().describe('Installs its dependencies.'),
|
|
108
|
+
command: command.describe('Runs it. A shell command, or an argv run without a shell.'),
|
|
109
|
+
devCommand: command.optional().describe('Runs it in a session VM instead of command.'),
|
|
110
|
+
});
|
|
111
|
+
/** Those that compiled: an invalid one has its own issue. */
|
|
112
|
+
function timeLimitedPatterns(manifest) {
|
|
113
|
+
var _a, _b;
|
|
114
|
+
const rules = [
|
|
115
|
+
...((_a = manifest.rewrites) !== null && _a !== void 0 ? _a : []),
|
|
116
|
+
...Object.values((_b = manifest.services) !== null && _b !== void 0 ? _b : {}).flatMap((value) => { var _a, _b, _c; return [...((_a = value.rewrites) !== null && _a !== void 0 ? _a : []), ...((_b = value.headers) !== null && _b !== void 0 ? _b : []), ...((_c = value.redirects) !== null && _c !== void 0 ? _c : [])]; }),
|
|
117
|
+
];
|
|
118
|
+
return rules.filter((rule) => !(0, route_pattern_1.routeSourceProblem)(rule.source) && (0, route_pattern_1.runsOnTimeLimit)(rule.source)).length;
|
|
119
|
+
}
|
|
120
|
+
exports.appConfigSchema = zod_1.z
|
|
121
|
+
.strictObject({
|
|
122
|
+
$schema: zod_1.z.string().optional().describe('The JSON schema of this file.'),
|
|
123
|
+
$generated: zod_1.z.string().optional().describe('Set by the platform on a file it wrote, which it then keeps up with the project. Change anything else and the file is yours from then on.'),
|
|
124
|
+
services: zod_1.z.record(zod_1.z.string().regex(NAME, 'must be a short name'), service).optional().describe('What runs and answers requests, by name.'),
|
|
125
|
+
rewrites: zod_1.z
|
|
126
|
+
.array(serviceRewrite)
|
|
127
|
+
.max(100)
|
|
128
|
+
.optional()
|
|
129
|
+
.describe('Which service answers a path, first match first; needed with more than one. A static service with no file for the path passes the request to the next match.'),
|
|
130
|
+
daemons: zod_1.z.record(zod_1.z.string().regex(NAME, 'must be a short name'), daemon).optional().describe('Processes that run with no port, by name.'),
|
|
131
|
+
})
|
|
132
|
+
.superRefine((manifest, context) => {
|
|
133
|
+
var _a, _b, _c, _d, _e, _f;
|
|
134
|
+
const services = Object.keys((_a = manifest.services) !== null && _a !== void 0 ? _a : {});
|
|
135
|
+
if (!services.length && !Object.keys((_b = manifest.daemons) !== null && _b !== void 0 ? _b : {}).length) {
|
|
136
|
+
context.addIssue({ code: 'custom', path: ['services'], message: 'are needed: nothing here runs' });
|
|
137
|
+
}
|
|
138
|
+
(_c = manifest.rewrites) === null || _c === void 0 ? void 0 : _c.forEach((rewrite, index) => {
|
|
139
|
+
if (!services.includes(rewrite.destination.service)) {
|
|
140
|
+
context.addIssue({ code: 'custom', path: ['rewrites', index, 'destination', 'service'], message: 'names no service in "services"' });
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
if (services.length > 1 && !((_d = manifest.rewrites) === null || _d === void 0 ? void 0 : _d.length)) {
|
|
144
|
+
context.addIssue({ code: 'custom', path: ['rewrites'], message: 'are needed to choose between more than one service' });
|
|
145
|
+
}
|
|
146
|
+
for (const name of Object.keys((_e = manifest.daemons) !== null && _e !== void 0 ? _e : {})) {
|
|
147
|
+
if (services.includes(name))
|
|
148
|
+
context.addIssue({ code: 'custom', path: ['daemons', name], message: 'has the same name as a service' });
|
|
149
|
+
}
|
|
150
|
+
if (timeLimitedPatterns(manifest) > MAX_TIME_LIMITED_PATTERNS) {
|
|
151
|
+
context.addIssue({ code: 'custom', message: `has more than ${MAX_TIME_LIMITED_PATTERNS} path patterns with optional parts, alternatives or more than one wildcard` });
|
|
152
|
+
}
|
|
153
|
+
const ports = new Map();
|
|
154
|
+
for (const [name, value] of Object.entries((_f = manifest.services) !== null && _f !== void 0 ? _f : {})) {
|
|
155
|
+
if (value.port === undefined)
|
|
156
|
+
continue;
|
|
157
|
+
const other = ports.get(value.port);
|
|
158
|
+
if (other)
|
|
159
|
+
context.addIssue({ code: 'custom', path: ['services', name, 'port'], message: `is also ${other}'s port` });
|
|
160
|
+
ports.set(value.port, name);
|
|
161
|
+
}
|
|
162
|
+
})
|
|
163
|
+
.meta({ title: 'builder.json', description: 'How a workspace\'s app runs: its services, the rewrites between them, and its daemons.' });
|
|
164
|
+
/**
|
|
165
|
+
* builder.json's JSON Schema, for editors (what its `$schema` points at; the api serves it). The
|
|
166
|
+
* same rules as parseAppManifest, except those only code can check: paths that leave the app,
|
|
167
|
+
* reserved ports, rewrites naming a service that isn't there. parseAppManifest still has the last word.
|
|
168
|
+
*/
|
|
169
|
+
function appConfigJsonSchema() {
|
|
170
|
+
return zod_1.z.toJSONSchema(exports.appConfigSchema, { target: 'draft-7' });
|
|
171
|
+
}
|
|
172
|
+
/** The command a service runs in `mode`; undefined for a static one. */
|
|
173
|
+
function serviceCommand(service, mode) {
|
|
174
|
+
return mode === 'dev' ? service.devCommand : service.startCommand;
|
|
175
|
+
}
|
|
176
|
+
function daemonCommand(daemon, mode) {
|
|
177
|
+
return (mode === 'dev' && daemon.devCommand) || daemon.command;
|
|
178
|
+
}
|
|
179
|
+
/** Whether the app runs any process in `mode` (a static-only one is served without one). */
|
|
180
|
+
function appRunsProcesses(config, mode) {
|
|
181
|
+
var _a;
|
|
182
|
+
return Object.keys((_a = config.daemons) !== null && _a !== void 0 ? _a : {}).length > 0 || Object.values(config.services).some((service) => serviceCommand(service, mode));
|
|
183
|
+
}
|
|
184
|
+
/** What keeps an app from running in `mode`: a deployed service needs a start command or built output. */
|
|
185
|
+
function appConfigProblems(config, mode) {
|
|
186
|
+
if (mode === 'dev')
|
|
187
|
+
return [];
|
|
188
|
+
return Object.entries(config.services)
|
|
189
|
+
.filter(([, service]) => !service.startCommand && !service.outputDirectory)
|
|
190
|
+
.map(([name]) => `services.${name} needs a startCommand or an outputDirectory to deploy`);
|
|
191
|
+
}
|
|
192
|
+
function describeIssues(error) {
|
|
193
|
+
return error.issues
|
|
194
|
+
.map((issue) => {
|
|
195
|
+
const where = issue.path.map(String).join('.');
|
|
196
|
+
return where ? `${where}: ${issue.message}` : issue.message;
|
|
197
|
+
})
|
|
198
|
+
.join('; ');
|
|
199
|
+
}
|
|
200
|
+
/** Parses builder.json text, with every problem in one readable line. */
|
|
201
|
+
function parseAppManifest(text) {
|
|
202
|
+
let json;
|
|
203
|
+
try {
|
|
204
|
+
json = JSON.parse(text);
|
|
205
|
+
}
|
|
206
|
+
catch (error) {
|
|
207
|
+
return { ok: false, error: `${protocol_1.APP_CONFIG_FILE} is not valid JSON: ${error.message}` };
|
|
208
|
+
}
|
|
209
|
+
const parsed = exports.appConfigSchema.safeParse(json);
|
|
210
|
+
if (!parsed.success)
|
|
211
|
+
return { ok: false, error: `${protocol_1.APP_CONFIG_FILE}: ${describeIssues(parsed.error)}` };
|
|
212
|
+
return { ok: true, manifest: parsed.data };
|
|
213
|
+
}
|
|
214
|
+
const encodedSize = zod_1.z.number().int().positive().optional();
|
|
215
|
+
const releaseManifestSchema = zod_1.z.looseObject({
|
|
216
|
+
site: zod_1.z.array(zod_1.z.looseObject({
|
|
217
|
+
path: zod_1.z.string().min(1).max(1024),
|
|
218
|
+
size: zod_1.z.number().int().nonnegative().optional(),
|
|
219
|
+
// Goes in a header as it is. An older release has neither of these.
|
|
220
|
+
hash: zod_1.z.string().regex(/^[\w-]{1,128}$/).optional(),
|
|
221
|
+
encodings: zod_1.z.object({ br: encodedSize, gzip: encodedSize }).optional(),
|
|
222
|
+
})),
|
|
223
|
+
});
|
|
224
|
+
/** A finished release's manifest, or undefined when it can't be one. */
|
|
225
|
+
function parseReleaseManifest(text) {
|
|
226
|
+
try {
|
|
227
|
+
return releaseManifestSchema.parse(JSON.parse(text));
|
|
228
|
+
}
|
|
229
|
+
catch (_a) {
|
|
230
|
+
return undefined;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* A finished release's builder.json, or undefined when it can't be used. The build that uploaded it
|
|
235
|
+
* ran the app's own code, so it is read like any other, patterns and paths included.
|
|
236
|
+
*/
|
|
237
|
+
function parseReleaseConfig(text) {
|
|
238
|
+
try {
|
|
239
|
+
const parsed = exports.appConfigSchema.safeParse(JSON.parse(text));
|
|
240
|
+
return parsed.success && parsed.data.services ? parsed.data : undefined;
|
|
241
|
+
}
|
|
242
|
+
catch (_a) {
|
|
243
|
+
return undefined;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
/** An object without its undefined values, so spreading it never clears what it overrides. */
|
|
247
|
+
function defined(value) {
|
|
248
|
+
return Object.fromEntries(Object.entries(value).filter(([, entry]) => entry !== undefined));
|
|
249
|
+
}
|
|
250
|
+
function runsSomething(service) {
|
|
251
|
+
return Boolean(service.devCommand || service.startCommand || service.buildCommand || service.outputDirectory);
|
|
252
|
+
}
|
|
253
|
+
function folderOf(functions) {
|
|
254
|
+
return node_path_1.default.posix.normalize(functions.directory).replace(/\/+$/, '');
|
|
255
|
+
}
|
|
256
|
+
/** The URL `functions` answer below, without a trailing slash: '' for the root. */
|
|
257
|
+
function functionsUrlPath(functions) {
|
|
258
|
+
var _a;
|
|
259
|
+
const folder = folderOf(functions);
|
|
260
|
+
return ((_a = functions.path) !== null && _a !== void 0 ? _a : (folder === '.' ? '/' : `/${folder}`)).replace(/\/+$/, '');
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* The manifest as the runner runs it. A service's framework supplies what it leaves out; functions
|
|
264
|
+
* become the platform's commands. Their folder's own path reaches them too (they answer 404), so a
|
|
265
|
+
* static site at the app's root never serves their source.
|
|
266
|
+
*/
|
|
267
|
+
async function toConfig(manifest, reader, mode, from) {
|
|
268
|
+
var _a, _b, _c, _d, _e, _f;
|
|
269
|
+
const services = {};
|
|
270
|
+
const hidden = [];
|
|
271
|
+
let framework = null;
|
|
272
|
+
for (const [name, { framework: chosen, functions, ...declared }] of Object.entries((_a = manifest.services) !== null && _a !== void 0 ? _a : {})) {
|
|
273
|
+
const preset = chosen ? await (0, detect_1.detectApp)(reader, (_b = declared.root) !== null && _b !== void 0 ? _b : '.', chosen) : undefined;
|
|
274
|
+
const merged = { ...defined((_c = preset === null || preset === void 0 ? void 0 : preset.settings) !== null && _c !== void 0 ? _c : {}), ...defined(declared), ...(chosen ? { framework: chosen } : {}) };
|
|
275
|
+
framework !== null && framework !== void 0 ? framework : (framework = chosen !== null && chosen !== void 0 ? chosen : null);
|
|
276
|
+
if (functions) {
|
|
277
|
+
const args = ['--dir', functions.directory, '--path', functionsUrlPath(functions) || '/'];
|
|
278
|
+
(_d = merged.devCommand) !== null && _d !== void 0 ? _d : (merged.devCommand = [FUNCTIONS_BIN, '--watch', ...args]);
|
|
279
|
+
(_e = merged.startCommand) !== null && _e !== void 0 ? _e : (merged.startCommand = [FUNCTIONS_BIN, ...args]);
|
|
280
|
+
const folder = `/${folderOf(functions)}`;
|
|
281
|
+
if (folder !== '/.' && folder !== functionsUrlPath(functions)) {
|
|
282
|
+
for (const source of [folder, `${folder}/(.*)`])
|
|
283
|
+
hidden.push({ source, destination: { service: name } });
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
if (!runsSomething(merged)) {
|
|
287
|
+
return { ok: false, error: `${protocol_1.APP_CONFIG_FILE}: services.${name} sets nothing to run; set a devCommand, a startCommand, an outputDirectory, functions or a framework` };
|
|
288
|
+
}
|
|
289
|
+
services[name] = merged;
|
|
290
|
+
}
|
|
291
|
+
const rewrites = [...(Object.keys(services).length > 1 ? hidden : []), ...((_f = manifest.rewrites) !== null && _f !== void 0 ? _f : [])];
|
|
292
|
+
const config = {
|
|
293
|
+
services,
|
|
294
|
+
...(rewrites.length ? { rewrites } : {}),
|
|
295
|
+
...(manifest.daemons ? { daemons: manifest.daemons } : {}),
|
|
296
|
+
};
|
|
297
|
+
const problems = appConfigProblems(config, mode);
|
|
298
|
+
if (problems.length)
|
|
299
|
+
return { ok: false, error: `${from === 'detected' ? 'Detected app' : protocol_1.APP_CONFIG_FILE}: ${problems.join('; ')}` };
|
|
300
|
+
return { ok: true, config, framework, source: from };
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* The app as the reader's builder.json says, with no looking at anything else unless a service
|
|
304
|
+
* names a framework: undefined when there is no file, not ok when it is invalid or can't run in `mode`.
|
|
305
|
+
*/
|
|
306
|
+
async function configuredApp(reader, mode) {
|
|
307
|
+
const text = await reader.read(protocol_1.APP_CONFIG_FILE);
|
|
308
|
+
if (text === undefined)
|
|
309
|
+
return undefined;
|
|
310
|
+
const parsed = parseAppManifest(text);
|
|
311
|
+
if (!parsed.ok)
|
|
312
|
+
return parsed;
|
|
313
|
+
return toConfig(parsed.manifest, reader, mode, 'builder.json');
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* The app in the reader's directory: as its builder.json says, or what is detected when it has
|
|
317
|
+
* none (a deployment of a git tree nothing has written one for). Undefined when there is neither.
|
|
318
|
+
*/
|
|
319
|
+
async function resolveApp(reader, mode) {
|
|
320
|
+
const configured = await configuredApp(reader, mode);
|
|
321
|
+
if (configured)
|
|
322
|
+
return configured;
|
|
323
|
+
const detected = await (0, detect_1.detectProject)(reader);
|
|
324
|
+
return detected && toConfig(detected, reader, mode, 'detected');
|
|
325
|
+
}
|
|
326
|
+
var site_1 = require("./site");
|
|
327
|
+
Object.defineProperty(exports, "appSite", { enumerable: true, get: function () { return site_1.appSite; } });
|
|
328
|
+
Object.defineProperty(exports, "resolveSitePath", { enumerable: true, get: function () { return site_1.resolveSitePath; } });
|
|
329
|
+
Object.defineProperty(exports, "siteLocationOf", { enumerable: true, get: function () { return site_1.siteLocationOf; } });
|
|
330
|
+
Object.defineProperty(exports, "siteRunsProcess", { enumerable: true, get: function () { return site_1.siteRunsProcess; } });
|
|
331
|
+
var static_server_1 = require("./static-server");
|
|
332
|
+
Object.defineProperty(exports, "siteContentType", { enumerable: true, get: function () { return static_server_1.siteContentType; } });
|
|
333
|
+
/** Reads an app's files from its directory on disk. */
|
|
334
|
+
function directoryReader(dir) {
|
|
335
|
+
const inside = (file) => node_path_1.default.resolve(dir, file);
|
|
336
|
+
return {
|
|
337
|
+
exists: (file) => node_fs_1.promises.access(inside(file)).then(() => true, () => false),
|
|
338
|
+
read: async (file) => {
|
|
339
|
+
try {
|
|
340
|
+
return (await (0, workload_1.readInside)(dir, inside(file))).toString('utf8');
|
|
341
|
+
}
|
|
342
|
+
catch (error) {
|
|
343
|
+
const code = error.code;
|
|
344
|
+
if (code === 'ENOENT' || code === 'EISDIR' || code === 'ENOTDIR')
|
|
345
|
+
return undefined;
|
|
346
|
+
throw error;
|
|
347
|
+
}
|
|
348
|
+
},
|
|
349
|
+
directories: async (relative) => {
|
|
350
|
+
const entries = await node_fs_1.promises.readdir(inside(relative), { withFileTypes: true }).catch(() => []);
|
|
351
|
+
return entries.filter((entry) => entry.isDirectory()).map((entry) => entry.name);
|
|
352
|
+
},
|
|
353
|
+
list: async (relative) => {
|
|
354
|
+
const entries = await node_fs_1.promises.readdir(inside(relative), { recursive: true, withFileTypes: true }).catch(() => []);
|
|
355
|
+
return entries
|
|
356
|
+
.filter((entry) => entry.isFile())
|
|
357
|
+
.map((entry) => node_path_1.default.relative(inside(relative), node_path_1.default.join(entry.parentPath, entry.name)).split(node_path_1.default.sep).join('/'))
|
|
358
|
+
.filter((file) => !file.split('/').includes('node_modules'));
|
|
359
|
+
},
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
//# sourceMappingURL=config.js.map
|