@aotter/mantle-cloudflare 0.1.0-alpha.2 → 0.1.0-alpha.4
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 +31 -2
- package/dist/auth/conventionalAuth.d.ts +4 -1
- package/dist/auth/conventionalAuth.d.ts.map +1 -1
- package/dist/auth/conventionalAuth.js +86 -20
- package/dist/auth/conventionalAuth.js.map +1 -1
- package/dist/bindings/conventionalBindings.d.ts.map +1 -1
- package/dist/bindings/conventionalBindings.js +2 -0
- package/dist/bindings/conventionalBindings.js.map +1 -1
- package/dist/mount/bootRuntimeOnce.d.ts.map +1 -1
- package/dist/mount/bootRuntimeOnce.js +1 -0
- package/dist/mount/bootRuntimeOnce.js.map +1 -1
- package/dist/mount/cmsConfig.d.ts +1 -0
- package/dist/mount/cmsConfig.d.ts.map +1 -1
- package/dist/mount/index.d.ts +1 -1
- package/dist/mount/index.d.ts.map +1 -1
- package/dist/mount/index.js.map +1 -1
- package/dist/mount/mountMcp.d.ts.map +1 -1
- package/dist/mount/mountMcp.js +23 -7
- package/dist/mount/mountMcp.js.map +1 -1
- package/dist/mount/mountPublicRoutes.d.ts +8 -3
- package/dist/mount/mountPublicRoutes.d.ts.map +1 -1
- package/dist/mount/mountPublicRoutes.js +209 -28
- package/dist/mount/mountPublicRoutes.js.map +1 -1
- package/dist/mount/mountServerEndpoints.d.ts.map +1 -1
- package/dist/mount/mountServerEndpoints.js +197 -81
- package/dist/mount/mountServerEndpoints.js.map +1 -1
- package/dist/oauth/cachePolicy.d.ts +1 -0
- package/dist/oauth/cachePolicy.d.ts.map +1 -1
- package/dist/oauth/cachePolicy.js +2 -0
- package/dist/oauth/cachePolicy.js.map +1 -1
- package/dist/worker/createMantleWorker.d.ts +3 -3
- package/dist/worker/createMantleWorker.d.ts.map +1 -1
- package/dist/worker/createMantleWorker.js +14 -1
- package/dist/worker/createMantleWorker.js.map +1 -1
- package/package.json +4 -4
- package/dist/assets/aotterFavicon.d.ts +0 -2
- package/dist/assets/aotterFavicon.d.ts.map +0 -1
- package/dist/assets/aotterFavicon.js +0 -5
- package/dist/assets/aotterFavicon.js.map +0 -1
package/README.md
CHANGED
|
@@ -24,6 +24,32 @@ they reuse the fetch path's assembled runtime instead of writing directly to
|
|
|
24
24
|
Mantle tables. Queue handlers still own per-message acknowledgement, retry,
|
|
25
25
|
and idempotency.
|
|
26
26
|
|
|
27
|
+
### Conventional Auth
|
|
28
|
+
|
|
29
|
+
Without an `auth` option, `createMantleWorker` requires one explicit mode:
|
|
30
|
+
|
|
31
|
+
| Mode | Non-secret bindings | Worker secrets | Must be absent |
|
|
32
|
+
|---|---|---|---|
|
|
33
|
+
| `self-managed` | `MANTLE_AUTH_MODE=self-managed`, `PUBLIC_ORIGIN`, `GITHUB_CLIENT_ID`, `ADMIN_GITHUB_LOGIN` | `GITHUB_CLIENT_SECRET`, `BETTER_AUTH_SECRET` | `MANTLE_HOSTED_AUTH_ISSUER`, `MANTLE_HOSTED_AUTH_CLIENT_ID` |
|
|
34
|
+
| `hosted` | `MANTLE_AUTH_MODE=hosted`, `PUBLIC_ORIGIN`, `MANTLE_HOSTED_AUTH_ISSUER`, `MANTLE_HOSTED_AUTH_CLIENT_ID`, `ADMIN_GITHUB_LOGIN` | `BETTER_AUTH_SECRET` | `GITHUB_CLIENT_ID`, `GITHUB_CLIENT_SECRET` |
|
|
35
|
+
|
|
36
|
+
Hosted Auth is a public PKCE client with no client secret. Its issuer must be
|
|
37
|
+
an HTTPS root origin (HTTP is accepted only for loopback development), and the
|
|
38
|
+
client id must be a URL at the same origin with the shape `/clients/<id>`.
|
|
39
|
+
Invalid, partial, or mixed-mode configuration fails closed: public site routes
|
|
40
|
+
remain available, while Admin, Auth, OAuth, and MCP routes return
|
|
41
|
+
`503 setup_incomplete`.
|
|
42
|
+
|
|
43
|
+
Sites with a different identity design may preserve Core's route ownership
|
|
44
|
+
while replacing only construction:
|
|
45
|
+
|
|
46
|
+
```ts
|
|
47
|
+
createMantleWorker({
|
|
48
|
+
manifest,
|
|
49
|
+
auth: (env) => createAuth({ /* curated site-specific methods */ }),
|
|
50
|
+
});
|
|
51
|
+
```
|
|
52
|
+
|
|
27
53
|
When the conventional lifecycle really does not fit, copy the
|
|
28
54
|
[low-level composition fixture](../../../docs/cloudflare-low-level-composition.md).
|
|
29
55
|
It uses the same public bindings, Auth, runtime, OAuth/MCP, cache and error
|
|
@@ -100,8 +126,11 @@ responses that explicitly declare `public` plus shared freshness remain
|
|
|
100
126
|
cacheable; they vary on `Cookie` and `Authorization`.
|
|
101
127
|
|
|
102
128
|
`mountPublicRoutes(...)` renders D1-backed HTML, markdown, `llms.txt`, and
|
|
103
|
-
sitemap responses with that explicit public contract
|
|
104
|
-
|
|
129
|
+
sitemap responses with that explicit public contract and one `mantle-public`
|
|
130
|
+
Cache-Tag. Publishing-content and site-setting mutations purge that tag through
|
|
131
|
+
the native Workers cache API; immutable assets and operational records stay
|
|
132
|
+
outside the purge boundary. Workers Cache stores only responses that still
|
|
133
|
+
satisfy the anonymous policy, and remains version-local. See the
|
|
105
134
|
[adapter implementation guide](../../../docs/adapter-guide.md#http-cache-contract).
|
|
106
135
|
|
|
107
136
|
## Optional R2 Media Uploads
|
|
@@ -3,11 +3,14 @@ export interface ConventionalAuthEnv {
|
|
|
3
3
|
readonly DB: D1Database;
|
|
4
4
|
readonly PUBLIC_ORIGIN?: string;
|
|
5
5
|
readonly BETTER_AUTH_SECRET?: string;
|
|
6
|
+
readonly MANTLE_AUTH_MODE?: string;
|
|
7
|
+
readonly MANTLE_HOSTED_AUTH_ISSUER?: string;
|
|
8
|
+
readonly MANTLE_HOSTED_AUTH_CLIENT_ID?: string;
|
|
6
9
|
readonly GITHUB_CLIENT_ID?: string;
|
|
7
10
|
readonly GITHUB_CLIENT_SECRET?: string;
|
|
8
11
|
readonly ADMIN_GITHUB_LOGIN?: string;
|
|
9
12
|
}
|
|
10
|
-
/** Choose self-managed GitHub
|
|
13
|
+
/** Choose hosted or self-managed GitHub Auth, otherwise fail closed. */
|
|
11
14
|
export declare function createConventionalAuth(env: ConventionalAuthEnv): Auth;
|
|
12
15
|
/** Return the setup response only for Auth-owned private surfaces. */
|
|
13
16
|
export declare function setupIncompleteAuthResponse(request: Request, auth: Auth): Promise<Response | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conventionalAuth.d.ts","sourceRoot":"","sources":["../../src/auth/conventionalAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"conventionalAuth.d.ts","sourceRoot":"","sources":["../../src/auth/conventionalAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,IAAI,EACV,MAAM,iBAAiB,CAAC;AAQzB,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,wEAAwE;AACxE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI,CA2DrE;AAED,sEAAsE;AACtE,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAG1B"}
|
|
@@ -1,31 +1,63 @@
|
|
|
1
1
|
import { createAuth, createSetupIncompleteAuth, isSetupIncompleteAuth, } from "./createAuth.js";
|
|
2
2
|
import { OAUTH_AUTHORIZE_PATH, OAUTH_REGISTER_PATH, OAUTH_TOKEN_PATH, } from "../oauth/oauthConstants.js";
|
|
3
3
|
import { applyCachePolicy } from "../oauth/cachePolicy.js";
|
|
4
|
-
|
|
5
|
-
/** Choose self-managed GitHub OAuth or a fail-closed facade. */
|
|
4
|
+
/** Choose hosted or self-managed GitHub Auth, otherwise fail closed. */
|
|
6
5
|
export function createConventionalAuth(env) {
|
|
7
|
-
const
|
|
6
|
+
const mode = value(env.MANTLE_AUTH_MODE);
|
|
8
7
|
const secret = value(env.BETTER_AUTH_SECRET);
|
|
8
|
+
const owner = githubLogin(env.ADMIN_GITHUB_LOGIN);
|
|
9
|
+
const hostedIssuerRaw = value(env.MANTLE_HOSTED_AUTH_ISSUER);
|
|
10
|
+
const hostedClientIdRaw = value(env.MANTLE_HOSTED_AUTH_CLIENT_ID);
|
|
11
|
+
const hostedIssuer = hostedOrigin(hostedIssuerRaw);
|
|
12
|
+
const hostedClientId = hostedClient(hostedClientIdRaw, hostedIssuer);
|
|
9
13
|
const githubClientId = value(env.GITHUB_CLIENT_ID);
|
|
10
14
|
const githubClientSecret = value(env.GITHUB_CLIENT_SECRET);
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
const baseURL = value(env.PUBLIC_ORIGIN)?.replace(/\/+$/, "") ?? "http://localhost:8787";
|
|
16
|
+
if (mode === "hosted") {
|
|
17
|
+
if (!secret || !owner || !hostedIssuer || !hostedClientId || githubClientId || githubClientSecret) {
|
|
18
|
+
return incomplete("Hosted Auth is incomplete or conflicts with self-managed GitHub credentials.");
|
|
19
|
+
}
|
|
20
|
+
return createAuth({
|
|
21
|
+
database: env.DB,
|
|
22
|
+
baseURL,
|
|
23
|
+
secret,
|
|
24
|
+
methods: [{
|
|
25
|
+
kind: "oauth",
|
|
26
|
+
providerId: "github",
|
|
27
|
+
displayName: "GitHub",
|
|
28
|
+
clientId: hostedClientId,
|
|
29
|
+
authorizationUrl: `${hostedIssuer}/authorize`,
|
|
30
|
+
tokenUrl: `${hostedIssuer}/token`,
|
|
31
|
+
userInfoUrl: `${hostedIssuer}/userinfo`,
|
|
32
|
+
scopes: ["profile", "email"],
|
|
33
|
+
redirectURI: `${baseURL}/api/auth/oauth2/callback/github`,
|
|
34
|
+
pkce: true,
|
|
35
|
+
mapProfileToUser: (profile) => {
|
|
36
|
+
const login = githubLogin(profile.github_login);
|
|
37
|
+
return login ? { githubLogin: login } : {};
|
|
38
|
+
},
|
|
39
|
+
}],
|
|
40
|
+
bootstrapOwner: { match: "github-login", value: owner },
|
|
41
|
+
});
|
|
15
42
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
43
|
+
if (mode === "self-managed") {
|
|
44
|
+
if (!secret || !owner || !githubClientId || !githubClientSecret || hostedIssuerRaw || hostedClientIdRaw) {
|
|
45
|
+
return incomplete("Self-managed Auth is incomplete or conflicts with Hosted Auth configuration.");
|
|
46
|
+
}
|
|
47
|
+
return createAuth({
|
|
48
|
+
database: env.DB,
|
|
49
|
+
baseURL,
|
|
50
|
+
secret,
|
|
51
|
+
methods: [{
|
|
52
|
+
kind: "social",
|
|
53
|
+
provider: "github",
|
|
54
|
+
clientId: githubClientId,
|
|
55
|
+
clientSecret: githubClientSecret,
|
|
56
|
+
}],
|
|
57
|
+
bootstrapOwner: { match: "github-login", value: owner },
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return incomplete("MANTLE_AUTH_MODE must be hosted or self-managed.");
|
|
29
61
|
}
|
|
30
62
|
/** Return the setup response only for Auth-owned private surfaces. */
|
|
31
63
|
export async function setupIncompleteAuthResponse(request, auth) {
|
|
@@ -46,6 +78,40 @@ function isAuthProtectedPath(request, auth) {
|
|
|
46
78
|
|| pathname === "/mcp"
|
|
47
79
|
|| pathname.startsWith("/mcp/");
|
|
48
80
|
}
|
|
81
|
+
function incomplete(message) {
|
|
82
|
+
return createSetupIncompleteAuth({ message });
|
|
83
|
+
}
|
|
84
|
+
function hostedOrigin(raw) {
|
|
85
|
+
try {
|
|
86
|
+
const url = new URL(value(raw) ?? "");
|
|
87
|
+
if (!secureOrLoopback(url) || url.pathname !== "/" || url.search || url.hash)
|
|
88
|
+
return null;
|
|
89
|
+
return url.origin;
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function hostedClient(raw, issuer) {
|
|
96
|
+
try {
|
|
97
|
+
const url = new URL(value(raw) ?? "");
|
|
98
|
+
return issuer && secureOrLoopback(url) && url.origin === issuer && /^\/clients\/[A-Za-z0-9_-]{1,128}$/u.test(url.pathname) && !url.search && !url.hash
|
|
99
|
+
? url.toString()
|
|
100
|
+
: null;
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
function secureOrLoopback(url) {
|
|
107
|
+
return !url.username && !url.password && (url.protocol === "https:" || (url.protocol === "http:" &&
|
|
108
|
+
(url.hostname === "localhost" || url.hostname === "127.0.0.1" || url.hostname === "[::1]")));
|
|
109
|
+
}
|
|
110
|
+
function githubLogin(raw) {
|
|
111
|
+
return typeof raw === "string" && /^[A-Za-z0-9](?:[A-Za-z0-9-]{0,37}[A-Za-z0-9])?$/u.test(raw.trim())
|
|
112
|
+
? raw.trim()
|
|
113
|
+
: null;
|
|
114
|
+
}
|
|
49
115
|
function value(raw) {
|
|
50
116
|
return raw?.trim() || null;
|
|
51
117
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conventionalAuth.js","sourceRoot":"","sources":["../../src/auth/conventionalAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,yBAAyB,EACzB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"conventionalAuth.js","sourceRoot":"","sources":["../../src/auth/conventionalAuth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conventionalBindings.d.ts","sourceRoot":"","sources":["../../src/bindings/conventionalBindings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"conventionalBindings.d.ts","sourceRoot":"","sources":["../../src/bindings/conventionalBindings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAQvD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,oBAAoB,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;AAEzD,oFAAoF;AACpF,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,uBAAuB,GAC3B,oBAAoB,CAOtB"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { AssetsAssetServer } from "./AssetsAssetServer.js";
|
|
2
2
|
import { D1DatabaseDriver } from "./D1DatabaseDriver.js";
|
|
3
|
+
// Pre-static-assets starters remain runnable during the alpha migration;
|
|
4
|
+
// their Admin route returns the explicit missing-assets response.
|
|
3
5
|
const NO_ASSETS = { fetch: async () => null };
|
|
4
6
|
/** Bind the conventional Cloudflare names to Mantle's existing runtime adapters. */
|
|
5
7
|
export function createConventionalBindings(env) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conventionalBindings.js","sourceRoot":"","sources":["../../src/bindings/conventionalBindings.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,SAAS,GAAgB,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AAU3D,oFAAoF;AACpF,MAAM,UAAU,0BAA0B,CACxC,GAA4B;IAE5B,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC7E,IAAI,CAAC,GAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACzF,OAAO;QACL,EAAE,EAAE,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;KACnE,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"conventionalBindings.js","sourceRoot":"","sources":["../../src/bindings/conventionalBindings.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,yEAAyE;AACzE,kEAAkE;AAClE,MAAM,SAAS,GAAgB,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AAU3D,oFAAoF;AACpF,MAAM,UAAU,0BAA0B,CACxC,GAA4B;IAE5B,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC7E,IAAI,CAAC,GAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACzF,OAAO;QACL,EAAE,EAAE,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;KACnE,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootRuntimeOnce.d.ts","sourceRoot":"","sources":["../../src/mount/bootRuntimeOnce.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAErE;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;CAC7C;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"bootRuntimeOnce.d.ts","sourceRoot":"","sources":["../../src/mount/bootRuntimeOnce.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAErE;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;CAC7C;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,aAAa,CAiC7D"}
|
|
@@ -12,6 +12,7 @@ export function createCmsRef(config) {
|
|
|
12
12
|
assets: config.bindings.assets,
|
|
13
13
|
mediaStorage: config.bindings.mediaStorage,
|
|
14
14
|
deferredHookDispatcher: config.bindings.deferredHookDispatcher,
|
|
15
|
+
onPublicChange: config.onPublicChange,
|
|
15
16
|
});
|
|
16
17
|
let booted = null;
|
|
17
18
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootRuntimeOnce.js","sourceRoot":"","sources":["../../src/mount/bootRuntimeOnce.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,GAEjB,MAAM,wBAAwB,CAAC;AAoBhC,MAAM,UAAU,YAAY,CAAC,MAAiB;IAC5C,MAAM,OAAO,GAAG,gBAAgB,CAAC;QAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,wBAAwB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QAChD,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;QAC7C,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;QACtB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;QAC9B,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY;QAC1C,sBAAsB,EAAE,MAAM,CAAC,QAAQ,CAAC,sBAAsB;
|
|
1
|
+
{"version":3,"file":"bootRuntimeOnce.js","sourceRoot":"","sources":["../../src/mount/bootRuntimeOnce.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmsConfig.d.ts","sourceRoot":"","sources":["../../src/mount/cmsConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAErE;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,GAAG,QAAQ,CAAC,GAAG;QAC/D;;yCAEiC;QACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAC7D;;;;;oBAKY;QACZ,QAAQ,CAAC,sBAAsB,CAAC,EAAE,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;KAClF,CAAC;IACF,gEAAgE;IAChE,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB;;yBAEqB;IACrB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;IACzD,sEAAsE;IACtE,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACrC,CAAC;
|
|
1
|
+
{"version":3,"file":"cmsConfig.d.ts","sourceRoot":"","sources":["../../src/mount/cmsConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAErE;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,GAAG,QAAQ,CAAC,GAAG;QAC/D;;yCAEiC;QACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAC7D;;;;;oBAKY;QACZ,QAAQ,CAAC,sBAAsB,CAAC,EAAE,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;KAClF,CAAC;IACF,gEAAgE;IAChE,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB;;yBAEqB;IACrB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;IACzD,sEAAsE;IACtE,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACrC,CAAC;IACF,QAAQ,CAAC,cAAc,CAAC,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;CAClE"}
|
package/dist/mount/index.d.ts
CHANGED
|
@@ -3,6 +3,6 @@ export { runMantleUseCase } from "./runMantleUseCase.js";
|
|
|
3
3
|
export { resolveCaller, type CallerResolution, type ConsumerCredentialResolution, type ConsumerCredentialResolver, type ResolveCallerOptions, } from "./resolveCaller.js";
|
|
4
4
|
export { type CmsRuntimeRef, createCmsRef } from "./bootRuntimeOnce.js";
|
|
5
5
|
export { createMcpApiHandler, type CreateMcpApiHandlerOptions, } from "./mountMcp.js";
|
|
6
|
-
export { mountPublicRoutes, type CollectionRouteConfig, type MountPublicRoutesOptions, type PublicRouteContext, type SlugOverride, } from "./mountPublicRoutes.js";
|
|
6
|
+
export { mountPublicRoutes, type CollectionRouteConfig, type MountPublicRoutesOptions, type PublicContentContext, type PublicRouteContext, type SlugOverride, } from "./mountPublicRoutes.js";
|
|
7
7
|
export type { CmsConfig } from "./cmsConfig.js";
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mount/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,aAAa,EACb,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EACL,mBAAmB,EACnB,KAAK,0BAA0B,GAChC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,YAAY,GAClB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mount/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,aAAa,EACb,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EACL,mBAAmB,EACnB,KAAK,0BAA0B,GAChC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,YAAY,GAClB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/mount/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mount/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,aAAa,GAKd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAsB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EACL,mBAAmB,GAEpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mount/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,aAAa,GAKd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAsB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EACL,mBAAmB,GAEpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,GAMlB,MAAM,wBAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mountMcp.d.ts","sourceRoot":"","sources":["../../src/mount/mountMcp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"mountMcp.d.ts","sourceRoot":"","sources":["../../src/mount/mountMcp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI1D,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAC;IACrC;;6DAEyD;IACzD,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,OAAO,EAAE,0BAA0B,GAClC,eAAe,CAAC,GAAG,CAAC,CA4GtB"}
|
package/dist/mount/mountMcp.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { McpJsonRpcDispatcher } from "@aotter/mantle-runtime";
|
|
2
2
|
import { contextForVerifiedUser } from "./resolveCaller.js";
|
|
3
|
+
import { rejectCrossOriginMutation } from "../auth/rejectCrossOriginMutation.js";
|
|
3
4
|
/**
|
|
4
5
|
* Build a Cloudflare Worker `ExportedHandler` that serves one MCP
|
|
5
6
|
* resource path. Plug into `createOAuthProvider({ apiHandlers })`
|
|
@@ -27,6 +28,9 @@ export function createMcpApiHandler(options) {
|
|
|
27
28
|
const dispatcherCache = new WeakMap();
|
|
28
29
|
return {
|
|
29
30
|
async fetch(request, env, ctx) {
|
|
31
|
+
const rejected = rejectCrossOriginMutation(request);
|
|
32
|
+
if (rejected)
|
|
33
|
+
return rejected;
|
|
30
34
|
const props = readOAuthApiProps(ctx.props);
|
|
31
35
|
if (!props)
|
|
32
36
|
return forbidden(requiredScopes);
|
|
@@ -51,16 +55,27 @@ export function createMcpApiHandler(options) {
|
|
|
51
55
|
// the tools in tools/list at all. Read this before consulting the
|
|
52
56
|
// dispatcher cache so operator edits to site_config update the
|
|
53
57
|
// MCP catalog without a redeploy/runtime reset.
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
: [];
|
|
58
|
+
const site = await runtime.siteConfig.load();
|
|
59
|
+
const mediaPurposes = runtime.media ? site.media.purposes : [];
|
|
57
60
|
// Serialise the whole policy set as the cache key — name + required
|
|
58
61
|
// mimes + per-mime maxBytes all participate. Operator edits to any
|
|
59
62
|
// of these (admin Settings → media taxonomy) rebuild the dispatcher
|
|
60
63
|
// so tools/list reflects the latest contract without a redeploy.
|
|
61
|
-
const
|
|
64
|
+
const publicUrl = URL.canParse(site.origin) ? site.origin : new URL(request.url).origin;
|
|
65
|
+
const iconBase = `${publicUrl}/`;
|
|
66
|
+
const serverInfo = {
|
|
67
|
+
name: `aotter.mantle.${surface}`,
|
|
68
|
+
title: site.brand,
|
|
69
|
+
description: site.description || undefined,
|
|
70
|
+
websiteUrl: publicUrl,
|
|
71
|
+
icons: site.icons.filter((icon) => URL.canParse(icon.src, iconBase)).map((icon) => ({
|
|
72
|
+
...icon,
|
|
73
|
+
src: new URL(icon.src, iconBase).href,
|
|
74
|
+
})),
|
|
75
|
+
};
|
|
76
|
+
const configKey = JSON.stringify({ mediaPurposes, serverInfo });
|
|
62
77
|
let cached = dispatcherCache.get(runtime);
|
|
63
|
-
if (!cached || cached.
|
|
78
|
+
if (!cached || cached.configKey !== configKey) {
|
|
64
79
|
const mediaEnabled = runtime.media !== null && mediaPurposes.length > 0;
|
|
65
80
|
const dispatcher = new McpJsonRpcDispatcher({
|
|
66
81
|
listEntries: runtime.listEntries,
|
|
@@ -86,10 +101,11 @@ export function createMcpApiHandler(options) {
|
|
|
86
101
|
// (default "public") matches — mirrors how procedures are
|
|
87
102
|
// gated (#438). Without this, `surface: "staff"` Views leaked
|
|
88
103
|
// into the public `/mcp` tools/list + tools/call.
|
|
89
|
-
views: ref.manifests.filter((m) => m.kind === "View" &&
|
|
104
|
+
views: ref.manifests.filter((m) => m.kind === "View" && m.spec.surface === surface),
|
|
90
105
|
procedures: collectMcpProcedures(runtime.triggers, runtime.proceduresByName, surface),
|
|
106
|
+
serverInfo,
|
|
91
107
|
});
|
|
92
|
-
cached = {
|
|
108
|
+
cached = { configKey, dispatcher };
|
|
93
109
|
dispatcherCache.set(runtime, cached);
|
|
94
110
|
}
|
|
95
111
|
return cached.dispatcher.dispatch(request, handlerContext);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mountMcp.js","sourceRoot":"","sources":["../../src/mount/mountMcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"mountMcp.js","sourceRoot":"","sources":["../../src/mount/mountMcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Context, Hono } from "hono";
|
|
2
2
|
import type { SiteConfig } from "@aotter/mantle-spec";
|
|
3
|
-
import { type CmsRuntime } from "@aotter/mantle-runtime";
|
|
3
|
+
import { type CmsRuntime, type SeoMeta } from "@aotter/mantle-runtime";
|
|
4
4
|
import type { CmsRuntimeRef } from "./bootRuntimeOnce.js";
|
|
5
5
|
/**
|
|
6
6
|
* `mountPublicRoutes` — mounts the SDK-managed public surface on the
|
|
@@ -47,12 +47,15 @@ export interface CollectionRouteConfig {
|
|
|
47
47
|
* collection. */
|
|
48
48
|
readonly homeSlug?: string;
|
|
49
49
|
}
|
|
50
|
-
export interface
|
|
51
|
-
readonly c: Context;
|
|
50
|
+
export interface PublicContentContext {
|
|
52
51
|
readonly runtime: CmsRuntime;
|
|
53
52
|
readonly site: SiteConfig;
|
|
54
53
|
readonly locale: string;
|
|
55
54
|
}
|
|
55
|
+
export interface PublicRouteContext extends PublicContentContext {
|
|
56
|
+
readonly c: Context;
|
|
57
|
+
readonly seo: SeoMeta;
|
|
58
|
+
}
|
|
56
59
|
export interface SlugOverride {
|
|
57
60
|
readonly collection: string;
|
|
58
61
|
readonly slug: string;
|
|
@@ -64,6 +67,8 @@ export interface MountPublicRoutesOptions {
|
|
|
64
67
|
* recent posts across collections. Optional; without it `/` and
|
|
65
68
|
* `/{locale}` are not registered. */
|
|
66
69
|
readonly homeRenderer?: (ctx: PublicRouteContext) => Promise<Response>;
|
|
70
|
+
/** Agent-readable home body for composed homes without one backing Entry. */
|
|
71
|
+
readonly homeMarkdown?: (ctx: PublicContentContext) => Promise<string | null>;
|
|
67
72
|
/** Renderer for the locale 404 fallback. Required — every miss
|
|
68
73
|
* falls through here. */
|
|
69
74
|
readonly notFoundRenderer: (ctx: PublicRouteContext) => Promise<Response>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mountPublicRoutes.d.ts","sourceRoot":"","sources":["../../src/mount/mountPublicRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"mountPublicRoutes.d.ts","sourceRoot":"","sources":["../../src/mount/mountPublicRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAS,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAML,KAAK,UAAU,EACf,KAAK,OAAO,EACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI1D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;kDAE8C;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;2EACuE;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B;6CACyC;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC;;sBAEkB;IAClB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAC9D,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAChE;;0CAEsC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvE,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9E;8BAC0B;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1E,iFAAiF;IACjF,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACrD,qEAAqE;IACrE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAsCD,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,wBAAwB,GAChC,IAAI,CA4GN"}
|