veryfront 0.1.709 → 0.1.711
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/esm/deno.js +1 -1
- package/esm/src/rendering/cache/stores/api-store.d.ts +2 -1
- package/esm/src/rendering/cache/stores/api-store.d.ts.map +1 -1
- package/esm/src/rendering/cache/stores/api-store.js +3 -0
- package/esm/src/rendering/cache/stores/memory-store.d.ts +2 -1
- package/esm/src/rendering/cache/stores/memory-store.d.ts.map +1 -1
- package/esm/src/rendering/cache/stores/memory-store.js +3 -0
- package/esm/src/rendering/cache/stores/redis-store.d.ts +2 -1
- package/esm/src/rendering/cache/stores/redis-store.d.ts.map +1 -1
- package/esm/src/rendering/cache/stores/redis-store.js +3 -0
- package/esm/src/rendering/cache/types.d.ts +5 -0
- package/esm/src/rendering/cache/types.d.ts.map +1 -1
- package/esm/src/rendering/shared/context-aware-cache.d.ts.map +1 -1
- package/esm/src/rendering/shared/context-aware-cache.js +5 -7
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +1 -1
package/esm/deno.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CachePayload, CacheStore } from "../types.js";
|
|
1
|
+
import type { CachePayload, CacheStore, CacheStoreStats } from "../types.js";
|
|
2
2
|
export interface APICacheStoreOptions {
|
|
3
3
|
/** Key prefix for cache entries */
|
|
4
4
|
keyPrefix?: string;
|
|
@@ -25,5 +25,6 @@ export declare class APICacheStore implements CacheStore {
|
|
|
25
25
|
deleteByPrefix(prefix: string): Promise<number>;
|
|
26
26
|
clear(): Promise<void>;
|
|
27
27
|
destroy(): Promise<void>;
|
|
28
|
+
getStats(): CacheStoreStats;
|
|
28
29
|
}
|
|
29
30
|
//# sourceMappingURL=api-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-store.d.ts","sourceRoot":"","sources":["../../../../../src/src/rendering/cache/stores/api-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"api-store.d.ts","sourceRoot":"","sources":["../../../../../src/src/rendering/cache/stores/api-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAY7E,MAAM,WAAW,oBAAoB;IACnC,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAwBD,qBAAa,aAAc,YAAW,UAAU;IAC9C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,kBAAkB,CAAsC;IAChE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,OAAO,GAAE,oBAAyB;IAa9C,OAAO,CAAC,UAAU;IA4BlB,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,WAAW;IAqBb,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAsBnD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBpD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAclC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuB/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B,QAAQ,IAAI,eAAe;CAG5B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CachePayload, CacheStore } from "../types.js";
|
|
1
|
+
import type { CachePayload, CacheStore, CacheStoreStats } from "../types.js";
|
|
2
2
|
interface CacheLike<K, V> {
|
|
3
3
|
get(key: K): V | undefined;
|
|
4
4
|
set(key: K, value: V): void;
|
|
@@ -23,6 +23,7 @@ export declare class MemoryCacheStore implements CacheStore {
|
|
|
23
23
|
clear(): Promise<void>;
|
|
24
24
|
destroy(): Promise<void>;
|
|
25
25
|
size(): number;
|
|
26
|
+
getStats(): CacheStoreStats;
|
|
26
27
|
}
|
|
27
28
|
export {};
|
|
28
29
|
//# sourceMappingURL=memory-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../../../../src/src/rendering/cache/stores/memory-store.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../../../../src/src/rendering/cache/stores/memory-store.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAI7E,UAAU,SAAS,CAAC,CAAC,EAAE,CAAC;IACtB,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC3B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;IACrB,IAAI,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC5B,KAAK,IAAI,IAAI,CAAC;IACd,OAAO,CAAC,IAAI,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACzC;AAED,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,KAAK,CAAkC;gBAEnC,OAAO,GAAE,uBAA4B;IAajD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAInD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAa/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxB,IAAI,IAAI,MAAM;IAMd,QAAQ,IAAI,eAAe;CAG5B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CachePayload, CacheStore } from "../types.js";
|
|
1
|
+
import type { CachePayload, CacheStore, CacheStoreStats } from "../types.js";
|
|
2
2
|
export interface RedisCacheStoreOptions {
|
|
3
3
|
url?: string;
|
|
4
4
|
keyPrefix?: string;
|
|
@@ -28,5 +28,6 @@ export declare class RedisCacheStore implements CacheStore {
|
|
|
28
28
|
deleteByPrefix(prefix: string): Promise<number>;
|
|
29
29
|
clear(): Promise<void>;
|
|
30
30
|
destroy(): Promise<void>;
|
|
31
|
+
getStats(): CacheStoreStats;
|
|
31
32
|
}
|
|
32
33
|
//# sourceMappingURL=redis-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis-store.d.ts","sourceRoot":"","sources":["../../../../../src/src/rendering/cache/stores/redis-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"redis-store.d.ts","sourceRoot":"","sources":["../../../../../src/src/rendering/cache/stores/redis-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA0B7E,MAAM,WAAW,sBAAsB;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,eAAgB,YAAW,UAAU;IAChD,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,GAAE,sBAA2B;IAOhD,OAAO,CAAC,gBAAgB;YAYV,YAAY;IAsC1B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,oBAAoB;IAItB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IA4BnD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBpD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBlC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqC/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAY9B,QAAQ,IAAI,eAAe;CAG5B"}
|
|
@@ -6,6 +6,9 @@ export interface CachePayload {
|
|
|
6
6
|
/** Optional serialized form of result.nodeMap for JSON-based stores */
|
|
7
7
|
nodeMapEntries?: Array<[number, unknown]>;
|
|
8
8
|
}
|
|
9
|
+
export interface CacheStoreStats {
|
|
10
|
+
size: number;
|
|
11
|
+
}
|
|
9
12
|
export interface CacheStore {
|
|
10
13
|
get(key: string): Promise<CachePayload | undefined>;
|
|
11
14
|
set(key: string, value: CachePayload): Promise<void>;
|
|
@@ -14,6 +17,8 @@ export interface CacheStore {
|
|
|
14
17
|
deleteByPrefix?(prefix: string): Promise<number>;
|
|
15
18
|
clear(): Promise<void>;
|
|
16
19
|
destroy(): Promise<void>;
|
|
20
|
+
/** Optional stats contract for stores that can report entry counts */
|
|
21
|
+
getStats?(): CacheStoreStats;
|
|
17
22
|
/** Optional size accessor for cache stats */
|
|
18
23
|
size?(): number;
|
|
19
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/cache/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;IACpD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,kEAAkE;IAClE,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,6CAA6C;IAC7C,IAAI,CAAC,IAAI,MAAM,CAAC;CACjB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/cache/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;IACpD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,kEAAkE;IAClE,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,sEAAsE;IACtE,QAAQ,CAAC,IAAI,eAAe,CAAC;IAC7B,6CAA6C;IAC7C,IAAI,CAAC,IAAI,MAAM,CAAC;CACjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-aware-cache.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/shared/context-aware-cache.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAoB,KAAK,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAUlE,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAUD,MAAM,WAAW,6BAA6B;IAC5C,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,qBAAa,4BAA4B;IACvC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;gBAEzC,OAAO,GAAE,wBAA6B;IASlD,UAAU,CACR,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,aAAa,EAClB,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,EAC9B,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,6BAA6B,CAAC;IAqDnC,aAAa,CACjB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,aAAa,EAClB,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,EAC9B,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,IAAI,CAAC;IAqBV,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BlD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBjD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B1D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAKzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,QAAQ,IAAI;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"context-aware-cache.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/shared/context-aware-cache.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAoB,KAAK,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAUlE,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAUD,MAAM,WAAW,6BAA6B;IAC5C,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,qBAAa,4BAA4B;IACvC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;gBAEzC,OAAO,GAAE,wBAA6B;IASlD,UAAU,CACR,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,aAAa,EAClB,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,EAC9B,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,6BAA6B,CAAC;IAqDnC,aAAa,CACjB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,aAAa,EAClB,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,EAC9B,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,IAAI,CAAC;IAqBV,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BlD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBjD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B1D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAKzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,QAAQ,IAAI;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAO5B,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;CAkCpB"}
|
|
@@ -146,13 +146,11 @@ export class ContextAwareCacheCoordinator {
|
|
|
146
146
|
await this.store.destroy();
|
|
147
147
|
}
|
|
148
148
|
getStats() {
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
if (
|
|
153
|
-
return { size:
|
|
154
|
-
if (typeof sizeValue === "number")
|
|
155
|
-
return { size: sizeValue };
|
|
149
|
+
const stats = this.store.getStats?.();
|
|
150
|
+
if (stats)
|
|
151
|
+
return stats;
|
|
152
|
+
if (this.store.size)
|
|
153
|
+
return { size: this.store.size() };
|
|
156
154
|
return { size: 0 };
|
|
157
155
|
}
|
|
158
156
|
getCacheKey(slug, ctx, colorScheme, cacheKeyOverride) {
|