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