@ngx-pwa/local-storage 18.0.0 → 20.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/LICENSE +1 -1
- package/fesm2022/ngx-pwa-local-storage.mjs +89 -63
- package/fesm2022/ngx-pwa-local-storage.mjs.map +1 -1
- package/index.d.ts +656 -3
- package/package.json +3 -5
- package/schematics/ng-add/index.js +9 -9
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/ng-update/index.js +14 -24
- package/schematics/ng-update/index.js.map +1 -1
- package/schematics/utility/config.js +24 -34
- package/schematics/utility/config.js.map +1 -1
- package/schematics/utility/module.js +3 -3
- package/schematics/utility/module.js.map +1 -1
- package/esm2022/lib/databases/exceptions.mjs +0 -28
- package/esm2022/lib/databases/indexeddb-database.mjs +0 -308
- package/esm2022/lib/databases/local-database.mjs +0 -66
- package/esm2022/lib/databases/localstorage-database.mjs +0 -158
- package/esm2022/lib/databases/memory-database.mjs +0 -84
- package/esm2022/lib/providers.mjs +0 -66
- package/esm2022/lib/storage.module.mjs +0 -34
- package/esm2022/lib/storages/exceptions.mjs +0 -15
- package/esm2022/lib/storages/storage-map.service.mjs +0 -340
- package/esm2022/lib/tokens.mjs +0 -59
- package/esm2022/lib/validation/json-schema.mjs +0 -5
- package/esm2022/lib/validation/json-validator.mjs +0 -244
- package/esm2022/ngx-pwa-local-storage.mjs +0 -5
- package/esm2022/public-api.mjs +0 -9
- package/lib/databases/exceptions.d.ts +0 -20
- package/lib/databases/indexeddb-database.d.ts +0 -107
- package/lib/databases/local-database.d.ts +0 -18
- package/lib/databases/localstorage-database.d.ts +0 -64
- package/lib/databases/memory-database.d.ts +0 -50
- package/lib/providers.d.ts +0 -56
- package/lib/storage.module.d.ts +0 -19
- package/lib/storages/exceptions.d.ts +0 -10
- package/lib/storages/storage-map.service.d.ts +0 -254
- package/lib/tokens.d.ts +0 -75
- package/lib/validation/json-schema.d.ts +0 -260
- package/lib/validation/json-validator.d.ts +0 -71
- package/public-api.d.ts +0 -7
package/esm2022/lib/tokens.mjs
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from "@angular/core";
|
|
2
|
-
/**
|
|
3
|
-
* Token to provide a prefix to `localStorage` keys.
|
|
4
|
-
*/
|
|
5
|
-
export const LS_PREFIX = new InjectionToken("localStoragePrefix", {
|
|
6
|
-
providedIn: "root",
|
|
7
|
-
factory: () => ""
|
|
8
|
-
});
|
|
9
|
-
/**
|
|
10
|
-
* Default name used for `indexedDB` database.
|
|
11
|
-
*/
|
|
12
|
-
export const DEFAULT_IDB_DB_NAME = "ngStorage";
|
|
13
|
-
/**
|
|
14
|
-
* Token to provide `indexedDB` database name.
|
|
15
|
-
*/
|
|
16
|
-
export const IDB_DB_NAME = new InjectionToken("localStorageIDBDBName", {
|
|
17
|
-
providedIn: "root",
|
|
18
|
-
factory: () => DEFAULT_IDB_DB_NAME
|
|
19
|
-
});
|
|
20
|
-
/**
|
|
21
|
-
* Default version used for `indexedDB` database.
|
|
22
|
-
*/
|
|
23
|
-
export const DEFAULT_IDB_DB_VERSION = 1;
|
|
24
|
-
/**
|
|
25
|
-
* Token to provide `indexedDB` database version.
|
|
26
|
-
* Must be an unsigned **integer**.
|
|
27
|
-
*/
|
|
28
|
-
export const IDB_DB_VERSION = new InjectionToken("localStorageIDBDBVersion", {
|
|
29
|
-
providedIn: "root",
|
|
30
|
-
factory: () => DEFAULT_IDB_DB_VERSION
|
|
31
|
-
});
|
|
32
|
-
/**
|
|
33
|
-
* Default name used for `indexedDB` object store.
|
|
34
|
-
*/
|
|
35
|
-
export const DEFAULT_IDB_STORE_NAME = "localStorage";
|
|
36
|
-
/**
|
|
37
|
-
* Token to provide `indexedDB` store name.
|
|
38
|
-
* For backward compatibility, the default can't be set now, `IndexedDBDatabase` will do it at runtime.
|
|
39
|
-
*/
|
|
40
|
-
export const IDB_STORE_NAME = new InjectionToken("localStorageIDBStoreName", {
|
|
41
|
-
providedIn: "root",
|
|
42
|
-
factory: () => DEFAULT_IDB_STORE_NAME
|
|
43
|
-
});
|
|
44
|
-
/**
|
|
45
|
-
* Default value for interoperability with native `indexedDB` and other storage libs,
|
|
46
|
-
* by changing how values are stored in `indexedDB` database.
|
|
47
|
-
*/
|
|
48
|
-
export const DEFAULT_IDB_NO_WRAP = true;
|
|
49
|
-
/**
|
|
50
|
-
* Token to allow interoperability with native `indexedDB` and other storage libs,
|
|
51
|
-
* by changing how values are stored in `indexedDB` database.
|
|
52
|
-
* Defaults to `true`. Change to `false` for backward compatiblity in existing applications.
|
|
53
|
-
* **DO NOT CHANGE THIS BEHAVIOR ONCE IN PRODUCTION**, as it would break with existing data.
|
|
54
|
-
*/
|
|
55
|
-
export const IDB_NO_WRAP = new InjectionToken("localStorageIDBWrap", {
|
|
56
|
-
providedIn: "root",
|
|
57
|
-
factory: () => DEFAULT_IDB_NO_WRAP
|
|
58
|
-
});
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL3NyYy9saWIvdG9rZW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQVMsb0JBQW9CLEVBQUU7SUFDeEUsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Q0FDbEIsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxXQUFXLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQVMsdUJBQXVCLEVBQUU7SUFDN0UsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLG1CQUFtQjtDQUNuQyxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQztBQUV4Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQVMsMEJBQTBCLEVBQUU7SUFDbkYsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLHNCQUFzQjtDQUN0QyxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLGNBQWMsQ0FBQztBQUVyRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQVMsMEJBQTBCLEVBQUU7SUFDbkYsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLHNCQUFzQjtDQUN0QyxDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUM7QUFFeEM7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQVUscUJBQXFCLEVBQUU7SUFDNUUsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLG1CQUFtQjtDQUNuQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbi8qKlxuICogVG9rZW4gdG8gcHJvdmlkZSBhIHByZWZpeCB0byBgbG9jYWxTdG9yYWdlYCBrZXlzLlxuICovXG5leHBvcnQgY29uc3QgTFNfUFJFRklYID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oXCJsb2NhbFN0b3JhZ2VQcmVmaXhcIiwge1xuICBwcm92aWRlZEluOiBcInJvb3RcIixcbiAgZmFjdG9yeTogKCkgPT4gXCJcIlxufSk7XG5cbi8qKlxuICogRGVmYXVsdCBuYW1lIHVzZWQgZm9yIGBpbmRleGVkREJgIGRhdGFiYXNlLlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9JREJfREJfTkFNRSA9IFwibmdTdG9yYWdlXCI7XG5cbi8qKlxuICogVG9rZW4gdG8gcHJvdmlkZSBgaW5kZXhlZERCYCBkYXRhYmFzZSBuYW1lLlxuICovXG5leHBvcnQgY29uc3QgSURCX0RCX05BTUUgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPihcImxvY2FsU3RvcmFnZUlEQkRCTmFtZVwiLCB7XG4gIHByb3ZpZGVkSW46IFwicm9vdFwiLFxuICBmYWN0b3J5OiAoKSA9PiBERUZBVUxUX0lEQl9EQl9OQU1FXG59KTtcblxuLyoqXG4gKiBEZWZhdWx0IHZlcnNpb24gdXNlZCBmb3IgYGluZGV4ZWREQmAgZGF0YWJhc2UuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lEQl9EQl9WRVJTSU9OID0gMTtcblxuLyoqXG4gKiBUb2tlbiB0byBwcm92aWRlIGBpbmRleGVkREJgIGRhdGFiYXNlIHZlcnNpb24uXG4gKiBNdXN0IGJlIGFuIHVuc2lnbmVkICoqaW50ZWdlcioqLlxuICovXG5leHBvcnQgY29uc3QgSURCX0RCX1ZFUlNJT04gPSBuZXcgSW5qZWN0aW9uVG9rZW48bnVtYmVyPihcImxvY2FsU3RvcmFnZUlEQkRCVmVyc2lvblwiLCB7XG4gIHByb3ZpZGVkSW46IFwicm9vdFwiLFxuICBmYWN0b3J5OiAoKSA9PiBERUZBVUxUX0lEQl9EQl9WRVJTSU9OXG59KTtcblxuLyoqXG4gKiBEZWZhdWx0IG5hbWUgdXNlZCBmb3IgYGluZGV4ZWREQmAgb2JqZWN0IHN0b3JlLlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9JREJfU1RPUkVfTkFNRSA9IFwibG9jYWxTdG9yYWdlXCI7XG5cbi8qKlxuICogVG9rZW4gdG8gcHJvdmlkZSBgaW5kZXhlZERCYCBzdG9yZSBuYW1lLlxuICogRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHRoZSBkZWZhdWx0IGNhbid0IGJlIHNldCBub3csIGBJbmRleGVkREJEYXRhYmFzZWAgd2lsbCBkbyBpdCBhdCBydW50aW1lLlxuICovXG5leHBvcnQgY29uc3QgSURCX1NUT1JFX05BTUUgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPihcImxvY2FsU3RvcmFnZUlEQlN0b3JlTmFtZVwiLCB7XG4gIHByb3ZpZGVkSW46IFwicm9vdFwiLFxuICBmYWN0b3J5OiAoKSA9PiBERUZBVUxUX0lEQl9TVE9SRV9OQU1FXG59KTtcblxuLyoqXG4gKiBEZWZhdWx0IHZhbHVlIGZvciBpbnRlcm9wZXJhYmlsaXR5IHdpdGggbmF0aXZlIGBpbmRleGVkREJgIGFuZCBvdGhlciBzdG9yYWdlIGxpYnMsXG4gKiBieSBjaGFuZ2luZyBob3cgdmFsdWVzIGFyZSBzdG9yZWQgaW4gYGluZGV4ZWREQmAgZGF0YWJhc2UuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lEQl9OT19XUkFQID0gdHJ1ZTtcblxuLyoqXG4gKiBUb2tlbiB0byBhbGxvdyBpbnRlcm9wZXJhYmlsaXR5IHdpdGggbmF0aXZlIGBpbmRleGVkREJgIGFuZCBvdGhlciBzdG9yYWdlIGxpYnMsXG4gKiBieSBjaGFuZ2luZyBob3cgdmFsdWVzIGFyZSBzdG9yZWQgaW4gYGluZGV4ZWREQmAgZGF0YWJhc2UuXG4gKiBEZWZhdWx0cyB0byBgdHJ1ZWAuIENoYW5nZSB0byBgZmFsc2VgIGZvciBiYWNrd2FyZCBjb21wYXRpYmxpdHkgaW4gZXhpc3RpbmcgYXBwbGljYXRpb25zLlxuICogKipETyBOT1QgQ0hBTkdFIFRISVMgQkVIQVZJT1IgT05DRSBJTiBQUk9EVUNUSU9OKiosIGFzIGl0IHdvdWxkIGJyZWFrIHdpdGggZXhpc3RpbmcgZGF0YS5cbiAqL1xuZXhwb3J0IGNvbnN0IElEQl9OT19XUkFQID0gbmV3IEluamVjdGlvblRva2VuPGJvb2xlYW4+KFwibG9jYWxTdG9yYWdlSURCV3JhcFwiLCB7XG4gIHByb3ZpZGVkSW46IFwicm9vdFwiLFxuICBmYWN0b3J5OiAoKSA9PiBERUZBVUxUX0lEQl9OT19XUkFQXG59KTtcblxuLyoqXG4gKiBUaGlzIGludGVyZmFjZSBpcyBvbmx5IGhlcmUgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksICoqZG8gbm90IGFkZCBpdCBieSB5b3Vyc2VsZioqXG4gKiBcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlQ29uZmlnIHtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBwcm92aWRlTG9jYWxTdG9yYWdlUHJlZml4KClgIG1ldGhvZCBpbnN0ZWFkXG4gICAqL1xuICBMU1ByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBwcm92aWRlSW5kZXhlZERCRGF0YUJhc2VOYW1lKClgIG1ldGhvZCBpbnN0ZWFkXG4gICAqL1xuICBJREJEQk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgcHJvdmlkZUluZGV4ZWREQlN0b3JlTmFtZSgpYCBtZXRob2QgaW5zdGVhZFxuICAgKi9cbiAgSURCU3RvcmVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYHByb3ZpZGVJbmRleGVkREJEYXRhQmFzZVZlcnNpb24oKWAgbWV0aG9kIGluc3RlYWRcbiAgICovXG4gIElEQkRCVmVyc2lvbj86IG51bWJlcjtcblxuICAvKipcbiAgICogQWxsb3dzIGludGVyb3BlcmFiaWxpdHkgd2l0aCBuYXRpdmUgYGluZGV4ZWREQmAgYW5kIG90aGVyIHN0b3JhZ2UgbGlicyxcbiAgICogYnkgY2hhbmdpbmcgaG93IHZhbHVlcyBhcmUgc3RvcmVkIGluIGBpbmRleGVkREJgIGRhdGFiYXNlLlxuICAgKiBcbiAgICogRGVmYXVsdHMgdG8gYHRydWVgLiBDaGFuZ2UgdG8gYGZhbHNlYCBmb3IgYmFja3dhcmQgY29tcGF0aWJsaXR5IGluIGV4aXN0aW5nIGFwcGxpY2F0aW9ucy5cbiAgICogXG4gICAqICoqRE8gTk9UIENIQU5HRSBUSElTIEJFSEFWSU9SIE9OQ0UgSU4gUFJPRFVDVElPTioqLCBhcyBpdCB3b3VsZCBicmVhayB3aXRoIGV4aXN0aW5nIGRhdGEuXG4gICAqL1xuICBJREJOb1dyYXA/OiBib29sZWFuO1xuXG59XG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/* All schemas interfaces must have a required and different `type`,
|
|
2
|
-
* to create a TypeScript discriminant union type.
|
|
3
|
-
* Avoid https://github.com/cyrilletuzi/angular-async-local-storage/issues/64 */
|
|
4
|
-
export {};
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2xpYi92YWxpZGF0aW9uL2pzb24tc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztnRkFFZ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBBbGwgc2NoZW1hcyBpbnRlcmZhY2VzIG11c3QgaGF2ZSBhIHJlcXVpcmVkIGFuZCBkaWZmZXJlbnQgYHR5cGVgLFxuICogdG8gY3JlYXRlIGEgVHlwZVNjcmlwdCBkaXNjcmltaW5hbnQgdW5pb24gdHlwZS5cbiAqIEF2b2lkIGh0dHBzOi8vZ2l0aHViLmNvbS9jeXJpbGxldHV6aS9hbmd1bGFyLWFzeW5jLWxvY2FsLXN0b3JhZ2UvaXNzdWVzLzY0ICovXG5cbi8qKlxuICogSlNPTiBTY2hlbWEgdG8gZGVzY3JpYmUgYSBib29sZWFuIHZhbHVlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpTT05TY2hlbWFCb29sZWFuIHtcblxuICAvKipcbiAgICogVHlwZSBmb3IgYSBib29sZWFuIHZhbHVlLlxuICAgKi9cbiAgdHlwZTogXCJib29sZWFuXCI7XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIHZhbHVlIGlzIHN0cmljdGx5IGVxdWFsIHRvIHRoaXMuXG4gICAqL1xuICBjb25zdD86IGJvb2xlYW47XG5cbn1cblxuLyoqXG4gKiBKU09OIFNjaGVtYSB0byBkZXNjcmliZSBhIG51bWJlciB2YWx1ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKU09OU2NoZW1hTnVtYmVyIHtcblxuICAvKipcbiAgICogVHlwZSBmb3IgYSBudW1lcmljIHZhbHVlLlxuICAgKi9cbiAgdHlwZTogXCJudW1iZXJcIjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgdmFsdWUgaXMgc3RyaWN0bHkgZXF1YWwgdG8gdGhpcy5cbiAgICovXG4gIGNvbnN0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSB2YWx1ZSBpcyBzdHJpY3RseSBlcXVhbCB0byBvbmUgb2YgdGhlIHZhbHVlIG9mIGVudW0uXG4gICAqL1xuICBlbnVtPzogcmVhZG9ubHkgbnVtYmVyW107XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgbnVtYmVyIGlzIGEgbXVsdGlwbGUgb2YgeC5cbiAgICogTXVzdCBiZSBzdHJpY3RseSBncmVhdGVyIHRoYW4gMC5cbiAgICovXG4gIG11bHRpcGxlT2Y/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgbnVtYmVyIGlzIGxvd2VyIG9yIGVxdWFsIHRoYW4gdGhpcyBtYXhpbXVtLlxuICAgKi9cbiAgbWF4aW11bT86IG51bWJlcjtcblxuICAvKipcbiAgICogQ2hlY2sgaWYgYSBudW1iZXIgaXMgc3RyaWN0bHkgbG93ZXIgdGhhbiB0aGlzIG1heGltdW0uXG4gICAqL1xuICBleGNsdXNpdmVNYXhpbXVtPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIG51bWJlciBpcyBncmVhdGVyIG9yIGVxdWFsIHRoYW4gdGhpcyBtaW5pbXVtLlxuICAgKi9cbiAgbWluaW11bT86IG51bWJlcjtcblxuICAvKipcbiAgICogQ2hlY2sgaWYgYSBudW1iZXIgaXMgc3RyaWN0bHkgZ3JlYXRlciB0aGFuIHRoaXMgbWluaW11bS5cbiAgICovXG4gIGV4Y2x1c2l2ZU1pbmltdW0/OiBudW1iZXI7XG5cbn1cblxuLyoqXG4gKiBKU09OIFNjaGVtYSB0byBkZXNjcmliZSBhbiBpbnRlZ2VyIHZhbHVlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpTT05TY2hlbWFJbnRlZ2VyIHtcblxuICAvKipcbiAgICogVHlwZSBmb3IgYW4gaW50ZWdlciB2YWx1ZS5cbiAgICovXG4gIHR5cGU6IFwiaW50ZWdlclwiO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSB2YWx1ZSBpcyBzdHJpY3RseSBlcXVhbCB0byB0aGlzLlxuICAgKi9cbiAgY29uc3Q/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIHZhbHVlIGlzIHN0cmljdGx5IGVxdWFsIHRvIG9uZSBvZiB0aGUgdmFsdWUgb2YgZW51bS5cbiAgICovXG4gIGVudW0/OiByZWFkb25seSBudW1iZXJbXTtcblxuICAvKipcbiAgICogQ2hlY2sgaWYgYSBudW1iZXIgaXMgYSBtdWx0aXBsZSBvZiB4LlxuICAgKiBNdXN0IGJlIHN0cmljdGx5IGdyZWF0ZXIgdGhhbiAwLlxuICAgKi9cbiAgbXVsdGlwbGVPZj86IG51bWJlcjtcblxuICAvKipcbiAgICogQ2hlY2sgaWYgYSBudW1iZXIgaXMgbG93ZXIgb3IgZXF1YWwgdGhhbiB0aGlzIG1heGltdW0uXG4gICAqL1xuICBtYXhpbXVtPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIG51bWJlciBpcyBzdHJpY3RseSBsb3dlciB0aGFuIHRoaXMgbWF4aW11bS5cbiAgICovXG4gIGV4Y2x1c2l2ZU1heGltdW0/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgbnVtYmVyIGlzIGdyZWF0ZXIgb3IgZXF1YWwgdGhhbiB0aGlzIG1pbmltdW0uXG4gICAqL1xuICBtaW5pbXVtPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIG51bWJlciBpcyBzdHJpY3RseSBncmVhdGVyIHRoYW4gdGhpcyBtaW5pbXVtLlxuICAgKi9cbiAgZXhjbHVzaXZlTWluaW11bT86IG51bWJlcjtcblxufVxuXG4vKipcbiAqIEpTT04gU2NoZW1hIHRvIGRlc2NyaWJlIGEgc3RyaW5nIHZhbHVlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpTT05TY2hlbWFTdHJpbmcge1xuXG4gIC8qKlxuICAgKiBUeXBlIGZvciBhIHN0cmluZyB2YWx1ZS5cbiAgICovXG4gIHR5cGU6IFwic3RyaW5nXCI7XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIHZhbHVlIGlzIHN0cmljdGx5IGVxdWFsIHRvIHRoaXMuXG4gICAqL1xuICBjb25zdD86IHN0cmluZztcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgdmFsdWUgaXMgc3RyaWN0bHkgZXF1YWwgdG8gb25lIG9mIHRoZSB2YWx1ZSBvZiBlbnVtLlxuICAgKi9cbiAgZW51bT86IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBNYXhpdW0gbGVuZ3RoIGZvciBhIHN0cmluZy5cbiAgICogTXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLlxuICAgKi9cbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNaW5pbXVtIGxlbmd0aCBmb3IgYSBzdHJpbmcuXG4gICAqIE11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlci5cbiAgICovXG4gIG1pbkxlbmd0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogUGF0dGVybiB0byBtYXRjaCBmb3IgYSBzdHJpbmcuXG4gICAqIE11c3QgYmUgYSB2YWxpZCByZWd1bGFyIGV4cHJlc3Npb24sICp3aXRob3V0KiB0aGUgYC9gIGRlbGltaXRlcnMuXG4gICAqL1xuICBwYXR0ZXJuPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogSlNPTiBzY2hlbWEgdG8gZGVzY3JpYmUgYW4gYXJyYXkgb2YgdmFsdWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpTT05TY2hlbWFBcnJheSB7XG5cbiAgLyoqXG4gICAqIFR5cGUgZm9yIGFuIGFycmF5IG9mIHZhbHVlcy5cbiAgICovXG4gIHR5cGU6IFwiYXJyYXlcIjtcblxuICAvKipcbiAgICogU2NoZW1hIGZvciB0aGUgdmFsdWVzIG9mIHRoZSBhcnJheS5cbiAgICovXG4gIGl0ZW1zOiBKU09OU2NoZW1hO1xuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBhcnJheSBsZW5ndGggaXMgbG93ZXIgb3IgZXF1YWwgdG8gdGhpcyB2YWx1ZS5cbiAgICogTXVzdCBiZSBhIG5vbiBuZWdhdGl2ZSBpbnRlZ2VyLlxuICAgKi9cbiAgbWF4SXRlbXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIGFycmF5IGxlbmd0aCBpcyBncmVhdGVyIG9yIGVxdWFsIHRvIHRoaXMgdmFsdWUuXG4gICAqIE11c3QgYmUgYSBub24gbmVnYXRpdmUgaW50ZWdlci5cbiAgICovXG4gIG1pbkl0ZW1zPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBhcnJheSBvbmx5IGhhdmUgdW5pcXVlIHZhbHVlcy5cbiAgICovXG4gIHVuaXF1ZUl0ZW1zPzogYm9vbGVhbjtcblxufVxuXG4vKipcbiAqIEpTT04gU2NoZW1hIHRvIGRlc2NyaWJlIGFuIGFycmF5IG9mIHByaW1pdGl2ZSB2YWx1ZXM6XG4gKiAtIGFycmF5IG9mIGJvb2xlYW5zOiBgSlNPTlNjaGVtYUFycmF5T2Y8SlNPTlNjaGVtYUJvb2xlYW4+YCxcbiAqIC0gYXJyYXkgb2YgbnVtYmVyczogYEpTT05TY2hlbWFBcnJheU9mPEpTT05TY2hlbWFOdW1iZXI+YCxcbiAqIC0gYXJyYXkgb2YgaW50ZWdlcnM6IGBKU09OU2NoZW1hQXJyYXlPZjxKU09OU2NoZW1hSW50ZWdlcj5gLFxuICogLSBhcnJheSBvZiBzdHJpbmdzOiBgSlNPTlNjaGVtYUFycmF5T2Y8SlNPTlNjaGVtYVN0cmluZz5gLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpTT05TY2hlbWFBcnJheU9mPFQgZXh0ZW5kcyBKU09OU2NoZW1hQm9vbGVhbiB8IEpTT05TY2hlbWFOdW1iZXIgfCBKU09OU2NoZW1hSW50ZWdlciB8IEpTT05TY2hlbWFTdHJpbmc+IHtcblxuICAvKipcbiAgICogVHlwZSBmb3IgYW4gYXJyYXkgb2YgdmFsdWVzLlxuICAgKi9cbiAgdHlwZTogXCJhcnJheVwiO1xuXG4gIC8qKlxuICAgKiBTY2hlbWEgZm9yIHRoZSB2YWx1ZXMgb2YgYW4gYXJyYXkuXG4gICAqL1xuICBpdGVtczogVDtcblxuICAvKipcbiAgICogQ2hlY2sgaWYgYW4gYXJyYXkgbGVuZ3RoIGlzIGxvd2VyIG9yIGVxdWFsIHRvIHRoaXMgdmFsdWUuXG4gICAqIE11c3QgYmUgYSBub24gbmVnYXRpdmUgaW50ZWdlci5cbiAgICovXG4gIG1heEl0ZW1zPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBhcnJheSBsZW5ndGggaXMgZ3JlYXRlciBvciBlcXVhbCB0byB0aGlzIHZhbHVlLlxuICAgKiBNdXN0IGJlIGEgbm9uIG5lZ2F0aXZlIGludGVnZXIuXG4gICAqL1xuICBtaW5JdGVtcz86IG51bWJlcjtcblxuICAvKipcbiAgICogQ2hlY2sgaWYgYW4gYXJyYXkgb25seSBoYXZlIHVuaXF1ZSB2YWx1ZXMuXG4gICAqL1xuICB1bmlxdWVJdGVtcz86IGJvb2xlYW47XG5cbn1cblxuLyoqXG4gKiBKU09OIHNjaGVtYSB0byBkZXNjcmliZSBhIHR1cGxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpTT05TY2hlbWFUdXBsZSB7XG5cbiAgLyoqXG4gICAqIFR5cGUgZm9yIGFuIGFycmF5IG9mIHZhbHVlcy5cbiAgICovXG4gIHR5cGU6IFwiYXJyYXlcIjtcblxuICAvKipcbiAgICogU2NoZW1hIGZvciB0aGUgdmFsdWVzIG9mIHRoZSB0dXBsZS5cbiAgICovXG4gIGl0ZW1zPzogcmVhZG9ubHkgSlNPTlNjaGVtYVtdO1xuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBhcnJheSBsZW5ndGggaXMgbG93ZXIgb3IgZXF1YWwgdG8gdGhpcyB2YWx1ZS5cbiAgICogTXVzdCBiZSBhIG5vbiBuZWdhdGl2ZSBpbnRlZ2VyLlxuICAgKi9cbiAgbWF4SXRlbXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIGFycmF5IGxlbmd0aCBpcyBncmVhdGVyIG9yIGVxdWFsIHRvIHRoaXMgdmFsdWUuXG4gICAqIE11c3QgYmUgYSBub24gbmVnYXRpdmUgaW50ZWdlci5cbiAgICovXG4gIG1pbkl0ZW1zPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBhcnJheSBvbmx5IGhhdmUgdW5pcXVlIHZhbHVlcy5cbiAgICovXG4gIHVuaXF1ZUl0ZW1zPzogYm9vbGVhbjtcblxufVxuXG4vKipcbiAqIEpTT04gc2NoZW1hIHRvIGRlc2NyaWJlIGFuIG9iamVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKU09OU2NoZW1hT2JqZWN0IHtcblxuICAvKipcbiAgICogVHlwZSBmb3IgYW4gb2JqZWN0LlxuICAgKi9cbiAgdHlwZTogXCJvYmplY3RcIjtcblxuICAvKipcbiAgICogTGlzdCBvZiBwcm9wZXJ0aWVzIG9mIHRoZSBvYmplY3QgYW5kIHRoZWlyIGFzc29jaWF0ZWQgSlNPTiBzY2hlbWFzLlxuICAgKi9cbiAgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgSlNPTlNjaGVtYT47XG5cbiAgLyoqXG4gICAqIEFycmF5IG9mIG5hbWVzIG9mIHRoZSByZXF1aXJlZCBwcm9wZXJ0aWVzIGZvciBhbiBvYmplY3QuXG4gICAqIFByb3BlcnRpZXMgc2V0IGFzIHJlcXVpcmVkIHNob3VsZCBiZSBwcmVzZW50IGluIGBwcm9wZXJ0aWVzYCB0b28uXG4gICAqL1xuICByZXF1aXJlZD86IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG59XG5cbi8qKlxuICogU3Vic2V0IG9mIHRoZSBKU09OIFNjaGVtYSBzdGFuZGFyZC5cbiAqIFxuICogVHlwZXMgYXJlIGVuZm9yY2VkIHRvIHZhbGlkYXRlIGV2ZXJ5dGhpbmc6IGVhY2ggdmFsdWUgKiptdXN0KiogaGF2ZSBhIGB0eXBlYC5cbiAqIFxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2N5cmlsbGV0dXppL2FuZ3VsYXItYXN5bmMtbG9jYWwtc3RvcmFnZS9ibG9iL21haW4vZG9jcy9WQUxJREFUSU9OLm1kfVxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBzY2hlbWEgPSB7IHR5cGU6ICdzdHJpbmcnIH0gc2F0aXNmaWVzIEpTT05TY2hlbWE7XG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHNjaGVtYSA9IHsgdHlwZTogJ251bWJlcicgfSBzYXRpc2ZpZXMgSlNPTlNjaGVtYTtcbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgc2NoZW1hID0geyB0eXBlOiAnaW50ZWdlcicgfSBzYXRpc2ZpZXMgSlNPTlNjaGVtYTtcbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgc2NoZW1hID0geyB0eXBlOiAnYm9vbGVhbicgfSBzYXRpc2ZpZXMgSlNPTlNjaGVtYTtcbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgc2NoZW1hID0ge1xuICogICB0eXBlOiAnYXJyYXknLFxuICogICBpdGVtczogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICogfSBzYXRpc2ZpZXMgSlNPTlNjaGVtYTtcbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgc2NoZW1hID0ge1xuICogICB0eXBlOiAnb2JqZWN0JyxcbiAqICAgcHJvcGVydGllczoge1xuICogICAgIGZpcnN0TmFtZTogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICogICAgIGxhc3ROYW1lOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gKiAgIH0sXG4gKiAgIHJlcXVpcmVkOiBbJ2ZpcnN0TmFtZSddLFxuICogfSBzYXRpc2ZpZXMgSlNPTlNjaGVtYTtcbiAqL1xuZXhwb3J0IHR5cGUgSlNPTlNjaGVtYSA9IEpTT05TY2hlbWFTdHJpbmcgfCBKU09OU2NoZW1hTnVtYmVyIHwgSlNPTlNjaGVtYUludGVnZXIgfCBKU09OU2NoZW1hQm9vbGVhbiB8IEpTT05TY2hlbWFBcnJheSB8IEpTT05TY2hlbWFUdXBsZSB8IEpTT05TY2hlbWFPYmplY3Q7XG4iXX0=
|
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
import { Injectable } from "@angular/core";
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class JSONValidator {
|
|
4
|
-
/**
|
|
5
|
-
* Validate a JSON data against a Jsubset of the JSON Schema standard.
|
|
6
|
-
* Types are enforced to validate everything: each schema must
|
|
7
|
-
* @param data JSON data to validate
|
|
8
|
-
* @param schema Subset of JSON Schema. Must have a `type`.
|
|
9
|
-
* @returns If data is valid: `true`, if it is invalid: `false`
|
|
10
|
-
* @see {@link https://github.com/cyrilletuzi/angular-async-local-storage/blob/main/docs/VALIDATION.md}
|
|
11
|
-
*/
|
|
12
|
-
validate(data, schema) {
|
|
13
|
-
switch (schema.type) {
|
|
14
|
-
case "string":
|
|
15
|
-
return this.validateString(data, schema);
|
|
16
|
-
case "number":
|
|
17
|
-
case "integer":
|
|
18
|
-
return this.validateNumber(data, schema);
|
|
19
|
-
case "boolean":
|
|
20
|
-
return this.validateBoolean(data, schema);
|
|
21
|
-
case "array":
|
|
22
|
-
return this.validateArray(data, schema);
|
|
23
|
-
case "object":
|
|
24
|
-
return this.validateObject(data, schema);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Validate a string
|
|
29
|
-
* @param data Data to validate
|
|
30
|
-
* @param schema Schema describing the string
|
|
31
|
-
* @returns If data is valid: `true`, if it is invalid: `false`
|
|
32
|
-
*/
|
|
33
|
-
validateString(data, schema) {
|
|
34
|
-
if (typeof data !== "string") {
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
if (!this.validateConst(data, schema)) {
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
|
-
if (!this.validateEnum(data, schema)) {
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
if ((schema.maxLength !== undefined) && (data.length > schema.maxLength)) {
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
|
-
if ((schema.minLength !== undefined) && (data.length < schema.minLength)) {
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
|
-
if (schema.pattern) {
|
|
50
|
-
try {
|
|
51
|
-
const regularExpression = new RegExp(schema.pattern);
|
|
52
|
-
if (!regularExpression.test(data)) {
|
|
53
|
-
return false;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
catch {
|
|
57
|
-
// Nothing to do
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return true;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Validate a number or an integer
|
|
64
|
-
* @param data Data to validate
|
|
65
|
-
* @param schema Schema describing the number or integer
|
|
66
|
-
* @returns If data is valid: `true`, if it is invalid: `false`
|
|
67
|
-
*/
|
|
68
|
-
validateNumber(data, schema) {
|
|
69
|
-
if (typeof data !== "number") {
|
|
70
|
-
return false;
|
|
71
|
-
}
|
|
72
|
-
if ((schema.type === "integer") && !Number.isInteger(data)) {
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
75
|
-
if (!this.validateConst(data, schema)) {
|
|
76
|
-
return false;
|
|
77
|
-
}
|
|
78
|
-
if (!this.validateEnum(data, schema)) {
|
|
79
|
-
return false;
|
|
80
|
-
}
|
|
81
|
-
/* Test is done this way to not divide by 0 */
|
|
82
|
-
if (schema.multipleOf && !Number.isInteger(data / schema.multipleOf)) {
|
|
83
|
-
return false;
|
|
84
|
-
}
|
|
85
|
-
if ((schema.maximum !== undefined) && (data > schema.maximum)) {
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
88
|
-
if ((schema.exclusiveMaximum !== undefined) && (data >= schema.exclusiveMaximum)) {
|
|
89
|
-
return false;
|
|
90
|
-
}
|
|
91
|
-
if ((schema.minimum !== undefined) && (data < schema.minimum)) {
|
|
92
|
-
return false;
|
|
93
|
-
}
|
|
94
|
-
if ((schema.exclusiveMinimum !== undefined) && (data <= schema.exclusiveMinimum)) {
|
|
95
|
-
return false;
|
|
96
|
-
}
|
|
97
|
-
return true;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Validate a boolean
|
|
101
|
-
* @param data Data to validate
|
|
102
|
-
* @param schema Schema describing the boolean
|
|
103
|
-
* @returns If data is valid: `true`, if it is invalid: `false`
|
|
104
|
-
*/
|
|
105
|
-
validateBoolean(data, schema) {
|
|
106
|
-
if (typeof data !== "boolean") {
|
|
107
|
-
return false;
|
|
108
|
-
}
|
|
109
|
-
if (!this.validateConst(data, schema)) {
|
|
110
|
-
return false;
|
|
111
|
-
}
|
|
112
|
-
return true;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Validate an array
|
|
116
|
-
* @param data Data to validate
|
|
117
|
-
* @param schema Schema describing the array
|
|
118
|
-
* @returns If data is valid: `true`, if it is invalid: `false`
|
|
119
|
-
*/
|
|
120
|
-
validateArray(data, schema) {
|
|
121
|
-
if (!Array.isArray(data)) {
|
|
122
|
-
return false;
|
|
123
|
-
}
|
|
124
|
-
if ((schema.maxItems !== undefined) && (data.length > schema.maxItems)) {
|
|
125
|
-
return false;
|
|
126
|
-
}
|
|
127
|
-
if ((schema.minItems !== undefined) && (data.length < schema.minItems)) {
|
|
128
|
-
return false;
|
|
129
|
-
}
|
|
130
|
-
if (schema.uniqueItems) {
|
|
131
|
-
/* Create a set to eliminate values with multiple occurences */
|
|
132
|
-
const dataSet = new Set(data);
|
|
133
|
-
if (data.length !== dataSet.size) {
|
|
134
|
-
return false;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
/* Specific test for tuples */
|
|
138
|
-
if (Array.isArray(schema.items) || schema.items === undefined) {
|
|
139
|
-
// TODO: cast should not be needed here
|
|
140
|
-
return this.validateTuple(data, schema.items);
|
|
141
|
-
}
|
|
142
|
-
/* Validate all the values in array */
|
|
143
|
-
for (const value of data) {
|
|
144
|
-
// TODO: remove when TypeScript 4.1 is available
|
|
145
|
-
// (currently the narrowed type from `Array.isArray()` is lost on readonly arrays)
|
|
146
|
-
if (!this.validate(value, schema.items)) {
|
|
147
|
-
return false;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
return true;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Validate a tuple (array with fixed length and multiple types)
|
|
154
|
-
* @param data Data to validate
|
|
155
|
-
* @param schemas Schemas describing the tuple
|
|
156
|
-
* @returns If data is valid: `true`, if it is invalid: `false`
|
|
157
|
-
*/
|
|
158
|
-
validateTuple(data, schemas) {
|
|
159
|
-
const lengthToCheck = schemas ? schemas.length : 0;
|
|
160
|
-
/* Tuples have a fixed length */
|
|
161
|
-
if (data.length !== lengthToCheck) {
|
|
162
|
-
return false;
|
|
163
|
-
}
|
|
164
|
-
if (schemas) {
|
|
165
|
-
for (const [index, schema] of schemas.entries()) {
|
|
166
|
-
if (!this.validate(data[index], schema)) {
|
|
167
|
-
return false;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
return true;
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Validate an object
|
|
175
|
-
* @param data Data to validate
|
|
176
|
-
* @param schema JSON schema describing the object
|
|
177
|
-
* @returns If data is valid: `true`, if it is invalid: `false`
|
|
178
|
-
*/
|
|
179
|
-
validateObject(data, schema) {
|
|
180
|
-
/* Check the type and if not `null` as `null` also have the type `object` in old browsers */
|
|
181
|
-
if ((typeof data !== "object") || (data === null)) {
|
|
182
|
-
return false;
|
|
183
|
-
}
|
|
184
|
-
/* Check if the object doesn't have more properties than expected
|
|
185
|
-
* Equivalent of `additionalProperties: false`
|
|
186
|
-
*/
|
|
187
|
-
if (Object.keys(schema.properties).length < Object.keys(data).length) {
|
|
188
|
-
return false;
|
|
189
|
-
}
|
|
190
|
-
/* Validate required properties */
|
|
191
|
-
if (schema.required) {
|
|
192
|
-
for (const requiredProp of schema.required) {
|
|
193
|
-
if (!Object.hasOwn(data, requiredProp)) {
|
|
194
|
-
return false;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
/* Recursively validate all properties */
|
|
199
|
-
for (const property in schema.properties) {
|
|
200
|
-
/* Filter to keep only real properties (no internal JS stuff) and check if the data has the property too */
|
|
201
|
-
if (Object.hasOwn(schema.properties, property) && Object.hasOwn(data, property)) {
|
|
202
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- Ensured by the logic
|
|
203
|
-
if (!this.validate(data[property], schema.properties[property])) {
|
|
204
|
-
return false;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
return true;
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* Validate a constant
|
|
212
|
-
* @param data Data ta validate
|
|
213
|
-
* @param schema JSON schema describing the constant
|
|
214
|
-
* @returns If data is valid: `true`, if it is invalid: `false`
|
|
215
|
-
*/
|
|
216
|
-
validateConst(data, schema) {
|
|
217
|
-
if (!schema.const) {
|
|
218
|
-
return true;
|
|
219
|
-
}
|
|
220
|
-
return (data === schema.const);
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Validate an enum
|
|
224
|
-
* @param data Data ta validate
|
|
225
|
-
* @param schema JSON schema describing the enum
|
|
226
|
-
* @returns If data is valid: `true`, if it is invalid: `false`
|
|
227
|
-
*/
|
|
228
|
-
validateEnum(data, schema) {
|
|
229
|
-
if (!schema.enum) {
|
|
230
|
-
return true;
|
|
231
|
-
}
|
|
232
|
-
/* Cast as the data can be of multiple types, and so TypeScript is lost */
|
|
233
|
-
return (schema.enum.includes(data));
|
|
234
|
-
}
|
|
235
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: JSONValidator, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
236
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: JSONValidator, providedIn: "root" }); }
|
|
237
|
-
}
|
|
238
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: JSONValidator, decorators: [{
|
|
239
|
-
type: Injectable,
|
|
240
|
-
args: [{
|
|
241
|
-
providedIn: "root"
|
|
242
|
-
}]
|
|
243
|
-
}] });
|
|
244
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2xpYi92YWxpZGF0aW9uL2pzb24tdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBYzNDLE1BQU0sT0FBTyxhQUFhO0lBRXhCOzs7Ozs7O09BT0c7SUFDSCxRQUFRLENBQUMsSUFBYSxFQUFFLE1BQWtCO1FBRXhDLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXBCLEtBQUssUUFBUTtnQkFDWCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzNDLEtBQUssUUFBUSxDQUFDO1lBQ2QsS0FBSyxTQUFTO2dCQUNaLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDM0MsS0FBSyxTQUFTO2dCQUNaLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDNUMsS0FBSyxPQUFPO2dCQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDMUMsS0FBSyxRQUFRO2dCQUNYLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFN0MsQ0FBQztJQUVILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLGNBQWMsQ0FBQyxJQUFhLEVBQUUsTUFBd0I7UUFFNUQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxPQUFPLEtBQUssQ0FBQztR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YSxDQUFDLElBQWEsRUFBRSxNQUFtRjtRQUV0SCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU8sQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRWpDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLFlBQVksQ0FBQyxJQUFhLEVBQUUsTUFBK0Q7UUFFakcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCwwRUFBMEU7UUFDMUUsT0FBTyxDQUFFLE1BQU0sQ0FBQyxJQUFrQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRXJELENBQUM7OEdBN1RVLGFBQWE7a0hBQWIsYUFBYSxjQUZaLE1BQU07OzJGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEpTT05TY2hlbWEsXG4gIEpTT05TY2hlbWFBcnJheSxcbiAgSlNPTlNjaGVtYUJvb2xlYW4sXG4gIEpTT05TY2hlbWFJbnRlZ2VyLCBKU09OU2NoZW1hTnVtYmVyLFxuICBKU09OU2NoZW1hT2JqZWN0LFxuICBKU09OU2NoZW1hU3RyaW5nLFxuICBKU09OU2NoZW1hVHVwbGVcbn0gZnJvbSBcIi4vanNvbi1zY2hlbWFcIjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiBcInJvb3RcIlxufSlcbmV4cG9ydCBjbGFzcyBKU09OVmFsaWRhdG9yIHtcblxuICAvKipcbiAgICogVmFsaWRhdGUgYSBKU09OIGRhdGEgYWdhaW5zdCBhIEpzdWJzZXQgb2YgdGhlIEpTT04gU2NoZW1hIHN0YW5kYXJkLlxuICAgKiBUeXBlcyBhcmUgZW5mb3JjZWQgdG8gdmFsaWRhdGUgZXZlcnl0aGluZzogZWFjaCBzY2hlbWEgbXVzdFxuICAgKiBAcGFyYW0gZGF0YSBKU09OIGRhdGEgdG8gdmFsaWRhdGVcbiAgICogQHBhcmFtIHNjaGVtYSBTdWJzZXQgb2YgSlNPTiBTY2hlbWEuIE11c3QgaGF2ZSBhIGB0eXBlYC5cbiAgICogQHJldHVybnMgSWYgZGF0YSBpcyB2YWxpZDogYHRydWVgLCBpZiBpdCBpcyBpbnZhbGlkOiBgZmFsc2VgXG4gICAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9jeXJpbGxldHV6aS9hbmd1bGFyLWFzeW5jLWxvY2FsLXN0b3JhZ2UvYmxvYi9tYWluL2RvY3MvVkFMSURBVElPTi5tZH1cbiAgICovXG4gIHZhbGlkYXRlKGRhdGE6IHVua25vd24sIHNjaGVtYTogSlNPTlNjaGVtYSk6IGJvb2xlYW4ge1xuXG4gICAgc3dpdGNoIChzY2hlbWEudHlwZSkge1xuXG4gICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlU3RyaW5nKGRhdGEsIHNjaGVtYSk7XG4gICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICBjYXNlIFwiaW50ZWdlclwiOlxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZU51bWJlcihkYXRhLCBzY2hlbWEpO1xuICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVCb29sZWFuKGRhdGEsIHNjaGVtYSk7XG4gICAgICBjYXNlIFwiYXJyYXlcIjpcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVBcnJheShkYXRhLCBzY2hlbWEpO1xuICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZU9iamVjdChkYXRhLCBzY2hlbWEpO1xuXG4gICAgfVxuXG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgYSBzdHJpbmdcbiAgICogQHBhcmFtIGRhdGEgRGF0YSB0byB2YWxpZGF0ZVxuICAgKiBAcGFyYW0gc2NoZW1hIFNjaGVtYSBkZXNjcmliaW5nIHRoZSBzdHJpbmdcbiAgICogQHJldHVybnMgSWYgZGF0YSBpcyB2YWxpZDogYHRydWVgLCBpZiBpdCBpcyBpbnZhbGlkOiBgZmFsc2VgXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlU3RyaW5nKGRhdGE6IHVua25vd24sIHNjaGVtYTogSlNPTlNjaGVtYVN0cmluZyk6IGJvb2xlYW4ge1xuXG4gICAgaWYgKHR5cGVvZiBkYXRhICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnZhbGlkYXRlQ29uc3QoZGF0YSwgc2NoZW1hKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy52YWxpZGF0ZUVudW0oZGF0YSwgc2NoZW1hKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICgoc2NoZW1hLm1heExlbmd0aCAhPT0gdW5kZWZpbmVkKSAmJiAoZGF0YS5sZW5ndGggPiBzY2hlbWEubWF4TGVuZ3RoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICgoc2NoZW1hLm1pbkxlbmd0aCAhPT0gdW5kZWZpbmVkKSAmJiAoZGF0YS5sZW5ndGggPCBzY2hlbWEubWluTGVuZ3RoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChzY2hlbWEucGF0dGVybikge1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZWd1bGFyRXhwcmVzc2lvbiA9IG5ldyBSZWdFeHAoc2NoZW1hLnBhdHRlcm4pO1xuXG4gICAgICAgIGlmICghcmVndWxhckV4cHJlc3Npb24udGVzdChkYXRhKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIE5vdGhpbmcgdG8gZG9cbiAgICAgIH1cblxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuXG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgYSBudW1iZXIgb3IgYW4gaW50ZWdlclxuICAgKiBAcGFyYW0gZGF0YSBEYXRhIHRvIHZhbGlkYXRlXG4gICAqIEBwYXJhbSBzY2hlbWEgU2NoZW1hIGRlc2NyaWJpbmcgdGhlIG51bWJlciBvciBpbnRlZ2VyXG4gICAqIEByZXR1cm5zIElmIGRhdGEgaXMgdmFsaWQ6IGB0cnVlYCwgaWYgaXQgaXMgaW52YWxpZDogYGZhbHNlYFxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZU51bWJlcihkYXRhOiB1bmtub3duLCBzY2hlbWE6IEpTT05TY2hlbWFOdW1iZXIgfCBKU09OU2NoZW1hSW50ZWdlcik6IGJvb2xlYW4ge1xuXG4gICAgaWYgKHR5cGVvZiBkYXRhICE9PSBcIm51bWJlclwiKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKChzY2hlbWEudHlwZSA9PT0gXCJpbnRlZ2VyXCIpICYmICFOdW1iZXIuaXNJbnRlZ2VyKGRhdGEpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnZhbGlkYXRlQ29uc3QoZGF0YSwgc2NoZW1hKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy52YWxpZGF0ZUVudW0oZGF0YSwgc2NoZW1hKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qIFRlc3QgaXMgZG9uZSB0aGlzIHdheSB0byBub3QgZGl2aWRlIGJ5IDAgKi9cbiAgICBpZiAoc2NoZW1hLm11bHRpcGxlT2YgJiYgIU51bWJlci5pc0ludGVnZXIoZGF0YSAvIHNjaGVtYS5tdWx0aXBsZU9mKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICgoc2NoZW1hLm1heGltdW0gIT09IHVuZGVmaW5lZCkgJiYgKGRhdGEgPiBzY2hlbWEubWF4aW11bSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoKHNjaGVtYS5leGNsdXNpdmVNYXhpbXVtICE9PSB1bmRlZmluZWQpICYmIChkYXRhID49IHNjaGVtYS5leGNsdXNpdmVNYXhpbXVtKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgfVxuXG4gICAgaWYgKChzY2hlbWEubWluaW11bSAhPT0gdW5kZWZpbmVkKSAmJiAoZGF0YSA8IHNjaGVtYS5taW5pbXVtKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgfVxuXG4gICAgaWYgKChzY2hlbWEuZXhjbHVzaXZlTWluaW11bSAhPT0gdW5kZWZpbmVkKSAmJiAoZGF0YSA8PSBzY2hlbWEuZXhjbHVzaXZlTWluaW11bSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcblxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGEgYm9vbGVhblxuICAgKiBAcGFyYW0gZGF0YSBEYXRhIHRvIHZhbGlkYXRlXG4gICAqIEBwYXJhbSBzY2hlbWEgU2NoZW1hIGRlc2NyaWJpbmcgdGhlIGJvb2xlYW5cbiAgICogQHJldHVybnMgSWYgZGF0YSBpcyB2YWxpZDogYHRydWVgLCBpZiBpdCBpcyBpbnZhbGlkOiBgZmFsc2VgXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlQm9vbGVhbihkYXRhOiB1bmtub3duLCBzY2hlbWE6IEpTT05TY2hlbWFCb29sZWFuKTogYm9vbGVhbiB7XG5cbiAgICBpZiAodHlwZW9mIGRhdGEgIT09IFwiYm9vbGVhblwiKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnZhbGlkYXRlQ29uc3QoZGF0YSwgc2NoZW1hKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuXG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgYW4gYXJyYXlcbiAgICogQHBhcmFtIGRhdGEgRGF0YSB0byB2YWxpZGF0ZVxuICAgKiBAcGFyYW0gc2NoZW1hIFNjaGVtYSBkZXNjcmliaW5nIHRoZSBhcnJheVxuICAgKiBAcmV0dXJucyBJZiBkYXRhIGlzIHZhbGlkOiBgdHJ1ZWAsIGlmIGl0IGlzIGludmFsaWQ6IGBmYWxzZWBcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVBcnJheShkYXRhOiB1bmtub3duLCBzY2hlbWE6IEpTT05TY2hlbWFBcnJheSB8IEpTT05TY2hlbWFUdXBsZSk6IGJvb2xlYW4ge1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKChzY2hlbWEubWF4SXRlbXMgIT09IHVuZGVmaW5lZCkgJiYgKGRhdGEubGVuZ3RoID4gc2NoZW1hLm1heEl0ZW1zKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICgoc2NoZW1hLm1pbkl0ZW1zICE9PSB1bmRlZmluZWQpICYmIChkYXRhLmxlbmd0aCA8IHNjaGVtYS5taW5JdGVtcykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoc2NoZW1hLnVuaXF1ZUl0ZW1zKSB7XG5cbiAgICAgIC8qIENyZWF0ZSBhIHNldCB0byBlbGltaW5hdGUgdmFsdWVzIHdpdGggbXVsdGlwbGUgb2NjdXJlbmNlcyAqL1xuICAgICAgY29uc3QgZGF0YVNldCA9IG5ldyBTZXQoZGF0YSk7XG5cbiAgICAgIGlmIChkYXRhLmxlbmd0aCAhPT0gZGF0YVNldC5zaXplKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIC8qIFNwZWNpZmljIHRlc3QgZm9yIHR1cGxlcyAqL1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYS5pdGVtcykgfHwgc2NoZW1hLml0ZW1zID09PSB1bmRlZmluZWQpIHtcblxuICAgICAgLy8gVE9ETzogY2FzdCBzaG91bGQgbm90IGJlIG5lZWRlZCBoZXJlXG4gICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZVR1cGxlKGRhdGEsIHNjaGVtYS5pdGVtcyBhcyBKU09OU2NoZW1hW10gfCB1bmRlZmluZWQpO1xuXG4gICAgfVxuXG4gICAgLyogVmFsaWRhdGUgYWxsIHRoZSB2YWx1ZXMgaW4gYXJyYXkgKi9cbiAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGRhdGEpIHtcblxuICAgICAgLy8gVE9ETzogcmVtb3ZlIHdoZW4gVHlwZVNjcmlwdCA0LjEgaXMgYXZhaWxhYmxlXG4gICAgICAvLyAoY3VycmVudGx5IHRoZSBuYXJyb3dlZCB0eXBlIGZyb20gYEFycmF5LmlzQXJyYXkoKWAgaXMgbG9zdCBvbiByZWFkb25seSBhcnJheXMpXG4gICAgICBpZiAoIXRoaXMudmFsaWRhdGUodmFsdWUsIHNjaGVtYS5pdGVtcyBhcyBKU09OU2NoZW1hKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcblxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGEgdHVwbGUgKGFycmF5IHdpdGggZml4ZWQgbGVuZ3RoIGFuZCBtdWx0aXBsZSB0eXBlcylcbiAgICogQHBhcmFtIGRhdGEgRGF0YSB0byB2YWxpZGF0ZVxuICAgKiBAcGFyYW0gc2NoZW1hcyBTY2hlbWFzIGRlc2NyaWJpbmcgdGhlIHR1cGxlXG4gICAqIEByZXR1cm5zIElmIGRhdGEgaXMgdmFsaWQ6IGB0cnVlYCwgaWYgaXQgaXMgaW52YWxpZDogYGZhbHNlYFxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZVR1cGxlKGRhdGE6IHVua25vd25bXSwgc2NoZW1hczogSlNPTlNjaGVtYVtdIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG5cbiAgICBjb25zdCBsZW5ndGhUb0NoZWNrID0gc2NoZW1hcyA/IHNjaGVtYXMubGVuZ3RoIDogMDtcblxuICAgIC8qIFR1cGxlcyBoYXZlIGEgZml4ZWQgbGVuZ3RoICovXG4gICAgaWYgKGRhdGEubGVuZ3RoICE9PSBsZW5ndGhUb0NoZWNrKSB7XG5cbiAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIH1cblxuICAgIGlmIChzY2hlbWFzKSB7XG5cbiAgICAgIGZvciAoY29uc3QgW2luZGV4LCBzY2hlbWFdIG9mIHNjaGVtYXMuZW50cmllcygpKSB7XG5cbiAgICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlKGRhdGFbaW5kZXhdLCBzY2hlbWEpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuXG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgYW4gb2JqZWN0XG4gICAqIEBwYXJhbSBkYXRhIERhdGEgdG8gdmFsaWRhdGVcbiAgICogQHBhcmFtIHNjaGVtYSBKU09OIHNjaGVtYSBkZXNjcmliaW5nIHRoZSBvYmplY3RcbiAgICogQHJldHVybnMgSWYgZGF0YSBpcyB2YWxpZDogYHRydWVgLCBpZiBpdCBpcyBpbnZhbGlkOiBgZmFsc2VgXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlT2JqZWN0KGRhdGE6IHVua25vd24sIHNjaGVtYTogSlNPTlNjaGVtYU9iamVjdCk6IGJvb2xlYW4ge1xuXG4gICAgLyogQ2hlY2sgdGhlIHR5cGUgYW5kIGlmIG5vdCBgbnVsbGAgYXMgYG51bGxgIGFsc28gaGF2ZSB0aGUgdHlwZSBgb2JqZWN0YCBpbiBvbGQgYnJvd3NlcnMgKi9cbiAgICBpZiAoKHR5cGVvZiBkYXRhICE9PSBcIm9iamVjdFwiKSB8fCAoZGF0YSA9PT0gbnVsbCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKiBDaGVjayBpZiB0aGUgb2JqZWN0IGRvZXNuJ3QgaGF2ZSBtb3JlIHByb3BlcnRpZXMgdGhhbiBleHBlY3RlZFxuICAgICAqIEVxdWl2YWxlbnQgb2YgYGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZWBcbiAgICAgKi9cbiAgICBpZiAoT2JqZWN0LmtleXMoc2NoZW1hLnByb3BlcnRpZXMpLmxlbmd0aCA8IE9iamVjdC5rZXlzKGRhdGEpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qIFZhbGlkYXRlIHJlcXVpcmVkIHByb3BlcnRpZXMgKi9cbiAgICBpZiAoc2NoZW1hLnJlcXVpcmVkKSB7XG5cbiAgICAgIGZvciAoY29uc3QgcmVxdWlyZWRQcm9wIG9mIHNjaGVtYS5yZXF1aXJlZCkge1xuXG4gICAgICAgIGlmICghT2JqZWN0Lmhhc093bihkYXRhLCByZXF1aXJlZFByb3ApKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgIH1cblxuICAgIC8qIFJlY3Vyc2l2ZWx5IHZhbGlkYXRlIGFsbCBwcm9wZXJ0aWVzICovXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBzY2hlbWEucHJvcGVydGllcykge1xuXG4gICAgICAvKiBGaWx0ZXIgdG8ga2VlcCBvbmx5IHJlYWwgcHJvcGVydGllcyAobm8gaW50ZXJuYWwgSlMgc3R1ZmYpIGFuZCBjaGVjayBpZiB0aGUgZGF0YSBoYXMgdGhlIHByb3BlcnR5IHRvbyAqL1xuICAgICAgaWYgKE9iamVjdC5oYXNPd24oc2NoZW1hLnByb3BlcnRpZXMsIHByb3BlcnR5KSAmJiBPYmplY3QuaGFzT3duKGRhdGEsIHByb3BlcnR5KSkge1xuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uIC0tIEVuc3VyZWQgYnkgdGhlIGxvZ2ljXG4gICAgICAgIGlmICghdGhpcy52YWxpZGF0ZSgoZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbcHJvcGVydHldLCBzY2hlbWEucHJvcGVydGllc1twcm9wZXJ0eV0hKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcblxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGEgY29uc3RhbnRcbiAgICogQHBhcmFtIGRhdGEgRGF0YSB0YSB2YWxpZGF0ZVxuICAgKiBAcGFyYW0gc2NoZW1hIEpTT04gc2NoZW1hIGRlc2NyaWJpbmcgdGhlIGNvbnN0YW50XG4gICAqIEByZXR1cm5zIElmIGRhdGEgaXMgdmFsaWQ6IGB0cnVlYCwgaWYgaXQgaXMgaW52YWxpZDogYGZhbHNlYFxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZUNvbnN0KGRhdGE6IHVua25vd24sIHNjaGVtYTogSlNPTlNjaGVtYUJvb2xlYW4gfCBKU09OU2NoZW1hSW50ZWdlciB8IEpTT05TY2hlbWFOdW1iZXIgfCBKU09OU2NoZW1hU3RyaW5nKTogYm9vbGVhbiB7XG5cbiAgICBpZiAoIXNjaGVtYS5jb25zdCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIChkYXRhID09PSBzY2hlbWEuY29uc3QpO1xuXG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgYW4gZW51bVxuICAgKiBAcGFyYW0gZGF0YSBEYXRhIHRhIHZhbGlkYXRlXG4gICAqIEBwYXJhbSBzY2hlbWEgSlNPTiBzY2hlbWEgZGVzY3JpYmluZyB0aGUgZW51bVxuICAgKiBAcmV0dXJucyBJZiBkYXRhIGlzIHZhbGlkOiBgdHJ1ZWAsIGlmIGl0IGlzIGludmFsaWQ6IGBmYWxzZWBcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVFbnVtKGRhdGE6IHVua25vd24sIHNjaGVtYTogSlNPTlNjaGVtYUludGVnZXIgfCBKU09OU2NoZW1hTnVtYmVyIHwgSlNPTlNjaGVtYVN0cmluZyk6IGJvb2xlYW4ge1xuXG4gICAgaWYgKCFzY2hlbWEuZW51bSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyogQ2FzdCBhcyB0aGUgZGF0YSBjYW4gYmUgb2YgbXVsdGlwbGUgdHlwZXMsIGFuZCBzbyBUeXBlU2NyaXB0IGlzIGxvc3QgKi9cbiAgICByZXR1cm4gKChzY2hlbWEuZW51bSBhcyB1bmtub3duW10pLmluY2x1ZGVzKGRhdGEpKTtcblxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXB3YS1sb2NhbC1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3NyYy9uZ3gtcHdhLWxvY2FsLXN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
package/esm2022/public-api.mjs
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of local-storage
|
|
3
|
-
*/
|
|
4
|
-
export { SERIALIZATION_ERROR, SerializationError } from "./lib/databases/exceptions";
|
|
5
|
-
export { provideIndexedDBDataBaseName, provideIndexedDBDataBaseVersion, provideIndexedDBStoreName, provideLocalStoragePrefix } from "./lib/providers";
|
|
6
|
-
export { StorageModule } from "./lib/storage.module";
|
|
7
|
-
export { VALIDATION_ERROR, ValidationError } from "./lib/storages/exceptions";
|
|
8
|
-
export { StorageMap } from "./lib/storages/storage-map.service";
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JGLE9BQU8sRUFDTCw0QkFBNEIsRUFBRSwrQkFBK0IsRUFDN0QseUJBQXlCLEVBQUUseUJBQXlCLEVBQ3JELE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0NBQW9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGxvY2FsLXN0b3JhZ2VcbiAqL1xuXG5leHBvcnQgeyBTRVJJQUxJWkFUSU9OX0VSUk9SLCBTZXJpYWxpemF0aW9uRXJyb3IgfSBmcm9tIFwiLi9saWIvZGF0YWJhc2VzL2V4Y2VwdGlvbnNcIjtcbmV4cG9ydCB7XG4gIHByb3ZpZGVJbmRleGVkREJEYXRhQmFzZU5hbWUsIHByb3ZpZGVJbmRleGVkREJEYXRhQmFzZVZlcnNpb24sXG4gIHByb3ZpZGVJbmRleGVkREJTdG9yZU5hbWUsIHByb3ZpZGVMb2NhbFN0b3JhZ2VQcmVmaXhcbn0gZnJvbSBcIi4vbGliL3Byb3ZpZGVyc1wiO1xuZXhwb3J0IHsgU3RvcmFnZU1vZHVsZSB9IGZyb20gXCIuL2xpYi9zdG9yYWdlLm1vZHVsZVwiO1xuZXhwb3J0IHsgVkFMSURBVElPTl9FUlJPUiwgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSBcIi4vbGliL3N0b3JhZ2VzL2V4Y2VwdGlvbnNcIjtcbmV4cG9ydCB7IFN0b3JhZ2VNYXAgfSBmcm9tIFwiLi9saWIvc3RvcmFnZXMvc3RvcmFnZS1tYXAuc2VydmljZVwiO1xuZXhwb3J0IHR5cGUgeyBTdG9yYWdlQ29uZmlnIH0gZnJvbSBcIi4vbGliL3Rva2Vuc1wiO1xuZXhwb3J0IHR5cGUgeyBKU09OU2NoZW1hIH0gZnJvbSBcIi4vbGliL3ZhbGlkYXRpb24vanNvbi1zY2hlbWFcIjtcbiJdfQ==
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Exception message when `indexedDB` is not working
|
|
3
|
-
*/
|
|
4
|
-
export declare const IDB_BROKEN_ERROR = "indexedDB is not working";
|
|
5
|
-
/**
|
|
6
|
-
* Exception raised when `indexedDB` is not working
|
|
7
|
-
*/
|
|
8
|
-
export declare class IDBBrokenError extends Error {
|
|
9
|
-
message: string;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Exception message when a value cannot be serialized for `localStorage`
|
|
13
|
-
*/
|
|
14
|
-
export declare const SERIALIZATION_ERROR = "The storage is currently localStorage,\nwhere data must be serialized, and the provided data can't be serialized.";
|
|
15
|
-
/**
|
|
16
|
-
* Exception throwned when a value cannot be serialized for `localStorage`
|
|
17
|
-
*/
|
|
18
|
-
export declare class SerializationError extends Error {
|
|
19
|
-
message: string;
|
|
20
|
-
}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { Observable } from "rxjs";
|
|
2
|
-
import { LocalDatabase } from "./local-database";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class IndexedDBDatabase implements LocalDatabase {
|
|
5
|
-
/**
|
|
6
|
-
* `indexedDB` database name
|
|
7
|
-
*/
|
|
8
|
-
private readonly dbName;
|
|
9
|
-
/**
|
|
10
|
-
* `indexedDB` object store name
|
|
11
|
-
*/
|
|
12
|
-
private readonly storeName;
|
|
13
|
-
/**
|
|
14
|
-
* `indexedDB` database version. Must be an unsigned **integer**
|
|
15
|
-
*/
|
|
16
|
-
private readonly dbVersion;
|
|
17
|
-
/**
|
|
18
|
-
* `indexedDB` database connection, wrapped in a RxJS `ReplaySubject` to be able to access the connection
|
|
19
|
-
* even after the connection success event happened
|
|
20
|
-
*/
|
|
21
|
-
private readonly database;
|
|
22
|
-
/**
|
|
23
|
-
* Flag to not wrap `indexedDB` values for interoperability or to wrap for backward compatibility.
|
|
24
|
-
*/
|
|
25
|
-
private readonly noWrap;
|
|
26
|
-
/**
|
|
27
|
-
* Index used when wrapping value. *For backward compatibility only.*
|
|
28
|
-
*/
|
|
29
|
-
private readonly wrapIndex;
|
|
30
|
-
constructor();
|
|
31
|
-
/**
|
|
32
|
-
* Information about `indexedDB` connection. *Only useful for interoperability.*
|
|
33
|
-
* @returns `indexedDB` database name, store name and database version
|
|
34
|
-
*/
|
|
35
|
-
get backingStore(): {
|
|
36
|
-
database: string;
|
|
37
|
-
store: string;
|
|
38
|
-
version: number;
|
|
39
|
-
};
|
|
40
|
-
/**
|
|
41
|
-
* Number of items in our `indexedDB` database and object store
|
|
42
|
-
*/
|
|
43
|
-
get size(): Observable<number>;
|
|
44
|
-
/**
|
|
45
|
-
* Gets an item value in our `indexedDB` store
|
|
46
|
-
* @param key The item's key
|
|
47
|
-
* @returns The item's value if the key exists, `undefined` otherwise, wrapped in an RxJS `Observable`
|
|
48
|
-
*/
|
|
49
|
-
get(key: string): Observable<unknown>;
|
|
50
|
-
/**
|
|
51
|
-
* Sets an item in our `indexedDB` store
|
|
52
|
-
* @param key The item's key
|
|
53
|
-
* @param data The item's value
|
|
54
|
-
* @returns An RxJS `Observable` to wait the end of the operation
|
|
55
|
-
*/
|
|
56
|
-
set(key: string, data: unknown): Observable<undefined>;
|
|
57
|
-
/**
|
|
58
|
-
* Deletes an item in our `indexedDB` store
|
|
59
|
-
* @param key The item's key
|
|
60
|
-
* @returns An RxJS `Observable` to wait the end of the operation
|
|
61
|
-
*/
|
|
62
|
-
delete(key: string): Observable<undefined>;
|
|
63
|
-
/**
|
|
64
|
-
* Deletes all items from our `indexedDB` objet store
|
|
65
|
-
* @returns An RxJS `Observable` to wait the end of the operation
|
|
66
|
-
*/
|
|
67
|
-
clear(): Observable<undefined>;
|
|
68
|
-
/**
|
|
69
|
-
* Get all the keys in our `indexedDB` store
|
|
70
|
-
* @returns An RxJS `Observable` iterating on each key
|
|
71
|
-
*/
|
|
72
|
-
keys(): Observable<string>;
|
|
73
|
-
/**
|
|
74
|
-
* Check if a key exists in our `indexedDB` store
|
|
75
|
-
* @returns An RxJS `Observable` telling if the key exists or not
|
|
76
|
-
*/
|
|
77
|
-
has(key: string): Observable<boolean>;
|
|
78
|
-
/**
|
|
79
|
-
* Connects to `indexedDB` and creates the object store on first time
|
|
80
|
-
*/
|
|
81
|
-
private connect;
|
|
82
|
-
/**
|
|
83
|
-
* Create store on first use of `indexedDB`
|
|
84
|
-
* @param request `indexedDB` database opening request
|
|
85
|
-
*/
|
|
86
|
-
private createStore;
|
|
87
|
-
/**
|
|
88
|
-
* Open an `indexedDB` transaction and get our store
|
|
89
|
-
* @param mode `readonly` or `readwrite`
|
|
90
|
-
* @returns An `indexedDB` transaction store and events, wrapped in an RxJS `Observable`
|
|
91
|
-
*/
|
|
92
|
-
private transaction;
|
|
93
|
-
/**
|
|
94
|
-
* Listen errors on a transaction or request, and throw if trigerred
|
|
95
|
-
* @param transactionOrRequest `indexedDb` transaction or request to listen
|
|
96
|
-
* @returns An `Observable` listening to errors
|
|
97
|
-
*/
|
|
98
|
-
private listenError;
|
|
99
|
-
/**
|
|
100
|
-
* Listen transaction `complete` and `error` events
|
|
101
|
-
* @param transaction Transaction to listen
|
|
102
|
-
* @returns An `Observable` listening to transaction `complete` and `error` events
|
|
103
|
-
*/
|
|
104
|
-
private listenTransactionEvents;
|
|
105
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<IndexedDBDatabase, never>;
|
|
106
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<IndexedDBDatabase>;
|
|
107
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Observable } from "rxjs";
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Factory to create a storage according to browser support
|
|
5
|
-
* @see {@link https://github.com/cyrilletuzi/angular-async-local-storage/blob/main/docs/BROWSERS_SUPPORT.md}
|
|
6
|
-
*/
|
|
7
|
-
export declare function localDatabaseFactory(): LocalDatabase;
|
|
8
|
-
export declare abstract class LocalDatabase {
|
|
9
|
-
abstract readonly size: Observable<number>;
|
|
10
|
-
abstract get(key: string): Observable<unknown>;
|
|
11
|
-
abstract set(key: string, data: unknown): Observable<undefined>;
|
|
12
|
-
abstract delete(key: string): Observable<undefined>;
|
|
13
|
-
abstract clear(): Observable<undefined>;
|
|
14
|
-
abstract keys(): Observable<string>;
|
|
15
|
-
abstract has(key: string): Observable<boolean>;
|
|
16
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<LocalDatabase, never>;
|
|
17
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<LocalDatabase>;
|
|
18
|
-
}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { Observable } from "rxjs";
|
|
2
|
-
import { LocalDatabase } from "./local-database";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class LocalStorageDatabase implements LocalDatabase {
|
|
5
|
-
/**
|
|
6
|
-
* Optional user prefix to avoid collision for multiple apps on the same subdomain
|
|
7
|
-
*/
|
|
8
|
-
readonly prefix: string;
|
|
9
|
-
constructor();
|
|
10
|
-
/**
|
|
11
|
-
* Number of items in `localStorage`
|
|
12
|
-
*/
|
|
13
|
-
get size(): Observable<number>;
|
|
14
|
-
/**
|
|
15
|
-
* Gets an item value in `localStorage`
|
|
16
|
-
* @param key The item's key
|
|
17
|
-
* @returns The item's value if the key exists, `undefined` otherwise, wrapped in a RxJS `Observable`
|
|
18
|
-
*/
|
|
19
|
-
get(key: string): Observable<unknown>;
|
|
20
|
-
/**
|
|
21
|
-
* Store an item in `localStorage`
|
|
22
|
-
* @param key The item's key
|
|
23
|
-
* @param data The item's value
|
|
24
|
-
* @returns A RxJS `Observable` to wait the end of the operation
|
|
25
|
-
*/
|
|
26
|
-
set(key: string, data: unknown): Observable<undefined>;
|
|
27
|
-
/**
|
|
28
|
-
* Deletes an item in `localStorage`
|
|
29
|
-
* @param key The item's key
|
|
30
|
-
* @returns A RxJS `Observable` to wait the end of the operation
|
|
31
|
-
*/
|
|
32
|
-
delete(key: string): Observable<undefined>;
|
|
33
|
-
/**
|
|
34
|
-
* Deletes all items in `localStorage`
|
|
35
|
-
* @returns A RxJS `Observable` to wait the end of the operation
|
|
36
|
-
*/
|
|
37
|
-
clear(): Observable<undefined>;
|
|
38
|
-
/**
|
|
39
|
-
* Get all keys in `localStorage`
|
|
40
|
-
* Note the order of the keys may be inconsistent in Firefox
|
|
41
|
-
* @returns A RxJS `Observable` iterating on keys
|
|
42
|
-
*/
|
|
43
|
-
keys(): Observable<string>;
|
|
44
|
-
/**
|
|
45
|
-
* Check if a key exists in `localStorage`
|
|
46
|
-
* @param key The item's key
|
|
47
|
-
* @returns A RxJS `Observable` telling if the key exists or not
|
|
48
|
-
*/
|
|
49
|
-
has(key: string): Observable<boolean>;
|
|
50
|
-
/**
|
|
51
|
-
* Get an unprefixed key
|
|
52
|
-
* @param index Index of the key
|
|
53
|
-
* @returns The unprefixed key name if exists, `null` otherwise
|
|
54
|
-
*/
|
|
55
|
-
private getUnprefixedKey;
|
|
56
|
-
/**
|
|
57
|
-
* Add the prefix to a key
|
|
58
|
-
* @param key The key name
|
|
59
|
-
* @returns The prefixed key name
|
|
60
|
-
*/
|
|
61
|
-
private prefixKey;
|
|
62
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<LocalStorageDatabase, never>;
|
|
63
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<LocalStorageDatabase>;
|
|
64
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { Observable } from "rxjs";
|
|
2
|
-
import { LocalDatabase } from "./local-database";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class MemoryDatabase implements LocalDatabase {
|
|
5
|
-
/**
|
|
6
|
-
* Memory storage
|
|
7
|
-
*/
|
|
8
|
-
private readonly memoryStorage;
|
|
9
|
-
/**
|
|
10
|
-
* Number of items in memory
|
|
11
|
-
*/
|
|
12
|
-
get size(): Observable<number>;
|
|
13
|
-
/**
|
|
14
|
-
* Gets an item value in memory
|
|
15
|
-
* @param key The item's key
|
|
16
|
-
* @returns The item's value if the key exists, `undefined` otherwise, wrapped in a RxJS `Observable`
|
|
17
|
-
*/
|
|
18
|
-
get(key: string): Observable<unknown>;
|
|
19
|
-
/**
|
|
20
|
-
* Sets an item in memory
|
|
21
|
-
* @param key The item's key
|
|
22
|
-
* @param data The item's value
|
|
23
|
-
* @returns A RxJS `Observable` to wait the end of the operation
|
|
24
|
-
*/
|
|
25
|
-
set(key: string, data: unknown): Observable<undefined>;
|
|
26
|
-
/**
|
|
27
|
-
* Deletes an item in memory
|
|
28
|
-
* @param key The item's key
|
|
29
|
-
* @returns A RxJS `Observable` to wait the end of the operation
|
|
30
|
-
*/
|
|
31
|
-
delete(key: string): Observable<undefined>;
|
|
32
|
-
/**
|
|
33
|
-
* Deletes all items in memory
|
|
34
|
-
* @returns A RxJS `Observable` to wait the end of the operation
|
|
35
|
-
*/
|
|
36
|
-
clear(): Observable<undefined>;
|
|
37
|
-
/**
|
|
38
|
-
* Get all keys in memory
|
|
39
|
-
* @returns A RxJS `Observable` iterating on keys
|
|
40
|
-
*/
|
|
41
|
-
keys(): Observable<string>;
|
|
42
|
-
/**
|
|
43
|
-
* Check if a key exists in memory
|
|
44
|
-
* @param key Key name
|
|
45
|
-
* @returns a RxJS `Observable` telling if the key exists or not
|
|
46
|
-
*/
|
|
47
|
-
has(key: string): Observable<boolean>;
|
|
48
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<MemoryDatabase, never>;
|
|
49
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<MemoryDatabase>;
|
|
50
|
-
}
|