crelte 0.5.14 → 0.6.0-alpha.1

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 (104) hide show
  1. package/dist/blocks/Blocks.svelte +5 -4
  2. package/dist/blocks/Blocks.svelte.d.ts +4 -19
  3. package/dist/blocks/Blocks.svelte.d.ts.map +1 -1
  4. package/dist/crelte.d.ts +2 -2
  5. package/dist/crelte.d.ts.map +1 -1
  6. package/dist/index.d.ts +2 -2
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/init/InternalApp.d.ts.map +1 -1
  9. package/dist/init/InternalApp.js +2 -2
  10. package/dist/init/server.js +4 -4
  11. package/dist/loadData/loadData.d.ts +1 -1
  12. package/dist/loadData/loadData.d.ts.map +1 -1
  13. package/dist/queries/Queries.d.ts +9 -26
  14. package/dist/queries/Queries.d.ts.map +1 -1
  15. package/dist/queries/Queries.js +10 -20
  16. package/dist/queries/gql.d.ts +2 -2
  17. package/dist/queries/gql.d.ts.map +1 -1
  18. package/dist/queries/gql.js +3 -2
  19. package/dist/queries/index.d.ts +13 -13
  20. package/dist/queries/index.d.ts.map +1 -1
  21. package/dist/queries/index.js +2 -2
  22. package/dist/queries/vars.d.ts +3 -3
  23. package/dist/queries/vars.d.ts.map +1 -1
  24. package/dist/queries/vars.js +3 -3
  25. package/dist/routing/route/BaseRoute.d.ts.map +1 -1
  26. package/dist/routing/router/ClientRouter.d.ts.map +1 -1
  27. package/dist/routing/router/ClientRouter.js +3 -2
  28. package/dist/server/CrelteServer.d.ts +1 -1
  29. package/dist/server/CrelteServer.d.ts.map +1 -1
  30. package/dist/server/Request.d.ts +2 -2
  31. package/dist/server/Request.js +2 -2
  32. package/dist/server/ServerRouter.d.ts +1 -1
  33. package/dist/server/ServerRouter.d.ts.map +1 -1
  34. package/dist/server/queries/QueriesCaching.d.ts +0 -1
  35. package/dist/server/queries/QueriesCaching.d.ts.map +1 -1
  36. package/dist/server/queries/QueriesCaching.js +0 -2
  37. package/dist/server/queries/QueryGqlRoute.d.ts +2 -0
  38. package/dist/server/queries/QueryGqlRoute.d.ts.map +1 -1
  39. package/dist/server/queries/QueryGqlRoute.js +16 -5
  40. package/dist/server/queries/QueryHandleRoute.d.ts +1 -2
  41. package/dist/server/queries/QueryHandleRoute.d.ts.map +1 -1
  42. package/dist/server/queries/QueryHandleRoute.js +2 -2
  43. package/dist/server/queries/queries.d.ts.map +1 -1
  44. package/dist/server/queries/queries.js +2 -1
  45. package/dist/server/queries/routes.d.ts +3 -4
  46. package/dist/server/queries/routes.d.ts.map +1 -1
  47. package/dist/server/queries/routes.js +3 -3
  48. package/dist/server/shared.d.ts +3 -3
  49. package/dist/server/shared.d.ts.map +1 -1
  50. package/dist/server/shared.js +6 -6
  51. package/dist/ssr/SsrCache.d.ts +2 -2
  52. package/dist/ssr/SsrCache.d.ts.map +1 -1
  53. package/dist/ssr/SsrCache.js +10 -16
  54. package/dist/static/index.d.ts +1 -1
  55. package/dist/std/encdec/escaping.d.ts +2 -0
  56. package/dist/std/encdec/escaping.d.ts.map +1 -0
  57. package/dist/std/encdec/escaping.js +41 -0
  58. package/dist/std/encdec/index.d.ts +13 -0
  59. package/dist/std/encdec/index.d.ts.map +1 -0
  60. package/dist/std/encdec/index.js +15 -0
  61. package/dist/std/index.d.ts.map +1 -1
  62. package/dist/translations/index.d.ts +2 -2
  63. package/dist/translations/index.d.ts.map +1 -1
  64. package/dist/translations/translationsPlugin.d.ts +4 -1
  65. package/dist/translations/translationsPlugin.d.ts.map +1 -1
  66. package/dist/translations/translationsPlugin.js +32 -2
  67. package/dist/utils.d.ts +1 -0
  68. package/dist/utils.d.ts.map +1 -1
  69. package/dist/utils.js +17 -0
  70. package/dist/vite/index.d.ts +1 -5
  71. package/dist/vite/index.d.ts.map +1 -1
  72. package/dist/vite/index.js +35 -76
  73. package/package.json +12 -7
  74. package/src/blocks/Blocks.svelte +4 -3
  75. package/src/crelte.ts +2 -2
  76. package/src/index.ts +2 -2
  77. package/src/init/InternalApp.ts +3 -4
  78. package/src/init/server.ts +4 -4
  79. package/src/loadData/loadData.ts +0 -2
  80. package/src/queries/Queries.ts +19 -35
  81. package/src/queries/gql.ts +7 -3
  82. package/src/queries/index.ts +19 -16
  83. package/src/queries/vars.ts +5 -7
  84. package/src/routing/route/BaseRoute.ts +1 -7
  85. package/src/routing/router/ClientRouter.ts +3 -1
  86. package/src/server/CrelteServer.ts +1 -1
  87. package/src/server/Request.ts +2 -2
  88. package/src/server/ServerRouter.ts +1 -1
  89. package/src/server/queries/QueriesCaching.ts +0 -2
  90. package/src/server/queries/QueryGqlRoute.ts +17 -10
  91. package/src/server/queries/QueryHandleRoute.ts +2 -6
  92. package/src/server/queries/queries.ts +2 -3
  93. package/src/server/queries/routes.ts +9 -6
  94. package/src/server/shared.ts +8 -8
  95. package/src/ssr/SsrCache.ts +13 -23
  96. package/src/static/index.ts +1 -1
  97. package/src/std/encdec/escaping.ts +47 -0
  98. package/src/std/encdec/index.ts +16 -0
  99. package/src/std/index.ts +1 -6
  100. package/src/translations/index.ts +2 -0
  101. package/src/translations/translationsPlugin.ts +46 -3
  102. package/src/utils.ts +21 -0
  103. package/src/vite/index.ts +40 -85
  104. package/types.d.ts +1 -1
package/src/vite/index.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { relative } from 'node:path';
2
- import MagicString from 'magic-string';
3
2
  import {
4
3
  ConfigEnv,
5
4
  Plugin,
@@ -19,7 +18,6 @@ import {
19
18
  modRenderError,
20
19
  } from '../server/shared.js';
21
20
  import ServerRouter from '../server/ServerRouter.js';
22
- import sveltePackage from 'svelte/package.json' with { type: 'json' };
23
21
  import { initQueryRoutes } from '../server/queries/queries.js';
24
22
  import {
25
23
  PLATFORM,
@@ -29,6 +27,11 @@ import {
29
27
  import { SiteFromGraphQl } from '../routing/Site.js';
30
28
  import { ServerResponse } from 'node:http';
31
29
  import QueryError from '../queries/QueryError.js';
30
+ import {
31
+ CodeTransform,
32
+ generateTransform,
33
+ rolldownString,
34
+ } from 'rolldown-string';
32
35
 
33
36
  const VIRT_MOD_ID = 'virtual:crelte/svelteComponents';
34
37
  const RESOLVED_VIRT_MOD_ID = '\0' + VIRT_MOD_ID;
@@ -45,43 +48,33 @@ function usedSsrComponents(
45
48
  code: string,
46
49
  id: string,
47
50
  options: { ssr?: boolean } | undefined,
48
- svelte5: boolean,
49
- ): TransformResult | undefined {
51
+ ): CodeTransform | undefined {
50
52
  if (!options?.ssr || !id.endsWith('.svelte')) return;
51
53
 
52
54
  const file = relative('.', id);
53
55
 
54
- let idx;
55
- if (svelte5) {
56
- const defFnSign = 'export default function ';
57
- idx = code.indexOf(defFnSign);
58
- if (idx < 0) return;
59
-
60
- const withPropsIdx = code.indexOf('($$renderer, $$props) {', idx);
61
- const noPropsIdx = code.indexOf('($$renderer) {', idx);
62
- idx = withPropsIdx >= 0 ? withPropsIdx : noPropsIdx;
63
- if (idx < 0) {
64
- console.error('could not find svelte5 init', id);
65
- return;
66
- }
56
+ const defFnSign = 'export default function ';
57
+ let idx = code.indexOf(defFnSign);
58
+ if (idx < 0) return;
67
59
 
68
- const renderCompSign = '$$renderer.component(($$renderer) => {';
69
- const renderCompIdx = code.indexOf(renderCompSign, idx);
70
- if (renderCompIdx >= 0) idx = renderCompIdx;
71
-
72
- // Find the end of the line where the pattern was found
73
- idx = code.indexOf('\n', idx);
74
- if (idx < 0) return;
75
- idx += 1; // \n
76
- } else {
77
- const initFnSign =
78
- 'create_ssr_component(($$result, $$props, $$bindings, slots) => {';
79
- idx = code.indexOf(initFnSign);
80
- if (idx < 0) return;
81
- idx += initFnSign.length;
60
+ const withPropsIdx = code.indexOf('($$renderer, $$props) {', idx);
61
+ const noPropsIdx = code.indexOf('($$renderer) {', idx);
62
+ idx = withPropsIdx >= 0 ? withPropsIdx : noPropsIdx;
63
+ if (idx < 0) {
64
+ console.error('could not find svelte5 init', id);
65
+ return;
82
66
  }
83
67
 
84
- const s = new MagicString(code);
68
+ const renderCompSign = '$$renderer.component(($$renderer) => {';
69
+ const renderCompIdx = code.indexOf(renderCompSign, idx);
70
+ if (renderCompIdx >= 0) idx = renderCompIdx;
71
+
72
+ // Find the end of the line where the pattern was found
73
+ idx = code.indexOf('\n', idx);
74
+ if (idx < 0) return;
75
+ idx += 1; // \n
76
+
77
+ const s = rolldownString(code, id, options);
85
78
 
86
79
  s.prepend(`import { getContext as __modulesGetContext } from 'svelte';\n`);
87
80
 
@@ -95,14 +88,7 @@ if (ctx && ctx instanceof Set) {
95
88
  `;
96
89
  s.appendLeft(idx, ctxAdd);
97
90
 
98
- return {
99
- map: s.generateMap({
100
- source: id,
101
- includeContent: true,
102
- hires: 'boundary',
103
- }),
104
- code: s.toString(),
105
- };
91
+ return generateTransform(s, id);
106
92
  }
107
93
 
108
94
  // transform graphql files into a GraphQlQuery which can called with
@@ -121,9 +107,7 @@ function graphQlFiles(
121
107
 
122
108
  if (!ssr) {
123
109
  return `
124
- export default {
125
- queryName: ${JSON.stringify(name)}
126
- };
110
+ export default ${JSON.stringify(name)};
127
111
  `;
128
112
  }
129
113
 
@@ -132,9 +116,7 @@ export default {
132
116
  .replace(/\u2029/g, '\\u2029');
133
117
 
134
118
  return `
135
- export default {
136
- queryName: ${JSON.stringify(name)}
137
- };
119
+ export default ${JSON.stringify(name)};
138
120
 
139
121
  export const query = {
140
122
  path: ${JSON.stringify(path)},
@@ -143,30 +125,14 @@ export const query = {
143
125
  `;
144
126
  }
145
127
 
146
- function isSvelte5(): boolean {
147
- if (sveltePackage && sveltePackage.version) {
148
- return sveltePackage.version.startsWith('5.');
149
- }
150
- // Fallback or error handling if version cannot be determined
151
- console.warn('Could not determine Svelte version. Assuming not Svelte 5.');
152
- return false;
153
- }
154
-
155
128
  // outside of crelte because each build executes crelte again
156
129
  let isSsrBuild = false;
157
130
 
158
- export type CrelteOptions = {
159
- /** If not specified tries to detect which version is installed */
160
- svelte4?: boolean;
161
- };
162
-
163
- export default function crelte(opts?: CrelteOptions): Plugin {
131
+ export default function crelte(): Plugin {
164
132
  let viteConfig: ResolvedConfig;
165
133
  let viteConfigEnv: ConfigEnv;
166
134
  let initialConfig: UserConfig;
167
135
 
168
- const svelte5 = opts?.svelte4 ? false : isSvelte5();
169
-
170
136
  return {
171
137
  name: 'crelte',
172
138
 
@@ -229,33 +195,22 @@ export default function crelte(opts?: CrelteOptions): Plugin {
229
195
  }
230
196
 
231
197
  if (id === RESOLVED_VIRT_MOD_ID) {
232
- if (svelte5) {
233
- return (
234
- `import { hydrate } from 'svelte';` +
235
- `import { render } from 'svelte/server';` +
236
- `export function internalSvelteMount(comp, options) {` +
237
- `return hydrate(comp, options);` +
238
- `}` +
239
- `export function internalSvelteRender(comp, options) {` +
240
- `return render(comp, options);` +
241
- `}`
242
- );
243
- } else {
244
- return (
245
- `export function internalSvelteMount(comp, options) {` +
246
- `return new comp({ ...options, hydrate: true });` +
247
- `}` +
248
- `export function internalSvelteRender(comp, options) {` +
249
- `return comp.render(options.props, options);` +
250
- `}`
251
- );
252
- }
198
+ return (
199
+ `import { hydrate } from 'svelte';` +
200
+ `import { render } from 'svelte/server';` +
201
+ `export function internalSvelteMount(comp, options) {` +
202
+ `return hydrate(comp, options);` +
203
+ `}` +
204
+ `export function internalSvelteRender(comp, options) {` +
205
+ `return render(comp, options);` +
206
+ `}`
207
+ );
253
208
  }
254
209
  },
255
210
 
256
211
  transform(code, id, options) {
257
212
  return (
258
- usedSsrComponents(code, id, options, svelte5) ||
213
+ usedSsrComponents(code, id, options) ||
259
214
  graphQlFiles(code, id, !!options?.ssr)
260
215
  );
261
216
  },
package/types.d.ts CHANGED
@@ -2,7 +2,7 @@ declare module '*.graphql' {
2
2
  // todo this would be a GraphQL query object
3
3
  // but node doesn't import GraphQl and the type might change?
4
4
  // this just removes the anoying typescript error
5
- const value: { queryName: string };
5
+ const value: string;
6
6
  export default value;
7
7
 
8
8
  export const query: {