@odg/cache 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +159 -0
- package/dist/Cache/Cache.d.ts +34 -0
- package/dist/Cache/Cache.js +134 -0
- package/dist/Cache/Cache.js.map +1 -0
- package/dist/Cache/CacheManager.d.ts +44 -0
- package/dist/Cache/CacheManager.js +81 -0
- package/dist/Cache/CacheManager.js.map +1 -0
- package/dist/Cache/Handlers/KeyvCacheHandler.d.ts +16 -0
- package/dist/Cache/Handlers/KeyvCacheHandler.js +58 -0
- package/dist/Cache/Handlers/KeyvCacheHandler.js.map +1 -0
- package/dist/Cache/index.d.ts +2 -0
- package/dist/Cache/index.js +19 -0
- package/dist/Cache/index.js.map +1 -0
- package/dist/Exceptions/CacheHandlerException.d.ts +3 -0
- package/dist/Exceptions/CacheHandlerException.js +8 -0
- package/dist/Exceptions/CacheHandlerException.js.map +1 -0
- package/dist/Exceptions/CacheIteratorException.d.ts +3 -0
- package/dist/Exceptions/CacheIteratorException.js +8 -0
- package/dist/Exceptions/CacheIteratorException.js.map +1 -0
- package/dist/Exceptions/index.d.ts +1 -0
- package/dist/Exceptions/index.js +18 -0
- package/dist/Exceptions/index.js.map +1 -0
- package/dist/Interfaces/CacheHandlerInterface.d.ts +94 -0
- package/dist/Interfaces/CacheHandlerInterface.js +3 -0
- package/dist/Interfaces/CacheHandlerInterface.js.map +1 -0
- package/dist/Interfaces/CacheInterface.d.ts +177 -0
- package/dist/Interfaces/CacheInterface.js +3 -0
- package/dist/Interfaces/CacheInterface.js.map +1 -0
- package/dist/Interfaces/index.d.ts +2 -0
- package/dist/Interfaces/index.js +3 -0
- package/dist/Interfaces/index.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +93 -0
package/README.md
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
<h1 align="center">
|
|
2
|
+
<a href="https://github.com/ODGodinho">
|
|
3
|
+
<img
|
|
4
|
+
src="https://raw.githubusercontent.com/ODGodinho/Stanley-TheTemplate/main/public/images/Stanley.jpg"
|
|
5
|
+
alt="Stanley Imagem" width="500"
|
|
6
|
+
/>
|
|
7
|
+
</a>
|
|
8
|
+
<br />
|
|
9
|
+
Stanley The Template For Typescript By Dragons Gamers
|
|
10
|
+
<br />
|
|
11
|
+
</h1>
|
|
12
|
+
|
|
13
|
+
<h4 align="center">Template Stanley for Typescript projects and packages ๐ฆ!</h4>
|
|
14
|
+
|
|
15
|
+
<p align="center">
|
|
16
|
+
|
|
17
|
+
[](https://codecov.io/gh/ODGodinho/Stanley-TheTemplate-Typescript)
|
|
18
|
+
[](https://github.com/ODGodinho/Stanley-TheTemplate-Typescript/stargazers)
|
|
19
|
+
[](https://www.linkedin.com/in/victor-alves-odgodinho/)
|
|
20
|
+
[](https://github.com/ODGodinho/Stanley-TheTemplate-Typescript/network/members)
|
|
21
|
+

|
|
22
|
+
[](https://github.com/ODGodinho/Stanley-TheTemplate-Typescript/commits/master)
|
|
23
|
+
[](https://opensource.org/licenses/MIT)
|
|
24
|
+
[](https://github.styleci.io/repos/562306382?branch=main)
|
|
25
|
+
|
|
26
|
+
</p>
|
|
27
|
+
|
|
28
|
+
# Table of Contents
|
|
29
|
+
|
|
30
|
+
- [๐ Benefits](#-benefits)
|
|
31
|
+
- [๐ Libraries](#-libraries)
|
|
32
|
+
- [๐ Dependencies](#-dependencies)
|
|
33
|
+
- [โฉ Get Started](#-get-started)
|
|
34
|
+
- [๐ Use Template](#-use-template)
|
|
35
|
+
- [๐ Configure Github Secrets](#-configure-github-secrets)
|
|
36
|
+
- [๐ Create Github Token](#-create-github-token)
|
|
37
|
+
- [๐ Code Coverage](#-code-coverage)
|
|
38
|
+
- [๐ฆ Create NPM Token](#-create-npm-token)
|
|
39
|
+
- [๐ Create project Environment](#-create-project-environment)
|
|
40
|
+
- [๐ป Prepare to develop](#-prepare-to-develop)
|
|
41
|
+
- [๐ Start Project](#-start-project)
|
|
42
|
+
- [๐จ Build and Run](#-build-and-run)
|
|
43
|
+
- [๐งช Teste Code](#-teste-code)
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## ๐ Benefits
|
|
48
|
+
|
|
49
|
+
- ๐ Speed start new project or package using typescript
|
|
50
|
+
- ๐จ Over 800 rules for pattern, possible errors and errors in Linter
|
|
51
|
+
- ๐ Code quality guaranteed
|
|
52
|
+
- ๐ข AutoReview when opening a pull-request/merge
|
|
53
|
+

|
|
54
|
+
- ๐งช Automatic Test when opening pull-request/merge
|
|
55
|
+
- ๐ Automatic Code Coverage when opening pull-request/merge
|
|
56
|
+

|
|
57
|
+
- ๐ฆ Automatic Package and release generate on merge
|
|
58
|
+
- ๐ช Run Lint/Test command pre-commit execute
|
|
59
|
+
|
|
60
|
+
## ๐ Libraries
|
|
61
|
+
|
|
62
|
+
- [Node.js 18](https://nodejs.org/?n=dragonsgamers)
|
|
63
|
+
- [Typescript](https://www.typescriptlang.org/?n=dragonsgamers)
|
|
64
|
+
- [Eslint](https://eslint.org/?n=dragonsgamers)
|
|
65
|
+
- [ODG-Linter-JS](https://github.com/ODGodinho/ODG-Linter-Js?n=dragonsgamers)
|
|
66
|
+
- [EditorConfig](https://editorconfig.org/?n=dragonsgamers)
|
|
67
|
+
- [ReviewDog](https://github.com/reviewdog/action-eslint)
|
|
68
|
+
|
|
69
|
+
## ๐ Dependencies
|
|
70
|
+
|
|
71
|
+
- [Node.js](https://nodejs.org) 18 or later
|
|
72
|
+
- [Yarn](https://yarnpkg.com/) Optional/Recommended
|
|
73
|
+
- [ODG TsConfig](https://github.com/ODGodinho/tsconfig) Last Version
|
|
74
|
+
|
|
75
|
+
## โฉ Get Started
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
### ๐ Use Template
|
|
80
|
+
|
|
81
|
+
Click in use this template button and clone your template project
|
|
82
|
+
|
|
83
|
+

|
|
84
|
+
|
|
85
|
+
### ๐ Configure Github Secrets
|
|
86
|
+
|
|
87
|
+
#### ๐ Create Github Token
|
|
88
|
+
|
|
89
|
+
Before create new GITHUB_TOKEN in
|
|
90
|
+
|
|
91
|
+
- <https://docs.github.com/en/enterprise-server@3.4/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token>
|
|
92
|
+
|
|
93
|
+
#### ๐ Code Coverage
|
|
94
|
+
|
|
95
|
+
Add Code Coverage support in your project
|
|
96
|
+
|
|
97
|
+
1. Install CodeCov in your account <https://github.com/apps/codecov>
|
|
98
|
+
2. Enter In <https://app.codecov.io/gh/+> and search your repository
|
|
99
|
+
3. Click `setup repo`
|
|
100
|
+
4. Copy CODECOV_TOKEN and create a secret called CODECOV_TOKEN
|
|
101
|
+
|
|
102
|
+
#### ๐ฆ Create NPM Token
|
|
103
|
+
|
|
104
|
+
if you want to generate packages create a secret called IS_PACKAGE = true AND create new NPM_TOKEN in
|
|
105
|
+
|
|
106
|
+
- <https://docs.npmjs.com/creating-and-viewing-access-tokens>
|
|
107
|
+
|
|
108
|
+
#### ๐ Create project Environment
|
|
109
|
+
|
|
110
|
+
- On GitHub.com, navigate to the main page of the repository.
|
|
111
|
+
- Under your repository name, click `โ๏ธ Settings`.
|
|
112
|
+

|
|
113
|
+
- In the "Security" section of the sidebar, select `โณ๏ธ Secrets`, then click Actions.
|
|
114
|
+
- Click New repository secret.
|
|
115
|
+
- Type a name with: **GH_TOKEN**
|
|
116
|
+
- Enter with your access secret token `ghp_Dsfde....`
|
|
117
|
+
- Click Add secret.
|
|
118
|
+
- If you are going to publish package:
|
|
119
|
+
- secrets:
|
|
120
|
+
- create **NPM_TOKEN** = `npm_szxw......`
|
|
121
|
+
- create **CODECOV_TOKEN** = `00000000-0000-0000-0000-000000000000`
|
|
122
|
+
- variables:
|
|
123
|
+
- create **IS_PACKAGE** = `true`
|
|
124
|
+
|
|
125
|
+
### ๐ป Prepare To Develop
|
|
126
|
+
|
|
127
|
+
Copy `.env.example` to `.env` and add the values according to your needs.
|
|
128
|
+
|
|
129
|
+
### ๐ Start Project
|
|
130
|
+
|
|
131
|
+
First install dependencies with the following command
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
yarn install
|
|
135
|
+
# or
|
|
136
|
+
npm install
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## ๐จ Build and Run
|
|
140
|
+
|
|
141
|
+
To build the project, you can use the following command
|
|
142
|
+
|
|
143
|
+
> if you change files, you need to run `yarn build` and `yarn start` again
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
yarn build && yarn start
|
|
147
|
+
# or
|
|
148
|
+
yarn dev
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## ๐งช Teste Code
|
|
152
|
+
|
|
153
|
+
To Test execute this command
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
yarn test
|
|
157
|
+
# or
|
|
158
|
+
yarn test:watch
|
|
159
|
+
```
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { CacheInterface } from "../Interfaces";
|
|
2
|
+
import type { CacheHandlerInterface } from "../Interfaces/CacheHandlerInterface";
|
|
3
|
+
import { CacheManager } from "./CacheManager";
|
|
4
|
+
export declare class Cache<CacheType extends object> implements CacheInterface<CacheType> {
|
|
5
|
+
protected handlerName?: string;
|
|
6
|
+
private readonly manager;
|
|
7
|
+
constructor(options?: {
|
|
8
|
+
handlers?: Array<CacheHandlerInterface<CacheType>>;
|
|
9
|
+
defaultTtl?: number;
|
|
10
|
+
handlerName?: string;
|
|
11
|
+
manager?: CacheManager<CacheType>;
|
|
12
|
+
});
|
|
13
|
+
drive(name: string): CacheInterface<CacheType>;
|
|
14
|
+
setDefaultTtl(ttl: number): this;
|
|
15
|
+
pushHandler(handler: CacheHandlerInterface<CacheType>): void;
|
|
16
|
+
get<K extends keyof CacheType>(key: K, defaultValue?: () => CacheType[K] | Promise<CacheType[K]>): Promise<CacheType[K] | undefined>;
|
|
17
|
+
set<K extends keyof CacheType>(key: K, value: CacheType[K], ttl?: number): Promise<boolean>;
|
|
18
|
+
add<K extends keyof CacheType>(key: K, value: CacheType[K], ttl?: number): Promise<boolean>;
|
|
19
|
+
remember<K extends keyof CacheType>(key: K, callback: () => CacheType[K] | Promise<CacheType[K]>, ttl?: number): Promise<CacheType[K]>;
|
|
20
|
+
rememberForever<K extends keyof CacheType>(key: K, callback: () => CacheType[K] | Promise<CacheType[K]>): Promise<CacheType[K]>;
|
|
21
|
+
increment<K extends keyof CacheType>(key: K extends keyof CacheType ? (CacheType[K] extends number ? K : never) : never, value?: number): Promise<number>;
|
|
22
|
+
decrement<K extends keyof CacheType>(key: K extends keyof CacheType ? (CacheType[K] extends number ? K : never) : never, value?: number): Promise<number>;
|
|
23
|
+
has(key: keyof CacheType): Promise<boolean>;
|
|
24
|
+
missing(key: keyof CacheType): Promise<boolean>;
|
|
25
|
+
pull<K extends keyof CacheType>(key: K, defaultValue?: () => CacheType[K] | Promise<CacheType[K]>): Promise<CacheType[K] | undefined>;
|
|
26
|
+
delete(key: keyof CacheType): Promise<boolean>;
|
|
27
|
+
flush(): Promise<void>;
|
|
28
|
+
getMany<K extends keyof CacheType>(keys: K[]): Promise<Array<CacheType[K] | undefined>>;
|
|
29
|
+
setMany(values: Partial<CacheType>, ttl?: number): Promise<boolean[]>;
|
|
30
|
+
protected getTtl(ttl?: number): number | undefined;
|
|
31
|
+
private getForcedHandler;
|
|
32
|
+
private getSelectedHandlers;
|
|
33
|
+
private getFirstValueFromHandlers;
|
|
34
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Cache = void 0;
|
|
4
|
+
const CacheHandlerException_1 = require("../Exceptions/CacheHandlerException");
|
|
5
|
+
const CacheManager_1 = require("./CacheManager");
|
|
6
|
+
class Cache {
|
|
7
|
+
handlerName;
|
|
8
|
+
manager;
|
|
9
|
+
constructor(options) {
|
|
10
|
+
this.manager = options?.manager ?? new CacheManager_1.CacheManager();
|
|
11
|
+
this.manager.setDefaultTtl(options?.defaultTtl ?? this.manager.getDefaultTtl());
|
|
12
|
+
this.handlerName = options?.handlerName;
|
|
13
|
+
if (options?.handlers) {
|
|
14
|
+
for (const handler of options.handlers) {
|
|
15
|
+
this.pushHandler(handler);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
if (this.handlerName && !this.manager.hasHandler(this.handlerName)) {
|
|
19
|
+
throw new CacheHandlerException_1.CacheHandlerException(`Handler "${this.handlerName}" not found. Add it before using handlerName.`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
drive(name) {
|
|
23
|
+
return new Cache({
|
|
24
|
+
handlerName: name,
|
|
25
|
+
manager: this.manager,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
setDefaultTtl(ttl) {
|
|
29
|
+
this.manager.setDefaultTtl(ttl);
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
32
|
+
pushHandler(handler) {
|
|
33
|
+
this.manager.addHandler(handler, "end");
|
|
34
|
+
}
|
|
35
|
+
async get(key, defaultValue) {
|
|
36
|
+
const value = await this.getFirstValueFromHandlers(key);
|
|
37
|
+
if (value !== undefined) {
|
|
38
|
+
return value;
|
|
39
|
+
}
|
|
40
|
+
return defaultValue?.();
|
|
41
|
+
}
|
|
42
|
+
async set(key, value, ttl) {
|
|
43
|
+
const finalTtl = this.getTtl(ttl);
|
|
44
|
+
const handlers = this.getSelectedHandlers();
|
|
45
|
+
const results = await Promise.all(handlers.map(async (handler) => handler.set(key, value, finalTtl)));
|
|
46
|
+
return results.some(Boolean);
|
|
47
|
+
}
|
|
48
|
+
async add(key, value, ttl) {
|
|
49
|
+
const exists = await this.has(key);
|
|
50
|
+
if (exists) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
return this.set(key, value, ttl);
|
|
54
|
+
}
|
|
55
|
+
async remember(key, callback, ttl) {
|
|
56
|
+
const value = await this.get(key);
|
|
57
|
+
const finalTtl = this.getTtl(ttl);
|
|
58
|
+
if (value !== undefined) {
|
|
59
|
+
return value;
|
|
60
|
+
}
|
|
61
|
+
const result = await callback();
|
|
62
|
+
await this.set(key, result, finalTtl);
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
async rememberForever(key, callback) {
|
|
66
|
+
return this.remember(key, callback, Infinity);
|
|
67
|
+
}
|
|
68
|
+
async increment(key, value = 1) {
|
|
69
|
+
const current = await this.get(key);
|
|
70
|
+
const currentValue = current ?? 0;
|
|
71
|
+
const newValue = currentValue + value;
|
|
72
|
+
await this.set(key, newValue);
|
|
73
|
+
return newValue;
|
|
74
|
+
}
|
|
75
|
+
async decrement(key, value = 1) {
|
|
76
|
+
return this.increment(key, -value);
|
|
77
|
+
}
|
|
78
|
+
async has(key) {
|
|
79
|
+
const value = await this.get(key);
|
|
80
|
+
return value !== undefined;
|
|
81
|
+
}
|
|
82
|
+
async missing(key) {
|
|
83
|
+
return !await this.has(key);
|
|
84
|
+
}
|
|
85
|
+
async pull(key, defaultValue) {
|
|
86
|
+
const value = await this.get(key, defaultValue);
|
|
87
|
+
await this.delete(key);
|
|
88
|
+
return value;
|
|
89
|
+
}
|
|
90
|
+
async delete(key) {
|
|
91
|
+
const handlers = this.getSelectedHandlers();
|
|
92
|
+
const results = await Promise.all(handlers.map(async (handler) => handler.delete(key)));
|
|
93
|
+
return results.some(Boolean);
|
|
94
|
+
}
|
|
95
|
+
async flush() {
|
|
96
|
+
const handlers = this.getSelectedHandlers();
|
|
97
|
+
await Promise.all(handlers.map(async (handler) => handler.clear()));
|
|
98
|
+
}
|
|
99
|
+
async getMany(keys) {
|
|
100
|
+
return Promise.all(keys.map(async (key) => this.getFirstValueFromHandlers(key)));
|
|
101
|
+
}
|
|
102
|
+
async setMany(values, ttl) {
|
|
103
|
+
const valueEntries = Object.entries(values);
|
|
104
|
+
const finalTtl = this.getTtl(ttl);
|
|
105
|
+
const handlers = this.getSelectedHandlers();
|
|
106
|
+
const promises = handlers.map(async (handler) => handler.setMany(values, finalTtl));
|
|
107
|
+
const results = await Promise.all(promises);
|
|
108
|
+
return valueEntries.map((_valueSet, index) => results.every((handlerResult) => handlerResult[index]));
|
|
109
|
+
}
|
|
110
|
+
getTtl(ttl) {
|
|
111
|
+
return ttl ?? this.manager.getDefaultTtl();
|
|
112
|
+
}
|
|
113
|
+
getForcedHandler() {
|
|
114
|
+
if (!this.handlerName) {
|
|
115
|
+
throw new CacheHandlerException_1.CacheHandlerException("forcedHandlerName is not set");
|
|
116
|
+
}
|
|
117
|
+
return this.manager.getHandler(this.handlerName);
|
|
118
|
+
}
|
|
119
|
+
getSelectedHandlers() {
|
|
120
|
+
return this.handlerName ? [this.getForcedHandler()] : this.manager.getHandlers();
|
|
121
|
+
}
|
|
122
|
+
async getFirstValueFromHandlers(key) {
|
|
123
|
+
const handlers = this.getSelectedHandlers();
|
|
124
|
+
for (const handler of handlers) {
|
|
125
|
+
const value = await handler.get(key);
|
|
126
|
+
if (value !== undefined) {
|
|
127
|
+
return value;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return undefined;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
exports.Cache = Cache;
|
|
134
|
+
//# sourceMappingURL=Cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../src/Cache/Cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { CacheHandlerInterface } from "../Interfaces/CacheHandlerInterface";
|
|
2
|
+
export declare class CacheManager<CacheType extends object> {
|
|
3
|
+
private readonly handlers;
|
|
4
|
+
private readonly handlerOrder;
|
|
5
|
+
private defaultTtl?;
|
|
6
|
+
getDefaultTtl(): number | undefined;
|
|
7
|
+
setDefaultTtl(ttl: number | undefined): this;
|
|
8
|
+
/**
|
|
9
|
+
* Add handler to the Map with a unique name
|
|
10
|
+
*
|
|
11
|
+
* @param {CacheHandlerInterface<CacheType>} handler - Instรขncia do handler
|
|
12
|
+
* @param {"end" | "start"} position - Position of handler in fallback order (default: "end")
|
|
13
|
+
* @throws {CacheHandlerException} If a handler with the same name already exists
|
|
14
|
+
*/
|
|
15
|
+
addHandler(handler: CacheHandlerInterface<CacheType>, position?: "end" | "start"): void;
|
|
16
|
+
/**
|
|
17
|
+
* Remove handler por nome
|
|
18
|
+
*
|
|
19
|
+
* @param {string} name - Nome do handler
|
|
20
|
+
* @returns {boolean} true se foi removido, false caso contrรกrio
|
|
21
|
+
*/
|
|
22
|
+
removeHandler(name: string): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Busca handler por nome
|
|
25
|
+
*
|
|
26
|
+
* @param {string} name - Nome do handler
|
|
27
|
+
* @throws {CacheHandlerException} Se handler nรฃo encontrado
|
|
28
|
+
* @returns {CacheHandlerInterface<CacheType>} Handler encontrado ou undefined
|
|
29
|
+
*/
|
|
30
|
+
getHandler(name: string): CacheHandlerInterface<CacheType>;
|
|
31
|
+
/**
|
|
32
|
+
* Retorna array de handlers na ordem
|
|
33
|
+
*
|
|
34
|
+
* @returns {Array<CacheHandlerInterface<CacheType>>} Array de handlers na ordem
|
|
35
|
+
*/
|
|
36
|
+
getHandlers(): Array<CacheHandlerInterface<CacheType>>;
|
|
37
|
+
/**
|
|
38
|
+
* Verifica existรชncia de handler por nome
|
|
39
|
+
*
|
|
40
|
+
* @param {string} name - Nome do handler
|
|
41
|
+
* @returns {boolean} true se existe, false caso contrรกrio
|
|
42
|
+
*/
|
|
43
|
+
hasHandler(name: string): boolean;
|
|
44
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CacheManager = void 0;
|
|
4
|
+
const CacheHandlerException_1 = require("../Exceptions/CacheHandlerException");
|
|
5
|
+
class CacheManager {
|
|
6
|
+
handlers = new Map();
|
|
7
|
+
handlerOrder = []; // Ordem para fallback
|
|
8
|
+
defaultTtl;
|
|
9
|
+
getDefaultTtl() {
|
|
10
|
+
return this.defaultTtl;
|
|
11
|
+
}
|
|
12
|
+
setDefaultTtl(ttl) {
|
|
13
|
+
this.defaultTtl = ttl;
|
|
14
|
+
return this;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Add handler to the Map with a unique name
|
|
18
|
+
*
|
|
19
|
+
* @param {CacheHandlerInterface<CacheType>} handler - Instรขncia do handler
|
|
20
|
+
* @param {"end" | "start"} position - Position of handler in fallback order (default: "end")
|
|
21
|
+
* @throws {CacheHandlerException} If a handler with the same name already exists
|
|
22
|
+
*/
|
|
23
|
+
addHandler(handler, position = "end") {
|
|
24
|
+
if (this.handlers.has(handler.name)) {
|
|
25
|
+
throw new CacheHandlerException_1.CacheHandlerException(`Handler with name "${handler.name}" already exists`);
|
|
26
|
+
}
|
|
27
|
+
this.handlers.set(handler.name, handler);
|
|
28
|
+
if (position === "start") {
|
|
29
|
+
this.handlerOrder.unshift(handler.name);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
this.handlerOrder.push(handler.name);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Remove handler por nome
|
|
36
|
+
*
|
|
37
|
+
* @param {string} name - Nome do handler
|
|
38
|
+
* @returns {boolean} true se foi removido, false caso contrรกrio
|
|
39
|
+
*/
|
|
40
|
+
removeHandler(name) {
|
|
41
|
+
const removed = this.handlers.delete(name);
|
|
42
|
+
const index = this.handlerOrder.indexOf(name);
|
|
43
|
+
if (index !== -1) {
|
|
44
|
+
this.handlerOrder.splice(index, 1);
|
|
45
|
+
}
|
|
46
|
+
return removed;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Busca handler por nome
|
|
50
|
+
*
|
|
51
|
+
* @param {string} name - Nome do handler
|
|
52
|
+
* @throws {CacheHandlerException} Se handler nรฃo encontrado
|
|
53
|
+
* @returns {CacheHandlerInterface<CacheType>} Handler encontrado ou undefined
|
|
54
|
+
*/
|
|
55
|
+
getHandler(name) {
|
|
56
|
+
const handler = this.handlers.get(name);
|
|
57
|
+
if (!handler) {
|
|
58
|
+
throw new CacheHandlerException_1.CacheHandlerException(`Handler "${name}" not found`);
|
|
59
|
+
}
|
|
60
|
+
return handler;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Retorna array de handlers na ordem
|
|
64
|
+
*
|
|
65
|
+
* @returns {Array<CacheHandlerInterface<CacheType>>} Array de handlers na ordem
|
|
66
|
+
*/
|
|
67
|
+
getHandlers() {
|
|
68
|
+
return this.handlerOrder.map((name) => this.getHandler(name));
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Verifica existรชncia de handler por nome
|
|
72
|
+
*
|
|
73
|
+
* @param {string} name - Nome do handler
|
|
74
|
+
* @returns {boolean} true se existe, false caso contrรกrio
|
|
75
|
+
*/
|
|
76
|
+
hasHandler(name) {
|
|
77
|
+
return this.handlers.has(name);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.CacheManager = CacheManager;
|
|
81
|
+
//# sourceMappingURL=CacheManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../src/Cache/CacheManager.ts"],"names":[],"mappings":";;;AAAA,8EAA2E;AAG3E,MAAa,YAAY;IAEJ,QAAQ,GAAG,IAAI,GAAG,EAA4C,CAAC;IAE/D,YAAY,GAAa,EAAE,CAAC,CAAC,sBAAsB;IAE5D,UAAU,CAAU;IAErB,aAAa;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAEM,aAAa,CAAC,GAAuB;QACxC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QAEtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACI,UAAU,CACb,OAAyC,EACzC,WAA4B,KAAK;QAEjC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,6CAAqB,CAAC,sBAAsB,OAAO,CAAC,IAAI,kBAAkB,CAAC,CAAC;QAC1F,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEzC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAExC,OAAO;QACX,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACI,aAAa,CAAC,IAAY;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE3C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE9C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACI,UAAU,CAAC,IAAY;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAExC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,6CAAqB,CAAC,YAAY,IAAI,aAAa,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACI,WAAW;QACd,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC;IAED;;;;;OAKG;IACI,UAAU,CAAC,IAAY;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;CAEJ;AAlGD,oCAkGC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type Keyv from "keyv";
|
|
2
|
+
import type { CacheHandlerInterface } from "../../Interfaces/CacheHandlerInterface";
|
|
3
|
+
export declare class KeyvCacheHandler<CacheType extends object> implements CacheHandlerInterface<CacheType> {
|
|
4
|
+
private readonly keyv;
|
|
5
|
+
readonly name: string;
|
|
6
|
+
constructor(keyv: Keyv, name?: string);
|
|
7
|
+
get<K extends keyof CacheType>(key: K): Promise<CacheType[K] | undefined>;
|
|
8
|
+
set<K extends keyof CacheType>(key: K, value: CacheType[K], ttl?: number): Promise<boolean>;
|
|
9
|
+
delete(key: keyof CacheType): Promise<boolean>;
|
|
10
|
+
clear(): Promise<void>;
|
|
11
|
+
has(key: keyof CacheType): Promise<boolean>;
|
|
12
|
+
getMany<K extends keyof CacheType>(keys: K[]): Promise<Array<CacheType[K] | undefined>>;
|
|
13
|
+
setMany(entries: Partial<CacheType>, ttl?: number): Promise<boolean[]>;
|
|
14
|
+
deleteMany(keys: Array<keyof CacheType>): Promise<boolean[]>;
|
|
15
|
+
[Symbol.asyncIterator](): AsyncGenerator<[keyof CacheType, CacheType[keyof CacheType]]>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KeyvCacheHandler = void 0;
|
|
4
|
+
const Exceptions_1 = require("../../Exceptions");
|
|
5
|
+
class KeyvCacheHandler {
|
|
6
|
+
keyv;
|
|
7
|
+
name;
|
|
8
|
+
constructor(keyv, name) {
|
|
9
|
+
this.keyv = keyv;
|
|
10
|
+
this.name = name ?? "keyv";
|
|
11
|
+
}
|
|
12
|
+
async get(key) {
|
|
13
|
+
return this.keyv.get(String(key));
|
|
14
|
+
}
|
|
15
|
+
async set(key, value, ttl) {
|
|
16
|
+
if (ttl === 0) {
|
|
17
|
+
await this.delete(key);
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
return this.keyv.set(String(key), value, ttl);
|
|
21
|
+
}
|
|
22
|
+
async delete(key) {
|
|
23
|
+
return this.keyv.delete(String(key));
|
|
24
|
+
}
|
|
25
|
+
async clear() {
|
|
26
|
+
await this.keyv.clear();
|
|
27
|
+
}
|
|
28
|
+
async has(key) {
|
|
29
|
+
return this.keyv.has(String(key));
|
|
30
|
+
}
|
|
31
|
+
async getMany(keys) {
|
|
32
|
+
return this.keyv.getMany(keys);
|
|
33
|
+
}
|
|
34
|
+
async setMany(entries, ttl) {
|
|
35
|
+
if (ttl === 0) {
|
|
36
|
+
const keys = Object.keys(entries);
|
|
37
|
+
return this.deleteMany(keys);
|
|
38
|
+
}
|
|
39
|
+
return this.keyv.setMany(Object.entries(entries).map(([key, value]) => ({
|
|
40
|
+
key,
|
|
41
|
+
value,
|
|
42
|
+
ttl,
|
|
43
|
+
})));
|
|
44
|
+
}
|
|
45
|
+
async deleteMany(keys) {
|
|
46
|
+
return Promise.all(keys.map(async (key) => this.delete(key)));
|
|
47
|
+
}
|
|
48
|
+
async *[Symbol.asyncIterator]() {
|
|
49
|
+
if (!this.keyv.iterator) {
|
|
50
|
+
throw new Exceptions_1.CacheIteratorException("The provided Keyv instance does not support iteration.");
|
|
51
|
+
}
|
|
52
|
+
for await (const [key, value] of this.keyv.iterator("*")) {
|
|
53
|
+
yield [key, value];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.KeyvCacheHandler = KeyvCacheHandler;
|
|
58
|
+
//# sourceMappingURL=KeyvCacheHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyvCacheHandler.js","sourceRoot":"","sources":["../../../src/Cache/Handlers/KeyvCacheHandler.ts"],"names":[],"mappings":";;;AAEA,6CAAsD;AAGtD,MAAa,gBAAgB;IAKJ;IAHL,IAAI,CAAS;IAE7B,YACqB,IAAU,EAC3B,IAAa;QADI,SAAI,GAAJ,IAAI,CAAM;QAG3B,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,GAAG,CAA4B,GAAM;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAe,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC;IAEM,KAAK,CAAC,GAAG,CAA4B,GAAM,EAAE,KAAmB,EAAE,GAAY;QACjF,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEvB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,GAAoB;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,KAAK;QACd,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,GAAoB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,OAAO,CAA4B,IAAS;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAe,IAAgB,CAAC,CAAC;IAC7D,CAAC;IAEM,KAAK,CAAC,OAAO,CAChB,OAA2B,EAC3B,GAAY;QAEZ,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAElC,OAAO,IAAI,CAAC,UAAU,CAAC,IAA8B,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACpB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,GAAG,EAAE,KAAK,CAAE,EAAE,EAAE,CAAC,CAAC;YAC7C,GAAG;YACH,KAAK;YACL,GAAG;SACN,CAAC,CAAC,CACN,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,IAA4B;QAChD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAEM,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,mCAAsB,CAAC,wDAAwD,CAAC,CAAC;QAC/F,CAAC;QAED,IAAI,KAAK,EAAE,MAAM,CAAE,GAAG,EAAE,KAAK,CAAE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACzD,MAAM,CAAE,GAAsB,EAAE,KAAmC,CAAE,CAAC;QAC1E,CAAC;IACL,CAAC;CAEJ;AA1ED,4CA0EC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./Cache"), exports);
|
|
18
|
+
__exportStar(require("./CacheManager"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Cache/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AAExB,iDAA+B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CacheHandlerException = void 0;
|
|
4
|
+
const exception_1 = require("@odg/exception");
|
|
5
|
+
class CacheHandlerException extends exception_1.Exception {
|
|
6
|
+
}
|
|
7
|
+
exports.CacheHandlerException = CacheHandlerException;
|
|
8
|
+
//# sourceMappingURL=CacheHandlerException.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheHandlerException.js","sourceRoot":"","sources":["../../src/Exceptions/CacheHandlerException.ts"],"names":[],"mappings":";;;AAAA,8CAA2C;AAE3C,MAAa,qBAAsB,SAAQ,qBAAS;CACnD;AADD,sDACC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CacheIteratorException = void 0;
|
|
4
|
+
const exception_1 = require("@odg/exception");
|
|
5
|
+
class CacheIteratorException extends exception_1.Exception {
|
|
6
|
+
}
|
|
7
|
+
exports.CacheIteratorException = CacheIteratorException;
|
|
8
|
+
//# sourceMappingURL=CacheIteratorException.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheIteratorException.js","sourceRoot":"","sources":["../../src/Exceptions/CacheIteratorException.ts"],"names":[],"mappings":";;;AAAA,8CAA2C;AAE3C,MAAa,sBAAuB,SAAQ,qBAAS;CACpD;AADD,wDACC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./CacheIteratorException";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./CacheIteratorException"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Exceptions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Low-level cache handler contract implemented by concrete drivers.
|
|
3
|
+
*
|
|
4
|
+
* Handlers are responsible for interacting with the underlying storage engine.
|
|
5
|
+
*
|
|
6
|
+
* TTL behavior used by handler write methods:
|
|
7
|
+
* - `ttl = 0`: value expires immediately and should not remain available.
|
|
8
|
+
* - `ttl = undefined`: value is stored without expiration.
|
|
9
|
+
* - `ttl = Infinity`: value is stored without expiration.
|
|
10
|
+
* - `ttl > 0`: value expires after the informed number of milliseconds.
|
|
11
|
+
*
|
|
12
|
+
* @template {object} CacheType
|
|
13
|
+
*/
|
|
14
|
+
export interface CacheHandlerInterface<CacheType extends object> {
|
|
15
|
+
/**
|
|
16
|
+
* Unique handler name used for selection (for example by `drive(name)`).
|
|
17
|
+
*
|
|
18
|
+
* @type {string}
|
|
19
|
+
*/
|
|
20
|
+
readonly name: string;
|
|
21
|
+
/**
|
|
22
|
+
* Retrieves a value from the underlying storage.
|
|
23
|
+
*
|
|
24
|
+
* @template {keyof CacheType} K
|
|
25
|
+
* @param {K} key Typed cache key.
|
|
26
|
+
* @returns {Promise<CacheType[K] | undefined>} The stored value or `undefined` when key is missing.
|
|
27
|
+
*/
|
|
28
|
+
get<K extends keyof CacheType>(key: K): Promise<CacheType[K] | undefined>;
|
|
29
|
+
/**
|
|
30
|
+
* Stores a value in the underlying storage.
|
|
31
|
+
*
|
|
32
|
+
* TTL rules are described in the interface-level documentation.
|
|
33
|
+
*
|
|
34
|
+
* @template {keyof CacheType} K
|
|
35
|
+
* @param {K} key Typed cache key.
|
|
36
|
+
* @param {CacheType[K]} value Typed value for the key.
|
|
37
|
+
* @param {number | undefined} ttl Optional expiration time in milliseconds.
|
|
38
|
+
* @returns {Promise<boolean>} `true` when the write succeeds.
|
|
39
|
+
*/
|
|
40
|
+
set<K extends keyof CacheType>(key: K, value: CacheType[K], ttl?: number): Promise<boolean>;
|
|
41
|
+
/**
|
|
42
|
+
* Deletes a single key from storage.
|
|
43
|
+
*
|
|
44
|
+
* @param {keyof CacheType} key Typed cache key.
|
|
45
|
+
* @returns {Promise<boolean>} `true` when the key existed and was removed.
|
|
46
|
+
*/
|
|
47
|
+
delete(key: keyof CacheType): Promise<boolean>;
|
|
48
|
+
/**
|
|
49
|
+
* Clears all entries from storage.
|
|
50
|
+
*
|
|
51
|
+
* @returns {Promise<void>} A promise that resolves when the handler is fully cleared.
|
|
52
|
+
*/
|
|
53
|
+
clear(): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Checks whether a key exists in storage.
|
|
56
|
+
*
|
|
57
|
+
* @param {keyof CacheType} key Typed cache key.
|
|
58
|
+
* @returns {Promise<boolean>} `true` when key exists, otherwise `false`.
|
|
59
|
+
*/
|
|
60
|
+
has(key: keyof CacheType): Promise<boolean>;
|
|
61
|
+
/**
|
|
62
|
+
* Retrieves multiple values in the same order as the provided keys.
|
|
63
|
+
*
|
|
64
|
+
* @template {keyof CacheType} K
|
|
65
|
+
* @param {K[]} keys Typed key list.
|
|
66
|
+
* @returns {Promise<Array<CacheType[K] | undefined>>} Array containing one value per key
|
|
67
|
+
* with `undefined` for misses.
|
|
68
|
+
*/
|
|
69
|
+
getMany<K extends keyof CacheType>(keys: K[]): Promise<Array<CacheType[K] | undefined>>;
|
|
70
|
+
/**
|
|
71
|
+
* Stores multiple key/value entries.
|
|
72
|
+
*
|
|
73
|
+
* TTL rules are described in the interface-level documentation and apply to all entries.
|
|
74
|
+
*
|
|
75
|
+
* @param {Partial<CacheType>} values Partial key/value map to store.
|
|
76
|
+
* @param {number | undefined} ttl Optional expiration time in milliseconds.
|
|
77
|
+
* @returns {Promise<boolean[]>} Per-entry success flags.
|
|
78
|
+
*/
|
|
79
|
+
setMany(values: Partial<CacheType>, ttl?: number): Promise<boolean[]>;
|
|
80
|
+
/**
|
|
81
|
+
* Deletes multiple keys.
|
|
82
|
+
*
|
|
83
|
+
* @param {Array<keyof CacheType>} keys Typed key list.
|
|
84
|
+
* @returns {Promise<boolean[]>} Per-key deletion results.
|
|
85
|
+
*/
|
|
86
|
+
deleteMany(keys: Array<keyof CacheType>): Promise<boolean[]>;
|
|
87
|
+
/**
|
|
88
|
+
* Provides asynchronous key/value iteration for full handler traversal.
|
|
89
|
+
*
|
|
90
|
+
* @returns {AsyncIterator<[keyof CacheType, CacheType[keyof CacheType]]>} Async iterator yielding
|
|
91
|
+
* `[key, value]` pairs.
|
|
92
|
+
*/
|
|
93
|
+
[Symbol.asyncIterator](): AsyncIterator<[keyof CacheType, CacheType[keyof CacheType]]>;
|
|
94
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheHandlerInterface.js","sourceRoot":"","sources":["../../src/Interfaces/CacheHandlerInterface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import type { CacheHandlerInterface } from "./CacheHandlerInterface";
|
|
2
|
+
/**
|
|
3
|
+
* High-level cache contract used by application code.
|
|
4
|
+
*
|
|
5
|
+
* This interface describes a typed cache API where keys and values are inferred from
|
|
6
|
+
* the provided `CacheType` schema.
|
|
7
|
+
*
|
|
8
|
+
* TTL behavior used across methods that accept `ttl`:
|
|
9
|
+
* - `ttl = 0`: value expires immediately and should not remain available.
|
|
10
|
+
* - `ttl = undefined`: value is stored without expiration.
|
|
11
|
+
* - `ttl = Infinity`: value is stored without expiration.
|
|
12
|
+
* - `ttl > 0`: value expires after the informed number of milliseconds.
|
|
13
|
+
*
|
|
14
|
+
* @template {object} CacheType
|
|
15
|
+
*/
|
|
16
|
+
export interface CacheInterface<CacheType extends object = Record<string, unknown>> {
|
|
17
|
+
/**
|
|
18
|
+
* Retrieves a value by key.
|
|
19
|
+
*
|
|
20
|
+
* If the key does not exist and `defaultValue` is provided, the callback is executed
|
|
21
|
+
* and its result is returned. Implementations may choose to cache this fallback value.
|
|
22
|
+
*
|
|
23
|
+
* @template {keyof CacheType} K
|
|
24
|
+
* @param {K} key Typed cache key.
|
|
25
|
+
* @param {() => CacheType[K] | Promise<CacheType[K]> | undefined} defaultValue Optional fallback callback for cache
|
|
26
|
+
* misses.
|
|
27
|
+
* @returns {Promise<CacheType[K] | undefined>} The cached value, the fallback value, or `undefined`
|
|
28
|
+
* when no value is found.
|
|
29
|
+
*/
|
|
30
|
+
get<K extends keyof CacheType>(key: K, defaultValue?: () => CacheType[K] | Promise<CacheType[K]>): Promise<CacheType[K] | undefined>;
|
|
31
|
+
/**
|
|
32
|
+
* Stores a value by key.
|
|
33
|
+
*
|
|
34
|
+
* TTL rules:
|
|
35
|
+
* - `ttl = 0`: immediate expiration (effectively removes or prevents persistence).
|
|
36
|
+
* - `ttl = undefined` or `Infinity`: no expiration.
|
|
37
|
+
* - `ttl > 0`: expiration after `ttl` milliseconds.
|
|
38
|
+
*
|
|
39
|
+
* @template {keyof CacheType} K
|
|
40
|
+
* @param {K} key Typed cache key.
|
|
41
|
+
* @param {CacheType[K]} value Typed value for the key.
|
|
42
|
+
* @param {number | undefined} ttl Optional expiration time in milliseconds.
|
|
43
|
+
* @returns {Promise<boolean>} `true` when the operation succeeds according to the implementation strategy.
|
|
44
|
+
*/
|
|
45
|
+
set<K extends keyof CacheType>(key: K, value: CacheType[K], ttl?: number): Promise<boolean>;
|
|
46
|
+
/**
|
|
47
|
+
* Stores a value only when the key does not already exist.
|
|
48
|
+
*
|
|
49
|
+
* TTL rules are the same as `set`.
|
|
50
|
+
*
|
|
51
|
+
* @template {keyof CacheType} K
|
|
52
|
+
* @param {K} key Typed cache key.
|
|
53
|
+
* @param {CacheType[K]} value Typed value for the key.
|
|
54
|
+
* @param {number | undefined} ttl Optional expiration time in milliseconds.
|
|
55
|
+
* @returns {Promise<boolean>} `true` when the value is inserted, `false` when the key already exists.
|
|
56
|
+
*/
|
|
57
|
+
add<K extends keyof CacheType>(key: K, value: CacheType[K], ttl?: number): Promise<boolean>;
|
|
58
|
+
/**
|
|
59
|
+
* Returns the existing cached value or computes and stores it using `callback`.
|
|
60
|
+
*
|
|
61
|
+
* TTL rules are the same as `set`.
|
|
62
|
+
*
|
|
63
|
+
* @template {keyof CacheType} K
|
|
64
|
+
* @param {K} key Typed cache key.
|
|
65
|
+
* @param {() => CacheType[K] | Promise<CacheType[K]>} callback Lazy producer used only on cache miss.
|
|
66
|
+
* @param {number | undefined} ttl Optional expiration time in milliseconds.
|
|
67
|
+
* @returns {Promise<CacheType[K]>} The cached or computed value.
|
|
68
|
+
*/
|
|
69
|
+
remember<K extends keyof CacheType>(key: K, callback: () => CacheType[K] | Promise<CacheType[K]>, ttl?: number): Promise<CacheType[K]>;
|
|
70
|
+
/**
|
|
71
|
+
* Returns the existing cached value or computes and stores it permanently.
|
|
72
|
+
*
|
|
73
|
+
* This method is equivalent to `remember` with infinite lifetime behavior.
|
|
74
|
+
*
|
|
75
|
+
* @template {keyof CacheType} K
|
|
76
|
+
* @param {K} key Typed cache key.
|
|
77
|
+
* @param {() => CacheType[K] | Promise<CacheType[K]>} callback Lazy producer used only on cache miss.
|
|
78
|
+
* @returns {Promise<CacheType[K]>} The cached or computed value.
|
|
79
|
+
*/
|
|
80
|
+
rememberForever<K extends keyof CacheType>(key: K, callback: () => CacheType[K] | Promise<CacheType[K]>): Promise<CacheType[K]>;
|
|
81
|
+
/**
|
|
82
|
+
* Increments a numeric value.
|
|
83
|
+
*
|
|
84
|
+
* Only numeric keys are allowed by type.
|
|
85
|
+
*
|
|
86
|
+
* @template {keyof CacheType} K
|
|
87
|
+
* @param {K extends keyof CacheType ? (CacheType[K] extends number ? K : never) : never} key Cache Key
|
|
88
|
+
* @param {number | undefined} value Increment delta. Defaults to `1` when omitted.
|
|
89
|
+
* @returns {Promise<number>} The updated numeric value.
|
|
90
|
+
*/
|
|
91
|
+
increment<K extends keyof CacheType>(key: K extends keyof CacheType ? (CacheType[K] extends number ? K : never) : never, value?: number): Promise<number>;
|
|
92
|
+
/**
|
|
93
|
+
* Decrements a numeric value.
|
|
94
|
+
*
|
|
95
|
+
* Only numeric keys are allowed by type.
|
|
96
|
+
*
|
|
97
|
+
* @template {keyof CacheType} K
|
|
98
|
+
* @param {K extends keyof CacheType ? (CacheType[K] extends number ? K : never) : never} key Cache key.
|
|
99
|
+
* @param {number | undefined} value Decrement delta. Defaults to `1` when omitted.
|
|
100
|
+
* @returns {Promise<number>} The updated numeric value.
|
|
101
|
+
*/
|
|
102
|
+
decrement<K extends keyof CacheType>(key: K extends keyof CacheType ? (CacheType[K] extends number ? K : never) : never, value?: number): Promise<number>;
|
|
103
|
+
/**
|
|
104
|
+
* Checks whether a key exists in cache.
|
|
105
|
+
*
|
|
106
|
+
* @param {keyof CacheType} key Typed cache key.
|
|
107
|
+
* @returns {Promise<boolean>} `true` when the key exists, otherwise `false`.
|
|
108
|
+
*/
|
|
109
|
+
has(key: keyof CacheType): Promise<boolean>;
|
|
110
|
+
/**
|
|
111
|
+
* Checks whether a key is missing from cache.
|
|
112
|
+
*
|
|
113
|
+
* @param {keyof CacheType} key Typed cache key.
|
|
114
|
+
* @returns {Promise<boolean>} `true` when the key does not exist, otherwise `false`.
|
|
115
|
+
*/
|
|
116
|
+
missing(key: keyof CacheType): Promise<boolean>;
|
|
117
|
+
/**
|
|
118
|
+
* Reads and removes a value in a single operation.
|
|
119
|
+
*
|
|
120
|
+
* If the key is missing and `defaultValue` is provided, the callback result is returned.
|
|
121
|
+
* Implementations typically do not persist this fallback value.
|
|
122
|
+
*
|
|
123
|
+
* @template {keyof CacheType} K
|
|
124
|
+
* @param {K} key Typed cache key.
|
|
125
|
+
* @param {(() => CacheType[K] | Promise<CacheType[K]>) | undefined} defaultValue Optional fallback callback for
|
|
126
|
+
* cache misses.
|
|
127
|
+
* @returns {Promise<CacheType[K] | undefined>} The removed value, fallback value, or `undefined`.
|
|
128
|
+
*/
|
|
129
|
+
pull<K extends keyof CacheType>(key: K, defaultValue?: () => CacheType[K] | Promise<CacheType[K]>): Promise<CacheType[K] | undefined>;
|
|
130
|
+
/**
|
|
131
|
+
* Deletes a key from cache.
|
|
132
|
+
*
|
|
133
|
+
* @param {keyof CacheType} key Typed cache key.
|
|
134
|
+
* @returns {Promise<boolean>} `true` when at least one value is removed by the implementation.
|
|
135
|
+
*/
|
|
136
|
+
delete(key: keyof CacheType): Promise<boolean>;
|
|
137
|
+
/**
|
|
138
|
+
* Removes all cache entries.
|
|
139
|
+
*
|
|
140
|
+
* @returns {Promise<void>} A promise that resolves when flush is complete.
|
|
141
|
+
*/
|
|
142
|
+
flush(): Promise<void>;
|
|
143
|
+
/**
|
|
144
|
+
* Retrieves multiple values in the same order as the provided keys.
|
|
145
|
+
*
|
|
146
|
+
* @template {keyof CacheType} K
|
|
147
|
+
* @param {K[]} keys Typed key list.
|
|
148
|
+
* @returns {Promise<Array<CacheType[K] | undefined>>} An array with one value per key.
|
|
149
|
+
* Missing entries are `undefined`.
|
|
150
|
+
*/
|
|
151
|
+
getMany<K extends keyof CacheType>(keys: K[]): Promise<Array<CacheType[K] | undefined>>;
|
|
152
|
+
/**
|
|
153
|
+
* Stores multiple key/value pairs.
|
|
154
|
+
*
|
|
155
|
+
* TTL rules are the same as `set` for all informed entries.
|
|
156
|
+
*
|
|
157
|
+
* @param {Partial<CacheType>} values Partial map of keys and values to store.
|
|
158
|
+
* @param {number | undefined} ttl Optional expiration time in milliseconds.
|
|
159
|
+
* @returns {Promise<boolean[]>} An array of per-entry success flags, preserving implementation order.
|
|
160
|
+
*/
|
|
161
|
+
setMany(values: Partial<CacheType>, ttl?: number): Promise<boolean[]>;
|
|
162
|
+
/**
|
|
163
|
+
* Adds a cache handler/driver to the cache manager.
|
|
164
|
+
*
|
|
165
|
+
* @param {CacheHandlerInterface<CacheType>} handler Concrete handler implementation.
|
|
166
|
+
*/
|
|
167
|
+
pushHandler(handler: CacheHandlerInterface<CacheType>): void;
|
|
168
|
+
/**
|
|
169
|
+
* Creates a new cache instance bound to a specific handler name.
|
|
170
|
+
*
|
|
171
|
+
* The original instance is not mutated.
|
|
172
|
+
*
|
|
173
|
+
* @param {string} name Handler name to bind.
|
|
174
|
+
* @returns {CacheInterface<CacheType>} A new cache instance scoped to the selected handler.
|
|
175
|
+
*/
|
|
176
|
+
drive(name: string): CacheInterface<CacheType>;
|
|
177
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheInterface.js","sourceRoot":"","sources":["../../src/Interfaces/CacheInterface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Interfaces/index.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
// Cache
|
|
18
|
+
__exportStar(require("./Cache/index"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,QAAQ;AACR,gDAA8B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/typescript/lib/lib.es2024.d.ts","../node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/typescript/lib/lib.es2023.intl.d.ts","../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../node_modules/typescript/lib/lib.es2024.collection.d.ts","../node_modules/typescript/lib/lib.es2024.object.d.ts","../node_modules/typescript/lib/lib.es2024.promise.d.ts","../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2024.string.d.ts","../node_modules/typescript/lib/lib.esnext.array.d.ts","../node_modules/typescript/lib/lib.esnext.collection.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/typescript/lib/lib.esnext.promise.d.ts","../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../node_modules/typescript/lib/lib.esnext.float16.d.ts","../node_modules/typescript/lib/lib.esnext.error.d.ts","../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/Interfaces/CacheHandlerInterface.ts","../src/Interfaces/CacheInterface.ts","../src/Interfaces/index.ts","../node_modules/@odg/exception/dist/exceptions/Exception.d.ts","../node_modules/@odg/exception/dist/exceptions/UnknownException.d.ts","../node_modules/@odg/exception/dist/exceptions/AbortException.d.ts","../node_modules/@odg/exception/dist/exceptions/InvalidArgumentException.d.ts","../node_modules/@odg/exception/dist/index.d.ts","../src/Exceptions/CacheHandlerException.ts","../src/Cache/CacheManager.ts","../src/Cache/Cache.ts","../src/Cache/index.ts","../src/index.ts","../node_modules/keyv/dist/index.d.cts","../src/Exceptions/CacheIteratorException.ts","../src/Exceptions/index.ts","../src/Cache/Handlers/KeyvCacheHandler.ts","../node_modules/@types/node/compatibility/iterators.d.ts","../node_modules/@types/node/globals.typedarray.d.ts","../node_modules/@types/node/buffer.buffer.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/web-globals/abortcontroller.d.ts","../node_modules/@types/node/web-globals/blob.d.ts","../node_modules/@types/node/web-globals/console.d.ts","../node_modules/@types/node/web-globals/crypto.d.ts","../node_modules/@types/node/web-globals/domexception.d.ts","../node_modules/@types/node/web-globals/encoding.d.ts","../node_modules/@types/node/web-globals/events.d.ts","../node_modules/undici-types/utility.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client-stats.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/round-robin-pool.d.ts","../node_modules/undici-types/h2c-client.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-call-history.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/snapshot-agent.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/env-http-proxy-agent.d.ts","../node_modules/undici-types/retry-handler.d.ts","../node_modules/undici-types/retry-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/cache-interceptor.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/util.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/eventsource.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/index.d.ts","../node_modules/@types/node/web-globals/fetch.d.ts","../node_modules/@types/node/web-globals/importmeta.d.ts","../node_modules/@types/node/web-globals/messaging.d.ts","../node_modules/@types/node/web-globals/navigator.d.ts","../node_modules/@types/node/web-globals/performance.d.ts","../node_modules/@types/node/web-globals/storage.d.ts","../node_modules/@types/node/web-globals/streams.d.ts","../node_modules/@types/node/web-globals/timers.d.ts","../node_modules/@types/node/web-globals/url.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/inspector.generated.d.ts","../node_modules/@types/node/inspector/promises.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/path/posix.d.ts","../node_modules/@types/node/path/win32.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/quic.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/sea.d.ts","../node_modules/@types/node/sqlite.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/test/reporters.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/util/types.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@vitest/pretty-format/dist/index.d.ts","../node_modules/@vitest/utils/dist/display.d.ts","../node_modules/@vitest/utils/dist/types.d.ts","../node_modules/@vitest/utils/dist/helpers.d.ts","../node_modules/@vitest/utils/dist/timers.d.ts","../node_modules/@vitest/utils/dist/index.d.ts","../node_modules/@vitest/utils/dist/types.d-BCElaP-c.d.ts","../node_modules/@vitest/utils/dist/diff.d.ts","../node_modules/@vitest/runner/dist/tasks.d-DI5LbrqA.d.ts","../node_modules/@vitest/runner/dist/index.d.ts","../node_modules/vitest/dist/chunks/traces.d.402V_yFI.d.ts","../node_modules/vite/types/hmrPayload.d.ts","../node_modules/vite/dist/node/chunks/moduleRunnerTransport.d.ts","../node_modules/vite/types/customEvent.d.ts","../node_modules/vite/types/hot.d.ts","../node_modules/vite/dist/node/module-runner.d.ts","../node_modules/@vitest/snapshot/dist/environment.d-DOJxxZV9.d.ts","../node_modules/@vitest/snapshot/dist/rawSnapshot.d-U2kJUxDr.d.ts","../node_modules/@vitest/snapshot/dist/index.d.ts","../node_modules/vitest/dist/chunks/config.d.EJLVE3es.d.ts","../node_modules/vitest/dist/chunks/environment.d.CrsxCzP1.d.ts","../node_modules/vitest/dist/chunks/rpc.d.BFMWpdph.d.ts","../node_modules/vitest/dist/chunks/worker.d.B84sVRy0.d.ts","../node_modules/vitest/dist/chunks/browser.d.X3SXoOCV.d.ts","../node_modules/@vitest/spy/optional-types.d.ts","../node_modules/@vitest/spy/dist/index.d.ts","../node_modules/tinyrainbow/dist/index.d.ts","../node_modules/@standard-schema/spec/dist/index.d.ts","../node_modules/@types/deep-eql/index.d.ts","../node_modules/assertion-error/index.d.ts","../node_modules/@types/chai/index.d.ts","../node_modules/@vitest/expect/dist/index.d.ts","../node_modules/@vitest/runner/dist/utils.d.ts","../node_modules/tinybench/dist/index.d.ts","../node_modules/vitest/dist/chunks/benchmark.d.DAaHLpsq.d.ts","../node_modules/vitest/dist/chunks/global.d.x-ILCfAE.d.ts","../node_modules/vitest/optional-runtime-types.d.ts","../node_modules/@vitest/mocker/dist/types.d-BjI5eAwu.d.ts","../node_modules/@vitest/mocker/dist/index.d-B41z0AuW.d.ts","../node_modules/@vitest/mocker/dist/index.d.ts","../node_modules/vitest/dist/chunks/suite.d.udJtyAgw.d.ts","../node_modules/vitest/dist/chunks/evaluatedModules.d.BxJ5omdx.d.ts","../node_modules/vitest/dist/runners.d.ts","../node_modules/expect-type/dist/utils.d.ts","../node_modules/expect-type/dist/overloads.d.ts","../node_modules/expect-type/dist/branding.d.ts","../node_modules/expect-type/dist/messages.d.ts","../node_modules/expect-type/dist/index.d.ts","../node_modules/vitest/dist/index.d.ts","../node_modules/vitest/globals.d.ts"],"fileIdsList":[[89,101,164,172,176,179,181,182,183,195],[85,101,164,172,176,179,181,182,183,195],[85,86,87,88,101,164,172,176,179,181,182,183,195],[101,164,172,176,179,181,182,183,195],[101,164,172,176,179,181,182,183,195,249,250],[101,161,162,164,172,176,179,181,182,183,195],[101,163,164,172,176,179,181,182,183,195],[164,172,176,179,181,182,183,195],[101,164,172,176,179,181,182,183,195,203],[101,164,165,170,172,175,176,179,181,182,183,185,195,200,212],[101,164,165,166,172,175,176,179,181,182,183,195],[101,164,167,172,176,179,181,182,183,195,213],[101,164,168,169,172,176,179,181,182,183,186,195],[101,164,169,172,176,179,181,182,183,195,200,209],[101,164,170,172,175,176,179,181,182,183,185,195],[101,163,164,171,172,176,179,181,182,183,195],[101,164,172,173,176,179,181,182,183,195],[101,164,172,174,175,176,179,181,182,183,195],[101,163,164,172,175,176,179,181,182,183,195],[101,164,172,175,176,177,179,181,182,183,195,200,212],[101,164,172,175,176,177,179,181,182,183,195,200,203],[101,151,164,172,175,176,178,179,181,182,183,185,195,200,212],[101,164,172,175,176,178,179,181,182,183,185,195,200,209,212],[101,164,172,176,178,179,180,181,182,183,195,200,209,212],[99,100,101,102,103,104,105,106,107,108,109,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219],[101,164,172,175,176,179,181,182,183,195],[101,164,172,176,179,181,183,195],[101,164,172,176,179,181,182,183,184,195,212],[101,164,172,175,176,179,181,182,183,185,195,200],[101,164,172,176,179,181,182,183,186,195],[101,164,172,176,179,181,182,183,187,195],[101,164,172,175,176,179,181,182,183,190,195],[101,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219],[101,164,172,176,179,181,182,183,192,195],[101,164,172,176,179,181,182,183,193,195],[101,164,169,172,176,179,181,182,183,185,195,203],[101,164,172,175,176,179,181,182,183,195,196],[101,164,172,176,179,181,182,183,195,197,213,216],[101,164,172,175,176,179,181,182,183,195,200,202,203],[101,164,172,176,179,181,182,183,195,201,203],[101,164,172,176,179,181,182,183,195,203,213],[101,164,172,176,179,181,182,183,195,204],[101,161,164,172,176,179,181,182,183,195,200,206,212],[101,164,172,176,179,181,182,183,195,200,205],[101,164,172,175,176,179,181,182,183,195,207,208],[101,164,172,176,179,181,182,183,195,207,208],[101,164,169,172,176,179,181,182,183,185,195,200,209],[101,164,172,176,179,181,182,183,195,210],[101,164,172,176,179,181,182,183,185,195,211],[101,164,172,176,178,179,181,182,183,193,195,212],[101,164,172,176,179,181,182,183,195,213,214],[101,164,169,172,176,179,181,182,183,195,214],[101,164,172,176,179,181,182,183,195,200,215],[101,164,172,176,179,181,182,183,184,195,216],[101,164,172,176,179,181,182,183,195,217],[101,164,167,172,176,179,181,182,183,195],[101,164,169,172,176,179,181,182,183,195],[101,164,172,176,179,181,182,183,195,213],[101,151,164,172,176,179,181,182,183,195],[101,164,172,176,179,181,182,183,195,212],[101,164,172,176,179,181,182,183,195,218],[101,164,172,176,179,181,182,183,190,195],[101,164,172,176,179,181,182,183,195,208],[101,151,164,172,175,176,177,179,181,182,183,190,195,200,203,212,215,216,218],[101,164,172,176,179,181,182,183,195,200,219],[101,164,172,176,179,181,182,183,195,222,228,230,246,247,248,251,256],[101,164,172,176,179,181,182,183,195,258],[101,164,172,176,179,181,182,183,195,258,259],[101,164,172,176,179,181,182,183,195,226,228,229],[101,164,172,176,179,181,182,183,195,226,228],[101,164,172,176,179,181,182,183,195,226],[101,164,172,176,179,181,182,183,195,221,226,237,238],[101,164,172,176,179,181,182,183,195,221,237],[101,164,172,176,179,181,182,183,195,245],[101,164,172,176,179,181,182,183,195,221,227],[101,164,172,176,179,181,182,183,195,221],[101,164,172,176,179,181,182,183,195,223],[101,164,172,176,179,181,182,183,195,221,222,223,224,225],[101,164,172,176,179,181,182,183,195,264,265],[101,164,172,176,179,181,182,183,195,264,265,266,267],[101,164,172,176,179,181,182,183,195,264,266],[101,164,172,176,179,181,182,183,195,264],[101,116,119,122,123,164,172,176,179,181,182,183,195,212],[101,119,164,172,176,179,181,182,183,195,200,212],[101,119,123,164,172,176,179,181,182,183,195,212],[101,164,172,176,179,181,182,183,195,200],[101,113,164,172,176,179,181,182,183,195],[101,117,164,172,176,179,181,182,183,195],[101,115,116,119,164,172,176,179,181,182,183,195,212],[101,164,172,176,179,181,182,183,185,195,209],[101,164,172,176,179,181,182,183,195,220],[101,113,164,172,176,179,181,182,183,195,220],[101,115,119,164,172,176,179,181,182,183,185,195,212],[101,110,111,112,114,118,164,172,175,176,179,181,182,183,195,200,212],[101,119,128,136,164,172,176,179,181,182,183,195],[101,111,117,164,172,176,179,181,182,183,195],[101,119,145,146,164,172,176,179,181,182,183,195],[101,111,114,119,164,172,176,179,181,182,183,195,203,212,220],[101,119,164,172,176,179,181,182,183,195],[101,115,119,164,172,176,179,181,182,183,195,212],[101,110,164,172,176,179,181,182,183,195],[101,113,114,115,117,118,119,120,121,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,146,147,148,149,150,164,172,176,179,181,182,183,195],[101,119,138,141,164,172,176,179,181,182,183,195],[101,119,128,129,130,164,172,176,179,181,182,183,195],[101,117,119,129,131,164,172,176,179,181,182,183,195],[101,118,164,172,176,179,181,182,183,195],[101,111,113,119,164,172,176,179,181,182,183,195],[101,119,123,129,131,164,172,176,179,181,182,183,195],[101,123,164,172,176,179,181,182,183,195],[101,117,119,122,164,172,176,179,181,182,183,195,212],[101,111,115,119,128,164,172,176,179,181,182,183,195],[101,119,138,164,172,176,179,181,182,183,195],[101,131,164,172,176,179,181,182,183,195],[101,113,119,145,164,172,176,179,181,182,183,195,203,218,220],[101,164,172,176,179,181,182,183,195,232],[101,164,172,176,179,181,182,183,195,232,233,234,235],[101,164,172,176,179,181,182,183,195,234],[101,164,172,176,179,181,182,183,195,230,253,254,256],[101,164,172,176,179,181,182,183,195,230,231,243,256],[101,164,172,176,179,181,182,183,195,221,228,230,239,256],[101,164,172,176,179,181,182,183,195,236],[101,164,172,176,179,181,182,183,195,221,230,239,242,252,255,256],[101,164,172,176,179,181,182,183,195,230,231,236,239,256],[101,164,172,176,179,181,182,183,195,230,253,254,255,256],[101,164,172,176,179,181,182,183,195,230,236,240,241,242,256],[101,164,172,176,179,181,182,183,195,221,226,228,230,231,236,239,240,241,242,243,244,246,252,253,254,255,256,257,260,261,262,263,268],[101,164,172,176,179,181,182,183,195,221,228,230,231,239,240,253,254,255,256,261],[101,164,172,176,179,181,182,183,195,269],[82,84,90,91,101,164,172,176,179,181,182,183,195],[82,90,101,164,172,176,179,181,182,183,195],[82,95,97,101,164,172,176,179,181,182,183,195],[91,92,101,164,172,176,179,181,182,183,195],[96,101,164,172,176,179,181,182,183,195],[82,101,164,172,176,179,181,182,183,195],[82,83,101,164,172,176,179,181,182,183,195],[84,93,101,164,172,176,179,181,182,183,195]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"5b495037cf5d6bcc16e2242d2f3af89653a2c0d3b9874236ee91f1f989d13691","signature":"e0224ccb051b8aa4cbb66a78cf838fe7ce177f440ad55a2f7f94b7383f58ecf8","impliedFormat":1},{"version":"5f3dfb2f37428fc06d6a191b6808b6afb79b093f4af4e60dc34f1b78281e44f4","signature":"3b61f790945430ff4610b4253a65bd87247c0d5c7c28ddd59348cc98ce63fa8e","impliedFormat":1},{"version":"ba0fa395fe9fd1ae009827cd8e9615a29e54933f311d8ea1558f06a3bffa9aac","signature":"4f4edf019c0e81c87faadbf6ca900f11b5b02fb8ceabbb9ef87b1bf484477155","impliedFormat":1},{"version":"ac63395a3c8cdeea8527a00e695fc44aab5838168c2872c386955bbfc2413399","impliedFormat":1},{"version":"879df2101ebd6bb3e29509b2976900e765b3e7728c855d56b17f62a790994f84","impliedFormat":1},{"version":"c20483f7ddf6c9eca06972f8fe011484dbfc3f0fcecc99bd7fd14a7782582107","impliedFormat":1},{"version":"b8fbac0ef9f09e127422786b6627877f2b9587aa34431a84b655c2f3048c9106","impliedFormat":1},{"version":"53d962efe854da6aad813ae32a96a9c807ac3347d16001fd28bc9d1078090a94","impliedFormat":1},{"version":"6637979e191073607874c5165f1e0d25949c1784a71323a5bec73af70ac83ba4","signature":"2ce799f98fe50e8b9083c0f1de14034c0aceb4c3c078e3286cdec1afccceecb7","impliedFormat":1},{"version":"214a8bf4f957d5817faff1015137a9fd76c80b800e1bec3e3a2c42dfc69e8868","signature":"fa8c84d23dc3b919570c81748d40806884afb9d242c701563328f29121fa1dbb","impliedFormat":1},{"version":"e90427762c7d47ee2e5a5b170a681c22e13898e3e91112dfa926ec0864eb848d","signature":"6e8f55d2a7cc52d2c92ee8c806fa4ba26234ac57061db32eae5b1c5a7f19b710","impliedFormat":1},{"version":"8c6f89648fe5022be4f78c044bfb0389a81dcb0e7cd90df7ae69b9f11c1660ff","signature":"e4a7c3c3d3f45141a1d78f4cdbf0bf8ff98bca87b819be23351327fdb8f77f88","impliedFormat":1},{"version":"9798972cb68c5d2134e792d9f9295fbd6cd7f99ebe9cc1bfa8f7cebcdd1d0822","signature":"175eea15a162e7a0b8258e6af57c7b619948dd805024455fb6b6db7cda1aa3a5","impliedFormat":1},{"version":"03464dcca517bcfb982cefdc316afe821aae8bbe02dcd4765dfa25bc2aecd097","impliedFormat":1},{"version":"7f52ddf9a803c7c7e08dc7e8771545399d73fa78e24b4eb4eedbedf65a3105be","signature":"b0eb52144bd664bc6bf6f66728ed47a10bb8c5c81abbd4edc104760af542ee23","impliedFormat":1},{"version":"9acd8cf863ccb06aef1ac552dcef33f5b7132abbd936cfe7d52db8e7193a5dff","impliedFormat":1},{"version":"243d9646384e2def22366bbd3bce95b0b40edb86ee319f7897d0be7f5c54e1e4","signature":"85c1710f802ac1646a794517e9d0b37f8adb04f024f60de7c6bac3ef6890b255","impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"438b41419b1df9f1fbe33b5e1b18f5853432be205991d1b19f5b7f351675541e","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"10ec5e82144dfac6f04fa5d1d6c11763b3e4dbbac6d99101427219ab3e2ae887","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"074de5b2fdead0165a2757e3aaef20f27a6347b1c36adea27d51456795b37682","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"24371e69a38fc33e268d4a8716dbcda430d6c2c414a99ff9669239c4b8f40dea","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"3e11fce78ad8c0e1d1db4ba5f0652285509be3acdd519529bc8fcef85f7dafd9","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"9c32412007b5662fd34a8eb04292fb5314ec370d7016d1c2fb8aa193c807fe22","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"6ebe8ebb8659aaa9d1acbf3710d7dae3e923e97610238b9511c25dc39023a166","impliedFormat":1},{"version":"e85d7f8068f6a26710bff0cc8c0fc5e47f71089c3780fbede05857331d2ddec9","impliedFormat":1},{"version":"7befaf0e76b5671be1d47b77fcc65f2b0aad91cc26529df1904f4a7c46d216e9","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"c63b9ada8c72f95aac5db92aea07e5e87ec810353cdf63b2d78f49a58662cf6c","impliedFormat":1},{"version":"1cc2a09e1a61a5222d4174ab358a9f9de5e906afe79dbf7363d871a7edda3955","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"b64d4d1c5f877f9c666e98e833f0205edb9384acc46e98a1fef344f64d6aba44","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"c9381908473a1c92cb8c516b184e75f4d226dad95c3a85a5af35f670064d9a2f","impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"3fad5618174d74a34ee006406d4eb37e8d07dd62eb1315dbf52f48d31a337547","impliedFormat":1},{"version":"7e49f52a159435fc8df4de9dc377ef5860732ca2dc9efec1640531d3cf5da7a3","impliedFormat":1},{"version":"dd4bde4bdc2e5394aed6855e98cf135dfdf5dd6468cad842e03116d31bbcc9bc","impliedFormat":1},{"version":"4d4e879009a84a47c05350b8dca823036ba3a29a3038efed1be76c9f81e45edf","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b50a819485ffe0d237bf0d131e92178d14d11e2aa873d73615a9ec578b341f5","impliedFormat":1},{"version":"9ba13b47cb450a438e3076c4a3f6afb9dc85e17eae50f26d4b2d72c0688c9251","impliedFormat":1},{"version":"b64cd4401633ea4ecadfd700ddc8323a13b63b106ac7127c1d2726f32424622c","impliedFormat":1},{"version":"37c6e5fe5715814412b43cc9b50b24c67a63c4e04e753e0d1305970d65417a60","impliedFormat":1},{"version":"1d024184fb57c58c5c91823f9d10b4915a4867b7934e89115fd0d861a9df27c8","impliedFormat":1},{"version":"ee0e4946247f842c6dd483cbb60a5e6b484fee07996e3a7bc7343dfb68a04c5d","impliedFormat":1},{"version":"ef051f42b7e0ef5ca04552f54c4552eac84099d64b6c5ad0ef4033574b6035b8","impliedFormat":1},{"version":"853a43154f1d01b0173d9cbd74063507ece57170bad7a3b68f3fa1229ad0a92f","impliedFormat":1},{"version":"56231e3c39a031bfb0afb797690b20ed4537670c93c0318b72d5180833d98b72","impliedFormat":1},{"version":"5cc7c39031bfd8b00ad58f32143d59eb6ffc24f5d41a20931269011dccd36c5e","impliedFormat":1},{"version":"12d602a8fe4c2f2ba4f7804f5eda8ba07e0c83bf5cf0cda8baffa2e9967bfb77","affectsGlobalScope":true,"impliedFormat":1},{"version":"a856ab781967b62b288dfd85b860bef0e62f005ed4b1b8fa25c53ce17856acaf","impliedFormat":1},{"version":"cc25940cfb27aa538e60d465f98bb5068d4d7d33131861ace43f04fe6947d68f","impliedFormat":1},{"version":"8db46b61a690f15b245cf16270db044dc047dce9f93b103a59f50262f677ea1f","impliedFormat":1},{"version":"01ff95aa1443e3f7248974e5a771f513cb2ac158c8898f470a1792f817bee497","impliedFormat":1},{"version":"757227c8b345c57d76f7f0e3bbad7a91ffca23f1b2547cbed9e10025816c9cb7","impliedFormat":1},{"version":"959d0327c96dd9bb5521f3ed6af0c435996504cc8dd46baa8e12cb3b3518cef1","impliedFormat":1},{"version":"e1c1a0b4d1ead0de9eca52203aeb1f771f21e6238d6fcd15aa56ac2a02f1b7bf","impliedFormat":1},{"version":"101f482fd48cb4c7c0468dcc6d62c843d842977aea6235644b1edd05e81fbf22","impliedFormat":1},{"version":"266bee0a41e9c3ba335583e21e9277ae03822402cf5e8e1d99f5196853613b98","affectsGlobalScope":true,"impliedFormat":1},{"version":"386606f8a297988535cb1401959041cfa7f59d54b8a9ed09738e65c98684c976","impliedFormat":1},{"version":"3ef397f12387eff17f550bc484ea7c27d21d43816bbe609d495107f44b97e933","impliedFormat":1},{"version":"1023282e2ba810bc07905d3668349fbd37a26411f0c8f94a70ef3c05fe523fcf","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"e236b5eba291f51bdf32c231673e6cab81b5410850e61f51a7a524dddadc0f95","impliedFormat":1},{"version":"ce8653341224f8b45ff46d2a06f2cacb96f841f768a886c9d8dd8ec0878b11bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f2c62938251b45715fd2a9887060ec4fbc8724727029d1cbce373747252bdd7","impliedFormat":1},{"version":"e3ace08b6bbd84655d41e244677b474fd995923ffef7149ddb68af8848b60b05","impliedFormat":1},{"version":"132580b0e86c48fab152bab850fc57a4b74fe915c8958d2ccb052b809a44b61c","impliedFormat":1},{"version":"90a278f5fab7557e69e97056c0841adf269c42697194f0bd5c5e69152637d4b3","impliedFormat":1},{"version":"69c9a5a9392e8564bd81116e1ed93b13205201fb44cb35a7fde8c9f9e21c4b23","impliedFormat":1},{"version":"5f8fc37f8434691ffac1bfd8fc2634647da2c0e84253ab5d2dd19a7718915b35","impliedFormat":1},{"version":"5981c2340fd8b076cae8efbae818d42c11ffc615994cb060b1cd390795f1be2b","impliedFormat":1},{"version":"f263485c9ca90df9fe7bb3a906db9701997dc6cae86ace1f8106ac8d2f7f677b","impliedFormat":1},{"version":"1edcf2f36fc332615846bde6dcc71a8fe526065505bc5e3dcfd65a14becdf698","affectsGlobalScope":true,"impliedFormat":1},{"version":"0250da3eb85c99624f974e77ef355cdf86f43980251bc371475c2b397ba55bcd","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"3d3a5f27ffbc06c885dd4d5f9ee20de61faf877fe2c3a7051c4825903d9a7fdc","impliedFormat":1},{"version":"12806f9f085598ef930edaf2467a5fa1789a878fba077cd27e85dc5851e11834","impliedFormat":1},{"version":"1dbca38aa4b0db1f4f9e6edacc2780af7e028b733d2a98dd3598cd235ca0c97d","impliedFormat":1},{"version":"a43fe41c33d0a192a0ecaf9b92e87bef3709c9972e6d53c42c49251ccb962d69","impliedFormat":1},{"version":"a177959203c017fad3ecc4f3d96c8757a840957a4959a3ae00dab9d35961ca6c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc727ccf9b36e257ff982ea0badeffbfc2c151802f741bddff00c6af3b784cf","impliedFormat":1},{"version":"19143c930aef7ccf248549f3e78992f2f1049118ec5d4622e95025057d8e392b","impliedFormat":1},{"version":"4844a4c9b4b1e812b257676ed8a80b3f3be0e29bf05e742cc2ea9c3c6865e6c6","impliedFormat":1},{"version":"064878a60367e0407c42fb7ba02a2ea4d83257357dc20088e549bd4d89433e9c","impliedFormat":1},{"version":"cca8917838a876e2d7016c9b6af57cbf11fdf903c5fdd8e613fa31840b2957bf","impliedFormat":1},{"version":"d91ae55e4282c22b9c21bc26bd3ef637d3fe132507b10529ae68bf76f5de785b","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"7e8a671604329e178bb479c8f387715ebd40a091fc4a7552a0a75c2f3a21c65c","impliedFormat":1},{"version":"41ef7992c555671a8fe54db302788adefa191ded810a50329b79d20a6772d14c","impliedFormat":1},{"version":"041a7781b9127ab568d2cdcce62c58fdea7c7407f40b8c50045d7866a2727130","impliedFormat":1},{"version":"4c5e90ddbcd177ad3f2ffc909ae217c87820f1e968f6959e4b6ba38a8cec935e","impliedFormat":1},{"version":"b70dd9a44e1ac42f030bb12e7d79117eac7cb74170d72d381a1e7913320af23a","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1},{"version":"333947325e15dd42973e611203f6caf32016b0ec25d0f9c83cd5c54d1a8b1d49","impliedFormat":99},{"version":"0528f6d21f7a02d4092895090d2dd86104bd5a3e79eced96d5a1a7dd90943d17","impliedFormat":99},{"version":"b5ce343886d23392be9c8280e9f24a87f1d7d3667f6672c2fe4aa61fa4ece7d4","impliedFormat":99},{"version":"eb64a68249f1ee45e496a23cd0be8fe8c84aecb4c038b86d4abcc765c5ba115e","impliedFormat":99},{"version":"b0857bb28fd5236ace84280f79a25093f919fd0eff13e47cc26ea03de60a7294","impliedFormat":99},{"version":"5e43e0824f10cd8c48e7a8c5c673638488925a12c31f0f9e0957965c290eb14c","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"3b0a56d056d81a011e484b9c05d5e430711aaecd561a788bad1d0498aad782c7","impliedFormat":99},{"version":"8467f4c442988b9b0e68fd2c2c12fae1d1516c42bb3a593a63d711ea05969332","impliedFormat":99},{"version":"5225e4dadc4ca5be23f80c75245a57e37938b87c9f5c266e203b3db77c9095e5","impliedFormat":99},{"version":"ac3d263474022e9a14c43f588f485d549641d839b159ecc971978b90f34bdf6b","impliedFormat":99},{"version":"3b89216a7e38a454985ad17bb2ff85792837dc812f2a89fa5f60ad0a2e216fa7","impliedFormat":99},{"version":"10073cdcf56982064c5337787cc59b79586131e1b28c106ede5bff362f912b70","impliedFormat":99},{"version":"82179358c2d9d7347f1602dc9300039a2250e483137b38ebf31d4d2e5519c181","impliedFormat":99},{"version":"4e003c868b0d8f8ad200b96cbc653e18e513fa23e1c19c4fe3cc25d4394efc47","impliedFormat":99},{"version":"091546ac9077cddcd7b9479cc2e0c677238bf13e39eab4b13e75046c3328df93","impliedFormat":99},{"version":"42a12f2faa483c9b48195ed794d22698162274e755f6e07219c2351c4f08d732","impliedFormat":99},{"version":"727858fb893b87791876dee5e3cd4c187a721d2de516fd19d3d00dc6e8a894b3","impliedFormat":99},{"version":"5bfaa2ee33e63a1b17b08dbefd7a3c42d1e0f914e52aca5bef679b420bd7a07c","impliedFormat":99},{"version":"7d5c6cc5d537c47c7723a1fe76411b99373eb55c487045dfd076c1956e87389a","impliedFormat":99},{"version":"bcbd3becd08b4515225880abea0dbfbbf0d1181ce3af8f18f72f61edbe4febfb","impliedFormat":99},{"version":"a86701e56b10a6d1ef9b2ecaeedbab94ed7b957a646cd71fd09d02b323c6d3d7","impliedFormat":99},{"version":"b3f0791a73b6521da68107c5ba1bfed4bc21ff7099b892700fd65670e88ef6ee","impliedFormat":99},{"version":"d0411dddbef50f9ad568ee9d24b108153bcb8f0db1094de6dfbadf02feb3aa70","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"4ead13a482c539b77394b2a97e3b877b809eac596390371cea490286f53b996a","impliedFormat":99},{"version":"06db2f8ba1d1dfacf04529cb731081ab23f133f29c7608ebdfbcab356996827c","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"968faa90c8ee361d90cb79cf2b0d95904d3e113161e9e07dba1ae6dce32f732a","affectsGlobalScope":true,"impliedFormat":99},{"version":"1c88b51b966e2791c4a8d96f52fe857c282615d77a128d3239829981d4ddfb27","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"6987dfb4b0c4e02112cc4e548e7a77b3d9ddfeffa8c8a2db13ceac361a4567d9","impliedFormat":99},{"version":"72a863bc6c0fc7a6263d8e07279167d86467a3869b5f002b1df6eaf5000ccc7b","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"5e2ba3d18d78aebbde1f34bde356e41e9c76eeaeaeee56a37036596a9eff4211","impliedFormat":99},{"version":"8280ae8ccc0493b32d1742d585357ab9f0a508ea050af25a5a20d64010d0a5cf","impliedFormat":99},{"version":"7adfd9f9056ecd4ae6c65fde2a98654960c662714c73f048478959d04c09e144","impliedFormat":99},{"version":"32b35cf0dc3a1b1a7118b61c34ce2ad1a29695851679f9ec34e0776f2ece2a69","impliedFormat":99},{"version":"b413fbc6658fe2774f8bf9a15cf4c53e586fc38a2d5256b3b9647da242c14389","impliedFormat":99},{"version":"37c93220e879dc7e87c10f34f039ecb6505b78970d11ceefa0231dbcc36f5365","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"64db14db2bf37ac089766fdb3c7e1160fabc10e9929bc2deeede7237e4419fc8","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"0d7b337b785f1b8f42ec89bfe8e71e9c1bbd0624f02578aa26c8e6223ed1208d","impliedFormat":99},{"version":"8d7cbeea0454e05a3cdf3370c5df267072c4f1dc6c48a45a9ad750d7890443d7","affectsGlobalScope":true,"impliedFormat":99}],"root":[[82,84],[90,94],[96,98]],"options":{"allowJs":false,"alwaysStrict":true,"declaration":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"module":100,"newLine":1,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitReturns":true,"noImplicitThis":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","preserveConstEnums":true,"removeComments":false,"sourceMap":true,"strict":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"target":9},"referencedMap":[[87,1],[85,1],[88,2],[86,1],[89,3],[248,4],[251,5],[249,4],[161,6],[162,6],[163,7],[101,8],[164,9],[165,10],[166,11],[99,4],[167,12],[168,13],[169,14],[170,15],[171,16],[172,17],[173,17],[174,18],[175,19],[176,20],[177,21],[102,4],[100,4],[178,22],[179,23],[180,24],[220,25],[181,26],[182,27],[183,26],[184,28],[185,29],[186,30],[187,31],[188,31],[189,31],[190,32],[191,33],[192,34],[193,35],[194,36],[195,37],[196,37],[197,38],[198,4],[199,4],[200,39],[201,40],[202,39],[203,41],[204,42],[205,43],[206,44],[207,45],[208,46],[209,47],[210,48],[211,49],[212,50],[213,51],[214,52],[215,53],[216,54],[217,55],[103,26],[104,4],[105,56],[106,57],[107,4],[108,58],[109,4],[152,59],[153,60],[154,61],[155,61],[156,62],[157,4],[158,9],[159,63],[160,60],[218,64],[219,65],[252,66],[259,67],[260,68],[258,4],[221,4],[230,69],[229,70],[253,69],[237,71],[239,72],[238,73],[246,74],[245,4],[228,75],[222,76],[224,77],[226,78],[225,4],[227,76],[223,4],[250,4],[266,79],[268,80],[267,81],[265,82],[264,4],[95,4],[254,4],[247,4],[80,4],[81,4],[13,4],[15,4],[14,4],[2,4],[16,4],[17,4],[18,4],[19,4],[20,4],[21,4],[22,4],[23,4],[3,4],[24,4],[25,4],[4,4],[26,4],[30,4],[27,4],[28,4],[29,4],[31,4],[32,4],[33,4],[5,4],[34,4],[35,4],[36,4],[37,4],[6,4],[41,4],[38,4],[39,4],[40,4],[42,4],[7,4],[43,4],[48,4],[49,4],[44,4],[45,4],[46,4],[47,4],[8,4],[53,4],[50,4],[51,4],[52,4],[54,4],[9,4],[55,4],[56,4],[57,4],[59,4],[58,4],[60,4],[61,4],[10,4],[62,4],[63,4],[64,4],[11,4],[65,4],[66,4],[67,4],[68,4],[69,4],[1,4],[70,4],[71,4],[12,4],[75,4],[73,4],[78,4],[77,4],[72,4],[76,4],[74,4],[79,4],[128,83],[140,84],[125,85],[141,86],[150,87],[116,88],[117,89],[115,90],[149,91],[144,92],[148,93],[119,94],[137,95],[118,96],[147,97],[113,98],[114,92],[120,99],[121,4],[127,100],[124,99],[111,101],[151,102],[142,103],[131,104],[130,99],[132,105],[135,106],[129,107],[133,108],[145,91],[122,109],[123,110],[136,111],[112,86],[139,112],[138,99],[126,110],[134,113],[143,4],[110,4],[146,114],[233,115],[236,116],[234,115],[232,4],[235,117],[255,118],[244,119],[240,120],[241,71],[262,121],[256,122],[242,123],[261,124],[231,4],[243,125],[269,126],[263,127],[270,128],[257,4],[92,129],[91,130],[98,131],[93,132],[90,1],[96,1],[97,133],[82,4],[83,134],[84,135],[94,136]],"version":"5.9.3"}
|
package/package.json
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@odg/cache",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Stanley TheTemplate for typescript project",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"homepage": "https://github.com/ODGodinho/Stanley-TheTemplate-Typescript",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": "./dist/index.js",
|
|
10
|
+
"./KeyvCacheHandler": "./dist/Cache/Handlers/KeyvCacheHandler.js"
|
|
11
|
+
},
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "rimraf dist/ && tsc --project ./tsconfig.build.json && tsc-alias -p tsconfig.build.json",
|
|
14
|
+
"build:watch": "npm run build && (concurrently \"tsc --project ./tsconfig.build.json -w\" \"tsc-alias -p tsconfig.build.json -w\")",
|
|
15
|
+
"dev": "tsx --env-file=.env ./src/index.ts",
|
|
16
|
+
"start": "node --env-file=.env ./dist/index.js",
|
|
17
|
+
"start:build": "yarn build && node --env-file=.env ./dist/index.js",
|
|
18
|
+
"lint": "odg-lint",
|
|
19
|
+
"lint:fix": "odg-lint --fix",
|
|
20
|
+
"prepare": "husky",
|
|
21
|
+
"test": "vitest run",
|
|
22
|
+
"test:ci": "vitest run --passWithNoTests",
|
|
23
|
+
"test:watch": "vitest --watch"
|
|
24
|
+
},
|
|
25
|
+
"publishConfig": {
|
|
26
|
+
"access": "public"
|
|
27
|
+
},
|
|
28
|
+
"lint-staged": {
|
|
29
|
+
"*": [
|
|
30
|
+
"npm run lint:fix"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"release": {
|
|
34
|
+
"branches": [
|
|
35
|
+
"+([0-9])?(.{+([0-9]),x}).x",
|
|
36
|
+
"main",
|
|
37
|
+
"master",
|
|
38
|
+
"next",
|
|
39
|
+
"next-major",
|
|
40
|
+
{
|
|
41
|
+
"name": "beta",
|
|
42
|
+
"prerelease": true
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "alpha",
|
|
46
|
+
"prerelease": true
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"plugins": [
|
|
50
|
+
"@semantic-release/commit-analyzer",
|
|
51
|
+
"@semantic-release/release-notes-generator",
|
|
52
|
+
"@semantic-release/npm",
|
|
53
|
+
"@semantic-release/github"
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
"files": [
|
|
57
|
+
"./dist/",
|
|
58
|
+
"./README.md"
|
|
59
|
+
],
|
|
60
|
+
"author": "Dragons Gamers <https://www.linkedin.com/in/victor-alves-odgodinho>",
|
|
61
|
+
"license": "MIT",
|
|
62
|
+
"dependencies": {
|
|
63
|
+
"@odg/exception": "^1.8.0"
|
|
64
|
+
},
|
|
65
|
+
"peerDependencies": {
|
|
66
|
+
"keyv": "^5"
|
|
67
|
+
},
|
|
68
|
+
"peerDependenciesMeta": {
|
|
69
|
+
"keyv": {
|
|
70
|
+
"optional": true
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"devDependencies": {
|
|
74
|
+
"@odg/chemical-x": "^2.1.0",
|
|
75
|
+
"@odg/eslint-config": "^3",
|
|
76
|
+
"@odg/tsconfig": "^1.2.1",
|
|
77
|
+
"@types/keyv": "^4.2.0",
|
|
78
|
+
"@types/node": "^25.5.0",
|
|
79
|
+
"@vitest/coverage-istanbul": "^4.1.1",
|
|
80
|
+
"@vitest/runner": "^4.1.1",
|
|
81
|
+
"concurrently": "^9.2.1",
|
|
82
|
+
"husky": "^9.1.7",
|
|
83
|
+
"keyv": "^5.6.0",
|
|
84
|
+
"lint-staged": "^16.4.0",
|
|
85
|
+
"rimraf": "^6.1.3",
|
|
86
|
+
"tsc-alias": "^1.8.16",
|
|
87
|
+
"tsx": "^4.21.0",
|
|
88
|
+
"typescript": "^5.9.3",
|
|
89
|
+
"vite": "^8.0.2",
|
|
90
|
+
"vitest": "^4.1.1"
|
|
91
|
+
},
|
|
92
|
+
"packageManager": "yarn@4.13.0"
|
|
93
|
+
}
|