cmp-aws-database 2.1.2-dev.1 → 2.1.2-dev.11

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.
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.DeliveryFeesDetails = exports.OrderModel = void 0;
12
+ exports.AppsFlyerMetaData = exports.DeliveryFeesDetails = exports.OrderModel = void 0;
13
13
  const annotations_1 = require("@nova-odm/annotations");
14
14
  const base_model_1 = require("../../../base-model");
15
15
  let OrderModel = class OrderModel extends base_model_1.BaseModel {
@@ -141,6 +141,14 @@ __decorate([
141
141
  (0, annotations_1.attribute)(),
142
142
  __metadata("design:type", String)
143
143
  ], OrderModel.prototype, "referencedOrderId", void 0);
144
+ __decorate([
145
+ (0, annotations_1.attribute)(),
146
+ __metadata("design:type", Boolean)
147
+ ], OrderModel.prototype, "isUpdatedOrder", void 0);
148
+ __decorate([
149
+ (0, annotations_1.attribute)(),
150
+ __metadata("design:type", AppsFlyerMetaData)
151
+ ], OrderModel.prototype, "appsFlyerMetaData", void 0);
144
152
  exports.OrderModel = OrderModel = __decorate([
145
153
  (0, annotations_1.table)("OrderTable")
146
154
  ], OrderModel);
@@ -159,4 +167,31 @@ __decorate([
159
167
  (0, annotations_1.attribute)(),
160
168
  __metadata("design:type", Number)
161
169
  ], DeliveryFeesDetails.prototype, "deliveryFees", void 0);
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3VzdG9tZXItdXNlci9vcmRlci1tb2R1bGUvb3JkZXIvb3JkZXItbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsdURBQStFO0FBQy9FLG9EQUFnRDtBQUd6QyxJQUFNLFVBQVUsR0FBaEIsTUFBTSxVQUFXLFNBQVEsc0JBQVM7Q0ErRnhDLENBQUE7QUEvRlksZ0NBQVU7QUFFbkI7SUFEQyxJQUFBLGtDQUFvQixFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDOzsyQ0FDekI7QUFLaEI7SUFIQyxJQUFBLHVCQUFTLEVBQUM7UUFDUCxzQkFBc0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUTtLQUNsRSxDQUFDOzswQ0FDYTtBQUdmO0lBREMsSUFBQSx1QkFBUyxHQUFFOzsrQ0FDUTtBQUdwQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7OENBQ087QUFHbkI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O21EQUNZO0FBR3hCO0lBREMsSUFBQSx1QkFBUyxHQUFFOztrREFDVztBQUd2QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7aURBQ1U7QUFHdEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzZDQUNNO0FBR2xCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzsrQ0FDUTtBQUdwQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7bURBQ1k7QUFHeEI7SUFEQyxJQUFBLHVCQUFTLEVBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7OEJBQ1AsSUFBSTtzREFBQztBQUcxQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7NENBQ0s7QUFHakI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzhDQUNPO0FBR25CO0lBREMsSUFBQSx1QkFBUyxHQUFFOzt5REFDa0I7QUFHOUI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzJEQUNvQjtBQUdoQztJQURDLElBQUEsdUJBQVMsR0FBRTs7d0RBQ2lCO0FBRzdCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzt5REFDa0I7QUFHOUI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O29EQUNhO0FBR3pCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzsrQ0FDUTtBQUdwQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7Z0RBQ1M7QUFHckI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzhDQUNPO0FBR25CO0lBREMsSUFBQSx1QkFBUyxHQUFFOztpREFDVTtBQUd0QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7bURBQ1k7QUFHeEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O2dEQUNVO0FBR3RCO0lBREMsSUFBQSx1QkFBUyxHQUFFOztpREFDVztBQUd2QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7dURBQytCO0FBRzNDO0lBREMsSUFBQSx1QkFBUyxHQUFFOzsrQ0FDVztBQUd2QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7NkNBQ087QUFHbkI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzBDQUNJO0FBR2hCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzs0Q0FDTTtBQUdsQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7cURBQ2U7cUJBOUZsQixVQUFVO0lBRHRCLElBQUEsbUJBQUssRUFBQyxZQUFZLENBQUM7R0FDUCxVQUFVLENBK0Z0QjtBQUVELE1BQWEsbUJBQW1CO0NBUy9CO0FBVEQsa0RBU0M7QUFQRztJQURDLElBQUEsdUJBQVMsR0FBRTs7c0RBQ007QUFHbEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O3dEQUNRO0FBR3BCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzt5REFDUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF0dHJpYnV0ZSwgYXV0b0dlbmVyYXRlZEhhc2hLZXksIHRhYmxlIH0gZnJvbSBcIkBub3ZhLW9kbS9hbm5vdGF0aW9uc1wiO1xuaW1wb3J0IHsgQmFzZU1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uL2Jhc2UtbW9kZWxcIjtcblxuQHRhYmxlKFwiT3JkZXJUYWJsZVwiKVxuZXhwb3J0IGNsYXNzIE9yZGVyTW9kZWwgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICAgIEBhdXRvR2VuZXJhdGVkSGFzaEtleSh7IHR5cGU6IFwiU3RyaW5nXCIgfSlcbiAgICBvcmRlcklkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKHtcbiAgICAgICAgaW5kZXhLZXlDb25maWd1cmF0aW9uczogeyBcInVzZXJJbmRleFwiOiBcIkhBU0hcIiB9LCB0eXBlOiAnU3RyaW5nJ1xuICAgIH0pXG4gICAgdXNlcklkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBvcmRlclN0YXR1czogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgb3JkZXJWYWx1ZTogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcmF6b3JwYXlPcmRlcklkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBkaXNjb3VudEFtb3VudDogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZXh0cmFEaXNjb3VudDogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZ3N0QW1vdW50OiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBwYXltZW50VHlwZTogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgb3JkZXJQbGFjZWREYXRlOiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKHsgdHlwZTogJ0RhdGUnIH0pXG4gICAgb3JkZXJDb21wbGV0ZWREYXRlPzogRGF0ZTtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGNvdXBvbklkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjb3Vwb25Db2RlOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjb3Vwb25FbGlnaWJpbGl0eVR5cGU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHRvdGFsUHJpY2VXaXRob3V0Q291cG9uOiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBkeW5hbWljUHJpY2VEaXNjb3VudDogbnVtYmVyOyAvLyBTcHJpbnQgNSBuZXcga2V5IEFkZGVkXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjb21wbGltZW50YXJ5RGlzY291bnQ6IG51bWJlcjsgLy8gU3ByaW50IDUgbmV3IGtleSBBZGRlZFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgdG90YWxTYXZlZEFtb3VudDogbnVtYmVyOyAvLyBTcHJpbnQgNSBuZXcga2V5IEFkZGVkXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICByZXdhcmRWYWx1ZTogbnVtYmVyOyAvLyBTcHJpbnQgNSBuZXcga2V5IEFkZGVkXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBkZWxpdmVyeUZlZXM6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGdyYW5kVG90YWw6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHBheW1lbnRTdGF0dXM6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHBheW1lbnRNb2RlVHlwZTogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcmVjZWl2ZXJOYW1lPzogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcmVjZWl2ZXJQaG9uZT86IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGRlbGl2ZXJ5RmVlc0RldGFpbHM6IERlbGl2ZXJ5RmVlc0RldGFpbHNbXTtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFzc2lnbmVlSWRzPzogc3RyaW5nW107XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBnc3ROdW1iZXI/OiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICB0aWVySWQ/OiBzdHJpbmc7IC8vIFRpZXIgSUQgb2YgdGhlIHVzZXJcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHBsYXRmb3JtPzogc3RyaW5nOyAvLyBQbGF0Zm9ybSBvZiB0aGUgb3JkZXJcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHJlZmVyZW5jZWRPcmRlcklkPzogc3RyaW5nOyAvLyBSZWZlcmVuY2VkIE9yZGVyIElEIChzb3VyY2UvcGFyZW50IG9yZGVyKVxufVxuXG5leHBvcnQgY2xhc3MgRGVsaXZlcnlGZWVzRGV0YWlscyB7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYWRkcmVzc0lkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBwbGF0dGVyTmFtZTogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZGVsaXZlcnlGZWVzOiBudW1iZXI7IC8vIEFycmF5IG9mIEl0ZW0gb2JqZWN0c1xufSJdfQ==
170
+ class AppsFlyerMetaData {
171
+ }
172
+ exports.AppsFlyerMetaData = AppsFlyerMetaData;
173
+ __decorate([
174
+ (0, annotations_1.attribute)(),
175
+ __metadata("design:type", String)
176
+ ], AppsFlyerMetaData.prototype, "appsFlyerId", void 0);
177
+ __decorate([
178
+ (0, annotations_1.attribute)(),
179
+ __metadata("design:type", String)
180
+ ], AppsFlyerMetaData.prototype, "os", void 0);
181
+ __decorate([
182
+ (0, annotations_1.attribute)(),
183
+ __metadata("design:type", String)
184
+ ], AppsFlyerMetaData.prototype, "osVersion", void 0);
185
+ __decorate([
186
+ (0, annotations_1.attribute)(),
187
+ __metadata("design:type", String)
188
+ ], AppsFlyerMetaData.prototype, "devicePlatform", void 0);
189
+ __decorate([
190
+ (0, annotations_1.attribute)(),
191
+ __metadata("design:type", String)
192
+ ], AppsFlyerMetaData.prototype, "deviceId", void 0);
193
+ __decorate([
194
+ (0, annotations_1.attribute)(),
195
+ __metadata("design:type", String)
196
+ ], AppsFlyerMetaData.prototype, "advertisingId", void 0);
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3VzdG9tZXItdXNlci9vcmRlci1tb2R1bGUvb3JkZXIvb3JkZXItbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsdURBQStFO0FBQy9FLG9EQUFnRDtBQUd6QyxJQUFNLFVBQVUsR0FBaEIsTUFBTSxVQUFXLFNBQVEsc0JBQVM7Q0FxR3hDLENBQUE7QUFyR1ksZ0NBQVU7QUFFbkI7SUFEQyxJQUFBLGtDQUFvQixFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDOzsyQ0FDekI7QUFLaEI7SUFIQyxJQUFBLHVCQUFTLEVBQUM7UUFDUCxzQkFBc0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUTtLQUNsRSxDQUFDOzswQ0FDYTtBQUdmO0lBREMsSUFBQSx1QkFBUyxHQUFFOzsrQ0FDUTtBQUdwQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7OENBQ087QUFHbkI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O21EQUNZO0FBR3hCO0lBREMsSUFBQSx1QkFBUyxHQUFFOztrREFDVztBQUd2QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7aURBQ1U7QUFHdEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzZDQUNNO0FBR2xCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzsrQ0FDUTtBQUdwQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7bURBQ1k7QUFHeEI7SUFEQyxJQUFBLHVCQUFTLEVBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7OEJBQ1AsSUFBSTtzREFBQztBQUcxQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7NENBQ0s7QUFHakI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzhDQUNPO0FBR25CO0lBREMsSUFBQSx1QkFBUyxHQUFFOzt5REFDa0I7QUFHOUI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzJEQUNvQjtBQUdoQztJQURDLElBQUEsdUJBQVMsR0FBRTs7d0RBQ2lCO0FBRzdCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzt5REFDa0I7QUFHOUI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O29EQUNhO0FBR3pCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzsrQ0FDUTtBQUdwQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7Z0RBQ1M7QUFHckI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzhDQUNPO0FBR25CO0lBREMsSUFBQSx1QkFBUyxHQUFFOztpREFDVTtBQUd0QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7bURBQ1k7QUFHeEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O2dEQUNVO0FBR3RCO0lBREMsSUFBQSx1QkFBUyxHQUFFOztpREFDVztBQUd2QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7dURBQytCO0FBRzNDO0lBREMsSUFBQSx1QkFBUyxHQUFFOzsrQ0FDVztBQUd2QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7NkNBQ087QUFHbkI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzBDQUNJO0FBR2hCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzs0Q0FDTTtBQUdsQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7cURBQ2U7QUFHM0I7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O2tEQUNhO0FBR3pCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzhCQUNRLGlCQUFpQjtxREFBQztxQkFwRzdCLFVBQVU7SUFEdEIsSUFBQSxtQkFBSyxFQUFDLFlBQVksQ0FBQztHQUNQLFVBQVUsQ0FxR3RCO0FBRUQsTUFBYSxtQkFBbUI7Q0FTL0I7QUFURCxrREFTQztBQVBHO0lBREMsSUFBQSx1QkFBUyxHQUFFOztzREFDTTtBQUdsQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7d0RBQ1E7QUFHcEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O3lEQUNTO0FBR3pCLE1BQWEsaUJBQWlCO0NBa0I3QjtBQWxCRCw4Q0FrQkM7QUFoQkc7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O3NEQUNRO0FBR3BCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzs2Q0FDRDtBQUdYO0lBREMsSUFBQSx1QkFBUyxHQUFFOztvREFDTTtBQUdsQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7eURBQ1c7QUFHdkI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O21EQUNNO0FBR2xCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzt3REFDVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF0dHJpYnV0ZSwgYXV0b0dlbmVyYXRlZEhhc2hLZXksIHRhYmxlIH0gZnJvbSBcIkBub3ZhLW9kbS9hbm5vdGF0aW9uc1wiO1xuaW1wb3J0IHsgQmFzZU1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uL2Jhc2UtbW9kZWxcIjtcblxuQHRhYmxlKFwiT3JkZXJUYWJsZVwiKVxuZXhwb3J0IGNsYXNzIE9yZGVyTW9kZWwgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICAgIEBhdXRvR2VuZXJhdGVkSGFzaEtleSh7IHR5cGU6IFwiU3RyaW5nXCIgfSlcbiAgICBvcmRlcklkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKHtcbiAgICAgICAgaW5kZXhLZXlDb25maWd1cmF0aW9uczogeyBcInVzZXJJbmRleFwiOiBcIkhBU0hcIiB9LCB0eXBlOiAnU3RyaW5nJ1xuICAgIH0pXG4gICAgdXNlcklkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBvcmRlclN0YXR1czogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgb3JkZXJWYWx1ZTogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcmF6b3JwYXlPcmRlcklkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBkaXNjb3VudEFtb3VudDogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZXh0cmFEaXNjb3VudDogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZ3N0QW1vdW50OiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBwYXltZW50VHlwZTogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgb3JkZXJQbGFjZWREYXRlOiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKHsgdHlwZTogJ0RhdGUnIH0pXG4gICAgb3JkZXJDb21wbGV0ZWREYXRlPzogRGF0ZTtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGNvdXBvbklkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjb3Vwb25Db2RlOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjb3Vwb25FbGlnaWJpbGl0eVR5cGU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHRvdGFsUHJpY2VXaXRob3V0Q291cG9uOiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBkeW5hbWljUHJpY2VEaXNjb3VudDogbnVtYmVyOyAvLyBTcHJpbnQgNSBuZXcga2V5IEFkZGVkXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjb21wbGltZW50YXJ5RGlzY291bnQ6IG51bWJlcjsgLy8gU3ByaW50IDUgbmV3IGtleSBBZGRlZFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgdG90YWxTYXZlZEFtb3VudDogbnVtYmVyOyAvLyBTcHJpbnQgNSBuZXcga2V5IEFkZGVkXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICByZXdhcmRWYWx1ZTogbnVtYmVyOyAvLyBTcHJpbnQgNSBuZXcga2V5IEFkZGVkXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBkZWxpdmVyeUZlZXM6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGdyYW5kVG90YWw6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHBheW1lbnRTdGF0dXM6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHBheW1lbnRNb2RlVHlwZTogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcmVjZWl2ZXJOYW1lPzogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcmVjZWl2ZXJQaG9uZT86IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGRlbGl2ZXJ5RmVlc0RldGFpbHM6IERlbGl2ZXJ5RmVlc0RldGFpbHNbXTtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFzc2lnbmVlSWRzPzogc3RyaW5nW107XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBnc3ROdW1iZXI/OiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICB0aWVySWQ/OiBzdHJpbmc7IC8vIFRpZXIgSUQgb2YgdGhlIHVzZXJcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHBsYXRmb3JtPzogc3RyaW5nOyAvLyBQbGF0Zm9ybSBvZiB0aGUgb3JkZXJcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHJlZmVyZW5jZWRPcmRlcklkPzogc3RyaW5nOyAvLyBSZWZlcmVuY2VkIE9yZGVyIElEIChzb3VyY2UvcGFyZW50IG9yZGVyKVxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXNVcGRhdGVkT3JkZXI/OiBib29sZWFuOyAvLyBJbmRleCBvZiB0aGUgcGxhdGUgaW4gdGhlIG9yZGVyXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBhcHBzRmx5ZXJNZXRhRGF0YT86IEFwcHNGbHllck1ldGFEYXRhOyAvLyBBcHBzRmx5ZXIgbWV0YSBkYXRhXG59XG5cbmV4cG9ydCBjbGFzcyBEZWxpdmVyeUZlZXNEZXRhaWxzIHtcbiAgICBAYXR0cmlidXRlKClcbiAgICBhZGRyZXNzSWQ6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHBsYXR0ZXJOYW1lOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBkZWxpdmVyeUZlZXM6IG51bWJlcjsgLy8gQXJyYXkgb2YgSXRlbSBvYmplY3RzXG59XG5cbmV4cG9ydCBjbGFzcyBBcHBzRmx5ZXJNZXRhRGF0YSB7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYXBwc0ZseWVySWQ6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIG9zOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBvc1ZlcnNpb246IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGRldmljZVBsYXRmb3JtOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBkZXZpY2VJZD86IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFkdmVydGlzaW5nSWQ/OiBzdHJpbmc7XG59Il19
@@ -4,6 +4,7 @@ export declare class PlateModel extends BaseModel {
4
4
  referencedPlateOrderId?: string;
5
5
  orderId: string;
6
6
  referencedOrderId?: string;
7
+ isUpdatedPlatter?: boolean;
7
8
  plateName: string;
8
9
  platterType: string;
9
10
  plateImage?: string;
@@ -33,6 +33,10 @@ __decorate([
33
33
  (0, annotations_1.attribute)(),
34
34
  __metadata("design:type", String)
35
35
  ], PlateModel.prototype, "referencedOrderId", void 0);
36
+ __decorate([
37
+ (0, annotations_1.attribute)(),
38
+ __metadata("design:type", Boolean)
39
+ ], PlateModel.prototype, "isUpdatedPlatter", void 0);
36
40
  __decorate([
37
41
  (0, annotations_1.attribute)(),
38
42
  __metadata("design:type", String)
@@ -638,4 +642,4 @@ __decorate([
638
642
  (0, annotations_1.attribute)(),
639
643
  __metadata("design:type", Number)
640
644
  ], AccompanimentsDetails.prototype, "boneItemPrice", void 0);
641
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGUtb3JkZXItbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3VzdG9tZXItdXNlci9vcmRlci1tb2R1bGUvcGxhdGUtb3JkZXIvcGxhdGUtb3JkZXItbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsdURBQStFO0FBQy9FLG9EQUFnRDtBQUl6QyxJQUFNLFVBQVUsR0FBaEIsTUFBTSxVQUFXLFNBQVEsc0JBQVM7Q0ErTXhDLENBQUE7QUEvTVksZ0NBQVU7QUFFbkI7SUFEQyxJQUFBLGtDQUFvQixFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDOzsyQ0FDekI7QUFHaEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzBEQUNvQjtBQUtoQztJQUhDLElBQUEsdUJBQVMsRUFBQztRQUNQLHNCQUFzQixFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRO0tBQ25FLENBQUM7OzJDQUNjO0FBR2hCO0lBREMsSUFBQSx1QkFBUyxHQUFFOztxREFDZTtBQUczQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7NkNBQ007QUFHbEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OytDQUNRO0FBR3BCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzs4Q0FDUTtBQUdwQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7a0RBQ1c7QUFHdkI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzRDQUNLO0FBR2pCO0lBREMsSUFBQSx1QkFBUyxHQUFFOztvREFDYTtBQUd6QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7OENBQ087QUFHbkI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O2lEQUNVO0FBR3RCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzsyREFDb0I7QUFHaEM7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzhDQUNPO0FBR25CO0lBREMsSUFBQSx1QkFBUyxHQUFFOzs2Q0FDTTtBQUdsQjtJ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QUFFOzttREFDNEI7QUFHNUMsTUFBYSxxQkFBcUI7Q0FpQ2pDO0FBakNELHNEQWlDQztBQS9CRztJQURDLElBQUEsdUJBQVMsR0FBRTs7OERBQ1k7QUFHeEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O2dFQUNjO0FBRzFCO0lBREMsSUFBQSx1QkFBUyxHQUFFOztnRUFDYztBQUcxQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7cURBQ0k7QUFHaEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O3VEQUNNO0FBR2xCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzsyREFDUztBQUdyQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7aUVBQ2U7QUFHM0I7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OytEQUNhO0FBR3pCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzt3REFDTTtBQUdsQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7NkRBQ2E7QUFHekI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzREQUNXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXR0cmlidXRlLCBhdXRvR2VuZXJhdGVkSGFzaEtleSwgdGFibGUgfSBmcm9tIFwiQG5vdmEtb2RtL2Fubm90YXRpb25zXCI7XG5pbXBvcnQgeyBCYXNlTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vYmFzZS1tb2RlbFwiO1xuXG5cbkB0YWJsZShcIlBsYXRlT3JkZXJzVGFibGVcIilcbmV4cG9ydCBjbGFzcyBQbGF0ZU1vZGVsIGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgICBAYXV0b0dlbmVyYXRlZEhhc2hLZXkoeyB0eXBlOiBcIlN0cmluZ1wiIH0pXG4gICAgcGxhdGVJZDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcmVmZXJlbmNlZFBsYXRlT3JkZXJJZD86IHN0cmluZzsgLy8gUmVmZXJlbmNlZCBwbGF0ZSBvcmRlciBJRCAoc291cmNlL3BhcmVudCBwbGF0ZTsgb3JpZ2luYWwgcGxhdGVJZClcblxuICAgIEBhdHRyaWJ1dGUoe1xuICAgICAgICBpbmRleEtleUNvbmZpZ3VyYXRpb25zOiB7IFwib3JkZXJJbmRleFwiOiBcIkhBU0hcIiB9LCB0eXBlOiAnU3RyaW5nJ1xuICAgIH0pXG4gICAgb3JkZXJJZDogc3RyaW5nOyAvLyBGb3JlaWduIGtleSB0byBhc3NvY2lhdGUgdGhlIHBsYXRlIHdpdGggYW4gb3JkZXJcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHJlZmVyZW5jZWRPcmRlcklkPzogc3RyaW5nOyAvLyBSZWZlcmVuY2VkIG9yZGVyIElEIChzb3VyY2UvcGFyZW50IG9yZGVyKVxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcGxhdGVOYW1lOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBwbGF0dGVyVHlwZTogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcGxhdGVJbWFnZT86IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHBsYXR0ZXJTdWJUeXBlOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBtZWFsVGltZTogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZGVmYXVsdFBsYXR0ZXJJZDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgdG90YWxJdGVtczogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcHJpY2VQZXJQbGF0ZTogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZGlzY291bnRlZFByaWNlUGVyUGxhdGU6IG51bWJlcjsgLy8gMTEtMTItMjAyNFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZ3Vlc3RDb3VudDogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZXZlbnREYXRlOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBmb29kSW5zdHJ1Y3Rpb25zPzogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgdGltZUluc3RydWN0aW9ucz86IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGV2ZW50VGltZTogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgc2VydmljZVR5cGU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFkZHJlc3NJZDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgc2VydmljZVByaWNlOiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBkaXNjb3VudGVkU2VydmljZVByaWNlOiBudW1iZXI7IC8vIDExLTEyLTIwMjRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHRvdGFsUHJpY2U6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIG1lbnVUeXBlOiBzdHJpbmc7IC8vIFYyIFZFRywgTk9OVkVHLCBTQVBSQVRFRFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZGlzY291bnRlZFRvdGFsUHJpY2U6IG51bWJlcjsgLy8gMTEtMTItMjAyNFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZGlzY291bnRSZXdhcmRWYWx1ZTogbnVtYmVyOyAvLyBWMlxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZGVsaXZlcnlGZWVzOiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBkZWxpdmVyeVNlcnZpY2U/OiBzdHJpbmc7IC8vIFYyIFBSRU1JVU0sIFNUQU5EQVJELCBET09SU1RFUFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZGVsaXZlcnlGZWVEaWZmcmVuY2VGb3IyMEtNOiBudW1iZXI7IC8vIFNwcmludCA1IG5ldyBrZXkgQWRkZWRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHBhY2thZ2luZ0NoYXJnZTogbnVtYmVyOyAvLyBTcHJpbnQgNSBuZXcga2V5IEFkZGVkXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBnc3Q6IG51bWJlcjsgLy8gU3ByaW50IDUgbmV3IGtleSBBZGRlZFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgc2F2ZWRBbW91bnQ6IG51bWJlcjsgLy8gU3ByaW50IDUgbmV3IGtleSBBZGRlZFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcXVhbnRpdHlDaGFuZ2VkOiBzdHJpbmc7IC8vMDMtMTItMjAyNFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgb2NjYXNzaW9uVHlwZTogc3RyaW5nOyAvLzAzLTEyLTIwMjRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHB1cmVWZWdHdWVzdD86IG51bWJlcjsgLy8wMy0xMi0yMDI0XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBzcGljeUxhdmVsPzogc3RyaW5nOyAvLzAzLTEyLTIwMjRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGNvbnN1bWVBbGNvaG9sPzogc3RyaW5nOyAvLzAzLTEyLTIwMjRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHRlbGxVc01vcmU/OiBzdHJpbmc7IC8vMDMtMTItMjAyNFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZG9vclN0ZXBTZXJ2aWNlUHJpY2U/OiBudW1iZXI7IC8vMDctMTItMjAyNFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcGxhdGVJbnZvaWNlVXJsPzogc3RyaW5nOyAvLyBTcHJpbnQgMSBuZXcga2V5IEFkZGVkIDIwLzEyLzIwMjRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGNhdGVnb3JpZXM6IENhdGVnb3J5W107IC8vIEFycmF5IG9mIENhdGVnb3J5IG9iamVjdHNcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFkZG9uc0l0ZW1zOiBBZGRvbnNDYXRlZ29yeVtdOyAvLyBWMlxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY3V0bGVyeUl0ZW1zOiBDdXRsZXJ5SXRlbVtdOyAvLyBWMlxuXG4gICAgLy8gQGF0dHJpYnV0ZSgpXG4gICAgLy8gem9ob0Jvb2tJZHM/OiBab2hvQm9va0lkcztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIG1lbnVPcmRlcklkPzogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYWRkb25zQWNjb21wYW5pbWVudHNDb3N0PzogbnVtYmVyOyAvLyBWMiBpbmNsdWRpbmcgbXVsdGlwbGljYXRpb24gb2YgZ3Vlc3QgY291bnRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGV4dHJhUXR5Q29zdD86IG51bWJlcjsgLy8gVjIgaW5jbHVkaW5nIG11bHRpcGxpY2F0aW9uIG9mIGd1ZXN0IGNvdW50XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBwcmVtaXVtSXRlbXNDb3N0PzogbnVtYmVyOyAvLyBWMiBpbmNsdWRpbmcgbXVsdGlwbGljYXRpb24gb2YgZ3Vlc3QgY291bnRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGN1dGxlcnlDb3N0PzogbnVtYmVyOyAvLyBWMiBpbmNsdWRpbmcgbXVsdGlwbGljYXRpb24gb2YgZ3Vlc3QgY291bnRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGNyZWF0ZU93bj86IGJvb2xlYW47IC8vIFYyIC0gIHRydWUgfCBmYWxzZVxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY2FydElkPzogc3RyaW5nOyAvLyBWMiAtIENhcnQgSURcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGlzUGFydGlhbEdyaWxsPzogYm9vbGVhbjsgLy8gVjIgMTItMTItMjAyNVxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY2hhcmdlYWJsZUtpdHM/OiBudW1iZXI7IC8vIFYyIDEyLTEyLTIwMjVcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHByaWNlUGVyS2l0PzogbnVtYmVyOyAvLyBWMiAxMi0xMi0yMDI1XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBmcmVlS2l0cz86IG51bWJlcjsgLy8gVjIgMTItMTItMjAyNVxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgc2tld2Vyc0Nvc3Q/OiBudW1iZXI7IC8vIFYyIDE3LTEyLTIwMjVcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIG51bWJlck9mU2tld2Vycz86IG51bWJlcjsgLy8gVjIgMDctMDEtMjAyNlxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXNGTVBDcmVhdGVkPzogYm9vbGVhbjsgLy8gTmV3IEFkZGVkIDA3LTAzLTIwMjZcblxuICAgIC8vIGNhdGVyaW5nIGF0dHJpYnV0ZXNcbiAgICBAYXR0cmlidXRlKClcbiAgICBoZWxwZXJDb3VudD86IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGNhdGVyaW5nU2VydmljZVR5cGU/OiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjYXRlcmluZ1RyYW5zcG9ydGF0aW9uQ2hhcmdlPzogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY2F0ZXJpbmdTZXJ2aWNlQ2hhcmdlPzogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY2F0ZXJpbmdTZXJ2aWNlSG91cnM/OiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBvY2Nhc3Npb25MaXN0Pzogc3RyaW5nW107XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBsaXZlQ291bnRlckRldGFpbHM/OiBMaXZlQ291bnRlckRldGFpbHNbXTtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFwcGxpY2FibGVMaXZlQ291bnRlckNoYXJnZTpudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICB0b3RhbFNrZXdlckFkZG9uc0Nvc3Q/OiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBza2V3ZXJBZGRvbnM/OiBTa2V3ZXJBZGRvbnNPbk9yZGVyW107XG59XG5cblxuZXhwb3J0IGNsYXNzIFNrZXdlckFkZG9uc09uT3JkZXIge1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1JZDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbU5hbWU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1JbWFnZXNVcmw6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1UeXBlOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBza2V3ZXJRdHk6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHNrZXdlclF0eVVuaXQ6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHByaWNlUGVyU2tld2VyOiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBhY2NvbXBhbmltZW50cz86IEFjY29tcGFuaW1lbnRzRGV0YWlsc1tdO1xufVxuXG5cbmV4cG9ydCBjbGFzcyBMaXZlQ291bnRlckRldGFpbHMge1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGxpdmVDb3VudGVySWQ6IHN0cmluZztcbiAgICBAYXR0cmlidXRlKClcbiAgICBsaXZlQ291bnRlck5hbWU6IHN0cmluZztcbiAgICBAYXR0cmlidXRlKClcbiAgICBsaXZlQ291bnRlclR5cGU6IHN0cmluZzsgLy8gQ0hBQVRfQ09VTlRFUlxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGxpdmVDb3VudGVyUHJpY2VQZXJQZXJzb246IG51bWJlcjtcbiAgICBAYXR0cmlidXRlKClcbiAgICBsaXZlQ291bnRlckNvbWJpbmVkUHJpY2U6IG51bWJlcjtcbiAgICBAYXR0cmlidXRlKClcbiAgICBpbmNsdWRlZEJhdGNoU2l6ZTogbnVtYmVyOyAvLyAyLDQsNlxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1MaXN0OiBJdGVtRGV0YWlsc1tdO1xufVxuXG4vLyBWMiBOZXcgQWRkZWQgQ3V0bGVyeVxuZXhwb3J0IGNsYXNzIEN1dGxlcnlJdGVtIHtcbiAgICBAYXR0cmlidXRlKClcbiAgICBjdXRsZXJ5SWQ6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGN1dGxlcnlOYW1lOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjdXRsZXJ5UHJpY2U6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGN1dGxlcnlJbWFnZT86IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGN1dGxlcnlRdWFudGl0eTogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY3V0bGVyeVR5cGU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGN1dGxlcnlRdWFudGl0eVVuaXQ6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGN1dGxlcnlCYXNlUmF0aW86IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGlzSW5jbHVkZWQ6IGJvb2xlYW47XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpc1NlcnZpbmc6IGJvb2xlYW47XG59XG5cbi8vIFYyIE5ldyBBZGRlZCBBZGRvbnNcbmV4cG9ydCBjbGFzcyBBZGRvbnNDYXRlZ29yeSB7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY2F0ZWdvcnlJZDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY2F0ZWdvcnlOYW1lOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtczogQWRkb25zSXRlbXNbXTtcbn1cblxuLy8gVjIgTmV3IEFkZGVkIEFkZG9uc1xuZXhwb3J0IGNsYXNzIEFkZG9uc0l0ZW1zIHtcbiAgICBAYXR0cmlidXRlKClcbiAgICBhZGRvbklkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBhZGRvbk5hbWU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFkZG9uUHJpY2U6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFkZG9uSW1hZ2U/OiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBhZGRvblF1YW50aXR5OiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBhZGRvblR5cGU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFkZG9uUXVhbnRpdHlVbml0OiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBhZGRvbkJhc2VSYXRpbzogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXNCb25lbGVzc0l0ZW0/OiBib29sZWFuOyAvLyBWMlxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYm9uZUl0ZW1QcmljZT86IG51bWJlcjsgLy8gVjJcbn1cblxuZXhwb3J0IGNsYXNzIENhdGVnb3J5IHtcbiAgICBAYXR0cmlidXRlKClcbiAgICBjYXRlZ29yeUlkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjYXRlZ29yeU5hbWU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGlzU2tld2VyQ2F0ZWdvcnk/OiBib29sZWFuOyAvLyBWMiAxMi0xMi0yMDI1XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjYXRlZ29yeU9yZGVyPzogbnVtYmVyOyAvLyBWMiAxNy0xMi0yMDI1XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpc0NvbWJvQ2F0ZWdvcnk/OiBib29sZWFuOyAvLyBWMiAxNy0xMi0yMDI1XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtczogSXRlbVtdOyAvLyBBcnJheSBvZiBJdGVtIG9iamVjdHNcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHZlZ0l0ZW1zOiBJdGVtRGV0YWlsc1tdOyAvLyBWMlxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcHJlbWl1bVZlZ0l0ZW1zOiBJdGVtRGV0YWlsc1tdOyAvLyBWMlxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgbm9uVmVnSXRlbXM6IEl0ZW1EZXRhaWxzW107IC8vIFYyXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBwcmVtaXVtTm9uVmVnSXRlbXM6IEl0ZW1EZXRhaWxzW107IC8vIFYyXG59XG5cbmV4cG9ydCBjbGFzcyBJdGVtIHtcbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtSWQ6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1OYW1lOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtUHJpY2U6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1UeXBlOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtUXVhbnRpdHk6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGJhc2VSYXRpbzogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcXVhbnRpdHlVbml0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBJdGVtRGV0YWlscyB7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcmVwbGFjZW1lbnRJdGVtSWQ/OiBzdHJpbmc7IC8vIFYyIDE3LTA0LTIwMjZcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIG9yaWdpbmFsSXRlbUlkPzogc3RyaW5nOyAvLyBWMiAxOC0wNC0yMDI2XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtSWQ6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1OYW1lOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtUHJpY2U6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1UeXBlOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtSW1hZ2U/OiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtUGFydGlhbEdyaWxsUHJpY2U/OiBudW1iZXI7IC8vIFYyIDEyLTEyLTIwMjVcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1RdWFudGl0eTogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYmFzZVJhdGlvOiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBxdWFudGl0eVVuaXQ6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGlzQm9uZWxlc3NJdGVtPzogYm9vbGVhbjsgLy8gVjJcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGJvbmVJdGVtUHJpY2U/OiBudW1iZXI7IC8vIFYyXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBhY2NvbXBhbmltZW50czogQWNjb21wYW5pbWVudHNEZXRhaWxzW107XG59XG5cbmV4cG9ydCBjbGFzcyBBY2NvbXBhbmltZW50c0RldGFpbHMge1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFjY29tcGFuaW1lbnRJZDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYWNjb21wYW5pbWVudE5hbWU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFjY29tcGFuaW1lbnRUeXBlOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpc0ZyZWU6IGJvb2xlYW47XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpbWFnZVVybD86IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHF1YW50aXR5VW5pdDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYWNjb21wYW5pbWVudFByaWNlOiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBhY2NvbXBhbmltZW50UXR5OiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBiYXNlUmF0aW86IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGlzQm9uZWxlc3NJdGVtPzogYm9vbGVhbjsgLy8gVjJcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGJvbmVJdGVtUHJpY2U/OiBudW1iZXI7IC8vIFYyXG59Il19
645
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGUtb3JkZXItbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3VzdG9tZXItdXNlci9vcmRlci1tb2R1bGUvcGxhdGUtb3JkZXIvcGxhdGUtb3JkZXItbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsdURBQStFO0FBQy9FLG9EQUFnRDtBQUl6QyxJQUFNLFVBQVUsR0FBaEIsTUFBTSxVQUFXLFNBQVEsc0JBQVM7Q0FrTnhDLENBQUE7QUFsTlksZ0NBQVU7QUFFbkI7SUFEQyxJQUFBLGtDQUFvQixFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDOzsyQ0FDekI7QUFHaEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzBEQUNvQjtBQUtoQztJQUhDLElBQUEsdUJBQVMsRUFBQztRQUNQLHNCQUFzQixFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRO0tBQ25FLENBQUM7OzJDQUNjO0FBR2hCO0lBREMsSUFBQSx1QkFBUyxHQUFFOztxREFDZTtBQUczQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7b0RBQ2U7QUFHM0I7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzZDQUNNO0FBR2xCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzsrQ0FDUTtBQUdwQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7OENBQ1E7QUFHcEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O2tEQUNXO0FBR3ZCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzs0Q0FDSztBQUdqQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7b0RBQ2E7QUFHekI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzhDQUNPO0FBR25CO0lBREMsSUFBQSx1QkFBUyxHQUFFOztpREFDVTtBQUd0QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7MkRBQ29CO0FBR2hDO0lBREMsSUFBQSx1QkFBUyxHQUFFOzs4Q0FDTztBQUduQjtJ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QUFFOztrREFDVztBQUd2QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7bURBQzRCO0FBRzVDLE1BQWEscUJBQXFCO0NBaUNqQztBQWpDRCxzREFpQ0M7QUEvQkc7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzhEQUNZO0FBR3hCO0lBREMsSUFBQSx1QkFBUyxHQUFFOztnRUFDYztBQUcxQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7Z0VBQ2M7QUFHMUI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O3FEQUNJO0FBR2hCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzt1REFDTTtBQUdsQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7MkRBQ1M7QUFHckI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O2lFQUNlO0FBRzNCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzsrREFDYTtBQUd6QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7d0RBQ007QUFHbEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzZEQUNhO0FBR3pCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzs0REFDVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF0dHJpYnV0ZSwgYXV0b0dlbmVyYXRlZEhhc2hLZXksIHRhYmxlIH0gZnJvbSBcIkBub3ZhLW9kbS9hbm5vdGF0aW9uc1wiO1xuaW1wb3J0IHsgQmFzZU1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uL2Jhc2UtbW9kZWxcIjtcblxuXG5AdGFibGUoXCJQbGF0ZU9yZGVyc1RhYmxlXCIpXG5leHBvcnQgY2xhc3MgUGxhdGVNb2RlbCBleHRlbmRzIEJhc2VNb2RlbCB7XG4gICAgQGF1dG9HZW5lcmF0ZWRIYXNoS2V5KHsgdHlwZTogXCJTdHJpbmdcIiB9KVxuICAgIHBsYXRlSWQ6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHJlZmVyZW5jZWRQbGF0ZU9yZGVySWQ/OiBzdHJpbmc7IC8vIFJlZmVyZW5jZWQgcGxhdGUgb3JkZXIgSUQgKHNvdXJjZS9wYXJlbnQgcGxhdGU7IG9yaWdpbmFsIHBsYXRlSWQpXG5cbiAgICBAYXR0cmlidXRlKHtcbiAgICAgICAgaW5kZXhLZXlDb25maWd1cmF0aW9uczogeyBcIm9yZGVySW5kZXhcIjogXCJIQVNIXCIgfSwgdHlwZTogJ1N0cmluZydcbiAgICB9KVxuICAgIG9yZGVySWQ6IHN0cmluZzsgLy8gRm9yZWlnbiBrZXkgdG8gYXNzb2NpYXRlIHRoZSBwbGF0ZSB3aXRoIGFuIG9yZGVyXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICByZWZlcmVuY2VkT3JkZXJJZD86IHN0cmluZzsgLy8gUmVmZXJlbmNlZCBvcmRlciBJRCAoc291cmNlL3BhcmVudCBvcmRlcilcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGlzVXBkYXRlZFBsYXR0ZXI/OiBib29sZWFuOyAvLyBJbmRleCBvZiB0aGUgcGxhdGUgaW4gdGhlIG9yZGVyXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBwbGF0ZU5hbWU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHBsYXR0ZXJUeXBlOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBwbGF0ZUltYWdlPzogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcGxhdHRlclN1YlR5cGU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIG1lYWxUaW1lOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBkZWZhdWx0UGxhdHRlcklkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICB0b3RhbEl0ZW1zOiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBwcmljZVBlclBsYXRlOiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBkaXNjb3VudGVkUHJpY2VQZXJQbGF0ZTogbnVtYmVyOyAvLyAxMS0xMi0yMDI0XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBndWVzdENvdW50OiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBldmVudERhdGU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGZvb2RJbnN0cnVjdGlvbnM/OiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICB0aW1lSW5zdHJ1Y3Rpb25zPzogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZXZlbnRUaW1lOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBzZXJ2aWNlVHlwZTogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYWRkcmVzc0lkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBzZXJ2aWNlUHJpY2U6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGRpc2NvdW50ZWRTZXJ2aWNlUHJpY2U6IG51bWJlcjsgLy8gMTEtMTItMjAyNFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgdG90YWxQcmljZTogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgbWVudVR5cGU6IHN0cmluZzsgLy8gVjIgVkVHLCBOT05WRUcsIFNBUFJBVEVEXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBkaXNjb3VudGVkVG90YWxQcmljZTogbnVtYmVyOyAvLyAxMS0xMi0yMDI0XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBkaXNjb3VudFJld2FyZFZhbHVlOiBudW1iZXI7IC8vIFYyXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBkZWxpdmVyeUZlZXM6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGRlbGl2ZXJ5U2VydmljZT86IHN0cmluZzsgLy8gVjIgUFJFTUlVTSwgU1RBTkRBUkQsIERPT1JTVEVQXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBkZWxpdmVyeUZlZURpZmZyZW5jZUZvcjIwS006IG51bWJlcjsgLy8gU3ByaW50IDUgbmV3IGtleSBBZGRlZFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcGFja2FnaW5nQ2hhcmdlOiBudW1iZXI7IC8vIFNwcmludCA1IG5ldyBrZXkgQWRkZWRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGdzdDogbnVtYmVyOyAvLyBTcHJpbnQgNSBuZXcga2V5IEFkZGVkXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBzYXZlZEFtb3VudDogbnVtYmVyOyAvLyBTcHJpbnQgNSBuZXcga2V5IEFkZGVkXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBxdWFudGl0eUNoYW5nZWQ6IHN0cmluZzsgLy8wMy0xMi0yMDI0XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBvY2Nhc3Npb25UeXBlOiBzdHJpbmc7IC8vMDMtMTItMjAyNFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcHVyZVZlZ0d1ZXN0PzogbnVtYmVyOyAvLzAzLTEyLTIwMjRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHNwaWN5TGF2ZWw/OiBzdHJpbmc7IC8vMDMtMTItMjAyNFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY29uc3VtZUFsY29ob2w/OiBzdHJpbmc7IC8vMDMtMTItMjAyNFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgdGVsbFVzTW9yZT86IHN0cmluZzsgLy8wMy0xMi0yMDI0XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBkb29yU3RlcFNlcnZpY2VQcmljZT86IG51bWJlcjsgLy8wNy0xMi0yMDI0XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBwbGF0ZUludm9pY2VVcmw/OiBzdHJpbmc7IC8vIFNwcmludCAxIG5ldyBrZXkgQWRkZWQgMjAvMTIvMjAyNFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY2F0ZWdvcmllczogQ2F0ZWdvcnlbXTsgLy8gQXJyYXkgb2YgQ2F0ZWdvcnkgb2JqZWN0c1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYWRkb25zSXRlbXM6IEFkZG9uc0NhdGVnb3J5W107IC8vIFYyXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjdXRsZXJ5SXRlbXM6IEN1dGxlcnlJdGVtW107IC8vIFYyXG5cbiAgICAvLyBAYXR0cmlidXRlKClcbiAgICAvLyB6b2hvQm9va0lkcz86IFpvaG9Cb29rSWRzO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgbWVudU9yZGVySWQ/OiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBhZGRvbnNBY2NvbXBhbmltZW50c0Nvc3Q/OiBudW1iZXI7IC8vIFYyIGluY2x1ZGluZyBtdWx0aXBsaWNhdGlvbiBvZiBndWVzdCBjb3VudFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZXh0cmFRdHlDb3N0PzogbnVtYmVyOyAvLyBWMiBpbmNsdWRpbmcgbXVsdGlwbGljYXRpb24gb2YgZ3Vlc3QgY291bnRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHByZW1pdW1JdGVtc0Nvc3Q/OiBudW1iZXI7IC8vIFYyIGluY2x1ZGluZyBtdWx0aXBsaWNhdGlvbiBvZiBndWVzdCBjb3VudFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY3V0bGVyeUNvc3Q/OiBudW1iZXI7IC8vIFYyIGluY2x1ZGluZyBtdWx0aXBsaWNhdGlvbiBvZiBndWVzdCBjb3VudFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY3JlYXRlT3duPzogYm9vbGVhbjsgLy8gVjIgLSAgdHJ1ZSB8IGZhbHNlXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjYXJ0SWQ/OiBzdHJpbmc7IC8vIFYyIC0gQ2FydCBJRFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXNQYXJ0aWFsR3JpbGw/OiBib29sZWFuOyAvLyBWMiAxMi0xMi0yMDI1XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjaGFyZ2VhYmxlS2l0cz86IG51bWJlcjsgLy8gVjIgMTItMTItMjAyNVxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcHJpY2VQZXJLaXQ/OiBudW1iZXI7IC8vIFYyIDEyLTEyLTIwMjVcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGZyZWVLaXRzPzogbnVtYmVyOyAvLyBWMiAxMi0xMi0yMDI1XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBza2V3ZXJzQ29zdD86IG51bWJlcjsgLy8gVjIgMTctMTItMjAyNVxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgbnVtYmVyT2ZTa2V3ZXJzPzogbnVtYmVyOyAvLyBWMiAwNy0wMS0yMDI2XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpc0ZNUENyZWF0ZWQ/OiBib29sZWFuOyAvLyBOZXcgQWRkZWQgMDctMDMtMjAyNlxuXG4gICAgLy8gY2F0ZXJpbmcgYXR0cmlidXRlc1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGhlbHBlckNvdW50PzogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY2F0ZXJpbmdTZXJ2aWNlVHlwZT86IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGNhdGVyaW5nVHJhbnNwb3J0YXRpb25DaGFyZ2U/OiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjYXRlcmluZ1NlcnZpY2VDaGFyZ2U/OiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjYXRlcmluZ1NlcnZpY2VIb3Vycz86IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIG9jY2Fzc2lvbkxpc3Q/OiBzdHJpbmdbXTtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGxpdmVDb3VudGVyRGV0YWlscz86IExpdmVDb3VudGVyRGV0YWlsc1tdO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYXBwbGljYWJsZUxpdmVDb3VudGVyQ2hhcmdlOm51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHRvdGFsU2tld2VyQWRkb25zQ29zdD86IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHNrZXdlckFkZG9ucz86IFNrZXdlckFkZG9uc09uT3JkZXJbXTtcbn1cblxuXG5leHBvcnQgY2xhc3MgU2tld2VyQWRkb25zT25PcmRlciB7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbUlkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtTmFtZTogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbUltYWdlc1VybDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbVR5cGU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHNrZXdlclF0eTogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgc2tld2VyUXR5VW5pdDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcHJpY2VQZXJTa2V3ZXI6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFjY29tcGFuaW1lbnRzPzogQWNjb21wYW5pbWVudHNEZXRhaWxzW107XG59XG5cblxuZXhwb3J0IGNsYXNzIExpdmVDb3VudGVyRGV0YWlscyB7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgbGl2ZUNvdW50ZXJJZDogc3RyaW5nO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGxpdmVDb3VudGVyTmFtZTogc3RyaW5nO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGxpdmVDb3VudGVyVHlwZTogc3RyaW5nOyAvLyBDSEFBVF9DT1VOVEVSXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgbGl2ZUNvdW50ZXJQcmljZVBlclBlcnNvbjogbnVtYmVyO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGxpdmVDb3VudGVyQ29tYmluZWRQcmljZTogbnVtYmVyO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGluY2x1ZGVkQmF0Y2hTaXplOiBudW1iZXI7IC8vIDIsNCw2XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbUxpc3Q6IEl0ZW1EZXRhaWxzW107XG59XG5cbi8vIFYyIE5ldyBBZGRlZCBDdXRsZXJ5XG5leHBvcnQgY2xhc3MgQ3V0bGVyeUl0ZW0ge1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGN1dGxlcnlJZDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY3V0bGVyeU5hbWU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGN1dGxlcnlQcmljZTogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY3V0bGVyeUltYWdlPzogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY3V0bGVyeVF1YW50aXR5OiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjdXRsZXJ5VHlwZTogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY3V0bGVyeVF1YW50aXR5VW5pdDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY3V0bGVyeUJhc2VSYXRpbzogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXNJbmNsdWRlZDogYm9vbGVhbjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGlzU2VydmluZzogYm9vbGVhbjtcbn1cblxuLy8gVjIgTmV3IEFkZGVkIEFkZG9uc1xuZXhwb3J0IGNsYXNzIEFkZG9uc0NhdGVnb3J5IHtcbiAgICBAYXR0cmlidXRlKClcbiAgICBjYXRlZ29yeUlkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjYXRlZ29yeU5hbWU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1zOiBBZGRvbnNJdGVtc1tdO1xufVxuXG4vLyBWMiBOZXcgQWRkZWQgQWRkb25zXG5leHBvcnQgY2xhc3MgQWRkb25zSXRlbXMge1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFkZG9uSWQ6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFkZG9uTmFtZTogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYWRkb25QcmljZTogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYWRkb25JbWFnZT86IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFkZG9uUXVhbnRpdHk6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFkZG9uVHlwZTogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYWRkb25RdWFudGl0eVVuaXQ6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFkZG9uQmFzZVJhdGlvOiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpc0JvbmVsZXNzSXRlbT86IGJvb2xlYW47IC8vIFYyXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBib25lSXRlbVByaWNlPzogbnVtYmVyOyAvLyBWMlxufVxuXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnkge1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGNhdGVnb3J5SWQ6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGNhdGVnb3J5TmFtZTogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXNTa2V3ZXJDYXRlZ29yeT86IGJvb2xlYW47IC8vIFYyIDEyLTEyLTIwMjVcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGNhdGVnb3J5T3JkZXI/OiBudW1iZXI7IC8vIFYyIDE3LTEyLTIwMjVcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGlzQ29tYm9DYXRlZ29yeT86IGJvb2xlYW47IC8vIFYyIDE3LTEyLTIwMjVcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1zOiBJdGVtW107IC8vIEFycmF5IG9mIEl0ZW0gb2JqZWN0c1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgdmVnSXRlbXM6IEl0ZW1EZXRhaWxzW107IC8vIFYyXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBwcmVtaXVtVmVnSXRlbXM6IEl0ZW1EZXRhaWxzW107IC8vIFYyXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBub25WZWdJdGVtczogSXRlbURldGFpbHNbXTsgLy8gVjJcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHByZW1pdW1Ob25WZWdJdGVtczogSXRlbURldGFpbHNbXTsgLy8gVjJcbn1cblxuZXhwb3J0IGNsYXNzIEl0ZW0ge1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1JZDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbU5hbWU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1QcmljZTogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbVR5cGU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1RdWFudGl0eTogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYmFzZVJhdGlvOiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBxdWFudGl0eVVuaXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEl0ZW1EZXRhaWxzIHtcbiAgICBAYXR0cmlidXRlKClcbiAgICByZXBsYWNlbWVudEl0ZW1JZD86IHN0cmluZzsgLy8gVjIgMTctMDQtMjAyNlxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgb3JpZ2luYWxJdGVtSWQ/OiBzdHJpbmc7IC8vIFYyIDE4LTA0LTIwMjZcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1JZDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbU5hbWU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1QcmljZTogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbVR5cGU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1JbWFnZT86IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1QYXJ0aWFsR3JpbGxQcmljZT86IG51bWJlcjsgLy8gVjIgMTItMTItMjAyNVxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbVF1YW50aXR5OiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBiYXNlUmF0aW86IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHF1YW50aXR5VW5pdDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXNCb25lbGVzc0l0ZW0/OiBib29sZWFuOyAvLyBWMlxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYm9uZUl0ZW1QcmljZT86IG51bWJlcjsgLy8gVjJcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFjY29tcGFuaW1lbnRzOiBBY2NvbXBhbmltZW50c0RldGFpbHNbXTtcbn1cblxuZXhwb3J0IGNsYXNzIEFjY29tcGFuaW1lbnRzRGV0YWlscyB7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYWNjb21wYW5pbWVudElkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBhY2NvbXBhbmltZW50TmFtZTogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYWNjb21wYW5pbWVudFR5cGU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGlzRnJlZTogYm9vbGVhbjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGltYWdlVXJsPzogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcXVhbnRpdHlVbml0OiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBhY2NvbXBhbmltZW50UHJpY2U6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFjY29tcGFuaW1lbnRRdHk6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGJhc2VSYXRpbzogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXNCb25lbGVzc0l0ZW0/OiBib29sZWFuOyAvLyBWMlxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYm9uZUl0ZW1QcmljZT86IG51bWJlcjsgLy8gVjJcbn0iXX0=
@@ -0,0 +1,114 @@
1
+ import { GenericDynamooseDAO } from "../../base-dynamoose-dao";
2
+ import { AuthContext } from "../../base-dynamoose-model";
3
+ import { CreateThirdPartyApiKeyInput, ThirdPartyApiKey, ThirdPartyApiKeyStatus } from "./third-party-api-key-model";
4
+ type ListResult = {
5
+ items: ThirdPartyApiKey[];
6
+ nextToken?: string;
7
+ };
8
+ /**
9
+ * Thrown when the same `apiKeyHash` already exists in the table.
10
+ * Use this to return a clean duplicate-key error from admin/create-key APIs.
11
+ */
12
+ export declare class DuplicateApiKeyHashError extends Error {
13
+ constructor(apiKeyHash: string);
14
+ }
15
+ /**
16
+ * DAO for permanent third-party API keys (Method 2).
17
+ *
18
+ * Table keys: `partnerId` (PK) + `apiKeyId` (SK).
19
+ * Auth lookup: hash incoming key, then use `getActiveByApiKeyHash`.
20
+ */
21
+ declare class ThirdPartyApiKeyDao extends GenericDynamooseDAO<ThirdPartyApiKey> {
22
+ constructor();
23
+ /**
24
+ * Creates a new permanent API key record for a partner.
25
+ *
26
+ * Use when: admin/onboarding flow issues a new API key to a third-party partner.
27
+ * - `apiKeyId` auto-generates if omitted.
28
+ * - Pass only `apiKeyHash` (SHA-256 etc.), never the raw key.
29
+ * - Default status is `ACTIVE`.
30
+ * - Throws `DuplicateApiKeyHashError` if hash already exists.
31
+ */
32
+ save: (item: CreateThirdPartyApiKeyInput, authContext?: AuthContext) => Promise<ThirdPartyApiKey>;
33
+ /**
34
+ * Updates an existing API key by `partnerId` + `apiKeyId`.
35
+ *
36
+ * Use when: changing key metadata or rotating hash/status from admin tools.
37
+ * - Fails if the record does not exist.
38
+ * - Rejects duplicate `apiKeyHash` belonging to another key.
39
+ * - Stamps `updated_time` / `updated_user` automatically.
40
+ */
41
+ updateApiKey: (partnerId: string, apiKeyId: string, updates: Partial<ThirdPartyApiKey>, authContext?: AuthContext) => Promise<ThirdPartyApiKey>;
42
+ /**
43
+ * Fetches one API key by table primary key (`partnerId` + `apiKeyId`).
44
+ *
45
+ * Use when: admin detail page, key management screen, or internal ops lookup
46
+ * when both partner id and key id are already known.
47
+ */
48
+ getByPartnerAndApiKeyId: (partnerId: string, apiKeyId: string) => Promise<ThirdPartyApiKey | null>;
49
+ /**
50
+ * Lists all API keys for a partner (query on PK `partnerId`).
51
+ *
52
+ * Use when: partner dashboard showing every issued key (active + inactive).
53
+ * Supports pagination via `limit` and `token`.
54
+ */
55
+ listByPartnerId: (partnerId: string, limit?: number, token?: string) => Promise<ListResult>;
56
+ /**
57
+ * Lists partner keys filtered by `status` (`ACTIVE` or `INACTIVE`).
58
+ *
59
+ * Use when: showing only active keys in UI, or auditing disabled/revoked keys
60
+ * for one partner without scanning the whole table.
61
+ */
62
+ listByPartnerIdAndStatus: (partnerId: string, status: ThirdPartyApiKeyStatus, limit?: number, token?: string) => Promise<ListResult>;
63
+ /**
64
+ * Finds a key by `apiKeyHash` using GSI `apiKeyHashIndex`.
65
+ *
66
+ * Use when: you need the record regardless of status (admin/debug),
67
+ * or before deciding whether to allow auth.
68
+ * Returns `null` if no key matches the hash.
69
+ */
70
+ getByApiKeyHash: (apiKeyHash: string) => Promise<ThirdPartyApiKey | null>;
71
+ /**
72
+ * Validates an incoming API request key (auth middleware use-case).
73
+ *
74
+ * Use when: request header/bearer token is hashed and you must allow access
75
+ * only if the key exists AND `status === ACTIVE` AND not past `expiresAt`.
76
+ * Returns `null` for missing, inactive, revoked, or expired keys.
77
+ */
78
+ getActiveByApiKeyHash: (apiKeyHash: string) => Promise<ThirdPartyApiKey | null>;
79
+ /**
80
+ * Records when an API key was last used (audit / monitoring).
81
+ *
82
+ * Use when: auth middleware successfully validates a key and you want usage telemetry.
83
+ */
84
+ touchLastUsedAt: (partnerId: string, apiKeyId: string) => Promise<void>;
85
+ /**
86
+ * Paginated query on GSI `apiKeyHashIndex`.
87
+ *
88
+ * Use when: low-level lookup by hash with pagination.
89
+ * Normally prefer `getByApiKeyHash` for single-record auth/admin flows.
90
+ */
91
+ listByApiKeyHash: (apiKeyHash: string, limit?: number, token?: string) => Promise<ListResult>;
92
+ /**
93
+ * Lists keys across all partners by `status` (GSI `statusIndex`).
94
+ *
95
+ * Use when: global admin reports — e.g. all active keys, or cleanup job
96
+ * for all inactive/revoked keys.
97
+ */
98
+ listByStatus: (status: ThirdPartyApiKeyStatus, limit?: number, token?: string) => Promise<ListResult>;
99
+ /**
100
+ * Disables an API key without deleting it (`status` → `INACTIVE`).
101
+ *
102
+ * Use when: partner offboarding, key compromise, or temporary suspension.
103
+ * Disabled keys fail `getActiveByApiKeyHash` immediately.
104
+ */
105
+ deactivate: (partnerId: string, apiKeyId: string, authContext?: AuthContext) => Promise<ThirdPartyApiKey>;
106
+ /**
107
+ * Re-enables a previously disabled key (`status` → `ACTIVE`).
108
+ *
109
+ * Use when: restoring partner access after suspension without issuing a new key.
110
+ */
111
+ activate: (partnerId: string, apiKeyId: string, authContext?: AuthContext) => Promise<ThirdPartyApiKey>;
112
+ }
113
+ export declare const thirdPartyApiKeyDao: ThirdPartyApiKeyDao;
114
+ export {};
@@ -0,0 +1,225 @@
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.thirdPartyApiKeyDao = exports.DuplicateApiKeyHashError = void 0;
7
+ const dynamoose_1 = __importDefault(require("dynamoose"));
8
+ const base_dynamoose_dao_1 = require("../../base-dynamoose-dao");
9
+ const third_party_api_key_model_1 = require("./third-party-api-key-model");
10
+ /**
11
+ * Thrown when the same `apiKeyHash` already exists in the table.
12
+ * Use this to return a clean duplicate-key error from admin/create-key APIs.
13
+ */
14
+ class DuplicateApiKeyHashError extends Error {
15
+ constructor(apiKeyHash) {
16
+ super(`apiKeyHash already exists: ${apiKeyHash}`);
17
+ this.name = "DuplicateApiKeyHashError";
18
+ }
19
+ }
20
+ exports.DuplicateApiKeyHashError = DuplicateApiKeyHashError;
21
+ /**
22
+ * DAO for permanent third-party API keys (Method 2).
23
+ *
24
+ * Table keys: `partnerId` (PK) + `apiKeyId` (SK).
25
+ * Auth lookup: hash incoming key, then use `getActiveByApiKeyHash`.
26
+ */
27
+ class ThirdPartyApiKeyDao extends base_dynamoose_dao_1.GenericDynamooseDAO {
28
+ constructor() {
29
+ super(third_party_api_key_model_1.ThirdPartyApiKeyModel, "partnerId", "apiKeyId");
30
+ /**
31
+ * Creates a new permanent API key record for a partner.
32
+ *
33
+ * Use when: admin/onboarding flow issues a new API key to a third-party partner.
34
+ * - `apiKeyId` auto-generates if omitted.
35
+ * - Pass only `apiKeyHash` (SHA-256 etc.), never the raw key.
36
+ * - Default status is `ACTIVE`.
37
+ * - Throws `DuplicateApiKeyHashError` if hash already exists.
38
+ */
39
+ this.save = async (item, authContext) => {
40
+ const existing = await this.getByApiKeyHash(item.apiKeyHash);
41
+ if (existing) {
42
+ throw new DuplicateApiKeyHashError(item.apiKeyHash);
43
+ }
44
+ return super.save({
45
+ ...item,
46
+ status: item.status ?? third_party_api_key_model_1.THIRD_PARTY_API_KEY_STATUS.ACTIVE
47
+ }, authContext);
48
+ };
49
+ /**
50
+ * Updates an existing API key by `partnerId` + `apiKeyId`.
51
+ *
52
+ * Use when: changing key metadata or rotating hash/status from admin tools.
53
+ * - Fails if the record does not exist.
54
+ * - Rejects duplicate `apiKeyHash` belonging to another key.
55
+ * - Stamps `updated_time` / `updated_user` automatically.
56
+ */
57
+ this.updateApiKey = async (partnerId, apiKeyId, updates, authContext) => {
58
+ if (updates.apiKeyHash) {
59
+ const duplicate = await this.getByApiKeyHash(updates.apiKeyHash);
60
+ if (duplicate && (duplicate.partnerId !== partnerId || duplicate.apiKeyId !== apiKeyId)) {
61
+ throw new DuplicateApiKeyHashError(updates.apiKeyHash);
62
+ }
63
+ }
64
+ const updated = await third_party_api_key_model_1.ThirdPartyApiKeyModel.update({ partnerId, apiKeyId }, {
65
+ ...updates,
66
+ updated_time: new Date(),
67
+ updated_user: authContext?.userSub
68
+ }, {
69
+ condition: new dynamoose_1.default.Condition().attribute("apiKeyId").exists()
70
+ });
71
+ return updated;
72
+ };
73
+ /**
74
+ * Fetches one API key by table primary key (`partnerId` + `apiKeyId`).
75
+ *
76
+ * Use when: admin detail page, key management screen, or internal ops lookup
77
+ * when both partner id and key id are already known.
78
+ */
79
+ this.getByPartnerAndApiKeyId = async (partnerId, apiKeyId) => this.get(partnerId, apiKeyId);
80
+ /**
81
+ * Lists all API keys for a partner (query on PK `partnerId`).
82
+ *
83
+ * Use when: partner dashboard showing every issued key (active + inactive).
84
+ * Supports pagination via `limit` and `token`.
85
+ */
86
+ this.listByPartnerId = async (partnerId, limit, token) => {
87
+ const decodedToken = this.decode(token);
88
+ let queryBuilder = third_party_api_key_model_1.ThirdPartyApiKeyModel.query("partnerId").eq(partnerId);
89
+ if (decodedToken) {
90
+ queryBuilder = queryBuilder.startAt(decodedToken);
91
+ }
92
+ if (typeof limit === "number") {
93
+ queryBuilder = queryBuilder.limit(limit);
94
+ }
95
+ const queryResult = await queryBuilder.exec();
96
+ return {
97
+ items: queryResult,
98
+ nextToken: await this.encode(queryResult.lastKey)
99
+ };
100
+ };
101
+ /**
102
+ * Lists partner keys filtered by `status` (`ACTIVE` or `INACTIVE`).
103
+ *
104
+ * Use when: showing only active keys in UI, or auditing disabled/revoked keys
105
+ * for one partner without scanning the whole table.
106
+ */
107
+ this.listByPartnerIdAndStatus = async (partnerId, status, limit, token) => {
108
+ const decodedToken = this.decode(token);
109
+ let queryBuilder = third_party_api_key_model_1.ThirdPartyApiKeyModel.query("partnerId")
110
+ .eq(partnerId)
111
+ .where("status")
112
+ .eq(status);
113
+ if (decodedToken) {
114
+ queryBuilder = queryBuilder.startAt(decodedToken);
115
+ }
116
+ if (typeof limit === "number") {
117
+ queryBuilder = queryBuilder.limit(limit);
118
+ }
119
+ const queryResult = await queryBuilder.exec();
120
+ return {
121
+ items: queryResult,
122
+ nextToken: await this.encode(queryResult.lastKey)
123
+ };
124
+ };
125
+ /**
126
+ * Finds a key by `apiKeyHash` using GSI `apiKeyHashIndex`.
127
+ *
128
+ * Use when: you need the record regardless of status (admin/debug),
129
+ * or before deciding whether to allow auth.
130
+ * Returns `null` if no key matches the hash.
131
+ */
132
+ this.getByApiKeyHash = async (apiKeyHash) => {
133
+ const result = await this.listByApiKeyHash(apiKeyHash, 1);
134
+ return result.items[0] ?? null;
135
+ };
136
+ /**
137
+ * Validates an incoming API request key (auth middleware use-case).
138
+ *
139
+ * Use when: request header/bearer token is hashed and you must allow access
140
+ * only if the key exists AND `status === ACTIVE` AND not past `expiresAt`.
141
+ * Returns `null` for missing, inactive, revoked, or expired keys.
142
+ */
143
+ this.getActiveByApiKeyHash = async (apiKeyHash) => {
144
+ const item = await this.getByApiKeyHash(apiKeyHash);
145
+ if (!item || item.status !== third_party_api_key_model_1.THIRD_PARTY_API_KEY_STATUS.ACTIVE) {
146
+ return null;
147
+ }
148
+ if (item.expiresAt != null && item.expiresAt <= Date.now()) {
149
+ return null;
150
+ }
151
+ return item;
152
+ };
153
+ /**
154
+ * Records when an API key was last used (audit / monitoring).
155
+ *
156
+ * Use when: auth middleware successfully validates a key and you want usage telemetry.
157
+ */
158
+ this.touchLastUsedAt = async (partnerId, apiKeyId) => {
159
+ await third_party_api_key_model_1.ThirdPartyApiKeyModel.update({ partnerId, apiKeyId }, { lastUsedAt: Date.now() });
160
+ };
161
+ /**
162
+ * Paginated query on GSI `apiKeyHashIndex`.
163
+ *
164
+ * Use when: low-level lookup by hash with pagination.
165
+ * Normally prefer `getByApiKeyHash` for single-record auth/admin flows.
166
+ */
167
+ this.listByApiKeyHash = async (apiKeyHash, limit, token) => {
168
+ const decodedToken = this.decode(token);
169
+ let queryBuilder = third_party_api_key_model_1.ThirdPartyApiKeyModel.query("apiKeyHash")
170
+ .eq(apiKeyHash)
171
+ .using("apiKeyHashIndex");
172
+ if (decodedToken) {
173
+ queryBuilder = queryBuilder.startAt(decodedToken);
174
+ }
175
+ if (typeof limit === "number") {
176
+ queryBuilder = queryBuilder.limit(limit);
177
+ }
178
+ const queryResult = await queryBuilder.exec();
179
+ return {
180
+ items: queryResult,
181
+ nextToken: await this.encode(queryResult.lastKey)
182
+ };
183
+ };
184
+ /**
185
+ * Lists keys across all partners by `status` (GSI `statusIndex`).
186
+ *
187
+ * Use when: global admin reports — e.g. all active keys, or cleanup job
188
+ * for all inactive/revoked keys.
189
+ */
190
+ this.listByStatus = async (status, limit, token) => {
191
+ const decodedToken = this.decode(token);
192
+ let queryBuilder = third_party_api_key_model_1.ThirdPartyApiKeyModel.query("status").eq(status).using("statusIndex");
193
+ if (decodedToken) {
194
+ queryBuilder = queryBuilder.startAt(decodedToken);
195
+ }
196
+ if (typeof limit === "number") {
197
+ queryBuilder = queryBuilder.limit(limit);
198
+ }
199
+ const queryResult = await queryBuilder.exec();
200
+ return {
201
+ items: queryResult,
202
+ nextToken: await this.encode(queryResult.lastKey)
203
+ };
204
+ };
205
+ /**
206
+ * Disables an API key without deleting it (`status` → `INACTIVE`).
207
+ *
208
+ * Use when: partner offboarding, key compromise, or temporary suspension.
209
+ * Disabled keys fail `getActiveByApiKeyHash` immediately.
210
+ */
211
+ this.deactivate = async (partnerId, apiKeyId, authContext) => {
212
+ return this.updateApiKey(partnerId, apiKeyId, { status: third_party_api_key_model_1.THIRD_PARTY_API_KEY_STATUS.INACTIVE }, authContext);
213
+ };
214
+ /**
215
+ * Re-enables a previously disabled key (`status` → `ACTIVE`).
216
+ *
217
+ * Use when: restoring partner access after suspension without issuing a new key.
218
+ */
219
+ this.activate = async (partnerId, apiKeyId, authContext) => {
220
+ return this.updateApiKey(partnerId, apiKeyId, { status: third_party_api_key_model_1.THIRD_PARTY_API_KEY_STATUS.ACTIVE }, authContext);
221
+ };
222
+ }
223
+ }
224
+ exports.thirdPartyApiKeyDao = new ThirdPartyApiKeyDao();
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhpcmQtcGFydHktYXBpLWtleS1kYW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGF0bmVyLXRoaXJkLXBhcnR5L3RoaXJkLXBhcnR5LWFwaS1rZXkvdGhpcmQtcGFydHktYXBpLWtleS1kYW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMERBQWtDO0FBQ2xDLGlFQUEwRTtBQUUxRSwyRUFNcUM7QUFPckM7OztHQUdHO0FBQ0gsTUFBYSx3QkFBeUIsU0FBUSxLQUFLO0lBQy9DLFlBQVksVUFBa0I7UUFDMUIsS0FBSyxDQUFDLDhCQUE4QixVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxJQUFJLEdBQUcsMEJBQTBCLENBQUM7SUFDM0MsQ0FBQztDQUNKO0FBTEQsNERBS0M7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sbUJBQW9CLFNBQVEsd0NBQXFDO0lBQ25FO1FBQ0ksS0FBSyxDQUFDLGlEQUFxQixFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUcxRDs7Ozs7Ozs7V0FRRztRQUNILFNBQUksR0FBRyxLQUFLLEVBQUUsSUFBaUMsRUFBRSxXQUF5QixFQUE2QixFQUFFO1lBQ3JHLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0QsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDWCxNQUFNLElBQUksd0JBQXdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3hELENBQUM7WUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQ2I7Z0JBQ0ksR0FBRyxJQUFJO2dCQUNQLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLHNEQUEwQixDQUFDLE1BQU07YUFDdkMsRUFDckIsV0FBVyxDQUNkLENBQUM7UUFDTixDQUFDLENBQUM7UUFFRjs7Ozs7OztXQU9HO1FBQ0gsaUJBQVksR0FBRyxLQUFL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XCJkeW5hbW9vc2VcIjtcbmltcG9ydCB7IER5bmFtb0tleSwgR2VuZXJpY0R5bmFtb29zZURBTyB9IGZyb20gXCIuLi8uLi9iYXNlLWR5bmFtb29zZS1kYW9cIjtcbmltcG9ydCB7IEF1dGhDb250ZXh0IH0gZnJvbSBcIi4uLy4uL2Jhc2UtZHluYW1vb3NlLW1vZGVsXCI7XG5pbXBvcnQge1xuICAgIENyZWF0ZVRoaXJkUGFydHlBcGlLZXlJbnB1dCxcbiAgICBUSElSRF9QQVJUWV9BUElfS0VZX1NUQVRVUyxcbiAgICBUaGlyZFBhcnR5QXBpS2V5LFxuICAgIFRoaXJkUGFydHlBcGlLZXlNb2RlbCxcbiAgICBUaGlyZFBhcnR5QXBpS2V5U3RhdHVzXG59IGZyb20gXCIuL3RoaXJkLXBhcnR5LWFwaS1rZXktbW9kZWxcIjtcblxudHlwZSBMaXN0UmVzdWx0ID0ge1xuICAgIGl0ZW1zOiBUaGlyZFBhcnR5QXBpS2V5W107XG4gICAgbmV4dFRva2VuPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBUaHJvd24gd2hlbiB0aGUgc2FtZSBgYXBpS2V5SGFzaGAgYWxyZWFkeSBleGlzdHMgaW4gdGhlIHRhYmxlLlxuICogVXNlIHRoaXMgdG8gcmV0dXJuIGEgY2xlYW4gZHVwbGljYXRlLWtleSBlcnJvciBmcm9tIGFkbWluL2NyZWF0ZS1rZXkgQVBJcy5cbiAqL1xuZXhwb3J0IGNsYXNzIER1cGxpY2F0ZUFwaUtleUhhc2hFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihhcGlLZXlIYXNoOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIoYGFwaUtleUhhc2ggYWxyZWFkeSBleGlzdHM6ICR7YXBpS2V5SGFzaH1gKTtcbiAgICAgICAgdGhpcy5uYW1lID0gXCJEdXBsaWNhdGVBcGlLZXlIYXNoRXJyb3JcIjtcbiAgICB9XG59XG5cbi8qKlxuICogREFPIGZvciBwZXJtYW5lbnQgdGhpcmQtcGFydHkgQVBJIGtleXMgKE1ldGhvZCAyKS5cbiAqXG4gKiBUYWJsZSBrZXlzOiBgcGFydG5lcklkYCAoUEspICsgYGFwaUtleUlkYCAoU0spLlxuICogQXV0aCBsb29rdXA6IGhhc2ggaW5jb21pbmcga2V5LCB0aGVuIHVzZSBgZ2V0QWN0aXZlQnlBcGlLZXlIYXNoYC5cbiAqL1xuY2xhc3MgVGhpcmRQYXJ0eUFwaUtleURhbyBleHRlbmRzIEdlbmVyaWNEeW5hbW9vc2VEQU88VGhpcmRQYXJ0eUFwaUtleT4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihUaGlyZFBhcnR5QXBpS2V5TW9kZWwsIFwicGFydG5lcklkXCIsIFwiYXBpS2V5SWRcIik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBwZXJtYW5lbnQgQVBJIGtleSByZWNvcmQgZm9yIGEgcGFydG5lci5cbiAgICAgKlxuICAgICAqIFVzZSB3aGVuOiBhZG1pbi9vbmJvYXJkaW5nIGZsb3cgaXNzdWVzIGEgbmV3IEFQSSBrZXkgdG8gYSB0aGlyZC1wYXJ0eSBwYXJ0bmVyLlxuICAgICAqIC0gYGFwaUtleUlkYCBhdXRvLWdlbmVyYXRlcyBpZiBvbWl0dGVkLlxuICAgICAqIC0gUGFzcyBvbmx5IGBhcGlLZXlIYXNoYCAoU0hBLTI1NiBldGMuKSwgbmV2ZXIgdGhlIHJhdyBrZXkuXG4gICAgICogLSBEZWZhdWx0IHN0YXR1cyBpcyBgQUNUSVZFYC5cbiAgICAgKiAtIFRocm93cyBgRHVwbGljYXRlQXBpS2V5SGFzaEVycm9yYCBpZiBoYXNoIGFscmVhZHkgZXhpc3RzLlxuICAgICAqL1xuICAgIHNhdmUgPSBhc3luYyAoaXRlbTogQ3JlYXRlVGhpcmRQYXJ0eUFwaUtleUlucHV0LCBhdXRoQ29udGV4dD86IEF1dGhDb250ZXh0KTogUHJvbWlzZTxUaGlyZFBhcnR5QXBpS2V5PiA9PiB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgdGhpcy5nZXRCeUFwaUtleUhhc2goaXRlbS5hcGlLZXlIYXNoKTtcbiAgICAgICAgaWYgKGV4aXN0aW5nKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRHVwbGljYXRlQXBpS2V5SGFzaEVycm9yKGl0ZW0uYXBpS2V5SGFzaCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VwZXIuc2F2ZShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgIHN0YXR1czogaXRlbS5zdGF0dXMgPz8gVEhJUkRfUEFSVFlfQVBJX0tFWV9TVEFUVVMuQUNUSVZFXG4gICAgICAgICAgICB9IGFzIFRoaXJkUGFydHlBcGlLZXksXG4gICAgICAgICAgICBhdXRoQ29udGV4dFxuICAgICAgICApO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIEFQSSBrZXkgYnkgYHBhcnRuZXJJZGAgKyBgYXBpS2V5SWRgLlxuICAgICAqXG4gICAgICogVXNlIHdoZW46IGNoYW5naW5nIGtleSBtZXRhZGF0YSBvciByb3RhdGluZyBoYXNoL3N0YXR1cyBmcm9tIGFkbWluIHRvb2xzLlxuICAgICAqIC0gRmFpbHMgaWYgdGhlIHJlY29yZCBkb2VzIG5vdCBleGlzdC5cbiAgICAgKiAtIFJlamVjdHMgZHVwbGljYXRlIGBhcGlLZXlIYXNoYCBiZWxvbmdpbmcgdG8gYW5vdGhlciBrZXkuXG4gICAgICogLSBTdGFtcHMgYHVwZGF0ZWRfdGltZWAgLyBgdXBkYXRlZF91c2VyYCBhdXRvbWF0aWNhbGx5LlxuICAgICAqL1xuICAgIHVwZGF0ZUFwaUtleSA9IGFzeW5jIChcbiAgICAgICAgcGFydG5lcklkOiBzdHJpbmcsXG4gICAgICAgIGFwaUtleUlkOiBzdHJpbmcsXG4gICAgICAgIHVwZGF0ZXM6IFBhcnRpYWw8VGhpcmRQYXJ0eUFwaUtleT4sXG4gICAgICAgIGF1dGhDb250ZXh0PzogQXV0aENvbnRleHRcbiAgICApOiBQcm9taXNlPFRoaXJkUGFydHlBcGlLZXk+ID0+IHtcbiAgICAgICAgaWYgKHVwZGF0ZXMuYXBpS2V5SGFzaCkge1xuICAgICAgICAgICAgY29uc3QgZHVwbGljYXRlID0gYXdhaXQgdGhpcy5nZXRCeUFwaUtleUhhc2godXBkYXRlcy5hcGlLZXlIYXNoKTtcbiAgICAgICAgICAgIGlmIChkdXBsaWNhdGUgJiYgKGR1cGxpY2F0ZS5wYXJ0bmVySWQgIT09IHBhcnRuZXJJZCB8fCBkdXBsaWNhdGUuYXBpS2V5SWQgIT09IGFwaUtleUlkKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBEdXBsaWNhdGVBcGlLZXlIYXNoRXJyb3IodXBkYXRlcy5hcGlLZXlIYXNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVwZGF0ZWQgPSBhd2FpdCBUaGlyZFBhcnR5QXBpS2V5TW9kZWwudXBkYXRlKFxuICAgICAgICAgICAgeyBwYXJ0bmVySWQsIGFwaUtleUlkIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4udXBkYXRlcyxcbiAgICAgICAgICAgICAgICB1cGRhdGVkX3RpbWU6IG5ldyBEYXRlKCksXG4gICAgICAgICAgICAgICAgdXBkYXRlZF91c2VyOiBhdXRoQ29udGV4dD8udXNlclN1YlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25kaXRpb246IG5ldyBkeW5hbW9vc2UuQ29uZGl0aW9uKCkuYXR0cmlidXRlKFwiYXBpS2V5SWRcIikuZXhpc3RzKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWQgYXMgdW5rbm93biBhcyBUaGlyZFBhcnR5QXBpS2V5O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGZXRjaGVzIG9uZSBBUEkga2V5IGJ5IHRhYmxlIHByaW1hcnkga2V5IChgcGFydG5lcklkYCArIGBhcGlLZXlJZGApLlxuICAgICAqXG4gICAgICogVXNlIHdoZW46IGFkbWluIGRldGFpbCBwYWdlLCBrZXkgbWFuYWdlbWVudCBzY3JlZW4sIG9yIGludGVybmFsIG9wcyBsb29rdXBcbiAgICAgKiB3aGVuIGJvdGggcGFydG5lciBpZCBhbmQga2V5IGlkIGFyZSBhbHJlYWR5IGtub3duLlxuICAgICAqL1xuICAgIGdldEJ5UGFydG5lckFuZEFwaUtleUlkID0gYXN5bmMgKFxuICAgICAgICBwYXJ0bmVySWQ6IHN0cmluZyxcbiAgICAgICAgYXBpS2V5SWQ6IHN0cmluZ1xuICAgICk6IFByb21pc2U8VGhpcmRQYXJ0eUFwaUtleSB8IG51bGw+ID0+IHRoaXMuZ2V0KHBhcnRuZXJJZCwgYXBpS2V5SWQpO1xuXG4gICAgLyoqXG4gICAgICogTGlzdHMgYWxsIEFQSSBrZXlzIGZvciBhIHBhcnRuZXIgKHF1ZXJ5IG9uIFBLIGBwYXJ0bmVySWRgKS5cbiAgICAgKlxuICAgICAqIFVzZSB3aGVuOiBwYXJ0bmVyIGRhc2hib2FyZCBzaG93aW5nIGV2ZXJ5IGlzc3VlZCBrZXkgKGFjdGl2ZSArIGluYWN0aXZlKS5cbiAgICAgKiBTdXBwb3J0cyBwYWdpbmF0aW9uIHZpYSBgbGltaXRgIGFuZCBgdG9rZW5gLlxuICAgICAqL1xuICAgIGxpc3RCeVBhcnRuZXJJZCA9IGFzeW5jIChwYXJ0bmVySWQ6IHN0cmluZywgbGltaXQ/OiBudW1iZXIsIHRva2VuPzogc3RyaW5nKTogUHJvbWlzZTxMaXN0UmVzdWx0PiA9PiB7XG4gICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IHRoaXMuZGVjb2RlKHRva2VuKTtcbiAgICAgICAgbGV0IHF1ZXJ5QnVpbGRlciA9IFRoaXJkUGFydHlBcGlLZXlNb2RlbC5xdWVyeShcInBhcnRuZXJJZFwiKS5lcShwYXJ0bmVySWQpO1xuICAgICAgICBpZiAoZGVjb2RlZFRva2VuKSB7XG4gICAgICAgICAgICBxdWVyeUJ1aWxkZXIgPSBxdWVyeUJ1aWxkZXIuc3RhcnRBdChkZWNvZGVkVG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbGltaXQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5saW1pdChsaW1pdCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcXVlcnlSZXN1bHQgPSBhd2FpdCBxdWVyeUJ1aWxkZXIuZXhlYygpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHF1ZXJ5UmVzdWx0IGFzIHVua25vd24gYXMgVGhpcmRQYXJ0eUFwaUtleVtdLFxuICAgICAgICAgICAgbmV4dFRva2VuOiBhd2FpdCB0aGlzLmVuY29kZShxdWVyeVJlc3VsdC5sYXN0S2V5IGFzIER5bmFtb0tleSB8IHVuZGVmaW5lZClcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTGlzdHMgcGFydG5lciBrZXlzIGZpbHRlcmVkIGJ5IGBzdGF0dXNgIChgQUNUSVZFYCBvciBgSU5BQ1RJVkVgKS5cbiAgICAgKlxuICAgICAqIFVzZSB3aGVuOiBzaG93aW5nIG9ubHkgYWN0aXZlIGtleXMgaW4gVUksIG9yIGF1ZGl0aW5nIGRpc2FibGVkL3Jldm9rZWQga2V5c1xuICAgICAqIGZvciBvbmUgcGFydG5lciB3aXRob3V0IHNjYW5uaW5nIHRoZSB3aG9sZSB0YWJsZS5cbiAgICAgKi9cbiAgICBsaXN0QnlQYXJ0bmVySWRBbmRTdGF0dXMgPSBhc3luYyAoXG4gICAgICAgIHBhcnRuZXJJZDogc3RyaW5nLFxuICAgICAgICBzdGF0dXM6IFRoaXJkUGFydHlBcGlLZXlTdGF0dXMsXG4gICAgICAgIGxpbWl0PzogbnVtYmVyLFxuICAgICAgICB0b2tlbj86IHN0cmluZ1xuICAgICk6IFByb21pc2U8TGlzdFJlc3VsdD4gPT4ge1xuICAgICAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSB0aGlzLmRlY29kZSh0b2tlbik7XG4gICAgICAgIGxldCBxdWVyeUJ1aWxkZXIgPSBUaGlyZFBhcnR5QXBpS2V5TW9kZWwucXVlcnkoXCJwYXJ0bmVySWRcIilcbiAgICAgICAgICAgIC5lcShwYXJ0bmVySWQpXG4gICAgICAgICAgICAud2hlcmUoXCJzdGF0dXNcIilcbiAgICAgICAgICAgIC5lcShzdGF0dXMpO1xuICAgICAgICBpZiAoZGVjb2RlZFRva2VuKSB7XG4gICAgICAgICAgICBxdWVyeUJ1aWxkZXIgPSBxdWVyeUJ1aWxkZXIuc3RhcnRBdChkZWNvZGVkVG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbGltaXQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5saW1pdChsaW1pdCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcXVlcnlSZXN1bHQgPSBhd2FpdCBxdWVyeUJ1aWxkZXIuZXhlYygpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHF1ZXJ5UmVzdWx0IGFzIHVua25vd24gYXMgVGhpcmRQYXJ0eUFwaUtleVtdLFxuICAgICAgICAgICAgbmV4dFRva2VuOiBhd2FpdCB0aGlzLmVuY29kZShxdWVyeVJlc3VsdC5sYXN0S2V5IGFzIER5bmFtb0tleSB8IHVuZGVmaW5lZClcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRmluZHMgYSBrZXkgYnkgYGFwaUtleUhhc2hgIHVzaW5nIEdTSSBgYXBpS2V5SGFzaEluZGV4YC5cbiAgICAgKlxuICAgICAqIFVzZSB3aGVuOiB5b3UgbmVlZCB0aGUgcmVjb3JkIHJlZ2FyZGxlc3Mgb2Ygc3RhdHVzIChhZG1pbi9kZWJ1ZyksXG4gICAgICogb3IgYmVmb3JlIGRlY2lkaW5nIHdoZXRoZXIgdG8gYWxsb3cgYXV0aC5cbiAgICAgKiBSZXR1cm5zIGBudWxsYCBpZiBubyBrZXkgbWF0Y2hlcyB0aGUgaGFzaC5cbiAgICAgKi9cbiAgICBnZXRCeUFwaUtleUhhc2ggPSBhc3luYyAoYXBpS2V5SGFzaDogc3RyaW5nKTogUHJvbWlzZTxUaGlyZFBhcnR5QXBpS2V5IHwgbnVsbD4gPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmxpc3RCeUFwaUtleUhhc2goYXBpS2V5SGFzaCwgMSk7XG4gICAgICAgIHJldHVybiByZXN1bHQuaXRlbXNbMF0gPz8gbnVsbDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGVzIGFuIGluY29taW5nIEFQSSByZXF1ZXN0IGtleSAoYXV0aCBtaWRkbGV3YXJlIHVzZS1jYXNlKS5cbiAgICAgKlxuICAgICAqIFVzZSB3aGVuOiByZXF1ZXN0IGhlYWRlci9iZWFyZXIgdG9rZW4gaXMgaGFzaGVkIGFuZCB5b3UgbXVzdCBhbGxvdyBhY2Nlc3NcbiAgICAgKiBvbmx5IGlmIHRoZSBrZXkgZXhpc3RzIEFORCBgc3RhdHVzID09PSBBQ1RJVkVgIEFORCBub3QgcGFzdCBgZXhwaXJlc0F0YC5cbiAgICAgKiBSZXR1cm5zIGBudWxsYCBmb3IgbWlzc2luZywgaW5hY3RpdmUsIHJldm9rZWQsIG9yIGV4cGlyZWQga2V5cy5cbiAgICAgKi9cbiAgICBnZXRBY3RpdmVCeUFwaUtleUhhc2ggPSBhc3luYyAoYXBpS2V5SGFzaDogc3RyaW5nKTogUHJvbWlzZTxUaGlyZFBhcnR5QXBpS2V5IHwgbnVsbD4gPT4ge1xuICAgICAgICBjb25zdCBpdGVtID0gYXdhaXQgdGhpcy5nZXRCeUFwaUtleUhhc2goYXBpS2V5SGFzaCk7XG4gICAgICAgIGlmICghaXRlbSB8fCBpdGVtLnN0YXR1cyAhPT0gVEhJUkRfUEFSVFlfQVBJX0tFWV9TVEFUVVMuQUNUSVZFKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXRlbS5leHBpcmVzQXQgIT0gbnVsbCAmJiBpdGVtLmV4cGlyZXNBdCA8PSBEYXRlLm5vdygpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmVjb3JkcyB3aGVuIGFuIEFQSSBrZXkgd2FzIGxhc3QgdXNlZCAoYXVkaXQgLyBtb25pdG9yaW5nKS5cbiAgICAgKlxuICAgICAqIFVzZSB3aGVuOiBhdXRoIG1pZGRsZXdhcmUgc3VjY2Vzc2Z1bGx5IHZhbGlkYXRlcyBhIGtleSBhbmQgeW91IHdhbnQgdXNhZ2UgdGVsZW1ldHJ5LlxuICAgICAqL1xuICAgIHRvdWNoTGFzdFVzZWRBdCA9IGFzeW5jIChwYXJ0bmVySWQ6IHN0cmluZywgYXBpS2V5SWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICBhd2FpdCBUaGlyZFBhcnR5QXBpS2V5TW9kZWwudXBkYXRlKHsgcGFydG5lcklkLCBhcGlLZXlJZCB9LCB7IGxhc3RVc2VkQXQ6IERhdGUubm93KCkgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFBhZ2luYXRlZCBxdWVyeSBvbiBHU0kgYGFwaUtleUhhc2hJbmRleGAuXG4gICAgICpcbiAgICAgKiBVc2Ugd2hlbjogbG93LWxldmVsIGxvb2t1cCBieSBoYXNoIHdpdGggcGFnaW5hdGlvbi5cbiAgICAgKiBOb3JtYWxseSBwcmVmZXIgYGdldEJ5QXBpS2V5SGFzaGAgZm9yIHNpbmdsZS1yZWNvcmQgYXV0aC9hZG1pbiBmbG93cy5cbiAgICAgKi9cbiAgICBsaXN0QnlBcGlLZXlIYXNoID0gYXN5bmMgKGFwaUtleUhhc2g6IHN0cmluZywgbGltaXQ/OiBudW1iZXIsIHRva2VuPzogc3RyaW5nKTogUHJvbWlzZTxMaXN0UmVzdWx0PiA9PiB7XG4gICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IHRoaXMuZGVjb2RlKHRva2VuKTtcbiAgICAgICAgbGV0IHF1ZXJ5QnVpbGRlciA9IFRoaXJkUGFydHlBcGlLZXlNb2RlbC5xdWVyeShcImFwaUtleUhhc2hcIilcbiAgICAgICAgICAgIC5lcShhcGlLZXlIYXNoKVxuICAgICAgICAgICAgLnVzaW5nKFwiYXBpS2V5SGFzaEluZGV4XCIpO1xuICAgICAgICBpZiAoZGVjb2RlZFRva2VuKSB7XG4gICAgICAgICAgICBxdWVyeUJ1aWxkZXIgPSBxdWVyeUJ1aWxkZXIuc3RhcnRBdChkZWNvZGVkVG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbGltaXQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5saW1pdChsaW1pdCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcXVlcnlSZXN1bHQgPSBhd2FpdCBxdWVyeUJ1aWxkZXIuZXhlYygpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHF1ZXJ5UmVzdWx0IGFzIHVua25vd24gYXMgVGhpcmRQYXJ0eUFwaUtleVtdLFxuICAgICAgICAgICAgbmV4dFRva2VuOiBhd2FpdCB0aGlzLmVuY29kZShxdWVyeVJlc3VsdC5sYXN0S2V5IGFzIER5bmFtb0tleSB8IHVuZGVmaW5lZClcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTGlzdHMga2V5cyBhY3Jvc3MgYWxsIHBhcnRuZXJzIGJ5IGBzdGF0dXNgIChHU0kgYHN0YXR1c0luZGV4YCkuXG4gICAgICpcbiAgICAgKiBVc2Ugd2hlbjogZ2xvYmFsIGFkbWluIHJlcG9ydHMg4oCUIGUuZy4gYWxsIGFjdGl2ZSBrZXlzLCBvciBjbGVhbnVwIGpvYlxuICAgICAqIGZvciBhbGwgaW5hY3RpdmUvcmV2b2tlZCBrZXlzLlxuICAgICAqL1xuICAgIGxpc3RCeVN0YXR1cyA9IGFzeW5jIChzdGF0dXM6IFRoaXJkUGFydHlBcGlLZXlTdGF0dXMsIGxpbWl0PzogbnVtYmVyLCB0b2tlbj86IHN0cmluZyk6IFByb21pc2U8TGlzdFJlc3VsdD4gPT4ge1xuICAgICAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSB0aGlzLmRlY29kZSh0b2tlbik7XG4gICAgICAgIGxldCBxdWVyeUJ1aWxkZXIgPSBUaGlyZFBhcnR5QXBpS2V5TW9kZWwucXVlcnkoXCJzdGF0dXNcIikuZXEoc3RhdHVzKS51c2luZyhcInN0YXR1c0luZGV4XCIpO1xuICAgICAgICBpZiAoZGVjb2RlZFRva2VuKSB7XG4gICAgICAgICAgICBxdWVyeUJ1aWxkZXIgPSBxdWVyeUJ1aWxkZXIuc3RhcnRBdChkZWNvZGVkVG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbGltaXQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5saW1pdChsaW1pdCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcXVlcnlSZXN1bHQgPSBhd2FpdCBxdWVyeUJ1aWxkZXIuZXhlYygpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHF1ZXJ5UmVzdWx0IGFzIHVua25vd24gYXMgVGhpcmRQYXJ0eUFwaUtleVtdLFxuICAgICAgICAgICAgbmV4dFRva2VuOiBhd2FpdCB0aGlzLmVuY29kZShxdWVyeVJlc3VsdC5sYXN0S2V5IGFzIER5bmFtb0tleSB8IHVuZGVmaW5lZClcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRGlzYWJsZXMgYW4gQVBJIGtleSB3aXRob3V0IGRlbGV0aW5nIGl0IChgc3RhdHVzYCDihpIgYElOQUNUSVZFYCkuXG4gICAgICpcbiAgICAgKiBVc2Ugd2hlbjogcGFydG5lciBvZmZib2FyZGluZywga2V5IGNvbXByb21pc2UsIG9yIHRlbXBvcmFyeSBzdXNwZW5zaW9uLlxuICAgICAqIERpc2FibGVkIGtleXMgZmFpbCBgZ2V0QWN0aXZlQnlBcGlLZXlIYXNoYCBpbW1lZGlhdGVseS5cbiAgICAgKi9cbiAgICBkZWFjdGl2YXRlID0gYXN5bmMgKFxuICAgICAgICBwYXJ0bmVySWQ6IHN0cmluZyxcbiAgICAgICAgYXBpS2V5SWQ6IHN0cmluZyxcbiAgICAgICAgYXV0aENvbnRleHQ/OiBBdXRoQ29udGV4dFxuICAgICk6IFByb21pc2U8VGhpcmRQYXJ0eUFwaUtleT4gPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVBcGlLZXkoXG4gICAgICAgICAgICBwYXJ0bmVySWQsXG4gICAgICAgICAgICBhcGlLZXlJZCxcbiAgICAgICAgICAgIHsgc3RhdHVzOiBUSElSRF9QQVJUWV9BUElfS0VZX1NUQVRVUy5JTkFDVElWRSB9LFxuICAgICAgICAgICAgYXV0aENvbnRleHRcbiAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmUtZW5hYmxlcyBhIHByZXZpb3VzbHkgZGlzYWJsZWQga2V5IChgc3RhdHVzYCDihpIgYEFDVElWRWApLlxuICAgICAqXG4gICAgICogVXNlIHdoZW46IHJlc3RvcmluZyBwYXJ0bmVyIGFjY2VzcyBhZnRlciBzdXNwZW5zaW9uIHdpdGhvdXQgaXNzdWluZyBhIG5ldyBrZXkuXG4gICAgICovXG4gICAgYWN0aXZhdGUgPSBhc3luYyAoXG4gICAgICAgIHBhcnRuZXJJZDogc3RyaW5nLFxuICAgICAgICBhcGlLZXlJZDogc3RyaW5nLFxuICAgICAgICBhdXRoQ29udGV4dD86IEF1dGhDb250ZXh0XG4gICAgKTogUHJvbWlzZTxUaGlyZFBhcnR5QXBpS2V5PiA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUFwaUtleShcbiAgICAgICAgICAgIHBhcnRuZXJJZCxcbiAgICAgICAgICAgIGFwaUtleUlkLFxuICAgICAgICAgICAgeyBzdGF0dXM6IFRISVJEX1BBUlRZX0FQSV9LRVlfU1RBVFVTLkFDVElWRSB9LFxuICAgICAgICAgICAgYXV0aENvbnRleHRcbiAgICAgICAgKTtcbiAgICB9O1xufVxuXG5leHBvcnQgY29uc3QgdGhpcmRQYXJ0eUFwaUtleURhbyA9IG5ldyBUaGlyZFBhcnR5QXBpS2V5RGFvKCk7XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { BaseDynamooseModel } from "../../base-dynamoose-model";
2
+ export declare const THIRD_PARTY_API_KEY_STATUS: {
3
+ readonly ACTIVE: "ACTIVE";
4
+ readonly INACTIVE: "INACTIVE";
5
+ };
6
+ export type ThirdPartyApiKeyStatus = (typeof THIRD_PARTY_API_KEY_STATUS)[keyof typeof THIRD_PARTY_API_KEY_STATUS];
7
+ export interface ThirdPartyApiKey extends BaseDynamooseModel {
8
+ partnerId: string;
9
+ partnerName: string;
10
+ apiKeyId: string;
11
+ apiKeyHash: string;
12
+ status: ThirdPartyApiKeyStatus;
13
+ scopes: string[];
14
+ expiresAt?: number;
15
+ lastUsedAt?: number;
16
+ }
17
+ export type CreateThirdPartyApiKeyInput = Omit<ThirdPartyApiKey, "apiKeyId"> & {
18
+ apiKeyId?: string;
19
+ };
20
+ export declare const ThirdPartyApiKeyModel: import("dynamoose/dist/General").ModelType<ThirdPartyApiKey>;
21
+ export declare const convertToThirdPartyApiKeyModel: (input: CreateThirdPartyApiKeyInput | ThirdPartyApiKey) => ThirdPartyApiKey;