@o3r/store-sync 12.1.0-prerelease.10 → 12.1.0-prerelease.12

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.
@@ -0,0 +1,4 @@
1
+ export * from './interfaces';
2
+ export * from './storage-sync';
3
+ export * from './storage-sync.helpers';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yYWdlLXN5bmMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yYWdlLXN5bmMuaGVscGVycyc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgU2VyaWFsaXplcixcbn0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB0eXBlIHtcbiAgU3luY1N0b3JhZ2VDb25maWcsXG59IGZyb20gJy4uL3N5bmMtc3RvcmFnZSc7XG5cbi8qKlxuICogRm9ybWF0IG9mIGEga2V5IGluIGBTdG9yZVN5bmNDb25maWdgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmVTeW5jU2VyaWFsaXplcnMge1xuICBbc3RvcmVOYW1lOiBzdHJpbmddOiBTZXJpYWxpemVyPGFueT47XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGF0dHJpYnV0ZXMgdG8gYm9vdHN0cmFwIGBzdG9yZVN5bmNNZXRhUmVkdWNlcmBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yZVN5bmNDb25maWcge1xuICAvKiogU3RhdGUga2V5cyB0byBzeW5jIHdpdGggc3RvcmFnZSAqL1xuICBrZXlzOiBTdG9yZVN5bmNTZXJpYWxpemVyc1tdO1xuICAvKiogUHVsbCBpbml0aWFsIHN0YXRlIGZyb20gc3RvcmFnZSBvbiBzdGFydHVwICovXG4gIHJlaHlkcmF0ZT86IGJvb2xlYW47XG4gIC8qKiBTcGVjaWZ5IGFuIG9iamVjdCB0aGF0IGNvbmZvcm1zIHRvIHRoZSBTdG9yYWdlIGludGVyZmFjZSB0byB1c2UsIHRoaXMgd2lsbCBkZWZhdWx0IHRvIGxvY2FsU3RvcmFnZSAqL1xuICBzdG9yYWdlPzogU3RvcmFnZTtcbiAgLyoqIFdoZW4gc2V0LCBzeW5jIHRvIHN0b3JhZ2Ugd2lsbCBvbmx5IG9jY3VyIHdoZW4gdGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgdHJ1ZSBib29sZWFuICovXG4gIHN5bmNDb25kaXRpb24/OiAoc3RhdGU6IGFueSkgPT4gYW55O1xufVxuXG4vKipcbiAqIFR5cGluZ3MgZm9yIGFzeW5jIHN0b3JhZ2VcbiAqL1xuZXhwb3J0IHR5cGUgQXN5bmNTdG9yYWdlID0gT21pdDxTdG9yYWdlLCAnZ2V0SXRlbSc+ICYge1xuICBnZXRJdGVtKGtleTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPjtcbn07XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYXN5bmMgc3RvcmFnZSBzeW5jXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXN5bmNTdG9yYWdlU3luY09wdGlvbnMgZXh0ZW5kcyBPbWl0PFN5bmNTdG9yYWdlQ29uZmlnLCAnc3RvcmFnZSc+IHtcbiAgc3RvcmFnZT86IEFzeW5jU3RvcmFnZTtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHN0b3JhZ2Ugc3luYyBtZXRob2QgKi9cbmV4cG9ydCB0eXBlIFN0b3JhZ2VTeW5jT3B0aW9ucyA9IFN5bmNTdG9yYWdlQ29uZmlnIHwgQXN5bmNTdG9yYWdlU3luY09wdGlvbnM7XG5cbi8qKlxuICogT3B0aW9ucyB0aGF0IGNhbiBiZSBzZXQgb24gdGhlIFN0b3JhZ2Ugc3luYyBjb25zdHJ1Y3RvclxuICogcG9zdFByb2Nlc3MgYW5kIHN5bmNLZXlDb25kaXRpb24gd2lsbCBiZSBoYW5kbGVkIGJ5IHRoZSBTdG9yYWdlU3luYyBjbGFzcyBpZiBzbWFydCBzeW5jIGlzIGFjdGl2YXRlZFxuICovXG5leHBvcnQgdHlwZSBTdG9yYWdlU3luY0NvbnN0cnVjdG9yT3B0aW9ucyA9IE9taXQ8U3RvcmFnZVN5bmNPcHRpb25zLCAncG9zdFByb2Nlc3MnIHwgJ3N5bmNLZXlDb25kaXRpb24nPjtcbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { createAction, props, } from '@ngrx/store';
2
+ /**
3
+ * Defines if an object is a Serializer
4
+ * @param obj Object to test
5
+ * @returns True if the object is a Serializer
6
+ */
7
+ export const isSerializer = (obj) => !!(obj.serialize || obj.deserialize || obj.reviver || obj.replacer || obj.initialState);
8
+ /**
9
+ * Label of the action to rehydrate the store
10
+ */
11
+ export const REHYDRATE_ACTION_LABEL = '[storeSync] rehydrate';
12
+ /**
13
+ * Action to rehydrate the store
14
+ */
15
+ export const rehydrateAction = createAction(REHYDRATE_ACTION_LABEL, props());
16
+ /**
17
+ * Defines if the storage is a non-async storage
18
+ * @param options The storage config
19
+ * @returns in case the storage used is a non-async storage
20
+ */
21
+ export const isLocalStorageConfig = (options) => !options.storage || options.storage instanceof Storage;
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1zeW5jLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9zdG9yYWdlLXN5bmMuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsWUFBWSxFQUNaLEtBQUssR0FDTixNQUFNLGFBQWEsQ0FBQztBQVdyQjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBUSxFQUEwQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLFFBQVEsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7QUFFMUo7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyx1QkFBdUIsQ0FBQztBQUU5RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxFQUVyRSxDQUFDLENBQUM7QUFFTjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxPQUEyQixFQUFnQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLFlBQVksT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY3JlYXRlQWN0aW9uLFxuICBwcm9wcyxcbn0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHR5cGUge1xuICBTZXJpYWxpemVyLFxufSBmcm9tICdAbzNyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1xuICBTeW5jU3RvcmFnZUNvbmZpZyxcbn0gZnJvbSAnLi4vc3luYy1zdG9yYWdlJztcbmltcG9ydCB0eXBlIHtcbiAgU3RvcmFnZVN5bmNPcHRpb25zLFxufSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG4vKipcbiAqIERlZmluZXMgaWYgYW4gb2JqZWN0IGlzIGEgU2VyaWFsaXplclxuICogQHBhcmFtIG9iaiBPYmplY3QgdG8gdGVzdFxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGEgU2VyaWFsaXplclxuICovXG5leHBvcnQgY29uc3QgaXNTZXJpYWxpemVyID0gKG9iajogYW55KTogb2JqIGlzIFNlcmlhbGl6ZXI8YW55PiA9PiAhIShvYmouc2VyaWFsaXplIHx8IG9iai5kZXNlcmlhbGl6ZSB8fCBvYmoucmV2aXZlciB8fCBvYmoucmVwbGFjZXIgfHwgb2JqLmluaXRpYWxTdGF0ZSk7XG5cbi8qKlxuICogTGFiZWwgb2YgdGhlIGFjdGlvbiB0byByZWh5ZHJhdGUgdGhlIHN0b3JlXG4gKi9cbmV4cG9ydCBjb25zdCBSRUhZRFJBVEVfQUNUSU9OX0xBQkVMID0gJ1tzdG9yZVN5bmNdIHJlaHlkcmF0ZSc7XG5cbi8qKlxuICogQWN0aW9uIHRvIHJlaHlkcmF0ZSB0aGUgc3RvcmVcbiAqL1xuZXhwb3J0IGNvbnN0IHJlaHlkcmF0ZUFjdGlvbiA9IGNyZWF0ZUFjdGlvbihSRUhZRFJBVEVfQUNUSU9OX0xBQkVMLCBwcm9wczx7XG4gIHBheWxvYWQ6IFJlY29yZDxzdHJpbmcsIGFueT47XG59PigpKTtcblxuLyoqXG4gKiBEZWZpbmVzIGlmIHRoZSBzdG9yYWdlIGlzIGEgbm9uLWFzeW5jIHN0b3JhZ2VcbiAqIEBwYXJhbSBvcHRpb25zIFRoZSBzdG9yYWdlIGNvbmZpZ1xuICogQHJldHVybnMgaW4gY2FzZSB0aGUgc3RvcmFnZSB1c2VkIGlzIGEgbm9uLWFzeW5jIHN0b3JhZ2VcbiAqL1xuZXhwb3J0IGNvbnN0IGlzTG9jYWxTdG9yYWdlQ29uZmlnID0gKG9wdGlvbnM6IFN0b3JhZ2VTeW5jT3B0aW9ucyk6IG9wdGlvbnMgaXMgU3luY1N0b3JhZ2VDb25maWcgPT4gIW9wdGlvbnMuc3RvcmFnZSB8fCBvcHRpb25zLnN0b3JhZ2UgaW5zdGFuY2VvZiBTdG9yYWdlO1xuIl19
@@ -0,0 +1,103 @@
1
+ import { INIT, UPDATE, } from '@ngrx/store';
2
+ import equal from 'fast-deep-equal';
3
+ import { deepFillWithDate, } from '../deep-fill/deep-fill';
4
+ import { syncStorage, } from '../sync-storage';
5
+ import { isLocalStorageConfig, isSerializer, rehydrateAction, } from './storage-sync.helpers';
6
+ /**
7
+ * Storage synchronizer
8
+ */
9
+ export class StorageSync {
10
+ constructor(options, extraOptions) {
11
+ this.alreadyHydratedStoreSlices = new Set();
12
+ this.hasHydrated = false;
13
+ this.storeImage = {};
14
+ /**
15
+ * Handle state manipulation in case of store storage sync
16
+ * Merge strategy is a full merge at init; When a new `store slice` is registered, its initial state is merged with its corresponding storage content
17
+ * Pass it as mergeReducer callback when calling localStorageSync function from 'ngrx-store-localstorage', in the app
18
+ * @param state actual state
19
+ * @param rehydratedState state from storage
20
+ * @param action Triggered action
21
+ */
22
+ this.mergeReducer = (state, rehydratedState, action) => {
23
+ if (rehydratedState) {
24
+ if (action.type === INIT) {
25
+ state = deepFillWithDate(state, rehydratedState);
26
+ }
27
+ if (action.type === UPDATE && Array.isArray(action.features)) {
28
+ const notHandledFeatures = action.features.filter((featName) => !this.alreadyHydratedStoreSlices.has(featName));
29
+ notHandledFeatures.filter((featName) => !!rehydratedState[featName]).forEach((fName) => {
30
+ state[fName] = state[fName] ? deepFillWithDate(state[fName], rehydratedState[fName]) : rehydratedState[fName];
31
+ this.alreadyHydratedStoreSlices.add(fName);
32
+ });
33
+ }
34
+ }
35
+ return state;
36
+ };
37
+ /**
38
+ * Returns a meta reducer that handles storage sync
39
+ */
40
+ this.localStorageSync = () => {
41
+ const base = (reducer) => syncStorage({
42
+ ...this.options,
43
+ rehydrate: false,
44
+ storage: this.options.storage,
45
+ syncCondition: () => this.hasHydrated
46
+ })(reducer);
47
+ return (reducer) => {
48
+ if (isLocalStorageConfig(this.options)) {
49
+ return syncStorage(this.options)(reducer);
50
+ }
51
+ return (state, action) => {
52
+ let hydratedState = state;
53
+ if (action.type === rehydrateAction.type) {
54
+ const hasAlreadyHydrated = this.hasHydrated;
55
+ this.hasHydrated = true;
56
+ const initialStates = this.options.keys.reduce((acc, key) => {
57
+ const storeName = Object.keys(key)[0];
58
+ const storeSynchronizer = key[storeName];
59
+ if (isSerializer(storeSynchronizer)) {
60
+ acc[storeName] = storeSynchronizer.initialState;
61
+ }
62
+ return acc;
63
+ }, {});
64
+ let overrides = {};
65
+ if (!hasAlreadyHydrated) {
66
+ overrides = Object.entries(action.payload).reduce((acc, [storeName, value]) => {
67
+ if (!initialStates[storeName] || initialStates[storeName] === state[storeName]) {
68
+ acc[storeName] = value;
69
+ }
70
+ else if (initialStates[storeName] !== state[storeName]) {
71
+ (this.options.logger || console).error(`Unable to rehydrate store "${storeName}", it has been modified before being hydrated`);
72
+ }
73
+ return acc;
74
+ }, {});
75
+ }
76
+ if (Object.keys(overrides).length > 0) {
77
+ hydratedState = { ...state, ...overrides };
78
+ }
79
+ }
80
+ return base(reducer)(hydratedState, action);
81
+ };
82
+ };
83
+ };
84
+ this.options = {
85
+ keys: [],
86
+ ...(extraOptions?.disableSmartSync
87
+ ? {}
88
+ : {
89
+ syncKeyCondition: (key, state) => !equal(this.storeImage[key], state[key]),
90
+ postProcess: (state) => {
91
+ this.options.keys.forEach((key) => {
92
+ const keyName = typeof key === 'object' ? Object.keys(key)[0] : key;
93
+ this.storeImage[keyName] = state[keyName];
94
+ });
95
+ }
96
+ }),
97
+ ...options,
98
+ storage: options?.storage,
99
+ mergeReducer: typeof options?.mergeReducer === 'function' ? options.mergeReducer : this.mergeReducer
100
+ };
101
+ }
102
+ }
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1zeW5jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvcmUvc3RvcmFnZS1zeW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxJQUFJLEVBQ0osTUFBTSxHQUNQLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sS0FBSyxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFDTCxnQkFBZ0IsR0FDakIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQ0wsV0FBVyxHQUNaLE1BQU0saUJBQWlCLENBQUM7QUFPekIsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixZQUFZLEVBQ1osZUFBZSxHQUNoQixNQUFNLHdCQUF3QixDQUFDO0FBRWhDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFPdEIsWUFBWSxPQUF1QyxFQUFFLFlBQTRDO1FBTmhGLCtCQUEwQixHQUFnQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzdELGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ1gsZUFBVSxHQUEyQixFQUFFLENBQUM7UUF3QnpEOzs7Ozs7O1dBT0c7UUFDYSxpQkFBWSxHQUFHLENBQUMsS0FBVSxFQUFFLGVBQW9CLEVBQUUsTUFBVyxFQUFFLEVBQUU7WUFDL0UsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO29CQUN6QixLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFDO2dCQUNuRCxDQUFDO2dCQUNELElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDN0QsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQWdCLEVBQUUsRUFBRSxDQUFD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TyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7NEJBQzVFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUM1QyxDQUFDLENBQUMsQ0FBQztvQkFDTCxDQUFDO2lCQUNGLENBQUM7WUFDSixHQUFHLE9BQU87WUFDVixPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQTZCO1lBQy9DLFlBQVksRUFBRSxPQUFPLE9BQU8sRUFBRSxZQUFZLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWTtTQUNyRyxDQUFDO0lBQ0osQ0FBQztDQTJFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElOSVQsXG4gIFVQREFURSxcbn0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IGVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbCc7XG5pbXBvcnQge1xuICBkZWVwRmlsbFdpdGhEYXRlLFxufSBmcm9tICcuLi9kZWVwLWZpbGwvZGVlcC1maWxsJztcbmltcG9ydCB7XG4gIHN5bmNTdG9yYWdlLFxufSBmcm9tICcuLi9zeW5jLXN0b3JhZ2UnO1xuaW1wb3J0IHR5cGUge1xuICBTdG9yYWdlU3luY09wdGlvbnMsXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBTdG9yYWdlU3luY0NvbnN0cnVjdG9yT3B0aW9ucyxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gIGlzTG9jYWxTdG9yYWdlQ29uZmlnLFxuICBpc1NlcmlhbGl6ZXIsXG4gIHJlaHlkcmF0ZUFjdGlvbixcbn0gZnJvbSAnLi9zdG9yYWdlLXN5bmMuaGVscGVycyc7XG5cbi8qKlxuICogU3RvcmFnZSBzeW5jaHJvbml6ZXJcbiAqL1xuZXhwb3J0IGNsYXNzIFN0b3JhZ2VTeW5jIHtcbiAgcHJpdmF0ZSByZWFkb25seSBhbHJlYWR5SHlkcmF0ZWRTdG9yZVNsaWNlczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG4gIHByaXZhdGUgaGFzSHlkcmF0ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdG9yZUltYWdlOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG5cbiAgcHVibGljIG9wdGlvbnM6IFN0b3JhZ2VTeW5jT3B0aW9ucztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zPzogU3RvcmFnZVN5bmNDb25zdHJ1Y3Rvck9wdGlvbnMsIGV4dHJhT3B0aW9ucz86IHsgZGlzYWJsZVNtYXJ0U3luYzogYm9vbGVhbiB9KSB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAga2V5czogW10sXG4gICAgICAuLi4oZXh0cmFPcHRpb25zPy5kaXNhYmxlU21hcnRTeW5jXG4gICAgICAgID8ge31cbiAgICAgICAgOiB7XG4gICAgICAgICAgc3luY0tleUNvbmRpdGlvbjogKGtleSwgc3RhdGUpID0+ICFlcXVhbCh0aGlzLnN0b3JlSW1hZ2Vba2V5XSwgc3RhdGVba2V5XSksXG4gICAgICAgICAgcG9zdFByb2Nlc3M6IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLmtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGtleU5hbWU6IHN0cmluZyA9IHR5cGVvZiBrZXkgPT09ICdvYmplY3QnID8gT2JqZWN0LmtleXMoa2V5KVswXSA6IGtleTtcbiAgICAgICAgICAgICAgdGhpcy5zdG9yZUltYWdlW2tleU5hbWVdID0gc3RhdGVba2V5TmFtZV07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHN0b3JhZ2U6IG9wdGlvbnM/LnN0b3JhZ2UgYXMgdW5rbm93biBhcyBTdG9yYWdlLFxuICAgICAgbWVyZ2VSZWR1Y2VyOiB0eXBlb2Ygb3B0aW9ucz8ubWVyZ2VSZWR1Y2VyID09PSAnZnVuY3Rpb24nID8gb3B0aW9ucy5tZXJnZVJlZHVjZXIgOiB0aGlzLm1lcmdlUmVkdWNlclxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIHN0YXRlIG1hbmlwdWxhdGlvbiBpbiBjYXNlIG9mIHN0b3JlIHN0b3JhZ2Ugc3luY1xuICAgKiBNZXJnZSBzdHJhdGVneSBpcyBhIGZ1bGwgbWVyZ2UgYXQgaW5pdDsgV2hlbiBhIG5ldyBgc3RvcmUgc2xpY2VgIGlzIHJlZ2lzdGVyZWQsIGl0cyBpbml0aWFsIHN0YXRlIGlzIG1lcmdlZCB3aXRoIGl0cyBjb3JyZXNwb25kaW5nIHN0b3JhZ2UgY29udGVudFxuICAgKiBQYXNzIGl0IGFzIG1lcmdlUmVkdWNlciBjYWxsYmFjayB3aGVuIGNhbGxpbmcgbG9jYWxTdG9yYWdlU3luYyBmdW5jdGlvbiBmcm9tICduZ3J4LXN0b3JlLWxvY2Fsc3RvcmFnZScsIGluIHRoZSBhcHBcbiAgICogQHBhcmFtIHN0YXRlIGFjdHVhbCBzdGF0ZVxuICAgKiBAcGFyYW0gcmVoeWRyYXRlZFN0YXRlIHN0YXRlIGZyb20gc3RvcmFnZVxuICAgKiBAcGFyYW0gYWN0aW9uIFRyaWdnZXJlZCBhY3Rpb25cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtZXJnZVJlZHVjZXIgPSAoc3RhdGU6IGFueSwgcmVoeWRyYXRlZFN0YXRlOiBhbnksIGFjdGlvbjogYW55KSA9PiB7XG4gICAgaWYgKHJlaHlkcmF0ZWRTdGF0ZSkge1xuICAgICAgaWYgKGFjdGlvbi50eXBlID09PSBJTklUKSB7XG4gICAgICAgIHN0YXRlID0gZGVlcEZpbGxXaXRoRGF0ZShzdGF0ZSwgcmVoeWRyYXRlZFN0YXRlKTtcbiAgICAgIH1cbiAgICAgIGlmIChhY3Rpb24udHlwZSA9PT0gVVBEQVRFICYmIEFycmF5LmlzQXJyYXkoYWN0aW9uLmZlYXR1cmVzKSkge1xuICAgICAgICBjb25zdCBub3RIYW5kbGVkRmVhdHVyZXMgPSBhY3Rpb24uZmVhdHVyZXMuZmlsdGVyKChmZWF0TmFtZTogc3RyaW5nKSA9PiAhdGhpcy5hbHJlYWR5SHlkcmF0ZWRTdG9yZVNsaWNlcy5oYXMoZmVhdE5hbWUpKTtcblxuICAgICAgICBub3RIYW5kbGVkRmVhdHVyZXMuZmlsdGVyKChmZWF0TmFtZTogc3RyaW5nKSA9PiAhIXJlaHlkcmF0ZWRTdGF0ZVtmZWF0TmFtZV0pLmZvckVhY2goKGZOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBzdGF0ZVtmTmFtZV0gPSBzdGF0ZVtmTmFtZV0gPyBkZWVwRmlsbFdpdGhEYXRlKHN0YXRlW2ZOYW1lXSwgcmVoeWRyYXRlZFN0YXRlW2ZOYW1lXSkgOiByZWh5ZHJhdGVkU3RhdGVbZk5hbWVdO1xuICAgICAgICAgIHRoaXMuYWxyZWFkeUh5ZHJhdGVkU3RvcmVTbGljZXMuYWRkKGZOYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdGF0ZTtcbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJucyBhIG1ldGEgcmVkdWNlciB0aGF0IGhhbmRsZXMgc3RvcmFnZSBzeW5jXG4gICAqL1xuICBwdWJsaWMgbG9jYWxTdG9yYWdlU3luYyA9ICgpID0+IHtcbiAgICBjb25zdCBiYXNlID0gKHJlZHVjZXI6IGFueSkgPT4gc3luY1N0b3JhZ2Uoe1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgcmVoeWRyYXRlOiBmYWxzZSxcbiAgICAgIHN0b3JhZ2U6IHRoaXMub3B0aW9ucy5zdG9yYWdlIGFzIHVua25vd24gYXMgU3RvcmFnZSxcbiAgICAgIHN5bmNDb25kaXRpb246ICgpID0+IHRoaXMuaGFzSHlkcmF0ZWRcbiAgICB9KShyZWR1Y2VyKTtcblxuICAgIHJldHVybiAocmVkdWNlcjogYW55KSA9PiB7XG4gICAgICBpZiAoaXNMb2NhbFN0b3JhZ2VDb25maWcodGhpcy5vcHRpb25zKSkge1xuICAgICAgICByZXR1cm4gc3luY1N0b3JhZ2UodGhpcy5vcHRpb25zKShyZWR1Y2VyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChzdGF0ZTogYW55LCBhY3Rpb246IGFueSkgPT4ge1xuICAgICAgICBsZXQgaHlkcmF0ZWRTdGF0ZSA9IHN0YXRlO1xuICAgICAgICBpZiAoYWN0aW9uLnR5cGUgPT09IHJlaHlkcmF0ZUFjdGlvbi50eXBlKSB7XG4gICAgICAgICAgY29uc3QgaGFzQWxyZWFkeUh5ZHJhdGVkID0gdGhpcy5oYXNIeWRyYXRlZDtcbiAgICAgICAgICB0aGlzLmhhc0h5ZHJhdGVkID0gdHJ1ZTtcbiAgICAgICAgICBjb25zdCBpbml0aWFsU3RhdGVzID0gdGhpcy5vcHRpb25zLmtleXMucmVkdWNlKChhY2M6IFJlY29yZDxzdHJpbmcsIGFueT4sIGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RvcmVOYW1lID0gT2JqZWN0LmtleXMoa2V5KVswXTtcbiAgICAgICAgICAgIGNvbnN0IHN0b3JlU3luY2hyb25pemVyID0gKGtleSBhcyBhbnkpW3N0b3JlTmFtZV07XG4gICAgICAgICAgICBpZiAoaXNTZXJpYWxpemVyKHN0b3JlU3luY2hyb25pemVyKSkge1xuICAgICAgICAgICAgICBhY2Nbc3RvcmVOYW1lXSA9IHN0b3JlU3luY2hyb25pemVyLmluaXRpYWxTdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgfSwge30pO1xuICAgICAgICAgIGxldCBvdmVycmlkZXMgPSB7fTtcbiAgICAgICAgICBpZiAoIWhhc0FscmVhZHlIeWRyYXRlZCkge1xuICAgICAgICAgICAgb3ZlcnJpZGVzID0gT2JqZWN0LmVudHJpZXMoYWN0aW9uLnBheWxvYWQpLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PigoYWNjLCBbc3RvcmVOYW1lLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFpbml0aWFsU3RhdGVzW3N0b3JlTmFtZV0gfHwgaW5pdGlhbFN0YXRlc1tzdG9yZU5hbWVdID09PSBzdGF0ZVtzdG9yZU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgYWNjW3N0b3JlTmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbml0aWFsU3RhdGVzW3N0b3JlTmFtZV0gIT09IHN0YXRlW3N0b3JlTmFtZV0pIHtcbiAgICAgICAgICAgICAgICAodGhpcy5vcHRpb25zLmxvZ2dlciB8fCBjb25zb2xlKS5lcnJvcihgVW5hYmxlIHRvIHJlaHlkcmF0ZSBzdG9yZSBcIiR7c3RvcmVOYW1lfVwiLCBpdCBoYXMgYmVlbiBtb2RpZmllZCBiZWZvcmUgYmVpbmcgaHlkcmF0ZWRgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfSwge30pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoT2JqZWN0LmtleXMob3ZlcnJpZGVzKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBoeWRyYXRlZFN0YXRlID0geyAuLi5zdGF0ZSwgLi4ub3ZlcnJpZGVzIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBiYXNlKHJlZHVjZXIpKGh5ZHJhdGVkU3RhdGUsIGFjdGlvbik7XG4gICAgICB9O1xuICAgIH07XG4gIH07XG59XG4iXX0=
@@ -0,0 +1,23 @@
1
+ import { utils, } from '@ama-sdk/core';
2
+ import { deepFill, } from '@o3r/core';
3
+ const mapper = [
4
+ {
5
+ condition: (data) => data instanceof utils.DateTime,
6
+ construct: (data) => new utils.DateTime(data)
7
+ },
8
+ {
9
+ condition: (data) => data instanceof utils.Date,
10
+ construct: (data) => new utils.Date(data)
11
+ }
12
+ ];
13
+ /**
14
+ * Deep fill of base object using source
15
+ * It will do a deep merge of the objects, overriding arrays
16
+ * All properties not present in source, but present in base, will remain
17
+ * @param base
18
+ * @param source
19
+ */
20
+ export function deepFillWithDate(base, source) {
21
+ return deepFill(base, source, mapper);
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1maWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RlZXAtZmlsbC9kZWVwLWZpbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsUUFBUSxHQUVULE1BQU0sV0FBVyxDQUFDO0FBRW5CLE1BQU0sTUFBTSxHQUE2QjtJQUN2QztRQUNFLFNBQVMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxZQUFZLEtBQUssQ0FBQyxRQUFRO1FBQ25ELFNBQVMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztLQUM5QztJQUNEO1FBQ0UsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFlBQVksS0FBSyxDQUFDLElBQUk7UUFDL0MsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0tBQzFDO0NBQ0YsQ0FBQztBQUVGOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBaUMsSUFBTyxFQUFFLE1BQTZCO0lBQ3JHLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHV0aWxzLFxufSBmcm9tICdAYW1hLXNkay9jb3JlJztcbmltcG9ydCB7XG4gIGRlZXBGaWxsLFxuICB0eXBlIFByaW1pdGl2ZVJldml2ZXJNYXBwZXIsXG59IGZyb20gJ0BvM3IvY29yZSc7XG5cbmNvbnN0IG1hcHBlcjogUHJpbWl0aXZlUmV2aXZlck1hcHBlcltdID0gW1xuICB7XG4gICAgY29uZGl0aW9uOiAoZGF0YSkgPT4gZGF0YSBpbnN0YW5jZW9mIHV0aWxzLkRhdGVUaW1lLFxuICAgIGNvbnN0cnVjdDogKGRhdGEpID0+IG5ldyB1dGlscy5EYXRlVGltZShkYXRhKVxuICB9LFxuICB7XG4gICAgY29uZGl0aW9uOiAoZGF0YSkgPT4gZGF0YSBpbnN0YW5jZW9mIHV0aWxzLkRhdGUsXG4gICAgY29uc3RydWN0OiAoZGF0YSkgPT4gbmV3IHV0aWxzLkRhdGUoZGF0YSlcbiAgfVxuXTtcblxuLyoqXG4gKiBEZWVwIGZpbGwgb2YgYmFzZSBvYmplY3QgdXNpbmcgc291cmNlXG4gKiBJdCB3aWxsIGRvIGEgZGVlcCBtZXJnZSBvZiB0aGUgb2JqZWN0cywgb3ZlcnJpZGluZyBhcnJheXNcbiAqIEFsbCBwcm9wZXJ0aWVzIG5vdCBwcmVzZW50IGluIHNvdXJjZSwgYnV0IHByZXNlbnQgaW4gYmFzZSwgd2lsbCByZW1haW5cbiAqIEBwYXJhbSBiYXNlXG4gKiBAcGFyYW0gc291cmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWVwRmlsbFdpdGhEYXRlPFQgZXh0ZW5kcyB7IFt4OiBzdHJpbmddOiBhbnkgfT4oYmFzZTogVCwgc291cmNlPzogeyBbeDogc3RyaW5nXTogYW55IH0pOiBUIHtcbiAgcmV0dXJuIGRlZXBGaWxsKGJhc2UsIHNvdXJjZSwgbWFwcGVyKTtcbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibzNyLXN0b3JlLXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbzNyLXN0b3JlLXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './core/index';
2
+ export * from './sync-storage/index';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvcmUvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9zeW5jLXN0b3JhZ2UvaW5kZXgnO1xuIl19
@@ -0,0 +1,15 @@
1
+ /*
2
+ * This file is a fork of the package ngrx-store-localstorage (https://github.com/btroncone/ngrx-store-localstorage) - MIT
3
+ * The following update as been added:
4
+ * - properly export dateReviver function
5
+ * - add missing comments
6
+ * - explicit dependency to @ngrx/store for action names
7
+ * - change interface names to prefix with "sync"
8
+ * - add logger support
9
+ * - fix lint according to eslint rules
10
+ * - split code in several files
11
+ * - migrate tests to Jest
12
+ */
13
+ export * from './interfaces';
14
+ export * from './storage-sync';
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3luYy1zdG9yYWdlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztHQVdHO0FBRUgsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBUaGlzIGZpbGUgaXMgYSBmb3JrIG9mIHRoZSBwYWNrYWdlIG5ncngtc3RvcmUtbG9jYWxzdG9yYWdlIChodHRwczovL2dpdGh1Yi5jb20vYnRyb25jb25lL25ncngtc3RvcmUtbG9jYWxzdG9yYWdlKSAtIE1JVFxuICogVGhlIGZvbGxvd2luZyB1cGRhdGUgYXMgYmVlbiBhZGRlZDpcbiAqICAgLSBwcm9wZXJseSBleHBvcnQgZGF0ZVJldml2ZXIgZnVuY3Rpb25cbiAqICAgLSBhZGQgbWlzc2luZyBjb21tZW50c1xuICogICAtIGV4cGxpY2l0IGRlcGVuZGVuY3kgdG8gQG5ncngvc3RvcmUgZm9yIGFjdGlvbiBuYW1lc1xuICogICAtIGNoYW5nZSBpbnRlcmZhY2UgbmFtZXMgdG8gcHJlZml4IHdpdGggXCJzeW5jXCJcbiAqICAgLSBhZGQgbG9nZ2VyIHN1cHBvcnRcbiAqICAgLSBmaXggbGludCBhY2NvcmRpbmcgdG8gZXNsaW50IHJ1bGVzXG4gKiAgIC0gc3BsaXQgY29kZSBpbiBzZXZlcmFsIGZpbGVzXG4gKiAgIC0gbWlncmF0ZSB0ZXN0cyB0byBKZXN0XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZS1zeW5jJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zeW5jLXN0b3JhZ2UvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBMb2dnZXIsXG59IGZyb20gJ0BvM3IvY29yZSc7XG5cbi8qKlxuICogT3B0aW9ucyB0byBwcm92aWRlIHRvIHRoZSBzeW5jaHJvbm91cyBzdG9yZSBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3luY1N0b3JhZ2VTeW5jT3B0aW9ucyB7XG4gIC8qKiBDYWxsYmFjayB0byBkZWZpbmUgdGhlIHNlcmlhbGl6YXRpb24gc3RyYXRlZ3kgb2YgdGhlIHN0b3JlICovXG4gIHNlcmlhbGl6ZT86IChzdGF0ZTogYW55KSA9PiBhbnk7XG4gIC8qKiBDYWxsYmFjayB0byBkZWZpbmUgdGhlIGRlc2VyaWFsaXphdGlvbiBzdHJhdGVneSBvZiB0aGUgc3RvcmUgKi9cbiAgZGVzZXJpYWxpemU/OiAoc3RhdGU6IGFueSkgPT4gYW55O1xuICAvKiogQ2FsbGJhY2sgdG8gZGVmaW5lIHRoZSByZXZpdmluZyBzdHJhdGVneSBvZiB0aGUgc3RvcmUgKi9cbiAgcmV2aXZlcj86IChrZXk6IHN0cmluZywgdmFsdWU6IGFueSkgPT4gYW55O1xuICAvKiogcmVwbGFjZXIgY2FsbGJhY2sgZnVuY3Rpb24gcHJvdmlkZWQgdG8gdGhlIHBhcnNlciAqL1xuICByZXBsYWNlcj86ICgoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IGFueSkgfCBzdHJpbmdbXTtcbiAgLyoqIEZpbHRlciB0byBhcHBseSB0byB0aGUgc3RvcmUgZmllbGRzICovXG4gIGZpbHRlcj86IHN0cmluZ1tdO1xuICAvKiogU3BhY2luZyBmb3Igc2VyaWFsaXplciAqL1xuICBzcGFjZT86IHN0cmluZyB8IG51bWJlcjtcbiAgLyoqIERlZmluZXMgd2hldGhlciB0aGUgc3RvcmUgaXMgbG9hZGVkIGFzIGZvckZlYXR1cmUgKi9cbiAgc3luY0ZvckZlYXR1cmU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBvZiB0aGUgY29uZmlndXJhdGlvbnMgZm9yIGEgc3RvcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlS2V5Q29uZmlndXJhdGlvbiB7XG4gIFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIHwgbnVtYmVyW10gfCBTdG9yYWdlS2V5Q29uZmlndXJhdGlvbltdIHwgU3luY1N0b3JhZ2VTeW5jT3B0aW9ucyB8ICgoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IGFueSk7XG59XG5cbi8qKlxuICogRGVmaW5pdGlvbiBvZiBhIHN0b3JlIHRvIHRvIHN5bmNocm9uaXplXG4gKi9cbmV4cG9ydCB0eXBlIFN0b3JhZ2VLZXlzID0gKFN0b3JhZ2VLZXlDb25maWd1cmF0aW9uIHwgU3luY1N0b3JhZ2VTeW5jT3B0aW9ucyB8IHN0cmluZylbXTtcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIHRvIGRlZmluZSB0aGUgd2F5IHRoZSBzdG9yZXMgc2hvdWxkIGJlIHN5bmNocm9uaXplIHRvIHRoZSBzdG9yYWdlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3luY1N0b3JhZ2VDb25maWcge1xuICAvKiogTWFwIG9mIHRoZSBzdG9yZSB0byBzeW5jaHJvbml6ZSAqL1xuICBrZXlzOiBTdG9yYWdlS2V5cztcbiAgLyoqIFNob3VsZCB0aGUgc3RvcmVzIGJlIGluaXRpYWxseSByZWh5ZHJhdGVkICovXG4gIHJlaHlkcmF0ZT86IGJvb2xlYW47XG4gIC8qKiBTdG9yYWdlIHJlZmVyZW5jZSAqL1xuICBzdG9yYWdlPzogU3RvcmFnZTtcbiAgLyoqIFNob3VsZCBiZSByZW1vdmVkIGZyb20gc3RvcmFnZSBpZiB1bmRlZmluZWQgKi9cbiAgcmVtb3ZlT25VbmRlZmluZWQ/OiBib29sZWFuO1xuICAvKiogU2hvdWxkIGFwcGx5IHJlc3RvcmUgZGF0ZSB0byB0aGUgcmVzdG9yZWQgc3RvcmVzICovXG4gIHJlc3RvcmVEYXRlcz86IGJvb2xlYW47XG4gIC8qKiBDYWxsYmFjayB0byBkZWZpbmUgdGhlIHNlcmlhbGl6YXRpb24gc3RyYXRlZ3kgZm9yIHRoZSBzdG9yZSBrZXlzICovXG4gIHN0b3JhZ2VLZXlTZXJpYWxpemVyPzogKGtleTogc3RyaW5nKSA9PiBzdHJpbmc7XG4gIC8qKiBDYWxsYmFjayB0byBkZWZpbmUgdGhlIGNvbmRpdGlvbiB0byB0aGUgc3luY2hyb25pemF0aW9uICovXG4gIHN5bmNDb25kaXRpb24/OiAoc3RhdGU6IGFueSkgPT4gYW55O1xuICAvKiogQ2FsbGJhY2sgdG8gZGVmaW5lIHRoZSBjb25kaXRpb24gdG8gdGhlIGtleSBzeW5jaHJvbml6YXRpb24gKi9cbiAgc3luY0tleUNvbmRpdGlvbj86IChrZXk6IHN0cmluZywgc3RhdGU6IGFueSkgPT4gYm9vbGVhbjtcbiAgLyoqIGNoZWNrIHRoZSBhdmFpbGFiaWxpdHkgb2YgdGhlIHN0b3JhZ2UgKi9cbiAgY2hlY2tTdG9yYWdlQXZhaWxhYmlsaXR5PzogYm9vbGVhbjtcbiAgLyoqIE1lcmdlIHJlZHVjZXIgdG8gdXNlIHRvIGRlc2VyaWFsaXplIHRoZSBzdG9yZSAqL1xuICBtZXJnZVJlZHVjZXI/OiAoc3RhdGU6IGFueSwgcmVoeWRyYXRlZFN0YXRlOiBhbnksIGFjdGlvbjogYW55KSA9PiBhbnk7XG4gIC8qKiBMb2dnZXIgdG8gcmVwb3J0IG1lc3NhZ2VzICovXG4gIGxvZ2dlcj86IExvZ2dlcjtcbiAgLyoqIFBvc3QgcHJvY2VzcyBhZnRlciBzeW5jIHN0b3JhZ2UgZXhlY3V0aW9uICovXG4gIHBvc3RQcm9jZXNzPzogKHN0YXRlOiBhbnkpID0+IHZvaWQ7XG59XG4iXX0=
@@ -0,0 +1,296 @@
1
+ import { INIT, UPDATE, } from '@ngrx/store';
2
+ import { deepFill, } from '@o3r/core';
3
+ /**
4
+ * Reviver the date from a JSON field if the string is matching iso format. Return the same value otherwise
5
+ * @param _key JSON item key name
6
+ * @param value JSON item value
7
+ */
8
+ export const dateReviver = (_key, value) => {
9
+ if (typeof value === 'string' && /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/.test(value)) {
10
+ return new Date(value);
11
+ }
12
+ return value;
13
+ };
14
+ /**
15
+ * Dummy reviver returning the value of the field as it is
16
+ * @param _key JSON item key name
17
+ * @param value JSON item value
18
+ */
19
+ const dummyReviver = (_key, value) => value;
20
+ /**
21
+ * Determine if the code is run in a browser
22
+ */
23
+ const checkIsBrowserEnv = () => {
24
+ return typeof window !== 'undefined';
25
+ };
26
+ /**
27
+ * Validate the keys structure of the registered stores
28
+ * @param keys map of store to synchronize
29
+ */
30
+ const validateStateKeys = (keys) => {
31
+ return keys.map((key) => {
32
+ let attr = key;
33
+ if (typeof key === 'object') {
34
+ attr = Object.keys(key)[0];
35
+ }
36
+ if (typeof attr !== 'string') {
37
+ throw new TypeError('localStorageSync Unknown Parameter Type: ' + `Expected type of string, got ${typeof attr}`);
38
+ }
39
+ return key;
40
+ });
41
+ };
42
+ /**
43
+ * Rehydrate the state of the whole application store
44
+ * @param keys Keys of the store to rehydrate
45
+ * @param storage storage when getting the data from
46
+ * @param storageKeySerializer storage key transform function
47
+ * @param restoreDates determine if the date need to be restored
48
+ * @param logger
49
+ */
50
+ export const rehydrateApplicationState = (keys, storage, storageKeySerializer, restoreDates, logger = console) => {
51
+ return keys.reduce((acc, curr) => {
52
+ let key = curr;
53
+ let reviver = restoreDates ? dateReviver : dummyReviver;
54
+ let deserialize;
55
+ let decrypt;
56
+ let syncForFeature = false;
57
+ if (typeof key === 'object') {
58
+ key = Object.keys(key)[0];
59
+ syncForFeature = !!curr?.[key]?.syncForFeature;
60
+ // use the custom reviver function
61
+ if (typeof curr[key] === 'function') {
62
+ reviver = curr[key];
63
+ }
64
+ else {
65
+ // use custom reviver function if available
66
+ if (curr[key].reviver) {
67
+ reviver = curr[key].reviver;
68
+ }
69
+ // use custom serialize function if available
70
+ if (curr[key].deserialize) {
71
+ deserialize = curr[key].deserialize;
72
+ }
73
+ }
74
+ // Ensure that encrypt and decrypt functions are both present
75
+ if (curr[key].encrypt && curr[key].decrypt) {
76
+ if (typeof curr[key].encrypt === 'function' && typeof curr[key].decrypt === 'function') {
77
+ decrypt = curr[key].decrypt;
78
+ }
79
+ else {
80
+ logger.error(`Either encrypt or decrypt is not a function on '${curr[key]}' key object.`);
81
+ }
82
+ }
83
+ else if (curr[key].encrypt || curr[key].decrypt) {
84
+ // Let know that one of the encryption functions is not provided
85
+ logger.error(`Either encrypt or decrypt function is not present on '${curr[key]}' key object.`);
86
+ }
87
+ }
88
+ if (storage !== undefined) {
89
+ let stateSlice = storage.getItem(storageKeySerializer(key));
90
+ if (stateSlice) {
91
+ // Use provided decrypt function
92
+ if (decrypt) {
93
+ stateSlice = decrypt(stateSlice);
94
+ }
95
+ const isObjectRegex = new RegExp('{|\\[');
96
+ let raw = stateSlice;
97
+ if (stateSlice === 'null' || stateSlice === 'true' || stateSlice === 'false' || isObjectRegex.test(stateSlice.charAt(0))) {
98
+ raw = JSON.parse(stateSlice, reviver);
99
+ }
100
+ const rehydratedState = deserialize ? deserialize(raw) : raw;
101
+ return syncForFeature
102
+ ? rehydratedState
103
+ : Object.assign({}, acc, {
104
+ [key]: rehydratedState
105
+ });
106
+ }
107
+ }
108
+ return acc;
109
+ }, {});
110
+ };
111
+ // Recursively traverse all properties of the existing slice as defined by the `filter` argument,
112
+ // and output the new object with extraneous properties removed.
113
+ function createStateSlice(existingSlice, filter) {
114
+ return filter.reduce((memo, attr) => {
115
+ if (typeof attr === 'string' || typeof attr === 'number') {
116
+ const value = existingSlice?.[attr];
117
+ if (value !== undefined) {
118
+ memo[attr] = value;
119
+ }
120
+ }
121
+ else {
122
+ for (const key in attr) {
123
+ if (Object.prototype.hasOwnProperty.call(attr, key)) {
124
+ const element = attr[key];
125
+ memo[key] = createStateSlice(existingSlice[key], element);
126
+ }
127
+ }
128
+ }
129
+ return memo;
130
+ }, {});
131
+ }
132
+ /**
133
+ * Update the state of the store after reviving from storage
134
+ * Note: this function is mainly use for internal process of store synchronization
135
+ * @param state store state
136
+ * @param keys key of the store
137
+ * @param storage storage to use for the synchronization
138
+ * @param storageKeySerializer callback to serialize the store key
139
+ * @param removeOnUndefined Define if the store should be clean in the storage if undefined
140
+ * @param syncCondition callback to define if the synchronization should be process
141
+ * @param logger Logger to report messages
142
+ */
143
+ export const syncStateUpdate = (state, keys, storage, storageKeySerializer, removeOnUndefined = false, syncCondition, logger = console) => {
144
+ if (syncCondition) {
145
+ try {
146
+ if (syncCondition(state) !== true) {
147
+ return;
148
+ }
149
+ }
150
+ catch (e) {
151
+ // Treat TypeError as do not sync
152
+ if (e instanceof TypeError) {
153
+ return;
154
+ }
155
+ throw e;
156
+ }
157
+ }
158
+ keys.forEach((key) => {
159
+ let stateSlice = state?.[key];
160
+ let replacer;
161
+ let space;
162
+ let encrypt;
163
+ let syncForFeature = false;
164
+ if (typeof key === 'object') {
165
+ const name = Object.keys(key)[0];
166
+ syncForFeature = !!key?.[name]?.syncForFeature;
167
+ stateSlice = syncForFeature ? state : state?.[name];
168
+ if (typeof stateSlice !== 'undefined' && key[name]) {
169
+ // use serialize function if specified.
170
+ if (key[name].serialize) {
171
+ stateSlice = key[name].serialize(stateSlice);
172
+ }
173
+ else {
174
+ // if serialize function is not specified filter on fields if an array has been provided.
175
+ let filter;
176
+ if (key[name].reduce) {
177
+ filter = key[name];
178
+ }
179
+ else if (key[name].filter) {
180
+ filter = key[name].filter;
181
+ }
182
+ if (filter) {
183
+ stateSlice = createStateSlice(stateSlice, filter);
184
+ }
185
+ // Check if encrypt and decrypt are present, also checked at this#rehydrateApplicationState()
186
+ if (key[name].encrypt && key[name].decrypt) {
187
+ if (typeof key[name].encrypt === 'function') {
188
+ encrypt = key[name].encrypt;
189
+ }
190
+ }
191
+ else if (key[name].encrypt || key[name].decrypt) {
192
+ // If one of those is not present, then let know that one is missing
193
+ logger.error(`Either encrypt or decrypt function is not present on '${key[name]}' key object.`);
194
+ }
195
+ }
196
+ /*
197
+ Replacer and space arguments to pass to JSON.stringify.
198
+ If these fields don't exist, undefined will be passed.
199
+ */
200
+ replacer = key[name].replacer;
201
+ space = key[name].space;
202
+ }
203
+ key = name;
204
+ }
205
+ else if (typeof key === 'string') {
206
+ stateSlice = syncForFeature ? state : state?.[key];
207
+ }
208
+ if (typeof stateSlice !== 'undefined' && storage !== undefined) {
209
+ try {
210
+ if (encrypt) {
211
+ // ensure that a string message is passed
212
+ stateSlice = encrypt(typeof stateSlice === 'string' ? stateSlice : JSON.stringify(stateSlice, replacer, space));
213
+ }
214
+ storage.setItem(storageKeySerializer(key), typeof stateSlice === 'string' ? stateSlice : JSON.stringify(stateSlice, replacer, space));
215
+ }
216
+ catch (e) {
217
+ logger.warn('Unable to save state to localStorage:', e);
218
+ }
219
+ }
220
+ else if (typeof stateSlice === 'undefined' && removeOnUndefined && storage !== undefined) {
221
+ try {
222
+ storage.removeItem(storageKeySerializer(key));
223
+ }
224
+ catch (e) {
225
+ logger.warn(`Exception on removing/cleaning undefined '${key}' state`, e);
226
+ }
227
+ }
228
+ });
229
+ };
230
+ const defaultMergeReducer = (state, rehydratedState, action) => {
231
+ if ((action.type === INIT || action.type === UPDATE) && rehydratedState) {
232
+ const allKeys = Array.from(new Set([...Object.keys(state), ...Object.keys(rehydratedState)]));
233
+ state = Object.fromEntries(allKeys.map((key) => {
234
+ // No need to create new object reference if no merge is actually needed
235
+ if (!rehydratedState[key]) {
236
+ return [key, state[key]];
237
+ }
238
+ else if (state[key]) {
239
+ return [key, deepFill(state[key], rehydratedState[key])];
240
+ }
241
+ else {
242
+ return [key, rehydratedState[key]];
243
+ }
244
+ }));
245
+ }
246
+ return state;
247
+ };
248
+ /**
249
+ * Local and Session storage synchronization helper
250
+ * @param config
251
+ */
252
+ export const syncStorage = (config) => (reducer) => {
253
+ if ((config.storage === undefined && !config.checkStorageAvailability)
254
+ || (config.checkStorageAvailability && checkIsBrowserEnv())) {
255
+ config.storage = localStorage || window.localStorage;
256
+ }
257
+ if (config.storageKeySerializer === undefined) {
258
+ config.storageKeySerializer = (key) => key;
259
+ }
260
+ if (config.restoreDates === undefined) {
261
+ config.restoreDates = true;
262
+ }
263
+ // Use default merge reducer.
264
+ let mergeReducer = config.mergeReducer;
265
+ if (mergeReducer === undefined || typeof mergeReducer !== 'function') {
266
+ mergeReducer = defaultMergeReducer;
267
+ }
268
+ const logger = config.logger || console;
269
+ const stateKeys = validateStateKeys(config.keys);
270
+ const rehydratedState = config.rehydrate
271
+ ? rehydrateApplicationState(stateKeys, config.storage, config.storageKeySerializer, config.restoreDates, logger)
272
+ : undefined;
273
+ return (state, action) => {
274
+ let nextState;
275
+ // If state arrives undefined, we need to let it through the supplied reducer
276
+ // in order to get a complete state as defined by user
277
+ nextState = action.type === INIT && !state ? reducer(state, action) : { ...state };
278
+ // Merge the store state with the rehydrated state using
279
+ // either a user-defined reducer or the default.
280
+ nextState = mergeReducer(nextState, rehydratedState, action);
281
+ nextState = reducer(nextState, action);
282
+ if (action.type !== INIT) {
283
+ syncStateUpdate(nextState, (typeof config.syncKeyCondition === 'function')
284
+ ? stateKeys.filter((key) => {
285
+ const keyName = typeof key === 'object' ? Object.keys(key)[0] : key;
286
+ return config.syncKeyCondition(keyName, nextState);
287
+ })
288
+ : stateKeys, config.storage, config.storageKeySerializer, config.removeOnUndefined, config.syncCondition, logger);
289
+ }
290
+ if (config.postProcess) {
291
+ config.postProcess(nextState);
292
+ }
293
+ return nextState;
294
+ };
295
+ };
296
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1zeW5jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N5bmMtc3RvcmFnZS9zdG9yYWdlLXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLElBQUksRUFDSixNQUFNLEdBQ1AsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNMLFFBQVEsR0FDVCxNQUFNLFdBQVcsQ0FBQztBQVduQjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBWSxFQUFFLEtBQVUsRUFBRSxFQUFFO0lBQ3RELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLDRDQUE0QyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzFGLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBWSxFQUFFLEtBQVUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDO0FBRXpEOztHQUVHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLEVBQUU7SUFDN0IsT0FBTyxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUM7QUFDdkMsQ0FBQyxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLElBQWlCLEVBQUUsRUFBRTtJQUM5QyxPQUFRLElBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNqQyxJQUFJLElBQUksR0FBRyxHQUFHLENBQUM7UUFFZixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzVCLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFFRCxJQUFJ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QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSU5JVCxcbiAgVVBEQVRFLFxufSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBkZWVwRmlsbCxcbn0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB0eXBlIHtcbiAgTG9nZ2VyLFxufSBmcm9tICdAbzNyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1xuICBTdG9yYWdlS2V5Q29uZmlndXJhdGlvbixcbiAgU3RvcmFnZUtleXMsXG4gIFN5bmNTdG9yYWdlQ29uZmlnLFxuICBTeW5jU3RvcmFnZVN5bmNPcHRpb25zLFxufSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG4vKipcbiAqIFJldml2ZXIgdGhlIGRhdGUgZnJvbSBhIEpTT04gZmllbGQgaWYgdGhlIHN0cmluZyBpcyBtYXRjaGluZyBpc28gZm9ybWF0LiBSZXR1cm4gdGhlIHNhbWUgdmFsdWUgb3RoZXJ3aXNlXG4gKiBAcGFyYW0gX2tleSBKU09OIGl0ZW0ga2V5IG5hbWVcbiAqIEBwYXJhbSB2YWx1ZSBKU09OIGl0ZW0gdmFsdWVcbiAqL1xuZXhwb3J0IGNvbnN0IGRhdGVSZXZpdmVyID0gKF9rZXk6IHN0cmluZywgdmFsdWU6IGFueSkgPT4ge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAvXFxkezR9LVxcZHsyfS1cXGR7Mn1UXFxkezJ9OlxcZHsyfTpcXGR7Mn0uXFxkezN9Wi8udGVzdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn07XG5cbi8qKlxuICogRHVtbXkgcmV2aXZlciByZXR1cm5pbmcgdGhlIHZhbHVlIG9mIHRoZSBmaWVsZCBhcyBpdCBpc1xuICogQHBhcmFtIF9rZXkgSlNPTiBpdGVtIGtleSBuYW1lXG4gKiBAcGFyYW0gdmFsdWUgSlNPTiBpdGVtIHZhbHVlXG4gKi9cbmNvbnN0IGR1bW15UmV2aXZlciA9IChfa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IHZhbHVlO1xuXG4vKipcbiAqIERldGVybWluZSBpZiB0aGUgY29kZSBpcyBydW4gaW4gYSBicm93c2VyXG4gKi9cbmNvbnN0IGNoZWNrSXNCcm93c2VyRW52ID0gKCkgPT4ge1xuICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCc7XG59O1xuXG4vKipcbiAqIFZhbGlkYXRlIHRoZSBrZXlzIHN0cnVjdHVyZSBvZiB0aGUgcmVnaXN0ZXJlZCBzdG9yZXNcbiAqIEBwYXJhbSBrZXlzIG1hcCBvZiBzdG9yZSB0byBzeW5jaHJvbml6ZVxuICovXG5jb25zdCB2YWxpZGF0ZVN0YXRlS2V5cyA9IChrZXlzOiBTdG9yYWdlS2V5cykgPT4ge1xuICByZXR1cm4gKGtleXMgYXMgYW55W10pLm1hcCgoa2V5KSA9PiB7XG4gICAgbGV0IGF0dHIgPSBrZXk7XG5cbiAgICBpZiAodHlwZW9mIGtleSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGF0dHIgPSBPYmplY3Qua2V5cyhrZXkpWzBdO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgYXR0ciAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICdsb2NhbFN0b3JhZ2VTeW5jIFVua25vd24gUGFyYW1ldGVyIFR5cGU6ICcgKyBgRXhwZWN0ZWQgdHlwZSBvZiBzdHJpbmcsIGdvdCAke3R5cGVvZiBhdHRyfWBcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBrZXk7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBSZWh5ZHJhdGUgdGhlIHN0YXRlIG9mIHRoZSB3aG9sZSBhcHBsaWNhdGlvbiBzdG9yZVxuICogQHBhcmFtIGtleXMgS2V5cyBvZiB0aGUgc3RvcmUgdG8gcmVoeWRyYXRlXG4gKiBAcGFyYW0gc3RvcmFnZSBzdG9yYWdlIHdoZW4gZ2V0dGluZyB0aGUgZGF0YSBmcm9tXG4gKiBAcGFyYW0gc3RvcmFnZUtleVNlcmlhbGl6ZXIgc3RvcmFnZSBrZXkgdHJhbnNmb3JtIGZ1bmN0aW9uXG4gKiBAcGFyYW0gcmVzdG9yZURhdGVzIGRldGVybWluZSBpZiB0aGUgZGF0ZSBuZWVkIHRvIGJlIHJlc3RvcmVkXG4gKiBAcGFyYW0gbG9nZ2VyXG4gKi9cbmV4cG9ydCBjb25zdCByZWh5ZHJhdGVBcHBsaWNhdGlvblN0YXRlID0gKFxuICBrZXlzOiBTdG9yYWdlS2V5cyxcbiAgc3RvcmFnZTogU3RvcmFnZSB8IHVuZGVmaW5lZCxcbiAgc3RvcmFnZUtleVNlcmlhbGl6ZXI6IChrZXk6IHN0cmluZykgPT4gc3RyaW5nLFxuICByZXN0b3JlRGF0ZXM6IGJvb2xlYW4sXG4gIGxvZ2dlcjogTG9nZ2VyID0gY29uc29sZVxuKSA9PiB7XG4gIHJldHVybiAoa2V5cyBhcyBhbnlbXSkucmVkdWNlKChhY2MsIGN1cnIpID0+IHtcbiAgICBsZXQga2V5ID0gY3VycjtcbiAgICBsZXQgcmV2aXZlciA9IHJlc3RvcmVEYXRlcyA/IGRhdGVSZXZpdmVyIDogZHVtbXlSZXZpdmVyO1xuICAgIGxldCBkZXNlcmlhbGl6ZTogKChhcmcwOiBzdHJpbmcpID0+IGFueSkgfCB1bmRlZmluZWQ7XG4gICAgbGV0IGRlY3J5cHQ6ICgoYXJnMDogc3RyaW5nKSA9PiBzdHJpbmcpIHwgdW5kZWZpbmVkO1xuICAgIGxldCBzeW5jRm9yRmVhdHVyZSA9IGZhbHNlO1xuXG4gICAgaWYgKHR5cGVvZiBrZXkgPT09ICdvYmplY3QnKSB7XG4gICAgICBrZXkgPSBPYmplY3Qua2V5cyhrZXkpWzBdO1xuICAgICAgc3luY0ZvckZlYXR1cmUgPSAhIShjdXJyPy5ba2V5XSBhcyBTeW5jU3RvcmFnZVN5bmNPcHRpb25zKT8uc3luY0ZvckZlYXR1cmU7XG5cbiAgICAgIC8vIHVzZSB0aGUgY3VzdG9tIHJldml2ZXIgZnVuY3Rpb25cbiAgICAgIGlmICh0eXBlb2YgY3VycltrZXldID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldml2ZXIgPSBjdXJyW2tleV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyB1c2UgY3VzdG9tIHJldml2ZXIgZnVuY3Rpb24gaWYgYXZhaWxhYmxlXG4gICAgICAgIGlmIChjdXJyW2tleV0ucmV2aXZlcikge1xuICAgICAgICAgIHJldml2ZXIgPSBjdXJyW2tleV0ucmV2aXZlcjtcbiAgICAgICAgfVxuICAgICAgICAvLyB1c2UgY3VzdG9tIHNlcmlhbGl6ZSBmdW5jdGlvbiBpZiBhdmFpbGFibGVcbiAgICAgICAgaWYgKGN1cnJba2V5XS5kZXNlcmlhbGl6ZSkge1xuICAgICAgICAgIGRlc2VyaWFsaXplID0gY3VycltrZXldLmRlc2VyaWFsaXplO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEVuc3VyZSB0aGF0IGVuY3J5cHQgYW5kIGRlY3J5cHQgZnVuY3Rpb25zIGFyZSBib3RoIHByZXNlbnRcbiAgICAgIGlmIChjdXJyW2tleV0uZW5jcnlwdCAmJiBjdXJyW2tleV0uZGVjcnlwdCkge1xuICAgICAgICBpZiAodHlwZW9mIGN1cnJba2V5XS5lbmNyeXB0ID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBjdXJyW2tleV0uZGVjcnlwdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGRlY3J5cHQgPSBjdXJyW2tleV0uZGVjcnlwdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoYEVpdGhlciBlbmNyeXB0IG9yIGRlY3J5cHQgaXMgbm90IGEgZnVuY3Rpb24gb24gJyR7Y3VycltrZXldIGFzIHN0cmluZ30nIGtleSBvYmplY3QuYCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY3VycltrZXldLmVuY3J5cHQgfHwgY3VycltrZXldLmRlY3J5cHQpIHtcbiAgICAgICAgLy8gTGV0IGtub3cgdGhhdCBvbmUgb2YgdGhlIGVuY3J5cHRpb24gZnVuY3Rpb25zIGlzIG5vdCBwcm92aWRlZFxuICAgICAgICBsb2dnZXIuZXJyb3IoYEVpdGhlciBlbmNyeXB0IG9yIGRlY3J5cHQgZnVuY3Rpb24gaXMgbm90IHByZXNlbnQgb24gJyR7Y3VycltrZXldIGFzIHN0cmluZ30nIGtleSBvYmplY3QuYCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzdG9yYWdlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCBzdGF0ZVNsaWNlID0gc3RvcmFnZS5nZXRJdGVtKHN0b3JhZ2VLZXlTZXJpYWxpemVyKGtleSkpO1xuICAgICAgaWYgKHN0YXRlU2xpY2UpIHtcbiAgICAgICAgLy8gVXNlIHByb3ZpZGVkIGRlY3J5cHQgZnVuY3Rpb25cbiAgICAgICAgaWYgKGRlY3J5cHQpIHtcbiAgICAgICAgICBzdGF0ZVNsaWNlID0gZGVjcnlwdChzdGF0ZVNsaWNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlzT2JqZWN0UmVnZXggPSBuZXcgUmVnRXhwKCd7fFxcXFxbJyk7XG4gICAgICAgIGxldCByYXcgPSBzdGF0ZVNsaWNlO1xuXG4gICAgICAgIGlmIChzdGF0ZVNsaWNlID09PSAnbnVsbCcgfHwgc3RhdGVTbGljZSA9PT0gJ3RydWUnIHx8IHN0YXRlU2xpY2UgPT09ICdmYWxzZScgfHwgaXNPYmplY3RSZWdleC50ZXN0KHN0YXRlU2xpY2UuY2hhckF0KDApKSkge1xuICAgICAgICAgIHJhdyA9IEpTT04ucGFyc2Uoc3RhdGVTbGljZSwgcmV2aXZlcik7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZWh5ZHJhdGVkU3RhdGUgPSBkZXNlcmlhbGl6ZSA/IGRlc2VyaWFsaXplKHJhdykgOiByYXc7XG5cbiAgICAgICAgcmV0dXJuIHN5bmNGb3JGZWF0dXJlXG4gICAgICAgICAgPyByZWh5ZHJhdGVkU3RhdGVcbiAgICAgICAgICA6IE9iamVjdC5hc3NpZ24oe30sIGFjYywge1xuICAgICAgICAgICAgW2tleV06IHJlaHlkcmF0ZWRTdGF0ZVxuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG59O1xuXG4vLyBSZWN1cnNpdmVseSB0cmF2ZXJzZSBhbGwgcHJvcGVydGllcyBvZiB0aGUgZXhpc3Rpbmcgc2xpY2UgYXMgZGVmaW5lZCBieSB0aGUgYGZpbHRlcmAgYXJndW1lbnQsXG4vLyBhbmQgb3V0cHV0IHRoZSBuZXcgb2JqZWN0IHdpdGggZXh0cmFuZW91cyBwcm9wZXJ0aWVzIHJlbW92ZWQuXG5mdW5jdGlvbiBjcmVhdGVTdGF0ZVNsaWNlKGV4aXN0aW5nU2xpY2U6IGFueSwgZmlsdGVyOiAoc3RyaW5nIHwgbnVtYmVyIHwgU3RvcmFnZUtleUNvbmZpZ3VyYXRpb24gfCBTeW5jU3RvcmFnZVN5bmNPcHRpb25zKVtdKSB7XG4gIHJldHVybiBmaWx0ZXIucmVkdWNlKFxuICAgIChtZW1vOiB7IFt4OiBzdHJpbmddOiBhbnk7W3g6IG51bWJlcl06IGFueSB9LCBhdHRyOiBzdHJpbmcgfCBudW1iZXIgfCBTdG9yYWdlS2V5Q29uZmlndXJhdGlvbiB8IFN5bmNTdG9yYWdlU3luY09wdGlvbnMpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgYXR0ciA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGF0dHIgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZXhpc3RpbmdTbGljZT8uW2F0dHJdO1xuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG1lbW9bYXR0cl0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gYXR0cikge1xuICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYXR0ciwga2V5KSkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudDogYW55ID0gYXR0cltrZXkgYXMga2V5b2YgdHlwZW9mIGF0dHJdO1xuICAgICAgICAgICAgbWVtb1trZXldID0gY3JlYXRlU3RhdGVTbGljZShleGlzdGluZ1NsaWNlW2tleV0sIGVsZW1lbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG1lbW87XG4gICAgfSxcbiAgICB7fVxuICApO1xufVxuXG4vKipcbiAqIFVwZGF0ZSB0aGUgc3RhdGUgb2YgdGhlIHN0b3JlIGFmdGVyIHJldml2aW5nIGZyb20gc3RvcmFnZVxuICogTm90ZTogdGhpcyBmdW5jdGlvbiBpcyBtYWlubHkgdXNlIGZvciBpbnRlcm5hbCBwcm9jZXNzIG9mIHN0b3JlIHN5bmNocm9uaXphdGlvblxuICogQHBhcmFtIHN0YXRlIHN0b3JlIHN0YXRlXG4gKiBAcGFyYW0ga2V5cyBrZXkgb2YgdGhlIHN0b3JlXG4gKiBAcGFyYW0gc3RvcmFnZSBzdG9yYWdlIHRvIHVzZSBmb3IgdGhlIHN5bmNocm9uaXphdGlvblxuICogQHBhcmFtIHN0b3JhZ2VLZXlTZXJpYWxpemVyIGNhbGxiYWNrIHRvIHNlcmlhbGl6ZSB0aGUgc3RvcmUga2V5XG4gKiBAcGFyYW0gcmVtb3ZlT25VbmRlZmluZWQgRGVmaW5lIGlmIHRoZSBzdG9yZSBzaG91bGQgYmUgY2xlYW4gaW4gdGhlIHN0b3JhZ2UgaWYgdW5kZWZpbmVkXG4gKiBAcGFyYW0gc3luY0NvbmRpdGlvbiBjYWxsYmFjayB0byBkZWZpbmUgaWYgdGhlIHN5bmNocm9uaXphdGlvbiBzaG91bGQgYmUgcHJvY2Vzc1xuICogQHBhcmFtIGxvZ2dlciBMb2dnZXIgdG8gcmVwb3J0IG1lc3NhZ2VzXG4gKi9cbmV4cG9ydCBjb25zdCBzeW5jU3RhdGVVcGRhdGUgPSAoXG4gIHN0YXRlOiBhbnksXG4gIGtleXM6IFN0b3JhZ2VLZXlzLFxuICBzdG9yYWdlOiBTdG9yYWdlIHwgdW5kZWZpbmVkLFxuICBzdG9yYWdlS2V5U2VyaWFsaXplcjogKGtleTogc3RyaW5nIHwgbnVtYmVyKSA9PiBzdHJpbmcsXG4gIHJlbW92ZU9uVW5kZWZpbmVkID0gZmFsc2UsXG4gIHN5bmNDb25kaXRpb24/OiAoc3RhdGU6IGFueSkgPT4gYW55LFxuICBsb2dnZXI6IExvZ2dlciA9IGNvbnNvbGVcbikgPT4ge1xuICBpZiAoc3luY0NvbmRpdGlvbikge1xuICAgIHRyeSB7XG4gICAgICBpZiAoc3luY0NvbmRpdGlvbihzdGF0ZSkgIT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIFRyZWF0IFR5cGVFcnJvciBhcyBkbyBub3Qgc3luY1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICBrZXlzLmZvckVhY2goKGtleTogc3RyaW5nIHwgU3RvcmFnZUtleUNvbmZpZ3VyYXRpb24gfCBTeW5jU3RvcmFnZVN5bmNPcHRpb25zIHwgKChrZXk6IHN0cmluZywgdmFsdWU6IGFueSkgPT4gYW55KSk6IHZvaWQgPT4ge1xuICAgIGxldCBzdGF0ZVNsaWNlID0gc3RhdGU/LltrZXkgYXMgc3RyaW5nXTtcbiAgICBsZXQgcmVwbGFjZXI7XG4gICAgbGV0IHNwYWNlOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgbGV0IGVuY3J5cHQ7XG4gICAgbGV0IHN5bmNGb3JGZWF0dXJlID0gZmFsc2U7XG5cbiAgICBpZiAodHlwZW9mIGtleSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGNvbnN0IG5hbWUgPSAoT2JqZWN0LmtleXMoa2V5KSBhcyAoa2V5b2YgdHlwZW9mIGtleSlbXSlbMF07XG4gICAgICBzeW5jRm9yRmVhdHVyZSA9ICEhKGtleT8uW25hbWVdIGFzIFN5bmNTdG9yYWdlU3luY09wdGlvbnMpPy5zeW5jRm9yRmVhdHVyZTtcbiAgICAgIHN0YXRlU2xpY2UgPSBzeW5jRm9yRmVhdHVyZSA/IHN0YXRlIDogc3RhdGU/LltuYW1lXTtcblxuICAgICAgaWYgKHR5cGVvZiBzdGF0ZVNsaWNlICE9PSAndW5kZWZpbmVkJyAmJiBrZXlbbmFtZV0pIHtcbiAgICAgICAgLy8gdXNlIHNlcmlhbGl6ZSBmdW5jdGlvbiBpZiBzcGVjaWZpZWQuXG4gICAgICAgIGlmICgoa2V5W25hbWVdIGFzIGFueSkuc2VyaWFsaXplKSB7XG4gICAgICAgICAgc3RhdGVTbGljZSA9IChrZXlbbmFtZV0gYXMgU3luY1N0b3JhZ2VTeW5jT3B0aW9ucykuc2VyaWFsaXplIShzdGF0ZVNsaWNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBpZiBzZXJpYWxpemUgZnVuY3Rpb24gaXMgbm90IHNwZWNpZmllZCBmaWx0ZXIgb24gZmllbGRzIGlmIGFuIGFycmF5IGhhcyBiZWVuIHByb3ZpZGVkLlxuICAgICAgICAgIGxldCBmaWx0ZXI6IFN0b3JhZ2VLZXlDb25maWd1cmF0aW9uW10gfCB1bmRlZmluZWQ7XG4gICAgICAgICAgaWYgKChrZXlbbmFtZV0gYXMgYW55KS5yZWR1Y2UpIHtcbiAgICAgICAgICAgIGZpbHRlciA9IGtleVtuYW1lXSBhcyBTdG9yYWdlS2V5Q29uZmlndXJhdGlvbltdO1xuICAgICAgICAgIH0gZWxzZSBpZiAoKGtleVtuYW1lXSBhcyBhbnkpLmZpbHRlcikge1xuICAgICAgICAgICAgZmlsdGVyID0gKGtleVtuYW1lXSBhcyBhbnkpLmZpbHRlciBhcyBTdG9yYWdlS2V5Q29uZmlndXJhdGlvbltdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZmlsdGVyKSB7XG4gICAgICAgICAgICBzdGF0ZVNsaWNlID0gY3JlYXRlU3RhdGVTbGljZShzdGF0ZVNsaWNlLCBmaWx0ZXIpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIENoZWNrIGlmIGVuY3J5cHQgYW5kIGRlY3J5cHQgYXJlIHByZXNlbnQsIGFsc28gY2hlY2tlZCBhdCB0aGlzI3JlaHlkcmF0ZUFwcGxpY2F0aW9uU3RhdGUoKVxuICAgICAgICAgIGlmICgoa2V5W25hbWVdIGFzIGFueSkuZW5jcnlwdCAmJiAoa2V5W25hbWVdIGFzIGFueSkuZGVjcnlwdCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiAoa2V5W25hbWVdIGFzIGFueSkuZW5jcnlwdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICBlbmNyeXB0ID0gKGtleVtuYW1lXSBhcyBhbnkpLmVuY3J5cHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICgoa2V5W25hbWVdIGFzIGFueSkuZW5jcnlwdCB8fCAoa2V5W25hbWVdIGFzIGFueSkuZGVjcnlwdCkge1xuICAgICAgICAgICAgLy8gSWYgb25lIG9mIHRob3NlIGlzIG5vdCBwcmVzZW50LCB0aGVuIGxldCBrbm93IHRoYXQgb25lIGlzIG1pc3NpbmdcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgICAgYEVpdGhlciBlbmNyeXB0IG9yIGRlY3J5cHQgZnVuY3Rpb24gaXMgbm90IHByZXNlbnQgb24gJyR7a2V5W25hbWVdIGFzIHN0cmluZ30nIGtleSBvYmplY3QuYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKlxuICAgICAgICAgIFJlcGxhY2VyIGFuZCBzcGFjZSBhcmd1bWVudHMgdG8gcGFzcyB0byBKU09OLnN0cmluZ2lmeS5cbiAgICAgICAgICBJZiB0aGVzZSBmaWVsZHMgZG9uJ3QgZXhpc3QsIHVuZGVmaW5lZCB3aWxsIGJlIHBhc3NlZC5cbiAgICAgICAgKi9cbiAgICAgICAgcmVwbGFjZXIgPSAoa2V5W25hbWVdIGFzIGFueSkucmVwbGFjZXI7XG4gICAgICAgIHNwYWNlID0gKGtleVtuYW1lXSBhcyBhbnkpLnNwYWNlO1xuICAgICAgfVxuXG4gICAgICBrZXkgPSBuYW1lO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHN0YXRlU2xpY2UgPSBzeW5jRm9yRmVhdHVyZSA/IHN0YXRlIDogc3RhdGU/LltrZXldO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygc3RhdGVTbGljZSAhPT0gJ3VuZGVmaW5lZCcgJiYgc3RvcmFnZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoZW5jcnlwdCkge1xuICAgICAgICAgIC8vIGVuc3VyZSB0aGF0IGEgc3RyaW5nIG1lc3NhZ2UgaXMgcGFzc2VkXG4gICAgICAgICAgc3RhdGVTbGljZSA9IGVuY3J5cHQoXG4gICAgICAgICAgICB0eXBlb2Ygc3RhdGVTbGljZSA9PT0gJ3N0cmluZycgPyBzdGF0ZVNsaWNlIDogSlNPTi5zdHJpbmdpZnkoc3RhdGVTbGljZSwgcmVwbGFjZXIsIHNwYWNlKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgc3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICAgIHN0b3JhZ2VLZXlTZXJpYWxpemVyKGtleSBhcyBzdHJpbmcpLFxuICAgICAgICAgIHR5cGVvZiBzdGF0ZVNsaWNlID09PSAnc3RyaW5nJyA/IHN0YXRlU2xpY2UgOiBKU09OLnN0cmluZ2lmeShzdGF0ZVNsaWNlLCByZXBsYWNlciwgc3BhY2UpXG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGxvZ2dlci53YXJuKCdVbmFibGUgdG8gc2F2ZSBzdGF0ZSB0byBsb2NhbFN0b3JhZ2U6JywgZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygc3RhdGVTbGljZSA9PT0gJ3VuZGVmaW5lZCcgJiYgcmVtb3ZlT25VbmRlZmluZWQgJiYgc3RvcmFnZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBzdG9yYWdlLnJlbW92ZUl0ZW0oc3RvcmFnZUtleVNlcmlhbGl6ZXIoa2V5IGFzIHN0cmluZykpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBsb2dnZXIud2FybihgRXhjZXB0aW9uIG9uIHJlbW92aW5nL2NsZWFuaW5nIHVuZGVmaW5lZCAnJHtrZXkgYXMgc3RyaW5nfScgc3RhdGVgLCBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufTtcblxuY29uc3QgZGVmYXVsdE1lcmdlUmVkdWNlciA9IChzdGF0ZTogYW55LCByZWh5ZHJhdGVkU3RhdGU6IGFueSwgYWN0aW9uOiBhbnkpID0+IHtcbiAgaWYgKChhY3Rpb24udHlwZSA9PT0gSU5JVCB8fCBhY3Rpb24udHlwZSA9PT0gVVBEQVRFKSAmJiByZWh5ZHJhdGVkU3RhdGUpIHtcbiAgICBjb25zdCBhbGxLZXlzID0gQXJyYXkuZnJvbShuZXcgU2V0KFsuLi5PYmplY3Qua2V5cyhzdGF0ZSksIC4uLk9iamVjdC5rZXlzKHJlaHlkcmF0ZWRTdGF0ZSldKSk7XG4gICAgc3RhdGUgPSBPYmplY3QuZnJvbUVudHJpZXMoYWxsS2V5cy5tYXAoKGtleSkgPT4ge1xuICAgICAgLy8gTm8gbmVlZCB0byBjcmVhdGUgbmV3IG9iamVjdCByZWZlcmVuY2UgaWYgbm8gbWVyZ2UgaXMgYWN0dWFsbHkgbmVlZGVkXG4gICAgICBpZiAoIXJlaHlkcmF0ZWRTdGF0ZVtrZXldKSB7XG4gICAgICAgIHJldHVybiBba2V5LCBzdGF0ZVtrZXldXTtcbiAgICAgIH0gZWxzZSBpZiAoc3RhdGVba2V5XSkge1xuICAgICAgICByZXR1cm4gW2tleSwgZGVlcEZpbGwoc3RhdGVba2V5XSwgcmVoeWRyYXRlZFN0YXRlW2tleV0pXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBba2V5LCByZWh5ZHJhdGVkU3RhdGVba2V5XV07XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlO1xufTtcblxuLyoqXG4gKiBMb2NhbCBhbmQgU2Vzc2lvbiBzdG9yYWdlIHN5bmNocm9uaXphdGlvbiBoZWxwZXJcbiAqIEBwYXJhbSBjb25maWdcbiAqL1xuZXhwb3J0IGNvbnN0IHN5bmNTdG9yYWdlID0gKGNvbmZpZzogU3luY1N0b3JhZ2VDb25maWcpID0+IChyZWR1Y2VyOiBhbnkpID0+IHtcbiAgaWYgKFxuICAgIChjb25maWcuc3RvcmFnZSA9PT0gdW5kZWZpbmVkICYmICFjb25maWcuY2hlY2tTdG9yYWdlQXZhaWxhYmlsaXR5KVxuICAgIHx8IChjb25maWcuY2hlY2tTdG9yYWdlQXZhaWxhYmlsaXR5ICYmIGNoZWNrSXNCcm93c2VyRW52KCkpXG4gICkge1xuICAgIGNvbmZpZy5zdG9yYWdlID0gbG9jYWxTdG9yYWdlIHx8IHdpbmRvdy5sb2NhbFN0b3JhZ2U7XG4gIH1cblxuICBpZiAoY29uZmlnLnN0b3JhZ2VLZXlTZXJpYWxpemVyID09PSB1bmRlZmluZWQpIHtcbiAgICBjb25maWcuc3RvcmFnZUtleVNlcmlhbGl6ZXIgPSAoa2V5KSA9PiBrZXk7XG4gIH1cblxuICBpZiAoY29uZmlnLnJlc3RvcmVEYXRlcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY29uZmlnLnJlc3RvcmVEYXRlcyA9IHRydWU7XG4gIH1cblxuICAvLyBVc2UgZGVmYXVsdCBtZXJnZSByZWR1Y2VyLlxuICBsZXQgbWVyZ2VSZWR1Y2VyID0gY29uZmlnLm1lcmdlUmVkdWNlcjtcblxuICBpZiAobWVyZ2VSZWR1Y2VyID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIG1lcmdlUmVkdWNlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIG1lcmdlUmVkdWNlciA9IGRlZmF1bHRNZXJnZVJlZHVjZXI7XG4gIH1cblxuICBjb25zdCBsb2dnZXIgPSBjb25maWcubG9nZ2VyIHx8IGNvbnNvbGU7XG5cbiAgY29uc3Qgc3RhdGVLZXlzID0gdmFsaWRhdGVTdGF0ZUtleXMoY29uZmlnLmtleXMpO1xuICBjb25zdCByZWh5ZHJhdGVkU3RhdGUgPSBjb25maWcucmVoeWRyYXRlXG4gICAgPyByZWh5ZHJhdGVBcHBsaWNhdGlvblN0YXRlKHN0YXRlS2V5cywgY29uZmlnLnN0b3JhZ2UsIGNvbmZpZy5zdG9yYWdlS2V5U2VyaWFsaXplciwgY29uZmlnLnJlc3RvcmVEYXRlcywgbG9nZ2VyKVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiAoc3RhdGU6IGFueSwgYWN0aW9uOiBhbnkpID0+IHtcbiAgICBsZXQgbmV4dFN0YXRlOiBhbnk7XG5cbiAgICAvLyBJZiBzdGF0ZSBhcnJpdmVzIHVuZGVmaW5lZCwgd2UgbmVlZCB0byBsZXQgaXQgdGhyb3VnaCB0aGUgc3VwcGxpZWQgcmVkdWNlclxuICAgIC8vIGluIG9yZGVyIHRvIGdldCBhIGNvbXBsZXRlIHN0YXRlIGFzIGRlZmluZWQgYnkgdXNlclxuICAgIG5leHRTdGF0ZSA9IGFjdGlvbi50eXBlID09PSBJTklUICYmICFzdGF0ZSA/IHJlZHVjZXIoc3RhdGUsIGFjdGlvbikgOiB7IC4uLnN0YXRlIH07XG5cbiAgICAvLyBNZXJnZSB0aGUgc3RvcmUgc3RhdGUgd2l0aCB0aGUgcmVoeWRyYXRlZCBzdGF0ZSB1c2luZ1xuICAgIC8vIGVpdGhlciBhIHVzZXItZGVmaW5lZCByZWR1Y2VyIG9yIHRoZSBkZWZhdWx0LlxuICAgIG5leHRTdGF0ZSA9IG1lcmdlUmVkdWNlcihuZXh0U3RhdGUsIHJlaHlkcmF0ZWRTdGF0ZSwgYWN0aW9uKTtcblxuICAgIG5leHRTdGF0ZSA9IHJlZHVjZXIobmV4dFN0YXRlLCBhY3Rpb24pO1xuXG4gICAgaWYgKGFjdGlvbi50eXBlICE9PSBJTklUKSB7XG4gICAgICBzeW5jU3RhdGVVcGRhdGUoXG4gICAgICAgIG5leHRTdGF0ZSxcbiAgICAgICAgKHR5cGVvZiBjb25maWcuc3luY0tleUNvbmRpdGlvbiA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgICA/IHN0YXRlS2V5cy5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5TmFtZSA9IHR5cGVvZiBrZXkgPT09ICdvYmplY3QnID8gT2JqZWN0LmtleXMoa2V5KVswXSA6IGtleTtcbiAgICAgICAgICAgIHJldHVybiBjb25maWcuc3luY0tleUNvbmRpdGlvbiEoa2V5TmFtZSwgbmV4dFN0YXRlKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIDogc3RhdGVLZXlzLFxuICAgICAgICBjb25maWcuc3RvcmFnZSxcbiAgICAgICAgY29uZmlnLnN0b3JhZ2VLZXlTZXJpYWxpemVyIGFzIChrZXk6IHN0cmluZyB8IG51bWJlcikgPT4gc3RyaW5nLFxuICAgICAgICBjb25maWcucmVtb3ZlT25VbmRlZmluZWQsXG4gICAgICAgIGNvbmZpZy5zeW5jQ29uZGl0aW9uLFxuICAgICAgICBsb2dnZXJcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChjb25maWcucG9zdFByb2Nlc3MpIHtcbiAgICAgIGNvbmZpZy5wb3N0UHJvY2VzcyhuZXh0U3RhdGUpO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dFN0YXRlO1xuICB9O1xufTtcbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@o3r/store-sync",
3
- "version": "12.1.0-prerelease.10",
3
+ "version": "12.1.0-prerelease.12",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -13,14 +13,14 @@
13
13
  "otter-module"
14
14
  ],
15
15
  "peerDependencies": {
16
- "@ama-sdk/core": "^12.1.0-prerelease.10",
16
+ "@ama-sdk/core": "^12.1.0-prerelease.12",
17
17
  "@angular-devkit/core": "^19.0.0",
18
18
  "@angular-devkit/schematics": "^19.0.0",
19
19
  "@ngrx/entity": "^19.0.0",
20
20
  "@ngrx/store": "^19.0.0",
21
- "@o3r/core": "^12.1.0-prerelease.10",
22
- "@o3r/logger": "^12.1.0-prerelease.10",
23
- "@o3r/schematics": "^12.1.0-prerelease.10",
21
+ "@o3r/core": "^12.1.0-prerelease.12",
22
+ "@o3r/logger": "^12.1.0-prerelease.12",
23
+ "@o3r/schematics": "^12.1.0-prerelease.12",
24
24
  "@schematics/angular": "^19.0.0",
25
25
  "fast-deep-equal": "^3.1.3",
26
26
  "rxjs": "^7.8.1",
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../schematics/ng-add/schema.ts"],"names":[],"mappings":""}