@gracile/engine 0.8.2 → 0.9.0-next.10

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 (80) hide show
  1. package/dist/dev/development.d.ts.map +1 -1
  2. package/dist/dev/development.js +1 -1
  3. package/dist/dev/ssr-ce-tracker.d.ts +27 -0
  4. package/dist/dev/ssr-ce-tracker.d.ts.map +1 -0
  5. package/dist/dev/ssr-ce-tracker.js +113 -0
  6. package/dist/errors/create-vite-better-error.js +1 -1
  7. package/dist/plugin.d.ts.map +1 -1
  8. package/dist/plugin.js +56 -256
  9. package/dist/render/light-dom.d.ts +2 -0
  10. package/dist/render/light-dom.d.ts.map +1 -0
  11. package/dist/render/light-dom.js +31 -0
  12. package/dist/render/{utils.d.ts → lit-ssr.d.ts} +1 -1
  13. package/dist/render/lit-ssr.d.ts.map +1 -0
  14. package/dist/render/route-template-pipeline.d.ts +64 -0
  15. package/dist/render/route-template-pipeline.d.ts.map +1 -0
  16. package/dist/render/route-template-pipeline.js +144 -0
  17. package/dist/render/route-template.d.ts +4 -3
  18. package/dist/render/route-template.d.ts.map +1 -1
  19. package/dist/render/route-template.js +41 -87
  20. package/dist/routes/collect.d.ts +5 -1
  21. package/dist/routes/collect.d.ts.map +1 -1
  22. package/dist/routes/collect.js +11 -6
  23. package/dist/routes/load-module.d.ts.map +1 -1
  24. package/dist/routes/load-module.js +5 -2
  25. package/dist/routes/match.d.ts +31 -1
  26. package/dist/routes/match.d.ts.map +1 -1
  27. package/dist/routes/match.js +22 -4
  28. package/dist/routes/render.d.ts.map +1 -1
  29. package/dist/routes/render.js +12 -3
  30. package/dist/server/adapters/hono.d.ts +1 -1
  31. package/dist/server/adapters/hono.d.ts.map +1 -1
  32. package/dist/server/adapters/hono.js +1 -1
  33. package/dist/server/adapters/node.d.ts +1 -1
  34. package/dist/server/adapters/node.d.ts.map +1 -1
  35. package/dist/server/adapters/node.js +2 -2
  36. package/dist/server/request-pipeline.d.ts +109 -0
  37. package/dist/server/request-pipeline.d.ts.map +1 -0
  38. package/dist/server/request-pipeline.js +198 -0
  39. package/dist/server/request.d.ts +3 -16
  40. package/dist/server/request.d.ts.map +1 -1
  41. package/dist/server/request.js +78 -173
  42. package/dist/server/{utils.d.ts → utilities.d.ts} +1 -1
  43. package/dist/server/utilities.d.ts.map +1 -0
  44. package/dist/test/init.d.ts +2 -0
  45. package/dist/test/init.d.ts.map +1 -0
  46. package/dist/test/init.js +7 -0
  47. package/dist/user-config.d.ts +48 -0
  48. package/dist/user-config.d.ts.map +1 -1
  49. package/dist/vite/build-routes.d.ts +1 -2
  50. package/dist/vite/build-routes.d.ts.map +1 -1
  51. package/dist/vite/build-routes.js +0 -98
  52. package/dist/vite/plugin-build-environment.d.ts +21 -0
  53. package/dist/vite/plugin-build-environment.d.ts.map +1 -0
  54. package/dist/vite/plugin-build-environment.js +83 -0
  55. package/dist/vite/plugin-ce-tracker.d.ts +19 -0
  56. package/dist/vite/plugin-ce-tracker.d.ts.map +1 -0
  57. package/dist/vite/plugin-ce-tracker.js +87 -0
  58. package/dist/vite/plugin-client-build.d.ts +20 -0
  59. package/dist/vite/plugin-client-build.d.ts.map +1 -0
  60. package/dist/vite/plugin-client-build.js +55 -0
  61. package/dist/vite/plugin-html-routes-build.d.ts +22 -0
  62. package/dist/vite/plugin-html-routes-build.d.ts.map +1 -0
  63. package/dist/vite/plugin-html-routes-build.js +140 -0
  64. package/dist/vite/plugin-serve.d.ts +18 -0
  65. package/dist/vite/plugin-serve.d.ts.map +1 -0
  66. package/dist/vite/plugin-serve.js +61 -0
  67. package/dist/vite/plugin-server-build.d.ts +43 -0
  68. package/dist/vite/plugin-server-build.d.ts.map +1 -0
  69. package/dist/vite/plugin-server-build.js +108 -0
  70. package/dist/vite/plugin-shared-state.d.ts +33 -0
  71. package/dist/vite/plugin-shared-state.d.ts.map +1 -0
  72. package/dist/vite/plugin-shared-state.js +23 -0
  73. package/dist/vite/virtual-routes.d.ts +8 -5
  74. package/dist/vite/virtual-routes.d.ts.map +1 -1
  75. package/dist/vite/virtual-routes.js +32 -31
  76. package/package.json +11 -11
  77. package/dist/render/utils.d.ts.map +0 -1
  78. package/dist/server/utils.d.ts.map +0 -1
  79. /package/dist/render/{utils.js → lit-ssr.js} +0 -0
  80. /package/dist/server/{utils.js → utilities.js} +0 -0
@@ -1,13 +1,16 @@
1
1
  import { type Plugin } from 'vite';
2
- import type { RenderedRouteDefinition } from '../routes/render.js';
3
2
  import type { RoutesManifest } from '../routes/route.js';
4
3
  import type { GracileConfig } from '../user-config.js';
4
+ import type { PluginSharedState } from './plugin-shared-state.js';
5
5
  /**
6
- * @todo Client-side testing, docs.
6
+ * Server-side routes virtual module (`gracile:routes`).
7
+ *
8
+ * Scoped to the SSR build environment via `applyToEnvironment`.
9
+ * Reads from shared state lazily so `renderedRoutes` is available
10
+ * (populated during the client build).
7
11
  */
8
- export declare function virtualRoutes({ routes, renderedRoutes, }: {
9
- routes: RoutesManifest;
10
- renderedRoutes: RenderedRouteDefinition[];
12
+ export declare function virtualRoutes({ state, }: {
13
+ state: PluginSharedState;
11
14
  }): Plugin[];
12
15
  export declare function virtualRoutesClient({ routes: routesMap, mode, gracileConfig, }: {
13
16
  routes: RoutesManifest;
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-routes.d.ts","sourceRoot":"","sources":["../../src/vite/virtual-routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAEjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAE7B,MAAM,EACN,cAAc,GACd,EAAE;IAEF,MAAM,EAAE,cAAc,CAAC;IACvB,cAAc,EAAE,uBAAuB,EAAE,CAAC;CAC1C,GAAG,MAAM,EAAE,CAyEX;AAKD,wBAAgB,mBAAmB,CAAC,EACnC,MAAM,EAAE,SAAS,EACjB,IAAe,EACf,aAAa,GACb,EAAE;IACF,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,aAAa,EAAE,aAAa,CAAC;CAC7B,GAAG,MAAM,EAAE,CA4DX"}
1
+ {"version":3,"file":"virtual-routes.d.ts","sourceRoot":"","sources":["../../src/vite/virtual-routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAEjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAC7B,KAAK,GACL,EAAE;IACF,KAAK,EAAE,iBAAiB,CAAC;CACzB,GAAG,MAAM,EAAE,CAwEX;AAKD,wBAAgB,mBAAmB,CAAC,EACnC,MAAM,EAAE,SAAS,EACjB,IAAe,EACf,aAAa,GACb,EAAE;IACF,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,aAAa,EAAE,aAAa,CAAC;CAC7B,GAAG,MAAM,EAAE,CA4DX"}
@@ -1,25 +1,22 @@
1
1
  import { normalizeToPosix } from '@gracile/internal-utils/paths';
2
2
  import { createFilter } from 'vite';
3
3
  /**
4
- * @todo Client-side testing, docs.
4
+ * Server-side routes virtual module (`gracile:routes`).
5
+ *
6
+ * Scoped to the SSR build environment via `applyToEnvironment`.
7
+ * Reads from shared state lazily so `renderedRoutes` is available
8
+ * (populated during the client build).
5
9
  */
6
- export function virtualRoutes({
7
- // root,
8
- routes, renderedRoutes, }) {
10
+ export function virtualRoutes({ state, }) {
9
11
  const virtualModuleId = 'gracile:routes';
10
12
  const resolvedVirtualModuleId = `\0${virtualModuleId}`;
11
- // TODO: Remove handler when prerendering route
12
- const routesWithoutPrerender = [...routes];
13
- const renderedRoutesWithoutPrerender = renderedRoutes;
14
- // const routesWithoutPrerender = [...routes].filter(
15
- // ([, r]) => r.prerender !== true,
16
- // );
17
- // const renderedRoutesWithoutPrerender = renderedRoutes.filter(
18
- // (r) => r.savePrerender !== true,
19
- // );
20
13
  return [
21
14
  {
22
15
  name: 'gracile-server-routes',
16
+ apply: 'build',
17
+ applyToEnvironment(environment) {
18
+ return environment.name === 'ssr';
19
+ },
23
20
  resolveId(id) {
24
21
  if (id === virtualModuleId) {
25
22
  return resolvedVirtualModuleId;
@@ -27,39 +24,43 @@ routes, renderedRoutes, }) {
27
24
  return null;
28
25
  },
29
26
  load(id) {
30
- if (id === resolvedVirtualModuleId) {
31
- return `
27
+ if (id !== resolvedVirtualModuleId)
28
+ return null;
29
+ const routes = state.routes;
30
+ const renderedRoutes = state.renderedRoutes;
31
+ if (!routes || routes.size === 0 || !renderedRoutes)
32
+ return null;
33
+ const routesArray = [...routes];
34
+ return `
32
35
  import { URLPattern } from '@gracile/gracile/url-pattern';
33
36
 
34
37
  const routes = new Map(${
35
- //
36
- JSON.stringify(routesWithoutPrerender, null, 2).replaceAll(
37
- // NOTE: Not strictly necessary, but just in case.
38
- '"pattern": {}', '"pattern": null')})
38
+ //
39
+ JSON.stringify(routesArray, null, 2).replaceAll(
40
+ // NOTE: Not strictly necessary, but just in case.
41
+ '"pattern": {}', '"pattern": null')})
39
42
  routes.forEach((route, pattern) => {
40
43
  route.pattern = new URLPattern(pattern, 'http://gracile');
41
44
  });
42
45
 
43
46
  const routeImports = new Map(
44
47
  [
45
- ${routesWithoutPrerender
46
- .map(([pattern, route]) => `['${pattern}', () => import('/${normalizeToPosix(route.filePath)}')],`)
47
- .join('\n ')}
48
+ ${routesArray
49
+ .map(([pattern, route]) => `['${pattern}', () => import('/${normalizeToPosix(route.filePath)}')],`)
50
+ .join('\n ')}
48
51
  ]
49
52
  );
50
53
 
51
- const routeAssets = new Map(${JSON.stringify(renderedRoutesWithoutPrerender.map((r) => [
52
- `/${r.name
53
- //
54
- .replace(/index\.html$/, '')
55
- .replace(/* Error pages */ /\.html$/, '/')}`,
56
- r.handlerAssets,
57
- ]), null, 2)});
54
+ const routeAssets = new Map(${JSON.stringify(renderedRoutes.map((r) => [
55
+ `/${r.name
56
+ //
57
+ .replace(/index\.html$/, '')
58
+ .replace(/* Error pages */ /\.html$/, '/')}`,
59
+ r.handlerAssets,
60
+ ]), null, 2)});
58
61
 
59
62
  export { routes, routeImports, routeAssets };
60
63
  `;
61
- }
62
- return null;
63
64
  },
64
65
  },
65
66
  ];
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gracile/engine",
3
- "version": "0.8.2",
4
- "description": "A thin, full-stack, web framework",
3
+ "version": "0.9.0-next.10",
4
+ "description": "Vite-powered build and dev server engine for the Gracile framework",
5
5
  "keywords": [
6
6
  "custom-elements",
7
7
  "full-stack",
@@ -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.3.0-next.1",
47
+ "@gracile/internal-utils": "^0.6.1-next.1",
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": "e00667cdac8cfa7c9847435bb90f1f26c98b46b4"
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