cmp-aws-database 2.1.2-proddebug.10 → 2.1.2-proddebug.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,140 @@
1
+ import { GenericDynamooseDAO } from "../../base-dynamoose-dao";
2
+ import { AuthContext } from "../../base-dynamoose-model";
3
+ import { CreateLsqPriorityUpdationInput, LsqPassedStr, LsqPriorityUpdation } from "./lsq-priority-updation-model";
4
+ type ListResult = {
5
+ items: LsqPriorityUpdation[];
6
+ nextToken?: string;
7
+ };
8
+ /**
9
+ * DAO for LeadSquared priority-updation queue.
10
+ *
11
+ * Table keys: `lsqPriorityUpdationId` (PK).
12
+ * Lookups:
13
+ * - `opportunityIdIndex` → by LeadSquared `opportunityId`
14
+ * - `leadNumberIndex` → by lead phone/number
15
+ * - `statusIndex` → by record `status`
16
+ * - `passedStrIndex` → unprocessed queue (`passedStr` + `priorityRank`)
17
+ * Processed rows are deleted from the table (not soft-flagged).
18
+ */
19
+ declare class LsqPriorityUpdationDao extends GenericDynamooseDAO<LsqPriorityUpdation> {
20
+ constructor();
21
+ private normalizeInput;
22
+ /**
23
+ * Creates / queues one opportunity for priority updation.
24
+ *
25
+ * Use when: LeadSquared webhook receives a new/updated opportunity.
26
+ * - `lsqPriorityUpdationId` auto-generates if omitted.
27
+ * - Auto-fills `passedStr` from `passed` (`false` → `"FALSE"`).
28
+ * - Auto-fills `priorityRank` from `priority` (P1→1 … P5→5).
29
+ *
30
+ * @example
31
+ * await lsqPriorityUpdationDao.save({
32
+ * opportunityId: "opp-123",
33
+ * leadNumber: "9876543210",
34
+ * passed: false,
35
+ * priority: "P1",
36
+ * urgency: "U2",
37
+ * value: "V3",
38
+ * eventDate: "2026-07-30",
39
+ * payload: { raw: "webhook-body" }
40
+ * });
41
+ */
42
+ save: (item: CreateLsqPriorityUpdationInput, authContext?: AuthContext) => Promise<LsqPriorityUpdation>;
43
+ /**
44
+ * Updates an existing queued record by `lsqPriorityUpdationId`.
45
+ *
46
+ * Use when: recalculating priority/urgency/value (e.g. midnight job) or
47
+ * refreshing webhook payload fields.
48
+ * - Re-syncs `passedStr` / `priorityRank` when `passed` / `priority` change.
49
+ * - Always refreshes `updatedAt`.
50
+ *
51
+ * @example
52
+ * await lsqPriorityUpdationDao.update("lsq-uuid", {
53
+ * priority: "P2",
54
+ * urgency: "U1",
55
+ * value: "V2"
56
+ * });
57
+ */
58
+ update: (lsqPriorityUpdationId: string, updates: Partial<LsqPriorityUpdation>, authContext?: AuthContext) => Promise<LsqPriorityUpdation>;
59
+ /**
60
+ * Fetches one queue record by table primary key.
61
+ *
62
+ * @example
63
+ * const row = await lsqPriorityUpdationDao.getById("lsq-uuid");
64
+ */
65
+ getById: (lsqPriorityUpdationId: string) => Promise<LsqPriorityUpdation | null>;
66
+ /**
67
+ * Fetches one queue record by LeadSquared `opportunityId` (GSI `opportunityIdIndex`).
68
+ *
69
+ * @example
70
+ * const row = await lsqPriorityUpdationDao.getByOpportunityId("opp-123");
71
+ */
72
+ getByOpportunityId: (opportunityId: string) => Promise<LsqPriorityUpdation | null>;
73
+ /**
74
+ * Lists queue records by LeadSquared `opportunityId` (GSI `opportunityIdIndex`).
75
+ *
76
+ * @example
77
+ * const { items } = await lsqPriorityUpdationDao.listByOpportunityId("opp-123");
78
+ */
79
+ listByOpportunityId: (opportunityId: string, limit?: number, token?: string) => Promise<ListResult>;
80
+ /**
81
+ * Fetches one queue record by `leadNumber` (GSI `leadNumberIndex`).
82
+ *
83
+ * @example
84
+ * const row = await lsqPriorityUpdationDao.getByLeadNumber("9876543210");
85
+ */
86
+ getByLeadNumber: (leadNumber: string) => Promise<LsqPriorityUpdation | null>;
87
+ /**
88
+ * Lists queue records by `leadNumber` (GSI `leadNumberIndex`).
89
+ *
90
+ * @example
91
+ * const { items } = await lsqPriorityUpdationDao.listByLeadNumber("9876543210");
92
+ */
93
+ listByLeadNumber: (leadNumber: string, limit?: number, token?: string) => Promise<ListResult>;
94
+ /**
95
+ * Lists queue records by `status` (GSI `statusIndex`).
96
+ *
97
+ * @example
98
+ * const { items } = await lsqPriorityUpdationDao.listByStatus("PENDING", 25);
99
+ */
100
+ listByStatus: (status: string, limit?: number, token?: string) => Promise<ListResult>;
101
+ /**
102
+ * Lists queued (unprocessed) opportunities sorted by `priorityRank` ascending.
103
+ *
104
+ * Use when: worker pulls next batch of unassigned LSQ priority updates.
105
+ * Queries GSI `passedStrIndex` with `passedStr = "FALSE"`.
106
+ *
107
+ * @example
108
+ * const { items, nextToken } = await lsqPriorityUpdationDao.listUnprocessed(25);
109
+ */
110
+ listUnprocessed: (limit?: number, token?: string) => Promise<ListResult>;
111
+ /**
112
+ * Lists opportunities by `passedStr` (GSI `passedStrIndex`), sorted by `priorityRank`.
113
+ *
114
+ * @example
115
+ * const queued = await lsqPriorityUpdationDao.listByPassedStr("FALSE", 25);
116
+ */
117
+ listByPassedStr: (passedStr: LsqPassedStr, limit?: number, token?: string) => Promise<ListResult>;
118
+ /**
119
+ * Marks a queue row as processed by deleting it via primary key.
120
+ *
121
+ * Use when: worker successfully applied priority update in LeadSquared.
122
+ *
123
+ * @example
124
+ * await lsqPriorityUpdationDao.markProcessed("lsq-uuid");
125
+ */
126
+ markProcessed: (lsqPriorityUpdationId: string) => Promise<void>;
127
+ /**
128
+ * Marks processed by LeadSquared `opportunityId` (lookup GSI, then delete by PK).
129
+ *
130
+ * @example
131
+ * await lsqPriorityUpdationDao.markProcessedByOpportunityId("opp-123");
132
+ */
133
+ markProcessedByOpportunityId: (opportunityId: string) => Promise<boolean>;
134
+ /**
135
+ * Deletes one queue record by primary key.
136
+ */
137
+ deleteById: (lsqPriorityUpdationId: string) => Promise<void>;
138
+ }
139
+ export declare const lsqPriorityUpdationDao: LsqPriorityUpdationDao;
140
+ export {};
@@ -0,0 +1,253 @@
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.lsqPriorityUpdationDao = void 0;
7
+ const dynamoose_1 = __importDefault(require("dynamoose"));
8
+ const base_dynamoose_dao_1 = require("../../base-dynamoose-dao");
9
+ const lsq_priority_updation_model_1 = require("./lsq-priority-updation-model");
10
+ /**
11
+ * DAO for LeadSquared priority-updation queue.
12
+ *
13
+ * Table keys: `lsqPriorityUpdationId` (PK).
14
+ * Lookups:
15
+ * - `opportunityIdIndex` → by LeadSquared `opportunityId`
16
+ * - `leadNumberIndex` → by lead phone/number
17
+ * - `statusIndex` → by record `status`
18
+ * - `passedStrIndex` → unprocessed queue (`passedStr` + `priorityRank`)
19
+ * Processed rows are deleted from the table (not soft-flagged).
20
+ */
21
+ class LsqPriorityUpdationDao extends base_dynamoose_dao_1.GenericDynamooseDAO {
22
+ constructor() {
23
+ super(lsq_priority_updation_model_1.LsqPriorityUpdationModel, "lsqPriorityUpdationId");
24
+ this.normalizeInput = (item) => {
25
+ const passed = item.passed ?? false;
26
+ const priority = item.priority;
27
+ return {
28
+ ...item,
29
+ passed,
30
+ passedStr: item.passedStr ?? (0, lsq_priority_updation_model_1.toPassedStr)(passed),
31
+ priorityRank: item.priorityRank ?? (priority ? (0, lsq_priority_updation_model_1.toPriorityRank)(priority) : undefined)
32
+ };
33
+ };
34
+ /**
35
+ * Creates / queues one opportunity for priority updation.
36
+ *
37
+ * Use when: LeadSquared webhook receives a new/updated opportunity.
38
+ * - `lsqPriorityUpdationId` auto-generates if omitted.
39
+ * - Auto-fills `passedStr` from `passed` (`false` → `"FALSE"`).
40
+ * - Auto-fills `priorityRank` from `priority` (P1→1 … P5→5).
41
+ *
42
+ * @example
43
+ * await lsqPriorityUpdationDao.save({
44
+ * opportunityId: "opp-123",
45
+ * leadNumber: "9876543210",
46
+ * passed: false,
47
+ * priority: "P1",
48
+ * urgency: "U2",
49
+ * value: "V3",
50
+ * eventDate: "2026-07-30",
51
+ * payload: { raw: "webhook-body" }
52
+ * });
53
+ */
54
+ this.save = async (item, authContext) => {
55
+ return super.save(this.normalizeInput(item), authContext);
56
+ };
57
+ /**
58
+ * Updates an existing queued record by `lsqPriorityUpdationId`.
59
+ *
60
+ * Use when: recalculating priority/urgency/value (e.g. midnight job) or
61
+ * refreshing webhook payload fields.
62
+ * - Re-syncs `passedStr` / `priorityRank` when `passed` / `priority` change.
63
+ * - Always refreshes `updatedAt`.
64
+ *
65
+ * @example
66
+ * await lsqPriorityUpdationDao.update("lsq-uuid", {
67
+ * priority: "P2",
68
+ * urgency: "U1",
69
+ * value: "V2"
70
+ * });
71
+ */
72
+ this.update = async (lsqPriorityUpdationId, updates, authContext) => {
73
+ const nextUpdates = {
74
+ ...updates,
75
+ updated_time: new Date(),
76
+ updated_user: authContext?.userSub
77
+ };
78
+ if (typeof updates.passed === "boolean") {
79
+ nextUpdates.passedStr = updates.passedStr ?? (0, lsq_priority_updation_model_1.toPassedStr)(updates.passed);
80
+ }
81
+ if (updates.priority) {
82
+ nextUpdates.priorityRank = updates.priorityRank ?? (0, lsq_priority_updation_model_1.toPriorityRank)(updates.priority);
83
+ }
84
+ const updated = await lsq_priority_updation_model_1.LsqPriorityUpdationModel.update({ lsqPriorityUpdationId }, nextUpdates, {
85
+ condition: new dynamoose_1.default.Condition().attribute("lsqPriorityUpdationId").exists()
86
+ });
87
+ return updated;
88
+ };
89
+ /**
90
+ * Fetches one queue record by table primary key.
91
+ *
92
+ * @example
93
+ * const row = await lsqPriorityUpdationDao.getById("lsq-uuid");
94
+ */
95
+ this.getById = async (lsqPriorityUpdationId) => this.get(lsqPriorityUpdationId);
96
+ /**
97
+ * Fetches one queue record by LeadSquared `opportunityId` (GSI `opportunityIdIndex`).
98
+ *
99
+ * @example
100
+ * const row = await lsqPriorityUpdationDao.getByOpportunityId("opp-123");
101
+ */
102
+ this.getByOpportunityId = async (opportunityId) => {
103
+ const result = await this.listByOpportunityId(opportunityId, 1);
104
+ return result.items[0] ?? null;
105
+ };
106
+ /**
107
+ * Lists queue records by LeadSquared `opportunityId` (GSI `opportunityIdIndex`).
108
+ *
109
+ * @example
110
+ * const { items } = await lsqPriorityUpdationDao.listByOpportunityId("opp-123");
111
+ */
112
+ this.listByOpportunityId = async (opportunityId, limit, token) => {
113
+ const decodedToken = this.decode(token);
114
+ let queryBuilder = lsq_priority_updation_model_1.LsqPriorityUpdationModel.query("opportunityId")
115
+ .eq(opportunityId)
116
+ .using("opportunityIdIndex");
117
+ if (decodedToken) {
118
+ queryBuilder = queryBuilder.startAt(decodedToken);
119
+ }
120
+ if (typeof limit === "number") {
121
+ queryBuilder = queryBuilder.limit(limit);
122
+ }
123
+ const queryResult = await queryBuilder.exec();
124
+ return {
125
+ items: queryResult,
126
+ nextToken: await this.encode(queryResult.lastKey)
127
+ };
128
+ };
129
+ /**
130
+ * Fetches one queue record by `leadNumber` (GSI `leadNumberIndex`).
131
+ *
132
+ * @example
133
+ * const row = await lsqPriorityUpdationDao.getByLeadNumber("9876543210");
134
+ */
135
+ this.getByLeadNumber = async (leadNumber) => {
136
+ const result = await this.listByLeadNumber(leadNumber, 1);
137
+ return result.items[0] ?? null;
138
+ };
139
+ /**
140
+ * Lists queue records by `leadNumber` (GSI `leadNumberIndex`).
141
+ *
142
+ * @example
143
+ * const { items } = await lsqPriorityUpdationDao.listByLeadNumber("9876543210");
144
+ */
145
+ this.listByLeadNumber = async (leadNumber, limit, token) => {
146
+ const decodedToken = this.decode(token);
147
+ let queryBuilder = lsq_priority_updation_model_1.LsqPriorityUpdationModel.query("leadNumber")
148
+ .eq(leadNumber)
149
+ .using("leadNumberIndex");
150
+ if (decodedToken) {
151
+ queryBuilder = queryBuilder.startAt(decodedToken);
152
+ }
153
+ if (typeof limit === "number") {
154
+ queryBuilder = queryBuilder.limit(limit);
155
+ }
156
+ const queryResult = await queryBuilder.exec();
157
+ return {
158
+ items: queryResult,
159
+ nextToken: await this.encode(queryResult.lastKey)
160
+ };
161
+ };
162
+ /**
163
+ * Lists queue records by `status` (GSI `statusIndex`).
164
+ *
165
+ * @example
166
+ * const { items } = await lsqPriorityUpdationDao.listByStatus("PENDING", 25);
167
+ */
168
+ this.listByStatus = async (status, limit, token) => {
169
+ const decodedToken = this.decode(token);
170
+ let queryBuilder = lsq_priority_updation_model_1.LsqPriorityUpdationModel.query("status")
171
+ .eq(status)
172
+ .using("statusIndex");
173
+ if (decodedToken) {
174
+ queryBuilder = queryBuilder.startAt(decodedToken);
175
+ }
176
+ if (typeof limit === "number") {
177
+ queryBuilder = queryBuilder.limit(limit);
178
+ }
179
+ const queryResult = await queryBuilder.exec();
180
+ return {
181
+ items: queryResult,
182
+ nextToken: await this.encode(queryResult.lastKey)
183
+ };
184
+ };
185
+ /**
186
+ * Lists queued (unprocessed) opportunities sorted by `priorityRank` ascending.
187
+ *
188
+ * Use when: worker pulls next batch of unassigned LSQ priority updates.
189
+ * Queries GSI `passedStrIndex` with `passedStr = "FALSE"`.
190
+ *
191
+ * @example
192
+ * const { items, nextToken } = await lsqPriorityUpdationDao.listUnprocessed(25);
193
+ */
194
+ this.listUnprocessed = async (limit, token) => this.listByPassedStr(lsq_priority_updation_model_1.LSQ_PASSED_STR.FALSE, limit, token);
195
+ /**
196
+ * Lists opportunities by `passedStr` (GSI `passedStrIndex`), sorted by `priorityRank`.
197
+ *
198
+ * @example
199
+ * const queued = await lsqPriorityUpdationDao.listByPassedStr("FALSE", 25);
200
+ */
201
+ this.listByPassedStr = async (passedStr, limit, token) => {
202
+ const decodedToken = this.decode(token);
203
+ let queryBuilder = lsq_priority_updation_model_1.LsqPriorityUpdationModel.query("passedStr")
204
+ .eq(passedStr)
205
+ .using("passedStrIndex")
206
+ .sort("ascending");
207
+ if (decodedToken) {
208
+ queryBuilder = queryBuilder.startAt(decodedToken);
209
+ }
210
+ if (typeof limit === "number") {
211
+ queryBuilder = queryBuilder.limit(limit);
212
+ }
213
+ const queryResult = await queryBuilder.exec();
214
+ return {
215
+ items: queryResult,
216
+ nextToken: await this.encode(queryResult.lastKey)
217
+ };
218
+ };
219
+ /**
220
+ * Marks a queue row as processed by deleting it via primary key.
221
+ *
222
+ * Use when: worker successfully applied priority update in LeadSquared.
223
+ *
224
+ * @example
225
+ * await lsqPriorityUpdationDao.markProcessed("lsq-uuid");
226
+ */
227
+ this.markProcessed = async (lsqPriorityUpdationId) => {
228
+ await this.delete(lsqPriorityUpdationId);
229
+ };
230
+ /**
231
+ * Marks processed by LeadSquared `opportunityId` (lookup GSI, then delete by PK).
232
+ *
233
+ * @example
234
+ * await lsqPriorityUpdationDao.markProcessedByOpportunityId("opp-123");
235
+ */
236
+ this.markProcessedByOpportunityId = async (opportunityId) => {
237
+ const row = await this.getByOpportunityId(opportunityId);
238
+ if (!row) {
239
+ return false;
240
+ }
241
+ await this.delete(row.lsqPriorityUpdationId);
242
+ return true;
243
+ };
244
+ /**
245
+ * Deletes one queue record by primary key.
246
+ */
247
+ this.deleteById = async (lsqPriorityUpdationId) => {
248
+ await this.delete(lsqPriorityUpdationId);
249
+ };
250
+ }
251
+ }
252
+ exports.lsqPriorityUpdationDao = new LsqPriorityUpdationDao();
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHNxLXByaW9yaXR5LXVwZGF0aW9uLWRhby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXN0b21lci11c2VyL2xzcS1wcmlvcml0eS11cGRhdGlvbi9sc3EtcHJpb3JpdHktdXBkYXRpb24tZGFvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDBEQUFrQztBQUNsQyxpRUFBMEU7QUFFMUUsK0VBU3VDO0FBT3ZDOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLHNCQUF1QixTQUFRLHdDQUF3QztJQUN6RTtRQUNJLEtBQUssQ0FBQyxzREFBd0IsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBR3JELG1CQUFjLEdBQUcsQ0FBQyxJQUFvQyxFQUF1QixFQUFFO1lBQ25GLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDO1lBQ3BDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUF1QixDQUFDO1lBRTlDLE9BQU87Z0JBQ0gsR0FBRyxJQUFJO2dCQUNQLE1BQU07Z0JBQ04sU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLElBQUksSUFBQSx5Q0FBVyxFQUFDLE1BQU0sQ0FBQztnQkFDaEQsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUEsNENBQWMsRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2FBQ2hFLENBQUM7UUFDN0IsQ0FBQyxDQUFDO1FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FtQkc7UUFDSCxTQUFJLEdBQUcsS0FBSyxFQUNSLElBQW9DLEVBQ3BDLFdBQXlCLEVBQ0csRUFBRTtZQUM5QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUM7UUFFRjs7Ozs7Ozs7Ozs7Ozs7V0FjRztR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Q0FBQyxDQUFDO1lBQzdDLENBQUM7WUFDRCxNQUFNLFdBQVcsR0FBRyxNQUFNLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM5QyxPQUFPO2dCQUNILEtBQUssRUFBRSxXQUErQztnQkFDdEQsU0FBUyxFQUFFLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBZ0MsQ0FBQzthQUM3RSxDQUFDO1FBQ04sQ0FBQyxDQUFDO1FBRUY7Ozs7Ozs7V0FPRztRQUNILGtCQUFhLEdBQUcsS0FBSyxFQUFFLHFCQUE2QixFQUFpQixFQUFFO1lBQ25FLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQztRQUVGOzs7OztXQUtHO1FBQ0gsaUNBQTRCLEdBQUcsS0FBSyxFQUFFLGFBQXFCLEVBQW9CLEVBQUU7WUFDN0UsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNQLE9BQU8sS0FBSyxDQUFDO1lBQ2pCLENBQUM7WUFDRCxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDN0MsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDO1FBRUY7O1dBRUc7UUFDSCxlQUFVLEdBQUcsS0FBSyxFQUFFLHFCQUE2QixFQUFpQixFQUFFO1lBQ2hFLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQztJQWhSRixDQUFDO0NBaVJKO0FBRVksUUFBQSxzQkFBc0IsR0FBRyxJQUFJLHNCQUFzQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZHluYW1vb3NlIGZyb20gXCJkeW5hbW9vc2VcIjtcbmltcG9ydCB7IER5bmFtb0tleSwgR2VuZXJpY0R5bmFtb29zZURBTyB9IGZyb20gXCIuLi8uLi9iYXNlLWR5bmFtb29zZS1kYW9cIjtcbmltcG9ydCB7IEF1dGhDb250ZXh0IH0gZnJvbSBcIi4uLy4uL2Jhc2UtZHluYW1vb3NlLW1vZGVsXCI7XG5pbXBvcnQge1xuICAgIENyZWF0ZUxzcVByaW9yaXR5VXBkYXRpb25JbnB1dCxcbiAgICBMU1FfUEFTU0VEX1NUUixcbiAgICBMc3FQYXNzZWRTdHIsXG4gICAgTHNxUHJpb3JpdHksXG4gICAgTHNxUHJpb3JpdHlVcGRhdGlvbixcbiAgICBMc3FQcmlvcml0eVVwZGF0aW9uTW9kZWwsXG4gICAgdG9QYXNzZWRTdHIsXG4gICAgdG9Qcmlvcml0eVJhbmtcbn0gZnJvbSBcIi4vbHNxLXByaW9yaXR5LXVwZGF0aW9uLW1vZGVsXCI7XG5cbnR5cGUgTGlzdFJlc3VsdCA9IHtcbiAgICBpdGVtczogTHNxUHJpb3JpdHlVcGRhdGlvbltdO1xuICAgIG5leHRUb2tlbj86IHN0cmluZztcbn07XG5cbi8qKlxuICogREFPIGZvciBMZWFkU3F1YXJlZCBwcmlvcml0eS11cGRhdGlvbiBxdWV1ZS5cbiAqXG4gKiBUYWJsZSBrZXlzOiBgbHNxUHJpb3JpdHlVcGRhdGlvbklkYCAoUEspLlxuICogTG9va3VwczpcbiAqIC0gYG9wcG9ydHVuaXR5SWRJbmRleGAg4oaSIGJ5IExlYWRTcXVhcmVkIGBvcHBvcnR1bml0eUlkYFxuICogLSBgbGVhZE51bWJlckluZGV4YCDihpIgYnkgbGVhZCBwaG9uZS9udW1iZXJcbiAqIC0gYHN0YXR1c0luZGV4YCDihpIgYnkgcmVjb3JkIGBzdGF0dXNgXG4gKiAtIGBwYXNzZWRTdHJJbmRleGAg4oaSIHVucHJvY2Vzc2VkIHF1ZXVlIChgcGFzc2VkU3RyYCArIGBwcmlvcml0eVJhbmtgKVxuICogUHJvY2Vzc2VkIHJvd3MgYXJlIGRlbGV0ZWQgZnJvbSB0aGUgdGFibGUgKG5vdCBzb2Z0LWZsYWdnZWQpLlxuICovXG5jbGFzcyBMc3FQcmlvcml0eVVwZGF0aW9uRGFvIGV4dGVuZHMgR2VuZXJpY0R5bmFtb29zZURBTzxMc3FQcmlvcml0eVVwZGF0aW9uPiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKExzcVByaW9yaXR5VXBkYXRpb25Nb2RlbCwgXCJsc3FQcmlvcml0eVVwZGF0aW9uSWRcIik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBub3JtYWxpemVJbnB1dCA9IChpdGVtOiBDcmVhdGVMc3FQcmlvcml0eVVwZGF0aW9uSW5wdXQpOiBMc3FQcmlvcml0eVVwZGF0aW9uID0+IHtcbiAgICAgICAgY29uc3QgcGFzc2VkID0gaXRlbS5wYXNzZWQgPz8gZmFsc2U7XG4gICAgICAgIGNvbnN0IHByaW9yaXR5ID0gaXRlbS5wcmlvcml0eSBhcyBMc3FQcmlvcml0eTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgIHBhc3NlZCxcbiAgICAgICAgICAgIHBhc3NlZFN0cjogaXRlbS5wYXNzZWRTdHIgPz8gdG9QYXNzZWRTdHIocGFzc2VkKSxcbiAgICAgICAgICAgIHByaW9yaXR5UmFuazogaXRlbS5wcmlvcml0eVJhbmsgPz8gKHByaW9yaXR5ID8gdG9Qcmlvcml0eVJhbmsocHJpb3JpdHkpIDogdW5kZWZpbmVkKVxuICAgICAgICB9IGFzIExzcVByaW9yaXR5VXBkYXRpb247XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgLyBxdWV1ZXMgb25lIG9wcG9ydHVuaXR5IGZvciBwcmlvcml0eSB1cGRhdGlvbi5cbiAgICAgKlxuICAgICAqIFVzZSB3aGVuOiBMZWFkU3F1YXJlZCB3ZWJob29rIHJlY2VpdmVzIGEgbmV3L3VwZGF0ZWQgb3Bwb3J0dW5pdHkuXG4gICAgICogLSBgbHNxUHJpb3JpdHlVcGRhdGlvbklkYCBhdXRvLWdlbmVyYXRlcyBpZiBvbWl0dGVkLlxuICAgICAqIC0gQXV0by1maWxscyBgcGFzc2VkU3RyYCBmcm9tIGBwYXNzZWRgIChgZmFsc2VgIOKGkiBgXCJGQUxTRVwiYCkuXG4gICAgICogLSBBdXRvLWZpbGxzIGBwcmlvcml0eVJhbmtgIGZyb20gYHByaW9yaXR5YCAoUDHihpIxIOKApiBQNeKGkjUpLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBhd2FpdCBsc3FQcmlvcml0eVVwZGF0aW9uRGFvLnNhdmUoe1xuICAgICAqICAgICBvcHBvcnR1bml0eUlkOiBcIm9wcC0xMjNcIixcbiAgICAgKiAgICAgbGVhZE51bWJlcjogXCI5ODc2NTQzMjEwXCIsXG4gICAgICogICAgIHBhc3NlZDogZmFsc2UsXG4gICAgICogICAgIHByaW9yaXR5OiBcIlAxXCIsXG4gICAgICogICAgIHVyZ2VuY3k6IFwiVTJcIixcbiAgICAgKiAgICAgdmFsdWU6IFwiVjNcIixcbiAgICAgKiAgICAgZXZlbnREYXRlOiBcIjIwMjYtMDctMzBcIixcbiAgICAgKiAgICAgcGF5bG9hZDogeyByYXc6IFwid2ViaG9vay1ib2R5XCIgfVxuICAgICAqIH0pO1xuICAgICAqL1xuICAgIHNhdmUgPSBhc3luYyAoXG4gICAgICAgIGl0ZW06IENyZWF0ZUxzcVByaW9yaXR5VXBkYXRpb25JbnB1dCxcbiAgICAgICAgYXV0aENvbnRleHQ/OiBBdXRoQ29udGV4dFxuICAgICk6IFByb21pc2U8THNxUHJpb3JpdHlVcGRhdGlvbj4gPT4ge1xuICAgICAgICByZXR1cm4gc3VwZXIuc2F2ZSh0aGlzLm5vcm1hbGl6ZUlucHV0KGl0ZW0pLCBhdXRoQ29udGV4dCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgcXVldWVkIHJlY29yZCBieSBgbHNxUHJpb3JpdHlVcGRhdGlvbklkYC5cbiAgICAgKlxuICAgICAqIFVzZSB3aGVuOiByZWNhbGN1bGF0aW5nIHByaW9yaXR5L3VyZ2VuY3kvdmFsdWUgKGUuZy4gbWlkbmlnaHQgam9iKSBvclxuICAgICAqIHJlZnJlc2hpbmcgd2ViaG9vayBwYXlsb2FkIGZpZWxkcy5cbiAgICAgKiAtIFJlLXN5bmNzIGBwYXNzZWRTdHJgIC8gYHByaW9yaXR5UmFua2Agd2hlbiBgcGFzc2VkYCAvIGBwcmlvcml0eWAgY2hhbmdlLlxuICAgICAqIC0gQWx3YXlzIHJlZnJlc2hlcyBgdXBkYXRlZEF0YC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYXdhaXQgbHNxUHJpb3JpdHlVcGRhdGlvbkRhby51cGRhdGUoXCJsc3EtdXVpZFwiLCB7XG4gICAgICogICAgIHByaW9yaXR5OiBcIlAyXCIsXG4gICAgICogICAgIHVyZ2VuY3k6IFwiVTFcIixcbiAgICAgKiAgICAgdmFsdWU6IFwiVjJcIlxuICAgICAqIH0pO1xuICAgICAqL1xuICAgIHVwZGF0ZSA9IGFzeW5jIChcbiAgICAgICAgbHNxUHJpb3JpdHlVcGRhdGlvbklkOiBzdHJpbmcsXG4gICAgICAgIHVwZGF0ZXM6IFBhcnRpYWw8THNxUHJpb3JpdHlVcGRhdGlvbj4sXG4gICAgICAgIGF1dGhDb250ZXh0PzogQXV0aENvbnRleHRcbiAgICApOiBQcm9taXNlPExzcVByaW9yaXR5VXBkYXRpb24+ID0+IHtcbiAgICAgICAgY29uc3QgbmV4dFVwZGF0ZXM6IFBhcnRpYWw8THNxUHJpb3JpdHlVcGRhdGlvbj4gPSB7XG4gICAgICAgICAgICAuLi51cGRhdGVzLFxuICAgICAgICAgICAgdXBkYXRlZF90aW1lOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgICAgdXBkYXRlZF91c2VyOiBhdXRoQ29udGV4dD8udXNlclN1YlxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0eXBlb2YgdXBkYXRlcy5wYXNzZWQgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICBuZXh0VXBkYXRlcy5wYXNzZWRTdHIgPSB1cGRhdGVzLnBhc3NlZFN0ciA/PyB0b1Bhc3NlZFN0cih1cGRhdGVzLnBhc3NlZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVwZGF0ZXMucHJpb3JpdHkpIHtcbiAgICAgICAgICAgIG5leHRVcGRhdGVzLnByaW9yaXR5UmFuayA9IHVwZGF0ZXMucHJpb3JpdHlSYW5rID8/IHRvUHJpb3JpdHlSYW5rKHVwZGF0ZXMucHJpb3JpdHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdXBkYXRlZCA9IGF3YWl0IExzcVByaW9yaXR5VXBkYXRpb25Nb2RlbC51cGRhdGUoXG4gICAgICAgICAgICB7IGxzcVByaW9yaXR5VXBkYXRpb25JZCB9LFxuICAgICAgICAgICAgbmV4dFVwZGF0ZXMsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uZGl0aW9uOiBuZXcgZHluYW1vb3NlLkNvbmRpdGlvbigpLmF0dHJpYnV0ZShcImxzcVByaW9yaXR5VXBkYXRpb25JZFwiKS5leGlzdHMoKVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdXBkYXRlZCBhcyB1bmtub3duIGFzIExzcVByaW9yaXR5VXBkYXRpb247XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEZldGNoZXMgb25lIHF1ZXVlIHJlY29yZCBieSB0YWJsZSBwcmltYXJ5IGtleS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3Qgcm93ID0gYXdhaXQgbHNxUHJpb3JpdHlVcGRhdGlvbkRhby5nZXRCeUlkKFwibHNxLXV1aWRcIik7XG4gICAgICovXG4gICAgZ2V0QnlJZCA9IGFzeW5jIChsc3FQcmlvcml0eVVwZGF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8THNxUHJpb3JpdHlVcGRhdGlvbiB8IG51bGw+ID0+XG4gICAgICAgIHRoaXMuZ2V0KGxzcVByaW9yaXR5VXBkYXRpb25JZCk7XG5cbiAgICAvKipcbiAgICAgKiBGZXRjaGVzIG9uZSBxdWV1ZSByZWNvcmQgYnkgTGVhZFNxdWFyZWQgYG9wcG9ydHVuaXR5SWRgIChHU0kgYG9wcG9ydHVuaXR5SWRJbmRleGApLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCByb3cgPSBhd2FpdCBsc3FQcmlvcml0eVVwZGF0aW9uRGFvLmdldEJ5T3Bwb3J0dW5pdHlJZChcIm9wcC0xMjNcIik7XG4gICAgICovXG4gICAgZ2V0QnlPcHBvcnR1bml0eUlkID0gYXN5bmMgKG9wcG9ydHVuaXR5SWQ6IHN0cmluZyk6IFByb21pc2U8THNxUHJpb3JpdHlVcGRhdGlvbiB8IG51bGw+ID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5saXN0QnlPcHBvcnR1bml0eUlkKG9wcG9ydHVuaXR5SWQsIDEpO1xuICAgICAgICByZXR1cm4gcmVzdWx0Lml0ZW1zWzBdID8/IG51bGw7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExpc3RzIHF1ZXVlIHJlY29yZHMgYnkgTGVhZFNxdWFyZWQgYG9wcG9ydHVuaXR5SWRgIChHU0kgYG9wcG9ydHVuaXR5SWRJbmRleGApLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCB7IGl0ZW1zIH0gPSBhd2FpdCBsc3FQcmlvcml0eVVwZGF0aW9uRGFvLmxpc3RCeU9wcG9ydHVuaXR5SWQoXCJvcHAtMTIzXCIpO1xuICAgICAqL1xuICAgIGxpc3RCeU9wcG9ydHVuaXR5SWQgPSBhc3luYyAoXG4gICAgICAgIG9wcG9ydHVuaXR5SWQ6IHN0cmluZyxcbiAgICAgICAgbGltaXQ/OiBudW1iZXIsXG4gICAgICAgIHRva2VuPzogc3RyaW5nXG4gICAgKTogUHJvbWlzZTxMaXN0UmVzdWx0PiA9PiB7XG4gICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IHRoaXMuZGVjb2RlKHRva2VuKTtcbiAgICAgICAgbGV0IHF1ZXJ5QnVpbGRlciA9IExzcVByaW9yaXR5VXBkYXRpb25Nb2RlbC5xdWVyeShcIm9wcG9ydHVuaXR5SWRcIilcbiAgICAgICAgICAgIC5lcShvcHBvcnR1bml0eUlkKVxuICAgICAgICAgICAgLnVzaW5nKFwib3Bwb3J0dW5pdHlJZEluZGV4XCIpO1xuICAgICAgICBpZiAoZGVjb2RlZFRva2VuKSB7XG4gICAgICAgICAgICBxdWVyeUJ1aWxkZXIgPSBxdWVyeUJ1aWxkZXIuc3RhcnRBdChkZWNvZGVkVG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbGltaXQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5saW1pdChsaW1pdCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcXVlcnlSZXN1bHQgPSBhd2FpdCBxdWVyeUJ1aWxkZXIuZXhlYygpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHF1ZXJ5UmVzdWx0IGFzIHVua25vd24gYXMgTHNxUHJpb3JpdHlVcGRhdGlvbltdLFxuICAgICAgICAgICAgbmV4dFRva2VuOiBhd2FpdCB0aGlzLmVuY29kZShxdWVyeVJlc3VsdC5sYXN0S2V5IGFzIER5bmFtb0tleSB8IHVuZGVmaW5lZClcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRmV0Y2hlcyBvbmUgcXVldWUgcmVjb3JkIGJ5IGBsZWFkTnVtYmVyYCAoR1NJIGBsZWFkTnVtYmVySW5kZXhgKS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3Qgcm93ID0gYXdhaXQgbHNxUHJpb3JpdHlVcGRhdGlvbkRhby5nZXRCeUxlYWROdW1iZXIoXCI5ODc2NTQzMjEwXCIpO1xuICAgICAqL1xuICAgIGdldEJ5TGVhZE51bWJlciA9IGFzeW5jIChsZWFkTnVtYmVyOiBzdHJpbmcpOiBQcm9taXNlPExzcVByaW9yaXR5VXBkYXRpb24gfCBudWxsPiA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMubGlzdEJ5TGVhZE51bWJlcihsZWFkTnVtYmVyLCAxKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdC5pdGVtc1swXSA/PyBudWxsO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMaXN0cyBxdWV1ZSByZWNvcmRzIGJ5IGBsZWFkTnVtYmVyYCAoR1NJIGBsZWFkTnVtYmVySW5kZXhgKS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3QgeyBpdGVtcyB9ID0gYXdhaXQgbHNxUHJpb3JpdHlVcGRhdGlvbkRhby5saXN0QnlMZWFkTnVtYmVyKFwiOTg3NjU0MzIxMFwiKTtcbiAgICAgKi9cbiAgICBsaXN0QnlMZWFkTnVtYmVyID0gYXN5bmMgKFxuICAgICAgICBsZWFkTnVtYmVyOiBzdHJpbmcsXG4gICAgICAgIGxpbWl0PzogbnVtYmVyLFxuICAgICAgICB0b2tlbj86IHN0cmluZ1xuICAgICk6IFByb21pc2U8TGlzdFJlc3VsdD4gPT4ge1xuICAgICAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSB0aGlzLmRlY29kZSh0b2tlbik7XG4gICAgICAgIGxldCBxdWVyeUJ1aWxkZXIgPSBMc3FQcmlvcml0eVVwZGF0aW9uTW9kZWwucXVlcnkoXCJsZWFkTnVtYmVyXCIpXG4gICAgICAgICAgICAuZXEobGVhZE51bWJlcilcbiAgICAgICAgICAgIC51c2luZyhcImxlYWROdW1iZXJJbmRleFwiKTtcbiAgICAgICAgaWYgKGRlY29kZWRUb2tlbikge1xuICAgICAgICAgICAgcXVlcnlCdWlsZGVyID0gcXVlcnlCdWlsZGVyLnN0YXJ0QXQoZGVjb2RlZFRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGxpbWl0ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICBxdWVyeUJ1aWxkZXIgPSBxdWVyeUJ1aWxkZXIubGltaXQobGltaXQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHF1ZXJ5UmVzdWx0ID0gYXdhaXQgcXVlcnlCdWlsZGVyLmV4ZWMoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGl0ZW1zOiBxdWVyeVJlc3VsdCBhcyB1bmtub3duIGFzIExzcVByaW9yaXR5VXBkYXRpb25bXSxcbiAgICAgICAgICAgIG5leHRUb2tlbjogYXdhaXQgdGhpcy5lbmNvZGUocXVlcnlSZXN1bHQubGFzdEtleSBhcyBEeW5hbW9LZXkgfCB1bmRlZmluZWQpXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExpc3RzIHF1ZXVlIHJlY29yZHMgYnkgYHN0YXR1c2AgKEdTSSBgc3RhdHVzSW5kZXhgKS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3QgeyBpdGVtcyB9ID0gYXdhaXQgbHNxUHJpb3JpdHlVcGRhdGlvbkRhby5saXN0QnlTdGF0dXMoXCJQRU5ESU5HXCIsIDI1KTtcbiAgICAgKi9cbiAgICBsaXN0QnlTdGF0dXMgPSBhc3luYyAoXG4gICAgICAgIHN0YXR1czogc3RyaW5nLFxuICAgICAgICBsaW1pdD86IG51bWJlcixcbiAgICAgICAgdG9rZW4/OiBzdHJpbmdcbiAgICApOiBQcm9taXNlPExpc3RSZXN1bHQ+ID0+IHtcbiAgICAgICAgY29uc3QgZGVjb2RlZFRva2VuID0gdGhpcy5kZWNvZGUodG9rZW4pO1xuICAgICAgICBsZXQgcXVlcnlCdWlsZGVyID0gTHNxUHJpb3JpdHlVcGRhdGlvbk1vZGVsLnF1ZXJ5KFwic3RhdHVzXCIpXG4gICAgICAgICAgICAuZXEoc3RhdHVzKVxuICAgICAgICAgICAgLnVzaW5nKFwic3RhdHVzSW5kZXhcIik7XG4gICAgICAgIGlmIChkZWNvZGVkVG9rZW4pIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5zdGFydEF0KGRlY29kZWRUb2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBsaW1pdCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcXVlcnlCdWlsZGVyID0gcXVlcnlCdWlsZGVyLmxpbWl0KGxpbWl0KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBxdWVyeVJlc3VsdCA9IGF3YWl0IHF1ZXJ5QnVpbGRlci5leGVjKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpdGVtczogcXVlcnlSZXN1bHQgYXMgdW5rbm93biBhcyBMc3FQcmlvcml0eVVwZGF0aW9uW10sXG4gICAgICAgICAgICBuZXh0VG9rZW46IGF3YWl0IHRoaXMuZW5jb2RlKHF1ZXJ5UmVzdWx0Lmxhc3RLZXkgYXMgRHluYW1vS2V5IHwgdW5kZWZpbmVkKVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMaXN0cyBxdWV1ZWQgKHVucHJvY2Vzc2VkKSBvcHBvcnR1bml0aWVzIHNvcnRlZCBieSBgcHJpb3JpdHlSYW5rYCBhc2NlbmRpbmcuXG4gICAgICpcbiAgICAgKiBVc2Ugd2hlbjogd29ya2VyIHB1bGxzIG5leHQgYmF0Y2ggb2YgdW5hc3NpZ25lZCBMU1EgcHJpb3JpdHkgdXBkYXRlcy5cbiAgICAgKiBRdWVyaWVzIEdTSSBgcGFzc2VkU3RySW5kZXhgIHdpdGggYHBhc3NlZFN0ciA9IFwiRkFMU0VcImAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IHsgaXRlbXMsIG5leHRUb2tlbiB9ID0gYXdhaXQgbHNxUHJpb3JpdHlVcGRhdGlvbkRhby5saXN0VW5wcm9jZXNzZWQoMjUpO1xuICAgICAqL1xuICAgIGxpc3RVbnByb2Nlc3NlZCA9IGFzeW5jIChsaW1pdD86IG51bWJlciwgdG9rZW4/OiBzdHJpbmcpOiBQcm9taXNlPExpc3RSZXN1bHQ+ID0+XG4gICAgICAgIHRoaXMubGlzdEJ5UGFzc2VkU3RyKExTUV9QQVNTRURfU1RSLkZBTFNFLCBsaW1pdCwgdG9rZW4pO1xuXG4gICAgLyoqXG4gICAgICogTGlzdHMgb3Bwb3J0dW5pdGllcyBieSBgcGFzc2VkU3RyYCAoR1NJIGBwYXNzZWRTdHJJbmRleGApLCBzb3J0ZWQgYnkgYHByaW9yaXR5UmFua2AuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IHF1ZXVlZCA9IGF3YWl0IGxzcVByaW9yaXR5VXBkYXRpb25EYW8ubGlzdEJ5UGFzc2VkU3RyKFwiRkFMU0VcIiwgMjUpO1xuICAgICAqL1xuICAgIGxpc3RCeVBhc3NlZFN0ciA9IGFzeW5jIChcbiAgICAgICAgcGFzc2VkU3RyOiBMc3FQYXNzZWRTdHIsXG4gICAgICAgIGxpbWl0PzogbnVtYmVyLFxuICAgICAgICB0b2tlbj86IHN0cmluZ1xuICAgICk6IFByb21pc2U8TGlzdFJlc3VsdD4gPT4ge1xuICAgICAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSB0aGlzLmRlY29kZSh0b2tlbik7XG4gICAgICAgIGxldCBxdWVyeUJ1aWxkZXIgPSBMc3FQcmlvcml0eVVwZGF0aW9uTW9kZWwucXVlcnkoXCJwYXNzZWRTdHJcIilcbiAgICAgICAgICAgIC5lcShwYXNzZWRTdHIpXG4gICAgICAgICAgICAudXNpbmcoXCJwYXNzZWRTdHJJbmRleFwiKVxuICAgICAgICAgICAgLnNvcnQoXCJhc2NlbmRpbmdcIik7XG4gICAgICAgIGlmIChkZWNvZGVkVG9rZW4pIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5zdGFydEF0KGRlY29kZWRUb2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBsaW1pdCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcXVlcnlCdWlsZGVyID0gcXVlcnlCdWlsZGVyLmxpbWl0KGxpbWl0KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBxdWVyeVJlc3VsdCA9IGF3YWl0IHF1ZXJ5QnVpbGRlci5leGVjKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpdGVtczogcXVlcnlSZXN1bHQgYXMgdW5rbm93biBhcyBMc3FQcmlvcml0eVVwZGF0aW9uW10sXG4gICAgICAgICAgICBuZXh0VG9rZW46IGF3YWl0IHRoaXMuZW5jb2RlKHF1ZXJ5UmVzdWx0Lmxhc3RLZXkgYXMgRHluYW1vS2V5IHwgdW5kZWZpbmVkKVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBNYXJrcyBhIHF1ZXVlIHJvdyBhcyBwcm9jZXNzZWQgYnkgZGVsZXRpbmcgaXQgdmlhIHByaW1hcnkga2V5LlxuICAgICAqXG4gICAgICogVXNlIHdoZW46IHdvcmtlciBzdWNjZXNzZnVsbHkgYXBwbGllZCBwcmlvcml0eSB1cGRhdGUgaW4gTGVhZFNxdWFyZWQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGF3YWl0IGxzcVByaW9yaXR5VXBkYXRpb25EYW8ubWFya1Byb2Nlc3NlZChcImxzcS11dWlkXCIpO1xuICAgICAqL1xuICAgIG1hcmtQcm9jZXNzZWQgPSBhc3luYyAobHNxUHJpb3JpdHlVcGRhdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGUobHNxUHJpb3JpdHlVcGRhdGlvbklkKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTWFya3MgcHJvY2Vzc2VkIGJ5IExlYWRTcXVhcmVkIGBvcHBvcnR1bml0eUlkYCAobG9va3VwIEdTSSwgdGhlbiBkZWxldGUgYnkgUEspLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBhd2FpdCBsc3FQcmlvcml0eVVwZGF0aW9uRGFvLm1hcmtQcm9jZXNzZWRCeU9wcG9ydHVuaXR5SWQoXCJvcHAtMTIzXCIpO1xuICAgICAqL1xuICAgIG1hcmtQcm9jZXNzZWRCeU9wcG9ydHVuaXR5SWQgPSBhc3luYyAob3Bwb3J0dW5pdHlJZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgICAgIGNvbnN0IHJvdyA9IGF3YWl0IHRoaXMuZ2V0QnlPcHBvcnR1bml0eUlkKG9wcG9ydHVuaXR5SWQpO1xuICAgICAgICBpZiAoIXJvdykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlKHJvdy5sc3FQcmlvcml0eVVwZGF0aW9uSWQpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRGVsZXRlcyBvbmUgcXVldWUgcmVjb3JkIGJ5IHByaW1hcnkga2V5LlxuICAgICAqL1xuICAgIGRlbGV0ZUJ5SWQgPSBhc3luYyAobHNxUHJpb3JpdHlVcGRhdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGUobHNxUHJpb3JpdHlVcGRhdGlvbklkKTtcbiAgICB9O1xufVxuXG5leHBvcnQgY29uc3QgbHNxUHJpb3JpdHlVcGRhdGlvbkRhbyA9IG5ldyBMc3FQcmlvcml0eVVwZGF0aW9uRGFvKCk7XG4iXX0=
@@ -0,0 +1,63 @@
1
+ import { BaseDynamooseModel } from "../../base-dynamoose-model";
2
+ export declare const LSQ_PRIORITY: {
3
+ readonly P1: "P1";
4
+ readonly P2: "P2";
5
+ readonly P3: "P3";
6
+ readonly P4: "P4";
7
+ readonly P5: "P5";
8
+ };
9
+ export type LsqPriority = (typeof LSQ_PRIORITY)[keyof typeof LSQ_PRIORITY];
10
+ export declare const LSQ_PRIORITY_RANK: Record<LsqPriority, number>;
11
+ export declare const LSQ_URGENCY: {
12
+ readonly U1: "U1";
13
+ readonly U2: "U2";
14
+ readonly U3: "U3";
15
+ readonly U4: "U4";
16
+ };
17
+ export type LsqUrgency = (typeof LSQ_URGENCY)[keyof typeof LSQ_URGENCY];
18
+ export declare const LSQ_VALUE: {
19
+ readonly V1: "V1";
20
+ readonly V2: "V2";
21
+ readonly V3: "V3";
22
+ readonly V4: "V4";
23
+ readonly V5: "V5";
24
+ };
25
+ export type LsqValue = (typeof LSQ_VALUE)[keyof typeof LSQ_VALUE];
26
+ /** GSI partition values for `passedStrIndex`. */
27
+ export declare const LSQ_PASSED_STR: {
28
+ readonly FALSE: "FALSE";
29
+ readonly TRUE: "TRUE";
30
+ };
31
+ export type LsqPassedStr = (typeof LSQ_PASSED_STR)[keyof typeof LSQ_PASSED_STR];
32
+ export interface LsqPriorityUpdation extends BaseDynamooseModel {
33
+ /** Table unique id (PK). */
34
+ lsqPriorityUpdationId: string;
35
+ /** LeadSquared opportunity id (GSI `opportunityIdIndex`). */
36
+ opportunityId: string;
37
+ passed: boolean;
38
+ /** Indexed mirror of `passed` — `"FALSE"` when queued/unassigned. */
39
+ passedStr: LsqPassedStr;
40
+ priority: LsqPriority;
41
+ /** Numeric sort score for GSI: P1→1 … P5→5. */
42
+ priorityRank?: number;
43
+ urgency?: LsqUrgency;
44
+ value?: LsqValue;
45
+ /** ISO date `YYYY-MM-DD` for midnight recalculation. */
46
+ eventDate: string;
47
+ leadName?: string;
48
+ /** Lead phone/number (GSI `leadNumberIndex`). */
49
+ leadNumber: string;
50
+ /** Record status (GSI `statusIndex`). */
51
+ status: string;
52
+ /** Optional raw webhook payload. */
53
+ payload?: Record<string, unknown>;
54
+ }
55
+ export type CreateLsqPriorityUpdationInput = Omit<LsqPriorityUpdation, "lsqPriorityUpdationId" | "passedStr" | "priorityRank"> & {
56
+ lsqPriorityUpdationId?: string;
57
+ passedStr?: LsqPassedStr;
58
+ priorityRank?: number;
59
+ };
60
+ export declare const toPassedStr: (passed: boolean) => LsqPassedStr;
61
+ export declare const toPriorityRank: (priority: LsqPriority) => number;
62
+ export declare const LsqPriorityUpdationModel: import("dynamoose/dist/General").ModelType<LsqPriorityUpdation>;
63
+ export declare const convertToLsqPriorityUpdationModel: (input: CreateLsqPriorityUpdationInput | LsqPriorityUpdation) => LsqPriorityUpdation;
@@ -0,0 +1,135 @@
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.convertToLsqPriorityUpdationModel = exports.LsqPriorityUpdationModel = exports.toPriorityRank = exports.toPassedStr = exports.LSQ_PASSED_STR = exports.LSQ_VALUE = exports.LSQ_URGENCY = exports.LSQ_PRIORITY_RANK = exports.LSQ_PRIORITY = void 0;
7
+ const dynamoose_1 = __importDefault(require("dynamoose"));
8
+ const crypto_1 = require("crypto");
9
+ const table_names_1 = require("../../config/table-names");
10
+ exports.LSQ_PRIORITY = {
11
+ P1: "P1",
12
+ P2: "P2",
13
+ P3: "P3",
14
+ P4: "P4",
15
+ P5: "P5"
16
+ };
17
+ exports.LSQ_PRIORITY_RANK = {
18
+ [exports.LSQ_PRIORITY.P1]: 1,
19
+ [exports.LSQ_PRIORITY.P2]: 2,
20
+ [exports.LSQ_PRIORITY.P3]: 3,
21
+ [exports.LSQ_PRIORITY.P4]: 4,
22
+ [exports.LSQ_PRIORITY.P5]: 5
23
+ };
24
+ exports.LSQ_URGENCY = {
25
+ U1: "U1",
26
+ U2: "U2",
27
+ U3: "U3",
28
+ U4: "U4"
29
+ };
30
+ exports.LSQ_VALUE = {
31
+ V1: "V1",
32
+ V2: "V2",
33
+ V3: "V3",
34
+ V4: "V4",
35
+ V5: "V5"
36
+ };
37
+ /** GSI partition values for `passedStrIndex`. */
38
+ exports.LSQ_PASSED_STR = {
39
+ FALSE: "FALSE",
40
+ TRUE: "TRUE"
41
+ };
42
+ const toPassedStr = (passed) => passed ? exports.LSQ_PASSED_STR.TRUE : exports.LSQ_PASSED_STR.FALSE;
43
+ exports.toPassedStr = toPassedStr;
44
+ const toPriorityRank = (priority) => exports.LSQ_PRIORITY_RANK[priority];
45
+ exports.toPriorityRank = toPriorityRank;
46
+ const lsqPriorityUpdationSchema = new dynamoose_1.default.Schema({
47
+ lsqPriorityUpdationId: {
48
+ type: String,
49
+ hashKey: true,
50
+ required: true,
51
+ default: () => (0, crypto_1.randomUUID)()
52
+ },
53
+ opportunityId: {
54
+ type: String,
55
+ required: true,
56
+ index: {
57
+ name: "opportunityIdIndex",
58
+ type: "global"
59
+ }
60
+ },
61
+ passed: {
62
+ type: Boolean,
63
+ required: true,
64
+ default: false
65
+ },
66
+ passedStr: {
67
+ type: String,
68
+ required: true,
69
+ enum: [exports.LSQ_PASSED_STR.FALSE, exports.LSQ_PASSED_STR.TRUE],
70
+ default: exports.LSQ_PASSED_STR.FALSE,
71
+ index: {
72
+ name: "passedStrIndex",
73
+ type: "global",
74
+ rangeKey: "priorityRank"
75
+ }
76
+ },
77
+ priority: {
78
+ type: String,
79
+ required: true,
80
+ enum: [
81
+ exports.LSQ_PRIORITY.P1,
82
+ exports.LSQ_PRIORITY.P2,
83
+ exports.LSQ_PRIORITY.P3,
84
+ exports.LSQ_PRIORITY.P4,
85
+ exports.LSQ_PRIORITY.P5
86
+ ]
87
+ },
88
+ priorityRank: {
89
+ type: Number,
90
+ },
91
+ urgency: {
92
+ type: String,
93
+ enum: [exports.LSQ_URGENCY.U1, exports.LSQ_URGENCY.U2, exports.LSQ_URGENCY.U3, exports.LSQ_URGENCY.U4]
94
+ },
95
+ value: {
96
+ type: String,
97
+ enum: [exports.LSQ_VALUE.V1, exports.LSQ_VALUE.V2, exports.LSQ_VALUE.V3, exports.LSQ_VALUE.V4, exports.LSQ_VALUE.V5]
98
+ },
99
+ eventDate: {
100
+ type: String,
101
+ required: true
102
+ },
103
+ leadName: {
104
+ type: String,
105
+ required: false
106
+ },
107
+ leadNumber: {
108
+ type: String,
109
+ required: true,
110
+ index: {
111
+ name: "leadNumberIndex",
112
+ type: "global"
113
+ }
114
+ },
115
+ status: {
116
+ type: String,
117
+ required: true,
118
+ index: {
119
+ name: "statusIndex",
120
+ type: "global"
121
+ }
122
+ },
123
+ payload: {
124
+ type: Object
125
+ }
126
+ }, {
127
+ saveUnknown: ["payload.**"],
128
+ timestamps: true
129
+ });
130
+ exports.LsqPriorityUpdationModel = dynamoose_1.default.model(table_names_1.TABLE_NAMES.LSQ_PRIORITY_UPDATION, lsqPriorityUpdationSchema, { create: false, waitForActive: false });
131
+ const convertToLsqPriorityUpdationModel = (input) => {
132
+ return new exports.LsqPriorityUpdationModel(input);
133
+ };
134
+ exports.convertToLsqPriorityUpdationModel = convertToLsqPriorityUpdationModel;
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHNxLXByaW9yaXR5LXVwZGF0aW9uLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2N1c3RvbWVyLXVzZXIvbHNxLXByaW9yaXR5LXVwZGF0aW9uL2xzcS1wcmlvcml0eS11cGRhdGlvbi1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwREFBa0M7QUFDbEMsbUNBQW9DO0FBRXBDLDBEQUF1RDtBQUUxQyxRQUFBLFlBQVksR0FBRztJQUN4QixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0lBQ1IsRUFBRSxFQUFFLElBQUk7SUFDUixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0NBQ0YsQ0FBQztBQUlFLFFBQUEsaUJBQWlCLEdBQWdDO0lBQzFELENBQUMsb0JBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3BCLENBQUMsb0JBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3BCLENBQUMsb0JBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3BCLENBQUMsb0JBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3BCLENBQUMsb0JBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0NBQ3ZCLENBQUM7QUFFVyxRQUFBLFdBQVcsR0FBRztJQUN2QixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0lBQ1IsRUFBRSxFQUFFLElBQUk7SUFDUixFQUFFLEVBQUUsSUFBSTtDQUNGLENBQUM7QUFJRSxRQUFBLFNBQVMsR0FBRztJQUNyQixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0lBQ1IsRUFBRSxFQUFFLElBQUk7SUFDUixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0NBQ0YsQ0FBQztBQUlYLGlEQUFpRDtBQUNwQyxRQUFBLGNBQWMsR0FBRztJQUMxQixLQUFLLEVBQUUsT0FB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SUFDRCxPQUFPLEVBQUU7UUFDTCxJQUFJLEVBQUUsTUFBTTtLQUNmO0NBQ0osRUFDRDtJQUNJLFdBQVcsRUFBRSxDQUFDLFlBQVksQ0FBQztJQUMzQixVQUFVLEVBQUUsSUFBSTtDQUNuQixDQUNKLENBQUM7QUFFVyxRQUFBLHdCQUF3QixHQUFHLG1CQUFTLENBQUMsS0FBSyxDQUNuRCx5QkFBVyxDQUFDLHFCQUFxQixFQUNqQyx5QkFBeUIsRUFDekIsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FDMUMsQ0FBQztBQUVLLE1BQU0saUNBQWlDLEdBQUcsQ0FDN0MsS0FBMkQsRUFDN0QsRUFBRTtJQUNBLE9BQU8sSUFBSSxnQ0FBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQyxDQUFDLENBQUM7QUFKVyxRQUFBLGlDQUFpQyxxQ0FJNUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZHluYW1vb3NlIGZyb20gXCJkeW5hbW9vc2VcIjtcbmltcG9ydCB7IHJhbmRvbVVVSUQgfSBmcm9tIFwiY3J5cHRvXCI7XG5pbXBvcnQgeyBCYXNlRHluYW1vb3NlTW9kZWwgfSBmcm9tIFwiLi4vLi4vYmFzZS1keW5hbW9vc2UtbW9kZWxcIjtcbmltcG9ydCB7IFRBQkxFX05BTUVTIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy90YWJsZS1uYW1lc1wiO1xuXG5leHBvcnQgY29uc3QgTFNRX1BSSU9SSVRZID0ge1xuICAgIFAxOiBcIlAxXCIsXG4gICAgUDI6IFwiUDJcIixcbiAgICBQMzogXCJQM1wiLFxuICAgIFA0OiBcIlA0XCIsXG4gICAgUDU6IFwiUDVcIlxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgTHNxUHJpb3JpdHkgPSAodHlwZW9mIExTUV9QUklPUklUWSlba2V5b2YgdHlwZW9mIExTUV9QUklPUklUWV07XG5cbmV4cG9ydCBjb25zdCBMU1FfUFJJT1JJVFlfUkFOSzogUmVjb3JkPExzcVByaW9yaXR5LCBudW1iZXI+ID0ge1xuICAgIFtMU1FfUFJJT1JJVFkuUDFdOiAxLFxuICAgIFtMU1FfUFJJT1JJVFkuUDJdOiAyLFxuICAgIFtMU1FfUFJJT1JJVFkuUDNdOiAzLFxuICAgIFtMU1FfUFJJT1JJVFkuUDRdOiA0LFxuICAgIFtMU1FfUFJJT1JJVFkuUDVdOiA1XG59O1xuXG5leHBvcnQgY29uc3QgTFNRX1VSR0VOQ1kgPSB7XG4gICAgVTE6IFwiVTFcIixcbiAgICBVMjogXCJVMlwiLFxuICAgIFUzOiBcIlUzXCIsXG4gICAgVTQ6IFwiVTRcIlxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgTHNxVXJnZW5jeSA9ICh0eXBlb2YgTFNRX1VSR0VOQ1kpW2tleW9mIHR5cGVvZiBMU1FfVVJHRU5DWV07XG5cbmV4cG9ydCBjb25zdCBMU1FfVkFMVUUgPSB7XG4gICAgVjE6IFwiVjFcIixcbiAgICBWMjogXCJWMlwiLFxuICAgIFYzOiBcIlYzXCIsXG4gICAgVjQ6IFwiVjRcIixcbiAgICBWNTogXCJWNVwiXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBMc3FWYWx1ZSA9ICh0eXBlb2YgTFNRX1ZBTFVFKVtrZXlvZiB0eXBlb2YgTFNRX1ZBTFVFXTtcblxuLyoqIEdTSSBwYXJ0aXRpb24gdmFsdWVzIGZvciBgcGFzc2VkU3RySW5kZXhgLiAqL1xuZXhwb3J0IGNvbnN0IExTUV9QQVNTRURfU1RSID0ge1xuICAgIEZBTFNFOiBcIkZBTFNFXCIsXG4gICAgVFJVRTogXCJUUlVFXCJcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIExzcVBhc3NlZFN0ciA9ICh0eXBlb2YgTFNRX1BBU1NFRF9TVFIpW2tleW9mIHR5cGVvZiBMU1FfUEFTU0VEX1NUUl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTHNxUHJpb3JpdHlVcGRhdGlvbiBleHRlbmRzIEJhc2VEeW5hbW9vc2VNb2RlbCB7XG4gICAgLyoqIFRhYmxlIHVuaXF1ZSBpZCAoUEspLiAqL1xuICAgIGxzcVByaW9yaXR5VXBkYXRpb25JZDogc3RyaW5nO1xuICAgIC8qKiBMZWFkU3F1YXJlZCBvcHBvcnR1bml0eSBpZCAoR1NJIGBvcHBvcnR1bml0eUlkSW5kZXhgKS4gKi9cbiAgICBvcHBvcnR1bml0eUlkOiBzdHJpbmc7XG4gICAgcGFzc2VkOiBib29sZWFuO1xuICAgIC8qKiBJbmRleGVkIG1pcnJvciBvZiBgcGFzc2VkYCDigJQgYFwiRkFMU0VcImAgd2hlbiBxdWV1ZWQvdW5hc3NpZ25lZC4gKi9cbiAgICBwYXNzZWRTdHI6IExzcVBhc3NlZFN0cjtcbiAgICBwcmlvcml0eTogTHNxUHJpb3JpdHk7XG4gICAgLyoqIE51bWVyaWMgc29ydCBzY29yZSBmb3IgR1NJOiBQMeKGkjEg4oCmIFA14oaSNS4gKi9cbiAgICBwcmlvcml0eVJhbms/OiBudW1iZXI7XG4gICAgdXJnZW5jeT86IExzcVVyZ2VuY3k7XG4gICAgdmFsdWU/OiBMc3FWYWx1ZTtcbiAgICAvKiogSVNPIGRhdGUgYFlZWVktTU0tRERgIGZvciBtaWRuaWdodCByZWNhbGN1bGF0aW9uLiAqL1xuICAgIGV2ZW50RGF0ZTogc3RyaW5nO1xuICAgIGxlYWROYW1lPzogc3RyaW5nO1xuICAgIC8qKiBMZWFkIHBob25lL251bWJlciAoR1NJIGBsZWFkTnVtYmVySW5kZXhgKS4gKi9cbiAgICBsZWFkTnVtYmVyOiBzdHJpbmc7XG4gICAgLyoqIFJlY29yZCBzdGF0dXMgKEdTSSBgc3RhdHVzSW5kZXhgKS4gKi9cbiAgICBzdGF0dXM6IHN0cmluZztcbiAgICAvKiogT3B0aW9uYWwgcmF3IHdlYmhvb2sgcGF5bG9hZC4gKi9cbiAgICBwYXlsb2FkPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbmV4cG9ydCB0eXBlIENyZWF0ZUxzcVByaW9yaXR5VXBkYXRpb25JbnB1dCA9IE9taXQ8XG4gICAgTHNxUHJpb3JpdHlVcGRhdGlvbixcbiAgICBcImxzcVByaW9yaXR5VXBkYXRpb25JZFwiIHwgXCJwYXNzZWRTdHJcIiB8IFwicHJpb3JpdHlSYW5rXCJcbj4gJiB7XG4gICAgbHNxUHJpb3JpdHlVcGRhdGlvbklkPzogc3RyaW5nO1xuICAgIHBhc3NlZFN0cj86IExzcVBhc3NlZFN0cjtcbiAgICBwcmlvcml0eVJhbms/OiBudW1iZXI7XG59O1xuXG5leHBvcnQgY29uc3QgdG9QYXNzZWRTdHIgPSAocGFzc2VkOiBib29sZWFuKTogTHNxUGFzc2VkU3RyID0+XG4gICAgcGFzc2VkID8gTFNRX1BBU1NFRF9TVFIuVFJVRSA6IExTUV9QQVNTRURfU1RSLkZBTFNFO1xuXG5leHBvcnQgY29uc3QgdG9Qcmlvcml0eVJhbmsgPSAocHJpb3JpdHk6IExzcVByaW9yaXR5KTogbnVtYmVyID0+IExTUV9QUklPUklUWV9SQU5LW3ByaW9yaXR5XTtcblxuY29uc3QgbHNxUHJpb3JpdHlVcGRhdGlvblNjaGVtYSA9IG5ldyBkeW5hbW9vc2UuU2NoZW1hKFxuICAgIHtcbiAgICAgICAgbHNxUHJpb3JpdHlVcGRhdGlvbklkOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBoYXNoS2V5OiB0cnVlLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBkZWZhdWx0OiAoKSA9PiByYW5kb21VVUlEKClcbiAgICAgICAgfSxcbiAgICAgICAgb3Bwb3J0dW5pdHlJZDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBpbmRleDoge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwib3Bwb3J0dW5pdHlJZEluZGV4XCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJnbG9iYWxcIlxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwYXNzZWQ6IHtcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIHBhc3NlZFN0cjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBlbnVtOiBbTFNRX1BBU1NFRF9TVFIuRkFMU0UsIExTUV9QQVNTRURfU1RSLlRSVUVdLFxuICAgICAgICAgICAgZGVmYXVsdDogTFNRX1BBU1NFRF9TVFIuRkFMU0UsXG4gICAgICAgICAgICBpbmRleDoge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwicGFzc2VkU3RySW5kZXhcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImdsb2JhbFwiLFxuICAgICAgICAgICAgICAgIHJhbmdlS2V5OiBcInByaW9yaXR5UmFua1wiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHByaW9yaXR5OiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIGVudW06IFtcbiAgICAgICAgICAgICAgICBMU1FfUFJJT1JJVFkuUDEsXG4gICAgICAgICAgICAgICAgTFNRX1BSSU9SSVRZLlAyLFxuICAgICAgICAgICAgICAgIExTUV9QUklPUklUWS5QMyxcbiAgICAgICAgICAgICAgICBMU1FfUFJJT1JJVFkuUDQsXG4gICAgICAgICAgICAgICAgTFNRX1BSSU9SSVRZLlA1XG4gICAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHByaW9yaXR5UmFuazoge1xuICAgICAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICB9LFxuICAgICAgICB1cmdlbmN5OiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBlbnVtOiBbTFNRX1VSR0VOQ1kuVTEsIExTUV9VUkdFTkNZLlUyLCBMU1FfVVJHRU5DWS5VMywgTFNRX1VSR0VOQ1kuVTRdXG4gICAgICAgIH0sXG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBlbnVtOiBbTFNRX1ZBTFVFLlYxLCBMU1FfVkFMVUUuVjIsIExTUV9WQUxVRS5WMywgTFNRX1ZBTFVFLlY0LCBMU1FfVkFMVUUuVjVdXG4gICAgICAgIH0sXG4gICAgICAgIGV2ZW50RGF0ZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgbGVhZE5hbWU6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBsZWFkTnVtYmVyOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIGluZGV4OiB7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJsZWFkTnVtYmVySW5kZXhcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImdsb2JhbFwiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHN0YXR1czoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBpbmRleDoge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwic3RhdHVzSW5kZXhcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImdsb2JhbFwiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdFxuICAgICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHNhdmVVbmtub3duOiBbXCJwYXlsb2FkLioqXCJdLFxuICAgICAgICB0aW1lc3RhbXBzOiB0cnVlXG4gICAgfVxuKTtcblxuZXhwb3J0IGNvbnN0IExzcVByaW9yaXR5VXBkYXRpb25Nb2RlbCA9IGR5bmFtb29zZS5tb2RlbDxMc3FQcmlvcml0eVVwZGF0aW9uPihcbiAgICBUQUJMRV9OQU1FUy5MU1FfUFJJT1JJVFlfVVBEQVRJT04sXG4gICAgbHNxUHJpb3JpdHlVcGRhdGlvblNjaGVtYSxcbiAgICB7IGNyZWF0ZTogZmFsc2UsIHdhaXRGb3JBY3RpdmU6IGZhbHNlIH1cbik7XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0VG9Mc3FQcmlvcml0eVVwZGF0aW9uTW9kZWwgPSAoXG4gICAgaW5wdXQ6IENyZWF0ZUxzcVByaW9yaXR5VXBkYXRpb25JbnB1dCB8IExzcVByaW9yaXR5VXBkYXRpb25cbikgPT4ge1xuICAgIHJldHVybiBuZXcgTHNxUHJpb3JpdHlVcGRhdGlvbk1vZGVsKGlucHV0KTtcbn07XG4iXX0=
@@ -70,6 +70,7 @@ export declare class PlateModel extends BaseModel {
70
70
  skewerAddons?: SkewerAddonsOnOrder[];
71
71
  defaultValue: IsDefaultValue;
72
72
  setPreferences?: SetPreferences;
73
+ bundleId?: string;
73
74
  }
74
75
  export declare class SetPreferences {
75
76
  spicyLevel: string;