crelte 0.5.8 → 0.5.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 (175) hide show
  1. package/dist/blocks/Blocks.d.ts +41 -4
  2. package/dist/blocks/Blocks.d.ts.map +1 -1
  3. package/dist/blocks/Blocks.js +47 -2
  4. package/dist/blocks/Blocks.svelte +2 -16
  5. package/dist/blocks/Blocks.svelte.d.ts +20 -37
  6. package/dist/blocks/Blocks.svelte.d.ts.map +1 -1
  7. package/dist/blocks/index.d.ts +2 -2
  8. package/dist/blocks/index.d.ts.map +1 -1
  9. package/dist/blocks/index.js +2 -2
  10. package/dist/cookies/ServerCookies.d.ts +1 -1
  11. package/dist/cookies/ServerCookies.js +1 -1
  12. package/dist/cookies/index.d.ts +1 -1
  13. package/dist/crelte.d.ts +21 -10
  14. package/dist/crelte.d.ts.map +1 -1
  15. package/dist/index.d.ts +19 -14
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +17 -13
  18. package/dist/init/client.d.ts +2 -2
  19. package/dist/init/client.d.ts.map +1 -1
  20. package/dist/init/client.js +3 -2
  21. package/dist/init/server.d.ts +7 -6
  22. package/dist/init/server.d.ts.map +1 -1
  23. package/dist/init/server.js +6 -6
  24. package/dist/loadData/Globals.d.ts +3 -3
  25. package/dist/loadData/Globals.js +3 -3
  26. package/dist/loadData/loadData.d.ts +8 -18
  27. package/dist/loadData/loadData.d.ts.map +1 -1
  28. package/dist/loadData/loadData.js +2 -2
  29. package/dist/node/index.d.ts +5 -0
  30. package/dist/node/index.d.ts.map +1 -1
  31. package/dist/node/index.js +84 -35
  32. package/dist/plugins/Events.d.ts +4 -4
  33. package/dist/plugins/Plugins.d.ts +2 -2
  34. package/dist/plugins/index.d.ts +2 -3
  35. package/dist/plugins/index.d.ts.map +1 -1
  36. package/dist/plugins/index.js +2 -1
  37. package/dist/queries/Queries.d.ts +9 -0
  38. package/dist/queries/Queries.d.ts.map +1 -1
  39. package/dist/queries/Queries.js +29 -17
  40. package/dist/queries/QueryError.d.ts +2 -0
  41. package/dist/queries/QueryError.d.ts.map +1 -1
  42. package/dist/queries/QueryError.js +6 -1
  43. package/dist/queries/gql.d.ts +2 -2
  44. package/dist/queries/gql.js +2 -2
  45. package/dist/queries/index.d.ts +7 -5
  46. package/dist/queries/index.d.ts.map +1 -1
  47. package/dist/queries/vars.d.ts +7 -7
  48. package/dist/queries/vars.d.ts.map +1 -1
  49. package/dist/queries/vars.js +10 -8
  50. package/dist/routing/LoadRunner.d.ts +1 -1
  51. package/dist/routing/LoadRunner.js +1 -1
  52. package/dist/routing/index.d.ts +4 -4
  53. package/dist/routing/index.d.ts.map +1 -1
  54. package/dist/routing/route/BaseRoute.d.ts +25 -25
  55. package/dist/routing/route/BaseRoute.js +24 -24
  56. package/dist/routing/route/Request.d.ts +4 -4
  57. package/dist/routing/route/Request.js +4 -4
  58. package/dist/routing/route/Route.d.ts +2 -2
  59. package/dist/routing/route/Route.js +2 -2
  60. package/dist/routing/router/BaseRouter.d.ts +4 -4
  61. package/dist/routing/router/BaseRouter.js +3 -3
  62. package/dist/routing/router/ClientRouter.d.ts +1 -1
  63. package/dist/routing/router/ClientRouter.js +1 -1
  64. package/dist/routing/router/Router.d.ts +27 -25
  65. package/dist/routing/router/Router.d.ts.map +1 -1
  66. package/dist/routing/router/Router.js +24 -21
  67. package/dist/routing/router/ServerRouter.d.ts +1 -1
  68. package/dist/routing/router/ServerRouter.js +1 -1
  69. package/dist/server/CrelteServer.d.ts +5 -5
  70. package/dist/server/CrelteServer.d.ts.map +1 -1
  71. package/dist/server/CrelteServer.js +4 -4
  72. package/dist/server/Request.d.ts +7 -1
  73. package/dist/server/Request.d.ts.map +1 -1
  74. package/dist/server/Request.js +7 -1
  75. package/dist/server/ServerRouter.d.ts +1 -1
  76. package/dist/server/ServerRouter.d.ts.map +1 -1
  77. package/dist/server/index.d.ts +4 -4
  78. package/dist/server/index.d.ts.map +1 -1
  79. package/dist/server/index.js +1 -1
  80. package/dist/server/shared.d.ts +7 -13
  81. package/dist/server/shared.d.ts.map +1 -1
  82. package/dist/server/shared.js +14 -16
  83. package/dist/ssr/SsrCache.d.ts +56 -4
  84. package/dist/ssr/SsrCache.d.ts.map +1 -1
  85. package/dist/ssr/SsrCache.js +94 -20
  86. package/dist/std/index.d.ts +13 -0
  87. package/dist/std/index.d.ts.map +1 -1
  88. package/dist/std/index.js +13 -0
  89. package/dist/std/rand/index.d.ts +34 -0
  90. package/dist/std/rand/index.d.ts.map +1 -0
  91. package/dist/std/rand/index.js +45 -0
  92. package/dist/std/rand/internal.d.ts +8 -0
  93. package/dist/std/rand/internal.d.ts.map +1 -0
  94. package/dist/std/rand/internal.js +15 -0
  95. package/dist/std/stores/Writable.d.ts +1 -1
  96. package/dist/std/stores/Writable.js +1 -1
  97. package/dist/translations/index.d.ts +28 -0
  98. package/dist/translations/index.d.ts.map +1 -0
  99. package/dist/translations/index.js +31 -0
  100. package/dist/translations/loadTranslations.d.ts +23 -0
  101. package/dist/translations/loadTranslations.d.ts.map +1 -0
  102. package/dist/translations/loadTranslations.js +26 -0
  103. package/dist/translations/loader/GlobalLoader.d.ts +34 -0
  104. package/dist/translations/loader/GlobalLoader.d.ts.map +1 -0
  105. package/dist/translations/loader/GlobalLoader.js +45 -0
  106. package/dist/translations/loader/fileLoader/ClientFileLoader.d.ts +10 -0
  107. package/dist/translations/loader/fileLoader/ClientFileLoader.d.ts.map +1 -0
  108. package/dist/translations/loader/fileLoader/ClientFileLoader.js +24 -0
  109. package/dist/translations/loader/fileLoader/NodeFileLoader.d.ts +9 -0
  110. package/dist/translations/loader/fileLoader/NodeFileLoader.d.ts.map +1 -0
  111. package/dist/translations/loader/fileLoader/NodeFileLoader.js +21 -0
  112. package/dist/translations/loader/fileLoader/fileLoader.d.ts +5 -0
  113. package/dist/translations/loader/fileLoader/fileLoader.d.ts.map +1 -0
  114. package/dist/translations/loader/fileLoader/fileLoader.js +16 -0
  115. package/dist/translations/loader/index.d.ts +7 -0
  116. package/dist/translations/loader/index.d.ts.map +1 -0
  117. package/dist/translations/loader/index.js +1 -0
  118. package/dist/translations/translationsPlugin.d.ts +64 -0
  119. package/dist/translations/translationsPlugin.d.ts.map +1 -0
  120. package/dist/translations/translationsPlugin.js +110 -0
  121. package/dist/translations/utils.d.ts +8 -0
  122. package/dist/translations/utils.d.ts.map +1 -0
  123. package/dist/translations/utils.js +15 -0
  124. package/dist/vite/index.d.ts.map +1 -1
  125. package/dist/vite/index.js +30 -38
  126. package/package.json +9 -1
  127. package/src/blocks/Blocks.svelte +3 -78
  128. package/src/blocks/Blocks.ts +63 -6
  129. package/src/blocks/index.ts +2 -2
  130. package/src/cookies/ServerCookies.ts +1 -1
  131. package/src/cookies/index.ts +1 -1
  132. package/src/crelte.ts +21 -10
  133. package/src/index.ts +19 -14
  134. package/src/init/client.ts +3 -2
  135. package/src/init/server.ts +14 -8
  136. package/src/loadData/Globals.ts +3 -3
  137. package/src/loadData/loadData.ts +8 -18
  138. package/src/node/index.ts +100 -39
  139. package/src/plugins/Events.ts +4 -4
  140. package/src/plugins/Plugins.ts +2 -2
  141. package/src/plugins/index.ts +2 -3
  142. package/src/queries/Queries.ts +35 -18
  143. package/src/queries/QueryError.ts +10 -1
  144. package/src/queries/gql.ts +2 -2
  145. package/src/queries/index.ts +7 -4
  146. package/src/queries/vars.ts +12 -8
  147. package/src/routing/LoadRunner.ts +1 -1
  148. package/src/routing/index.ts +13 -3
  149. package/src/routing/route/BaseRoute.ts +25 -25
  150. package/src/routing/route/Request.ts +4 -4
  151. package/src/routing/route/Route.ts +2 -2
  152. package/src/routing/router/BaseRouter.ts +4 -4
  153. package/src/routing/router/ClientRouter.ts +1 -1
  154. package/src/routing/router/Router.ts +28 -25
  155. package/src/routing/router/ServerRouter.ts +1 -1
  156. package/src/server/CrelteServer.ts +5 -5
  157. package/src/server/Request.ts +7 -1
  158. package/src/server/ServerRouter.ts +1 -2
  159. package/src/server/index.ts +17 -3
  160. package/src/server/shared.ts +28 -33
  161. package/src/ssr/SsrCache.ts +104 -22
  162. package/src/std/index.ts +14 -0
  163. package/src/std/rand/index.ts +55 -0
  164. package/src/std/rand/internal.ts +17 -0
  165. package/src/std/stores/Writable.ts +1 -1
  166. package/src/translations/index.ts +56 -0
  167. package/src/translations/loadTranslations.ts +33 -0
  168. package/src/translations/loader/GlobalLoader.ts +62 -0
  169. package/src/translations/loader/fileLoader/ClientFileLoader.ts +40 -0
  170. package/src/translations/loader/fileLoader/NodeFileLoader.ts +32 -0
  171. package/src/translations/loader/fileLoader/fileLoader.ts +19 -0
  172. package/src/translations/loader/index.ts +8 -0
  173. package/src/translations/translationsPlugin.ts +145 -0
  174. package/src/translations/utils.ts +17 -0
  175. package/src/vite/index.ts +43 -39
package/src/vite/index.ts CHANGED
@@ -8,11 +8,13 @@ import {
8
8
  UserConfig,
9
9
  build as viteBuild,
10
10
  ViteDevServer,
11
+ Connect,
11
12
  } from 'vite';
12
13
  import fs from 'node:fs/promises';
13
14
  import {
14
15
  EnvData,
15
16
  initEnvData,
17
+ initSites,
16
18
  modRender,
17
19
  modRenderError,
18
20
  } from '../server/shared.js';
@@ -24,6 +26,9 @@ import {
24
26
  requestToWebRequest,
25
27
  webResponseToResponse,
26
28
  } from '../node/utils.js';
29
+ import { SiteFromGraphQl } from '../routing/Site.js';
30
+ import { ServerResponse } from 'node:http';
31
+ import QueryError from '../queries/QueryError.js';
27
32
 
28
33
  const VIRT_MOD_ID = 'virtual:crelte/svelteComponents';
29
34
  const RESOLVED_VIRT_MOD_ID = '\0' + VIRT_MOD_ID;
@@ -327,33 +332,29 @@ export default function crelte(opts?: CrelteOptions): Plugin {
327
332
  }
328
333
 
329
334
  async function serveVite(env: EnvData, vite: ViteDevServer) {
330
- vite.middlewares.use(async (nReq, res, next) => {
335
+ let sites: SiteFromGraphQl[] | null = null;
336
+
337
+ const handle = async (
338
+ nReq: Connect.IncomingMessage,
339
+ res: ServerResponse,
340
+ ) => {
331
341
  const protocol = vite.config.server.https ? 'https' : 'http';
332
342
  const baseUrl = protocol + '://' + nReq.headers['host'];
333
343
 
334
344
  const req = requestToWebRequest(baseUrl, nReq);
335
345
 
336
- let thrownError: any = null;
346
+ const serverMod = await vite.ssrLoadModule('./src/server.js');
337
347
 
338
- let serverMod;
339
- try {
340
- serverMod = await vite.ssrLoadModule('./src/server.js', {
341
- fixStacktrace: true,
342
- });
343
- } catch (e: any) {
344
- next(e);
345
- return;
348
+ if (!sites) {
349
+ sites = await initSites(env);
346
350
  }
347
351
 
348
- // check if a route matches (todo can i move this out of the middleware?)
349
352
  const router = new ServerRouter(
350
353
  env.endpointUrl,
351
354
  env.frontendUrl,
352
355
  env.env,
353
- env.sites,
354
- {
355
- endpointToken: env.endpointToken,
356
- },
356
+ sites,
357
+ { endpointToken: env.endpointToken },
357
358
  );
358
359
 
359
360
  await initQueryRoutes(PLATFORM, serverMod, router);
@@ -362,15 +363,9 @@ async function serveVite(env: EnvData, vite: ViteDevServer) {
362
363
  await serverMod.routes(router);
363
364
  }
364
365
 
365
- try {
366
- const response = await router.z_handle(req);
367
- if (response) {
368
- await webResponseToResponse(response, res);
369
- return;
370
- }
371
- } catch (e: any) {
372
- vite.ssrFixStacktrace(e);
373
- next(e);
366
+ const routeResp = await router.z_handle(req);
367
+ if (routeResp) {
368
+ await webResponseToResponse(routeResp, res);
374
369
  return;
375
370
  }
376
371
 
@@ -380,29 +375,38 @@ async function serveVite(env: EnvData, vite: ViteDevServer) {
380
375
  template,
381
376
  );
382
377
 
383
- try {
384
- const response = await modRender(env, serverMod, template, req);
385
- await webResponseToResponse(response, res);
386
- return;
387
- } catch (e: any) {
388
- vite.ssrFixStacktrace(e);
389
-
390
- if (typeof serverMod.renderError !== 'function') return next(e);
378
+ if (serverMod.debugError) {
379
+ let error: any;
391
380
 
392
- thrownError = e;
393
- }
381
+ if (typeof serverMod.debugError === 'number') {
382
+ error = new QueryError({ status: serverMod.debugError });
383
+ } else if (typeof serverMod.debugError === 'function') {
384
+ error = serverMod.debugError(req);
385
+ } else {
386
+ error = new Error('Simulated Error');
387
+ }
394
388
 
395
- try {
396
- const response = await modRenderError(
389
+ const errorResp = await modRenderError(
397
390
  env,
398
391
  serverMod,
399
- thrownError,
392
+ error,
400
393
  template,
401
394
  req,
395
+ { debugError: true },
402
396
  );
403
- await webResponseToResponse(response, res);
397
+ await webResponseToResponse(errorResp, res);
404
398
  return;
405
- } catch (e) {
399
+ }
400
+
401
+ const response = await modRender(env, sites, serverMod, template, req);
402
+ await webResponseToResponse(response, res);
403
+ };
404
+
405
+ vite.middlewares.use(async (nReq, res, next) => {
406
+ try {
407
+ await handle(nReq, res);
408
+ } catch (e: any) {
409
+ vite.ssrFixStacktrace(e);
406
410
  next(e);
407
411
  }
408
412
  });