cmp-aws-database 2.4.1 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/table-names.d.ts +4 -0
- package/dist/config/table-names.js +5 -1
- package/dist/customer-user/add-ons/add-ons-model.d.ts +1 -0
- package/dist/customer-user/add-ons/add-ons-model.js +5 -1
- package/dist/customer-user/browse-history/browse-history-model.d.ts +1 -0
- package/dist/customer-user/browse-history/browse-history-model.js +5 -1
- package/dist/customer-user/cart/cart-model.d.ts +2 -1
- package/dist/customer-user/cart/cart-model.js +6 -2
- package/dist/customer-user/items-bundle/items-bundle-dao.d.ts +72 -0
- package/dist/customer-user/items-bundle/items-bundle-dao.js +117 -0
- package/dist/customer-user/items-bundle/items-bundle-model.d.ts +23 -0
- package/dist/customer-user/items-bundle/items-bundle-model.js +62 -0
- package/dist/customer-user/lsq-priority-updation/lsq-priority-updation-dao.d.ts +118 -0
- package/dist/customer-user/lsq-priority-updation/lsq-priority-updation-dao.js +200 -0
- package/dist/customer-user/lsq-priority-updation/lsq-priority-updation-model.d.ts +64 -0
- package/dist/customer-user/lsq-priority-updation/lsq-priority-updation-model.js +123 -0
- package/dist/customer-user/order-module/plate-order/plate-order-model.d.ts +9 -2
- package/dist/customer-user/order-module/plate-order/plate-order-model.js +29 -5
- package/dist/customer-user/order-module/tracking/tracking-model.d.ts +9 -0
- package/dist/customer-user/order-module/tracking/tracking-model.js +33 -2
- package/dist/customer-user/resume-journey/resume-journey-model.d.ts +7 -0
- package/dist/customer-user/resume-journey/resume-journey-model.js +25 -2
- package/package.json +1 -1
|
@@ -0,0 +1,118 @@
|
|
|
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
|
+
* - `passedStrIndex` → unprocessed queue (`passedStr` + `priorityRank`)
|
|
15
|
+
* Processed rows are deleted from the table (not soft-flagged).
|
|
16
|
+
*/
|
|
17
|
+
declare class LsqPriorityUpdationDao extends GenericDynamooseDAO<LsqPriorityUpdation> {
|
|
18
|
+
constructor();
|
|
19
|
+
private nowIso;
|
|
20
|
+
private normalizeInput;
|
|
21
|
+
/**
|
|
22
|
+
* Creates / queues one opportunity for priority updation.
|
|
23
|
+
*
|
|
24
|
+
* Use when: LeadSquared webhook receives a new/updated opportunity.
|
|
25
|
+
* - `lsqPriorityUpdationId` auto-generates if omitted.
|
|
26
|
+
* - Auto-fills `passedStr` from `passed` (`false` → `"FALSE"`).
|
|
27
|
+
* - Auto-fills `priorityRank` from `priority` (P1→1 … P5→5).
|
|
28
|
+
* - Stamps `createdAt` / `updatedAt` as ISO timestamps when omitted.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* await lsqPriorityUpdationDao.save({
|
|
32
|
+
* opportunityId: "opp-123",
|
|
33
|
+
* passed: false,
|
|
34
|
+
* priority: "P1",
|
|
35
|
+
* urgency: "U2",
|
|
36
|
+
* value: "V3",
|
|
37
|
+
* eventDate: "2026-07-30",
|
|
38
|
+
* payload: { raw: "webhook-body" }
|
|
39
|
+
* });
|
|
40
|
+
*/
|
|
41
|
+
save: (item: CreateLsqPriorityUpdationInput, authContext?: AuthContext) => Promise<LsqPriorityUpdation>;
|
|
42
|
+
/**
|
|
43
|
+
* Updates an existing queued record by `lsqPriorityUpdationId`.
|
|
44
|
+
*
|
|
45
|
+
* Use when: recalculating priority/urgency/value (e.g. midnight job) or
|
|
46
|
+
* refreshing webhook payload fields.
|
|
47
|
+
* - Re-syncs `passedStr` / `priorityRank` when `passed` / `priority` change.
|
|
48
|
+
* - Always refreshes `updatedAt`.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* await lsqPriorityUpdationDao.update("lsq-uuid", {
|
|
52
|
+
* priority: "P2",
|
|
53
|
+
* urgency: "U1",
|
|
54
|
+
* value: "V2"
|
|
55
|
+
* });
|
|
56
|
+
*/
|
|
57
|
+
update: (lsqPriorityUpdationId: string, updates: Partial<LsqPriorityUpdation>, authContext?: AuthContext) => Promise<LsqPriorityUpdation>;
|
|
58
|
+
/**
|
|
59
|
+
* Fetches one queue record by table primary key.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* const row = await lsqPriorityUpdationDao.getById("lsq-uuid");
|
|
63
|
+
*/
|
|
64
|
+
getById: (lsqPriorityUpdationId: string) => Promise<LsqPriorityUpdation | null>;
|
|
65
|
+
/**
|
|
66
|
+
* Fetches one queue record by LeadSquared `opportunityId` (GSI `opportunityIdIndex`).
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* const row = await lsqPriorityUpdationDao.getByOpportunityId("opp-123");
|
|
70
|
+
*/
|
|
71
|
+
getByOpportunityId: (opportunityId: string) => Promise<LsqPriorityUpdation | null>;
|
|
72
|
+
/**
|
|
73
|
+
* Lists queue records by LeadSquared `opportunityId` (GSI `opportunityIdIndex`).
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* const { items } = await lsqPriorityUpdationDao.listByOpportunityId("opp-123");
|
|
77
|
+
*/
|
|
78
|
+
listByOpportunityId: (opportunityId: string, limit?: number, token?: string) => Promise<ListResult>;
|
|
79
|
+
/**
|
|
80
|
+
* Lists queued (unprocessed) opportunities sorted by `priorityRank` ascending.
|
|
81
|
+
*
|
|
82
|
+
* Use when: worker pulls next batch of unassigned LSQ priority updates.
|
|
83
|
+
* Queries GSI `passedStrIndex` with `passedStr = "FALSE"`.
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* const { items, nextToken } = await lsqPriorityUpdationDao.listUnprocessed(25);
|
|
87
|
+
*/
|
|
88
|
+
listUnprocessed: (limit?: number, token?: string) => Promise<ListResult>;
|
|
89
|
+
/**
|
|
90
|
+
* Lists opportunities by `passedStr` (GSI `passedStrIndex`), sorted by `priorityRank`.
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* const queued = await lsqPriorityUpdationDao.listByPassedStr("FALSE", 25);
|
|
94
|
+
*/
|
|
95
|
+
listByPassedStr: (passedStr: LsqPassedStr, limit?: number, token?: string) => Promise<ListResult>;
|
|
96
|
+
/**
|
|
97
|
+
* Marks a queue row as processed by deleting it via primary key.
|
|
98
|
+
*
|
|
99
|
+
* Use when: worker successfully applied priority update in LeadSquared.
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* await lsqPriorityUpdationDao.markProcessed("lsq-uuid");
|
|
103
|
+
*/
|
|
104
|
+
markProcessed: (lsqPriorityUpdationId: string) => Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Marks processed by LeadSquared `opportunityId` (lookup GSI, then delete by PK).
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* await lsqPriorityUpdationDao.markProcessedByOpportunityId("opp-123");
|
|
110
|
+
*/
|
|
111
|
+
markProcessedByOpportunityId: (opportunityId: string) => Promise<boolean>;
|
|
112
|
+
/**
|
|
113
|
+
* Deletes one queue record by primary key.
|
|
114
|
+
*/
|
|
115
|
+
deleteById: (lsqPriorityUpdationId: string) => Promise<void>;
|
|
116
|
+
}
|
|
117
|
+
export declare const lsqPriorityUpdationDao: LsqPriorityUpdationDao;
|
|
118
|
+
export {};
|
|
@@ -0,0 +1,200 @@
|
|
|
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
|
+
* - `passedStrIndex` → unprocessed queue (`passedStr` + `priorityRank`)
|
|
17
|
+
* Processed rows are deleted from the table (not soft-flagged).
|
|
18
|
+
*/
|
|
19
|
+
class LsqPriorityUpdationDao extends base_dynamoose_dao_1.GenericDynamooseDAO {
|
|
20
|
+
constructor() {
|
|
21
|
+
super(lsq_priority_updation_model_1.LsqPriorityUpdationModel, "lsqPriorityUpdationId");
|
|
22
|
+
this.nowIso = () => new Date().toISOString();
|
|
23
|
+
this.normalizeInput = (item, existingCreatedAt) => {
|
|
24
|
+
const now = this.nowIso();
|
|
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 ?? (0, lsq_priority_updation_model_1.toPriorityRank)(priority),
|
|
32
|
+
createdAt: item.createdAt ?? existingCreatedAt ?? now,
|
|
33
|
+
updatedAt: item.updatedAt ?? now
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Creates / queues one opportunity for priority updation.
|
|
38
|
+
*
|
|
39
|
+
* Use when: LeadSquared webhook receives a new/updated opportunity.
|
|
40
|
+
* - `lsqPriorityUpdationId` auto-generates if omitted.
|
|
41
|
+
* - Auto-fills `passedStr` from `passed` (`false` → `"FALSE"`).
|
|
42
|
+
* - Auto-fills `priorityRank` from `priority` (P1→1 … P5→5).
|
|
43
|
+
* - Stamps `createdAt` / `updatedAt` as ISO timestamps when omitted.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* await lsqPriorityUpdationDao.save({
|
|
47
|
+
* opportunityId: "opp-123",
|
|
48
|
+
* passed: false,
|
|
49
|
+
* priority: "P1",
|
|
50
|
+
* urgency: "U2",
|
|
51
|
+
* value: "V3",
|
|
52
|
+
* eventDate: "2026-07-30",
|
|
53
|
+
* payload: { raw: "webhook-body" }
|
|
54
|
+
* });
|
|
55
|
+
*/
|
|
56
|
+
this.save = async (item, authContext) => {
|
|
57
|
+
return super.save(this.normalizeInput(item), authContext);
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Updates an existing queued record by `lsqPriorityUpdationId`.
|
|
61
|
+
*
|
|
62
|
+
* Use when: recalculating priority/urgency/value (e.g. midnight job) or
|
|
63
|
+
* refreshing webhook payload fields.
|
|
64
|
+
* - Re-syncs `passedStr` / `priorityRank` when `passed` / `priority` change.
|
|
65
|
+
* - Always refreshes `updatedAt`.
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* await lsqPriorityUpdationDao.update("lsq-uuid", {
|
|
69
|
+
* priority: "P2",
|
|
70
|
+
* urgency: "U1",
|
|
71
|
+
* value: "V2"
|
|
72
|
+
* });
|
|
73
|
+
*/
|
|
74
|
+
this.update = async (lsqPriorityUpdationId, updates, authContext) => {
|
|
75
|
+
const nextUpdates = {
|
|
76
|
+
...updates,
|
|
77
|
+
updatedAt: updates.updatedAt ?? this.nowIso(),
|
|
78
|
+
updated_time: new Date(),
|
|
79
|
+
updated_user: authContext?.userSub
|
|
80
|
+
};
|
|
81
|
+
if (typeof updates.passed === "boolean") {
|
|
82
|
+
nextUpdates.passedStr = updates.passedStr ?? (0, lsq_priority_updation_model_1.toPassedStr)(updates.passed);
|
|
83
|
+
}
|
|
84
|
+
if (updates.priority) {
|
|
85
|
+
nextUpdates.priorityRank = updates.priorityRank ?? (0, lsq_priority_updation_model_1.toPriorityRank)(updates.priority);
|
|
86
|
+
}
|
|
87
|
+
const updated = await lsq_priority_updation_model_1.LsqPriorityUpdationModel.update({ lsqPriorityUpdationId }, nextUpdates, {
|
|
88
|
+
condition: new dynamoose_1.default.Condition().attribute("lsqPriorityUpdationId").exists()
|
|
89
|
+
});
|
|
90
|
+
return updated;
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Fetches one queue record by table primary key.
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* const row = await lsqPriorityUpdationDao.getById("lsq-uuid");
|
|
97
|
+
*/
|
|
98
|
+
this.getById = async (lsqPriorityUpdationId) => this.get(lsqPriorityUpdationId);
|
|
99
|
+
/**
|
|
100
|
+
* Fetches one queue record by LeadSquared `opportunityId` (GSI `opportunityIdIndex`).
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* const row = await lsqPriorityUpdationDao.getByOpportunityId("opp-123");
|
|
104
|
+
*/
|
|
105
|
+
this.getByOpportunityId = async (opportunityId) => {
|
|
106
|
+
const result = await this.listByOpportunityId(opportunityId, 1);
|
|
107
|
+
return result.items[0] ?? null;
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Lists queue records by LeadSquared `opportunityId` (GSI `opportunityIdIndex`).
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* const { items } = await lsqPriorityUpdationDao.listByOpportunityId("opp-123");
|
|
114
|
+
*/
|
|
115
|
+
this.listByOpportunityId = async (opportunityId, limit, token) => {
|
|
116
|
+
const decodedToken = this.decode(token);
|
|
117
|
+
let queryBuilder = lsq_priority_updation_model_1.LsqPriorityUpdationModel.query("opportunityId")
|
|
118
|
+
.eq(opportunityId)
|
|
119
|
+
.using("opportunityIdIndex");
|
|
120
|
+
if (decodedToken) {
|
|
121
|
+
queryBuilder = queryBuilder.startAt(decodedToken);
|
|
122
|
+
}
|
|
123
|
+
if (typeof limit === "number") {
|
|
124
|
+
queryBuilder = queryBuilder.limit(limit);
|
|
125
|
+
}
|
|
126
|
+
const queryResult = await queryBuilder.exec();
|
|
127
|
+
return {
|
|
128
|
+
items: queryResult,
|
|
129
|
+
nextToken: await this.encode(queryResult.lastKey)
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* Lists queued (unprocessed) opportunities sorted by `priorityRank` ascending.
|
|
134
|
+
*
|
|
135
|
+
* Use when: worker pulls next batch of unassigned LSQ priority updates.
|
|
136
|
+
* Queries GSI `passedStrIndex` with `passedStr = "FALSE"`.
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* const { items, nextToken } = await lsqPriorityUpdationDao.listUnprocessed(25);
|
|
140
|
+
*/
|
|
141
|
+
this.listUnprocessed = async (limit, token) => this.listByPassedStr(lsq_priority_updation_model_1.LSQ_PASSED_STR.FALSE, limit, token);
|
|
142
|
+
/**
|
|
143
|
+
* Lists opportunities by `passedStr` (GSI `passedStrIndex`), sorted by `priorityRank`.
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* const queued = await lsqPriorityUpdationDao.listByPassedStr("FALSE", 25);
|
|
147
|
+
*/
|
|
148
|
+
this.listByPassedStr = async (passedStr, limit, token) => {
|
|
149
|
+
const decodedToken = this.decode(token);
|
|
150
|
+
let queryBuilder = lsq_priority_updation_model_1.LsqPriorityUpdationModel.query("passedStr")
|
|
151
|
+
.eq(passedStr)
|
|
152
|
+
.using("passedStrIndex")
|
|
153
|
+
.sort("ascending");
|
|
154
|
+
if (decodedToken) {
|
|
155
|
+
queryBuilder = queryBuilder.startAt(decodedToken);
|
|
156
|
+
}
|
|
157
|
+
if (typeof limit === "number") {
|
|
158
|
+
queryBuilder = queryBuilder.limit(limit);
|
|
159
|
+
}
|
|
160
|
+
const queryResult = await queryBuilder.exec();
|
|
161
|
+
return {
|
|
162
|
+
items: queryResult,
|
|
163
|
+
nextToken: await this.encode(queryResult.lastKey)
|
|
164
|
+
};
|
|
165
|
+
};
|
|
166
|
+
/**
|
|
167
|
+
* Marks a queue row as processed by deleting it via primary key.
|
|
168
|
+
*
|
|
169
|
+
* Use when: worker successfully applied priority update in LeadSquared.
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* await lsqPriorityUpdationDao.markProcessed("lsq-uuid");
|
|
173
|
+
*/
|
|
174
|
+
this.markProcessed = async (lsqPriorityUpdationId) => {
|
|
175
|
+
await this.delete(lsqPriorityUpdationId);
|
|
176
|
+
};
|
|
177
|
+
/**
|
|
178
|
+
* Marks processed by LeadSquared `opportunityId` (lookup GSI, then delete by PK).
|
|
179
|
+
*
|
|
180
|
+
* @example
|
|
181
|
+
* await lsqPriorityUpdationDao.markProcessedByOpportunityId("opp-123");
|
|
182
|
+
*/
|
|
183
|
+
this.markProcessedByOpportunityId = async (opportunityId) => {
|
|
184
|
+
const row = await this.getByOpportunityId(opportunityId);
|
|
185
|
+
if (!row) {
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
await this.delete(row.lsqPriorityUpdationId);
|
|
189
|
+
return true;
|
|
190
|
+
};
|
|
191
|
+
/**
|
|
192
|
+
* Deletes one queue record by primary key.
|
|
193
|
+
*/
|
|
194
|
+
this.deleteById = async (lsqPriorityUpdationId) => {
|
|
195
|
+
await this.delete(lsqPriorityUpdationId);
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
exports.lsqPriorityUpdationDao = new LsqPriorityUpdationDao();
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHNxLXByaW9yaXR5LXVwZGF0aW9uLWRhby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXN0b21lci11c2VyL2xzcS1wcmlvcml0eS11cGRhdGlvbi9sc3EtcHJpb3JpdHktdXBkYXRpb24tZGFvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDBEQUFrQztBQUNsQyxpRUFBMEU7QUFFMUUsK0VBU3VDO0FBT3ZDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxzQkFBdUIsU0FBUSx3Q0FBd0M7SUFDekU7UUFDSSxLQUFLLENBQUMsc0RBQXdCLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztRQUdyRCxXQUFNLEdBQUcsR0FBVyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVoRCxtQkFBYyxHQUFHLENBQ3JCLElBQW9DLEVBQ3BDLGlCQUEwQixFQUNQLEVBQUU7WUFDckIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzFCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDO1lBQ3BDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUF1QixDQUFDO1lBRTlDLE9BQU87Z0JBQ0gsR0FBRyxJQUFJO2dCQUNQLE1BQU07Z0JBQ04sU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLElBQUksSUFBQSx5Q0FBVyxFQUFDLE1BQU0sQ0FBQztnQkFDaEQsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksSUFBQSw0Q0FBYyxFQUFDLFFBQVEsQ0FBQztnQkFDM0QsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLElBQUksaUJBQWlCLElBQUksR0FBRztnQkFDckQsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLElBQUksR0FBRzthQUNaLENBQUM7UUFDN0IsQ0FBQyxDQUFDO1FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FtQkc7UUFDSCxT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QyxDQUFDO1FBQzdDLENBQUMsQ0FBQztRQUVGOzs7OztXQUtHO1FBQ0gsaUNBQTRCLEdBQUcsS0FBSyxFQUFFLGFBQXFCLEVBQW9CLEVBQUU7WUFDN0UsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNQLE9BQU8sS0FBSyxDQUFDO1lBQ2pCLENBQUM7WUFDRCxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDN0MsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDO1FBRUY7O1dBRUc7UUFDSCxlQUFVLEdBQUcsS0FBSyxFQUFFLHFCQUE2QixFQUFpQixFQUFFO1lBQ2hFLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQztJQXRORixDQUFDO0NBdU5KO0FBRVksUUFBQSxzQkFBc0IsR0FBRyxJQUFJLHNCQUFzQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZHluYW1vb3NlIGZyb20gXCJkeW5hbW9vc2VcIjtcbmltcG9ydCB7IER5bmFtb0tleSwgR2VuZXJpY0R5bmFtb29zZURBTyB9IGZyb20gXCIuLi8uLi9iYXNlLWR5bmFtb29zZS1kYW9cIjtcbmltcG9ydCB7IEF1dGhDb250ZXh0IH0gZnJvbSBcIi4uLy4uL2Jhc2UtZHluYW1vb3NlLW1vZGVsXCI7XG5pbXBvcnQge1xuICAgIENyZWF0ZUxzcVByaW9yaXR5VXBkYXRpb25JbnB1dCxcbiAgICBMU1FfUEFTU0VEX1NUUixcbiAgICBMc3FQYXNzZWRTdHIsXG4gICAgTHNxUHJpb3JpdHksXG4gICAgTHNxUHJpb3JpdHlVcGRhdGlvbixcbiAgICBMc3FQcmlvcml0eVVwZGF0aW9uTW9kZWwsXG4gICAgdG9QYXNzZWRTdHIsXG4gICAgdG9Qcmlvcml0eVJhbmtcbn0gZnJvbSBcIi4vbHNxLXByaW9yaXR5LXVwZGF0aW9uLW1vZGVsXCI7XG5cbnR5cGUgTGlzdFJlc3VsdCA9IHtcbiAgICBpdGVtczogTHNxUHJpb3JpdHlVcGRhdGlvbltdO1xuICAgIG5leHRUb2tlbj86IHN0cmluZztcbn07XG5cbi8qKlxuICogREFPIGZvciBMZWFkU3F1YXJlZCBwcmlvcml0eS11cGRhdGlvbiBxdWV1ZS5cbiAqXG4gKiBUYWJsZSBrZXlzOiBgbHNxUHJpb3JpdHlVcGRhdGlvbklkYCAoUEspLlxuICogTG9va3VwczpcbiAqIC0gYG9wcG9ydHVuaXR5SWRJbmRleGAg4oaSIGJ5IExlYWRTcXVhcmVkIGBvcHBvcnR1bml0eUlkYFxuICogLSBgcGFzc2VkU3RySW5kZXhgIOKGkiB1bnByb2Nlc3NlZCBxdWV1ZSAoYHBhc3NlZFN0cmAgKyBgcHJpb3JpdHlSYW5rYClcbiAqIFByb2Nlc3NlZCByb3dzIGFyZSBkZWxldGVkIGZyb20gdGhlIHRhYmxlIChub3Qgc29mdC1mbGFnZ2VkKS5cbiAqL1xuY2xhc3MgTHNxUHJpb3JpdHlVcGRhdGlvbkRhbyBleHRlbmRzIEdlbmVyaWNEeW5hbW9vc2VEQU88THNxUHJpb3JpdHlVcGRhdGlvbj4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihMc3FQcmlvcml0eVVwZGF0aW9uTW9kZWwsIFwibHNxUHJpb3JpdHlVcGRhdGlvbklkXCIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbm93SXNvID0gKCk6IHN0cmluZyA9PiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG5cbiAgICBwcml2YXRlIG5vcm1hbGl6ZUlucHV0ID0gKFxuICAgICAgICBpdGVtOiBDcmVhdGVMc3FQcmlvcml0eVVwZGF0aW9uSW5wdXQsXG4gICAgICAgIGV4aXN0aW5nQ3JlYXRlZEF0Pzogc3RyaW5nXG4gICAgKTogTHNxUHJpb3JpdHlVcGRhdGlvbiA9PiB7XG4gICAgICAgIGNvbnN0IG5vdyA9IHRoaXMubm93SXNvKCk7XG4gICAgICAgIGNvbnN0IHBhc3NlZCA9IGl0ZW0ucGFzc2VkID8/IGZhbHNlO1xuICAgICAgICBjb25zdCBwcmlvcml0eSA9IGl0ZW0ucHJpb3JpdHkgYXMgTHNxUHJpb3JpdHk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICBwYXNzZWQsXG4gICAgICAgICAgICBwYXNzZWRTdHI6IGl0ZW0ucGFzc2VkU3RyID8/IHRvUGFzc2VkU3RyKHBhc3NlZCksXG4gICAgICAgICAgICBwcmlvcml0eVJhbms6IGl0ZW0ucHJpb3JpdHlSYW5rID8/IHRvUHJpb3JpdHlSYW5rKHByaW9yaXR5KSxcbiAgICAgICAgICAgIGNyZWF0ZWRBdDogaXRlbS5jcmVhdGVkQXQgPz8gZXhpc3RpbmdDcmVhdGVkQXQgPz8gbm93LFxuICAgICAgICAgICAgdXBkYXRlZEF0OiBpdGVtLnVwZGF0ZWRBdCA/PyBub3dcbiAgICAgICAgfSBhcyBMc3FQcmlvcml0eVVwZGF0aW9uO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIC8gcXVldWVzIG9uZSBvcHBvcnR1bml0eSBmb3IgcHJpb3JpdHkgdXBkYXRpb24uXG4gICAgICpcbiAgICAgKiBVc2Ugd2hlbjogTGVhZFNxdWFyZWQgd2ViaG9vayByZWNlaXZlcyBhIG5ldy91cGRhdGVkIG9wcG9ydHVuaXR5LlxuICAgICAqIC0gYGxzcVByaW9yaXR5VXBkYXRpb25JZGAgYXV0by1nZW5lcmF0ZXMgaWYgb21pdHRlZC5cbiAgICAgKiAtIEF1dG8tZmlsbHMgYHBhc3NlZFN0cmAgZnJvbSBgcGFzc2VkYCAoYGZhbHNlYCDihpIgYFwiRkFMU0VcImApLlxuICAgICAqIC0gQXV0by1maWxscyBgcHJpb3JpdHlSYW5rYCBmcm9tIGBwcmlvcml0eWAgKFAx4oaSMSDigKYgUDXihpI1KS5cbiAgICAgKiAtIFN0YW1wcyBgY3JlYXRlZEF0YCAvIGB1cGRhdGVkQXRgIGFzIElTTyB0aW1lc3RhbXBzIHdoZW4gb21pdHRlZC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYXdhaXQgbHNxUHJpb3JpdHlVcGRhdGlvbkRhby5zYXZlKHtcbiAgICAgKiAgICAgb3Bwb3J0dW5pdHlJZDogXCJvcHAtMTIzXCIsXG4gICAgICogICAgIHBhc3NlZDogZmFsc2UsXG4gICAgICogICAgIHByaW9yaXR5OiBcIlAxXCIsXG4gICAgICogICAgIHVyZ2VuY3k6IFwiVTJcIixcbiAgICAgKiAgICAgdmFsdWU6IFwiVjNcIixcbiAgICAgKiAgICAgZXZlbnREYXRlOiBcIjIwMjYtMDctMzBcIixcbiAgICAgKiAgICAgcGF5bG9hZDogeyByYXc6IFwid2ViaG9vay1ib2R5XCIgfVxuICAgICAqIH0pO1xuICAgICAqL1xuICAgIHNhdmUgPSBhc3luYyAoXG4gICAgICAgIGl0ZW06IENyZWF0ZUxzcVByaW9yaXR5VXBkYXRpb25JbnB1dCxcbiAgICAgICAgYXV0aENvbnRleHQ/OiBBdXRoQ29udGV4dFxuICAgICk6IFByb21pc2U8THNxUHJpb3JpdHlVcGRhdGlvbj4gPT4ge1xuICAgICAgICByZXR1cm4gc3VwZXIuc2F2ZSh0aGlzLm5vcm1hbGl6ZUlucHV0KGl0ZW0pLCBhdXRoQ29udGV4dCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgcXVldWVkIHJlY29yZCBieSBgbHNxUHJpb3JpdHlVcGRhdGlvbklkYC5cbiAgICAgKlxuICAgICAqIFVzZSB3aGVuOiByZWNhbGN1bGF0aW5nIHByaW9yaXR5L3VyZ2VuY3kvdmFsdWUgKGUuZy4gbWlkbmlnaHQgam9iKSBvclxuICAgICAqIHJlZnJlc2hpbmcgd2ViaG9vayBwYXlsb2FkIGZpZWxkcy5cbiAgICAgKiAtIFJlLXN5bmNzIGBwYXNzZWRTdHJgIC8gYHByaW9yaXR5UmFua2Agd2hlbiBgcGFzc2VkYCAvIGBwcmlvcml0eWAgY2hhbmdlLlxuICAgICAqIC0gQWx3YXlzIHJlZnJlc2hlcyBgdXBkYXRlZEF0YC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYXdhaXQgbHNxUHJpb3JpdHlVcGRhdGlvbkRhby51cGRhdGUoXCJsc3EtdXVpZFwiLCB7XG4gICAgICogICAgIHByaW9yaXR5OiBcIlAyXCIsXG4gICAgICogICAgIHVyZ2VuY3k6IFwiVTFcIixcbiAgICAgKiAgICAgdmFsdWU6IFwiVjJcIlxuICAgICAqIH0pO1xuICAgICAqL1xuICAgIHVwZGF0ZSA9IGFzeW5jIChcbiAgICAgICAgbHNxUHJpb3JpdHlVcGRhdGlvbklkOiBzdHJpbmcsXG4gICAgICAgIHVwZGF0ZXM6IFBhcnRpYWw8THNxUHJpb3JpdHlVcGRhdGlvbj4sXG4gICAgICAgIGF1dGhDb250ZXh0PzogQXV0aENvbnRleHRcbiAgICApOiBQcm9taXNlPExzcVByaW9yaXR5VXBkYXRpb24+ID0+IHtcbiAgICAgICAgY29uc3QgbmV4dFVwZGF0ZXM6IFBhcnRpYWw8THNxUHJpb3JpdHlVcGRhdGlvbj4gPSB7XG4gICAgICAgICAgICAuLi51cGRhdGVzLFxuICAgICAgICAgICAgdXBkYXRlZEF0OiB1cGRhdGVzLnVwZGF0ZWRBdCA/PyB0aGlzLm5vd0lzbygpLFxuICAgICAgICAgICAgdXBkYXRlZF90aW1lOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgICAgdXBkYXRlZF91c2VyOiBhdXRoQ29udGV4dD8udXNlclN1YlxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0eXBlb2YgdXBkYXRlcy5wYXNzZWQgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICBuZXh0VXBkYXRlcy5wYXNzZWRTdHIgPSB1cGRhdGVzLnBhc3NlZFN0ciA/PyB0b1Bhc3NlZFN0cih1cGRhdGVzLnBhc3NlZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVwZGF0ZXMucHJpb3JpdHkpIHtcbiAgICAgICAgICAgIG5leHRVcGRhdGVzLnByaW9yaXR5UmFuayA9IHVwZGF0ZXMucHJpb3JpdHlSYW5rID8/IHRvUHJpb3JpdHlSYW5rKHVwZGF0ZXMucHJpb3JpdHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdXBkYXRlZCA9IGF3YWl0IExzcVByaW9yaXR5VXBkYXRpb25Nb2RlbC51cGRhdGUoXG4gICAgICAgICAgICB7IGxzcVByaW9yaXR5VXBkYXRpb25JZCB9LFxuICAgICAgICAgICAgbmV4dFVwZGF0ZXMsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uZGl0aW9uOiBuZXcgZHluYW1vb3NlLkNvbmRpdGlvbigpLmF0dHJpYnV0ZShcImxzcVByaW9yaXR5VXBkYXRpb25JZFwiKS5leGlzdHMoKVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdXBkYXRlZCBhcyB1bmtub3duIGFzIExzcVByaW9yaXR5VXBkYXRpb247XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEZldGNoZXMgb25lIHF1ZXVlIHJlY29yZCBieSB0YWJsZSBwcmltYXJ5IGtleS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3Qgcm93ID0gYXdhaXQgbHNxUHJpb3JpdHlVcGRhdGlvbkRhby5nZXRCeUlkKFwibHNxLXV1aWRcIik7XG4gICAgICovXG4gICAgZ2V0QnlJZCA9IGFzeW5jIChsc3FQcmlvcml0eVVwZGF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8THNxUHJpb3JpdHlVcGRhdGlvbiB8IG51bGw+ID0+XG4gICAgICAgIHRoaXMuZ2V0KGxzcVByaW9yaXR5VXBkYXRpb25JZCk7XG5cbiAgICAvKipcbiAgICAgKiBGZXRjaGVzIG9uZSBxdWV1ZSByZWNvcmQgYnkgTGVhZFNxdWFyZWQgYG9wcG9ydHVuaXR5SWRgIChHU0kgYG9wcG9ydHVuaXR5SWRJbmRleGApLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCByb3cgPSBhd2FpdCBsc3FQcmlvcml0eVVwZGF0aW9uRGFvLmdldEJ5T3Bwb3J0dW5pdHlJZChcIm9wcC0xMjNcIik7XG4gICAgICovXG4gICAgZ2V0QnlPcHBvcnR1bml0eUlkID0gYXN5bmMgKG9wcG9ydHVuaXR5SWQ6IHN0cmluZyk6IFByb21pc2U8THNxUHJpb3JpdHlVcGRhdGlvbiB8IG51bGw+ID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5saXN0QnlPcHBvcnR1bml0eUlkKG9wcG9ydHVuaXR5SWQsIDEpO1xuICAgICAgICByZXR1cm4gcmVzdWx0Lml0ZW1zWzBdID8/IG51bGw7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExpc3RzIHF1ZXVlIHJlY29yZHMgYnkgTGVhZFNxdWFyZWQgYG9wcG9ydHVuaXR5SWRgIChHU0kgYG9wcG9ydHVuaXR5SWRJbmRleGApLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCB7IGl0ZW1zIH0gPSBhd2FpdCBsc3FQcmlvcml0eVVwZGF0aW9uRGFvLmxpc3RCeU9wcG9ydHVuaXR5SWQoXCJvcHAtMTIzXCIpO1xuICAgICAqL1xuICAgIGxpc3RCeU9wcG9ydHVuaXR5SWQgPSBhc3luYyAoXG4gICAgICAgIG9wcG9ydHVuaXR5SWQ6IHN0cmluZyxcbiAgICAgICAgbGltaXQ/OiBudW1iZXIsXG4gICAgICAgIHRva2VuPzogc3RyaW5nXG4gICAgKTogUHJvbWlzZTxMaXN0UmVzdWx0PiA9PiB7XG4gICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IHRoaXMuZGVjb2RlKHRva2VuKTtcbiAgICAgICAgbGV0IHF1ZXJ5QnVpbGRlciA9IExzcVByaW9yaXR5VXBkYXRpb25Nb2RlbC5xdWVyeShcIm9wcG9ydHVuaXR5SWRcIilcbiAgICAgICAgICAgIC5lcShvcHBvcnR1bml0eUlkKVxuICAgICAgICAgICAgLnVzaW5nKFwib3Bwb3J0dW5pdHlJZEluZGV4XCIpO1xuICAgICAgICBpZiAoZGVjb2RlZFRva2VuKSB7XG4gICAgICAgICAgICBxdWVyeUJ1aWxkZXIgPSBxdWVyeUJ1aWxkZXIuc3RhcnRBdChkZWNvZGVkVG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbGltaXQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5saW1pdChsaW1pdCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcXVlcnlSZXN1bHQgPSBhd2FpdCBxdWVyeUJ1aWxkZXIuZXhlYygpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHF1ZXJ5UmVzdWx0IGFzIHVua25vd24gYXMgTHNxUHJpb3JpdHlVcGRhdGlvbltdLFxuICAgICAgICAgICAgbmV4dFRva2VuOiBhd2FpdCB0aGlzLmVuY29kZShxdWVyeVJlc3VsdC5sYXN0S2V5IGFzIER5bmFtb0tleSB8IHVuZGVmaW5lZClcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTGlzdHMgcXVldWVkICh1bnByb2Nlc3NlZCkgb3Bwb3J0dW5pdGllcyBzb3J0ZWQgYnkgYHByaW9yaXR5UmFua2AgYXNjZW5kaW5nLlxuICAgICAqXG4gICAgICogVXNlIHdoZW46IHdvcmtlciBwdWxscyBuZXh0IGJhdGNoIG9mIHVuYXNzaWduZWQgTFNRIHByaW9yaXR5IHVwZGF0ZXMuXG4gICAgICogUXVlcmllcyBHU0kgYHBhc3NlZFN0ckluZGV4YCB3aXRoIGBwYXNzZWRTdHIgPSBcIkZBTFNFXCJgLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCB7IGl0ZW1zLCBuZXh0VG9rZW4gfSA9IGF3YWl0IGxzcVByaW9yaXR5VXBkYXRpb25EYW8ubGlzdFVucHJvY2Vzc2VkKDI1KTtcbiAgICAgKi9cbiAgICBsaXN0VW5wcm9jZXNzZWQgPSBhc3luYyAobGltaXQ/OiBudW1iZXIsIHRva2VuPzogc3RyaW5nKTogUHJvbWlzZTxMaXN0UmVzdWx0PiA9PlxuICAgICAgICB0aGlzLmxpc3RCeVBhc3NlZFN0cihMU1FfUEFTU0VEX1NUUi5GQUxTRSwgbGltaXQsIHRva2VuKTtcblxuICAgIC8qKlxuICAgICAqIExpc3RzIG9wcG9ydHVuaXRpZXMgYnkgYHBhc3NlZFN0cmAgKEdTSSBgcGFzc2VkU3RySW5kZXhgKSwgc29ydGVkIGJ5IGBwcmlvcml0eVJhbmtgLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCBxdWV1ZWQgPSBhd2FpdCBsc3FQcmlvcml0eVVwZGF0aW9uRGFvLmxpc3RCeVBhc3NlZFN0cihcIkZBTFNFXCIsIDI1KTtcbiAgICAgKi9cbiAgICBsaXN0QnlQYXNzZWRTdHIgPSBhc3luYyAoXG4gICAgICAgIHBhc3NlZFN0cjogTHNxUGFzc2VkU3RyLFxuICAgICAgICBsaW1pdD86IG51bWJlcixcbiAgICAgICAgdG9rZW4/OiBzdHJpbmdcbiAgICApOiBQcm9taXNlPExpc3RSZXN1bHQ+ID0+IHtcbiAgICAgICAgY29uc3QgZGVjb2RlZFRva2VuID0gdGhpcy5kZWNvZGUodG9rZW4pO1xuICAgICAgICBsZXQgcXVlcnlCdWlsZGVyID0gTHNxUHJpb3JpdHlVcGRhdGlvbk1vZGVsLnF1ZXJ5KFwicGFzc2VkU3RyXCIpXG4gICAgICAgICAgICAuZXEocGFzc2VkU3RyKVxuICAgICAgICAgICAgLnVzaW5nKFwicGFzc2VkU3RySW5kZXhcIilcbiAgICAgICAgICAgIC5zb3J0KFwiYXNjZW5kaW5nXCIpO1xuICAgICAgICBpZiAoZGVjb2RlZFRva2VuKSB7XG4gICAgICAgICAgICBxdWVyeUJ1aWxkZXIgPSBxdWVyeUJ1aWxkZXIuc3RhcnRBdChkZWNvZGVkVG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbGltaXQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5saW1pdChsaW1pdCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcXVlcnlSZXN1bHQgPSBhd2FpdCBxdWVyeUJ1aWxkZXIuZXhlYygpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHF1ZXJ5UmVzdWx0IGFzIHVua25vd24gYXMgTHNxUHJpb3JpdHlVcGRhdGlvbltdLFxuICAgICAgICAgICAgbmV4dFRva2VuOiBhd2FpdCB0aGlzLmVuY29kZShxdWVyeVJlc3VsdC5sYXN0S2V5IGFzIER5bmFtb0tleSB8IHVuZGVmaW5lZClcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTWFya3MgYSBxdWV1ZSByb3cgYXMgcHJvY2Vzc2VkIGJ5IGRlbGV0aW5nIGl0IHZpYSBwcmltYXJ5IGtleS5cbiAgICAgKlxuICAgICAqIFVzZSB3aGVuOiB3b3JrZXIgc3VjY2Vzc2Z1bGx5IGFwcGxpZWQgcHJpb3JpdHkgdXBkYXRlIGluIExlYWRTcXVhcmVkLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBhd2FpdCBsc3FQcmlvcml0eVVwZGF0aW9uRGFvLm1hcmtQcm9jZXNzZWQoXCJsc3EtdXVpZFwiKTtcbiAgICAgKi9cbiAgICBtYXJrUHJvY2Vzc2VkID0gYXN5bmMgKGxzcVByaW9yaXR5VXBkYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlKGxzcVByaW9yaXR5VXBkYXRpb25JZCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIE1hcmtzIHByb2Nlc3NlZCBieSBMZWFkU3F1YXJlZCBgb3Bwb3J0dW5pdHlJZGAgKGxvb2t1cCBHU0ksIHRoZW4gZGVsZXRlIGJ5IFBLKS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYXdhaXQgbHNxUHJpb3JpdHlVcGRhdGlvbkRhby5tYXJrUHJvY2Vzc2VkQnlPcHBvcnR1bml0eUlkKFwib3BwLTEyM1wiKTtcbiAgICAgKi9cbiAgICBtYXJrUHJvY2Vzc2VkQnlPcHBvcnR1bml0eUlkID0gYXN5bmMgKG9wcG9ydHVuaXR5SWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgICAgICBjb25zdCByb3cgPSBhd2FpdCB0aGlzLmdldEJ5T3Bwb3J0dW5pdHlJZChvcHBvcnR1bml0eUlkKTtcbiAgICAgICAgaWYgKCFyb3cpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZShyb3cubHNxUHJpb3JpdHlVcGRhdGlvbklkKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgb25lIHF1ZXVlIHJlY29yZCBieSBwcmltYXJ5IGtleS5cbiAgICAgKi9cbiAgICBkZWxldGVCeUlkID0gYXN5bmMgKGxzcVByaW9yaXR5VXBkYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlKGxzcVByaW9yaXR5VXBkYXRpb25JZCk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGxzcVByaW9yaXR5VXBkYXRpb25EYW8gPSBuZXcgTHNxUHJpb3JpdHlVcGRhdGlvbkRhbygpO1xuIl19
|
|
@@ -0,0 +1,64 @@
|
|
|
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
|
+
/** ISO timestamp when webhook first received the opportunity. */
|
|
48
|
+
createdAt: string;
|
|
49
|
+
/** ISO timestamp when record was last updated. */
|
|
50
|
+
updatedAt: string;
|
|
51
|
+
/** Optional raw webhook payload. */
|
|
52
|
+
payload?: Record<string, unknown>;
|
|
53
|
+
}
|
|
54
|
+
export type CreateLsqPriorityUpdationInput = Omit<LsqPriorityUpdation, "lsqPriorityUpdationId" | "passedStr" | "priorityRank" | "createdAt" | "updatedAt"> & {
|
|
55
|
+
lsqPriorityUpdationId?: string;
|
|
56
|
+
passedStr?: LsqPassedStr;
|
|
57
|
+
priorityRank?: number;
|
|
58
|
+
createdAt?: string;
|
|
59
|
+
updatedAt?: string;
|
|
60
|
+
};
|
|
61
|
+
export declare const toPassedStr: (passed: boolean) => LsqPassedStr;
|
|
62
|
+
export declare const toPriorityRank: (priority: LsqPriority) => number;
|
|
63
|
+
export declare const LsqPriorityUpdationModel: import("dynamoose/dist/General").ModelType<LsqPriorityUpdation>;
|
|
64
|
+
export declare const convertToLsqPriorityUpdationModel: (input: CreateLsqPriorityUpdationInput | LsqPriorityUpdation) => LsqPriorityUpdation;
|
|
@@ -0,0 +1,123 @@
|
|
|
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
|
+
createdAt: {
|
|
104
|
+
type: String,
|
|
105
|
+
required: true
|
|
106
|
+
},
|
|
107
|
+
updatedAt: {
|
|
108
|
+
type: String,
|
|
109
|
+
required: true
|
|
110
|
+
},
|
|
111
|
+
payload: {
|
|
112
|
+
type: Object
|
|
113
|
+
}
|
|
114
|
+
}, {
|
|
115
|
+
saveUnknown: ["payload.**"],
|
|
116
|
+
timestamps: false
|
|
117
|
+
});
|
|
118
|
+
exports.LsqPriorityUpdationModel = dynamoose_1.default.model(table_names_1.TABLE_NAMES.LSQ_PRIORITY_UPDATION, lsqPriorityUpdationSchema, { create: false, waitForActive: false });
|
|
119
|
+
const convertToLsqPriorityUpdationModel = (input) => {
|
|
120
|
+
return new exports.LsqPriorityUpdationModel(input);
|
|
121
|
+
};
|
|
122
|
+
exports.convertToLsqPriorityUpdationModel = convertToLsqPriorityUpdationModel;
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHNxLXByaW9yaXR5LXVwZGF0aW9uLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2N1c3RvbWVyLXVzZXIvbHNxLXByaW9yaXR5LXVwZGF0aW9uL2xzcS1wcmlvcml0eS11cGRhdGlvbi1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwREFBa0M7QUFDbEMsbUNBQW9DO0FBRXBDLDBEQUF1RDtBQUUxQyxRQUFBLFlBQVksR0FBRztJQUN4QixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0lBQ1IsRUFBRSxFQUFFLElBQUk7SUFDUixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0NBQ0YsQ0FBQztBQUlFLFFBQUEsaUJBQWlCLEdBQWdDO0lBQzFELENBQUMsb0JBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3BCLENBQUMsb0JBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3BCLENBQUMsb0JBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3BCLENBQUMsb0JBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3BCLENBQUMsb0JBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0NBQ3ZCLENBQUM7QUFFVyxRQUFBLFdBQVcsR0FBRztJQUN2QixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0lBQ1IsRUFBRSxFQUFFLElBQUk7SUFDUixFQUFFLEVBQUUsSUFBSTtDQUNGLENBQUM7QUFJRSxRQUFBLFNBQVMsR0FBRztJQUNyQixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0lBQ1IsRUFBRSxFQUFFLElBQUk7SUFDUixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0NBQ0YsQ0FBQztBQUlYLGlEQUFpRDtBQUNwQyxRQUFBLGNBQWMsR0FBRztJQUMxQixLQUFLLEVBQUUsT0FB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eUJBQXlCLEVBQ3pCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQzFDLENBQUM7QUFFSyxNQUFNLGlDQUFpQyxHQUFHLENBQzdDLEtBQTJELEVBQzdELEVBQUU7SUFDQSxPQUFPLElBQUksZ0NBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDL0MsQ0FBQyxDQUFDO0FBSlcsUUFBQSxpQ0FBaUMscUNBSTVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGR5bmFtb29zZSBmcm9tIFwiZHluYW1vb3NlXCI7XG5pbXBvcnQgeyByYW5kb21VVUlEIH0gZnJvbSBcImNyeXB0b1wiO1xuaW1wb3J0IHsgQmFzZUR5bmFtb29zZU1vZGVsIH0gZnJvbSBcIi4uLy4uL2Jhc2UtZHluYW1vb3NlLW1vZGVsXCI7XG5pbXBvcnQgeyBUQUJMRV9OQU1FUyB9IGZyb20gXCIuLi8uLi9jb25maWcvdGFibGUtbmFtZXNcIjtcblxuZXhwb3J0IGNvbnN0IExTUV9QUklPUklUWSA9IHtcbiAgICBQMTogXCJQMVwiLFxuICAgIFAyOiBcIlAyXCIsXG4gICAgUDM6IFwiUDNcIixcbiAgICBQNDogXCJQNFwiLFxuICAgIFA1OiBcIlA1XCJcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIExzcVByaW9yaXR5ID0gKHR5cGVvZiBMU1FfUFJJT1JJVFkpW2tleW9mIHR5cGVvZiBMU1FfUFJJT1JJVFldO1xuXG5leHBvcnQgY29uc3QgTFNRX1BSSU9SSVRZX1JBTks6IFJlY29yZDxMc3FQcmlvcml0eSwgbnVtYmVyPiA9IHtcbiAgICBbTFNRX1BSSU9SSVRZLlAxXTogMSxcbiAgICBbTFNRX1BSSU9SSVRZLlAyXTogMixcbiAgICBbTFNRX1BSSU9SSVRZLlAzXTogMyxcbiAgICBbTFNRX1BSSU9SSVRZLlA0XTogNCxcbiAgICBbTFNRX1BSSU9SSVRZLlA1XTogNVxufTtcblxuZXhwb3J0IGNvbnN0IExTUV9VUkdFTkNZID0ge1xuICAgIFUxOiBcIlUxXCIsXG4gICAgVTI6IFwiVTJcIixcbiAgICBVMzogXCJVM1wiLFxuICAgIFU0OiBcIlU0XCJcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIExzcVVyZ2VuY3kgPSAodHlwZW9mIExTUV9VUkdFTkNZKVtrZXlvZiB0eXBlb2YgTFNRX1VSR0VOQ1ldO1xuXG5leHBvcnQgY29uc3QgTFNRX1ZBTFVFID0ge1xuICAgIFYxOiBcIlYxXCIsXG4gICAgVjI6IFwiVjJcIixcbiAgICBWMzogXCJWM1wiLFxuICAgIFY0OiBcIlY0XCIsXG4gICAgVjU6IFwiVjVcIlxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgTHNxVmFsdWUgPSAodHlwZW9mIExTUV9WQUxVRSlba2V5b2YgdHlwZW9mIExTUV9WQUxVRV07XG5cbi8qKiBHU0kgcGFydGl0aW9uIHZhbHVlcyBmb3IgYHBhc3NlZFN0ckluZGV4YC4gKi9cbmV4cG9ydCBjb25zdCBMU1FfUEFTU0VEX1NUUiA9IHtcbiAgICBGQUxTRTogXCJGQUxTRVwiLFxuICAgIFRSVUU6IFwiVFJVRVwiXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBMc3FQYXNzZWRTdHIgPSAodHlwZW9mIExTUV9QQVNTRURfU1RSKVtrZXlvZiB0eXBlb2YgTFNRX1BBU1NFRF9TVFJdO1xuXG5leHBvcnQgaW50ZXJmYWNlIExzcVByaW9yaXR5VXBkYXRpb24gZXh0ZW5kcyBCYXNlRHluYW1vb3NlTW9kZWwge1xuICAgIC8qKiBUYWJsZSB1bmlxdWUgaWQgKFBLKS4gKi9cbiAgICBsc3FQcmlvcml0eVVwZGF0aW9uSWQ6IHN0cmluZztcbiAgICAvKiogTGVhZFNxdWFyZWQgb3Bwb3J0dW5pdHkgaWQgKEdTSSBgb3Bwb3J0dW5pdHlJZEluZGV4YCkuICovXG4gICAgb3Bwb3J0dW5pdHlJZDogc3RyaW5nO1xuICAgIHBhc3NlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kZXhlZCBtaXJyb3Igb2YgYHBhc3NlZGAg4oCUIGBcIkZBTFNFXCJgIHdoZW4gcXVldWVkL3VuYXNzaWduZWQuICovXG4gICAgcGFzc2VkU3RyOiBMc3FQYXNzZWRTdHI7XG4gICAgcHJpb3JpdHk6IExzcVByaW9yaXR5O1xuICAgIC8qKiBOdW1lcmljIHNvcnQgc2NvcmUgZm9yIEdTSTogUDHihpIxIOKApiBQNeKGkjUuICovXG4gICAgcHJpb3JpdHlSYW5rOiBudW1iZXI7XG4gICAgdXJnZW5jeTogTHNxVXJnZW5jeTtcbiAgICB2YWx1ZTogTHNxVmFsdWU7XG4gICAgLyoqIElTTyBkYXRlIGBZWVlZLU1NLUREYCBmb3IgbWlkbmlnaHQgcmVjYWxjdWxhdGlvbi4gKi9cbiAgICBldmVudERhdGU6IHN0cmluZztcbiAgICAvKiogSVNPIHRpbWVzdGFtcCB3aGVuIHdlYmhvb2sgZmlyc3QgcmVjZWl2ZWQgdGhlIG9wcG9ydHVuaXR5LiAqL1xuICAgIGNyZWF0ZWRBdDogc3RyaW5nO1xuICAgIC8qKiBJU08gdGltZXN0YW1wIHdoZW4gcmVjb3JkIHdhcyBsYXN0IHVwZGF0ZWQuICovXG4gICAgdXBkYXRlZEF0OiBzdHJpbmc7XG4gICAgLyoqIE9wdGlvbmFsIHJhdyB3ZWJob29rIHBheWxvYWQuICovXG4gICAgcGF5bG9hZD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5leHBvcnQgdHlwZSBDcmVhdGVMc3FQcmlvcml0eVVwZGF0aW9uSW5wdXQgPSBPbWl0PFxuICAgIExzcVByaW9yaXR5VXBkYXRpb24sXG4gICAgXCJsc3FQcmlvcml0eVVwZGF0aW9uSWRcIiB8IFwicGFzc2VkU3RyXCIgfCBcInByaW9yaXR5UmFua1wiIHwgXCJjcmVhdGVkQXRcIiB8IFwidXBkYXRlZEF0XCJcbj4gJiB7XG4gICAgbHNxUHJpb3JpdHlVcGRhdGlvbklkPzogc3RyaW5nO1xuICAgIHBhc3NlZFN0cj86IExzcVBhc3NlZFN0cjtcbiAgICBwcmlvcml0eVJhbms/OiBudW1iZXI7XG4gICAgY3JlYXRlZEF0Pzogc3RyaW5nO1xuICAgIHVwZGF0ZWRBdD86IHN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCB0b1Bhc3NlZFN0ciA9IChwYXNzZWQ6IGJvb2xlYW4pOiBMc3FQYXNzZWRTdHIgPT5cbiAgICBwYXNzZWQgPyBMU1FfUEFTU0VEX1NUUi5UUlVFIDogTFNRX1BBU1NFRF9TVFIuRkFMU0U7XG5cbmV4cG9ydCBjb25zdCB0b1ByaW9yaXR5UmFuayA9IChwcmlvcml0eTogTHNxUHJpb3JpdHkpOiBudW1iZXIgPT4gTFNRX1BSSU9SSVRZX1JBTktbcHJpb3JpdHldO1xuXG5jb25zdCBsc3FQcmlvcml0eVVwZGF0aW9uU2NoZW1hID0gbmV3IGR5bmFtb29zZS5TY2hlbWEoXG4gICAge1xuICAgICAgICBsc3FQcmlvcml0eVVwZGF0aW9uSWQ6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGhhc2hLZXk6IHRydWUsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICgpID0+IHJhbmRvbVVVSUQoKVxuICAgICAgICB9LFxuICAgICAgICBvcHBvcnR1bml0eUlkOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIGluZGV4OiB7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJvcHBvcnR1bml0eUlkSW5kZXhcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImdsb2JhbFwiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHBhc3NlZDoge1xuICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgZGVmYXVsdDogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgcGFzc2VkU3RyOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIGVudW06IFtMU1FfUEFTU0VEX1NUUi5GQUxTRSwgTFNRX1BBU1NFRF9TVFIuVFJVRV0sXG4gICAgICAgICAgICBkZWZhdWx0OiBMU1FfUEFTU0VEX1NUUi5GQUxTRSxcbiAgICAgICAgICAgIGluZGV4OiB7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJwYXNzZWRTdHJJbmRleFwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZ2xvYmFsXCIsXG4gICAgICAgICAgICAgICAgcmFuZ2VLZXk6IFwicHJpb3JpdHlSYW5rXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcHJpb3JpdHk6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgZW51bTogW1xuICAgICAgICAgICAgICAgIExTUV9QUklPUklUWS5QMSxcbiAgICAgICAgICAgICAgICBMU1FfUFJJT1JJVFkuUDIsXG4gICAgICAgICAgICAgICAgTFNRX1BSSU9SSVRZLlAzLFxuICAgICAgICAgICAgICAgIExTUV9QUklPUklUWS5QNCxcbiAgICAgICAgICAgICAgICBMU1FfUFJJT1JJVFkuUDVcbiAgICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgcHJpb3JpdHlSYW5rOiB7XG4gICAgICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIH0sXG4gICAgICAgIHVyZ2VuY3k6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGVudW06IFtMU1FfVVJHRU5DWS5VMSwgTFNRX1VSR0VOQ1kuVTIsIExTUV9VUkdFTkNZLlUzLCBMU1FfVVJHRU5DWS5VNF1cbiAgICAgICAgfSxcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGVudW06IFtMU1FfVkFMVUUuVjEsIExTUV9WQUxVRS5WMiwgTFNRX1ZBTFVFLlYzLCBMU1FfVkFMVUUuVjQsIExTUV9WQUxVRS5WNV1cbiAgICAgICAgfSxcbiAgICAgICAgZXZlbnREYXRlOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBjcmVhdGVkQXQ6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHVwZGF0ZWRBdDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgdHlwZTogT2JqZWN0XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgICAgc2F2ZVVua25vd246IFtcInBheWxvYWQuKipcIl0sXG4gICAgICAgIHRpbWVzdGFtcHM6IGZhbHNlXG4gICAgfVxuKTtcblxuZXhwb3J0IGNvbnN0IExzcVByaW9yaXR5VXBkYXRpb25Nb2RlbCA9IGR5bmFtb29zZS5tb2RlbDxMc3FQcmlvcml0eVVwZGF0aW9uPihcbiAgICBUQUJMRV9OQU1FUy5MU1FfUFJJT1JJVFlfVVBEQVRJT04sXG4gICAgbHNxUHJpb3JpdHlVcGRhdGlvblNjaGVtYSxcbiAgICB7IGNyZWF0ZTogZmFsc2UsIHdhaXRGb3JBY3RpdmU6IGZhbHNlIH1cbik7XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0VG9Mc3FQcmlvcml0eVVwZGF0aW9uTW9kZWwgPSAoXG4gICAgaW5wdXQ6IENyZWF0ZUxzcVByaW9yaXR5VXBkYXRpb25JbnB1dCB8IExzcVByaW9yaXR5VXBkYXRpb25cbikgPT4ge1xuICAgIHJldHVybiBuZXcgTHNxUHJpb3JpdHlVcGRhdGlvbk1vZGVsKGlucHV0KTtcbn07XG4iXX0=
|
|
@@ -69,8 +69,15 @@ export declare class PlateModel extends BaseModel {
|
|
|
69
69
|
totalSkewerAddonsCost?: number;
|
|
70
70
|
skewerAddons?: SkewerAddonsOnOrder[];
|
|
71
71
|
defaultValue: IsDefaultValue;
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
setPreferences?: SetPreferences;
|
|
73
|
+
bundleId?: string;
|
|
74
|
+
}
|
|
75
|
+
export declare class SetPreferences {
|
|
76
|
+
spicyLevel: string;
|
|
77
|
+
tellUsMore: string;
|
|
78
|
+
noOnionGarlicCharge: number;
|
|
79
|
+
isOnionGarlicSelected: boolean;
|
|
80
|
+
alternatePhoneNumber: string;
|
|
74
81
|
}
|
|
75
82
|
export declare class IsDefaultValue {
|
|
76
83
|
isdefaultEventTime: boolean;
|