@decaf-ts/db-decorators 0.4.18 → 0.4.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.
@@ -1,9 +1,10 @@
1
1
  import { DBKeys, DefaultSeparator } from "./constants";
2
2
  import { apply } from "@decaf-ts/reflection";
3
- import { Hashing, propMetadata, sf, } from "@decaf-ts/decorator-validation";
4
- import { onCreateUpdate } from "../operations/decorators";
3
+ import { Hashing, propMetadata, sf, type, } from "@decaf-ts/decorator-validation";
4
+ import { onCreate, onCreateUpdate, onUpdate } from "../operations/decorators";
5
5
  import { InternalError } from "../repository/errors";
6
6
  import { Repository } from "../repository/Repository";
7
+ import { OperationKeys } from "../operations";
7
8
  /**
8
9
  *
9
10
  * @param {str} str
@@ -65,5 +66,53 @@ export function composedFromKeys(args, separator = DefaultSeparator, hash = fals
65
66
  export function composed(args, separator = DefaultSeparator, hash = false, prefix = "", suffix = "") {
66
67
  return composedFrom(args, hash, separator, "values", prefix, suffix);
67
68
  }
69
+ /**
70
+ * Creates a decorator function that updates the version of a model during create or update operations.
71
+ *
72
+ * @param {CrudOperations} operation - The type of operation being performed (CREATE or UPDATE).
73
+ * @returns {function} A function that updates the version of the model based on the operation type.
74
+ *
75
+ * @template M - Type extending Model
76
+ * @template V - Type extending IRepository<M>
77
+ *
78
+ * @this {V} - The repository instance
79
+ * @param {Context<M>} context - The context of the operation
80
+ * @param {unknown} data - Additional data for the operation (not used in this function)
81
+ * @param {string} key - The key of the version property in the model
82
+ * @param {M} model - The model being updated
83
+ * @throws {InternalError} If an invalid operation is provided or if version update fails
84
+ */
85
+ export function versionCreateUpdate(operation) {
86
+ return function versionCreateUpdate(context, data, key, model) {
87
+ try {
88
+ switch (operation) {
89
+ case OperationKeys.CREATE:
90
+ model[key] = 1;
91
+ break;
92
+ case OperationKeys.UPDATE:
93
+ model[key]++;
94
+ break;
95
+ default:
96
+ throw new InternalError(`Invalid operation: ${operation}`);
97
+ }
98
+ }
99
+ catch (e) {
100
+ throw new InternalError(`Failed to update version: ${e}`);
101
+ }
102
+ };
103
+ }
104
+ /**
105
+ * @description Creates a decorator for versioning a property in a model.
106
+ * @summary This decorator applies multiple sub-decorators to handle version management during create and update operations.
107
+ *
108
+ * @returns {Function} A composite decorator that:
109
+ * - Sets the type of the property to Number
110
+ * - Applies a version update on create operations
111
+ * - Applies a version update on update operations
112
+ * - Adds metadata indicating this property is used for versioning
113
+ */
114
+ export function version() {
115
+ return apply(type(Number.name), onCreate(versionCreateUpdate(OperationKeys.CREATE)), onUpdate(versionCreateUpdate(OperationKeys.UPDATE)), propMetadata(Repository.key(DBKeys.VERSION), true));
116
+ }
68
117
 
69
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tb2RlbC9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFDTCxPQUFPLEVBRVAsWUFBWSxFQUNaLEVBQUUsR0FDSCxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR3REOzs7O0dBSUc7QUFFSCxNQUFNLFVBQVUsa0JBQWtCLENBSXZCLElBQU8sRUFBRSxHQUFXLEVBQUUsS0FBUSxFQUFFLFFBQVk7SUFDckQsSUFBSSxDQUFFLEtBQWEsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPO0lBQ2pDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUUsS0FBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0MsSUFBSSxRQUFRLElBQUssS0FBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUk7UUFBRSxPQUFPO0lBQ3BELEtBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDN0IsQ0FBQztBQUVELE1BQU0sVUFBVSxJQUFJO0lBQ2xCLE9BQU8sS0FBSyxDQUNWLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUNsQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQzlDLENBQUM7QUFDSixDQUFDO0FBV0QsTUFBTSxVQUFVLHdCQUF3QixDQUt0QyxPQUFtQixFQUNuQixJQUEwQixFQUMxQixHQUFXLEVBQ1gsS0FBUTtJQUVSLElBQUksQ0FBQztRQUNILE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3ZELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRTtZQUN4QyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDO2dCQUNqQixNQUFNLElBQUksYUFBYSxDQUNyQixFQUFFLENBQUMsd0NBQXdDLEVBQUUsR0FBRyxDQUFDLENBQ2xELENBQUM7WUFDSixJQUFJLElBQUksS0FBSyxNQUFNO2dCQUFFLE9BQU8sR0FBRyxDQUFDO1lBQ2hDLElBQUksT0FBUSxLQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssV0FBVztnQkFDNUMsTUFBTSxJQUFJLGFBQWEsQ0FDckIsRUFBRSxDQUFDLHVEQUF1RCxFQUFFLEdBQUcsQ0FBQyxDQUNqRSxDQUFDO1lBQ0osT0FBUyxLQUFhLENBQUMsR0FBRyxDQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLE1BQU07WUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLElBQUksTUFBTTtZQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFakMsS0FBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLGFBQWEsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUNuQixJQUFjLEVBQ2QsYUFBc0IsS0FBSyxFQUMzQixZQUFvQixnQkFBZ0IsRUFDcEMsT0FBMEIsUUFBUSxFQUNsQyxNQUFNLEdBQUcsRUFBRSxFQUNYLE1BQU0sR0FBRyxFQUFFO0lBRVgsTUFBTSxJQUFJLEdBQXlCO1FBQ2pDLElBQUksRUFBRSxJQUFJO1FBQ1YsVUFBVSxFQUFFLFVBQVU7UUFDdEIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsSUFBSSxFQUFFLElBQUk7UUFDVixNQUFNLEVBQUUsTUFBTTtRQUNkLE1BQU0sRUFBRSxNQUFNO0tBQ2YsQ0FBQztJQUVGLE1BQU0sVUFBVSxHQUFHO1FBQ2pCLGNBQWMsQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLENBQUM7UUFDOUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQztLQUNwRCxDQUFDO0lBQ0YsSUFBSSxVQUFVO1FBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsSUFBYyxFQUNkLFlBQW9CLGdCQUFnQixFQUNwQyxPQUFnQixLQUFLLEVBQ3JCLE1BQU0sR0FBRyxFQUFFLEVBQ1gsTUFBTSxHQUFHLEVBQUU7SUFFWCxPQUFPLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUN0QixJQUFjLEVBQ2QsWUFBb0IsZ0JBQWdCLEVBQ3BDLE9BQWdCLEtBQUssRUFDckIsTUFBTSxHQUFHLEVBQUUsRUFDWCxNQUFNLEdBQUcsRUFBRTtJQUVYLE9BQU8sWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdkUsQ0FBQyIsImZpbGUiOiJtb2RlbC9kZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREJLZXlzLCBEZWZhdWx0U2VwYXJhdG9yIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBhcHBseSB9IGZyb20gXCJAZGVjYWYtdHMvcmVmbGVjdGlvblwiO1xuaW1wb3J0IHtcbiAgSGFzaGluZyxcbiAgTW9kZWwsXG4gIHByb3BNZXRhZGF0YSxcbiAgc2YsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IG9uQ3JlYXRlVXBkYXRlIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgSVJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9JUmVwb3NpdG9yeVwiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCIuLi9yZXBvc2l0b3J5L2Vycm9yc1wiO1xuaW1wb3J0IHsgUmVwb3NpdG9yeSB9IGZyb20gXCIuLi9yZXBvc2l0b3J5L1JlcG9zaXRvcnlcIjtcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tIFwiLi4vcmVwb3NpdG9yeS9Db250ZXh0XCI7XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7c3RyfSBzdHJcbiAqIEBtZW1iZXJPZiBkYi1kZWNvcmF0b3JzLm1vZGVsXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc2hPbkNyZWF0ZVVwZGF0ZTxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBSIGV4dGVuZHMgSVJlcG9zaXRvcnk8TT4sXG4gIFkgPSBhbnksXG4+KHRoaXM6IFIsIGRhdGE6IFksIGtleTogc3RyaW5nLCBtb2RlbDogTSwgb2xkTW9kZWw/OiBNKTogdm9pZCB7XG4gIGlmICghKG1vZGVsIGFzIGFueSlba2V5XSkgcmV0dXJuO1xuICBjb25zdCBoYXNoID0gSGFzaGluZy5oYXNoKChtb2RlbCBhcyBhbnkpW2tleV0pO1xuICBpZiAob2xkTW9kZWwgJiYgKG1vZGVsIGFzIGFueSlba2V5XSA9PT0gaGFzaCkgcmV0dXJuO1xuICAobW9kZWwgYXMgYW55KVtrZXldID0gaGFzaDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc2goKSB7XG4gIHJldHVybiBhcHBseShcbiAgICBvbkNyZWF0ZVVwZGF0ZShoYXNoT25DcmVhdGVVcGRhdGUpLFxuICAgIHByb3BNZXRhZGF0YShSZXBvc2l0b3J5LmtleShEQktleXMuSEFTSCksIHt9KVxuICApO1xufVxuXG5leHBvcnQgdHlwZSBDb21wb3NlZEZyb21NZXRhZGF0YSA9IHtcbiAgYXJnczogc3RyaW5nW107XG4gIHNlcGFyYXRvcjogc3RyaW5nO1xuICBoYXNoUmVzdWx0OiBib29sZWFuO1xuICB0eXBlOiBcImtleXNcIiB8IFwidmFsdWVzXCI7XG4gIHByZWZpeD86IHN0cmluZztcbiAgc3VmZml4Pzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvc2VkRnJvbUNyZWF0ZVVwZGF0ZTxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBWIGV4dGVuZHMgSVJlcG9zaXRvcnk8TT4sXG4+KFxuICB0aGlzOiBWLFxuICBjb250ZXh0OiBDb250ZXh0PE0+LFxuICBkYXRhOiBDb21wb3NlZEZyb21NZXRhZGF0YSxcbiAga2V5OiBzdHJpbmcsXG4gIG1vZGVsOiBNXG4pIHtcbiAgdHJ5IHtcbiAgICBjb25zdCB7IGFyZ3MsIHR5cGUsIHByZWZpeCwgc3VmZml4LCBzZXBhcmF0b3IgfSA9IGRhdGE7XG4gICAgY29uc3QgY29tcG9zZWQgPSBhcmdzLm1hcCgoYXJnOiBzdHJpbmcpID0+IHtcbiAgICAgIGlmICghKGFyZyBpbiBtb2RlbCkpXG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgIHNmKFwiUHJvcGVydHkgezB9IG5vdCBmb3VuZCB0byBjb21wb3NlIGZyb21cIiwgYXJnKVxuICAgICAgICApO1xuICAgICAgaWYgKHR5cGUgPT09IFwia2V5c1wiKSByZXR1cm4gYXJnO1xuICAgICAgaWYgKHR5cGVvZiAobW9kZWwgYXMgYW55KVthcmddID09PSBcInVuZGVmaW5lZFwiKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICBzZihcIlByb3BlcnR5IHswfSBkb2VzIG5vdCBjb250YWluIGEgdmFsdWUgdG8gY29tcG9zZSBmcm9tXCIsIGFyZylcbiAgICAgICAgKTtcbiAgICAgIHJldHVybiAoKG1vZGVsIGFzIGFueSlbYXJnXSBhcyBhbnkpLnRvU3RyaW5nKCk7XG4gICAgfSk7XG5cbiAgICBpZiAocHJlZml4KSBjb21wb3NlZC51bnNoaWZ0KHByZWZpeCk7XG4gICAgaWYgKHN1ZmZpeCkgY29tcG9zZWQucHVzaChzdWZmaXgpO1xuXG4gICAgKG1vZGVsIGFzIGFueSlba2V5XSA9IGNvbXBvc2VkLmpvaW4oc2VwYXJhdG9yKTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byBjb21wb3NlIHZhbHVlOiAke2V9YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tcG9zZWRGcm9tKFxuICBhcmdzOiBzdHJpbmdbXSxcbiAgaGFzaFJlc3VsdDogYm9vbGVhbiA9IGZhbHNlLFxuICBzZXBhcmF0b3I6IHN0cmluZyA9IERlZmF1bHRTZXBhcmF0b3IsXG4gIHR5cGU6IFwia2V5c1wiIHwgXCJ2YWx1ZXNcIiA9IFwidmFsdWVzXCIsXG4gIHByZWZpeCA9IFwiXCIsXG4gIHN1ZmZpeCA9IFwiXCJcbikge1xuICBjb25zdCBkYXRhOiBDb21wb3NlZEZyb21NZXRhZGF0YSA9IHtcbiAgICBhcmdzOiBhcmdzLFxuICAgIGhhc2hSZXN1bHQ6IGhhc2hSZXN1bHQsXG4gICAgc2VwYXJhdG9yOiBzZXBhcmF0b3IsXG4gICAgdHlwZTogdHlwZSxcbiAgICBwcmVmaXg6IHByZWZpeCxcbiAgICBzdWZmaXg6IHN1ZmZpeCxcbiAgfTtcblxuICBjb25zdCBkZWNvcmF0b3JzID0gW1xuICAgIG9uQ3JlYXRlVXBkYXRlKGNvbXBvc2VkRnJvbUNyZWF0ZVVwZGF0ZSwgZGF0YSksXG4gICAgcHJvcE1ldGFkYXRhKFJlcG9zaXRvcnkua2V5KERCS2V5cy5DT01QT1NFRCksIGRhdGEpLFxuICBdO1xuICBpZiAoaGFzaFJlc3VsdCkgZGVjb3JhdG9ycy5wdXNoKGhhc2goKSk7XG4gIHJldHVybiBhcHBseSguLi5kZWNvcmF0b3JzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvc2VkRnJvbUtleXMoXG4gIGFyZ3M6IHN0cmluZ1tdLFxuICBzZXBhcmF0b3I6IHN0cmluZyA9IERlZmF1bHRTZXBhcmF0b3IsXG4gIGhhc2g6IGJvb2xlYW4gPSBmYWxzZSxcbiAgcHJlZml4ID0gXCJcIixcbiAgc3VmZml4ID0gXCJcIlxuKSB7XG4gIHJldHVybiBjb21wb3NlZEZyb20oYXJncywgaGFzaCwgc2VwYXJhdG9yLCBcImtleXNcIiwgcHJlZml4LCBzdWZmaXgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcG9zZWQoXG4gIGFyZ3M6IHN0cmluZ1tdLFxuICBzZXBhcmF0b3I6IHN0cmluZyA9IERlZmF1bHRTZXBhcmF0b3IsXG4gIGhhc2g6IGJvb2xlYW4gPSBmYWxzZSxcbiAgcHJlZml4ID0gXCJcIixcbiAgc3VmZml4ID0gXCJcIlxuKSB7XG4gIHJldHVybiBjb21wb3NlZEZyb20oYXJncywgaGFzaCwgc2VwYXJhdG9yLCBcInZhbHVlc1wiLCBwcmVmaXgsIHN1ZmZpeCk7XG59XG4iXX0=
118
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tb2RlbC9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFDTCxPQUFPLEVBRVAsWUFBWSxFQUNaLEVBQUUsRUFDRixJQUFJLEdBQ0wsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXRELE9BQU8sRUFBa0IsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlEOzs7O0dBSUc7QUFFSCxNQUFNLFVBQVUsa0JBQWtCLENBSXZCLElBQU8sRUFBRSxHQUFXLEVBQUUsS0FBUSxFQUFFLFFBQVk7SUFDckQsSUFBSSxDQUFFLEtBQWEsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPO0lBQ2pDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUUsS0FBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0MsSUFBSSxRQUFRLElBQUssS0FBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUk7UUFBRSxPQUFPO0lBQ3BELEtBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDN0IsQ0FBQztBQUVELE1BQU0sVUFBVSxJQUFJO0lBQ2xCLE9BQU8sS0FBSyxDQUNWLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUNsQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQzlDLENBQUM7QUFDSixDQUFDO0FBV0Qs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Ozs7R0FlRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxTQUF5QjtJQUMzRCxPQUFPLFNBQVMsbUJBQW1CLENBR3hCLE9BQW1CLEVBQUUsSUFBYSxFQUFFLEdBQVcsRUFBRSxLQUFRO1FBQ2xFLElBQUksQ0FBQztZQUNILFFBQVEsU0FBUyxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssYUFBYSxDQUFDLE1BQU07b0JBQ3RCLEtBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3hCLE1BQU07Z0JBQ1IsS0FBSyxhQUFhLENBQUMsTUFBTTtvQkFDdEIsS0FBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3RCLE1BQU07Z0JBQ1I7b0JBQ0UsTUFBTSxJQUFJLGFBQWEsQ0FBQyxzQkFBc0IsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUMvRCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sQ0FBVSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLGFBQWEsQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxPQUFPO0lBQ3JCLE9BQU8sS0FBSyxDQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQ2pCLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDbkQsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUNuRCxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQ25ELENBQUM7QUFDSixDQUFDIiwiZmlsZSI6Im1vZGVsL2RlY29yYXRvcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEQktleXMsIERlZmF1bHRTZXBhcmF0b3IgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGFwcGx5IH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQge1xuICBIYXNoaW5nLFxuICBNb2RlbCxcbiAgcHJvcE1ldGFkYXRhLFxuICBzZixcbiAgdHlwZSxcbn0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgb25DcmVhdGUsIG9uQ3JlYXRlVXBkYXRlLCBvblVwZGF0ZSB9IGZyb20gXCIuLi9vcGVyYXRpb25zL2RlY29yYXRvcnNcIjtcbmltcG9ydCB7IElSZXBvc2l0b3J5IH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvSVJlcG9zaXRvcnlcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiLi4vcmVwb3NpdG9yeS9lcnJvcnNcIjtcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vcmVwb3NpdG9yeS9SZXBvc2l0b3J5XCI7XG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSBcIi4uL3JlcG9zaXRvcnkvQ29udGV4dFwiO1xuaW1wb3J0IHsgQ3J1ZE9wZXJhdGlvbnMsIE9wZXJhdGlvbktleXMgfSBmcm9tIFwiLi4vb3BlcmF0aW9uc1wiO1xuXG4vKipcbiAqXG4gKiBAcGFyYW0ge3N0cn0gc3RyXG4gKiBAbWVtYmVyT2YgZGItZGVjb3JhdG9ycy5tb2RlbFxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNoT25DcmVhdGVVcGRhdGU8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgUiBleHRlbmRzIElSZXBvc2l0b3J5PE0+LFxuICBZID0gYW55LFxuPih0aGlzOiBSLCBkYXRhOiBZLCBrZXk6IHN0cmluZywgbW9kZWw6IE0sIG9sZE1vZGVsPzogTSk6IHZvaWQge1xuICBpZiAoIShtb2RlbCBhcyBhbnkpW2tleV0pIHJldHVybjtcbiAgY29uc3QgaGFzaCA9IEhhc2hpbmcuaGFzaCgobW9kZWwgYXMgYW55KVtrZXldKTtcbiAgaWYgKG9sZE1vZGVsICYmIChtb2RlbCBhcyBhbnkpW2tleV0gPT09IGhhc2gpIHJldHVybjtcbiAgKG1vZGVsIGFzIGFueSlba2V5XSA9IGhhc2g7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNoKCkge1xuICByZXR1cm4gYXBwbHkoXG4gICAgb25DcmVhdGVVcGRhdGUoaGFzaE9uQ3JlYXRlVXBkYXRlKSxcbiAgICBwcm9wTWV0YWRhdGEoUmVwb3NpdG9yeS5rZXkoREJLZXlzLkhBU0gpLCB7fSlcbiAgKTtcbn1cblxuZXhwb3J0IHR5cGUgQ29tcG9zZWRGcm9tTWV0YWRhdGEgPSB7XG4gIGFyZ3M6IHN0cmluZ1tdO1xuICBzZXBhcmF0b3I6IHN0cmluZztcbiAgaGFzaFJlc3VsdDogYm9vbGVhbjtcbiAgdHlwZTogXCJrZXlzXCIgfCBcInZhbHVlc1wiO1xuICBwcmVmaXg/OiBzdHJpbmc7XG4gIHN1ZmZpeD86IHN0cmluZztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wb3NlZEZyb21DcmVhdGVVcGRhdGU8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgViBleHRlbmRzIElSZXBvc2l0b3J5PE0+LFxuPihcbiAgdGhpczogVixcbiAgY29udGV4dDogQ29udGV4dDxNPixcbiAgZGF0YTogQ29tcG9zZWRGcm9tTWV0YWRhdGEsXG4gIGtleTogc3RyaW5nLFxuICBtb2RlbDogTVxuKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgeyBhcmdzLCB0eXBlLCBwcmVmaXgsIHN1ZmZpeCwgc2VwYXJhdG9yIH0gPSBkYXRhO1xuICAgIGNvbnN0IGNvbXBvc2VkID0gYXJncy5tYXAoKGFyZzogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoIShhcmcgaW4gbW9kZWwpKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICBzZihcIlByb3BlcnR5IHswfSBub3QgZm91bmQgdG8gY29tcG9zZSBmcm9tXCIsIGFyZylcbiAgICAgICAgKTtcbiAgICAgIGlmICh0eXBlID09PSBcImtleXNcIikgcmV0dXJuIGFyZztcbiAgICAgIGlmICh0eXBlb2YgKG1vZGVsIGFzIGFueSlbYXJnXSA9PT0gXCJ1bmRlZmluZWRcIilcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgc2YoXCJQcm9wZXJ0eSB7MH0gZG9lcyBub3QgY29udGFpbiBhIHZhbHVlIHRvIGNvbXBvc2UgZnJvbVwiLCBhcmcpXG4gICAgICAgICk7XG4gICAgICByZXR1cm4gKChtb2RlbCBhcyBhbnkpW2FyZ10gYXMgYW55KS50b1N0cmluZygpO1xuICAgIH0pO1xuXG4gICAgaWYgKHByZWZpeCkgY29tcG9zZWQudW5zaGlmdChwcmVmaXgpO1xuICAgIGlmIChzdWZmaXgpIGNvbXBvc2VkLnB1c2goc3VmZml4KTtcblxuICAgIChtb2RlbCBhcyBhbnkpW2tleV0gPSBjb21wb3NlZC5qb2luKHNlcGFyYXRvcik7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gY29tcG9zZSB2YWx1ZTogJHtlfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbXBvc2VkRnJvbShcbiAgYXJnczogc3RyaW5nW10sXG4gIGhhc2hSZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZSxcbiAgc2VwYXJhdG9yOiBzdHJpbmcgPSBEZWZhdWx0U2VwYXJhdG9yLFxuICB0eXBlOiBcImtleXNcIiB8IFwidmFsdWVzXCIgPSBcInZhbHVlc1wiLFxuICBwcmVmaXggPSBcIlwiLFxuICBzdWZmaXggPSBcIlwiXG4pIHtcbiAgY29uc3QgZGF0YTogQ29tcG9zZWRGcm9tTWV0YWRhdGEgPSB7XG4gICAgYXJnczogYXJncyxcbiAgICBoYXNoUmVzdWx0OiBoYXNoUmVzdWx0LFxuICAgIHNlcGFyYXRvcjogc2VwYXJhdG9yLFxuICAgIHR5cGU6IHR5cGUsXG4gICAgcHJlZml4OiBwcmVmaXgsXG4gICAgc3VmZml4OiBzdWZmaXgsXG4gIH07XG5cbiAgY29uc3QgZGVjb3JhdG9ycyA9IFtcbiAgICBvbkNyZWF0ZVVwZGF0ZShjb21wb3NlZEZyb21DcmVhdGVVcGRhdGUsIGRhdGEpLFxuICAgIHByb3BNZXRhZGF0YShSZXBvc2l0b3J5LmtleShEQktleXMuQ09NUE9TRUQpLCBkYXRhKSxcbiAgXTtcbiAgaWYgKGhhc2hSZXN1bHQpIGRlY29yYXRvcnMucHVzaChoYXNoKCkpO1xuICByZXR1cm4gYXBwbHkoLi4uZGVjb3JhdG9ycyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wb3NlZEZyb21LZXlzKFxuICBhcmdzOiBzdHJpbmdbXSxcbiAgc2VwYXJhdG9yOiBzdHJpbmcgPSBEZWZhdWx0U2VwYXJhdG9yLFxuICBoYXNoOiBib29sZWFuID0gZmFsc2UsXG4gIHByZWZpeCA9IFwiXCIsXG4gIHN1ZmZpeCA9IFwiXCJcbikge1xuICByZXR1cm4gY29tcG9zZWRGcm9tKGFyZ3MsIGhhc2gsIHNlcGFyYXRvciwgXCJrZXlzXCIsIHByZWZpeCwgc3VmZml4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvc2VkKFxuICBhcmdzOiBzdHJpbmdbXSxcbiAgc2VwYXJhdG9yOiBzdHJpbmcgPSBEZWZhdWx0U2VwYXJhdG9yLFxuICBoYXNoOiBib29sZWFuID0gZmFsc2UsXG4gIHByZWZpeCA9IFwiXCIsXG4gIHN1ZmZpeCA9IFwiXCJcbikge1xuICByZXR1cm4gY29tcG9zZWRGcm9tKGFyZ3MsIGhhc2gsIHNlcGFyYXRvciwgXCJ2YWx1ZXNcIiwgcHJlZml4LCBzdWZmaXgpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBkZWNvcmF0b3IgZnVuY3Rpb24gdGhhdCB1cGRhdGVzIHRoZSB2ZXJzaW9uIG9mIGEgbW9kZWwgZHVyaW5nIGNyZWF0ZSBvciB1cGRhdGUgb3BlcmF0aW9ucy5cbiAqXG4gKiBAcGFyYW0ge0NydWRPcGVyYXRpb25zfSBvcGVyYXRpb24gLSBUaGUgdHlwZSBvZiBvcGVyYXRpb24gYmVpbmcgcGVyZm9ybWVkIChDUkVBVEUgb3IgVVBEQVRFKS5cbiAqIEByZXR1cm5zIHtmdW5jdGlvbn0gQSBmdW5jdGlvbiB0aGF0IHVwZGF0ZXMgdGhlIHZlcnNpb24gb2YgdGhlIG1vZGVsIGJhc2VkIG9uIHRoZSBvcGVyYXRpb24gdHlwZS5cbiAqXG4gKiBAdGVtcGxhdGUgTSAtIFR5cGUgZXh0ZW5kaW5nIE1vZGVsXG4gKiBAdGVtcGxhdGUgViAtIFR5cGUgZXh0ZW5kaW5nIElSZXBvc2l0b3J5PE0+XG4gKlxuICogQHRoaXMge1Z9IC0gVGhlIHJlcG9zaXRvcnkgaW5zdGFuY2VcbiAqIEBwYXJhbSB7Q29udGV4dDxNPn0gY29udGV4dCAtIFRoZSBjb250ZXh0IG9mIHRoZSBvcGVyYXRpb25cbiAqIEBwYXJhbSB7dW5rbm93bn0gZGF0YSAtIEFkZGl0aW9uYWwgZGF0YSBmb3IgdGhlIG9wZXJhdGlvbiAobm90IHVzZWQgaW4gdGhpcyBmdW5jdGlvbilcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSB2ZXJzaW9uIHByb3BlcnR5IGluIHRoZSBtb2RlbFxuICogQHBhcmFtIHtNfSBtb2RlbCAtIFRoZSBtb2RlbCBiZWluZyB1cGRhdGVkXG4gKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBJZiBhbiBpbnZhbGlkIG9wZXJhdGlvbiBpcyBwcm92aWRlZCBvciBpZiB2ZXJzaW9uIHVwZGF0ZSBmYWlsc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyc2lvbkNyZWF0ZVVwZGF0ZShvcGVyYXRpb246IENydWRPcGVyYXRpb25zKSB7XG4gIHJldHVybiBmdW5jdGlvbiB2ZXJzaW9uQ3JlYXRlVXBkYXRlPFxuICAgIE0gZXh0ZW5kcyBNb2RlbCxcbiAgICBWIGV4dGVuZHMgSVJlcG9zaXRvcnk8TT4sXG4gID4odGhpczogViwgY29udGV4dDogQ29udGV4dDxNPiwgZGF0YTogdW5rbm93biwga2V5OiBzdHJpbmcsIG1vZGVsOiBNKSB7XG4gICAgdHJ5IHtcbiAgICAgIHN3aXRjaCAob3BlcmF0aW9uKSB7XG4gICAgICAgIGNhc2UgT3BlcmF0aW9uS2V5cy5DUkVBVEU6XG4gICAgICAgICAgKG1vZGVsIGFzIGFueSlba2V5XSA9IDE7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgT3BlcmF0aW9uS2V5cy5VUERBVEU6XG4gICAgICAgICAgKG1vZGVsIGFzIGFueSlba2V5XSsrO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBJbnZhbGlkIG9wZXJhdGlvbjogJHtvcGVyYXRpb259YCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byB1cGRhdGUgdmVyc2lvbjogJHtlfWApO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIGRlY29yYXRvciBmb3IgdmVyc2lvbmluZyBhIHByb3BlcnR5IGluIGEgbW9kZWwuXG4gKiBAc3VtbWFyeSBUaGlzIGRlY29yYXRvciBhcHBsaWVzIG11bHRpcGxlIHN1Yi1kZWNvcmF0b3JzIHRvIGhhbmRsZSB2ZXJzaW9uIG1hbmFnZW1lbnQgZHVyaW5nIGNyZWF0ZSBhbmQgdXBkYXRlIG9wZXJhdGlvbnMuXG4gKlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBBIGNvbXBvc2l0ZSBkZWNvcmF0b3IgdGhhdDpcbiAqICAgLSBTZXRzIHRoZSB0eXBlIG9mIHRoZSBwcm9wZXJ0eSB0byBOdW1iZXJcbiAqICAgLSBBcHBsaWVzIGEgdmVyc2lvbiB1cGRhdGUgb24gY3JlYXRlIG9wZXJhdGlvbnNcbiAqICAgLSBBcHBsaWVzIGEgdmVyc2lvbiB1cGRhdGUgb24gdXBkYXRlIG9wZXJhdGlvbnNcbiAqICAgLSBBZGRzIG1ldGFkYXRhIGluZGljYXRpbmcgdGhpcyBwcm9wZXJ0eSBpcyB1c2VkIGZvciB2ZXJzaW9uaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJzaW9uKCkge1xuICByZXR1cm4gYXBwbHkoXG4gICAgdHlwZShOdW1iZXIubmFtZSksXG4gICAgb25DcmVhdGUodmVyc2lvbkNyZWF0ZVVwZGF0ZShPcGVyYXRpb25LZXlzLkNSRUFURSkpLFxuICAgIG9uVXBkYXRlKHZlcnNpb25DcmVhdGVVcGRhdGUoT3BlcmF0aW9uS2V5cy5VUERBVEUpKSxcbiAgICBwcm9wTWV0YWRhdGEoUmVwb3NpdG9yeS5rZXkoREJLZXlzLlZFUlNJT04pLCB0cnVlKVxuICApO1xufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { ModelErrorDefinition, ModelKeys, ReservedModels, sf, Validation, ValidationKeys, } from "@decaf-ts/decorator-validation";
2
- import { getPropertyDecorators } from "@decaf-ts/reflection";
2
+ import { Reflection } from "@decaf-ts/reflection";
3
3
  import { UpdateValidationKeys } from "../validation";
4
4
  import { findModelId } from "../identity";
5
5
  /**
@@ -19,7 +19,7 @@ export function validateCompare(oldModel, newModel, ...exceptions) {
19
19
  for (const prop in newModel)
20
20
  if (Object.prototype.hasOwnProperty.call(newModel, prop) &&
21
21
  exceptions.indexOf(prop) === -1)
22
- decoratedProperties.push(getPropertyDecorators(UpdateValidationKeys.REFLECT, newModel, prop));
22
+ decoratedProperties.push(Reflection.getPropertyDecorators(UpdateValidationKeys.REFLECT, newModel, prop));
23
23
  let result = undefined;
24
24
  for (const decoratedProperty of decoratedProperties) {
25
25
  const { prop, decorators } = decoratedProperty;
@@ -52,8 +52,8 @@ export function validateCompare(oldModel, newModel, ...exceptions) {
52
52
  })) {
53
53
  let err;
54
54
  // if a nested Model
55
- const allDecorators = getPropertyDecorators(ValidationKeys.REFLECT, newModel, prop).decorators;
56
- const decorators = getPropertyDecorators(ValidationKeys.REFLECT, newModel, prop).decorators.filter((d) => [ModelKeys.TYPE, ValidationKeys.TYPE].indexOf(d.key) !== -1);
55
+ const allDecorators = Reflection.getPropertyDecorators(ValidationKeys.REFLECT, newModel, prop).decorators;
56
+ const decorators = Reflection.getPropertyDecorators(ValidationKeys.REFLECT, newModel, prop).decorators.filter((d) => [ModelKeys.TYPE, ValidationKeys.TYPE].indexOf(d.key) !== -1);
57
57
  if (!decorators || !decorators.length)
58
58
  continue;
59
59
  const dec = decorators.pop();
@@ -123,4 +123,4 @@ export function validateCompare(oldModel, newModel, ...exceptions) {
123
123
  return result ? new ModelErrorDefinition(result) : undefined;
124
124
  }
125
125
 
126
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tb2RlbC92YWxpZGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxvQkFBb0IsRUFFcEIsU0FBUyxFQUNULGNBQWMsRUFDZCxFQUFFLEVBRUYsVUFBVSxFQUNWLGNBQWMsR0FFZixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBcUIscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsb0JBQW9CLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUM7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUM3QixRQUFXLEVBQ1gsUUFBVyxFQUNYLEdBQUcsVUFBb0I7SUFFdkIsTUFBTSxtQkFBbUIsR0FBNEMsRUFBRSxDQUFDO0lBQ3hFLEtBQUssTUFBTSxJQUFJLElBQUksUUFBUTtRQUN6QixJQUNFLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDO1lBQ3BELFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRS9CLG1CQUFtQixDQUFDLElBQUksQ0FDdEIscUJBQXFCLENBQ25CLG9CQUFvQixDQUFDLE9BQU8sRUFDNUIsUUFBUSxFQUNSLElBQUksQ0FDb0MsQ0FDM0MsQ0FBQztJQUVOLElBQUksTUFBTSxHQUE0QixTQUFTLENBQUM7SUFFaEQsS0FBSyxNQUFNLGlCQUFpQixJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDcEQsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQztRQUUvQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQywyRUFBMkU7UUFFL0YsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNO1lBQUUsU0FBUztRQUNoRCxJQUFJ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QUFDLEdBQUcsR0FBVSxDQUFDO1lBQzVCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDL0QsQ0FBQyIsImZpbGUiOiJtb2RlbC92YWxpZGF0aW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTW9kZWwsXG4gIE1vZGVsRXJyb3JEZWZpbml0aW9uLFxuICBNb2RlbEVycm9ycyxcbiAgTW9kZWxLZXlzLFxuICBSZXNlcnZlZE1vZGVscyxcbiAgc2YsXG4gIFZhbGlkYXRhYmxlLFxuICBWYWxpZGF0aW9uLFxuICBWYWxpZGF0aW9uS2V5cyxcbiAgVmFsaWRhdGlvblByb3BlcnR5RGVjb3JhdG9yRGVmaW5pdGlvbixcbn0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgRGVjb3JhdG9yTWV0YWRhdGEsIGdldFByb3BlcnR5RGVjb3JhdG9ycyB9IGZyb20gXCJAZGVjYWYtdHMvcmVmbGVjdGlvblwiO1xuaW1wb3J0IHsgVXBkYXRlVmFsaWRhdGlvbktleXMsIFVwZGF0ZVZhbGlkYXRvciB9IGZyb20gXCIuLi92YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBmaW5kTW9kZWxJZCB9IGZyb20gXCIuLi9pZGVudGl0eVwiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFZhbGlkYXRlcyB0aGUgdXBkYXRlIG9mIGEgbW9kZWxcbiAqXG4gKiBAcGFyYW0ge1R9IG9sZE1vZGVsXG4gKiBAcGFyYW0ge1R9IG5ld01vZGVsXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBbZXhjZXB0aW9uc11cbiAqXG4gKiBAZnVuY3Rpb24gdmFsaWRhdGVDb21wYXJlXG4gKiBAcmV0dXJuIHtNb2RlbEVycm9yRGVmaW5pdGlvbiB8IHVuZGVmaW5lZH1cbiAqXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRiLWRlY29yYXRvcnMuTW9kZWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQ29tcGFyZTxUIGV4dGVuZHMgTW9kZWw+KFxuICBvbGRNb2RlbDogVCxcbiAgbmV3TW9kZWw6IFQsXG4gIC4uLmV4Y2VwdGlvbnM6IHN0cmluZ1tdXG4pOiBNb2RlbEVycm9yRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGRlY29yYXRlZFByb3BlcnRpZXM6IFZhbGlkYXRpb25Qcm9wZXJ0eURlY29yYXRvckRlZmluaXRpb25bXSA9IFtdO1xuICBmb3IgKGNvbnN0IHByb3AgaW4gbmV3TW9kZWwpXG4gICAgaWYgKFxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG5ld01vZGVsLCBwcm9wKSAmJlxuICAgICAgZXhjZXB0aW9ucy5pbmRleE9mKHByb3ApID09PSAtMVxuICAgIClcbiAgICAgIGRlY29yYXRlZFByb3BlcnRpZXMucHVzaChcbiAgICAgICAgZ2V0UHJvcGVydHlEZWNvcmF0b3JzKFxuICAgICAgICAgIFVwZGF0ZVZhbGlkYXRpb25LZXlzLlJFRkxFQ1QsXG4gICAgICAgICAgbmV3TW9kZWwsXG4gICAgICAgICAgcHJvcFxuICAgICAgICApIGFzIFZhbGlkYXRpb25Qcm9wZXJ0eURlY29yYXRvckRlZmluaXRpb25cbiAgICAgICk7XG5cbiAgbGV0IHJlc3VsdDogTW9kZWxFcnJvcnMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgZm9yIChjb25zdCBkZWNvcmF0ZWRQcm9wZXJ0eSBvZiBkZWNvcmF0ZWRQcm9wZXJ0aWVzKSB7XG4gICAgY29uc3QgeyBwcm9wLCBkZWNvcmF0b3JzIH0gPSBkZWNvcmF0ZWRQcm9wZXJ0eTtcblxuICAgIGRlY29yYXRvcnMuc2hpZnQoKTsgLy8gcmVtb3ZlIHRoZSBkZXNpZ246dHlwZSBkZWNvcmF0b3IsIHNpbmNlIHRoZSB0eXBlIHdpbGwgYWxyZWFkeSBiZSBjaGVja2VkXG5cbiAgICBpZiAoIWRlY29yYXRvcnMgfHwgIWRlY29yYXRvcnMubGVuZ3RoKSBjb250aW51ZTtcbiAgICBsZXQgZXJyczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgIGZvciAoY29uc3QgZGVjb3JhdG9yIG9mIGRlY29yYXRvcnMpIHtcbiAgICAgIGNvbnN0IHZhbGlkYXRvcjogVXBkYXRlVmFsaWRhdG9yID0gVmFsaWRhdGlvbi5nZXQoXG4gICAgICAgIGRlY29yYXRvci5rZXlcbiAgICAgICkgYXMgVXBkYXRlVmFsaWRhdG9yO1xuICAgICAgaWYgKCF2YWxpZGF0b3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgQ291bGQgbm90IGZpbmQgTWF0Y2hpbmcgdmFsaWRhdG9yIGZvciAke2RlY29yYXRvci5rZXl9IGZvciBwcm9wZXJ0eSAke1N0cmluZyhkZWNvcmF0ZWRQcm9wZXJ0eS5wcm9wKX1gXG4gICAgICAgICk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlcnI6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHZhbGlkYXRvci51cGRhdGVIYXNFcnJvcnMoXG4gICAgICAgIChuZXdNb2RlbCBhcyBhbnkpW3Byb3AudG9TdHJpbmcoKV0sXG4gICAgICAgIChvbGRNb2RlbCBhcyBhbnkpW3Byb3AudG9TdHJpbmcoKV0sXG4gICAgICAgIC4uLk9iamVjdC52YWx1ZXMoZGVjb3JhdG9yLnByb3BzKVxuICAgICAgKTtcblxuICAgICAgaWYgKGVycikge1xuICAgICAgICBlcnJzID0gZXJycyB8fCB7fTtcbiAgICAgICAgZXJyc1tkZWNvcmF0b3Iua2V5XSA9IGVycjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZXJycykge1xuICAgICAgcmVzdWx0ID0gcmVzdWx0IHx8IHt9O1xuICAgICAgcmVzdWx0W2RlY29yYXRlZFByb3BlcnR5LnByb3AudG9TdHJpbmcoKV0gPSBlcnJzO1xuICAgIH1cbiAgfVxuICAvLyB0ZXN0cyBuZXN0ZWQgY2xhc3Nlc1xuICBmb3IgKGNvbnN0IHByb3Agb2YgT2JqZWN0LmtleXMobmV3TW9kZWwpLmZpbHRlcigoaykgPT4ge1xuICAgIGlmIChleGNlcHRpb25zLmluY2x1ZGVzKGspKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuICFyZXN1bHQgfHwgIXJlc3VsdFtrXTtcbiAgfSkpIHtcbiAgICBsZXQgZXJyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLy8gaWYgYSBuZXN0ZWQgTW9kZWxcbiAgICBjb25zdCBhbGxEZWNvcmF0b3JzID0gZ2V0UHJvcGVydHlEZWNvcmF0b3JzKFxuICAgICAgVmFsaWRhdGlvbktleXMuUkVGTEVDVCxcbiAgICAgIG5ld01vZGVsLFxuICAgICAgcHJvcFxuICAgICkuZGVjb3JhdG9ycztcbiAgICBjb25zdCBkZWNvcmF0b3JzID0gZ2V0UHJvcGVydHlEZWNvcmF0b3JzKFxuICAgICAgVmFsaWRhdGlvbktleXMuUkVGTEVDVCxcbiAgICAgIG5ld01vZGVsLFxuICAgICAgcHJvcFxuICAgICkuZGVjb3JhdG9ycy5maWx0ZXIoXG4gICAgICAoZCkgPT4gW01vZGVsS2V5cy5UWVBFLCBWYWxpZGF0aW9uS2V5cy5UWVBFXS5pbmRleE9mKGQua2V5KSAhPT0gLTFcbiAgICApO1xuICAgIGlmICghZGVjb3JhdG9ycyB8fCAhZGVjb3JhdG9ycy5sZW5ndGgpIGNvbnRpbnVlO1xuICAgIGNvbnN0IGRlYyA9IGRlY29yYXRvcnMucG9wKCkgYXMgRGVjb3JhdG9yTWV0YWRhdGE7XG4gICAgY29uc3QgY2xhenogPSBkZWMucHJvcHMubmFtZVxuICAgICAgPyBbZGVjLnByb3BzLm5hbWVdXG4gICAgICA6IEFycmF5LmlzQXJyYXkoZGVjLnByb3BzLmN1c3RvbVR5cGVzKVxuICAgICAgICA/IGRlYy5wcm9wcy5jdXN0b21UeXBlc1xuICAgICAgICA6IFtkZWMucHJvcHMuY3VzdG9tVHlwZXNdO1xuICAgIGNvbnN0IHJlc2VydmVkID0gT2JqZWN0LnZhbHVlcyhSZXNlcnZlZE1vZGVscykubWFwKCh2KSA9PlxuICAgICAgdi50b0xvd2VyQ2FzZSgpXG4gICAgKSBhcyBzdHJpbmdbXTtcblxuICAgIGZvciAoY29uc3QgYyBvZiBjbGF6eikge1xuICAgICAgaWYgKHJlc2VydmVkLmluZGV4T2YoYy50b0xvd2VyQ2FzZSgpKSA9PT0gLTEpIHtcbiAgICAgICAgc3dpdGNoIChjKSB7XG4gICAgICAgICAgY2FzZSBBcnJheS5uYW1lOlxuICAgICAgICAgIGNhc2UgU2V0Lm5hbWU6XG4gICAgICAgICAgICBpZiAoYWxsRGVjb3JhdG9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgY29uc3QgbGlzdERlYyA9IGFsbERlY29yYXRvcnMuZmluZChcbiAgICAgICAgICAgICAgICAoZCkgPT4gZC5rZXkgPT09IFZhbGlkYXRpb25LZXlzLkxJU1RcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKGxpc3REZWMpIHtcbiAgICAgICAgICAgICAgICBsZXQgY3VycmVudExpc3QsIG9sZExpc3Q7XG5cbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGMpIHtcbiAgICAgICAgICAgICAgICAgIGNhc2UgQXJyYXkubmFtZTpcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudExpc3QgPSAobmV3TW9kZWwgYXMgUmVjb3JkPHN0cmluZywgYW55PilbcHJvcF07XG4gICAgICAgICAgICAgICAgICAgIG9sZExpc3QgPSAob2xkTW9kZWwgYXMgUmVjb3JkPHN0cmluZywgYW55PilbcHJvcF07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgY2FzZSBTZXQubmFtZTpcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudExpc3QgPSAobmV3TW9kZWwgYXMgUmVjb3JkPHN0cmluZywgYW55PilbXG4gICAgICAgICAgICAgICAgICAgICAgcHJvcFxuICAgICAgICAgICAgICAgICAgICBdLnZhbHVlcygpO1xuICAgICAgICAgICAgICAgICAgICBvbGRMaXN0ID0gKG9sZE1vZGVsIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW3Byb3BdLnZhbHVlcygpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhdHRyaWJ1dGUgdHlwZSAke2N9YCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXJyID0gY3VycmVudExpc3RcbiAgICAgICAgICAgICAgICAgIC5tYXAoKHY6IFZhbGlkYXRhYmxlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlkID0gZmluZE1vZGVsSWQodiBhcyBhbnksIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlkKSByZXR1cm4gXCJGYWlsZWQgdG8gZmluZCBtb2RlbCBpZFwiO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvbGRNb2RlbCA9IG9sZExpc3QuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAoZWw6IGFueSkgPT4gaWQgPT09IGZpbmRNb2RlbElkKGVsLCB0cnVlKVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghb2xkTW9kZWwpIHJldHVybjsgLy8gbm90aGluZyB0byBjb21wYXJlIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHYuaGFzRXJyb3JzKG9sZE1vZGVsKTtcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAuZmlsdGVyKChlOiBhbnkpID0+ICEhZSkgYXMgYW55O1xuXG4gICAgICAgICAgICAgICAgaWYgKCFlcnI/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIHJlc3VsdCBpcyBhbiBlbXB0eSBsaXN0Li4uXG4gICAgICAgICAgICAgICAgICBlcnIgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIChuZXdNb2RlbCBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVtwcm9wXSAmJlxuICAgICAgICAgICAgICAgIChvbGRNb2RlbCBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVtwcm9wXVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgZXJyID0gKG5ld01vZGVsIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW3Byb3BdLmhhc0Vycm9ycyhcbiAgICAgICAgICAgICAgICAgIChvbGRNb2RlbCBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVtwcm9wXVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgICAgICBjb25zb2xlLndhcm4oc2YoXCJNb2RlbCBzaG91bGQgYmUgdmFsaWRhdGFibGUgYnV0IGl0cyBub3RcIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdCB8fCB7fTtcbiAgICAgICAgcmVzdWx0W3Byb3BdID0gZXJyIGFzIGFueTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdCA/IG5ldyBNb2RlbEVycm9yRGVmaW5pdGlvbihyZXN1bHQpIDogdW5kZWZpbmVkO1xufVxuIl19
126
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tb2RlbC92YWxpZGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxvQkFBb0IsRUFFcEIsU0FBUyxFQUNULGNBQWMsRUFDZCxFQUFFLEVBRUYsVUFBVSxFQUNWLGNBQWMsR0FFZixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBcUIsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckUsT0FBTyxFQUFFLG9CQUFvQixFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFDOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FDN0IsUUFBVyxFQUNYLFFBQVcsRUFDWCxHQUFHLFVBQW9CO0lBRXZCLE1BQU0sbUJBQW1CLEdBQTRDLEVBQUUsQ0FBQztJQUN4RSxLQUFLLE1BQU0sSUFBSSxJQUFJLFFBQVE7UUFDekIsSUFDRSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQztZQUNwRCxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUvQixtQkFBbUIsQ0FBQyxJQUFJLENBQ3RCLFVBQVUsQ0FBQyxxQkFBcUIsQ0FDOUIsb0JBQW9CLENBQUMsT0FBTyxFQUM1QixRQUFRLEVBQ1IsSUFBSSxDQUNvQyxDQUMzQyxDQUFDO0lBRU4sSUFBSSxNQUFNLEdBQTRCLFNBQVMsQ0FBQztJQUVoRCxLQUFLLE1BQU0saUJBQWlCLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUNwRCxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLGlCQUFpQixDQUFDO1FBRS9DLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLDJFQUEyRTtRQUUvRixJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU07WUFBRSxTQUFTO1FB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Q0FBQztnQkFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQVUsQ0FBQztZQUM1QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQy9ELENBQUMiLCJmaWxlIjoibW9kZWwvdmFsaWRhdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE1vZGVsLFxuICBNb2RlbEVycm9yRGVmaW5pdGlvbixcbiAgTW9kZWxFcnJvcnMsXG4gIE1vZGVsS2V5cyxcbiAgUmVzZXJ2ZWRNb2RlbHMsXG4gIHNmLFxuICBWYWxpZGF0YWJsZSxcbiAgVmFsaWRhdGlvbixcbiAgVmFsaWRhdGlvbktleXMsXG4gIFZhbGlkYXRpb25Qcm9wZXJ0eURlY29yYXRvckRlZmluaXRpb24sXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IERlY29yYXRvck1ldGFkYXRhLCBSZWZsZWN0aW9uIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBVcGRhdGVWYWxpZGF0aW9uS2V5cywgVXBkYXRlVmFsaWRhdG9yIH0gZnJvbSBcIi4uL3ZhbGlkYXRpb25cIjtcbmltcG9ydCB7IGZpbmRNb2RlbElkIH0gZnJvbSBcIi4uL2lkZW50aXR5XCI7XG5cbi8qKlxuICogQHN1bW1hcnkgVmFsaWRhdGVzIHRoZSB1cGRhdGUgb2YgYSBtb2RlbFxuICpcbiAqIEBwYXJhbSB7VH0gb2xkTW9kZWxcbiAqIEBwYXJhbSB7VH0gbmV3TW9kZWxcbiAqIEBwYXJhbSB7c3RyaW5nW119IFtleGNlcHRpb25zXVxuICpcbiAqIEBmdW5jdGlvbiB2YWxpZGF0ZUNvbXBhcmVcbiAqIEByZXR1cm4ge01vZGVsRXJyb3JEZWZpbml0aW9uIHwgdW5kZWZpbmVkfVxuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGItZGVjb3JhdG9ycy5Nb2RlbFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVDb21wYXJlPFQgZXh0ZW5kcyBNb2RlbD4oXG4gIG9sZE1vZGVsOiBULFxuICBuZXdNb2RlbDogVCxcbiAgLi4uZXhjZXB0aW9uczogc3RyaW5nW11cbik6IE1vZGVsRXJyb3JEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZGVjb3JhdGVkUHJvcGVydGllczogVmFsaWRhdGlvblByb3BlcnR5RGVjb3JhdG9yRGVmaW5pdGlvbltdID0gW107XG4gIGZvciAoY29uc3QgcHJvcCBpbiBuZXdNb2RlbClcbiAgICBpZiAoXG4gICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobmV3TW9kZWwsIHByb3ApICYmXG4gICAgICBleGNlcHRpb25zLmluZGV4T2YocHJvcCkgPT09IC0xXG4gICAgKVxuICAgICAgZGVjb3JhdGVkUHJvcGVydGllcy5wdXNoKFxuICAgICAgICBSZWZsZWN0aW9uLmdldFByb3BlcnR5RGVjb3JhdG9ycyhcbiAgICAgICAgICBVcGRhdGVWYWxpZGF0aW9uS2V5cy5SRUZMRUNULFxuICAgICAgICAgIG5ld01vZGVsLFxuICAgICAgICAgIHByb3BcbiAgICAgICAgKSBhcyBWYWxpZGF0aW9uUHJvcGVydHlEZWNvcmF0b3JEZWZpbml0aW9uXG4gICAgICApO1xuXG4gIGxldCByZXN1bHQ6IE1vZGVsRXJyb3JzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIGZvciAoY29uc3QgZGVjb3JhdGVkUHJvcGVydHkgb2YgZGVjb3JhdGVkUHJvcGVydGllcykge1xuICAgIGNvbnN0IHsgcHJvcCwgZGVjb3JhdG9ycyB9ID0gZGVjb3JhdGVkUHJvcGVydHk7XG5cbiAgICBkZWNvcmF0b3JzLnNoaWZ0KCk7IC8vIHJlbW92ZSB0aGUgZGVzaWduOnR5cGUgZGVjb3JhdG9yLCBzaW5jZSB0aGUgdHlwZSB3aWxsIGFscmVhZHkgYmUgY2hlY2tlZFxuXG4gICAgaWYgKCFkZWNvcmF0b3JzIHx8ICFkZWNvcmF0b3JzLmxlbmd0aCkgY29udGludWU7XG4gICAgbGV0IGVycnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgICBmb3IgKGNvbnN0IGRlY29yYXRvciBvZiBkZWNvcmF0b3JzKSB7XG4gICAgICBjb25zdCB2YWxpZGF0b3I6IFVwZGF0ZVZhbGlkYXRvciA9IFZhbGlkYXRpb24uZ2V0KFxuICAgICAgICBkZWNvcmF0b3Iua2V5XG4gICAgICApIGFzIFVwZGF0ZVZhbGlkYXRvcjtcbiAgICAgIGlmICghdmFsaWRhdG9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgYENvdWxkIG5vdCBmaW5kIE1hdGNoaW5nIHZhbGlkYXRvciBmb3IgJHtkZWNvcmF0b3Iua2V5fSBmb3IgcHJvcGVydHkgJHtTdHJpbmcoZGVjb3JhdGVkUHJvcGVydHkucHJvcCl9YFxuICAgICAgICApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZXJyOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB2YWxpZGF0b3IudXBkYXRlSGFzRXJyb3JzKFxuICAgICAgICAobmV3TW9kZWwgYXMgYW55KVtwcm9wLnRvU3RyaW5nKCldLFxuICAgICAgICAob2xkTW9kZWwgYXMgYW55KVtwcm9wLnRvU3RyaW5nKCldLFxuICAgICAgICAuLi5PYmplY3QudmFsdWVzKGRlY29yYXRvci5wcm9wcylcbiAgICAgICk7XG5cbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgZXJycyA9IGVycnMgfHwge307XG4gICAgICAgIGVycnNbZGVjb3JhdG9yLmtleV0gPSBlcnI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGVycnMpIHtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdCB8fCB7fTtcbiAgICAgIHJlc3VsdFtkZWNvcmF0ZWRQcm9wZXJ0eS5wcm9wLnRvU3RyaW5nKCldID0gZXJycztcbiAgICB9XG4gIH1cbiAgLy8gdGVzdHMgbmVzdGVkIGNsYXNzZXNcbiAgZm9yIChjb25zdCBwcm9wIG9mIE9iamVjdC5rZXlzKG5ld01vZGVsKS5maWx0ZXIoKGspID0+IHtcbiAgICBpZiAoZXhjZXB0aW9ucy5pbmNsdWRlcyhrKSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiAhcmVzdWx0IHx8ICFyZXN1bHRba107XG4gIH0pKSB7XG4gICAgbGV0IGVycjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8vIGlmIGEgbmVzdGVkIE1vZGVsXG4gICAgY29uc3QgYWxsRGVjb3JhdG9ycyA9IFJlZmxlY3Rpb24uZ2V0UHJvcGVydHlEZWNvcmF0b3JzKFxuICAgICAgVmFsaWRhdGlvbktleXMuUkVGTEVDVCxcbiAgICAgIG5ld01vZGVsLFxuICAgICAgcHJvcFxuICAgICkuZGVjb3JhdG9ycztcbiAgICBjb25zdCBkZWNvcmF0b3JzID0gUmVmbGVjdGlvbi5nZXRQcm9wZXJ0eURlY29yYXRvcnMoXG4gICAgICBWYWxpZGF0aW9uS2V5cy5SRUZMRUNULFxuICAgICAgbmV3TW9kZWwsXG4gICAgICBwcm9wXG4gICAgKS5kZWNvcmF0b3JzLmZpbHRlcihcbiAgICAgIChkKSA9PiBbTW9kZWxLZXlzLlRZUEUsIFZhbGlkYXRpb25LZXlzLlRZUEVdLmluZGV4T2YoZC5rZXkpICE9PSAtMVxuICAgICk7XG4gICAgaWYgKCFkZWNvcmF0b3JzIHx8ICFkZWNvcmF0b3JzLmxlbmd0aCkgY29udGludWU7XG4gICAgY29uc3QgZGVjID0gZGVjb3JhdG9ycy5wb3AoKSBhcyBEZWNvcmF0b3JNZXRhZGF0YTtcbiAgICBjb25zdCBjbGF6eiA9IGRlYy5wcm9wcy5uYW1lXG4gICAgICA/IFtkZWMucHJvcHMubmFtZV1cbiAgICAgIDogQXJyYXkuaXNBcnJheShkZWMucHJvcHMuY3VzdG9tVHlwZXMpXG4gICAgICAgID8gZGVjLnByb3BzLmN1c3RvbVR5cGVzXG4gICAgICAgIDogW2RlYy5wcm9wcy5jdXN0b21UeXBlc107XG4gICAgY29uc3QgcmVzZXJ2ZWQgPSBPYmplY3QudmFsdWVzKFJlc2VydmVkTW9kZWxzKS5tYXAoKHYpID0+XG4gICAgICB2LnRvTG93ZXJDYXNlKClcbiAgICApIGFzIHN0cmluZ1tdO1xuXG4gICAgZm9yIChjb25zdCBjIG9mIGNsYXp6KSB7XG4gICAgICBpZiAocmVzZXJ2ZWQuaW5kZXhPZihjLnRvTG93ZXJDYXNlKCkpID09PSAtMSkge1xuICAgICAgICBzd2l0Y2ggKGMpIHtcbiAgICAgICAgICBjYXNlIEFycmF5Lm5hbWU6XG4gICAgICAgICAgY2FzZSBTZXQubmFtZTpcbiAgICAgICAgICAgIGlmIChhbGxEZWNvcmF0b3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgICBjb25zdCBsaXN0RGVjID0gYWxsRGVjb3JhdG9ycy5maW5kKFxuICAgICAgICAgICAgICAgIChkKSA9PiBkLmtleSA9PT0gVmFsaWRhdGlvbktleXMuTElTVFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAobGlzdERlYykge1xuICAgICAgICAgICAgICAgIGxldCBjdXJyZW50TGlzdCwgb2xkTGlzdDtcblxuICAgICAgICAgICAgICAgIHN3aXRjaCAoYykge1xuICAgICAgICAgICAgICAgICAgY2FzZSBBcnJheS5uYW1lOlxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50TGlzdCA9IChuZXdNb2RlbCBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVtwcm9wXTtcbiAgICAgICAgICAgICAgICAgICAgb2xkTGlzdCA9IChvbGRNb2RlbCBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVtwcm9wXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlIFNldC5uYW1lOlxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50TGlzdCA9IChuZXdNb2RlbCBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVtcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wXG4gICAgICAgICAgICAgICAgICAgIF0udmFsdWVzKCk7XG4gICAgICAgICAgICAgICAgICAgIG9sZExpc3QgPSAob2xkTW9kZWwgYXMgUmVjb3JkPHN0cmluZywgYW55PilbcHJvcF0udmFsdWVzKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGF0dHJpYnV0ZSB0eXBlICR7Y31gKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBlcnIgPSBjdXJyZW50TGlzdFxuICAgICAgICAgICAgICAgICAgLm1hcCgodjogVmFsaWRhdGFibGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaWQgPSBmaW5kTW9kZWxJZCh2IGFzIGFueSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaWQpIHJldHVybiBcIkZhaWxlZCB0byBmaW5kIG1vZGVsIGlkXCI7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9sZE1vZGVsID0gb2xkTGlzdC5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgIChlbDogYW55KSA9PiBpZCA9PT0gZmluZE1vZGVsSWQoZWwsIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvbGRNb2RlbCkgcmV0dXJuOyAvLyBub3RoaW5nIHRvIGNvbXBhcmUgd2l0aFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdi5oYXNFcnJvcnMob2xkTW9kZWwpO1xuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGU6IGFueSkgPT4gISFlKSBhcyBhbnk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIWVycj8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgcmVzdWx0IGlzIGFuIGVtcHR5IGxpc3QuLi5cbiAgICAgICAgICAgICAgICAgIGVyciA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKG5ld01vZGVsIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW3Byb3BdICYmXG4gICAgICAgICAgICAgICAgKG9sZE1vZGVsIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW3Byb3BdXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBlcnIgPSAobmV3TW9kZWwgYXMgUmVjb3JkPHN0cmluZywgYW55PilbcHJvcF0uaGFzRXJyb3JzKFxuICAgICAgICAgICAgICAgICAgKG9sZE1vZGVsIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW3Byb3BdXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybihzZihcIk1vZGVsIHNob3VsZCBiZSB2YWxpZGF0YWJsZSBidXQgaXRzIG5vdFwiKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0IHx8IHt9O1xuICAgICAgICByZXN1bHRbcHJvcF0gPSBlcnIgYXMgYW55O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0ID8gbmV3IE1vZGVsRXJyb3JEZWZpbml0aW9uKHJlc3VsdCkgOiB1bmRlZmluZWQ7XG59XG4iXX0=
@@ -13,6 +13,7 @@ export declare enum OperationKeys {
13
13
  ON = "on.",
14
14
  AFTER = "after."
15
15
  }
16
+ export type CrudOperations = OperationKeys.CREATE | OperationKeys.READ | OperationKeys.UPDATE | OperationKeys.DELETE;
16
17
  /**
17
18
  * @summary Maps out groups of CRUD operations for easier mapping of decorators
18
19
  *
@@ -20,4 +21,4 @@ export declare enum OperationKeys {
20
21
  *
21
22
  * @memberOf module:db-decorators.Operations
22
23
  */
23
- export declare const DBOperations: Record<string, OperationKeys[]>;
24
+ export declare const DBOperations: Record<string, CrudOperations[]>;
@@ -36,4 +36,4 @@ export const DBOperations = {
36
36
  ],
37
37
  };
38
38
 
39
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9vcGVyYXRpb25zL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBTixJQUFZLGFBUVg7QUFSRCxXQUFZLGFBQWE7SUFDdkIsdURBQXNDLENBQUE7SUFDdEMsa0NBQWlCLENBQUE7SUFDakIsOEJBQWEsQ0FBQTtJQUNiLGtDQUFpQixDQUFBO0lBQ2pCLGtDQUFpQixDQUFBO0lBQ2pCLDJCQUFVLENBQUE7SUFDVixpQ0FBZ0IsQ0FBQTtBQUNsQixDQUFDLEVBUlcsYUFBYSxLQUFiLGFBQWEsUUFReEI7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQW9DO0lBQzNELE1BQU0sRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7SUFDOUIsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztJQUMxQixNQUFNLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO0lBQzlCLE1BQU0sRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7SUFDOUIsYUFBYSxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDO0lBQzNELFdBQVcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQztJQUN2RCxHQUFHLEVBQUU7UUFDSCxhQUFhLENBQUMsTUFBTTtRQUNwQixhQUFhLENBQUMsSUFBSTtRQUNsQixhQUFhLENBQUMsTUFBTTtRQUNwQixhQUFhLENBQUMsTUFBTTtLQUNyQjtDQUNGLENBQUMiLCJmaWxlIjoib3BlcmF0aW9ucy9jb25zdGFudHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzdW1tYXJ5IFNldCBvZiBjb25zdGFudHMgdG8gZGVmaW5lIGRiIENSVUQgb3BlcmF0aW9ucyBhbmQgdGhlaXIgZXF1aXZhbGVudCAnb24nIGFuZCAnYWZ0ZXInIHBoYXNlc1xuICogQGNvbnN0IE9wZXJhdGlvbktleXNcbiAqXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRiLWRlY29yYXRvcnMuT3BlcmF0aW9uc1xuICovXG5leHBvcnQgZW51bSBPcGVyYXRpb25LZXlzIHtcbiAgUkVGTEVDVCA9IFwiZGVjYWYubW9kZWwuZGIub3BlcmF0aW9ucy5cIixcbiAgQ1JFQVRFID0gXCJjcmVhdGVcIixcbiAgUkVBRCA9IFwicmVhZFwiLFxuICBVUERBVEUgPSBcInVwZGF0ZVwiLFxuICBERUxFVEUgPSBcImRlbGV0ZVwiLFxuICBPTiA9IFwib24uXCIsXG4gIEFGVEVSID0gXCJhZnRlci5cIixcbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBNYXBzIG91dCBncm91cHMgb2YgQ1JVRCBvcGVyYXRpb25zIGZvciBlYXNpZXIgbWFwcGluZyBvZiBkZWNvcmF0b3JzXG4gKlxuICogQGNvbnN0YW50IERCT3BlcmF0aW9uc1xuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGItZGVjb3JhdG9ycy5PcGVyYXRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBEQk9wZXJhdGlvbnM6IFJlY29yZDxzdHJpbmcsIE9wZXJhdGlvbktleXNbXT4gPSB7XG4gIENSRUFURTogW09wZXJhdGlvbktleXMuQ1JFQVRFXSxcbiAgUkVBRDogW09wZXJhdGlvbktleXMuUkVBRF0sXG4gIFVQREFURTogW09wZXJhdGlvbktleXMuVVBEQVRFXSxcbiAgREVMRVRFOiBbT3BlcmF0aW9uS2V5cy5ERUxFVEVdLFxuICBDUkVBVEVfVVBEQVRFOiBbT3BlcmF0aW9uS2V5cy5DUkVBVEUsIE9wZXJhdGlvbktleXMuVVBEQVRFXSxcbiAgUkVBRF9DUkVBVEU6IFtPcGVyYXRpb25LZXlzLlJFQUQsIE9wZXJhdGlvbktleXMuQ1JFQVRFXSxcbiAgQUxMOiBbXG4gICAgT3BlcmF0aW9uS2V5cy5DUkVBVEUsXG4gICAgT3BlcmF0aW9uS2V5cy5SRUFELFxuICAgIE9wZXJhdGlvbktleXMuVVBEQVRFLFxuICAgIE9wZXJhdGlvbktleXMuREVMRVRFLFxuICBdLFxufTtcbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9vcGVyYXRpb25zL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBTixJQUFZLGFBUVg7QUFSRCxXQUFZLGFBQWE7SUFDdkIsdURBQXNDLENBQUE7SUFDdEMsa0NBQWlCLENBQUE7SUFDakIsOEJBQWEsQ0FBQTtJQUNiLGtDQUFpQixDQUFBO0lBQ2pCLGtDQUFpQixDQUFBO0lBQ2pCLDJCQUFVLENBQUE7SUFDVixpQ0FBZ0IsQ0FBQTtBQUNsQixDQUFDLEVBUlcsYUFBYSxLQUFiLGFBQWEsUUFReEI7QUFRRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQXFDO0lBQzVELE1BQU0sRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7SUFDOUIsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztJQUMxQixNQUFNLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO0lBQzlCLE1BQU0sRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7SUFDOUIsYUFBYSxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDO0lBQzNELFdBQVcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQztJQUN2RCxHQUFHLEVBQUU7UUFDSCxhQUFhLENBQUMsTUFBTTtRQUNwQixhQUFhLENBQUMsSUFBSTtRQUNsQixhQUFhLENBQUMsTUFBTTtRQUNwQixhQUFhLENBQUMsTUFBTTtLQUNyQjtDQUNGLENBQUMiLCJmaWxlIjoib3BlcmF0aW9ucy9jb25zdGFudHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzdW1tYXJ5IFNldCBvZiBjb25zdGFudHMgdG8gZGVmaW5lIGRiIENSVUQgb3BlcmF0aW9ucyBhbmQgdGhlaXIgZXF1aXZhbGVudCAnb24nIGFuZCAnYWZ0ZXInIHBoYXNlc1xuICogQGNvbnN0IE9wZXJhdGlvbktleXNcbiAqXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRiLWRlY29yYXRvcnMuT3BlcmF0aW9uc1xuICovXG5leHBvcnQgZW51bSBPcGVyYXRpb25LZXlzIHtcbiAgUkVGTEVDVCA9IFwiZGVjYWYubW9kZWwuZGIub3BlcmF0aW9ucy5cIixcbiAgQ1JFQVRFID0gXCJjcmVhdGVcIixcbiAgUkVBRCA9IFwicmVhZFwiLFxuICBVUERBVEUgPSBcInVwZGF0ZVwiLFxuICBERUxFVEUgPSBcImRlbGV0ZVwiLFxuICBPTiA9IFwib24uXCIsXG4gIEFGVEVSID0gXCJhZnRlci5cIixcbn1cblxuZXhwb3J0IHR5cGUgQ3J1ZE9wZXJhdGlvbnMgPVxuICB8IE9wZXJhdGlvbktleXMuQ1JFQVRFXG4gIHwgT3BlcmF0aW9uS2V5cy5SRUFEXG4gIHwgT3BlcmF0aW9uS2V5cy5VUERBVEVcbiAgfCBPcGVyYXRpb25LZXlzLkRFTEVURTtcblxuLyoqXG4gKiBAc3VtbWFyeSBNYXBzIG91dCBncm91cHMgb2YgQ1JVRCBvcGVyYXRpb25zIGZvciBlYXNpZXIgbWFwcGluZyBvZiBkZWNvcmF0b3JzXG4gKlxuICogQGNvbnN0YW50IERCT3BlcmF0aW9uc1xuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGItZGVjb3JhdG9ycy5PcGVyYXRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBEQk9wZXJhdGlvbnM6IFJlY29yZDxzdHJpbmcsIENydWRPcGVyYXRpb25zW10+ID0ge1xuICBDUkVBVEU6IFtPcGVyYXRpb25LZXlzLkNSRUFURV0sXG4gIFJFQUQ6IFtPcGVyYXRpb25LZXlzLlJFQURdLFxuICBVUERBVEU6IFtPcGVyYXRpb25LZXlzLlVQREFURV0sXG4gIERFTEVURTogW09wZXJhdGlvbktleXMuREVMRVRFXSxcbiAgQ1JFQVRFX1VQREFURTogW09wZXJhdGlvbktleXMuQ1JFQVRFLCBPcGVyYXRpb25LZXlzLlVQREFURV0sXG4gIFJFQURfQ1JFQVRFOiBbT3BlcmF0aW9uS2V5cy5SRUFELCBPcGVyYXRpb25LZXlzLkNSRUFURV0sXG4gIEFMTDogW1xuICAgIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICAgIE9wZXJhdGlvbktleXMuUkVBRCxcbiAgICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgICBPcGVyYXRpb25LZXlzLkRFTEVURSxcbiAgXSxcbn07XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { Operations } from "../operations/Operations";
2
2
  import { OperationKeys } from "../operations/constants";
3
- import { getAllPropertyDecorators, } from "@decaf-ts/reflection";
3
+ import { Reflection } from "@decaf-ts/reflection";
4
4
  import { InternalError } from "./errors";
5
5
  import { ModelKeys, sf, } from "@decaf-ts/decorator-validation";
6
6
  /**
@@ -81,7 +81,7 @@ export async function enforceDBDecorators(repo, context, model, operation, prefi
81
81
  * @memberOf db-decorators.utils
82
82
  */
83
83
  export function getDbDecorators(model, operation, extraPrefix) {
84
- const decorators = getAllPropertyDecorators(model,
84
+ const decorators = Reflection.getAllPropertyDecorators(model,
85
85
  // undefined,
86
86
  OperationKeys.REFLECT + (extraPrefix ? extraPrefix : ""));
87
87
  if (!decorators)
@@ -151,7 +151,7 @@ export const getAllPropertyDecoratorsRecursive = function (model, accum, ...pref
151
151
  pushOrSquash(key, ...value);
152
152
  });
153
153
  };
154
- const decs = getAllPropertyDecorators(model, ...prefixes);
154
+ const decs = Reflection.getAllPropertyDecorators(model, ...prefixes);
155
155
  if (decs)
156
156
  mergeDecorators(decs);
157
157
  if (Object.getPrototypeOf(model) === Object.prototype)
@@ -165,4 +165,4 @@ export const getAllPropertyDecoratorsRecursive = function (model, accum, ...pref
165
165
  return getAllPropertyDecoratorsRecursive(proto, accumulator, ...prefixes);
166
166
  };
167
167
 
168
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9yZXBvc2l0b3J5L3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUVMLHdCQUF3QixHQUN6QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUdMLFNBQVMsRUFDVCxFQUFFLEdBQ0gsTUFBTSxnQ0FBZ0MsQ0FBQztBQVF4Qzs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsVUFDNUIsR0FBUSxFQUNSLElBQVksRUFDWixDQUFtQixFQUNuQixLQUEwQztJQUUxQyxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUNoQyxJQUFJLENBQUMsSUFBSTtRQUFFLE1BQU0sSUFBSSxhQUFhLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUN0RSxLQUFLLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUVwQixJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM1RCxLQUFLLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7SUFFMUQsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyQyxJQUFJLEtBQUssS0FBSyxNQUFNLENBQUMsU0FBUztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQzdDLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssSUFBSTtRQUFFLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTFFLE9BQU8sY0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsbUJBQW1CLENBS3ZDLElBQU8sRUFDUCxPQUFtQixFQUNuQixLQUFRLEVBQ1IsU0FBaUIsRUFDakIsTUFBYyxFQUNkLFFBQVk7SUFFWixNQUFNLFVBQVUsR0FDZCxlQUFlLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUU1QyxJQUFJLENBQUMsVUFBVTtRQUFFLE9BQU87SUFFeEIsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUM5QixNQUFNLElBQUksR0FBd0IsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdkIsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQztZQUNwQixNQUFNLFFBQVEsR0FBNEMsVUFBVSxDQUFDLEdBQUcsQ0FDdEUsS0FBSyxFQUNMLElBQUksRUFDSixNQUFNLEdBQUcsR0FBRyxDQUNiLENBQUM7WUFDRixJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07Z0JBQy9CLE1BQU0sSUFBSSxhQUFhLENBQ3JCLHVEQUF1RCxNQUFNLEdBQUcsR0FBRyxtQkFBbUIsSUFBSSxFQUFFLENBQzdGLENBQUM7WUFFSixNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFZLENBQUMsQ0FBQztZQUU1RCxJQUFJLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxNQUFNO2dCQUN2RSxNQUFNLElBQUksYUFBYSxDQUFDLEVBQUUsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDLENBQUM7WUFFdkUsSUFBSSxPQUF3QyxDQUFDO1lBQzdDLElBQUksSUFBUyxDQUFDO1lBQ2QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDekMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEIsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRXJDLE1BQU0sSUFBSSxHQUFVLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUV0RCxJQUFJLFNBQVMsS0FBSyxhQUFhLENBQUMsTUFBTSxJQUFJLE1BQU0sS0FBSyxhQUFhLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQ3RFLElBQUksQ0FBQyxRQUFRO3dCQUNYLE1BQU0sSUFBSSxhQUFhLENBQUMsd0NBQXdDLENBQUMsQ0FBQztvQkFDcEUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdEIsQ0FBQztnQkFDRCxNQUFPLE9BQTJDLENBQUMsS0FBSyxDQUN0RCxJQUFJLEVBQ0osSUFBa0MsQ0FDbkMsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUM3QixLQUFRLEVBQ1IsU0FBaUIsRUFDakIsV0FBb0I7SUFFcEIsTUFBTSxVQUFVLEdBQ2Qsd0JBQXdCLENBQ3RCLEtBQUs7SUFDTCxhQUFhO0lBQ2IsYUFBYSxDQUFDLE9BQU8sR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FDekQsQ0FBQztJQUNKLElBQUksQ0FBQyxVQUFVO1FBQUUsT0FBTztJQUN4QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUNuQyxDQUFDLEtBQXNELEVBQUUsU0FBUyxFQUFFLEVBQUU7UUFDcEUsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxTQUFTLENBQUMsQ0FBQztRQUNyRSxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLEtBQUs7Z0JBQUUsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3pCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsRUFDRCxTQUFTLENBQ1YsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLFVBQy9DLEtBQVEsRUFDUixLQUErQyxFQUMvQyxHQUFHLFFBQWtCO0lBRXJCLE1BQU0sV0FBVyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDaEMsTUFBTSxlQUFlLEdBQUcsVUFBVSxJQUFrQztRQUNsRSxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBRSxHQUFHLE1BQWEsRUFBRSxFQUFFO1lBQ3JELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDckIsSUFBSSxLQUFVLENBQUM7Z0JBQ2YsSUFDRSxDQUFDLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUMxRCxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFDN0MsQ0FBQztvQkFDRCxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUMzQixPQUFPO2dCQUNULENBQUM7Z0JBRUQsSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxJQUFJO29CQUFFLE9BQU87Z0JBRXZDLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFFMUMsSUFDRSxDQUFDLFNBQVM7b0JBQ1YsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUNkLElBQUksTUFBTSxDQUNSLE9BQU8sYUFBYSxDQUFDLEVBQUUsSUFBSSxhQUFhLENBQUMsS0FBSyxPQUFPLGFBQWEsQ0FBQyxNQUFNLElBQUksYUFBYSxDQUFDLElBQUksSUFBSSxhQUFhLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxNQUFNLElBQUksQ0FDcEosQ0FDRixFQUNELENBQUM7b0JBQ0QsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDM0IsT0FBTztnQkFDVCxDQUFDO2dCQUVELE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO2dCQUUzQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUU7b0JBQ3ZELElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxhQUFhLENBQUMsRUFBRSxDQUFDO3dCQUM5QixhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDO3dCQUNsQyxPQUFPO29CQUNULENBQUM7b0JBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFvQixDQUFDLENBQUMsT0FBTyxDQUMxQyxDQUFDLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUU7d0JBQ3pCLElBQUksQ0FBQyxDQUFDLFdBQVcsSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDOzRCQUMzQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsT0FBTyxDQUFDOzRCQUM1QyxPQUFPO3dCQUNULENBQUM7d0JBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFpQixDQUFDLENBQUMsT0FBTyxDQUN2QyxDQUFDLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUU7NEJBQ3hCLElBQUksQ0FBQyxDQUFDLFVBQVUsSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDO2dDQUN2RCxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsT0FBTyxDQUFDO2dDQUN4RCxPQUFPOzRCQUNULENBQUM7NEJBQ0QsT0FBTyxDQUFDLElBQUksQ0FDVixFQUFFLENBQ0Esa0ZBQWtGLEVBQ2xGLEtBQUssRUFDTCxXQUFXLENBQ1osQ0FDRixDQUFDO3dCQUNKLENBQUMsQ0FDRixDQUFDO29CQUNKLENBQUMsQ0FDRixDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDNUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsTUFBTSxJQUFJLEdBQ1Isd0JBQXdCLENBQUMsS0FBSyxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUM7SUFDL0MsSUFBSSxJQUFJO1FBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWhDLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxNQUFNLENBQUMsU0FBUztRQUFFLE9BQU8sV0FBVyxDQUFDO0lBRTFFLHVDQUF1QztJQUN2QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxXQUFXLENBQUM7SUFDL0IsNERBQTREO0lBQzVELDJDQUEyQztJQUMzQyxPQUFPLGlDQUFpQyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztBQUM1RSxDQUFDLENBQUMiLCJmaWxlIjoicmVwb3NpdG9yeS91dGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wZXJhdGlvbnMgfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9PcGVyYXRpb25zXCI7XG5pbXBvcnQgeyBPcGVyYXRpb25IYW5kbGVyLCBVcGRhdGVPcGVyYXRpb25IYW5kbGVyIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvdHlwZXNcIjtcbmltcG9ydCB7IElSZXBvc2l0b3J5IH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvSVJlcG9zaXRvcnlcIjtcbmltcG9ydCB7IE9wZXJhdGlvbktleXMgfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9jb25zdGFudHNcIjtcbmltcG9ydCB7XG4gIERlY29yYXRvck1ldGFkYXRhLFxuICBnZXRBbGxQcm9wZXJ0eURlY29yYXRvcnMsXG59IGZyb20gXCJAZGVjYWYtdHMvcmVmbGVjdGlvblwiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCIuL2Vycm9yc1wiO1xuaW1wb3J0IHtcbiAgQ29uc3RydWN0b3IsXG4gIE1vZGVsLFxuICBNb2RlbEtleXMsXG4gIHNmLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSBcIi4vQ29udGV4dFwiO1xuXG5leHBvcnQgdHlwZSBDb250ZXh0QXJnczxNIGV4dGVuZHMgTW9kZWw+ID0ge1xuICBjb250ZXh0OiBDb250ZXh0PE0+O1xuICBhcmdzOiBhbnlbXTtcbn07XG5cbi8qKlxuICogQHN1bW1hcnkgcmV0cmlldmVzIHRoZSBhcmd1bWVudHMgZm9yIHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0ge2FueX0gZGVjIHRoZSBkZWNvcmF0b3JcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wIHRoZSBwcm9wZXJ0eSBuYW1lXG4gKiBAcGFyYW0ge3t9fSBtIHRoZSBtb2RlbFxuICogQHBhcmFtIHt7fX0gW2FjY3VtXSBhY2N1bXVsYXRvciB1c2VkIGZvciBpbnRlcm5hbCByZWN1cnNpdmVuZXNzXG4gKlxuICogQGZ1bmN0aW9uIGdldEhhbmRsZXJBcmdzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRiLWRlY29yYXRvcnMuUmVwb3NpdG9yeVxuICovXG5leHBvcnQgY29uc3QgZ2V0SGFuZGxlckFyZ3MgPSBmdW5jdGlvbiAoXG4gIGRlYzogYW55LFxuICBwcm9wOiBzdHJpbmcsXG4gIG06IENvbnN0cnVjdG9yPGFueT4sXG4gIGFjY3VtPzogUmVjb3JkPHN0cmluZywgeyBhcmdzOiBzdHJpbmdbXSB9PlxuKTogUmVjb3JkPHN0cmluZywgeyBhcmdzOiBzdHJpbmdbXSB9PiB8IHZvaWQge1xuICBjb25zdCBuYW1lID0gbS5jb25zdHJ1Y3Rvci5uYW1lO1xuICBpZiAoIW5hbWUpIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiQ291bGQgbm90IGRldGVybWluZSBtb2RlbCBjbGFzc1wiKTtcbiAgYWNjdW0gPSBhY2N1bSB8fCB7fTtcblxuICBpZiAoZGVjLnByb3BzLmhhbmRsZXJzW25hbWVdICYmIGRlYy5wcm9wcy5oYW5kbGVyc1tuYW1lXVtwcm9wXSlcbiAgICBhY2N1bSA9IHsgLi4uZGVjLnByb3BzLmhhbmRsZXJzW25hbWVdW3Byb3BdLCAuLi5hY2N1bSB9O1xuXG4gIGxldCBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihtKTtcbiAgaWYgKHByb3RvID09PSBPYmplY3QucHJvdG90eXBlKSByZXR1cm4gYWNjdW07XG4gIGlmIChwcm90by5jb25zdHJ1Y3Rvci5uYW1lID09PSBuYW1lKSBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihwcm90byk7XG5cbiAgcmV0dXJuIGdldEhhbmRsZXJBcmdzKGRlYywgcHJvcCwgcHJvdG8sIGFjY3VtKTtcbn07XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7SVJlcG9zaXRvcnk8VD59IHJlcG9cbiAqIEBwYXJhbSBjb250ZXh0XG4gKiBAcGFyYW0ge1R9IG1vZGVsXG4gKiBAcGFyYW0gb3BlcmF0aW9uXG4gKiBAcGFyYW0gcHJlZml4XG4gKlxuICogQHBhcmFtIG9sZE1vZGVsXG4gKiBAZnVuY3Rpb24gZW5mb3JjZURCUHJvcGVydHlEZWNvcmF0b3JzQXN5bmNcbiAqXG4gKiBAbWVtYmVyT2YgZGItZGVjb3JhdG9ycy51dGlsc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5mb3JjZURCRGVjb3JhdG9yczxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBZIGV4dGVuZHMgSVJlcG9zaXRvcnk8TT4sXG4gIFYsXG4+KFxuICByZXBvOiBZLFxuICBjb250ZXh0OiBDb250ZXh0PE0+LFxuICBtb2RlbDogTSxcbiAgb3BlcmF0aW9uOiBzdHJpbmcsXG4gIHByZWZpeDogc3RyaW5nLFxuICBvbGRNb2RlbD86IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBkZWNvcmF0b3JzOiBSZWNvcmQ8c3RyaW5nLCBEZWNvcmF0b3JNZXRhZGF0YVtdPiB8IHVuZGVmaW5lZCA9XG4gICAgZ2V0RGJEZWNvcmF0b3JzKG1vZGVsLCBvcGVyYXRpb24sIHByZWZpeCk7XG5cbiAgaWYgKCFkZWNvcmF0b3JzKSByZXR1cm47XG5cbiAgZm9yIChjb25zdCBwcm9wIGluIGRlY29yYXRvcnMpIHtcbiAgICBjb25zdCBkZWNzOiBEZWNvcmF0b3JNZXRhZGF0YVtdID0gZGVjb3JhdG9yc1twcm9wXTtcbiAgICBmb3IgKGNvbnN0IGRlYyBvZiBkZWNzKSB7XG4gICAgICBjb25zdCB7IGtleSB9ID0gZGVjO1xuICAgICAgY29uc3QgaGFuZGxlcnM6IE9wZXJhdGlvbkhhbmRsZXI8TSwgWSwgVj5bXSB8IHVuZGVmaW5lZCA9IE9wZXJhdGlvbnMuZ2V0KFxuICAgICAgICBtb2RlbCxcbiAgICAgICAgcHJvcCxcbiAgICAgICAgcHJlZml4ICsga2V5XG4gICAgICApO1xuICAgICAgaWYgKCFoYW5kbGVycyB8fCAhaGFuZGxlcnMubGVuZ3RoKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICBgQ291bGQgbm90IGZpbmQgcmVnaXN0ZXJlZCBoYW5kbGVyIGZvciB0aGUgb3BlcmF0aW9uICR7cHJlZml4ICsga2V5fSB1bmRlciBwcm9wZXJ0eSAke3Byb3B9YFxuICAgICAgICApO1xuXG4gICAgICBjb25zdCBoYW5kbGVyQXJncyA9IGdldEhhbmRsZXJBcmdzKGRlYywgcHJvcCwgbW9kZWwgYXMgYW55KTtcblxuICAgICAgaWYgKCFoYW5kbGVyQXJncyB8fCBPYmplY3QudmFsdWVzKGhhbmRsZXJBcmdzKS5sZW5ndGggIT09IGhhbmRsZXJzLmxlbmd0aClcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3Ioc2YoXCJBcmdzIGFuZCBoYW5kbGVycyBsZW5ndGggZG8gbm90IG1hdGNoXCIpKTtcblxuICAgICAgbGV0IGhhbmRsZXI6IE9wZXJhdGlvbkhhbmRsZXI8YW55LCBhbnksIGFueT47XG4gICAgICBsZXQgZGF0YTogYW55O1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBoYW5kbGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBoYW5kbGVyID0gaGFuZGxlcnNbaV07XG4gICAgICAgIGRhdGEgPSBPYmplY3QudmFsdWVzKGhhbmRsZXJBcmdzKVtpXTtcblxuICAgICAgICBjb25zdCBhcmdzOiBhbnlbXSA9IFtjb250ZXh0LCBkYXRhLmRhdGEsIHByb3AsIG1vZGVsXTtcblxuICAgICAgICBpZiAob3BlcmF0aW9uID09PSBPcGVyYXRpb25LZXlzLlVQREFURSAmJiBwcmVmaXggPT09IE9wZXJhdGlvbktleXMuT04pIHtcbiAgICAgICAgICBpZiAoIW9sZE1vZGVsKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJNaXNzaW5nIG9sZCBtb2RlbCBmb3IgdXBkYXRlIG9wZXJhdGlvblwiKTtcbiAgICAgICAgICBhcmdzLnB1c2gob2xkTW9kZWwpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IChoYW5kbGVyIGFzIFVwZGF0ZU9wZXJhdGlvbkhhbmRsZXI8TSwgWSwgVj4pLmFwcGx5KFxuICAgICAgICAgIHJlcG8sXG4gICAgICAgICAgYXJncyBhcyBbQ29udGV4dDxNPiwgViwgYW55LCBNLCBNXVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFNwZWNpZmljIGZvciBEQiBEZWNvcmF0b3JzXG4gKiBAcGFyYW0ge1R9IG1vZGVsXG4gKiBAcGFyYW0ge3N0cmluZ30gb3BlcmF0aW9uIENSVUQge0BsaW5rIE9wZXJhdGlvbktleXN9XG4gKiBAcGFyYW0ge3N0cmluZ30gW2V4dHJhUHJlZml4XVxuICpcbiAqIEBmdW5jdGlvbiBnZXREYlByb3BlcnR5RGVjb3JhdG9yc1xuICpcbiAqIEBtZW1iZXJPZiBkYi1kZWNvcmF0b3JzLnV0aWxzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREYkRlY29yYXRvcnM8VCBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IFQsXG4gIG9wZXJhdGlvbjogc3RyaW5nLFxuICBleHRyYVByZWZpeD86IHN0cmluZ1xuKTogUmVjb3JkPHN0cmluZywgRGVjb3JhdG9yTWV0YWRhdGFbXT4gfCB1bmRlZmluZWQge1xuICBjb25zdCBkZWNvcmF0b3JzOiBSZWNvcmQ8c3RyaW5nLCBEZWNvcmF0b3JNZXRhZGF0YVtdPiB8IHVuZGVmaW5lZCA9XG4gICAgZ2V0QWxsUHJvcGVydHlEZWNvcmF0b3JzKFxuICAgICAgbW9kZWwsXG4gICAgICAvLyB1bmRlZmluZWQsXG4gICAgICBPcGVyYXRpb25LZXlzLlJFRkxFQ1QgKyAoZXh0cmFQcmVmaXggPyBleHRyYVByZWZpeCA6IFwiXCIpXG4gICAgKTtcbiAgaWYgKCFkZWNvcmF0b3JzKSByZXR1cm47XG4gIHJldHVybiBPYmplY3Qua2V5cyhkZWNvcmF0b3JzKS5yZWR1Y2UoXG4gICAgKGFjY3VtOiBSZWNvcmQ8c3RyaW5nLCBEZWNvcmF0b3JNZXRhZGF0YVtdPiB8IHVuZGVmaW5lZCwgZGVjb3JhdG9yKSA9PiB7XG4gICAgICBjb25zdCBkZWMgPSBkZWNvcmF0b3JzW2RlY29yYXRvcl0uZmlsdGVyKChkKSA9PiBkLmtleSA9PT0gb3BlcmF0aW9uKTtcbiAgICAgIGlmIChkZWMgJiYgZGVjLmxlbmd0aCkge1xuICAgICAgICBpZiAoIWFjY3VtKSBhY2N1bSA9IHt9O1xuICAgICAgICBhY2N1bVtkZWNvcmF0b3JdID0gZGVjO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjY3VtO1xuICAgIH0sXG4gICAgdW5kZWZpbmVkXG4gICk7XG59XG5cbi8qKlxuICogQHN1bW1hcnkgUmV0cmlldmVzIHRoZSBkZWNvcmF0b3JzIGZvciBhbiBvYmplY3QncyBwcm9wZXJ0aWVzIHByZWZpeGVkIGJ5IHtAcGFyYW0gcHJlZml4ZXN9IHJlY3Vyc2l2ZWx5XG4gKiBAcGFyYW0gbW9kZWxcbiAqIEBwYXJhbSBhY2N1bVxuICogQHBhcmFtIHByZWZpeGVzXG4gKlxuICogQGZ1bmN0aW9uIGdldEFsbFByb3BlcnR5RGVjb3JhdG9yc1JlY3Vyc2l2ZVxuICogQG1lbWJlck9mIG1vZHVsZTpkYi1kZWNvcmF0b3JzLlJlcG9zaXRvcnlcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEFsbFByb3BlcnR5RGVjb3JhdG9yc1JlY3Vyc2l2ZSA9IGZ1bmN0aW9uIDxUIGV4dGVuZHMgTW9kZWw+KFxuICBtb2RlbDogVCxcbiAgYWNjdW06IHsgW2luZGV4ZXI6IHN0cmluZ106IGFueVtdIH0gfCB1bmRlZmluZWQsXG4gIC4uLnByZWZpeGVzOiBzdHJpbmdbXVxuKTogeyBbaW5kZXhlcjogc3RyaW5nXTogYW55W10gfSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGFjY3VtdWxhdG9yID0gYWNjdW0gfHwge307XG4gIGNvbnN0IG1lcmdlRGVjb3JhdG9ycyA9IGZ1bmN0aW9uIChkZWNzOiB7IFtpbmRleGVyOiBzdHJpbmddOiBhbnlbXSB9KSB7XG4gICAgY29uc3QgcHVzaE9yU3F1YXNoID0gKGtleTogc3RyaW5nLCAuLi52YWx1ZXM6IGFueVtdKSA9PiB7XG4gICAgICB2YWx1ZXMuZm9yRWFjaCgodmFsKSA9PiB7XG4gICAgICAgIGxldCBtYXRjaDogYW55O1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIShtYXRjaCA9IGFjY3VtdWxhdG9yW2tleV0uZmluZCgoZSkgPT4gZS5rZXkgPT09IHZhbC5rZXkpKSB8fFxuICAgICAgICAgIG1hdGNoLnByb3BzLm9wZXJhdGlvbiAhPT0gdmFsLnByb3BzLm9wZXJhdGlvblxuICAgICAgICApIHtcbiAgICAgICAgICBhY2N1bXVsYXRvcltrZXldLnB1c2godmFsKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsLmtleSA9PT0gTW9kZWxLZXlzLlRZUEUpIHJldHVybjtcblxuICAgICAgICBjb25zdCB7IGhhbmRsZXJzLCBvcGVyYXRpb24gfSA9IHZhbC5wcm9wcztcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgIW9wZXJhdGlvbiB8fFxuICAgICAgICAgICFvcGVyYXRpb24ubWF0Y2goXG4gICAgICAgICAgICBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgICBgXig6PyR7T3BlcmF0aW9uS2V5cy5PTn18JHtPcGVyYXRpb25LZXlzLkFGVEVSfSkoOj8ke09wZXJhdGlvbktleXMuQ1JFQVRFfXwke09wZXJhdGlvbktleXMuUkVBRH18JHtPcGVyYXRpb25LZXlzLlVQREFURX18JHtPcGVyYXRpb25LZXlzLkRFTEVURX0pJGBcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIGFjY3VtdWxhdG9yW2tleV0ucHVzaCh2YWwpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFjY3VtSGFuZGxlcnMgPSBtYXRjaC5wcm9wcy5oYW5kbGVycztcblxuICAgICAgICBPYmplY3QuZW50cmllcyhoYW5kbGVycykuZm9yRWFjaCgoW2NsYXp6LCBoYW5kbGVyRGVmXSkgPT4ge1xuICAgICAgICAgIGlmICghKGNsYXp6IGluIGFjY3VtSGFuZGxlcnMpKSB7XG4gICAgICAgICAgICBhY2N1bUhhbmRsZXJzW2NsYXp6XSA9IGhhbmRsZXJEZWY7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoaGFuZGxlckRlZiBhcyBvYmplY3QpLmZvckVhY2goXG4gICAgICAgICAgICAoW2hhbmRsZXJQcm9wLCBoYW5kbGVyXSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIShoYW5kbGVyUHJvcCBpbiBhY2N1bUhhbmRsZXJzW2NsYXp6XSkpIHtcbiAgICAgICAgICAgICAgICBhY2N1bUhhbmRsZXJzW2NsYXp6XVtoYW5kbGVyUHJvcF0gPSBoYW5kbGVyO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGhhbmRsZXIgYXMgb2JqZWN0KS5mb3JFYWNoKFxuICAgICAgICAgICAgICAgIChbaGFuZGxlcktleSwgYXJnc09ial0pID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmICghKGhhbmRsZXJLZXkgaW4gYWNjdW1IYW5kbGVyc1tjbGF6el1baGFuZGxlclByb3BdKSkge1xuICAgICAgICAgICAgICAgICAgICBhY2N1bUhhbmRsZXJzW2NsYXp6XVtoYW5kbGVyUHJvcF1baGFuZGxlcktleV0gPSBhcmdzT2JqO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgICAgIHNmKFxuICAgICAgICAgICAgICAgICAgICAgIFwiU2tpcHBpbmcgaGFuZGxlciByZWdpc3RyYXRpb24gZm9yIHswfSB1bmRlciBwcm9wIHswfSBiZWNhdXNlIGhhbmRsZXIgaXMgdGhlIHNhbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICBjbGF6eixcbiAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyUHJvcFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBPYmplY3QuZW50cmllcyhkZWNzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGFjY3VtdWxhdG9yW2tleV0gPSBhY2N1bXVsYXRvcltrZXldIHx8IFtdO1xuICAgICAgcHVzaE9yU3F1YXNoKGtleSwgLi4udmFsdWUpO1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGRlY3M6IHsgW2luZGV4ZXI6IHN0cmluZ106IGFueVtdIH0gfCB1bmRlZmluZWQgPVxuICAgIGdldEFsbFByb3BlcnR5RGVjb3JhdG9ycyhtb2RlbCwgLi4ucHJlZml4ZXMpO1xuICBpZiAoZGVjcykgbWVyZ2VEZWNvcmF0b3JzKGRlY3MpO1xuXG4gIGlmIChPYmplY3QuZ2V0UHJvdG90eXBlT2YobW9kZWwpID09PSBPYmplY3QucHJvdG90eXBlKSByZXR1cm4gYWNjdW11bGF0b3I7XG5cbiAgLy8gY29uc3QgbmFtZSA9IG1vZGVsLmNvbnN0cnVjdG9yLm5hbWU7XG4gIGNvbnN0IHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG1vZGVsKTtcbiAgaWYgKCFwcm90bykgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAvLyBpZiAocHJvdG8uY29uc3RydWN0b3IgJiYgcHJvdG8uY29uc3RydWN0b3IubmFtZSA9PT0gbmFtZSlcbiAgLy8gICAgIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKVxuICByZXR1cm4gZ2V0QWxsUHJvcGVydHlEZWNvcmF0b3JzUmVjdXJzaXZlKHByb3RvLCBhY2N1bXVsYXRvciwgLi4ucHJlZml4ZXMpO1xufTtcbiJdfQ==
168
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9yZXBvc2l0b3J5L3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFxQixVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFHTCxTQUFTLEVBQ1QsRUFBRSxHQUNILE1BQU0sZ0NBQWdDLENBQUM7QUFReEM7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFVBQzVCLEdBQVEsRUFDUixJQUFZLEVBQ1osQ0FBbUIsRUFDbkIsS0FBMEM7SUFFMUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDaEMsSUFBSSxDQUFDLElBQUk7UUFBRSxNQUFNLElBQUksYUFBYSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDdEUsS0FBSyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7SUFFcEIsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDNUQsS0FBSyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBRTFELElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckMsSUFBSSxLQUFLLEtBQUssTUFBTSxDQUFDLFNBQVM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUM3QyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMs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LElBQUksQ0FBQyxDQUFDO0lBRWhDLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxNQUFNLENBQUMsU0FBUztRQUFFLE9BQU8sV0FBVyxDQUFDO0lBRTFFLHVDQUF1QztJQUN2QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxXQUFXLENBQUM7SUFDL0IsNERBQTREO0lBQzVELDJDQUEyQztJQUMzQyxPQUFPLGlDQUFpQyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztBQUM1RSxDQUFDLENBQUMiLCJmaWxlIjoicmVwb3NpdG9yeS91dGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wZXJhdGlvbnMgfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9PcGVyYXRpb25zXCI7XG5pbXBvcnQgeyBPcGVyYXRpb25IYW5kbGVyLCBVcGRhdGVPcGVyYXRpb25IYW5kbGVyIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvdHlwZXNcIjtcbmltcG9ydCB7IElSZXBvc2l0b3J5IH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvSVJlcG9zaXRvcnlcIjtcbmltcG9ydCB7IE9wZXJhdGlvbktleXMgfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9jb25zdGFudHNcIjtcbmltcG9ydCB7IERlY29yYXRvck1ldGFkYXRhLCBSZWZsZWN0aW9uIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIi4vZXJyb3JzXCI7XG5pbXBvcnQge1xuICBDb25zdHJ1Y3RvcixcbiAgTW9kZWwsXG4gIE1vZGVsS2V5cyxcbiAgc2YsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tIFwiLi9Db250ZXh0XCI7XG5cbmV4cG9ydCB0eXBlIENvbnRleHRBcmdzPE0gZXh0ZW5kcyBNb2RlbD4gPSB7XG4gIGNvbnRleHQ6IENvbnRleHQ8TT47XG4gIGFyZ3M6IGFueVtdO1xufTtcblxuLyoqXG4gKiBAc3VtbWFyeSByZXRyaWV2ZXMgdGhlIGFyZ3VtZW50cyBmb3IgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSB7YW55fSBkZWMgdGhlIGRlY29yYXRvclxuICogQHBhcmFtIHtzdHJpbmd9IHByb3AgdGhlIHByb3BlcnR5IG5hbWVcbiAqIEBwYXJhbSB7e319IG0gdGhlIG1vZGVsXG4gKiBAcGFyYW0ge3t9fSBbYWNjdW1dIGFjY3VtdWxhdG9yIHVzZWQgZm9yIGludGVybmFsIHJlY3Vyc2l2ZW5lc3NcbiAqXG4gKiBAZnVuY3Rpb24gZ2V0SGFuZGxlckFyZ3NcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGItZGVjb3JhdG9ycy5SZXBvc2l0b3J5XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRIYW5kbGVyQXJncyA9IGZ1bmN0aW9uIChcbiAgZGVjOiBhbnksXG4gIHByb3A6IHN0cmluZyxcbiAgbTogQ29uc3RydWN0b3I8YW55PixcbiAgYWNjdW0/OiBSZWNvcmQ8c3RyaW5nLCB7IGFyZ3M6IHN0cmluZ1tdIH0+XG4pOiBSZWNvcmQ8c3RyaW5nLCB7IGFyZ3M6IHN0cmluZ1tdIH0+IHwgdm9pZCB7XG4gIGNvbnN0IG5hbWUgPSBtLmNvbnN0cnVjdG9yLm5hbWU7XG4gIGlmICghbmFtZSkgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJDb3VsZCBub3QgZGV0ZXJtaW5lIG1vZGVsIGNsYXNzXCIpO1xuICBhY2N1bSA9IGFjY3VtIHx8IHt9O1xuXG4gIGlmIChkZWMucHJvcHMuaGFuZGxlcnNbbmFtZV0gJiYgZGVjLnByb3BzLmhhbmRsZXJzW25hbWVdW3Byb3BdKVxuICAgIGFjY3VtID0geyAuLi5kZWMucHJvcHMuaGFuZGxlcnNbbmFtZV1bcHJvcF0sIC4uLmFjY3VtIH07XG5cbiAgbGV0IHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG0pO1xuICBpZiAocHJvdG8gPT09IE9iamVjdC5wcm90b3R5cGUpIHJldHVybiBhY2N1bTtcbiAgaWYgKHByb3RvLmNvbnN0cnVjdG9yLm5hbWUgPT09IG5hbWUpIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKTtcblxuICByZXR1cm4gZ2V0SGFuZGxlckFyZ3MoZGVjLCBwcm9wLCBwcm90bywgYWNjdW0pO1xufTtcblxuLyoqXG4gKlxuICogQHBhcmFtIHtJUmVwb3NpdG9yeTxUPn0gcmVwb1xuICogQHBhcmFtIGNvbnRleHRcbiAqIEBwYXJhbSB7VH0gbW9kZWxcbiAqIEBwYXJhbSBvcGVyYXRpb25cbiAqIEBwYXJhbSBwcmVmaXhcbiAqXG4gKiBAcGFyYW0gb2xkTW9kZWxcbiAqIEBmdW5jdGlvbiBlbmZvcmNlREJQcm9wZXJ0eURlY29yYXRvcnNBc3luY1xuICpcbiAqIEBtZW1iZXJPZiBkYi1kZWNvcmF0b3JzLnV0aWxzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbmZvcmNlREJEZWNvcmF0b3JzPFxuICBNIGV4dGVuZHMgTW9kZWwsXG4gIFkgZXh0ZW5kcyBJUmVwb3NpdG9yeTxNPixcbiAgVixcbj4oXG4gIHJlcG86IFksXG4gIGNvbnRleHQ6IENvbnRleHQ8TT4sXG4gIG1vZGVsOiBNLFxuICBvcGVyYXRpb246IHN0cmluZyxcbiAgcHJlZml4OiBzdHJpbmcsXG4gIG9sZE1vZGVsPzogTVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGRlY29yYXRvcnM6IFJlY29yZDxzdHJpbmcsIERlY29yYXRvck1ldGFkYXRhW10+IHwgdW5kZWZpbmVkID1cbiAgICBnZXREYkRlY29yYXRvcnMobW9kZWwsIG9wZXJhdGlvbiwgcHJlZml4KTtcblxuICBpZiAoIWRlY29yYXRvcnMpIHJldHVybjtcblxuICBmb3IgKGNvbnN0IHByb3AgaW4gZGVjb3JhdG9ycykge1xuICAgIGNvbnN0IGRlY3M6IERlY29yYXRvck1ldGFkYXRhW10gPSBkZWNvcmF0b3JzW3Byb3BdO1xuICAgIGZvciAoY29uc3QgZGVjIG9mIGRlY3MpIHtcbiAgICAgIGNvbnN0IHsga2V5IH0gPSBkZWM7XG4gICAgICBjb25zdCBoYW5kbGVyczogT3BlcmF0aW9uSGFuZGxlcjxNLCBZLCBWPltdIHwgdW5kZWZpbmVkID0gT3BlcmF0aW9ucy5nZXQoXG4gICAgICAgIG1vZGVsLFxuICAgICAgICBwcm9wLFxuICAgICAgICBwcmVmaXggKyBrZXlcbiAgICAgICk7XG4gICAgICBpZiAoIWhhbmRsZXJzIHx8ICFoYW5kbGVycy5sZW5ndGgpXG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgIGBDb3VsZCBub3QgZmluZCByZWdpc3RlcmVkIGhhbmRsZXIgZm9yIHRoZSBvcGVyYXRpb24gJHtwcmVmaXggKyBrZXl9IHVuZGVyIHByb3BlcnR5ICR7cHJvcH1gXG4gICAgICAgICk7XG5cbiAgICAgIGNvbnN0IGhhbmRsZXJBcmdzID0gZ2V0SGFuZGxlckFyZ3MoZGVjLCBwcm9wLCBtb2RlbCBhcyBhbnkpO1xuXG4gICAgICBpZiAoIWhhbmRsZXJBcmdzIHx8IE9iamVjdC52YWx1ZXMoaGFuZGxlckFyZ3MpLmxlbmd0aCAhPT0gaGFuZGxlcnMubGVuZ3RoKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihzZihcIkFyZ3MgYW5kIGhhbmRsZXJzIGxlbmd0aCBkbyBub3QgbWF0Y2hcIikpO1xuXG4gICAgICBsZXQgaGFuZGxlcjogT3BlcmF0aW9uSGFuZGxlcjxhbnksIGFueSwgYW55PjtcbiAgICAgIGxldCBkYXRhOiBhbnk7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGhhbmRsZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGhhbmRsZXIgPSBoYW5kbGVyc1tpXTtcbiAgICAgICAgZGF0YSA9IE9iamVjdC52YWx1ZXMoaGFuZGxlckFyZ3MpW2ldO1xuXG4gICAgICAgIGNvbnN0IGFyZ3M6IGFueVtdID0gW2NvbnRleHQsIGRhdGEuZGF0YSwgcHJvcCwgbW9kZWxdO1xuXG4gICAgICAgIGlmIChvcGVyYXRpb24gPT09IE9wZXJhdGlvbktleXMuVVBEQVRFICYmIHByZWZpeCA9PT0gT3BlcmF0aW9uS2V5cy5PTikge1xuICAgICAgICAgIGlmICghb2xkTW9kZWwpXG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIk1pc3Npbmcgb2xkIG1vZGVsIGZvciB1cGRhdGUgb3BlcmF0aW9uXCIpO1xuICAgICAgICAgIGFyZ3MucHVzaChvbGRNb2RlbCk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgKGhhbmRsZXIgYXMgVXBkYXRlT3BlcmF0aW9uSGFuZGxlcjxNLCBZLCBWPikuYXBwbHkoXG4gICAgICAgICAgcmVwbyxcbiAgICAgICAgICBhcmdzIGFzIFtDb250ZXh0PE0+LCBWLCBhbnksIE0sIE1dXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogU3BlY2lmaWMgZm9yIERCIERlY29yYXRvcnNcbiAqIEBwYXJhbSB7VH0gbW9kZWxcbiAqIEBwYXJhbSB7c3RyaW5nfSBvcGVyYXRpb24gQ1JVRCB7QGxpbmsgT3BlcmF0aW9uS2V5c31cbiAqIEBwYXJhbSB7c3RyaW5nfSBbZXh0cmFQcmVmaXhdXG4gKlxuICogQGZ1bmN0aW9uIGdldERiUHJvcGVydHlEZWNvcmF0b3JzXG4gKlxuICogQG1lbWJlck9mIGRiLWRlY29yYXRvcnMudXRpbHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERiRGVjb3JhdG9yczxUIGV4dGVuZHMgTW9kZWw+KFxuICBtb2RlbDogVCxcbiAgb3BlcmF0aW9uOiBzdHJpbmcsXG4gIGV4dHJhUHJlZml4Pzogc3RyaW5nXG4pOiBSZWNvcmQ8c3RyaW5nLCBEZWNvcmF0b3JNZXRhZGF0YVtdPiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGRlY29yYXRvcnM6IFJlY29yZDxzdHJpbmcsIERlY29yYXRvck1ldGFkYXRhW10+IHwgdW5kZWZpbmVkID1cbiAgICBSZWZsZWN0aW9uLmdldEFsbFByb3BlcnR5RGVjb3JhdG9ycyhcbiAgICAgIG1vZGVsLFxuICAgICAgLy8gdW5kZWZpbmVkLFxuICAgICAgT3BlcmF0aW9uS2V5cy5SRUZMRUNUICsgKGV4dHJhUHJlZml4ID8gZXh0cmFQcmVmaXggOiBcIlwiKVxuICAgICk7XG4gIGlmICghZGVjb3JhdG9ycykgcmV0dXJuO1xuICByZXR1cm4gT2JqZWN0LmtleXMoZGVjb3JhdG9ycykucmVkdWNlKFxuICAgIChhY2N1bTogUmVjb3JkPHN0cmluZywgRGVjb3JhdG9yTWV0YWRhdGFbXT4gfCB1bmRlZmluZWQsIGRlY29yYXRvcikgPT4ge1xuICAgICAgY29uc3QgZGVjID0gZGVjb3JhdG9yc1tkZWNvcmF0b3JdLmZpbHRlcigoZCkgPT4gZC5rZXkgPT09IG9wZXJhdGlvbik7XG4gICAgICBpZiAoZGVjICYmIGRlYy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKCFhY2N1bSkgYWNjdW0gPSB7fTtcbiAgICAgICAgYWNjdW1bZGVjb3JhdG9yXSA9IGRlYztcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2N1bTtcbiAgICB9LFxuICAgIHVuZGVmaW5lZFxuICApO1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IFJldHJpZXZlcyB0aGUgZGVjb3JhdG9ycyBmb3IgYW4gb2JqZWN0J3MgcHJvcGVydGllcyBwcmVmaXhlZCBieSB7QHBhcmFtIHByZWZpeGVzfSByZWN1cnNpdmVseVxuICogQHBhcmFtIG1vZGVsXG4gKiBAcGFyYW0gYWNjdW1cbiAqIEBwYXJhbSBwcmVmaXhlc1xuICpcbiAqIEBmdW5jdGlvbiBnZXRBbGxQcm9wZXJ0eURlY29yYXRvcnNSZWN1cnNpdmVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGItZGVjb3JhdG9ycy5SZXBvc2l0b3J5XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRBbGxQcm9wZXJ0eURlY29yYXRvcnNSZWN1cnNpdmUgPSBmdW5jdGlvbiA8VCBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IFQsXG4gIGFjY3VtOiB7IFtpbmRleGVyOiBzdHJpbmddOiBhbnlbXSB9IHwgdW5kZWZpbmVkLFxuICAuLi5wcmVmaXhlczogc3RyaW5nW11cbik6IHsgW2luZGV4ZXI6IHN0cmluZ106IGFueVtdIH0gfCB1bmRlZmluZWQge1xuICBjb25zdCBhY2N1bXVsYXRvciA9IGFjY3VtIHx8IHt9O1xuICBjb25zdCBtZXJnZURlY29yYXRvcnMgPSBmdW5jdGlvbiAoZGVjczogeyBbaW5kZXhlcjogc3RyaW5nXTogYW55W10gfSkge1xuICAgIGNvbnN0IHB1c2hPclNxdWFzaCA9IChrZXk6IHN0cmluZywgLi4udmFsdWVzOiBhbnlbXSkgPT4ge1xuICAgICAgdmFsdWVzLmZvckVhY2goKHZhbCkgPT4ge1xuICAgICAgICBsZXQgbWF0Y2g6IGFueTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICEobWF0Y2ggPSBhY2N1bXVsYXRvcltrZXldLmZpbmQoKGUpID0+IGUua2V5ID09PSB2YWwua2V5KSkgfHxcbiAgICAgICAgICBtYXRjaC5wcm9wcy5vcGVyYXRpb24gIT09IHZhbC5wcm9wcy5vcGVyYXRpb25cbiAgICAgICAgKSB7XG4gICAgICAgICAgYWNjdW11bGF0b3Jba2V5XS5wdXNoKHZhbCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbC5rZXkgPT09IE1vZGVsS2V5cy5UWVBFKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgeyBoYW5kbGVycywgb3BlcmF0aW9uIH0gPSB2YWwucHJvcHM7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICFvcGVyYXRpb24gfHxcbiAgICAgICAgICAhb3BlcmF0aW9uLm1hdGNoKFxuICAgICAgICAgICAgbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICAgYF4oOj8ke09wZXJhdGlvbktleXMuT059fCR7T3BlcmF0aW9uS2V5cy5BRlRFUn0pKDo/JHtPcGVyYXRpb25LZXlzLkNSRUFURX18JHtPcGVyYXRpb25LZXlzLlJFQUR9fCR7T3BlcmF0aW9uS2V5cy5VUERBVEV9fCR7T3BlcmF0aW9uS2V5cy5ERUxFVEV9KSRgXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICBhY2N1bXVsYXRvcltrZXldLnB1c2godmFsKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhY2N1bUhhbmRsZXJzID0gbWF0Y2gucHJvcHMuaGFuZGxlcnM7XG5cbiAgICAgICAgT2JqZWN0LmVudHJpZXMoaGFuZGxlcnMpLmZvckVhY2goKFtjbGF6eiwgaGFuZGxlckRlZl0pID0+IHtcbiAgICAgICAgICBpZiAoIShjbGF6eiBpbiBhY2N1bUhhbmRsZXJzKSkge1xuICAgICAgICAgICAgYWNjdW1IYW5kbGVyc1tjbGF6el0gPSBoYW5kbGVyRGVmO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGhhbmRsZXJEZWYgYXMgb2JqZWN0KS5mb3JFYWNoKFxuICAgICAgICAgICAgKFtoYW5kbGVyUHJvcCwgaGFuZGxlcl0pID0+IHtcbiAgICAgICAgICAgICAgaWYgKCEoaGFuZGxlclByb3AgaW4gYWNjdW1IYW5kbGVyc1tjbGF6el0pKSB7XG4gICAgICAgICAgICAgICAgYWNjdW1IYW5kbGVyc1tjbGF6el1baGFuZGxlclByb3BdID0gaGFuZGxlcjtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhoYW5kbGVyIGFzIG9iamVjdCkuZm9yRWFjaChcbiAgICAgICAgICAgICAgICAoW2hhbmRsZXJLZXksIGFyZ3NPYmpdKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoIShoYW5kbGVyS2V5IGluIGFjY3VtSGFuZGxlcnNbY2xhenpdW2hhbmRsZXJQcm9wXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgYWNjdW1IYW5kbGVyc1tjbGF6el1baGFuZGxlclByb3BdW2hhbmRsZXJLZXldID0gYXJnc09iajtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICAgICBzZihcbiAgICAgICAgICAgICAgICAgICAgICBcIlNraXBwaW5nIGhhbmRsZXIgcmVnaXN0cmF0aW9uIGZvciB7MH0gdW5kZXIgcHJvcCB7MH0gYmVjYXVzZSBoYW5kbGVyIGlzIHRoZSBzYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgY2xhenosXG4gICAgICAgICAgICAgICAgICAgICAgaGFuZGxlclByb3BcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgT2JqZWN0LmVudHJpZXMoZGVjcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBhY2N1bXVsYXRvcltrZXldID0gYWNjdW11bGF0b3Jba2V5XSB8fCBbXTtcbiAgICAgIHB1c2hPclNxdWFzaChrZXksIC4uLnZhbHVlKTtcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBkZWNzOiB7IFtpbmRleGVyOiBzdHJpbmddOiBhbnlbXSB9IHwgdW5kZWZpbmVkID1cbiAgICBSZWZsZWN0aW9uLmdldEFsbFByb3BlcnR5RGVjb3JhdG9ycyhtb2RlbCwgLi4ucHJlZml4ZXMpO1xuICBpZiAoZGVjcykgbWVyZ2VEZWNvcmF0b3JzKGRlY3MpO1xuXG4gIGlmIChPYmplY3QuZ2V0UHJvdG90eXBlT2YobW9kZWwpID09PSBPYmplY3QucHJvdG90eXBlKSByZXR1cm4gYWNjdW11bGF0b3I7XG5cbiAgLy8gY29uc3QgbmFtZSA9IG1vZGVsLmNvbnN0cnVjdG9yLm5hbWU7XG4gIGNvbnN0IHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG1vZGVsKTtcbiAgaWYgKCFwcm90bykgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAvLyBpZiAocHJvdG8uY29uc3RydWN0b3IgJiYgcHJvdG8uY29uc3RydWN0b3IubmFtZSA9PT0gbmFtZSlcbiAgLy8gICAgIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKVxuICByZXR1cm4gZ2V0QWxsUHJvcGVydHlEZWNvcmF0b3JzUmVjdXJzaXZlKHByb3RvLCBhY2N1bXVsYXRvciwgLi4ucHJlZml4ZXMpO1xufTtcbiJdfQ==
@@ -11,7 +11,7 @@ import { Context } from "../repository/Context";
11
11
  *
12
12
  * @category Decorators
13
13
  */
14
- export declare function readonly(message?: string): (target: object, propertyKey?: any, descriptor?: any) => void;
14
+ export declare function readonly(message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
15
15
  export declare function timestampHandler<M extends Model, V extends IRepository<M>, Y = any>(this: V, context: Context<M>, data: Y, key: string, model: M): Promise<void>;
16
16
  /**
17
17
  * Marks the property as timestamp.
@@ -44,7 +44,7 @@ export declare function timestampHandler<M extends Model, V extends IRepository<
44
44
  *
45
45
  * @category Decorators
46
46
  */
47
- export declare function timestamp(operation?: OperationKeys[], format?: string): (target: object, propertyKey?: any, descriptor?: any) => void;
47
+ export declare function timestamp(operation?: OperationKeys[], format?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
48
48
  export declare function serializeOnCreateUpdate<T extends Model, V extends IRepository<T>, Y = any>(this: V, data: Y, key: string, model: T, oldModel: T): Promise<void>;
49
49
  export declare function serializeAfterAll<T extends Model, V extends IRepository<T>, Y = any>(this: V, data: Y, key: string, model: T): Promise<void>;
50
50
  /**
@@ -55,4 +55,4 @@ export declare function serializeAfterAll<T extends Model, V extends IRepository
55
55
  *
56
56
  * @memberOf module:wallet-db.Decorators
57
57
  */
58
- export declare function serialize(): (target: object, propertyKey?: any, descriptor?: any) => void;
58
+ export declare function serialize(): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
@@ -217,4 +217,4 @@ export function serialize() {
217
217
  // };
218
218
  // }
219
219
 
220
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL2RlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLElBQUksRUFFSixZQUFZLEVBQ1osUUFBUSxFQUNSLEVBQUUsRUFDRixJQUFJLEVBQ0osVUFBVSxHQUNYLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLEVBQW1CLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0M7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUN0QixVQUFrQixzQkFBc0IsQ0FBQyxRQUFRLENBQUMsT0FBTztJQUV6RCxPQUFPLFlBQVksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUN6RCxPQUFPLEVBQUUsT0FBTztLQUNqQixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxnQkFBZ0IsQ0FJM0IsT0FBbUIsRUFBRSxJQUFPLEVBQUUsR0FBVyxFQUFFLEtBQVE7SUFDM0QsS0FBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7QUFDMUMsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUFDSCxNQUFN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bUc7QUFDbkcsK0NBQStDO0FBQy9DLEtBQUs7QUFDTCx5QkFBeUI7QUFDekIsS0FBSztBQUNMLDJDQUEyQztBQUMzQyxLQUFLO0FBQ0wsb0JBQW9CO0FBQ3BCLG1CQUFtQjtBQUNuQixNQUFNO0FBQ04sNkJBQTZCO0FBQzdCLDZCQUE2QjtBQUM3QixzREFBc0Q7QUFDdEQsTUFBTTtBQUNOLDJCQUEyQjtBQUMzQixtREFBbUQ7QUFDbkQsOEJBQThCO0FBQzlCLDRDQUE0QztBQUM1QyxVQUFVO0FBQ1YsbUNBQW1DO0FBQ25DLG1DQUFtQztBQUNuQyxXQUFXO0FBQ1gsZ0JBQWdCO0FBQ2hCLHFCQUFxQjtBQUNyQixTQUFTO0FBQ1QsT0FBTztBQUNQLElBQUkiLCJmaWxlIjoidmFsaWRhdGlvbi9kZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZGF0ZSxcbiAgTW9kZWwsXG4gIHByb3BNZXRhZGF0YSxcbiAgcmVxdWlyZWQsXG4gIHNmLFxuICB0eXBlLFxuICBWYWxpZGF0aW9uLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBEQktleXMsIERFRkFVTFRfVElNRVNUQU1QX0ZPUk1BVCB9IGZyb20gXCIuLi9tb2RlbC9jb25zdGFudHNcIjtcbmltcG9ydCB7IERFRkFVTFRfRVJST1JfTUVTU0FHRVMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IERCT3BlcmF0aW9ucywgT3BlcmF0aW9uS2V5cyB9IGZyb20gXCIuLi9vcGVyYXRpb25zL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgYWZ0ZXIsIG9uLCBvbkNyZWF0ZVVwZGF0ZSB9IGZyb20gXCIuLi9vcGVyYXRpb25zL2RlY29yYXRvcnNcIjtcbmltcG9ydCB7IElSZXBvc2l0b3J5IH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvSVJlcG9zaXRvcnlcIjtcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25FcnJvciB9IGZyb20gXCIuLi9yZXBvc2l0b3J5L2Vycm9yc1wiO1xuaW1wb3J0IHsgYXBwbHksIEN1c3RvbURlY29yYXRvciwgbWV0YWRhdGEgfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vcmVwb3NpdG9yeVwiO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCIuLi9yZXBvc2l0b3J5L0NvbnRleHRcIjtcblxuLyoqXG4gKiBNYXJrcyB0aGUgcHJvcGVydHkgYXMgcmVhZG9ubHkuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSB0aGUgZXJyb3IgbWVzc2FnZS4gRGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMuUkVBRE9OTFkuSU5WQUxJRH1cbiAqXG4gKiBAZGVjb3JhdG9yIHJlYWRvbmx5XG4gKlxuICogQGNhdGVnb3J5IERlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRvbmx5KFxuICBtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLlJFQURPTkxZLklOVkFMSURcbikge1xuICByZXR1cm4gcHJvcE1ldGFkYXRhKFZhbGlkYXRpb24udXBkYXRlS2V5KERCS2V5cy5SRUFET05MWSksIHtcbiAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRpbWVzdGFtcEhhbmRsZXI8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgViBleHRlbmRzIElSZXBvc2l0b3J5PE0+LFxuICBZID0gYW55LFxuPih0aGlzOiBWLCBjb250ZXh0OiBDb250ZXh0PE0+LCBkYXRhOiBZLCBrZXk6IHN0cmluZywgbW9kZWw6IE0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgKG1vZGVsIGFzIGFueSlba2V5XSA9IGNvbnRleHQudGltZXN0YW1wO1xufVxuXG4vKipcbiAqIE1hcmtzIHRoZSBwcm9wZXJ0eSBhcyB0aW1lc3RhbXAuXG4gKiBNYWtlcyBpdCB7QGxpbmsgcmVxdWlyZWR9XG4gKiBNYWtlcyBpdCBhIHtAbGluayBkYXRlfVxuICpcbiAqIERhdGUgRm9ybWF0OlxuICpcbiAqIDxwcmU+XG4gKiAgICAgIFVzaW5nIHNpbWlsYXIgZm9ybWF0dGluZyBhcyBNb21lbnQuanMsIENsYXNzIERhdGVUaW1lRm9ybWF0dGVyIChKYXZhKSwgYW5kIENsYXNzIFNpbXBsZURhdGVGb3JtYXQgKEphdmEpLFxuICogICAgICBJIGltcGxlbWVudGVkIGEgY29tcHJlaGVuc2l2ZSBzb2x1dGlvbiBmb3JtYXREYXRlKGRhdGUsIHBhdHRlcm5TdHIpIHdoZXJlIHRoZSBjb2RlIGlzIGVhc3kgdG8gcmVhZCBhbmQgbW9kaWZ5LlxuICogICAgICBZb3UgY2FuIGRpc3BsYXkgZGF0ZSwgdGltZSwgQU0vUE0sIGV0Yy5cbiAqXG4gKiAgICAgIERhdGUgYW5kIFRpbWUgUGF0dGVybnNcbiAqICAgICAgeXkgPSAyLWRpZ2l0IHllYXI7IHl5eXkgPSBmdWxsIHllYXJcbiAqICAgICAgTSA9IGRpZ2l0IG1vbnRoOyBNTSA9IDItZGlnaXQgbW9udGg7IE1NTSA9IHNob3J0IG1vbnRoIG5hbWU7IE1NTU0gPSBmdWxsIG1vbnRoIG5hbWVcbiAqICAgICAgRUVFRSA9IGZ1bGwgd2Vla2RheSBuYW1lOyBFRUUgPSBzaG9ydCB3ZWVrZGF5IG5hbWVcbiAqICAgICAgZCA9IGRpZ2l0IGRheTsgZGQgPSAyLWRpZ2l0IGRheVxuICogICAgICBoID0gaG91cnMgYW0vcG07IGhoID0gMi1kaWdpdCBob3VycyBhbS9wbTsgSCA9IGhvdXJzOyBISCA9IDItZGlnaXQgaG91cnNcbiAqICAgICAgbSA9IG1pbnV0ZXM7IG1tID0gMi1kaWdpdCBtaW51dGVzOyBhYWEgPSBBTS9QTVxuICogICAgICBzID0gc2Vjb25kczsgc3MgPSAyLWRpZ2l0IHNlY29uZHNcbiAqICAgICAgUyA9IG1pbGlzZWNvbmRzXG4gKiA8L3ByZT5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBvcGVyYXRpb24gVGhlIHtAbGluayBEQk9wZXJhdGlvbnN9IHRvIGFjdCBvbi4gRGVmYXVsdHMgdG8ge0BsaW5rIERCT3BlcmF0aW9ucy5DUkVBVEVfVVBEQVRFfVxuICogQHBhcmFtIHtzdHJpbmd9IFtmb3JtYXRdIFRoZSBUaW1lU3RhbXAgZm9ybWF0LiBkZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9USU1FU1RBTVBfRk9STUFUfVxuICogQHBhcmFtIHt7bmV3OiBVcGRhdGVWYWxpZGF0b3J9fSBbdmFsaWRhdG9yXSBkZWZhdWx0cyB0byB7QGxpbmsgVGltZXN0YW1wVmFsaWRhdG9yfVxuICpcbiAqIEBkZWNvcmF0b3IgdGltZXN0YW1wXG4gKlxuICogQGNhdGVnb3J5IERlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRpbWVzdGFtcChcbiAgb3BlcmF0aW9uOiBPcGVyYXRpb25LZXlzW10gPSBEQk9wZXJhdGlvbnMuQ1JFQVRFX1VQREFURSBhcyB1bmtub3duIGFzIE9wZXJhdGlvbktleXNbXSxcbiAgZm9ybWF0OiBzdHJpbmcgPSBERUZBVUxUX1RJTUVTVEFNUF9GT1JNQVRcbikge1xuICBjb25zdCBkZWNvcmF0b3JzOiBDdXN0b21EZWNvcmF0b3I8YW55PltdID0gW1xuICAgIGRhdGUoZm9ybWF0LCBERUZBVUxUX0VSUk9SX01FU1NBR0VTLlRJTUVTVEFNUC5EQVRFKSBhcyBDdXN0b21EZWNvcmF0b3I8YW55PixcbiAgICByZXF1aXJlZChERUZBVUxUX0VSUk9SX01FU1NBR0VTLlRJTUVTVEFNUC5SRVFVSVJFRCkgYXMgQ3VzdG9tRGVjb3JhdG9yPGFueT4sXG4gICAgb24ob3BlcmF0aW9uLCB0aW1lc3RhbXBIYW5kbGVyKSBhcyBDdXN0b21EZWNvcmF0b3I8YW55PixcbiAgXTtcblxuICBpZiAob3BlcmF0aW9uLmluZGV4T2YoT3BlcmF0aW9uS2V5cy5VUERBVEUpICE9PSAtMSlcbiAgICBkZWNvcmF0b3JzLnB1c2goXG4gICAgICBwcm9wTWV0YWRhdGEoVmFsaWRhdGlvbi51cGRhdGVLZXkoREJLZXlzLlRJTUVTVEFNUCksIHtcbiAgICAgICAgbWVzc2FnZTogREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5USU1FU1RBTVAuSU5WQUxJRCxcbiAgICAgIH0pIGFzIEN1c3RvbURlY29yYXRvcjxhbnk+XG4gICAgKTtcblxuICByZXR1cm4gYXBwbHkoLi4uZGVjb3JhdG9ycyk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXJpYWxpemVPbkNyZWF0ZVVwZGF0ZTxcbiAgVCBleHRlbmRzIE1vZGVsLFxuICBWIGV4dGVuZHMgSVJlcG9zaXRvcnk8VD4sXG4gIFkgPSBhbnksXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbj4odGhpczogViwgZGF0YTogWSwga2V5OiBzdHJpbmcsIG1vZGVsOiBULCBvbGRNb2RlbDogVCk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIShtb2RlbCBhcyBhbnkpW2tleV0pIHJldHVybjtcbiAgdHJ5IHtcbiAgICAobW9kZWwgYXMgYW55KVtrZXldID0gSlNPTi5zdHJpbmdpZnkoKG1vZGVsIGFzIGFueSlba2V5XSk7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoXG4gICAgICBzZihcbiAgICAgICAgXCJGYWlsZWQgdG8gc2VyaWFsaXplIHswfSBwcm9wZXJ0eSBvbiB7MX0gbW9kZWw6IHsyfVwiLFxuICAgICAgICBrZXksXG4gICAgICAgIG1vZGVsLmNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICAgIGUubWVzc2FnZVxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlcmlhbGl6ZUFmdGVyQWxsPFxuICBUIGV4dGVuZHMgTW9kZWwsXG4gIFYgZXh0ZW5kcyBJUmVwb3NpdG9yeTxUPixcbiAgWSA9IGFueSxcbj4odGhpczogViwgZGF0YTogWSwga2V5OiBzdHJpbmcsIG1vZGVsOiBUKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghKG1vZGVsIGFzIGFueSlba2V5XSkgcmV0dXJuO1xuICBpZiAodHlwZW9mIChtb2RlbCBhcyBhbnkpW2tleV0gIT09IFwic3RyaW5nXCIpIHJldHVybjtcblxuICB0cnkge1xuICAgIChtb2RlbCBhcyBhbnkpW2tleV0gPSBKU09OLnBhcnNlKChtb2RlbCBhcyBhbnkpW2tleV0pO1xuICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKFxuICAgICAgc2YoXG4gICAgICAgIFwiRmFpbGVkIHRvIGRlc2VyaWFsaXplIHswfSBwcm9wZXJ0eSBvbiB7MX0gbW9kZWw6IHsyfVwiLFxuICAgICAgICBrZXksXG4gICAgICAgIG1vZGVsLmNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICAgIGUubWVzc2FnZVxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBTZXJpYWxpemUgRGVjb3JhdG9yXG4gKiBAZGVzY3JpcHRpb24gcHJvcGVydGllcyBkZWNvcmF0ZWQgd2lsbCB0aGUgc2VyaWFsaXplZCBiZWZvcmUgc3RvcmVkIGluIHRoZSBkYlxuICpcbiAqIEBmdW5jdGlvbiBzZXJpYWxpemVcbiAqXG4gKiBAbWVtYmVyT2YgbW9kdWxlOndhbGxldC1kYi5EZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemUoKSB7XG4gIHJldHVybiBhcHBseShcbiAgICBvbkNyZWF0ZVVwZGF0ZShzZXJpYWxpemVPbkNyZWF0ZVVwZGF0ZSksXG4gICAgYWZ0ZXIoREJPcGVyYXRpb25zLkFMTCwgc2VyaWFsaXplQWZ0ZXJBbGwpLFxuICAgIHR5cGUoW1N0cmluZy5uYW1lLCBPYmplY3QubmFtZV0pLFxuICAgIG1ldGFkYXRhKFJlcG9zaXRvcnkua2V5KERCS2V5cy5TRVJJQUxJWkUpLCB7fSlcbiAgKTtcbn1cblxuLy9cbi8vIC8qKlxuLy8gICogQHN1bW1hcnkgT25lIFRvIE9uZSByZWxhdGlvbiBEZWNvcmF0b3JzXG4vLyAgKlxuLy8gICogQHBhcmFtIHtDb25zdHJ1Y3Rvcjxhbnk+fSBjbGF6eiB0aGUge0BsaW5rIFNlcXVlbmNlfSB0byB1c2UuIERlZmF1bHRzIHRvIHtAbGluayBOb25lU2VxdWVuY2V9XG4vLyAgKiBAcGFyYW0ge0Nhc2NhZGVNZXRhZGF0YX0gW2Nhc2NhZGVPcHRpb25zXVxuLy8gICogQHBhcmFtIHtib29sZWFufSBfcG9wdWxhdGUgSWYgdHJ1ZSwgcmVwbGFjZXMgdGhlIHNwZWNpZmllZCBrZXkgaW4gdGhlIGRvY3VtZW50IHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgcmVjb3JkIGZyb20gdGhlIGRhdGFiYXNlXG4vLyAgKlxuLy8gICogQGZ1bmN0aW9uIG9uVG9PbmVcbi8vICAqXG4vLyAgKiBAbWVtYmVyT2YgbW9kdWxlOndhbGxldC1kYi5EZWNvcmF0b3JzXG4vLyAgKlxuLy8gICogQHNlZSBvbmVUb01hbnlcbi8vICAqIEBzZWUgbWFueVRvT25lXG4vLyAgKi9cbi8vIGV4cG9ydCBmdW5jdGlvbiBvbmVUb09uZShcbi8vICAgY2xheno6IENvbnN0cnVjdG9yPGFueT4sXG4vLyAgIGNhc2NhZGVPcHRpb25zOiBDYXNjYWRlTWV0YWRhdGEgPSBEZWZhdWx0Q2FzY2FkZSxcbi8vICAgX3BvcHVsYXRlOiBib29sZWFuID0gdHJ1ZSxcbi8vICkge1xuLy8gICBNb2RlbC5yZWdpc3RlcihjbGF6eik7XG4vLyAgIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpID0+IHtcbi8vICAgICB0eXBlKFtjbGF6ei5uYW1lLCBTdHJpbmcubmFtZV0pKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuLy8gICAgIG9uQ3JlYXRlKG9uZVRvT25lT25DcmVhdGUpKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuLy8gICAgIG9uVXBkYXRlKG9uZVRvT25lT25VcGRhdGUsIGNhc2NhZGVPcHRpb25zIGFzIGFueSkodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4vLyAgICAgb25EZWxldGUob25lVG9PbmVPbkRlbGV0ZSwgY2FzY2FkZU9wdGlvbnMpKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuLy9cbi8vICAgICBhZnRlckNyZWF0ZShwb3B1bGF0ZSwgX3BvcHVsYXRlKSh0YXJnZXQsIHByb3BlcnR5S2V5KTtcbi8vICAgICBhZnRlclVwZGF0ZShwb3B1bGF0ZSwgX3BvcHVsYXRlKSh0YXJnZXQsIHByb3BlcnR5S2V5KTtcbi8vICAgICBhZnRlclJlYWQocG9wdWxhdGUsIF9wb3B1bGF0ZSkodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4vLyAgICAgYWZ0ZXJEZWxldGUocG9wdWxhdGUsIF9wb3B1bGF0ZSkodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4vL1xuLy8gICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXG4vLyAgICAgICBnZXREQktleShXYWxsZXREYktleXMuT05FX1RPX09ORSksXG4vLyAgICAgICB7XG4vLyAgICAgICAgIGNvbnN0cnVjdG9yOiBjbGF6ei5uYW1lLFxuLy8gICAgICAgICBjYXNjYWRlOiBjYXNjYWRlT3B0aW9ucyxcbi8vICAgICAgICAgcG9wdWxhdGU6IF9wb3B1bGF0ZSxcbi8vICAgICAgIH0sXG4vLyAgICAgICB0YXJnZXQsXG4vLyAgICAgICBwcm9wZXJ0eUtleSxcbi8vICAgICApO1xuLy8gICB9O1xuLy8gfVxuLy9cbi8vIC8qKlxuLy8gICogQHN1bW1hcnkgT25lIFRvIE1hbnkgcmVsYXRpb24gRGVjb3JhdG9yc1xuLy8gICpcbi8vICAqIEBwYXJhbSB7Q29uc3RydWN0b3I8YW55Pn0gY2xhenogdGhlIHtAbGluayBTZXF1ZW5jZX0gdG8gdXNlLiBEZWZhdWx0cyB0byB7QGxpbmsgTm9uZVNlcXVlbmNlfVxuLy8gICogQHBhcmFtIHtDYXNjYWRlTWV0YWRhdGF9IFtjYXNjYWRlT3B0aW9uc11cbi8vICAqXG4vLyAgKiBAZnVuY3Rpb24gb25Ub01hbnlcbi8vICAqXG4vLyAgKiBAbWVtYmVyT2YgbW9kdWxlOndhbGxldC1kYi5EZWNvcmF0b3JzXG4vLyAgKlxuLy8gICogQHNlZSBvbmVUb09uZVxuLy8gICogQHNlZSBtYW55VG9PbmVcbi8vICAqL1xuLy8gZXhwb3J0IGZ1bmN0aW9uIG9uZVRvTWFueShcbi8vICAgY2xheno6IENvbnN0cnVjdG9yPGFueT4sXG4vLyAgIGNhc2NhZGVPcHRpb25zOiBDYXNjYWRlTWV0YWRhdGEgPSBEZWZhdWx0Q2FzY2FkZSxcbi8vICAgX3BvcHVsYXRlOiBib29sZWFuID0gdHJ1ZSxcbi8vICkge1xuLy8gICBNb2RlbC5yZWdpc3RlcihjbGF6eik7XG4vLyAgIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpID0+IHtcbi8vICAgICBsaXN0KFtjbGF6eiwgU3RyaW5nXSkodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4vLyAgICAgb25DcmVhdGUob25lVG9NYW55T25DcmVhdGUpKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuLy8gICAgIG9uVXBkYXRlKG9uZVRvTWFueU9uVXBkYXRlLCBjYXNjYWRlT3B0aW9ucykodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4vLyAgICAgb25EZWxldGUob25lVG9NYW55T25EZWxldGUsIGNhc2NhZGVPcHRpb25zKSh0YXJnZXQsIHByb3BlcnR5S2V5KTtcbi8vXG4vLyAgICAgYWZ0ZXJDcmVhdGUocG9wdWxhdGUsIF9wb3B1bGF0ZSkodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4vLyAgICAgYWZ0ZXJVcGRhdGUocG9wdWxhdGUsIF9wb3B1bGF0ZSkodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4vLyAgICAgYWZ0ZXJSZWFkKHBvcHVsYXRlLCBfcG9wdWxhdGUpKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuLy8gICAgIGFmdGVyRGVsZXRlKHBvcHVsYXRlLCBfcG9wdWxhdGUpKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuLy9cbi8vICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFxuLy8gICAgICAgZ2V0REJLZXkoV2FsbGV0RGJLZXlzLk9ORV9UT19NQU5ZKSxcbi8vICAgICAgIHtcbi8vICAgICAgICAgY29uc3RydWN0b3I6IGNsYXp6Lm5hbWUsXG4vLyAgICAgICAgIGNhc2NhZGU6IGNhc2NhZGVPcHRpb25zLFxuLy8gICAgICAgfSxcbi8vICAgICAgIHRhcmdldCxcbi8vICAgICAgIHByb3BlcnR5S2V5LFxuLy8gICAgICk7XG4vLyAgIH07XG4vLyB9XG4vL1xuLy8gLyoqXG4vLyAgKiBAc3VtbWFyeSBNYW55IFRvIE9uZSByZWxhdGlvbiBEZWNvcmF0b3JzXG4vLyAgKlxuLy8gICogQHBhcmFtIHtDb25zdHJ1Y3Rvcjxhbnk+fSBjbGF6eiB0aGUge0BsaW5rIFNlcXVlbmNlfSB0byB1c2UuIERlZmF1bHRzIHRvIHtAbGluayBOb25lU2VxdWVuY2V9XG4vLyAgKiBAcGFyYW0ge0Nhc2NhZGVNZXRhZGF0YX0gW2Nhc2NhZGVPcHRpb25zXVxuLy8gICpcbi8vICAqIEBmdW5jdGlvbiBtYW55VG9PbmVcbi8vICAqXG4vLyAgKiBAbWVtYmVyT2YgbW9kdWxlOndhbGxldC1kYi5EZWNvcmF0b3JzXG4vLyAgKlxuLy8gICogQHNlZSBvbmVUb01hbnlcbi8vICAqIEBzZWUgb25lVG9PbmVcbi8vICAqL1xuLy8gZXhwb3J0IGZ1bmN0aW9uIG1hbnlUb09uZShcbi8vICAgY2xheno6IENvbnN0cnVjdG9yPGFueT4sXG4vLyAgIGNhc2NhZGVPcHRpb25zOiBDYXNjYWRlTWV0YWRhdGEgPSBEZWZhdWx0Q2FzY2FkZSxcbi8vICkge1xuLy8gICBNb2RlbC5yZWdpc3RlcihjbGF6eik7XG4vLyAgIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpID0+IHtcbi8vICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFxuLy8gICAgICAgZ2V0REJLZXkoV2FsbGV0RGJLZXlzLk1BTllfVE9fT05FKSxcbi8vICAgICAgIHtcbi8vICAgICAgICAgY29uc3RydWN0b3I6IGNsYXp6Lm5hbWUsXG4vLyAgICAgICAgIGNhc2NhZGU6IGNhc2NhZGVPcHRpb25zLFxuLy8gICAgICAgfSxcbi8vICAgICAgIHRhcmdldCxcbi8vICAgICAgIHByb3BlcnR5S2V5LFxuLy8gICAgICk7XG4vLyAgIH07XG4vLyB9XG4iXX0=
220
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL2RlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLElBQUksRUFFSixZQUFZLEVBQ1osUUFBUSxFQUNSLEVBQUUsRUFDRixJQUFJLEVBQ0osVUFBVSxHQUNYLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQ3RCLFVBQWtCLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxPQUFPO0lBRXpELE9BQU8sWUFBWSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3pELE9BQU8sRUFBRSxPQUFPO0tBQ2pCLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLGdCQUFnQixDQUkzQixPQUFtQixFQUFFLElBQU8sRUFBRSxHQUFXLEVBQUUsS0FBUTtJQUMzRCxLQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztBQUMxQyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCRztBQUNILE1BQU0s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RywrQ0FBK0M7QUFDL0MsS0FBSztBQUNMLHlCQUF5QjtBQUN6QixLQUFLO0FBQ0wsMkNBQTJDO0FBQzNDLEtBQUs7QUFDTCxvQkFBb0I7QUFDcEIsbUJBQW1CO0FBQ25CLE1BQU07QUFDTiw2QkFBNkI7QUFDN0IsNkJBQTZCO0FBQzdCLHNEQUFzRDtBQUN0RCxNQUFNO0FBQ04sMkJBQTJCO0FBQzNCLG1EQUFtRDtBQUNuRCw4QkFBOEI7QUFDOUIsNENBQTRDO0FBQzVDLFVBQVU7QUFDVixtQ0FBbUM7QUFDbkMsbUNBQW1DO0FBQ25DLFdBQVc7QUFDWCxnQkFBZ0I7QUFDaEIscUJBQXFCO0FBQ3JCLFNBQVM7QUFDVCxPQUFPO0FBQ1AsSUFBSSIsImZpbGUiOiJ2YWxpZGF0aW9uL2RlY29yYXRvcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBkYXRlLFxuICBNb2RlbCxcbiAgcHJvcE1ldGFkYXRhLFxuICByZXF1aXJlZCxcbiAgc2YsXG4gIHR5cGUsXG4gIFZhbGlkYXRpb24sXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IERCS2V5cywgREVGQVVMVF9USU1FU1RBTVBfRk9STUFUIH0gZnJvbSBcIi4uL21vZGVsL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgREJPcGVyYXRpb25zLCBPcGVyYXRpb25LZXlzIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBhZnRlciwgb24sIG9uQ3JlYXRlVXBkYXRlIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgSVJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9JUmVwb3NpdG9yeVwiO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbkVycm9yIH0gZnJvbSBcIi4uL3JlcG9zaXRvcnkvZXJyb3JzXCI7XG5pbXBvcnQgeyBhcHBseSwgbWV0YWRhdGEgfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vcmVwb3NpdG9yeVwiO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCIuLi9yZXBvc2l0b3J5L0NvbnRleHRcIjtcblxuLyoqXG4gKiBNYXJrcyB0aGUgcHJvcGVydHkgYXMgcmVhZG9ubHkuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSB0aGUgZXJyb3IgbWVzc2FnZS4gRGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMuUkVBRE9OTFkuSU5WQUxJRH1cbiAqXG4gKiBAZGVjb3JhdG9yIHJlYWRvbmx5XG4gKlxuICogQGNhdGVnb3J5IERlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRvbmx5KFxuICBtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLlJFQURPTkxZLklOVkFMSURcbikge1xuICByZXR1cm4gcHJvcE1ldGFkYXRhKFZhbGlkYXRpb24udXBkYXRlS2V5KERCS2V5cy5SRUFET05MWSksIHtcbiAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRpbWVzdGFtcEhhbmRsZXI8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgViBleHRlbmRzIElSZXBvc2l0b3J5PE0+LFxuICBZID0gYW55LFxuPih0aGlzOiBWLCBjb250ZXh0OiBDb250ZXh0PE0+LCBkYXRhOiBZLCBrZXk6IHN0cmluZywgbW9kZWw6IE0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgKG1vZGVsIGFzIGFueSlba2V5XSA9IGNvbnRleHQudGltZXN0YW1wO1xufVxuXG4vKipcbiAqIE1hcmtzIHRoZSBwcm9wZXJ0eSBhcyB0aW1lc3RhbXAuXG4gKiBNYWtlcyBpdCB7QGxpbmsgcmVxdWlyZWR9XG4gKiBNYWtlcyBpdCBhIHtAbGluayBkYXRlfVxuICpcbiAqIERhdGUgRm9ybWF0OlxuICpcbiAqIDxwcmU+XG4gKiAgICAgIFVzaW5nIHNpbWlsYXIgZm9ybWF0dGluZyBhcyBNb21lbnQuanMsIENsYXNzIERhdGVUaW1lRm9ybWF0dGVyIChKYXZhKSwgYW5kIENsYXNzIFNpbXBsZURhdGVGb3JtYXQgKEphdmEpLFxuICogICAgICBJIGltcGxlbWVudGVkIGEgY29tcHJlaGVuc2l2ZSBzb2x1dGlvbiBmb3JtYXREYXRlKGRhdGUsIHBhdHRlcm5TdHIpIHdoZXJlIHRoZSBjb2RlIGlzIGVhc3kgdG8gcmVhZCBhbmQgbW9kaWZ5LlxuICogICAgICBZb3UgY2FuIGRpc3BsYXkgZGF0ZSwgdGltZSwgQU0vUE0sIGV0Yy5cbiAqXG4gKiAgICAgIERhdGUgYW5kIFRpbWUgUGF0dGVybnNcbiAqICAgICAgeXkgPSAyLWRpZ2l0IHllYXI7IHl5eXkgPSBmdWxsIHllYXJcbiAqICAgICAgTSA9IGRpZ2l0IG1vbnRoOyBNTSA9IDItZGlnaXQgbW9udGg7IE1NTSA9IHNob3J0IG1vbnRoIG5hbWU7IE1NTU0gPSBmdWxsIG1vbnRoIG5hbWVcbiAqICAgICAgRUVFRSA9IGZ1bGwgd2Vla2RheSBuYW1lOyBFRUUgPSBzaG9ydCB3ZWVrZGF5IG5hbWVcbiAqICAgICAgZCA9IGRpZ2l0IGRheTsgZGQgPSAyLWRpZ2l0IGRheVxuICogICAgICBoID0gaG91cnMgYW0vcG07IGhoID0gMi1kaWdpdCBob3VycyBhbS9wbTsgSCA9IGhvdXJzOyBISCA9IDItZGlnaXQgaG91cnNcbiAqICAgICAgbSA9IG1pbnV0ZXM7IG1tID0gMi1kaWdpdCBtaW51dGVzOyBhYWEgPSBBTS9QTVxuICogICAgICBzID0gc2Vjb25kczsgc3MgPSAyLWRpZ2l0IHNlY29uZHNcbiAqICAgICAgUyA9IG1pbGlzZWNvbmRzXG4gKiA8L3ByZT5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBvcGVyYXRpb24gVGhlIHtAbGluayBEQk9wZXJhdGlvbnN9IHRvIGFjdCBvbi4gRGVmYXVsdHMgdG8ge0BsaW5rIERCT3BlcmF0aW9ucy5DUkVBVEVfVVBEQVRFfVxuICogQHBhcmFtIHtzdHJpbmd9IFtmb3JtYXRdIFRoZSBUaW1lU3RhbXAgZm9ybWF0LiBkZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9USU1FU1RBTVBfRk9STUFUfVxuICogQHBhcmFtIHt7bmV3OiBVcGRhdGVWYWxpZGF0b3J9fSBbdmFsaWRhdG9yXSBkZWZhdWx0cyB0byB7QGxpbmsgVGltZXN0YW1wVmFsaWRhdG9yfVxuICpcbiAqIEBkZWNvcmF0b3IgdGltZXN0YW1wXG4gKlxuICogQGNhdGVnb3J5IERlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRpbWVzdGFtcChcbiAgb3BlcmF0aW9uOiBPcGVyYXRpb25LZXlzW10gPSBEQk9wZXJhdGlvbnMuQ1JFQVRFX1VQREFURSBhcyB1bmtub3duIGFzIE9wZXJhdGlvbktleXNbXSxcbiAgZm9ybWF0OiBzdHJpbmcgPSBERUZBVUxUX1RJTUVTVEFNUF9GT1JNQVRcbikge1xuICBjb25zdCBkZWNvcmF0b3JzOiBhbnlbXSA9IFtcbiAgICBkYXRlKGZvcm1hdCwgREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5USU1FU1RBTVAuREFURSksXG4gICAgcmVxdWlyZWQoREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5USU1FU1RBTVAuUkVRVUlSRUQpLFxuICAgIG9uKG9wZXJhdGlvbiwgdGltZXN0YW1wSGFuZGxlciksXG4gIF07XG5cbiAgaWYgKG9wZXJhdGlvbi5pbmRleE9mKE9wZXJhdGlvbktleXMuVVBEQVRFKSAhPT0gLTEpXG4gICAgZGVjb3JhdG9ycy5wdXNoKFxuICAgICAgcHJvcE1ldGFkYXRhKFZhbGlkYXRpb24udXBkYXRlS2V5KERCS2V5cy5USU1FU1RBTVApLCB7XG4gICAgICAgIG1lc3NhZ2U6IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuVElNRVNUQU1QLklOVkFMSUQsXG4gICAgICB9KVxuICAgICk7XG5cbiAgcmV0dXJuIGFwcGx5KC4uLmRlY29yYXRvcnMpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VyaWFsaXplT25DcmVhdGVVcGRhdGU8XG4gIFQgZXh0ZW5kcyBNb2RlbCxcbiAgViBleHRlbmRzIElSZXBvc2l0b3J5PFQ+LFxuICBZID0gYW55LFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4+KHRoaXM6IFYsIGRhdGE6IFksIGtleTogc3RyaW5nLCBtb2RlbDogVCwgb2xkTW9kZWw6IFQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCEobW9kZWwgYXMgYW55KVtrZXldKSByZXR1cm47XG4gIHRyeSB7XG4gICAgKG1vZGVsIGFzIGFueSlba2V5XSA9IEpTT04uc3RyaW5naWZ5KChtb2RlbCBhcyBhbnkpW2tleV0pO1xuICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKFxuICAgICAgc2YoXG4gICAgICAgIFwiRmFpbGVkIHRvIHNlcmlhbGl6ZSB7MH0gcHJvcGVydHkgb24gezF9IG1vZGVsOiB7Mn1cIixcbiAgICAgICAga2V5LFxuICAgICAgICBtb2RlbC5jb25zdHJ1Y3Rvci5uYW1lLFxuICAgICAgICBlLm1lc3NhZ2VcbiAgICAgIClcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXJpYWxpemVBZnRlckFsbDxcbiAgVCBleHRlbmRzIE1vZGVsLFxuICBWIGV4dGVuZHMgSVJlcG9zaXRvcnk8VD4sXG4gIFkgPSBhbnksXG4+KHRoaXM6IFYsIGRhdGE6IFksIGtleTogc3RyaW5nLCBtb2RlbDogVCk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIShtb2RlbCBhcyBhbnkpW2tleV0pIHJldHVybjtcbiAgaWYgKHR5cGVvZiAobW9kZWwgYXMgYW55KVtrZXldICE9PSBcInN0cmluZ1wiKSByZXR1cm47XG5cbiAgdHJ5IHtcbiAgICAobW9kZWwgYXMgYW55KVtrZXldID0gSlNPTi5wYXJzZSgobW9kZWwgYXMgYW55KVtrZXldKTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihcbiAgICAgIHNmKFxuICAgICAgICBcIkZhaWxlZCB0byBkZXNlcmlhbGl6ZSB7MH0gcHJvcGVydHkgb24gezF9IG1vZGVsOiB7Mn1cIixcbiAgICAgICAga2V5LFxuICAgICAgICBtb2RlbC5jb25zdHJ1Y3Rvci5uYW1lLFxuICAgICAgICBlLm1lc3NhZ2VcbiAgICAgIClcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogQHN1bW1hcnkgU2VyaWFsaXplIERlY29yYXRvclxuICogQGRlc2NyaXB0aW9uIHByb3BlcnRpZXMgZGVjb3JhdGVkIHdpbGwgdGhlIHNlcmlhbGl6ZWQgYmVmb3JlIHN0b3JlZCBpbiB0aGUgZGJcbiAqXG4gKiBAZnVuY3Rpb24gc2VyaWFsaXplXG4gKlxuICogQG1lbWJlck9mIG1vZHVsZTp3YWxsZXQtZGIuRGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplKCkge1xuICByZXR1cm4gYXBwbHkoXG4gICAgb25DcmVhdGVVcGRhdGUoc2VyaWFsaXplT25DcmVhdGVVcGRhdGUpLFxuICAgIGFmdGVyKERCT3BlcmF0aW9ucy5BTEwsIHNlcmlhbGl6ZUFmdGVyQWxsKSxcbiAgICB0eXBlKFtTdHJpbmcubmFtZSwgT2JqZWN0Lm5hbWVdKSxcbiAgICBtZXRhZGF0YShSZXBvc2l0b3J5LmtleShEQktleXMuU0VSSUFMSVpFKSwge30pXG4gICk7XG59XG5cbi8vXG4vLyAvKipcbi8vICAqIEBzdW1tYXJ5IE9uZSBUbyBPbmUgcmVsYXRpb24gRGVjb3JhdG9yc1xuLy8gICpcbi8vICAqIEBwYXJhbSB7Q29uc3RydWN0b3I8YW55Pn0gY2xhenogdGhlIHtAbGluayBTZXF1ZW5jZX0gdG8gdXNlLiBEZWZhdWx0cyB0byB7QGxpbmsgTm9uZVNlcXVlbmNlfVxuLy8gICogQHBhcmFtIHtDYXNjYWRlTWV0YWRhdGF9IFtjYXNjYWRlT3B0aW9uc11cbi8vICAqIEBwYXJhbSB7Ym9vbGVhbn0gX3BvcHVsYXRlIElmIHRydWUsIHJlcGxhY2VzIHRoZSBzcGVjaWZpZWQga2V5IGluIHRoZSBkb2N1bWVudCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHJlY29yZCBmcm9tIHRoZSBkYXRhYmFzZVxuLy8gICpcbi8vICAqIEBmdW5jdGlvbiBvblRvT25lXG4vLyAgKlxuLy8gICogQG1lbWJlck9mIG1vZHVsZTp3YWxsZXQtZGIuRGVjb3JhdG9yc1xuLy8gICpcbi8vICAqIEBzZWUgb25lVG9NYW55XG4vLyAgKiBAc2VlIG1hbnlUb09uZVxuLy8gICovXG4vLyBleHBvcnQgZnVuY3Rpb24gb25lVG9PbmUoXG4vLyAgIGNsYXp6OiBDb25zdHJ1Y3Rvcjxhbnk+LFxuLy8gICBjYXNjYWRlT3B0aW9uczogQ2FzY2FkZU1ldGFkYXRhID0gRGVmYXVsdENhc2NhZGUsXG4vLyAgIF9wb3B1bGF0ZTogYm9vbGVhbiA9IHRydWUsXG4vLyApIHtcbi8vICAgTW9kZWwucmVnaXN0ZXIoY2xhenopO1xuLy8gICByZXR1cm4gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKSA9PiB7XG4vLyAgICAgdHlwZShbY2xhenoubmFtZSwgU3RyaW5nLm5hbWVdKSh0YXJnZXQsIHByb3BlcnR5S2V5KTtcbi8vICAgICBvbkNyZWF0ZShvbmVUb09uZU9uQ3JlYXRlKSh0YXJnZXQsIHByb3BlcnR5S2V5KTtcbi8vICAgICBvblVwZGF0ZShvbmVUb09uZU9uVXBkYXRlLCBjYXNjYWRlT3B0aW9ucyBhcyBhbnkpKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuLy8gICAgIG9uRGVsZXRlKG9uZVRvT25lT25EZWxldGUsIGNhc2NhZGVPcHRpb25zKSh0YXJnZXQsIHByb3BlcnR5S2V5KTtcbi8vXG4vLyAgICAgYWZ0ZXJDcmVhdGUocG9wdWxhdGUsIF9wb3B1bGF0ZSkodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4vLyAgICAgYWZ0ZXJVcGRhdGUocG9wdWxhdGUsIF9wb3B1bGF0ZSkodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4vLyAgICAgYWZ0ZXJSZWFkKHBvcHVsYXRlLCBfcG9wdWxhdGUpKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuLy8gICAgIGFmdGVyRGVsZXRlKHBvcHVsYXRlLCBfcG9wdWxhdGUpKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuLy9cbi8vICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFxuLy8gICAgICAgZ2V0REJLZXkoV2FsbGV0RGJLZXlzLk9ORV9UT19PTkUpLFxuLy8gICAgICAge1xuLy8gICAgICAgICBjb25zdHJ1Y3RvcjogY2xhenoubmFtZSxcbi8vICAgICAgICAgY2FzY2FkZTogY2FzY2FkZU9wdGlvbnMsXG4vLyAgICAgICAgIHBvcHVsYXRlOiBfcG9wdWxhdGUsXG4vLyAgICAgICB9LFxuLy8gICAgICAgdGFyZ2V0LFxuLy8gICAgICAgcHJvcGVydHlLZXksXG4vLyAgICAgKTtcbi8vICAgfTtcbi8vIH1cbi8vXG4vLyAvKipcbi8vICAqIEBzdW1tYXJ5IE9uZSBUbyBNYW55IHJlbGF0aW9uIERlY29yYXRvcnNcbi8vICAqXG4vLyAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yPGFueT59IGNsYXp6IHRoZSB7QGxpbmsgU2VxdWVuY2V9IHRvIHVzZS4gRGVmYXVsdHMgdG8ge0BsaW5rIE5vbmVTZXF1ZW5jZX1cbi8vICAqIEBwYXJhbSB7Q2FzY2FkZU1ldGFkYXRhfSBbY2FzY2FkZU9wdGlvbnNdXG4vLyAgKlxuLy8gICogQGZ1bmN0aW9uIG9uVG9NYW55XG4vLyAgKlxuLy8gICogQG1lbWJlck9mIG1vZHVsZTp3YWxsZXQtZGIuRGVjb3JhdG9yc1xuLy8gICpcbi8vICAqIEBzZWUgb25lVG9PbmVcbi8vICAqIEBzZWUgbWFueVRvT25lXG4vLyAgKi9cbi8vIGV4cG9ydCBmdW5jdGlvbiBvbmVUb01hbnkoXG4vLyAgIGNsYXp6OiBDb25zdHJ1Y3Rvcjxhbnk+LFxuLy8gICBjYXNjYWRlT3B0aW9uczogQ2FzY2FkZU1ldGFkYXRhID0gRGVmYXVsdENhc2NhZGUsXG4vLyAgIF9wb3B1bGF0ZTogYm9vbGVhbiA9IHRydWUsXG4vLyApIHtcbi8vICAgTW9kZWwucmVnaXN0ZXIoY2xhenopO1xuLy8gICByZXR1cm4gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKSA9PiB7XG4vLyAgICAgbGlzdChbY2xhenosIFN0cmluZ10pKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuLy8gICAgIG9uQ3JlYXRlKG9uZVRvTWFueU9uQ3JlYXRlKSh0YXJnZXQsIHByb3BlcnR5S2V5KTtcbi8vICAgICBvblVwZGF0ZShvbmVUb01hbnlPblVwZGF0ZSwgY2FzY2FkZU9wdGlvbnMpKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuLy8gICAgIG9uRGVsZXRlKG9uZVRvTWFueU9uRGVsZXRlLCBjYXNjYWRlT3B0aW9ucykodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4vL1xuLy8gICAgIGFmdGVyQ3JlYXRlKHBvcHVsYXRlLCBfcG9wdWxhdGUpKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuLy8gICAgIGFmdGVyVXBkYXRlKHBvcHVsYXRlLCBfcG9wdWxhdGUpKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuLy8gICAgIGFmdGVyUmVhZChwb3B1bGF0ZSwgX3BvcHVsYXRlKSh0YXJnZXQsIHByb3BlcnR5S2V5KTtcbi8vICAgICBhZnRlckRlbGV0ZShwb3B1bGF0ZSwgX3BvcHVsYXRlKSh0YXJnZXQsIHByb3BlcnR5S2V5KTtcbi8vXG4vLyAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbi8vICAgICAgIGdldERCS2V5KFdhbGxldERiS2V5cy5PTkVfVE9fTUFOWSksXG4vLyAgICAgICB7XG4vLyAgICAgICAgIGNvbnN0cnVjdG9yOiBjbGF6ei5uYW1lLFxuLy8gICAgICAgICBjYXNjYWRlOiBjYXNjYWRlT3B0aW9ucyxcbi8vICAgICAgIH0sXG4vLyAgICAgICB0YXJnZXQsXG4vLyAgICAgICBwcm9wZXJ0eUtleSxcbi8vICAgICApO1xuLy8gICB9O1xuLy8gfVxuLy9cbi8vIC8qKlxuLy8gICogQHN1bW1hcnkgTWFueSBUbyBPbmUgcmVsYXRpb24gRGVjb3JhdG9yc1xuLy8gICpcbi8vICAqIEBwYXJhbSB7Q29uc3RydWN0b3I8YW55Pn0gY2xhenogdGhlIHtAbGluayBTZXF1ZW5jZX0gdG8gdXNlLiBEZWZhdWx0cyB0byB7QGxpbmsgTm9uZVNlcXVlbmNlfVxuLy8gICogQHBhcmFtIHtDYXNjYWRlTWV0YWRhdGF9IFtjYXNjYWRlT3B0aW9uc11cbi8vICAqXG4vLyAgKiBAZnVuY3Rpb24gbWFueVRvT25lXG4vLyAgKlxuLy8gICogQG1lbWJlck9mIG1vZHVsZTp3YWxsZXQtZGIuRGVjb3JhdG9yc1xuLy8gICpcbi8vICAqIEBzZWUgb25lVG9NYW55XG4vLyAgKiBAc2VlIG9uZVRvT25lXG4vLyAgKi9cbi8vIGV4cG9ydCBmdW5jdGlvbiBtYW55VG9PbmUoXG4vLyAgIGNsYXp6OiBDb25zdHJ1Y3Rvcjxhbnk+LFxuLy8gICBjYXNjYWRlT3B0aW9uczogQ2FzY2FkZU1ldGFkYXRhID0gRGVmYXVsdENhc2NhZGUsXG4vLyApIHtcbi8vICAgTW9kZWwucmVnaXN0ZXIoY2xhenopO1xuLy8gICByZXR1cm4gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKSA9PiB7XG4vLyAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbi8vICAgICAgIGdldERCS2V5KFdhbGxldERiS2V5cy5NQU5ZX1RPX09ORSksXG4vLyAgICAgICB7XG4vLyAgICAgICAgIGNvbnN0cnVjdG9yOiBjbGF6ei5uYW1lLFxuLy8gICAgICAgICBjYXNjYWRlOiBjYXNjYWRlT3B0aW9ucyxcbi8vICAgICAgIH0sXG4vLyAgICAgICB0YXJnZXQsXG4vLyAgICAgICBwcm9wZXJ0eUtleSxcbi8vICAgICApO1xuLy8gICB9O1xuLy8gfVxuIl19
@@ -1 +1 @@
1
- export declare function id(): (target: object, propertyKey?: any, descriptor?: any) => void;
1
+ export declare function id(): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
@@ -20,6 +20,7 @@ exports.DBKeys = {
20
20
  TIMESTAMP: "timestamp",
21
21
  HASH: "hash",
22
22
  COMPOSED: "composed",
23
+ VERSION: "version",
23
24
  ORIGINAL: "__originalObj",
24
25
  };
25
26
  /**
@@ -39,4 +40,4 @@ exports.DefaultSeparator = "_";
39
40
  */
40
41
  exports.DEFAULT_TIMESTAMP_FORMAT = "dd/MM/yyyy HH:mm:ss:S";
41
42
 
42
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tb2RlbC9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQTJEO0FBRTNEOzs7OztHQUtHO0FBQ1UsUUFBQSxNQUFNLEdBQUc7SUFDcEIsT0FBTyxFQUFFLEdBQUcsZ0NBQVMsQ0FBQyxPQUFPLGNBQWM7SUFDM0MsVUFBVSxFQUFFLFlBQVk7SUFDeEIsS0FBSyxFQUFFLFFBQVE7SUFDZixFQUFFLEVBQUUsSUFBSTtJQUNSLEtBQUssRUFBRSxPQUFPO0lBQ2QsTUFBTSxFQUFFLFFBQVE7SUFDaEIsU0FBUyxFQUFFLFdBQVc7SUFDdEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsU0FBUyxFQUFFLFdBQVc7SUFDdEIsSUFBSSxFQUFFLE1BQU07SUFDWixRQUFRLEVBQUUsVUFBVTtJQUNwQixRQUFRLEVBQUUsZUFBZTtDQUMxQixDQUFDO0FBRUY7Ozs7Ozs7R0FPRztBQUNVLFFBQUEsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDO0FBRXBDOzs7OztHQUtHO0FBQ1UsUUFBQSx3QkFBd0IsR0FBRyx1QkFBdUIsQ0FBQyIsImZpbGUiOiJtb2RlbC9jb25zdGFudHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RlbEtleXMgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgSG9sZHMgdGhlIE1vZGVsIHJlZmxlY3Rpb24ga2V5c1xuICogQGNvbnN0IERCS2V5c1xuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGItZGVjb3JhdG9ycy5Nb2RlbFxuICovXG5leHBvcnQgY29uc3QgREJLZXlzID0ge1xuICBSRUZMRUNUOiBgJHtNb2RlbEtleXMuUkVGTEVDVH1wZXJzaXN0ZW5jZS5gLFxuICBSRVBPU0lUT1JZOiBcInJlcG9zaXRvcnlcIixcbiAgQ0xBU1M6IFwiX2NsYXNzXCIsXG4gIElEOiBcImlkXCIsXG4gIElOREVYOiBcImluZGV4XCIsXG4gIFVOSVFVRTogXCJ1bmlxdWVcIixcbiAgU0VSSUFMSVpFOiBcInNlcmlhbGl6ZVwiLFxuICBSRUFET05MWTogXCJyZWFkb25seVwiLFxuICBUSU1FU1RBTVA6IFwidGltZXN0YW1wXCIsXG4gIEhBU0g6IFwiaGFzaFwiLFxuICBDT01QT1NFRDogXCJjb21wb3NlZFwiLFxuICBPUklHSU5BTDogXCJfX29yaWdpbmFsT2JqXCIsXG59O1xuXG4vKipcbiAqIEBzdW1tYXJ5IFRoZSBkZWZhdWx0IHNlcGFyYXRvciB3aGVuIGNvbmNhdGVuYXRpbmcgaW5kZXhlc1xuICpcbiAqIEBjb25zdCBEZWZhdWx0SW5kZXhTZXBhcmF0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgTWFuYWdlcnNcbiAqIEBzdWJjYXRlZ29yeSBDb25zdGFudHNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRTZXBhcmF0b3IgPSBcIl9cIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBIb2xkcyB0aGUgZGVmYXVsdCB0aW1lc3RhbXAgZGF0ZSBmb3JtYXRcbiAqIEBjb25zdGFudCBERUZBVUxUX1RJTUVTVEFNUF9GT1JNQVRcbiAqXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRiLWRlY29yYXRvcnMuTW9kZWxcbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVElNRVNUQU1QX0ZPUk1BVCA9IFwiZGQvTU0veXl5eSBISDptbTpzczpTXCI7XG4iXX0=
43
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tb2RlbC9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQTJEO0FBRTNEOzs7OztHQUtHO0FBQ1UsUUFBQSxNQUFNLEdBQUc7SUFDcEIsT0FBTyxFQUFFLEdBQUcsZ0NBQVMsQ0FBQyxPQUFPLGNBQWM7SUFDM0MsVUFBVSxFQUFFLFlBQVk7SUFDeEIsS0FBSyxFQUFFLFFBQVE7SUFDZixFQUFFLEVBQUUsSUFBSTtJQUNSLEtBQUssRUFBRSxPQUFPO0lBQ2QsTUFBTSxFQUFFLFFBQVE7SUFDaEIsU0FBUyxFQUFFLFdBQVc7SUFDdEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsU0FBUyxFQUFFLFdBQVc7SUFDdEIsSUFBSSxFQUFFLE1BQU07SUFDWixRQUFRLEVBQUUsVUFBVTtJQUNwQixPQUFPLEVBQUUsU0FBUztJQUNsQixRQUFRLEVBQUUsZUFBZTtDQUMxQixDQUFDO0FBRUY7Ozs7Ozs7R0FPRztBQUNVLFFBQUEsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDO0FBRXBDOzs7OztHQUtHO0FBQ1UsUUFBQSx3QkFBd0IsR0FBRyx1QkFBdUIsQ0FBQyIsImZpbGUiOiJtb2RlbC9jb25zdGFudHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RlbEtleXMgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgSG9sZHMgdGhlIE1vZGVsIHJlZmxlY3Rpb24ga2V5c1xuICogQGNvbnN0IERCS2V5c1xuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGItZGVjb3JhdG9ycy5Nb2RlbFxuICovXG5leHBvcnQgY29uc3QgREJLZXlzID0ge1xuICBSRUZMRUNUOiBgJHtNb2RlbEtleXMuUkVGTEVDVH1wZXJzaXN0ZW5jZS5gLFxuICBSRVBPU0lUT1JZOiBcInJlcG9zaXRvcnlcIixcbiAgQ0xBU1M6IFwiX2NsYXNzXCIsXG4gIElEOiBcImlkXCIsXG4gIElOREVYOiBcImluZGV4XCIsXG4gIFVOSVFVRTogXCJ1bmlxdWVcIixcbiAgU0VSSUFMSVpFOiBcInNlcmlhbGl6ZVwiLFxuICBSRUFET05MWTogXCJyZWFkb25seVwiLFxuICBUSU1FU1RBTVA6IFwidGltZXN0YW1wXCIsXG4gIEhBU0g6IFwiaGFzaFwiLFxuICBDT01QT1NFRDogXCJjb21wb3NlZFwiLFxuICBWRVJTSU9OOiBcInZlcnNpb25cIixcbiAgT1JJR0lOQUw6IFwiX19vcmlnaW5hbE9ialwiLFxufTtcblxuLyoqXG4gKiBAc3VtbWFyeSBUaGUgZGVmYXVsdCBzZXBhcmF0b3Igd2hlbiBjb25jYXRlbmF0aW5nIGluZGV4ZXNcbiAqXG4gKiBAY29uc3QgRGVmYXVsdEluZGV4U2VwYXJhdG9yXG4gKlxuICogQGNhdGVnb3J5IE1hbmFnZXJzXG4gKiBAc3ViY2F0ZWdvcnkgQ29uc3RhbnRzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0U2VwYXJhdG9yID0gXCJfXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgSG9sZHMgdGhlIGRlZmF1bHQgdGltZXN0YW1wIGRhdGUgZm9ybWF0XG4gKiBAY29uc3RhbnQgREVGQVVMVF9USU1FU1RBTVBfRk9STUFUXG4gKlxuICogQG1lbWJlck9mIG1vZHVsZTpkYi1kZWNvcmF0b3JzLk1vZGVsXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1RJTUVTVEFNUF9GT1JNQVQgPSBcImRkL01NL3l5eXkgSEg6bW06c3M6U1wiO1xuIl19
@@ -16,6 +16,7 @@ export declare const DBKeys: {
16
16
  TIMESTAMP: string;
17
17
  HASH: string;
18
18
  COMPOSED: string;
19
+ VERSION: string;
19
20
  ORIGINAL: string;
20
21
  };
21
22
  /**