@gracile/engine 0.9.0-next.3 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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,GAAI,SAAS,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 {};
@@ -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":"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) =>
@@ -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,kBA+QA"}
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"}
@@ -72,6 +72,7 @@ export function createGracileHandler({ vite, routes, routeImports, routeAssets,
72
72
  serverMode,
73
73
  routeInfos,
74
74
  docOnly: premises?.documentOnly,
75
+ renderInfo: gracileConfig.litSsr?.renderInfo,
75
76
  };
76
77
  logger.info(`[${c.yellow(method)}] ${c.yellow(fullUrl)}`, {
77
78
  timestamp: true,
@@ -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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gracile/engine",
3
- "version": "0.9.0-next.3",
3
+ "version": "0.9.0",
4
4
  "description": "A thin, full-stack, web framework",
5
5
  "keywords": [
6
6
  "custom-elements",
@@ -43,8 +43,8 @@
43
43
  "!/dist/typedoc-entrypoint.*"
44
44
  ],
45
45
  "dependencies": {
46
- "@gracile-labs/better-errors": "^0.2.0-next.3",
47
- "@gracile/internal-utils": "^0.6.0-next.2",
46
+ "@gracile-labs/better-errors": "^0.2.0",
47
+ "@gracile/internal-utils": "^0.6.0",
48
48
  "@whatwg-node/server": "^0.10.18",
49
49
  "fdir": "^6.5.0",
50
50
  "picocolors": "^1.1.1",
@@ -60,5 +60,5 @@
60
60
  "access": "public",
61
61
  "provenance": true
62
62
  },
63
- "gitHead": "7feaac994b36092525582a57ea7b4cb811ac9e1e"
63
+ "gitHead": "06fa858cfdda41d1888e1f8f5c64da272c68f2d2"
64
64
  }