cmp-aws-database 1.7.1-dev.26 → 1.7.1-dev.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,83 @@
1
+ import { BaseDynamooseModel, AuthContext } from "./base-dynamoose-model";
2
+ type DynamoKeyValue = string | number | boolean | null;
3
+ export type DynamoKey = Record<string, DynamoKeyValue>;
4
+ type DynamooseModelLike = {
5
+ create: Function;
6
+ update: Function;
7
+ get: Function;
8
+ delete: Function;
9
+ batchPut: Function;
10
+ batchGet: Function;
11
+ };
12
+ export declare class GenericDynamooseDAO<T extends BaseDynamooseModel> {
13
+ protected readonly model: DynamooseModelLike;
14
+ protected readonly primaryKeyName: keyof T & string;
15
+ protected readonly sortKeyName?: (keyof T & string) | undefined;
16
+ /**
17
+ * @param model Dynamoose model instance for the target table.
18
+ * @param primaryKeyName Attribute name used as the table hash key.
19
+ */
20
+ constructor(model: DynamooseModelLike, primaryKeyName: keyof T & string, sortKeyName?: (keyof T & string) | undefined);
21
+ /**
22
+ * Builds a DynamoDB key object from a single primary key value.
23
+ */
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;
41
+ /**
42
+ * Creates a new record and automatically stamps created audit fields.
43
+ */
44
+ save(item: T, authContext?: AuthContext): Promise<T>;
45
+ /**
46
+ * Updates an existing record and automatically stamps updated audit fields.
47
+ */
48
+ update(primaryKeyValue: string, updates: Partial<T>, authContext?: AuthContext, sortKeyValue?: string): Promise<T>;
49
+ /**
50
+ * Deletes one record by primary key.
51
+ */
52
+ delete(primaryKeyValue: string, sortKeyValue?: string): Promise<T | undefined>;
53
+ /**
54
+ * Fetches one record by primary key. Returns null when not found.
55
+ */
56
+ get(primaryKeyValue: string, sortKeyValue?: string): Promise<T | null>;
57
+ /**
58
+ * Writes multiple records in a batch and throws if any item is left unprocessed.
59
+ */
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[]>;
66
+ /**
67
+ * Fetches multiple records by primary keys.
68
+ */
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[]>;
74
+ /**
75
+ * Decodes a base64 continuation token into DynamoDB last evaluated key.
76
+ */
77
+ decode(continuationToken: string | undefined): DynamoKey | undefined;
78
+ /**
79
+ * Encodes DynamoDB last evaluated key into a base64 continuation token.
80
+ */
81
+ encode(lastEvaluatedKey: DynamoKey | undefined): Promise<string | undefined>;
82
+ }
83
+ export {};
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GenericDynamooseDAO = void 0;
4
+ class GenericDynamooseDAO {
5
+ /**
6
+ * @param model Dynamoose model instance for the target table.
7
+ * @param primaryKeyName Attribute name used as the table hash key.
8
+ */
9
+ constructor(model, primaryKeyName, sortKeyName) {
10
+ this.model = model;
11
+ this.primaryKeyName = primaryKeyName;
12
+ this.sortKeyName = sortKeyName;
13
+ }
14
+ /**
15
+ * Builds a DynamoDB key object from a single primary key value.
16
+ */
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]}`;
68
+ }
69
+ /**
70
+ * Creates a new record and automatically stamps created audit fields.
71
+ */
72
+ async save(item, authContext) {
73
+ const createFn = this.model.create;
74
+ const created = await createFn({
75
+ ...item,
76
+ created_time: new Date(),
77
+ created_user: authContext?.userSub
78
+ });
79
+ return created;
80
+ }
81
+ /**
82
+ * Updates an existing record and automatically stamps updated audit fields.
83
+ */
84
+ async update(primaryKeyValue, updates, authContext, sortKeyValue) {
85
+ const updateFn = this.model.update;
86
+ const updated = await updateFn(this.getKeyObject(primaryKeyValue, sortKeyValue), {
87
+ ...updates,
88
+ updated_time: new Date(),
89
+ updated_user: authContext?.userSub
90
+ });
91
+ return updated;
92
+ }
93
+ /**
94
+ * Deletes one record by primary key.
95
+ */
96
+ async delete(primaryKeyValue, sortKeyValue) {
97
+ const deleteFn = this.model.delete;
98
+ const deleted = await deleteFn(this.getKeyObject(primaryKeyValue, sortKeyValue));
99
+ return deleted;
100
+ }
101
+ /**
102
+ * Fetches one record by primary key. Returns null when not found.
103
+ */
104
+ async get(primaryKeyValue, sortKeyValue) {
105
+ const getFn = this.model.get;
106
+ const item = await getFn(this.getKeyObject(primaryKeyValue, sortKeyValue));
107
+ return item ?? null;
108
+ }
109
+ /**
110
+ * Writes multiple records in a batch and throws if any item is left unprocessed.
111
+ */
112
+ async batchSave(items, authContext) {
113
+ const now = new Date();
114
+ const inputItems = items.map((item) => ({
115
+ ...item,
116
+ created_time: now,
117
+ created_user: authContext?.userSub
118
+ }));
119
+ const batchPutFn = this.model.batchPut;
120
+ const result = await batchPutFn(inputItems);
121
+ if (result.unprocessedItems.length > 0) {
122
+ throw new Error(`Batch save partially failed. Unprocessed items: ${result.unprocessedItems.length}`);
123
+ }
124
+ return inputItems;
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
+ }
157
+ /**
158
+ * Fetches multiple records by primary keys.
159
+ */
160
+ async batchGet(primaryKeyValues) {
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) {
168
+ const batchGetFn = this.model.batchGet;
169
+ const items = await batchGetFn(keys);
170
+ return items;
171
+ }
172
+ /**
173
+ * Decodes a base64 continuation token into DynamoDB last evaluated key.
174
+ */
175
+ decode(continuationToken) {
176
+ if (!continuationToken) {
177
+ return undefined;
178
+ }
179
+ try {
180
+ return JSON.parse(Buffer.from(continuationToken, "base64").toString("utf8"));
181
+ }
182
+ catch (error) {
183
+ throw new Error("Invalid continuationToken");
184
+ }
185
+ }
186
+ /**
187
+ * Encodes DynamoDB last evaluated key into a base64 continuation token.
188
+ */
189
+ async encode(lastEvaluatedKey) {
190
+ if (!lastEvaluatedKey) {
191
+ return undefined;
192
+ }
193
+ return Buffer.from(JSON.stringify(lastEvaluatedKey)).toString("base64");
194
+ }
195
+ }
196
+ exports.GenericDynamooseDAO = GenericDynamooseDAO;
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==
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Shared audit fields for Dynamoose entities.
3
+ * Extend this interface in module-specific model interfaces.
4
+ */
5
+ export interface BaseDynamooseModel {
6
+ created_time?: Date;
7
+ updated_time?: Date;
8
+ created_user?: string;
9
+ updated_user?: string;
10
+ }
11
+ /**
12
+ * Reusable runtime schema fragment for audit fields.
13
+ * Spread this into Dynamoose schema definitions to avoid duplication.
14
+ */
15
+ export declare const BASE_DYNAMOOSE_AUDIT_SCHEMA: {
16
+ readonly created_time: DateConstructor;
17
+ readonly updated_time: DateConstructor;
18
+ readonly created_user: StringConstructor;
19
+ readonly updated_user: StringConstructor;
20
+ };
21
+ /**
22
+ * Auth payload used by DAO methods for audit stamping.
23
+ */
24
+ export type AuthContext = {
25
+ userSub?: string;
26
+ };
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BASE_DYNAMOOSE_AUDIT_SCHEMA = void 0;
4
+ /**
5
+ * Reusable runtime schema fragment for audit fields.
6
+ * Spread this into Dynamoose schema definitions to avoid duplication.
7
+ */
8
+ exports.BASE_DYNAMOOSE_AUDIT_SCHEMA = {
9
+ created_time: Date,
10
+ updated_time: Date,
11
+ created_user: String,
12
+ updated_user: String
13
+ };
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1keW5hbW9vc2UtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYmFzZS1keW5hbW9vc2UtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBV0E7OztHQUdHO0FBQ1UsUUFBQSwyQkFBMkIsR0FBRztJQUN2QyxZQUFZLEVBQUUsSUFBSTtJQUNsQixZQUFZLEVBQUUsSUFBSTtJQUNsQixZQUFZLEVBQUUsTUFBTTtJQUNwQixZQUFZLEVBQUUsTUFBTTtDQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNoYXJlZCBhdWRpdCBmaWVsZHMgZm9yIER5bmFtb29zZSBlbnRpdGllcy5cbiAqIEV4dGVuZCB0aGlzIGludGVyZmFjZSBpbiBtb2R1bGUtc3BlY2lmaWMgbW9kZWwgaW50ZXJmYWNlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlRHluYW1vb3NlTW9kZWwge1xuICAgIGNyZWF0ZWRfdGltZT86IERhdGU7XG4gICAgdXBkYXRlZF90aW1lPzogRGF0ZTtcbiAgICBjcmVhdGVkX3VzZXI/OiBzdHJpbmc7XG4gICAgdXBkYXRlZF91c2VyPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJldXNhYmxlIHJ1bnRpbWUgc2NoZW1hIGZyYWdtZW50IGZvciBhdWRpdCBmaWVsZHMuXG4gKiBTcHJlYWQgdGhpcyBpbnRvIER5bmFtb29zZSBzY2hlbWEgZGVmaW5pdGlvbnMgdG8gYXZvaWQgZHVwbGljYXRpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBCQVNFX0RZTkFNT09TRV9BVURJVF9TQ0hFTUEgPSB7XG4gICAgY3JlYXRlZF90aW1lOiBEYXRlLFxuICAgIHVwZGF0ZWRfdGltZTogRGF0ZSxcbiAgICBjcmVhdGVkX3VzZXI6IFN0cmluZyxcbiAgICB1cGRhdGVkX3VzZXI6IFN0cmluZ1xufSBhcyBjb25zdDtcblxuLyoqXG4gKiBBdXRoIHBheWxvYWQgdXNlZCBieSBEQU8gbWV0aG9kcyBmb3IgYXVkaXQgc3RhbXBpbmcuXG4gKi9cbmV4cG9ydCB0eXBlIEF1dGhDb250ZXh0ID0ge1xuICAgIHVzZXJTdWI/OiBzdHJpbmc7XG59O1xuIl19
@@ -16,6 +16,7 @@ export declare const BASE_TABLE_NAMES: {
16
16
  readonly ORDER_REVIEW_FEEDBACK: "OrderReviewFeedbackTable";
17
17
  readonly CATERING_REQUEST: "CateringRequestTable";
18
18
  readonly FMP_REQUEST_CALLBACK: "FmpRequestCallbackTable";
19
+ readonly PLATTER_FIT: "PlatterFitTable";
19
20
  readonly ORDER: "OrderTable";
20
21
  readonly ORDER_ADDRESS: "OrderAddressTable";
21
22
  readonly ORDER_REVIEW: "OrderReviewTable";
@@ -71,6 +72,7 @@ export declare const TABLE_NAMES: {
71
72
  readonly ORDER_REVIEW_FEEDBACK: string;
72
73
  readonly CATERING_REQUEST: string;
73
74
  readonly FMP_REQUEST_CALLBACK: string;
75
+ readonly PLATTER_FIT: string;
74
76
  readonly ORDER: string;
75
77
  readonly ORDER_ADDRESS: string;
76
78
  readonly ORDER_REVIEW: string;
@@ -22,6 +22,7 @@ exports.BASE_TABLE_NAMES = {
22
22
  ORDER_REVIEW_FEEDBACK: 'OrderReviewFeedbackTable',
23
23
  CATERING_REQUEST: 'CateringRequestTable',
24
24
  FMP_REQUEST_CALLBACK: 'FmpRequestCallbackTable',
25
+ PLATTER_FIT: 'PlatterFitTable',
25
26
  // Order Module Tables
26
27
  ORDER: 'OrderTable',
27
28
  ORDER_ADDRESS: 'OrderAddressTable',
@@ -92,6 +93,7 @@ exports.TABLE_NAMES = {
92
93
  ORDER_REVIEW_FEEDBACK: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.ORDER_REVIEW_FEEDBACK),
93
94
  CATERING_REQUEST: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.CATERING_REQUEST),
94
95
  FMP_REQUEST_CALLBACK: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.FMP_REQUEST_CALLBACK),
96
+ PLATTER_FIT: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.PLATTER_FIT),
95
97
  // Order Module Tables
96
98
  ORDER: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.ORDER),
97
99
  ORDER_ADDRESS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.ORDER_ADDRESS),
@@ -128,4 +130,4 @@ exports.TABLE_NAMES = {
128
130
  ACTIVITY_LOGS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.ACTIVITY_LOGS),
129
131
  QUOTATIONS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.QUOTATIONS),
130
132
  };
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL3RhYmxlLW5hbWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlEQUFxRDtBQUVyRCxnREFBZ0Q7QUFDbkMsUUFBQSxnQkFBZ0IsR0FBRztJQUM1QixzQkFBc0I7SUFDdEIsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxPQUFPLEVBQUUsYUFBYTtJQUN0QixPQUFPLEVBQUUsY0FBYztJQUN2QixtQkFBbUIsRUFBRSx5QkFBeUI7SUFDOUMsT0FBTyxFQUFFLGNBQWM7SUFDdkIsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxrQkFBa0IsRUFBRSx1QkFBdUI7SUFDM0MsYUFBYSxFQUFFLG1CQUFtQjtJQUNsQyxvQkFBb0IsRUFBRSx5QkFBeUI7SUFDL0MsZUFBZSxFQUFFLHFCQUFxQjtJQUN0QyxjQUFjLEVBQUUsb0JBQW9CO0lBQ3BDLE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLGVBQWUsRUFBRSxxQkFBcUI7SUFDdEMscUJBQXFCLEVBQUUsMEJBQTBCO0lBQ2pELHFCQUFxQixFQUFFLDBCQUEwQjtJQUNqRCxnQkFBZ0IsRUFBRSxzQkFBc0I7SUFDeEMsb0JBQW9CLEVBQUUseUJBQXlCO0lBRS9DLHNCQUFzQjtJQUN0QixLQUFLLEVBQUUsWUFBWTtJQUNuQixhQUFhLEVBQUUsbUJBQW1CO0lBQ2xDLFlBQVksRUFBRSxrQkFBa0I7SUFDaEMsT0FBTyxFQUFFLGNBQWM7SUFDdkIsV0FBVyxFQUFFLGlCQUFpQjtJQUM5QixRQUFRLEVBQUUsZUFBZTtJQUN6QixZQUFZLEVBQUUsa0JBQWtCO0lBQ2hDLGNBQWMsRUFBRSxvQkFBb0I7SUFDcEMsV0FBVyxFQUFFLGlCQUFpQjtJQUU5Qix3QkFBd0I7SUFDeEIsT0FBTyxFQUFFLGFBQWE7SUFDdEIsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxJQUFJLEVBQUUsV0FBVztJQUNqQixlQUFlLEVBQUUscUJBQXFCO0lB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QU0sQ0FBQztJQUM5RCxrQkFBa0IsRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsd0JBQWdCLENBQUMsa0JBQWtCLENBQUM7SUFDdEYsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyx3QkFBZ0IsQ0FBQyxTQUFTLENBQUM7SUFFcEUsdUJBQXVCO0lBQ3ZCLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsd0JBQWdCLENBQUMsYUFBYSxDQUFDO0lBQzVFLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsd0JBQWdCLENBQUMsYUFBYSxDQUFDO0lBQzVFLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsd0JBQWdCLENBQUMsVUFBVSxDQUFDO0NBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhYmFzZUZhY3RvcnkgfSBmcm9tICcuL2RhdGFiYXNlLWZhY3RvcnknO1xuXG4vLyBCYXNlIHRhYmxlIG5hbWVzICh3aXRob3V0IGVudmlyb25tZW50IHByZWZpeClcbmV4cG9ydCBjb25zdCBCQVNFX1RBQkxFX05BTUVTID0ge1xuICAgIC8vIEN1c3RvbWVyIEFwcCBUYWJsZXNcbiAgICBBUFBfRkVFREJBQ0s6ICdBcHBGZWVkYmFja1RhYmxlJyxcbiAgICBMU1FfQ1JNOiAnTHNxQ3JtVGFibGUnLFxuICAgIENVVExFUlk6ICdDdXRsZXJ5VGFibGUnLFxuICAgIElURU1fQUNDT01QQU5JTUVOVFM6ICdJdGVtQWNjb21wYW5pbWVudHNUYWJsZScsXG4gICAgQ1VJU0lORTogJ0N1aXNpbmVUYWJsZScsXG4gICAgVElFUl9ERVRBSUxTOiAnVGllckRldGFpbHNUYWJsZScsXG4gICAgVVNFUl9PUkRFUl9TVU1NQVJZOiAnVXNlck9yZGVyU3VtbWFyeVRhYmxlJyxcbiAgICBUSUVSX1JFRkVSUkFMOiAnVGllclJlZmVycmFsVGFibGUnLFxuICAgIFVTRVJfQUREUkVTU19SRVFVRVNUOiAnVXNlckFkZHJlc3NSZXF1ZXN0VGFibGUnLFxuICAgIENPTU1PTl9GRUVEQkFDSzogJ0NvbW1vbkZlZWRiYWNrVGFibGUnLFxuICAgIEdVRVNUX0ZFRURCQUNLOiAnR3Vlc3RGZWVkYmFja1RhYmxlJyxcbiAgICBDT1VOVEVSOiAnQ291bnRlclRhYmxlJyxcbiAgICBSRVFVRVNUX0lOVk9JQ0U6ICdSZXF1ZXN0SW52b2ljZVRhYmxlJyxcbiAgICBQTEFUVEVSX1NFQVJDSF9FVkVOVFM6ICdQbGF0dGVyU2VhcmNoRXZlbnRzVGFibGUnLFxuICAgIE9SREVSX1JFVklFV19GRUVEQkFDSzogJ09yZGVyUmV2aWV3RmVlZGJhY2tUYWJsZScsXG4gICAgQ0FURVJJTkdfUkVRVUVTVDogJ0NhdGVyaW5nUmVxdWVzdFRhYmxlJyxcbiAgICBGTVBfUkVRVUVTVF9DQUxMQkFDSzogJ0ZtcFJlcXVlc3RDYWxsYmFja1RhYmxlJyxcblxuICAgIC8vIE9yZGVyIE1vZHVsZSBUYWJsZXNcbiAgICBPUkRFUjogJ09yZGVyVGFibGUnLFxuICAgIE9SREVSX0FERFJFU1M6ICdPcmRlckFkZHJlc3NUYWJsZScsXG4gICAgT1JERVJfUkVWSUVXOiAnT3JkZXJSZXZpZXdUYWJsZScsXG4gICAgUEFZTUVOVDogJ1BheW1lbnRUYWJsZScsXG4gICAgUExBVEVfT1JERVI6ICdQbGF0ZU9yZGVyVGFibGUnLFxuICAgIFRSQUNLSU5HOiAnVHJhY2tpbmdUYWJsZScsXG4gICAgVVNFUl9BRERSRVNTOiAnVXNlckFkZHJlc3NUYWJsZScsXG4gICAgVVNFUl9TUEVDSUZJQ1M6ICdVc2VyU3BlY2lmaWNzVGFibGUnLFxuICAgIEJCUV9TS0VXRVJTOiAnQmJxU2tld2Vyc1RhYmxlJyxcblxuICAgIC8vIE90aGVyIEN1c3RvbWVyIFRhYmxlc1xuICAgIEFERF9PTlM6ICdBZGRPbnNUYWJsZScsXG4gICAgQkFOS19ERVRBSUxTOiAnQmFua0RldGFpbHNUYWJsZScsXG4gICAgQ0FSVDogJ0NhcnRUYWJsZScsXG4gICAgQ0FSVF9DQVRFR09SSUVTOiAnQ2FydENhdGVnb3JpZXNUYWJsZScsXG4gICAgQ0FURUdPUlk6ICdDYXRlZ29yeVRhYmxlJyxcbiAgICBDQVRFUklORzogJ0NhdGVyaW5nVGFibGUnLFxuICAgIENPTlRFTlQ6ICdDb250ZW50VGFibGUnLFxuICAgIENPVVBPTlM6ICdDb3Vwb25zVGFibGUnLFxuICAgIERFRkFVTFRfUExBVFRFUjogJ0RlZmF1bHRQbGF0dGVyVGFibGUnLFxuICAgIERFRkFVTFRfUExBVFRFUl9DQVRFR09SSUVTOiAnRGVmYXVsdFBsYXR0ZXJDYXRlZ29yaWVzVGFibGUnLFxuICAgIERFRkFVTFRfUExBVFRFUl9JVEVNUzogJ0RlZmF1bHRQbGF0dGVySXRlbXNUYWJsZScsXG4gICAgRVZFTlRfRVhFQ1VUSVZFUzogJ0V2ZW50RXhlY3V0aXZlc1RhYmxlJyxcbiAgICBJVEVNUzogJ0l0ZW1zVGFibGUnLFxuICAgIExFQUQ6ICdMZWFkVGFibGUnLFxuICAgIE9DQ0FTSU9OOiAnT2NjYXNpb25UYWJsZScsXG4gICAgUkVGRVJSQUxfQ09OVEVOVDogJ1JlZmVycmFsQ29udGVudFRhYmxlJyxcbiAgICBVU0VSOiAnVXNlclRhYmxlJyxcbiAgICBXQUxMRVQ6ICdXYWxsZXRUYWJsZScsXG4gICAgV0FMTEVUX1RSQU5TQUNUSU9OOiAnV2FsbGV0VHJhbnNhY3Rpb25UYWJsZScsXG4gICAgV0lUSERSQVdOOiAnV2l0aGRyYXduVGFibGUnLFxuXG4gICAgLy8gSW50ZXJuYWwgVXNlciBUYWJsZXNcbiAgICBJTlRFUk5BTF9VU0VSOiAnSW50ZXJuYWxVc2VyVGFibGUnLFxuICAgIEFDVElWSVRZX0xPR1M6ICdBY3Rpdml0eUxvZ3NUYWJsZScsXG4gICAgUVVPVEFUSU9OUzogJ1F1b3RhdGlvbnNUYWJsZScsXG59IGFzIGNvbnN0O1xuXG4vLyBFbnZpcm9ubWVudC1hd2FyZSB0YWJsZSBuYW1lIGdldHRlclxuZXhwb3J0IGNsYXNzIFRhYmxlTmFtZU1hbmFnZXIge1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0VGFibGVOYW1lKGJhc2VUYWJsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBEYXRhYmFzZUZhY3RvcnkuZ2V0VGFibGVOYW1lKGJhc2VUYWJsZU5hbWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0QWxsVGFibGVOYW1lcygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKEJBU0VfVEFCTEVfTkFNRVMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgdGFibGVOYW1lc1trZXldID0gdGhpcy5nZXRUYWJsZU5hbWUodmFsdWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGFibGVOYW1lcztcbiAgICB9XG59XG5cbi8vIEV4cG9ydCBlbnZpcm9ubWVudC1hd2FyZSB0YWJsZSBuYW1lc1xuZXhwb3J0IGNvbnN0IFRBQkxFX05BTUVTID0ge1xuICAgIC8vIEN1c3RvbWVyIEFwcCBUYWJsZXNcbiAgICBBUFBfRkVFREJBQ0s6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQVBQX0ZFRURCQUNLKSxcbiAgICBMU1FfQ1JNOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkxTUV9DUk0pLFxuICAgIENVVExFUlk6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ1VUTEVSWSksXG4gICAgSVRFTV9BQ0NPTVBBTklNRU5UUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5JVEVNX0FDQ09NUEFOSU1FTlRTKSxcbiAgICBDVUlTSU5FOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNVSVNJTkUpLFxuICAgIFRJRVJfREVUQUlMUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5USUVSX0RFVEFJTFMpLFxuICAgIFVTRVJfT1JERVJfU1VNTUFSWTogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5VU0VSX09SREVSX1NVTU1BUlkpLFxuICAgIFRJRVJfUkVGRVJSQUw6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVElFUl9SRUZFUlJBTCksXG4gICAgVVNFUl9BRERSRVNTX1JFUVVFU1Q6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVVNFUl9BRERSRVNTX1JFUVVFU1QpLFxuICAgIENPTU1PTl9GRUVEQkFDSzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DT01NT05fRkVFREJBQ0spLFxuICAgIEdVRVNUX0ZFRURCQUNLOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkdVRVNUX0ZFRURCQUNLKSxcbiAgICBDT1VOVEVSOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNPVU5URVIpLFxuICAgIFJFUVVFU1RfSU5WT0lDRTogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5SRVFVRVNUX0lOVk9JQ0UpLFxuICAgIFBMQVRURVJfU0VBUkNIX0VWRU5UUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5QTEFUVEVSX1NFQVJDSF9FVkVOVFMpLFxuICAgIE9SREVSX1JFVklFV19GRUVEQkFDSzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5PUkRFUl9SRVZJRVdfRkVFREJBQ0spLFxuICAgIENBVEVSSU5HX1JFUVVFU1Q6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ0FURVJJTkdfUkVRVUVTVCksXG4gICAgRk1QX1JFUVVFU1RfQ0FMTEJBQ0s6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuRk1QX1JFUVVFU1RfQ0FMTEJBQ0spLFxuXG4gICAgLy8gT3JkZXIgTW9kdWxlIFRhYmxlc1xuICAgIE9SREVSOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLk9SREVSKSxcbiAgICBPUkRFUl9BRERSRVNTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLk9SREVSX0FERFJFU1MpLFxuICAgIE9SREVSX1JFVklFVzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5PUkRFUl9SRVZJRVcpLFxuICAgIFBBWU1FTlQ6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuUEFZTUVOVCksXG4gICAgUExBVEVfT1JERVI6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuUExBVEVfT1JERVIpLFxuICAgIFRSQUNLSU5HOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlRSQUNLSU5HKSxcbiAgICBVU0VSX0FERFJFU1M6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVVNFUl9BRERSRVNTKSxcbiAgICBVU0VSX1NQRUNJRklDUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5VU0VSX1NQRUNJRklDUyksXG4gICAgQkJRX1NLRVdFUlM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQkJRX1NLRVdFUlMpLFxuXG4gICAgLy8gT3RoZXIgQ3VzdG9tZXIgVGFibGVzXG4gICAgQUREX09OUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5BRERfT05TKSxcbiAgICBCQU5LX0RFVEFJTFM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQkFOS19ERVRBSUxTKSxcbiAgICBDQVJUOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNBUlQpLFxuICAgIENBUlRfQ0FURUdPUklFUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DQVJUX0NBVEVHT1JJRVMpLFxuICAgIENBVEVHT1JZOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNBVEVHT1JZKSxcbiAgICBDQVRFUklORzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DQVRFUklORyksXG4gICAgQ09OVEVOVDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DT05URU5UKSxcbiAgICBDT1VQT05TOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNPVVBPTlMpLFxuICAgIERFRkFVTFRfUExBVFRFUjogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5ERUZBVUxUX1BMQVRURVIpLFxuICAgIERFRkFVTFRfUExBVFRFUl9DQVRFR09SSUVTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkRFRkFVTFRfUExBVFRFUl9DQVRFR09SSUVTKSxcbiAgICBERUZBVUxUX1BMQVRURVJfSVRFTVM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuREVGQVVMVF9QTEFUVEVSX0lURU1TKSxcbiAgICBFVkVOVF9FWEVDVVRJVkVTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkVWRU5UX0VYRUNVVElWRVMpLFxuICAgIElURU1TOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLklURU1TKSxcbiAgICBMRUFEOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkxFQUQpLFxuICAgIE9DQ0FTSU9OOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLk9DQ0FTSU9OKSxcbiAgICBSRUZFUlJBTF9DT05URU5UOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlJFRkVSUkFMX0NPTlRFTlQpLFxuICAgIFVTRVI6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVVNFUiksXG4gICAgV0FMTEVUOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLldBTExFVCksXG4gICAgV0FMTEVUX1RSQU5TQUNUSU9OOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLldBTExFVF9UUkFOU0FDVElPTiksXG4gICAgV0lUSERSQVdOOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLldJVEhEUkFXTiksXG5cbiAgICAvLyBJbnRlcm5hbCBVc2VyIFRhYmxlc1xuICAgIElOVEVSTkFMX1VTRVI6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuSU5URVJOQUxfVVNFUiksXG4gICAgQUNUSVZJVFlfTE9HUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5BQ1RJVklUWV9MT0dTKSxcbiAgICBRVU9UQVRJT05TOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlFVT1RBVElPTlMpLFxufSBhcyBjb25zdDtcbiJdfQ==
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL3RhYmxlLW5hbWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlEQUFxRDtBQUVyRCxnREFBZ0Q7QUFDbkMsUUFBQSxnQkFBZ0IsR0FBRztJQUM1QixzQkFBc0I7SUFDdEIsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxPQUFPLEVBQUUsYUFBYTtJQUN0QixPQUFPLEVBQUUsY0FBYztJQUN2QixtQkFBbUIsRUFBRSx5QkFBeUI7SUFDOUMsT0FBTyxFQUFFLGNBQWM7SUFDdkIsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxrQkFBa0IsRUFBRSx1QkFBdUI7SUFDM0MsYUFBYSxFQUFFLG1CQUFtQjtJQUNsQyxvQkFBb0IsRUFBRSx5QkFBeUI7SUFDL0MsZUFBZSxFQUFFLHFCQUFxQjtJQUN0QyxjQUFjLEVBQUUsb0JBQW9CO0lBQ3BDLE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLGVBQWUsRUFBRSxxQkFBcUI7SUFDdEMscUJBQXFCLEVBQUUsMEJBQTBCO0lBQ2pELHFCQUFxQixFQUFFLDBCQUEwQjtJQUNqRCxnQkFBZ0IsRUFBRSxzQkFBc0I7SUFDeEMsb0JBQW9CLEVBQUUseUJBQXlCO0lBQy9DLFdBQVcsRUFBRSxpQkFBaUI7SUFFOUIsc0JBQXNCO0lBQ3RCLEtBQUssRUFBRSxZQUFZO0lBQ25CLGFBQWEsRUFBRSxtQkFBbUI7SUFDbEMsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxPQUFPLEVBQUUsY0FBYztJQUN2QixXQUFXLEVBQUUsaUJBQWlCO0lBQzlCLFFBQVEsRUFBRSxlQUFlO0lBQ3pCLFlBQVksRUFBRSxrQkFBa0I7SUFDaEMsY0FBYyxFQUFFLG9CQUFvQjtJQUNwQyxXQUFXLEVBQUUsaUJBQWlCO0lBRTlCLHdCQUF3QjtJQUN4QixPQUFPLEVBQUUsYUFBYTtJQUN0QixZQUFZLEVBQUUsa0JBQWtCO0lBQ2hDLElBQUksRUFBRSxXQUFXO0lB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QUFZLENBQUMsd0JBQWdCLENBQUMsSUFBSSxDQUFDO0lBQzFELE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsd0JBQWdCLENBQUMsTUFBTSxDQUFDO0lBQzlELGtCQUFrQixFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyx3QkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQztJQUN0RixTQUFTLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLHdCQUFnQixDQUFDLFNBQVMsQ0FBQztJQUVwRSx1QkFBdUI7SUFDdkIsYUFBYSxFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyx3QkFBZ0IsQ0FBQyxhQUFhLENBQUM7SUFDNUUsYUFBYSxFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyx3QkFBZ0IsQ0FBQyxhQUFhLENBQUM7SUFDNUUsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyx3QkFBZ0IsQ0FBQyxVQUFVLENBQUM7Q0FDaEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFiYXNlRmFjdG9yeSB9IGZyb20gJy4vZGF0YWJhc2UtZmFjdG9yeSc7XG5cbi8vIEJhc2UgdGFibGUgbmFtZXMgKHdpdGhvdXQgZW52aXJvbm1lbnQgcHJlZml4KVxuZXhwb3J0IGNvbnN0IEJBU0VfVEFCTEVfTkFNRVMgPSB7XG4gICAgLy8gQ3VzdG9tZXIgQXBwIFRhYmxlc1xuICAgIEFQUF9GRUVEQkFDSzogJ0FwcEZlZWRiYWNrVGFibGUnLFxuICAgIExTUV9DUk06ICdMc3FDcm1UYWJsZScsXG4gICAgQ1VUTEVSWTogJ0N1dGxlcnlUYWJsZScsXG4gICAgSVRFTV9BQ0NPTVBBTklNRU5UUzogJ0l0ZW1BY2NvbXBhbmltZW50c1RhYmxlJyxcbiAgICBDVUlTSU5FOiAnQ3Vpc2luZVRhYmxlJyxcbiAgICBUSUVSX0RFVEFJTFM6ICdUaWVyRGV0YWlsc1RhYmxlJyxcbiAgICBVU0VSX09SREVSX1NVTU1BUlk6ICdVc2VyT3JkZXJTdW1tYXJ5VGFibGUnLFxuICAgIFRJRVJfUkVGRVJSQUw6ICdUaWVyUmVmZXJyYWxUYWJsZScsXG4gICAgVVNFUl9BRERSRVNTX1JFUVVFU1Q6ICdVc2VyQWRkcmVzc1JlcXVlc3RUYWJsZScsXG4gICAgQ09NTU9OX0ZFRURCQUNLOiAnQ29tbW9uRmVlZGJhY2tUYWJsZScsXG4gICAgR1VFU1RfRkVFREJBQ0s6ICdHdWVzdEZlZWRiYWNrVGFibGUnLFxuICAgIENPVU5URVI6ICdDb3VudGVyVGFibGUnLFxuICAgIFJFUVVFU1RfSU5WT0lDRTogJ1JlcXVlc3RJbnZvaWNlVGFibGUnLFxuICAgIFBMQVRURVJfU0VBUkNIX0VWRU5UUzogJ1BsYXR0ZXJTZWFyY2hFdmVudHNUYWJsZScsXG4gICAgT1JERVJfUkVWSUVXX0ZFRURCQUNLOiAnT3JkZXJSZXZpZXdGZWVkYmFja1RhYmxlJyxcbiAgICBDQVRFUklOR19SRVFVRVNUOiAnQ2F0ZXJpbmdSZXF1ZXN0VGFibGUnLFxuICAgIEZNUF9SRVFVRVNUX0NBTExCQUNLOiAnRm1wUmVxdWVzdENhbGxiYWNrVGFibGUnLFxuICAgIFBMQVRURVJfRklUOiAnUGxhdHRlckZpdFRhYmxlJyxcblxuICAgIC8vIE9yZGVyIE1vZHVsZSBUYWJsZXNcbiAgICBPUkRFUjogJ09yZGVyVGFibGUnLFxuICAgIE9SREVSX0FERFJFU1M6ICdPcmRlckFkZHJlc3NUYWJsZScsXG4gICAgT1JERVJfUkVWSUVXOiAnT3JkZXJSZXZpZXdUYWJsZScsXG4gICAgUEFZTUVOVDogJ1BheW1lbnRUYWJsZScsXG4gICAgUExBVEVfT1JERVI6ICdQbGF0ZU9yZGVyVGFibGUnLFxuICAgIFRSQUNLSU5HOiAnVHJhY2tpbmdUYWJsZScsXG4gICAgVVNFUl9BRERSRVNTOiAnVXNlckFkZHJlc3NUYWJsZScsXG4gICAgVVNFUl9TUEVDSUZJQ1M6ICdVc2VyU3BlY2lmaWNzVGFibGUnLFxuICAgIEJCUV9TS0VXRVJTOiAnQmJxU2tld2Vyc1RhYmxlJyxcblxuICAgIC8vIE90aGVyIEN1c3RvbWVyIFRhYmxlc1xuICAgIEFERF9PTlM6ICdBZGRPbnNUYWJsZScsXG4gICAgQkFOS19ERVRBSUxTOiAnQmFua0RldGFpbHNUYWJsZScsXG4gICAgQ0FSVDogJ0NhcnRUYWJsZScsXG4gICAgQ0FSVF9DQVRFR09SSUVTOiAnQ2FydENhdGVnb3JpZXNUYWJsZScsXG4gICAgQ0FURUdPUlk6ICdDYXRlZ29yeVRhYmxlJyxcbiAgICBDQVRFUklORzogJ0NhdGVyaW5nVGFibGUnLFxuICAgIENPTlRFTlQ6ICdDb250ZW50VGFibGUnLFxuICAgIENPVVBPTlM6ICdDb3Vwb25zVGFibGUnLFxuICAgIERFRkFVTFRfUExBVFRFUjogJ0RlZmF1bHRQbGF0dGVyVGFibGUnLFxuICAgIERFRkFVTFRfUExBVFRFUl9DQVRFR09SSUVTOiAnRGVmYXVsdFBsYXR0ZXJDYXRlZ29yaWVzVGFibGUnLFxuICAgIERFRkFVTFRfUExBVFRFUl9JVEVNUzogJ0RlZmF1bHRQbGF0dGVySXRlbXNUYWJsZScsXG4gICAgRVZFTlRfRVhFQ1VUSVZFUzogJ0V2ZW50RXhlY3V0aXZlc1RhYmxlJyxcbiAgICBJVEVNUzogJ0l0ZW1zVGFibGUnLFxuICAgIExFQUQ6ICdMZWFkVGFibGUnLFxuICAgIE9DQ0FTSU9OOiAnT2NjYXNpb25UYWJsZScsXG4gICAgUkVGRVJSQUxfQ09OVEVOVDogJ1JlZmVycmFsQ29udGVudFRhYmxlJyxcbiAgICBVU0VSOiAnVXNlclRhYmxlJyxcbiAgICBXQUxMRVQ6ICdXYWxsZXRUYWJsZScsXG4gICAgV0FMTEVUX1RSQU5TQUNUSU9OOiAnV2FsbGV0VHJhbnNhY3Rpb25UYWJsZScsXG4gICAgV0lUSERSQVdOOiAnV2l0aGRyYXduVGFibGUnLFxuXG4gICAgLy8gSW50ZXJuYWwgVXNlciBUYWJsZXNcbiAgICBJTlRFUk5BTF9VU0VSOiAnSW50ZXJuYWxVc2VyVGFibGUnLFxuICAgIEFDVElWSVRZX0xPR1M6ICdBY3Rpdml0eUxvZ3NUYWJsZScsXG4gICAgUVVPVEFUSU9OUzogJ1F1b3RhdGlvbnNUYWJsZScsXG59IGFzIGNvbnN0O1xuXG4vLyBFbnZpcm9ubWVudC1hd2FyZSB0YWJsZSBuYW1lIGdldHRlclxuZXhwb3J0IGNsYXNzIFRhYmxlTmFtZU1hbmFnZXIge1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0VGFibGVOYW1lKGJhc2VUYWJsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBEYXRhYmFzZUZhY3RvcnkuZ2V0VGFibGVOYW1lKGJhc2VUYWJsZU5hbWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0QWxsVGFibGVOYW1lcygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKEJBU0VfVEFCTEVfTkFNRVMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgdGFibGVOYW1lc1trZXldID0gdGhpcy5nZXRUYWJsZU5hbWUodmFsdWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGFibGVOYW1lcztcbiAgICB9XG59XG5cbi8vIEV4cG9ydCBlbnZpcm9ubWVudC1hd2FyZSB0YWJsZSBuYW1lc1xuZXhwb3J0IGNvbnN0IFRBQkxFX05BTUVTID0ge1xuICAgIC8vIEN1c3RvbWVyIEFwcCBUYWJsZXNcbiAgICBBUFBfRkVFREJBQ0s6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQVBQX0ZFRURCQUNLKSxcbiAgICBMU1FfQ1JNOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkxTUV9DUk0pLFxuICAgIENVVExFUlk6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ1VUTEVSWSksXG4gICAgSVRFTV9BQ0NPTVBBTklNRU5UUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5JVEVNX0FDQ09NUEFOSU1FTlRTKSxcbiAgICBDVUlTSU5FOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNVSVNJTkUpLFxuICAgIFRJRVJfREVUQUlMUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5USUVSX0RFVEFJTFMpLFxuICAgIFVTRVJfT1JERVJfU1VNTUFSWTogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5VU0VSX09SREVSX1NVTU1BUlkpLFxuICAgIFRJRVJfUkVGRVJSQUw6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVElFUl9SRUZFUlJBTCksXG4gICAgVVNFUl9BRERSRVNTX1JFUVVFU1Q6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVVNFUl9BRERSRVNTX1JFUVVFU1QpLFxuICAgIENPTU1PTl9GRUVEQkFDSzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DT01NT05fRkVFREJBQ0spLFxuICAgIEdVRVNUX0ZFRURCQUNLOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkdVRVNUX0ZFRURCQUNLKSxcbiAgICBDT1VOVEVSOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNPVU5URVIpLFxuICAgIFJFUVVFU1RfSU5WT0lDRTogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5SRVFVRVNUX0lOVk9JQ0UpLFxuICAgIFBMQVRURVJfU0VBUkNIX0VWRU5UUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5QTEFUVEVSX1NFQVJDSF9FVkVOVFMpLFxuICAgIE9SREVSX1JFVklFV19GRUVEQkFDSzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5PUkRFUl9SRVZJRVdfRkVFREJBQ0spLFxuICAgIENBVEVSSU5HX1JFUVVFU1Q6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ0FURVJJTkdfUkVRVUVTVCksXG4gICAgRk1QX1JFUVVFU1RfQ0FMTEJBQ0s6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuRk1QX1JFUVVFU1RfQ0FMTEJBQ0spLFxuICAgIFBMQVRURVJfRklUOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlBMQVRURVJfRklUKSxcblxuICAgIC8vIE9yZGVyIE1vZHVsZSBUYWJsZXNcbiAgICBPUkRFUjogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5PUkRFUiksXG4gICAgT1JERVJfQUREUkVTUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5PUkRFUl9BRERSRVNTKSxcbiAgICBPUkRFUl9SRVZJRVc6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuT1JERVJfUkVWSUVXKSxcbiAgICBQQVlNRU5UOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlBBWU1FTlQpLFxuICAgIFBMQVRFX09SREVSOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlBMQVRFX09SREVSKSxcbiAgICBUUkFDS0lORzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5UUkFDS0lORyksXG4gICAgVVNFUl9BRERSRVNTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlVTRVJfQUREUkVTUyksXG4gICAgVVNFUl9TUEVDSUZJQ1M6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVVNFUl9TUEVDSUZJQ1MpLFxuICAgIEJCUV9TS0VXRVJTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkJCUV9TS0VXRVJTKSxcblxuICAgIC8vIE90aGVyIEN1c3RvbWVyIFRhYmxlc1xuICAgIEFERF9PTlM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQUREX09OUyksXG4gICAgQkFOS19ERVRBSUxTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkJBTktfREVUQUlMUyksXG4gICAgQ0FSVDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DQVJUKSxcbiAgICBDQVJUX0NBVEVHT1JJRVM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ0FSVF9DQVRFR09SSUVTKSxcbiAgICBDQVRFR09SWTogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DQVRFR09SWSksXG4gICAgQ0FURVJJTkc6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ0FURVJJTkcpLFxuICAgIENPTlRFTlQ6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ09OVEVOVCksXG4gICAgQ09VUE9OUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DT1VQT05TKSxcbiAgICBERUZBVUxUX1BMQVRURVI6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuREVGQVVMVF9QTEFUVEVSKSxcbiAgICBERUZBVUxUX1BMQVRURVJfQ0FURUdPUklFUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5ERUZBVUxUX1BMQVRURVJfQ0FURUdPUklFUyksXG4gICAgREVGQVVMVF9QTEFUVEVSX0lURU1TOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkRFRkFVTFRfUExBVFRFUl9JVEVNUyksXG4gICAgRVZFTlRfRVhFQ1VUSVZFUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5FVkVOVF9FWEVDVVRJVkVTKSxcbiAgICBJVEVNUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5JVEVNUyksXG4gICAgTEVBRDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5MRUFEKSxcbiAgICBPQ0NBU0lPTjogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5PQ0NBU0lPTiksXG4gICAgUkVGRVJSQUxfQ09OVEVOVDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5SRUZFUlJBTF9DT05URU5UKSxcbiAgICBVU0VSOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlVTRVIpLFxuICAgIFdBTExFVDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5XQUxMRVQpLFxuICAgIFdBTExFVF9UUkFOU0FDVElPTjogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5XQUxMRVRfVFJBTlNBQ1RJT04pLFxuICAgIFdJVEhEUkFXTjogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5XSVRIRFJBV04pLFxuXG4gICAgLy8gSW50ZXJuYWwgVXNlciBUYWJsZXNcbiAgICBJTlRFUk5BTF9VU0VSOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLklOVEVSTkFMX1VTRVIpLFxuICAgIEFDVElWSVRZX0xPR1M6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQUNUSVZJVFlfTE9HUyksXG4gICAgUVVPVEFUSU9OUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5RVU9UQVRJT05TKSxcbn0gYXMgY29uc3Q7XG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { GenericDynamooseDAO } from "../../base-dynamoose-dao";
2
+ import { AuthContext } from "../../base-dynamoose-model";
3
+ import { CreatePlatterFitInput, PlatterFit } from "./platter-fit-model";
4
+ type ListResult = {
5
+ items: PlatterFit[];
6
+ nextToken?: string;
7
+ };
8
+ declare class PlatterFitDao extends GenericDynamooseDAO<PlatterFit> {
9
+ /**
10
+ * Connects platter-fit DAO to the table model and its primary key.
11
+ */
12
+ constructor();
13
+ /**
14
+ * Creates one platter-fit record.
15
+ * If platterFitId is not passed, Dynamoose auto-generates it from schema default.
16
+ */
17
+ save: (item: CreatePlatterFitInput, authContext?: AuthContext) => Promise<PlatterFit>;
18
+ /**
19
+ * Updates one platter-fit record by id with conditional existence check.
20
+ */
21
+ update: (platterFitId: string, updates: Partial<PlatterFit>, authContext?: AuthContext) => Promise<PlatterFit>;
22
+ /**
23
+ * Returns one platter-fit record by primary key.
24
+ */
25
+ getById: (platterFitId: string) => Promise<PlatterFit | null>;
26
+ /**
27
+ * Lists records by status using token-based pagination.
28
+ * Pass returned nextToken in the next call to continue.
29
+ */
30
+ listByStatus: (status: string, limit?: number, token?: string) => Promise<ListResult>;
31
+ /**
32
+ * Lists records by occasionType using token-based pagination.
33
+ */
34
+ listByOccasionType: (occasionType: string, limit?: number, token?: string) => Promise<ListResult>;
35
+ /**
36
+ * Lists records by platterId using token-based pagination.
37
+ */
38
+ listByPlatterId: (platterId: string, limit?: number, token?: string) => Promise<ListResult>;
39
+ }
40
+ export declare const platterFitDao: PlatterFitDao;
41
+ export {};
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.platterFitDao = void 0;
7
+ const dynamoose_1 = __importDefault(require("dynamoose"));
8
+ const base_dynamoose_dao_1 = require("../../base-dynamoose-dao");
9
+ const platter_fit_model_1 = require("./platter-fit-model");
10
+ class PlatterFitDao extends base_dynamoose_dao_1.GenericDynamooseDAO {
11
+ /**
12
+ * Connects platter-fit DAO to the table model and its primary key.
13
+ */
14
+ constructor() {
15
+ super(platter_fit_model_1.PlatterFitModel, "platterFitId");
16
+ /**
17
+ * Creates one platter-fit record.
18
+ * If platterFitId is not passed, Dynamoose auto-generates it from schema default.
19
+ */
20
+ this.save = async (item, authContext) => {
21
+ return super.save(item, authContext);
22
+ };
23
+ /**
24
+ * Updates one platter-fit record by id with conditional existence check.
25
+ */
26
+ this.update = async (platterFitId, updates, authContext) => {
27
+ const updated = await platter_fit_model_1.PlatterFitModel.update({ platterFitId }, {
28
+ ...updates,
29
+ updated_time: new Date(),
30
+ updated_user: authContext?.userSub
31
+ }, {
32
+ condition: new dynamoose_1.default.Condition().where("platterFitId").eq(platterFitId)
33
+ });
34
+ return { ...updated };
35
+ };
36
+ /**
37
+ * Returns one platter-fit record by primary key.
38
+ */
39
+ this.getById = async (platterFitId) => this.get(platterFitId);
40
+ /**
41
+ * Lists records by status using token-based pagination.
42
+ * Pass returned nextToken in the next call to continue.
43
+ */
44
+ this.listByStatus = async (status, limit, token) => {
45
+ const decodedToken = this.decode(token);
46
+ let queryBuilder = platter_fit_model_1.PlatterFitModel
47
+ .query("status")
48
+ .eq(status)
49
+ .using("statusIndex");
50
+ if (decodedToken) {
51
+ queryBuilder = queryBuilder.startAt(decodedToken);
52
+ }
53
+ if (typeof limit === "number") {
54
+ queryBuilder = queryBuilder.limit(limit);
55
+ }
56
+ const queryResult = await queryBuilder.exec();
57
+ return {
58
+ items: queryResult.map((item) => ({ ...item })),
59
+ nextToken: await this.encode(queryResult.lastKey)
60
+ };
61
+ };
62
+ /**
63
+ * Lists records by occasionType using token-based pagination.
64
+ */
65
+ this.listByOccasionType = async (occasionType, limit, token) => {
66
+ const decodedToken = this.decode(token);
67
+ let queryBuilder = platter_fit_model_1.PlatterFitModel
68
+ .query("occasionType")
69
+ .eq(occasionType)
70
+ .using("occasionTypeIndex");
71
+ if (decodedToken) {
72
+ queryBuilder = queryBuilder.startAt(decodedToken);
73
+ }
74
+ if (typeof limit === "number") {
75
+ queryBuilder = queryBuilder.limit(limit);
76
+ }
77
+ const queryResult = await queryBuilder.exec();
78
+ return {
79
+ items: queryResult.map((item) => ({ ...item })),
80
+ nextToken: await this.encode(queryResult.lastKey)
81
+ };
82
+ };
83
+ /**
84
+ * Lists records by platterId using token-based pagination.
85
+ */
86
+ this.listByPlatterId = async (platterId, limit, token) => {
87
+ const decodedToken = this.decode(token);
88
+ let queryBuilder = platter_fit_model_1.PlatterFitModel
89
+ .query("platterId")
90
+ .eq(platterId)
91
+ .using("platterIdIndex");
92
+ if (decodedToken) {
93
+ queryBuilder = queryBuilder.startAt(decodedToken);
94
+ }
95
+ if (typeof limit === "number") {
96
+ queryBuilder = queryBuilder.limit(limit);
97
+ }
98
+ const queryResult = await queryBuilder.exec();
99
+ return {
100
+ items: queryResult.map((item) => ({ ...item })),
101
+ nextToken: await this.encode(queryResult.lastKey)
102
+ };
103
+ };
104
+ }
105
+ }
106
+ exports.platterFitDao = new PlatterFitDao();
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdHRlci1maXQtZGFvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2N1c3RvbWVyLXVzZXIvcGxhdHRlci1maXQtbW9kdWxlL3BsYXR0ZXItZml0LWRhby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwREFBa0M7QUFDbEMsaUVBQTBFO0FBRTFFLDJEQUF5RjtBQU96RixNQUFNLGFBQWMsU0FBUSx3Q0FBK0I7SUFDdkQ7O09BRUc7SUFDSDtRQUNJLEtBQUssQ0FBQyxtQ0FBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRzNDOzs7V0FHRztRQUNILFNBQUksR0FBRyxLQUFLLEVBQUUsSUFBMkIsRUFBRSxXQUF5QixFQUF1QixFQUFFO1lBQ3pGLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFrQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQztRQUVGOztXQUVHO1FBQ0gsV0FBTSxHQUFHLEtBQUssRUFDVixZQUFvQixFQUNwQixPQUE0QixFQUM1QixXQUF5QixFQUNOLEVBQUU7WUFDckIsTUFBTSxPQUFPLEdBQUcsTUFBTSxtQ0FBZSxDQUFDLE1BQU0sQ0FDeEMsRUFBRSxZQUFZLEVBQUUsRUFDaEI7Z0JBQ0ksR0FBRyxPQUFPO2dCQUNWLFlBQVksRUFBRSxJQUFJLElBQUksRUFBRTtnQkFDeEIsWUFBWSxFQUFFLFdBQVcsRUFBRSxPQUFPO2FBQ3JDLEVBQ0Q7Z0JBQ0ksU0FBUyxFQUFFLElBQUksbUJBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQzthQUM5RSxDQUNKLENBQUM7WUFDRixPQUFPLEVBQUUsR0FBSSxPQUFrQixFQUFnQixDQUFDO1FBQ3BELENBQUMsQ0FBQztRQUVGOztXQUVHO1FBQ0gsWUFBTyxHQUFHLEtBQUssRUFBRSxZQUFvQixFQUE4QixFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FB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Q0FBQztZQUM3QyxDQUFDO1lBRUQsTUFBTSxXQUFXLEdBQUcsTUFBTSxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFOUMsT0FBTztnQkFDSCxLQUFLLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUksSUFBZSxFQUFpQixDQUFBLENBQUM7Z0JBQ3pFLFNBQVMsRUFBRSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQWdDLENBQUM7YUFDN0UsQ0FBQztRQUNOLENBQUMsQ0FBQztJQS9HRixDQUFDO0NBZ0hKO0FBRVksUUFBQSxhQUFhLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkeW5hbW9vc2UgZnJvbSBcImR5bmFtb29zZVwiO1xuaW1wb3J0IHsgRHluYW1vS2V5LCBHZW5lcmljRHluYW1vb3NlREFPIH0gZnJvbSBcIi4uLy4uL2Jhc2UtZHluYW1vb3NlLWRhb1wiO1xuaW1wb3J0IHsgQXV0aENvbnRleHQgfSBmcm9tIFwiLi4vLi4vYmFzZS1keW5hbW9vc2UtbW9kZWxcIjtcbmltcG9ydCB7IENyZWF0ZVBsYXR0ZXJGaXRJbnB1dCwgUGxhdHRlckZpdCwgUGxhdHRlckZpdE1vZGVsIH0gZnJvbSBcIi4vcGxhdHRlci1maXQtbW9kZWxcIjtcblxudHlwZSBMaXN0UmVzdWx0ID0ge1xuICAgIGl0ZW1zOiBQbGF0dGVyRml0W107XG4gICAgbmV4dFRva2VuPzogc3RyaW5nO1xufTtcblxuY2xhc3MgUGxhdHRlckZpdERhbyBleHRlbmRzIEdlbmVyaWNEeW5hbW9vc2VEQU88UGxhdHRlckZpdD4ge1xuICAgIC8qKlxuICAgICAqIENvbm5lY3RzIHBsYXR0ZXItZml0IERBTyB0byB0aGUgdGFibGUgbW9kZWwgYW5kIGl0cyBwcmltYXJ5IGtleS5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoUGxhdHRlckZpdE1vZGVsLCBcInBsYXR0ZXJGaXRJZFwiKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIG9uZSBwbGF0dGVyLWZpdCByZWNvcmQuXG4gICAgICogSWYgcGxhdHRlckZpdElkIGlzIG5vdCBwYXNzZWQsIER5bmFtb29zZSBhdXRvLWdlbmVyYXRlcyBpdCBmcm9tIHNjaGVtYSBkZWZhdWx0LlxuICAgICAqL1xuICAgIHNhdmUgPSBhc3luYyAoaXRlbTogQ3JlYXRlUGxhdHRlckZpdElucHV0LCBhdXRoQ29udGV4dD86IEF1dGhDb250ZXh0KTogUHJvbWlzZTxQbGF0dGVyRml0PiA9PiB7XG4gICAgICAgIHJldHVybiBzdXBlci5zYXZlKGl0ZW0gYXMgUGxhdHRlckZpdCwgYXV0aENvbnRleHQpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIG9uZSBwbGF0dGVyLWZpdCByZWNvcmQgYnkgaWQgd2l0aCBjb25kaXRpb25hbCBleGlzdGVuY2UgY2hlY2suXG4gICAgICovXG4gICAgdXBkYXRlID0gYXN5bmMgKFxuICAgICAgICBwbGF0dGVyRml0SWQ6IHN0cmluZyxcbiAgICAgICAgdXBkYXRlczogUGFydGlhbDxQbGF0dGVyRml0PixcbiAgICAgICAgYXV0aENvbnRleHQ/OiBBdXRoQ29udGV4dFxuICAgICk6IFByb21pc2U8UGxhdHRlckZpdD4gPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVkID0gYXdhaXQgUGxhdHRlckZpdE1vZGVsLnVwZGF0ZShcbiAgICAgICAgICAgIHsgcGxhdHRlckZpdElkIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4udXBkYXRlcyxcbiAgICAgICAgICAgICAgICB1cGRhdGVkX3RpbWU6IG5ldyBEYXRlKCksXG4gICAgICAgICAgICAgICAgdXBkYXRlZF91c2VyOiBhdXRoQ29udGV4dD8udXNlclN1YlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25kaXRpb246IG5ldyBkeW5hbW9vc2UuQ29uZGl0aW9uKCkud2hlcmUoXCJwbGF0dGVyRml0SWRcIikuZXEocGxhdHRlckZpdElkKVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4geyAuLi4odXBkYXRlZCBhcyBvYmplY3QpIH0gYXMgUGxhdHRlckZpdDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBvbmUgcGxhdHRlci1maXQgcmVjb3JkIGJ5IHByaW1hcnkga2V5LlxuICAgICAqL1xuICAgIGdldEJ5SWQgPSBhc3luYyAocGxhdHRlckZpdElkOiBzdHJpbmcpOiBQcm9taXNlPFBsYXR0ZXJGaXQgfCBudWxsPiA9PiB0aGlzLmdldChwbGF0dGVyRml0SWQpO1xuXG4gICAgLyoqXG4gICAgICogTGlzdHMgcmVjb3JkcyBieSBzdGF0dXMgdXNpbmcgdG9rZW4tYmFzZWQgcGFnaW5hdGlvbi5cbiAgICAgKiBQYXNzIHJldHVybmVkIG5leHRUb2tlbiBpbiB0aGUgbmV4dCBjYWxsIHRvIGNvbnRpbnVlLlxuICAgICAqL1xuICAgIGxpc3RCeVN0YXR1cyA9IGFzeW5jIChzdGF0dXM6IHN0cmluZywgbGltaXQ/OiBudW1iZXIsIHRva2VuPzogc3RyaW5nKTogUHJvbWlzZTxMaXN0UmVzdWx0PiA9PiB7XG4gICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IHRoaXMuZGVjb2RlKHRva2VuKTtcbiAgICAgICAgbGV0IHF1ZXJ5QnVpbGRlciA9IFBsYXR0ZXJGaXRNb2RlbFxuICAgICAgICAgICAgLnF1ZXJ5KFwic3RhdHVzXCIpXG4gICAgICAgICAgICAuZXEoc3RhdHVzKVxuICAgICAgICAgICAgLnVzaW5nKFwic3RhdHVzSW5kZXhcIik7XG4gICAgICAgIGlmIChkZWNvZGVkVG9rZW4pIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5zdGFydEF0KGRlY29kZWRUb2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBsaW1pdCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcXVlcnlCdWlsZGVyID0gcXVlcnlCdWlsZGVyLmxpbWl0KGxpbWl0KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBxdWVyeVJlc3VsdCA9IGF3YWl0IHF1ZXJ5QnVpbGRlci5leGVjKCk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGl0ZW1zOiBxdWVyeVJlc3VsdC5tYXAoKGl0ZW0pID0+ICh7IC4uLihpdGVtIGFzIG9iamVjdCkgfSBhcyBQbGF0dGVyRml0KSksXG4gICAgICAgICAgICBuZXh0VG9rZW46IGF3YWl0IHRoaXMuZW5jb2RlKHF1ZXJ5UmVzdWx0Lmxhc3RLZXkgYXMgRHluYW1vS2V5IHwgdW5kZWZpbmVkKVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMaXN0cyByZWNvcmRzIGJ5IG9jY2FzaW9uVHlwZSB1c2luZyB0b2tlbi1iYXNlZCBwYWdpbmF0aW9uLlxuICAgICAqL1xuICAgIGxpc3RCeU9jY2FzaW9uVHlwZSA9IGFzeW5jIChvY2Nhc2lvblR5cGU6IHN0cmluZywgbGltaXQ/OiBudW1iZXIsIHRva2VuPzogc3RyaW5nKTogUHJvbWlzZTxMaXN0UmVzdWx0PiA9PiB7XG4gICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IHRoaXMuZGVjb2RlKHRva2VuKTtcbiAgICAgICAgbGV0IHF1ZXJ5QnVpbGRlciA9IFBsYXR0ZXJGaXRNb2RlbFxuICAgICAgICAgICAgLnF1ZXJ5KFwib2NjYXNpb25UeXBlXCIpXG4gICAgICAgICAgICAuZXEob2NjYXNpb25UeXBlKVxuICAgICAgICAgICAgLnVzaW5nKFwib2NjYXNpb25UeXBlSW5kZXhcIik7XG5cbiAgICAgICAgaWYgKGRlY29kZWRUb2tlbikge1xuICAgICAgICAgICAgcXVlcnlCdWlsZGVyID0gcXVlcnlCdWlsZGVyLnN0YXJ0QXQoZGVjb2RlZFRva2VuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgbGltaXQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5saW1pdChsaW1pdCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBxdWVyeVJlc3VsdCA9IGF3YWl0IHF1ZXJ5QnVpbGRlci5leGVjKCk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGl0ZW1zOiBxdWVyeVJlc3VsdC5tYXAoKGl0ZW0pID0+ICh7IC4uLihpdGVtIGFzIG9iamVjdCkgfSBhcyBQbGF0dGVyRml0KSksXG4gICAgICAgICAgICBuZXh0VG9rZW46IGF3YWl0IHRoaXMuZW5jb2RlKHF1ZXJ5UmVzdWx0Lmxhc3RLZXkgYXMgRHluYW1vS2V5IHwgdW5kZWZpbmVkKVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMaXN0cyByZWNvcmRzIGJ5IHBsYXR0ZXJJZCB1c2luZyB0b2tlbi1iYXNlZCBwYWdpbmF0aW9uLlxuICAgICAqL1xuICAgIGxpc3RCeVBsYXR0ZXJJZCA9IGFzeW5jIChwbGF0dGVySWQ6IHN0cmluZywgbGltaXQ/OiBudW1iZXIsIHRva2VuPzogc3RyaW5nKTogUHJvbWlzZTxMaXN0UmVzdWx0PiA9PiB7XG4gICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IHRoaXMuZGVjb2RlKHRva2VuKTtcbiAgICAgICAgbGV0IHF1ZXJ5QnVpbGRlciA9IFBsYXR0ZXJGaXRNb2RlbFxuICAgICAgICAgICAgLnF1ZXJ5KFwicGxhdHRlcklkXCIpXG4gICAgICAgICAgICAuZXEocGxhdHRlcklkKVxuICAgICAgICAgICAgLnVzaW5nKFwicGxhdHRlcklkSW5kZXhcIik7XG5cbiAgICAgICAgaWYgKGRlY29kZWRUb2tlbikge1xuICAgICAgICAgICAgcXVlcnlCdWlsZGVyID0gcXVlcnlCdWlsZGVyLnN0YXJ0QXQoZGVjb2RlZFRva2VuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgbGltaXQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5saW1pdChsaW1pdCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBxdWVyeVJlc3VsdCA9IGF3YWl0IHF1ZXJ5QnVpbGRlci5leGVjKCk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGl0ZW1zOiBxdWVyeVJlc3VsdC5tYXAoKGl0ZW0pID0+ICh7IC4uLihpdGVtIGFzIG9iamVjdCkgfSBhcyBQbGF0dGVyRml0KSksXG4gICAgICAgICAgICBuZXh0VG9rZW46IGF3YWl0IHRoaXMuZW5jb2RlKHF1ZXJ5UmVzdWx0Lmxhc3RLZXkgYXMgRHluYW1vS2V5IHwgdW5kZWZpbmVkKVxuICAgICAgICB9O1xuICAgIH07XG59XG5cbmV4cG9ydCBjb25zdCBwbGF0dGVyRml0RGFvID0gbmV3IFBsYXR0ZXJGaXREYW8oKTtcbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { BaseDynamooseModel } from "../../base-dynamoose-model";
2
+ export declare const PLATTER_FIT_TABLE_NAME = "PlatterFitTable";
3
+ export interface PlatterFit extends BaseDynamooseModel {
4
+ platterFitId: string;
5
+ occasionName: string;
6
+ occasionType: string;
7
+ occasionSubType?: string;
8
+ minPax: number;
9
+ maxPax: number;
10
+ budgetTier: string;
11
+ rank: number;
12
+ rankTag?: string;
13
+ platterId: string;
14
+ platterName: string;
15
+ bucketPaxDescription?: string;
16
+ occasionDescription?: string;
17
+ othersDescription?: string;
18
+ status: string;
19
+ }
20
+ export type CreatePlatterFitInput = Omit<PlatterFit, "platterFitId"> & {
21
+ platterFitId?: string;
22
+ };
23
+ export declare const PlatterFitModel: import("dynamoose/dist/General").ModelType<import("dynamoose/dist/Item").AnyItem>;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PlatterFitModel = exports.PLATTER_FIT_TABLE_NAME = void 0;
7
+ const dynamoose_1 = __importDefault(require("dynamoose"));
8
+ const crypto_1 = require("crypto");
9
+ const base_dynamoose_model_1 = require("../../base-dynamoose-model");
10
+ exports.PLATTER_FIT_TABLE_NAME = "PlatterFitTable";
11
+ const platterFitSchema = new dynamoose_1.default.Schema({
12
+ platterFitId: {
13
+ type: String,
14
+ hashKey: true,
15
+ required: true,
16
+ default: () => (0, crypto_1.randomUUID)()
17
+ },
18
+ occasionName: {
19
+ type: String,
20
+ required: true
21
+ },
22
+ occasionType: {
23
+ type: String,
24
+ required: true,
25
+ index: {
26
+ name: "occasionTypeIndex",
27
+ type: "global"
28
+ }
29
+ },
30
+ occasionSubType: String,
31
+ minPax: {
32
+ type: Number,
33
+ required: true
34
+ },
35
+ maxPax: {
36
+ type: Number,
37
+ required: true
38
+ },
39
+ budgetTier: {
40
+ type: String,
41
+ required: true
42
+ },
43
+ rank: {
44
+ type: Number,
45
+ required: true
46
+ },
47
+ rankTag: String,
48
+ platterId: {
49
+ type: String,
50
+ required: true,
51
+ index: {
52
+ name: "platterIdIndex",
53
+ type: "global"
54
+ }
55
+ },
56
+ platterName: {
57
+ type: String,
58
+ required: true
59
+ },
60
+ bucketPaxDescription: String,
61
+ occasionDescription: String,
62
+ othersDescription: String,
63
+ status: {
64
+ type: String,
65
+ required: true,
66
+ index: {
67
+ name: "statusIndex",
68
+ type: "global"
69
+ }
70
+ },
71
+ ...base_dynamoose_model_1.BASE_DYNAMOOSE_AUDIT_SCHEMA
72
+ }, {
73
+ saveUnknown: false
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=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cmp-aws-database",
3
- "version": "1.7.1-dev.26",
3
+ "version": "1.7.1-dev.28",
4
4
  "bin": {
5
5
  "craft-my-plate-database": "bin/craft-my-plate-database.js"
6
6
  },