cmp-aws-database 1.7.1-dev.27 → 1.7.1-dev.29

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.
@@ -12,15 +12,32 @@ type DynamooseModelLike = {
12
12
  export declare class GenericDynamooseDAO<T extends BaseDynamooseModel> {
13
13
  protected readonly model: DynamooseModelLike;
14
14
  protected readonly primaryKeyName: keyof T & string;
15
+ protected readonly sortKeyName?: (keyof T & string) | undefined;
15
16
  /**
16
17
  * @param model Dynamoose model instance for the target table.
17
18
  * @param primaryKeyName Attribute name used as the table hash key.
18
19
  */
19
- constructor(model: DynamooseModelLike, primaryKeyName: keyof T & string);
20
+ constructor(model: DynamooseModelLike, primaryKeyName: keyof T & string, sortKeyName?: (keyof T & string) | undefined);
20
21
  /**
21
22
  * Builds a DynamoDB key object from a single primary key value.
22
23
  */
23
- protected getKeyObject(primaryKeyValue: string): DynamoKey;
24
+ protected getKeyObject(primaryKeyValue: string, sortKeyValue?: string): DynamoKey;
25
+ /**
26
+ * Extracts and validates string primary key value from an item.
27
+ */
28
+ protected getPrimaryKeyValueFromItem(item: T): string;
29
+ /**
30
+ * Extracts and validates sort key value from an item when sort key is configured.
31
+ */
32
+ protected getSortKeyValueFromItem(item: T): string | undefined;
33
+ /**
34
+ * Builds complete key object (hash + optional sort) from an item.
35
+ */
36
+ protected getItemKeyObject(item: T): DynamoKey;
37
+ /**
38
+ * Serializes key object for stable set/map comparisons.
39
+ */
40
+ protected serializeKey(key: DynamoKey): string;
24
41
  /**
25
42
  * Creates a new record and automatically stamps created audit fields.
26
43
  */
@@ -28,23 +45,32 @@ export declare class GenericDynamooseDAO<T extends BaseDynamooseModel> {
28
45
  /**
29
46
  * Updates an existing record and automatically stamps updated audit fields.
30
47
  */
31
- update(primaryKeyValue: string, updates: Partial<T>, authContext?: AuthContext): Promise<T>;
48
+ update(primaryKeyValue: string, updates: Partial<T>, authContext?: AuthContext, sortKeyValue?: string): Promise<T>;
32
49
  /**
33
50
  * Deletes one record by primary key.
34
51
  */
35
- delete(primaryKeyValue: string): Promise<T | undefined>;
52
+ delete(primaryKeyValue: string, sortKeyValue?: string): Promise<T | undefined>;
36
53
  /**
37
54
  * Fetches one record by primary key. Returns null when not found.
38
55
  */
39
- get(primaryKeyValue: string): Promise<T | null>;
56
+ get(primaryKeyValue: string, sortKeyValue?: string): Promise<T | null>;
40
57
  /**
41
58
  * Writes multiple records in a batch and throws if any item is left unprocessed.
42
59
  */
43
60
  batchSave(items: T[], authContext?: AuthContext): Promise<T[]>;
61
+ /**
62
+ * Upserts multiple records by primary key.
63
+ * New keys are created (created_* fields), existing keys are updated (updated_* fields).
64
+ */
65
+ batchUpsert(items: T[], authContext?: AuthContext): Promise<T[]>;
44
66
  /**
45
67
  * Fetches multiple records by primary keys.
46
68
  */
47
69
  batchGet(primaryKeyValues: string[]): Promise<T[]>;
70
+ /**
71
+ * Fetches multiple records by key objects (supports hash + optional sort key).
72
+ */
73
+ batchGetByKeys(keys: DynamoKey[]): Promise<T[]>;
48
74
  /**
49
75
  * Decodes a base64 continuation token into DynamoDB last evaluated key.
50
76
  */
@@ -6,15 +6,65 @@ class GenericDynamooseDAO {
6
6
  * @param model Dynamoose model instance for the target table.
7
7
  * @param primaryKeyName Attribute name used as the table hash key.
8
8
  */
9
- constructor(model, primaryKeyName) {
9
+ constructor(model, primaryKeyName, sortKeyName) {
10
10
  this.model = model;
11
11
  this.primaryKeyName = primaryKeyName;
12
+ this.sortKeyName = sortKeyName;
12
13
  }
13
14
  /**
14
15
  * Builds a DynamoDB key object from a single primary key value.
15
16
  */
16
- getKeyObject(primaryKeyValue) {
17
- return { [this.primaryKeyName]: primaryKeyValue };
17
+ getKeyObject(primaryKeyValue, sortKeyValue) {
18
+ const keyObject = { [this.primaryKeyName]: primaryKeyValue };
19
+ if (this.sortKeyName) {
20
+ if (!sortKeyValue) {
21
+ throw new Error(`Missing sort key value for '${this.sortKeyName}'`);
22
+ }
23
+ keyObject[this.sortKeyName] = sortKeyValue;
24
+ }
25
+ return keyObject;
26
+ }
27
+ /**
28
+ * Extracts and validates string primary key value from an item.
29
+ */
30
+ getPrimaryKeyValueFromItem(item) {
31
+ const keyRecord = item;
32
+ const keyValue = keyRecord[this.primaryKeyName];
33
+ if (typeof keyValue !== "string" || keyValue.length === 0) {
34
+ throw new Error(`Missing or invalid primary key value for '${this.primaryKeyName}'`);
35
+ }
36
+ return keyValue;
37
+ }
38
+ /**
39
+ * Extracts and validates sort key value from an item when sort key is configured.
40
+ */
41
+ getSortKeyValueFromItem(item) {
42
+ if (!this.sortKeyName) {
43
+ return undefined;
44
+ }
45
+ const keyRecord = item;
46
+ const keyValue = keyRecord[this.sortKeyName];
47
+ if (typeof keyValue !== "string" || keyValue.length === 0) {
48
+ throw new Error(`Missing or invalid sort key value for '${this.sortKeyName}'`);
49
+ }
50
+ return keyValue;
51
+ }
52
+ /**
53
+ * Builds complete key object (hash + optional sort) from an item.
54
+ */
55
+ getItemKeyObject(item) {
56
+ const primaryKeyValue = this.getPrimaryKeyValueFromItem(item);
57
+ const sortKeyValue = this.getSortKeyValueFromItem(item);
58
+ return this.getKeyObject(primaryKeyValue, sortKeyValue);
59
+ }
60
+ /**
61
+ * Serializes key object for stable set/map comparisons.
62
+ */
63
+ serializeKey(key) {
64
+ if (!this.sortKeyName) {
65
+ return `${key[this.primaryKeyName]}`;
66
+ }
67
+ return `${key[this.primaryKeyName]}#${key[this.sortKeyName]}`;
18
68
  }
19
69
  /**
20
70
  * Creates a new record and automatically stamps created audit fields.
@@ -31,9 +81,9 @@ class GenericDynamooseDAO {
31
81
  /**
32
82
  * Updates an existing record and automatically stamps updated audit fields.
33
83
  */
34
- async update(primaryKeyValue, updates, authContext) {
84
+ async update(primaryKeyValue, updates, authContext, sortKeyValue) {
35
85
  const updateFn = this.model.update;
36
- const updated = await updateFn(this.getKeyObject(primaryKeyValue), {
86
+ const updated = await updateFn(this.getKeyObject(primaryKeyValue, sortKeyValue), {
37
87
  ...updates,
38
88
  updated_time: new Date(),
39
89
  updated_user: authContext?.userSub
@@ -43,17 +93,17 @@ class GenericDynamooseDAO {
43
93
  /**
44
94
  * Deletes one record by primary key.
45
95
  */
46
- async delete(primaryKeyValue) {
96
+ async delete(primaryKeyValue, sortKeyValue) {
47
97
  const deleteFn = this.model.delete;
48
- const deleted = await deleteFn(this.getKeyObject(primaryKeyValue));
98
+ const deleted = await deleteFn(this.getKeyObject(primaryKeyValue, sortKeyValue));
49
99
  return deleted;
50
100
  }
51
101
  /**
52
102
  * Fetches one record by primary key. Returns null when not found.
53
103
  */
54
- async get(primaryKeyValue) {
104
+ async get(primaryKeyValue, sortKeyValue) {
55
105
  const getFn = this.model.get;
56
- const item = await getFn(this.getKeyObject(primaryKeyValue));
106
+ const item = await getFn(this.getKeyObject(primaryKeyValue, sortKeyValue));
57
107
  return item ?? null;
58
108
  }
59
109
  /**
@@ -73,11 +123,48 @@ class GenericDynamooseDAO {
73
123
  }
74
124
  return inputItems;
75
125
  }
126
+ /**
127
+ * Upserts multiple records by primary key.
128
+ * New keys are created (created_* fields), existing keys are updated (updated_* fields).
129
+ */
130
+ async batchUpsert(items, authContext) {
131
+ const now = new Date();
132
+ const keys = items.map((item) => this.getItemKeyObject(item));
133
+ const existingItems = await this.batchGetByKeys(keys);
134
+ const existingKeySet = new Set(existingItems.map((item) => this.serializeKey(this.getItemKeyObject(item))));
135
+ const upsertItems = items.map((item) => {
136
+ const itemKey = this.getItemKeyObject(item);
137
+ if (existingKeySet.has(this.serializeKey(itemKey))) {
138
+ return {
139
+ ...item,
140
+ updated_time: now,
141
+ updated_user: authContext?.userSub
142
+ };
143
+ }
144
+ return {
145
+ ...item,
146
+ created_time: now,
147
+ created_user: authContext?.userSub
148
+ };
149
+ });
150
+ const batchPutFn = this.model.batchPut;
151
+ const result = await batchPutFn(upsertItems);
152
+ if (result.unprocessedItems.length > 0) {
153
+ throw new Error(`Batch upsert partially failed. Unprocessed items: ${result.unprocessedItems.length}`);
154
+ }
155
+ return upsertItems;
156
+ }
76
157
  /**
77
158
  * Fetches multiple records by primary keys.
78
159
  */
79
160
  async batchGet(primaryKeyValues) {
80
161
  const keys = primaryKeyValues.map((value) => this.getKeyObject(value));
162
+ return this.batchGetByKeys(keys);
163
+ }
164
+ /**
165
+ * Fetches multiple records by key objects (supports hash + optional sort key).
166
+ */
167
+ async batchGetByKeys(keys) {
81
168
  const batchGetFn = this.model.batchGet;
82
169
  const items = await batchGetFn(keys);
83
170
  return items;
@@ -107,4 +194,4 @@ class GenericDynamooseDAO {
107
194
  }
108
195
  }
109
196
  exports.GenericDynamooseDAO = GenericDynamooseDAO;
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1keW5hbW9vc2UtZGFvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Jhc2UtZHluYW1vb3NlLWRhby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF5QkEsTUFBYSxtQkFBbUI7SUFDNUI7OztPQUdHO0lBQ0gsWUFDdUIsS0FBeUIsRUFDekIsY0FBZ0M7UUFEaEMsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQWtCO0lBQ25ELENBQUM7SUFFTDs7T0FFRztJQUNPLFlBQVksQ0FBQyxlQUF1QjtRQUMxQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsZUFBZSxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFPLEVBQUUsV0FBeUI7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFxQixDQUFDO1FBQ2xELE1BQU0sT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFDO1lBQzNCLEdBQUcsSUFBSTtZQUNQLFlBQVksRUFBRSxJQUFJLElBQUksRUFBRTtZQUN4QixZQUFZLEVBQUUsV0FBVyxFQUFFLE9BQU87U0FDckMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFZLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUF1QixFQUFFLE9BQW1CLEVBQUUsV0FBeUI7UUFDaEYsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFxQixDQUFDO1FBQ2xELE1BQU0sT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxFQUNsQztZQUNJLEdBQUcsT0FBTztZQUNWLFlBQVksRUFBRSxJQUFJLElBQUksRUFBRTtZQUN4QixZQUFZLEVBQUUsV0FBVyxFQUFFLE9BQU87U0FDckMsQ0FDSixD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Q0FDSjtBQXZIRCxrREF1SEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlRHluYW1vb3NlTW9kZWwsIEF1dGhDb250ZXh0IH0gZnJvbSBcIi4vYmFzZS1keW5hbW9vc2UtbW9kZWxcIjtcblxudHlwZSBEeW5hbW9LZXlWYWx1ZSA9IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsO1xuZXhwb3J0IHR5cGUgRHluYW1vS2V5ID0gUmVjb3JkPHN0cmluZywgRHluYW1vS2V5VmFsdWU+O1xuXG50eXBlIEJhdGNoUHV0UmVzcG9uc2U8VD4gPSB7XG4gICAgdW5wcm9jZXNzZWRJdGVtczogUGFydGlhbDxUPltdO1xufTtcblxudHlwZSBDcmVhdGVGbjxUPiA9IChpdGVtOiBQYXJ0aWFsPFQ+KSA9PiBQcm9taXNlPG9iamVjdD47XG50eXBlIFVwZGF0ZUZuPFQ+ID0gKGtleTogRHluYW1vS2V5LCB1cGRhdGU6IFBhcnRpYWw8VD4pID0+IFByb21pc2U8b2JqZWN0PjtcbnR5cGUgRGVsZXRlRm4gPSAoa2V5OiBEeW5hbW9LZXkpID0+IFByb21pc2U8b2JqZWN0IHwgdW5kZWZpbmVkPjtcbnR5cGUgR2V0Rm4gPSAoa2V5OiBEeW5hbW9LZXkpID0+IFByb21pc2U8b2JqZWN0IHwgdW5kZWZpbmVkPjtcbnR5cGUgQmF0Y2hQdXRGbjxUPiA9IChpdGVtczogUGFydGlhbDxUPltdKSA9PiBQcm9taXNlPEJhdGNoUHV0UmVzcG9uc2U8VD4+O1xudHlwZSBCYXRjaEdldEZuID0gKGtleXM6IER5bmFtb0tleVtdKSA9PiBQcm9taXNlPG9iamVjdFtdPjtcblxudHlwZSBEeW5hbW9vc2VNb2RlbExpa2UgPSB7XG4gICAgY3JlYXRlOiBGdW5jdGlvbjtcbiAgICB1cGRhdGU6IEZ1bmN0aW9uO1xuICAgIGdldDogRnVuY3Rpb247XG4gICAgZGVsZXRlOiBGdW5jdGlvbjtcbiAgICBiYXRjaFB1dDogRnVuY3Rpb247XG4gICAgYmF0Y2hHZXQ6IEZ1bmN0aW9uO1xufTtcblxuZXhwb3J0IGNsYXNzIEdlbmVyaWNEeW5hbW9vc2VEQU88VCBleHRlbmRzIEJhc2VEeW5hbW9vc2VNb2RlbD4ge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSBtb2RlbCBEeW5hbW9vc2UgbW9kZWwgaW5zdGFuY2UgZm9yIHRoZSB0YXJnZXQgdGFibGUuXG4gICAgICogQHBhcmFtIHByaW1hcnlLZXlOYW1lIEF0dHJpYnV0ZSBuYW1lIHVzZWQgYXMgdGhlIHRhYmxlIGhhc2gga2V5LlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbW9kZWw6IER5bmFtb29zZU1vZGVsTGlrZSxcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IHByaW1hcnlLZXlOYW1lOiBrZXlvZiBUICYgc3RyaW5nXG4gICAgKSB7IH1cblxuICAgIC8qKlxuICAgICAqIEJ1aWxkcyBhIER5bmFtb0RCIGtleSBvYmplY3QgZnJvbSBhIHNpbmdsZSBwcmltYXJ5IGtleSB2YWx1ZS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0S2V5T2JqZWN0KHByaW1hcnlLZXlWYWx1ZTogc3RyaW5nKTogRHluYW1vS2V5IHtcbiAgICAgICAgcmV0dXJuIHsgW3RoaXMucHJpbWFyeUtleU5hbWVdOiBwcmltYXJ5S2V5VmFsdWUgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IHJlY29yZCBhbmQgYXV0b21hdGljYWxseSBzdGFtcHMgY3JlYXRlZCBhdWRpdCBmaWVsZHMuXG4gICAgICovXG4gICAgYXN5bmMgc2F2ZShpdGVtOiBULCBhdXRoQ29udGV4dD86IEF1dGhDb250ZXh0KTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGNvbnN0IGNyZWF0ZUZuID0gdGhpcy5tb2RlbC5jcmVhdGUgYXMgQ3JlYXRlRm48VD47XG4gICAgICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCBjcmVhdGVGbih7XG4gICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgY3JlYXRlZF90aW1lOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgICAgY3JlYXRlZF91c2VyOiBhdXRoQ29udGV4dD8udXNlclN1YlxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZWQgYXMgVDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIHJlY29yZCBhbmQgYXV0b21hdGljYWxseSBzdGFtcHMgdXBkYXRlZCBhdWRpdCBmaWVsZHMuXG4gICAgICovXG4gICAgYXN5bmMgdXBkYXRlKHByaW1hcnlLZXlWYWx1ZTogc3RyaW5nLCB1cGRhdGVzOiBQYXJ0aWFsPFQ+LCBhdXRoQ29udGV4dD86IEF1dGhDb250ZXh0KTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZUZuID0gdGhpcy5tb2RlbC51cGRhdGUgYXMgVXBkYXRlRm48VD47XG4gICAgICAgIGNvbnN0IHVwZGF0ZWQgPSBhd2FpdCB1cGRhdGVGbihcbiAgICAgICAgICAgIHRoaXMuZ2V0S2V5T2JqZWN0KHByaW1hcnlLZXlWYWx1ZSksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4udXBkYXRlcyxcbiAgICAgICAgICAgICAgICB1cGRhdGVkX3RpbWU6IG5ldyBEYXRlKCksXG4gICAgICAgICAgICAgICAgdXBkYXRlZF91c2VyOiBhdXRoQ29udGV4dD8udXNlclN1YlxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdXBkYXRlZCBhcyBUO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgb25lIHJlY29yZCBieSBwcmltYXJ5IGtleS5cbiAgICAgKi9cbiAgICBhc3luYyBkZWxldGUocHJpbWFyeUtleVZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgY29uc3QgZGVsZXRlRm4gPSB0aGlzLm1vZGVsLmRlbGV0ZSBhcyBEZWxldGVGbjtcbiAgICAgICAgY29uc3QgZGVsZXRlZCA9IGF3YWl0IGRlbGV0ZUZuKHRoaXMuZ2V0S2V5T2JqZWN0KHByaW1hcnlLZXlWYWx1ZSkpO1xuICAgICAgICByZXR1cm4gZGVsZXRlZCBhcyBUIHwgdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZldGNoZXMgb25lIHJlY29yZCBieSBwcmltYXJ5IGtleS4gUmV0dXJucyBudWxsIHdoZW4gbm90IGZvdW5kLlxuICAgICAqL1xuICAgIGFzeW5jIGdldChwcmltYXJ5S2V5VmFsdWU6IHN0cmluZyk6IFByb21pc2U8VCB8IG51bGw+IHtcbiAgICAgICAgY29uc3QgZ2V0Rm4gPSB0aGlzLm1vZGVsLmdldCBhcyBHZXRGbjtcbiAgICAgICAgY29uc3QgaXRlbSA9IGF3YWl0IGdldEZuKHRoaXMuZ2V0S2V5T2JqZWN0KHByaW1hcnlLZXlWYWx1ZSkpO1xuICAgICAgICByZXR1cm4gKGl0ZW0gYXMgVCB8IHVuZGVmaW5lZCkgPz8gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZXMgbXVsdGlwbGUgcmVjb3JkcyBpbiBhIGJhdGNoIGFuZCB0aHJvd3MgaWYgYW55IGl0ZW0gaXMgbGVmdCB1bnByb2Nlc3NlZC5cbiAgICAgKi9cbiAgICBhc3luYyBiYXRjaFNhdmUoaXRlbXM6IFRbXSwgYXV0aENvbnRleHQ/OiBBdXRoQ29udGV4dCk6IFByb21pc2U8VFtdPiB7XG4gICAgICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGNvbnN0IGlucHV0SXRlbXMgPSBpdGVtcy5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgY3JlYXRlZF90aW1lOiBub3csXG4gICAgICAgICAgICBjcmVhdGVkX3VzZXI6IGF1dGhDb250ZXh0Py51c2VyU3ViXG4gICAgICAgIH0pKSBhcyBUW107XG5cbiAgICAgICAgY29uc3QgYmF0Y2hQdXRGbiA9IHRoaXMubW9kZWwuYmF0Y2hQdXQgYXMgQmF0Y2hQdXRGbjxUPjtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYmF0Y2hQdXRGbihpbnB1dEl0ZW1zKTtcbiAgICAgICAgaWYgKHJlc3VsdC51bnByb2Nlc3NlZEl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQmF0Y2ggc2F2ZSBwYXJ0aWFsbHkgZmFpbGVkLiBVbnByb2Nlc3NlZCBpdGVtczogJHtyZXN1bHQudW5wcm9jZXNzZWRJdGVtcy5sZW5ndGh9YCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaW5wdXRJdGVtcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGZXRjaGVzIG11bHRpcGxlIHJlY29yZHMgYnkgcHJpbWFyeSBrZXlzLlxuICAgICAqL1xuICAgIGFzeW5jIGJhdGNoR2V0KHByaW1hcnlLZXlWYWx1ZXM6IHN0cmluZ1tdKTogUHJvbWlzZTxUW10+IHtcbiAgICAgICAgY29uc3Qga2V5cyA9IHByaW1hcnlLZXlWYWx1ZXMubWFwKCh2YWx1ZSkgPT4gdGhpcy5nZXRLZXlPYmplY3QodmFsdWUpKTtcbiAgICAgICAgY29uc3QgYmF0Y2hHZXRGbiA9IHRoaXMubW9kZWwuYmF0Y2hHZXQgYXMgQmF0Y2hHZXRGbjtcbiAgICAgICAgY29uc3QgaXRlbXMgPSBhd2FpdCBiYXRjaEdldEZuKGtleXMpO1xuICAgICAgICByZXR1cm4gaXRlbXMgYXMgVFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlY29kZXMgYSBiYXNlNjQgY29udGludWF0aW9uIHRva2VuIGludG8gRHluYW1vREIgbGFzdCBldmFsdWF0ZWQga2V5LlxuICAgICAqL1xuICAgIGRlY29kZShjb250aW51YXRpb25Ub2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkKTogRHluYW1vS2V5IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKCFjb250aW51YXRpb25Ub2tlbikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShCdWZmZXIuZnJvbShjb250aW51YXRpb25Ub2tlbiwgXCJiYXNlNjRcIikudG9TdHJpbmcoXCJ1dGY4XCIpKSBhcyBEeW5hbW9LZXk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGNvbnRpbnVhdGlvblRva2VuXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW5jb2RlcyBEeW5hbW9EQiBsYXN0IGV2YWx1YXRlZCBrZXkgaW50byBhIGJhc2U2NCBjb250aW51YXRpb24gdG9rZW4uXG4gICAgICovXG4gICAgYXN5bmMgZW5jb2RlKGxhc3RFdmFsdWF0ZWRLZXk6IER5bmFtb0tleSB8IHVuZGVmaW5lZCk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGlmICghbGFzdEV2YWx1YXRlZEtleSkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShsYXN0RXZhbHVhdGVkS2V5KSkudG9TdHJpbmcoXCJiYXNlNjRcIik7XG4gICAgfVxufVxuIl19
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1keW5hbW9vc2UtZGFvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Jhc2UtZHluYW1vb3NlLWRhby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF5QkEsTUFBYSxtQkFBbUI7SUFDNUI7OztPQUdHO0lBQ0gsWUFDdUIsS0FBeUIsRUFDekIsY0FBZ0MsRUFDaEMsV0FBOEI7UUFGOUIsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBQ2hDLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtJQUNqRCxDQUFDO0lBRUw7O09BRUc7SUFDTyxZQUFZLENBQUMsZUFBdUIsRUFBRSxZQUFxQjtRQUNqRSxNQUFNLFNBQVMsR0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxDQUFDO1FBQ3hFLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7WUFDeEUsQ0FBQztZQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsWUFBWSxDQUFDO1FBQy9DLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDTywwQkFBMEIsQ0FBQyxJQUFPO1FBQ3hDLE1BQU0sU0FBUyxHQUFHLElBQTZELENBQUM7UUFDaEYsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRCxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hELE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FB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dGVudCI6WyJpbXBvcnQgeyBCYXNlRHluYW1vb3NlTW9kZWwsIEF1dGhDb250ZXh0IH0gZnJvbSBcIi4vYmFzZS1keW5hbW9vc2UtbW9kZWxcIjtcblxudHlwZSBEeW5hbW9LZXlWYWx1ZSA9IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsO1xuZXhwb3J0IHR5cGUgRHluYW1vS2V5ID0gUmVjb3JkPHN0cmluZywgRHluYW1vS2V5VmFsdWU+O1xuXG50eXBlIEJhdGNoUHV0UmVzcG9uc2U8VD4gPSB7XG4gICAgdW5wcm9jZXNzZWRJdGVtczogUGFydGlhbDxUPltdO1xufTtcblxudHlwZSBDcmVhdGVGbjxUPiA9IChpdGVtOiBQYXJ0aWFsPFQ+KSA9PiBQcm9taXNlPG9iamVjdD47XG50eXBlIFVwZGF0ZUZuPFQ+ID0gKGtleTogRHluYW1vS2V5LCB1cGRhdGU6IFBhcnRpYWw8VD4pID0+IFByb21pc2U8b2JqZWN0PjtcbnR5cGUgRGVsZXRlRm4gPSAoa2V5OiBEeW5hbW9LZXkpID0+IFByb21pc2U8b2JqZWN0IHwgdW5kZWZpbmVkPjtcbnR5cGUgR2V0Rm4gPSAoa2V5OiBEeW5hbW9LZXkpID0+IFByb21pc2U8b2JqZWN0IHwgdW5kZWZpbmVkPjtcbnR5cGUgQmF0Y2hQdXRGbjxUPiA9IChpdGVtczogUGFydGlhbDxUPltdKSA9PiBQcm9taXNlPEJhdGNoUHV0UmVzcG9uc2U8VD4+O1xudHlwZSBCYXRjaEdldEZuID0gKGtleXM6IER5bmFtb0tleVtdKSA9PiBQcm9taXNlPG9iamVjdFtdPjtcblxudHlwZSBEeW5hbW9vc2VNb2RlbExpa2UgPSB7XG4gICAgY3JlYXRlOiBGdW5jdGlvbjtcbiAgICB1cGRhdGU6IEZ1bmN0aW9uO1xuICAgIGdldDogRnVuY3Rpb247XG4gICAgZGVsZXRlOiBGdW5jdGlvbjtcbiAgICBiYXRjaFB1dDogRnVuY3Rpb247XG4gICAgYmF0Y2hHZXQ6IEZ1bmN0aW9uO1xufTtcblxuZXhwb3J0IGNsYXNzIEdlbmVyaWNEeW5hbW9vc2VEQU88VCBleHRlbmRzIEJhc2VEeW5hbW9vc2VNb2RlbD4ge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSBtb2RlbCBEeW5hbW9vc2UgbW9kZWwgaW5zdGFuY2UgZm9yIHRoZSB0YXJnZXQgdGFibGUuXG4gICAgICogQHBhcmFtIHByaW1hcnlLZXlOYW1lIEF0dHJpYnV0ZSBuYW1lIHVzZWQgYXMgdGhlIHRhYmxlIGhhc2gga2V5LlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbW9kZWw6IER5bmFtb29zZU1vZGVsTGlrZSxcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IHByaW1hcnlLZXlOYW1lOiBrZXlvZiBUICYgc3RyaW5nLFxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc29ydEtleU5hbWU/OiBrZXlvZiBUICYgc3RyaW5nXG4gICAgKSB7IH1cblxuICAgIC8qKlxuICAgICAqIEJ1aWxkcyBhIER5bmFtb0RCIGtleSBvYmplY3QgZnJvbSBhIHNpbmdsZSBwcmltYXJ5IGtleSB2YWx1ZS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0S2V5T2JqZWN0KHByaW1hcnlLZXlWYWx1ZTogc3RyaW5nLCBzb3J0S2V5VmFsdWU/OiBzdHJpbmcpOiBEeW5hbW9LZXkge1xuICAgICAgICBjb25zdCBrZXlPYmplY3Q6IER5bmFtb0tleSA9IHsgW3RoaXMucHJpbWFyeUtleU5hbWVdOiBwcmltYXJ5S2V5VmFsdWUgfTtcbiAgICAgICAgaWYgKHRoaXMuc29ydEtleU5hbWUpIHtcbiAgICAgICAgICAgIGlmICghc29ydEtleVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIHNvcnQga2V5IHZhbHVlIGZvciAnJHt0aGlzLnNvcnRLZXlOYW1lfSdgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGtleU9iamVjdFt0aGlzLnNvcnRLZXlOYW1lXSA9IHNvcnRLZXlWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ga2V5T2JqZWN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4dHJhY3RzIGFuZCB2YWxpZGF0ZXMgc3RyaW5nIHByaW1hcnkga2V5IHZhbHVlIGZyb20gYW4gaXRlbS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0UHJpbWFyeUtleVZhbHVlRnJvbUl0ZW0oaXRlbTogVCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGtleVJlY29yZCA9IGl0ZW0gYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCBEeW5hbW9LZXlWYWx1ZSB8IHVuZGVmaW5lZD47XG4gICAgICAgIGNvbnN0IGtleVZhbHVlID0ga2V5UmVjb3JkW3RoaXMucHJpbWFyeUtleU5hbWVdO1xuICAgICAgICBpZiAodHlwZW9mIGtleVZhbHVlICE9PSBcInN0cmluZ1wiIHx8IGtleVZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIG9yIGludmFsaWQgcHJpbWFyeSBrZXkgdmFsdWUgZm9yICcke3RoaXMucHJpbWFyeUtleU5hbWV9J2ApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrZXlWYWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeHRyYWN0cyBhbmQgdmFsaWRhdGVzIHNvcnQga2V5IHZhbHVlIGZyb20gYW4gaXRlbSB3aGVuIHNvcnQga2V5IGlzIGNvbmZpZ3VyZWQuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldFNvcnRLZXlWYWx1ZUZyb21JdGVtKGl0ZW06IFQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIXRoaXMuc29ydEtleU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qga2V5UmVjb3JkID0gaXRlbSBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIER5bmFtb0tleVZhbHVlIHwgdW5kZWZpbmVkPjtcbiAgICAgICAgY29uc3Qga2V5VmFsdWUgPSBrZXlSZWNvcmRbdGhpcy5zb3J0S2V5TmFtZV07XG4gICAgICAgIGlmICh0eXBlb2Yga2V5VmFsdWUgIT09IFwic3RyaW5nXCIgfHwga2V5VmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3Npbmcgb3IgaW52YWxpZCBzb3J0IGtleSB2YWx1ZSBmb3IgJyR7dGhpcy5zb3J0S2V5TmFtZX0nYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleVZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEJ1aWxkcyBjb21wbGV0ZSBrZXkgb2JqZWN0IChoYXNoICsgb3B0aW9uYWwgc29ydCkgZnJvbSBhbiBpdGVtLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRJdGVtS2V5T2JqZWN0KGl0ZW06IFQpOiBEeW5hbW9LZXkge1xuICAgICAgICBjb25zdCBwcmltYXJ5S2V5VmFsdWUgPSB0aGlzLmdldFByaW1hcnlLZXlWYWx1ZUZyb21JdGVtKGl0ZW0pO1xuICAgICAgICBjb25zdCBzb3J0S2V5VmFsdWUgPSB0aGlzLmdldFNvcnRLZXlWYWx1ZUZyb21JdGVtKGl0ZW0pO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRLZXlPYmplY3QocHJpbWFyeUtleVZhbHVlLCBzb3J0S2V5VmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlcmlhbGl6ZXMga2V5IG9iamVjdCBmb3Igc3RhYmxlIHNldC9tYXAgY29tcGFyaXNvbnMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHNlcmlhbGl6ZUtleShrZXk6IER5bmFtb0tleSk6IHN0cmluZyB7XG4gICAgICAgIGlmICghdGhpcy5zb3J0S2V5TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIGAke2tleVt0aGlzLnByaW1hcnlLZXlOYW1lXX1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgJHtrZXlbdGhpcy5wcmltYXJ5S2V5TmFtZV19IyR7a2V5W3RoaXMuc29ydEtleU5hbWVdfWA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyByZWNvcmQgYW5kIGF1dG9tYXRpY2FsbHkgc3RhbXBzIGNyZWF0ZWQgYXVkaXQgZmllbGRzLlxuICAgICAqL1xuICAgIGFzeW5jIHNhdmUoaXRlbTogVCwgYXV0aENvbnRleHQ/OiBBdXRoQ29udGV4dCk6IFByb21pc2U8VD4ge1xuICAgICAgICBjb25zdCBjcmVhdGVGbiA9IHRoaXMubW9kZWwuY3JlYXRlIGFzIENyZWF0ZUZuPFQ+O1xuICAgICAgICBjb25zdCBjcmVhdGVkID0gYXdhaXQgY3JlYXRlRm4oe1xuICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgIGNyZWF0ZWRfdGltZTogbmV3IERhdGUoKSxcbiAgICAgICAgICAgIGNyZWF0ZWRfdXNlcjogYXV0aENvbnRleHQ/LnVzZXJTdWJcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjcmVhdGVkIGFzIFQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyBhbiBleGlzdGluZyByZWNvcmQgYW5kIGF1dG9tYXRpY2FsbHkgc3RhbXBzIHVwZGF0ZWQgYXVkaXQgZmllbGRzLlxuICAgICAqL1xuICAgIGFzeW5jIHVwZGF0ZShwcmltYXJ5S2V5VmFsdWU6IHN0cmluZywgdXBkYXRlczogUGFydGlhbDxUPiwgYXV0aENvbnRleHQ/OiBBdXRoQ29udGV4dCwgc29ydEtleVZhbHVlPzogc3RyaW5nKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZUZuID0gdGhpcy5tb2RlbC51cGRhdGUgYXMgVXBkYXRlRm48VD47XG4gICAgICAgIGNvbnN0IHVwZGF0ZWQgPSBhd2FpdCB1cGRhdGVGbihcbiAgICAgICAgICAgIHRoaXMuZ2V0S2V5T2JqZWN0KHByaW1hcnlLZXlWYWx1ZSwgc29ydEtleVZhbHVlKSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi51cGRhdGVzLFxuICAgICAgICAgICAgICAgIHVwZGF0ZWRfdGltZTogbmV3IERhdGUoKSxcbiAgICAgICAgICAgICAgICB1cGRhdGVkX3VzZXI6IGF1dGhDb250ZXh0Py51c2VyU3ViXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB1cGRhdGVkIGFzIFQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZXRlcyBvbmUgcmVjb3JkIGJ5IHByaW1hcnkga2V5LlxuICAgICAqL1xuICAgIGFzeW5jIGRlbGV0ZShwcmltYXJ5S2V5VmFsdWU6IHN0cmluZywgc29ydEtleVZhbHVlPzogc3RyaW5nKTogUHJvbWlzZTxUIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGNvbnN0IGRlbGV0ZUZuID0gdGhpcy5tb2RlbC5kZWxldGUgYXMgRGVsZXRlRm47XG4gICAgICAgIGNvbnN0IGRlbGV0ZWQgPSBhd2FpdCBkZWxldGVGbih0aGlzLmdldEtleU9iamVjdChwcmltYXJ5S2V5VmFsdWUsIHNvcnRLZXlWYWx1ZSkpO1xuICAgICAgICByZXR1cm4gZGVsZXRlZCBhcyBUIHwgdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZldGNoZXMgb25lIHJlY29yZCBieSBwcmltYXJ5IGtleS4gUmV0dXJucyBudWxsIHdoZW4gbm90IGZvdW5kLlxuICAgICAqL1xuICAgIGFzeW5jIGdldChwcmltYXJ5S2V5VmFsdWU6IHN0cmluZywgc29ydEtleVZhbHVlPzogc3RyaW5nKTogUHJvbWlzZTxUIHwgbnVsbD4ge1xuICAgICAgICBjb25zdCBnZXRGbiA9IHRoaXMubW9kZWwuZ2V0IGFzIEdldEZuO1xuICAgICAgICBjb25zdCBpdGVtID0gYXdhaXQgZ2V0Rm4odGhpcy5nZXRLZXlPYmplY3QocHJpbWFyeUtleVZhbHVlLCBzb3J0S2V5VmFsdWUpKTtcbiAgICAgICAgcmV0dXJuIChpdGVtIGFzIFQgfCB1bmRlZmluZWQpID8/IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV3JpdGVzIG11bHRpcGxlIHJlY29yZHMgaW4gYSBiYXRjaCBhbmQgdGhyb3dzIGlmIGFueSBpdGVtIGlzIGxlZnQgdW5wcm9jZXNzZWQuXG4gICAgICovXG4gICAgYXN5bmMgYmF0Y2hTYXZlKGl0ZW1zOiBUW10sIGF1dGhDb250ZXh0PzogQXV0aENvbnRleHQpOiBQcm9taXNlPFRbXT4ge1xuICAgICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBjb25zdCBpbnB1dEl0ZW1zID0gaXRlbXMubWFwKChpdGVtKSA9PiAoe1xuICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgIGNyZWF0ZWRfdGltZTogbm93LFxuICAgICAgICAgICAgY3JlYXRlZF91c2VyOiBhdXRoQ29udGV4dD8udXNlclN1YlxuICAgICAgICB9KSkgYXMgVFtdO1xuXG4gICAgICAgIGNvbnN0IGJhdGNoUHV0Rm4gPSB0aGlzLm1vZGVsLmJhdGNoUHV0IGFzIEJhdGNoUHV0Rm48VD47XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGJhdGNoUHV0Rm4oaW5wdXRJdGVtcyk7XG4gICAgICAgIGlmIChyZXN1bHQudW5wcm9jZXNzZWRJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEJhdGNoIHNhdmUgcGFydGlhbGx5IGZhaWxlZC4gVW5wcm9jZXNzZWQgaXRlbXM6ICR7cmVzdWx0LnVucHJvY2Vzc2VkSXRlbXMubGVuZ3RofWApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlucHV0SXRlbXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBzZXJ0cyBtdWx0aXBsZSByZWNvcmRzIGJ5IHByaW1hcnkga2V5LlxuICAgICAqIE5ldyBrZXlzIGFyZSBjcmVhdGVkIChjcmVhdGVkXyogZmllbGRzKSwgZXhpc3Rpbmcga2V5cyBhcmUgdXBkYXRlZCAodXBkYXRlZF8qIGZpZWxkcykuXG4gICAgICovXG4gICAgYXN5bmMgYmF0Y2hVcHNlcnQoaXRlbXM6IFRbXSwgYXV0aENvbnRleHQ/OiBBdXRoQ29udGV4dCk6IFByb21pc2U8VFtdPiB7XG4gICAgICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGNvbnN0IGtleXMgPSBpdGVtcy5tYXAoKGl0ZW0pID0+IHRoaXMuZ2V0SXRlbUtleU9iamVjdChpdGVtKSk7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nSXRlbXMgPSBhd2FpdCB0aGlzLmJhdGNoR2V0QnlLZXlzKGtleXMpO1xuXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nS2V5U2V0ID0gbmV3IFNldChcbiAgICAgICAgICAgIGV4aXN0aW5nSXRlbXMubWFwKChpdGVtKSA9PiB0aGlzLnNlcmlhbGl6ZUtleSh0aGlzLmdldEl0ZW1LZXlPYmplY3QoaXRlbSkpKVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHVwc2VydEl0ZW1zID0gaXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpdGVtS2V5ID0gdGhpcy5nZXRJdGVtS2V5T2JqZWN0KGl0ZW0pO1xuICAgICAgICAgICAgaWYgKGV4aXN0aW5nS2V5U2V0Lmhhcyh0aGlzLnNlcmlhbGl6ZUtleShpdGVtS2V5KSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVkX3RpbWU6IG5vdyxcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlZF91c2VyOiBhdXRoQ29udGV4dD8udXNlclN1YlxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgICBjcmVhdGVkX3RpbWU6IG5vdyxcbiAgICAgICAgICAgICAgICBjcmVhdGVkX3VzZXI6IGF1dGhDb250ZXh0Py51c2VyU3ViXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KSBhcyBUW107XG5cbiAgICAgICAgY29uc3QgYmF0Y2hQdXRGbiA9IHRoaXMubW9kZWwuYmF0Y2hQdXQgYXMgQmF0Y2hQdXRGbjxUPjtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYmF0Y2hQdXRGbih1cHNlcnRJdGVtcyk7XG4gICAgICAgIGlmIChyZXN1bHQudW5wcm9jZXNzZWRJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEJhdGNoIHVwc2VydCBwYXJ0aWFsbHkgZmFpbGVkLiBVbnByb2Nlc3NlZCBpdGVtczogJHtyZXN1bHQudW5wcm9jZXNzZWRJdGVtcy5sZW5ndGh9YCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdXBzZXJ0SXRlbXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmV0Y2hlcyBtdWx0aXBsZSByZWNvcmRzIGJ5IHByaW1hcnkga2V5cy5cbiAgICAgKi9cbiAgICBhc3luYyBiYXRjaEdldChwcmltYXJ5S2V5VmFsdWVzOiBzdHJpbmdbXSk6IFByb21pc2U8VFtdPiB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBwcmltYXJ5S2V5VmFsdWVzLm1hcCgodmFsdWUpID0+IHRoaXMuZ2V0S2V5T2JqZWN0KHZhbHVlKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmJhdGNoR2V0QnlLZXlzKGtleXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZldGNoZXMgbXVsdGlwbGUgcmVjb3JkcyBieSBrZXkgb2JqZWN0cyAoc3VwcG9ydHMgaGFzaCArIG9wdGlvbmFsIHNvcnQga2V5KS5cbiAgICAgKi9cbiAgICBhc3luYyBiYXRjaEdldEJ5S2V5cyhrZXlzOiBEeW5hbW9LZXlbXSk6IFByb21pc2U8VFtdPiB7XG4gICAgICAgIGNvbnN0IGJhdGNoR2V0Rm4gPSB0aGlzLm1vZGVsLmJhdGNoR2V0IGFzIEJhdGNoR2V0Rm47XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gYXdhaXQgYmF0Y2hHZXRGbihrZXlzKTtcbiAgICAgICAgcmV0dXJuIGl0ZW1zIGFzIFRbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWNvZGVzIGEgYmFzZTY0IGNvbnRpbnVhdGlvbiB0b2tlbiBpbnRvIER5bmFtb0RCIGxhc3QgZXZhbHVhdGVkIGtleS5cbiAgICAgKi9cbiAgICBkZWNvZGUoY29udGludWF0aW9uVG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZCk6IER5bmFtb0tleSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICghY29udGludWF0aW9uVG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoQnVmZmVyLmZyb20oY29udGludWF0aW9uVG9rZW4sIFwiYmFzZTY0XCIpLnRvU3RyaW5nKFwidXRmOFwiKSkgYXMgRHluYW1vS2V5O1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBjb250aW51YXRpb25Ub2tlblwiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVuY29kZXMgRHluYW1vREIgbGFzdCBldmFsdWF0ZWQga2V5IGludG8gYSBiYXNlNjQgY29udGludWF0aW9uIHRva2VuLlxuICAgICAqL1xuICAgIGFzeW5jIGVuY29kZShsYXN0RXZhbHVhdGVkS2V5OiBEeW5hbW9LZXkgfCB1bmRlZmluZWQpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBpZiAoIWxhc3RFdmFsdWF0ZWRLZXkpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkobGFzdEV2YWx1YXRlZEtleSkpLnRvU3RyaW5nKFwiYmFzZTY0XCIpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,13 +1,20 @@
1
+ import { Item } from "dynamoose/dist/Item";
1
2
  /**
2
- * Shared audit fields for Dynamoose entities.
3
- * Extend this interface in module-specific model interfaces.
3
+ * Shared audit fields contract for Dynamoose entities.
4
+ * Combine with `Item` so module models satisfy Dynamoose generic constraints.
4
5
  */
5
- export interface BaseDynamooseModel {
6
+ export interface BaseDynamooseFields {
6
7
  created_time?: Date;
7
8
  updated_time?: Date;
8
9
  created_user?: string;
9
10
  updated_user?: string;
10
11
  }
12
+ /**
13
+ * Base Dynamoose model that all module models should extend.
14
+ * Provides Dynamoose Item methods plus shared audit fields.
15
+ */
16
+ export interface BaseDynamooseModel extends Item, BaseDynamooseFields {
17
+ }
11
18
  /**
12
19
  * Reusable runtime schema fragment for audit fields.
13
20
  * Spread this into Dynamoose schema definitions to avoid duplication.
@@ -11,4 +11,4 @@ exports.BASE_DYNAMOOSE_AUDIT_SCHEMA = {
11
11
  created_user: String,
12
12
  updated_user: String
13
13
  };
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1keW5hbW9vc2UtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYmFzZS1keW5hbW9vc2UtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBV0E7OztHQUdHO0FBQ1UsUUFBQSwyQkFBMkIsR0FBRztJQUN2QyxZQUFZLEVBQUUsSUFBSTtJQUNsQixZQUFZLEVBQUUsSUFBSTtJQUNsQixZQUFZLEVBQUUsTUFBTTtJQUNwQixZQUFZLEVBQUUsTUFBTTtDQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNoYXJlZCBhdWRpdCBmaWVsZHMgZm9yIER5bmFtb29zZSBlbnRpdGllcy5cbiAqIEV4dGVuZCB0aGlzIGludGVyZmFjZSBpbiBtb2R1bGUtc3BlY2lmaWMgbW9kZWwgaW50ZXJmYWNlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlRHluYW1vb3NlTW9kZWwge1xuICAgIGNyZWF0ZWRfdGltZT86IERhdGU7XG4gICAgdXBkYXRlZF90aW1lPzogRGF0ZTtcbiAgICBjcmVhdGVkX3VzZXI/OiBzdHJpbmc7XG4gICAgdXBkYXRlZF91c2VyPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJldXNhYmxlIHJ1bnRpbWUgc2NoZW1hIGZyYWdtZW50IGZvciBhdWRpdCBmaWVsZHMuXG4gKiBTcHJlYWQgdGhpcyBpbnRvIER5bmFtb29zZSBzY2hlbWEgZGVmaW5pdGlvbnMgdG8gYXZvaWQgZHVwbGljYXRpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBCQVNFX0RZTkFNT09TRV9BVURJVF9TQ0hFTUEgPSB7XG4gICAgY3JlYXRlZF90aW1lOiBEYXRlLFxuICAgIHVwZGF0ZWRfdGltZTogRGF0ZSxcbiAgICBjcmVhdGVkX3VzZXI6IFN0cmluZyxcbiAgICB1cGRhdGVkX3VzZXI6IFN0cmluZ1xufSBhcyBjb25zdDtcblxuLyoqXG4gKiBBdXRoIHBheWxvYWQgdXNlZCBieSBEQU8gbWV0aG9kcyBmb3IgYXVkaXQgc3RhbXBpbmcuXG4gKi9cbmV4cG9ydCB0eXBlIEF1dGhDb250ZXh0ID0ge1xuICAgIHVzZXJTdWI/OiBzdHJpbmc7XG59O1xuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1keW5hbW9vc2UtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYmFzZS1keW5hbW9vc2UtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBbUJBOzs7R0FHRztBQUNVLFFBQUEsMkJBQTJCLEdBQUc7SUFDdkMsWUFBWSxFQUFFLElBQUk7SUFDbEIsWUFBWSxFQUFFLElBQUk7SUFDbEIsWUFBWSxFQUFFLE1BQU07SUFDcEIsWUFBWSxFQUFFLE1BQU07Q0FDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSXRlbSB9IGZyb20gXCJkeW5hbW9vc2UvZGlzdC9JdGVtXCI7XG5cbi8qKlxuICogU2hhcmVkIGF1ZGl0IGZpZWxkcyBjb250cmFjdCBmb3IgRHluYW1vb3NlIGVudGl0aWVzLlxuICogQ29tYmluZSB3aXRoIGBJdGVtYCBzbyBtb2R1bGUgbW9kZWxzIHNhdGlzZnkgRHluYW1vb3NlIGdlbmVyaWMgY29uc3RyYWludHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUR5bmFtb29zZUZpZWxkcyB7XG4gICAgY3JlYXRlZF90aW1lPzogRGF0ZTtcbiAgICB1cGRhdGVkX3RpbWU/OiBEYXRlO1xuICAgIGNyZWF0ZWRfdXNlcj86IHN0cmluZztcbiAgICB1cGRhdGVkX3VzZXI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQmFzZSBEeW5hbW9vc2UgbW9kZWwgdGhhdCBhbGwgbW9kdWxlIG1vZGVscyBzaG91bGQgZXh0ZW5kLlxuICogUHJvdmlkZXMgRHluYW1vb3NlIEl0ZW0gbWV0aG9kcyBwbHVzIHNoYXJlZCBhdWRpdCBmaWVsZHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUR5bmFtb29zZU1vZGVsIGV4dGVuZHMgSXRlbSwgQmFzZUR5bmFtb29zZUZpZWxkcyB7IH1cblxuLyoqXG4gKiBSZXVzYWJsZSBydW50aW1lIHNjaGVtYSBmcmFnbWVudCBmb3IgYXVkaXQgZmllbGRzLlxuICogU3ByZWFkIHRoaXMgaW50byBEeW5hbW9vc2Ugc2NoZW1hIGRlZmluaXRpb25zIHRvIGF2b2lkIGR1cGxpY2F0aW9uLlxuICovXG5leHBvcnQgY29uc3QgQkFTRV9EWU5BTU9PU0VfQVVESVRfU0NIRU1BID0ge1xuICAgIGNyZWF0ZWRfdGltZTogRGF0ZSxcbiAgICB1cGRhdGVkX3RpbWU6IERhdGUsXG4gICAgY3JlYXRlZF91c2VyOiBTdHJpbmcsXG4gICAgdXBkYXRlZF91c2VyOiBTdHJpbmdcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogQXV0aCBwYXlsb2FkIHVzZWQgYnkgREFPIG1ldGhvZHMgZm9yIGF1ZGl0IHN0YW1waW5nLlxuICovXG5leHBvcnQgdHlwZSBBdXRoQ29udGV4dCA9IHtcbiAgICB1c2VyU3ViPzogc3RyaW5nO1xufTtcbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { GenericDynamooseDAO } from "../../base-dynamoose-dao";
2
2
  import { AuthContext } from "../../base-dynamoose-model";
3
- import { CreatePlatterFitInput, PlatterFit } from "./platter-fit-model";
3
+ import { PlatterFit } from "./platter-fit-model";
4
4
  type ListResult = {
5
5
  items: PlatterFit[];
6
6
  nextToken?: string;
@@ -14,7 +14,7 @@ declare class PlatterFitDao extends GenericDynamooseDAO<PlatterFit> {
14
14
  * Creates one platter-fit record.
15
15
  * If platterFitId is not passed, Dynamoose auto-generates it from schema default.
16
16
  */
17
- save: (item: CreatePlatterFitInput, authContext?: AuthContext) => Promise<PlatterFit>;
17
+ save: (item: PlatterFit, authContext?: AuthContext) => Promise<PlatterFit>;
18
18
  /**
19
19
  * Updates one platter-fit record by id with conditional existence check.
20
20
  */
@@ -76,7 +76,7 @@ class PlatterFitDao extends base_dynamoose_dao_1.GenericDynamooseDAO {
76
76
  }
77
77
  const queryResult = await queryBuilder.exec();
78
78
  return {
79
- items: queryResult.map((item) => ({ ...item })),
79
+ items: queryResult,
80
80
  nextToken: await this.encode(queryResult.lastKey)
81
81
  };
82
82
  };
@@ -97,11 +97,11 @@ class PlatterFitDao extends base_dynamoose_dao_1.GenericDynamooseDAO {
97
97
  }
98
98
  const queryResult = await queryBuilder.exec();
99
99
  return {
100
- items: queryResult.map((item) => ({ ...item })),
100
+ items: queryResult,
101
101
  nextToken: await this.encode(queryResult.lastKey)
102
102
  };
103
103
  };
104
104
  }
105
105
  }
106
106
  exports.platterFitDao = new PlatterFitDao();
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdHRlci1maXQtZGFvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2N1c3RvbWVyLXVzZXIvcGxhdHRlci1maXQtbW9kdWxlL3BsYXR0ZXItZml0LWRhby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwREFBa0M7QUFDbEMsaUVBQTBFO0FBRTFFLDJEQUF5RjtBQU96RixNQUFNLGFBQWMsU0FBUSx3Q0FBK0I7SUFDdkQ7O09BRUc7SUFDSDtRQUNJLEtBQUssQ0FBQyxtQ0FBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRzNDOzs7V0FHRztRQUNILFNBQUksR0FBRyxLQUFLLEVBQUUsSUFBMkIsRUFBRSxXQUF5QixFQUF1QixFQUFFO1lBQ3pGLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFrQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQztRQUVGOztXQUVHO1FBQ0gsV0FBTSxHQUFHLEtBQUssRUFDVixZQUFvQixFQUNwQixPQUE0QixFQUM1QixXQUF5QixFQUNOLEVBQUU7WUFDckIsTUFBTSxPQUFPLEdBQUcsTUFBTSxtQ0FBZSxDQUFDLE1BQU0sQ0FDeEMsRUFBRSxZQUFZLEVBQUUsRUFDaEI7Z0JBQ0ksR0FBRyxPQUFPO2dCQUNWLFlBQVksRUFBRSxJQUFJLElBQUksRUFBRTtnQkFDeEIsWUFBWSxFQUFFLFdBQVcsRUFBRSxPQUFPO2FBQ3JDLEVBQ0Q7Z0JBQ0ksU0FBUyxFQUFFLElBQUksbUJBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQzthQUM5RSxDQUNKLENBQUM7WUFDRixPQUFPLEVBQUUsR0FBSSxPQUFrQixFQUFnQixDQUFDO1FBQ3BELENBQUMsQ0FBQztRQUVGOztXQUVHO1FBQ0gsWUFBTyxHQUFHLEtBQUssRUFBRSxZQUFvQixFQUE4QixFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FB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Q0FBQztZQUM3QyxDQUFDO1lBRUQsTUFBTSxXQUFXLEdBQUcsTUFBTSxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFOUMsT0FBTztnQkFDSCxLQUFLLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksSUFBZSxFQUFpQixDQUFBLENBQUM7Z0JBQ3pFLFNBQVMsRUFBRSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQWdDLENBQUM7YUFDN0UsQ0FBQztRQUNOLENBQUMsQ0FBQztJQS9HRixDQUFDO0NBZ0hKO0FBRVksUUFBQSxhQUFhLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkeW5hbW9vc2UgZnJvbSBcImR5bmFtb29zZVwiO1xuaW1wb3J0IHsgRHluYW1vS2V5LCBHZW5lcmljRHluYW1vb3NlREFPIH0gZnJvbSBcIi4uLy4uL2Jhc2UtZHluYW1vb3NlLWRhb1wiO1xuaW1wb3J0IHsgQXV0aENvbnRleHQgfSBmcm9tIFwiLi4vLi4vYmFzZS1keW5hbW9vc2UtbW9kZWxcIjtcbmltcG9ydCB7IENyZWF0ZVBsYXR0ZXJGaXRJbnB1dCwgUGxhdHRlckZpdCwgUGxhdHRlckZpdE1vZGVsIH0gZnJvbSBcIi4vcGxhdHRlci1maXQtbW9kZWxcIjtcblxudHlwZSBMaXN0UmVzdWx0ID0ge1xuICAgIGl0ZW1zOiBQbGF0dGVyRml0W107XG4gICAgbmV4dFRva2VuPzogc3RyaW5nO1xufTtcblxuY2xhc3MgUGxhdHRlckZpdERhbyBleHRlbmRzIEdlbmVyaWNEeW5hbW9vc2VEQU88UGxhdHRlckZpdD4ge1xuICAgIC8qKlxuICAgICAqIENvbm5lY3RzIHBsYXR0ZXItZml0IERBTyB0byB0aGUgdGFibGUgbW9kZWwgYW5kIGl0cyBwcmltYXJ5IGtleS5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoUGxhdHRlckZpdE1vZGVsLCBcInBsYXR0ZXJGaXRJZFwiKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIG9uZSBwbGF0dGVyLWZpdCByZWNvcmQuXG4gICAgICogSWYgcGxhdHRlckZpdElkIGlzIG5vdCBwYXNzZWQsIER5bmFtb29zZSBhdXRvLWdlbmVyYXRlcyBpdCBmcm9tIHNjaGVtYSBkZWZhdWx0LlxuICAgICAqL1xuICAgIHNhdmUgPSBhc3luYyAoaXRlbTogQ3JlYXRlUGxhdHRlckZpdElucHV0LCBhdXRoQ29udGV4dD86IEF1dGhDb250ZXh0KTogUHJvbWlzZTxQbGF0dGVyRml0PiA9PiB7XG4gICAgICAgIHJldHVybiBzdXBlci5zYXZlKGl0ZW0gYXMgUGxhdHRlckZpdCwgYXV0aENvbnRleHQpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIG9uZSBwbGF0dGVyLWZpdCByZWNvcmQgYnkgaWQgd2l0aCBjb25kaXRpb25hbCBleGlzdGVuY2UgY2hlY2suXG4gICAgICovXG4gICAgdXBkYXRlID0gYXN5bmMgKFxuICAgICAgICBwbGF0dGVyRml0SWQ6IHN0cmluZyxcbiAgICAgICAgdXBkYXRlczogUGFydGlhbDxQbGF0dGVyRml0PixcbiAgICAgICAgYXV0aENvbnRleHQ/OiBBdXRoQ29udGV4dFxuICAgICk6IFByb21pc2U8UGxhdHRlckZpdD4gPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVkID0gYXdhaXQgUGxhdHRlckZpdE1vZGVsLnVwZGF0ZShcbiAgICAgICAgICAgIHsgcGxhdHRlckZpdElkIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4udXBkYXRlcyxcbiAgICAgICAgICAgICAgICB1cGRhdGVkX3RpbWU6IG5ldyBEYXRlKCksXG4gICAgICAgICAgICAgICAgdXBkYXRlZF91c2VyOiBhdXRoQ29udGV4dD8udXNlclN1YlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25kaXRpb246IG5ldyBkeW5hbW9vc2UuQ29uZGl0aW9uKCkud2hlcmUoXCJwbGF0dGVyRml0SWRcIikuZXEocGxhdHRlckZpdElkKVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4geyAuLi4odXBkYXRlZCBhcyBvYmplY3QpIH0gYXMgUGxhdHRlckZpdDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBvbmUgcGxhdHRlci1maXQgcmVjb3JkIGJ5IHByaW1hcnkga2V5LlxuICAgICAqL1xuICAgIGdldEJ5SWQgPSBhc3luYyAocGxhdHRlckZpdElkOiBzdHJpbmcpOiBQcm9taXNlPFBsYXR0ZXJGaXQgfCBudWxsPiA9PiB0aGlzLmdldChwbGF0dGVyRml0SWQpO1xuXG4gICAgLyoqXG4gICAgICogTGlzdHMgcmVjb3JkcyBieSBzdGF0dXMgdXNpbmcgdG9rZW4tYmFzZWQgcGFnaW5hdGlvbi5cbiAgICAgKiBQYXNzIHJldHVybmVkIG5leHRUb2tlbiBpbiB0aGUgbmV4dCBjYWxsIHRvIGNvbnRpbnVlLlxuICAgICAqL1xuICAgIGxpc3RCeVN0YXR1cyA9IGFzeW5jIChzdGF0dXM6IHN0cmluZywgbGltaXQ/OiBudW1iZXIsIHRva2VuPzogc3RyaW5nKTogUHJvbWlzZTxMaXN0UmVzdWx0PiA9PiB7XG4gICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IHRoaXMuZGVjb2RlKHRva2VuKTtcbiAgICAgICAgbGV0IHF1ZXJ5QnVpbGRlciA9IFBsYXR0ZXJGaXRNb2RlbFxuICAgICAgICAgICAgLnF1ZXJ5KFwic3RhdHVzXCIpXG4gICAgICAgICAgICAuZXEoc3RhdHVzKVxuICAgICAgICAgICAgLnVzaW5nKFwic3RhdHVzSW5kZXhcIik7XG4gICAgICAgIGlmIChkZWNvZGVkVG9rZW4pIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5zdGFydEF0KGRlY29kZWRUb2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBsaW1pdCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcXVlcnlCdWlsZGVyID0gcXVlcnlCdWlsZGVyLmxpbWl0KGxpbWl0KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBxdWVyeVJlc3VsdCA9IGF3YWl0IHF1ZXJ5QnVpbGRlci5leGVjKCk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGl0ZW1zOiBxdWVyeVJlc3VsdC5tYXAoKGl0ZW0pID0+ICh7IC4uLihpdGVtIGFzIG9iamVjdCkgfSBhcyBQbGF0dGVyRml0KSksXG4gICAgICAgICAgICBuZXh0VG9rZW46IGF3YWl0IHRoaXMuZW5jb2RlKHF1ZXJ5UmVzdWx0Lmxhc3RLZXkgYXMgRHluYW1vS2V5IHwgdW5kZWZpbmVkKVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMaXN0cyByZWNvcmRzIGJ5IG9jY2FzaW9uVHlwZSB1c2luZyB0b2tlbi1iYXNlZCBwYWdpbmF0aW9uLlxuICAgICAqL1xuICAgIGxpc3RCeU9jY2FzaW9uVHlwZSA9IGFzeW5jIChvY2Nhc2lvblR5cGU6IHN0cmluZywgbGltaXQ/OiBudW1iZXIsIHRva2VuPzogc3RyaW5nKTogUHJvbWlzZTxMaXN0UmVzdWx0PiA9PiB7XG4gICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IHRoaXMuZGVjb2RlKHRva2VuKTtcbiAgICAgICAgbGV0IHF1ZXJ5QnVpbGRlciA9IFBsYXR0ZXJGaXRNb2RlbFxuICAgICAgICAgICAgLnF1ZXJ5KFwib2NjYXNpb25UeXBlXCIpXG4gICAgICAgICAgICAuZXEob2NjYXNpb25UeXBlKVxuICAgICAgICAgICAgLnVzaW5nKFwib2NjYXNpb25UeXBlSW5kZXhcIik7XG5cbiAgICAgICAgaWYgKGRlY29kZWRUb2tlbikge1xuICAgICAgICAgICAgcXVlcnlCdWlsZGVyID0gcXVlcnlCdWlsZGVyLnN0YXJ0QXQoZGVjb2RlZFRva2VuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgbGltaXQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5saW1pdChsaW1pdCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBxdWVyeVJlc3VsdCA9IGF3YWl0IHF1ZXJ5QnVpbGRlci5leGVjKCk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGl0ZW1zOiBxdWVyeVJlc3VsdC5tYXAoKGl0ZW0pID0+ICh7IC4uLihpdGVtIGFzIG9iamVjdCkgfSBhcyBQbGF0dGVyRml0KSksXG4gICAgICAgICAgICBuZXh0VG9rZW46IGF3YWl0IHRoaXMuZW5jb2RlKHF1ZXJ5UmVzdWx0Lmxhc3RLZXkgYXMgRHluYW1vS2V5IHwgdW5kZWZpbmVkKVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMaXN0cyByZWNvcmRzIGJ5IHBsYXR0ZXJJZCB1c2luZyB0b2tlbi1iYXNlZCBwYWdpbmF0aW9uLlxuICAgICAqL1xuICAgIGxpc3RCeVBsYXR0ZXJJZCA9IGFzeW5jIChwbGF0dGVySWQ6IHN0cmluZywgbGltaXQ/OiBudW1iZXIsIHRva2VuPzogc3RyaW5nKTogUHJvbWlzZTxMaXN0UmVzdWx0PiA9PiB7XG4gICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IHRoaXMuZGVjb2RlKHRva2VuKTtcbiAgICAgICAgbGV0IHF1ZXJ5QnVpbGRlciA9IFBsYXR0ZXJGaXRNb2RlbFxuICAgICAgICAgICAgLnF1ZXJ5KFwicGxhdHRlcklkXCIpXG4gICAgICAgICAgICAuZXEocGxhdHRlcklkKVxuICAgICAgICAgICAgLnVzaW5nKFwicGxhdHRlcklkSW5kZXhcIik7XG5cbiAgICAgICAgaWYgKGRlY29kZWRUb2tlbikge1xuICAgICAgICAgICAgcXVlcnlCdWlsZGVyID0gcXVlcnlCdWlsZGVyLnN0YXJ0QXQoZGVjb2RlZFRva2VuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgbGltaXQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5saW1pdChsaW1pdCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBxdWVyeVJlc3VsdCA9IGF3YWl0IHF1ZXJ5QnVpbGRlci5leGVjKCk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGl0ZW1zOiBxdWVyeVJlc3VsdC5tYXAoKGl0ZW0pID0+ICh7IC4uLihpdGVtIGFzIG9iamVjdCkgfSBhcyBQbGF0dGVyRml0KSksXG4gICAgICAgICAgICBuZXh0VG9rZW46IGF3YWl0IHRoaXMuZW5jb2RlKHF1ZXJ5UmVzdWx0Lmxhc3RLZXkgYXMgRHluYW1vS2V5IHwgdW5kZWZpbmVkKVxuICAgICAgICB9O1xuICAgIH07XG59XG5cbmV4cG9ydCBjb25zdCBwbGF0dGVyRml0RGFvID0gbmV3IFBsYXR0ZXJGaXREYW8oKTtcbiJdfQ==
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdHRlci1maXQtZGFvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2N1c3RvbWVyLXVzZXIvcGxhdHRlci1maXQtbW9kdWxlL3BsYXR0ZXItZml0LWRhby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwREFBa0M7QUFDbEMsaUVBQTBFO0FBRTFFLDJEQUFrRTtBQU9sRSxNQUFNLGFBQWMsU0FBUSx3Q0FBK0I7SUFDdkQ7O09BRUc7SUFDSDtRQUNJLEtBQUssQ0FBQyxtQ0FBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRzNDOzs7V0FHRztRQUNILFNBQUksR0FBRyxLQUFLLEVBQUUsSUFBZ0IsRUFBRSxXQUF5QixFQUF1QixFQUFFO1lBQzlFLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDO1FBRUY7O1dBRUc7UUFDSCxXQUFNLEdBQUcsS0FBSyxFQUNWLFlBQW9CLEVBQ3BCLE9BQTRCLEVBQzVCLFdBQXlCLEVBQ04sRUFBRTtZQUNyQixNQUFNLE9BQU8sR0FBRyxNQUFNLG1DQUFlLENBQUMsTUFBTSxDQUN4QyxFQUFFLFlBQVksRUFBRSxFQUNoQjtnQkFDSSxHQUFHLE9BQU87Z0JBQ1YsWUFBWSxFQUFFLElBQUksSUFBSSxFQUFFO2dCQUN4QixZQUFZLEVBQUUsV0FBVyxFQUFFLE9BQU87YUFDckMsRUFDRDtnQkFDSSxTQUFTLEVBQUUsSUFBSSxtQkFBUyxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDO2FBQzlFLENBQ0osQ0FBQztZQUNGLE9BQU8sRUFBRSxHQUFJLE9BQWtCLEVBQWdCLENBQUM7UUFDcEQsQ0FBQyxDQUFDO1FBRUY7O1dBRUc7UUFDSCxZQUFPLEdBQUcsS0FBSyxFQUFFLFlBQW9CLEVBQThCLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFD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O2dCQUNILEtBQUssRUFBRSxXQUFXO2dCQUNsQixTQUFTLEVBQUUsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFnQyxDQUFDO2FBQzdFLENBQUM7UUFDTixDQUFDLENBQUM7SUEvR0YsQ0FBQztDQWdISjtBQUVZLFFBQUEsYUFBYSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZHluYW1vb3NlIGZyb20gXCJkeW5hbW9vc2VcIjtcbmltcG9ydCB7IER5bmFtb0tleSwgR2VuZXJpY0R5bmFtb29zZURBTyB9IGZyb20gXCIuLi8uLi9iYXNlLWR5bmFtb29zZS1kYW9cIjtcbmltcG9ydCB7IEF1dGhDb250ZXh0IH0gZnJvbSBcIi4uLy4uL2Jhc2UtZHluYW1vb3NlLW1vZGVsXCI7XG5pbXBvcnQgeyBQbGF0dGVyRml0LCBQbGF0dGVyRml0TW9kZWwgfSBmcm9tIFwiLi9wbGF0dGVyLWZpdC1tb2RlbFwiO1xuXG50eXBlIExpc3RSZXN1bHQgPSB7XG4gICAgaXRlbXM6IFBsYXR0ZXJGaXRbXTtcbiAgICBuZXh0VG9rZW4/OiBzdHJpbmc7XG59O1xuXG5jbGFzcyBQbGF0dGVyRml0RGFvIGV4dGVuZHMgR2VuZXJpY0R5bmFtb29zZURBTzxQbGF0dGVyRml0PiB7XG4gICAgLyoqXG4gICAgICogQ29ubmVjdHMgcGxhdHRlci1maXQgREFPIHRvIHRoZSB0YWJsZSBtb2RlbCBhbmQgaXRzIHByaW1hcnkga2V5LlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihQbGF0dGVyRml0TW9kZWwsIFwicGxhdHRlckZpdElkXCIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgb25lIHBsYXR0ZXItZml0IHJlY29yZC5cbiAgICAgKiBJZiBwbGF0dGVyRml0SWQgaXMgbm90IHBhc3NlZCwgRHluYW1vb3NlIGF1dG8tZ2VuZXJhdGVzIGl0IGZyb20gc2NoZW1hIGRlZmF1bHQuXG4gICAgICovXG4gICAgc2F2ZSA9IGFzeW5jIChpdGVtOiBQbGF0dGVyRml0LCBhdXRoQ29udGV4dD86IEF1dGhDb250ZXh0KTogUHJvbWlzZTxQbGF0dGVyRml0PiA9PiB7XG4gICAgICAgIHJldHVybiBzdXBlci5zYXZlKGl0ZW0sIGF1dGhDb250ZXh0KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyBvbmUgcGxhdHRlci1maXQgcmVjb3JkIGJ5IGlkIHdpdGggY29uZGl0aW9uYWwgZXhpc3RlbmNlIGNoZWNrLlxuICAgICAqL1xuICAgIHVwZGF0ZSA9IGFzeW5jIChcbiAgICAgICAgcGxhdHRlckZpdElkOiBzdHJpbmcsXG4gICAgICAgIHVwZGF0ZXM6IFBhcnRpYWw8UGxhdHRlckZpdD4sXG4gICAgICAgIGF1dGhDb250ZXh0PzogQXV0aENvbnRleHRcbiAgICApOiBQcm9taXNlPFBsYXR0ZXJGaXQ+ID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlZCA9IGF3YWl0IFBsYXR0ZXJGaXRNb2RlbC51cGRhdGUoXG4gICAgICAgICAgICB7IHBsYXR0ZXJGaXRJZCB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC4uLnVwZGF0ZXMsXG4gICAgICAgICAgICAgICAgdXBkYXRlZF90aW1lOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgICAgICAgIHVwZGF0ZWRfdXNlcjogYXV0aENvbnRleHQ/LnVzZXJTdWJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uZGl0aW9uOiBuZXcgZHluYW1vb3NlLkNvbmRpdGlvbigpLndoZXJlKFwicGxhdHRlckZpdElkXCIpLmVxKHBsYXR0ZXJGaXRJZClcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHsgLi4uKHVwZGF0ZWQgYXMgb2JqZWN0KSB9IGFzIFBsYXR0ZXJGaXQ7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgb25lIHBsYXR0ZXItZml0IHJlY29yZCBieSBwcmltYXJ5IGtleS5cbiAgICAgKi9cbiAgICBnZXRCeUlkID0gYXN5bmMgKHBsYXR0ZXJGaXRJZDogc3RyaW5nKTogUHJvbWlzZTxQbGF0dGVyRml0IHwgbnVsbD4gPT4gdGhpcy5nZXQocGxhdHRlckZpdElkKTtcblxuICAgIC8qKlxuICAgICAqIExpc3RzIHJlY29yZHMgYnkgc3RhdHVzIHVzaW5nIHRva2VuLWJhc2VkIHBhZ2luYXRpb24uXG4gICAgICogUGFzcyByZXR1cm5lZCBuZXh0VG9rZW4gaW4gdGhlIG5leHQgY2FsbCB0byBjb250aW51ZS5cbiAgICAgKi9cbiAgICBsaXN0QnlTdGF0dXMgPSBhc3luYyAoc3RhdHVzOiBzdHJpbmcsIGxpbWl0PzogbnVtYmVyLCB0b2tlbj86IHN0cmluZyk6IFByb21pc2U8TGlzdFJlc3VsdD4gPT4ge1xuICAgICAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSB0aGlzLmRlY29kZSh0b2tlbik7XG4gICAgICAgIGxldCBxdWVyeUJ1aWxkZXIgPSBQbGF0dGVyRml0TW9kZWxcbiAgICAgICAgICAgIC5xdWVyeShcInN0YXR1c1wiKVxuICAgICAgICAgICAgLmVxKHN0YXR1cylcbiAgICAgICAgICAgIC51c2luZyhcInN0YXR1c0luZGV4XCIpO1xuICAgICAgICBpZiAoZGVjb2RlZFRva2VuKSB7XG4gICAgICAgICAgICBxdWVyeUJ1aWxkZXIgPSBxdWVyeUJ1aWxkZXIuc3RhcnRBdChkZWNvZGVkVG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbGltaXQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5saW1pdChsaW1pdCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcXVlcnlSZXN1bHQgPSBhd2FpdCBxdWVyeUJ1aWxkZXIuZXhlYygpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpdGVtczogcXVlcnlSZXN1bHQubWFwKChpdGVtKSA9PiAoeyAuLi4oaXRlbSBhcyBvYmplY3QpIH0gYXMgUGxhdHRlckZpdCkpLFxuICAgICAgICAgICAgbmV4dFRva2VuOiBhd2FpdCB0aGlzLmVuY29kZShxdWVyeVJlc3VsdC5sYXN0S2V5IGFzIER5bmFtb0tleSB8IHVuZGVmaW5lZClcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTGlzdHMgcmVjb3JkcyBieSBvY2Nhc2lvblR5cGUgdXNpbmcgdG9rZW4tYmFzZWQgcGFnaW5hdGlvbi5cbiAgICAgKi9cbiAgICBsaXN0QnlPY2Nhc2lvblR5cGUgPSBhc3luYyAob2NjYXNpb25UeXBlOiBzdHJpbmcsIGxpbWl0PzogbnVtYmVyLCB0b2tlbj86IHN0cmluZyk6IFByb21pc2U8TGlzdFJlc3VsdD4gPT4ge1xuICAgICAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSB0aGlzLmRlY29kZSh0b2tlbik7XG4gICAgICAgIGxldCBxdWVyeUJ1aWxkZXIgPSBQbGF0dGVyRml0TW9kZWxcbiAgICAgICAgICAgIC5xdWVyeShcIm9jY2FzaW9uVHlwZVwiKVxuICAgICAgICAgICAgLmVxKG9jY2FzaW9uVHlwZSlcbiAgICAgICAgICAgIC51c2luZyhcIm9jY2FzaW9uVHlwZUluZGV4XCIpO1xuXG4gICAgICAgIGlmIChkZWNvZGVkVG9rZW4pIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5zdGFydEF0KGRlY29kZWRUb2tlbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGxpbWl0ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICBxdWVyeUJ1aWxkZXIgPSBxdWVyeUJ1aWxkZXIubGltaXQobGltaXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcXVlcnlSZXN1bHQgPSBhd2FpdCBxdWVyeUJ1aWxkZXIuZXhlYygpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpdGVtczogcXVlcnlSZXN1bHQgYXMgUGxhdHRlckZpdFtdLFxuICAgICAgICAgICAgbmV4dFRva2VuOiBhd2FpdCB0aGlzLmVuY29kZShxdWVyeVJlc3VsdC5sYXN0S2V5IGFzIER5bmFtb0tleSB8IHVuZGVmaW5lZClcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTGlzdHMgcmVjb3JkcyBieSBwbGF0dGVySWQgdXNpbmcgdG9rZW4tYmFzZWQgcGFnaW5hdGlvbi5cbiAgICAgKi9cbiAgICBsaXN0QnlQbGF0dGVySWQgPSBhc3luYyAocGxhdHRlcklkOiBzdHJpbmcsIGxpbWl0PzogbnVtYmVyLCB0b2tlbj86IHN0cmluZyk6IFByb21pc2U8TGlzdFJlc3VsdD4gPT4ge1xuICAgICAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSB0aGlzLmRlY29kZSh0b2tlbik7XG4gICAgICAgIGxldCBxdWVyeUJ1aWxkZXIgPSBQbGF0dGVyRml0TW9kZWxcbiAgICAgICAgICAgIC5xdWVyeShcInBsYXR0ZXJJZFwiKVxuICAgICAgICAgICAgLmVxKHBsYXR0ZXJJZClcbiAgICAgICAgICAgIC51c2luZyhcInBsYXR0ZXJJZEluZGV4XCIpO1xuXG4gICAgICAgIGlmIChkZWNvZGVkVG9rZW4pIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5zdGFydEF0KGRlY29kZWRUb2tlbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGxpbWl0ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICBxdWVyeUJ1aWxkZXIgPSBxdWVyeUJ1aWxkZXIubGltaXQobGltaXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcXVlcnlSZXN1bHQgPSBhd2FpdCBxdWVyeUJ1aWxkZXIuZXhlYygpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpdGVtczogcXVlcnlSZXN1bHQsXG4gICAgICAgICAgICBuZXh0VG9rZW46IGF3YWl0IHRoaXMuZW5jb2RlKHF1ZXJ5UmVzdWx0Lmxhc3RLZXkgYXMgRHluYW1vS2V5IHwgdW5kZWZpbmVkKVxuICAgICAgICB9O1xuICAgIH07XG59XG5cbmV4cG9ydCBjb25zdCBwbGF0dGVyRml0RGFvID0gbmV3IFBsYXR0ZXJGaXREYW8oKTtcbiJdfQ==
@@ -20,4 +20,9 @@ export interface PlatterFit extends BaseDynamooseModel {
20
20
  export type CreatePlatterFitInput = Omit<PlatterFit, "platterFitId"> & {
21
21
  platterFitId?: string;
22
22
  };
23
- export declare const PlatterFitModel: import("dynamoose/dist/General").ModelType<import("dynamoose/dist/Item").AnyItem>;
23
+ export declare const PlatterFitModel: import("dynamoose/dist/General").ModelType<PlatterFit>;
24
+ /**
25
+ * Converts a plain platter-fit payload into a Dynamoose model instance.
26
+ * Use this before persistence when you want model-level normalization.
27
+ */
28
+ export declare const convertToPlatterFitModel: (platterFit: CreatePlatterFitInput | PlatterFit) => PlatterFit;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.PlatterFitModel = exports.PLATTER_FIT_TABLE_NAME = void 0;
6
+ exports.convertToPlatterFitModel = exports.PlatterFitModel = exports.PLATTER_FIT_TABLE_NAME = void 0;
7
7
  const dynamoose_1 = __importDefault(require("dynamoose"));
8
8
  const crypto_1 = require("crypto");
9
9
  const base_dynamoose_model_1 = require("../../base-dynamoose-model");
@@ -72,8 +72,13 @@ const platterFitSchema = new dynamoose_1.default.Schema({
72
72
  }, {
73
73
  saveUnknown: false
74
74
  });
75
- exports.PlatterFitModel = dynamoose_1.default.model(exports.PLATTER_FIT_TABLE_NAME, platterFitSchema, {
76
- create: false,
77
- waitForActive: false
78
- });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdHRlci1maXQtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3VzdG9tZXItdXNlci9wbGF0dGVyLWZpdC1tb2R1bGUvcGxhdHRlci1maXQtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMERBQWtDO0FBQ2xDLG1DQUFvQztBQUNwQyxxRUFBNkY7QUFFaEYsUUFBQSxzQkFBc0IsR0FBRyxpQkFBaUIsQ0FBQztBQXdCeEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLG1CQUFTLENBQUMsTUFBTSxDQUN6QztJQUNJLFlBQVksRUFBRTtRQUNWLElBQUksRUFBRSxNQUFNO1FBQ1osT0FBTyxFQUFFLElBQUk7UUFDYixRQUFRLEVBQUUsSUFBSTtRQUNkLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFBLG1CQUFVLEdBQUU7S0FDOUI7SUFDRCxZQUFZLEVBQUU7UUFDVixJQUFJLEVBQUUsTUFBTTtRQUNaLFFBQVEsRUFBRSxJQUFJO0tBQ2pCO0lBQ0QsWUFBWSxFQUFFO1FBQ1YsSUFBSSxFQUFFLE1BQU07UUFDWixRQUFRLEVBQUUsSUFBSTtRQUNkLEtBQUssRUFBRTtZQUNILElBQUksRUFBRSxtQkFBbUI7WUFDekIsSUFBSSxFQUFFLFFBQVE7U0FDakI7S0FDSjtJQUNELGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLE1BQU0sRUFBRTtRQUNKLElBQUksRUFBRSxNQUFNO1FBQ1osUUFBUSxFQUFFLElBQUk7S0FDakI7SUFDRCxNQUFNLEVBQUU7UUFDSixJQUFJLEVBQUUsTUFBTTtRQUNaLFFBQVEsRUFBRSxJQUFJO0tBQ2pCO0lBQ0QsVUFBVSxFQUFFO1FBQ1IsSUFBSSxFQUFFLE1BQU07UUFDWixRQUFRLEVBQUUsSUFBSTtLQUNqQjtJQUNELElBQUksRUFBRTtRQUNGLElBQUksRUFBRSxNQUFNO1FBQ1osUUFBUSxFQUFFLElBQUk7S0FDakI7SUFDRCxPQUFPLEVBQUUsTUFBTTtJQUNmLFNBQVMsRUFBRTtRQUNQLElBQUksRUFBRSxNQUFNO1FBQ1osUUFBUSxFQUFFLElBQUk7UUFDZCxLQUFLLEVBQUU7WUFDSCxJQUFJLEVBQUUsZ0JBQWdCO1lBQ3RCLElBQUksRUFBRSxRQUFRO1NBQ2pCO0tBQ0o7SUFDRCxXQUFXLEVBQUU7UUFDVCxJQUFJLEVBQUUsTUFBTTtRQUNaLFFBQVEsRUFBRSxJQUFJO0tBQ2pCO0lBQ0Qsb0JBQW9CLEVBQUUsTUFBTTtJQUM1QixtQkFBbUIsRUFBRSxNQUFNO0lBQzNCLGlCQUFpQixFQUFFLE1BQU07SUFDekIsTUFBTSxFQUFFO1FBQ0osSUFBSSxFQUFFLE1BQU07UUFDWixRQUFRLEVBQUUsSUFBSTtRQUNkLEtBQUssRUFBRTtZQUNILElBQUksRUFBRSxhQUFhO1lBQ25CLElBQUksRUFBRSxRQUFRO1NBQ2pCO0tBQ0o7SUFDRCxHQUFHLGtEQUEyQjtDQUNqQyxFQUNEO0lBQ0ksV0FBVyxFQUFFLEtBQUs7Q0FDckIsQ0FDSixDQUFDO0FBRVcsUUFBQSxlQUFlLEdBQUcsbUJBQVMsQ0FBQyxLQUFLLENBQzFDLDhCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEI7SUFDSSxNQUFNLEVBQUUsS0FBSztJQUNiLGFBQWEsRUFBRSxLQUFLO0NBQ3ZCLENBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkeW5hbW9vc2UgZnJvbSBcImR5bmFtb29zZVwiO1xuaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gXCJjcnlwdG9cIjtcbmltcG9ydCB7IEJBU0VfRFlOQU1PT1NFX0FVRElUX1NDSEVNQSwgQmFzZUR5bmFtb29zZU1vZGVsIH0gZnJvbSBcIi4uLy4uL2Jhc2UtZHluYW1vb3NlLW1vZGVsXCI7XG5cbmV4cG9ydCBjb25zdCBQTEFUVEVSX0ZJVF9UQUJMRV9OQU1FID0gXCJQbGF0dGVyRml0VGFibGVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBQbGF0dGVyRml0IGV4dGVuZHMgQmFzZUR5bmFtb29zZU1vZGVsIHtcbiAgICBwbGF0dGVyRml0SWQ6IHN0cmluZztcbiAgICBvY2Nhc2lvbk5hbWU6IHN0cmluZztcbiAgICBvY2Nhc2lvblR5cGU6IHN0cmluZztcbiAgICBvY2Nhc2lvblN1YlR5cGU/OiBzdHJpbmc7XG4gICAgbWluUGF4OiBudW1iZXI7XG4gICAgbWF4UGF4OiBudW1iZXI7XG4gICAgYnVkZ2V0VGllcjogc3RyaW5nO1xuICAgIHJhbms6IG51bWJlcjtcbiAgICByYW5rVGFnPzogc3RyaW5nO1xuICAgIHBsYXR0ZXJJZDogc3RyaW5nO1xuICAgIHBsYXR0ZXJOYW1lOiBzdHJpbmc7XG4gICAgYnVja2V0UGF4RGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgb2NjYXNpb25EZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBvdGhlcnNEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBzdGF0dXM6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQ3JlYXRlUGxhdHRlckZpdElucHV0ID0gT21pdDxQbGF0dGVyRml0LCBcInBsYXR0ZXJGaXRJZFwiPiAmIHtcbiAgICBwbGF0dGVyRml0SWQ/OiBzdHJpbmc7XG59O1xuXG5jb25zdCBwbGF0dGVyRml0U2NoZW1hID0gbmV3IGR5bmFtb29zZS5TY2hlbWEoXG4gICAge1xuICAgICAgICBwbGF0dGVyRml0SWQ6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGhhc2hLZXk6IHRydWUsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICgpID0+IHJhbmRvbVVVSUQoKVxuICAgICAgICB9LFxuICAgICAgICBvY2Nhc2lvbk5hbWU6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIG9jY2FzaW9uVHlwZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBpbmRleDoge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwib2NjYXNpb25UeXBlSW5kZXhcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImdsb2JhbFwiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG9jY2FzaW9uU3ViVHlwZTogU3RyaW5nLFxuICAgICAgICBtaW5QYXg6IHtcbiAgICAgICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIG1heFBheDoge1xuICAgICAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgYnVkZ2V0VGllcjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgcmFuazoge1xuICAgICAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgcmFua1RhZzogU3RyaW5nLFxuICAgICAgICBwbGF0dGVySWQ6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgaW5kZXg6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcInBsYXR0ZXJJZEluZGV4XCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJnbG9iYWxcIlxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwbGF0dGVyTmFtZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgYnVja2V0UGF4RGVzY3JpcHRpb246IFN0cmluZyxcbiAgICAgICAgb2NjYXNpb25EZXNjcmlwdGlvbjogU3RyaW5nLFxuICAgICAgICBvdGhlcnNEZXNjcmlwdGlvbjogU3RyaW5nLFxuICAgICAgICBzdGF0dXM6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgaW5kZXg6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcInN0YXR1c0luZGV4XCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJnbG9iYWxcIlxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAuLi5CQVNFX0RZTkFNT09TRV9BVURJVF9TQ0hFTUFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgc2F2ZVVua25vd246IGZhbHNlXG4gICAgfVxuKTtcblxuZXhwb3J0IGNvbnN0IFBsYXR0ZXJGaXRNb2RlbCA9IGR5bmFtb29zZS5tb2RlbChcbiAgICBQTEFUVEVSX0ZJVF9UQUJMRV9OQU1FLFxuICAgIHBsYXR0ZXJGaXRTY2hlbWEsXG4gICAge1xuICAgICAgICBjcmVhdGU6IGZhbHNlLFxuICAgICAgICB3YWl0Rm9yQWN0aXZlOiBmYWxzZVxuICAgIH1cbik7XG4iXX0=
75
+ exports.PlatterFitModel = dynamoose_1.default.model(exports.PLATTER_FIT_TABLE_NAME, platterFitSchema, { create: false, waitForActive: false });
76
+ /**
77
+ * Converts a plain platter-fit payload into a Dynamoose model instance.
78
+ * Use this before persistence when you want model-level normalization.
79
+ */
80
+ const convertToPlatterFitModel = (platterFit) => {
81
+ return new exports.PlatterFitModel(platterFit);
82
+ };
83
+ exports.convertToPlatterFitModel = convertToPlatterFitModel;
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdHRlci1maXQtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3VzdG9tZXItdXNlci9wbGF0dGVyLWZpdC1tb2R1bGUvcGxhdHRlci1maXQtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMERBQWtDO0FBQ2xDLG1DQUFvQztBQUNwQyxxRUFBNkY7QUFFaEYsUUFBQSxzQkFBc0IsR0FBRyxpQkFBaUIsQ0FBQztBQXdCeEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLG1CQUFTLENBQUMsTUFBTSxDQUN6QztJQUNJLFlBQVksRUFBRTtRQUNWLElBQUksRUFBRSxNQUFNO1FBQ1osT0FBTyxFQUFFLElBQUk7UUFDYixRQUFRLEVBQUUsSUFBSTtRQUNkLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFBLG1CQUFVLEdBQUU7S0FDOUI7SUFDRCxZQUFZLEVBQUU7UUFDVixJQUFJLEVBQUUsTUFBTTtRQUNaLFFBQVEsRUFBRSxJQUFJO0tBQ2pCO0lBQ0QsWUFBWSxFQUFFO1FBQ1YsSUFBSSxFQUFFLE1BQU07UUFDWixRQUFRLEVBQUUsSUFBSTtRQUNkLEtBQUssRUFBRTtZQUNILElBQUksRUFBRSxtQkFBbUI7WUFDekIsSUFBSSxFQUFFLFFBQVE7U0FDakI7S0FDSjtJQUNELGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLE1BQU0sRUFBRTtRQUNKLElBQUksRUFBRSxNQUFNO1FBQ1osUUFBUSxFQUFFLElBQUk7S0FDakI7SUFDRCxNQUFNLEVBQUU7UUFDSixJQUFJLEVBQUUsTUFBTTtRQUNaLFFBQVEsRUFBRSxJQUFJO0tBQ2pCO0lBQ0QsVUFBVSxFQUFFO1FBQ1IsSUFBSSxFQUFFLE1BQU07UUFDWixRQUFRLEVBQUUsSUFBSTtLQUNqQjtJQUNELElBQUksRUFBRTtRQUNGLElBQUksRUFBRSxNQUFNO1FBQ1osUUFBUSxFQUFFLElBQUk7S0FDakI7SUFDRCxPQUFPLEVBQUUsTUFBTTtJQUNmLFNBQVMsRUFBRTtRQUNQLElBQUksRUFBRSxNQUFNO1FBQ1osUUFBUSxFQUFFLElBQUk7UUFDZCxLQUFLLEVBQUU7WUFDSCxJQUFJLEVBQUUsZ0JBQWdCO1lBQ3RCLElBQUksRUFBRSxRQUFRO1NBQ2pCO0tBQ0o7SUFDRCxXQUFXLEVBQUU7UUFDVCxJQUFJLEVBQUUsTUFBTTtRQUNaLFFBQVEsRUFBRSxJQUFJO0tBQ2pCO0lBQ0Qsb0JBQW9CLEVBQUUsTUFBTTtJQUM1QixtQkFBbUIsRUFBRSxNQUFNO0lBQzNCLGlCQUFpQixFQUFFLE1BQU07SUFDekIsTUFBTSxFQUFFO1FBQ0osSUFBSSxFQUFFLE1BQU07UUFDWixRQUFRLEVBQUUsSUFBSTtRQUNkLEtBQUssRUFBRTtZQUNILElBQUksRUFBRSxhQUFhO1lBQ25CLElBQUksRUFBRSxRQUFRO1NBQ2pCO0tBQ0o7SUFDRCxHQUFHLGtEQUEyQjtDQUNqQyxFQUNEO0lBQ0ksV0FBVyxFQUFFLEtBQUs7Q0FDckIsQ0FDSixDQUFDO0FBRVcsUUFBQSxlQUFlLEdBQUcsbUJBQVMsQ0FBQyxLQUFLLENBQzFDLDhCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FDMUMsQ0FBQztBQUVGOzs7R0FHRztBQUNJLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxVQUE4QyxFQUFFLEVBQUU7SUFDdkYsT0FBTyxJQUFJLHVCQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDM0MsQ0FBQyxDQUFDO0FBRlcsUUFBQSx3QkFBd0IsNEJBRW5DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGR5bmFtb29zZSBmcm9tIFwiZHluYW1vb3NlXCI7XG5pbXBvcnQgeyByYW5kb21VVUlEIH0gZnJvbSBcImNyeXB0b1wiO1xuaW1wb3J0IHsgQkFTRV9EWU5BTU9PU0VfQVVESVRfU0NIRU1BLCBCYXNlRHluYW1vb3NlTW9kZWwgfSBmcm9tIFwiLi4vLi4vYmFzZS1keW5hbW9vc2UtbW9kZWxcIjtcblxuZXhwb3J0IGNvbnN0IFBMQVRURVJfRklUX1RBQkxFX05BTUUgPSBcIlBsYXR0ZXJGaXRUYWJsZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsYXR0ZXJGaXQgZXh0ZW5kcyBCYXNlRHluYW1vb3NlTW9kZWwge1xuICAgIHBsYXR0ZXJGaXRJZDogc3RyaW5nO1xuICAgIG9jY2FzaW9uTmFtZTogc3RyaW5nO1xuICAgIG9jY2FzaW9uVHlwZTogc3RyaW5nO1xuICAgIG9jY2FzaW9uU3ViVHlwZT86IHN0cmluZztcbiAgICBtaW5QYXg6IG51bWJlcjtcbiAgICBtYXhQYXg6IG51bWJlcjtcbiAgICBidWRnZXRUaWVyOiBzdHJpbmc7XG4gICAgcmFuazogbnVtYmVyO1xuICAgIHJhbmtUYWc/OiBzdHJpbmc7XG4gICAgcGxhdHRlcklkOiBzdHJpbmc7XG4gICAgcGxhdHRlck5hbWU6IHN0cmluZztcbiAgICBidWNrZXRQYXhEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBvY2Nhc2lvbkRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIG90aGVyc0Rlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIHN0YXR1czogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBDcmVhdGVQbGF0dGVyRml0SW5wdXQgPSBPbWl0PFBsYXR0ZXJGaXQsIFwicGxhdHRlckZpdElkXCI+ICYge1xuICAgIHBsYXR0ZXJGaXRJZD86IHN0cmluZztcbn07XG5cbmNvbnN0IHBsYXR0ZXJGaXRTY2hlbWEgPSBuZXcgZHluYW1vb3NlLlNjaGVtYShcbiAgICB7XG4gICAgICAgIHBsYXR0ZXJGaXRJZDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgaGFzaEtleTogdHJ1ZSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgZGVmYXVsdDogKCkgPT4gcmFuZG9tVVVJRCgpXG4gICAgICAgIH0sXG4gICAgICAgIG9jY2FzaW9uTmFtZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgb2NjYXNpb25UeXBlOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIGluZGV4OiB7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJvY2Nhc2lvblR5cGVJbmRleFwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZ2xvYmFsXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgb2NjYXNpb25TdWJUeXBlOiBTdHJpbmcsXG4gICAgICAgIG1pblBheDoge1xuICAgICAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgbWF4UGF4OiB7XG4gICAgICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBidWRnZXRUaWVyOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICByYW5rOiB7XG4gICAgICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICByYW5rVGFnOiBTdHJpbmcsXG4gICAgICAgIHBsYXR0ZXJJZDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBpbmRleDoge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwicGxhdHRlcklkSW5kZXhcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImdsb2JhbFwiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHBsYXR0ZXJOYW1lOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBidWNrZXRQYXhEZXNjcmlwdGlvbjogU3RyaW5nLFxuICAgICAgICBvY2Nhc2lvbkRlc2NyaXB0aW9uOiBTdHJpbmcsXG4gICAgICAgIG90aGVyc0Rlc2NyaXB0aW9uOiBTdHJpbmcsXG4gICAgICAgIHN0YXR1czoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBpbmRleDoge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwic3RhdHVzSW5kZXhcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImdsb2JhbFwiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIC4uLkJBU0VfRFlOQU1PT1NFX0FVRElUX1NDSEVNQVxuICAgIH0sXG4gICAge1xuICAgICAgICBzYXZlVW5rbm93bjogZmFsc2VcbiAgICB9XG4pO1xuXG5leHBvcnQgY29uc3QgUGxhdHRlckZpdE1vZGVsID0gZHluYW1vb3NlLm1vZGVsPFBsYXR0ZXJGaXQ+KFxuICAgIFBMQVRURVJfRklUX1RBQkxFX05BTUUsXG4gICAgcGxhdHRlckZpdFNjaGVtYSxcbiAgICB7IGNyZWF0ZTogZmFsc2UsIHdhaXRGb3JBY3RpdmU6IGZhbHNlIH1cbik7XG5cbi8qKlxuICogQ29udmVydHMgYSBwbGFpbiBwbGF0dGVyLWZpdCBwYXlsb2FkIGludG8gYSBEeW5hbW9vc2UgbW9kZWwgaW5zdGFuY2UuXG4gKiBVc2UgdGhpcyBiZWZvcmUgcGVyc2lzdGVuY2Ugd2hlbiB5b3Ugd2FudCBtb2RlbC1sZXZlbCBub3JtYWxpemF0aW9uLlxuICovXG5leHBvcnQgY29uc3QgY29udmVydFRvUGxhdHRlckZpdE1vZGVsID0gKHBsYXR0ZXJGaXQ6IENyZWF0ZVBsYXR0ZXJGaXRJbnB1dCB8IFBsYXR0ZXJGaXQpID0+IHtcbiAgICByZXR1cm4gbmV3IFBsYXR0ZXJGaXRNb2RlbChwbGF0dGVyRml0KTtcbn07XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cmp-aws-database",
3
- "version": "1.7.1-dev.27",
3
+ "version": "1.7.1-dev.29",
4
4
  "bin": {
5
5
  "craft-my-plate-database": "bin/craft-my-plate-database.js"
6
6
  },