crelte 0.1.2 → 0.2.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.
Files changed (58) hide show
  1. package/dist/CrelteRequest.d.ts +11 -6
  2. package/dist/CrelteRequest.d.ts.map +1 -1
  3. package/dist/CrelteRequest.js +14 -14
  4. package/dist/graphql/GraphQl.d.ts +1 -1
  5. package/dist/graphql/GraphQl.d.ts.map +1 -1
  6. package/dist/graphql/GraphQl.js +1 -1
  7. package/dist/index.d.ts +2 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +3 -3
  10. package/dist/init/client.d.ts.map +1 -1
  11. package/dist/init/client.js +5 -5
  12. package/dist/init/server.d.ts +2 -0
  13. package/dist/init/server.d.ts.map +1 -1
  14. package/dist/init/server.js +24 -10
  15. package/dist/init/shared.d.ts +3 -3
  16. package/dist/init/shared.d.ts.map +1 -1
  17. package/dist/init/shared.js +1 -1
  18. package/dist/loadData/index.d.ts +11 -5
  19. package/dist/loadData/index.d.ts.map +1 -1
  20. package/dist/loadData/index.js +15 -6
  21. package/dist/routing/History.d.ts +5 -3
  22. package/dist/routing/History.d.ts.map +1 -1
  23. package/dist/routing/History.js +9 -4
  24. package/dist/routing/InnerRouter.d.ts +13 -9
  25. package/dist/routing/InnerRouter.d.ts.map +1 -1
  26. package/dist/routing/InnerRouter.js +30 -35
  27. package/dist/routing/PageLoader.d.ts +4 -5
  28. package/dist/routing/PageLoader.d.ts.map +1 -1
  29. package/dist/routing/PageLoader.js +5 -5
  30. package/dist/routing/Request.d.ts +9 -2
  31. package/dist/routing/Request.d.ts.map +1 -1
  32. package/dist/routing/Request.js +16 -1
  33. package/dist/routing/Route.d.ts +25 -12
  34. package/dist/routing/Route.d.ts.map +1 -1
  35. package/dist/routing/Route.js +35 -14
  36. package/dist/routing/Router.d.ts +5 -7
  37. package/dist/routing/Router.d.ts.map +1 -1
  38. package/dist/routing/Router.js +26 -37
  39. package/dist/routing/Site.js +1 -1
  40. package/dist/routing/utils.d.ts +2 -0
  41. package/dist/routing/utils.d.ts.map +1 -0
  42. package/dist/routing/utils.js +3 -0
  43. package/package.json +3 -2
  44. package/src/CrelteRequest.ts +14 -19
  45. package/src/graphql/GraphQl.ts +5 -2
  46. package/src/index.ts +17 -3
  47. package/src/init/client.ts +5 -10
  48. package/src/init/server.ts +31 -11
  49. package/src/init/shared.ts +4 -4
  50. package/src/loadData/index.ts +47 -15
  51. package/src/routing/History.ts +12 -5
  52. package/src/routing/InnerRouter.ts +42 -39
  53. package/src/routing/PageLoader.ts +7 -17
  54. package/src/routing/Request.ts +20 -6
  55. package/src/routing/Route.ts +40 -16
  56. package/src/routing/Router.ts +33 -46
  57. package/src/routing/Site.ts +1 -1
  58. package/src/routing/utils.ts +3 -0
@@ -9,12 +9,8 @@ export default class CrelteRequest extends Crelte {
9
9
  * The current request
10
10
  */
11
11
  req: Request;
12
- /**
13
- * The current site
14
- */
15
- site: Site;
16
12
  private innerGlobals;
17
- constructor(inner: Crelte, req: Request, site: Site);
13
+ constructor(inner: Crelte, req: Request);
18
14
  /**
19
15
  * Create a CrelteRequest from a Crelte instance
20
16
  *
@@ -25,12 +21,21 @@ export default class CrelteRequest extends Crelte {
25
21
  * If you provide a route it must contain a site or you must
26
22
  * provide one,
27
23
  */
28
- static fromCrelte(inner: Crelte, req?: Route | Request, site?: Site): CrelteRequest;
24
+ static fromCrelte(inner: Crelte, req?: Route | Request): CrelteRequest;
29
25
  /**
30
26
  * Get the current request
31
27
  * @deprecated
32
28
  */
33
29
  get route(): Request;
30
+ /**
31
+ * Easy access to this.req.site
32
+ *
33
+ * ## Note
34
+ * The site might not always match with the current route
35
+ * but be the site default site or one that matches the
36
+ * users language.
37
+ */
38
+ get site(): Site;
34
39
  /**
35
40
  * returns a globalSet
36
41
  *
@@ -1 +1 @@
1
- {"version":3,"file":"CrelteRequest.d.ts","sourceRoot":"","sources":["../../../src/CrelteRequest.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,IAAI,MAAM,mBAAmB,CAAC;AACrC,OAAO,OAAO,MAAM,sBAAsB,CAAC;AAC3C,OAAO,KAAK,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,MAAM;IAChD;;OAEG;IACH,GAAG,EAAE,OAAO,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IAEX,OAAO,CAAC,YAAY,CAAmB;gBAG3B,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI;IAQnD;;;;;;;;;OASG;IACH,MAAM,CAAC,UAAU,CAChB,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,EACrB,IAAI,CAAC,EAAE,IAAI,GACT,aAAa;IAiBhB;;;OAGG;IACH,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAIvD;;;;;;OAMG;IACG,cAAc,CAAC,CAAC,SAAS,UAAU,EACxC,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAUpB;;;;;;;OAOG;IACG,KAAK,CACV,KAAK,EAAE,YAAY,EACnB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACvC,IAAI,GAAE,YAAiB,GACrB,OAAO,CAAC,OAAO,CAAC;IAQnB,cAAc;IACd,iBAAiB;CAGjB"}
1
+ {"version":3,"file":"CrelteRequest.d.ts","sourceRoot":"","sources":["../../../src/CrelteRequest.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,IAAI,MAAM,mBAAmB,CAAC;AACrC,OAAO,OAAO,MAAM,sBAAsB,CAAC;AAC3C,OAAO,KAAK,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,MAAM;IAChD;;OAEG;IACH,GAAG,EAAE,OAAO,CAAC;IAEb,OAAO,CAAC,YAAY,CAAmB;gBAE3B,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO;IAOvC;;;;;;;;;OASG;IACH,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,aAAa;IAWtE;;;OAGG;IACH,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED;;;;;;;OAOG;IACH,IAAI,IAAI,IAAI,IAAI,CAEf;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAIvD;;;;;;OAMG;IACG,cAAc,CAAC,CAAC,SAAS,UAAU,EACxC,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAUpB;;;;;;;OAOG;IACG,KAAK,CACV,KAAK,EAAE,YAAY,EACnB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACvC,IAAI,GAAE,YAAiB,GACrB,OAAO,CAAC,OAAO,CAAC;IAQnB,cAAc;IACd,iBAAiB;CAGjB"}
@@ -5,16 +5,10 @@ export default class CrelteRequest extends Crelte {
5
5
  * The current request
6
6
  */
7
7
  req;
8
- /**
9
- * The current site
10
- */
11
- site;
12
8
  innerGlobals;
13
- /// requires a site if the route does not contain a site
14
- constructor(inner, req, site) {
9
+ constructor(inner, req) {
15
10
  super(inner);
16
11
  this.req = req;
17
- this.site = site;
18
12
  this.innerGlobals = new Map();
19
13
  }
20
14
  /**
@@ -27,16 +21,11 @@ export default class CrelteRequest extends Crelte {
27
21
  * If you provide a route it must contain a site or you must
28
22
  * provide one,
29
23
  */
30
- static fromCrelte(inner, req, site) {
24
+ static fromCrelte(inner, req) {
31
25
  if (!req) {
32
26
  req = inner.router.route.get();
33
27
  }
34
- if (!site) {
35
- if (!req.site)
36
- throw new Error('site is required');
37
- site = req.site;
38
- }
39
- return new CrelteRequest(inner, req instanceof Request ? req : Request.fromRoute(req), site);
28
+ return new CrelteRequest(inner, req instanceof Request ? req : Request.fromRoute(req));
40
29
  }
41
30
  /**
42
31
  * Get the current request
@@ -45,6 +34,17 @@ export default class CrelteRequest extends Crelte {
45
34
  get route() {
46
35
  return this.req;
47
36
  }
37
+ /**
38
+ * Easy access to this.req.site
39
+ *
40
+ * ## Note
41
+ * The site might not always match with the current route
42
+ * but be the site default site or one that matches the
43
+ * users language.
44
+ */
45
+ get site() {
46
+ return this.req.site;
47
+ }
48
48
  /**
49
49
  * returns a globalSet
50
50
  *
@@ -50,7 +50,7 @@ export type GraphQlOptions = {
50
50
  */
51
51
  export type GraphQlRequestOptions = {
52
52
  path?: string;
53
- route?: Route;
53
+ route?: Route | URL;
54
54
  ignoreStatusCode?: boolean;
55
55
  previewToken?: string;
56
56
  siteToken?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"GraphQl.d.ts","sourceRoot":"","sources":["../../../../src/graphql/GraphQl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,QAAwC,MAAM,oBAAoB,CAAC;AAE1E,MAAM,MAAM,oBAAoB,GAAG;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd;AAGD;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACtC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,GAAG,EAAE,GAAG,CAAC;gBAGG,IAAI,EAAE,oBAAoB,EAAE,GAAG,GAAE,GAAU;IAOvD;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB,kBAAkB;IAElB;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;CACD;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,qBAAqB,GAAG;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,SAAS,CAGf;IAEF,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,aAAa,CAAU;IAE/B;;OAEG;gBAEF,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,GAAE,cAAmB;IAU1B;;;;;;;OAOG;IACG,KAAK,CACV,KAAK,EAAE,YAAY,EACnB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACvC,IAAI,GAAE,qBAA0B,GAC9B,OAAO,CAAC,OAAO,CAAC;YAsBL,OAAO;YA0DP,UAAU;CAmFxB;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,YAAY,CAI5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,GAAG,CAClB,OAAO,EAAE,oBAAoB,GAAG,MAAM,EAAE,GAAG,MAAM,EACjD,GAAG,IAAI,EAAE,OAAO,EAAE,GAChB,YAAY,CAuBd"}
1
+ {"version":3,"file":"GraphQl.d.ts","sourceRoot":"","sources":["../../../../src/graphql/GraphQl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,QAAwC,MAAM,oBAAoB,CAAC;AAE1E,MAAM,MAAM,oBAAoB,GAAG;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd;AAGD;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACtC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,GAAG,EAAE,GAAG,CAAC;gBAGG,IAAI,EAAE,oBAAoB,EAAE,GAAG,GAAE,GAAU;IAOvD;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB,kBAAkB;IAElB;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;CACD;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,qBAAqB,GAAG;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,KAAK,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,SAAS,CAGf;IAEF,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,aAAa,CAAU;IAE/B;;OAEG;gBAEF,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,GAAE,cAAmB;IAU1B;;;;;;;OAOG;IACG,KAAK,CACV,KAAK,EAAE,YAAY,EACnB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACvC,IAAI,GAAE,qBAA0B,GAC9B,OAAO,CAAC,OAAO,CAAC;YAuBL,OAAO;YA0DP,UAAU;CAmFxB;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,YAAY,CAI5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,GAAG,CAClB,OAAO,EAAE,oBAAoB,GAAG,MAAM,EAAE,GAAG,MAAM,EACjD,GAAG,IAAI,EAAE,OAAO,EAAE,GAChB,YAAY,CAuBd"}
@@ -55,7 +55,7 @@ export default class GraphQl {
55
55
  */
56
56
  async query(query, variables = {}, opts = {}) {
57
57
  if (opts.route) {
58
- const search = opts.route.search;
58
+ const search = opts.route.searchParams ?? opts.route.search;
59
59
  // todo should variables contain siteId
60
60
  // or maybe gql should detect loadData and add it there
61
61
  // it might make export const loadData = query; easier
package/dist/index.d.ts CHANGED
@@ -8,7 +8,8 @@ import CrelteRequest from './CrelteRequest.js';
8
8
  import type { Global, GlobalData } from './loadData/Globals.js';
9
9
  import type { Cookies } from './cookies/index.js';
10
10
  import type { Readable } from 'crelte-std/stores';
11
- export { Crelte, CrelteRequest, type QueryOptions };
11
+ import { LoadData, LoadDataArray, LoadDataFn, LoadDataObj } from './loadData/index.js';
12
+ export { Crelte, CrelteRequest, type QueryOptions, type LoadData, type LoadDataFn, type LoadDataObj, type LoadDataArray, };
12
13
  /**
13
14
  * Get Crelte from the current context
14
15
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,MAAM,EAAE,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAEtC;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,CAE1C;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAExC;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAAC;AACrD,wBAAgB,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAAC;AACtD,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAKpD;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,QAAQ,CAAC,OAAO,CAAC,CAE9C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,QAAQ,CAAC,MAAM,CAAC,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,UAAU,EAC7C,IAAI,EAAE,MAAM,GACV,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAElB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,IAAI,QAOxD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,MAAM,EAAE,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACN,QAAQ,EACR,aAAa,EACb,UAAU,EACV,WAAW,EACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACN,MAAM,EACN,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,GAClB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAEtC;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,CAE1C;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAExC;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAAC;AACrD,wBAAgB,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAAC;AACtD,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAKpD;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,QAAQ,CAAC,OAAO,CAAC,CAE9C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,QAAQ,CAAC,MAAM,CAAC,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,UAAU,EAC7C,IAAI,EAAE,MAAM,GACV,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAElB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,IAAI,QAOxD"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { getContext, onDestroy } from 'svelte';
2
2
  import Crelte from './Crelte.js';
3
3
  import CrelteRequest from './CrelteRequest.js';
4
- export { Crelte, CrelteRequest };
4
+ export { Crelte, CrelteRequest, };
5
5
  /**
6
6
  * Get Crelte from the current context
7
7
  *
@@ -103,8 +103,8 @@ export function getCookies() {
103
103
  */
104
104
  export function onRequest(fn) {
105
105
  const crelte = getCrelte();
106
- const rmListener = crelte.router.onRequest((req, site) => {
107
- fn(new CrelteRequest(crelte, req, site));
106
+ const rmListener = crelte.router.onRequest(req => {
107
+ fn(new CrelteRequest(crelte, req));
108
108
  });
109
109
  onDestroy(rmListener);
110
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/init/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAKrD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB,4BAA4B;IAC5B,GAAG,EAAE,GAAG,CAAC;IACT,8BAA8B;IAC9B,SAAS,EAAE,GAAG,CAAC;IACf,iDAAiD;IACjD,UAAU,EAAE,YAAY,CAAC;IACzB,mDAAmD;IACnD,WAAW,CAAC,EAAE,YAAY,CAAC;IAI3B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAIpB,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,mDAAmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAYF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,QAAQ,QAsIlC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/init/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAKrD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB,4BAA4B;IAC5B,GAAG,EAAE,GAAG,CAAC;IACT,8BAA8B;IAC9B,SAAS,EAAE,GAAG,CAAC;IACf,iDAAiD;IACjD,UAAU,EAAE,YAAY,CAAC;IACzB,mDAAmD;IACnD,WAAW,CAAC,EAAE,YAAY,CAAC;IAI3B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAIpB,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,mDAAmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAYF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,QAAQ,QAiIlC"}
@@ -71,8 +71,8 @@ export function main(data) {
71
71
  // setup plugins
72
72
  setupPlugins(crelte, data.app.plugins ?? []);
73
73
  // setup load Data
74
- crelte.router._internal.onLoad = (req, site, opts) => {
75
- const cr = new CrelteRequest(crelte, req, site);
74
+ crelte.router._internal.onLoad = (req, opts) => {
75
+ const cr = new CrelteRequest(crelte, req);
76
76
  return loadFn(cr, data.app, data.entryQuery, data.globalQuery, opts);
77
77
  };
78
78
  // render Space
@@ -92,7 +92,7 @@ export function main(data) {
92
92
  }
93
93
  };
94
94
  let firstLoad = true;
95
- crelte.router._internal.onLoaded = async (success, req, site, readyForProps) => {
95
+ crelte.router._internal.onLoaded = async (success, req, readyForProps) => {
96
96
  const isFirstLoad = firstLoad;
97
97
  firstLoad = false;
98
98
  if (!success) {
@@ -107,12 +107,12 @@ export function main(data) {
107
107
  }
108
108
  return handleLoadError(readyForProps());
109
109
  }
110
- const cr = new CrelteRequest(crelte, req, site);
110
+ const cr = new CrelteRequest(crelte, req);
111
111
  const startTime = data.debugTiming ? Date.now() : null;
112
112
  let render = async () => {
113
113
  // we should trigger the route update here
114
114
  pluginsBeforeRender(cr);
115
- crelte.globals._updateSiteId(site.id);
115
+ crelte.globals._updateSiteId(cr.site.id);
116
116
  updateAppProps(readyForProps());
117
117
  await tick();
118
118
  if (startTime) {
@@ -8,6 +8,8 @@ export type ServerData = {
8
8
  craftWeb: string;
9
9
  viteEnv: Map<string, string>;
10
10
  cookies?: string;
11
+ readSitesCache?: () => Promise<any>;
12
+ writeSitesCache?: (data: any) => Promise<void>;
11
13
  };
12
14
  /**
13
15
  * The main function to start the server side rendering
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../src/init/server.ts"],"names":[],"mappings":"AAOA,OAAO,EAAO,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,MAAM,UAAU,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB,4BAA4B;IAC5B,GAAG,EAAE,GAAG,CAAC;IACT,iDAAiD;IACjD,UAAU,EAAE,YAAY,CAAC;IACzB,mDAAmD;IACnD,WAAW,CAAC,EAAE,YAAY,CAAC;IAE3B,0CAA0C;IAC1C,UAAU,EAAE,UAAU,CAAC;IAIvB,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,mDAAmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC,CA4ED;AAED,MAAM,MAAM,KAAK,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,GAAG,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAE3B,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,GAAG,CAAC;IAEf,UAAU,EAAE,UAAU,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,SAAS,CAC9B,IAAI,EAAE,aAAa,GACjB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA0B5C"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../src/init/server.ts"],"names":[],"mappings":"AAOA,OAAO,EAAO,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,MAAM,UAAU,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB,4BAA4B;IAC5B,GAAG,EAAE,GAAG,CAAC;IACT,iDAAiD;IACjD,UAAU,EAAE,YAAY,CAAC;IACzB,mDAAmD;IACnD,WAAW,CAAC,EAAE,YAAY,CAAC;IAE3B,0CAA0C;IAC1C,UAAU,EAAE,UAAU,CAAC;IAIvB,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,mDAAmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC,CA6ED;AAED,MAAM,MAAM,KAAK,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,GAAG,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAE3B,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,GAAG,CAAC;IAEf,UAAU,EAAE,UAAU,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,SAAS,CAC9B,IAAI,EAAE,aAAa,GACjB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA0B5C"}
@@ -39,37 +39,38 @@ export async function main(data) {
39
39
  });
40
40
  const cookies = data.serverData.cookies ?? '';
41
41
  builder.setupCookies(cookies);
42
- const csites = await loadSites(builder);
42
+ const csites = await loadSites(builder, data.serverData);
43
43
  builder.ssrCache.set('crelteSites', csites);
44
44
  builder.setupRouter(csites);
45
45
  const crelte = builder.build();
46
46
  // setup plugins
47
47
  setupPlugins(crelte, data.app.plugins ?? []);
48
48
  // setup load Data
49
- crelte.router._internal.onLoad = (req, site) => {
50
- const cr = new CrelteRequest(crelte, req, site);
49
+ crelte.router._internal.onLoad = req => {
50
+ const cr = new CrelteRequest(crelte, req);
51
51
  return loadFn(cr, data.app, data.entryQuery, data.globalQuery);
52
52
  };
53
- const { success, redirect, req, site, props } = await crelte.router._internal.initServer(data.serverData.url, data.serverData.acceptLang);
53
+ const { success, redirect, req, props } = await crelte.router._internal.initServer(data.serverData.url, data.serverData.acceptLang);
54
54
  if (!success)
55
55
  throw props;
56
56
  if (redirect) {
57
57
  return {
58
- status: 302,
58
+ status: req.statusCode ?? 302,
59
59
  location: req.url.toString(),
60
60
  };
61
61
  }
62
62
  const context = crelte._getContext();
63
63
  const ssrComponents = new SsrComponents();
64
64
  ssrComponents.addToContext(context);
65
- pluginsBeforeRender(new CrelteRequest(crelte, req, site));
66
- crelte.globals._updateSiteId(site.id);
65
+ const cr = new CrelteRequest(crelte, req);
66
+ pluginsBeforeRender(cr);
67
+ crelte.globals._updateSiteId(cr.site.id);
67
68
  // eslint-disable-next-line prefer-const
68
69
  let { html, head } = data.app.default.render(props, { context });
69
70
  head += ssrComponents.toHead(data.serverData.ssrManifest);
70
71
  head += crelte.ssrCache._exportToHead();
71
72
  let htmlTemplate = data.serverData.htmlTemplate;
72
- htmlTemplate = htmlTemplate.replace('<!--page-lang-->', site.language);
73
+ htmlTemplate = htmlTemplate.replace('<!--page-lang-->', cr.site.language);
73
74
  const finalHtml = htmlTemplate
74
75
  .replace('</head>', head + '\n\t</head>')
75
76
  .replace('<!--ssr-body-->', html);
@@ -118,13 +119,23 @@ export async function mainError(data) {
118
119
  };
119
120
  }
120
121
  // requires, GraphQl, SsrCache
121
- async function loadSites(builder) {
122
+ async function loadSites(builder, serverData) {
122
123
  if (!builder.graphQl)
123
124
  throw new Error();
124
125
  if ('CRAFT_SITES_CACHED' in globalThis) {
125
- // @ts-ignore
126
126
  return globalThis['CRAFT_SITES_CACHED'];
127
127
  }
128
+ if (import.meta.env.PROD && serverData.readSitesCache) {
129
+ try {
130
+ const sites = (await serverData.readSitesCache());
131
+ // @ts-ignore
132
+ globalThis['CRAFT_SITES_CACHED'] = sites;
133
+ return sites;
134
+ }
135
+ catch (_e) {
136
+ // ignore
137
+ }
138
+ }
128
139
  const resp = (await builder.graphQl.query(gql `
129
140
  query {
130
141
  crelteSites {
@@ -141,5 +152,8 @@ async function loadSites(builder) {
141
152
  { caching: false }));
142
153
  // @ts-ignore
143
154
  globalThis['CRAFT_SITES_CACHED'] = resp.crelteSites;
155
+ if (import.meta.env.PROD && serverData.writeSitesCache) {
156
+ await serverData.writeSitesCache(resp.crelteSites);
157
+ }
144
158
  return resp.crelteSites;
145
159
  }
@@ -4,8 +4,8 @@ import { GraphQlQuery } from '../graphql/GraphQl.js';
4
4
  import { LoadData } from '../loadData/index.js';
5
5
  import { PluginCreator } from '../plugins/Plugins.js';
6
6
  import { LoadOptions } from '../routing/PageLoader.js';
7
- interface App<D, E, T> {
8
- loadGlobalData?: LoadData<D>;
7
+ interface App<E, T> {
8
+ loadGlobalData?: LoadData<null>;
9
9
  loadEntryData?: LoadData<any>;
10
10
  templates?: Record<string, LazyTemplateModule<E, T>>;
11
11
  }
@@ -25,6 +25,6 @@ export declare function pluginsBeforeRender(cr: CrelteRequest): void;
25
25
  * sectionHandle will be automatically set to product
26
26
  */
27
27
  export declare function getEntry(page: any): any;
28
- export declare function loadFn<D, E, T>(cr: CrelteRequest, app: App<D, E, T>, entryQuery: GraphQlQuery, globalQuery?: GraphQlQuery, loadOpts?: LoadOptions): Promise<any>;
28
+ export declare function loadFn<D, E, T>(cr: CrelteRequest, app: App<E, T>, entryQuery: GraphQlQuery, globalQuery?: GraphQlQuery, loadOpts?: LoadOptions): Promise<any>;
29
29
  export {};
30
30
  //# sourceMappingURL=shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/init/shared.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAgB,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAG7B,aAAa,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE9B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACrD;AAED,UAAU,cAAc,CAAC,CAAC,EAAE,CAAC;IAE5B,OAAO,EAAE,GAAG,CAAC;IAEb,QAAQ,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACnD;AAED,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IACzB,CAAC,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GACrC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAExB,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAKpE;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,CAE3D;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAYvC;AAED,wBAAsB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACnC,EAAE,EAAE,aAAa,EACjB,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACjB,UAAU,EAAE,YAAY,EACxB,WAAW,CAAC,EAAE,YAAY,EAC1B,QAAQ,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,GAAG,CAAC,CAsGd"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/init/shared.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAgB,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAGhC,aAAa,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE9B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACrD;AAED,UAAU,cAAc,CAAC,CAAC,EAAE,CAAC;IAE5B,OAAO,EAAE,GAAG,CAAC;IAEb,QAAQ,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACnD;AAED,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IACzB,CAAC,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GACrC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAExB,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAKpE;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,CAE3D;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAYvC;AAED,wBAAsB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACnC,EAAE,EAAE,aAAa,EACjB,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EACd,UAAU,EAAE,YAAY,EACxB,WAAW,CAAC,EAAE,YAAY,EAC1B,QAAQ,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,GAAG,CAAC,CAsGd"}
@@ -37,7 +37,7 @@ export async function loadFn(cr, app, entryQuery, globalQuery, loadOpts) {
37
37
  'loadEntryData depending on if you need access to entry or not?');
38
38
  }
39
39
  if (app.loadGlobalData) {
40
- dataProm = callLoadData(app.loadGlobalData, cr);
40
+ dataProm = callLoadData(app.loadGlobalData, cr, null);
41
41
  }
42
42
  let globalProm = null;
43
43
  if (globalQuery && !cr.globals._wasLoaded()) {
@@ -3,6 +3,14 @@ import { type GraphQlQuery } from '../graphql/GraphQl.js';
3
3
  import type Globals from './Globals.js';
4
4
  import type { Global } from './Globals.js';
5
5
  export type { Globals, Global };
6
+ export interface LoadDataFn<A1 = any> {
7
+ (cr: CrelteRequest, entryOrBlock: A1, ...args: any[]): Promise<any> | any;
8
+ }
9
+ export interface LoadDataObj<A1 = any> {
10
+ [key: string]: LoadData<A1>;
11
+ }
12
+ export interface LoadDataArray<A1 = any> extends Array<LoadData<A1>> {
13
+ }
6
14
  /**
7
15
  * Load data function
8
16
  *
@@ -13,8 +21,6 @@ export type { Globals, Global };
13
21
  * Each property should be a loadData type, each one is called in parallel.
14
22
  * And will be available to your component with the same name.
15
23
  * ```
16
- * export const loadData = {
17
- *
18
24
  * import entriesQuery from '@/queries/entries.graphql';
19
25
  * import { loadData as headerLoadData } from '@/layout/header.svelte';
20
26
  *
@@ -69,8 +75,8 @@ export type { Globals, Global };
69
75
  * }
70
76
  * ```
71
77
  */
72
- export type LoadData<T> = ((cr: CrelteRequest, ...args: any[]) => Promise<T>) | GraphQlQuery | T;
73
- export declare function callLoadData(ld: LoadData<unknown>, cr: CrelteRequest, ...args: any[]): Promise<unknown>;
78
+ export type LoadData<A1 = any> = LoadDataFn<A1> | GraphQlQuery | LoadDataObj<A1> | LoadDataArray<A1> | string | number | null | undefined;
79
+ export declare function callLoadData<A1 = any>(ld: LoadData<A1>, cr: CrelteRequest, arg1: A1, ...args: any[]): Promise<any>;
74
80
  /**
75
81
  * Spread the data of two loadData functions.
76
82
  *
@@ -84,5 +90,5 @@ export declare function callLoadData(ld: LoadData<unknown>, cr: CrelteRequest, .
84
90
  * );
85
91
  * ```
86
92
  */
87
- export declare function mergeLoadData(...lds: LoadData<object>[]): LoadData<object>;
93
+ export declare function mergeLoadData<A1 = any>(...lds: LoadData<A1>[]): LoadDataFn<A1>;
88
94
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/loadData/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AAEH,MAAM,MAAM,QAAQ,CAAC,CAAC,IACnB,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,GACnD,YAAY,GACZ,CAAC,CAAC;AAEL,wBAAsB,YAAY,CACjC,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,EACrB,EAAE,EAAE,aAAa,EACjB,GAAG,IAAI,EAAE,GAAG,EAAE,GACZ,OAAO,CAAC,OAAO,CAAC,CAuBlB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,GAAG,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAQ1E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/loadData/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAEhC,MAAM,WAAW,UAAU,CAAC,EAAE,GAAG,GAAG;IACnC,CAAC,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;CAC1E;AAED,MAAM,WAAW,WAAW,CAAC,EAAE,GAAG,GAAG;IACpC,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;CAC5B;AAGD,MAAM,WAAW,aAAa,CAAC,EAAE,GAAG,GAAG,CAAE,SAAQ,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;CAAG;AAKvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,MAAM,MAAM,QAAQ,CAAC,EAAE,GAAG,GAAG,IAC1B,UAAU,CAAC,EAAE,CAAC,GACd,YAAY,GACZ,WAAW,CAAC,EAAE,CAAC,GACf,aAAa,CAAC,EAAE,CAAC,GACjB,MAAM,GACN,MAAM,GACN,IAAI,GACJ,SAAS,CAAC;AAOb,wBAAsB,YAAY,CAAC,EAAE,GAAG,GAAG,EAC1C,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,EAChB,EAAE,EAAE,aAAa,EACjB,IAAI,EAAE,EAAE,EACR,GAAG,IAAI,EAAE,GAAG,EAAE,GACZ,OAAO,CAAC,GAAG,CAAC,CA6Bd;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,EAAE,GAAG,GAAG,EACrC,GAAG,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,GACpB,UAAU,CAAC,EAAE,CAAC,CAUhB"}
@@ -1,16 +1,25 @@
1
1
  import { isGraphQlQuery } from '../graphql/GraphQl.js';
2
- export async function callLoadData(ld, cr, ...args) {
2
+ // export type LoadData<A1 = any, R = any> =
3
+ // | ((cr: CrelteRequest, entryOrBlock: A1, ...args: any[]) => Promise<R>)
4
+ // | GraphQlQuery
5
+ // | Record<string, LoadData<A1, R>>;
6
+ export async function callLoadData(ld, cr, arg1, ...args) {
3
7
  // either we have a function
4
8
  if (typeof ld === 'function') {
5
- return await ld(cr, ...args);
9
+ return await ld(cr, arg1, ...args);
6
10
  }
7
11
  // or a graphql query
8
12
  if (isGraphQlQuery(ld)) {
9
13
  return await cr.query(ld);
10
14
  }
15
+ if (ld === null || typeof ld === 'undefined')
16
+ return null;
17
+ if (Array.isArray(ld)) {
18
+ return await mergeLoadData(...ld)(cr, arg1, ...args);
19
+ }
11
20
  // or an object
12
- if (typeof ld === 'object' && ld !== null) {
13
- const data = await Promise.all(Object.values(ld).map(nld => callLoadData(nld, cr, ...args)));
21
+ if (typeof ld === 'object') {
22
+ const data = await Promise.all(Object.values(ld).map(nld => callLoadData(nld, cr, arg1, ...args)));
14
23
  return Object.fromEntries(Object.keys(ld).map((key, i) => [key, data[i]]));
15
24
  }
16
25
  return ld;
@@ -29,8 +38,8 @@ export async function callLoadData(ld, cr, ...args) {
29
38
  * ```
30
39
  */
31
40
  export function mergeLoadData(...lds) {
32
- return async (cr, ...args) => {
33
- const datas = await Promise.all(lds.map(ld => callLoadData(ld, cr, ...args)));
41
+ return async (cr, arg1, ...args) => {
42
+ const datas = await Promise.all(lds.map(ld => callLoadData(ld, cr, arg1, ...args)));
34
43
  return datas.reduce((acc, data) => ({ ...acc, ...data }), {});
35
44
  };
36
45
  }
@@ -1,25 +1,27 @@
1
+ import Request from './Request.js';
1
2
  export default interface History {
2
3
  scrollY(): number | null;
3
4
  replaceState(data: any, url?: string): void;
4
5
  pushState(data: any, url: string): void;
5
- open(url: string): void;
6
+ open(req: Request): void;
6
7
  back(): void;
7
8
  }
8
9
  export declare class ClientHistory implements History {
9
10
  scrollY(): number | null;
10
11
  replaceState(data: any, url?: string): void;
11
12
  pushState(data: any, url: string): void;
12
- open(url: string): void;
13
+ open(req: Request): void;
13
14
  back(): void;
14
15
  }
15
16
  export declare class ServerHistory implements History {
16
17
  state: any | null;
17
18
  url: string | null;
19
+ req: Request | null;
18
20
  constructor();
19
21
  scrollY(): number | null;
20
22
  replaceState(data: any, url?: string): void;
21
23
  pushState(data: any, url: string): void;
22
- open(url: string): void;
24
+ open(req: Request): void;
23
25
  back(): void;
24
26
  }
25
27
  //# sourceMappingURL=History.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"History.d.ts","sourceRoot":"","sources":["../../../../src/routing/History.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,OAAO;IAC/B,OAAO,IAAI,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,IAAI,IAAI,CAAC;CACb;AAED,qBAAa,aAAc,YAAW,OAAO;IAC5C,OAAO,IAAI,MAAM,GAAG,IAAI;IAIxB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAI3C,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAIvC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIvB,IAAI,IAAI,IAAI;CAGZ;AAED,qBAAa,aAAc,YAAW,OAAO;IAC5C,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAClB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;;IAOnB,OAAO,IAAI,MAAM,GAAG,IAAI;IAIxB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAK3C,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAKvC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIvB,IAAI,IAAI,IAAI;CAGZ"}
1
+ {"version":3,"file":"History.d.ts","sourceRoot":"","sources":["../../../../src/routing/History.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,MAAM,CAAC,OAAO,WAAW,OAAO;IAC/B,OAAO,IAAI,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,IAAI,IAAI,IAAI,CAAC;CACb;AAED,qBAAa,aAAc,YAAW,OAAO;IAC5C,OAAO,IAAI,MAAM,GAAG,IAAI;IAIxB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAI3C,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAIvC,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAIxB,IAAI,IAAI,IAAI;CAGZ;AAED,qBAAa,aAAc,YAAW,OAAO;IAC5C,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAClB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;;IAQpB,OAAO,IAAI,MAAM,GAAG,IAAI;IAIxB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAM3C,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAMvC,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAKxB,IAAI,IAAI,IAAI;CAGZ"}
@@ -8,8 +8,8 @@ export class ClientHistory {
8
8
  pushState(data, url) {
9
9
  history.pushState(data, '', url);
10
10
  }
11
- open(url) {
12
- window.location.href = url;
11
+ open(req) {
12
+ window.location.href = req.url.href;
13
13
  }
14
14
  back() {
15
15
  window.history.back();
@@ -18,9 +18,11 @@ export class ClientHistory {
18
18
  export class ServerHistory {
19
19
  state;
20
20
  url;
21
+ req;
21
22
  constructor() {
22
23
  this.state = null;
23
24
  this.url = null;
25
+ this.req = null;
24
26
  }
25
27
  scrollY() {
26
28
  return null;
@@ -28,13 +30,16 @@ export class ServerHistory {
28
30
  replaceState(data, url) {
29
31
  this.state = data;
30
32
  this.url = url ?? null;
33
+ this.req = null;
31
34
  }
32
35
  pushState(data, url) {
33
36
  this.state = data;
34
37
  this.url = url;
38
+ this.req = null;
35
39
  }
36
- open(url) {
37
- this.url = url;
40
+ open(req) {
41
+ this.req = req;
42
+ this.url = null;
38
43
  }
39
44
  back() {
40
45
  throw new Error('Cannot go back on the server');
@@ -1,7 +1,7 @@
1
1
  import Site, { SiteFromGraphQl } from './Site.js';
2
2
  import History from './History.js';
3
- import Request from './Request.js';
4
- import Route from './Route.js';
3
+ import Request, { RequestOptions } from './Request.js';
4
+ import Route, { RouteOptions } from './Route.js';
5
5
  export type InnerRouterOpts = {
6
6
  preloadOnMouseOver: boolean;
7
7
  };
@@ -10,16 +10,21 @@ export type InnerRouterOpts = {
10
10
  */
11
11
  export default class InnerRouter {
12
12
  sites: Site[];
13
+ /**
14
+ * The current route
15
+ *
16
+ * ## Null
17
+ * It might be null on the first targetToRequest, open, and routeFromUrl call
18
+ */
13
19
  route: Route | null;
14
- site: Site;
15
20
  history: History;
16
21
  preloadOnMouseOver: boolean;
17
22
  /**
18
23
  * @param changeHistory returns a function you need to call when you are ready to
19
24
  update the window history (note do not call this after another onRoute call was made)
20
25
  */
21
- onRoute: (route: Request, site: Site, changeHistory: () => void) => void;
22
- onPreload: (route: Request, site: Site) => void;
26
+ onRoute: (route: Request, changeHistory: () => void) => void;
27
+ onPreload: (route: Request) => void;
23
28
  private scrollDebounceTimeout;
24
29
  /**
25
30
  * Creates a new Router
@@ -39,8 +44,7 @@ export default class InnerRouter {
39
44
  /**
40
45
  * Get a site and if possible use the accept lang header.
41
46
  *
42
- * @param {(string|null)} [acceptLang=null] Accept Language header.
43
- * @return {Site}
47
+ * @param acceptLang Accept Language header.
44
48
  */
45
49
  siteByAcceptLang(acceptLang?: string | null): Site;
46
50
  /**
@@ -57,7 +61,7 @@ export default class InnerRouter {
57
61
  * @param target
58
62
  * @return Returns null if the url does not match our host (the protocol get's ignored)
59
63
  */
60
- targetToRequest(target: string | URL | Route | Request): Request;
64
+ targetToRequest(target: string | URL | Route | Request, opts?: RequestOptions): Request;
61
65
  /**
62
66
  * Resolve a url and convert it to a Route
63
67
  *
@@ -72,7 +76,7 @@ export default class InnerRouter {
72
76
  * @param route a route object or an url or uri, never input the same route object again
73
77
  * @param pushState if true pushed the state to the window.history
74
78
  */
75
- open(target: string | URL | Route | Request, pushState?: boolean): void;
79
+ open(target: string | URL | Route | Request, opts?: RouteOptions, pushState?: boolean): void;
76
80
  /**
77
81
  * Sets a route
78
82
  *
@@ -1 +1 @@
1
- {"version":3,"file":"InnerRouter.d.ts","sourceRoot":"","sources":["../../../../src/routing/InnerRouter.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,OAAsB,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,MAAM,MAAM,eAAe,GAAG;IAC7B,kBAAkB,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;IAC/B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACzE,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAEhD,OAAO,CAAC,qBAAqB,CAAa;IAE1C;;;;;OAKG;gBACS,KAAK,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,eAAe;IAmB3D;;OAEG;IACH,UAAU;IAkBV;;OAEG;IACH,UAAU;IAEV;;;;;OAKG;IACH,gBAAgB,CAAC,UAAU,GAAE,MAAM,GAAG,IAAW,GAAG,IAAI;IAsCxD;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIjC;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO;IAqBhE;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,KAAK;IA8BjC,MAAM;IA0FN;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,OAAO,EAAE,SAAS,GAAE,OAAc;IAyCtE;;;;;;;OAOG;IACH,QAAQ,CAAC,GAAG,EAAE,OAAO;IAOrB;;;;;;;;OAQG;IACH,SAAS,CAAC,KAAK,EAAE,KAAK;IAYtB;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,KAAK;IAYzB;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,OAAO;IAoB9C,QAAQ,CAAC,GAAG,EAAE,OAAO;CAkErB"}
1
+ {"version":3,"file":"InnerRouter.d.ts","sourceRoot":"","sources":["../../../../src/routing/InnerRouter.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,OAAO,EAAE,EAAa,cAAc,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,MAAM,eAAe,GAAG;IAC7B,kBAAkB,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;IAC/B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd;;;;;OAKG;IACH,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC7D,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAEpC,OAAO,CAAC,qBAAqB,CAAa;IAE1C;;;;;OAKG;gBACS,KAAK,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,eAAe;IAkB3D;;OAEG;IACH,UAAU;IAkBV;;OAEG;IACH,UAAU;IAEV;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,GAAE,MAAM,GAAG,IAAW,GAAG,IAAI;IAsCxD;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIjC;;;;;OAKG;IACH,eAAe,CACd,MAAM,EAAE,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,OAAO,EACtC,IAAI,GAAE,cAAmB,GACvB,OAAO;IAwBV;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,KAAK;IAgCjC,MAAM;IA0FN;;;;;OAKG;IACH,IAAI,CACH,MAAM,EAAE,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,OAAO,EACtC,IAAI,GAAE,YAAiB,EACvB,SAAS,GAAE,OAAc;IA0C1B;;;;;;;OAOG;IACH,QAAQ,CAAC,GAAG,EAAE,OAAO;IAMrB;;;;;;;;OAQG;IACH,SAAS,CAAC,KAAK,EAAE,KAAK;IAWtB;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,KAAK;IAWzB;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,OAAO;IAW9C,QAAQ,CAAC,GAAG,EAAE,OAAO;CAkErB"}