@nextwebwg/htmlkit 1.0.0-alpha.60 → 1.0.0-alpha.63

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 (65) hide show
  1. package/README.md +1 -1
  2. package/dist/application.d.ts.map +1 -1
  3. package/dist/application.js +115 -11
  4. package/dist/application.js.map +1 -1
  5. package/dist/browser.d.ts.map +1 -1
  6. package/dist/browser.js +52 -5
  7. package/dist/browser.js.map +1 -1
  8. package/dist/build.d.ts.map +1 -1
  9. package/dist/build.js +16 -6
  10. package/dist/build.js.map +1 -1
  11. package/dist/bundle-worker.js +15 -2
  12. package/dist/bundle-worker.js.map +1 -1
  13. package/dist/bundle.d.ts +9 -1
  14. package/dist/bundle.d.ts.map +1 -1
  15. package/dist/bundle.js +21 -12
  16. package/dist/bundle.js.map +1 -1
  17. package/dist/client.d.ts +8 -2
  18. package/dist/client.d.ts.map +1 -1
  19. package/dist/client.js +53 -8
  20. package/dist/client.js.map +1 -1
  21. package/dist/component-module.d.ts +20 -0
  22. package/dist/component-module.d.ts.map +1 -0
  23. package/dist/component-module.js +82 -0
  24. package/dist/component-module.js.map +1 -0
  25. package/dist/document.d.ts +5 -1
  26. package/dist/document.d.ts.map +1 -1
  27. package/dist/document.js +6 -2
  28. package/dist/document.js.map +1 -1
  29. package/dist/index.d.ts +2 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/private-api.d.ts +12 -0
  33. package/dist/private-api.d.ts.map +1 -0
  34. package/dist/private-api.js +158 -0
  35. package/dist/private-api.js.map +1 -0
  36. package/dist/private-client.d.ts +11 -0
  37. package/dist/private-client.d.ts.map +1 -0
  38. package/dist/private-client.js +18 -0
  39. package/dist/private-client.js.map +1 -0
  40. package/dist/private-readers.d.ts +26 -0
  41. package/dist/private-readers.d.ts.map +1 -0
  42. package/dist/private-readers.js +107 -0
  43. package/dist/private-readers.js.map +1 -0
  44. package/dist/provider-preparation.d.ts +20 -0
  45. package/dist/provider-preparation.d.ts.map +1 -0
  46. package/dist/provider-preparation.js +82 -0
  47. package/dist/provider-preparation.js.map +1 -0
  48. package/dist/providers.d.ts +14 -0
  49. package/dist/providers.d.ts.map +1 -0
  50. package/dist/providers.js +127 -0
  51. package/dist/providers.js.map +1 -0
  52. package/dist/read-channel.d.ts +30 -0
  53. package/dist/read-channel.d.ts.map +1 -0
  54. package/dist/read-channel.js +65 -0
  55. package/dist/read-channel.js.map +1 -0
  56. package/dist/serve.d.ts.map +1 -1
  57. package/dist/serve.js +24 -11
  58. package/dist/serve.js.map +1 -1
  59. package/dist/server.d.ts +35 -2
  60. package/dist/server.d.ts.map +1 -1
  61. package/dist/server.js +88 -21
  62. package/dist/server.js.map +1 -1
  63. package/dist/types.d.ts +19 -0
  64. package/dist/types.d.ts.map +1 -1
  65. package/package.json +3 -2
package/README.md CHANGED
@@ -40,7 +40,7 @@ pnpm build:docs-proof
40
40
  node dist/cli.js preview ../../.context/htmlkit-docs-proof
41
41
  ```
42
42
 
43
- The basic application exercises routes, loaders, state, and controllers without documentation
43
+ The basic application exercises routes, loaders, state, and component modules without documentation
44
44
  features. The docs proof converts this repository's Markdown guides and generates a component
45
45
  reference, code display, heading anchors, search navigation, a theme, and an interactive example.
46
46
  Its Markdown dependency and theme live in the consumer, outside the platform runtime and published
@@ -1 +1 @@
1
- {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0D,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAExH,OAAO,EAA0C,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAIlF,OAAO,EAA4C,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAG1F,OAAO,EAAiJ,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC9L,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAA0D,YAAY,EAAE,YAAY,EACxL,MAAM,YAAY,CAAC;AAoB/C,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAYvG;AAGD,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,cAAc;;;;EAI/E;AAED,+GAA+G;AAC/G,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACnD;AAED,iHAAiH;AACjH,wBAAsB,0BAA0B,CAAC,KAAK,GAAE,kBAAuB,EAAE,YAAY,CAAC,EAAE,aAAa,EAC3G,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,UAAU,EAAE,MAAM,CAAC,EAAE,4BAA4B,GAAG,KAAK;;mBA2E9D,gBAAgB,KAAG,OAAO,CAAC,UAAU,CAAC;;;GA4KnE;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,GAAE,kBAAuB,EAAE,YAAY,CAAC,EAAE,aAAa,EAClG,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,UAAU,EAAE,MAAM,CAAC,EAAE,4BAA4B,GAAG,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAElH"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0D,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAGxH,OAAO,EAA0C,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAIlF,OAAO,EAA4C,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAM1F,OAAO,EAAqK,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAClN,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAA0D,YAAY,EAAE,YAAY,EACxL,MAAM,YAAY,CAAC;AAoB/C,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAYvG;AAGD,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,cAAc;;;;EAI/E;AAED,+GAA+G;AAC/G,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACnD;AAED,iHAAiH;AACjH,wBAAsB,0BAA0B,CAAC,KAAK,GAAE,kBAAuB,EAAE,YAAY,CAAC,EAAE,aAAa,EAC3G,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,UAAU,EAAE,MAAM,CAAC,EAAE,4BAA4B,GAAG,KAAK;;mBAsF9D,gBAAgB,KAAG,OAAO,CAAC,UAAU,CAAC;;;GAuPnE;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,GAAE,kBAAuB,EAAE,YAAY,CAAC,EAAE,aAAa,EAClG,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,UAAU,EAAE,MAAM,CAAC,EAAE,4BAA4B,GAAG,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAElH"}
@@ -1,16 +1,20 @@
1
- import { dirname, join } from "node:path";
1
+ import { basename, dirname, extname, join } from "node:path";
2
2
  import { fileURLToPath, pathToFileURL } from "node:url";
3
3
  import { existsSync } from "node:fs";
4
4
  import { readFile } from "node:fs/promises";
5
5
  import { compileComponentStylesForBuild, parseComponentResource } from "@nextwebwg/html-next";
6
6
  import { loadNodeComponents } from "@nextwebwg/html-next/node-loader";
7
+ import { createRenderer } from "@nextwebwg/html-next/server";
7
8
  import { createServer, isRunnableDevEnvironment } from "vite";
8
9
  import { configure, HtmlKitError, rootAlias, withPlugins } from "./config.js";
9
10
  import { sitePolicy } from "./csp.js";
10
11
  import { authoredHead, documentHTML, redirectPage } from "./document.js";
11
12
  import { breadth, discover, discoverServerFiles, matchRoute, parameter, redirectTable, validSegment } from "./routes.js";
12
13
  import { applicationResource, pageDefinition, withoutSettings } from "./resource.js";
13
- import { createNavigation, failurePage, pageAction, pageResponse, prerenderedActions, renderRoute, respond, serverFailure } from "./server.js";
14
+ import { createProviderModules } from "./providers.js";
15
+ import { serverReaders } from "./private-readers.js";
16
+ import { privateReadResponse } from "./private-api.js";
17
+ import { createNavigation, failurePage, pageAction, pageResponse, prerenderedActions, renderRoute, requestReadContext, respond, serverFailure } from "./server.js";
14
18
  // Built-in components need no link: a resource that uses one gets it added after its content, so
15
19
  // diagnostics keep their line numbers. The import map below resolves it from this package.
16
20
  const builtins = [["hk-nav", "@nextwebwg/htmlkit/components/nav.html"], ["hk-breadcrumbs", "@nextwebwg/htmlkit/components/breadcrumbs.html"],
@@ -75,6 +79,17 @@ export async function createApplicationInternals(input = {}, moduleServer, asset
75
79
  }
76
80
  const module = async (layer) => layer.server === undefined ? {} :
77
81
  typeof layer.server === "string" ? await environment.runner.import(layer.server) : layer.server;
82
+ const renderer = createRenderer();
83
+ const privateLifetime = new AbortController();
84
+ const privateSources = new Map();
85
+ const providers = createProviderModules(config.root, {
86
+ cacheDir: server.config.cacheDir,
87
+ async resolve(specifier, importer) {
88
+ const resolved = await server.environments.client.pluginContainer.resolveId(specifier, importer);
89
+ return resolved === null || resolved.external ? undefined : resolved.id.split("?")[0];
90
+ },
91
+ watch: file => { server.watcher.add(file); },
92
+ });
78
93
  // Diagnostics name a loader's file, or its component when a plugin supplies the loader module.
79
94
  const origin = (layer) => typeof layer.server === "string" ? layer.server : layer.component;
80
95
  // Materialize entries once per application so loaders and navigation see the same catalog.
@@ -189,10 +204,82 @@ export async function createApplicationInternals(input = {}, moduleServer, asset
189
204
  if (!definition.slots?.some(slot => slot.name === "page"))
190
205
  throw new HtmlKitError('Layout requires a slot named "page".', definition.source.file);
191
206
  }
192
- const components = [...loaded.nodes.values()].map(node => ({ definition: withoutSettings(node.definition),
193
- styles: compileComponentStylesForBuild(node.definition.css, node.definition),
194
- ...(node.controller === undefined ? {} : { controller: fileURLToPath(node.controller.url) }),
195
- ...(node.module === undefined ? {} : { module: fileURLToPath(node.module.url) }) }));
207
+ const carriers = new Map();
208
+ for (const node of loaded.nodes.values()) {
209
+ const carrier = carriers.get(node.url) ?? { count: 0, explicit: false };
210
+ carrier.count += 1;
211
+ carrier.explicit ||= node.module !== undefined || node.controller !== undefined;
212
+ carriers.set(node.url, carrier);
213
+ }
214
+ const siblings = new Map();
215
+ const sibling = (file, suffix = "") => {
216
+ const stem = file.slice(0, -extname(file).length) + suffix;
217
+ const candidates = [stem + ".js", stem + ".ts"].filter(path => existsSync(path));
218
+ if (candidates.length > 1)
219
+ throw new HtmlKitError(`${suffix === "" ? "Component" : suffix === ".client" ? "Client" : "Server"} sibling module is ambiguous: ${candidates.map(path => basename(path)).join(", ")}; ${suffix === "" ? "select one with an explicit module attribute" : `keep one ${suffix.slice(1)} companion`}.`, file);
220
+ return candidates[0];
221
+ };
222
+ const companion = (url) => {
223
+ let found = siblings.get(url);
224
+ if (found !== undefined)
225
+ return found;
226
+ found = (async () => {
227
+ const carrier = carriers.get(url);
228
+ if (carrier.count > 1 && carrier.explicit)
229
+ return undefined;
230
+ const file = fileURLToPath(url);
231
+ const found = sibling(file);
232
+ if (found === undefined)
233
+ return undefined;
234
+ if (carrier.count > 1) {
235
+ throw new HtmlKitError("A sibling module is ambiguous for a file declaring several components; set module on the template it belongs to.", file);
236
+ }
237
+ return found;
238
+ })();
239
+ siblings.set(url, found);
240
+ return found;
241
+ };
242
+ const components = await providers.resolve(await Promise.all([...loaded.nodes.values()].map(async (node) => {
243
+ let module = node.module === undefined
244
+ ? node.controller !== undefined || node.imported || !node.url.startsWith("file:") ? undefined : await companion(node.url)
245
+ : fileURLToPath(node.module.url);
246
+ let client;
247
+ let privateModule;
248
+ let readers;
249
+ if (node.controller === undefined && !node.imported && node.url.startsWith("file:")) {
250
+ const carrier = carriers.get(node.url);
251
+ if (module !== undefined && /\.client\.[jt]s$/.test(module)) {
252
+ client = module;
253
+ module = undefined;
254
+ }
255
+ else if (module !== undefined || !carrier.explicit) {
256
+ client = sibling(module ?? fileURLToPath(node.url), ".client");
257
+ if (client !== undefined && module === undefined && carrier.count > 1)
258
+ throw new HtmlKitError("A client sibling is ambiguous for a file declaring several components; set module on the template it belongs to.", fileURLToPath(node.url));
259
+ }
260
+ const candidate = sibling(module ?? fileURLToPath(node.url), ".server");
261
+ if (candidate !== undefined && (module !== undefined || carrier.count === 1)) {
262
+ const found = serverReaders(await environment.runner.import(candidate), candidate);
263
+ if (found !== undefined && Object.keys(found).length > 0) {
264
+ if (module === undefined)
265
+ throw new HtmlKitError("Private readers require a common module containing their input selectors.", candidate);
266
+ privateModule = candidate;
267
+ readers = Object.keys(found);
268
+ }
269
+ }
270
+ }
271
+ return { definition: withoutSettings(node.definition), styles: compileComponentStylesForBuild(node.definition.css, node.definition),
272
+ ...(node.controller === undefined ? {} : { controller: fileURLToPath(node.controller.url) }),
273
+ ...(client === undefined ? {} : { client }),
274
+ ...(privateModule === undefined ? {} : { server: privateModule }), ...(readers === undefined ? {} : { privateReaderNames: readers }),
275
+ ...(module === undefined ? {} : { module }) };
276
+ })));
277
+ for (const component of components)
278
+ if (component.server !== undefined && component.binding !== undefined)
279
+ privateSources.set(component.binding.source, {
280
+ definition: component.definition, common: () => environment.runner.import(component.module),
281
+ readers: async () => serverReaders(await environment.runner.import(component.server), component.server),
282
+ });
196
283
  return { components, definitions: components.map(component => component.definition), layers: layers.map((layer, i) => ({ definition: definitions[i],
197
284
  module: () => module(layer), origin: origin(layer) })) };
198
285
  };
@@ -225,7 +312,12 @@ export async function createApplicationInternals(input = {}, moduleServer, asset
225
312
  const { route, params } = matched ?? { route: fallback, params: {} };
226
313
  const { layers, definitions, components } = await graph(route);
227
314
  const rendered = await renderRoute({ base: config.base, canonicalOrigin, route, params, url, ...(request === undefined ? {} : { request }), signal, layers,
228
- definitions, scripts, ...(await site().then(site => site === undefined ? {} : { policy: site })), navigation, ...(failure === undefined ? {} : { failure }),
315
+ definitions, providers: Object.fromEntries(components.flatMap(component => component.binding === undefined ? [] : [[component.definition.contract.tag, component.binding]])),
316
+ clientModules: components.filter(component => component.client !== undefined).map(component => component.definition.contract.tag),
317
+ services: options.services,
318
+ privateReaders: Object.fromEntries(components.flatMap(component => component.server === undefined ? [] : [[component.definition.contract.tag,
319
+ async () => serverReaders(await environment.runner.import(component.server), component.server)]])),
320
+ render: renderer.render, scripts, ...(await site().then(site => site === undefined ? {} : { policy: site })), navigation, ...(failure === undefined ? {} : { failure }),
229
321
  ...(action === undefined ? {} : { action }) });
230
322
  if (rendered.kind === "redirect")
231
323
  return redirected(url.pathname, rendered.location, rendered.status, rendered.headers);
@@ -235,14 +327,15 @@ export async function createApplicationInternals(input = {}, moduleServer, asset
235
327
  return { ...page, headers: rendered.headers };
236
328
  }
237
329
  return { status: failure?.status ?? (matched === undefined ? 404 : rendered.status), pathname: url.pathname, body: rendered.body, css: rendered.css, head: rendered.head,
238
- html: documentHTML(rendered.body, rendered.head), components, layers: rendered.layers, headers: rendered.headers };
330
+ html: documentHTML(rendered.body, rendered.head), components, layers: rendered.layers, headers: rendered.headers,
331
+ ...(rendered.prepared === undefined ? {} : { prepared: rendered.prepared }) };
239
332
  };
240
333
  /**
241
334
  * A failure answers with app/error.html and a safe message; the error itself goes to the console. The
242
335
  * development server, which supplies the module server, shows the error instead.
243
336
  */
244
337
  const failed = async (error, request) => {
245
- const report = (error) => { if (!ownsServer || request.signal.aborted)
338
+ const report = (error) => { if (!ownsServer || request.signal.aborted || privateLifetime.signal.aborted)
246
339
  throw error; console.error(error); };
247
340
  report(error);
248
341
  const { pathname } = new URL(request.url);
@@ -256,6 +349,10 @@ export async function createApplicationInternals(input = {}, moduleServer, asset
256
349
  };
257
350
  const pipeline = {
258
351
  base: config.base, routes, endpoints,
352
+ read(request) {
353
+ request = new Request(request, { signal: AbortSignal.any([request.signal, privateLifetime.signal]) });
354
+ return privateReadResponse(request, config.base, privateSources, url => requestReadContext(request, url, config.base, matchRoute(routes, url.pathname, config.base)?.params ?? {}, options.services));
355
+ },
259
356
  redirects: new Map([...redirects].map(([from, location]) => [from, { location, status: 308 }])),
260
357
  endpoint: async (route) => await environment.runner.import(route.file),
261
358
  ...(middleware === undefined ? {} : { middleware: async () => {
@@ -318,8 +415,15 @@ export async function createApplicationInternals(input = {}, moduleServer, asset
318
415
  },
319
416
  // Not a method of `this`: runtimes are handed the function itself, as in Deno.serve(application.fetch).
320
417
  fetch: request => respond(pipeline, request).catch((error) => failed(error, request)),
321
- async close() { if (ownsServer)
322
- await server.close(); },
418
+ async close() {
419
+ privateLifetime.abort();
420
+ try {
421
+ await Promise.all([renderer.close(), ...ownsServer ? [server.close()] : []]);
422
+ }
423
+ finally {
424
+ await providers.close();
425
+ }
426
+ },
323
427
  };
324
428
  return { application, graph, catalog: concreteRoutes, policy: site };
325
429
  }
@@ -1 +1 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,8BAA8B,EAAE,sBAAsB,EAA4B,MAAM,sBAAsB,CAAC;AACxH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAsB,MAAM,MAAM,CAAC;AAElF,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAmB,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzH,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAiD,MAAM,aAAa,CAAC;AAI9L,iGAAiG;AACjG,2FAA2F;AAC3F,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE,wCAAwC,CAAC,EAAE,CAAC,gBAAgB,EAAE,gDAAgD,CAAC;IAC1I,CAAC,UAAU,EAAE,0CAA0C,CAAC,CAAU,CAAC;AAErE,yGAAyG;AACzG,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,EAAE,gCAAgC,EAAE,IAAI,GAAG,CAAC,gBAAgB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;AAClJ,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,SAAS;QAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACxH,OAAO,EAAE,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3F,CAAC;AAED,uGAAuG;AACvG,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B,EAAE,IAAY;IACzE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,CAAU,EAAE,CAAC;QAC3H,IAAI,MAAM,KAAK,SAAS;YAAE,SAAS;QACnC,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,YAAY,CAAC,GAAG,IAAI,wFAAwF,EAAE,MAAM,CAAC,CAAC;QAClI,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,YAAY,CAAC,OAA0B,EAAE,MAAuB;IAC9E,MAAM,IAAI,GAAiB,EAAE,IAAI,EAAE,YAAY,GAAG,+BAA+B,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAC/I,MAAM,IAAI,GAAG,sCAAsC,CAAC;IACpD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;AACxD,CAAC;AASD,iHAAiH;AACjH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,KAAK,GAAuB,EAAE,EAAE,YAA4B,EAC3G,MAA2C,EAAE,MAA6C;IAC1F,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAChE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACvJ,oFAAoF;IACpF,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAC1E,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzE,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxH,IAAI,QAAQ,KAAK,SAAS;QAAE,MAAM,IAAI,YAAY,CAAC,uCAAuC,QAAQ,CAAC,OAAO,6BAA6B,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC7J,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC;IACjC,MAAM,UAAU,GAAG,YAAY,KAAK,SAAS,CAAC;IAC9C,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,YAAY,IAAI,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACrJ,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE;QAChG,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC;IAC5C,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,EAAE,CAAC;QACxE,IAAI,UAAU;YAAE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrC,MAAM,IAAI,YAAY,CAAC,mDAAmD,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,EAAE,KAAiB,EAAyB,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;IAClH,+FAA+F;IAC/F,MAAM,MAAM,GAAG,CAAC,KAAiB,EAAU,EAAE,CAAC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;IAEhH,2FAA2F;IAC3F,MAAM,YAAY,GAAuB,EAAE,CAAC;IAC5C,IAAI,OAAmE,CAAC;IACxE,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,OAAO,KAAK,CAAC,KAAK,IAAI,EAAE;QACnD,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAC;QAClD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ;gBAAE,MAAM,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtH,2FAA2F;YAC3F,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBACpE,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ;oBAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxD,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;YAC7E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,YAAY,CAAC,yCAAyC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtI,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC9H,MAAM,IAAI,YAAY,CAAC,qDAAqD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzH,CAAC;gBACD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBAChD,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;oBAChC,IAAI,IAAI,KAAK,SAAS;wBAAE,OAAO,CAAC,OAAO,CAAC,CAAC;oBACzC,MAAM,KAAK,GAAY,KAAK,CAAC,IAAI,CAAC,CAAC;oBACnC,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC3B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;4BAAE,MAAM,IAAI,YAAY,CAAC,aAAa,IAAI,uCAAuC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;wBAC1H,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;oBACrC,CAAC;oBACD,8EAA8E;oBAC9E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;wBAC1G,MAAM,IAAI,YAAY,CAAC,aAAa,IAAI,cAAc,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,qCAAqC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACvJ,CAAC;oBACD,OAAO,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;gBACnF,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,YAAY,CAAC,6BAA6B,IAAI,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBACnG,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,YAAY,CAAC,uCAAuC,IAAI,6BAA6B,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC3I,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBACtD,IAAI,OAAO,EAAE,KAAK,KAAK,KAAK;oBAAE,MAAM,IAAI,YAAY,CAAC,+BAA+B,OAAO,EAAE,KAAK,CAAC,OAAO,OAAO,IAAI,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC3I,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,EAAE,CAAC;IACL,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;IAEzE,uFAAuF;IACvF,qFAAqF;IACrF,MAAM,KAAK,GAAG,KAAK,EAAE,KAAuB,EAAuB,EAAE;QACnE,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA8C,CAAC;QACvE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkD,CAAC;QAC5E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACpF,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,OAAO,EAAE,wBAAwB,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACzL,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE;YAChG,cAAc,EAAE,KAAK,EAAC,GAAG,EAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;YAC1F,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE;gBAChD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;gBACvE,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS;oBACvC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAClG,CAAC;YACD,kBAAkB,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG;YACjI,mFAAmF;YACnF,oFAAoF;YACpF,SAAS,EAAE,GAAG;YACd,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC3B,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC3F,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,QAAQ;oBAAE,IAAI,IAAI,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;wBAAE,MAAM,IAAI,iCAAiC,IAAI,IAAI,CAAC;gBACvI,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC3G,IAAI,eAAe,IAAI,MAAM;oBAAE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC1D,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,UAAU,CAAE,CAAC,CAAC,CAAC,CAAC;gBACzM,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;oBAChC,IAAI,yCAAyC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;wBAAE,SAAS;oBAC3I,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAO,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC5G,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ;wBAAE,MAAM,IAAI,YAAY,CAAC,mCAAmC,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;oBACzH,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,SAAS,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrE,CAAC;gBACD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YACzB,CAAC;YACD,cAAc,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;gBACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,KAAK,SAAS,EAAE,CAAC,CAAC;gBAC5D,IAAI,QAAQ,KAAK,SAAS;oBAAE,MAAM,IAAI,YAAY,CAAC,mCAAmC,SAAS,GAAG,EAAE,SAAS,CAAC,CAAC;gBAC/G,OAAO,QAAQ,CAAC;YAClB,CAAC;SACF,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACrC,IAAI,KAAK,KAAK,KAAK;gBAAE,OAAO,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACjH,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,GAAG,KAAK,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3G,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,YAAY,CAAC,2DAA2D,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAC7H,OAAO,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAE,CAAC,UAAU,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QACH,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;YACxD,MAAM,IAAI,YAAY,CAAC,kEAAkE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9G,CAAC;QACD,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;gBAAE,MAAM,IAAI,YAAY,CAAC,sCAAsC,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpJ,CAAC;QACD,MAAM,UAAU,GAAwB,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;YAC5H,MAAM,EAAE,8BAA8B,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC;YAC5E,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5F,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACvF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAE;gBAClJ,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAC7D,CAAC,CAAC;IAEF,kHAAkH;IAClH,8HAA8H;IAC9H,IAAI,QAAyD,CAAC;IAC9D,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,QAAQ,KAAK,CAAC,KAAK,IAAI,EAAE;QAC1C,IAAI,GAAG,KAAK,KAAK;YAAE,OAAO,SAAS,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,WAAW,GAA0B,EAAE,CAAC;QAC9C,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACxI,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/E,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC,CAAC,EAAE,CAAC;IAGL,MAAM,eAAe,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5K,MAAM,UAAU,GAAG,KAAK,EAAE,QAAgB,EAAE,QAAgB,EAAE,MAAsB,EAAE,OAAiB,EAAiB,EAAE,CACxH,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAChK,MAAM,cAAc,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5K,0GAA0G;IAC1G,0CAA0C;IAC1C,MAAM,UAAU,GAAG,KAAK,EAAE,OAA8F,EAAE,GAAQ,EAChI,OAA4B,EAAE,MAAmB,EAAE,OAAiB,EAAE,MAAmB,EAAiB,EAAE;QAC5G,MAAM,QAAQ,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC;QACpE,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjJ,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,IAAI,EAAE,KAAK,EAAE,QAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACtE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM;YACxJ,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;YAC3J,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU;YAAE,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxH,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACjC,iFAAiF;YACjF,MAAM,IAAI,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACzH,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI;YACtK,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;IACvH,CAAC,CAAC;IACF;;;OAGG;IACH,MAAM,MAAM,GAAG,KAAK,EAAE,KAAc,EAAE,OAAgB,EAAqB,EAAE;QAC3E,MAAM,MAAM,GAAG,CAAC,KAAc,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrH,MAAM,CAAC,KAAK,CAAC,CAAC;QACd,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1C,mFAAmF;QACnF,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC;YAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACrG,8GAA8G;QAC9G,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC;aACzK,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC;IACF,MAAM,QAAQ,GAA+B;QAC3C,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS;QACpC,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAY,EAAE,CAAC,CAAC,CAAC;QACxG,QAAQ,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE,CAAC,MAAM,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAmB;QACtF,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE;gBAC3D,MAAM,OAAO,GAAG,CAAC,MAAM,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAA2B,EAAC,OAAO,CAAC;gBAC/F,IAAI,OAAO,OAAO,KAAK,UAAU;oBAAE,MAAM,IAAI,YAAY,CAAC,4CAA4C,EAAE,UAAU,CAAC,CAAC;gBACpH,OAAO,OAAqB,CAAC;YAC/B,CAAC,EAAE,CAAC;QACJ,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;YACxC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,iGAAiG;YACjG,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC;YACzC,IAAI,MAA8B,CAAC;YACnC,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnC,wDAAwD;gBACxD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,MAAM;oBAAE,MAAM,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpG,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBACtC,IAAI,KAAK,YAAY,QAAQ;oBAAE,OAAO,KAAK,CAAC;gBAC5C,MAAM,GAAG,KAAK,CAAC;YACjB,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACvK,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO;YAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,OAAO;gBAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAChK,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC;KACF,CAAC;IACF,MAAM,WAAW,GAAgB;QAC/B,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,EAAE,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QAClJ,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC,cAAc;QAC5E,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;QAC1F,KAAK,CAAC,OAAO;YACX,MAAM,KAAK,GAAG,MAAM,cAAc,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,OAAO,KAAK,SAAS;gBAAE,MAAM,IAAI,YAAY,CAAC,+CAA+C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAChJ,mFAAmF;YACnF,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAClG,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC,MAAM;YAC1D,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,qGAAqG;YACrG,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;YAChE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI;gBAAE,MAAM,IAAI,YAAY,CAAC,gFAAgF,CAAC,CAAC;YACrK,2EAA2E;YAC3E,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;YACjG,IAAI,UAAU,KAAK,SAAS;gBAAE,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;YAC/E,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3F,CAAC;QACD,wGAAwG;QACxG,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9F,KAAK,CAAC,KAAK,KAAK,IAAI,UAAU;YAAE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KACxD,CAAC;IACF,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACvE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAK,GAAuB,EAAE,EAAE,YAA4B,EAClG,MAA2C,EAAE,MAA6C;IAC1F,OAAO,CAAC,MAAM,0BAA0B,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;AAC7F,CAAC"}
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AASpD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBvG;AAQD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,SAAS,MAAM,EAAO,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CA4CxK;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAWhG"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAepD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBvG;AAQD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,SAAS,MAAM,EAAO,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAgFxK;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAehG"}
package/dist/browser.js CHANGED
@@ -6,8 +6,14 @@ import { collectSharedStylesheets, compileComponentGraphStylesForBuild, generate
6
6
  const packagedRuntime = fileURLToPath(import.meta.resolve("@nextwebwg/html-next/generated-runtime"));
7
7
  const sourceRuntime = packagedRuntime.replace(/[/\\]dist[/\\]generated-runtime\.js$/, "/src/generated-runtime.ts");
8
8
  // Workspace source execution can test the same entry before packages have been built.
9
- const runtime = import.meta.url.endsWith(".ts") && existsSync(sourceRuntime) ? sourceRuntime : packagedRuntime;
10
- const client = fileURLToPath(new URL(import.meta.url.endsWith(".ts") ? "./client.ts" : "./client.js", import.meta.url));
9
+ const source = fileURLToPath(import.meta.url).endsWith(".ts");
10
+ const runtime = source && existsSync(sourceRuntime) ? sourceRuntime : packagedRuntime;
11
+ const packagedBindings = fileURLToPath(import.meta.resolve("@nextwebwg/html-next/bindings"));
12
+ const sourceBindings = packagedBindings.replace(/[/\\]dist[/\\]bindings\.js$/, "/src/bindings.ts");
13
+ const bindings = source && existsSync(sourceBindings) ? sourceBindings : packagedBindings;
14
+ const client = fileURLToPath(new URL(source ? "./client.ts" : "./client.js", import.meta.url));
15
+ const moduleComposition = fileURLToPath(new URL(source ? "./component-module.ts" : "./component-module.js", import.meta.url));
16
+ const privateClient = fileURLToPath(new URL(source ? "./private-client.ts" : "./private-client.js", import.meta.url));
11
17
  export function stylesheetSources(components) {
12
18
  const sources = new Map();
13
19
  const shared = collectSharedStylesheets(components.map(component => component.definition));
@@ -44,6 +50,40 @@ export function browserSources(components, options, entry, css = []) {
44
50
  const invocations = new Map(components.map(({ definition }) => [definition.contract.tag, { module: componentId(definition), definition }]));
45
51
  for (const component of components) {
46
52
  const reads = [];
53
+ const moduleId = component.module === undefined && component.client === undefined ? undefined : componentId(component.definition) + ".module.js";
54
+ if (moduleId !== undefined) {
55
+ // Native ESM caches this namespace; the binding library retains each host's passive instance.
56
+ // A behavior-only module does not download or activate the provider engine.
57
+ const options = component.binding === undefined ? "" : `, { browser: host => ({ source: ${JSON.stringify(component.binding.source)}, snapshot: preparedBinding(host.root, ${JSON.stringify(component.definition.contract.tag)}) }) }`;
58
+ const common = component.module === undefined ? "const behavior = {};" : `import * as behavior from ${JSON.stringify(component.module)};`;
59
+ const privateNames = component.binding?.readers ?? [];
60
+ const environment = `${component.client === undefined ? "" : `\nimport * as environment from ${JSON.stringify(component.client)};`}${component.client === undefined && privateNames.length === 0 ? "" : `\nimport { componentModule, connectModules } from ${JSON.stringify(moduleComposition)};`}${privateNames.length === 0 ? "" : `\nimport { privateReaders } from ${JSON.stringify(privateClient)};`}`;
61
+ const privateModule = `componentModule(behavior, privateReaders(library, ${JSON.stringify(base)}, ${JSON.stringify(component.binding?.source)}, ${JSON.stringify(component.definition.contract.tag)}, ${JSON.stringify(privateNames)}, ${JSON.stringify(Object.fromEntries(Object.entries(component.definition.contract.props).flatMap(([name, prop]) => prop.select === undefined ? [] : [[name, prop.select.from]])))}))`;
62
+ const commonModule = privateNames.length === 0 ? "behavior" : privateModule;
63
+ const composed = component.client === undefined ? commonModule : `componentModule(${commonModule}, environment)`;
64
+ sources.set(moduleId, `${component.binding === undefined ? "" : `import { preparedBinding } from ${JSON.stringify(client)};
65
+ import { generatedHost, renderedInstanceRecord, READY_INPUT } from ${JSON.stringify(runtime)};\n`}${common}${environment}
66
+ let adapter, bound;
67
+ const binding = () => adapter ??= import(${JSON.stringify(bindings)}).then(library => bound = library.bindModule(${composed}${options}));
68
+ export const connect = "props" in behavior || "create" in behavior${component.client === undefined ? "" : ' || "props" in environment || "create" in environment'}
69
+ ? (host, context) => binding().then(module => module.connect(host, context))
70
+ : ${component.client === undefined ? 'Reflect.get(behavior, "connect")' : 'connectModules(Reflect.get(behavior, "connect"), Reflect.get(environment, "connect"))'};
71
+ ${component.binding === undefined ? "" : `
72
+ export async function adoption() {
73
+ await binding();
74
+ return (root, rendered, update) => {
75
+ const snapshot = preparedBinding(rendered, ${JSON.stringify(component.definition.contract.tag)});
76
+ const record = renderedInstanceRecord(rendered, ${JSON.stringify(component.definition.contract.tag)});
77
+ if (snapshot === undefined || record === undefined) { update(); return; }
78
+ const inputs = Object.fromEntries(Object.entries(snapshot.reads).flatMap(([name, read]) =>
79
+ record.revisions?.[name] !== read.revision || !record.inputs[name]?.producer ? [] :
80
+ [[name, { value: record.props[name], status: record.availability?.[name] ?? READY_INPUT }]]));
81
+ bound.adopt(generatedHost(root, ${JSON.stringify(component.definition.contract.tag)}), { snapshot, inputs, update });
82
+ };
83
+ }
84
+ `}
85
+ `);
86
+ }
47
87
  // Declared reads resolve as the page's URLs: a root-relative source under the deployment base, a
48
88
  // relative one as the asset Vite emits for it.
49
89
  const declarations = component.definition.declarations?.map((declaration) => {
@@ -61,7 +101,7 @@ export function browserSources(components, options, entry, css = []) {
61
101
  });
62
102
  const definition = { ...component.definition, ...declarations === undefined ? {} : { declarations },
63
103
  ...component.controller === undefined ? {} : { controller: component.controller },
64
- ...component.module === undefined ? {} : { module: component.module } };
104
+ ...moduleId === undefined ? {} : { module: moduleId } };
65
105
  let module = generateComponent(definition, { invocations, hydrate: true })
66
106
  .find((artifact) => artifact.path === `vanilla/${definition.contract.name}.js`).content
67
107
  .replace('"@nextwebwg/html-next/generated-runtime"', JSON.stringify(runtime))
@@ -74,13 +114,15 @@ export function browserSources(components, options, entry, css = []) {
74
114
  }
75
115
  // Each component's factory and the invocation attribute each prop is written as (application.ts),
76
116
  // which client navigation renders a payload's layers with.
77
- const registered = components.map(({ definition }, index) => `${JSON.stringify(definition.contract.tag)}: [c${index}, ${JSON.stringify(Object.fromEntries(Object.keys(definition.contract.props).map((name) => [name.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), name])))}]`);
78
- const functions = "adoptRenderedProps, replaceProjectedNode, generatedHost";
117
+ const registered = components.map(({ definition, binding }, index) => `${JSON.stringify(definition.contract.tag)}: [c${index}, ${JSON.stringify(Object.fromEntries(Object.keys(definition.contract.props).map((name) => [name.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), name])))}${binding === undefined ? "" : `, b${index}`}]`);
118
+ const functions = "adoptRenderedProps, replaceProjectedNode, generatedHost, flushComponent";
79
119
  sources.set(entry, `import { ${functions} } from ${JSON.stringify(runtime)};
80
120
  import { page } from ${JSON.stringify(client)};
81
121
  ${css.map(file => `import ${JSON.stringify(normalizePath(file))};`).join("\n")}
82
122
  ${[...stylesheetSources(components).keys()].map(id => `import ${JSON.stringify(id)};`).join("\n")}
83
123
  ${components.map(({ definition }, index) => `import { create${definition.contract.name} as c${index} } from ${JSON.stringify(componentId(definition))};`).join("\n")}
124
+ ${components.flatMap(({ definition, binding }, index) => binding === undefined ? [] : [`
125
+ const b${index} = () => import(${JSON.stringify(componentId(definition) + ".module.js")}).then(module => module.adoption());`]).join("\n")}
84
126
  page({ ${functions} }, ${JSON.stringify(options)}, { ${registered.join(", ")} });
85
127
  `);
86
128
  return sources;
@@ -92,6 +134,11 @@ export function browserPlugin(sources, inputs) {
92
134
  resolveId(id) { const path = id.split("?")[0]; if (sources.has(path))
93
135
  return path.endsWith(".css") ? id : `\0${id}`; },
94
136
  load(id) { return sources.get((id.startsWith("\0") ? id.slice(1) : id).split("?")[0]); },
137
+ transform(_code, id, options) {
138
+ const path = id.split("?")[0];
139
+ if (!options?.ssr && /\.server\.[cm]?[jt]sx?$/.test(path))
140
+ this.error({ id: path, message: `${path} is server-only and cannot be imported by a browser module.` });
141
+ },
95
142
  generateBundle() {
96
143
  // Virtual stylesheets keep their ids for Vite's CSS plugin; report only source files.
97
144
  if (inputs !== undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAoC,aAAa,EAAE,WAAW,EAAoC,MAAM,YAAY,CAAC;AA6BrJ,kGAAkG;AAClG,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAMzE;AAiDD,wBAAsB,gBAAgB,CAAC,KAAK,GAAE,kBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC,CAuK3F"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAuD,aAAa,EAAE,WAAW,EAAoC,MAAM,YAAY,CAAC;AA6BxK,kGAAkG;AAClG,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAMzE;AA2DD,wBAAsB,gBAAgB,CAAC,KAAK,GAAE,kBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC,CAwK3F"}
package/dist/build.js CHANGED
@@ -62,7 +62,7 @@ export async function readManifest(outDir) {
62
62
  * Write _htmlkit/server: entry.js, whose default export answers requests, and the loaders, endpoints,
63
63
  * and middleware it imports. Prerendered pages need none of their code there; their files serve them.
64
64
  */
65
- async function writeServer({ root, base, canonicalOrigin, stage, redirects, scripts, policy, internals, serverGraphs }) {
65
+ async function writeServer({ root, base, canonicalOrigin, stage, redirects, scripts, policy, internals, serverGraphs, components }) {
66
66
  const { application } = internals;
67
67
  const inputs = {};
68
68
  const ids = new Map();
@@ -82,7 +82,12 @@ async function writeServer({ root, base, canonicalOrigin, stage, redirects, scri
82
82
  let error;
83
83
  for (const { route, graph, assets } of serverGraphs) {
84
84
  const layers = [...route.layouts, route];
85
- const page = { definitions: graph.definitions, assets, layers: graph.layers.map((layer, i) => {
85
+ const page = { definitions: graph.definitions, assets,
86
+ clientModules: graph.components.filter(component => component.client !== undefined).map(component => component.definition.contract.tag),
87
+ providers: Object.fromEntries(graph.components.flatMap(component => component.binding === undefined ? [] : [[component.definition.contract.tag,
88
+ { module: module(component.module, "provider"), source: component.binding.source, ...component.binding.client === undefined ? {} : { client: component.binding.client },
89
+ ...component.binding.readers === undefined ? {} : { readers: component.binding.readers } }]])),
90
+ layers: graph.layers.map((layer, i) => {
86
91
  const loader = layers[i].server;
87
92
  if (loader !== undefined && typeof loader !== "string")
88
93
  throw new HtmlKitError("A server-rendered page's layout loaders must be files, which the build bundles into its server.", route.component);
@@ -94,7 +99,11 @@ async function writeServer({ root, base, canonicalOrigin, stage, redirects, scri
94
99
  pages[application.routes.indexOf(route)] = page;
95
100
  }
96
101
  const catalog = await internals.catalog();
97
- const data = { version: 2, base, canonicalOrigin, redirects, scripts, ...(policy === undefined ? {} : { policy }), pages, ...(error === undefined ? {} : { error }),
102
+ const readers = Object.fromEntries(components.flatMap(component => component.server === undefined || component.binding === undefined ? [] : [[component.binding.source, {
103
+ definition: component.definition, common: module(component.module, "provider"), server: module(component.server, "reader"),
104
+ }]]));
105
+ const data = { version: 3, base, canonicalOrigin, redirects, scripts, ...(policy === undefined ? {} : { policy }), pages, ...(error === undefined ? {} : { error }),
106
+ readers,
98
107
  routes: application.routes.map(path),
99
108
  catalog: [...catalog].map(([path, route]) => [path, application.routes.indexOf(route)]),
100
109
  endpoints: application.endpoints.map(endpoint => ({ ...endpoint, file: source(endpoint.file), module: module(endpoint.file, "api") })),
@@ -105,8 +114,8 @@ async function writeServer({ root, base, canonicalOrigin, stage, redirects, scri
105
114
  await mkdir(directory, { recursive: true });
106
115
  await writeFile(join(directory, "entry.js"), "// The build's request server: `htmlkit start` serves it, and its default export's fetch answers requests on any runtime.\n" +
107
116
  'import { serverApplication } from "@nextwebwg/htmlkit/server";\n' +
108
- `export default await serverApplication(import.meta.url, JSON.parse(${JSON.stringify(JSON.stringify(data))}), {\n` +
109
- Object.keys(inputs).map(id => ` ${JSON.stringify(id)}: () => import(${JSON.stringify(`./${id}.js`)}),\n`).join("") + "});\n");
117
+ `export function create(options) { return serverApplication(import.meta.url, JSON.parse(${JSON.stringify(JSON.stringify(data))}), {\n` +
118
+ Object.keys(inputs).map(id => ` ${JSON.stringify(id)}: () => import(${JSON.stringify(`./${id}.js`)}),\n`).join("") + "}, options); }\nexport default await create();\n");
110
119
  }
111
120
  export async function buildApplication(input = {}) {
112
121
  const options = await withPlugins(input);
@@ -274,7 +283,8 @@ export async function buildApplication(input = {}) {
274
283
  const sitemap = options.origin === undefined || /^sitemap:/im.test(rules) ? "" : `Sitemap: ${config.origin}${config.base}sitemap.xml\n`;
275
284
  await writeFile(join(stage, "robots.txt"), rules + sitemap);
276
285
  }
277
- await writeServer({ root: config.root, base: config.base, canonicalOrigin: options.origin === undefined ? "" : config.origin, stage, redirects, scripts, policy, internals, serverGraphs: serverGraphs.map(({ route, graph }, i) => ({ route, graph, assets: bundled(pages.length + i, route.pattern).assets })) });
286
+ await writeServer({ root: config.root, base: config.base, canonicalOrigin: options.origin === undefined ? "" : config.origin, stage, redirects, scripts, policy, internals,
287
+ components: [...pages.flatMap(page => page.components), ...serverGraphs.flatMap(({ graph }) => graph.components)], serverGraphs: serverGraphs.map(({ route, graph }, i) => ({ route, graph, assets: bundled(pages.length + i, route.pattern).assets })) });
278
288
  const routes = delivery.map(page => page.pathname);
279
289
  const published = { version: 1, base: config.base, routes, pages: delivery, redirects };
280
290
  await writeFile(join(stage, "_htmlkit/manifest.json"), JSON.stringify(published, null, 2) + "\n");