@mojojs/core 0.24.0 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -3
- package/lib/app.d.ts +9 -5
- package/lib/app.js +20 -13
- package/lib/app.js.map +1 -1
- package/lib/body.d.ts +10 -13
- package/lib/body.js +19 -26
- package/lib/body.js.map +1 -1
- package/lib/cli/get.js +2 -24
- package/lib/cli/get.js.map +1 -1
- package/lib/context.d.ts +5 -5
- package/lib/context.js +5 -6
- package/lib/context.js.map +1 -1
- package/lib/headers.d.ts +34 -0
- package/lib/headers.js +97 -0
- package/lib/headers.js.map +1 -0
- package/lib/mock/request.js +0 -1
- package/lib/mock/request.js.map +1 -1
- package/lib/plugins/default-conditions.d.ts +5 -0
- package/lib/plugins/{header-conditions.js → default-conditions.js} +3 -3
- package/lib/plugins/default-conditions.js.map +1 -0
- package/lib/plugins/default-helpers.js +122 -0
- package/lib/plugins/default-helpers.js.map +1 -1
- package/lib/renderer.js +1 -1
- package/lib/renderer.js.map +1 -1
- package/lib/server/request.d.ts +44 -4
- package/lib/server/request.js +40 -15
- package/lib/server/request.js.map +1 -1
- package/lib/server/response.d.ts +47 -7
- package/lib/server/response.js +57 -46
- package/lib/server/response.js.map +1 -1
- package/lib/server.d.ts +3 -1
- package/lib/server.js +39 -3
- package/lib/server.js.map +1 -1
- package/lib/static.js +7 -7
- package/lib/static.js.map +1 -1
- package/lib/types.d.ts +7 -5
- package/lib/user-agent/response.d.ts +23 -9
- package/lib/user-agent/response.js +7 -13
- package/lib/user-agent/response.js.map +1 -1
- package/lib/user-agent/test.js +2 -2
- package/lib/user-agent/test.js.map +1 -1
- package/lib/user-agent/transport/http.js +8 -1
- package/lib/user-agent/transport/http.js.map +1 -1
- package/lib/user-agent/transport/ws.js +10 -2
- package/lib/user-agent/transport/ws.js.map +1 -1
- package/lib/user-agent.js +3 -3
- package/lib/user-agent.js.map +1 -1
- package/lib/websocket.d.ts +1 -1
- package/lib/websocket.js +6 -6
- package/lib/websocket.js.map +1 -1
- package/package.json +1 -1
- package/vendor/views/mojo/debug.html.mt +5 -4
- package/lib/plugins/exception-helpers.d.ts +0 -5
- package/lib/plugins/exception-helpers.js +0 -101
- package/lib/plugins/exception-helpers.js.map +0 -1
- package/lib/plugins/header-conditions.d.ts +0 -5
- package/lib/plugins/header-conditions.js.map +0 -1
- package/lib/plugins/view-helpers.d.ts +0 -5
- package/lib/plugins/view-helpers.js +0 -33
- package/lib/plugins/view-helpers.js.map +0 -1
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { Logger } from '../logger.js';
|
|
2
|
-
import { exceptionContext } from '../util.js';
|
|
3
|
-
/**
|
|
4
|
-
* Exception helper plugin.
|
|
5
|
-
*/
|
|
6
|
-
export default function exceptionHelpersPlugin(app) {
|
|
7
|
-
app.addHelper('exception', exception);
|
|
8
|
-
app.addHelper('htmlException', htmlException);
|
|
9
|
-
app.addHelper('htmlNotFound', htmlNotFound);
|
|
10
|
-
app.addHelper('httpException', httpException);
|
|
11
|
-
app.addHelper('jsonException', jsonException);
|
|
12
|
-
app.addHelper('jsonNotFound', jsonNotFound);
|
|
13
|
-
app.addHelper('txtException', txtException);
|
|
14
|
-
app.addHelper('txtNotFound', txtNotFound);
|
|
15
|
-
app.addHelper('notFound', notFound);
|
|
16
|
-
app.addHelper('websocketException', websocketException);
|
|
17
|
-
}
|
|
18
|
-
async function exception(ctx, error) {
|
|
19
|
-
if (ctx.isWebSocket)
|
|
20
|
-
return ctx.websocketException(error);
|
|
21
|
-
return ctx.httpException(error);
|
|
22
|
-
}
|
|
23
|
-
async function htmlException(ctx, error) {
|
|
24
|
-
ctx.stash.exception = error;
|
|
25
|
-
const mode = ctx.app.mode;
|
|
26
|
-
if (await ctx.render({ view: `exception.${mode}`, maybe: true, status: 500 }))
|
|
27
|
-
return true;
|
|
28
|
-
if (await ctx.render({ view: 'exception', maybe: true, status: 500 }))
|
|
29
|
-
return true;
|
|
30
|
-
const view = mode === 'development' ? 'mojo/debug' : 'mojo/exception';
|
|
31
|
-
return await ctx.render({ view, status: 500, stringFormatter: Logger.stringFormatter, exceptionContext });
|
|
32
|
-
}
|
|
33
|
-
async function htmlNotFound(ctx) {
|
|
34
|
-
ctx.stash.exception = null;
|
|
35
|
-
const mode = ctx.app.mode;
|
|
36
|
-
if (await ctx.render({ view: `not-found.${mode}`, maybe: true, status: 404 }))
|
|
37
|
-
return true;
|
|
38
|
-
if (await ctx.render({ view: 'not-found', maybe: true, status: 404 }))
|
|
39
|
-
return true;
|
|
40
|
-
const view = mode === 'development' ? 'mojo/debug' : 'mojo/not-found';
|
|
41
|
-
return await ctx.render({ view, status: 404, stringFormatter: Logger.stringFormatter });
|
|
42
|
-
}
|
|
43
|
-
async function httpException(ctx, error) {
|
|
44
|
-
error = ensureError(error);
|
|
45
|
-
ctx.log.error(error.stack);
|
|
46
|
-
const exceptionFormat = ctx.exceptionFormat;
|
|
47
|
-
if (exceptionFormat === 'txt')
|
|
48
|
-
return ctx.txtException(error);
|
|
49
|
-
if (exceptionFormat === 'json')
|
|
50
|
-
return ctx.jsonException(error);
|
|
51
|
-
return ctx.htmlException(error);
|
|
52
|
-
}
|
|
53
|
-
async function jsonException(ctx, error) {
|
|
54
|
-
if (ctx.app.mode === 'development') {
|
|
55
|
-
return await ctx.render({
|
|
56
|
-
json: {
|
|
57
|
-
error: {
|
|
58
|
-
message: error.message,
|
|
59
|
-
name: error.name,
|
|
60
|
-
stack: error.stack ?? ''
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
pretty: true,
|
|
64
|
-
status: 500
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
return await ctx.render({ json: { error: { message: 'Internal Server Error' } }, pretty: true, status: 500 });
|
|
68
|
-
}
|
|
69
|
-
async function jsonNotFound(ctx) {
|
|
70
|
-
return await ctx.render({ json: { error: { message: 'Not Found' } }, pretty: true, status: 404 });
|
|
71
|
-
}
|
|
72
|
-
async function notFound(ctx) {
|
|
73
|
-
const exceptionFormat = ctx.exceptionFormat;
|
|
74
|
-
if (exceptionFormat === 'txt')
|
|
75
|
-
return ctx.txtNotFound();
|
|
76
|
-
if (exceptionFormat === 'json')
|
|
77
|
-
return ctx.jsonNotFound();
|
|
78
|
-
return ctx.htmlNotFound();
|
|
79
|
-
}
|
|
80
|
-
async function txtException(ctx, error) {
|
|
81
|
-
if (ctx.app.mode === 'development') {
|
|
82
|
-
return await ctx.render({ text: error.stack, status: 500 });
|
|
83
|
-
}
|
|
84
|
-
return await ctx.render({ text: 'Internal Server Error', status: 500 });
|
|
85
|
-
}
|
|
86
|
-
async function txtNotFound(ctx) {
|
|
87
|
-
return await ctx.render({ text: 'Not Found', status: 404 });
|
|
88
|
-
}
|
|
89
|
-
async function websocketException(ctx, error) {
|
|
90
|
-
error = ensureError(error);
|
|
91
|
-
ctx.log.error(error.stack);
|
|
92
|
-
const ws = ctx.ws;
|
|
93
|
-
if (ws !== null && ctx.isEstablished)
|
|
94
|
-
ws.close(1011);
|
|
95
|
-
return true;
|
|
96
|
-
}
|
|
97
|
-
// If you see this then your code has thrown something that was not an Error object
|
|
98
|
-
function ensureError(error) {
|
|
99
|
-
return error instanceof Error ? error : new Error(error);
|
|
100
|
-
}
|
|
101
|
-
//# sourceMappingURL=exception-helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"exception-helpers.js","sourceRoot":"","sources":["../../src/plugins/exception-helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,YAAY,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,GAAQ;IACrD,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACtC,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IAC9C,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IAC9C,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IAC9C,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC1C,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACpC,GAAG,CAAC,SAAS,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;AAC1D,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAgB,EAAE,KAAY;IACrD,IAAI,GAAG,CAAC,WAAW;QAAE,OAAO,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC1D,OAAO,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAgB,EAAE,KAAY;IACzD,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;IAE5B,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1B,IAAI,MAAM,GAAG,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,aAAa,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACzF,IAAI,MAAM,GAAG,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEjF,MAAM,IAAI,GAAG,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACtE,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,gBAAgB,EAAC,CAAC,CAAC;AAC1G,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAgB;IAC1C,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAE3B,MAAM,IAAI,GAAW,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;IAClC,IAAI,MAAM,GAAG,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,aAAa,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACzF,IAAI,MAAM,GAAG,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEjF,MAAM,IAAI,GAAG,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACtE,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAC,CAAC,CAAC;AACxF,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAgB,EAAE,KAAU;IACvD,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3B,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE3B,MAAM,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;IAC5C,IAAI,eAAe,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC9D,IAAI,eAAe,KAAK,MAAM;QAAE,OAAO,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAChE,OAAO,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAgB,EAAE,KAAY;IACzD,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,aAAa,EAAE;QAClC,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC;YACtB,IAAI,EAAE;gBACJ,KAAK,EAAE;oBACL,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;iBACzB;aACF;YACD,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;KACJ;IAED,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,EAAC,KAAK,EAAE,EAAC,OAAO,EAAE,uBAAuB,EAAC,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAC,CAAC,CAAC;AAC1G,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAgB;IAC1C,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,EAAC,KAAK,EAAE,EAAC,OAAO,EAAE,WAAW,EAAC,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAC,CAAC,CAAC;AAC9F,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,GAAgB;IACtC,MAAM,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;IAC5C,IAAI,eAAe,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;IACxD,IAAI,eAAe,KAAK,MAAM;QAAE,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC;IAC1D,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAgB,EAAE,KAAY;IACxD,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,aAAa,EAAE;QAClC,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,KAAK,CAAC,KAAe,EAAE,MAAM,EAAE,GAAG,EAAC,CAAC,CAAC;KACrE;IACD,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,GAAG,EAAC,CAAC,CAAC;AACxE,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAgB;IACzC,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAC,CAAC,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,GAAgB,EAAE,KAAU;IAC5D,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3B,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE3B,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;IAClB,IAAI,EAAE,KAAK,IAAI,IAAI,GAAG,CAAC,aAAa;QAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mFAAmF;AACnF,SAAS,WAAW,CAAC,KAAU;IAC7B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"header-conditions.js","sourceRoot":"","sources":["../../src/plugins/header-conditions.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,GAAQ;IACrD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAChD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,eAAe,CAAC,GAAgB,EAAE,WAAmC;IAC5E,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACvD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5C,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;KAC/C;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,GAAgB,EAAE,WAAmB;IAC1D,OAAO,eAAe,CAAC,GAAG,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { SafeString } from '../util.js';
|
|
2
|
-
import DOM from '@mojojs/dom';
|
|
3
|
-
/**
|
|
4
|
-
* View helper plugin.
|
|
5
|
-
*/
|
|
6
|
-
export default function viewHelpersPlugin(app) {
|
|
7
|
-
app.addHelper('include', include);
|
|
8
|
-
app.addHelper('linkTo', linkTo);
|
|
9
|
-
app.addHelper('mojoFaviconTag', mojoFaviconTag);
|
|
10
|
-
app.addHelper('scriptTag', scriptTag);
|
|
11
|
-
app.addHelper('styleTag', styleTag);
|
|
12
|
-
app.addHelper('tag', tag);
|
|
13
|
-
}
|
|
14
|
-
async function include(ctx, options, stash) {
|
|
15
|
-
return await ctx.renderToString(options, stash);
|
|
16
|
-
}
|
|
17
|
-
function linkTo(ctx, target, attrs, content) {
|
|
18
|
-
const href = ctx.urlFor(target);
|
|
19
|
-
return ctx.tag('a', { href, ...attrs }, content);
|
|
20
|
-
}
|
|
21
|
-
function mojoFaviconTag(ctx) {
|
|
22
|
-
return ctx.tag('link', { rel: 'icon', href: ctx.urlForFile('/mojo/favicon.ico') });
|
|
23
|
-
}
|
|
24
|
-
function scriptTag(ctx, target) {
|
|
25
|
-
return ctx.tag('script', { src: ctx.urlForFile(target) });
|
|
26
|
-
}
|
|
27
|
-
function styleTag(ctx, target) {
|
|
28
|
-
return ctx.tag('link', { rel: 'stylesheet', href: ctx.urlForFile(target) });
|
|
29
|
-
}
|
|
30
|
-
function tag(ctx, name, attrs = {}, content = '') {
|
|
31
|
-
return new SafeString(DOM.newTag(name, attrs, content).toString());
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=view-helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"view-helpers.js","sourceRoot":"","sources":["../../src/plugins/view-helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AACtC,OAAO,GAAG,MAAM,aAAa,CAAC;AAE9B;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,GAAY;IACpD,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAElC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChC,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAChD,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACtC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACpC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,GAAgB,EAAE,OAAsB,EAAE,KAA0B;IACzF,OAAO,MAAM,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,MAAM,CACb,GAAgB,EAChB,MAAc,EACd,KAA6B,EAC7B,OAA4B;IAE5B,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAC,IAAI,EAAE,GAAG,KAAK,EAAC,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,cAAc,CAAC,GAAgB;IACtC,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,EAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAC,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,SAAS,CAAC,GAAgB,EAAE,MAAc;IACjD,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,QAAQ,CAAC,GAAgB,EAAE,MAAc;IAChD,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,EAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,GAAG,CACV,GAAgB,EAChB,IAAY,EACZ,QAAgC,EAAE,EAClC,UAA+B,EAAE;IAEjC,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrE,CAAC"}
|