@ngxs/storage-plugin 3.8.1-dev.master-22c3643 → 3.8.1-dev.master-4a74d16
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/esm2020/internals/final-options.mjs +20 -0
- package/esm2020/internals/index.mjs +4 -0
- package/esm2020/internals/ngxs-storage-plugin-internals.mjs +5 -0
- package/esm2020/internals/storage-key.mjs +21 -0
- package/esm2020/internals/symbols.mjs +10 -0
- package/esm2020/src/engines.mjs +1 -1
- package/esm2020/src/internals.mjs +3 -7
- package/esm2020/src/public_api.mjs +2 -2
- package/esm2020/src/storage.module.mjs +12 -13
- package/esm2020/src/storage.plugin.mjs +8 -8
- package/fesm2015/ngxs-storage-plugin-internals.mjs +52 -0
- package/fesm2015/ngxs-storage-plugin-internals.mjs.map +1 -0
- package/fesm2015/ngxs-storage-plugin.mjs +21 -62
- package/fesm2015/ngxs-storage-plugin.mjs.map +1 -1
- package/fesm2020/ngxs-storage-plugin-internals.mjs +55 -0
- package/fesm2020/ngxs-storage-plugin-internals.mjs.map +1 -0
- package/fesm2020/ngxs-storage-plugin.mjs +21 -65
- package/fesm2020/ngxs-storage-plugin.mjs.map +1 -1
- package/internals/final-options.d.ts +10 -0
- package/internals/index.d.ts +3 -0
- package/{src/internals → internals}/storage-key.d.ts +3 -3
- package/{src → internals}/symbols.d.ts +7 -2
- package/package.json +9 -1
- package/src/engines.d.ts +1 -1
- package/src/internals.d.ts +1 -6
- package/src/public_api.d.ts +1 -1
- package/src/storage.module.d.ts +1 -1
- package/src/storage.plugin.d.ts +2 -2
- package/esm2020/src/internals/final-options.mjs +0 -20
- package/esm2020/src/internals/storage-key.mjs +0 -21
- package/esm2020/src/symbols.mjs +0 -5
- package/src/internals/final-options.d.ts +0 -10
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { STORAGE_ENGINE } from './symbols';
|
|
3
|
+
import { ɵextractStringKey, ɵisKeyWithExplicitEngine } from './storage-key';
|
|
4
|
+
const NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
5
|
+
export const ɵFINAL_NGXS_STORAGE_PLUGIN_OPTIONS = new InjectionToken(NG_DEV_MODE ? 'FINAL_NGXS_STORAGE_PLUGIN_OPTIONS' : '');
|
|
6
|
+
export function ɵcreateFinalStoragePluginOptions(injector, options) {
|
|
7
|
+
const storageKeys = Array.isArray(options.key) ? options.key : [options.key];
|
|
8
|
+
const keysWithEngines = storageKeys.map((storageKey) => {
|
|
9
|
+
const key = ɵextractStringKey(storageKey);
|
|
10
|
+
const engine = ɵisKeyWithExplicitEngine(storageKey)
|
|
11
|
+
? injector.get(storageKey.engine)
|
|
12
|
+
: injector.get(STORAGE_ENGINE);
|
|
13
|
+
return { key, engine };
|
|
14
|
+
});
|
|
15
|
+
return {
|
|
16
|
+
...options,
|
|
17
|
+
keysWithEngines
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluYWwtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JhZ2UtcGx1Z2luL2ludGVybmFscy9zcmMvZmluYWwtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBNEIsY0FBYyxFQUFpQixNQUFNLFdBQVcsQ0FBQztBQUNwRixPQUFPLEVBQWMsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFXeEYsTUFBTSxXQUFXLEdBQUcsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsQ0FBQztBQUVsRSxNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBRyxJQUFJLGNBQWMsQ0FDbEUsV0FBVyxDQUFDLENBQUMsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUN2RCxDQUFDO0FBRUYsTUFBTSxVQUFVLGdDQUFnQyxDQUM5QyxRQUFrQixFQUNsQixPQUFpQztJQUVqQyxNQUFNLFdBQVcsR0FBaUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUksQ0FBQyxDQUFDO0lBRTVGLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFzQixFQUFFLEVBQUU7UUFDakUsTUFBTSxHQUFHLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsd0JBQXdCLENBQUMsVUFBVSxDQUFDO1lBQ2pELENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDakMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUN6QixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTCxHQUFHLE9BQU87UUFDVixlQUFlO0tBQ2hCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE5neHNTdG9yYWdlUGx1Z2luT3B0aW9ucywgU1RPUkFHRV9FTkdJTkUsIFN0b3JhZ2VFbmdpbmUgfSBmcm9tICcuL3N5bWJvbHMnO1xuaW1wb3J0IHsgU3RvcmFnZUtleSwgybVleHRyYWN0U3RyaW5nS2V5LCDJtWlzS2V5V2l0aEV4cGxpY2l0RW5naW5lIH0gZnJvbSAnLi9zdG9yYWdlLWtleSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgybVGaW5hbE5neHNTdG9yYWdlUGx1Z2luT3B0aW9ucyBleHRlbmRzIE5neHNTdG9yYWdlUGx1Z2luT3B0aW9ucyB7XG4gIGtleXNXaXRoRW5naW5lczoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIGVuZ2luZTogU3RvcmFnZUVuZ2luZTtcbiAgfVtdO1xufVxuXG5kZWNsYXJlIGNvbnN0IG5nRGV2TW9kZTogYm9vbGVhbjtcblxuY29uc3QgTkdfREVWX01PREUgPSB0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGU7XG5cbmV4cG9ydCBjb25zdCDJtUZJTkFMX05HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjx1bmtub3duPihcbiAgTkdfREVWX01PREUgPyAnRklOQUxfTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TJyA6ICcnXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gybVjcmVhdGVGaW5hbFN0b3JhZ2VQbHVnaW5PcHRpb25zKFxuICBpbmplY3RvcjogSW5qZWN0b3IsXG4gIG9wdGlvbnM6IE5neHNTdG9yYWdlUGx1Z2luT3B0aW9uc1xuKTogybVGaW5hbE5neHNTdG9yYWdlUGx1Z2luT3B0aW9ucyB7XG4gIGNvbnN0IHN0b3JhZ2VLZXlzOiBTdG9yYWdlS2V5W10gPSBBcnJheS5pc0FycmF5KG9wdGlvbnMua2V5KSA/IG9wdGlvbnMua2V5IDogW29wdGlvbnMua2V5IV07XG5cbiAgY29uc3Qga2V5c1dpdGhFbmdpbmVzID0gc3RvcmFnZUtleXMubWFwKChzdG9yYWdlS2V5OiBTdG9yYWdlS2V5KSA9PiB7XG4gICAgY29uc3Qga2V5ID0gybVleHRyYWN0U3RyaW5nS2V5KHN0b3JhZ2VLZXkpO1xuICAgIGNvbnN0IGVuZ2luZSA9IMm1aXNLZXlXaXRoRXhwbGljaXRFbmdpbmUoc3RvcmFnZUtleSlcbiAgICAgID8gaW5qZWN0b3IuZ2V0KHN0b3JhZ2VLZXkuZW5naW5lKVxuICAgICAgOiBpbmplY3Rvci5nZXQoU1RPUkFHRV9FTkdJTkUpO1xuICAgIHJldHVybiB7IGtleSwgZW5naW5lIH07XG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBrZXlzV2l0aEVuZ2luZXNcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './symbols';
|
|
2
|
+
export * from './final-options';
|
|
3
|
+
export * from './storage-key';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yYWdlLXBsdWdpbi9pbnRlcm5hbHMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3N5bWJvbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9maW5hbC1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZS1rZXknO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1zdG9yYWdlLXBsdWdpbi1pbnRlcm5hbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yYWdlLXBsdWdpbi9pbnRlcm5hbHMvc3JjL25neHMtc3RvcmFnZS1wbHVnaW4taW50ZXJuYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { StateToken } from '@ngxs/store';
|
|
2
|
+
/** Determines whether the provided key has the following structure. */
|
|
3
|
+
export function ɵisKeyWithExplicitEngine(key) {
|
|
4
|
+
return key != null && !!key.engine;
|
|
5
|
+
}
|
|
6
|
+
/** This symbol is used to store the metadata on state classes. */
|
|
7
|
+
const META_OPTIONS_KEY = 'NGXS_OPTIONS_META';
|
|
8
|
+
export function ɵextractStringKey(storageKey) {
|
|
9
|
+
// Extract the actual key out of the `{ key, engine }` structure.
|
|
10
|
+
if (ɵisKeyWithExplicitEngine(storageKey)) {
|
|
11
|
+
storageKey = storageKey.key;
|
|
12
|
+
}
|
|
13
|
+
// Given the `storageKey` is a class, for instance, `AuthState`.
|
|
14
|
+
// We should retrieve its metadata and the `name` property.
|
|
15
|
+
// The `name` property might be a string (state name) or a state token.
|
|
16
|
+
if (storageKey.hasOwnProperty(META_OPTIONS_KEY)) {
|
|
17
|
+
storageKey = storageKey[META_OPTIONS_KEY].name;
|
|
18
|
+
}
|
|
19
|
+
return storageKey instanceof StateToken ? storageKey.getName() : storageKey;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1rZXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yYWdlLXBsdWdpbi9pbnRlcm5hbHMvc3JjL3N0b3JhZ2Uta2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFXekMsdUVBQXVFO0FBQ3ZFLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxHQUFRO0lBQy9DLE9BQU8sR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztBQUNyQyxDQUFDO0FBUUQsa0VBQWtFO0FBQ2xFLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUM7QUFDN0MsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFVBQXNCO0lBQ3RELGlFQUFpRTtJQUNqRSxJQUFJLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQ3hDLFVBQVUsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDO0tBQzdCO0lBRUQsZ0VBQWdFO0lBQ2hFLDJEQUEyRDtJQUMzRCx1RUFBdUU7SUFDdkUsSUFBSSxVQUFVLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLEVBQUU7UUFDL0MsVUFBVSxHQUFJLFVBQWtCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUM7S0FDekQ7SUFFRCxPQUFPLFVBQVUsWUFBWSxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQVMsVUFBVSxDQUFDO0FBQ3RGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RhdGVUb2tlbiB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IFN0YXRlQ2xhc3MgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuXG5pbXBvcnQgeyBTdG9yYWdlRW5naW5lIH0gZnJvbSAnLi9zeW1ib2xzJztcblxuLyoqIFRoaXMgZW5hYmxlcyB0aGUgdXNlciB0byBwcm92aWRlIGEgc3RvcmFnZSBlbmdpbmUgcGVyIGluZGl2aWR1YWwga2V5LiAqL1xuZXhwb3J0IGludGVyZmFjZSBLZXlXaXRoRXhwbGljaXRFbmdpbmUge1xuICBrZXk6IHN0cmluZyB8IFN0YXRlQ2xhc3MgfCBTdGF0ZVRva2VuPGFueT47XG4gIGVuZ2luZTogVHlwZTxTdG9yYWdlRW5naW5lPiB8IEluamVjdGlvblRva2VuPFN0b3JhZ2VFbmdpbmU+O1xufVxuXG4vKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwcm92aWRlZCBrZXkgaGFzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIMm1aXNLZXlXaXRoRXhwbGljaXRFbmdpbmUoa2V5OiBhbnkpOiBrZXkgaXMgS2V5V2l0aEV4cGxpY2l0RW5naW5lIHtcbiAgcmV0dXJuIGtleSAhPSBudWxsICYmICEha2V5LmVuZ2luZTtcbn1cblxuLyoqXG4gKiBUaGlzIHR1cGxlcyBhbGwgb2YgdGhlIHBvc3NpYmxlIHR5cGVzIGFsbG93ZWQgaW4gdGhlIGBrZXlgIHByb3BlcnR5LlxuICogVGhpcyBpcyBub3QgZXhwb3NlZCBwdWJsaWNseSBhbmQgdXNlZCBpbnRlcm5hbGx5IG9ubHkuXG4gKi9cbmV4cG9ydCB0eXBlIFN0b3JhZ2VLZXkgPSBzdHJpbmcgfCBTdGF0ZUNsYXNzIHwgU3RhdGVUb2tlbjxhbnk+IHwgS2V5V2l0aEV4cGxpY2l0RW5naW5lO1xuXG4vKiogVGhpcyBzeW1ib2wgaXMgdXNlZCB0byBzdG9yZSB0aGUgbWV0YWRhdGEgb24gc3RhdGUgY2xhc3Nlcy4gKi9cbmNvbnN0IE1FVEFfT1BUSU9OU19LRVkgPSAnTkdYU19PUFRJT05TX01FVEEnO1xuZXhwb3J0IGZ1bmN0aW9uIMm1ZXh0cmFjdFN0cmluZ0tleShzdG9yYWdlS2V5OiBTdG9yYWdlS2V5KTogc3RyaW5nIHtcbiAgLy8gRXh0cmFjdCB0aGUgYWN0dWFsIGtleSBvdXQgb2YgdGhlIGB7IGtleSwgZW5naW5lIH1gIHN0cnVjdHVyZS5cbiAgaWYgKMm1aXNLZXlXaXRoRXhwbGljaXRFbmdpbmUoc3RvcmFnZUtleSkpIHtcbiAgICBzdG9yYWdlS2V5ID0gc3RvcmFnZUtleS5rZXk7XG4gIH1cblxuICAvLyBHaXZlbiB0aGUgYHN0b3JhZ2VLZXlgIGlzIGEgY2xhc3MsIGZvciBpbnN0YW5jZSwgYEF1dGhTdGF0ZWAuXG4gIC8vIFdlIHNob3VsZCByZXRyaWV2ZSBpdHMgbWV0YWRhdGEgYW5kIHRoZSBgbmFtZWAgcHJvcGVydHkuXG4gIC8vIFRoZSBgbmFtZWAgcHJvcGVydHkgbWlnaHQgYmUgYSBzdHJpbmcgKHN0YXRlIG5hbWUpIG9yIGEgc3RhdGUgdG9rZW4uXG4gIGlmIChzdG9yYWdlS2V5Lmhhc093blByb3BlcnR5KE1FVEFfT1BUSU9OU19LRVkpKSB7XG4gICAgc3RvcmFnZUtleSA9IChzdG9yYWdlS2V5IGFzIGFueSlbTUVUQV9PUFRJT05TX0tFWV0ubmFtZTtcbiAgfVxuXG4gIHJldHVybiBzdG9yYWdlS2V5IGluc3RhbmNlb2YgU3RhdGVUb2tlbiA/IHN0b3JhZ2VLZXkuZ2V0TmFtZSgpIDogPHN0cmluZz5zdG9yYWdlS2V5O1xufVxuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* The following key is used to store the entire serialized
|
|
4
|
+
* state when no specific state is provided.
|
|
5
|
+
*/
|
|
6
|
+
export const ɵDEFAULT_STATE_KEY = '@@STATE';
|
|
7
|
+
const NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
8
|
+
export const ɵNGXS_STORAGE_PLUGIN_OPTIONS = new InjectionToken(NG_DEV_MODE ? 'NGXS_STORAGE_PLUGIN_OPTIONS' : '');
|
|
9
|
+
export const STORAGE_ENGINE = new InjectionToken(NG_DEV_MODE ? 'STORAGE_ENGINE' : '');
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JhZ2UtcGx1Z2luL2ludGVybmFscy9zcmMvc3ltYm9scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSS9DOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLFNBQVMsQ0FBQztBQUk1QyxNQUFNLFdBQVcsR0FBRyxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDO0FBeUVsRSxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FDNUQsV0FBVyxDQUFDLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNqRCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUM5QyxXQUFXLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3BDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdG9yYWdlS2V5IH0gZnJvbSAnLi9zdG9yYWdlLWtleSc7XG5cbi8qKlxuICogVGhlIGZvbGxvd2luZyBrZXkgaXMgdXNlZCB0byBzdG9yZSB0aGUgZW50aXJlIHNlcmlhbGl6ZWRcbiAqIHN0YXRlIHdoZW4gbm8gc3BlY2lmaWMgc3RhdGUgaXMgcHJvdmlkZWQuXG4gKi9cbmV4cG9ydCBjb25zdCDJtURFRkFVTFRfU1RBVEVfS0VZID0gJ0BAU1RBVEUnO1xuXG5kZWNsYXJlIGNvbnN0IG5nRGV2TW9kZTogYm9vbGVhbjtcblxuY29uc3QgTkdfREVWX01PREUgPSB0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGU7XG5cbmV4cG9ydCBjb25zdCBlbnVtIFN0b3JhZ2VPcHRpb24ge1xuICBMb2NhbFN0b3JhZ2UsXG4gIFNlc3Npb25TdG9yYWdlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd4c1N0b3JhZ2VQbHVnaW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIEtleSBmb3IgdGhlIHN0YXRlIHNsaWNlIHRvIHN0b3JlIGluIHRoZSBzdG9yYWdlIGVuZ2luZS5cbiAgICovXG4gIGtleT86IHVuZGVmaW5lZCB8IFN0b3JhZ2VLZXkgfCBTdG9yYWdlS2V5W107XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lc3BhY2UgaXMgdXNlZCB0byBwcmVmaXggdGhlIGtleSBmb3IgdGhlIHN0YXRlIHNsaWNlLiBUaGlzIGlzXG4gICAqIG5lY2Vzc2FyeSB3aGVuIHJ1bm5pbmcgbWljcm8gZnJvbnRlbmQgYXBwbGljYXRpb25zIHdoaWNoIHVzZSBzdG9yYWdlIHBsdWdpbi5cbiAgICogVGhlIG5hbWVzcGFjZSB3aWxsIGVsaW1pbmF0ZSB0aGUgY29uZmxpY3QgYmV0d2VlbiBrZXlzIHRoYXQgbWlnaHQgb3ZlcmxhcC5cbiAgICovXG4gIG5hbWVzcGFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogU3RvcmFnZSBlbmdpbmUgdG8gdXNlLiBEZWF1bHRzIHRvIGxvY2FsU3RvcmFnZSBidXQgY2FuIHByb3ZpZGVcbiAgICpcbiAgICogc2Vzc2lvblN0b3JhZ2Ugb3IgY3VzdG9tIGltcGxlbWVudGF0aW9uIG9mIHRoZSBTdG9yYWdlRW5naW5lIGludGVyZmFjZVxuICAgKi9cbiAgc3RvcmFnZT86IFN0b3JhZ2VPcHRpb247XG5cbiAgLyoqXG4gICAqIE1pZ3JhdGlvbiBzdHJhdGVnaWVzLlxuICAgKi9cbiAgbWlncmF0aW9ucz86IHtcbiAgICAvKipcbiAgICAgKiBWZXJzaW9uIHRvIGtleSBvZmYuXG4gICAgICovXG4gICAgdmVyc2lvbjogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRvIG1pZ3JhdGUgdGhlIHByZXZpb3VzIHN0YXRlLlxuICAgICAqL1xuICAgIG1pZ3JhdGU6IChzdGF0ZTogYW55KSA9PiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBLZXkgdG8gbWlncmF0ZS5cbiAgICAgKi9cbiAgICBrZXk/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBLZXkgZm9yIHRoZSB2ZXJzaW9uLiBEZWZhdWx0cyB0byAndmVyc2lvbicuXG4gICAgICovXG4gICAgdmVyc2lvbktleT86IHN0cmluZztcbiAgfVtdO1xuXG4gIC8qKlxuICAgKiBTZXJhaWxpemVyIGZvciB0aGUgb2JqZWN0IGJlZm9yZSBpdHMgcHVzaGVkIGludG8gdGhlIGVuZ2luZS5cbiAgICovXG4gIHNlcmlhbGl6ZT8ob2JqOiBhbnkpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlc2VyaWFsaXplciBmb3IgdGhlIG9iamVjdCBiZWZvcmUgaXRzIHB1bGxlZCBvdXQgb2YgdGhlIGVuZ2luZS5cbiAgICovXG4gIGRlc2VyaWFsaXplPyhvYmo6IGFueSk6IGFueTtcblxuICAvKipcbiAgICogTWV0aG9kIHRvIGFsdGVyIG9iamVjdCBiZWZvcmUgc2VyaWFsaXphdGlvbi5cbiAgICovXG4gIGJlZm9yZVNlcmlhbGl6ZT8ob2JqOiBhbnksIGtleTogc3RyaW5nKTogYW55O1xuXG4gIC8qKlxuICAgKiBNZXRob2QgdG8gYWx0ZXIgb2JqZWN0IGFmdGVyIGRlc2VyaWFsaXphdGlvbi5cbiAgICovXG4gIGFmdGVyRGVzZXJpYWxpemU/KG9iajogYW55LCBrZXk6IHN0cmluZyk6IGFueTtcbn1cblxuZXhwb3J0IGNvbnN0IMm1TkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuKFxuICBOR19ERVZfTU9ERSA/ICdOR1hTX1NUT1JBR0VfUExVR0lOX09QVElPTlMnIDogJydcbik7XG5cbmV4cG9ydCBjb25zdCBTVE9SQUdFX0VOR0lORSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTdG9yYWdlRW5naW5lPihcbiAgTkdfREVWX01PREUgPyAnU1RPUkFHRV9FTkdJTkUnIDogJydcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUVuZ2luZSB7XG4gIGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBhbnk7XG4gIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkO1xufVxuIl19
|
package/esm2020/src/engines.mjs
CHANGED
|
@@ -9,4 +9,4 @@ export const SESSION_STORAGE_ENGINE = new InjectionToken(NG_DEV_MODE ? 'SESSION_
|
|
|
9
9
|
providedIn: 'root',
|
|
10
10
|
factory: () => (isPlatformBrowser(inject(PLATFORM_ID)) ? sessionStorage : null)
|
|
11
11
|
});
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JhZ2UtcGx1Z2luL3NyYy9lbmdpbmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUtwRCxNQUFNLFdBQVcsR0FBRyxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDO0FBRWxFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUNwRCxXQUFXLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ3pDO0lBQ0UsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0NBQzlFLENBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUN0RCxXQUFXLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQzNDO0lBQ0UsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0NBQ2hGLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBQTEFURk9STV9JRCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTdG9yYWdlRW5naW5lIH0gZnJvbSAnQG5neHMvc3RvcmFnZS1wbHVnaW4vaW50ZXJuYWxzJztcblxuZGVjbGFyZSBjb25zdCBuZ0Rldk1vZGU6IGJvb2xlYW47XG5cbmNvbnN0IE5HX0RFVl9NT0RFID0gdHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlO1xuXG5leHBvcnQgY29uc3QgTE9DQUxfU1RPUkFHRV9FTkdJTkUgPSBuZXcgSW5qZWN0aW9uVG9rZW48U3RvcmFnZUVuZ2luZSB8IG51bGw+KFxuICBOR19ERVZfTU9ERSA/ICdMT0NBTF9TVE9SQUdFX0VOR0lORScgOiAnJyxcbiAge1xuICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICBmYWN0b3J5OiAoKSA9PiAoaXNQbGF0Zm9ybUJyb3dzZXIoaW5qZWN0KFBMQVRGT1JNX0lEKSkgPyBsb2NhbFN0b3JhZ2UgOiBudWxsKVxuICB9XG4pO1xuXG5leHBvcnQgY29uc3QgU0VTU0lPTl9TVE9SQUdFX0VOR0lORSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTdG9yYWdlRW5naW5lIHwgbnVsbD4oXG4gIE5HX0RFVl9NT0RFID8gJ1NFU1NJT05fU1RPUkFHRV9FTkdJTkUnIDogJycsXG4gIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogKCkgPT4gKGlzUGxhdGZvcm1Ccm93c2VyKGluamVjdChQTEFURk9STV9JRCkpID8gc2Vzc2lvblN0b3JhZ2UgOiBudWxsKVxuICB9XG4pO1xuIl19
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import { isPlatformServer } from '@angular/common';
|
|
2
|
-
|
|
3
|
-
* The following key is used to store the entire serialized
|
|
4
|
-
* state when there's no specific state provided.
|
|
5
|
-
*/
|
|
6
|
-
export const DEFAULT_STATE_KEY = '@@STATE';
|
|
2
|
+
import { ɵDEFAULT_STATE_KEY } from '@ngxs/storage-plugin/internals';
|
|
7
3
|
export function storageOptionsFactory(options) {
|
|
8
4
|
return {
|
|
9
|
-
key: [DEFAULT_STATE_KEY],
|
|
5
|
+
key: [ɵDEFAULT_STATE_KEY],
|
|
10
6
|
storage: 0 /* StorageOption.LocalStorage */,
|
|
11
7
|
serialize: JSON.stringify,
|
|
12
8
|
deserialize: JSON.parse,
|
|
@@ -32,4 +28,4 @@ export function getStorageKey(key, options) {
|
|
|
32
28
|
// So `@@STATE` becomes `my-app:@@STATE`.
|
|
33
29
|
return options && options.namespace ? `${options.namespace}:${key}` : key;
|
|
34
30
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmFnZS1wbHVnaW4vc3JjL2ludGVybmFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsa0JBQWtCLEVBSW5CLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEMsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxPQUE2QztJQUU3QyxPQUFPO1FBQ0wsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7UUFDekIsT0FBTyxvQ0FBNEI7UUFDbkMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1FBQ3pCLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSztRQUN2QixlQUFlLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHO1FBQzNCLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRztRQUM1QixHQUFHLE9BQU87S0FDWCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQzNCLE9BQWlDLEVBQ2pDLFVBQWtCO0lBRWxCLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDaEMsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELElBQUksT0FBTyxDQUFDLE9BQU8sdUNBQStCLEVBQUU7UUFDbEQsT0FBTyxZQUFZLENBQUM7S0FDckI7U0FBTSxJQUFJLE9BQU8sQ0FBQyxPQUFPLHlDQUFpQyxFQUFFO1FBQzNELE9BQU8sY0FBYyxDQUFDO0tBQ3ZCO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUFXLEVBQUUsT0FBa0M7SUFDM0UsOEVBQThFO0lBQzlFLHlDQUF5QztJQUN6QyxPQUFPLE9BQU8sSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUM1RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICDJtURFRkFVTFRfU1RBVEVfS0VZLFxuICBTdG9yYWdlT3B0aW9uLFxuICBTdG9yYWdlRW5naW5lLFxuICBOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnNcbn0gZnJvbSAnQG5neHMvc3RvcmFnZS1wbHVnaW4vaW50ZXJuYWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHN0b3JhZ2VPcHRpb25zRmFjdG9yeShcbiAgb3B0aW9uczogTmd4c1N0b3JhZ2VQbHVnaW5PcHRpb25zIHwgdW5kZWZpbmVkXG4pOiBOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnMge1xuICByZXR1cm4ge1xuICAgIGtleTogW8m1REVGQVVMVF9TVEFURV9LRVldLFxuICAgIHN0b3JhZ2U6IFN0b3JhZ2VPcHRpb24uTG9jYWxTdG9yYWdlLFxuICAgIHNlcmlhbGl6ZTogSlNPTi5zdHJpbmdpZnksXG4gICAgZGVzZXJpYWxpemU6IEpTT04ucGFyc2UsXG4gICAgYmVmb3JlU2VyaWFsaXplOiBvYmogPT4gb2JqLFxuICAgIGFmdGVyRGVzZXJpYWxpemU6IG9iaiA9PiBvYmosXG4gICAgLi4ub3B0aW9uc1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5naW5lRmFjdG9yeShcbiAgb3B0aW9uczogTmd4c1N0b3JhZ2VQbHVnaW5PcHRpb25zLFxuICBwbGF0Zm9ybUlkOiBzdHJpbmdcbik6IFN0b3JhZ2VFbmdpbmUgfCBudWxsIHtcbiAgaWYgKGlzUGxhdGZvcm1TZXJ2ZXIocGxhdGZvcm1JZCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnN0b3JhZ2UgPT09IFN0b3JhZ2VPcHRpb24uTG9jYWxTdG9yYWdlKSB7XG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZTtcbiAgfSBlbHNlIGlmIChvcHRpb25zLnN0b3JhZ2UgPT09IFN0b3JhZ2VPcHRpb24uU2Vzc2lvblN0b3JhZ2UpIHtcbiAgICByZXR1cm4gc2Vzc2lvblN0b3JhZ2U7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0b3JhZ2VLZXkoa2V5OiBzdHJpbmcsIG9wdGlvbnM/OiBOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnMpOiBzdHJpbmcge1xuICAvLyBQcmVwZW5kcyB0aGUgYG5hbWVzcGFjZWAgb3B0aW9uIHRvIGFueSBrZXkgaWYgaXQncyBiZWVuIHByb3ZpZGVkIGJ5IGEgdXNlci5cbiAgLy8gU28gYEBAU1RBVEVgIGJlY29tZXMgYG15LWFwcDpAQFNUQVRFYC5cbiAgcmV0dXJuIG9wdGlvbnMgJiYgb3B0aW9ucy5uYW1lc3BhY2UgPyBgJHtvcHRpb25zLm5hbWVzcGFjZX06JHtrZXl9YCA6IGtleTtcbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { NgxsStoragePluginModule, withNgxsStoragePlugin } from './storage.module';
|
|
2
2
|
export { NgxsStoragePlugin } from './storage.plugin';
|
|
3
|
-
export * from './symbols';
|
|
4
3
|
export * from './engines';
|
|
5
|
-
|
|
4
|
+
export { STORAGE_ENGINE } from '@ngxs/storage-plugin/internals';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JhZ2UtcGx1Z2luL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELGNBQWMsV0FBVyxDQUFDO0FBRTFCLE9BQU8sRUFHTCxjQUFjLEVBRWYsTUFBTSxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IE5neHNTdG9yYWdlUGx1Z2luTW9kdWxlLCB3aXRoTmd4c1N0b3JhZ2VQbHVnaW4gfSBmcm9tICcuL3N0b3JhZ2UubW9kdWxlJztcbmV4cG9ydCB7IE5neHNTdG9yYWdlUGx1Z2luIH0gZnJvbSAnLi9zdG9yYWdlLnBsdWdpbic7XG5leHBvcnQgKiBmcm9tICcuL2VuZ2luZXMnO1xuXG5leHBvcnQge1xuICBTdG9yYWdlT3B0aW9uLFxuICBOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnMsXG4gIFNUT1JBR0VfRU5HSU5FLFxuICBTdG9yYWdlRW5naW5lXG59IGZyb20gJ0BuZ3hzL3N0b3JhZ2UtcGx1Z2luL2ludGVybmFscyc7XG4iXX0=
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { NgModule, PLATFORM_ID, InjectionToken, Injector, makeEnvironmentProviders } from '@angular/core';
|
|
2
2
|
import { NGXS_PLUGINS, withNgxsPlugin } from '@ngxs/store';
|
|
3
|
-
import { STORAGE_ENGINE, NGXS_STORAGE_PLUGIN_OPTIONS } from '
|
|
3
|
+
import { STORAGE_ENGINE, ɵNGXS_STORAGE_PLUGIN_OPTIONS, ɵcreateFinalStoragePluginOptions, ɵFINAL_NGXS_STORAGE_PLUGIN_OPTIONS } from '@ngxs/storage-plugin/internals';
|
|
4
4
|
import { NgxsStoragePlugin } from './storage.plugin';
|
|
5
5
|
import { engineFactory, storageOptionsFactory } from './internals';
|
|
6
|
-
import { createFinalStoragePluginOptions, FINAL_NGXS_STORAGE_PLUGIN_OPTIONS } from './internals/final-options';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
8
7
|
const NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
9
8
|
export const USER_OPTIONS = new InjectionToken(NG_DEV_MODE ? 'USER_OPTIONS' : '');
|
|
@@ -22,19 +21,19 @@ export class NgxsStoragePluginModule {
|
|
|
22
21
|
useValue: options
|
|
23
22
|
},
|
|
24
23
|
{
|
|
25
|
-
provide: NGXS_STORAGE_PLUGIN_OPTIONS,
|
|
24
|
+
provide: ɵNGXS_STORAGE_PLUGIN_OPTIONS,
|
|
26
25
|
useFactory: storageOptionsFactory,
|
|
27
26
|
deps: [USER_OPTIONS]
|
|
28
27
|
},
|
|
29
28
|
{
|
|
30
29
|
provide: STORAGE_ENGINE,
|
|
31
30
|
useFactory: engineFactory,
|
|
32
|
-
deps: [NGXS_STORAGE_PLUGIN_OPTIONS, PLATFORM_ID]
|
|
31
|
+
deps: [ɵNGXS_STORAGE_PLUGIN_OPTIONS, PLATFORM_ID]
|
|
33
32
|
},
|
|
34
33
|
{
|
|
35
|
-
provide: FINAL_NGXS_STORAGE_PLUGIN_OPTIONS,
|
|
36
|
-
useFactory:
|
|
37
|
-
deps: [Injector, NGXS_STORAGE_PLUGIN_OPTIONS]
|
|
34
|
+
provide: ɵFINAL_NGXS_STORAGE_PLUGIN_OPTIONS,
|
|
35
|
+
useFactory: ɵcreateFinalStoragePluginOptions,
|
|
36
|
+
deps: [Injector, ɵNGXS_STORAGE_PLUGIN_OPTIONS]
|
|
38
37
|
}
|
|
39
38
|
]
|
|
40
39
|
};
|
|
@@ -54,20 +53,20 @@ export function withNgxsStoragePlugin(options) {
|
|
|
54
53
|
useValue: options
|
|
55
54
|
},
|
|
56
55
|
{
|
|
57
|
-
provide: NGXS_STORAGE_PLUGIN_OPTIONS,
|
|
56
|
+
provide: ɵNGXS_STORAGE_PLUGIN_OPTIONS,
|
|
58
57
|
useFactory: storageOptionsFactory,
|
|
59
58
|
deps: [USER_OPTIONS]
|
|
60
59
|
},
|
|
61
60
|
{
|
|
62
61
|
provide: STORAGE_ENGINE,
|
|
63
62
|
useFactory: engineFactory,
|
|
64
|
-
deps: [NGXS_STORAGE_PLUGIN_OPTIONS, PLATFORM_ID]
|
|
63
|
+
deps: [ɵNGXS_STORAGE_PLUGIN_OPTIONS, PLATFORM_ID]
|
|
65
64
|
},
|
|
66
65
|
{
|
|
67
|
-
provide: FINAL_NGXS_STORAGE_PLUGIN_OPTIONS,
|
|
68
|
-
useFactory:
|
|
69
|
-
deps: [Injector, NGXS_STORAGE_PLUGIN_OPTIONS]
|
|
66
|
+
provide: ɵFINAL_NGXS_STORAGE_PLUGIN_OPTIONS,
|
|
67
|
+
useFactory: ɵcreateFinalStoragePluginOptions,
|
|
68
|
+
deps: [Injector, ɵNGXS_STORAGE_PLUGIN_OPTIONS]
|
|
70
69
|
}
|
|
71
70
|
]);
|
|
72
71
|
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yYWdlLXBsdWdpbi9zcmMvc3RvcmFnZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFFBQVEsRUFFUixXQUFXLEVBQ1gsY0FBYyxFQUNkLFFBQVEsRUFFUix3QkFBd0IsRUFDekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0QsT0FBTyxFQUVMLGNBQWMsRUFDZCw0QkFBNEIsRUFDNUIsZ0NBQWdDLEVBQ2hDLGtDQUFrQyxFQUNuQyxNQUFNLGdDQUFnQyxDQUFDO0FBRXhDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBSW5FLE1BQU0sV0FBVyxHQUFHLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLENBQUM7QUFFbEUsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUdsRixNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLE1BQU0sQ0FBQyxPQUFPLENBQ1osT0FBa0M7UUFFbEMsT0FBTztZQUNMLFFBQVEsRUFBRSx1QkFBdUI7WUFDakMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxZQUFZO29CQUNyQixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixLQUFLLEVBQUUsSUFBSTtpQkFDWjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsWUFBWTtvQkFDckIsUUFBUSxFQUFFLE9BQU87aUJBQ2xCO2dCQUNEO29CQUNFLE9BQU8sRUFBRSw0QkFBNEI7b0JBQ3JDLFVBQVUsRUFBRSxxQkFBcUI7b0JBQ2pDLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDckI7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLGNBQWM7b0JBQ3ZCLFVBQVUsRUFBRSxhQUFhO29CQUN6QixJQUFJLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxXQUFXLENBQUM7aUJBQ2xEO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxrQ0FBa0M7b0JBQzNDLFVBQVUsRUFBRSxnQ0FBZ0M7b0JBQzVDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSw0QkFBNEIsQ0FBQztpQkFDL0M7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzt1SUFqQ1UsdUJBQXVCO3dJQUF2Qix1QkFBdUI7d0lBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQURuQyxRQUFROztBQXFDVCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLE9BQWtDO0lBRWxDLE9BQU8sd0JBQXdCLENBQUM7UUFDOUIsY0FBYyxDQUFDLGlCQUFpQixDQUFDO1FBQ2pDO1lBQ0UsT0FBTyxFQUFFLFlBQVk7WUFDckIsUUFBUSxFQUFFLE9BQU87U0FDbEI7UUFDRDtZQUNFLE9BQU8sRUFBRSw0QkFBNEI7WUFDckMsVUFBVSxFQUFFLHFCQUFxQjtZQUNqQyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUM7U0FDckI7UUFDRDtZQUNFLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLFVBQVUsRUFBRSxhQUFhO1lBQ3pCLElBQUksRUFBRSxDQUFDLDRCQUE0QixFQUFFLFdBQVcsQ0FBQztTQUNsRDtRQUNEO1lBQ0UsT0FBTyxFQUFFLGtDQUFrQztZQUMzQyxVQUFVLEVBQUUsZ0NBQWdDO1lBQzVDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSw0QkFBNEIsQ0FBQztTQUMvQztLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBOZ01vZHVsZSxcbiAgTW9kdWxlV2l0aFByb3ZpZGVycyxcbiAgUExBVEZPUk1fSUQsXG4gIEluamVjdGlvblRva2VuLFxuICBJbmplY3RvcixcbiAgRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVyc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HWFNfUExVR0lOUywgd2l0aE5neHNQbHVnaW4gfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQge1xuICBOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnMsXG4gIFNUT1JBR0VfRU5HSU5FLFxuICDJtU5HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OUyxcbiAgybVjcmVhdGVGaW5hbFN0b3JhZ2VQbHVnaW5PcHRpb25zLFxuICDJtUZJTkFMX05HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OU1xufSBmcm9tICdAbmd4cy9zdG9yYWdlLXBsdWdpbi9pbnRlcm5hbHMnO1xuXG5pbXBvcnQgeyBOZ3hzU3RvcmFnZVBsdWdpbiB9IGZyb20gJy4vc3RvcmFnZS5wbHVnaW4nO1xuaW1wb3J0IHsgZW5naW5lRmFjdG9yeSwgc3RvcmFnZU9wdGlvbnNGYWN0b3J5IH0gZnJvbSAnLi9pbnRlcm5hbHMnO1xuXG5kZWNsYXJlIGNvbnN0IG5nRGV2TW9kZTogYm9vbGVhbjtcblxuY29uc3QgTkdfREVWX01PREUgPSB0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGU7XG5cbmV4cG9ydCBjb25zdCBVU0VSX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oTkdfREVWX01PREUgPyAnVVNFUl9PUFRJT05TJyA6ICcnKTtcblxuQE5nTW9kdWxlKClcbmV4cG9ydCBjbGFzcyBOZ3hzU3RvcmFnZVBsdWdpbk1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KFxuICAgIG9wdGlvbnM/OiBOZ3hzU3RvcmFnZVBsdWdpbk9wdGlvbnNcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hzU3RvcmFnZVBsdWdpbk1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTmd4c1N0b3JhZ2VQbHVnaW5Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE5HWFNfUExVR0lOUyxcbiAgICAgICAgICB1c2VDbGFzczogTmd4c1N0b3JhZ2VQbHVnaW4sXG4gICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IFVTRVJfT1BUSU9OUyxcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9uc1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogybVOR1hTX1NUT1JBR0VfUExVR0lOX09QVElPTlMsXG4gICAgICAgICAgdXNlRmFjdG9yeTogc3RvcmFnZU9wdGlvbnNGYWN0b3J5LFxuICAgICAgICAgIGRlcHM6IFtVU0VSX09QVElPTlNdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBTVE9SQUdFX0VOR0lORSxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBlbmdpbmVGYWN0b3J5LFxuICAgICAgICAgIGRlcHM6IFvJtU5HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OUywgUExBVEZPUk1fSURdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiDJtUZJTkFMX05HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OUyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiDJtWNyZWF0ZUZpbmFsU3RvcmFnZVBsdWdpbk9wdGlvbnMsXG4gICAgICAgICAgZGVwczogW0luamVjdG9yLCDJtU5HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OU11cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhOZ3hzU3RvcmFnZVBsdWdpbihcbiAgb3B0aW9ucz86IE5neHNTdG9yYWdlUGx1Z2luT3B0aW9uc1xuKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICB3aXRoTmd4c1BsdWdpbihOZ3hzU3RvcmFnZVBsdWdpbiksXG4gICAge1xuICAgICAgcHJvdmlkZTogVVNFUl9PUFRJT05TLFxuICAgICAgdXNlVmFsdWU6IG9wdGlvbnNcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IMm1TkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TLFxuICAgICAgdXNlRmFjdG9yeTogc3RvcmFnZU9wdGlvbnNGYWN0b3J5LFxuICAgICAgZGVwczogW1VTRVJfT1BUSU9OU11cbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNUT1JBR0VfRU5HSU5FLFxuICAgICAgdXNlRmFjdG9yeTogZW5naW5lRmFjdG9yeSxcbiAgICAgIGRlcHM6IFvJtU5HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OUywgUExBVEZPUk1fSURdXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiDJtUZJTkFMX05HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OUyxcbiAgICAgIHVzZUZhY3Rvcnk6IMm1Y3JlYXRlRmluYWxTdG9yYWdlUGx1Z2luT3B0aW9ucyxcbiAgICAgIGRlcHM6IFtJbmplY3RvciwgybVOR1hTX1NUT1JBR0VfUExVR0lOX09QVElPTlNdXG4gICAgfVxuICBdKTtcbn1cbiJdfQ==
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { PLATFORM_ID, Inject, Injectable } from '@angular/core';
|
|
2
2
|
import { isPlatformServer } from '@angular/common';
|
|
3
3
|
import { setValue, getValue, InitState, UpdateState, actionMatcher } from '@ngxs/store';
|
|
4
|
+
import { ɵDEFAULT_STATE_KEY, ɵFINAL_NGXS_STORAGE_PLUGIN_OPTIONS } from '@ngxs/storage-plugin/internals';
|
|
4
5
|
import { tap } from 'rxjs/operators';
|
|
5
|
-
import {
|
|
6
|
-
import { FINAL_NGXS_STORAGE_PLUGIN_OPTIONS } from './internals/final-options';
|
|
6
|
+
import { getStorageKey } from './internals';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
const NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
9
9
|
export class NgxsStoragePlugin {
|
|
@@ -11,8 +11,8 @@ export class NgxsStoragePlugin {
|
|
|
11
11
|
this._options = _options;
|
|
12
12
|
this._platformId = _platformId;
|
|
13
13
|
this._keysWithEngines = this._options.keysWithEngines;
|
|
14
|
-
// We default to `[DEFAULT_STATE_KEY]` if the user explicitly does not provide the `key` option.
|
|
15
|
-
this._usesDefaultStateKey = this._keysWithEngines.length === 1 && this._keysWithEngines[0].key === DEFAULT_STATE_KEY;
|
|
14
|
+
// We default to `[ɵDEFAULT_STATE_KEY]` if the user explicitly does not provide the `key` option.
|
|
15
|
+
this._usesDefaultStateKey = this._keysWithEngines.length === 1 && this._keysWithEngines[0].key === ɵDEFAULT_STATE_KEY;
|
|
16
16
|
}
|
|
17
17
|
handle(state, event, next) {
|
|
18
18
|
if (isPlatformServer(this._platformId)) {
|
|
@@ -103,7 +103,7 @@ export class NgxsStoragePlugin {
|
|
|
103
103
|
for (const { key, engine } of this._keysWithEngines) {
|
|
104
104
|
let storedValue = nextState;
|
|
105
105
|
const storageKey = getStorageKey(key, this._options);
|
|
106
|
-
if (key !== DEFAULT_STATE_KEY) {
|
|
106
|
+
if (key !== ɵDEFAULT_STATE_KEY) {
|
|
107
107
|
storedValue = getValue(nextState, key);
|
|
108
108
|
}
|
|
109
109
|
try {
|
|
@@ -126,16 +126,16 @@ export class NgxsStoragePlugin {
|
|
|
126
126
|
}));
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
|
-
/** @nocollapse */ NgxsStoragePlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsStoragePlugin, deps: [{ token: FINAL_NGXS_STORAGE_PLUGIN_OPTIONS }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
129
|
+
/** @nocollapse */ NgxsStoragePlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsStoragePlugin, deps: [{ token: ɵFINAL_NGXS_STORAGE_PLUGIN_OPTIONS }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
130
130
|
/** @nocollapse */ NgxsStoragePlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsStoragePlugin });
|
|
131
131
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsStoragePlugin, decorators: [{
|
|
132
132
|
type: Injectable
|
|
133
133
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
134
134
|
type: Inject,
|
|
135
|
-
args: [FINAL_NGXS_STORAGE_PLUGIN_OPTIONS]
|
|
135
|
+
args: [ɵFINAL_NGXS_STORAGE_PLUGIN_OPTIONS]
|
|
136
136
|
}] }, { type: undefined, decorators: [{
|
|
137
137
|
type: Inject,
|
|
138
138
|
args: [PLATFORM_ID]
|
|
139
139
|
}] }]; } });
|
|
140
140
|
const DOT = '.';
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yYWdlLXBsdWdpbi9zcmMvc3RvcmFnZS5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ELE9BQU8sRUFFTCxRQUFRLEVBQ1IsUUFBUSxFQUNSLFNBQVMsRUFDVCxXQUFXLEVBQ1gsYUFBYSxFQUVkLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9ELE9BQU8sRUFFTCxpQ0FBaUMsRUFDbEMsTUFBTSwyQkFBMkIsQ0FBQzs7QUFJbkMsTUFBTSxXQUFXLEdBQUcsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsQ0FBQztBQUdsRSxNQUFNLE9BQU8saUJBQWlCO0lBTTVCLFlBQ3FELFFBQXVDLEVBQzdELFdBQW1CO1FBREcsYUFBUSxHQUFSLFFBQVEsQ0FBK0I7UUFDN0QsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFQMUMscUJBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7UUFDekQsZ0dBQWdHO1FBQ3hGLHlCQUFvQixHQUMxQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLGlCQUFpQixDQUFDO0lBS3hGLENBQUM7SUFFSixNQUFNLENBQUMsS0FBVSxFQUFFLEtBQVUsRUFBRSxJQUFzQjtRQUNuRCxJQUFJLGdCQUFnQixDQUFDLElB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IjpbImltcG9ydCB7IFBMQVRGT1JNX0lELCBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUGxhaW5PYmplY3QgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuaW1wb3J0IHtcbiAgTmd4c1BsdWdpbixcbiAgc2V0VmFsdWUsXG4gIGdldFZhbHVlLFxuICBJbml0U3RhdGUsXG4gIFVwZGF0ZVN0YXRlLFxuICBhY3Rpb25NYXRjaGVyLFxuICBOZ3hzTmV4dFBsdWdpbkZuXG59IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgREVGQVVMVF9TVEFURV9LRVksIGdldFN0b3JhZ2VLZXkgfSBmcm9tICcuL2ludGVybmFscyc7XG5pbXBvcnQge1xuICBGaW5hbE5neHNTdG9yYWdlUGx1Z2luT3B0aW9ucyxcbiAgRklOQUxfTkdYU19TVE9SQUdFX1BMVUdJTl9PUFRJT05TXG59IGZyb20gJy4vaW50ZXJuYWxzL2ZpbmFsLW9wdGlvbnMnO1xuXG5kZWNsYXJlIGNvbnN0IG5nRGV2TW9kZTogYm9vbGVhbjtcblxuY29uc3QgTkdfREVWX01PREUgPSB0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGU7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOZ3hzU3RvcmFnZVBsdWdpbiBpbXBsZW1lbnRzIE5neHNQbHVnaW4ge1xuICBwcml2YXRlIF9rZXlzV2l0aEVuZ2luZXMgPSB0aGlzLl9vcHRpb25zLmtleXNXaXRoRW5naW5lcztcbiAgLy8gV2UgZGVmYXVsdCB0byBgW0RFRkFVTFRfU1RBVEVfS0VZXWAgaWYgdGhlIHVzZXIgZXhwbGljaXRseSBkb2VzIG5vdCBwcm92aWRlIHRoZSBga2V5YCBvcHRpb24uXG4gIHByaXZhdGUgX3VzZXNEZWZhdWx0U3RhdGVLZXkgPVxuICAgIHRoaXMuX2tleXNXaXRoRW5naW5lcy5sZW5ndGggPT09IDEgJiYgdGhpcy5fa2V5c1dpdGhFbmdpbmVzWzBdLmtleSA9PT0gREVGQVVMVF9TVEFURV9LRVk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChGSU5BTF9OR1hTX1NUT1JBR0VfUExVR0lOX09QVElPTlMpIHByaXZhdGUgX29wdGlvbnM6IEZpbmFsTmd4c1N0b3JhZ2VQbHVnaW5PcHRpb25zLFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgX3BsYXRmb3JtSWQ6IHN0cmluZ1xuICApIHt9XG5cbiAgaGFuZGxlKHN0YXRlOiBhbnksIGV2ZW50OiBhbnksIG5leHQ6IE5neHNOZXh0UGx1Z2luRm4pIHtcbiAgICBpZiAoaXNQbGF0Zm9ybVNlcnZlcih0aGlzLl9wbGF0Zm9ybUlkKSkge1xuICAgICAgcmV0dXJuIG5leHQoc3RhdGUsIGV2ZW50KTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXRjaGVzID0gYWN0aW9uTWF0Y2hlcihldmVudCk7XG4gICAgY29uc3QgaXNJbml0QWN0aW9uID0gbWF0Y2hlcyhJbml0U3RhdGUpO1xuICAgIGNvbnN0IGlzVXBkYXRlQWN0aW9uID0gbWF0Y2hlcyhVcGRhdGVTdGF0ZSk7XG4gICAgY29uc3QgaXNJbml0T3JVcGRhdGVBY3Rpb24gPSBpc0luaXRBY3Rpb24gfHwgaXNVcGRhdGVBY3Rpb247XG4gICAgbGV0IGhhc01pZ3JhdGlvbiA9IGZhbHNlO1xuXG4gICAgaWYgKGlzSW5pdE9yVXBkYXRlQWN0aW9uKSB7XG4gICAgICBjb25zdCBhZGRlZFN0YXRlcyA9IGlzVXBkYXRlQWN0aW9uICYmIGV2ZW50LmFkZGVkU3RhdGVzO1xuXG4gICAgICBmb3IgKGNvbnN0IHsga2V5LCBlbmdpbmUgfSBvZiB0aGlzLl9rZXlzV2l0aEVuZ2luZXMpIHtcbiAgICAgICAgLy8gV2UncmUgY2hlY2tpbmcgd2hhdCBzdGF0ZXMgaGF2ZSBiZWVuIGFkZGVkIGJ5IE5HWFMgYW5kIGlmIGFueSBvZiB0aGVzZSBzdGF0ZXMgc2hvdWxkIGJlIGhhbmRsZWQgYnlcbiAgICAgICAgLy8gdGhlIHN0b3JhZ2UgcGx1Z2luLiBGb3IgaW5zdGFuY2UsIHdlIG9ubHkgd2FudCB0byBkZXNlcmlhbGl6ZSB0aGUgYGF1dGhgIHN0YXRlLCBOR1hTIGhhcyBhZGRlZFxuICAgICAgICAvLyB0aGUgYHVzZXJgIHN0YXRlLCB0aGUgc3RvcmFnZSBwbHVnaW4gd2lsbCBiZSByZXJ1biBhbmQgd2lsbCBkbyByZWR1bmRhbnQgZGVzZXJpYWxpemF0aW9uLlxuICAgICAgICAvLyBgdXNlc0RlZmF1bHRTdGF0ZUtleWAgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHNpbmNlIGBldmVudC5hZGRlZFN0YXRlc2AgbmV2ZXIgY29udGFpbnMgYEBAU1RBVEVgLlxuICAgICAgICBpZiAoIXRoaXMuX3VzZXNEZWZhdWx0U3RhdGVLZXkgJiYgYWRkZWRTdGF0ZXMpIHtcbiAgICAgICAgICAvLyBXZSBzdXBwb3J0IHByb3ZpZGluZyBrZXlzIHRoYXQgY2FuIGJlIGRlZXBseSBuZXN0ZWQgdmlhIGRvdCBub3RhdGlvbiwgZm9yIGluc3RhbmNlLFxuICAgICAgICAgIC8vIGBrZXlzOiBbJ215U3RhdGUubXlQcm9wZXJ0eSddYCBpcyBhIHZhbGlkIGtleS5cbiAgICAgICAgICAvLyBUaGUgc3RhdGUgbmFtZSBzaG91bGQgYWx3YXlzIGdvIGZpcnN0LiBUaGUgYmVsb3cgY29kZSBjaGVja3MgaWYgdGhlIGBrZXlgIGluY2x1ZGVzIGRvdFxuICAgICAgICAgIC8vIG5vdGF0aW9uIGFuZCBleHRyYWN0cyB0aGUgc3RhdGUgbmFtZSBvdXQgb2YgdGhlIGtleS5cbiAgICAgICAgICAvLyBHaXZlbiB0aGUgYGtleWAgaXMgYG15U3RhdGUubXlQcm9wZXJ0eWAsIHRoZSBgYWRkZWRTdGF0ZXNgIHdpbGwgb25seSBjb250YWluIGBteVN0YXRlYC5cbiAgICAgICAgICBjb25zdCBkb3ROb3RhdGlvbkluZGV4ID0ga2V5LmluZGV4T2YoRE9UKTtcbiAgICAgICAgICBjb25zdCBzdGF0ZU5hbWUgPSBkb3ROb3RhdGlvbkluZGV4ID4gLTEgPyBrZXkuc2xpY2UoMCwgZG90Tm90YXRpb25JbmRleCkgOiBrZXk7XG4gICAgICAgICAgaWYgKCFhZGRlZFN0YXRlcy5oYXNPd25Qcm9wZXJ0eShzdGF0ZU5hbWUpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdG9yYWdlS2V5ID0gZ2V0U3RvcmFnZUtleShrZXksIHRoaXMuX29wdGlvbnMpO1xuICAgICAgICBsZXQgc3RvcmVkVmFsdWU6IGFueSA9IGVuZ2luZS5nZXRJdGVtKHN0b3JhZ2VLZXkpO1xuXG4gICAgICAgIGlmIChzdG9yZWRWYWx1ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgc3RvcmVkVmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWwgPSB0aGlzLl9vcHRpb25zLmRlc2VyaWFsaXplIShzdG9yZWRWYWx1ZSk7XG4gICAgICAgICAgICBzdG9yZWRWYWx1ZSA9IHRoaXMuX29wdGlvbnMuYWZ0ZXJEZXNlcmlhbGl6ZSEobmV3VmFsLCBrZXkpO1xuICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgTkdfREVWX01PREUgJiZcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBgRXJyb3Igb2N1cnJlZCB3aGlsZSBkZXNlcmlhbGl6aW5nIHRoZSAke3N0b3JhZ2VLZXl9IHN0b3JlIHZhbHVlLCBmYWxsaW5nIGJhY2sgdG8gZW1wdHkgb2JqZWN0LCB0aGUgdmFsdWUgb2J0YWluZWQgZnJvbSB0aGUgc3RvcmU6IGAsXG4gICAgICAgICAgICAgICAgc3RvcmVkVmFsdWVcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgc3RvcmVkVmFsdWUgPSB7fTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLl9vcHRpb25zLm1pZ3JhdGlvbnM/LmZvckVhY2goc3RyYXRlZ3kgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmVyc2lvbk1hdGNoID1cbiAgICAgICAgICAgICAgc3RyYXRlZ3kudmVyc2lvbiA9PT0gZ2V0VmFsdWUoc3RvcmVkVmFsdWUsIHN0cmF0ZWd5LnZlcnNpb25LZXkgfHwgJ3ZlcnNpb24nKTtcbiAgICAgICAgICAgIGNvbnN0IGtleU1hdGNoID1cbiAgICAgICAgICAgICAgKCFzdHJhdGVneS5rZXkgJiYgdGhpcy5fdXNlc0RlZmF1bHRTdGF0ZUtleSkgfHwgc3RyYXRlZ3kua2V5ID09PSBrZXk7XG4gICAgICAgICAgICBpZiAodmVyc2lvbk1hdGNoICYmIGtleU1hdGNoKSB7XG4gICAgICAgICAgICAgIHN0b3JlZFZhbHVlID0gc3RyYXRlZ3kubWlncmF0ZShzdG9yZWRWYWx1ZSk7XG4gICAgICAgICAgICAgIGhhc01pZ3JhdGlvbiA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoIXRoaXMuX3VzZXNEZWZhdWx0U3RhdGVLZXkpIHtcbiAgICAgICAgICAgIHN0YXRlID0gc2V0VmFsdWUoc3RhdGUsIGtleSwgc3RvcmVkVmFsdWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBUaGUgYFVwZGF0ZVN0YXRlYCBhY3Rpb24gaXMgZGlzcGF0Y2hlZCB3aGVuZXZlciB0aGUgZmVhdHVyZVxuICAgICAgICAgICAgLy8gc3RhdGUgaXMgYWRkZWQuIFRoZSBjb25kaXRpb24gYmVsb3cgaXMgc2F0aXNmaWVkIG9ubHkgd2hlblxuICAgICAgICAgICAgLy8gdGhlIGBVcGRhdGVTdGF0ZWAgYWN0aW9uIGlzIGRpc3BhdGNoZWQuIExldCdzIGNvbnNpZGVyIHR3byBzdGF0ZXM6XG4gICAgICAgICAgICAvLyBgY291bnRlcmAgYW5kIGBAbmd4cy9yb3V0ZXItcGx1Z2luYCBzdGF0ZS4gV2hlbiB3ZSBjYWxsIGBOZ3hzTW9kdWxlLmZvclJvb3QoKWAsXG4gICAgICAgICAgICAvLyBgQ291bnRlclN0YXRlYCBpcyBwcm92aWRlZCBhdCB0aGUgcm9vdCBsZXZlbCwgd2hpbGUgYEBuZ3hzL3JvdXRlci1wbHVnaW5gXG4gICAgICAgICAgICAvLyBpcyBwcm92aWRlZCBhcyBhIGZlYXR1cmUgc3RhdGUuIEJlZm9yZWhhbmQsIHRoZSBzdG9yYWdlIHBsdWdpbiBtYXkgaGF2ZVxuICAgICAgICAgICAgLy8gc3RvcmVkIHRoZSB2YWx1ZSBvZiB0aGUgY291bnRlciBzdGF0ZSBhcyBgMTBgLiBJZiBgQ291bnRlclN0YXRlYCBpbXBsZW1lbnRzXG4gICAgICAgICAgICAvLyB0aGUgYG5neHNPbkluaXRgIGhvb2sgYW5kIGNhbGxzIGBjdHguc2V0U3RhdGUoOTk5KWAsIHRoZSBzdG9yYWdlIHBsdWdpblxuICAgICAgICAgICAgLy8gd2lsbCByZWh5ZHJhdGUgdGhlIGVudGlyZSBzdGF0ZSB3aGVuIHRoZSBgUm91dGVyU3RhdGVgIGlzIHJlZ2lzdGVyZWQuXG4gICAgICAgICAgICAvLyBDb25zZXF1ZW50bHksIHRoZSBgY291bnRlcmAgc3RhdGUgd2lsbCByZXZlcnQgYmFjayB0byBgMTBgIGluc3RlYWQgb2YgYDk5OWAuXG4gICAgICAgICAgICBpZiAoc3RvcmVkVmFsdWUgJiYgYWRkZWRTdGF0ZXMgJiYgT2JqZWN0LmtleXMoYWRkZWRTdGF0ZXMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgc3RvcmVkVmFsdWUgPSBPYmplY3Qua2V5cyhhZGRlZFN0YXRlcykucmVkdWNlKChhY2N1bXVsYXRvciwgYWRkZWRTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBgc3RvcmVkVmFsdWVgIGNhbiBiZSBlcXVhbCB0byB0aGUgZW50aXJlIHN0YXRlIHdoZW4gdGhlIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAvLyBzdGF0ZSBrZXkgaXMgdXNlZC4gSG93ZXZlciwgaWYgYGFkZGVkU3RhdGVzYCBvbmx5IGNvbnRhaW5zIHRoZSBgcm91dGVyYCB2YWx1ZSxcbiAgICAgICAgICAgICAgICAvLyB3ZSBvbmx5IHdhbnQgdG8gbWVyZ2UgdGhlIHN0YXRlIHdpdGggdGhlIGByb3V0ZXJgIHZhbHVlLlxuICAgICAgICAgICAgICAgIC8vIExldCdzIGFzc3VtZSB0aGF0IHRoZSBgc3RvcmVkVmFsdWVgIGlzIGFuIG9iamVjdDpcbiAgICAgICAgICAgICAgICAvLyBgeyBjb3VudGVyOiAxMCwgcm91dGVyOiB7Li4ufSB9YFxuICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBwaWNrIG9ubHkgdGhlIGByb3V0ZXJgIG9iamVjdCBmcm9tIHRoZSBgc3RvcmVkVmFsdWVgIGFuZCBgY291bnRlcmBcbiAgICAgICAgICAgICAgICAvLyBzdGF0ZSB3aWxsIG5vdCBiZSByZWh5ZHJhdGVkIHVubmVjZXNzYXJ5LlxuICAgICAgICAgICAgICAgIGlmIChzdG9yZWRWYWx1ZS5oYXNPd25Qcm9wZXJ0eShhZGRlZFN0YXRlKSkge1xuICAgICAgICAgICAgICAgICAgYWNjdW11bGF0b3JbYWRkZWRTdGF0ZV0gPSBzdG9yZWRWYWx1ZVthZGRlZFN0YXRlXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgICAgICAgICAgICB9LCA8UGxhaW5PYmplY3Q+e30pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdGF0ZSA9IHsgLi4uc3RhdGUsIC4uLnN0b3JlZFZhbHVlIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHQoc3RhdGUsIGV2ZW50KS5waXBlKFxuICAgICAgdGFwKG5leHRTdGF0ZSA9PiB7XG4gICAgICAgIGlmIChpc0luaXRPclVwZGF0ZUFjdGlvbiAmJiAhaGFzTWlncmF0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCB7IGtleSwgZW5naW5lIH0gb2YgdGhpcy5fa2V5c1dpdGhFbmdpbmVzKSB7XG4gICAgICAgICAgbGV0IHN0b3JlZFZhbHVlID0gbmV4dFN0YXRlO1xuXG4gICAgICAgICAgY29uc3Qgc3RvcmFnZUtleSA9IGdldFN0b3JhZ2VLZXkoa2V5LCB0aGlzLl9vcHRpb25zKTtcblxuICAgICAgICAgIGlmIChrZXkgIT09IERFRkFVTFRfU1RBVEVfS0VZKSB7XG4gICAgICAgICAgICBzdG9yZWRWYWx1ZSA9IGdldFZhbHVlKG5leHRTdGF0ZSwga2V5KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgbmV3U3RvcmVkVmFsdWUgPSB0aGlzLl9vcHRpb25zLmJlZm9yZVNlcmlhbGl6ZSEoc3RvcmVkVmFsdWUsIGtleSk7XG4gICAgICAgICAgICBlbmdpbmUuc2V0SXRlbShzdG9yYWdlS2V5LCB0aGlzLl9vcHRpb25zLnNlcmlhbGl6ZSEobmV3U3RvcmVkVmFsdWUpKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgICAgICBpZiAoTkdfREVWX01PREUpIHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGVycm9yICYmXG4gICAgICAgICAgICAgICAgKGVycm9yLm5hbWUgPT09ICdRdW90YUV4Y2VlZGVkRXJyb3InIHx8XG4gICAgICAgICAgICAgICAgICBlcnJvci5uYW1lID09PSAnTlNfRVJST1JfRE9NX1FVT1RBX1JFQUNIRUQnKVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgYFRoZSAke3N0b3JhZ2VLZXl9IHN0b3JlIHZhbHVlIGV4Y2VlZHMgdGhlIGJyb3dzZXIgc3RvcmFnZSBxdW90YTogYCxcbiAgICAgICAgICAgICAgICAgIHN0b3JlZFZhbHVlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgYEVycm9yIG9jdXJyZWQgd2hpbGUgc2VyaWFsaXppbmcgdGhlICR7c3RvcmFnZUtleX0gc3RvcmUgdmFsdWUsIHZhbHVlIG5vdCB1cGRhdGVkLCB0aGUgdmFsdWUgb2J0YWluZWQgZnJvbSB0aGUgc3RvcmU6IGAsXG4gICAgICAgICAgICAgICAgICBzdG9yZWRWYWx1ZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBET1QgPSAnLic7XG4iXX0=
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yYWdlLXBsdWdpbi9zcmMvc3RvcmFnZS5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ELE9BQU8sRUFFTCxRQUFRLEVBQ1IsUUFBUSxFQUNSLFNBQVMsRUFDVCxXQUFXLEVBQ1gsYUFBYSxFQUVkLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFDTCxrQkFBa0IsRUFFbEIsa0NBQWtDLEVBQ25DLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBSTVDLE1BQU0sV0FBVyxHQUFHLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLENBQUM7QUFHbEUsTUFBTSxPQUFPLGlCQUFpQjtJQU01QixZQUVVLFFBQXdDLEVBQ25CLFdBQW1CO1FBRHhDLGFBQVEsR0FBUixRQUFRLENBQWdDO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBUjFDLHFCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQ3pELGlHQUFpRztRQUN6Rix5QkFBb0IsR0FDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxrQkFBa0IsQ0FBQztJQU16RixDQUFDO0lBRUosTUFBTSxDQUFDLEtBQVUsRUFBRSxLQUFVLEVBQUUsSUFBc0I7UUFDbkQsSUFBSSxnQkFBZ0IsQ0FBQyxJ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dCI6WyJpbXBvcnQgeyBQTEFURk9STV9JRCwgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBsYWluT2JqZWN0IH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcbmltcG9ydCB7XG4gIE5neHNQbHVnaW4sXG4gIHNldFZhbHVlLFxuICBnZXRWYWx1ZSxcbiAgSW5pdFN0YXRlLFxuICBVcGRhdGVTdGF0ZSxcbiAgYWN0aW9uTWF0Y2hlcixcbiAgTmd4c05leHRQbHVnaW5GblxufSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQge1xuICDJtURFRkFVTFRfU1RBVEVfS0VZLFxuICDJtUZpbmFsTmd4c1N0b3JhZ2VQbHVnaW5PcHRpb25zLFxuICDJtUZJTkFMX05HWFNfU1RPUkFHRV9QTFVHSU5fT1BUSU9OU1xufSBmcm9tICdAbmd4cy9zdG9yYWdlLXBsdWdpbi9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBnZXRTdG9yYWdlS2V5IH0gZnJvbSAnLi9pbnRlcm5hbHMnO1xuXG5kZWNsYXJlIGNvbnN0IG5nRGV2TW9kZTogYm9vbGVhbjtcblxuY29uc3QgTkdfREVWX01PREUgPSB0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGU7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOZ3hzU3RvcmFnZVBsdWdpbiBpbXBsZW1lbnRzIE5neHNQbHVnaW4ge1xuICBwcml2YXRlIF9rZXlzV2l0aEVuZ2luZXMgPSB0aGlzLl9vcHRpb25zLmtleXNXaXRoRW5naW5lcztcbiAgLy8gV2UgZGVmYXVsdCB0byBgW8m1REVGQVVMVF9TVEFURV9LRVldYCBpZiB0aGUgdXNlciBleHBsaWNpdGx5IGRvZXMgbm90IHByb3ZpZGUgdGhlIGBrZXlgIG9wdGlvbi5cbiAgcHJpdmF0ZSBfdXNlc0RlZmF1bHRTdGF0ZUtleSA9XG4gICAgdGhpcy5fa2V5c1dpdGhFbmdpbmVzLmxlbmd0aCA9PT0gMSAmJiB0aGlzLl9rZXlzV2l0aEVuZ2luZXNbMF0ua2V5ID09PSDJtURFRkFVTFRfU1RBVEVfS0VZO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoybVGSU5BTF9OR1hTX1NUT1JBR0VfUExVR0lOX09QVElPTlMpXG4gICAgcHJpdmF0ZSBfb3B0aW9uczogybVGaW5hbE5neHNTdG9yYWdlUGx1Z2luT3B0aW9ucyxcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIF9wbGF0Zm9ybUlkOiBzdHJpbmdcbiAgKSB7fVxuXG4gIGhhbmRsZShzdGF0ZTogYW55LCBldmVudDogYW55LCBuZXh0OiBOZ3hzTmV4dFBsdWdpbkZuKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1TZXJ2ZXIodGhpcy5fcGxhdGZvcm1JZCkpIHtcbiAgICAgIHJldHVybiBuZXh0KHN0YXRlLCBldmVudCk7XG4gICAgfVxuXG4gICAgY29uc3QgbWF0Y2hlcyA9IGFjdGlvbk1hdGNoZXIoZXZlbnQpO1xuICAgIGNvbnN0IGlzSW5pdEFjdGlvbiA9IG1hdGNoZXMoSW5pdFN0YXRlKTtcbiAgICBjb25zdCBpc1VwZGF0ZUFjdGlvbiA9IG1hdGNoZXMoVXBkYXRlU3RhdGUpO1xuICAgIGNvbnN0IGlzSW5pdE9yVXBkYXRlQWN0aW9uID0gaXNJbml0QWN0aW9uIHx8IGlzVXBkYXRlQWN0aW9uO1xuICAgIGxldCBoYXNNaWdyYXRpb24gPSBmYWxzZTtcblxuICAgIGlmIChpc0luaXRPclVwZGF0ZUFjdGlvbikge1xuICAgICAgY29uc3QgYWRkZWRTdGF0ZXMgPSBpc1VwZGF0ZUFjdGlvbiAmJiBldmVudC5hZGRlZFN0YXRlcztcblxuICAgICAgZm9yIChjb25zdCB7IGtleSwgZW5naW5lIH0gb2YgdGhpcy5fa2V5c1dpdGhFbmdpbmVzKSB7XG4gICAgICAgIC8vIFdlJ3JlIGNoZWNraW5nIHdoYXQgc3RhdGVzIGhhdmUgYmVlbiBhZGRlZCBieSBOR1hTIGFuZCBpZiBhbnkgb2YgdGhlc2Ugc3RhdGVzIHNob3VsZCBiZSBoYW5kbGVkIGJ5XG4gICAgICAgIC8vIHRoZSBzdG9yYWdlIHBsdWdpbi4gRm9yIGluc3RhbmNlLCB3ZSBvbmx5IHdhbnQgdG8gZGVzZXJpYWxpemUgdGhlIGBhdXRoYCBzdGF0ZSwgTkdYUyBoYXMgYWRkZWRcbiAgICAgICAgLy8gdGhlIGB1c2VyYCBzdGF0ZSwgdGhlIHN0b3JhZ2UgcGx1Z2luIHdpbGwgYmUgcmVydW4gYW5kIHdpbGwgZG8gcmVkdW5kYW50IGRlc2VyaWFsaXphdGlvbi5cbiAgICAgICAgLy8gYHVzZXNEZWZhdWx0U3RhdGVLZXlgIGlzIG5lY2Vzc2FyeSB0byBjaGVjayBzaW5jZSBgZXZlbnQuYWRkZWRTdGF0ZXNgIG5ldmVyIGNvbnRhaW5zIGBAQFNUQVRFYC5cbiAgICAgICAgaWYgKCF0aGlzLl91c2VzRGVmYXVsdFN0YXRlS2V5ICYmIGFkZGVkU3RhdGVzKSB7XG4gICAgICAgICAgLy8gV2Ugc3VwcG9ydCBwcm92aWRpbmcga2V5cyB0aGF0IGNhbiBiZSBkZWVwbHkgbmVzdGVkIHZpYSBkb3Qgbm90YXRpb24sIGZvciBpbnN0YW5jZSxcbiAgICAgICAgICAvLyBga2V5czogWydteVN0YXRlLm15UHJvcGVydHknXWAgaXMgYSB2YWxpZCBrZXkuXG4gICAgICAgICAgLy8gVGhlIHN0YXRlIG5hbWUgc2hvdWxkIGFsd2F5cyBnbyBmaXJzdC4gVGhlIGJlbG93IGNvZGUgY2hlY2tzIGlmIHRoZSBga2V5YCBpbmNsdWRlcyBkb3RcbiAgICAgICAgICAvLyBub3RhdGlvbiBhbmQgZXh0cmFjdHMgdGhlIHN0YXRlIG5hbWUgb3V0IG9mIHRoZSBrZXkuXG4gICAgICAgICAgLy8gR2l2ZW4gdGhlIGBrZXlgIGlzIGBteVN0YXRlLm15UHJvcGVydHlgLCB0aGUgYGFkZGVkU3RhdGVzYCB3aWxsIG9ubHkgY29udGFpbiBgbXlTdGF0ZWAuXG4gICAgICAgICAgY29uc3QgZG90Tm90YXRpb25JbmRleCA9IGtleS5pbmRleE9mKERPVCk7XG4gICAgICAgICAgY29uc3Qgc3RhdGVOYW1lID0gZG90Tm90YXRpb25JbmRleCA+IC0xID8ga2V5LnNsaWNlKDAsIGRvdE5vdGF0aW9uSW5kZXgpIDoga2V5O1xuICAgICAgICAgIGlmICghYWRkZWRTdGF0ZXMuaGFzT3duUHJvcGVydHkoc3RhdGVOYW1lKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3RvcmFnZUtleSA9IGdldFN0b3JhZ2VLZXkoa2V5LCB0aGlzLl9vcHRpb25zKTtcbiAgICAgICAgbGV0IHN0b3JlZFZhbHVlOiBhbnkgPSBlbmdpbmUuZ2V0SXRlbShzdG9yYWdlS2V5KTtcblxuICAgICAgICBpZiAoc3RvcmVkVmFsdWUgIT09ICd1bmRlZmluZWQnICYmIHN0b3JlZFZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsID0gdGhpcy5fb3B0aW9ucy5kZXNlcmlhbGl6ZSEoc3RvcmVkVmFsdWUpO1xuICAgICAgICAgICAgc3RvcmVkVmFsdWUgPSB0aGlzLl9vcHRpb25zLmFmdGVyRGVzZXJpYWxpemUhKG5ld1ZhbCwga2V5KTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIE5HX0RFVl9NT0RFICYmXG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgYEVycm9yIG9jdXJyZWQgd2hpbGUgZGVzZXJpYWxpemluZyB0aGUgJHtzdG9yYWdlS2V5fSBzdG9yZSB2YWx1ZSwgZmFsbGluZyBiYWNrIHRvIGVtcHR5IG9iamVjdCwgdGhlIHZhbHVlIG9idGFpbmVkIGZyb20gdGhlIHN0b3JlOiBgLFxuICAgICAgICAgICAgICAgIHN0b3JlZFZhbHVlXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHN0b3JlZFZhbHVlID0ge307XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5fb3B0aW9ucy5taWdyYXRpb25zPy5mb3JFYWNoKHN0cmF0ZWd5ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZlcnNpb25NYXRjaCA9XG4gICAgICAgICAgICAgIHN0cmF0ZWd5LnZlcnNpb24gPT09IGdldFZhbHVlKHN0b3JlZFZhbHVlLCBzdHJhdGVneS52ZXJzaW9uS2V5IHx8ICd2ZXJzaW9uJyk7XG4gICAgICAgICAgICBjb25zdCBrZXlNYXRjaCA9XG4gICAgICAgICAgICAgICghc3RyYXRlZ3kua2V5ICYmIHRoaXMuX3VzZXNEZWZhdWx0U3RhdGVLZXkpIHx8IHN0cmF0ZWd5LmtleSA9PT0ga2V5O1xuICAgICAgICAgICAgaWYgKHZlcnNpb25NYXRjaCAmJiBrZXlNYXRjaCkge1xuICAgICAgICAgICAgICBzdG9yZWRWYWx1ZSA9IHN0cmF0ZWd5Lm1pZ3JhdGUoc3RvcmVkVmFsdWUpO1xuICAgICAgICAgICAgICBoYXNNaWdyYXRpb24gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKCF0aGlzLl91c2VzRGVmYXVsdFN0YXRlS2V5KSB7XG4gICAgICAgICAgICBzdGF0ZSA9IHNldFZhbHVlKHN0YXRlLCBrZXksIHN0b3JlZFZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVGhlIGBVcGRhdGVTdGF0ZWAgYWN0aW9uIGlzIGRpc3BhdGNoZWQgd2hlbmV2ZXIgdGhlIGZlYXR1cmVcbiAgICAgICAgICAgIC8vIHN0YXRlIGlzIGFkZGVkLiBUaGUgY29uZGl0aW9uIGJlbG93IGlzIHNhdGlzZmllZCBvbmx5IHdoZW5cbiAgICAgICAgICAgIC8vIHRoZSBgVXBkYXRlU3RhdGVgIGFjdGlvbiBpcyBkaXNwYXRjaGVkLiBMZXQncyBjb25zaWRlciB0d28gc3RhdGVzOlxuICAgICAgICAgICAgLy8gYGNvdW50ZXJgIGFuZCBgQG5neHMvcm91dGVyLXBsdWdpbmAgc3RhdGUuIFdoZW4gd2UgY2FsbCBgTmd4c01vZHVsZS5mb3JSb290KClgLFxuICAgICAgICAgICAgLy8gYENvdW50ZXJTdGF0ZWAgaXMgcHJvdmlkZWQgYXQgdGhlIHJvb3QgbGV2ZWwsIHdoaWxlIGBAbmd4cy9yb3V0ZXItcGx1Z2luYFxuICAgICAgICAgICAgLy8gaXMgcHJvdmlkZWQgYXMgYSBmZWF0dXJlIHN0YXRlLiBCZWZvcmVoYW5kLCB0aGUgc3RvcmFnZSBwbHVnaW4gbWF5IGhhdmVcbiAgICAgICAgICAgIC8vIHN0b3JlZCB0aGUgdmFsdWUgb2YgdGhlIGNvdW50ZXIgc3RhdGUgYXMgYDEwYC4gSWYgYENvdW50ZXJTdGF0ZWAgaW1wbGVtZW50c1xuICAgICAgICAgICAgLy8gdGhlIGBuZ3hzT25Jbml0YCBob29rIGFuZCBjYWxscyBgY3R4LnNldFN0YXRlKDk5OSlgLCB0aGUgc3RvcmFnZSBwbHVnaW5cbiAgICAgICAgICAgIC8vIHdpbGwgcmVoeWRyYXRlIHRoZSBlbnRpcmUgc3RhdGUgd2hlbiB0aGUgYFJvdXRlclN0YXRlYCBpcyByZWdpc3RlcmVkLlxuICAgICAgICAgICAgLy8gQ29uc2VxdWVudGx5LCB0aGUgYGNvdW50ZXJgIHN0YXRlIHdpbGwgcmV2ZXJ0IGJhY2sgdG8gYDEwYCBpbnN0ZWFkIG9mIGA5OTlgLlxuICAgICAgICAgICAgaWYgKHN0b3JlZFZhbHVlICYmIGFkZGVkU3RhdGVzICYmIE9iamVjdC5rZXlzKGFkZGVkU3RhdGVzKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIHN0b3JlZFZhbHVlID0gT2JqZWN0LmtleXMoYWRkZWRTdGF0ZXMpLnJlZHVjZSgoYWNjdW11bGF0b3IsIGFkZGVkU3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBUaGUgYHN0b3JlZFZhbHVlYCBjYW4gYmUgZXF1YWwgdG8gdGhlIGVudGlyZSBzdGF0ZSB3aGVuIHRoZSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgLy8gc3RhdGUga2V5IGlzIHVzZWQuIEhvd2V2ZXIsIGlmIGBhZGRlZFN0YXRlc2Agb25seSBjb250YWlucyB0aGUgYHJvdXRlcmAgdmFsdWUsXG4gICAgICAgICAgICAgICAgLy8gd2Ugb25seSB3YW50IHRvIG1lcmdlIHRoZSBzdGF0ZSB3aXRoIHRoZSBgcm91dGVyYCB2YWx1ZS5cbiAgICAgICAgICAgICAgICAvLyBMZXQncyBhc3N1bWUgdGhhdCB0aGUgYHN0b3JlZFZhbHVlYCBpcyBhbiBvYmplY3Q6XG4gICAgICAgICAgICAgICAgLy8gYHsgY291bnRlcjogMTAsIHJvdXRlcjogey4uLn0gfWBcbiAgICAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgcGljayBvbmx5IHRoZSBgcm91dGVyYCBvYmplY3QgZnJvbSB0aGUgYHN0b3JlZFZhbHVlYCBhbmQgYGNvdW50ZXJgXG4gICAgICAgICAgICAgICAgLy8gc3RhdGUgd2lsbCBub3QgYmUgcmVoeWRyYXRlZCB1bm5lY2Vzc2FyeS5cbiAgICAgICAgICAgICAgICBpZiAoc3RvcmVkVmFsdWUuaGFzT3duUHJvcGVydHkoYWRkZWRTdGF0ZSkpIHtcbiAgICAgICAgICAgICAgICAgIGFjY3VtdWxhdG9yW2FkZGVkU3RhdGVdID0gc3RvcmVkVmFsdWVbYWRkZWRTdGF0ZV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICAgICAgICAgICAgfSwgPFBsYWluT2JqZWN0Pnt9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3RhdGUgPSB7IC4uLnN0YXRlLCAuLi5zdG9yZWRWYWx1ZSB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXh0KHN0YXRlLCBldmVudCkucGlwZShcbiAgICAgIHRhcChuZXh0U3RhdGUgPT4ge1xuICAgICAgICBpZiAoaXNJbml0T3JVcGRhdGVBY3Rpb24gJiYgIWhhc01pZ3JhdGlvbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgeyBrZXksIGVuZ2luZSB9IG9mIHRoaXMuX2tleXNXaXRoRW5naW5lcykge1xuICAgICAgICAgIGxldCBzdG9yZWRWYWx1ZSA9IG5leHRTdGF0ZTtcblxuICAgICAgICAgIGNvbnN0IHN0b3JhZ2VLZXkgPSBnZXRTdG9yYWdlS2V5KGtleSwgdGhpcy5fb3B0aW9ucyk7XG5cbiAgICAgICAgICBpZiAoa2V5ICE9PSDJtURFRkFVTFRfU1RBVEVfS0VZKSB7XG4gICAgICAgICAgICBzdG9yZWRWYWx1ZSA9IGdldFZhbHVlKG5leHRTdGF0ZSwga2V5KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgbmV3U3RvcmVkVmFsdWUgPSB0aGlzLl9vcHRpb25zLmJlZm9yZVNlcmlhbGl6ZSEoc3RvcmVkVmFsdWUsIGtleSk7XG4gICAgICAgICAgICBlbmdpbmUuc2V0SXRlbShzdG9yYWdlS2V5LCB0aGlzLl9vcHRpb25zLnNlcmlhbGl6ZSEobmV3U3RvcmVkVmFsdWUpKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgICAgICBpZiAoTkdfREVWX01PREUpIHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGVycm9yICYmXG4gICAgICAgICAgICAgICAgKGVycm9yLm5hbWUgPT09ICdRdW90YUV4Y2VlZGVkRXJyb3InIHx8XG4gICAgICAgICAgICAgICAgICBlcnJvci5uYW1lID09PSAnTlNfRVJST1JfRE9NX1FVT1RBX1JFQUNIRUQnKVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgYFRoZSAke3N0b3JhZ2VLZXl9IHN0b3JlIHZhbHVlIGV4Y2VlZHMgdGhlIGJyb3dzZXIgc3RvcmFnZSBxdW90YTogYCxcbiAgICAgICAgICAgICAgICAgIHN0b3JlZFZhbHVlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgYEVycm9yIG9jdXJyZWQgd2hpbGUgc2VyaWFsaXppbmcgdGhlICR7c3RvcmFnZUtleX0gc3RvcmUgdmFsdWUsIHZhbHVlIG5vdCB1cGRhdGVkLCB0aGUgdmFsdWUgb2J0YWluZWQgZnJvbSB0aGUgc3RvcmU6IGAsXG4gICAgICAgICAgICAgICAgICBzdG9yZWRWYWx1ZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBET1QgPSAnLic7XG4iXX0=
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { StateToken } from '@ngxs/store';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The following key is used to store the entire serialized
|
|
6
|
+
* state when no specific state is provided.
|
|
7
|
+
*/
|
|
8
|
+
const ɵDEFAULT_STATE_KEY = '@@STATE';
|
|
9
|
+
const NG_DEV_MODE$1 = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
10
|
+
const ɵNGXS_STORAGE_PLUGIN_OPTIONS = new InjectionToken(NG_DEV_MODE$1 ? 'NGXS_STORAGE_PLUGIN_OPTIONS' : '');
|
|
11
|
+
const STORAGE_ENGINE = new InjectionToken(NG_DEV_MODE$1 ? 'STORAGE_ENGINE' : '');
|
|
12
|
+
|
|
13
|
+
/** Determines whether the provided key has the following structure. */
|
|
14
|
+
function ɵisKeyWithExplicitEngine(key) {
|
|
15
|
+
return key != null && !!key.engine;
|
|
16
|
+
}
|
|
17
|
+
/** This symbol is used to store the metadata on state classes. */
|
|
18
|
+
const META_OPTIONS_KEY = 'NGXS_OPTIONS_META';
|
|
19
|
+
function ɵextractStringKey(storageKey) {
|
|
20
|
+
// Extract the actual key out of the `{ key, engine }` structure.
|
|
21
|
+
if (ɵisKeyWithExplicitEngine(storageKey)) {
|
|
22
|
+
storageKey = storageKey.key;
|
|
23
|
+
}
|
|
24
|
+
// Given the `storageKey` is a class, for instance, `AuthState`.
|
|
25
|
+
// We should retrieve its metadata and the `name` property.
|
|
26
|
+
// The `name` property might be a string (state name) or a state token.
|
|
27
|
+
if (storageKey.hasOwnProperty(META_OPTIONS_KEY)) {
|
|
28
|
+
storageKey = storageKey[META_OPTIONS_KEY].name;
|
|
29
|
+
}
|
|
30
|
+
return storageKey instanceof StateToken ? storageKey.getName() : storageKey;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
34
|
+
const ɵFINAL_NGXS_STORAGE_PLUGIN_OPTIONS = new InjectionToken(NG_DEV_MODE ? 'FINAL_NGXS_STORAGE_PLUGIN_OPTIONS' : '');
|
|
35
|
+
function ɵcreateFinalStoragePluginOptions(injector, options) {
|
|
36
|
+
const storageKeys = Array.isArray(options.key) ? options.key : [options.key];
|
|
37
|
+
const keysWithEngines = storageKeys.map((storageKey) => {
|
|
38
|
+
const key = ɵextractStringKey(storageKey);
|
|
39
|
+
const engine = ɵisKeyWithExplicitEngine(storageKey)
|
|
40
|
+
? injector.get(storageKey.engine)
|
|
41
|
+
: injector.get(STORAGE_ENGINE);
|
|
42
|
+
return { key, engine };
|
|
43
|
+
});
|
|
44
|
+
return Object.assign(Object.assign({}, options), { keysWithEngines });
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Generated bundle index. Do not edit.
|
|
49
|
+
*/
|
|
50
|
+
|
|
51
|
+
export { STORAGE_ENGINE, ɵDEFAULT_STATE_KEY, ɵFINAL_NGXS_STORAGE_PLUGIN_OPTIONS, ɵNGXS_STORAGE_PLUGIN_OPTIONS, ɵcreateFinalStoragePluginOptions, ɵextractStringKey, ɵisKeyWithExplicitEngine };
|
|
52
|
+
//# sourceMappingURL=ngxs-storage-plugin-internals.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngxs-storage-plugin-internals.mjs","sources":["../../../packages/storage-plugin/internals/src/symbols.ts","../../../packages/storage-plugin/internals/src/storage-key.ts","../../../packages/storage-plugin/internals/src/final-options.ts","../../../packages/storage-plugin/internals/src/ngxs-storage-plugin-internals.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nimport { StorageKey } from './storage-key';\n\n/**\n * The following key is used to store the entire serialized\n * state when no specific state is provided.\n */\nexport const ɵDEFAULT_STATE_KEY = '@@STATE';\n\ndeclare const ngDevMode: boolean;\n\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;\n\nexport const enum StorageOption {\n LocalStorage,\n SessionStorage\n}\n\nexport interface NgxsStoragePluginOptions {\n /**\n * Key for the state slice to store in the storage engine.\n */\n key?: undefined | StorageKey | StorageKey[];\n\n /**\n * The namespace is used to prefix the key for the state slice. This is\n * necessary when running micro frontend applications which use storage plugin.\n * The namespace will eliminate the conflict between keys that might overlap.\n */\n namespace?: string;\n\n /**\n * Storage engine to use. Deaults to localStorage but can provide\n *\n * sessionStorage or custom implementation of the StorageEngine interface\n */\n storage?: StorageOption;\n\n /**\n * Migration strategies.\n */\n migrations?: {\n /**\n * Version to key off.\n */\n version: number | string;\n\n /**\n * Method to migrate the previous state.\n */\n migrate: (state: any) => any;\n\n /**\n * Key to migrate.\n */\n key?: string;\n\n /**\n * Key for the version. Defaults to 'version'.\n */\n versionKey?: string;\n }[];\n\n /**\n * Serailizer for the object before its pushed into the engine.\n */\n serialize?(obj: any): string;\n\n /**\n * Deserializer for the object before its pulled out of the engine.\n */\n deserialize?(obj: any): any;\n\n /**\n * Method to alter object before serialization.\n */\n beforeSerialize?(obj: any, key: string): any;\n\n /**\n * Method to alter object after deserialization.\n */\n afterDeserialize?(obj: any, key: string): any;\n}\n\nexport const ɵNGXS_STORAGE_PLUGIN_OPTIONS = new InjectionToken(\n NG_DEV_MODE ? 'NGXS_STORAGE_PLUGIN_OPTIONS' : ''\n);\n\nexport const STORAGE_ENGINE = new InjectionToken<StorageEngine>(\n NG_DEV_MODE ? 'STORAGE_ENGINE' : ''\n);\n\nexport interface StorageEngine {\n getItem(key: string): any;\n setItem(key: string, value: any): void;\n}\n","import { InjectionToken, Type } from '@angular/core';\nimport { StateToken } from '@ngxs/store';\nimport { StateClass } from '@ngxs/store/internals';\n\nimport { StorageEngine } from './symbols';\n\n/** This enables the user to provide a storage engine per individual key. */\nexport interface KeyWithExplicitEngine {\n key: string | StateClass | StateToken<any>;\n engine: Type<StorageEngine> | InjectionToken<StorageEngine>;\n}\n\n/** Determines whether the provided key has the following structure. */\nexport function ɵisKeyWithExplicitEngine(key: any): key is KeyWithExplicitEngine {\n return key != null && !!key.engine;\n}\n\n/**\n * This tuples all of the possible types allowed in the `key` property.\n * This is not exposed publicly and used internally only.\n */\nexport type StorageKey = string | StateClass | StateToken<any> | KeyWithExplicitEngine;\n\n/** This symbol is used to store the metadata on state classes. */\nconst META_OPTIONS_KEY = 'NGXS_OPTIONS_META';\nexport function ɵextractStringKey(storageKey: StorageKey): string {\n // Extract the actual key out of the `{ key, engine }` structure.\n if (ɵisKeyWithExplicitEngine(storageKey)) {\n storageKey = storageKey.key;\n }\n\n // Given the `storageKey` is a class, for instance, `AuthState`.\n // We should retrieve its metadata and the `name` property.\n // The `name` property might be a string (state name) or a state token.\n if (storageKey.hasOwnProperty(META_OPTIONS_KEY)) {\n storageKey = (storageKey as any)[META_OPTIONS_KEY].name;\n }\n\n return storageKey instanceof StateToken ? storageKey.getName() : <string>storageKey;\n}\n","import { InjectionToken, Injector } from '@angular/core';\n\nimport { NgxsStoragePluginOptions, STORAGE_ENGINE, StorageEngine } from './symbols';\nimport { StorageKey, ɵextractStringKey, ɵisKeyWithExplicitEngine } from './storage-key';\n\nexport interface ɵFinalNgxsStoragePluginOptions extends NgxsStoragePluginOptions {\n keysWithEngines: {\n key: string;\n engine: StorageEngine;\n }[];\n}\n\ndeclare const ngDevMode: boolean;\n\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;\n\nexport const ɵFINAL_NGXS_STORAGE_PLUGIN_OPTIONS = new InjectionToken<unknown>(\n NG_DEV_MODE ? 'FINAL_NGXS_STORAGE_PLUGIN_OPTIONS' : ''\n);\n\nexport function ɵcreateFinalStoragePluginOptions(\n injector: Injector,\n options: NgxsStoragePluginOptions\n): ɵFinalNgxsStoragePluginOptions {\n const storageKeys: StorageKey[] = Array.isArray(options.key) ? options.key : [options.key!];\n\n const keysWithEngines = storageKeys.map((storageKey: StorageKey) => {\n const key = ɵextractStringKey(storageKey);\n const engine = ɵisKeyWithExplicitEngine(storageKey)\n ? injector.get(storageKey.engine)\n : injector.get(STORAGE_ENGINE);\n return { key, engine };\n });\n\n return {\n ...options,\n keysWithEngines\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["NG_DEV_MODE"],"mappings":";;;AAIA;;;AAGG;AACI,MAAM,kBAAkB,GAAG,UAAU;AAI5C,MAAMA,aAAW,GAAG,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC;AAyErD,MAAA,4BAA4B,GAAG,IAAI,cAAc,CAC5DA,aAAW,GAAG,6BAA6B,GAAG,EAAE,EAChD;AAEW,MAAA,cAAc,GAAG,IAAI,cAAc,CAC9CA,aAAW,GAAG,gBAAgB,GAAG,EAAE;;AC9ErC;AACM,SAAU,wBAAwB,CAAC,GAAQ,EAAA;IAC/C,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;AACrC,CAAC;AAQD;AACA,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AACvC,SAAU,iBAAiB,CAAC,UAAsB,EAAA;;AAEtD,IAAA,IAAI,wBAAwB,CAAC,UAAU,CAAC,EAAE;AACxC,QAAA,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC;AAC7B,KAAA;;;;AAKD,IAAA,IAAI,UAAU,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE;AAC/C,QAAA,UAAU,GAAI,UAAkB,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC;AACzD,KAAA;AAED,IAAA,OAAO,UAAU,YAAY,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE,GAAW,UAAU,CAAC;AACtF;;ACzBA,MAAM,WAAW,GAAG,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC;AAErD,MAAA,kCAAkC,GAAG,IAAI,cAAc,CAClE,WAAW,GAAG,mCAAmC,GAAG,EAAE,EACtD;AAEc,SAAA,gCAAgC,CAC9C,QAAkB,EAClB,OAAiC,EAAA;IAEjC,MAAM,WAAW,GAAiB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAI,CAAC,CAAC;IAE5F,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAsB,KAAI;AACjE,QAAA,MAAM,GAAG,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;AAC1C,QAAA,MAAM,MAAM,GAAG,wBAAwB,CAAC,UAAU,CAAC;cAC/C,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;AACjC,cAAE,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACjC,QAAA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACzB,KAAC,CAAC,CAAC;IAEH,OACK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CACV,EAAA,EAAA,eAAe,EACf,CAAA,CAAA;AACJ;;ACtCA;;AAEG;;;;"}
|
|
@@ -1,20 +1,13 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { PLATFORM_ID, Injectable, Inject, InjectionToken, Injector, NgModule, makeEnvironmentProviders, inject } from '@angular/core';
|
|
3
|
+
import { actionMatcher, InitState, UpdateState, getValue, setValue, NGXS_PLUGINS, withNgxsPlugin } from '@ngxs/store';
|
|
4
|
+
import { ɵDEFAULT_STATE_KEY, ɵFINAL_NGXS_STORAGE_PLUGIN_OPTIONS, ɵNGXS_STORAGE_PLUGIN_OPTIONS, STORAGE_ENGINE, ɵcreateFinalStoragePluginOptions } from '@ngxs/storage-plugin/internals';
|
|
5
|
+
export { STORAGE_ENGINE } from '@ngxs/storage-plugin/internals';
|
|
4
6
|
import { isPlatformServer, isPlatformBrowser } from '@angular/common';
|
|
5
7
|
import { tap } from 'rxjs/operators';
|
|
6
8
|
|
|
7
|
-
const NG_DEV_MODE$4 = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
8
|
-
const NGXS_STORAGE_PLUGIN_OPTIONS = new InjectionToken(NG_DEV_MODE$4 ? 'NGXS_STORAGE_PLUGIN_OPTIONS' : '');
|
|
9
|
-
const STORAGE_ENGINE = new InjectionToken(NG_DEV_MODE$4 ? 'STORAGE_ENGINE' : '');
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* The following key is used to store the entire serialized
|
|
13
|
-
* state when there's no specific state provided.
|
|
14
|
-
*/
|
|
15
|
-
const DEFAULT_STATE_KEY = '@@STATE';
|
|
16
9
|
function storageOptionsFactory(options) {
|
|
17
|
-
return Object.assign({ key: [DEFAULT_STATE_KEY], storage: 0 /* StorageOption.LocalStorage */, serialize: JSON.stringify, deserialize: JSON.parse, beforeSerialize: obj => obj, afterDeserialize: obj => obj }, options);
|
|
10
|
+
return Object.assign({ key: [ɵDEFAULT_STATE_KEY], storage: 0 /* StorageOption.LocalStorage */, serialize: JSON.stringify, deserialize: JSON.parse, beforeSerialize: obj => obj, afterDeserialize: obj => obj }, options);
|
|
18
11
|
}
|
|
19
12
|
function engineFactory(options, platformId) {
|
|
20
13
|
if (isPlatformServer(platformId)) {
|
|
@@ -34,48 +27,14 @@ function getStorageKey(key, options) {
|
|
|
34
27
|
return options && options.namespace ? `${options.namespace}:${key}` : key;
|
|
35
28
|
}
|
|
36
29
|
|
|
37
|
-
/** Determines whether the provided key has the following structure. */
|
|
38
|
-
function isKeyWithExplicitEngine(key) {
|
|
39
|
-
return key != null && !!key.engine;
|
|
40
|
-
}
|
|
41
|
-
/** This symbol is used to store the metadata on state classes. */
|
|
42
|
-
const META_OPTIONS_KEY = 'NGXS_OPTIONS_META';
|
|
43
|
-
function exctractStringKey(storageKey) {
|
|
44
|
-
// Extract the actual key out of the `{ key, engine }` structure.
|
|
45
|
-
if (isKeyWithExplicitEngine(storageKey)) {
|
|
46
|
-
storageKey = storageKey.key;
|
|
47
|
-
}
|
|
48
|
-
// Given the `storageKey` is a class, for instance, `AuthState`.
|
|
49
|
-
// We should retrieve its metadata and the `name` property.
|
|
50
|
-
// The `name` property might be a string (state name) or a state token.
|
|
51
|
-
if (storageKey.hasOwnProperty(META_OPTIONS_KEY)) {
|
|
52
|
-
storageKey = storageKey[META_OPTIONS_KEY].name;
|
|
53
|
-
}
|
|
54
|
-
return storageKey instanceof StateToken ? storageKey.getName() : storageKey;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
const NG_DEV_MODE$3 = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
58
|
-
const FINAL_NGXS_STORAGE_PLUGIN_OPTIONS = new InjectionToken(NG_DEV_MODE$3 ? 'FINAL_NGXS_STORAGE_PLUGIN_OPTIONS' : '');
|
|
59
|
-
function createFinalStoragePluginOptions(injector, options) {
|
|
60
|
-
const storageKeys = Array.isArray(options.key) ? options.key : [options.key];
|
|
61
|
-
const keysWithEngines = storageKeys.map((storageKey) => {
|
|
62
|
-
const key = exctractStringKey(storageKey);
|
|
63
|
-
const engine = isKeyWithExplicitEngine(storageKey)
|
|
64
|
-
? injector.get(storageKey.engine)
|
|
65
|
-
: injector.get(STORAGE_ENGINE);
|
|
66
|
-
return { key, engine };
|
|
67
|
-
});
|
|
68
|
-
return Object.assign(Object.assign({}, options), { keysWithEngines });
|
|
69
|
-
}
|
|
70
|
-
|
|
71
30
|
const NG_DEV_MODE$2 = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
72
31
|
class NgxsStoragePlugin {
|
|
73
32
|
constructor(_options, _platformId) {
|
|
74
33
|
this._options = _options;
|
|
75
34
|
this._platformId = _platformId;
|
|
76
35
|
this._keysWithEngines = this._options.keysWithEngines;
|
|
77
|
-
// We default to `[DEFAULT_STATE_KEY]` if the user explicitly does not provide the `key` option.
|
|
78
|
-
this._usesDefaultStateKey = this._keysWithEngines.length === 1 && this._keysWithEngines[0].key === DEFAULT_STATE_KEY;
|
|
36
|
+
// We default to `[ɵDEFAULT_STATE_KEY]` if the user explicitly does not provide the `key` option.
|
|
37
|
+
this._usesDefaultStateKey = this._keysWithEngines.length === 1 && this._keysWithEngines[0].key === ɵDEFAULT_STATE_KEY;
|
|
79
38
|
}
|
|
80
39
|
handle(state, event, next) {
|
|
81
40
|
var _a;
|
|
@@ -167,7 +126,7 @@ class NgxsStoragePlugin {
|
|
|
167
126
|
for (const { key, engine } of this._keysWithEngines) {
|
|
168
127
|
let storedValue = nextState;
|
|
169
128
|
const storageKey = getStorageKey(key, this._options);
|
|
170
|
-
if (key !== DEFAULT_STATE_KEY) {
|
|
129
|
+
if (key !== ɵDEFAULT_STATE_KEY) {
|
|
171
130
|
storedValue = getValue(nextState, key);
|
|
172
131
|
}
|
|
173
132
|
try {
|
|
@@ -190,14 +149,14 @@ class NgxsStoragePlugin {
|
|
|
190
149
|
}));
|
|
191
150
|
}
|
|
192
151
|
}
|
|
193
|
-
/** @nocollapse */ NgxsStoragePlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsStoragePlugin, deps: [{ token: FINAL_NGXS_STORAGE_PLUGIN_OPTIONS }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
152
|
+
/** @nocollapse */ NgxsStoragePlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsStoragePlugin, deps: [{ token: ɵFINAL_NGXS_STORAGE_PLUGIN_OPTIONS }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
194
153
|
/** @nocollapse */ NgxsStoragePlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsStoragePlugin });
|
|
195
154
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsStoragePlugin, decorators: [{
|
|
196
155
|
type: Injectable
|
|
197
156
|
}], ctorParameters: function () {
|
|
198
157
|
return [{ type: undefined, decorators: [{
|
|
199
158
|
type: Inject,
|
|
200
|
-
args: [FINAL_NGXS_STORAGE_PLUGIN_OPTIONS]
|
|
159
|
+
args: [ɵFINAL_NGXS_STORAGE_PLUGIN_OPTIONS]
|
|
201
160
|
}] }, { type: undefined, decorators: [{
|
|
202
161
|
type: Inject,
|
|
203
162
|
args: [PLATFORM_ID]
|
|
@@ -222,19 +181,19 @@ class NgxsStoragePluginModule {
|
|
|
222
181
|
useValue: options
|
|
223
182
|
},
|
|
224
183
|
{
|
|
225
|
-
provide: NGXS_STORAGE_PLUGIN_OPTIONS,
|
|
184
|
+
provide: ɵNGXS_STORAGE_PLUGIN_OPTIONS,
|
|
226
185
|
useFactory: storageOptionsFactory,
|
|
227
186
|
deps: [USER_OPTIONS]
|
|
228
187
|
},
|
|
229
188
|
{
|
|
230
189
|
provide: STORAGE_ENGINE,
|
|
231
190
|
useFactory: engineFactory,
|
|
232
|
-
deps: [NGXS_STORAGE_PLUGIN_OPTIONS, PLATFORM_ID]
|
|
191
|
+
deps: [ɵNGXS_STORAGE_PLUGIN_OPTIONS, PLATFORM_ID]
|
|
233
192
|
},
|
|
234
193
|
{
|
|
235
|
-
provide: FINAL_NGXS_STORAGE_PLUGIN_OPTIONS,
|
|
236
|
-
useFactory:
|
|
237
|
-
deps: [Injector, NGXS_STORAGE_PLUGIN_OPTIONS]
|
|
194
|
+
provide: ɵFINAL_NGXS_STORAGE_PLUGIN_OPTIONS,
|
|
195
|
+
useFactory: ɵcreateFinalStoragePluginOptions,
|
|
196
|
+
deps: [Injector, ɵNGXS_STORAGE_PLUGIN_OPTIONS]
|
|
238
197
|
}
|
|
239
198
|
]
|
|
240
199
|
};
|
|
@@ -254,19 +213,19 @@ function withNgxsStoragePlugin(options) {
|
|
|
254
213
|
useValue: options
|
|
255
214
|
},
|
|
256
215
|
{
|
|
257
|
-
provide: NGXS_STORAGE_PLUGIN_OPTIONS,
|
|
216
|
+
provide: ɵNGXS_STORAGE_PLUGIN_OPTIONS,
|
|
258
217
|
useFactory: storageOptionsFactory,
|
|
259
218
|
deps: [USER_OPTIONS]
|
|
260
219
|
},
|
|
261
220
|
{
|
|
262
221
|
provide: STORAGE_ENGINE,
|
|
263
222
|
useFactory: engineFactory,
|
|
264
|
-
deps: [NGXS_STORAGE_PLUGIN_OPTIONS, PLATFORM_ID]
|
|
223
|
+
deps: [ɵNGXS_STORAGE_PLUGIN_OPTIONS, PLATFORM_ID]
|
|
265
224
|
},
|
|
266
225
|
{
|
|
267
|
-
provide: FINAL_NGXS_STORAGE_PLUGIN_OPTIONS,
|
|
268
|
-
useFactory:
|
|
269
|
-
deps: [Injector, NGXS_STORAGE_PLUGIN_OPTIONS]
|
|
226
|
+
provide: ɵFINAL_NGXS_STORAGE_PLUGIN_OPTIONS,
|
|
227
|
+
useFactory: ɵcreateFinalStoragePluginOptions,
|
|
228
|
+
deps: [Injector, ɵNGXS_STORAGE_PLUGIN_OPTIONS]
|
|
270
229
|
}
|
|
271
230
|
]);
|
|
272
231
|
}
|
|
@@ -289,5 +248,5 @@ const SESSION_STORAGE_ENGINE = new InjectionToken(NG_DEV_MODE ? 'SESSION_STORAGE
|
|
|
289
248
|
* Generated bundle index. Do not edit.
|
|
290
249
|
*/
|
|
291
250
|
|
|
292
|
-
export { LOCAL_STORAGE_ENGINE,
|
|
251
|
+
export { LOCAL_STORAGE_ENGINE, NgxsStoragePlugin, NgxsStoragePluginModule, SESSION_STORAGE_ENGINE, withNgxsStoragePlugin };
|
|
293
252
|
//# sourceMappingURL=ngxs-storage-plugin.mjs.map
|