@fluixi/compiler 1.0.0-alpha.73 → 1.0.0-alpha.75
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 +41 -16
- package/dist/analyze/expr-shape.cjs +1 -0
- package/dist/analyze/expr-shape.d.ts +15 -0
- package/dist/analyze/expr-shape.d.ts.map +1 -0
- package/dist/analyze/expr-shape.js +37 -0
- package/dist/analyze/expr-shape.mjs +1 -0
- package/dist/analyze/reactive-expr.cjs +1 -0
- package/dist/analyze/reactive-expr.d.ts +39 -0
- package/dist/analyze/reactive-expr.d.ts.map +1 -0
- package/dist/analyze/reactive-expr.js +31 -0
- package/dist/analyze/reactive-expr.mjs +1 -0
- package/dist/babel-GXO3KAVI.mjs +1 -0
- package/dist/chunk-3SAEGOMQ.mjs +1 -0
- package/dist/chunk-E2PW2OZU.mjs +1 -0
- package/dist/chunk-IBRM4W7I.mjs +10 -0
- package/dist/chunk-OHHZCYIQ.mjs +1 -0
- package/dist/chunk-TIE4XNAM.mjs +1 -0
- package/dist/frontend/babel/build-ir-lit.cjs +1 -1
- package/dist/frontend/babel/build-ir-lit.d.ts +1 -0
- package/dist/frontend/babel/build-ir-lit.d.ts.map +1 -1
- package/dist/frontend/babel/build-ir-lit.mjs +1 -1
- package/dist/frontend/babel/build-ir.cjs +1 -1
- package/dist/frontend/babel/build-ir.d.ts +13 -11
- package/dist/frontend/babel/build-ir.d.ts.map +1 -1
- package/dist/frontend/babel/build-ir.js +27 -217
- package/dist/frontend/babel/build-ir.mjs +1 -1
- package/dist/frontend/babel/index.cjs +1 -2
- package/dist/frontend/babel/index.mjs +1 -2
- package/dist/frontend/babel/lower-template.cjs +1 -1
- package/dist/frontend/babel/lower-template.d.ts +12 -9
- package/dist/frontend/babel/lower-template.d.ts.map +1 -1
- package/dist/frontend/babel/lower-template.js +33 -445
- package/dist/frontend/babel/lower-template.mjs +1 -1
- package/dist/frontend/babel/plugin.cjs +1 -2
- package/dist/frontend/babel/plugin.d.ts +24 -85
- package/dist/frontend/babel/plugin.d.ts.map +1 -1
- package/dist/frontend/babel/plugin.js +52 -1285
- package/dist/frontend/babel/plugin.mjs +1 -2
- package/dist/frontend/babel/server-functions.cjs +1 -1
- package/dist/frontend/babel/server-functions.d.ts.map +1 -1
- package/dist/frontend/babel/server-functions.js +2 -9
- package/dist/frontend/babel/server-functions.mjs +1 -1
- package/dist/index.cjs +8 -8
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.mjs +9 -9
- package/dist/integrations.cjs +15 -19
- package/dist/integrations.d.ts +39 -151
- package/dist/integrations.d.ts.map +1 -1
- package/dist/integrations.js +79 -491
- package/dist/integrations.mjs +11 -17
- package/dist/lower/compile-template.cjs +1 -0
- package/dist/lower/compile-template.d.ts +57 -0
- package/dist/lower/compile-template.d.ts.map +1 -0
- package/dist/lower/compile-template.js +72 -0
- package/dist/lower/compile-template.mjs +1 -0
- package/dist/lower/jsx.cjs +1 -0
- package/dist/lower/jsx.d.ts +24 -0
- package/dist/lower/jsx.d.ts.map +1 -0
- package/dist/lower/jsx.js +193 -0
- package/dist/lower/jsx.mjs +1 -0
- package/dist/lower/template.cjs +1 -0
- package/dist/lower/template.d.ts +41 -0
- package/dist/lower/template.d.ts.map +1 -0
- package/dist/lower/template.js +445 -0
- package/dist/lower/template.mjs +1 -0
- package/dist/lower/text.cjs +1 -0
- package/dist/lower/text.d.ts +11 -0
- package/dist/lower/text.d.ts.map +1 -0
- package/dist/lower/text.js +31 -0
- package/dist/lower/text.mjs +1 -0
- package/dist/options.cjs +1 -1
- package/dist/options.d.ts +0 -2
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +0 -1
- package/dist/options.mjs +1 -1
- package/dist/server-fns-6QM243HC.mjs +2 -0
- package/dist/server-functions-E3LKCZ4R.mjs +1 -0
- package/dist/transform/bindings.cjs +1 -0
- package/dist/transform/bindings.d.ts +17 -0
- package/dist/transform/bindings.d.ts.map +1 -0
- package/dist/transform/bindings.js +69 -0
- package/dist/transform/bindings.mjs +1 -0
- package/dist/transform/index.cjs +3 -0
- package/dist/transform/index.d.ts +12 -0
- package/dist/transform/index.d.ts.map +1 -0
- package/dist/transform/index.js +10 -0
- package/dist/transform/index.mjs +12 -0
- package/dist/transform/server-fn-id.cjs +1 -0
- package/dist/transform/server-fn-id.d.ts +10 -0
- package/dist/transform/server-fn-id.d.ts.map +1 -0
- package/dist/transform/server-fn-id.js +18 -0
- package/dist/transform/server-fn-id.mjs +1 -0
- package/dist/transform/server-fns.cjs +2 -0
- package/dist/transform/server-fns.d.ts +13 -0
- package/dist/transform/server-fns.d.ts.map +1 -0
- package/dist/transform/server-fns.js +94 -0
- package/dist/transform/server-fns.mjs +11 -0
- package/dist/transform/templates.cjs +3 -0
- package/dist/transform/templates.d.ts +26 -0
- package/dist/transform/templates.d.ts.map +1 -0
- package/dist/transform/templates.js +347 -0
- package/dist/transform/templates.mjs +12 -0
- package/dist/transform-PJX2GNSV.mjs +3 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +30 -8
- package/dist/babel-E7EQLX36.mjs +0 -2
- package/dist/chunk-EF6V4GTD.mjs +0 -1
package/dist/integrations.d.ts
CHANGED
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
* @fileoverview Bundler integrations for the Fluixi compiler.
|
|
3
3
|
* @module @fluixi/compiler/integrations
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* vite, webpack, rollup and esbuild adapters. Each is a few lines around
|
|
6
|
+
* `compileModule`, which rewrites the source in place — JSX and `` html`` `` both
|
|
7
|
+
* lower to the shared IR and the imperative backend. @fluixi/core re-exports
|
|
8
8
|
* createVitePlugin from here.
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
10
|
+
* `babel: true` routes through the babel front-end instead, for a project whose
|
|
11
|
+
* own babel plugins have to see the output. It is the only thing that needs
|
|
12
|
+
* @babel/core, and it says so rather than degrading: source that was not compiled
|
|
13
|
+
* is source whose templates never became DOM calls, and a build that ships it
|
|
14
|
+
* looks successful until the page is opened.
|
|
15
15
|
*/
|
|
16
16
|
export interface CompilerOptions {
|
|
17
17
|
/**
|
|
@@ -39,70 +39,45 @@ export interface CompilerOptions {
|
|
|
39
39
|
templateClone?: boolean;
|
|
40
40
|
/** Also clone subtrees whose structure is static but which contain dynamic holes. */
|
|
41
41
|
partialTemplates?: boolean;
|
|
42
|
-
/**
|
|
43
|
-
* Whether to use lit-html templates when possible
|
|
44
|
-
* @default true
|
|
45
|
-
*/
|
|
46
|
-
useLitHTML?: boolean;
|
|
47
42
|
/**
|
|
48
43
|
* Whether to generate source maps
|
|
49
44
|
* @default false
|
|
50
45
|
*/
|
|
51
46
|
sourceMaps?: boolean;
|
|
52
|
-
/**
|
|
53
|
-
* Whether to enable aggressive optimizations
|
|
54
|
-
* @default true
|
|
55
|
-
*/
|
|
56
|
-
optimize?: boolean;
|
|
57
47
|
/**
|
|
58
48
|
* Whether to delegate events
|
|
59
49
|
* @default true
|
|
60
50
|
*/
|
|
61
51
|
delegateEvents?: boolean;
|
|
62
|
-
/**
|
|
63
|
-
* Events to delegate (if delegateEvents is true)
|
|
64
|
-
* @default ['click', 'input', 'change', 'submit']
|
|
65
|
-
*/
|
|
66
|
-
delegatedEvents?: string[];
|
|
67
52
|
/**
|
|
68
53
|
* Whether to generate dev-mode code with additional checks
|
|
69
54
|
* @default false
|
|
70
55
|
*/
|
|
71
56
|
development?: boolean;
|
|
72
57
|
/**
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
|
|
76
|
-
pragma?: string;
|
|
77
|
-
/**
|
|
78
|
-
* Custom pragma fragment
|
|
79
|
-
* @default 'Fragment'
|
|
80
|
-
*/
|
|
81
|
-
pragmaFrag?: string;
|
|
82
|
-
/**
|
|
83
|
-
* Module to import JSX runtime from
|
|
58
|
+
* Where the JSX *types* come from, and the `jsxImportSource` handed to esbuild
|
|
59
|
+
* and TypeScript. The compiler never emits `jsx()` calls itself — this is for
|
|
60
|
+
* type resolution and for any JSX the Fluixi transform does not consume.
|
|
84
61
|
* @default '@fluixi/jsx'
|
|
85
62
|
*/
|
|
86
63
|
importSource?: string;
|
|
87
64
|
/**
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
* @default 'imperative'
|
|
65
|
+
* Authoring syntaxes to compile: 'jsx', 'lit' (only `` html`...` `` templates),
|
|
66
|
+
* or 'both' (default). Both lower to the same IR and the same backend.
|
|
67
|
+
* @default 'both'
|
|
92
68
|
*/
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Imperative codegen path: 'inline' (plugin builds calls directly) or 'ir'
|
|
96
|
-
* (shared build-IR + backend emit() pipeline). Same output.
|
|
97
|
-
* @default 'inline'
|
|
98
|
-
*/
|
|
99
|
-
codegen?: 'inline' | 'ir';
|
|
69
|
+
format?: 'jsx' | 'lit' | 'both';
|
|
100
70
|
/**
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
71
|
+
* Compile through babel instead of rewriting the source directly.
|
|
72
|
+
*
|
|
73
|
+
* The default path parses once and splices the emitted code over the spans it
|
|
74
|
+
* replaces: nothing is reprinted, edits carry a source map, and types are left
|
|
75
|
+
* for esbuild to strip. Babel is kept for the cases that need to sit inside its
|
|
76
|
+
* pipeline — a `babel.config.js` with other plugins that have to see the
|
|
77
|
+
* output. It needs `@babel/core` and friends installed; they are optional peers.
|
|
78
|
+
* @default false
|
|
104
79
|
*/
|
|
105
|
-
|
|
80
|
+
babel?: boolean;
|
|
106
81
|
/**
|
|
107
82
|
* Tag name marking a lit template for compilation (when `format` includes lit).
|
|
108
83
|
* @default 'html'
|
|
@@ -129,79 +104,6 @@ export interface CompilerOptions {
|
|
|
129
104
|
*/
|
|
130
105
|
reactiveModule?: string;
|
|
131
106
|
}
|
|
132
|
-
export interface TransformResult {
|
|
133
|
-
code: string;
|
|
134
|
-
map?: any;
|
|
135
|
-
metadata?: TransformMetadata;
|
|
136
|
-
}
|
|
137
|
-
export interface TransformMetadata {
|
|
138
|
-
hasSignals: boolean;
|
|
139
|
-
hasStores: boolean;
|
|
140
|
-
hasLitHTML: boolean;
|
|
141
|
-
staticProps: Set<string>;
|
|
142
|
-
dynamicProps: Set<string>;
|
|
143
|
-
components: Set<string>;
|
|
144
|
-
}
|
|
145
|
-
export interface PropAnalysis {
|
|
146
|
-
name: string;
|
|
147
|
-
isStatic: boolean;
|
|
148
|
-
isReactive: boolean;
|
|
149
|
-
isEvent: boolean;
|
|
150
|
-
isRef: boolean;
|
|
151
|
-
isSpread: boolean;
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Analyze a prop to determine if it's static or dynamic
|
|
155
|
-
*/
|
|
156
|
-
export declare function analyzeProp(name: string, value: any): PropAnalysis;
|
|
157
|
-
/**
|
|
158
|
-
* Analyze all props on an element
|
|
159
|
-
*/
|
|
160
|
-
export declare function analyzeProps(props: Record<string, any>): Map<string, PropAnalysis>;
|
|
161
|
-
/**
|
|
162
|
-
* Check if JSX should be compiled to lit-html template
|
|
163
|
-
*/
|
|
164
|
-
export declare function shouldUseLitTemplate(tag: string, props: Record<string, any>, children: any[]): boolean;
|
|
165
|
-
/**
|
|
166
|
-
* Check if a value is a lit-html template
|
|
167
|
-
*/
|
|
168
|
-
export declare function isLitTemplate(value: any): boolean;
|
|
169
|
-
/**
|
|
170
|
-
* Generate code for creating an element
|
|
171
|
-
*/
|
|
172
|
-
export declare function generateCreateElement(tag: string, props: Record<string, any>, children: any[], options?: CompilerOptions): string;
|
|
173
|
-
/**
|
|
174
|
-
* Generate code for props object
|
|
175
|
-
*/
|
|
176
|
-
export declare function generatePropsCode(props: Record<string, any>, options?: CompilerOptions): string;
|
|
177
|
-
/**
|
|
178
|
-
* Generate code for children
|
|
179
|
-
*/
|
|
180
|
-
export declare function generateChildrenCode(children: any[]): string;
|
|
181
|
-
/**
|
|
182
|
-
* Generate lit-html template code
|
|
183
|
-
*/
|
|
184
|
-
export declare function generateLitHTMLTemplate(tag: string, props: Record<string, any>, children: any[], isSVG?: boolean): string;
|
|
185
|
-
/**
|
|
186
|
-
* Optimize static content
|
|
187
|
-
*/
|
|
188
|
-
export declare function optimizeStatic(code: string): string;
|
|
189
|
-
/**
|
|
190
|
-
* Optimize prop spreads
|
|
191
|
-
*/
|
|
192
|
-
export declare function optimizeSpreads(code: string): string;
|
|
193
|
-
/**
|
|
194
|
-
* Hoist static elements
|
|
195
|
-
*/
|
|
196
|
-
export declare function hoistStatic(code: string): string;
|
|
197
|
-
/**
|
|
198
|
-
* Generate event delegation setup
|
|
199
|
-
*/
|
|
200
|
-
export declare function generateEventDelegation(events: string[], options?: CompilerOptions): string;
|
|
201
|
-
/**
|
|
202
|
-
* Transform JSX code with optimizations
|
|
203
|
-
*/
|
|
204
|
-
export declare function transform(code: string, options?: CompilerOptions): TransformResult;
|
|
205
107
|
/**
|
|
206
108
|
* Helper for creating a Babel plugin
|
|
207
109
|
*/
|
|
@@ -218,20 +120,9 @@ export declare function createBabelPlugin(options?: CompilerOptions): Promise<{
|
|
|
218
120
|
templateClone?: boolean | undefined;
|
|
219
121
|
resolve?: readonly ComponentResolverRule[] | undefined;
|
|
220
122
|
format?: "both" | "jsx" | "lit" | undefined;
|
|
221
|
-
codegen?: "inline" | "ir" | undefined;
|
|
222
|
-
runtime: string;
|
|
223
123
|
importSource: string;
|
|
224
|
-
pragma: string;
|
|
225
|
-
pragmaFrag: string;
|
|
226
124
|
development: boolean;
|
|
227
|
-
detectReactivity: boolean;
|
|
228
|
-
useLitHTML: boolean;
|
|
229
|
-
hoistStatics: boolean;
|
|
230
125
|
delegateEvents: boolean;
|
|
231
|
-
delegatedEvents: string[];
|
|
232
|
-
optimizeControlFlow: boolean;
|
|
233
|
-
sourceMaps: boolean;
|
|
234
|
-
backend: "imperative" | "jsx";
|
|
235
126
|
};
|
|
236
127
|
}>;
|
|
237
128
|
/**
|
|
@@ -251,9 +142,17 @@ export declare function createWebpackLoader(options?: CompilerOptions): (this: a
|
|
|
251
142
|
*/
|
|
252
143
|
export declare function createRollupPlugin(options?: CompilerOptions): {
|
|
253
144
|
name: string;
|
|
254
|
-
transform(code: string, id: string): Promise<{
|
|
255
|
-
code:
|
|
256
|
-
map:
|
|
145
|
+
transform(code: string, id: string): Promise<import("./transform/templates.js").TransformResult | {
|
|
146
|
+
code: string;
|
|
147
|
+
map: {
|
|
148
|
+
version: number;
|
|
149
|
+
sources: string[];
|
|
150
|
+
names: string[];
|
|
151
|
+
sourceRoot?: string | undefined;
|
|
152
|
+
sourcesContent?: string[] | undefined;
|
|
153
|
+
mappings: string;
|
|
154
|
+
file: string;
|
|
155
|
+
} | null | undefined;
|
|
257
156
|
} | null>;
|
|
258
157
|
};
|
|
259
158
|
/**
|
|
@@ -263,7 +162,7 @@ export declare function createESBuildPlugin(options?: CompilerOptions): {
|
|
|
263
162
|
name: string;
|
|
264
163
|
setup(build: any): void;
|
|
265
164
|
};
|
|
266
|
-
export {
|
|
165
|
+
export type { ServerFnTransformOptions } from './frontend/babel/server-functions.js';
|
|
267
166
|
import type { ComponentResolverRule } from './resolve/component-resolver.js';
|
|
268
167
|
/**
|
|
269
168
|
* Vite plugin for `"use server"`: applies the transform (client→RPC stub, server→register
|
|
@@ -273,21 +172,10 @@ import type { ComponentResolverRule } from './resolve/component-resolver.js';
|
|
|
273
172
|
* register only when their chunk loads → an RPC registry miss). The client never imports
|
|
274
173
|
* it. `enforce:'pre'` so it runs on the raw source before other transforms.
|
|
275
174
|
*/
|
|
276
|
-
export declare function serverFunctionsVitePlugin<T = any>(
|
|
175
|
+
export declare function serverFunctionsVitePlugin<T = any>(options?: {
|
|
176
|
+
babel?: boolean;
|
|
177
|
+
}): T;
|
|
277
178
|
declare const _default: {
|
|
278
|
-
analyzeProp: typeof analyzeProp;
|
|
279
|
-
analyzeProps: typeof analyzeProps;
|
|
280
|
-
shouldUseLitTemplate: typeof shouldUseLitTemplate;
|
|
281
|
-
isLitTemplate: typeof isLitTemplate;
|
|
282
|
-
generateCreateElement: typeof generateCreateElement;
|
|
283
|
-
generatePropsCode: typeof generatePropsCode;
|
|
284
|
-
generateChildrenCode: typeof generateChildrenCode;
|
|
285
|
-
generateLitHTMLTemplate: typeof generateLitHTMLTemplate;
|
|
286
|
-
optimizeStatic: typeof optimizeStatic;
|
|
287
|
-
optimizeSpreads: typeof optimizeSpreads;
|
|
288
|
-
hoistStatic: typeof hoistStatic;
|
|
289
|
-
generateEventDelegation: typeof generateEventDelegation;
|
|
290
|
-
transform: typeof transform;
|
|
291
179
|
createBabelPlugin: typeof createBabelPlugin;
|
|
292
180
|
createTypeScriptTransformer: typeof createTypeScriptTransformer;
|
|
293
181
|
createVitePlugin: typeof createVitePlugin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../src/integrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC3C;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACzB,6FAA6F;IAC7F,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,
|
|
1
|
+
{"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../src/integrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC3C;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACzB,6FAA6F;IAC7F,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAEhC;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,eAAoB;;;;;;;;;;;;;;;;;GAwCpE;AAMD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,GAAE,eAAoB,aAIpD,GAAG,MAAM,YAAY,GAAG,SAkB5C;AA0BD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAE,eAAoB,GAAG,CAAC,CA2GpE;AA4CD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,eAAoB,IACxC,MAAM,GAAG,EAAE,QAAQ,MAAM,mBAUjD;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,eAAoB;;oBAItC,MAAM,MAAM,MAAM;;;;;;;;;;;;EAK3C;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,eAAoB;;iBAIhD,GAAG;EAwBnB;AAWD,YAAY,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AA8B7E;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,CAAC,CAqCvF;;;;;;;;;AAED,wBAOE"}
|