blokd 0.1.0-beta.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.
Files changed (48) hide show
  1. package/README.md +28 -0
  2. package/dist/LICENSE +21 -0
  3. package/dist/client.d.ts +9 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +48 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/core.d.ts +25 -0
  8. package/dist/core.d.ts.map +1 -0
  9. package/dist/core.js +206 -0
  10. package/dist/core.js.map +1 -0
  11. package/dist/dom.d.ts +16 -0
  12. package/dist/dom.d.ts.map +1 -0
  13. package/dist/dom.js +140 -0
  14. package/dist/dom.js.map +1 -0
  15. package/dist/hono.d.ts +49 -0
  16. package/dist/hono.d.ts.map +1 -0
  17. package/dist/hono.js +310 -0
  18. package/dist/hono.js.map +1 -0
  19. package/dist/index.d.ts +7 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +4 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/jsx-runtime.d.ts +45 -0
  24. package/dist/jsx-runtime.d.ts.map +1 -0
  25. package/dist/jsx-runtime.js +264 -0
  26. package/dist/jsx-runtime.js.map +1 -0
  27. package/dist/resume.d.ts +46 -0
  28. package/dist/resume.d.ts.map +1 -0
  29. package/dist/resume.js +231 -0
  30. package/dist/resume.js.map +1 -0
  31. package/dist/server.d.ts +39 -0
  32. package/dist/server.d.ts.map +1 -0
  33. package/dist/server.js +232 -0
  34. package/dist/server.js.map +1 -0
  35. package/dist/vite.d.ts +20 -0
  36. package/dist/vite.d.ts.map +1 -0
  37. package/dist/vite.js +421 -0
  38. package/dist/vite.js.map +1 -0
  39. package/package.json +92 -0
  40. package/src/client.ts +50 -0
  41. package/src/core.ts +234 -0
  42. package/src/dom.ts +142 -0
  43. package/src/hono.ts +368 -0
  44. package/src/index.ts +7 -0
  45. package/src/jsx-runtime.ts +306 -0
  46. package/src/resume.ts +274 -0
  47. package/src/server.ts +241 -0
  48. package/src/vite.ts +413 -0
package/dist/hono.js ADDED
@@ -0,0 +1,310 @@
1
+ import { Hono } from 'hono';
2
+ import { html, isHttpError, json, mergeMeta, renderDocument, renderToString } from './server.js';
3
+ const actionMethods = new Set(['POST', 'PUT', 'PATCH', 'DELETE']);
4
+ export function createPages(options) {
5
+ validateRoutes(options.routes);
6
+ const app = new Hono();
7
+ app.all('*', async (c) => {
8
+ const ctx = c;
9
+ const request = c.req.raw;
10
+ const url = new URL(request.url);
11
+ const match = matchRoute(options.routes, url.pathname);
12
+ try {
13
+ if (!match) {
14
+ const response = await renderNotFound(options.routes, ctx, request);
15
+ return request.method === 'HEAD' ? withoutBody(response) : response;
16
+ }
17
+ if (actionMethods.has(request.method))
18
+ return await handleAction(match, ctx, options);
19
+ if (request.method !== 'GET' && request.method !== 'HEAD') {
20
+ return new Response('Method Not Allowed', { status: 405, headers: { allow: 'GET, HEAD, POST, PUT, PATCH, DELETE' } });
21
+ }
22
+ const loaded = await loadRoute(match, ctx);
23
+ if (isDataRequest(request, options.dataQueryParam ?? '__blokd')) {
24
+ const response = json({ data: loaded.data, meta: loaded.meta }, { headers: loaded.headers });
25
+ return request.method === 'HEAD' ? withoutBody(response) : response;
26
+ }
27
+ const response = renderDocumentForLoadedRoute(loaded, ctx, options);
28
+ return request.method === 'HEAD' ? withoutBody(response) : response;
29
+ }
30
+ catch (error) {
31
+ if (isHttpError(error)) {
32
+ if (error.response.status < 400)
33
+ return request.method === 'HEAD' ? withoutBody(error.response) : error.response;
34
+ if (match && request.method !== 'HEAD' && !isDataRequest(request, options.dataQueryParam ?? '__blokd')) {
35
+ return renderHttpBoundary(match, ctx, options, error);
36
+ }
37
+ return request.method === 'HEAD' ? withoutBody(error.response) : error.response;
38
+ }
39
+ if (options.onError)
40
+ return options.onError(error, ctx);
41
+ if (match && request.method !== 'HEAD' && !isDataRequest(request, options.dataQueryParam ?? '__blokd')) {
42
+ return renderErrorBoundary(match, ctx, options, error, 500);
43
+ }
44
+ const message = typeof process !== 'undefined' && process.env?.NODE_ENV === 'production'
45
+ ? 'Internal Server Error'
46
+ : error instanceof Error ? error.stack ?? error.message : String(error);
47
+ const response = html(`<pre>${escapeText(message)}</pre>`, { status: 500 });
48
+ return request.method === 'HEAD' ? withoutBody(response) : response;
49
+ }
50
+ });
51
+ return app;
52
+ }
53
+ function withoutBody(response) {
54
+ return new Response(null, { status: response.status, statusText: response.statusText, headers: response.headers });
55
+ }
56
+ function isDataRequest(request, dataQueryParam) {
57
+ const url = new URL(request.url);
58
+ if (url.searchParams.has(dataQueryParam))
59
+ return true;
60
+ const accept = request.headers.get('accept') ?? '';
61
+ return accept.includes('application/json') && !accept.includes('text/html');
62
+ }
63
+ async function handleAction(match, ctx, options) {
64
+ try {
65
+ const leaf = await match.entry.module();
66
+ if (!leaf.action)
67
+ return new Response('Method Not Allowed', { status: 405, headers: { allow: 'GET, HEAD' } });
68
+ const result = await leaf.action({ request: ctx.req.raw, params: match.params, ctx });
69
+ return normalizeActionResult(result);
70
+ }
71
+ catch (error) {
72
+ if (isHttpError(error))
73
+ return error.response;
74
+ if (options.onError)
75
+ return options.onError(error, ctx);
76
+ throw error;
77
+ }
78
+ }
79
+ function normalizeActionResult(result) {
80
+ if (result instanceof Response)
81
+ return result;
82
+ if (typeof result === 'string')
83
+ return new Response(result, { headers: { 'content-type': 'text/plain; charset=utf-8' } });
84
+ if (typeof result === 'number' || typeof result === 'bigint' || typeof result === 'boolean')
85
+ return json(result);
86
+ if (result === null || result === undefined)
87
+ return new Response(null, { status: 204 });
88
+ if (Array.isArray(result) || isRenderableObject(result))
89
+ return html(renderToString(result));
90
+ return json(result);
91
+ }
92
+ async function loadRoute(match, ctx) {
93
+ const layoutModules = await Promise.all((match.entry.layouts ?? []).map(load => load()));
94
+ const leaf = await match.entry.module();
95
+ const modules = [...layoutModules, leaf];
96
+ const data = {};
97
+ const headers = new Headers();
98
+ const metas = [];
99
+ for (const mod of modules) {
100
+ if (mod.loader) {
101
+ const value = await mod.loader({ request: ctx.req.raw, params: match.params, ctx });
102
+ if (isPlainRecord(value))
103
+ Object.assign(data, value);
104
+ else
105
+ data[mod.default?.name || 'value'] = value;
106
+ }
107
+ }
108
+ for (const mod of modules) {
109
+ if (mod.meta)
110
+ metas.push(await mod.meta({ request: ctx.req.raw, params: match.params, ctx, data }));
111
+ if (mod.headers)
112
+ appendHeaders(headers, new Headers(await mod.headers({ request: ctx.req.raw, params: match.params, ctx, data })));
113
+ }
114
+ return { match, modules, leaf, data, meta: mergeMeta(...metas), headers };
115
+ }
116
+ function renderDocumentForLoadedRoute(loaded, ctx, options) {
117
+ const body = renderLoadedRoute(loaded, ctx);
118
+ const documentOptions = {
119
+ body,
120
+ data: { route: loaded.match.entry.id, params: loaded.match.params, data: loaded.data },
121
+ meta: loaded.meta,
122
+ headers: loaded.headers
123
+ };
124
+ if (options.entryClient !== undefined && loaded.match.entry.hasClient !== false)
125
+ documentOptions.entryClient = options.entryClient;
126
+ return renderDocument(documentOptions);
127
+ }
128
+ function renderLoadedRoute(loaded, ctx) {
129
+ if (!loaded.leaf.default)
130
+ return null;
131
+ let child = loaded.leaf.default({ data: loaded.data, params: loaded.match.params, ctx });
132
+ for (let i = loaded.modules.length - 2; i >= 0; i--) {
133
+ const layout = loaded.modules[i];
134
+ if (layout?.default)
135
+ child = layout.default({ children: child, data: loaded.data, params: loaded.match.params, ctx });
136
+ }
137
+ return child;
138
+ }
139
+ async function renderNotFound(routes, ctx, request) {
140
+ const rootRoute = routes.find(item => normalizePath(item.path) === '/' && (item.notFound || item.error));
141
+ const route = rootRoute ?? routes.find(item => item.notFound || item.error);
142
+ if (!route)
143
+ return new Response('Not Found', { status: 404 });
144
+ const match = { entry: route, params: {} };
145
+ return renderBoundary(match, ctx, request, new Error('Not Found'), 404, route.notFound ?? route.error);
146
+ }
147
+ function renderHttpBoundary(match, ctx, options, error) {
148
+ const boundary = error.response.status === 404 ? match.entry.notFound ?? match.entry.error : match.entry.error;
149
+ if (!boundary)
150
+ return error.response;
151
+ return renderBoundary(match, ctx, ctx.req.raw, error, error.response.status, boundary, options.entryClient);
152
+ }
153
+ function renderErrorBoundary(match, ctx, options, error, status) {
154
+ if (!match.entry.error) {
155
+ const message = typeof process !== 'undefined' && process.env?.NODE_ENV === 'production'
156
+ ? 'Internal Server Error'
157
+ : error instanceof Error ? error.stack ?? error.message : String(error);
158
+ return html(`<pre>${escapeText(message)}</pre>`, { status });
159
+ }
160
+ return renderBoundary(match, ctx, ctx.req.raw, error, status, match.entry.error, options.entryClient);
161
+ }
162
+ async function renderBoundary(match, ctx, request, error, status, loadBoundary, entryClient) {
163
+ if (!loadBoundary)
164
+ return new Response(status === 404 ? 'Not Found' : 'Internal Server Error', { status });
165
+ const layoutModules = await Promise.all((match.entry.layouts ?? []).map(load => load()));
166
+ const boundary = await loadBoundary();
167
+ const data = {};
168
+ const metas = [];
169
+ const headers = new Headers();
170
+ const modules = [...layoutModules, boundary];
171
+ for (const mod of modules) {
172
+ if (mod.meta)
173
+ metas.push(await mod.meta({ request, params: match.params, ctx, data, error }));
174
+ if (mod.headers)
175
+ appendHeaders(headers, new Headers(await mod.headers({ request, params: match.params, ctx, data, error })));
176
+ }
177
+ const body = renderBoundaryRoute(modules, { error, status, data, params: match.params, ctx });
178
+ const documentOptions = {
179
+ body,
180
+ data: { route: match.entry.id, params: match.params, data, error: boundaryErrorPayload(error, status) },
181
+ meta: mergeMeta(...metas),
182
+ headers,
183
+ status
184
+ };
185
+ if (entryClient !== undefined && match.entry.hasClient !== false)
186
+ documentOptions.entryClient = entryClient;
187
+ return renderDocument(documentOptions);
188
+ }
189
+ function renderBoundaryRoute(modules, props) {
190
+ const leaf = modules.at(-1);
191
+ let child = leaf?.default ? leaf.default(props) : null;
192
+ for (let i = modules.length - 2; i >= 0; i--) {
193
+ const layout = modules[i];
194
+ if (layout?.default)
195
+ child = layout.default({ ...props, children: child });
196
+ }
197
+ return child;
198
+ }
199
+ function boundaryErrorPayload(error, status) {
200
+ if (typeof process !== 'undefined' && process.env?.NODE_ENV === 'production')
201
+ return { status };
202
+ if (isHttpError(error))
203
+ return { status: error.response.status, statusText: error.response.statusText };
204
+ if (error instanceof Error)
205
+ return { status, name: error.name, message: error.message, stack: error.stack };
206
+ return { status, message: String(error) };
207
+ }
208
+ export function matchRoute(routes, pathname) {
209
+ const normalized = normalizePath(pathname);
210
+ const ranked = [...routes].sort(compareRoutes);
211
+ for (const entry of ranked) {
212
+ const params = matchPath(entry.path, normalized);
213
+ if (params)
214
+ return { entry, params };
215
+ }
216
+ return null;
217
+ }
218
+ function compareRoutes(a, b) {
219
+ const score = scoreRoute(b.path) - scoreRoute(a.path);
220
+ if (score !== 0)
221
+ return score;
222
+ return b.path.length - a.path.length;
223
+ }
224
+ function normalizePath(pathname) {
225
+ if (!pathname.startsWith('/'))
226
+ pathname = '/' + pathname;
227
+ pathname = pathname.replace(/\/+/g, '/');
228
+ if (pathname.length > 1 && pathname.endsWith('/'))
229
+ pathname = pathname.slice(0, -1);
230
+ return pathname;
231
+ }
232
+ function scoreRoute(path) {
233
+ return normalizePath(path).split('/').filter(Boolean).reduce((score, segment) => {
234
+ if (segment.startsWith(':') && segment.endsWith('*'))
235
+ return score + 1;
236
+ if (segment.startsWith(':'))
237
+ return score + 3;
238
+ return score + 10;
239
+ }, 0);
240
+ }
241
+ function matchPath(pattern, pathname) {
242
+ const patternSegments = normalizePath(pattern).split('/').filter(Boolean);
243
+ const pathSegments = normalizePath(pathname).split('/').filter(Boolean);
244
+ const params = {};
245
+ for (let i = 0, j = 0; i < patternSegments.length; i++, j++) {
246
+ const patternSegment = patternSegments[i];
247
+ if (patternSegment.startsWith(':') && patternSegment.endsWith('*')) {
248
+ const key = patternSegment.slice(1, -1);
249
+ const decoded = safeDecode(pathSegments.slice(j).join('/'));
250
+ if (decoded === null)
251
+ return null;
252
+ params[key] = decoded;
253
+ return params;
254
+ }
255
+ const pathSegment = pathSegments[j];
256
+ if (pathSegment === undefined)
257
+ return null;
258
+ if (patternSegment.startsWith(':')) {
259
+ const decoded = safeDecode(pathSegment);
260
+ if (decoded === null)
261
+ return null;
262
+ params[patternSegment.slice(1)] = decoded;
263
+ continue;
264
+ }
265
+ if (patternSegment !== pathSegment)
266
+ return null;
267
+ }
268
+ return patternSegments.length === pathSegments.length ? params : null;
269
+ }
270
+ function safeDecode(value) {
271
+ try {
272
+ return decodeURIComponent(value);
273
+ }
274
+ catch {
275
+ return null;
276
+ }
277
+ }
278
+ function validateRoutes(routes) {
279
+ const seen = new Map();
280
+ for (const route of routes) {
281
+ const normalized = normalizePath(route.path);
282
+ const previous = seen.get(normalized);
283
+ if (previous)
284
+ throw new Error(`Duplicate Blokd route path ${normalized}: ${previous} and ${route.id}`);
285
+ seen.set(normalized, route.id);
286
+ }
287
+ }
288
+ function appendHeaders(target, source) {
289
+ source.forEach((value, key) => {
290
+ if (key.toLowerCase() === 'set-cookie')
291
+ target.append(key, value);
292
+ else
293
+ target.set(key, value);
294
+ });
295
+ }
296
+ function isPlainRecord(value) {
297
+ if (!value || typeof value !== 'object' || Array.isArray(value))
298
+ return false;
299
+ if (isRenderableObject(value))
300
+ return false;
301
+ const proto = Object.getPrototypeOf(value);
302
+ return proto === Object.prototype || proto === null;
303
+ }
304
+ function isRenderableObject(value) {
305
+ return !!value && typeof value === 'object' && 'kind' in value;
306
+ }
307
+ function escapeText(value) {
308
+ return value.replaceAll('&', '&amp;').replaceAll('<', '&lt;').replaceAll('>', '&gt;');
309
+ }
310
+ //# sourceMappingURL=hono.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hono.js","sourceRoot":"","sources":["../src/hono.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { signal, memo, effect, cleanup, batch, untrack, root, getOwner, runWithOwner, dispose } from './core.js';
2
+ export { Show, For, render, hydrate, dynamic } from './dom.js';
3
+ export type { Accessor, Setter } from './core.js';
4
+ export type { Component, Renderable, Props } from './jsx-runtime.js';
5
+ export { Island, resumable, startResumability, registerResumable, unregisterResumable, isResumableHandler, parseState, serializeState } from './resume.js';
6
+ export type { JsonValue, ResumeContext, ResumableEventHandler, ResumableHandler } from './resume.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACjH,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC/D,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAClD,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC3J,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export { signal, memo, effect, cleanup, batch, untrack, root, getOwner, runWithOwner, dispose } from './core.js';
2
+ export { Show, For, render, hydrate, dynamic } from './dom.js';
3
+ export { Island, resumable, startResumability, registerResumable, unregisterResumable, isResumableHandler, parseState, serializeState } from './resume.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACjH,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAI/D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,45 @@
1
+ export type Component<P = Record<string, unknown>> = (props: P) => Renderable;
2
+ export type Lazy<T = unknown> = {
3
+ readonly __blokdLazy: true;
4
+ readonly fn: () => T;
5
+ };
6
+ export type Props = Record<string, unknown> & {
7
+ children?: unknown;
8
+ };
9
+ export type VElement = {
10
+ kind: 'element';
11
+ tag: string;
12
+ props: Props;
13
+ children: Renderable[];
14
+ };
15
+ export type VFragment = {
16
+ kind: 'fragment';
17
+ children: Renderable[];
18
+ };
19
+ export type Dynamic = {
20
+ kind: 'dynamic';
21
+ fn: () => unknown;
22
+ };
23
+ export type Renderable = Node | VElement | VFragment | Dynamic | string | number | bigint | boolean | null | undefined | Renderable[];
24
+ declare global {
25
+ namespace JSX {
26
+ type Element = Renderable;
27
+ interface ElementChildrenAttribute {
28
+ children: {};
29
+ }
30
+ interface IntrinsicElements {
31
+ [elemName: string]: Record<string, unknown>;
32
+ }
33
+ }
34
+ }
35
+ export declare const Fragment: unique symbol;
36
+ export declare function lazy<T>(fn: () => T): Lazy<T>;
37
+ export declare function isLazy(value: unknown): value is Lazy;
38
+ export declare function jsx(type: string | Component | typeof Fragment, props: Props | null): Renderable;
39
+ export declare const jsxs: typeof jsx;
40
+ export declare const jsxDEV: typeof jsx;
41
+ export declare function dynamic(fn: () => unknown): Dynamic | Node;
42
+ export declare function render(fn: () => Renderable, rootElement: Element | DocumentFragment): () => void;
43
+ export declare function hydrate(fn: () => Renderable, rootElement: Element | DocumentFragment): () => void;
44
+ export declare function from(value: unknown): Renderable;
45
+ //# sourceMappingURL=jsx-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsx-runtime.d.ts","sourceRoot":"","sources":["../src/jsx-runtime.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,UAAU,CAAC;AAC9E,MAAM,MAAM,IAAI,CAAC,CAAC,GAAG,OAAO,IAAI;IAAE,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC;AACrF,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAErE,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,MAAM,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,UAAU,GAClB,IAAI,GACJ,QAAQ,GACR,SAAS,GACT,OAAO,GACP,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,GACT,UAAU,EAAE,CAAC;AAEjB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,GAAG,CAAC;QACZ,KAAK,OAAO,GAAG,UAAU,CAAC;QAC1B,UAAU,wBAAwB;YAAG,QAAQ,EAAE,EAAE,CAAC;SAAE;QACpD,UAAU,iBAAiB;YACzB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SAC7C;KACF;CACF;AAED,eAAO,MAAM,QAAQ,eAA+B,CAAC;AAErD,wBAAgB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAE5C;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAEpD;AAwCD,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,UAAU,CAM/F;AAED,eAAO,MAAM,IAAI,YAAM,CAAC;AACxB,eAAO,MAAM,MAAM,YAAM,CAAC;AAoL1B,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,OAAO,GAAG,OAAO,GAAG,IAAI,CAKzD;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,UAAU,EAAE,WAAW,EAAE,OAAO,GAAG,gBAAgB,GAAG,MAAM,IAAI,CAMhG;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,UAAU,EAAE,WAAW,EAAE,OAAO,GAAG,gBAAgB,GAAG,MAAM,IAAI,CAEjG;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAE/C"}