crelte 0.4.8 → 0.5.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Crelte.d.ts +7 -6
- package/dist/Crelte.d.ts.map +1 -1
- package/dist/Crelte.js +5 -13
- package/dist/CrelteRequest.d.ts +9 -0
- package/dist/CrelteRequest.d.ts.map +1 -1
- package/dist/CrelteRequest.js +16 -2
- package/dist/blocks/Blocks.svelte +2 -2
- package/dist/blocks/Blocks.svelte.d.ts +3 -19
- package/dist/blocks/Blocks.svelte.d.ts.map +1 -1
- package/dist/cookies/ClientCookies.d.ts +0 -1
- package/dist/cookies/ClientCookies.d.ts.map +1 -1
- package/dist/cookies/ClientCookies.js +0 -1
- package/dist/cookies/ServerCookies.d.ts +1 -2
- package/dist/cookies/ServerCookies.d.ts.map +1 -1
- package/dist/cookies/ServerCookies.js +2 -6
- package/dist/cookies/index.d.ts +0 -2
- package/dist/cookies/index.d.ts.map +1 -1
- package/dist/entry/EntryRouter.d.ts +2 -2
- package/dist/entry/EntryRouter.d.ts.map +1 -1
- package/dist/entry/index.d.ts +11 -0
- package/dist/entry/index.d.ts.map +1 -1
- package/dist/entry/index.js +38 -0
- package/dist/graphql/GraphQl.d.ts +4 -2
- package/dist/graphql/GraphQl.d.ts.map +1 -1
- package/dist/graphql/GraphQl.js +6 -3
- package/dist/index.d.ts +10 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -6
- package/dist/init/InternalApp.d.ts +30 -0
- package/dist/init/InternalApp.d.ts.map +1 -0
- package/dist/init/InternalApp.js +71 -0
- package/dist/init/client.d.ts +0 -5
- package/dist/init/client.d.ts.map +1 -1
- package/dist/init/client.js +95 -75
- package/dist/init/server.d.ts +0 -5
- package/dist/init/server.d.ts.map +1 -1
- package/dist/init/server.js +49 -20
- package/dist/init/shared.d.ts +6 -20
- package/dist/init/shared.d.ts.map +1 -1
- package/dist/init/shared.js +71 -156
- package/dist/init/svelteComponents.d.ts +3 -0
- package/dist/init/svelteComponents.d.ts.map +1 -0
- package/dist/init/svelteComponents.js +7 -0
- package/dist/init/virtualSvelteComponents.d.ts +5 -0
- package/dist/loadData/Globals.d.ts +40 -33
- package/dist/loadData/Globals.d.ts.map +1 -1
- package/dist/loadData/Globals.js +104 -89
- package/dist/loadData/index.d.ts +3 -2
- package/dist/loadData/index.d.ts.map +1 -1
- package/dist/loadData/index.js +2 -0
- package/dist/plugins/Events.d.ts +13 -14
- package/dist/plugins/Events.d.ts.map +1 -1
- package/dist/plugins/Events.js +10 -3
- package/dist/routing/BaseRoute.d.ts +255 -0
- package/dist/routing/BaseRoute.d.ts.map +1 -0
- package/dist/routing/BaseRoute.js +349 -0
- package/dist/routing/BaseRouter.d.ts +211 -0
- package/dist/routing/BaseRouter.d.ts.map +1 -0
- package/dist/routing/BaseRouter.js +444 -0
- package/dist/routing/ClientRouter.d.ts +32 -0
- package/dist/routing/ClientRouter.d.ts.map +1 -0
- package/dist/routing/ClientRouter.js +251 -0
- package/dist/routing/LoadRunner.d.ts +39 -0
- package/dist/routing/LoadRunner.d.ts.map +1 -0
- package/dist/routing/{PageLoader.js → LoadRunner.js} +32 -20
- package/dist/routing/Request.d.ts +35 -3
- package/dist/routing/Request.d.ts.map +1 -1
- package/dist/routing/Request.js +64 -5
- package/dist/routing/Route.d.ts +25 -223
- package/dist/routing/Route.d.ts.map +1 -1
- package/dist/routing/Route.js +27 -315
- package/dist/routing/Router.d.ts +51 -75
- package/dist/routing/Router.d.ts.map +1 -1
- package/dist/routing/Router.js +87 -253
- package/dist/routing/ServerRouter.d.ts +23 -0
- package/dist/routing/ServerRouter.d.ts.map +1 -0
- package/dist/routing/ServerRouter.js +57 -0
- package/dist/routing/index.d.ts +2 -1
- package/dist/routing/index.d.ts.map +1 -1
- package/dist/routing/index.js +2 -1
- package/dist/routing/utils.d.ts +5 -0
- package/dist/routing/utils.d.ts.map +1 -1
- package/dist/routing/utils.js +39 -0
- package/dist/ssr/index.d.ts +2 -2
- package/dist/ssr/index.d.ts.map +1 -1
- package/dist/ssr/index.js +2 -2
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +3 -0
- package/package.json +7 -6
- package/src/Crelte.ts +12 -18
- package/src/CrelteRequest.ts +21 -2
- package/src/cookies/ClientCookies.ts +0 -2
- package/src/cookies/ServerCookies.ts +2 -7
- package/src/cookies/index.ts +0 -3
- package/src/entry/EntryRouter.ts +2 -2
- package/src/entry/index.ts +49 -0
- package/src/graphql/GraphQl.ts +8 -4
- package/src/index.ts +17 -10
- package/src/init/InternalApp.ts +134 -0
- package/src/init/client.ts +110 -93
- package/src/init/server.ts +67 -35
- package/src/init/shared.ts +87 -239
- package/src/init/svelteComponents.ts +12 -0
- package/src/init/virtualSvelteComponents.d.ts +5 -0
- package/src/loadData/Globals.ts +120 -102
- package/src/loadData/index.ts +3 -2
- package/src/plugins/Events.ts +42 -43
- package/src/routing/BaseRoute.ts +422 -0
- package/src/routing/BaseRouter.ts +529 -0
- package/src/routing/ClientRouter.ts +321 -0
- package/src/routing/{PageLoader.ts → LoadRunner.ts} +43 -30
- package/src/routing/Request.ts +97 -12
- package/src/routing/Route.ts +58 -376
- package/src/routing/Router.ts +102 -361
- package/src/routing/ServerRouter.ts +78 -0
- package/src/routing/index.ts +2 -0
- package/src/routing/utils.ts +53 -0
- package/src/ssr/index.ts +2 -2
- package/src/utils.ts +4 -0
- package/dist/routing/InnerRouter.d.ts +0 -113
- package/dist/routing/InnerRouter.d.ts.map +0 -1
- package/dist/routing/InnerRouter.js +0 -417
- package/dist/routing/PageLoader.d.ts +0 -36
- package/dist/routing/PageLoader.d.ts.map +0 -1
- package/src/routing/InnerRouter.ts +0 -498
package/dist/Crelte.d.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { Cookies } from './cookies/index.js';
|
|
2
2
|
import GraphQl, { GraphQlQuery } from './graphql/GraphQl.js';
|
|
3
|
-
import Globals
|
|
3
|
+
import Globals from './loadData/Globals.js';
|
|
4
4
|
import Events from './plugins/Events.js';
|
|
5
5
|
import Plugins, { Plugin } from './plugins/Plugins.js';
|
|
6
6
|
import type Route from './routing/Route.js';
|
|
7
7
|
import type Request from './routing/Request.js';
|
|
8
8
|
import Router from './routing/Router.js';
|
|
9
|
-
import { SiteFromGraphQl } from './routing/Site.js';
|
|
10
9
|
import SsrCache from './ssr/SsrCache.js';
|
|
11
10
|
import { type CrelteRequest } from './index.js';
|
|
11
|
+
import BaseRouter from './routing/BaseRouter.js';
|
|
12
|
+
import { Readable } from 'crelte-std/stores';
|
|
12
13
|
export type Config = {
|
|
13
14
|
/**
|
|
14
15
|
* Preload pages on mouse over
|
|
@@ -49,11 +50,11 @@ export declare class CrelteBuilder {
|
|
|
49
50
|
graphQl?: GraphQl;
|
|
50
51
|
router?: Router;
|
|
51
52
|
globals: Globals;
|
|
52
|
-
cookies
|
|
53
|
+
cookies?: Cookies;
|
|
53
54
|
constructor(config: Config);
|
|
54
55
|
setupGraphQl(endpoint: string): void;
|
|
55
|
-
setupRouter(
|
|
56
|
-
setupCookies(cookies:
|
|
56
|
+
setupRouter(router: BaseRouter): void;
|
|
57
|
+
setupCookies(cookies: Cookies): void;
|
|
57
58
|
build(): Crelte;
|
|
58
59
|
}
|
|
59
60
|
/**
|
|
@@ -146,7 +147,7 @@ export default class Crelte {
|
|
|
146
147
|
* always return null. In that context you should use
|
|
147
148
|
* `CrelteRequest.getGlobalAsync`
|
|
148
149
|
*/
|
|
149
|
-
getGlobalStore<T = any>(name: string):
|
|
150
|
+
getGlobalStore<T = any>(name: string): Readable<T> | null;
|
|
150
151
|
/**
|
|
151
152
|
* returns a new CrelteRequest instance either with the current
|
|
152
153
|
* route or a provided one
|
package/dist/Crelte.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Crelte.d.ts","sourceRoot":"","sources":["../src/Crelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Crelte.d.ts","sourceRoot":"","sources":["../src/Crelte.ts"],"names":[],"mappings":"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"}
|
package/dist/Crelte.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import ClientCookies from './cookies/ClientCookies.js';
|
|
2
|
-
import ServerCookies from './cookies/ServerCookies.js';
|
|
3
1
|
import GraphQl from './graphql/GraphQl.js';
|
|
4
2
|
import Globals from './loadData/Globals.js';
|
|
5
3
|
import Events from './plugins/Events.js';
|
|
@@ -30,10 +28,6 @@ export class CrelteBuilder {
|
|
|
30
28
|
this.plugins = new Plugins();
|
|
31
29
|
this.events = new Events();
|
|
32
30
|
this.globals = new Globals();
|
|
33
|
-
// @ts-ignore
|
|
34
|
-
this.cookies = import.meta.env.SSR
|
|
35
|
-
? new ServerCookies()
|
|
36
|
-
: new ClientCookies();
|
|
37
31
|
}
|
|
38
32
|
setupGraphQl(endpoint) {
|
|
39
33
|
this.graphQl = new GraphQl(endpoint, this.ssrCache, {
|
|
@@ -42,14 +36,11 @@ export class CrelteBuilder {
|
|
|
42
36
|
debugTiming: this.config.debugTiming,
|
|
43
37
|
});
|
|
44
38
|
}
|
|
45
|
-
setupRouter(
|
|
46
|
-
this.router = new Router(
|
|
47
|
-
preloadOnMouseOver: this.config.preloadOnMouseOver,
|
|
48
|
-
debugTiming: this.config.debugTiming,
|
|
49
|
-
});
|
|
39
|
+
setupRouter(router) {
|
|
40
|
+
this.router = new Router(router);
|
|
50
41
|
}
|
|
51
42
|
setupCookies(cookies) {
|
|
52
|
-
this.cookies
|
|
43
|
+
this.cookies = cookies;
|
|
53
44
|
}
|
|
54
45
|
build() {
|
|
55
46
|
return new Crelte(this);
|
|
@@ -72,7 +63,7 @@ export default class Crelte {
|
|
|
72
63
|
_globals;
|
|
73
64
|
_cookies;
|
|
74
65
|
constructor(builder) {
|
|
75
|
-
if (!builder.graphQl || !builder.router)
|
|
66
|
+
if (!builder.graphQl || !builder.router || !builder.cookies)
|
|
76
67
|
throw new Error('builder not ready');
|
|
77
68
|
this._ssrCache = builder.ssrCache;
|
|
78
69
|
this._graphQl = builder.graphQl;
|
|
@@ -153,6 +144,7 @@ export default class Crelte {
|
|
|
153
144
|
* to use in loadData context
|
|
154
145
|
*/
|
|
155
146
|
toRequest(req) {
|
|
147
|
+
// todo can we remove this function or is it still relevant?
|
|
156
148
|
// we do this to avoid cyclic dependencies
|
|
157
149
|
return circles.requestFromCrelte(this, req);
|
|
158
150
|
}
|
package/dist/CrelteRequest.d.ts
CHANGED
|
@@ -3,9 +3,14 @@ import { GraphQlQuery } from './graphql/GraphQl.js';
|
|
|
3
3
|
import Site from './routing/Site.js';
|
|
4
4
|
import Request from './routing/Request.js';
|
|
5
5
|
import Route from './routing/Route.js';
|
|
6
|
+
import Globals from './loadData/Globals.js';
|
|
7
|
+
import { Router } from './routing/index.js';
|
|
6
8
|
export default class CrelteRequest extends Crelte {
|
|
7
9
|
/**
|
|
8
10
|
* The current request
|
|
11
|
+
*
|
|
12
|
+
* ## Warning
|
|
13
|
+
* Do not override this
|
|
9
14
|
*/
|
|
10
15
|
req: Request;
|
|
11
16
|
constructor(inner: Crelte, req: Request);
|
|
@@ -56,6 +61,10 @@ export default class CrelteRequest extends Crelte {
|
|
|
56
61
|
* graphql query
|
|
57
62
|
*/
|
|
58
63
|
query(query: GraphQlQuery, variables?: Record<string, unknown>, opts?: QueryOptions): Promise<unknown>;
|
|
64
|
+
/** @hidden */
|
|
65
|
+
_setRouter(router: Router): void;
|
|
66
|
+
/** @hidden */
|
|
67
|
+
_setGlobals(globals: Globals): void;
|
|
59
68
|
}
|
|
60
69
|
export declare function requestFromCrelte(crelte: Crelte, req?: Route | Request): CrelteRequest;
|
|
61
70
|
//# sourceMappingURL=CrelteRequest.d.ts.map
|
|
@@ -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;
|
|
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;AAEvC,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,MAAM;IAChD;;;;;OAKG;IACH,GAAG,EAAE,OAAO,CAAC;gBAED,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO;IAMvC;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAChB,KAAK,EAAE,MAAM,GAAG,aAAa,EAC7B,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,GACnB,aAAa;IAehB;;;OAGG;IACH,IAAI,KAAK,IAAI,OAAO,CAGnB;IAED;;;;;;;OAOG;IACH,IAAI,IAAI,IAAI,IAAI,CAEf;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAI1C;;;;;;OAMG;IACG,cAAc,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAQ9D;;;;;;;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,UAAU,CAAC,MAAM,EAAE,MAAM;IAIzB,cAAc;IACd,WAAW,CAAC,OAAO,EAAE,OAAO;CAG5B;AAED,wBAAgB,iBAAiB,CAChC,MAAM,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,GACnB,aAAa,CAEf"}
|
package/dist/CrelteRequest.js
CHANGED
|
@@ -4,6 +4,9 @@ import { circles } from './utils.js';
|
|
|
4
4
|
export default class CrelteRequest extends Crelte {
|
|
5
5
|
/**
|
|
6
6
|
* The current request
|
|
7
|
+
*
|
|
8
|
+
* ## Warning
|
|
9
|
+
* Do not override this
|
|
7
10
|
*/
|
|
8
11
|
req;
|
|
9
12
|
constructor(inner, req) {
|
|
@@ -55,7 +58,7 @@ export default class CrelteRequest extends Crelte {
|
|
|
55
58
|
* `.getGlobalAsync`
|
|
56
59
|
*/
|
|
57
60
|
getGlobal(name) {
|
|
58
|
-
return this.globals.get(name
|
|
61
|
+
return this.globals.get(name);
|
|
59
62
|
}
|
|
60
63
|
/**
|
|
61
64
|
* Get a globalSet and wait until it is loaded
|
|
@@ -65,8 +68,11 @@ export default class CrelteRequest extends Crelte {
|
|
|
65
68
|
* you can use `.getGlobal` which does return a Promise
|
|
66
69
|
*/
|
|
67
70
|
async getGlobalAsync(name) {
|
|
68
|
-
return this.globals.getAsync(name
|
|
71
|
+
return this.globals.getAsync(name);
|
|
69
72
|
}
|
|
73
|
+
// todo we should override getPlugin making it possible for the plugin
|
|
74
|
+
// to attach a CrelteRequest to itself
|
|
75
|
+
// for that we should call cloneWithRequest(cr: CrelteRequest)
|
|
70
76
|
/**
|
|
71
77
|
* Run a GraphQl Query
|
|
72
78
|
*
|
|
@@ -82,6 +88,14 @@ export default class CrelteRequest extends Crelte {
|
|
|
82
88
|
...opts,
|
|
83
89
|
});
|
|
84
90
|
}
|
|
91
|
+
/** @hidden */
|
|
92
|
+
_setRouter(router) {
|
|
93
|
+
this._router = router;
|
|
94
|
+
}
|
|
95
|
+
/** @hidden */
|
|
96
|
+
_setGlobals(globals) {
|
|
97
|
+
this._globals = globals;
|
|
98
|
+
}
|
|
85
99
|
}
|
|
86
100
|
export function requestFromCrelte(crelte, req) {
|
|
87
101
|
return CrelteRequest.fromCrelte(crelte, req);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<script context="module">import CrelteRequest from "../CrelteRequest.js";
|
|
1
|
+
<script context="module" lang="ts">import CrelteRequest from "../CrelteRequest.js";
|
|
2
2
|
import Blocks, {
|
|
3
3
|
BlockModules,
|
|
4
4
|
newBlocks
|
|
@@ -13,7 +13,7 @@ export async function loadBlocksData(cr, blocks, modules) {
|
|
|
13
13
|
}
|
|
14
14
|
</script>
|
|
15
15
|
|
|
16
|
-
<script>export let blocks;
|
|
16
|
+
<script lang="ts">export let blocks;
|
|
17
17
|
</script>
|
|
18
18
|
|
|
19
19
|
{#each blocks.each() as { mod, props }}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
|
2
1
|
import CrelteRequest from '../CrelteRequest.js';
|
|
3
2
|
import Blocks, { type AsyncModule, type BlockModulesOptions, BlockModules } from './Blocks.js';
|
|
4
3
|
/**
|
|
@@ -35,22 +34,7 @@ export declare function blockModules(modules: Record<string, AsyncModule>, opts?
|
|
|
35
34
|
* };
|
|
36
35
|
*/
|
|
37
36
|
export declare function loadBlocksData(cr: CrelteRequest, blocks: any[], modules: BlockModules): Promise<Blocks>;
|
|
38
|
-
declare const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
blocks: Blocks;
|
|
42
|
-
};
|
|
43
|
-
events: {
|
|
44
|
-
[evt: string]: CustomEvent<any>;
|
|
45
|
-
};
|
|
46
|
-
slots: {};
|
|
47
|
-
exports?: undefined;
|
|
48
|
-
bindings?: undefined;
|
|
49
|
-
};
|
|
50
|
-
export type BlocksProps = typeof __propDef.props;
|
|
51
|
-
export type BlocksEvents = typeof __propDef.events;
|
|
52
|
-
export type BlocksSlots = typeof __propDef.slots;
|
|
53
|
-
export default class Blocks extends SvelteComponent<BlocksProps, BlocksEvents, BlocksSlots> {
|
|
54
|
-
}
|
|
55
|
-
export {};
|
|
37
|
+
declare const Blocks: any;
|
|
38
|
+
type Blocks = InstanceType<typeof Blocks>;
|
|
39
|
+
export default Blocks;
|
|
56
40
|
//# sourceMappingURL=Blocks.svelte.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Blocks.svelte.d.ts","sourceRoot":"","sources":["../../src/blocks/Blocks.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Blocks.svelte.d.ts","sourceRoot":"","sources":["../../src/blocks/Blocks.svelte.ts"],"names":[],"mappings":"AAGC,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAkBhD,OAAO,MAAM,EAAE,EACd,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,YAAY,EAEZ,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACpC,IAAI,GAAE,mBAAwB,GAC5B,YAAY,CAEd;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CACnC,EAAE,EAAE,aAAa,EACjB,MAAM,EAAE,GAAG,EAAE,EACb,OAAO,EAAE,YAAY,GACnB,OAAO,CAAC,MAAM,CAAC,CAMjB;AAuBF,QAAA,MAAM,MAAM,KAAsG,CAAC;AACjG,KAAK,MAAM,GAAG,YAAY,CAAC,OAAO,MAAM,CAAC,CAAC;AAC5C,eAAe,MAAM,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Cookies, SetOptions } from './index.js';
|
|
2
2
|
export default class ClientCookies implements Cookies {
|
|
3
3
|
constructor();
|
|
4
|
-
_init(_cookies: string): void;
|
|
5
4
|
get(name: string): string | null;
|
|
6
5
|
set(name: string, value: string, opts?: SetOptions): void;
|
|
7
6
|
remove(name: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientCookies.d.ts","sourceRoot":"","sources":["../../src/cookies/ClientCookies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAMjD,MAAM,CAAC,OAAO,OAAO,aAAc,YAAW,OAAO;;IAGpD,
|
|
1
|
+
{"version":3,"file":"ClientCookies.d.ts","sourceRoot":"","sources":["../../src/cookies/ClientCookies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAMjD,MAAM,CAAC,OAAO,OAAO,aAAc,YAAW,OAAO;;IAGpD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKhC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI;IAMzD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAG1B"}
|
|
@@ -7,8 +7,7 @@ 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();
|
|
11
|
-
_init(cookies: string): void;
|
|
10
|
+
constructor(cookies: string);
|
|
12
11
|
get(name: string): string | null;
|
|
13
12
|
set(name: string, value: string, opts?: SetOptions): void;
|
|
14
13
|
remove(name: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerCookies.d.ts","sourceRoot":"","sources":["../../src/cookies/ServerCookies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACjD,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
|
|
1
|
+
{"version":3,"file":"ServerCookies.d.ts","sourceRoot":"","sources":["../../src/cookies/ServerCookies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACjD,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,GAAG,IAAI;IAI1B,qBAAqB,IAAI,MAAM,EAAE;CAKjC"}
|
|
@@ -6,13 +6,9 @@ import { parseCookies, setCookieToString } from './utils.js';
|
|
|
6
6
|
export default class ServerCookies {
|
|
7
7
|
requestCookies;
|
|
8
8
|
setCookies;
|
|
9
|
-
constructor() {
|
|
10
|
-
this.requestCookies = new Map();
|
|
11
|
-
this.setCookies = new Map();
|
|
12
|
-
}
|
|
13
|
-
_init(cookies) {
|
|
14
|
-
// parse the cookies
|
|
9
|
+
constructor(cookies) {
|
|
15
10
|
this.requestCookies = parseCookies(cookies);
|
|
11
|
+
this.setCookies = new Map();
|
|
16
12
|
}
|
|
17
13
|
/// Rethrns the value of the cookie with the given name, or null if it doesn't exist.
|
|
18
14
|
get(name) {
|
package/dist/cookies/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cookies/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,OAAO;IACvB;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAEjC;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAE1D;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cookies/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,OAAO;IACvB;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAEjC;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAE1D;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Pattern } from 'trouter';
|
|
2
|
-
import { Crelte, CrelteRequest,
|
|
3
|
-
import { CrelteEntryRequest } from './index.js';
|
|
2
|
+
import { Crelte, CrelteRequest, QueryOptions } from '../index.js';
|
|
3
|
+
import { CrelteEntryRequest, Entry } from './index.js';
|
|
4
4
|
import { GraphQlQuery } from '../graphql/GraphQl.js';
|
|
5
5
|
export type EntryRouteHandler = (cr: CrelteEntryRequest) => Promise<Entry | null | undefined> | Entry | null | undefined | void;
|
|
6
6
|
export type EntryRoutes = (router: EntryRouter) => Promise<void> | void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryRouter.d.ts","sourceRoot":"","sources":["../../src/entry/EntryRouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"EntryRouter.d.ts","sourceRoot":"","sources":["../../src/entry/EntryRouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAgB,MAAM,YAAY,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,MAAM,iBAAiB,GAAG,CAC/B,EAAE,EAAE,kBAAkB,KAClB,OAAO,CAAC,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;AAEzE,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAExE,MAAM,CAAC,OAAO,OAAO,WAAW;IAC/B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAA6B;gBAE9B,MAAM,EAAE,MAAM;IAK1B,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAK7D;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IACpC,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM;IACrC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKnC;;;;;;;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;IAKnB,cAAc;IACR,OAAO,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;CAiBvD"}
|
package/dist/entry/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { GraphQlQuery } from '../graphql/index.js';
|
|
1
2
|
import { Crelte, CrelteRequest } from '../index.js';
|
|
2
3
|
import { Request, RequestOptions, Site } from '../routing/index.js';
|
|
3
4
|
import EntryRouter, { EntryRouteHandler, EntryRoutes } from './EntryRouter.js';
|
|
@@ -34,4 +35,14 @@ export declare class CrelteEntryRequest extends CrelteRequest {
|
|
|
34
35
|
req: EntryRequest;
|
|
35
36
|
constructor(inner: Crelte, req: EntryRequest);
|
|
36
37
|
}
|
|
38
|
+
export declare function queryEntry(cr: CrelteRequest, entryQuery: GraphQlQuery): Promise<Entry>;
|
|
39
|
+
/**
|
|
40
|
+
* Get the entry from the page
|
|
41
|
+
*
|
|
42
|
+
* entries should export sectionHandle and typeHandle
|
|
43
|
+
*
|
|
44
|
+
* products should alias productTypeHandle with typeHandle,
|
|
45
|
+
* sectionHandle will be automatically set to product
|
|
46
|
+
*/
|
|
47
|
+
export declare function extractEntry(page: any): Entry | null;
|
|
37
48
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,WAAW,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,KAAK,WAAW,EAAE,CAAC;AAEjE,MAAM,MAAM,KAAK,GAAG;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG;IAClD,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF,qBAAa,YAAa,SAAQ,OAAO;IACxC,OAAO,CAAC,MAAM,CAAsB;gBAExB,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAE,mBAAwB;IAMzE;;;;;;;;;OASG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAGrC;AAED,qBAAa,kBAAmB,SAAQ,aAAa;IACpD,GAAG,EAAE,YAAY,CAAC;gBAEN,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY;CAI5C"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,WAAW,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,KAAK,WAAW,EAAE,CAAC;AAEjE,MAAM,MAAM,KAAK,GAAG;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG;IAClD,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF,qBAAa,YAAa,SAAQ,OAAO;IACxC,OAAO,CAAC,MAAM,CAAsB;gBAExB,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAE,mBAAwB;IAMzE;;;;;;;;;OASG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAGrC;AAED,qBAAa,kBAAmB,SAAQ,aAAa;IACpD,GAAG,EAAE,YAAY,CAAC;gBAEN,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY;CAI5C;AAED,wBAAsB,UAAU,CAC/B,EAAE,EAAE,aAAa,EACjB,UAAU,EAAE,YAAY,GACtB,OAAO,CAAC,KAAK,CAAC,CAiBhB;AAOD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,IAAI,CASpD"}
|
package/dist/entry/index.js
CHANGED
|
@@ -29,3 +29,41 @@ export class CrelteEntryRequest extends CrelteRequest {
|
|
|
29
29
|
this.req = req;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
+
export async function queryEntry(cr, entryQuery) {
|
|
33
|
+
if (!cr.req.siteMatches())
|
|
34
|
+
throw new Error('to run the entryQuery the request needs to have a matching site');
|
|
35
|
+
let uri = decodeURI(cr.req.uri);
|
|
36
|
+
if (uri.startsWith('/'))
|
|
37
|
+
uri = uri.substring(1);
|
|
38
|
+
if (uri === '' || uri === '/')
|
|
39
|
+
uri = '__home__';
|
|
40
|
+
const vars = {
|
|
41
|
+
uri,
|
|
42
|
+
siteId: cr.site.id,
|
|
43
|
+
};
|
|
44
|
+
const page = await cr.query(entryQuery, vars);
|
|
45
|
+
return extractEntry(page) ?? ERROR_404_ENTRY;
|
|
46
|
+
}
|
|
47
|
+
const ERROR_404_ENTRY = {
|
|
48
|
+
sectionHandle: 'error',
|
|
49
|
+
typeHandle: '404',
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Get the entry from the page
|
|
53
|
+
*
|
|
54
|
+
* entries should export sectionHandle and typeHandle
|
|
55
|
+
*
|
|
56
|
+
* products should alias productTypeHandle with typeHandle,
|
|
57
|
+
* sectionHandle will be automatically set to product
|
|
58
|
+
*/
|
|
59
|
+
export function extractEntry(page) {
|
|
60
|
+
if (page?.entry)
|
|
61
|
+
return { ...page.entry };
|
|
62
|
+
if (page?.product)
|
|
63
|
+
return {
|
|
64
|
+
sectionHandle: 'product',
|
|
65
|
+
...page.product,
|
|
66
|
+
};
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
// todo maybe move everything here to /loadData
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BaseRoute from '../routing/BaseRoute.js';
|
|
2
2
|
import SsrCache from '../ssr/SsrCache.js';
|
|
3
3
|
export type GraphQlErrorResponse = {
|
|
4
4
|
status?: number;
|
|
@@ -35,6 +35,7 @@ export declare class GraphQlError extends Error {
|
|
|
35
35
|
* Options for the GraphQl class
|
|
36
36
|
*/
|
|
37
37
|
export type GraphQlOptions = {
|
|
38
|
+
bearerToken?: string;
|
|
38
39
|
XCraftSiteHeader?: boolean;
|
|
39
40
|
debug?: boolean;
|
|
40
41
|
debugTiming?: boolean;
|
|
@@ -55,7 +56,7 @@ export type GraphQlRequestOptions = {
|
|
|
55
56
|
* !! the route here might not contain a site even if the types
|
|
56
57
|
* says it does. CrelteServer does not know about site
|
|
57
58
|
*/
|
|
58
|
-
route?:
|
|
59
|
+
route?: BaseRoute | URL;
|
|
59
60
|
ignoreStatusCode?: boolean;
|
|
60
61
|
previewToken?: string;
|
|
61
62
|
siteToken?: string;
|
|
@@ -71,6 +72,7 @@ export default class GraphQl {
|
|
|
71
72
|
private endpoint;
|
|
72
73
|
private ssrCache;
|
|
73
74
|
private listeners;
|
|
75
|
+
private bearerToken;
|
|
74
76
|
private XCraftSiteHeader;
|
|
75
77
|
private loggingRequests;
|
|
76
78
|
private loggingTiming;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphQl.d.ts","sourceRoot":"","sources":["../../src/graphql/GraphQl.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"GraphQl.d.ts","sourceRoot":"","sources":["../../src/graphql/GraphQl.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAEhD,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,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;;;;;;;;;GASG;AACH,MAAM,MAAM,qBAAqB,GAAG;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,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,WAAW,CAAgB;IACnC,OAAO,CAAC,gBAAgB,CAAU;IAClC,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,aAAa,CAAU;IAE/B;;OAEG;gBAEF,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,GAAE,cAAmB;IAY1B;;;;;;;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;YAiCL,OAAO;YA0DP,UAAU;CAsFxB;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"}
|
package/dist/graphql/GraphQl.js
CHANGED
|
@@ -33,6 +33,7 @@ export default class GraphQl {
|
|
|
33
33
|
endpoint;
|
|
34
34
|
ssrCache;
|
|
35
35
|
listeners;
|
|
36
|
+
bearerToken;
|
|
36
37
|
XCraftSiteHeader;
|
|
37
38
|
loggingRequests;
|
|
38
39
|
loggingTiming;
|
|
@@ -43,6 +44,7 @@ export default class GraphQl {
|
|
|
43
44
|
this.endpoint = endpoint;
|
|
44
45
|
this.ssrCache = ssrCache;
|
|
45
46
|
this.listeners = new Map();
|
|
47
|
+
this.bearerToken = opts?.bearerToken ?? null;
|
|
46
48
|
this.XCraftSiteHeader = opts?.XCraftSiteHeader ?? false;
|
|
47
49
|
this.loggingRequests = opts?.debug ?? false;
|
|
48
50
|
this.loggingTiming = opts?.debugTiming ?? false;
|
|
@@ -58,7 +60,7 @@ export default class GraphQl {
|
|
|
58
60
|
async query(query, variables = {}, opts = {}) {
|
|
59
61
|
if (opts.route) {
|
|
60
62
|
const search = opts.route.searchParams ?? opts.route.search;
|
|
61
|
-
if (search.has('token')
|
|
63
|
+
if (search.has('token')) {
|
|
62
64
|
opts.previewToken = search.get('token');
|
|
63
65
|
}
|
|
64
66
|
else if (search.has('siteToken')) {
|
|
@@ -137,8 +139,9 @@ export default class GraphQl {
|
|
|
137
139
|
url += '?siteToken=' + opts.siteToken;
|
|
138
140
|
const headers = opts?.headers ?? {};
|
|
139
141
|
headers['Content-Type'] = 'application/json';
|
|
140
|
-
|
|
141
|
-
|
|
142
|
+
const bearerToken = opts?.bearerToken ?? this.bearerToken;
|
|
143
|
+
if (bearerToken)
|
|
144
|
+
headers['Authorization'] = 'Bearer ' + bearerToken;
|
|
142
145
|
if (this.loggingRequests) {
|
|
143
146
|
console.log('query to ', url, variables, opts);
|
|
144
147
|
headers['X-Debug'] = 'enable';
|
package/dist/index.d.ts
CHANGED
|
@@ -5,12 +5,11 @@ import type Site from './routing/Site.js';
|
|
|
5
5
|
import type GraphQl from './graphql/GraphQl.js';
|
|
6
6
|
import Crelte, { type QueryOptions, type Config } from './Crelte.js';
|
|
7
7
|
import CrelteRequest from './CrelteRequest.js';
|
|
8
|
-
import type { Global } from './loadData/Globals.js';
|
|
9
8
|
import type { Cookies } from './cookies/index.js';
|
|
10
9
|
import type { Readable } from 'crelte-std/stores';
|
|
11
10
|
import { LoadData, LoadDataArray, LoadDataFn, LoadDataObj } from './loadData/index.js';
|
|
12
11
|
import { Entry } from './entry/index.js';
|
|
13
|
-
export { Crelte, CrelteRequest, type Config, type QueryOptions, type LoadData, type LoadDataFn, type LoadDataObj, type LoadDataArray,
|
|
12
|
+
export { Crelte, CrelteRequest, type Config, type QueryOptions, type LoadData, type LoadDataFn, type LoadDataObj, type LoadDataArray, };
|
|
14
13
|
export type Init = (crelte: Crelte) => void;
|
|
15
14
|
/**
|
|
16
15
|
* Get Crelte from the current context
|
|
@@ -54,6 +53,13 @@ export declare function getRoute(): Readable<Route>;
|
|
|
54
53
|
* This only works during component initialisation.
|
|
55
54
|
*/
|
|
56
55
|
export declare function getSite(): Readable<Site>;
|
|
56
|
+
/**
|
|
57
|
+
* Get a store with the current entry
|
|
58
|
+
*
|
|
59
|
+
* ## Note
|
|
60
|
+
* This only works during component initialisation.
|
|
61
|
+
*/
|
|
62
|
+
export declare function getEntry(): Readable<Entry>;
|
|
57
63
|
/**
|
|
58
64
|
* returns an env variable from the craft/.env file.
|
|
59
65
|
* All env variables need to start with VITE_
|
|
@@ -85,7 +91,7 @@ export declare function getLoadingProgress(): Readable<number>;
|
|
|
85
91
|
* ## Note
|
|
86
92
|
* This only works during component initialisation.
|
|
87
93
|
*/
|
|
88
|
-
export declare function getGlobal<T = any>(name: string):
|
|
94
|
+
export declare function getGlobal<T = any>(name: string): Readable<T> | null;
|
|
89
95
|
/**
|
|
90
96
|
* returns the cookies instance
|
|
91
97
|
*
|
|
@@ -99,7 +105,7 @@ export declare function getCookies(): Cookies;
|
|
|
99
105
|
* ## Note
|
|
100
106
|
* This only works during component initialisation.
|
|
101
107
|
*/
|
|
102
|
-
export declare function onRoute(fn: (route: Route
|
|
108
|
+
export declare function onRoute(fn: (route: Route) => void): void;
|
|
103
109
|
/**
|
|
104
110
|
* Listen for requests
|
|
105
111
|
*
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,
|
|
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,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,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;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EACN,MAAM,EACN,aAAa,EACb,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,GAClB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AAE5C;;;;;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,CAK1C;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAKxC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,CAK1C;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,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,QAKjD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,IAAI,QAKxD"}
|
package/dist/index.js
CHANGED
|
@@ -62,6 +62,18 @@ export function getSite() {
|
|
|
62
62
|
// initialisation
|
|
63
63
|
return getRouter().site;
|
|
64
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Get a store with the current entry
|
|
67
|
+
*
|
|
68
|
+
* ## Note
|
|
69
|
+
* This only works during component initialisation.
|
|
70
|
+
*/
|
|
71
|
+
export function getEntry() {
|
|
72
|
+
/// the entry will never be null because it is only null in the
|
|
73
|
+
// first loadData call and that happens before any component
|
|
74
|
+
// initialisation
|
|
75
|
+
return getRouter().entry;
|
|
76
|
+
}
|
|
65
77
|
export function getEnv(name) {
|
|
66
78
|
return getCrelte().getEnv(name);
|
|
67
79
|
}
|
|
@@ -109,9 +121,7 @@ export function getCookies() {
|
|
|
109
121
|
*/
|
|
110
122
|
export function onRoute(fn) {
|
|
111
123
|
const crelte = getCrelte();
|
|
112
|
-
const rmListener = crelte.router.onRoute(route =>
|
|
113
|
-
fn(route, crelte);
|
|
114
|
-
});
|
|
124
|
+
const rmListener = crelte.router.onRoute(route => fn(route));
|
|
115
125
|
onDestroy(rmListener);
|
|
116
126
|
}
|
|
117
127
|
/**
|
|
@@ -122,8 +132,6 @@ export function onRoute(fn) {
|
|
|
122
132
|
*/
|
|
123
133
|
export function onRequest(fn) {
|
|
124
134
|
const crelte = getCrelte();
|
|
125
|
-
const rmListener = crelte.router.onRequest(
|
|
126
|
-
fn(new CrelteRequest(crelte, req));
|
|
127
|
-
});
|
|
135
|
+
const rmListener = crelte.router.onRequest(cr => fn(cr));
|
|
128
136
|
onDestroy(rmListener);
|
|
129
137
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Entry } from '../entry/index.js';
|
|
2
|
+
import { Crelte } from '../index.js';
|
|
3
|
+
import { LoadData } from '../loadData/index.js';
|
|
4
|
+
import { PluginCreator } from '../plugins/index.js';
|
|
5
|
+
export interface App {
|
|
6
|
+
plugins?: PluginCreator[];
|
|
7
|
+
templates?: Record<string, LazyTemplateModule>;
|
|
8
|
+
loadGlobalData?: LoadData<null>;
|
|
9
|
+
loadEntry: LoadData<null>;
|
|
10
|
+
loadEntryData?: LoadData<Entry>;
|
|
11
|
+
init?: (crelte: Crelte) => void;
|
|
12
|
+
}
|
|
13
|
+
export interface TemplateModule {
|
|
14
|
+
default: any;
|
|
15
|
+
loadData?: LoadData<Entry>;
|
|
16
|
+
}
|
|
17
|
+
export type LazyTemplateModule = (() => Promise<TemplateModule>) | TemplateModule;
|
|
18
|
+
export type TemplateModules = Map<string, LazyTemplateModule>;
|
|
19
|
+
export default class InternalApp {
|
|
20
|
+
inner: App;
|
|
21
|
+
templateModules: TemplateModules;
|
|
22
|
+
constructor(inner: App);
|
|
23
|
+
get plugins(): PluginCreator[];
|
|
24
|
+
get loadGlobalData(): LoadData<null> | undefined;
|
|
25
|
+
init(crelte: Crelte): void;
|
|
26
|
+
get loadEntry(): LoadData<null>;
|
|
27
|
+
loadTemplate(entry: Entry): Promise<TemplateModule>;
|
|
28
|
+
get loadEntryData(): LoadData<Entry> | null;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=InternalApp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InternalApp.d.ts","sourceRoot":"","sources":["../../src/init/InternalApp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,WAAW,GAAG;IACnB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAE1B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAE/C,cAAc,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEhC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAG1B,aAAa,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAIhC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAE9B,OAAO,EAAE,GAAG,CAAC;IAEb,QAAQ,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;CAC3B;AAED,MAAM,MAAM,kBAAkB,GAC3B,CAAC,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC,GAC/B,cAAc,CAAC;AAElB,MAAM,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,WAAW;IAC/B,KAAK,EAAE,GAAG,CAAC;IACX,eAAe,EAAE,eAAe,CAAC;gBAErB,KAAK,EAAE,GAAG;IAoBtB,IAAI,OAAO,IAAI,aAAa,EAAE,CAE7B;IAED,IAAI,cAAc,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAE/C;IAED,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI1B,IAAI,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,CAE9B;IAEK,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC;IA4BzD,IAAI,aAAa,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAE1C;CACD"}
|