@gracile/engine 0.8.2 → 0.9.0-next.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/errors/create-vite-better-error.js +1 -1
  2. package/dist/plugin.d.ts.map +1 -1
  3. package/dist/plugin.js +13 -0
  4. package/dist/render/light-dom.d.ts +2 -0
  5. package/dist/render/light-dom.d.ts.map +1 -0
  6. package/dist/render/light-dom.js +31 -0
  7. package/dist/render/{utils.d.ts → lit-ssr.d.ts} +1 -1
  8. package/dist/render/lit-ssr.d.ts.map +1 -0
  9. package/dist/render/route-template.d.ts +3 -1
  10. package/dist/render/route-template.d.ts.map +1 -1
  11. package/dist/render/route-template.js +13 -4
  12. package/dist/routes/collect.d.ts.map +1 -1
  13. package/dist/routes/collect.js +4 -1
  14. package/dist/routes/load-module.d.ts.map +1 -1
  15. package/dist/routes/load-module.js +1 -1
  16. package/dist/routes/render.d.ts.map +1 -1
  17. package/dist/routes/render.js +1 -0
  18. package/dist/server/adapters/hono.d.ts +1 -1
  19. package/dist/server/adapters/hono.d.ts.map +1 -1
  20. package/dist/server/adapters/hono.js +1 -1
  21. package/dist/server/adapters/node.d.ts +1 -1
  22. package/dist/server/adapters/node.d.ts.map +1 -1
  23. package/dist/server/adapters/node.js +2 -2
  24. package/dist/server/request.d.ts.map +1 -1
  25. package/dist/server/request.js +4 -2
  26. package/dist/server/{utils.d.ts → utilities.d.ts} +1 -1
  27. package/dist/server/utilities.d.ts.map +1 -0
  28. package/dist/user-config.d.ts +35 -0
  29. package/dist/user-config.d.ts.map +1 -1
  30. package/dist/vite/build-routes.d.ts.map +1 -1
  31. package/package.json +10 -10
  32. package/dist/render/utils.d.ts.map +0 -1
  33. package/dist/server/utils.d.ts.map +0 -1
  34. /package/dist/render/{utils.js → lit-ssr.js} +0 -0
  35. /package/dist/server/{utils.js → utilities.js} +0 -0
@@ -3,7 +3,7 @@ import { getLogger } from '@gracile/internal-utils/logger/helpers';
3
3
  import { formatErrorMessage } from '@gracile-labs/better-errors/dev/logger';
4
4
  import { collectErrorMetadata } from '@gracile-labs/better-errors/dev/utils';
5
5
  import { getViteErrorPayload } from '@gracile-labs/better-errors/dev/vite';
6
- import { renderLitTemplate } from '../render/utils.js';
6
+ import { renderLitTemplate } from '../render/lit-ssr.js';
7
7
  import { GRACILE_JS_ERRORS_DOCS_BASE, GracileErrorData } from './errors.js';
8
8
  import { builtInErrorPage } from './pages.js';
9
9
  const logger = getLogger();
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQtD;;;;;;;;;;;;;;;;GAgBG;AAIH,eAAO,MAAM,OAAO,YAAa,aAAa,KAAG,GAAG,EAqUnD,CAAC;AAEF,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQtD;;;;;;;;;;;;;;;;GAgBG;AAIH,eAAO,MAAM,OAAO,GAAI,SAAS,aAAa,KAAG,GAAG,EAuVnD,CAAC;AAEF,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/plugin.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { join } from 'node:path';
2
2
  import { rename, rm } from 'node:fs/promises';
3
3
  import { createLogger } from '@gracile/internal-utils/logger/helpers';
4
+ import { getPluginContext, } from '@gracile/internal-utils/plugin-context';
4
5
  import { getVersion } from '@gracile/internal-utils/version';
5
6
  // import { betterErrors } from '@gracile-labs/better-errors/plugin';
6
7
  import c from 'picocolors';
@@ -54,7 +55,16 @@ export const gracile = (config) => {
54
55
  gracileConfig,
55
56
  // enabled: gracileConfig?.pages?.premises?.expose || false,
56
57
  });
58
+ let sharedPluginContext;
57
59
  return [
60
+ {
61
+ name: 'vite-plugin-gracile-context',
62
+ config(config) {
63
+ sharedPluginContext = getPluginContext(config);
64
+ gracileConfig.litSsr ??= { renderInfo: {} };
65
+ gracileConfig.litSsr.renderInfo = sharedPluginContext.litSsrRenderInfo;
66
+ },
67
+ },
58
68
  // betterErrors({
59
69
  // overlayImportPath: '@gracile/gracile/_internals/vite-custom-overlay',
60
70
  // }),
@@ -164,6 +174,9 @@ export const gracile = (config) => {
164
174
  optimizeDeps: { include: [] },
165
175
  plugins: [virtualRoutesForClient],
166
176
  });
177
+ // NOTE: Important. Get the dev. server elements renderers.
178
+ gracileConfig.litSsr ??= {};
179
+ gracileConfig.litSsr.renderInfo = getPluginContext(viteServerForClientHtmlBuild.config)?.litSsrRenderInfo;
167
180
  const htmlPages = await buildRoutes({
168
181
  viteServerForBuild: viteServerForClientHtmlBuild,
169
182
  root: viteConfig.root || process.cwd(),
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=light-dom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"light-dom.d.ts","sourceRoot":"","sources":["../../src/render/light-dom.ts"],"names":[],"mappings":"AAsCA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,31 @@
1
+ // import { LitElementRenderer } from '@lit-labs/ssr/lib/lit-element-renderer.js';
2
+ // import type { ThunkedRenderResult } from '@lit-labs/ssr/lib/render-result.js';
3
+ // export class LightDomLitElementRenderer extends LitElementRenderer {
4
+ // static override matchesClass(ctor: typeof HTMLElement) {
5
+ // // return (ctor as any)._$lightDom === true;
6
+ // return true;
7
+ // }
8
+ // // eslint-disable-next-line class-methods-use-this
9
+ // override renderShadow(): ThunkedRenderResult {
10
+ // return;
11
+ // // return []; // ← no <template shadowrootmode> emitted
12
+ // // return [];
13
+ // }
14
+ // override renderLight(renderInfo) {
15
+ // // Emit the render() output as direct light-DOM children
16
+ // // yield* super.renderShadow(renderInfo);
17
+ // // return super.renderLight(renderInfo);
18
+ // const result = this.element.render();
19
+ // console.log({ result });
20
+ // // return renderInfo.render(result);
21
+ // return ['<div>Light DOM content</div>'];
22
+ // // yield* renderInfo.render(result);
23
+ // }
24
+ // // override *renderLight(renderInfo) {
25
+ // // const result = this.element.render();
26
+ // // yield* renderInfo.render(result);
27
+ // // }
28
+ // }
29
+ // // NOTE: On server, Lit SSR doesn't seems to care at all about CE ctors.
30
+ // // customElements.define('app-shell', new Object() as typeof HTMLElement);
31
+ export {};
@@ -23,4 +23,4 @@ import type { TemplateResult } from 'lit';
23
23
  * ```
24
24
  */
25
25
  export declare function renderLitTemplate(template: ServerRenderedTemplate | TemplateResult): Promise<string>;
26
- //# sourceMappingURL=utils.d.ts.map
26
+ //# sourceMappingURL=lit-ssr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lit-ssr.d.ts","sourceRoot":"","sources":["../../src/render/lit-ssr.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,sBAAsB,EAC3B,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,iBAAiB,CACtC,QAAQ,EAAE,sBAAsB,GAAG,cAAc,GAC/C,OAAO,CAAC,MAAM,CAAC,CAEjB"}
@@ -1,10 +1,11 @@
1
1
  import { Readable } from 'node:stream';
2
+ import { type RenderInfo } from '@lit-labs/ssr';
2
3
  import type { ViteDevServer } from 'vite';
3
4
  import type { RouteInfos } from '../routes/match.js';
4
5
  import type * as R from '../routes/route.js';
5
6
  export declare const REGEX_TAG_SCRIPT: RegExp;
6
7
  export declare const REGEX_TAG_LINK: RegExp;
7
- export declare function renderRouteTemplate({ url, vite, mode, routeInfos, routeAssets, serverMode, docOnly, }: {
8
+ export declare function renderRouteTemplate({ url, vite, mode, routeInfos, routeAssets, serverMode, docOnly, renderInfo, }: {
8
9
  url: string;
9
10
  vite?: ViteDevServer | undefined;
10
11
  mode: 'dev' | 'build';
@@ -13,6 +14,7 @@ export declare function renderRouteTemplate({ url, vite, mode, routeInfos, route
13
14
  root: string;
14
15
  serverMode?: boolean | undefined;
15
16
  docOnly?: boolean | undefined;
17
+ renderInfo?: Partial<RenderInfo> | undefined;
16
18
  }): Promise<{
17
19
  output: null | Readable;
18
20
  document: null | string;
@@ -1 +1 @@
1
- {"version":3,"file":"route-template.d.ts","sourceRoot":"","sources":["../../src/render/route-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAOvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAO1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,KAAK,CAAC,MAAM,oBAAoB,CAAC;AAY7C,eAAO,MAAM,gBAAgB,QACkC,CAAC;AAEhE,eAAO,MAAM,cAAc,QAA2B,CAAC;AAEvD,wBAAsB,mBAAmB,CAAC,EACzC,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,WAAW,EACX,UAAU,EACV,OAAO,GACP,EAAE;IACF,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,CAAC,YAAY,GAAG,SAAS,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,IAAI,GAAG,QAAQ,CAAC;IAAC,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAA;CAAE,CAAC,CA8NhE"}
1
+ {"version":3,"file":"route-template.d.ts","sourceRoot":"","sources":["../../src/render/route-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKvC,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAGxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAO1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,KAAK,CAAC,MAAM,oBAAoB,CAAC;AAY7C,eAAO,MAAM,gBAAgB,QACkC,CAAC;AAEhE,eAAO,MAAM,cAAc,QAA2B,CAAC;AAEvD,wBAAsB,mBAAmB,CAAC,EACzC,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,WAAW,EACX,UAAU,EACV,OAAO,EACP,UAAU,GACV,EAAE;IACF,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,CAAC,YAAY,GAAG,SAAS,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;CAC7C,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,IAAI,GAAG,QAAQ,CAAC;IAAC,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAA;CAAE,CAAC,CAyOhE"}
@@ -3,6 +3,7 @@ import * as assert from '@gracile/internal-utils/assertions';
3
3
  import { html } from '@gracile/internal-utils/dummy-literals';
4
4
  import { render as renderLitSsr } from '@lit-labs/ssr';
5
5
  import { collectResult } from '@lit-labs/ssr/lib/render-result.js';
6
+ import { LitElementRenderer } from '@lit-labs/ssr/lib/lit-element-renderer.js';
6
7
  import { GracileError, GracileErrorData, TemplateError, } from '../errors/errors.js';
7
8
  import { PAGE_ASSETS_MARKER, SSR_OUTLET_MARKER } from './markers.js';
8
9
  async function* concatStreams(...readables) {
@@ -14,12 +15,20 @@ async function* concatStreams(...readables) {
14
15
  }
15
16
  export const REGEX_TAG_SCRIPT = /\s?<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script\s*>\s?/gi;
16
17
  export const REGEX_TAG_LINK = /\s?<link\b[^>]*?>\s?/gi;
17
- export async function renderRouteTemplate({ url, vite, mode, routeInfos, routeAssets, serverMode, docOnly, }) {
18
+ export async function renderRouteTemplate({ url, vite, mode, routeInfos, routeAssets, serverMode, docOnly, renderInfo, }) {
18
19
  const location = {
19
20
  file: routeInfos.foundRoute.filePath,
20
21
  };
21
22
  if (!routeInfos.routeModule.document && !routeInfos.routeModule.template)
22
23
  return { output: null, document: null };
24
+ // MARK: Merged render info
25
+ const mergedRenderInfo = {
26
+ ...renderInfo,
27
+ elementRenderers: [
28
+ ...(renderInfo?.elementRenderers || []),
29
+ LitElementRenderer,
30
+ ],
31
+ };
23
32
  // MARK: Context
24
33
  const context = {
25
34
  url: new URL(url),
@@ -35,7 +44,7 @@ export async function renderRouteTemplate({ url, vite, mode, routeInfos, routeAs
35
44
  message: GracileErrorData.InvalidRouteDocument.message(location.file),
36
45
  // location,
37
46
  });
38
- const fragmentRender = renderLitSsr(fragmentOutput);
47
+ const fragmentRender = renderLitSsr(fragmentOutput, mergedRenderInfo);
39
48
  const output = Readable.from(fragmentRender);
40
49
  return { output, document: null };
41
50
  }
@@ -56,7 +65,7 @@ export async function renderRouteTemplate({ url, vite, mode, routeInfos, routeAs
56
65
  });
57
66
  let baseDocumentRendered;
58
67
  try {
59
- baseDocumentRendered = await collectResult(renderLitSsr(baseDocumentTemplateResult));
68
+ baseDocumentRendered = await collectResult(renderLitSsr(baseDocumentTemplateResult, mergedRenderInfo));
60
69
  }
61
70
  catch (error) {
62
71
  throw new TemplateError({
@@ -158,7 +167,7 @@ export async function renderRouteTemplate({ url, vite, mode, routeInfos, routeAs
158
167
  // }
159
168
  if (assert.isLitTemplate(routeOutput) === false)
160
169
  throw new Error(`Wrong template result for page template ${routeInfos.foundRoute.filePath}.`);
161
- const renderStream = Readable.from(renderLitSsr(routeOutput));
170
+ const renderStream = Readable.from(renderLitSsr(routeOutput, mergedRenderInfo));
162
171
  const output = Readable.from(concatStreams(baseDocumentRenderStreamPre, renderStream, baseDocumentRenderStreamPost));
163
172
  return { output, document: baseDocumentHtml };
164
173
  }
@@ -1 +1 @@
1
- {"version":3,"file":"collect.d.ts","sourceRoot":"","sources":["../../src/routes/collect.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,KAAK,CAAC,MAAM,YAAY,CAAC;AA0DrC,eAAO,MAAM,mBAAmB,QAC4C,CAAC;AAE7E,wBAAsB,aAAa,CAClC,MAAM,EAAE,CAAC,CAAC,cAAc,EACxB,IAAI,EAAE,MAAM,EACZ,eAAe,GAAE,MAAM,EAAO,GAC5B,OAAO,CAAC,IAAI,CAAC,CAiGf"}
1
+ {"version":3,"file":"collect.d.ts","sourceRoot":"","sources":["../../src/routes/collect.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,KAAK,CAAC,MAAM,YAAY,CAAC;AA0DrC,eAAO,MAAM,mBAAmB,QAC4C,CAAC;AAE7E,wBAAsB,aAAa,CAClC,MAAM,EAAE,CAAC,CAAC,cAAc,EACxB,IAAI,EAAE,MAAM,EACZ,eAAe,GAAE,MAAM,EAAO,GAC5B,OAAO,CAAC,IAAI,CAAC,CAiGf"}
@@ -3,7 +3,10 @@ import { getLogger } from '@gracile/internal-utils/logger/helpers';
3
3
  import * as paths from '@gracile/internal-utils/paths';
4
4
  import { fdir as Fdir } from 'fdir';
5
5
  import c from 'picocolors';
6
- import { URLPattern } from 'urlpattern-polyfill/urlpattern';
6
+ // eslint-disable-next-line import-x/order
7
+ import { URLPattern as URLPatternPolyfill } from 'urlpattern-polyfill/urlpattern';
8
+ // NOTE: The polyfill type lacks `hasRegExpGroups` from the global URLPattern.
9
+ const URLPattern = URLPatternPolyfill;
7
10
  import { createFilter } from 'vite';
8
11
  import { emptyRoutes } from '../logging/messages.js';
9
12
  import { prepareSortableRoutes, routeComparator } from './comparator.js';
@@ -1 +1 @@
1
- {"version":3,"file":"load-module.d.ts","sourceRoot":"","sources":["../../src/routes/load-module.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAI1C,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAGhC,eAAO,MAAM,OAAO;;;;;;CASnB,CAAC;AAQF,wBAAsB,sBAAsB,CAAC,EAC5C,IAAI,EACJ,KAAK,EACL,YAAY,GACZ,EAAE;IACF,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,CAAC,aAAa,GAAG,SAAS,CAAC;CAC3C,0BA8CA"}
1
+ {"version":3,"file":"load-module.d.ts","sourceRoot":"","sources":["../../src/routes/load-module.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAI1C,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAGhC,eAAO,MAAM,OAAO;;;;;;CASnB,CAAC;AAQF,wBAAsB,sBAAsB,CAAC,EAC5C,IAAI,EACJ,KAAK,EACL,YAAY,GACZ,EAAE;IACF,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,CAAC,aAAa,GAAG,SAAS,CAAC;CAC3C,0BA2CA"}
@@ -24,7 +24,7 @@ export async function loadForeignRouteObject({ vite, route, routeImports, }) {
24
24
  let unknownRouteModule;
25
25
  if (vite) {
26
26
  try {
27
- unknownRouteModule = await vite.ssrLoadModule(route.filePath /* + 's' */, {});
27
+ unknownRouteModule = await vite.ssrLoadModule(route.filePath, {});
28
28
  }
29
29
  catch (error) {
30
30
  const error_ = error;
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/routes/render.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAG1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,uBAAuB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,MAAM,EAAE;QACP,KAAK,EAAE,OAAO,CAAC;QACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;IAEF,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9B;AAcD,wBAAsB,YAAY,CAAC,EAClC,MAAM,EACN,IAAI,EACJ,UAAU,EACV,IAAoB,EACpB,aAAa,GACb,EAAE;IACF,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,aAAa,CAAC;CAC7B;;;GAkKA"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/routes/render.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAG1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,uBAAuB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,MAAM,EAAE;QACP,KAAK,EAAE,OAAO,CAAC;QACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;IAEF,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9B;AAcD,wBAAsB,YAAY,CAAC,EAClC,MAAM,EACN,IAAI,EACJ,UAAU,EACV,IAAoB,EACpB,aAAa,GACb,EAAE;IACF,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,aAAa,CAAC;CAC7B;;;GAmKA"}
@@ -102,6 +102,7 @@ export async function renderRoutes({ routes, vite, serverMode, root = process.cw
102
102
  },
103
103
  root,
104
104
  serverMode,
105
+ renderInfo: gracileConfig.litSsr?.renderInfo,
105
106
  });
106
107
  const htmlString = output
107
108
  ? await streamToString(output).then((s) =>
@@ -44,6 +44,6 @@ export declare const honoAdapter: (handler: GracileHandler, options?: HonoAdapte
44
44
  * ```
45
45
  */
46
46
  export declare function getClientBuildPath(root: string): string;
47
- export { printUrls } from '../utils.js';
47
+ export { printUrls } from '../utilities.js';
48
48
  export { type GracileHandler } from '../request.js';
49
49
  //# sourceMappingURL=hono.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hono.d.ts","sourceRoot":"","sources":["../../../src/server/adapters/hono.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpE,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE;IAC1C,GAAG,EAAE;QAAE,GAAG,EAAE,OAAO,CAAA;KAAE,CAAC;IACtB,GAAG,EAAE,OAAO,CAAC;CACb,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAGxB,MAAM,WAAW,kBAAmB,SAAQ,cAAc;CAEzD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,WAAW,YACb,cAAc,YAAY,kBAAkB,KAAG,kBAmBxD,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,UAK9C;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"hono.d.ts","sourceRoot":"","sources":["../../../src/server/adapters/hono.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpE,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE;IAC1C,GAAG,EAAE;QAAE,GAAG,EAAE,OAAO,CAAA;KAAE,CAAC;IACtB,GAAG,EAAE,OAAO,CAAC;CACb,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAGxB,MAAM,WAAW,kBAAmB,SAAQ,cAAc;CAEzD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,WAAW,GACtB,SAAS,cAAc,EAAE,UAAU,kBAAkB,KAAG,kBAmBxD,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,UAK9C;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC"}
@@ -58,5 +58,5 @@ export const honoAdapter = (handler, options) => async (context) => {
58
58
  export function getClientBuildPath(root) {
59
59
  return relative(process.cwd(), fileURLToPath(new URL(constants.CLIENT_DIST_DIR, root)));
60
60
  }
61
- export { printUrls } from '../utils.js';
61
+ export { printUrls } from '../utilities.js';
62
62
  export {} from '../request.js';
@@ -36,6 +36,6 @@ export declare function nodeAdapter(handler: GracileHandler, options?: NodeAdapt
36
36
  * ```
37
37
  */
38
38
  export declare function getClientBuildPath(root: string): string;
39
- export { printUrls } from '../utils.js';
39
+ export { printUrls } from '../utilities.js';
40
40
  export { type GracileHandler } from '../request.js';
41
41
  //# sourceMappingURL=node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/server/adapters/node.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAQjE,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,cAAc,EAEnB,MAAM,eAAe,CAAC;AAqBvB,MAAM,MAAM,kBAAkB,GAAG,CAChC,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,cAAc,EACxB,MAAM,CAAC,EAAE,OAAO,KACZ,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AAG5D,MAAM,WAAW,kBAAmB,SAAQ,cAAc;CAEzD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAC1B,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,kBAAkB,GAC1B,kBAAkB,CAqEpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,UAE9C;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/server/adapters/node.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAQjE,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,cAAc,EAEnB,MAAM,eAAe,CAAC;AAqBvB,MAAM,MAAM,kBAAkB,GAAG,CAChC,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,cAAc,EACxB,MAAM,CAAC,EAAE,OAAO,KACZ,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AAG5D,MAAM,WAAW,kBAAmB,SAAQ,cAAc;CAEzD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAC1B,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,kBAAkB,GAC1B,kBAAkB,CAyEpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,UAE9C;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC"}
@@ -82,7 +82,7 @@ export function nodeAdapter(handler, options) {
82
82
  return response.end(result.body);
83
83
  if (result.response.body) {
84
84
  const piped = await result.response.body
85
- .pipeTo(Writable.toWeb(response))
85
+ .pipeTo(Writable.toWeb(response) /* NOTE: Minor typing mismatch (node:stream/web vs. TS global) */)
86
86
  .catch((error) => logger.error(String(error)));
87
87
  return piped;
88
88
  }
@@ -109,5 +109,5 @@ export function nodeAdapter(handler, options) {
109
109
  export function getClientBuildPath(root) {
110
110
  return fileURLToPath(new URL(constants.CLIENT_DIST_DIR, root));
111
111
  }
112
- export { printUrls } from '../utils.js';
112
+ export { printUrls } from '../utilities.js';
113
113
  export {} from '../request.js';
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/server/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAOvC,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAQlD,OAAO,KAAK,KAAK,CAAC,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIvD,KAAK,gBAAgB,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAC3E,KAAK,wBAAwB,GAAG;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,YAAY,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,cAAc;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAC5B,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,OAAO,KACZ,OAAO,CAAC,gBAAgB,GAAG,wBAAwB,GAAG,IAAI,CAAC,CAAC;AASjE,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAO1E;AAED,wBAAgB,oBAAoB,CAAC,EACpC,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,WAAW,EACX,IAAI,EACJ,UAAU,EACV,aAAa,GACb,EAAE;IACF,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACjC,MAAM,EAAE,CAAC,CAAC,cAAc,CAAC;IACzB,YAAY,CAAC,EAAE,CAAC,CAAC,aAAa,GAAG,SAAS,CAAC;IAC3C,WAAW,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;CAC7B,kBA8QA"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/server/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAOvC,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAQlD,OAAO,KAAK,KAAK,CAAC,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIvD,KAAK,gBAAgB,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAC3E,KAAK,wBAAwB,GAAG;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,YAAY,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,cAAc;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAC5B,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,OAAO,KACZ,OAAO,CAAC,gBAAgB,GAAG,wBAAwB,GAAG,IAAI,CAAC,CAAC;AASjE,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAO1E;AAED,wBAAgB,oBAAoB,CAAC,EACpC,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,WAAW,EACX,IAAI,EACJ,UAAU,EACV,aAAa,GACb,EAAE;IACF,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACjC,MAAM,EAAE,CAAC,CAAC,cAAc,CAAC;IACzB,YAAY,CAAC,EAAE,CAAC,CAAC,aAAa,GAAG,SAAS,CAAC;IAC3C,WAAW,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;CAC7B,kBAgRA"}
@@ -5,7 +5,7 @@ import c from 'picocolors';
5
5
  // import { GracileError } from '../errors/errors.js';
6
6
  import { builtIn404Page, builtInErrorPage } from '../errors/pages.js';
7
7
  import { renderRouteTemplate } from '../render/route-template.js';
8
- import { renderLitTemplate } from '../render/utils.js';
8
+ import { renderLitTemplate } from '../render/lit-ssr.js';
9
9
  import { getRoute } from '../routes/match.js';
10
10
  const CONTENT_TYPE_HTML = { 'Content-Type': 'text/html' };
11
11
  const PREMISE_REGEXES = {
@@ -25,7 +25,8 @@ export function createGracileHandler({ vite, routes, routeImports, routeAssets,
25
25
  const { url: requestedUrl, method } = request;
26
26
  let emitViteBetterError = null;
27
27
  if (vite)
28
- emitViteBetterError = await import('../errors/create-vite-better-error.js').then(({ emitViteBetterError: error }) => error);
28
+ emitViteBetterError =
29
+ await import('../errors/create-vite-better-error.js').then(({ emitViteBetterError: error }) => error);
29
30
  try {
30
31
  // MARK: Rewrite hidden route siblings
31
32
  const fullUrl = requestedUrl.replace(/\/__(.*)$/, '/');
@@ -71,6 +72,7 @@ export function createGracileHandler({ vite, routes, routeImports, routeAssets,
71
72
  serverMode,
72
73
  routeInfos,
73
74
  docOnly: premises?.documentOnly,
75
+ renderInfo: gracileConfig.litSsr?.renderInfo,
74
76
  };
75
77
  logger.info(`[${c.yellow(method)}] ${c.yellow(fullUrl)}`, {
76
78
  timestamp: true,
@@ -18,4 +18,4 @@ import type { AddressInfo } from 'node:net';
18
18
  * ```
19
19
  */
20
20
  export declare function printUrls(server: string | AddressInfo | null): void;
21
- //# sourceMappingURL=utils.d.ts.map
21
+ //# sourceMappingURL=utilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/server/utilities.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAY5C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,QA0C5D"}
@@ -1,3 +1,4 @@
1
+ import type { RenderInfo } from '@lit-labs/ssr';
1
2
  import type { Connect } from 'vite';
2
3
  /**
3
4
  * @example
@@ -93,6 +94,40 @@ export interface GracileConfig {
93
94
  exclude?: string[];
94
95
  };
95
96
  };
97
+ litSsr?: {
98
+ /**
99
+ * Lets you extend Gracile's SSR pipeline with
100
+ * custom Lit SSR `ElementRenderer` subclasses. This is the foundation for
101
+ * features like [Islands](/docs/add-ons/islands/), which register a renderer
102
+ * for the `<is-land>` custom element to server-render components from other
103
+ * UI frameworks.
104
+ *
105
+ * In most cases, you do **not** set this option manually — add-on plugins
106
+ * (like `gracileIslands()`) register their renderers automatically via the
107
+ * plugin context communication channel. However,
108
+ * you can use it directly for advanced use cases:
109
+ *
110
+ * ```ts
111
+ * import { gracile } from '@gracile/gracile/plugin';
112
+ * import { defineConfig } from 'vite';
113
+ *
114
+ * export default defineConfig({
115
+ * plugins: [
116
+ * gracile({
117
+ * litSsr: {
118
+ * renderInfo: {
119
+ * elementRenderers: [
120
+ * // Your custom ElementRenderer subclass
121
+ * ],
122
+ * },
123
+ * },
124
+ * }),
125
+ * ],
126
+ * });
127
+ * ```
128
+ */
129
+ renderInfo?: Partial<RenderInfo>;
130
+ };
96
131
  /**
97
132
  * Future, unstable features flags.
98
133
  */
@@ -1 +1 @@
1
- {"version":3,"file":"user-config.d.ts","sourceRoot":"","sources":["../src/user-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,aAAa;IAC7B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAE7B;;OAEG;IACH,GAAG,CAAC,EAAE;QACL;;;;;WAKG;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE;YAAE,WAAW,EAAE,OAAO,CAAC,eAAe,CAAA;SAAE,KAAK,OAAO,CAAC;KACxE,CAAC;IAEF;;OAEG;IACH,MAAM,CAAC,EAAE;QACR;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IAEF;;OAEG;IACH,KAAK,CAAC,EAAE;QACP;;;;;;;;;;;;;WAaG;QACH,QAAQ,CAAC,EAAE;YACV;;eAEG;YACH,MAAM,CAAC,EAAE,OAAO,CAAC;YAGjB;;eAEG;YACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;YAEnB;;eAEG;YACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;SACnB,CAAC;KACF,CAAC;IAEF;;OAEG;IACH,YAAY,CAAC,EAAE;QACd;;;WAGG;QACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;KAOhC,CAAC;CACF"}
1
+ {"version":3,"file":"user-config.d.ts","sourceRoot":"","sources":["../src/user-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,aAAa;IAC7B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAE7B;;OAEG;IACH,GAAG,CAAC,EAAE;QACL;;;;;WAKG;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE;YAAE,WAAW,EAAE,OAAO,CAAC,eAAe,CAAA;SAAE,KAAK,OAAO,CAAC;KACxE,CAAC;IAEF;;OAEG;IACH,MAAM,CAAC,EAAE;QACR;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IAEF;;OAEG;IACH,KAAK,CAAC,EAAE;QACP;;;;;;;;;;;;;WAaG;QACH,QAAQ,CAAC,EAAE;YACV;;eAEG;YACH,MAAM,CAAC,EAAE,OAAO,CAAC;YAGjB;;eAEG;YACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;YAEnB;;eAEG;YACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;SACnB,CAAC;KACF,CAAC;IACF,MAAM,CAAC,EAAE;QACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA8BG;QACH,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;KACjC,CAAC;IAEF;;OAEG;IACH,YAAY,CAAC,EAAE;QACd;;;WAGG;QACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;KAOhC,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"build-routes.d.ts","sourceRoot":"","sources":["../../src/vite/build-routes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAErE,OAAO,EAEN,KAAK,uBAAuB,EAC5B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AASvD,eAAO,MAAM,WAAW,qEAMrB;IACF,MAAM,EAAE,cAAc,CAAC;IACvB,kBAAkB,EAAE,aAAa,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB,KAAG,OAAO,CAAC;IACX,MAAM,EAAE,cAAc,CAAC;IACvB,cAAc,EAAE,uBAAuB,EAAE,CAAC;IAC1C,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB,CA6JA,CAAC"}
1
+ {"version":3,"file":"build-routes.d.ts","sourceRoot":"","sources":["../../src/vite/build-routes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAErE,OAAO,EAEN,KAAK,uBAAuB,EAC5B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AASvD,eAAO,MAAM,WAAW,GAAU,kEAM/B;IACF,MAAM,EAAE,cAAc,CAAC;IACvB,kBAAkB,EAAE,aAAa,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB,KAAG,OAAO,CAAC;IACX,MAAM,EAAE,cAAc,CAAC;IACvB,cAAc,EAAE,uBAAuB,EAAE,CAAC;IAC1C,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB,CA6JA,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gracile/engine",
3
- "version": "0.8.2",
3
+ "version": "0.9.0-next.4",
4
4
  "description": "A thin, full-stack, web framework",
5
5
  "keywords": [
6
6
  "custom-elements",
@@ -43,22 +43,22 @@
43
43
  "!/dist/typedoc-entrypoint.*"
44
44
  ],
45
45
  "dependencies": {
46
- "@gracile-labs/better-errors": "^0.1.3",
47
- "@gracile/internal-utils": "^0.5.1",
48
- "@whatwg-node/server": "^0.9.50",
49
- "fdir": "^6.4.2",
46
+ "@gracile-labs/better-errors": "^0.2.0-next.4",
47
+ "@gracile/internal-utils": "^0.6.0-next.3",
48
+ "@whatwg-node/server": "^0.10.18",
49
+ "fdir": "^6.5.0",
50
50
  "picocolors": "^1.1.1",
51
- "urlpattern-polyfill": "^10.0.0",
52
- "vite": "^6.2.5"
51
+ "urlpattern-polyfill": "^10.1.0",
52
+ "vite": "^7.3.1"
53
53
  },
54
54
  "peerDependencies": {
55
- "@lit-labs/ssr": "^3.2.2",
56
- "@lit-labs/ssr-client": " ^1.1.7",
55
+ "@lit-labs/ssr": "^4.0.0",
56
+ "@lit-labs/ssr-client": "^1.1.8",
57
57
  "lit": "^3.2.1"
58
58
  },
59
59
  "publishConfig": {
60
60
  "access": "public",
61
61
  "provenance": true
62
62
  },
63
- "gitHead": "fc99e003d3253a0ff0af7dbb894d06449257865e"
63
+ "gitHead": "a7441bf4d5c390521a9789077568619ca90ae623"
64
64
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/render/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,sBAAsB,EAC3B,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,iBAAiB,CACtC,QAAQ,EAAE,sBAAsB,GAAG,cAAc,GAC/C,OAAO,CAAC,MAAM,CAAC,CAEjB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/server/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAY5C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,QA0C5D"}
File without changes
File without changes