crelte 0.5.15 → 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 (92) 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/ServerRouter.d.ts +1 -1
  31. package/dist/server/ServerRouter.d.ts.map +1 -1
  32. package/dist/server/queries/QueriesCaching.d.ts +0 -1
  33. package/dist/server/queries/QueriesCaching.d.ts.map +1 -1
  34. package/dist/server/queries/QueriesCaching.js +0 -2
  35. package/dist/server/queries/QueryGqlRoute.d.ts +2 -0
  36. package/dist/server/queries/QueryGqlRoute.d.ts.map +1 -1
  37. package/dist/server/queries/QueryGqlRoute.js +16 -5
  38. package/dist/server/queries/QueryHandleRoute.d.ts +1 -2
  39. package/dist/server/queries/QueryHandleRoute.d.ts.map +1 -1
  40. package/dist/server/queries/QueryHandleRoute.js +2 -2
  41. package/dist/server/queries/queries.d.ts.map +1 -1
  42. package/dist/server/queries/queries.js +2 -1
  43. package/dist/server/queries/routes.d.ts +3 -4
  44. package/dist/server/queries/routes.d.ts.map +1 -1
  45. package/dist/server/queries/routes.js +3 -3
  46. package/dist/server/shared.d.ts +3 -3
  47. package/dist/server/shared.d.ts.map +1 -1
  48. package/dist/server/shared.js +6 -6
  49. package/dist/ssr/SsrCache.d.ts +2 -2
  50. package/dist/ssr/SsrCache.d.ts.map +1 -1
  51. package/dist/ssr/SsrCache.js +10 -16
  52. package/dist/std/encdec/escaping.d.ts +2 -0
  53. package/dist/std/encdec/escaping.d.ts.map +1 -0
  54. package/dist/std/encdec/escaping.js +41 -0
  55. package/dist/std/encdec/index.d.ts +13 -0
  56. package/dist/std/encdec/index.d.ts.map +1 -0
  57. package/dist/std/encdec/index.js +15 -0
  58. package/dist/std/index.d.ts.map +1 -1
  59. package/dist/utils.d.ts +1 -0
  60. package/dist/utils.d.ts.map +1 -1
  61. package/dist/utils.js +17 -0
  62. package/dist/vite/index.d.ts +1 -5
  63. package/dist/vite/index.d.ts.map +1 -1
  64. package/dist/vite/index.js +35 -76
  65. package/package.json +12 -7
  66. package/src/blocks/Blocks.svelte +4 -3
  67. package/src/crelte.ts +2 -2
  68. package/src/index.ts +2 -2
  69. package/src/init/InternalApp.ts +3 -4
  70. package/src/init/server.ts +4 -4
  71. package/src/loadData/loadData.ts +0 -2
  72. package/src/queries/Queries.ts +19 -35
  73. package/src/queries/gql.ts +7 -3
  74. package/src/queries/index.ts +19 -16
  75. package/src/queries/vars.ts +5 -7
  76. package/src/routing/route/BaseRoute.ts +1 -7
  77. package/src/routing/router/ClientRouter.ts +3 -1
  78. package/src/server/CrelteServer.ts +1 -1
  79. package/src/server/ServerRouter.ts +1 -1
  80. package/src/server/queries/QueriesCaching.ts +0 -2
  81. package/src/server/queries/QueryGqlRoute.ts +17 -10
  82. package/src/server/queries/QueryHandleRoute.ts +2 -6
  83. package/src/server/queries/queries.ts +2 -3
  84. package/src/server/queries/routes.ts +9 -6
  85. package/src/server/shared.ts +8 -8
  86. package/src/ssr/SsrCache.ts +13 -23
  87. package/src/std/encdec/escaping.ts +47 -0
  88. package/src/std/encdec/index.ts +16 -0
  89. package/src/std/index.ts +1 -6
  90. package/src/utils.ts +21 -0
  91. package/src/vite/index.ts +40 -85
  92. package/types.d.ts +1 -1
@@ -5,10 +5,8 @@ export default class QueriesCaching {
5
5
  cacheDir;
6
6
  validBearerToken;
7
7
  debug;
8
- router;
9
8
  constructor(platform, cs, opts) {
10
9
  this.platform = platform;
11
- this.router = cs;
12
10
  this.debug = !!opts?.debug;
13
11
  const enableCaching = cs.getEnv('CACHING') === 'true';
14
12
  const endpointToken = cs.getEnv('ENDPOINT_TOKEN');
@@ -12,11 +12,13 @@ export type QueryGqlArgs = {
12
12
  export default class QueryGqlRoute {
13
13
  name: string;
14
14
  query: string;
15
+ queryHash: string;
15
16
  vars: Record<string, QueryVar> | null;
16
17
  validIfFn: ValidIfFn | null;
17
18
  cacheIfFn: CacheIfFn | null;
18
19
  transformFn: TransformFn | null;
19
20
  constructor(name: string, query: string, args: QueryGqlArgs);
21
+ init(): Promise<void>;
20
22
  private fillEntryDefaults;
21
23
  private fillGlobalDefaults;
22
24
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"QueryGqlRoute.d.ts","sourceRoot":"","sources":["../../../src/server/queries/QueryGqlRoute.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,oBAAoB,CAAC;AACrD,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAQ,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EACN,SAAS,EAET,WAAW,EAEX,SAAS,EACT,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;IACtC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;CAChC,CAAC;AAGF,MAAM,CAAC,OAAO,OAAO,aAAa;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;IACtC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;gBAEpB,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY;IA4B3D,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,kBAAkB;IAO1B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;YAuBX,SAAS;IAWjB,MAAM,CACX,OAAO,EAAE,cAAc,EACvB,GAAG,EAAE,mBAAmB,GACtB,OAAO,CAAC,QAAQ,CAAC;CAwHpB"}
1
+ {"version":3,"file":"QueryGqlRoute.d.ts","sourceRoot":"","sources":["../../../src/server/queries/QueryGqlRoute.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,oBAAoB,CAAC;AACrD,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAQ,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EACN,SAAS,EAET,WAAW,EAEX,SAAS,EACT,MAAM,aAAa,CAAC;AAGrB,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;IACtC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;CAChC,CAAC;AAGF,MAAM,CAAC,OAAO,OAAO,aAAa;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;IACtC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;gBAEpB,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY;IA6BrD,IAAI;IAIV,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,kBAAkB;IAO1B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;YAuBX,SAAS;IAWjB,MAAM,CACX,OAAO,EAAE,cAAc,EACvB,GAAG,EAAE,mBAAmB,GACtB,OAAO,CAAC,QAAQ,CAAC;CAwHpB"}
@@ -2,10 +2,12 @@ import { vars } from '../../queries/vars.js';
2
2
  import { extractEntry } from '../../loadData/index.js';
3
3
  import { calcKey } from '../../ssr/index.js';
4
4
  import { newError, validateVars, } from './routes.js';
5
+ import { cryptoSha1Hash } from '../../utils.js';
5
6
  // only internal
6
7
  export default class QueryGqlRoute {
7
8
  name;
8
9
  query;
10
+ queryHash;
9
11
  vars;
10
12
  validIfFn;
11
13
  cacheIfFn;
@@ -18,6 +20,7 @@ export default class QueryGqlRoute {
18
20
  'variables defined');
19
21
  this.name = name;
20
22
  this.query = query;
23
+ this.queryHash = query;
21
24
  this.vars = args.vars;
22
25
  this.validIfFn = args.validIfFn;
23
26
  this.cacheIfFn = args.cacheIfFn;
@@ -36,6 +39,9 @@ export default class QueryGqlRoute {
36
39
  else
37
40
  this.fillBasicDefaults();
38
41
  }
42
+ async init() {
43
+ this.queryHash = await cryptoSha1Hash(this.query);
44
+ }
39
45
  fillEntryDefaults() {
40
46
  if (this.vars)
41
47
  return;
@@ -89,9 +95,9 @@ export default class QueryGqlRoute {
89
95
  let vars;
90
96
  try {
91
97
  const reqVars = await csr.req.json();
92
- vars = validateVars(this.vars, reqVars, this.validIfFn, caching.router);
93
- if ('qName' in vars || 'xCraftSite' in vars)
94
- throw new Error('qName and xCraftSite are reserved variable names');
98
+ vars = validateVars(this.vars, reqVars, this.validIfFn, csr);
99
+ if (['qName', 'qHash', 'xCraftSite'].some(name => name in vars))
100
+ throw new Error('qName, qHash and xCraftSite are reserved variable names');
95
101
  }
96
102
  catch (e) {
97
103
  return newError(e, 400);
@@ -114,7 +120,12 @@ export default class QueryGqlRoute {
114
120
  let cacheKey = null;
115
121
  const useCache = !previewToken && caching.isEnabled();
116
122
  if (useCache) {
117
- cacheKey = await calcKey({ ...vars, qName: this.name, xCraftSite });
123
+ cacheKey = await calcKey({
124
+ ...vars,
125
+ qName: this.name,
126
+ qHash: this.queryHash,
127
+ xCraftSite,
128
+ });
118
129
  const cached = await caching.getCache(cacheKey);
119
130
  if (logInfo)
120
131
  console.log(`${logInfo} ${cached ? 'hit' : 'miss'}`);
@@ -177,7 +188,7 @@ export default class QueryGqlRoute {
177
188
  }
178
189
  // now we have a valid json resp.
179
190
  // should we cache it?
180
- if (cacheKey && this.cacheIfFn?.(jsonResp.data, vars)) {
191
+ if (cacheKey && this.cacheIfFn?.(jsonResp.data, vars, csr)) {
181
192
  try {
182
193
  await caching.setCache(cacheKey, jsonResp);
183
194
  if (logInfo)
@@ -1,6 +1,5 @@
1
1
  import { QueryVar } from '../../queries/vars.js';
2
2
  import CrelteServerRequest from '../CrelteServer.js';
3
- import ServerRouter from '../ServerRouter.js';
4
3
  import { HandleFn, ValidIfFn } from './routes.js';
5
4
  export default class QueryHandleRoute {
6
5
  name: string;
@@ -8,6 +7,6 @@ export default class QueryHandleRoute {
8
7
  handleFn: HandleFn;
9
8
  vars: Record<string, QueryVar> | null;
10
9
  constructor(name: string, validIfFn: ValidIfFn | null, handleFn: HandleFn, vars: Record<string, QueryVar> | null);
11
- handle(cs: ServerRouter, csr: CrelteServerRequest): Promise<Response>;
10
+ handle(csr: CrelteServerRequest): Promise<Response>;
12
11
  }
13
12
  //# sourceMappingURL=QueryHandleRoute.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryHandleRoute.d.ts","sourceRoot":"","sources":["../../../src/server/queries/QueryHandleRoute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,mBAAmB,MAAM,oBAAoB,CAAC;AACrD,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAA0B,SAAS,EAAE,MAAM,aAAa,CAAC;AAG1E,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;gBAGrC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI;IAQhC,MAAM,CACX,EAAE,EAAE,YAAY,EAChB,GAAG,EAAE,mBAAmB,GACtB,OAAO,CAAC,QAAQ,CAAC;CAYpB"}
1
+ {"version":3,"file":"QueryHandleRoute.d.ts","sourceRoot":"","sources":["../../../src/server/queries/QueryHandleRoute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,mBAAmB,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAA0B,SAAS,EAAE,MAAM,aAAa,CAAC;AAG1E,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;gBAGrC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI;IAQhC,MAAM,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC;CAYzD"}
@@ -11,11 +11,11 @@ export default class QueryHandleRoute {
11
11
  this.handleFn = handleFn;
12
12
  this.vars = vars;
13
13
  }
14
- async handle(cs, csr) {
14
+ async handle(csr) {
15
15
  let vars;
16
16
  try {
17
17
  const reqVars = await csr.req.json();
18
- vars = validateVars(this.vars, reqVars, this.validIfFn, cs);
18
+ vars = validateVars(this.vars, reqVars, this.validIfFn, csr);
19
19
  }
20
20
  catch (e) {
21
21
  return newError(e, 400);
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/server/queries/queries.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAI9C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAmC1C,wBAAsB,eAAe,CACpC,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,CAAC,CAoHf"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/server/queries/queries.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAI9C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAmC1C,wBAAsB,eAAe,CACpC,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,CAAC,CAmHf"}
@@ -71,13 +71,14 @@ export async function initQueryRoutes(platform, mod, router) {
71
71
  if (rb.handleFn)
72
72
  throw new Error('cannot have a handle function if a query is present');
73
73
  const route = new QueryGqlRoute(name, rb.query, rb);
74
+ await route.init();
74
75
  router.post('/queries/' + route.name, csr => route.handle(caching, csr));
75
76
  }
76
77
  else if (rb.handleFn) {
77
78
  if (rb.cacheIfFn || rb.transformFn || rb.preventCaching)
78
79
  throw new Error('caching or transform not supported');
79
80
  const route = new QueryHandleRoute(name, rb.validIfFn, rb.handleFn, rb.vars);
80
- router.post('/queries/' + route.name, csr => route.handle(caching.router, csr));
81
+ router.post('/queries/' + route.name, csr => route.handle(csr));
81
82
  }
82
83
  else {
83
84
  throw new Error(`query js/ts ${name} file needs to either have ` +
@@ -1,14 +1,13 @@
1
1
  import { QueryVar } from '../../queries/vars.js';
2
2
  import CrelteServerRequest from '../CrelteServer.js';
3
- import ServerRouter from '../ServerRouter.js';
4
- export type CacheIfFn = (response: any, vars: Record<string, any>) => boolean;
5
- export type ValidIfFn = (vars: Record<string, any>, sr: ServerRouter) => void | boolean;
3
+ export type CacheIfFn = (response: any, vars: Record<string, any>, csr: CrelteServerRequest) => boolean;
4
+ export type ValidIfFn = (vars: Record<string, any>, csr: CrelteServerRequest) => void | boolean;
6
5
  export type TransformFn = (response: any, vars: Record<string, any>, csr: CrelteServerRequest) => void | any | Promise<void | any>;
7
6
  export type HandleFn = (csr: CrelteServerRequest, vars: Record<string, any>) => Promise<any> | any;
8
7
  /**
9
8
  * Returns the validated variables if some vars were defined
10
9
  * else just returns all vars
11
10
  */
12
- export declare function validateVars(qvars: Record<string, QueryVar> | null, vars: any, validIfFn: ValidIfFn | null, sr: ServerRouter): Record<string, any>;
11
+ export declare function validateVars(qvars: Record<string, QueryVar> | null, vars: any, validIfFn: ValidIfFn | null, csr: CrelteServerRequest): Record<string, any>;
13
12
  export declare function newError(e: any, status: number): Response;
14
13
  //# sourceMappingURL=routes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/server/queries/routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,mBAAmB,MAAM,oBAAoB,CAAC;AACrD,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAE9C,MAAM,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC;AAG9E,MAAM,MAAM,SAAS,GAAG,CACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,EAAE,EAAE,YAAY,KACZ,IAAI,GAAG,OAAO,CAAC;AAMpB,MAAM,MAAM,WAAW,GAAG,CACzB,QAAQ,EAAE,GAAG,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,GAAG,EAAE,mBAAmB,KACpB,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AAEtC,MAAM,MAAM,QAAQ,GAAG,CACtB,GAAG,EAAE,mBAAmB,EACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACrB,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAExB;;;GAGG;AACH,wBAAgB,YAAY,CAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI,EACtC,IAAI,EAAE,GAAG,EACT,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,EAAE,EAAE,YAAY,GACd,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAoBrB;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAEzD"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/server/queries/routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,mBAAmB,MAAM,oBAAoB,CAAC;AAErD,MAAM,MAAM,SAAS,GAAG,CACvB,QAAQ,EAAE,GAAG,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,GAAG,EAAE,mBAAmB,KACpB,OAAO,CAAC;AAGb,MAAM,MAAM,SAAS,GAAG,CACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,GAAG,EAAE,mBAAmB,KACpB,IAAI,GAAG,OAAO,CAAC;AAMpB,MAAM,MAAM,WAAW,GAAG,CACzB,QAAQ,EAAE,GAAG,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,GAAG,EAAE,mBAAmB,KACpB,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AAEtC,MAAM,MAAM,QAAQ,GAAG,CACtB,GAAG,EAAE,mBAAmB,EACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACrB,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAExB;;;GAGG;AACH,wBAAgB,YAAY,CAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI,EACtC,IAAI,EAAE,GAAG,EACT,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,GAAG,EAAE,mBAAmB,GACtB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAoBrB;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAEzD"}
@@ -2,18 +2,18 @@
2
2
  * Returns the validated variables if some vars were defined
3
3
  * else just returns all vars
4
4
  */
5
- export function validateVars(qvars, vars, validIfFn, sr) {
5
+ export function validateVars(qvars, vars, validIfFn, csr) {
6
6
  if (!vars || typeof vars !== 'object')
7
7
  throw new Error('expected an object as vars');
8
8
  if (!qvars)
9
9
  return vars;
10
10
  const nVars = {};
11
11
  for (const [k, v] of Object.entries(qvars)) {
12
- nVars[k] = v.validValue(vars[k], sr);
12
+ nVars[k] = v.validValue(vars[k], csr);
13
13
  }
14
14
  if (validIfFn) {
15
15
  // or throw
16
- const valid = validIfFn(nVars, sr);
16
+ const valid = validIfFn(nVars, csr);
17
17
  if (typeof valid === 'boolean' && !valid)
18
18
  throw new Error('invalid variables for query');
19
19
  }
@@ -13,7 +13,7 @@ export type EnvData = {
13
13
  env: Map<string, string>;
14
14
  endpointUrl: string;
15
15
  endpointToken?: string;
16
- craftWebUrl: string;
16
+ craftBaseCpUrl: string;
17
17
  frontendUrl: string;
18
18
  viteEnv: Map<string, string>;
19
19
  };
@@ -32,7 +32,7 @@ export type RenderRequest = {
32
32
  htmlTemplate: string;
33
33
  ssrManifest: Record<string, string[]>;
34
34
  endpoint: string;
35
- craftWeb: string;
35
+ craftUrl: string;
36
36
  frontend: string;
37
37
  viteEnv: Map<string, string>;
38
38
  sites: SiteFromGraphQl[];
@@ -45,7 +45,7 @@ export type RenderErrorRequest = {
45
45
  ssrManifest: Record<string, string[]>;
46
46
  acceptLang: string | null;
47
47
  endpoint: string;
48
- craftWeb: string;
48
+ craftUrl: string;
49
49
  frontend: string;
50
50
  viteEnv: Map<string, string>;
51
51
  };
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/server/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/server/shared.ts"],"names":[],"mappings":"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"}
@@ -15,9 +15,9 @@ export async function initEnvData(os) {
15
15
  if (!endpointUrl)
16
16
  throw new Error('ENDPOINT_URL not set');
17
17
  const endpointToken = env.get('ENDPOINT_TOKEN');
18
- const craftWebUrl = env.get('CRAFT_WEB_URL');
19
- if (!craftWebUrl)
20
- throw new Error('CRAFT_WEB_URL not set');
18
+ const craftBaseCpUrl = env.get('CRAFT_BASE_CP_URL');
19
+ if (!craftBaseCpUrl)
20
+ throw new Error('CRAFT_BASE_CP_URL not set');
21
21
  const frontendUrl = env.get('FRONTEND_URL');
22
22
  if (!frontendUrl)
23
23
  throw new Error('FRONTEND_URL not set');
@@ -27,7 +27,7 @@ export async function initEnvData(os) {
27
27
  env,
28
28
  endpointUrl,
29
29
  endpointToken,
30
- craftWebUrl,
30
+ craftBaseCpUrl,
31
31
  frontendUrl,
32
32
  viteEnv,
33
33
  };
@@ -79,7 +79,7 @@ export async function modRender(env, sites, mod, template, req, opts = {}) {
79
79
  htmlTemplate: template,
80
80
  ssrManifest: {},
81
81
  endpoint: env.endpointUrl,
82
- craftWeb: env.craftWebUrl,
82
+ craftUrl: env.craftBaseCpUrl,
83
83
  frontend: env.frontendUrl,
84
84
  viteEnv: env.viteEnv,
85
85
  sites,
@@ -115,7 +115,7 @@ export async function modRenderError(env, mod, thrownError, template, req, opts
115
115
  ssrManifest: {},
116
116
  acceptLang,
117
117
  endpoint: env.endpointUrl,
118
- craftWeb: env.craftWebUrl,
118
+ craftUrl: env.craftBaseCpUrl,
119
119
  frontend: env.frontendUrl,
120
120
  viteEnv: env.viteEnv,
121
121
  ...opts,
@@ -74,8 +74,8 @@ export default class SsrCache {
74
74
  z_clear(): void;
75
75
  /** @hidden */
76
76
  z_importFromHead(): void;
77
- private exportAsJson;
78
77
  /** @hidden */
79
- z_exportToHead(): string;
78
+ z_toData(): any;
80
79
  }
80
+ export declare function ssrCacheExportToHead(ssr: SsrCache): string;
81
81
  //# sourceMappingURL=SsrCache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SsrCache.d.ts","sourceRoot":"","sources":["../../src/ssr/SsrCache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBxD;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC5B,OAAO,CAAC,KAAK,CAAmB;;IAMhC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAI7B;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAK9B;;;;OAIG;IACH,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAKnD;;;;;;OAMG;IACG,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI5D;;;;OAIG;IACG,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAKzE;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAcxC;;OAEG;IACH,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAMhC,cAAc;IACd,OAAO;IAIP,cAAc;IACd,gBAAgB;IAOhB,OAAO,CAAC,YAAY;IAOpB,cAAc;IACd,cAAc,IAAI,MAAM;CAGxB"}
1
+ {"version":3,"file":"SsrCache.d.ts","sourceRoot":"","sources":["../../src/ssr/SsrCache.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAOxD;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC5B,OAAO,CAAC,KAAK,CAAmB;;IAMhC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAI7B;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAK9B;;;;OAIG;IACH,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAKnD;;;;;;OAMG;IACG,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI5D;;;;OAIG;IACG,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAKzE;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAcxC;;OAEG;IACH,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAMhC,cAAc;IACd,OAAO;IAIP,cAAc;IACd,gBAAgB;IAOhB,cAAc;IACd,QAAQ,IAAI,GAAG;CAGf;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,QAAQ,UAKjD"}
@@ -1,3 +1,5 @@
1
+ import { uneval } from 'devalue';
2
+ import { cryptoSha1Hash } from '../utils.js';
1
3
  /**
2
4
  * Calculates a key based on the json representation of the data
3
5
  *
@@ -9,17 +11,7 @@ export async function calcKey(data) {
9
11
  // specifically in the craft preview locally
10
12
  if (!crypto?.subtle)
11
13
  return json;
12
- // Convert the string data to an ArrayBuffer
13
- const encoder = new TextEncoder();
14
- const dataBuffer = encoder.encode(json);
15
- // Use the Web Crypto API to hash the data with SHA-1
16
- const hashBuffer = await crypto.subtle.digest('SHA-1', dataBuffer);
17
- // Convert the ArrayBuffer to a hex string
18
- const hashArray = Array.from(new Uint8Array(hashBuffer)); // Create an array from the buffer
19
- const hashHex = hashArray
20
- .map(b => b.toString(16).padStart(2, '0'))
21
- .join(''); // Convert to hex string
22
- return hashHex;
14
+ return await cryptoSha1Hash(json);
23
15
  }
24
16
  /**
25
17
  * A simple cache for server side rendering
@@ -132,11 +124,13 @@ export default class SsrCache {
132
124
  // @ts-ignore
133
125
  delete window._SSR_STORE;
134
126
  }
135
- exportAsJson() {
136
- return JSON.stringify(Array.from(this.store.entries())).replace(/</g, '\\u003c');
137
- }
138
127
  /** @hidden */
139
- z_exportToHead() {
140
- return `\n\t\t<script>window._SSR_STORE = ${this.exportAsJson()};</script>`;
128
+ z_toData() {
129
+ return this.store;
141
130
  }
142
131
  }
132
+ export function ssrCacheExportToHead(ssr) {
133
+ const data = Array.from(ssr.z_toData().entries());
134
+ // safety, uneval already escapes data: https://github.com/sveltejs/devalue#xss-mitigation
135
+ return `\n\t\t<script>window._SSR_STORE = ${uneval(data)};</script>`;
136
+ }
@@ -0,0 +1,2 @@
1
+ export declare function escape_html<V>(value: V, is_attr?: boolean): string;
2
+ //# sourceMappingURL=escaping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escaping.d.ts","sourceRoot":"","sources":["../../../src/std/encdec/escaping.ts"],"names":[],"mappings":"AA2BA,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,GAAE,OAAe,UAmBhE"}
@@ -0,0 +1,41 @@
1
+ /*
2
+ * Code from Svelte (https://github.com/sveltejs/svelte/blob/b4968584df6be22222f58c273bdd8e04307ad36b/packages/svelte/src/escaping.js)
3
+ *
4
+ * Copyright (c) 2016-24 these people (https://github.com/sveltejs/svelte/graphs/contributors)
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be included in all
14
+ * copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ * SOFTWARE.
23
+ */
24
+ const ATTR_REGEX = /[&"<]/g;
25
+ const CONTENT_REGEX = /[&<]/g;
26
+ export function escape_html(value, is_attr = false) {
27
+ const str = String(value ?? '');
28
+ const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;
29
+ pattern.lastIndex = 0;
30
+ let escaped = '';
31
+ let last = 0;
32
+ while (pattern.test(str)) {
33
+ const i = pattern.lastIndex - 1;
34
+ const ch = str[i];
35
+ escaped +=
36
+ str.substring(last, i) +
37
+ (ch === '&' ? '&amp;' : ch === '"' ? '&quot;' : '&lt;');
38
+ last = i + 1;
39
+ }
40
+ return escaped + str.substring(last);
41
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Convert newlines to <br> tags and escape HTML.
3
+ *
4
+ * #### Warning
5
+ * When used in an attribute, the `isAttr` parameter needs to be set to `true`.
6
+ *
7
+ * #### Example
8
+ * ```svelte
9
+ * {@html nl2br("Hello\nWorld")}
10
+ * ```
11
+ */
12
+ export declare function nl2br(str: string, isAttr?: boolean): string;
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/std/encdec/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAe,GAAG,MAAM,CAElE"}
@@ -0,0 +1,15 @@
1
+ import { escape_html } from './escaping.js';
2
+ /**
3
+ * Convert newlines to <br> tags and escape HTML.
4
+ *
5
+ * #### Warning
6
+ * When used in an attribute, the `isAttr` parameter needs to be set to `true`.
7
+ *
8
+ * #### Example
9
+ * ```svelte
10
+ * {@html nl2br("Hello\nWorld")}
11
+ * ```
12
+ */
13
+ export function nl2br(str, isAttr = false) {
14
+ return escape_html(str, isAttr).replace(/\n/g, '<br>');
15
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/std/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjD;AAED,MAAM,WAAW,SAAS;IACzB,KAAK,IAAI,IAAI,CAAC;CACd;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC7B,SAAS,GACT,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,CAAC;AAEb;;;GAGG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,oBAAoB,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAIjE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/std/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjD;AAED,MAAM,WAAW,SAAS;IACzB,KAAK,IAAI,IAAI,CAAC;CACd;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC/B,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAE1D;;;GAGG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,oBAAoB,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAIjE"}
package/dist/utils.d.ts CHANGED
@@ -10,4 +10,5 @@ export declare function isPromise<T>(p: Promise<T> | T): p is Promise<T>;
10
10
  */
11
11
  export declare function promiseThen<T, R = void>(p: Promise<T> | T, then: (val: T) => R): Promise<R> | R;
12
12
  export declare function urlWithPath(url: string, path?: string): URL;
13
+ export declare function cryptoSha1Hash(str: string): Promise<string>;
13
14
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAMtC;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAE/D;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EACtC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EACjB,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GACjB,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAEhB;AAGD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,GAAG,CAI3D"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAMtC;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAE/D;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EACtC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EACjB,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GACjB,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAEhB;AAGD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,GAAG,CAI3D;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBjE"}
package/dist/utils.js CHANGED
@@ -26,3 +26,20 @@ export function urlWithPath(url, path) {
26
26
  u.pathname = path ?? '';
27
27
  return u;
28
28
  }
29
+ export async function cryptoSha1Hash(str) {
30
+ // Convert the string data to an ArrayBuffer
31
+ const encoder = new TextEncoder();
32
+ const dataBuffer = encoder.encode(str);
33
+ // Use the Web Crypto API to hash the data with SHA-1
34
+ const hashBuffer = await crypto.subtle.digest('SHA-1', dataBuffer);
35
+ const bytes = new Uint8Array(hashBuffer);
36
+ // @ts-ignore using 2025 baseline feature
37
+ if (typeof bytes.toHex === 'function')
38
+ return bytes.toHex();
39
+ // Convert the ArrayBuffer to a hex string
40
+ const hashArray = Array.from(bytes); // Create an array from the buffer
41
+ const hashHex = hashArray
42
+ .map(b => b.toString(16).padStart(2, '0'))
43
+ .join(''); // Convert to hex string
44
+ return hashHex;
45
+ }
@@ -1,7 +1,3 @@
1
1
  import { Plugin } from 'vite';
2
- export type CrelteOptions = {
3
- /** If not specified tries to detect which version is installed */
4
- svelte4?: boolean;
5
- };
6
- export default function crelte(opts?: CrelteOptions): Plugin;
2
+ export default function crelte(): Plugin;
7
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vite/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEN,MAAM,EAON,MAAM,MAAM,CAAC;AAkJd,MAAM,MAAM,aAAa,GAAG;IAC3B,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAyK3D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vite/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,MAAM,EAON,MAAM,MAAM,CAAC;AAwHd,MAAM,CAAC,OAAO,UAAU,MAAM,IAAI,MAAM,CA4JvC"}