@o3r/store-sync 11.6.0-prerelease.2 → 11.6.0-prerelease.20

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/core/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export * from './interfaces';
2
- export * from './storage-sync.helpers';
3
2
  export * from './storage-sync';
3
+ export * from './storage-sync.helpers';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/core/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,IAAI,EAAE,oBAAoB,EAAE,CAAC;IAC7B,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yGAAyG;IACzG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0FAA0F;IAC1F,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG;IACpD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC9C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC;IACjF,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,sCAAsC;AACtC,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG,uBAAuB,CAAC;AAE7E;;;GAGG;AACH,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,kBAAkB,EAAE,aAAa,GAAG,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/core/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACX,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EACV,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,IAAI,EAAE,oBAAoB,EAAE,CAAC;IAC7B,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yGAAyG;IACzG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0FAA0F;IAC1F,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG;IACpD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC9C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC;IACjF,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,sCAAsC;AACtC,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG,uBAAuB,CAAC;AAE7E;;;GAGG;AACH,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,kBAAkB,EAAE,aAAa,GAAG,kBAAkB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage-sync.d.ts","sourceRoot":"","sources":["../../src/core/storage-sync.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,cAAc,CAAC;AAGrD,OAAO,EAAC,6BAA6B,EAAC,MAAM,cAAc,CAAC;AAE3D;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAA0B;IACrE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IAElD,OAAO,EAAE,kBAAkB,CAAC;gBAEvB,OAAO,CAAC,EAAE,6BAA6B,EAAE,YAAY,CAAC,EAAE;QAAC,gBAAgB,EAAE,OAAO,CAAA;KAAC;IAkB/F;;;;;;;OAOG;IACH,SAAgB,YAAY,UAAW,GAAG,mBAAmB,GAAG,UAAU,GAAG,SAiB3E;IAEF;;OAEG;IACI,gBAAgB,kBAQJ,GAAG,sCAqCpB;CACH"}
1
+ {"version":3,"file":"storage-sync.d.ts","sourceRoot":"","sources":["../../src/core/storage-sync.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,kBAAkB,EACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,6BAA6B,EAC9B,MAAM,cAAc,CAAC;AAOtB;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAA0B;IACrE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IAElD,OAAO,EAAE,kBAAkB,CAAC;gBAEvB,OAAO,CAAC,EAAE,6BAA6B,EAAE,YAAY,CAAC,EAAE;QAAE,gBAAgB,EAAE,OAAO,CAAA;KAAE;IAoBjG;;;;;;;OAOG;IACH,SAAgB,YAAY,UAAW,GAAG,mBAAmB,GAAG,UAAU,GAAG,SAe3E;IAEF;;OAEG;IACI,gBAAgB,kBAQJ,GAAG,sCAoCpB;CACH"}
@@ -1,6 +1,6 @@
1
1
  import type { Serializer } from '@o3r/core';
2
- import type { StorageSyncOptions } from './interfaces';
3
2
  import type { SyncStorageConfig } from '../sync-storage';
3
+ import type { StorageSyncOptions } from './interfaces';
4
4
  /**
5
5
  * Defines if an object is a Serializer
6
6
  * @param obj Object to test
@@ -1 +1 @@
1
- {"version":3,"file":"storage-sync.helpers.d.ts","sourceRoot":"","sources":["../../src/core/storage-sync.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,YAAY,QAAS,GAAG,KAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAA4F,CAAC;AAE1J;;GAEG;AACH,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,eAAe;aACjB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;aAAnB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;0DACzB,CAAC;AAEN;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,YAAa,kBAAkB,KAAG,OAAO,IAAI,iBAA2E,CAAC"}
1
+ {"version":3,"file":"storage-sync.helpers.d.ts","sourceRoot":"","sources":["../../src/core/storage-sync.helpers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,UAAU,EACX,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EACV,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACV,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAEtB;;;;GAIG;AACH,eAAO,MAAM,YAAY,QAAS,GAAG,KAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAA4F,CAAC;AAE1J;;GAEG;AACH,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,eAAe;aACjB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;aAAnB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;0DACzB,CAAC;AAEN;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,YAAa,kBAAkB,KAAG,OAAO,IAAI,iBAA2E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"deep-fill.d.ts","sourceRoot":"","sources":["../../src/deep-fill/deep-fill.ts"],"names":[],"mappings":"AAcA;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG,CAAC,CAE1G"}
1
+ {"version":3,"file":"deep-fill.d.ts","sourceRoot":"","sources":["../../src/deep-fill/deep-fill.ts"],"names":[],"mappings":"AAmBA;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG,CAAC,CAE1G"}
@@ -1,4 +1,4 @@
1
1
  export * from './interfaces';
2
- export * from './storage-sync.helpers';
3
2
  export * from './storage-sync';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yYWdlLXN5bmMuaGVscGVycyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JhZ2Utc3luYyc7XG4iXX0=
3
+ export * from './storage-sync.helpers';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yYWdlLXN5bmMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yYWdlLXN5bmMuaGVscGVycyc7XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VyaWFsaXplciB9IGZyb20gJ0BvM3IvY29yZSc7XG5pbXBvcnQgdHlwZSB7IFN5bmNTdG9yYWdlQ29uZmlnIH0gZnJvbSAnLi4vc3luYy1zdG9yYWdlJztcblxuLyoqXG4gKiBGb3JtYXQgb2YgYSBrZXkgaW4gYFN0b3JlU3luY0NvbmZpZ2BcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yZVN5bmNTZXJpYWxpemVycyB7XG4gIFtzdG9yZU5hbWU6IHN0cmluZ106IFNlcmlhbGl6ZXI8YW55Pjtcbn1cblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24gYXR0cmlidXRlcyB0byBib290c3RyYXAgYHN0b3JlU3luY01ldGFSZWR1Y2VyYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JlU3luY0NvbmZpZyB7XG4gIC8qKiBTdGF0ZSBrZXlzIHRvIHN5bmMgd2l0aCBzdG9yYWdlICovXG4gIGtleXM6IFN0b3JlU3luY1NlcmlhbGl6ZXJzW107XG4gIC8qKiBQdWxsIGluaXRpYWwgc3RhdGUgZnJvbSBzdG9yYWdlIG9uIHN0YXJ0dXAgKi9cbiAgcmVoeWRyYXRlPzogYm9vbGVhbjtcbiAgLyoqIFNwZWNpZnkgYW4gb2JqZWN0IHRoYXQgY29uZm9ybXMgdG8gdGhlIFN0b3JhZ2UgaW50ZXJmYWNlIHRvIHVzZSwgdGhpcyB3aWxsIGRlZmF1bHQgdG8gbG9jYWxTdG9yYWdlICovXG4gIHN0b3JhZ2U/OiBTdG9yYWdlO1xuICAvKiogV2hlbiBzZXQsIHN5bmMgdG8gc3RvcmFnZSB3aWxsIG9ubHkgb2NjdXIgd2hlbiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgYSB0cnVlIGJvb2xlYW4gKi9cbiAgc3luY0NvbmRpdGlvbj86IChzdGF0ZTogYW55KSA9PiBhbnk7XG59XG5cbi8qKlxuICogVHlwaW5ncyBmb3IgYXN5bmMgc3RvcmFnZVxuICovXG5leHBvcnQgdHlwZSBBc3luY1N0b3JhZ2UgPSBPbWl0PFN0b3JhZ2UsICdnZXRJdGVtJz4gJiB7XG4gIGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+O1xufTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBhc3luYyBzdG9yYWdlIHN5bmNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3luY1N0b3JhZ2VTeW5jT3B0aW9ucyBleHRlbmRzIE9taXQ8U3luY1N0b3JhZ2VDb25maWcsICdzdG9yYWdlJz4ge1xuICBzdG9yYWdlPzogQXN5bmNTdG9yYWdlO1xufVxuXG4vKiogT3B0aW9ucyBmb3Igc3RvcmFnZSBzeW5jIG1ldGhvZCAqL1xuZXhwb3J0IHR5cGUgU3RvcmFnZVN5bmNPcHRpb25zID0gU3luY1N0b3JhZ2VDb25maWcgfCBBc3luY1N0b3JhZ2VTeW5jT3B0aW9ucztcblxuLyoqXG4gKiBPcHRpb25zIHRoYXQgY2FuIGJlIHNldCBvbiB0aGUgU3RvcmFnZSBzeW5jIGNvbnN0cnVjdG9yXG4gKiBwb3N0UHJvY2VzcyBhbmQgc3luY0tleUNvbmRpdGlvbiB3aWxsIGJlIGhhbmRsZWQgYnkgdGhlIFN0b3JhZ2VTeW5jIGNsYXNzIGlmIHNtYXJ0IHN5bmMgaXMgYWN0aXZhdGVkXG4gKi9cbmV4cG9ydCB0eXBlIFN0b3JhZ2VTeW5jQ29uc3RydWN0b3JPcHRpb25zID0gT21pdDxTdG9yYWdlU3luY09wdGlvbnMsICdwb3N0UHJvY2VzcycgfCAnc3luY0tleUNvbmRpdGlvbic+O1xuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgU2VyaWFsaXplcixcbn0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB0eXBlIHtcbiAgU3luY1N0b3JhZ2VDb25maWcsXG59IGZyb20gJy4uL3N5bmMtc3RvcmFnZSc7XG5cbi8qKlxuICogRm9ybWF0IG9mIGEga2V5IGluIGBTdG9yZVN5bmNDb25maWdgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmVTeW5jU2VyaWFsaXplcnMge1xuICBbc3RvcmVOYW1lOiBzdHJpbmddOiBTZXJpYWxpemVyPGFueT47XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGF0dHJpYnV0ZXMgdG8gYm9vdHN0cmFwIGBzdG9yZVN5bmNNZXRhUmVkdWNlcmBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yZVN5bmNDb25maWcge1xuICAvKiogU3RhdGUga2V5cyB0byBzeW5jIHdpdGggc3RvcmFnZSAqL1xuICBrZXlzOiBTdG9yZVN5bmNTZXJpYWxpemVyc1tdO1xuICAvKiogUHVsbCBpbml0aWFsIHN0YXRlIGZyb20gc3RvcmFnZSBvbiBzdGFydHVwICovXG4gIHJlaHlkcmF0ZT86IGJvb2xlYW47XG4gIC8qKiBTcGVjaWZ5IGFuIG9iamVjdCB0aGF0IGNvbmZvcm1zIHRvIHRoZSBTdG9yYWdlIGludGVyZmFjZSB0byB1c2UsIHRoaXMgd2lsbCBkZWZhdWx0IHRvIGxvY2FsU3RvcmFnZSAqL1xuICBzdG9yYWdlPzogU3RvcmFnZTtcbiAgLyoqIFdoZW4gc2V0LCBzeW5jIHRvIHN0b3JhZ2Ugd2lsbCBvbmx5IG9jY3VyIHdoZW4gdGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgdHJ1ZSBib29sZWFuICovXG4gIHN5bmNDb25kaXRpb24/OiAoc3RhdGU6IGFueSkgPT4gYW55O1xufVxuXG4vKipcbiAqIFR5cGluZ3MgZm9yIGFzeW5jIHN0b3JhZ2VcbiAqL1xuZXhwb3J0IHR5cGUgQXN5bmNTdG9yYWdlID0gT21pdDxTdG9yYWdlLCAnZ2V0SXRlbSc+ICYge1xuICBnZXRJdGVtKGtleTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPjtcbn07XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYXN5bmMgc3RvcmFnZSBzeW5jXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXN5bmNTdG9yYWdlU3luY09wdGlvbnMgZXh0ZW5kcyBPbWl0PFN5bmNTdG9yYWdlQ29uZmlnLCAnc3RvcmFnZSc+IHtcbiAgc3RvcmFnZT86IEFzeW5jU3RvcmFnZTtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHN0b3JhZ2Ugc3luYyBtZXRob2QgKi9cbmV4cG9ydCB0eXBlIFN0b3JhZ2VTeW5jT3B0aW9ucyA9IFN5bmNTdG9yYWdlQ29uZmlnIHwgQXN5bmNTdG9yYWdlU3luY09wdGlvbnM7XG5cbi8qKlxuICogT3B0aW9ucyB0aGF0IGNhbiBiZSBzZXQgb24gdGhlIFN0b3JhZ2Ugc3luYyBjb25zdHJ1Y3RvclxuICogcG9zdFByb2Nlc3MgYW5kIHN5bmNLZXlDb25kaXRpb24gd2lsbCBiZSBoYW5kbGVkIGJ5IHRoZSBTdG9yYWdlU3luYyBjbGFzcyBpZiBzbWFydCBzeW5jIGlzIGFjdGl2YXRlZFxuICovXG5leHBvcnQgdHlwZSBTdG9yYWdlU3luY0NvbnN0cnVjdG9yT3B0aW9ucyA9IE9taXQ8U3RvcmFnZVN5bmNPcHRpb25zLCAncG9zdFByb2Nlc3MnIHwgJ3N5bmNLZXlDb25kaXRpb24nPjtcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { createAction, props } from '@ngrx/store';
1
+ import { createAction, props, } from '@ngrx/store';
2
2
  /**
3
3
  * Defines if an object is a Serializer
4
4
  * @param obj Object to test
@@ -19,4 +19,4 @@ export const rehydrateAction = createAction(REHYDRATE_ACTION_LABEL, props());
19
19
  * @returns in case the storage used is a non-async storage
20
20
  */
21
21
  export const isLocalStorageConfig = (options) => !options.storage || options.storage instanceof Storage;
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1zeW5jLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9zdG9yYWdlLXN5bmMuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUlsRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBUSxFQUEwQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLFFBQVEsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7QUFFMUo7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyx1QkFBdUIsQ0FBQztBQUU5RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxFQUVyRSxDQUFDLENBQUM7QUFFTjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxPQUEyQixFQUFnQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLFlBQVksT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTZXJpYWxpemVyIH0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZUFjdGlvbiwgcHJvcHMgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgdHlwZSB7IFN0b3JhZ2VTeW5jT3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgdHlwZSB7IFN5bmNTdG9yYWdlQ29uZmlnIH0gZnJvbSAnLi4vc3luYy1zdG9yYWdlJztcblxuLyoqXG4gKiBEZWZpbmVzIGlmIGFuIG9iamVjdCBpcyBhIFNlcmlhbGl6ZXJcbiAqIEBwYXJhbSBvYmogT2JqZWN0IHRvIHRlc3RcbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIG9iamVjdCBpcyBhIFNlcmlhbGl6ZXJcbiAqL1xuZXhwb3J0IGNvbnN0IGlzU2VyaWFsaXplciA9IChvYmo6IGFueSk6IG9iaiBpcyBTZXJpYWxpemVyPGFueT4gPT4gISEob2JqLnNlcmlhbGl6ZSB8fCBvYmouZGVzZXJpYWxpemUgfHwgb2JqLnJldml2ZXIgfHwgb2JqLnJlcGxhY2VyIHx8IG9iai5pbml0aWFsU3RhdGUpO1xuXG4vKipcbiAqIExhYmVsIG9mIHRoZSBhY3Rpb24gdG8gcmVoeWRyYXRlIHRoZSBzdG9yZVxuICovXG5leHBvcnQgY29uc3QgUkVIWURSQVRFX0FDVElPTl9MQUJFTCA9ICdbc3RvcmVTeW5jXSByZWh5ZHJhdGUnO1xuXG4vKipcbiAqIEFjdGlvbiB0byByZWh5ZHJhdGUgdGhlIHN0b3JlXG4gKi9cbmV4cG9ydCBjb25zdCByZWh5ZHJhdGVBY3Rpb24gPSBjcmVhdGVBY3Rpb24oUkVIWURSQVRFX0FDVElPTl9MQUJFTCwgcHJvcHM8e1xuICBwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufT4oKSk7XG5cbi8qKlxuICogRGVmaW5lcyBpZiB0aGUgc3RvcmFnZSBpcyBhIG5vbi1hc3luYyBzdG9yYWdlXG4gKiBAcGFyYW0gb3B0aW9ucyBUaGUgc3RvcmFnZSBjb25maWdcbiAqIEByZXR1cm5zIGluIGNhc2UgdGhlIHN0b3JhZ2UgdXNlZCBpcyBhIG5vbi1hc3luYyBzdG9yYWdlXG4gKi9cbmV4cG9ydCBjb25zdCBpc0xvY2FsU3RvcmFnZUNvbmZpZyA9IChvcHRpb25zOiBTdG9yYWdlU3luY09wdGlvbnMpOiBvcHRpb25zIGlzIFN5bmNTdG9yYWdlQ29uZmlnID0+ICFvcHRpb25zLnN0b3JhZ2UgfHwgb3B0aW9ucy5zdG9yYWdlIGluc3RhbmNlb2YgU3RvcmFnZTtcbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1zeW5jLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9zdG9yYWdlLXN5bmMuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsWUFBWSxFQUNaLEtBQUssR0FDTixNQUFNLGFBQWEsQ0FBQztBQVdyQjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBUSxFQUEwQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLFFBQVEsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7QUFFMUo7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyx1QkFBdUIsQ0FBQztBQUU5RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxFQUVyRSxDQUFDLENBQUM7QUFFTjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxPQUEyQixFQUFnQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLFlBQVksT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY3JlYXRlQWN0aW9uLFxuICBwcm9wcyxcbn0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHR5cGUge1xuICBTZXJpYWxpemVyLFxufSBmcm9tICdAbzNyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1xuICBTeW5jU3RvcmFnZUNvbmZpZyxcbn0gZnJvbSAnLi4vc3luYy1zdG9yYWdlJztcbmltcG9ydCB0eXBlIHtcbiAgU3RvcmFnZVN5bmNPcHRpb25zLFxufSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG4vKipcbiAqIERlZmluZXMgaWYgYW4gb2JqZWN0IGlzIGEgU2VyaWFsaXplclxuICogQHBhcmFtIG9iaiBPYmplY3QgdG8gdGVzdFxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGEgU2VyaWFsaXplclxuICovXG5leHBvcnQgY29uc3QgaXNTZXJpYWxpemVyID0gKG9iajogYW55KTogb2JqIGlzIFNlcmlhbGl6ZXI8YW55PiA9PiAhIShvYmouc2VyaWFsaXplIHx8IG9iai5kZXNlcmlhbGl6ZSB8fCBvYmoucmV2aXZlciB8fCBvYmoucmVwbGFjZXIgfHwgb2JqLmluaXRpYWxTdGF0ZSk7XG5cbi8qKlxuICogTGFiZWwgb2YgdGhlIGFjdGlvbiB0byByZWh5ZHJhdGUgdGhlIHN0b3JlXG4gKi9cbmV4cG9ydCBjb25zdCBSRUhZRFJBVEVfQUNUSU9OX0xBQkVMID0gJ1tzdG9yZVN5bmNdIHJlaHlkcmF0ZSc7XG5cbi8qKlxuICogQWN0aW9uIHRvIHJlaHlkcmF0ZSB0aGUgc3RvcmVcbiAqL1xuZXhwb3J0IGNvbnN0IHJlaHlkcmF0ZUFjdGlvbiA9IGNyZWF0ZUFjdGlvbihSRUhZRFJBVEVfQUNUSU9OX0xBQkVMLCBwcm9wczx7XG4gIHBheWxvYWQ6IFJlY29yZDxzdHJpbmcsIGFueT47XG59PigpKTtcblxuLyoqXG4gKiBEZWZpbmVzIGlmIHRoZSBzdG9yYWdlIGlzIGEgbm9uLWFzeW5jIHN0b3JhZ2VcbiAqIEBwYXJhbSBvcHRpb25zIFRoZSBzdG9yYWdlIGNvbmZpZ1xuICogQHJldHVybnMgaW4gY2FzZSB0aGUgc3RvcmFnZSB1c2VkIGlzIGEgbm9uLWFzeW5jIHN0b3JhZ2VcbiAqL1xuZXhwb3J0IGNvbnN0IGlzTG9jYWxTdG9yYWdlQ29uZmlnID0gKG9wdGlvbnM6IFN0b3JhZ2VTeW5jT3B0aW9ucyk6IG9wdGlvbnMgaXMgU3luY1N0b3JhZ2VDb25maWcgPT4gIW9wdGlvbnMuc3RvcmFnZSB8fCBvcHRpb25zLnN0b3JhZ2UgaW5zdGFuY2VvZiBTdG9yYWdlO1xuIl19
@@ -1,8 +1,8 @@
1
- import { INIT, UPDATE } from '@ngrx/store';
2
- import { deepFillWithDate } from '../deep-fill/deep-fill';
1
+ import { INIT, UPDATE, } from '@ngrx/store';
3
2
  import equal from 'fast-deep-equal';
4
- import { isLocalStorageConfig, isSerializer, rehydrateAction } from './storage-sync.helpers';
5
- import { syncStorage } from '../sync-storage';
3
+ import { deepFillWithDate, } from '../deep-fill/deep-fill';
4
+ import { syncStorage, } from '../sync-storage';
5
+ import { isLocalStorageConfig, isSerializer, rehydrateAction, } from './storage-sync.helpers';
6
6
  /**
7
7
  * Storage synchronizer
8
8
  */
@@ -73,7 +73,7 @@ export class StorageSync {
73
73
  return acc;
74
74
  }, {});
75
75
  }
76
- if (Object.keys(overrides).length) {
76
+ if (Object.keys(overrides).length > 0) {
77
77
  hydratedState = { ...state, ...overrides };
78
78
  }
79
79
  }
@@ -83,19 +83,21 @@ export class StorageSync {
83
83
  };
84
84
  this.options = {
85
85
  keys: [],
86
- ...(extraOptions?.disableSmartSync ? {} : {
87
- syncKeyCondition: (key, state) => !equal(this.storeImage[key], state[key]),
88
- postProcess: (state) => {
89
- this.options.keys.forEach(key => {
90
- const keyName = typeof key === 'object' ? Object.keys(key)[0] : key;
91
- this.storeImage[keyName] = state[keyName];
92
- });
93
- }
94
- }),
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
+ }),
95
97
  ...options,
96
98
  storage: options?.storage,
97
- mergeReducer: typeof options?.mergeReducer !== 'function' ? this.mergeReducer : options.mergeReducer
99
+ mergeReducer: typeof options?.mergeReducer === 'function' ? options.mergeReducer : this.mergeReducer
98
100
  };
99
101
  }
100
102
  }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1zeW5jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvcmUvc3RvcmFnZS1zeW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sS0FBSyxNQUFNLGlCQUFpQixDQUFDO0FBRXBDLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDM0YsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRzVDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFPdEIsWUFBWSxPQUF1QyxFQUFFLFlBQTBDO1FBTjlFLCtCQUEwQixHQUFnQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzdELGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ1gsZUFBVSxHQUEyQixFQUFFLENBQUM7UUFzQnpEOzs7Ozs7O1dBT0c7UUFDYSxpQkFBWSxHQUFHLENBQUMsS0FBVSxFQUFFLGVBQW9CLEVBQUUsTUFBVyxFQUFFLEVBQUU7WUFDL0UsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO29CQUN6QixLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFDO2dCQUNuRCxDQUFDO2dCQUNELElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFFN0QsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQWdCLEVBQUUsRUFBRSxDQUFDLENB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QyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO3dCQUM1RSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDNUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQzthQUNGLENBQUM7WUFDRixHQUFHLE9BQU87WUFDVixPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQTZCO1lBQy9DLFlBQVksRUFBRSxPQUFPLE9BQU8sRUFBRSxZQUFZLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWTtTQUNyRyxDQUFDO0lBQ0osQ0FBQztDQThFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SU5JVCwgVVBEQVRFfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBkZWVwRmlsbFdpdGhEYXRlIH0gZnJvbSAnLi4vZGVlcC1maWxsL2RlZXAtZmlsbCc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsJztcbmltcG9ydCB0eXBlIHtTdG9yYWdlU3luY09wdGlvbnN9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQge2lzTG9jYWxTdG9yYWdlQ29uZmlnLCBpc1NlcmlhbGl6ZXIsIHJlaHlkcmF0ZUFjdGlvbn0gZnJvbSAnLi9zdG9yYWdlLXN5bmMuaGVscGVycyc7XG5pbXBvcnQge3N5bmNTdG9yYWdlfSBmcm9tICcuLi9zeW5jLXN0b3JhZ2UnO1xuaW1wb3J0IHtTdG9yYWdlU3luY0NvbnN0cnVjdG9yT3B0aW9uc30gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuLyoqXG4gKiBTdG9yYWdlIHN5bmNocm9uaXplclxuICovXG5leHBvcnQgY2xhc3MgU3RvcmFnZVN5bmMge1xuICBwcml2YXRlIHJlYWRvbmx5IGFscmVhZHlIeWRyYXRlZFN0b3JlU2xpY2VzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTtcbiAgcHJpdmF0ZSBoYXNIeWRyYXRlZCA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IHN0b3JlSW1hZ2U6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcblxuICBwdWJsaWMgb3B0aW9uczogU3RvcmFnZVN5bmNPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBTdG9yYWdlU3luY0NvbnN0cnVjdG9yT3B0aW9ucywgZXh0cmFPcHRpb25zPzoge2Rpc2FibGVTbWFydFN5bmM6IGJvb2xlYW59KSB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAga2V5czogW10sXG4gICAgICAuLi4oZXh0cmFPcHRpb25zPy5kaXNhYmxlU21hcnRTeW5jID8ge30gOiB7XG4gICAgICAgIHN5bmNLZXlDb25kaXRpb246IChrZXksIHN0YXRlKSA9PiAhZXF1YWwodGhpcy5zdG9yZUltYWdlW2tleV0sIHN0YXRlW2tleV0pLFxuICAgICAgICBwb3N0UHJvY2VzczogKHN0YXRlKSA9PiB7XG4gICAgICAgICAgdGhpcy5vcHRpb25zLmtleXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5TmFtZTogc3RyaW5nID0gdHlwZW9mIGtleSA9PT0gJ29iamVjdCcgPyBPYmplY3Qua2V5cyhrZXkpWzBdIDoga2V5O1xuICAgICAgICAgICAgdGhpcy5zdG9yZUltYWdlW2tleU5hbWVdID0gc3RhdGVba2V5TmFtZV07XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHN0b3JhZ2U6IG9wdGlvbnM/LnN0b3JhZ2UgYXMgdW5rbm93biBhcyBTdG9yYWdlLFxuICAgICAgbWVyZ2VSZWR1Y2VyOiB0eXBlb2Ygb3B0aW9ucz8ubWVyZ2VSZWR1Y2VyICE9PSAnZnVuY3Rpb24nID8gdGhpcy5tZXJnZVJlZHVjZXIgOiBvcHRpb25zLm1lcmdlUmVkdWNlclxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIHN0YXRlIG1hbmlwdWxhdGlvbiBpbiBjYXNlIG9mIHN0b3JlIHN0b3JhZ2Ugc3luY1xuICAgKiBNZXJnZSBzdHJhdGVneSBpcyBhIGZ1bGwgbWVyZ2UgYXQgaW5pdDsgV2hlbiBhIG5ldyBgc3RvcmUgc2xpY2VgIGlzIHJlZ2lzdGVyZWQsIGl0cyBpbml0aWFsIHN0YXRlIGlzIG1lcmdlZCB3aXRoIGl0cyBjb3JyZXNwb25kaW5nIHN0b3JhZ2UgY29udGVudFxuICAgKiBQYXNzIGl0IGFzIG1lcmdlUmVkdWNlciBjYWxsYmFjayB3aGVuIGNhbGxpbmcgbG9jYWxTdG9yYWdlU3luYyBmdW5jdGlvbiBmcm9tICduZ3J4LXN0b3JlLWxvY2Fsc3RvcmFnZScsIGluIHRoZSBhcHBcbiAgICogQHBhcmFtIHN0YXRlIGFjdHVhbCBzdGF0ZVxuICAgKiBAcGFyYW0gcmVoeWRyYXRlZFN0YXRlIHN0YXRlIGZyb20gc3RvcmFnZVxuICAgKiBAcGFyYW0gYWN0aW9uIFRyaWdnZXJlZCBhY3Rpb25cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtZXJnZVJlZHVjZXIgPSAoc3RhdGU6IGFueSwgcmVoeWRyYXRlZFN0YXRlOiBhbnksIGFjdGlvbjogYW55KSA9PiB7XG4gICAgaWYgKHJlaHlkcmF0ZWRTdGF0ZSkge1xuICAgICAgaWYgKGFjdGlvbi50eXBlID09PSBJTklUKSB7XG4gICAgICAgIHN0YXRlID0gZGVlcEZpbGxXaXRoRGF0ZShzdGF0ZSwgcmVoeWRyYXRlZFN0YXRlKTtcbiAgICAgIH1cbiAgICAgIGlmIChhY3Rpb24udHlwZSA9PT0gVVBEQVRFICYmIEFycmF5LmlzQXJyYXkoYWN0aW9uLmZlYXR1cmVzKSkge1xuXG4gICAgICAgIGNvbnN0IG5vdEhhbmRsZWRGZWF0dXJlcyA9IGFjdGlvbi5mZWF0dXJlcy5maWx0ZXIoKGZlYXROYW1lOiBzdHJpbmcpID0+ICF0aGlzLmFscmVhZHlIeWRyYXRlZFN0b3JlU2xpY2VzLmhhcyhmZWF0TmFtZSkpO1xuXG4gICAgICAgIG5vdEhhbmRsZWRGZWF0dXJlcy5maWx0ZXIoKGZlYXROYW1lOiBzdHJpbmcpID0+ICEhcmVoeWRyYXRlZFN0YXRlW2ZlYXROYW1lXSkuZm9yRWFjaCgoZk5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHN0YXRlW2ZOYW1lXSA9IHN0YXRlW2ZOYW1lXSA/IGRlZXBGaWxsV2l0aERhdGUoc3RhdGVbZk5hbWVdLCByZWh5ZHJhdGVkU3RhdGVbZk5hbWVdKSA6IHJlaHlkcmF0ZWRTdGF0ZVtmTmFtZV07XG4gICAgICAgICAgdGhpcy5hbHJlYWR5SHlkcmF0ZWRTdG9yZVNsaWNlcy5hZGQoZk5hbWUpO1xuICAgICAgICB9KTtcblxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3RhdGU7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBtZXRhIHJlZHVjZXIgdGhhdCBoYW5kbGVzIHN0b3JhZ2Ugc3luY1xuICAgKi9cbiAgcHVibGljIGxvY2FsU3RvcmFnZVN5bmMgPSAoKSA9PiB7XG4gICAgY29uc3QgYmFzZSA9IChyZWR1Y2VyOiBhbnkpID0+IHN5bmNTdG9yYWdlKHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIHJlaHlkcmF0ZTogZmFsc2UsXG4gICAgICBzdG9yYWdlOiB0aGlzLm9wdGlvbnMuc3RvcmFnZSBhcyB1bmtub3duIGFzIFN0b3JhZ2UsXG4gICAgICBzeW5jQ29uZGl0aW9uOiAoKSA9PiB0aGlzLmhhc0h5ZHJhdGVkXG4gICAgfSkocmVkdWNlcik7XG5cbiAgICByZXR1cm4gKHJlZHVjZXI6IGFueSkgPT4ge1xuICAgICAgaWYgKGlzTG9jYWxTdG9yYWdlQ29uZmlnKHRoaXMub3B0aW9ucykpIHtcbiAgICAgICAgcmV0dXJuIHN5bmNTdG9yYWdlKHRoaXMub3B0aW9ucykocmVkdWNlcik7XG4gICAgICB9XG5cblxuICAgICAgcmV0dXJuIChzdGF0ZTogYW55LCBhY3Rpb246IGFueSkgPT4ge1xuICAgICAgICBsZXQgaHlkcmF0ZWRTdGF0ZSA9IHN0YXRlO1xuICAgICAgICBpZiAoYWN0aW9uLnR5cGUgPT09IHJlaHlkcmF0ZUFjdGlvbi50eXBlKSB7XG4gICAgICAgICAgY29uc3QgaGFzQWxyZWFkeUh5ZHJhdGVkID0gdGhpcy5oYXNIeWRyYXRlZDtcbiAgICAgICAgICB0aGlzLmhhc0h5ZHJhdGVkID0gdHJ1ZTtcbiAgICAgICAgICBjb25zdCBpbml0aWFsU3RhdGVzID0gdGhpcy5vcHRpb25zLmtleXMucmVkdWNlKChhY2M6IFJlY29yZDxzdHJpbmcsIGFueT4sIGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RvcmVOYW1lID0gT2JqZWN0LmtleXMoa2V5KVswXTtcbiAgICAgICAgICAgIGNvbnN0IHN0b3JlU3luY2hyb25pemVyID0gKGtleSBhcyBhbnkpW3N0b3JlTmFtZV07XG4gICAgICAgICAgICBpZiAoaXNTZXJpYWxpemVyKHN0b3JlU3luY2hyb25pemVyKSkge1xuICAgICAgICAgICAgICBhY2Nbc3RvcmVOYW1lXSA9IHN0b3JlU3luY2hyb25pemVyLmluaXRpYWxTdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgfSwge30pO1xuICAgICAgICAgIGxldCBvdmVycmlkZXMgPSB7fTtcbiAgICAgICAgICBpZiAoIWhhc0FscmVhZHlIeWRyYXRlZCkge1xuICAgICAgICAgICAgb3ZlcnJpZGVzID0gT2JqZWN0LmVudHJpZXMoYWN0aW9uLnBheWxvYWQpLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PigoYWNjLCBbc3RvcmVOYW1lLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFpbml0aWFsU3RhdGVzW3N0b3JlTmFtZV0gfHwgaW5pdGlhbFN0YXRlc1tzdG9yZU5hbWVdID09PSBzdGF0ZVtzdG9yZU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgYWNjW3N0b3JlTmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbml0aWFsU3RhdGVzW3N0b3JlTmFtZV0gIT09IHN0YXRlW3N0b3JlTmFtZV0pIHtcbiAgICAgICAgICAgICAgICAodGhpcy5vcHRpb25zLmxvZ2dlciB8fCBjb25zb2xlKS5lcnJvcihgVW5hYmxlIHRvIHJlaHlkcmF0ZSBzdG9yZSBcIiR7c3RvcmVOYW1lfVwiLCBpdCBoYXMgYmVlbiBtb2RpZmllZCBiZWZvcmUgYmVpbmcgaHlkcmF0ZWRgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfSwge30pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoT2JqZWN0LmtleXMob3ZlcnJpZGVzKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGh5ZHJhdGVkU3RhdGUgPSB7IC4uLnN0YXRlLCAuLi5vdmVycmlkZXMgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJhc2UocmVkdWNlcikoaHlkcmF0ZWRTdGF0ZSwgYWN0aW9uKTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbn1cbiJdfQ==
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1zeW5jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvcmUvc3RvcmFnZS1zeW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxJQUFJLEVBQ0osTUFBTSxHQUNQLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sS0FBSyxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFDTCxnQkFBZ0IsR0FDakIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQ0wsV0FBVyxHQUNaLE1BQU0saUJBQWlCLENBQUM7QUFPekIsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixZQUFZLEVBQ1osZUFBZSxHQUNoQixNQUFNLHdCQUF3QixDQUFDO0FBRWhDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFPdEIsWUFBWSxPQUF1QyxFQUFFLFlBQTRDO1FBTmhGLCtCQUEwQixHQUFnQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzdELGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ1gsZUFBVSxHQUEyQixFQUFFLENBQUM7UUF3QnpEOzs7Ozs7O1dBT0c7UUFDYSxpQkFBWSxHQUFHLENBQUMsS0FBVSxFQUFFLGVBQW9CLEVBQUUsTUFBVyxFQUFFLEVBQUU7WUFDL0UsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO29CQUN6QixLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFDO2dCQUNuRCxDQUFDO2dCQUNELElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDN0QsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQWdCLEVBQUUsRUFBRSxDQUFD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TyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7NEJBQzVFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUM1QyxDQUFDLENBQUMsQ0FBQztvQkFDTCxDQUFDO2lCQUNGLENBQUM7WUFDSixHQUFHLE9BQU87WUFDVixPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQTZCO1lBQy9DLFlBQVksRUFBRSxPQUFPLE9BQU8sRUFBRSxZQUFZLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWTtTQUNyRyxDQUFDO0lBQ0osQ0FBQztDQTJFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElOSVQsXG4gIFVQREFURSxcbn0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IGVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbCc7XG5pbXBvcnQge1xuICBkZWVwRmlsbFdpdGhEYXRlLFxufSBmcm9tICcuLi9kZWVwLWZpbGwvZGVlcC1maWxsJztcbmltcG9ydCB7XG4gIHN5bmNTdG9yYWdlLFxufSBmcm9tICcuLi9zeW5jLXN0b3JhZ2UnO1xuaW1wb3J0IHR5cGUge1xuICBTdG9yYWdlU3luY09wdGlvbnMsXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBTdG9yYWdlU3luY0NvbnN0cnVjdG9yT3B0aW9ucyxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gIGlzTG9jYWxTdG9yYWdlQ29uZmlnLFxuICBpc1NlcmlhbGl6ZXIsXG4gIHJlaHlkcmF0ZUFjdGlvbixcbn0gZnJvbSAnLi9zdG9yYWdlLXN5bmMuaGVscGVycyc7XG5cbi8qKlxuICogU3RvcmFnZSBzeW5jaHJvbml6ZXJcbiAqL1xuZXhwb3J0IGNsYXNzIFN0b3JhZ2VTeW5jIHtcbiAgcHJpdmF0ZSByZWFkb25seSBhbHJlYWR5SHlkcmF0ZWRTdG9yZVNsaWNlczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG4gIHByaXZhdGUgaGFzSHlkcmF0ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdG9yZUltYWdlOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG5cbiAgcHVibGljIG9wdGlvbnM6IFN0b3JhZ2VTeW5jT3B0aW9ucztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zPzogU3RvcmFnZVN5bmNDb25zdHJ1Y3Rvck9wdGlvbnMsIGV4dHJhT3B0aW9ucz86IHsgZGlzYWJsZVNtYXJ0U3luYzogYm9vbGVhbiB9KSB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAga2V5czogW10sXG4gICAgICAuLi4oZXh0cmFPcHRpb25zPy5kaXNhYmxlU21hcnRTeW5jXG4gICAgICAgID8ge31cbiAgICAgICAgOiB7XG4gICAgICAgICAgc3luY0tleUNvbmRpdGlvbjogKGtleSwgc3RhdGUpID0+ICFlcXVhbCh0aGlzLnN0b3JlSW1hZ2Vba2V5XSwgc3RhdGVba2V5XSksXG4gICAgICAgICAgcG9zdFByb2Nlc3M6IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLmtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGtleU5hbWU6IHN0cmluZyA9IHR5cGVvZiBrZXkgPT09ICdvYmplY3QnID8gT2JqZWN0LmtleXMoa2V5KVswXSA6IGtleTtcbiAgICAgICAgICAgICAgdGhpcy5zdG9yZUltYWdlW2tleU5hbWVdID0gc3RhdGVba2V5TmFtZV07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHN0b3JhZ2U6IG9wdGlvbnM/LnN0b3JhZ2UgYXMgdW5rbm93biBhcyBTdG9yYWdlLFxuICAgICAgbWVyZ2VSZWR1Y2VyOiB0eXBlb2Ygb3B0aW9ucz8ubWVyZ2VSZWR1Y2VyID09PSAnZnVuY3Rpb24nID8gb3B0aW9ucy5tZXJnZVJlZHVjZXIgOiB0aGlzLm1lcmdlUmVkdWNlclxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIHN0YXRlIG1hbmlwdWxhdGlvbiBpbiBjYXNlIG9mIHN0b3JlIHN0b3JhZ2Ugc3luY1xuICAgKiBNZXJnZSBzdHJhdGVneSBpcyBhIGZ1bGwgbWVyZ2UgYXQgaW5pdDsgV2hlbiBhIG5ldyBgc3RvcmUgc2xpY2VgIGlzIHJlZ2lzdGVyZWQsIGl0cyBpbml0aWFsIHN0YXRlIGlzIG1lcmdlZCB3aXRoIGl0cyBjb3JyZXNwb25kaW5nIHN0b3JhZ2UgY29udGVudFxuICAgKiBQYXNzIGl0IGFzIG1lcmdlUmVkdWNlciBjYWxsYmFjayB3aGVuIGNhbGxpbmcgbG9jYWxTdG9yYWdlU3luYyBmdW5jdGlvbiBmcm9tICduZ3J4LXN0b3JlLWxvY2Fsc3RvcmFnZScsIGluIHRoZSBhcHBcbiAgICogQHBhcmFtIHN0YXRlIGFjdHVhbCBzdGF0ZVxuICAgKiBAcGFyYW0gcmVoeWRyYXRlZFN0YXRlIHN0YXRlIGZyb20gc3RvcmFnZVxuICAgKiBAcGFyYW0gYWN0aW9uIFRyaWdnZXJlZCBhY3Rpb25cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtZXJnZVJlZHVjZXIgPSAoc3RhdGU6IGFueSwgcmVoeWRyYXRlZFN0YXRlOiBhbnksIGFjdGlvbjogYW55KSA9PiB7XG4gICAgaWYgKHJlaHlkcmF0ZWRTdGF0ZSkge1xuICAgICAgaWYgKGFjdGlvbi50eXBlID09PSBJTklUKSB7XG4gICAgICAgIHN0YXRlID0gZGVlcEZpbGxXaXRoRGF0ZShzdGF0ZSwgcmVoeWRyYXRlZFN0YXRlKTtcbiAgICAgIH1cbiAgICAgIGlmIChhY3Rpb24udHlwZSA9PT0gVVBEQVRFICYmIEFycmF5LmlzQXJyYXkoYWN0aW9uLmZlYXR1cmVzKSkge1xuICAgICAgICBjb25zdCBub3RIYW5kbGVkRmVhdHVyZXMgPSBhY3Rpb24uZmVhdHVyZXMuZmlsdGVyKChmZWF0TmFtZTogc3RyaW5nKSA9PiAhdGhpcy5hbHJlYWR5SHlkcmF0ZWRTdG9yZVNsaWNlcy5oYXMoZmVhdE5hbWUpKTtcblxuICAgICAgICBub3RIYW5kbGVkRmVhdHVyZXMuZmlsdGVyKChmZWF0TmFtZTogc3RyaW5nKSA9PiAhIXJlaHlkcmF0ZWRTdGF0ZVtmZWF0TmFtZV0pLmZvckVhY2goKGZOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBzdGF0ZVtmTmFtZV0gPSBzdGF0ZVtmTmFtZV0gPyBkZWVwRmlsbFdpdGhEYXRlKHN0YXRlW2ZOYW1lXSwgcmVoeWRyYXRlZFN0YXRlW2ZOYW1lXSkgOiByZWh5ZHJhdGVkU3RhdGVbZk5hbWVdO1xuICAgICAgICAgIHRoaXMuYWxyZWFkeUh5ZHJhdGVkU3RvcmVTbGljZXMuYWRkKGZOYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdGF0ZTtcbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJucyBhIG1ldGEgcmVkdWNlciB0aGF0IGhhbmRsZXMgc3RvcmFnZSBzeW5jXG4gICAqL1xuICBwdWJsaWMgbG9jYWxTdG9yYWdlU3luYyA9ICgpID0+IHtcbiAgICBjb25zdCBiYXNlID0gKHJlZHVjZXI6IGFueSkgPT4gc3luY1N0b3JhZ2Uoe1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgcmVoeWRyYXRlOiBmYWxzZSxcbiAgICAgIHN0b3JhZ2U6IHRoaXMub3B0aW9ucy5zdG9yYWdlIGFzIHVua25vd24gYXMgU3RvcmFnZSxcbiAgICAgIHN5bmNDb25kaXRpb246ICgpID0+IHRoaXMuaGFzSHlkcmF0ZWRcbiAgICB9KShyZWR1Y2VyKTtcblxuICAgIHJldHVybiAocmVkdWNlcjogYW55KSA9PiB7XG4gICAgICBpZiAoaXNMb2NhbFN0b3JhZ2VDb25maWcodGhpcy5vcHRpb25zKSkge1xuICAgICAgICByZXR1cm4gc3luY1N0b3JhZ2UodGhpcy5vcHRpb25zKShyZWR1Y2VyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChzdGF0ZTogYW55LCBhY3Rpb246IGFueSkgPT4ge1xuICAgICAgICBsZXQgaHlkcmF0ZWRTdGF0ZSA9IHN0YXRlO1xuICAgICAgICBpZiAoYWN0aW9uLnR5cGUgPT09IHJlaHlkcmF0ZUFjdGlvbi50eXBlKSB7XG4gICAgICAgICAgY29uc3QgaGFzQWxyZWFkeUh5ZHJhdGVkID0gdGhpcy5oYXNIeWRyYXRlZDtcbiAgICAgICAgICB0aGlzLmhhc0h5ZHJhdGVkID0gdHJ1ZTtcbiAgICAgICAgICBjb25zdCBpbml0aWFsU3RhdGVzID0gdGhpcy5vcHRpb25zLmtleXMucmVkdWNlKChhY2M6IFJlY29yZDxzdHJpbmcsIGFueT4sIGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RvcmVOYW1lID0gT2JqZWN0LmtleXMoa2V5KVswXTtcbiAgICAgICAgICAgIGNvbnN0IHN0b3JlU3luY2hyb25pemVyID0gKGtleSBhcyBhbnkpW3N0b3JlTmFtZV07XG4gICAgICAgICAgICBpZiAoaXNTZXJpYWxpemVyKHN0b3JlU3luY2hyb25pemVyKSkge1xuICAgICAgICAgICAgICBhY2Nbc3RvcmVOYW1lXSA9IHN0b3JlU3luY2hyb25pemVyLmluaXRpYWxTdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgfSwge30pO1xuICAgICAgICAgIGxldCBvdmVycmlkZXMgPSB7fTtcbiAgICAgICAgICBpZiAoIWhhc0FscmVhZHlIeWRyYXRlZCkge1xuICAgICAgICAgICAgb3ZlcnJpZGVzID0gT2JqZWN0LmVudHJpZXMoYWN0aW9uLnBheWxvYWQpLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PigoYWNjLCBbc3RvcmVOYW1lLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFpbml0aWFsU3RhdGVzW3N0b3JlTmFtZV0gfHwgaW5pdGlhbFN0YXRlc1tzdG9yZU5hbWVdID09PSBzdGF0ZVtzdG9yZU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgYWNjW3N0b3JlTmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbml0aWFsU3RhdGVzW3N0b3JlTmFtZV0gIT09IHN0YXRlW3N0b3JlTmFtZV0pIHtcbiAgICAgICAgICAgICAgICAodGhpcy5vcHRpb25zLmxvZ2dlciB8fCBjb25zb2xlKS5lcnJvcihgVW5hYmxlIHRvIHJlaHlkcmF0ZSBzdG9yZSBcIiR7c3RvcmVOYW1lfVwiLCBpdCBoYXMgYmVlbiBtb2RpZmllZCBiZWZvcmUgYmVpbmcgaHlkcmF0ZWRgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfSwge30pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoT2JqZWN0LmtleXMob3ZlcnJpZGVzKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBoeWRyYXRlZFN0YXRlID0geyAuLi5zdGF0ZSwgLi4ub3ZlcnJpZGVzIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBiYXNlKHJlZHVjZXIpKGh5ZHJhdGVkU3RhdGUsIGFjdGlvbik7XG4gICAgICB9O1xuICAgIH07XG4gIH07XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
- import { deepFill } from '@o3r/core';
2
- import { utils } from '@ama-sdk/core';
1
+ import { utils, } from '@ama-sdk/core';
2
+ import { deepFill, } from '@o3r/core';
3
3
  const mapper = [
4
4
  {
5
5
  condition: (data) => data instanceof utils.DateTime,
@@ -20,4 +20,4 @@ const mapper = [
20
20
  export function deepFillWithDate(base, source) {
21
21
  return deepFill(base, source, mapper);
22
22
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1maWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RlZXAtZmlsbC9kZWVwLWZpbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBK0IsTUFBTSxXQUFXLENBQUM7QUFDbEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0QyxNQUFNLE1BQU0sR0FBNkI7SUFDdkM7UUFDRSxTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksWUFBWSxLQUFLLENBQUMsUUFBUTtRQUNuRCxTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7S0FDOUM7SUFDRDtRQUNFLFNBQVMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxZQUFZLEtBQUssQ0FBQyxJQUFJO1FBQy9DLFNBQVMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztLQUMxQztDQUNGLENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQWlDLElBQU8sRUFBRSxNQUE2QjtJQUNyRyxPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWVwRmlsbCwgdHlwZSBQcmltaXRpdmVSZXZpdmVyTWFwcGVyIH0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSAnQGFtYS1zZGsvY29yZSc7XG5cbmNvbnN0IG1hcHBlcjogUHJpbWl0aXZlUmV2aXZlck1hcHBlcltdID0gW1xuICB7XG4gICAgY29uZGl0aW9uOiAoZGF0YSkgPT4gZGF0YSBpbnN0YW5jZW9mIHV0aWxzLkRhdGVUaW1lLFxuICAgIGNvbnN0cnVjdDogKGRhdGEpID0+IG5ldyB1dGlscy5EYXRlVGltZShkYXRhKVxuICB9LFxuICB7XG4gICAgY29uZGl0aW9uOiAoZGF0YSkgPT4gZGF0YSBpbnN0YW5jZW9mIHV0aWxzLkRhdGUsXG4gICAgY29uc3RydWN0OiAoZGF0YSkgPT4gbmV3IHV0aWxzLkRhdGUoZGF0YSlcbiAgfVxuXTtcblxuLyoqXG4gKiBEZWVwIGZpbGwgb2YgYmFzZSBvYmplY3QgdXNpbmcgc291cmNlXG4gKiBJdCB3aWxsIGRvIGEgZGVlcCBtZXJnZSBvZiB0aGUgb2JqZWN0cywgb3ZlcnJpZGluZyBhcnJheXNcbiAqIEFsbCBwcm9wZXJ0aWVzIG5vdCBwcmVzZW50IGluIHNvdXJjZSwgYnV0IHByZXNlbnQgaW4gYmFzZSwgd2lsbCByZW1haW5cbiAqIEBwYXJhbSBiYXNlXG4gKiBAcGFyYW0gc291cmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWVwRmlsbFdpdGhEYXRlPFQgZXh0ZW5kcyB7IFt4OiBzdHJpbmddOiBhbnkgfT4oYmFzZTogVCwgc291cmNlPzogeyBbeDogc3RyaW5nXTogYW55IH0pOiBUIHtcbiAgcmV0dXJuIGRlZXBGaWxsKGJhc2UsIHNvdXJjZSwgbWFwcGVyKTtcbn1cbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1maWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RlZXAtZmlsbC9kZWVwLWZpbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsUUFBUSxHQUVULE1BQU0sV0FBVyxDQUFDO0FBRW5CLE1BQU0sTUFBTSxHQUE2QjtJQUN2QztRQUNFLFNBQVMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxZQUFZLEtBQUssQ0FBQyxRQUFRO1FBQ25ELFNBQVMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztLQUM5QztJQUNEO1FBQ0UsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFlBQVksS0FBSyxDQUFDLElBQUk7UUFDL0MsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0tBQzFDO0NBQ0YsQ0FBQztBQUVGOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBaUMsSUFBTyxFQUFFLE1BQTZCO0lBQ3JHLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHV0aWxzLFxufSBmcm9tICdAYW1hLXNkay9jb3JlJztcbmltcG9ydCB7XG4gIGRlZXBGaWxsLFxuICB0eXBlIFByaW1pdGl2ZVJldml2ZXJNYXBwZXIsXG59IGZyb20gJ0BvM3IvY29yZSc7XG5cbmNvbnN0IG1hcHBlcjogUHJpbWl0aXZlUmV2aXZlck1hcHBlcltdID0gW1xuICB7XG4gICAgY29uZGl0aW9uOiAoZGF0YSkgPT4gZGF0YSBpbnN0YW5jZW9mIHV0aWxzLkRhdGVUaW1lLFxuICAgIGNvbnN0cnVjdDogKGRhdGEpID0+IG5ldyB1dGlscy5EYXRlVGltZShkYXRhKVxuICB9LFxuICB7XG4gICAgY29uZGl0aW9uOiAoZGF0YSkgPT4gZGF0YSBpbnN0YW5jZW9mIHV0aWxzLkRhdGUsXG4gICAgY29uc3RydWN0OiAoZGF0YSkgPT4gbmV3IHV0aWxzLkRhdGUoZGF0YSlcbiAgfVxuXTtcblxuLyoqXG4gKiBEZWVwIGZpbGwgb2YgYmFzZSBvYmplY3QgdXNpbmcgc291cmNlXG4gKiBJdCB3aWxsIGRvIGEgZGVlcCBtZXJnZSBvZiB0aGUgb2JqZWN0cywgb3ZlcnJpZGluZyBhcnJheXNcbiAqIEFsbCBwcm9wZXJ0aWVzIG5vdCBwcmVzZW50IGluIHNvdXJjZSwgYnV0IHByZXNlbnQgaW4gYmFzZSwgd2lsbCByZW1haW5cbiAqIEBwYXJhbSBiYXNlXG4gKiBAcGFyYW0gc291cmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWVwRmlsbFdpdGhEYXRlPFQgZXh0ZW5kcyB7IFt4OiBzdHJpbmddOiBhbnkgfT4oYmFzZTogVCwgc291cmNlPzogeyBbeDogc3RyaW5nXTogYW55IH0pOiBUIHtcbiAgcmV0dXJuIGRlZXBGaWxsKGJhc2UsIHNvdXJjZSwgbWFwcGVyKTtcbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zeW5jLXN0b3JhZ2UvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMb2dnZXIgfSBmcm9tICdAbzNyL2NvcmUnO1xuXG4vKipcbiAqIE9wdGlvbnMgdG8gcHJvdmlkZSB0byB0aGUgc3luY2hyb25vdXMgc3RvcmUgc3luY2hyb25pemF0aW9uIG1lY2hhbmlzbVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN5bmNTdG9yYWdlU3luY09wdGlvbnMge1xuICAvKiogQ2FsbGJhY2sgdG8gZGVmaW5lIHRoZSBzZXJpYWxpemF0aW9uIHN0cmF0ZWd5IG9mIHRoZSBzdG9yZSAqL1xuICBzZXJpYWxpemU/OiAoc3RhdGU6IGFueSkgPT4gYW55O1xuICAvKiogQ2FsbGJhY2sgdG8gZGVmaW5lIHRoZSBkZXNlcmlhbGl6YXRpb24gc3RyYXRlZ3kgb2YgdGhlIHN0b3JlICovXG4gIGRlc2VyaWFsaXplPzogKHN0YXRlOiBhbnkpID0+IGFueTtcbiAgLyoqIENhbGxiYWNrIHRvIGRlZmluZSB0aGUgcmV2aXZpbmcgc3RyYXRlZ3kgb2YgdGhlIHN0b3JlICovXG4gIHJldml2ZXI/OiAoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IGFueTtcbiAgLyoqIHJlcGxhY2VyIGNhbGxiYWNrIGZ1bmN0aW9uIHByb3ZpZGVkIHRvIHRoZSBwYXJzZXIgKi9cbiAgcmVwbGFjZXI/OiAoKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSA9PiBhbnkpIHwgc3RyaW5nW107XG4gIC8qKiBGaWx0ZXIgdG8gYXBwbHkgdG8gdGhlIHN0b3JlIGZpZWxkcyAqL1xuICBmaWx0ZXI/OiBzdHJpbmdbXTtcbiAgLyoqIFNwYWNpbmcgZm9yIHNlcmlhbGl6ZXIgKi9cbiAgc3BhY2U/OiBzdHJpbmcgfCBudW1iZXI7XG4gIC8qKiBEZWZpbmVzIHdoZXRoZXIgdGhlIHN0b3JlIGlzIGxvYWRlZCBhcyBmb3JGZWF0dXJlICovXG4gIHN5bmNGb3JGZWF0dXJlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2Ugb2YgdGhlIGNvbmZpZ3VyYXRpb25zIGZvciBhIHN0b3JlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUtleUNvbmZpZ3VyYXRpb24ge1xuICBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB8IG51bWJlcltdIHwgU3RvcmFnZUtleUNvbmZpZ3VyYXRpb25bXSB8IFN5bmNTdG9yYWdlU3luY09wdGlvbnMgfCAoKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSA9PiBhbnkpO1xufVxuXG4vKipcbiAqIERlZmluaXRpb24gb2YgYSBzdG9yZSB0byB0byBzeW5jaHJvbml6ZVxuICovXG5leHBvcnQgdHlwZSBTdG9yYWdlS2V5cyA9IChTdG9yYWdlS2V5Q29uZmlndXJhdGlvbiB8IFN5bmNTdG9yYWdlU3luY09wdGlvbnMgfCBzdHJpbmcpW107XG5cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIHRvIGRlZmluZSB0aGUgd2F5IHRoZSBzdG9yZXMgc2hvdWxkIGJlIHN5bmNocm9uaXplIHRvIHRoZSBzdG9yYWdlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3luY1N0b3JhZ2VDb25maWcge1xuICAvKiogTWFwIG9mIHRoZSBzdG9yZSB0byBzeW5jaHJvbml6ZSAqL1xuICBrZXlzOiBTdG9yYWdlS2V5cztcbiAgLyoqIFNob3VsZCB0aGUgc3RvcmVzIGJlIGluaXRpYWxseSByZWh5ZHJhdGVkICovXG4gIHJlaHlkcmF0ZT86IGJvb2xlYW47XG4gIC8qKiBTdG9yYWdlIHJlZmVyZW5jZSAqL1xuICBzdG9yYWdlPzogU3RvcmFnZTtcbiAgLyoqIFNob3VsZCBiZSByZW1vdmVkIGZyb20gc3RvcmFnZSBpZiB1bmRlZmluZWQgKi9cbiAgcmVtb3ZlT25VbmRlZmluZWQ/OiBib29sZWFuO1xuICAvKiogU2hvdWxkIGFwcGx5IHJlc3RvcmUgZGF0ZSB0byB0aGUgcmVzdG9yZWQgc3RvcmVzICovXG4gIHJlc3RvcmVEYXRlcz86IGJvb2xlYW47XG4gIC8qKiBDYWxsYmFjayB0byBkZWZpbmUgdGhlIHNlcmlhbGl6YXRpb24gc3RyYXRlZ3kgZm9yIHRoZSBzdG9yZSBrZXlzICovXG4gIHN0b3JhZ2VLZXlTZXJpYWxpemVyPzogKGtleTogc3RyaW5nKSA9PiBzdHJpbmc7XG4gIC8qKiBDYWxsYmFjayB0byBkZWZpbmUgdGhlIGNvbmRpdGlvbiB0byB0aGUgc3luY2hyb25pemF0aW9uICovXG4gIHN5bmNDb25kaXRpb24/OiAoc3RhdGU6IGFueSkgPT4gYW55O1xuICAvKiogQ2FsbGJhY2sgdG8gZGVmaW5lIHRoZSBjb25kaXRpb24gdG8gdGhlIGtleSBzeW5jaHJvbml6YXRpb24gKi9cbiAgc3luY0tleUNvbmRpdGlvbj86IChrZXk6IHN0cmluZywgc3RhdGU6IGFueSkgPT4gYm9vbGVhbjtcbiAgLyoqIGNoZWNrIHRoZSBhdmFpbGFiaWxpdHkgb2YgdGhlIHN0b3JhZ2UgKi9cbiAgY2hlY2tTdG9yYWdlQXZhaWxhYmlsaXR5PzogYm9vbGVhbjtcbiAgLyoqIE1lcmdlIHJlZHVjZXIgdG8gdXNlIHRvIGRlc2VyaWFsaXplIHRoZSBzdG9yZSAqL1xuICBtZXJnZVJlZHVjZXI/OiAoc3RhdGU6IGFueSwgcmVoeWRyYXRlZFN0YXRlOiBhbnksIGFjdGlvbjogYW55KSA9PiBhbnk7XG4gIC8qKiBMb2dnZXIgdG8gcmVwb3J0IG1lc3NhZ2VzICovXG4gIGxvZ2dlcj86IExvZ2dlcjtcbiAgLyoqIFBvc3QgcHJvY2VzcyBhZnRlciBzeW5jIHN0b3JhZ2UgZXhlY3V0aW9uICovXG4gIHBvc3RQcm9jZXNzPzogKHN0YXRlOiBhbnkpID0+IHZvaWQ7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zeW5jLXN0b3JhZ2UvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBMb2dnZXIsXG59IGZyb20gJ0BvM3IvY29yZSc7XG5cbi8qKlxuICogT3B0aW9ucyB0byBwcm92aWRlIHRvIHRoZSBzeW5jaHJvbm91cyBzdG9yZSBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3luY1N0b3JhZ2VTeW5jT3B0aW9ucyB7XG4gIC8qKiBDYWxsYmFjayB0byBkZWZpbmUgdGhlIHNlcmlhbGl6YXRpb24gc3RyYXRlZ3kgb2YgdGhlIHN0b3JlICovXG4gIHNlcmlhbGl6ZT86IChzdGF0ZTogYW55KSA9PiBhbnk7XG4gIC8qKiBDYWxsYmFjayB0byBkZWZpbmUgdGhlIGRlc2VyaWFsaXphdGlvbiBzdHJhdGVneSBvZiB0aGUgc3RvcmUgKi9cbiAgZGVzZXJpYWxpemU/OiAoc3RhdGU6IGFueSkgPT4gYW55O1xuICAvKiogQ2FsbGJhY2sgdG8gZGVmaW5lIHRoZSByZXZpdmluZyBzdHJhdGVneSBvZiB0aGUgc3RvcmUgKi9cbiAgcmV2aXZlcj86IChrZXk6IHN0cmluZywgdmFsdWU6IGFueSkgPT4gYW55O1xuICAvKiogcmVwbGFjZXIgY2FsbGJhY2sgZnVuY3Rpb24gcHJvdmlkZWQgdG8gdGhlIHBhcnNlciAqL1xuICByZXBsYWNlcj86ICgoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IGFueSkgfCBzdHJpbmdbXTtcbiAgLyoqIEZpbHRlciB0byBhcHBseSB0byB0aGUgc3RvcmUgZmllbGRzICovXG4gIGZpbHRlcj86IHN0cmluZ1tdO1xuICAvKiogU3BhY2luZyBmb3Igc2VyaWFsaXplciAqL1xuICBzcGFjZT86IHN0cmluZyB8IG51bWJlcjtcbiAgLyoqIERlZmluZXMgd2hldGhlciB0aGUgc3RvcmUgaXMgbG9hZGVkIGFzIGZvckZlYXR1cmUgKi9cbiAgc3luY0ZvckZlYXR1cmU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBvZiB0aGUgY29uZmlndXJhdGlvbnMgZm9yIGEgc3RvcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlS2V5Q29uZmlndXJhdGlvbiB7XG4gIFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIHwgbnVtYmVyW10gfCBTdG9yYWdlS2V5Q29uZmlndXJhdGlvbltdIHwgU3luY1N0b3JhZ2VTeW5jT3B0aW9ucyB8ICgoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IGFueSk7XG59XG5cbi8qKlxuICogRGVmaW5pdGlvbiBvZiBhIHN0b3JlIHRvIHRvIHN5bmNocm9uaXplXG4gKi9cbmV4cG9ydCB0eXBlIFN0b3JhZ2VLZXlzID0gKFN0b3JhZ2VLZXlDb25maWd1cmF0aW9uIHwgU3luY1N0b3JhZ2VTeW5jT3B0aW9ucyB8IHN0cmluZylbXTtcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIHRvIGRlZmluZSB0aGUgd2F5IHRoZSBzdG9yZXMgc2hvdWxkIGJlIHN5bmNocm9uaXplIHRvIHRoZSBzdG9yYWdlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3luY1N0b3JhZ2VDb25maWcge1xuICAvKiogTWFwIG9mIHRoZSBzdG9yZSB0byBzeW5jaHJvbml6ZSAqL1xuICBrZXlzOiBTdG9yYWdlS2V5cztcbiAgLyoqIFNob3VsZCB0aGUgc3RvcmVzIGJlIGluaXRpYWxseSByZWh5ZHJhdGVkICovXG4gIHJlaHlkcmF0ZT86IGJvb2xlYW47XG4gIC8qKiBTdG9yYWdlIHJlZmVyZW5jZSAqL1xuICBzdG9yYWdlPzogU3RvcmFnZTtcbiAgLyoqIFNob3VsZCBiZSByZW1vdmVkIGZyb20gc3RvcmFnZSBpZiB1bmRlZmluZWQgKi9cbiAgcmVtb3ZlT25VbmRlZmluZWQ/OiBib29sZWFuO1xuICAvKiogU2hvdWxkIGFwcGx5IHJlc3RvcmUgZGF0ZSB0byB0aGUgcmVzdG9yZWQgc3RvcmVzICovXG4gIHJlc3RvcmVEYXRlcz86IGJvb2xlYW47XG4gIC8qKiBDYWxsYmFjayB0byBkZWZpbmUgdGhlIHNlcmlhbGl6YXRpb24gc3RyYXRlZ3kgZm9yIHRoZSBzdG9yZSBrZXlzICovXG4gIHN0b3JhZ2VLZXlTZXJpYWxpemVyPzogKGtleTogc3RyaW5nKSA9PiBzdHJpbmc7XG4gIC8qKiBDYWxsYmFjayB0byBkZWZpbmUgdGhlIGNvbmRpdGlvbiB0byB0aGUgc3luY2hyb25pemF0aW9uICovXG4gIHN5bmNDb25kaXRpb24/OiAoc3RhdGU6IGFueSkgPT4gYW55O1xuICAvKiogQ2FsbGJhY2sgdG8gZGVmaW5lIHRoZSBjb25kaXRpb24gdG8gdGhlIGtleSBzeW5jaHJvbml6YXRpb24gKi9cbiAgc3luY0tleUNvbmRpdGlvbj86IChrZXk6IHN0cmluZywgc3RhdGU6IGFueSkgPT4gYm9vbGVhbjtcbiAgLyoqIGNoZWNrIHRoZSBhdmFpbGFiaWxpdHkgb2YgdGhlIHN0b3JhZ2UgKi9cbiAgY2hlY2tTdG9yYWdlQXZhaWxhYmlsaXR5PzogYm9vbGVhbjtcbiAgLyoqIE1lcmdlIHJlZHVjZXIgdG8gdXNlIHRvIGRlc2VyaWFsaXplIHRoZSBzdG9yZSAqL1xuICBtZXJnZVJlZHVjZXI/OiAoc3RhdGU6IGFueSwgcmVoeWRyYXRlZFN0YXRlOiBhbnksIGFjdGlvbjogYW55KSA9PiBhbnk7XG4gIC8qKiBMb2dnZXIgdG8gcmVwb3J0IG1lc3NhZ2VzICovXG4gIGxvZ2dlcj86IExvZ2dlcjtcbiAgLyoqIFBvc3QgcHJvY2VzcyBhZnRlciBzeW5jIHN0b3JhZ2UgZXhlY3V0aW9uICovXG4gIHBvc3RQcm9jZXNzPzogKHN0YXRlOiBhbnkpID0+IHZvaWQ7XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
- import { INIT, UPDATE } from '@ngrx/store';
2
- import { deepFill } from '@o3r/core';
1
+ import { INIT, UPDATE, } from '@ngrx/store';
2
+ import { deepFill, } from '@o3r/core';
3
3
  /**
4
4
  * Reviver the date from a JSON field if the string is matching iso format. Return the same value otherwise
5
5
  * @param _key JSON item key name
@@ -98,9 +98,11 @@ export const rehydrateApplicationState = (keys, storage, storageKeySerializer, r
98
98
  raw = JSON.parse(stateSlice, reviver);
99
99
  }
100
100
  const rehydratedState = deserialize ? deserialize(raw) : raw;
101
- return syncForFeature ? rehydratedState : Object.assign({}, acc, {
102
- [key]: rehydratedState
103
- });
101
+ return syncForFeature
102
+ ? rehydratedState
103
+ : Object.assign({}, acc, {
104
+ [key]: rehydratedState
105
+ });
104
106
  }
105
107
  }
106
108
  return acc;
@@ -212,7 +214,7 @@ export const syncStateUpdate = (state, keys, storage, storageKeySerializer, remo
212
214
  storage.setItem(storageKeySerializer(key), typeof stateSlice === 'string' ? stateSlice : JSON.stringify(stateSlice, replacer, space));
213
215
  }
214
216
  catch (e) {
215
- console.warn('Unable to save state to localStorage:', e);
217
+ logger.warn('Unable to save state to localStorage:', e);
216
218
  }
217
219
  }
218
220
  else if (typeof stateSlice === 'undefined' && removeOnUndefined && storage !== undefined) {
@@ -220,7 +222,7 @@ export const syncStateUpdate = (state, keys, storage, storageKeySerializer, remo
220
222
  storage.removeItem(storageKeySerializer(key));
221
223
  }
222
224
  catch (e) {
223
- console.warn(`Exception on removing/cleaning undefined '${key}' state`, e);
225
+ logger.warn(`Exception on removing/cleaning undefined '${key}' state`, e);
224
226
  }
225
227
  }
226
228
  });
@@ -233,11 +235,11 @@ const defaultMergeReducer = (state, rehydratedState, action) => {
233
235
  if (!rehydratedState[key]) {
234
236
  return [key, state[key]];
235
237
  }
236
- else if (!state[key]) {
237
- return [key, rehydratedState[key]];
238
+ else if (state[key]) {
239
+ return [key, deepFill(state[key], rehydratedState[key])];
238
240
  }
239
241
  else {
240
- return [key, deepFill(state[key], rehydratedState[key])];
242
+ return [key, rehydratedState[key]];
241
243
  }
242
244
  }));
243
245
  }
@@ -248,8 +250,8 @@ const defaultMergeReducer = (state, rehydratedState, action) => {
248
250
  * @param config
249
251
  */
250
252
  export const syncStorage = (config) => (reducer) => {
251
- if ((config.storage === undefined && !config.checkStorageAvailability) ||
252
- (config.checkStorageAvailability && checkIsBrowserEnv())) {
253
+ if ((config.storage === undefined && !config.checkStorageAvailability)
254
+ || (config.checkStorageAvailability && checkIsBrowserEnv())) {
253
255
  config.storage = localStorage || window.localStorage;
254
256
  }
255
257
  if (config.storageKeySerializer === undefined) {
@@ -272,21 +274,18 @@ export const syncStorage = (config) => (reducer) => {
272
274
  let nextState;
273
275
  // If state arrives undefined, we need to let it through the supplied reducer
274
276
  // in order to get a complete state as defined by user
275
- if (action.type === INIT && !state) {
276
- nextState = reducer(state, action);
277
- }
278
- else {
279
- nextState = { ...state };
280
- }
277
+ nextState = action.type === INIT && !state ? reducer(state, action) : { ...state };
281
278
  // Merge the store state with the rehydrated state using
282
279
  // either a user-defined reducer or the default.
283
280
  nextState = mergeReducer(nextState, rehydratedState, action);
284
281
  nextState = reducer(nextState, action);
285
282
  if (action.type !== INIT) {
286
- syncStateUpdate(nextState, (typeof config.syncKeyCondition === 'function') ? stateKeys.filter(key => {
287
- const keyName = typeof key === 'object' ? Object.keys(key)[0] : key;
288
- return config.syncKeyCondition(keyName, nextState);
289
- }) : stateKeys, config.storage, config.storageKeySerializer, config.removeOnUndefined, config.syncCondition, logger);
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);
290
289
  }
291
290
  if (config.postProcess) {
292
291
  config.postProcess(nextState);
@@ -294,4 +293,4 @@ export const syncStorage = (config) => (reducer) => {
294
293
  return nextState;
295
294
  };
296
295
  };
297
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1zeW5jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N5bmMtc3RvcmFnZS9zdG9yYWdlLXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUlyQzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBWSxFQUFFLEtBQVUsRUFBRSxFQUFFO0lBQ3RELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLDRDQUE0QyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzFGLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBWSxFQUFFLEtBQVUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDO0FBRXpEOztHQUVHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLEVBQUU7SUFDN0IsT0FBTyxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUM7QUFDdkMsQ0FBQyxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLElBQWlCLEVBQUUsRUFBRTtJQUM5QyxPQUFRLElBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNqQyxJQUFJLElBQUksR0FBRyxHQUFHLENBQUM7UUFFZixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzVCLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFFRCxJQUFJ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U0FBUyxDQUFDO0lBQ25CLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElOSVQsIFVQREFURSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IGRlZXBGaWxsIH0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB0eXBlIHsgTG9nZ2VyIH0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB0eXBlIHsgU3RvcmFnZUtleUNvbmZpZ3VyYXRpb24sIFN0b3JhZ2VLZXlzLCBTeW5jU3RvcmFnZUNvbmZpZywgU3luY1N0b3JhZ2VTeW5jT3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbi8qKlxuICogUmV2aXZlciB0aGUgZGF0ZSBmcm9tIGEgSlNPTiBmaWVsZCBpZiB0aGUgc3RyaW5nIGlzIG1hdGNoaW5nIGlzbyBmb3JtYXQuIFJldHVybiB0aGUgc2FtZSB2YWx1ZSBvdGhlcndpc2VcbiAqIEBwYXJhbSBfa2V5IEpTT04gaXRlbSBrZXkgbmFtZVxuICogQHBhcmFtIHZhbHVlIEpTT04gaXRlbSB2YWx1ZVxuICovXG5leHBvcnQgY29uc3QgZGF0ZVJldml2ZXIgPSAoX2tleTogc3RyaW5nLCB2YWx1ZTogYW55KSA9PiB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIC9cXGR7NH0tXFxkezJ9LVxcZHsyfVRcXGR7Mn06XFxkezJ9OlxcZHsyfS5cXGR7M31aLy50ZXN0KHZhbHVlKSkge1xuICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufTtcblxuLyoqXG4gKiBEdW1teSByZXZpdmVyIHJldHVybmluZyB0aGUgdmFsdWUgb2YgdGhlIGZpZWxkIGFzIGl0IGlzXG4gKiBAcGFyYW0gX2tleSBKU09OIGl0ZW0ga2V5IG5hbWVcbiAqIEBwYXJhbSB2YWx1ZSBKU09OIGl0ZW0gdmFsdWVcbiAqL1xuY29uc3QgZHVtbXlSZXZpdmVyID0gKF9rZXk6IHN0cmluZywgdmFsdWU6IGFueSkgPT4gdmFsdWU7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGlzIHJ1biBpbiBhIGJyb3dzZXJcbiAqL1xuY29uc3QgY2hlY2tJc0Jyb3dzZXJFbnYgPSAoKSA9PiB7XG4gIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJztcbn07XG5cbi8qKlxuICogVmFsaWRhdGUgdGhlIGtleXMgc3RydWN0dXJlIG9mIHRoZSByZWdpc3RlcmVkIHN0b3Jlc1xuICogQHBhcmFtIGtleXMgbWFwIG9mIHN0b3JlIHRvIHN5bmNocm9uaXplXG4gKi9cbmNvbnN0IHZhbGlkYXRlU3RhdGVLZXlzID0gKGtleXM6IFN0b3JhZ2VLZXlzKSA9PiB7XG4gIHJldHVybiAoa2V5cyBhcyBhbnlbXSkubWFwKChrZXkpID0+IHtcbiAgICBsZXQgYXR0ciA9IGtleTtcblxuICAgIGlmICh0eXBlb2Yga2V5ID09PSAnb2JqZWN0Jykge1xuICAgICAgYXR0ciA9IE9iamVjdC5rZXlzKGtleSlbMF07XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBhdHRyICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgJ2xvY2FsU3RvcmFnZVN5bmMgVW5rbm93biBQYXJhbWV0ZXIgVHlwZTogJyArIGBFeHBlY3RlZCB0eXBlIG9mIHN0cmluZywgZ290ICR7dHlwZW9mIGF0dHJ9YFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGtleTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIFJlaHlkcmF0ZSB0aGUgc3RhdGUgb2YgdGhlIHdob2xlIGFwcGxpY2F0aW9uIHN0b3JlXG4gKiBAcGFyYW0ga2V5cyBLZXlzIG9mIHRoZSBzdG9yZSB0byByZWh5ZHJhdGVcbiAqIEBwYXJhbSBzdG9yYWdlIHN0b3JhZ2Ugd2hlbiBnZXR0aW5nIHRoZSBkYXRhIGZyb21cbiAqIEBwYXJhbSBzdG9yYWdlS2V5U2VyaWFsaXplciBzdG9yYWdlIGtleSB0cmFuc2Zvcm0gZnVuY3Rpb25cbiAqIEBwYXJhbSByZXN0b3JlRGF0ZXMgZGV0ZXJtaW5lIGlmIHRoZSBkYXRlIG5lZWQgdG8gYmUgcmVzdG9yZWRcbiAqIEBwYXJhbSBsb2dnZXJcbiAqL1xuZXhwb3J0IGNvbnN0IHJlaHlkcmF0ZUFwcGxpY2F0aW9uU3RhdGUgPSAoXG4gIGtleXM6IFN0b3JhZ2VLZXlzLFxuICBzdG9yYWdlOiBTdG9yYWdlIHwgdW5kZWZpbmVkLFxuICBzdG9yYWdlS2V5U2VyaWFsaXplcjogKGtleTogc3RyaW5nKSA9PiBzdHJpbmcsXG4gIHJlc3RvcmVEYXRlczogYm9vbGVhbixcbiAgbG9nZ2VyOiBMb2dnZXIgPSBjb25zb2xlXG4pID0+IHtcbiAgcmV0dXJuIChrZXlzIGFzIGFueVtdKS5yZWR1Y2UoKGFjYywgY3VycikgPT4ge1xuICAgIGxldCBrZXkgPSBjdXJyO1xuICAgIGxldCByZXZpdmVyID0gcmVzdG9yZURhdGVzID8gZGF0ZVJldml2ZXIgOiBkdW1teVJldml2ZXI7XG4gICAgbGV0IGRlc2VyaWFsaXplOiAoKGFyZzA6IHN0cmluZykgPT4gYW55KSB8IHVuZGVmaW5lZDtcbiAgICBsZXQgZGVjcnlwdDogKChhcmcwOiBzdHJpbmcpID0+IHN0cmluZykgfCB1bmRlZmluZWQ7XG4gICAgbGV0IHN5bmNGb3JGZWF0dXJlID0gZmFsc2U7XG5cbiAgICBpZiAodHlwZW9mIGtleSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGtleSA9IE9iamVjdC5rZXlzKGtleSlbMF07XG4gICAgICBzeW5jRm9yRmVhdHVyZSA9ICEhKGN1cnI/LltrZXldIGFzIFN5bmNTdG9yYWdlU3luY09wdGlvbnMpPy5zeW5jRm9yRmVhdHVyZTtcblxuICAgICAgLy8gdXNlIHRoZSBjdXN0b20gcmV2aXZlciBmdW5jdGlvblxuICAgICAgaWYgKHR5cGVvZiBjdXJyW2tleV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV2aXZlciA9IGN1cnJba2V5XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHVzZSBjdXN0b20gcmV2aXZlciBmdW5jdGlvbiBpZiBhdmFpbGFibGVcbiAgICAgICAgaWYgKGN1cnJba2V5XS5yZXZpdmVyKSB7XG4gICAgICAgICAgcmV2aXZlciA9IGN1cnJba2V5XS5yZXZpdmVyO1xuICAgICAgICB9XG4gICAgICAgIC8vIHVzZSBjdXN0b20gc2VyaWFsaXplIGZ1bmN0aW9uIGlmIGF2YWlsYWJsZVxuICAgICAgICBpZiAoY3VycltrZXldLmRlc2VyaWFsaXplKSB7XG4gICAgICAgICAgZGVzZXJpYWxpemUgPSBjdXJyW2tleV0uZGVzZXJpYWxpemU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gRW5zdXJlIHRoYXQgZW5jcnlwdCBhbmQgZGVjcnlwdCBmdW5jdGlvbnMgYXJlIGJvdGggcHJlc2VudFxuICAgICAgaWYgKGN1cnJba2V5XS5lbmNyeXB0ICYmIGN1cnJba2V5XS5kZWNyeXB0KSB7XG4gICAgICAgIGlmICh0eXBlb2YgY3VycltrZXldLmVuY3J5cHQgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGN1cnJba2V5XS5kZWNyeXB0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgZGVjcnlwdCA9IGN1cnJba2V5XS5kZWNyeXB0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcihgRWl0aGVyIGVuY3J5cHQgb3IgZGVjcnlwdCBpcyBub3QgYSBmdW5jdGlvbiBvbiAnJHtjdXJyW2tleV0gYXMgc3RyaW5nfScga2V5IG9iamVjdC5gKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjdXJyW2tleV0uZW5jcnlwdCB8fCBjdXJyW2tleV0uZGVjcnlwdCkge1xuICAgICAgICAvLyBMZXQga25vdyB0aGF0IG9uZSBvZiB0aGUgZW5jcnlwdGlvbiBmdW5jdGlvbnMgaXMgbm90IHByb3ZpZGVkXG4gICAgICAgIGxvZ2dlci5lcnJvcihgRWl0aGVyIGVuY3J5cHQgb3IgZGVjcnlwdCBmdW5jdGlvbiBpcyBub3QgcHJlc2VudCBvbiAnJHtjdXJyW2tleV0gYXMgc3RyaW5nfScga2V5IG9iamVjdC5gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHN0b3JhZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgbGV0IHN0YXRlU2xpY2UgPSBzdG9yYWdlLmdldEl0ZW0oc3RvcmFnZUtleVNlcmlhbGl6ZXIoa2V5KSk7XG4gICAgICBpZiAoc3RhdGVTbGljZSkge1xuICAgICAgICAvLyBVc2UgcHJvdmlkZWQgZGVjcnlwdCBmdW5jdGlvblxuICAgICAgICBpZiAoZGVjcnlwdCkge1xuICAgICAgICAgIHN0YXRlU2xpY2UgPSBkZWNyeXB0KHN0YXRlU2xpY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNPYmplY3RSZWdleCA9IG5ldyBSZWdFeHAoJ3t8XFxcXFsnKTtcbiAgICAgICAgbGV0IHJhdyA9IHN0YXRlU2xpY2U7XG5cbiAgICAgICAgaWYgKHN0YXRlU2xpY2UgPT09ICdudWxsJyB8fCBzdGF0ZVNsaWNlID09PSAndHJ1ZScgfHwgc3RhdGVTbGljZSA9PT0gJ2ZhbHNlJyB8fCBpc09iamVjdFJlZ2V4LnRlc3Qoc3RhdGVTbGljZS5jaGFyQXQoMCkpKSB7XG4gICAgICAgICAgcmF3ID0gSlNPTi5wYXJzZShzdGF0ZVNsaWNlLCByZXZpdmVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlaHlkcmF0ZWRTdGF0ZSA9IGRlc2VyaWFsaXplID8gZGVzZXJpYWxpemUocmF3KSA6IHJhdztcblxuICAgICAgICByZXR1cm4gc3luY0ZvckZlYXR1cmUgPyByZWh5ZHJhdGVkU3RhdGUgOiBPYmplY3QuYXNzaWduKHt9LCBhY2MsIHtcbiAgICAgICAgICBba2V5XTogcmVoeWRyYXRlZFN0YXRlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG59O1xuXG4vLyBSZWN1cnNpdmVseSB0cmF2ZXJzZSBhbGwgcHJvcGVydGllcyBvZiB0aGUgZXhpc3Rpbmcgc2xpY2UgYXMgZGVmaW5lZCBieSB0aGUgYGZpbHRlcmAgYXJndW1lbnQsXG4vLyBhbmQgb3V0cHV0IHRoZSBuZXcgb2JqZWN0IHdpdGggZXh0cmFuZW91cyBwcm9wZXJ0aWVzIHJlbW92ZWQuXG5mdW5jdGlvbiBjcmVhdGVTdGF0ZVNsaWNlKGV4aXN0aW5nU2xpY2U6IGFueSwgZmlsdGVyOiAoc3RyaW5nIHwgbnVtYmVyIHwgU3RvcmFnZUtleUNvbmZpZ3VyYXRpb24gfCBTeW5jU3RvcmFnZVN5bmNPcHRpb25zKVtdKSB7XG4gIHJldHVybiBmaWx0ZXIucmVkdWNlKFxuICAgIChtZW1vOiB7IFt4OiBzdHJpbmddOiBhbnk7W3g6IG51bWJlcl06IGFueSB9LCBhdHRyOiBzdHJpbmcgfCBudW1iZXIgfCBTdG9yYWdlS2V5Q29uZmlndXJhdGlvbiB8IFN5bmNTdG9yYWdlU3luY09wdGlvbnMpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgYXR0ciA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGF0dHIgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZXhpc3RpbmdTbGljZT8uW2F0dHJdO1xuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG1lbW9bYXR0cl0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gYXR0cikge1xuICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYXR0ciwga2V5KSkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudDogYW55ID0gYXR0cltrZXkgYXMga2V5b2YgdHlwZW9mIGF0dHJdO1xuICAgICAgICAgICAgbWVtb1trZXldID0gY3JlYXRlU3RhdGVTbGljZShleGlzdGluZ1NsaWNlW2tleV0sIGVsZW1lbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG1lbW87XG4gICAgfSxcbiAgICB7fVxuICApO1xufVxuXG4vKipcbiAqIFVwZGF0ZSB0aGUgc3RhdGUgb2YgdGhlIHN0b3JlIGFmdGVyIHJldml2aW5nIGZyb20gc3RvcmFnZVxuICogTm90ZTogdGhpcyBmdW5jdGlvbiBpcyBtYWlubHkgdXNlIGZvciBpbnRlcm5hbCBwcm9jZXNzIG9mIHN0b3JlIHN5bmNocm9uaXphdGlvblxuICogQHBhcmFtIHN0YXRlIHN0b3JlIHN0YXRlXG4gKiBAcGFyYW0ga2V5cyBrZXkgb2YgdGhlIHN0b3JlXG4gKiBAcGFyYW0gc3RvcmFnZSBzdG9yYWdlIHRvIHVzZSBmb3IgdGhlIHN5bmNocm9uaXphdGlvblxuICogQHBhcmFtIHN0b3JhZ2VLZXlTZXJpYWxpemVyIGNhbGxiYWNrIHRvIHNlcmlhbGl6ZSB0aGUgc3RvcmUga2V5XG4gKiBAcGFyYW0gcmVtb3ZlT25VbmRlZmluZWQgRGVmaW5lIGlmIHRoZSBzdG9yZSBzaG91bGQgYmUgY2xlYW4gaW4gdGhlIHN0b3JhZ2UgaWYgdW5kZWZpbmVkXG4gKiBAcGFyYW0gc3luY0NvbmRpdGlvbiBjYWxsYmFjayB0byBkZWZpbmUgaWYgdGhlIHN5bmNocm9uaXphdGlvbiBzaG91bGQgYmUgcHJvY2Vzc1xuICogQHBhcmFtIGxvZ2dlciBMb2dnZXIgdG8gcmVwb3J0IG1lc3NhZ2VzXG4gKi9cbmV4cG9ydCBjb25zdCBzeW5jU3RhdGVVcGRhdGUgPSAoXG4gIHN0YXRlOiBhbnksXG4gIGtleXM6IFN0b3JhZ2VLZXlzLFxuICBzdG9yYWdlOiBTdG9yYWdlIHwgdW5kZWZpbmVkLFxuICBzdG9yYWdlS2V5U2VyaWFsaXplcjogKGtleTogc3RyaW5nIHwgbnVtYmVyKSA9PiBzdHJpbmcsXG4gIHJlbW92ZU9uVW5kZWZpbmVkID0gZmFsc2UsXG4gIHN5bmNDb25kaXRpb24/OiAoc3RhdGU6IGFueSkgPT4gYW55LFxuICBsb2dnZXI6IExvZ2dlciA9IGNvbnNvbGVcbikgPT4ge1xuICBpZiAoc3luY0NvbmRpdGlvbikge1xuICAgIHRyeSB7XG4gICAgICBpZiAoc3luY0NvbmRpdGlvbihzdGF0ZSkgIT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIFRyZWF0IFR5cGVFcnJvciBhcyBkbyBub3Qgc3luY1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICBrZXlzLmZvckVhY2goKGtleTogc3RyaW5nIHwgU3RvcmFnZUtleUNvbmZpZ3VyYXRpb24gfCBTeW5jU3RvcmFnZVN5bmNPcHRpb25zIHwgKChrZXk6IHN0cmluZywgdmFsdWU6IGFueSkgPT4gYW55KSk6IHZvaWQgPT4ge1xuICAgIGxldCBzdGF0ZVNsaWNlID0gc3RhdGU/LltrZXkgYXMgc3RyaW5nXTtcbiAgICBsZXQgcmVwbGFjZXI7XG4gICAgbGV0IHNwYWNlOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgbGV0IGVuY3J5cHQ7XG4gICAgbGV0IHN5bmNGb3JGZWF0dXJlID0gZmFsc2U7XG5cbiAgICBpZiAodHlwZW9mIGtleSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGNvbnN0IG5hbWUgPSAoT2JqZWN0LmtleXMoa2V5KSBhcyAoa2V5b2YgdHlwZW9mIGtleSlbXSlbMF07XG4gICAgICBzeW5jRm9yRmVhdHVyZSA9ICEhKGtleT8uW25hbWVdIGFzIFN5bmNTdG9yYWdlU3luY09wdGlvbnMpPy5zeW5jRm9yRmVhdHVyZTtcbiAgICAgIHN0YXRlU2xpY2UgPSBzeW5jRm9yRmVhdHVyZSA/IHN0YXRlIDogc3RhdGU/LltuYW1lXTtcblxuICAgICAgaWYgKHR5cGVvZiBzdGF0ZVNsaWNlICE9PSAndW5kZWZpbmVkJyAmJiBrZXlbbmFtZV0pIHtcbiAgICAgICAgLy8gdXNlIHNlcmlhbGl6ZSBmdW5jdGlvbiBpZiBzcGVjaWZpZWQuXG4gICAgICAgIGlmICgoa2V5W25hbWVdIGFzIGFueSkuc2VyaWFsaXplKSB7XG4gICAgICAgICAgc3RhdGVTbGljZSA9IChrZXlbbmFtZV0gYXMgU3luY1N0b3JhZ2VTeW5jT3B0aW9ucykuc2VyaWFsaXplIShzdGF0ZVNsaWNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBpZiBzZXJpYWxpemUgZnVuY3Rpb24gaXMgbm90IHNwZWNpZmllZCBmaWx0ZXIgb24gZmllbGRzIGlmIGFuIGFycmF5IGhhcyBiZWVuIHByb3ZpZGVkLlxuICAgICAgICAgIGxldCBmaWx0ZXI6IFN0b3JhZ2VLZXlDb25maWd1cmF0aW9uW10gfCB1bmRlZmluZWQ7XG4gICAgICAgICAgaWYgKChrZXlbbmFtZV0gYXMgYW55KS5yZWR1Y2UpIHtcbiAgICAgICAgICAgIGZpbHRlciA9IGtleVtuYW1lXSBhcyBTdG9yYWdlS2V5Q29uZmlndXJhdGlvbltdO1xuICAgICAgICAgIH0gZWxzZSBpZiAoKGtleVtuYW1lXSBhcyBhbnkpLmZpbHRlcikge1xuICAgICAgICAgICAgZmlsdGVyID0gKGtleVtuYW1lXSBhcyBhbnkpLmZpbHRlciBhcyBTdG9yYWdlS2V5Q29uZmlndXJhdGlvbltdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZmlsdGVyKSB7XG4gICAgICAgICAgICBzdGF0ZVNsaWNlID0gY3JlYXRlU3RhdGVTbGljZShzdGF0ZVNsaWNlLCBmaWx0ZXIpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIENoZWNrIGlmIGVuY3J5cHQgYW5kIGRlY3J5cHQgYXJlIHByZXNlbnQsIGFsc28gY2hlY2tlZCBhdCB0aGlzI3JlaHlkcmF0ZUFwcGxpY2F0aW9uU3RhdGUoKVxuICAgICAgICAgIGlmICgoa2V5W25hbWVdIGFzIGFueSkuZW5jcnlwdCAmJiAoa2V5W25hbWVdIGFzIGFueSkuZGVjcnlwdCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiAoa2V5W25hbWVdIGFzIGFueSkuZW5jcnlwdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICBlbmNyeXB0ID0gKGtleVtuYW1lXSBhcyBhbnkpLmVuY3J5cHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICgoa2V5W25hbWVdIGFzIGFueSkuZW5jcnlwdCB8fCAoa2V5W25hbWVdIGFzIGFueSkuZGVjcnlwdCkge1xuICAgICAgICAgICAgLy8gSWYgb25lIG9mIHRob3NlIGlzIG5vdCBwcmVzZW50LCB0aGVuIGxldCBrbm93IHRoYXQgb25lIGlzIG1pc3NpbmdcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgICAgYEVpdGhlciBlbmNyeXB0IG9yIGRlY3J5cHQgZnVuY3Rpb24gaXMgbm90IHByZXNlbnQgb24gJyR7a2V5W25hbWVdIGFzIHN0cmluZ30nIGtleSBvYmplY3QuYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKlxuICAgICAgICAgIFJlcGxhY2VyIGFuZCBzcGFjZSBhcmd1bWVudHMgdG8gcGFzcyB0byBKU09OLnN0cmluZ2lmeS5cbiAgICAgICAgICBJZiB0aGVzZSBmaWVsZHMgZG9uJ3QgZXhpc3QsIHVuZGVmaW5lZCB3aWxsIGJlIHBhc3NlZC5cbiAgICAgICAgKi9cbiAgICAgICAgcmVwbGFjZXIgPSAoa2V5W25hbWVdIGFzIGFueSkucmVwbGFjZXI7XG4gICAgICAgIHNwYWNlID0gKGtleVtuYW1lXSBhcyBhbnkpLnNwYWNlO1xuICAgICAgfVxuXG4gICAgICBrZXkgPSBuYW1lO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHN0YXRlU2xpY2UgPSBzeW5jRm9yRmVhdHVyZSA/IHN0YXRlIDogc3RhdGU/LltrZXldO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygc3RhdGVTbGljZSAhPT0gJ3VuZGVmaW5lZCcgJiYgc3RvcmFnZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoZW5jcnlwdCkge1xuICAgICAgICAgIC8vIGVuc3VyZSB0aGF0IGEgc3RyaW5nIG1lc3NhZ2UgaXMgcGFzc2VkXG4gICAgICAgICAgc3RhdGVTbGljZSA9IGVuY3J5cHQoXG4gICAgICAgICAgICB0eXBlb2Ygc3RhdGVTbGljZSA9PT0gJ3N0cmluZycgPyBzdGF0ZVNsaWNlIDogSlNPTi5zdHJpbmdpZnkoc3RhdGVTbGljZSwgcmVwbGFjZXIsIHNwYWNlKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgc3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICAgIHN0b3JhZ2VLZXlTZXJpYWxpemVyKGtleSBhcyBzdHJpbmcpLFxuICAgICAgICAgIHR5cGVvZiBzdGF0ZVNsaWNlID09PSAnc3RyaW5nJyA/IHN0YXRlU2xpY2UgOiBKU09OLnN0cmluZ2lmeShzdGF0ZVNsaWNlLCByZXBsYWNlciwgc3BhY2UpXG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignVW5hYmxlIHRvIHNhdmUgc3RhdGUgdG8gbG9jYWxTdG9yYWdlOicsIGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHN0YXRlU2xpY2UgPT09ICd1bmRlZmluZWQnICYmIHJlbW92ZU9uVW5kZWZpbmVkICYmIHN0b3JhZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgc3RvcmFnZS5yZW1vdmVJdGVtKHN0b3JhZ2VLZXlTZXJpYWxpemVyKGtleSBhcyBzdHJpbmcpKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBFeGNlcHRpb24gb24gcmVtb3ZpbmcvY2xlYW5pbmcgdW5kZWZpbmVkICcke2tleSBhcyBzdHJpbmd9JyBzdGF0ZWAsIGUpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59O1xuXG5jb25zdCBkZWZhdWx0TWVyZ2VSZWR1Y2VyID0gKHN0YXRlOiBhbnksIHJlaHlkcmF0ZWRTdGF0ZTogYW55LCBhY3Rpb246IGFueSkgPT4ge1xuICBpZiAoKGFjdGlvbi50eXBlID09PSBJTklUIHx8IGFjdGlvbi50eXBlID09PSBVUERBVEUpICYmIHJlaHlkcmF0ZWRTdGF0ZSkge1xuICAgIGNvbnN0IGFsbEtleXMgPSBBcnJheS5mcm9tKG5ldyBTZXQoWy4uLk9iamVjdC5rZXlzKHN0YXRlKSwgLi4uT2JqZWN0LmtleXMocmVoeWRyYXRlZFN0YXRlKV0pKTtcbiAgICBzdGF0ZSA9IE9iamVjdC5mcm9tRW50cmllcyhhbGxLZXlzLm1hcCgoa2V5KSA9PiB7XG4gICAgICAvLyBObyBuZWVkIHRvIGNyZWF0ZSBuZXcgb2JqZWN0IHJlZmVyZW5jZSBpZiBubyBtZXJnZSBpcyBhY3R1YWxseSBuZWVkZWRcbiAgICAgIGlmICghcmVoeWRyYXRlZFN0YXRlW2tleV0pIHtcbiAgICAgICAgcmV0dXJuIFtrZXksIHN0YXRlW2tleV1dO1xuICAgICAgfSBlbHNlIGlmICghc3RhdGVba2V5XSkge1xuICAgICAgICByZXR1cm4gW2tleSwgcmVoeWRyYXRlZFN0YXRlW2tleV1dO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFtrZXksIGRlZXBGaWxsKHN0YXRlW2tleV0sIHJlaHlkcmF0ZWRTdGF0ZVtrZXldKV07XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlO1xufTtcblxuLyoqXG4gKiBMb2NhbCBhbmQgU2Vzc2lvbiBzdG9yYWdlIHN5bmNocm9uaXphdGlvbiBoZWxwZXJcbiAqIEBwYXJhbSBjb25maWdcbiAqL1xuZXhwb3J0IGNvbnN0IHN5bmNTdG9yYWdlID0gKGNvbmZpZzogU3luY1N0b3JhZ2VDb25maWcpID0+IChyZWR1Y2VyOiBhbnkpID0+IHtcbiAgaWYgKFxuICAgIChjb25maWcuc3RvcmFnZSA9PT0gdW5kZWZpbmVkICYmICFjb25maWcuY2hlY2tTdG9yYWdlQXZhaWxhYmlsaXR5KSB8fFxuICAgIChjb25maWcuY2hlY2tTdG9yYWdlQXZhaWxhYmlsaXR5ICYmIGNoZWNrSXNCcm93c2VyRW52KCkpXG4gICkge1xuICAgIGNvbmZpZy5zdG9yYWdlID0gbG9jYWxTdG9yYWdlIHx8IHdpbmRvdy5sb2NhbFN0b3JhZ2U7XG4gIH1cblxuICBpZiAoY29uZmlnLnN0b3JhZ2VLZXlTZXJpYWxpemVyID09PSB1bmRlZmluZWQpIHtcbiAgICBjb25maWcuc3RvcmFnZUtleVNlcmlhbGl6ZXIgPSAoa2V5KSA9PiBrZXk7XG4gIH1cblxuICBpZiAoY29uZmlnLnJlc3RvcmVEYXRlcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY29uZmlnLnJlc3RvcmVEYXRlcyA9IHRydWU7XG4gIH1cblxuICAvLyBVc2UgZGVmYXVsdCBtZXJnZSByZWR1Y2VyLlxuICBsZXQgbWVyZ2VSZWR1Y2VyID0gY29uZmlnLm1lcmdlUmVkdWNlcjtcblxuICBpZiAobWVyZ2VSZWR1Y2VyID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIG1lcmdlUmVkdWNlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIG1lcmdlUmVkdWNlciA9IGRlZmF1bHRNZXJnZVJlZHVjZXI7XG4gIH1cblxuICBjb25zdCBsb2dnZXIgPSBjb25maWcubG9nZ2VyIHx8IGNvbnNvbGU7XG5cbiAgY29uc3Qgc3RhdGVLZXlzID0gdmFsaWRhdGVTdGF0ZUtleXMoY29uZmlnLmtleXMpO1xuICBjb25zdCByZWh5ZHJhdGVkU3RhdGUgPSBjb25maWcucmVoeWRyYXRlXG4gICAgPyByZWh5ZHJhdGVBcHBsaWNhdGlvblN0YXRlKHN0YXRlS2V5cywgY29uZmlnLnN0b3JhZ2UsIGNvbmZpZy5zdG9yYWdlS2V5U2VyaWFsaXplciwgY29uZmlnLnJlc3RvcmVEYXRlcywgbG9nZ2VyKVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiAoc3RhdGU6IGFueSwgYWN0aW9uOiBhbnkpID0+IHtcbiAgICBsZXQgbmV4dFN0YXRlOiBhbnk7XG5cbiAgICAvLyBJZiBzdGF0ZSBhcnJpdmVzIHVuZGVmaW5lZCwgd2UgbmVlZCB0byBsZXQgaXQgdGhyb3VnaCB0aGUgc3VwcGxpZWQgcmVkdWNlclxuICAgIC8vIGluIG9yZGVyIHRvIGdldCBhIGNvbXBsZXRlIHN0YXRlIGFzIGRlZmluZWQgYnkgdXNlclxuICAgIGlmIChhY3Rpb24udHlwZSA9PT0gSU5JVCAmJiAhc3RhdGUpIHtcbiAgICAgIG5leHRTdGF0ZSA9IHJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRTdGF0ZSA9IHsgLi4uc3RhdGUgfTtcbiAgICB9XG5cbiAgICAvLyBNZXJnZSB0aGUgc3RvcmUgc3RhdGUgd2l0aCB0aGUgcmVoeWRyYXRlZCBzdGF0ZSB1c2luZ1xuICAgIC8vIGVpdGhlciBhIHVzZXItZGVmaW5lZCByZWR1Y2VyIG9yIHRoZSBkZWZhdWx0LlxuICAgIG5leHRTdGF0ZSA9IG1lcmdlUmVkdWNlcihuZXh0U3RhdGUsIHJlaHlkcmF0ZWRTdGF0ZSwgYWN0aW9uKTtcblxuICAgIG5leHRTdGF0ZSA9IHJlZHVjZXIobmV4dFN0YXRlLCBhY3Rpb24pO1xuXG4gICAgaWYgKGFjdGlvbi50eXBlICE9PSBJTklUKSB7XG4gICAgICBzeW5jU3RhdGVVcGRhdGUoXG4gICAgICAgIG5leHRTdGF0ZSxcbiAgICAgICAgKHR5cGVvZiBjb25maWcuc3luY0tleUNvbmRpdGlvbiA9PT0gJ2Z1bmN0aW9uJykgPyBzdGF0ZUtleXMuZmlsdGVyKGtleSA9PiB7XG4gICAgICAgICAgY29uc3Qga2V5TmFtZSA9IHR5cGVvZiBrZXkgPT09ICdvYmplY3QnID8gT2JqZWN0LmtleXMoa2V5KVswXSA6IGtleTtcbiAgICAgICAgICByZXR1cm4gY29uZmlnLnN5bmNLZXlDb25kaXRpb24hKGtleU5hbWUsIG5leHRTdGF0ZSk7XG4gICAgICAgIH0pIDogc3RhdGVLZXlzLFxuICAgICAgICBjb25maWcuc3RvcmFnZSxcbiAgICAgICAgY29uZmlnLnN0b3JhZ2VLZXlTZXJpYWxpemVyIGFzIChrZXk6IHN0cmluZyB8IG51bWJlcikgPT4gc3RyaW5nLFxuICAgICAgICBjb25maWcucmVtb3ZlT25VbmRlZmluZWQsXG4gICAgICAgIGNvbmZpZy5zeW5jQ29uZGl0aW9uLFxuICAgICAgICBsb2dnZXJcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChjb25maWcucG9zdFByb2Nlc3MpIHtcbiAgICAgIGNvbmZpZy5wb3N0UHJvY2VzcyhuZXh0U3RhdGUpO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dFN0YXRlO1xuICB9O1xufTtcbiJdfQ==
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==
@@ -1,28 +1,7 @@
1
- import { createAction, props, INIT, UPDATE } from '@ngrx/store';
2
- import { deepFill } from '@o3r/core';
3
- import { utils } from '@ama-sdk/core';
1
+ import { INIT, UPDATE, createAction, props } from '@ngrx/store';
4
2
  import equal from 'fast-deep-equal';
5
-
6
- /**
7
- * Defines if an object is a Serializer
8
- * @param obj Object to test
9
- * @returns True if the object is a Serializer
10
- */
11
- const isSerializer = (obj) => !!(obj.serialize || obj.deserialize || obj.reviver || obj.replacer || obj.initialState);
12
- /**
13
- * Label of the action to rehydrate the store
14
- */
15
- const REHYDRATE_ACTION_LABEL = '[storeSync] rehydrate';
16
- /**
17
- * Action to rehydrate the store
18
- */
19
- const rehydrateAction = createAction(REHYDRATE_ACTION_LABEL, props());
20
- /**
21
- * Defines if the storage is a non-async storage
22
- * @param options The storage config
23
- * @returns in case the storage used is a non-async storage
24
- */
25
- const isLocalStorageConfig = (options) => !options.storage || options.storage instanceof Storage;
3
+ import { utils } from '@ama-sdk/core';
4
+ import { deepFill } from '@o3r/core';
26
5
 
27
6
  const mapper = [
28
7
  {
@@ -143,9 +122,11 @@ const rehydrateApplicationState = (keys, storage, storageKeySerializer, restoreD
143
122
  raw = JSON.parse(stateSlice, reviver);
144
123
  }
145
124
  const rehydratedState = deserialize ? deserialize(raw) : raw;
146
- return syncForFeature ? rehydratedState : Object.assign({}, acc, {
147
- [key]: rehydratedState
148
- });
125
+ return syncForFeature
126
+ ? rehydratedState
127
+ : Object.assign({}, acc, {
128
+ [key]: rehydratedState
129
+ });
149
130
  }
150
131
  }
151
132
  return acc;
@@ -257,7 +238,7 @@ const syncStateUpdate = (state, keys, storage, storageKeySerializer, removeOnUnd
257
238
  storage.setItem(storageKeySerializer(key), typeof stateSlice === 'string' ? stateSlice : JSON.stringify(stateSlice, replacer, space));
258
239
  }
259
240
  catch (e) {
260
- console.warn('Unable to save state to localStorage:', e);
241
+ logger.warn('Unable to save state to localStorage:', e);
261
242
  }
262
243
  }
263
244
  else if (typeof stateSlice === 'undefined' && removeOnUndefined && storage !== undefined) {
@@ -265,7 +246,7 @@ const syncStateUpdate = (state, keys, storage, storageKeySerializer, removeOnUnd
265
246
  storage.removeItem(storageKeySerializer(key));
266
247
  }
267
248
  catch (e) {
268
- console.warn(`Exception on removing/cleaning undefined '${key}' state`, e);
249
+ logger.warn(`Exception on removing/cleaning undefined '${key}' state`, e);
269
250
  }
270
251
  }
271
252
  });
@@ -278,11 +259,11 @@ const defaultMergeReducer = (state, rehydratedState, action) => {
278
259
  if (!rehydratedState[key]) {
279
260
  return [key, state[key]];
280
261
  }
281
- else if (!state[key]) {
282
- return [key, rehydratedState[key]];
262
+ else if (state[key]) {
263
+ return [key, deepFill(state[key], rehydratedState[key])];
283
264
  }
284
265
  else {
285
- return [key, deepFill(state[key], rehydratedState[key])];
266
+ return [key, rehydratedState[key]];
286
267
  }
287
268
  }));
288
269
  }
@@ -293,8 +274,8 @@ const defaultMergeReducer = (state, rehydratedState, action) => {
293
274
  * @param config
294
275
  */
295
276
  const syncStorage = (config) => (reducer) => {
296
- if ((config.storage === undefined && !config.checkStorageAvailability) ||
297
- (config.checkStorageAvailability && checkIsBrowserEnv())) {
277
+ if ((config.storage === undefined && !config.checkStorageAvailability)
278
+ || (config.checkStorageAvailability && checkIsBrowserEnv())) {
298
279
  config.storage = localStorage || window.localStorage;
299
280
  }
300
281
  if (config.storageKeySerializer === undefined) {
@@ -317,21 +298,18 @@ const syncStorage = (config) => (reducer) => {
317
298
  let nextState;
318
299
  // If state arrives undefined, we need to let it through the supplied reducer
319
300
  // in order to get a complete state as defined by user
320
- if (action.type === INIT && !state) {
321
- nextState = reducer(state, action);
322
- }
323
- else {
324
- nextState = { ...state };
325
- }
301
+ nextState = action.type === INIT && !state ? reducer(state, action) : { ...state };
326
302
  // Merge the store state with the rehydrated state using
327
303
  // either a user-defined reducer or the default.
328
304
  nextState = mergeReducer(nextState, rehydratedState, action);
329
305
  nextState = reducer(nextState, action);
330
306
  if (action.type !== INIT) {
331
- syncStateUpdate(nextState, (typeof config.syncKeyCondition === 'function') ? stateKeys.filter(key => {
332
- const keyName = typeof key === 'object' ? Object.keys(key)[0] : key;
333
- return config.syncKeyCondition(keyName, nextState);
334
- }) : stateKeys, config.storage, config.storageKeySerializer, config.removeOnUndefined, config.syncCondition, logger);
307
+ syncStateUpdate(nextState, (typeof config.syncKeyCondition === 'function')
308
+ ? stateKeys.filter((key) => {
309
+ const keyName = typeof key === 'object' ? Object.keys(key)[0] : key;
310
+ return config.syncKeyCondition(keyName, nextState);
311
+ })
312
+ : stateKeys, config.storage, config.storageKeySerializer, config.removeOnUndefined, config.syncCondition, logger);
335
313
  }
336
314
  if (config.postProcess) {
337
315
  config.postProcess(nextState);
@@ -353,6 +331,27 @@ const syncStorage = (config) => (reducer) => {
353
331
  * - migrate tests to Jest
354
332
  */
355
333
 
334
+ /**
335
+ * Defines if an object is a Serializer
336
+ * @param obj Object to test
337
+ * @returns True if the object is a Serializer
338
+ */
339
+ const isSerializer = (obj) => !!(obj.serialize || obj.deserialize || obj.reviver || obj.replacer || obj.initialState);
340
+ /**
341
+ * Label of the action to rehydrate the store
342
+ */
343
+ const REHYDRATE_ACTION_LABEL = '[storeSync] rehydrate';
344
+ /**
345
+ * Action to rehydrate the store
346
+ */
347
+ const rehydrateAction = createAction(REHYDRATE_ACTION_LABEL, props());
348
+ /**
349
+ * Defines if the storage is a non-async storage
350
+ * @param options The storage config
351
+ * @returns in case the storage used is a non-async storage
352
+ */
353
+ const isLocalStorageConfig = (options) => !options.storage || options.storage instanceof Storage;
354
+
356
355
  /**
357
356
  * Storage synchronizer
358
357
  */
@@ -423,7 +422,7 @@ class StorageSync {
423
422
  return acc;
424
423
  }, {});
425
424
  }
426
- if (Object.keys(overrides).length) {
425
+ if (Object.keys(overrides).length > 0) {
427
426
  hydratedState = { ...state, ...overrides };
428
427
  }
429
428
  }
@@ -433,18 +432,20 @@ class StorageSync {
433
432
  };
434
433
  this.options = {
435
434
  keys: [],
436
- ...(extraOptions?.disableSmartSync ? {} : {
437
- syncKeyCondition: (key, state) => !equal(this.storeImage[key], state[key]),
438
- postProcess: (state) => {
439
- this.options.keys.forEach(key => {
440
- const keyName = typeof key === 'object' ? Object.keys(key)[0] : key;
441
- this.storeImage[keyName] = state[keyName];
442
- });
443
- }
444
- }),
435
+ ...(extraOptions?.disableSmartSync
436
+ ? {}
437
+ : {
438
+ syncKeyCondition: (key, state) => !equal(this.storeImage[key], state[key]),
439
+ postProcess: (state) => {
440
+ this.options.keys.forEach((key) => {
441
+ const keyName = typeof key === 'object' ? Object.keys(key)[0] : key;
442
+ this.storeImage[keyName] = state[keyName];
443
+ });
444
+ }
445
+ }),
445
446
  ...options,
446
447
  storage: options?.storage,
447
- mergeReducer: typeof options?.mergeReducer !== 'function' ? this.mergeReducer : options.mergeReducer
448
+ mergeReducer: typeof options?.mergeReducer === 'function' ? options.mergeReducer : this.mergeReducer
448
449
  };
449
450
  }
450
451
  }
@@ -1 +1 @@
1
- {"version":3,"file":"o3r-store-sync.mjs","sources":["../../src/core/storage-sync.helpers.ts","../../src/deep-fill/deep-fill.ts","../../src/sync-storage/storage-sync.ts","../../src/sync-storage/index.ts","../../src/core/storage-sync.ts","../../src/o3r-store-sync.ts"],"sourcesContent":["import type { Serializer } from '@o3r/core';\nimport { createAction, props } from '@ngrx/store';\nimport type { StorageSyncOptions } from './interfaces';\nimport type { SyncStorageConfig } from '../sync-storage';\n\n/**\n * Defines if an object is a Serializer\n * @param obj Object to test\n * @returns True if the object is a Serializer\n */\nexport const isSerializer = (obj: any): obj is Serializer<any> => !!(obj.serialize || obj.deserialize || obj.reviver || obj.replacer || obj.initialState);\n\n/**\n * Label of the action to rehydrate the store\n */\nexport const REHYDRATE_ACTION_LABEL = '[storeSync] rehydrate';\n\n/**\n * Action to rehydrate the store\n */\nexport const rehydrateAction = createAction(REHYDRATE_ACTION_LABEL, props<{\n payload: Record<string, any>;\n}>());\n\n/**\n * Defines if the storage is a non-async storage\n * @param options The storage config\n * @returns in case the storage used is a non-async storage\n */\nexport const isLocalStorageConfig = (options: StorageSyncOptions): options is SyncStorageConfig => !options.storage || options.storage instanceof Storage;\n","import { deepFill, type PrimitiveReviverMapper } from '@o3r/core';\nimport { utils } from '@ama-sdk/core';\n\nconst mapper: PrimitiveReviverMapper[] = [\n {\n condition: (data) => data instanceof utils.DateTime,\n construct: (data) => new utils.DateTime(data)\n },\n {\n condition: (data) => data instanceof utils.Date,\n construct: (data) => new utils.Date(data)\n }\n];\n\n/**\n * Deep fill of base object using source\n * It will do a deep merge of the objects, overriding arrays\n * All properties not present in source, but present in base, will remain\n * @param base\n * @param source\n */\nexport function deepFillWithDate<T extends { [x: string]: any }>(base: T, source?: { [x: string]: any }): T {\n return deepFill(base, source, mapper);\n}\n","import { INIT, UPDATE } from '@ngrx/store';\nimport { deepFill } from '@o3r/core';\nimport type { Logger } from '@o3r/core';\nimport type { StorageKeyConfiguration, StorageKeys, SyncStorageConfig, SyncStorageSyncOptions } from './interfaces';\n\n/**\n * Reviver the date from a JSON field if the string is matching iso format. Return the same value otherwise\n * @param _key JSON item key name\n * @param value JSON item value\n */\nexport const dateReviver = (_key: string, value: any) => {\n if (typeof value === 'string' && /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/.test(value)) {\n return new Date(value);\n }\n return value;\n};\n\n/**\n * Dummy reviver returning the value of the field as it is\n * @param _key JSON item key name\n * @param value JSON item value\n */\nconst dummyReviver = (_key: string, value: any) => value;\n\n/**\n * Determine if the code is run in a browser\n */\nconst checkIsBrowserEnv = () => {\n return typeof window !== 'undefined';\n};\n\n/**\n * Validate the keys structure of the registered stores\n * @param keys map of store to synchronize\n */\nconst validateStateKeys = (keys: StorageKeys) => {\n return (keys as any[]).map((key) => {\n let attr = key;\n\n if (typeof key === 'object') {\n attr = Object.keys(key)[0];\n }\n\n if (typeof attr !== 'string') {\n throw new TypeError(\n 'localStorageSync Unknown Parameter Type: ' + `Expected type of string, got ${typeof attr}`\n );\n }\n return key;\n });\n};\n\n/**\n * Rehydrate the state of the whole application store\n * @param keys Keys of the store to rehydrate\n * @param storage storage when getting the data from\n * @param storageKeySerializer storage key transform function\n * @param restoreDates determine if the date need to be restored\n * @param logger\n */\nexport const rehydrateApplicationState = (\n keys: StorageKeys,\n storage: Storage | undefined,\n storageKeySerializer: (key: string) => string,\n restoreDates: boolean,\n logger: Logger = console\n) => {\n return (keys as any[]).reduce((acc, curr) => {\n let key = curr;\n let reviver = restoreDates ? dateReviver : dummyReviver;\n let deserialize: ((arg0: string) => any) | undefined;\n let decrypt: ((arg0: string) => string) | undefined;\n let syncForFeature = false;\n\n if (typeof key === 'object') {\n key = Object.keys(key)[0];\n syncForFeature = !!(curr?.[key] as SyncStorageSyncOptions)?.syncForFeature;\n\n // use the custom reviver function\n if (typeof curr[key] === 'function') {\n reviver = curr[key];\n } else {\n // use custom reviver function if available\n if (curr[key].reviver) {\n reviver = curr[key].reviver;\n }\n // use custom serialize function if available\n if (curr[key].deserialize) {\n deserialize = curr[key].deserialize;\n }\n }\n\n // Ensure that encrypt and decrypt functions are both present\n if (curr[key].encrypt && curr[key].decrypt) {\n if (typeof curr[key].encrypt === 'function' && typeof curr[key].decrypt === 'function') {\n decrypt = curr[key].decrypt;\n } else {\n logger.error(`Either encrypt or decrypt is not a function on '${curr[key] as string}' key object.`);\n }\n } else if (curr[key].encrypt || curr[key].decrypt) {\n // Let know that one of the encryption functions is not provided\n logger.error(`Either encrypt or decrypt function is not present on '${curr[key] as string}' key object.`);\n }\n }\n if (storage !== undefined) {\n let stateSlice = storage.getItem(storageKeySerializer(key));\n if (stateSlice) {\n // Use provided decrypt function\n if (decrypt) {\n stateSlice = decrypt(stateSlice);\n }\n\n const isObjectRegex = new RegExp('{|\\\\[');\n let raw = stateSlice;\n\n if (stateSlice === 'null' || stateSlice === 'true' || stateSlice === 'false' || isObjectRegex.test(stateSlice.charAt(0))) {\n raw = JSON.parse(stateSlice, reviver);\n }\n\n const rehydratedState = deserialize ? deserialize(raw) : raw;\n\n return syncForFeature ? rehydratedState : Object.assign({}, acc, {\n [key]: rehydratedState\n });\n }\n }\n return acc;\n }, {});\n};\n\n// Recursively traverse all properties of the existing slice as defined by the `filter` argument,\n// and output the new object with extraneous properties removed.\nfunction createStateSlice(existingSlice: any, filter: (string | number | StorageKeyConfiguration | SyncStorageSyncOptions)[]) {\n return filter.reduce(\n (memo: { [x: string]: any;[x: number]: any }, attr: string | number | StorageKeyConfiguration | SyncStorageSyncOptions) => {\n if (typeof attr === 'string' || typeof attr === 'number') {\n const value = existingSlice?.[attr];\n if (value !== undefined) {\n memo[attr] = value;\n }\n } else {\n for (const key in attr) {\n if (Object.prototype.hasOwnProperty.call(attr, key)) {\n const element: any = attr[key as keyof typeof attr];\n memo[key] = createStateSlice(existingSlice[key], element);\n }\n }\n }\n return memo;\n },\n {}\n );\n}\n\n/**\n * Update the state of the store after reviving from storage\n * Note: this function is mainly use for internal process of store synchronization\n * @param state store state\n * @param keys key of the store\n * @param storage storage to use for the synchronization\n * @param storageKeySerializer callback to serialize the store key\n * @param removeOnUndefined Define if the store should be clean in the storage if undefined\n * @param syncCondition callback to define if the synchronization should be process\n * @param logger Logger to report messages\n */\nexport const syncStateUpdate = (\n state: any,\n keys: StorageKeys,\n storage: Storage | undefined,\n storageKeySerializer: (key: string | number) => string,\n removeOnUndefined = false,\n syncCondition?: (state: any) => any,\n logger: Logger = console\n) => {\n if (syncCondition) {\n try {\n if (syncCondition(state) !== true) {\n return;\n }\n } catch (e) {\n // Treat TypeError as do not sync\n if (e instanceof TypeError) {\n return;\n }\n throw e;\n }\n }\n\n keys.forEach((key: string | StorageKeyConfiguration | SyncStorageSyncOptions | ((key: string, value: any) => any)): void => {\n let stateSlice = state?.[key as string];\n let replacer;\n let space: string | number | undefined;\n let encrypt;\n let syncForFeature = false;\n\n if (typeof key === 'object') {\n const name = (Object.keys(key) as (keyof typeof key)[])[0];\n syncForFeature = !!(key?.[name] as SyncStorageSyncOptions)?.syncForFeature;\n stateSlice = syncForFeature ? state : state?.[name];\n\n if (typeof stateSlice !== 'undefined' && key[name]) {\n // use serialize function if specified.\n if ((key[name] as any).serialize) {\n stateSlice = (key[name] as SyncStorageSyncOptions).serialize!(stateSlice);\n } else {\n // if serialize function is not specified filter on fields if an array has been provided.\n let filter: StorageKeyConfiguration[] | undefined;\n if ((key[name] as any).reduce) {\n filter = key[name] as StorageKeyConfiguration[];\n } else if ((key[name] as any).filter) {\n filter = (key[name] as any).filter as StorageKeyConfiguration[];\n }\n if (filter) {\n stateSlice = createStateSlice(stateSlice, filter);\n }\n\n // Check if encrypt and decrypt are present, also checked at this#rehydrateApplicationState()\n if ((key[name] as any).encrypt && (key[name] as any).decrypt) {\n if (typeof (key[name] as any).encrypt === 'function') {\n encrypt = (key[name] as any).encrypt;\n }\n } else if ((key[name] as any).encrypt || (key[name] as any).decrypt) {\n // If one of those is not present, then let know that one is missing\n logger.error(\n `Either encrypt or decrypt function is not present on '${key[name] as string}' key object.`\n );\n }\n }\n\n /*\n Replacer and space arguments to pass to JSON.stringify.\n If these fields don't exist, undefined will be passed.\n */\n replacer = (key[name] as any).replacer;\n space = (key[name] as any).space;\n }\n\n key = name;\n } else if (typeof key === 'string') {\n stateSlice = syncForFeature ? state : state?.[key];\n }\n\n if (typeof stateSlice !== 'undefined' && storage !== undefined) {\n try {\n if (encrypt) {\n // ensure that a string message is passed\n stateSlice = encrypt(\n typeof stateSlice === 'string' ? stateSlice : JSON.stringify(stateSlice, replacer, space)\n );\n }\n storage.setItem(\n storageKeySerializer(key as string),\n typeof stateSlice === 'string' ? stateSlice : JSON.stringify(stateSlice, replacer, space)\n );\n } catch (e) {\n console.warn('Unable to save state to localStorage:', e);\n }\n } else if (typeof stateSlice === 'undefined' && removeOnUndefined && storage !== undefined) {\n try {\n storage.removeItem(storageKeySerializer(key as string));\n } catch (e) {\n console.warn(`Exception on removing/cleaning undefined '${key as string}' state`, e);\n }\n }\n });\n};\n\nconst defaultMergeReducer = (state: any, rehydratedState: any, action: any) => {\n if ((action.type === INIT || action.type === UPDATE) && rehydratedState) {\n const allKeys = Array.from(new Set([...Object.keys(state), ...Object.keys(rehydratedState)]));\n state = Object.fromEntries(allKeys.map((key) => {\n // No need to create new object reference if no merge is actually needed\n if (!rehydratedState[key]) {\n return [key, state[key]];\n } else if (!state[key]) {\n return [key, rehydratedState[key]];\n } else {\n return [key, deepFill(state[key], rehydratedState[key])];\n }\n }));\n }\n\n return state;\n};\n\n/**\n * Local and Session storage synchronization helper\n * @param config\n */\nexport const syncStorage = (config: SyncStorageConfig) => (reducer: any) => {\n if (\n (config.storage === undefined && !config.checkStorageAvailability) ||\n (config.checkStorageAvailability && checkIsBrowserEnv())\n ) {\n config.storage = localStorage || window.localStorage;\n }\n\n if (config.storageKeySerializer === undefined) {\n config.storageKeySerializer = (key) => key;\n }\n\n if (config.restoreDates === undefined) {\n config.restoreDates = true;\n }\n\n // Use default merge reducer.\n let mergeReducer = config.mergeReducer;\n\n if (mergeReducer === undefined || typeof mergeReducer !== 'function') {\n mergeReducer = defaultMergeReducer;\n }\n\n const logger = config.logger || console;\n\n const stateKeys = validateStateKeys(config.keys);\n const rehydratedState = config.rehydrate\n ? rehydrateApplicationState(stateKeys, config.storage, config.storageKeySerializer, config.restoreDates, logger)\n : undefined;\n\n return (state: any, action: any) => {\n let nextState: any;\n\n // If state arrives undefined, we need to let it through the supplied reducer\n // in order to get a complete state as defined by user\n if (action.type === INIT && !state) {\n nextState = reducer(state, action);\n } else {\n nextState = { ...state };\n }\n\n // Merge the store state with the rehydrated state using\n // either a user-defined reducer or the default.\n nextState = mergeReducer(nextState, rehydratedState, action);\n\n nextState = reducer(nextState, action);\n\n if (action.type !== INIT) {\n syncStateUpdate(\n nextState,\n (typeof config.syncKeyCondition === 'function') ? stateKeys.filter(key => {\n const keyName = typeof key === 'object' ? Object.keys(key)[0] : key;\n return config.syncKeyCondition!(keyName, nextState);\n }) : stateKeys,\n config.storage,\n config.storageKeySerializer as (key: string | number) => string,\n config.removeOnUndefined,\n config.syncCondition,\n logger\n );\n }\n if (config.postProcess) {\n config.postProcess(nextState);\n }\n return nextState;\n };\n};\n","/*\n * This file is a fork of the package ngrx-store-localstorage (https://github.com/btroncone/ngrx-store-localstorage) - MIT\n * The following update as been added:\n * - properly export dateReviver function\n * - add missing comments\n * - explicit dependency to @ngrx/store for action names\n * - change interface names to prefix with \"sync\"\n * - add logger support\n * - fix lint according to eslint rules\n * - split code in several files\n * - migrate tests to Jest\n */\n\nexport * from './interfaces';\nexport * from './storage-sync';\n","import {INIT, UPDATE} from '@ngrx/store';\nimport { deepFillWithDate } from '../deep-fill/deep-fill';\nimport equal from 'fast-deep-equal';\nimport type {StorageSyncOptions} from './interfaces';\nimport {isLocalStorageConfig, isSerializer, rehydrateAction} from './storage-sync.helpers';\nimport {syncStorage} from '../sync-storage';\nimport {StorageSyncConstructorOptions} from './interfaces';\n\n/**\n * Storage synchronizer\n */\nexport class StorageSync {\n private readonly alreadyHydratedStoreSlices: Set<string> = new Set();\n private hasHydrated = false;\n private readonly storeImage: { [key: string]: any } = {};\n\n public options: StorageSyncOptions;\n\n constructor(options?: StorageSyncConstructorOptions, extraOptions?: {disableSmartSync: boolean}) {\n this.options = {\n keys: [],\n ...(extraOptions?.disableSmartSync ? {} : {\n syncKeyCondition: (key, state) => !equal(this.storeImage[key], state[key]),\n postProcess: (state) => {\n this.options.keys.forEach(key => {\n const keyName: string = typeof key === 'object' ? Object.keys(key)[0] : key;\n this.storeImage[keyName] = state[keyName];\n });\n }\n }),\n ...options,\n storage: options?.storage as unknown as Storage,\n mergeReducer: typeof options?.mergeReducer !== 'function' ? this.mergeReducer : options.mergeReducer\n };\n }\n\n /**\n * Handle state manipulation in case of store storage sync\n * 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\n * Pass it as mergeReducer callback when calling localStorageSync function from 'ngrx-store-localstorage', in the app\n * @param state actual state\n * @param rehydratedState state from storage\n * @param action Triggered action\n */\n public readonly mergeReducer = (state: any, rehydratedState: any, action: any) => {\n if (rehydratedState) {\n if (action.type === INIT) {\n state = deepFillWithDate(state, rehydratedState);\n }\n if (action.type === UPDATE && Array.isArray(action.features)) {\n\n const notHandledFeatures = action.features.filter((featName: string) => !this.alreadyHydratedStoreSlices.has(featName));\n\n notHandledFeatures.filter((featName: string) => !!rehydratedState[featName]).forEach((fName: string) => {\n state[fName] = state[fName] ? deepFillWithDate(state[fName], rehydratedState[fName]) : rehydratedState[fName];\n this.alreadyHydratedStoreSlices.add(fName);\n });\n\n }\n }\n return state;\n };\n\n /**\n * Returns a meta reducer that handles storage sync\n */\n public localStorageSync = () => {\n const base = (reducer: any) => syncStorage({\n ...this.options,\n rehydrate: false,\n storage: this.options.storage as unknown as Storage,\n syncCondition: () => this.hasHydrated\n })(reducer);\n\n return (reducer: any) => {\n if (isLocalStorageConfig(this.options)) {\n return syncStorage(this.options)(reducer);\n }\n\n\n return (state: any, action: any) => {\n let hydratedState = state;\n if (action.type === rehydrateAction.type) {\n const hasAlreadyHydrated = this.hasHydrated;\n this.hasHydrated = true;\n const initialStates = this.options.keys.reduce((acc: Record<string, any>, key) => {\n const storeName = Object.keys(key)[0];\n const storeSynchronizer = (key as any)[storeName];\n if (isSerializer(storeSynchronizer)) {\n acc[storeName] = storeSynchronizer.initialState;\n }\n return acc;\n }, {});\n let overrides = {};\n if (!hasAlreadyHydrated) {\n overrides = Object.entries(action.payload).reduce<Record<string, any>>((acc, [storeName, value]) => {\n if (!initialStates[storeName] || initialStates[storeName] === state[storeName]) {\n acc[storeName] = value;\n } else if (initialStates[storeName] !== state[storeName]) {\n (this.options.logger || console).error(`Unable to rehydrate store \"${storeName}\", it has been modified before being hydrated`);\n }\n return acc;\n }, {});\n }\n if (Object.keys(overrides).length) {\n hydratedState = { ...state, ...overrides };\n }\n }\n return base(reducer)(hydratedState, action);\n };\n };\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"o3r-store-sync.mjs","sources":["../../src/deep-fill/deep-fill.ts","../../src/sync-storage/storage-sync.ts","../../src/sync-storage/index.ts","../../src/core/storage-sync.helpers.ts","../../src/core/storage-sync.ts","../../src/o3r-store-sync.ts"],"sourcesContent":["import {\n utils,\n} from '@ama-sdk/core';\nimport {\n deepFill,\n type PrimitiveReviverMapper,\n} from '@o3r/core';\n\nconst mapper: PrimitiveReviverMapper[] = [\n {\n condition: (data) => data instanceof utils.DateTime,\n construct: (data) => new utils.DateTime(data)\n },\n {\n condition: (data) => data instanceof utils.Date,\n construct: (data) => new utils.Date(data)\n }\n];\n\n/**\n * Deep fill of base object using source\n * It will do a deep merge of the objects, overriding arrays\n * All properties not present in source, but present in base, will remain\n * @param base\n * @param source\n */\nexport function deepFillWithDate<T extends { [x: string]: any }>(base: T, source?: { [x: string]: any }): T {\n return deepFill(base, source, mapper);\n}\n","import {\n INIT,\n UPDATE,\n} from '@ngrx/store';\nimport {\n deepFill,\n} from '@o3r/core';\nimport type {\n Logger,\n} from '@o3r/core';\nimport type {\n StorageKeyConfiguration,\n StorageKeys,\n SyncStorageConfig,\n SyncStorageSyncOptions,\n} from './interfaces';\n\n/**\n * Reviver the date from a JSON field if the string is matching iso format. Return the same value otherwise\n * @param _key JSON item key name\n * @param value JSON item value\n */\nexport const dateReviver = (_key: string, value: any) => {\n if (typeof value === 'string' && /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/.test(value)) {\n return new Date(value);\n }\n return value;\n};\n\n/**\n * Dummy reviver returning the value of the field as it is\n * @param _key JSON item key name\n * @param value JSON item value\n */\nconst dummyReviver = (_key: string, value: any) => value;\n\n/**\n * Determine if the code is run in a browser\n */\nconst checkIsBrowserEnv = () => {\n return typeof window !== 'undefined';\n};\n\n/**\n * Validate the keys structure of the registered stores\n * @param keys map of store to synchronize\n */\nconst validateStateKeys = (keys: StorageKeys) => {\n return (keys as any[]).map((key) => {\n let attr = key;\n\n if (typeof key === 'object') {\n attr = Object.keys(key)[0];\n }\n\n if (typeof attr !== 'string') {\n throw new TypeError(\n 'localStorageSync Unknown Parameter Type: ' + `Expected type of string, got ${typeof attr}`\n );\n }\n return key;\n });\n};\n\n/**\n * Rehydrate the state of the whole application store\n * @param keys Keys of the store to rehydrate\n * @param storage storage when getting the data from\n * @param storageKeySerializer storage key transform function\n * @param restoreDates determine if the date need to be restored\n * @param logger\n */\nexport const rehydrateApplicationState = (\n keys: StorageKeys,\n storage: Storage | undefined,\n storageKeySerializer: (key: string) => string,\n restoreDates: boolean,\n logger: Logger = console\n) => {\n return (keys as any[]).reduce((acc, curr) => {\n let key = curr;\n let reviver = restoreDates ? dateReviver : dummyReviver;\n let deserialize: ((arg0: string) => any) | undefined;\n let decrypt: ((arg0: string) => string) | undefined;\n let syncForFeature = false;\n\n if (typeof key === 'object') {\n key = Object.keys(key)[0];\n syncForFeature = !!(curr?.[key] as SyncStorageSyncOptions)?.syncForFeature;\n\n // use the custom reviver function\n if (typeof curr[key] === 'function') {\n reviver = curr[key];\n } else {\n // use custom reviver function if available\n if (curr[key].reviver) {\n reviver = curr[key].reviver;\n }\n // use custom serialize function if available\n if (curr[key].deserialize) {\n deserialize = curr[key].deserialize;\n }\n }\n\n // Ensure that encrypt and decrypt functions are both present\n if (curr[key].encrypt && curr[key].decrypt) {\n if (typeof curr[key].encrypt === 'function' && typeof curr[key].decrypt === 'function') {\n decrypt = curr[key].decrypt;\n } else {\n logger.error(`Either encrypt or decrypt is not a function on '${curr[key] as string}' key object.`);\n }\n } else if (curr[key].encrypt || curr[key].decrypt) {\n // Let know that one of the encryption functions is not provided\n logger.error(`Either encrypt or decrypt function is not present on '${curr[key] as string}' key object.`);\n }\n }\n if (storage !== undefined) {\n let stateSlice = storage.getItem(storageKeySerializer(key));\n if (stateSlice) {\n // Use provided decrypt function\n if (decrypt) {\n stateSlice = decrypt(stateSlice);\n }\n\n const isObjectRegex = new RegExp('{|\\\\[');\n let raw = stateSlice;\n\n if (stateSlice === 'null' || stateSlice === 'true' || stateSlice === 'false' || isObjectRegex.test(stateSlice.charAt(0))) {\n raw = JSON.parse(stateSlice, reviver);\n }\n\n const rehydratedState = deserialize ? deserialize(raw) : raw;\n\n return syncForFeature\n ? rehydratedState\n : Object.assign({}, acc, {\n [key]: rehydratedState\n });\n }\n }\n return acc;\n }, {});\n};\n\n// Recursively traverse all properties of the existing slice as defined by the `filter` argument,\n// and output the new object with extraneous properties removed.\nfunction createStateSlice(existingSlice: any, filter: (string | number | StorageKeyConfiguration | SyncStorageSyncOptions)[]) {\n return filter.reduce(\n (memo: { [x: string]: any;[x: number]: any }, attr: string | number | StorageKeyConfiguration | SyncStorageSyncOptions) => {\n if (typeof attr === 'string' || typeof attr === 'number') {\n const value = existingSlice?.[attr];\n if (value !== undefined) {\n memo[attr] = value;\n }\n } else {\n for (const key in attr) {\n if (Object.prototype.hasOwnProperty.call(attr, key)) {\n const element: any = attr[key as keyof typeof attr];\n memo[key] = createStateSlice(existingSlice[key], element);\n }\n }\n }\n return memo;\n },\n {}\n );\n}\n\n/**\n * Update the state of the store after reviving from storage\n * Note: this function is mainly use for internal process of store synchronization\n * @param state store state\n * @param keys key of the store\n * @param storage storage to use for the synchronization\n * @param storageKeySerializer callback to serialize the store key\n * @param removeOnUndefined Define if the store should be clean in the storage if undefined\n * @param syncCondition callback to define if the synchronization should be process\n * @param logger Logger to report messages\n */\nexport const syncStateUpdate = (\n state: any,\n keys: StorageKeys,\n storage: Storage | undefined,\n storageKeySerializer: (key: string | number) => string,\n removeOnUndefined = false,\n syncCondition?: (state: any) => any,\n logger: Logger = console\n) => {\n if (syncCondition) {\n try {\n if (syncCondition(state) !== true) {\n return;\n }\n } catch (e) {\n // Treat TypeError as do not sync\n if (e instanceof TypeError) {\n return;\n }\n throw e;\n }\n }\n\n keys.forEach((key: string | StorageKeyConfiguration | SyncStorageSyncOptions | ((key: string, value: any) => any)): void => {\n let stateSlice = state?.[key as string];\n let replacer;\n let space: string | number | undefined;\n let encrypt;\n let syncForFeature = false;\n\n if (typeof key === 'object') {\n const name = (Object.keys(key) as (keyof typeof key)[])[0];\n syncForFeature = !!(key?.[name] as SyncStorageSyncOptions)?.syncForFeature;\n stateSlice = syncForFeature ? state : state?.[name];\n\n if (typeof stateSlice !== 'undefined' && key[name]) {\n // use serialize function if specified.\n if ((key[name] as any).serialize) {\n stateSlice = (key[name] as SyncStorageSyncOptions).serialize!(stateSlice);\n } else {\n // if serialize function is not specified filter on fields if an array has been provided.\n let filter: StorageKeyConfiguration[] | undefined;\n if ((key[name] as any).reduce) {\n filter = key[name] as StorageKeyConfiguration[];\n } else if ((key[name] as any).filter) {\n filter = (key[name] as any).filter as StorageKeyConfiguration[];\n }\n if (filter) {\n stateSlice = createStateSlice(stateSlice, filter);\n }\n\n // Check if encrypt and decrypt are present, also checked at this#rehydrateApplicationState()\n if ((key[name] as any).encrypt && (key[name] as any).decrypt) {\n if (typeof (key[name] as any).encrypt === 'function') {\n encrypt = (key[name] as any).encrypt;\n }\n } else if ((key[name] as any).encrypt || (key[name] as any).decrypt) {\n // If one of those is not present, then let know that one is missing\n logger.error(\n `Either encrypt or decrypt function is not present on '${key[name] as string}' key object.`\n );\n }\n }\n\n /*\n Replacer and space arguments to pass to JSON.stringify.\n If these fields don't exist, undefined will be passed.\n */\n replacer = (key[name] as any).replacer;\n space = (key[name] as any).space;\n }\n\n key = name;\n } else if (typeof key === 'string') {\n stateSlice = syncForFeature ? state : state?.[key];\n }\n\n if (typeof stateSlice !== 'undefined' && storage !== undefined) {\n try {\n if (encrypt) {\n // ensure that a string message is passed\n stateSlice = encrypt(\n typeof stateSlice === 'string' ? stateSlice : JSON.stringify(stateSlice, replacer, space)\n );\n }\n storage.setItem(\n storageKeySerializer(key as string),\n typeof stateSlice === 'string' ? stateSlice : JSON.stringify(stateSlice, replacer, space)\n );\n } catch (e) {\n logger.warn('Unable to save state to localStorage:', e);\n }\n } else if (typeof stateSlice === 'undefined' && removeOnUndefined && storage !== undefined) {\n try {\n storage.removeItem(storageKeySerializer(key as string));\n } catch (e) {\n logger.warn(`Exception on removing/cleaning undefined '${key as string}' state`, e);\n }\n }\n });\n};\n\nconst defaultMergeReducer = (state: any, rehydratedState: any, action: any) => {\n if ((action.type === INIT || action.type === UPDATE) && rehydratedState) {\n const allKeys = Array.from(new Set([...Object.keys(state), ...Object.keys(rehydratedState)]));\n state = Object.fromEntries(allKeys.map((key) => {\n // No need to create new object reference if no merge is actually needed\n if (!rehydratedState[key]) {\n return [key, state[key]];\n } else if (state[key]) {\n return [key, deepFill(state[key], rehydratedState[key])];\n } else {\n return [key, rehydratedState[key]];\n }\n }));\n }\n\n return state;\n};\n\n/**\n * Local and Session storage synchronization helper\n * @param config\n */\nexport const syncStorage = (config: SyncStorageConfig) => (reducer: any) => {\n if (\n (config.storage === undefined && !config.checkStorageAvailability)\n || (config.checkStorageAvailability && checkIsBrowserEnv())\n ) {\n config.storage = localStorage || window.localStorage;\n }\n\n if (config.storageKeySerializer === undefined) {\n config.storageKeySerializer = (key) => key;\n }\n\n if (config.restoreDates === undefined) {\n config.restoreDates = true;\n }\n\n // Use default merge reducer.\n let mergeReducer = config.mergeReducer;\n\n if (mergeReducer === undefined || typeof mergeReducer !== 'function') {\n mergeReducer = defaultMergeReducer;\n }\n\n const logger = config.logger || console;\n\n const stateKeys = validateStateKeys(config.keys);\n const rehydratedState = config.rehydrate\n ? rehydrateApplicationState(stateKeys, config.storage, config.storageKeySerializer, config.restoreDates, logger)\n : undefined;\n\n return (state: any, action: any) => {\n let nextState: any;\n\n // If state arrives undefined, we need to let it through the supplied reducer\n // in order to get a complete state as defined by user\n nextState = action.type === INIT && !state ? reducer(state, action) : { ...state };\n\n // Merge the store state with the rehydrated state using\n // either a user-defined reducer or the default.\n nextState = mergeReducer(nextState, rehydratedState, action);\n\n nextState = reducer(nextState, action);\n\n if (action.type !== INIT) {\n syncStateUpdate(\n nextState,\n (typeof config.syncKeyCondition === 'function')\n ? stateKeys.filter((key) => {\n const keyName = typeof key === 'object' ? Object.keys(key)[0] : key;\n return config.syncKeyCondition!(keyName, nextState);\n })\n : stateKeys,\n config.storage,\n config.storageKeySerializer as (key: string | number) => string,\n config.removeOnUndefined,\n config.syncCondition,\n logger\n );\n }\n if (config.postProcess) {\n config.postProcess(nextState);\n }\n return nextState;\n };\n};\n","/*\n * This file is a fork of the package ngrx-store-localstorage (https://github.com/btroncone/ngrx-store-localstorage) - MIT\n * The following update as been added:\n * - properly export dateReviver function\n * - add missing comments\n * - explicit dependency to @ngrx/store for action names\n * - change interface names to prefix with \"sync\"\n * - add logger support\n * - fix lint according to eslint rules\n * - split code in several files\n * - migrate tests to Jest\n */\n\nexport * from './interfaces';\nexport * from './storage-sync';\n","import {\n createAction,\n props,\n} from '@ngrx/store';\nimport type {\n Serializer,\n} from '@o3r/core';\nimport type {\n SyncStorageConfig,\n} from '../sync-storage';\nimport type {\n StorageSyncOptions,\n} from './interfaces';\n\n/**\n * Defines if an object is a Serializer\n * @param obj Object to test\n * @returns True if the object is a Serializer\n */\nexport const isSerializer = (obj: any): obj is Serializer<any> => !!(obj.serialize || obj.deserialize || obj.reviver || obj.replacer || obj.initialState);\n\n/**\n * Label of the action to rehydrate the store\n */\nexport const REHYDRATE_ACTION_LABEL = '[storeSync] rehydrate';\n\n/**\n * Action to rehydrate the store\n */\nexport const rehydrateAction = createAction(REHYDRATE_ACTION_LABEL, props<{\n payload: Record<string, any>;\n}>());\n\n/**\n * Defines if the storage is a non-async storage\n * @param options The storage config\n * @returns in case the storage used is a non-async storage\n */\nexport const isLocalStorageConfig = (options: StorageSyncOptions): options is SyncStorageConfig => !options.storage || options.storage instanceof Storage;\n","import {\n INIT,\n UPDATE,\n} from '@ngrx/store';\nimport equal from 'fast-deep-equal';\nimport {\n deepFillWithDate,\n} from '../deep-fill/deep-fill';\nimport {\n syncStorage,\n} from '../sync-storage';\nimport type {\n StorageSyncOptions,\n} from './interfaces';\nimport {\n StorageSyncConstructorOptions,\n} from './interfaces';\nimport {\n isLocalStorageConfig,\n isSerializer,\n rehydrateAction,\n} from './storage-sync.helpers';\n\n/**\n * Storage synchronizer\n */\nexport class StorageSync {\n private readonly alreadyHydratedStoreSlices: Set<string> = new Set();\n private hasHydrated = false;\n private readonly storeImage: { [key: string]: any } = {};\n\n public options: StorageSyncOptions;\n\n constructor(options?: StorageSyncConstructorOptions, extraOptions?: { disableSmartSync: boolean }) {\n this.options = {\n keys: [],\n ...(extraOptions?.disableSmartSync\n ? {}\n : {\n syncKeyCondition: (key, state) => !equal(this.storeImage[key], state[key]),\n postProcess: (state) => {\n this.options.keys.forEach((key) => {\n const keyName: string = typeof key === 'object' ? Object.keys(key)[0] : key;\n this.storeImage[keyName] = state[keyName];\n });\n }\n }),\n ...options,\n storage: options?.storage as unknown as Storage,\n mergeReducer: typeof options?.mergeReducer === 'function' ? options.mergeReducer : this.mergeReducer\n };\n }\n\n /**\n * Handle state manipulation in case of store storage sync\n * 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\n * Pass it as mergeReducer callback when calling localStorageSync function from 'ngrx-store-localstorage', in the app\n * @param state actual state\n * @param rehydratedState state from storage\n * @param action Triggered action\n */\n public readonly mergeReducer = (state: any, rehydratedState: any, action: any) => {\n if (rehydratedState) {\n if (action.type === INIT) {\n state = deepFillWithDate(state, rehydratedState);\n }\n if (action.type === UPDATE && Array.isArray(action.features)) {\n const notHandledFeatures = action.features.filter((featName: string) => !this.alreadyHydratedStoreSlices.has(featName));\n\n notHandledFeatures.filter((featName: string) => !!rehydratedState[featName]).forEach((fName: string) => {\n state[fName] = state[fName] ? deepFillWithDate(state[fName], rehydratedState[fName]) : rehydratedState[fName];\n this.alreadyHydratedStoreSlices.add(fName);\n });\n }\n }\n return state;\n };\n\n /**\n * Returns a meta reducer that handles storage sync\n */\n public localStorageSync = () => {\n const base = (reducer: any) => syncStorage({\n ...this.options,\n rehydrate: false,\n storage: this.options.storage as unknown as Storage,\n syncCondition: () => this.hasHydrated\n })(reducer);\n\n return (reducer: any) => {\n if (isLocalStorageConfig(this.options)) {\n return syncStorage(this.options)(reducer);\n }\n\n return (state: any, action: any) => {\n let hydratedState = state;\n if (action.type === rehydrateAction.type) {\n const hasAlreadyHydrated = this.hasHydrated;\n this.hasHydrated = true;\n const initialStates = this.options.keys.reduce((acc: Record<string, any>, key) => {\n const storeName = Object.keys(key)[0];\n const storeSynchronizer = (key as any)[storeName];\n if (isSerializer(storeSynchronizer)) {\n acc[storeName] = storeSynchronizer.initialState;\n }\n return acc;\n }, {});\n let overrides = {};\n if (!hasAlreadyHydrated) {\n overrides = Object.entries(action.payload).reduce<Record<string, any>>((acc, [storeName, value]) => {\n if (!initialStates[storeName] || initialStates[storeName] === state[storeName]) {\n acc[storeName] = value;\n } else if (initialStates[storeName] !== state[storeName]) {\n (this.options.logger || console).error(`Unable to rehydrate store \"${storeName}\", it has been modified before being hydrated`);\n }\n return acc;\n }, {});\n }\n if (Object.keys(overrides).length > 0) {\n hydratedState = { ...state, ...overrides };\n }\n }\n return base(reducer)(hydratedState, action);\n };\n };\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@o3r/store-sync",
3
- "version": "11.6.0-prerelease.2",
3
+ "version": "11.6.0-prerelease.20",
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": "^11.6.0-prerelease.2",
16
+ "@ama-sdk/core": "^11.6.0-prerelease.20",
17
17
  "@angular-devkit/core": "~18.2.0",
18
18
  "@angular-devkit/schematics": "~18.2.0",
19
19
  "@ngrx/entity": "~18.0.0",
20
20
  "@ngrx/store": "~18.0.0",
21
- "@o3r/core": "^11.6.0-prerelease.2",
22
- "@o3r/logger": "^11.6.0-prerelease.2",
23
- "@o3r/schematics": "^11.6.0-prerelease.2",
21
+ "@o3r/core": "^11.6.0-prerelease.20",
22
+ "@o3r/logger": "^11.6.0-prerelease.20",
23
+ "@o3r/schematics": "^11.6.0-prerelease.20",
24
24
  "@schematics/angular": "~18.2.0",
25
25
  "fast-deep-equal": "^3.1.3",
26
26
  "rxjs": "^7.8.1"
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAsEtD;;;GAGG;AACH,eAAO,MAAM,KAAK,YAAa,qBAAqB,KAAG,IAGtD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,IAAI,EACL,MAAM,4BAA4B,CAAC;AAIpC,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAmElB;;;GAGG;AACH,eAAO,MAAM,KAAK,YAAa,qBAAqB,KAAG,IAGtD,CAAC"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ngAdd = void 0;
4
- const schematics_1 = require("@angular-devkit/schematics");
5
4
  const path = require("node:path");
5
+ const schematics_1 = require("@angular-devkit/schematics");
6
6
  const dependencies_1 = require("@schematics/angular/utility/dependencies");
7
7
  const devDependenciesToInstall = [
8
8
  'fast-deep-equal'
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEjC,8BAA8B;IAC9B,UAAU,EAAE,OAAO,CAAC;IAEpB,+BAA+B;IAC/B,WAAW,EAAE,OAAO,CAAC;IAErB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEjC,8BAA8B;IAC9B,UAAU,EAAE,OAAO,CAAC;IAEpB,+BAA+B;IAC/B,WAAW,EAAE,OAAO,CAAC;IAErB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/sync-storage/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAChC,mEAAmE;IACnE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAClC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAC3C,wDAAwD;IACxD,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC;IACzD,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,wDAAwD;IACxD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,uBAAuB,EAAE,GAAG,sBAAsB,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;CAC9H;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,uBAAuB,GAAG,sBAAsB,GAAG,MAAM,CAAC,EAAE,CAAC;AAGxF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,sCAAsC;IACtC,IAAI,EAAE,WAAW,CAAC;IAClB,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wBAAwB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uDAAuD;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uEAAuE;IACvE,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C,8DAA8D;IAC9D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IACpC,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC;IACxD,4CAA4C;IAC5C,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oDAAoD;IACpD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;IACtE,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CACpC"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/sync-storage/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACP,MAAM,WAAW,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAChC,mEAAmE;IACnE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAClC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAC3C,wDAAwD;IACxD,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC;IACzD,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,wDAAwD;IACxD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,uBAAuB,EAAE,GAAG,sBAAsB,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;CAC9H;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,uBAAuB,GAAG,sBAAsB,GAAG,MAAM,CAAC,EAAE,CAAC;AAExF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,sCAAsC;IACtC,IAAI,EAAE,WAAW,CAAC;IAClB,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wBAAwB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uDAAuD;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uEAAuE;IACvE,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C,8DAA8D;IAC9D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IACpC,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC;IACxD,4CAA4C;IAC5C,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oDAAoD;IACpD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;IACtE,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CACpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage-sync.d.ts","sourceRoot":"","sources":["../../src/sync-storage/storage-sync.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAA2B,WAAW,EAAE,iBAAiB,EAA0B,MAAM,cAAc,CAAC;AAEpH;;;;GAIG;AACH,eAAO,MAAM,WAAW,SAAU,MAAM,SAAS,GAAG,QAKnD,CAAC;AAqCF;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,SAC9B,WAAW,WACR,OAAO,GAAG,SAAS,wBACN,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,gBAC/B,OAAO,WACb,MAAM,QA+Df,CAAC;AA0BF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,UACnB,GAAG,QACJ,WAAW,WACR,OAAO,GAAG,SAAS,wBACN,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,+CAEtC,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,WAC3B,MAAM,SA6Ff,CAAC;AAoBF;;;GAGG;AACH,eAAO,MAAM,WAAW,WAAY,iBAAiB,eAAe,GAAG,aA8BtD,GAAG,UAAU,GAAG,QAoChC,CAAC"}
1
+ {"version":3,"file":"storage-sync.d.ts","sourceRoot":"","sources":["../../src/sync-storage/storage-sync.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,MAAM,EACP,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAEV,WAAW,EACX,iBAAiB,EAElB,MAAM,cAAc,CAAC;AAEtB;;;;GAIG;AACH,eAAO,MAAM,WAAW,SAAU,MAAM,SAAS,GAAG,QAKnD,CAAC;AAqCF;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,SAC9B,WAAW,WACR,OAAO,GAAG,SAAS,wBACN,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,gBAC/B,OAAO,WACb,MAAM,QAiEf,CAAC;AA0BF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,UACnB,GAAG,QACJ,WAAW,WACR,OAAO,GAAG,SAAS,wBACN,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,+CAEtC,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,WAC3B,MAAM,SA6Ff,CAAC;AAoBF;;;GAGG;AACH,eAAO,MAAM,WAAW,WAAY,iBAAiB,eAAe,GAAG,aA8BtD,GAAG,UAAU,GAAG,QAkChC,CAAC"}