crelte 0.5.0-beta.2 → 0.5.0-beta.4

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 (121) hide show
  1. package/dist/cookies/ServerCookies.d.ts +2 -2
  2. package/dist/cookies/ServerCookies.d.ts.map +1 -1
  3. package/dist/cookies/ServerCookies.js +6 -4
  4. package/dist/crelte.d.ts +16 -0
  5. package/dist/crelte.d.ts.map +1 -1
  6. package/dist/crelte.js +3 -0
  7. package/dist/init/client.js +1 -1
  8. package/dist/init/server.d.ts +3 -19
  9. package/dist/init/server.d.ts.map +1 -1
  10. package/dist/init/server.js +12 -11
  11. package/dist/init/shared.js +5 -5
  12. package/dist/loadData/Globals.d.ts +3 -3
  13. package/dist/loadData/Globals.d.ts.map +1 -1
  14. package/dist/loadData/Globals.js +3 -3
  15. package/dist/node/index.js +1 -1
  16. package/dist/queries/Queries.d.ts +1 -1
  17. package/dist/queries/Queries.d.ts.map +1 -1
  18. package/dist/queries/Queries.js +1 -1
  19. package/dist/queries/index.d.ts +21 -2
  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 +31 -1
  23. package/dist/queries/vars.d.ts.map +1 -1
  24. package/dist/queries/vars.js +62 -1
  25. package/dist/routing/Site.d.ts +1 -1
  26. package/dist/routing/Site.d.ts.map +1 -1
  27. package/dist/routing/Site.js +1 -1
  28. package/dist/routing/index.d.ts +2 -1
  29. package/dist/routing/index.d.ts.map +1 -1
  30. package/dist/routing/index.js +2 -1
  31. package/dist/routing/route/BaseRoute.d.ts +5 -5
  32. package/dist/routing/route/BaseRoute.d.ts.map +1 -1
  33. package/dist/routing/route/BaseRoute.js +16 -18
  34. package/dist/routing/route/Request.d.ts +5 -5
  35. package/dist/routing/route/Request.d.ts.map +1 -1
  36. package/dist/routing/route/Request.js +24 -23
  37. package/dist/routing/route/Route.js +2 -2
  38. package/dist/routing/router/BaseRouter.d.ts +5 -102
  39. package/dist/routing/router/BaseRouter.d.ts.map +1 -1
  40. package/dist/routing/router/BaseRouter.js +14 -168
  41. package/dist/routing/router/ClientRouter.d.ts +1 -0
  42. package/dist/routing/router/ClientRouter.d.ts.map +1 -1
  43. package/dist/routing/router/ClientRouter.js +58 -67
  44. package/dist/routing/router/Router.d.ts +17 -1
  45. package/dist/routing/router/Router.d.ts.map +1 -1
  46. package/dist/routing/router/Router.js +68 -9
  47. package/dist/routing/router/ServerRouter.d.ts +9 -4
  48. package/dist/routing/router/ServerRouter.d.ts.map +1 -1
  49. package/dist/routing/router/ServerRouter.js +15 -8
  50. package/dist/routing/utils.d.ts +5 -3
  51. package/dist/routing/utils.d.ts.map +1 -1
  52. package/dist/routing/utils.js +20 -35
  53. package/dist/server/CrelteServer.d.ts +47 -4
  54. package/dist/server/CrelteServer.d.ts.map +1 -1
  55. package/dist/server/CrelteServer.js +58 -14
  56. package/dist/server/Request.d.ts +17 -1
  57. package/dist/server/Request.d.ts.map +1 -1
  58. package/dist/server/Request.js +25 -1
  59. package/dist/server/ServerRouter.d.ts +5 -1
  60. package/dist/server/ServerRouter.d.ts.map +1 -1
  61. package/dist/server/ServerRouter.js +26 -6
  62. package/dist/server/queries/QueriesCaching.d.ts +6 -1
  63. package/dist/server/queries/QueriesCaching.d.ts.map +1 -1
  64. package/dist/server/queries/QueriesCaching.js +10 -2
  65. package/dist/server/queries/queries.d.ts.map +1 -1
  66. package/dist/server/queries/queries.js +5 -2
  67. package/dist/server/queries/routes.d.ts.map +1 -1
  68. package/dist/server/queries/routes.js +17 -5
  69. package/dist/server/shared.d.ts +5 -6
  70. package/dist/server/shared.d.ts.map +1 -1
  71. package/dist/server/shared.js +4 -9
  72. package/dist/ssr/SsrCache.d.ts +1 -1
  73. package/dist/ssr/SsrCache.d.ts.map +1 -1
  74. package/dist/ssr/SsrCache.js +1 -1
  75. package/dist/std/intl/acceptLang.d.ts +6 -0
  76. package/dist/std/intl/acceptLang.d.ts.map +1 -0
  77. package/dist/std/intl/acceptLang.js +46 -0
  78. package/dist/std/intl/index.d.ts +2 -0
  79. package/dist/std/intl/index.d.ts.map +1 -0
  80. package/dist/std/intl/index.js +1 -0
  81. package/dist/utils.d.ts +1 -0
  82. package/dist/utils.d.ts.map +1 -1
  83. package/dist/utils.js +6 -0
  84. package/dist/vite/index.js +1 -1
  85. package/package.json +5 -5
  86. package/src/cookies/ServerCookies.ts +6 -6
  87. package/src/crelte.ts +21 -0
  88. package/src/init/client.ts +1 -1
  89. package/src/init/server.ts +21 -37
  90. package/src/init/shared.ts +5 -5
  91. package/src/loadData/Globals.ts +3 -3
  92. package/src/node/index.ts +1 -1
  93. package/src/queries/Queries.ts +1 -1
  94. package/src/queries/index.ts +25 -2
  95. package/src/queries/vars.ts +76 -2
  96. package/src/routing/Site.ts +1 -1
  97. package/src/routing/index.ts +2 -0
  98. package/src/routing/route/BaseRoute.ts +17 -20
  99. package/src/routing/route/Request.ts +29 -25
  100. package/src/routing/route/Route.ts +2 -2
  101. package/src/routing/router/BaseRouter.ts +18 -179
  102. package/src/routing/router/ClientRouter.ts +64 -72
  103. package/src/routing/router/Router.ts +71 -9
  104. package/src/routing/router/ServerRouter.ts +20 -12
  105. package/src/routing/utils.ts +23 -45
  106. package/src/server/CrelteServer.ts +75 -21
  107. package/src/server/Request.ts +30 -1
  108. package/src/server/ServerRouter.ts +42 -12
  109. package/src/server/queries/QueriesCaching.ts +19 -2
  110. package/src/server/queries/queries.ts +5 -2
  111. package/src/server/queries/routes.ts +16 -5
  112. package/src/server/shared.ts +14 -18
  113. package/src/ssr/SsrCache.ts +1 -1
  114. package/src/std/intl/acceptLang.ts +52 -0
  115. package/src/std/intl/index.ts +1 -0
  116. package/src/utils.ts +7 -0
  117. package/src/vite/index.ts +1 -1
  118. package/dist/server/queries/index.d.ts +0 -4
  119. package/dist/server/queries/index.d.ts.map +0 -1
  120. package/dist/server/queries/index.js +0 -2
  121. package/src/server/queries/index.ts +0 -5
@@ -7,10 +7,10 @@ import { type SetCookie } from './utils.js';
7
7
  export default class ServerCookies implements Cookies {
8
8
  requestCookies: Map<string, string>;
9
9
  setCookies: Map<string, SetCookie>;
10
- constructor(cookies: string);
10
+ constructor(headers: Headers);
11
11
  get(name: string): string | null;
12
12
  set(name: string, value: string, opts?: SetOptions): void;
13
13
  remove(name: string, opts?: RemoveOptions): void;
14
- _getSetCookiesHeaders(): string[];
14
+ _populateHeaders(headers: Headers): void;
15
15
  }
16
16
  //# sourceMappingURL=ServerCookies.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ServerCookies.d.ts","sourceRoot":"","sources":["../../src/cookies/ServerCookies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAgB,KAAK,SAAS,EAAqB,MAAM,YAAY,CAAC;AAE7E;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,YAAW,OAAO;IACpD,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAEvB,OAAO,EAAE,MAAM;IAM3B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAUhC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI;IAIzD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI;IAIhD,qBAAqB,IAAI,MAAM,EAAE;CAKjC"}
1
+ {"version":3,"file":"ServerCookies.d.ts","sourceRoot":"","sources":["../../src/cookies/ServerCookies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAgB,KAAK,SAAS,EAAqB,MAAM,YAAY,CAAC;AAE7E;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,YAAW,OAAO;IACpD,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAEvB,OAAO,EAAE,OAAO;IAM5B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAUhC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI;IAIzD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI;IAIhD,gBAAgB,CAAC,OAAO,EAAE,OAAO;CAKjC"}
@@ -6,8 +6,8 @@ import { parseCookies, setCookieToString } from './utils.js';
6
6
  export default class ServerCookies {
7
7
  requestCookies;
8
8
  setCookies;
9
- constructor(cookies) {
10
- this.requestCookies = parseCookies(cookies);
9
+ constructor(headers) {
10
+ this.requestCookies = parseCookies(headers.get('cookie') ?? '');
11
11
  this.setCookies = new Map();
12
12
  }
13
13
  /// Rethrns the value of the cookie with the given name, or null if it doesn't exist.
@@ -25,7 +25,9 @@ export default class ServerCookies {
25
25
  remove(name, opts) {
26
26
  this.set(name, '', { ...opts, maxAge: 0 });
27
27
  }
28
- _getSetCookiesHeaders() {
29
- return Array.from(this.setCookies.values()).map(setCookie => setCookieToString(setCookie));
28
+ _populateHeaders(headers) {
29
+ for (const setCookie of this.setCookies.values()) {
30
+ headers.append('set-cookie', setCookieToString(setCookie));
31
+ }
30
32
  }
31
33
  }
package/dist/crelte.d.ts CHANGED
@@ -97,6 +97,22 @@ export type Crelte = {
97
97
  getEnv(name: 'CRAFT_WEB_URL'): string;
98
98
  getEnv(name: 'FRONTEND_URL'): string;
99
99
  getEnv(name: string): string | null;
100
+ /**
101
+ * returns the frontend url with an optional path
102
+ *
103
+ * ## Note
104
+ * On the client this will always be the current origin
105
+ * and on the server it will be the from the env `FRONTEND_URL` env
106
+ * variable
107
+ */
108
+ frontendUrl(path?: string): URL;
109
+ /**
110
+ * returns the backend url with an optional path
111
+ *
112
+ * ## Note
113
+ * For the origin the `ENDPOINT_URL` env variable is used
114
+ */
115
+ backendUrl(path?: string): URL;
100
116
  /**
101
117
  * returns a store which contains a globalSet
102
118
  *
@@ -1 +1 @@
1
- {"version":3,"file":"crelte.d.ts","sourceRoot":"","sources":["../src/crelte.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crelte.d.ts","sourceRoot":"","sources":["../src/crelte.ts"],"names":[],"mappings":"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"}
package/dist/crelte.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { Request } from './routing/index.js';
2
+ import { urlWithPath } from './utils.js';
2
3
  export function configWithDefaults(config = {}) {
3
4
  return {
4
5
  preloadOnMouseOver: config.preloadOnMouseOver ?? false,
@@ -21,6 +22,8 @@ export function newCrelte({ config, ssrCache, plugins, events, globals, router,
21
22
  cookies,
22
23
  getPlugin: name => plugins.get(name),
23
24
  getEnv: key => ssrCache.get(key),
25
+ frontendUrl: path => urlWithPath(ssrCache.get('FRONTEND_URL'), path),
26
+ backendUrl: path => urlWithPath(ssrCache.get('ENDPOINT_URL'), path),
24
27
  getGlobalStore: name => globals.getStore(name),
25
28
  toRequest(req) {
26
29
  // @ts-ignore
@@ -114,7 +114,7 @@ export async function main(data) {
114
114
  const route = readyForRoute();
115
115
  cr.router._requestCompleted();
116
116
  if (route.entryChanged)
117
- cr.globals._syncToStores();
117
+ cr.globals.z_syncToStores();
118
118
  // we should trigger the route update here
119
119
  pluginsBeforeRender(cr, route);
120
120
  renderApp(route);
@@ -1,16 +1,5 @@
1
- import { SiteFromGraphQl } from '../routing/Site.js';
2
- export type ServerData = {
3
- url: string;
4
- htmlTemplate: string;
5
- ssrManifest: Record<string, string[]>;
6
- acceptLang?: string;
7
- endpoint: string;
8
- craftWeb: string;
9
- frontend: string;
10
- viteEnv: Map<string, string>;
11
- cookies: string;
12
- sites: SiteFromGraphQl[];
13
- };
1
+ import { RenderRequest, RenderResponse } from '../server/shared.js';
2
+ export type ServerData = RenderRequest;
14
3
  /**
15
4
  * The main function to start the server side rendering
16
5
  */
@@ -40,12 +29,7 @@ export type MainData = {
40
29
  * }
41
30
  * ```
42
31
  */
43
- export declare function main(data: MainData): Promise<{
44
- status: number;
45
- location?: string;
46
- html?: string;
47
- setCookies?: string[];
48
- }>;
32
+ export declare function main(data: MainData): Promise<RenderResponse>;
49
33
  export type Error = {
50
34
  status: number;
51
35
  message: any;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/init/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAsBrD,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,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,eAAe,EAAE,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB,4BAA4B;IAC5B,GAAG,EAAE,GAAG,CAAC;IAET,0CAA0C;IAC1C,UAAU,EAAE,UAAU,CAAC;CACvB,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,CAiHD;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,CAgC5C"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/init/server.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEpE,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC;AAEvC;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB,4BAA4B;IAC5B,GAAG,EAAE,GAAG,CAAC;IAET,0CAA0C;IAC1C,UAAU,EAAE,UAAU,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,CAiHlE;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,CAgC5C"}
@@ -42,12 +42,9 @@ export async function main(data) {
42
42
  ssrCache.set('ENDPOINT_URL', endpoint);
43
43
  ssrCache.set('CRAFT_WEB_URL', data.serverData.craftWeb);
44
44
  ssrCache.set('FRONTEND_URL', data.serverData.frontend);
45
- const cookiesData = data.serverData.cookies ?? '';
46
- const cookies = new ServerCookies(cookiesData);
45
+ const cookies = new ServerCookies(data.serverData.headers);
47
46
  ssrCache.set('crelteSites', data.serverData.sites);
48
- const router = new ServerRouter(data.serverData.sites, {
49
- debugTiming: config.debugTiming ?? false,
50
- });
47
+ const router = new ServerRouter(data.serverData.sites, data.serverData.headers.get('accept-language') ?? '', { debugTiming: config.debugTiming ?? false });
51
48
  const queries = newQueries(ssrCache, router.route.readonly(), config);
52
49
  const crelte = newCrelte({
53
50
  config,
@@ -69,18 +66,20 @@ export async function main(data) {
69
66
  router.onRender = (cr, readyForRoute, _domUpdated) => {
70
67
  const route = readyForRoute();
71
68
  cr.router._requestCompleted();
72
- cr.globals._syncToStores();
69
+ cr.globals.z_syncToStores();
73
70
  pluginsBeforeRender(cr, route);
74
71
  return route;
75
72
  };
76
73
  // throws if there was an error
77
- const [req, route] = await router.init(data.serverData.url, data.serverData.acceptLang);
74
+ const [req, route] = await router.init(data.serverData.url);
78
75
  // if redirect
79
76
  if (!route) {
77
+ const headers = new Headers();
78
+ crelte.cookies._populateHeaders(headers);
80
79
  return {
81
80
  status: req.statusCode ?? 302,
82
81
  location: req.url.toString(),
83
- setCookies: crelte.cookies._getSetCookiesHeaders(),
82
+ headers,
84
83
  };
85
84
  }
86
85
  const context = new Map([['crelte', crelte]]);
@@ -96,20 +95,22 @@ export async function main(data) {
96
95
  context,
97
96
  });
98
97
  head += ssrComponents.toHead(data.serverData.ssrManifest);
99
- head += crelte.ssrCache._exportToHead();
98
+ head += crelte.ssrCache.exportToHead();
100
99
  let htmlTemplate = data.serverData.htmlTemplate;
101
100
  htmlTemplate = htmlTemplate.replace('<!--page-lang-->', route.site.language);
102
101
  const finalHtml = htmlTemplate
103
102
  .replace('</head>', head + '\n\t</head>')
104
103
  .replace('<!--ssr-body-->', html);
105
104
  const entry = route.entry;
105
+ const headers = new Headers();
106
+ crelte.cookies._populateHeaders(headers);
106
107
  return {
107
108
  status: req.statusCode ??
108
109
  (entry.sectionHandle === 'error'
109
110
  ? parseInt(entry.typeHandle)
110
111
  : 200),
111
112
  html: finalHtml,
112
- setCookies: crelte.cookies._getSetCookiesHeaders(),
113
+ headers,
113
114
  };
114
115
  }
115
116
  /**
@@ -143,7 +144,7 @@ export async function mainError(data) {
143
144
  context,
144
145
  });
145
146
  head += ssrComponents.toHead(data.serverData.ssrManifest);
146
- head += ssrCache._exportToHead();
147
+ head += ssrCache.exportToHead();
147
148
  let htmlTemplate = data.serverData.htmlTemplate;
148
149
  htmlTemplate = htmlTemplate.replace('<!--page-lang-->', 'de');
149
150
  const finalHtml = htmlTemplate
@@ -35,9 +35,9 @@ export function onNewCrelteRequest(crelte, req) {
35
35
  // might refer to the wrong objects/classes
36
36
  const nCrelte = {
37
37
  ...crelte,
38
- router: crelte.router._toRequest(req),
39
- queries: crelte.queries._toRequest(req),
40
- globals: crelte.globals._toRequest(),
38
+ router: crelte.router.z_toRequest(req),
39
+ queries: crelte.queries.z_toRequest(req),
40
+ globals: crelte.globals.z_toRequest(),
41
41
  };
42
42
  return crelteToRequest(nCrelte, req);
43
43
  }
@@ -120,12 +120,12 @@ export async function loadFn(cr, app, loadOpts) {
120
120
  !(await Promise.any([loadGlobalDataProm, timeout(2000)]))) {
121
121
  console.error('DEV: globals took longer than 2 seconds to load. ' +
122
122
  'Resolving globals now to fix potential deadlocks');
123
- cr.globals._globalsLoaded();
123
+ cr.globals.z_globalsLoaded();
124
124
  }
125
125
  const [_global, [entry, template]] = await loadGlobalDataProm;
126
126
  if (isCanceled())
127
127
  return;
128
- cr.globals._globalsLoaded();
128
+ cr.globals.z_globalsLoaded();
129
129
  // loading progress is at 60%
130
130
  loadOpts?.setProgress(0.6);
131
131
  const pluginsLoadData = cr.events.trigger('loadData', cr, entry);
@@ -48,17 +48,17 @@ export default class Globals {
48
48
  * @hidden
49
49
  * call this before starting the loadGlobalData phase
50
50
  */
51
- _toRequest(): Globals;
51
+ z_toRequest(): Globals;
52
52
  /**
53
53
  * @hidden
54
54
  * call this after the loadGlobalData phase
55
55
  */
56
- _globalsLoaded(): void;
56
+ z_globalsLoaded(): void;
57
57
  /**
58
58
  * @hidden
59
59
  * call this after the loadData phase once the CrelteRequest
60
60
  * gets completed
61
61
  */
62
- _syncToStores(): void;
62
+ z_syncToStores(): void;
63
63
  }
64
64
  //# sourceMappingURL=Globals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Globals.d.ts","sourceRoot":"","sources":["../../src/loadData/Globals.ts"],"names":[],"mappings":"AASA,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AAEjD,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;AAEzD;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IAK3B,OAAO,CAAC,OAAO,CAAyC;IAIxD,OAAO,CAAC,OAAO,CAA0B;IAGzC,OAAO,CAAC,MAAM,CAA6B;gBAE/B,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAM/C;;;;;;OAMG;IACH,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAWpC;;;;;;;OAOG;IACH,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAInD;;;;;;OAMG;IACH,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI;IAkB7D;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IA4B5B;;;OAGG;IACH,UAAU;IAQV;;;OAGG;IACH,cAAc;IAYd;;;;OAIG;IACH,aAAa;CAyBb"}
1
+ {"version":3,"file":"Globals.d.ts","sourceRoot":"","sources":["../../src/loadData/Globals.ts"],"names":[],"mappings":"AASA,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AAEjD,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;AAEzD;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IAK3B,OAAO,CAAC,OAAO,CAAyC;IAIxD,OAAO,CAAC,OAAO,CAA0B;IAGzC,OAAO,CAAC,MAAM,CAA6B;gBAE/B,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAM/C;;;;;;OAMG;IACH,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAWpC;;;;;;;OAOG;IACH,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAInD;;;;;;OAMG;IACH,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI;IAkB7D;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IA4B5B;;;OAGG;IACH,WAAW;IAQX;;;OAGG;IACH,eAAe;IAYf;;;;OAIG;IACH,cAAc;CAyBd"}
@@ -106,7 +106,7 @@ export default class Globals {
106
106
  * @hidden
107
107
  * call this before starting the loadGlobalData phase
108
108
  */
109
- _toRequest() {
109
+ z_toRequest() {
110
110
  const nGlobals = new Globals(this.stores);
111
111
  nGlobals.waiters = new Map();
112
112
  nGlobals.newData = new Map();
@@ -116,7 +116,7 @@ export default class Globals {
116
116
  * @hidden
117
117
  * call this after the loadGlobalData phase
118
118
  */
119
- _globalsLoaded() {
119
+ z_globalsLoaded() {
120
120
  if (!this.waiters)
121
121
  return;
122
122
  for (const [name, listeners] of this.waiters.entries()) {
@@ -131,7 +131,7 @@ export default class Globals {
131
131
  * call this after the loadData phase once the CrelteRequest
132
132
  * gets completed
133
133
  */
134
- _syncToStores() {
134
+ z_syncToStores() {
135
135
  const setToNull = new Set(this.stores.keys());
136
136
  for (const [name, data] of this.newData.entries()) {
137
137
  setToNull.delete(name);
@@ -43,7 +43,7 @@ export default async function createServer(serverMod, buildTime) {
43
43
  const req = requestToWebRequest(baseUrl, nReq);
44
44
  let thrownError = null;
45
45
  try {
46
- const routeResp = await router._handle(req);
46
+ const routeResp = await router.z_handle(req);
47
47
  if (routeResp) {
48
48
  await webResponseToResponse(routeResp, res);
49
49
  return;
@@ -79,6 +79,6 @@ export default class Queries {
79
79
  * @hidden
80
80
  * call this before starting the loadGlobalData phase
81
81
  */
82
- _toRequest(req: Request): Queries;
82
+ z_toRequest(req: Request): Queries;
83
83
  }
84
84
  //# sourceMappingURL=Queries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Queries.d.ts","sourceRoot":"","sources":["../../src/queries/Queries.ts"],"names":[],"mappings":"AAAA,OAAO,QAAwC,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAa,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,KAAK,GACd;IACA,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACb,GACD;IACA,SAAS,EAAE,MAAM,CAAC;CACjB,CAAC;AAEL,0DAA0D;AAC1D,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,KAAK,CAI9C;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GAAG;IAC1B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IAC3B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,KAAK,CAAgC;IAE7C,OAAO,CAAC,OAAO,CAAiB;IAEhC,OAAO;IAUP,MAAM,CAAC,GAAG,CACT,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,GAAE,cAAmB;IAS1B;;;;;;;OAOG;IACG,KAAK,CACV,KAAK,EAAE,KAAK,EACZ,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAClC,IAAI,GAAE,YAAiB,GACrB,OAAO,CAAC,OAAO,CAAC;IAwBnB;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,OAAO;CAGvB"}
1
+ {"version":3,"file":"Queries.d.ts","sourceRoot":"","sources":["../../src/queries/Queries.ts"],"names":[],"mappings":"AAAA,OAAO,QAAwC,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAa,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,KAAK,GACd;IACA,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACb,GACD;IACA,SAAS,EAAE,MAAM,CAAC;CACjB,CAAC;AAEL,0DAA0D;AAC1D,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,KAAK,CAI9C;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GAAG;IAC1B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IAC3B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,KAAK,CAAgC;IAE7C,OAAO,CAAC,OAAO,CAAiB;IAEhC,OAAO;IAUP,MAAM,CAAC,GAAG,CACT,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,GAAE,cAAmB;IAS1B;;;;;;;OAOG;IACG,KAAK,CACV,KAAK,EAAE,KAAK,EACZ,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAClC,IAAI,GAAE,YAAiB,GACrB,OAAO,CAAC,OAAO,CAAC;IAwBnB;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,OAAO;CAGxB"}
@@ -56,7 +56,7 @@ export default class Queries {
56
56
  * @hidden
57
57
  * call this before starting the loadGlobalData phase
58
58
  */
59
- _toRequest(req) {
59
+ z_toRequest(req) {
60
60
  return new Queries(this.inner, this.route, req);
61
61
  }
62
62
  }
@@ -1,6 +1,25 @@
1
1
  import Queries, { isQuery, QueriesOptions, Query, QueryOptions } from '../queries/Queries.js';
2
2
  import { gql } from './gql.js';
3
3
  import QueryError from './QueryError.js';
4
- import { isQueryVar, QueryVar, ValidIf, vars } from './vars.js';
5
- export { Queries, type QueriesOptions, type QueryOptions, type Query, isQuery, QueryError, gql, vars, type ValidIf, QueryVar, isQueryVar, };
4
+ import { QueryVar, ValidIf, vars } from './vars.js';
5
+ export { Queries, type QueriesOptions, type QueryOptions, type Query, isQuery, QueryError, gql, vars, type ValidIf, QueryVar, };
6
+ type InferQueryVarType<T> = T extends QueryVar<infer U> ? U : never;
7
+ type InferVariableTypes<T> = {
8
+ [K in keyof T]: InferQueryVarType<T[K]>;
9
+ };
10
+ /**
11
+ * ## Example
12
+ * ```ts
13
+ * import { vars, Caching } from 'crelte/queries';
14
+ *
15
+ * export const variables = {
16
+ * siteId: vars.siteId(),
17
+ * category: vars.id()
18
+ * };
19
+ *
20
+ * export const caching: Caching<typeof variables> =
21
+ * (queryResponse, variables) => !!queryResponse.entries.length;
22
+ * ```
23
+ */
24
+ export type Caching<T extends Record<string, QueryVar<any>> = Record<string, QueryVar<any>>> = boolean | ((response: any, vars: InferVariableTypes<T>) => boolean);
6
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/queries/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EACf,OAAO,EACP,cAAc,EACd,KAAK,EACL,YAAY,EACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEhE,OAAO,EACN,OAAO,EACP,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,OAAO,EACP,UAAU,EACV,GAAG,EACH,IAAI,EACJ,KAAK,OAAO,EACZ,QAAQ,EACR,UAAU,GACV,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/queries/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EACf,OAAO,EACP,cAAc,EACd,KAAK,EACL,YAAY,EACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EACN,OAAO,EACP,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,OAAO,EACP,UAAU,EACV,GAAG,EACH,IAAI,EACJ,KAAK,OAAO,EACZ,QAAQ,GACR,CAAC;AAEF,KAAK,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEpE,KAAK,kBAAkB,CAAC,CAAC,IAAI;KAC3B,CAAC,IAAI,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACvC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,OAAO,CAClB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,IACpE,OAAO,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import Queries, { isQuery, } from '../queries/Queries.js';
2
2
  import { gql } from './gql.js';
3
3
  import QueryError from './QueryError.js';
4
- import { isQueryVar, QueryVar, vars } from './vars.js';
5
- export { Queries, isQuery, QueryError, gql, vars, QueryVar, isQueryVar, };
4
+ import { QueryVar, vars } from './vars.js';
5
+ export { Queries, isQuery, QueryError, gql, vars, QueryVar, };
@@ -3,6 +3,8 @@ export declare const vars: {
3
3
  any: () => QueryVar<any>;
4
4
  number: () => QueryVar<number>;
5
5
  string: () => QueryVar<string>;
6
+ id: () => QueryVar<number>;
7
+ ids: () => QueryVar<number[]>;
6
8
  siteId: () => QueryVar<number>;
7
9
  };
8
10
  export type ValidIf<T> = (v: T, cs: ServerRouter) => boolean;
@@ -14,6 +16,34 @@ export declare class QueryVar<T = any> {
14
16
  constructor();
15
17
  string(): QueryVar<string>;
16
18
  number(): QueryVar<number>;
19
+ /**
20
+ * Id is almost the same as number but will also parse
21
+ * strings, but only allow non negative integers
22
+ *
23
+ * ## Warning
24
+ * Ids are not automatically safe to be cached
25
+ * you need to validate the response to make sure filters
26
+ * with this id returned something
27
+ */
28
+ id(): QueryVar<number>;
29
+ /**
30
+ * Ids is an array of ids
31
+ * it will also convert a single id to an array with one element
32
+ * the returned array will **never be empty**, but might be null if
33
+ * allowed. Id's are always non negative integers
34
+ *
35
+ * ## Warning
36
+ * Ids are not automatically safe to be cached, it is also not
37
+ * enough to just check if the filter returned some results.
38
+ * Since for example a `relatedTo` filter works like an `or` and
39
+ * not an `and` meaning if you request ids `[1,2,3]` and
40
+ * only 1 and 3 have related entries you will get results
41
+ * even though id 2 did not return anything.
42
+ *
43
+ * To mitigate this you could do a second query with the filtered
44
+ * ids in the field, and check if the return matches the length.
45
+ */
46
+ ids(): QueryVar<number[]>;
17
47
  nullable(): QueryVar<T | null>;
18
48
  /**
19
49
  * Set a validation function for this variable
@@ -27,7 +57,7 @@ export declare class QueryVar<T = any> {
27
57
  * @hidden
28
58
  * Internal method to set the name of the variable
29
59
  */
30
- _setName(name: string): QueryVar<T>;
60
+ z_setName(name: string): QueryVar<T>;
31
61
  __QueryVar__(): void;
32
62
  }
33
63
  export declare function isQueryVar(v: any): v is QueryVar;
@@ -1 +1 @@
1
- {"version":3,"file":"vars.d.ts","sourceRoot":"","sources":["../../src/queries/vars.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAErD,eAAO,MAAM,IAAI;eACP,QAAQ,CAAC,GAAG,CAAC;kBACV,QAAQ,CAAC,MAAM,CAAC;kBAChB,QAAQ,CAAC,MAAM,CAAC;kBAChB,QAAQ,CAAC,MAAM,CAAC;CAM5B,CAAC;AAIF,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,KAAK,OAAO,CAAC;AAE7D,qBAAa,QAAQ,CAAC,CAAC,GAAG,GAAG;IAC5B,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,IAAI,CAA8B;IAC1C,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,SAAS,CAAa;;IAS9B,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC;IAK1B,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC;IAK1B,QAAQ,IAAI,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC;IAK9B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAKpC,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,YAAY,GAAG,CAAC,GAAG,IAAI;IAmC9C;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IAKnC,YAAY;CACZ;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,QAAQ,CAEhD"}
1
+ {"version":3,"file":"vars.d.ts","sourceRoot":"","sources":["../../src/queries/vars.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAErD,eAAO,MAAM,IAAI;eACP,QAAQ,CAAC,GAAG,CAAC;kBACV,QAAQ,CAAC,MAAM,CAAC;kBAChB,QAAQ,CAAC,MAAM,CAAC;cACpB,QAAQ,CAAC,MAAM,CAAC;eACf,QAAQ,CAAC,MAAM,EAAE,CAAC;kBACf,QAAQ,CAAC,MAAM,CAAC;CAM5B,CAAC;AAIF,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,KAAK,OAAO,CAAC;AAE7D,qBAAa,QAAQ,CAAC,CAAC,GAAG,GAAG;IAC5B,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,IAAI,CAA6C;IACzD,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,SAAS,CAAa;;IAS9B,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC;IAK1B,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC;IAK1B;;;;;;;;OAQG;IACH,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAC;IAKtB;;;;;;;;;;;;;;;;OAgBG;IACH,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;IAKzB,QAAQ,IAAI,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC;IAK9B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAKpC,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,YAAY,GAAG,CAAC,GAAG,IAAI;IAkE9C;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IAKpC,YAAY;CACZ;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,QAAQ,CAEhD"}
@@ -2,6 +2,8 @@ export const vars = {
2
2
  any: () => new QueryVar(),
3
3
  number: () => new QueryVar().number(),
4
4
  string: () => new QueryVar().string(),
5
+ id: () => new QueryVar().id(),
6
+ ids: () => new QueryVar().ids(),
5
7
  siteId: () => new QueryVar()
6
8
  .number()
7
9
  .validIf((num, router) => !!router.sites.find(site => site.id === num)),
@@ -25,6 +27,40 @@ export class QueryVar {
25
27
  this.type = 'number';
26
28
  return this;
27
29
  }
30
+ /**
31
+ * Id is almost the same as number but will also parse
32
+ * strings, but only allow non negative integers
33
+ *
34
+ * ## Warning
35
+ * Ids are not automatically safe to be cached
36
+ * you need to validate the response to make sure filters
37
+ * with this id returned something
38
+ */
39
+ id() {
40
+ this.type = 'id';
41
+ return this;
42
+ }
43
+ /**
44
+ * Ids is an array of ids
45
+ * it will also convert a single id to an array with one element
46
+ * the returned array will **never be empty**, but might be null if
47
+ * allowed. Id's are always non negative integers
48
+ *
49
+ * ## Warning
50
+ * Ids are not automatically safe to be cached, it is also not
51
+ * enough to just check if the filter returned some results.
52
+ * Since for example a `relatedTo` filter works like an `or` and
53
+ * not an `and` meaning if you request ids `[1,2,3]` and
54
+ * only 1 and 3 have related entries you will get results
55
+ * even though id 2 did not return anything.
56
+ *
57
+ * To mitigate this you could do a second query with the filtered
58
+ * ids in the field, and check if the return matches the length.
59
+ */
60
+ ids() {
61
+ this.type = 'ids';
62
+ return this;
63
+ }
28
64
  nullable() {
29
65
  this.flagNullable = true;
30
66
  return this;
@@ -59,6 +95,27 @@ export class QueryVar {
59
95
  if (typeof v !== 'number')
60
96
  throw new Error(`variable ${this.name} is not a number`);
61
97
  break;
98
+ case 'id':
99
+ if (typeof v === 'string')
100
+ v = parseInt(v);
101
+ if (!isValidId(v))
102
+ throw new Error(`variable ${this.name} is not a valid id`);
103
+ break;
104
+ case 'ids':
105
+ if (typeof v === 'string' || typeof v === 'number')
106
+ v = [v];
107
+ if (!Array.isArray(v))
108
+ throw new Error(`variable ${this.name} is not an id or a list of ids`);
109
+ if (v.length <= 0) {
110
+ if (this.flagNullable)
111
+ return null;
112
+ throw new Error(`variable ${this.name} is not allowed to be empty`);
113
+ }
114
+ // convert strings to numbers
115
+ v = v.map(v => (typeof v === 'string' ? parseInt(v) : v));
116
+ if (!v.every(isValidId))
117
+ throw new Error(`variable ${this.name} is not a list of valid ids`);
118
+ break;
62
119
  default:
63
120
  throw new Error('uknown type ' + this.type);
64
121
  }
@@ -70,7 +127,7 @@ export class QueryVar {
70
127
  * @hidden
71
128
  * Internal method to set the name of the variable
72
129
  */
73
- _setName(name) {
130
+ z_setName(name) {
74
131
  this.name = name;
75
132
  return this;
76
133
  }
@@ -79,3 +136,7 @@ export class QueryVar {
79
136
  export function isQueryVar(v) {
80
137
  return v && typeof v === 'object' && typeof v.__QueryVar__ === 'function';
81
138
  }
139
+ // does not do string to number conversion
140
+ function isValidId(id) {
141
+ return typeof id === 'number' && Number.isInteger(id) && id >= 0;
142
+ }
@@ -44,5 +44,5 @@ export default class Site {
44
44
  */
45
45
  get uri(): string;
46
46
  }
47
- export declare function siteFromUrl(url: URL, sites: Site[]): Site | null;
47
+ export declare function siteFromUrl(sites: Site[], url: URL): Site | null;
48
48
  //# sourceMappingURL=Site.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Site.d.ts","sourceRoot":"","sources":["../../src/routing/Site.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,IAAI;IACxB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,GAAG,EAAE,GAAG,CAAC;IAET;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;gBAEL,GAAG,EAAE,eAAe;IAShC;;;;OAIG;IACH,IAAI,GAAG,IAAI,MAAM,CAEhB;CACD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAsBhE"}
1
+ {"version":3,"file":"Site.d.ts","sourceRoot":"","sources":["../../src/routing/Site.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,IAAI;IACxB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,GAAG,EAAE,GAAG,CAAC;IAET;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;gBAEL,GAAG,EAAE,eAAe;IAShC;;;;OAIG;IACH,IAAI,GAAG,IAAI,MAAM,CAEhB;CACD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,CAsBhE"}
@@ -46,7 +46,7 @@ export default class Site {
46
46
  return trimSlashEnd(this.url.pathname);
47
47
  }
48
48
  }
49
- export function siteFromUrl(url, sites) {
49
+ export function siteFromUrl(sites, url) {
50
50
  let site = null;
51
51
  // get the site which matches the url the most
52
52
  for (const s of sites) {
@@ -3,5 +3,6 @@ import Route, { type RouteOptions } from './route/Route.js';
3
3
  import Request, { type RequestOptions, type DelayRender } from './route/Request.js';
4
4
  import Site from './Site.js';
5
5
  import BaseRoute from './route/BaseRoute.js';
6
- export { Router, UpdateRequest, BaseRoute, Route, RouteOptions, Site, Request, DelayRender, RequestOptions, };
6
+ import { shouldInterceptClick } from './utils.js';
7
+ export { Router, UpdateRequest, BaseRoute, Route, RouteOptions, Site, Request, DelayRender, RequestOptions, shouldInterceptClick, };
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routing/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,OAAO,EAAE,EACf,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,OAAO,EACN,MAAM,EACN,aAAa,EACb,SAAS,EACT,KAAK,EACL,YAAY,EACZ,IAAI,EACJ,OAAO,EACP,WAAW,EACX,cAAc,GACd,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routing/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,OAAO,EAAE,EACf,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,EACN,MAAM,EACN,aAAa,EACb,SAAS,EACT,KAAK,EACL,YAAY,EACZ,IAAI,EACJ,OAAO,EACP,WAAW,EACX,cAAc,EACd,oBAAoB,GACpB,CAAC"}
@@ -3,4 +3,5 @@ import Route from './route/Route.js';
3
3
  import Request from './route/Request.js';
4
4
  import Site from './Site.js';
5
5
  import BaseRoute from './route/BaseRoute.js';
6
- export { Router, BaseRoute, Route, Site, Request, };
6
+ import { shouldInterceptClick } from './utils.js';
7
+ export { Router, BaseRoute, Route, Site, Request, shouldInterceptClick, };
@@ -1,6 +1,6 @@
1
1
  import Site from '../Site.js';
2
2
  export type BaseRouteOptions = {
3
- scrollY?: number;
3
+ scrollY?: number | null;
4
4
  index?: number;
5
5
  origin?: RouteOrigin;
6
6
  state?: Record<string, any>;
@@ -65,7 +65,7 @@ export default class BaseRoute {
65
65
  * @hidden
66
66
  * State data that can be used to store additional information
67
67
  */
68
- _state: Record<string, any>;
68
+ z_state: Record<string, any>;
69
69
  /**
70
70
  * @hidden
71
71
  * Any data that should be passed to onRoute and onRequest handlers
@@ -77,7 +77,7 @@ export default class BaseRoute {
77
77
  * Consider using state instead. This will not be cloned in the clone
78
78
  * call so will always be the same object
79
79
  */
80
- _context: Record<string, any>;
80
+ z_context: Record<string, any>;
81
81
  /**
82
82
  * Creates a new Route
83
83
  */
@@ -248,8 +248,8 @@ export default class BaseRoute {
248
248
  */
249
249
  clone(): BaseRoute;
250
250
  /** @hidden */
251
- _fillFromState(state: any): void;
251
+ z_fillFromState(state: any): void;
252
252
  /** @hidden */
253
- _toState(): any;
253
+ z_toState(): any;
254
254
  }
255
255
  //# sourceMappingURL=BaseRoute.d.ts.map