cmp-aws-database 2.1.2-dev.10 → 2.1.2-dev.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/table-names.d.ts +2 -0
- package/dist/config/table-names.js +3 -1
- package/dist/customer-user/order-module/plate-order/plate-order-model.d.ts +4 -0
- package/dist/customer-user/order-module/plate-order/plate-order-model.js +14 -2
- package/dist/patner-third-party/third-party-api-key/third-party-api-key-dao.d.ts +114 -0
- package/dist/patner-third-party/third-party-api-key/third-party-api-key-dao.js +225 -0
- package/dist/patner-third-party/third-party-api-key/third-party-api-key-model.d.ts +21 -0
- package/dist/patner-third-party/third-party-api-key/third-party-api-key-model.js +70 -0
- package/index.js +3 -1
- package/package.json +1 -1
|
@@ -20,6 +20,7 @@ export declare const BASE_TABLE_NAMES: {
|
|
|
20
20
|
readonly INFLUENCER_PROMO: "InfluencerPromoTable";
|
|
21
21
|
readonly INFLUENCER_REFERRAL: "InfluencerReferralTable";
|
|
22
22
|
readonly CATALOGUE_ITEMS: "CatalogueItemsTable";
|
|
23
|
+
readonly THIRD_PARTY_API_KEY: "ThirdPartyApiKeyTable";
|
|
23
24
|
readonly ORDER: "OrderTable";
|
|
24
25
|
readonly ORDER_ADDRESS: "OrderAddressTable";
|
|
25
26
|
readonly ORDER_REVIEW: "OrderReviewTable";
|
|
@@ -79,6 +80,7 @@ export declare const TABLE_NAMES: {
|
|
|
79
80
|
readonly INFLUENCER_PROMO: string;
|
|
80
81
|
readonly INFLUENCER_REFERRAL: string;
|
|
81
82
|
readonly CATALOGUE_ITEMS: string;
|
|
83
|
+
readonly THIRD_PARTY_API_KEY: string;
|
|
82
84
|
readonly ORDER: string;
|
|
83
85
|
readonly ORDER_ADDRESS: string;
|
|
84
86
|
readonly ORDER_REVIEW: string;
|
|
@@ -26,6 +26,7 @@ exports.BASE_TABLE_NAMES = {
|
|
|
26
26
|
INFLUENCER_PROMO: 'InfluencerPromoTable',
|
|
27
27
|
INFLUENCER_REFERRAL: 'InfluencerReferralTable',
|
|
28
28
|
CATALOGUE_ITEMS: 'CatalogueItemsTable',
|
|
29
|
+
THIRD_PARTY_API_KEY: 'ThirdPartyApiKeyTable',
|
|
29
30
|
// Order Module Tables
|
|
30
31
|
ORDER: 'OrderTable',
|
|
31
32
|
ORDER_ADDRESS: 'OrderAddressTable',
|
|
@@ -100,6 +101,7 @@ exports.TABLE_NAMES = {
|
|
|
100
101
|
INFLUENCER_PROMO: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.INFLUENCER_PROMO),
|
|
101
102
|
INFLUENCER_REFERRAL: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.INFLUENCER_REFERRAL),
|
|
102
103
|
CATALOGUE_ITEMS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.CATALOGUE_ITEMS),
|
|
104
|
+
THIRD_PARTY_API_KEY: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.THIRD_PARTY_API_KEY),
|
|
103
105
|
// Order Module Tables
|
|
104
106
|
ORDER: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.ORDER),
|
|
105
107
|
ORDER_ADDRESS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.ORDER_ADDRESS),
|
|
@@ -136,4 +138,4 @@ exports.TABLE_NAMES = {
|
|
|
136
138
|
ACTIVITY_LOGS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.ACTIVITY_LOGS),
|
|
137
139
|
QUOTATIONS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.QUOTATIONS),
|
|
138
140
|
};
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL3RhYmxlLW5hbWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlEQUFxRDtBQUVyRCxnREFBZ0Q7QUFDbkMsUUFBQSxnQkFBZ0IsR0FBRztJQUM1QixzQkFBc0I7SUFDdEIsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxPQUFPLEVBQUUsYUFBYTtJQUN0QixPQUFPLEVBQUUsY0FBYztJQUN2QixtQkFBbUIsRUFBRSx5QkFBeUI7SUFDOUMsT0FBTyxFQUFFLGNBQWM7SUFDdkIsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxrQkFBa0IsRUFBRSx1QkFBdUI7SUFDM0MsYUFBYSxFQUFFLG1CQUFtQjtJQUNsQyxvQkFBb0IsRUFBRSx5QkFBeUI7SUFDL0MsZUFBZSxFQUFFLHFCQUFxQjtJQUN0QyxjQUFjLEVBQUUsb0JBQW9CO0lBQ3BDLE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLGVBQWUsRUFBRSxxQkFBcUI7SUFDdEMscUJBQXFCLEVBQUUsMEJBQTBCO0lBQ2pELHFCQUFxQixFQUFFLDBCQUEwQjtJQUNqRCxnQkFBZ0IsRUFBRSxzQkFBc0I7SUFDeEMsb0JBQW9CLEVBQUUseUJBQXlCO0lBQy9DLFdBQVcsRUFBRSxpQkFBaUI7SUFDOUIsZ0JBQWdCLEVBQUUsc0JBQXNCO0lBQ3hDLG1CQUFtQixFQUFFLHlCQUF5QjtJQUM5QyxlQUFlLEVBQUUscUJBQXFCO0lBRXRDLHNCQUFzQjtJQUN0QixLQUFLLEVBQUUsWUFBWTtJQUNuQixhQUFhLEVBQUUsbUJBQW1CO0lBQ2xDLFlBQVksRUFBRSxrQkFBa0I7SUFDaEMsT0FBTyxFQUFFLGNBQWM7SUFDdkIsV0FBVyxFQUFFLGlCQUFpQjtJQUM5QixRQUFRLEVBQUUsZUFBZTtJQUN6QixZQUFZLEVBQUUsa0JBQWtCO0lBQ2hDLGNBQWMsRUFBRSxvQkFBb0I7SUFDcEMsV0FBVyxFQUFFLGlCQUFpQjtJQUU5Qix3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QUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyx3QkFBZ0IsQ0FBQyxLQUFLLENBQUM7SUFDNUQsSUFBSSxFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyx3QkFBZ0IsQ0FBQyxJQUFJLENBQUM7SUFDMUQsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyx3QkFBZ0IsQ0FBQyxRQUFRLENBQUM7SUFDbEUsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLHdCQUFnQixDQUFDLGdCQUFnQixDQUFDO0lBQ2xGLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsd0JBQWdCLENBQUMsSUFBSSxDQUFDO0lBQzFELE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsd0JBQWdCLENBQUMsTUFBTSxDQUFDO0lBQzlELGtCQUFrQixFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyx3QkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQztJQUN0RixTQUFTLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLHdCQUFnQixDQUFDLFNBQVMsQ0FBQztJQUVwRSx1QkFBdUI7SUFDdkIsYUFBYSxFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyx3QkFBZ0IsQ0FBQyxhQUFhLENBQUM7SUFDNUUsYUFBYSxFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyx3QkFBZ0IsQ0FBQyxhQUFhLENBQUM7SUFDNUUsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyx3QkFBZ0IsQ0FBQyxVQUFVLENBQUM7Q0FDaEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFiYXNlRmFjdG9yeSB9IGZyb20gJy4vZGF0YWJhc2UtZmFjdG9yeSc7XG5cbi8vIEJhc2UgdGFibGUgbmFtZXMgKHdpdGhvdXQgZW52aXJvbm1lbnQgcHJlZml4KVxuZXhwb3J0IGNvbnN0IEJBU0VfVEFCTEVfTkFNRVMgPSB7XG4gICAgLy8gQ3VzdG9tZXIgQXBwIFRhYmxlc1xuICAgIEFQUF9GRUVEQkFDSzogJ0FwcEZlZWRiYWNrVGFibGUnLFxuICAgIExTUV9DUk06ICdMc3FDcm1UYWJsZScsXG4gICAgQ1VUTEVSWTogJ0N1dGxlcnlUYWJsZScsXG4gICAgSVRFTV9BQ0NPTVBBTklNRU5UUzogJ0l0ZW1BY2NvbXBhbmltZW50c1RhYmxlJyxcbiAgICBDVUlTSU5FOiAnQ3Vpc2luZVRhYmxlJyxcbiAgICBUSUVSX0RFVEFJTFM6ICdUaWVyRGV0YWlsc1RhYmxlJyxcbiAgICBVU0VSX09SREVSX1NVTU1BUlk6ICdVc2VyT3JkZXJTdW1tYXJ5VGFibGUnLFxuICAgIFRJRVJfUkVGRVJSQUw6ICdUaWVyUmVmZXJyYWxUYWJsZScsXG4gICAgVVNFUl9BRERSRVNTX1JFUVVFU1Q6ICdVc2VyQWRkcmVzc1JlcXVlc3RUYWJsZScsXG4gICAgQ09NTU9OX0ZFRURCQUNLOiAnQ29tbW9uRmVlZGJhY2tUYWJsZScsXG4gICAgR1VFU1RfRkVFREJBQ0s6ICdHdWVzdEZlZWRiYWNrVGFibGUnLFxuICAgIENPVU5URVI6ICdDb3VudGVyVGFibGUnLFxuICAgIFJFUVVFU1RfSU5WT0lDRTogJ1JlcXVlc3RJbnZvaWNlVGFibGUnLFxuICAgIFBMQVRURVJfU0VBUkNIX0VWRU5UUzogJ1BsYXR0ZXJTZWFyY2hFdmVudHNUYWJsZScsXG4gICAgT1JERVJfUkVWSUVXX0ZFRURCQUNLOiAnT3JkZXJSZXZpZXdGZWVkYmFja1RhYmxlJyxcbiAgICBDQVRFUklOR19SRVFVRVNUOiAnQ2F0ZXJpbmdSZXF1ZXN0VGFibGUnLFxuICAgIEZNUF9SRVFVRVNUX0NBTExCQUNLOiAnRm1wUmVxdWVzdENhbGxiYWNrVGFibGUnLFxuICAgIFBMQVRURVJfRklUOiAnUGxhdHRlckZpdFRhYmxlJyxcbiAgICBJTkZMVUVOQ0VSX1BST01POiAnSW5mbHVlbmNlclByb21vVGFibGUnLFxuICAgIElORkxVRU5DRVJfUkVGRVJSQUw6ICdJbmZsdWVuY2VyUmVmZXJyYWxUYWJsZScsXG4gICAgQ0FUQUxPR1VFX0lURU1TOiAnQ2F0YWxvZ3VlSXRlbXNUYWJsZScsXG5cbiAgICAvLyBPcmRlciBNb2R1bGUgVGFibGVzXG4gICAgT1JERVI6ICdPcmRlclRhYmxlJyxcbiAgICBPUkRFUl9BRERSRVNTOiAnT3JkZXJBZGRyZXNzVGFibGUnLFxuICAgIE9SREVSX1JFVklFVzogJ09yZGVyUmV2aWV3VGFibGUnLFxuICAgIFBBWU1FTlQ6ICdQYXltZW50VGFibGUnLFxuICAgIFBMQVRFX09SREVSOiAnUGxhdGVPcmRlclRhYmxlJyxcbiAgICBUUkFDS0lORzogJ1RyYWNraW5nVGFibGUnLFxuICAgIFVTRVJfQUREUkVTUzogJ1VzZXJBZGRyZXNzVGFibGUnLFxuICAgIFVTRVJfU1BFQ0lGSUNTOiAnVXNlclNwZWNpZmljc1RhYmxlJyxcbiAgICBCQlFfU0tFV0VSUzogJ0JicVNrZXdlcnNUYWJsZScsXG5cbiAgICAvLyBPdGhlciBDdXN0b21lciBUYWJsZXNcbiAgICBBRERfT05TOiAnQWRkT25zVGFibGUnLFxuICAgIEJBTktfREVUQUlMUzogJ0JhbmtEZXRhaWxzVGFibGUnLFxuICAgIENBUlQ6ICdDYXJ0VGFibGUnLFxuICAgIENBUlRfQ0FURUdPUklFUzogJ0NhcnRDYXRlZ29yaWVzVGFibGUnLFxuICAgIENBVEVHT1JZOiAnQ2F0ZWdvcnlUYWJsZScsXG4gICAgQ0FURVJJTkc6ICdDYXRlcmluZ1RhYmxlJyxcbiAgICBDT05URU5UOiAnQ29udGVudFRhYmxlJyxcbiAgICBDT1VQT05TOiAnQ291cG9uc1RhYmxlJyxcbiAgICBERUZBVUxUX1BMQVRURVI6ICdEZWZhdWx0UGxhdHRlclRhYmxlJyxcbiAgICBERUZBVUxUX1BMQVRURVJfQ0FURUdPUklFUzogJ0RlZmF1bHRQbGF0dGVyQ2F0ZWdvcmllc1RhYmxlJyxcbiAgICBERUZBVUxUX1BMQVRURVJfSVRFTVM6ICdEZWZhdWx0UGxhdHRlckl0ZW1zVGFibGUnLFxuICAgIEVWRU5UX0VYRUNVVElWRVM6ICdFdmVudEV4ZWN1dGl2ZXNUYWJsZScsXG4gICAgSVRFTVM6ICdJdGVtc1RhYmxlJyxcbiAgICBMRUFEOiAnTGVhZFRhYmxlJyxcbiAgICBPQ0NBU0lPTjogJ09jY2FzaW9uVGFibGUnLFxuICAgIFJFRkVSUkFMX0NPTlRFTlQ6ICdSZWZlcnJhbENvbnRlbnRUYWJsZScsXG4gICAgVVNFUjogJ1VzZXJUYWJsZScsXG4gICAgV0FMTEVUOiAnV2FsbGV0VGFibGUnLFxuICAgIFdBTExFVF9UUkFOU0FDVElPTjogJ1dhbGxldFRyYW5zYWN0aW9uVGFibGUnLFxuICAgIFdJVEhEUkFXTjogJ1dpdGhkcmF3blRhYmxlJyxcblxuICAgIC8vIEludGVybmFsIFVzZXIgVGFibGVzXG4gICAgSU5URVJOQUxfVVNFUjogJ0ludGVybmFsVXNlclRhYmxlJyxcbiAgICBBQ1RJVklUWV9MT0dTOiAnQWN0aXZpdHlMb2dzVGFibGUnLFxuICAgIFFVT1RBVElPTlM6ICdRdW90YXRpb25zVGFibGUnLFxufSBhcyBjb25zdDtcblxuLy8gRW52aXJvbm1lbnQtYXdhcmUgdGFibGUgbmFtZSBnZXR0ZXJcbmV4cG9ydCBjbGFzcyBUYWJsZU5hbWVNYW5hZ2VyIHtcbiAgICBwdWJsaWMgc3RhdGljIGdldFRhYmxlTmFtZShiYXNlVGFibGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gRGF0YWJhc2VGYWN0b3J5LmdldFRhYmxlTmFtZShiYXNlVGFibGVOYW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldEFsbFRhYmxlTmFtZXMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IHRhYmxlTmFtZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAgICAgICBPYmplY3QuZW50cmllcyhCQVNFX1RBQkxFX05BTUVTKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgIHRhYmxlTmFtZXNba2V5XSA9IHRoaXMuZ2V0VGFibGVOYW1lKHZhbHVlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRhYmxlTmFtZXM7XG4gICAgfVxufVxuXG4vLyBFeHBvcnQgZW52aXJvbm1lbnQtYXdhcmUgdGFibGUgbmFtZXNcbmV4cG9ydCBjb25zdCBUQUJMRV9OQU1FUyA9IHtcbiAgICAvLyBDdXN0b21lciBBcHAgVGFibGVzXG4gICAgQVBQX0ZFRURCQUNLOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkFQUF9GRUVEQkFDSyksXG4gICAgTFNRX0NSTTogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5MU1FfQ1JNKSxcbiAgICBDVVRMRVJZOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNVVExFUlkpLFxuICAgIElURU1fQUNDT01QQU5JTUVOVFM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuSVRFTV9BQ0NPTVBBTklNRU5UUyksXG4gICAgQ1VJU0lORTogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DVUlTSU5FKSxcbiAgICBUSUVSX0RFVEFJTFM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVElFUl9ERVRBSUxTKSxcbiAgICBVU0VSX09SREVSX1NVTU1BUlk6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVVNFUl9PUkRFUl9TVU1NQVJZKSxcbiAgICBUSUVSX1JFRkVSUkFMOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlRJRVJfUkVGRVJSQUwpLFxuICAgIFVTRVJfQUREUkVTU19SRVFVRVNUOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlVTRVJfQUREUkVTU19SRVFVRVNUKSxcbiAgICBDT01NT05fRkVFREJBQ0s6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ09NTU9OX0ZFRURCQUNLKSxcbiAgICBHVUVTVF9GRUVEQkFDSzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5HVUVTVF9GRUVEQkFDSyksXG4gICAgQ09VTlRFUjogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DT1VOVEVSKSxcbiAgICBSRVFVRVNUX0lOVk9JQ0U6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuUkVRVUVTVF9JTlZPSUNFKSxcbiAgICBQTEFUVEVSX1NFQVJDSF9FVkVOVFM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuUExBVFRFUl9TRUFSQ0hfRVZFTlRTKSxcbiAgICBPUkRFUl9SRVZJRVdfRkVFREJBQ0s6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuT1JERVJfUkVWSUVXX0ZFRURCQUNLKSxcbiAgICBDQVRFUklOR19SRVFVRVNUOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNBVEVSSU5HX1JFUVVFU1QpLFxuICAgIEZNUF9SRVFVRVNUX0NBTExCQUNLOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkZNUF9SRVFVRVNUX0NBTExCQUNLKSxcbiAgICBQTEFUVEVSX0ZJVDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5QTEFUVEVSX0ZJVCksXG4gICAgSU5GTFVFTkNFUl9QUk9NTzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5JTkZMVUVOQ0VSX1BST01PKSxcbiAgICBJTkZMVUVOQ0VSX1JFRkVSUkFMOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLklORkxVRU5DRVJfUkVGRVJSQUwpLFxuICAgIENBVEFMT0dVRV9JVEVNUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DQVRBTE9HVUVfSVRFTVMpLFxuXG4gICAgLy8gT3JkZXIgTW9kdWxlIFRhYmxlc1xuICAgIE9SREVSOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLk9SREVSKSxcbiAgICBPUkRFUl9BRERSRVNTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLk9SREVSX0FERFJFU1MpLFxuICAgIE9SREVSX1JFVklFVzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5PUkRFUl9SRVZJRVcpLFxuICAgIFBBWU1FTlQ6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuUEFZTUVOVCksXG4gICAgUExBVEVfT1JERVI6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuUExBVEVfT1JERVIpLFxuICAgIFRSQUNLSU5HOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlRSQUNLSU5HKSxcbiAgICBVU0VSX0FERFJFU1M6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVVNFUl9BRERSRVNTKSxcbiAgICBVU0VSX1NQRUNJRklDUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5VU0VSX1NQRUNJRklDUyksXG4gICAgQkJRX1NLRVdFUlM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQkJRX1NLRVdFUlMpLFxuXG4gICAgLy8gT3RoZXIgQ3VzdG9tZXIgVGFibGVzXG4gICAgQUREX09OUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5BRERfT05TKSxcbiAgICBCQU5LX0RFVEFJTFM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQkFOS19ERVRBSUxTKSxcbiAgICBDQVJUOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNBUlQpLFxuICAgIENBUlRfQ0FURUdPUklFUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DQVJUX0NBVEVHT1JJRVMpLFxuICAgIENBVEVHT1JZOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNBVEVHT1JZKSxcbiAgICBDQVRFUklORzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DQVRFUklORyksXG4gICAgQ09OVEVOVDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DT05URU5UKSxcbiAgICBDT1VQT05TOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNPVVBPTlMpLFxuICAgIERFRkFVTFRfUExBVFRFUjogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5ERUZBVUxUX1BMQVRURVIpLFxuICAgIERFRkFVTFRfUExBVFRFUl9DQVRFR09SSUVTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkRFRkFVTFRfUExBVFRFUl9DQVRFR09SSUVTKSxcbiAgICBERUZBVUxUX1BMQVRURVJfSVRFTVM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuREVGQVVMVF9QTEFUVEVSX0lURU1TKSxcbiAgICBFVkVOVF9FWEVDVVRJVkVTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkVWRU5UX0VYRUNVVElWRVMpLFxuICAgIElURU1TOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLklURU1TKSxcbiAgICBMRUFEOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkxFQUQpLFxuICAgIE9DQ0FTSU9OOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLk9DQ0FTSU9OKSxcbiAgICBSRUZFUlJBTF9DT05URU5UOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlJFRkVSUkFMX0NPTlRFTlQpLFxuICAgIFVTRVI6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVVNFUiksXG4gICAgV0FMTEVUOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLldBTExFVCksXG4gICAgV0FMTEVUX1RSQU5TQUNUSU9OOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLldBTExFVF9UUkFOU0FDVElPTiksXG4gICAgV0lUSERSQVdOOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLldJVEhEUkFXTiksXG5cbiAgICAvLyBJbnRlcm5hbCBVc2VyIFRhYmxlc1xuICAgIElOVEVSTkFMX1VTRVI6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuSU5URVJOQUxfVVNFUiksXG4gICAgQUNUSVZJVFlfTE9HUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5BQ1RJVklUWV9MT0dTKSxcbiAgICBRVU9UQVRJT05TOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlFVT1RBVElPTlMpLFxufSBhcyBjb25zdDtcbiJdfQ==
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL3RhYmxlLW5hbWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlEQUFxRDtBQUVyRCxnREFBZ0Q7QUFDbkMsUUFBQSxnQkFBZ0IsR0FBRztJQUM1QixzQkFBc0I7SUFDdEIsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxPQUFPLEVBQUUsYUFBYTtJQUN0QixPQUFPLEVBQUUsY0FBYztJQUN2QixtQkFBbUIsRUFBRSx5QkFBeUI7SUFDOUMsT0FBTyxFQUFFLGNBQWM7SUFDdkIsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxrQkFBa0IsRUFBRSx1QkFBdUI7SUFDM0MsYUFBYSxFQUFFLG1CQUFtQjtJQUNsQyxvQkFBb0IsRUFBRSx5QkFBeUI7SUFDL0MsZUFBZSxFQUFFLHFCQUFxQjtJQUN0QyxjQUFjLEVBQUUsb0JBQW9CO0lBQ3BDLE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLGVBQWUsRUFBRSxxQkFBcUI7SUFDdEMscUJBQXFCLEVBQUUsMEJBQTBCO0lBQ2pELHFCQUFxQixFQUFFLDBCQUEwQjtJQUNqRCxnQkFBZ0IsRUFBRSxzQkFBc0I7SUFDeEMsb0JBQW9CLEVBQUUseUJBQXlCO0lBQy9DLFdBQVcsRUFBRSxpQkFBaUI7SUFDOUIsZ0JBQWdCLEVBQUUsc0JBQXNCO0lBQ3hDLG1CQUFtQixFQUFFLHlCQUF5QjtJQUM5QyxlQUFlLEVBQUUscUJBQXFCO0lBQ3RDLG1CQUFtQixFQUFFLHVCQUF1QjtJQUU1QyxzQkFBc0I7SUFDdEIsS0FBSyxFQUFFLFlBQVk7SUFDbkIsYUFBYSxFQUFFLG1CQUFtQjtJQUNsQyxZQUFZLEVBQUUsa0JBQWtCO0lBQ2hDLE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLFdBQVcsRUFBRSxpQkFBaUI7SUFDOUIsUUFBUSxFQUFFLGVBQWU7SUFDekIsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxjQUFjLEVBQUUsb0JBQW9CO0lBQ3BD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LHFCQUFxQixDQUFDO0lBQzVGLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyx3QkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQztJQUNsRixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLHdCQUFnQixDQUFDLEtBQUssQ0FBQztJQUM1RCxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLHdCQUFnQixDQUFDLElBQUksQ0FBQztJQUMxRCxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLHdCQUFnQixDQUFDLFFBQVEsQ0FBQztJQUNsRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsd0JBQWdCLENBQUMsZ0JBQWdCLENBQUM7SUFDbEYsSUFBSSxFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyx3QkFBZ0IsQ0FBQyxJQUFJLENBQUM7SUFDMUQsTUFBTSxFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyx3QkFBZ0IsQ0FBQyxNQUFNLENBQUM7SUFDOUQsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLHdCQUFnQixDQUFDLGtCQUFrQixDQUFDO0lBQ3RGLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsd0JBQWdCLENBQUMsU0FBUyxDQUFDO0lBRXBFLHVCQUF1QjtJQUN2QixhQUFhLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLHdCQUFnQixDQUFDLGFBQWEsQ0FBQztJQUM1RSxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLHdCQUFnQixDQUFDLGFBQWEsQ0FBQztJQUM1RSxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLHdCQUFnQixDQUFDLFVBQVUsQ0FBQztDQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YWJhc2VGYWN0b3J5IH0gZnJvbSAnLi9kYXRhYmFzZS1mYWN0b3J5JztcblxuLy8gQmFzZSB0YWJsZSBuYW1lcyAod2l0aG91dCBlbnZpcm9ubWVudCBwcmVmaXgpXG5leHBvcnQgY29uc3QgQkFTRV9UQUJMRV9OQU1FUyA9IHtcbiAgICAvLyBDdXN0b21lciBBcHAgVGFibGVzXG4gICAgQVBQX0ZFRURCQUNLOiAnQXBwRmVlZGJhY2tUYWJsZScsXG4gICAgTFNRX0NSTTogJ0xzcUNybVRhYmxlJyxcbiAgICBDVVRMRVJZOiAnQ3V0bGVyeVRhYmxlJyxcbiAgICBJVEVNX0FDQ09NUEFOSU1FTlRTOiAnSXRlbUFjY29tcGFuaW1lbnRzVGFibGUnLFxuICAgIENVSVNJTkU6ICdDdWlzaW5lVGFibGUnLFxuICAgIFRJRVJfREVUQUlMUzogJ1RpZXJEZXRhaWxzVGFibGUnLFxuICAgIFVTRVJfT1JERVJfU1VNTUFSWTogJ1VzZXJPcmRlclN1bW1hcnlUYWJsZScsXG4gICAgVElFUl9SRUZFUlJBTDogJ1RpZXJSZWZlcnJhbFRhYmxlJyxcbiAgICBVU0VSX0FERFJFU1NfUkVRVUVTVDogJ1VzZXJBZGRyZXNzUmVxdWVzdFRhYmxlJyxcbiAgICBDT01NT05fRkVFREJBQ0s6ICdDb21tb25GZWVkYmFja1RhYmxlJyxcbiAgICBHVUVTVF9GRUVEQkFDSzogJ0d1ZXN0RmVlZGJhY2tUYWJsZScsXG4gICAgQ09VTlRFUjogJ0NvdW50ZXJUYWJsZScsXG4gICAgUkVRVUVTVF9JTlZPSUNFOiAnUmVxdWVzdEludm9pY2VUYWJsZScsXG4gICAgUExBVFRFUl9TRUFSQ0hfRVZFTlRTOiAnUGxhdHRlclNlYXJjaEV2ZW50c1RhYmxlJyxcbiAgICBPUkRFUl9SRVZJRVdfRkVFREJBQ0s6ICdPcmRlclJldmlld0ZlZWRiYWNrVGFibGUnLFxuICAgIENBVEVSSU5HX1JFUVVFU1Q6ICdDYXRlcmluZ1JlcXVlc3RUYWJsZScsXG4gICAgRk1QX1JFUVVFU1RfQ0FMTEJBQ0s6ICdGbXBSZXF1ZXN0Q2FsbGJhY2tUYWJsZScsXG4gICAgUExBVFRFUl9GSVQ6ICdQbGF0dGVyRml0VGFibGUnLFxuICAgIElORkxVRU5DRVJfUFJPTU86ICdJbmZsdWVuY2VyUHJvbW9UYWJsZScsXG4gICAgSU5GTFVFTkNFUl9SRUZFUlJBTDogJ0luZmx1ZW5jZXJSZWZlcnJhbFRhYmxlJyxcbiAgICBDQVRBTE9HVUVfSVRFTVM6ICdDYXRhbG9ndWVJdGVtc1RhYmxlJyxcbiAgICBUSElSRF9QQVJUWV9BUElfS0VZOiAnVGhpcmRQYXJ0eUFwaUtleVRhYmxlJyxcblxuICAgIC8vIE9yZGVyIE1vZHVsZSBUYWJsZXNcbiAgICBPUkRFUjogJ09yZGVyVGFibGUnLFxuICAgIE9SREVSX0FERFJFU1M6ICdPcmRlckFkZHJlc3NUYWJsZScsXG4gICAgT1JERVJfUkVWSUVXOiAnT3JkZXJSZXZpZXdUYWJsZScsXG4gICAgUEFZTUVOVDogJ1BheW1lbnRUYWJsZScsXG4gICAgUExBVEVfT1JERVI6ICdQbGF0ZU9yZGVyVGFibGUnLFxuICAgIFRSQUNLSU5HOiAnVHJhY2tpbmdUYWJsZScsXG4gICAgVVNFUl9BRERSRVNTOiAnVXNlckFkZHJlc3NUYWJsZScsXG4gICAgVVNFUl9TUEVDSUZJQ1M6ICdVc2VyU3BlY2lmaWNzVGFibGUnLFxuICAgIEJCUV9TS0VXRVJTOiAnQmJxU2tld2Vyc1RhYmxlJyxcblxuICAgIC8vIE90aGVyIEN1c3RvbWVyIFRhYmxlc1xuICAgIEFERF9PTlM6ICdBZGRPbnNUYWJsZScsXG4gICAgQkFOS19ERVRBSUxTOiAnQmFua0RldGFpbHNUYWJsZScsXG4gICAgQ0FSVDogJ0NhcnRUYWJsZScsXG4gICAgQ0FSVF9DQVRFR09SSUVTOiAnQ2FydENhdGVnb3JpZXNUYWJsZScsXG4gICAgQ0FURUdPUlk6ICdDYXRlZ29yeVRhYmxlJyxcbiAgICBDQVRFUklORzogJ0NhdGVyaW5nVGFibGUnLFxuICAgIENPTlRFTlQ6ICdDb250ZW50VGFibGUnLFxuICAgIENPVVBPTlM6ICdDb3Vwb25zVGFibGUnLFxuICAgIERFRkFVTFRfUExBVFRFUjogJ0RlZmF1bHRQbGF0dGVyVGFibGUnLFxuICAgIERFRkFVTFRfUExBVFRFUl9DQVRFR09SSUVTOiAnRGVmYXVsdFBsYXR0ZXJDYXRlZ29yaWVzVGFibGUnLFxuICAgIERFRkFVTFRfUExBVFRFUl9JVEVNUzogJ0RlZmF1bHRQbGF0dGVySXRlbXNUYWJsZScsXG4gICAgRVZFTlRfRVhFQ1VUSVZFUzogJ0V2ZW50RXhlY3V0aXZlc1RhYmxlJyxcbiAgICBJVEVNUzogJ0l0ZW1zVGFibGUnLFxuICAgIExFQUQ6ICdMZWFkVGFibGUnLFxuICAgIE9DQ0FTSU9OOiAnT2NjYXNpb25UYWJsZScsXG4gICAgUkVGRVJSQUxfQ09OVEVOVDogJ1JlZmVycmFsQ29udGVudFRhYmxlJyxcbiAgICBVU0VSOiAnVXNlclRhYmxlJyxcbiAgICBXQUxMRVQ6ICdXYWxsZXRUYWJsZScsXG4gICAgV0FMTEVUX1RSQU5TQUNUSU9OOiAnV2FsbGV0VHJhbnNhY3Rpb25UYWJsZScsXG4gICAgV0lUSERSQVdOOiAnV2l0aGRyYXduVGFibGUnLFxuXG4gICAgLy8gSW50ZXJuYWwgVXNlciBUYWJsZXNcbiAgICBJTlRFUk5BTF9VU0VSOiAnSW50ZXJuYWxVc2VyVGFibGUnLFxuICAgIEFDVElWSVRZX0xPR1M6ICdBY3Rpdml0eUxvZ3NUYWJsZScsXG4gICAgUVVPVEFUSU9OUzogJ1F1b3RhdGlvbnNUYWJsZScsXG59IGFzIGNvbnN0O1xuXG4vLyBFbnZpcm9ubWVudC1hd2FyZSB0YWJsZSBuYW1lIGdldHRlclxuZXhwb3J0IGNsYXNzIFRhYmxlTmFtZU1hbmFnZXIge1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0VGFibGVOYW1lKGJhc2VUYWJsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBEYXRhYmFzZUZhY3RvcnkuZ2V0VGFibGVOYW1lKGJhc2VUYWJsZU5hbWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0QWxsVGFibGVOYW1lcygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKEJBU0VfVEFCTEVfTkFNRVMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgdGFibGVOYW1lc1trZXldID0gdGhpcy5nZXRUYWJsZU5hbWUodmFsdWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGFibGVOYW1lcztcbiAgICB9XG59XG5cbi8vIEV4cG9ydCBlbnZpcm9ubWVudC1hd2FyZSB0YWJsZSBuYW1lc1xuZXhwb3J0IGNvbnN0IFRBQkxFX05BTUVTID0ge1xuICAgIC8vIEN1c3RvbWVyIEFwcCBUYWJsZXNcbiAgICBBUFBfRkVFREJBQ0s6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQVBQX0ZFRURCQUNLKSxcbiAgICBMU1FfQ1JNOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkxTUV9DUk0pLFxuICAgIENVVExFUlk6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ1VUTEVSWSksXG4gICAgSVRFTV9BQ0NPTVBBTklNRU5UUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5JVEVNX0FDQ09NUEFOSU1FTlRTKSxcbiAgICBDVUlTSU5FOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNVSVNJTkUpLFxuICAgIFRJRVJfREVUQUlMUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5USUVSX0RFVEFJTFMpLFxuICAgIFVTRVJfT1JERVJfU1VNTUFSWTogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5VU0VSX09SREVSX1NVTU1BUlkpLFxuICAgIFRJRVJfUkVGRVJSQUw6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVElFUl9SRUZFUlJBTCksXG4gICAgVVNFUl9BRERSRVNTX1JFUVVFU1Q6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVVNFUl9BRERSRVNTX1JFUVVFU1QpLFxuICAgIENPTU1PTl9GRUVEQkFDSzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DT01NT05fRkVFREJBQ0spLFxuICAgIEdVRVNUX0ZFRURCQUNLOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkdVRVNUX0ZFRURCQUNLKSxcbiAgICBDT1VOVEVSOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNPVU5URVIpLFxuICAgIFJFUVVFU1RfSU5WT0lDRTogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5SRVFVRVNUX0lOVk9JQ0UpLFxuICAgIFBMQVRURVJfU0VBUkNIX0VWRU5UUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5QTEFUVEVSX1NFQVJDSF9FVkVOVFMpLFxuICAgIE9SREVSX1JFVklFV19GRUVEQkFDSzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5PUkRFUl9SRVZJRVdfRkVFREJBQ0spLFxuICAgIENBVEVSSU5HX1JFUVVFU1Q6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ0FURVJJTkdfUkVRVUVTVCksXG4gICAgRk1QX1JFUVVFU1RfQ0FMTEJBQ0s6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuRk1QX1JFUVVFU1RfQ0FMTEJBQ0spLFxuICAgIFBMQVRURVJfRklUOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlBMQVRURVJfRklUKSxcbiAgICBJTkZMVUVOQ0VSX1BST01POiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLklORkxVRU5DRVJfUFJPTU8pLFxuICAgIElORkxVRU5DRVJfUkVGRVJSQUw6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuSU5GTFVFTkNFUl9SRUZFUlJBTCksXG4gICAgQ0FUQUxPR1VFX0lURU1TOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNBVEFMT0dVRV9JVEVNUyksXG4gICAgVEhJUkRfUEFSVFlfQVBJX0tFWTogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5USElSRF9QQVJUWV9BUElfS0VZKSxcblxuICAgIC8vIE9yZGVyIE1vZHVsZSBUYWJsZXNcbiAgICBPUkRFUjogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5PUkRFUiksXG4gICAgT1JERVJfQUREUkVTUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5PUkRFUl9BRERSRVNTKSxcbiAgICBPUkRFUl9SRVZJRVc6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuT1JERVJfUkVWSUVXKSxcbiAgICBQQVlNRU5UOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlBBWU1FTlQpLFxuICAgIFBMQVRFX09SREVSOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlBMQVRFX09SREVSKSxcbiAgICBUUkFDS0lORzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5UUkFDS0lORyksXG4gICAgVVNFUl9BRERSRVNTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlVTRVJfQUREUkVTUyksXG4gICAgVVNFUl9TUEVDSUZJQ1M6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVVNFUl9TUEVDSUZJQ1MpLFxuICAgIEJCUV9TS0VXRVJTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkJCUV9TS0VXRVJTKSxcblxuICAgIC8vIE90aGVyIEN1c3RvbWVyIFRhYmxlc1xuICAgIEFERF9PTlM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQUREX09OUyksXG4gICAgQkFOS19ERVRBSUxTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkJBTktfREVUQUlMUyksXG4gICAgQ0FSVDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DQVJUKSxcbiAgICBDQVJUX0NBVEVHT1JJRVM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ0FSVF9DQVRFR09SSUVTKSxcbiAgICBDQVRFR09SWTogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DQVRFR09SWSksXG4gICAgQ0FURVJJTkc6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ0FURVJJTkcpLFxuICAgIENPTlRFTlQ6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ09OVEVOVCksXG4gICAgQ09VUE9OUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DT1VQT05TKSxcbiAgICBERUZBVUxUX1BMQVRURVI6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuREVGQVVMVF9QTEFUVEVSKSxcbiAgICBERUZBVUxUX1BMQVRURVJfQ0FURUdPUklFUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5ERUZBVUxUX1BMQVRURVJfQ0FURUdPUklFUyksXG4gICAgREVGQVVMVF9QTEFUVEVSX0lURU1TOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkRFRkFVTFRfUExBVFRFUl9JVEVNUyksXG4gICAgRVZFTlRfRVhFQ1VUSVZFUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5FVkVOVF9FWEVDVVRJVkVTKSxcbiAgICBJVEVNUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5JVEVNUyksXG4gICAgTEVBRDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5MRUFEKSxcbiAgICBPQ0NBU0lPTjogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5PQ0NBU0lPTiksXG4gICAgUkVGRVJSQUxfQ09OVEVOVDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5SRUZFUlJBTF9DT05URU5UKSxcbiAgICBVU0VSOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlVTRVIpLFxuICAgIFdBTExFVDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5XQUxMRVQpLFxuICAgIFdBTExFVF9UUkFOU0FDVElPTjogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5XQUxMRVRfVFJBTlNBQ1RJT04pLFxuICAgIFdJVEhEUkFXTjogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5XSVRIRFJBV04pLFxuXG4gICAgLy8gSW50ZXJuYWwgVXNlciBUYWJsZXNcbiAgICBJTlRFUk5BTF9VU0VSOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLklOVEVSTkFMX1VTRVIpLFxuICAgIEFDVElWSVRZX0xPR1M6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQUNUSVZJVFlfTE9HUyksXG4gICAgUVVPVEFUSU9OUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5RVU9UQVRJT05TKSxcbn0gYXMgY29uc3Q7XG4iXX0=
|
|
@@ -68,6 +68,10 @@ export declare class PlateModel extends BaseModel {
|
|
|
68
68
|
applicableLiveCounterCharge: number;
|
|
69
69
|
totalSkewerAddonsCost?: number;
|
|
70
70
|
skewerAddons?: SkewerAddonsOnOrder[];
|
|
71
|
+
defaultValues: IsDefaultValue;
|
|
72
|
+
}
|
|
73
|
+
export declare class IsDefaultValue {
|
|
74
|
+
isdefaultEventTime: boolean;
|
|
71
75
|
}
|
|
72
76
|
export declare class SkewerAddonsOnOrder {
|
|
73
77
|
itemId: string;
|
|
@@ -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.AccompanimentsDetails = exports.ItemDetails = exports.Item = exports.Category = exports.AddonsItems = exports.AddonsCategory = exports.CutleryItem = exports.LiveCounterDetails = exports.SkewerAddonsOnOrder = exports.PlateModel = void 0;
|
|
12
|
+
exports.AccompanimentsDetails = exports.ItemDetails = exports.Item = exports.Category = exports.AddonsItems = exports.AddonsCategory = exports.CutleryItem = exports.LiveCounterDetails = exports.SkewerAddonsOnOrder = exports.IsDefaultValue = exports.PlateModel = void 0;
|
|
13
13
|
const annotations_1 = require("@nova-odm/annotations");
|
|
14
14
|
const base_model_1 = require("../../../base-model");
|
|
15
15
|
let PlateModel = class PlateModel extends base_model_1.BaseModel {
|
|
@@ -289,9 +289,21 @@ __decorate([
|
|
|
289
289
|
(0, annotations_1.attribute)(),
|
|
290
290
|
__metadata("design:type", Array)
|
|
291
291
|
], PlateModel.prototype, "skewerAddons", void 0);
|
|
292
|
+
__decorate([
|
|
293
|
+
(0, annotations_1.attribute)(),
|
|
294
|
+
__metadata("design:type", IsDefaultValue)
|
|
295
|
+
], PlateModel.prototype, "defaultValues", void 0);
|
|
292
296
|
exports.PlateModel = PlateModel = __decorate([
|
|
293
297
|
(0, annotations_1.table)("PlateOrdersTable")
|
|
294
298
|
], PlateModel);
|
|
299
|
+
// To handle the default values of the plate order eventTime
|
|
300
|
+
class IsDefaultValue {
|
|
301
|
+
}
|
|
302
|
+
exports.IsDefaultValue = IsDefaultValue;
|
|
303
|
+
__decorate([
|
|
304
|
+
(0, annotations_1.attribute)(),
|
|
305
|
+
__metadata("design:type", Boolean)
|
|
306
|
+
], IsDefaultValue.prototype, "isdefaultEventTime", void 0);
|
|
295
307
|
class SkewerAddonsOnOrder {
|
|
296
308
|
}
|
|
297
309
|
exports.SkewerAddonsOnOrder = SkewerAddonsOnOrder;
|
|
@@ -642,4 +654,4 @@ __decorate([
|
|
|
642
654
|
(0, annotations_1.attribute)(),
|
|
643
655
|
__metadata("design:type", Number)
|
|
644
656
|
], AccompanimentsDetails.prototype, "boneItemPrice", void 0);
|
|
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=
|
|
657
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGUtb3JkZXItbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3VzdG9tZXItdXNlci9vcmRlci1tb2R1bGUvcGxhdGUtb3JkZXIvcGxhdGUtb3JkZXItbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsdURBQStFO0FBQy9FLG9EQUFnRDtBQUl6QyxJQUFNLFVBQVUsR0FBaEIsTUFBTSxVQUFXLFNBQVEsc0JBQVM7Q0FxTnhDLENBQUE7QUFyTlksZ0NBQVU7QUFFbkI7SUFEQyxJQUFBLGtDQUFvQixFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDOzsyQ0FDekI7QUFHaEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzBEQUNvQjtBQUtoQztJQUhDLElBQUEsdUJBQVMsRUFBQztRQUNQLHNCQUFzQixFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRO0tBQ25FLENBQUM7OzJDQUNjO0FBR2hCO0lBREMsSUFBQSx1QkFBUyxHQUFFOztxREFDZTtBQUczQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7b0RBQ2U7QUFHM0I7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzZDQUNNO0FBR2xCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzsrQ0FDUTtBQUdwQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7OENBQ1E7QUFHcEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O2tEQUNXO0FBR3ZCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzs0Q0FDSztBQUdqQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7b0RBQ2E7QUFHekI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzhDQUNPO0FBR25CO0lBREMsSUFBQSx1QkFBUyxHQUFFOztpREFDVTtBQUd0QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7MkRBQ29CO0FBR2hDO0lBREMsSUFBQSx1QkFBUyxHQUFFOzs4Q0FDTztBQUduQjtJ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QUdyQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7OENBQ007QUFHbEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O2lEQUNTO0FBR3JCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzttREFDYTtBQUd6QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7a0RBQ1c7QUFHdkI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O21EQUM0QjtBQUc1QyxNQUFhLHFCQUFxQjtDQWlDakM7QUFqQ0Qsc0RBaUNDO0FBL0JHO0lBREMsSUFBQSx1QkFBUyxHQUFFOzs4REFDWTtBQUd4QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7Z0VBQ2M7QUFHMUI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O2dFQUNjO0FBRzFCO0lBREMsSUFBQSx1QkFBUyxHQUFFOztxREFDSTtBQUdoQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7dURBQ007QUFHbEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzJEQUNTO0FBR3JCO0lBREMsSUFBQSx1QkFBUyxHQUFFOztpRUFDZTtBQUczQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7K0RBQ2E7QUFHekI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O3dEQUNNO0FBR2xCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzs2REFDYTtBQUd6QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7NERBQ1ciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhdHRyaWJ1dGUsIGF1dG9HZW5lcmF0ZWRIYXNoS2V5LCB0YWJsZSB9IGZyb20gXCJAbm92YS1vZG0vYW5ub3RhdGlvbnNcIjtcbmltcG9ydCB7IEJhc2VNb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9iYXNlLW1vZGVsXCI7XG5cblxuQHRhYmxlKFwiUGxhdGVPcmRlcnNUYWJsZVwiKVxuZXhwb3J0IGNsYXNzIFBsYXRlTW9kZWwgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICAgIEBhdXRvR2VuZXJhdGVkSGFzaEtleSh7IHR5cGU6IFwiU3RyaW5nXCIgfSlcbiAgICBwbGF0ZUlkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICByZWZlcmVuY2VkUGxhdGVPcmRlcklkPzogc3RyaW5nOyAvLyBSZWZlcmVuY2VkIHBsYXRlIG9yZGVyIElEIChzb3VyY2UvcGFyZW50IHBsYXRlOyBvcmlnaW5hbCBwbGF0ZUlkKVxuXG4gICAgQGF0dHJpYnV0ZSh7XG4gICAgICAgIGluZGV4S2V5Q29uZmlndXJhdGlvbnM6IHsgXCJvcmRlckluZGV4XCI6IFwiSEFTSFwiIH0sIHR5cGU6ICdTdHJpbmcnXG4gICAgfSlcbiAgICBvcmRlcklkOiBzdHJpbmc7IC8vIEZvcmVpZ24ga2V5IHRvIGFzc29jaWF0ZSB0aGUgcGxhdGUgd2l0aCBhbiBvcmRlclxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcmVmZXJlbmNlZE9yZGVySWQ/OiBzdHJpbmc7IC8vIFJlZmVyZW5jZWQgb3JkZXIgSUQgKHNvdXJjZS9wYXJlbnQgb3JkZXIpXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpc1VwZGF0ZWRQbGF0dGVyPzogYm9vbGVhbjsgLy8gSW5kZXggb2YgdGhlIHBsYXRlIGluIHRoZSBvcmRlclxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcGxhdGVOYW1lOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBwbGF0dGVyVHlwZTogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcGxhdGVJbWFnZT86IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHBsYXR0ZXJTdWJUeXBlOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBtZWFsVGltZTogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZGVmYXVsdFBsYXR0ZXJJZDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgdG90YWxJdGVtczogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcHJpY2VQZXJQbGF0ZTogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZGlzY291bnRlZFByaWNlUGVyUGxhdGU6IG51bWJlcjsgLy8gMTEtMTItMjAyNFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZ3Vlc3RDb3VudDogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZXZlbnREYXRlOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBmb29kSW5zdHJ1Y3Rpb25zPzogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgdGltZUluc3RydWN0aW9ucz86IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGV2ZW50VGltZTogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgc2VydmljZVR5cGU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFkZHJlc3NJZDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgc2VydmljZVByaWNlOiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBkaXNjb3VudGVkU2VydmljZVByaWNlOiBudW1iZXI7IC8vIDExLTEyLTIwMjRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHRvdGFsUHJpY2U6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIG1lbnVUeXBlOiBzdHJpbmc7IC8vIFYyIFZFRywgTk9OVkVHLCBTQVBSQVRFRFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZGlzY291bnRlZFRvdGFsUHJpY2U6IG51bWJlcjsgLy8gMTEtMTItMjAyNFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZGlzY291bnRSZXdhcmRWYWx1ZTogbnVtYmVyOyAvLyBWMlxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZGVsaXZlcnlGZWVzOiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBkZWxpdmVyeVNlcnZpY2U/OiBzdHJpbmc7IC8vIFYyIFBSRU1JVU0sIFNUQU5EQVJELCBET09SU1RFUFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZGVsaXZlcnlGZWVEaWZmcmVuY2VGb3IyMEtNOiBudW1iZXI7IC8vIFNwcmludCA1IG5ldyBrZXkgQWRkZWRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHBhY2thZ2luZ0NoYXJnZTogbnVtYmVyOyAvLyBTcHJpbnQgNSBuZXcga2V5IEFkZGVkXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBnc3Q6IG51bWJlcjsgLy8gU3ByaW50IDUgbmV3IGtleSBBZGRlZFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgc2F2ZWRBbW91bnQ6IG51bWJlcjsgLy8gU3ByaW50IDUgbmV3IGtleSBBZGRlZFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcXVhbnRpdHlDaGFuZ2VkOiBzdHJpbmc7IC8vMDMtMTItMjAyNFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgb2NjYXNzaW9uVHlwZTogc3RyaW5nOyAvLzAzLTEyLTIwMjRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHB1cmVWZWdHdWVzdD86IG51bWJlcjsgLy8wMy0xMi0yMDI0XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBzcGljeUxhdmVsPzogc3RyaW5nOyAvLzAzLTEyLTIwMjRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGNvbnN1bWVBbGNvaG9sPzogc3RyaW5nOyAvLzAzLTEyLTIwMjRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHRlbGxVc01vcmU/OiBzdHJpbmc7IC8vMDMtMTItMjAyNFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgZG9vclN0ZXBTZXJ2aWNlUHJpY2U/OiBudW1iZXI7IC8vMDctMTItMjAyNFxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcGxhdGVJbnZvaWNlVXJsPzogc3RyaW5nOyAvLyBTcHJpbnQgMSBuZXcga2V5IEFkZGVkIDIwLzEyLzIwMjRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGNhdGVnb3JpZXM6IENhdGVnb3J5W107IC8vIEFycmF5IG9mIENhdGVnb3J5IG9iamVjdHNcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFkZG9uc0l0ZW1zOiBBZGRvbnNDYXRlZ29yeVtdOyAvLyBWMlxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY3V0bGVyeUl0ZW1zOiBDdXRsZXJ5SXRlbVtdOyAvLyBWMlxuXG4gICAgLy8gQGF0dHJpYnV0ZSgpXG4gICAgLy8gem9ob0Jvb2tJZHM/OiBab2hvQm9va0lkcztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIG1lbnVPcmRlcklkPzogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYWRkb25zQWNjb21wYW5pbWVudHNDb3N0PzogbnVtYmVyOyAvLyBWMiBpbmNsdWRpbmcgbXVsdGlwbGljYXRpb24gb2YgZ3Vlc3QgY291bnRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGV4dHJhUXR5Q29zdD86IG51bWJlcjsgLy8gVjIgaW5jbHVkaW5nIG11bHRpcGxpY2F0aW9uIG9mIGd1ZXN0IGNvdW50XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBwcmVtaXVtSXRlbXNDb3N0PzogbnVtYmVyOyAvLyBWMiBpbmNsdWRpbmcgbXVsdGlwbGljYXRpb24gb2YgZ3Vlc3QgY291bnRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGN1dGxlcnlDb3N0PzogbnVtYmVyOyAvLyBWMiBpbmNsdWRpbmcgbXVsdGlwbGljYXRpb24gb2YgZ3Vlc3QgY291bnRcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGNyZWF0ZU93bj86IGJvb2xlYW47IC8vIFYyIC0gIHRydWUgfCBmYWxzZVxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY2FydElkPzogc3RyaW5nOyAvLyBWMiAtIENhcnQgSURcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGlzUGFydGlhbEdyaWxsPzogYm9vbGVhbjsgLy8gVjIgMTItMTItMjAyNVxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY2hhcmdlYWJsZUtpdHM/OiBudW1iZXI7IC8vIFYyIDEyLTEyLTIwMjVcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHByaWNlUGVyS2l0PzogbnVtYmVyOyAvLyBWMiAxMi0xMi0yMDI1XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBmcmVlS2l0cz86IG51bWJlcjsgLy8gVjIgMTItMTItMjAyNVxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgc2tld2Vyc0Nvc3Q/OiBudW1iZXI7IC8vIFYyIDE3LTEyLTIwMjVcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIG51bWJlck9mU2tld2Vycz86IG51bWJlcjsgLy8gVjIgMDctMDEtMjAyNlxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXNGTVBDcmVhdGVkPzogYm9vbGVhbjsgLy8gTmV3IEFkZGVkIDA3LTAzLTIwMjZcblxuICAgIC8vIGNhdGVyaW5nIGF0dHJpYnV0ZXNcbiAgICBAYXR0cmlidXRlKClcbiAgICBoZWxwZXJDb3VudD86IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGNhdGVyaW5nU2VydmljZVR5cGU/OiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjYXRlcmluZ1RyYW5zcG9ydGF0aW9uQ2hhcmdlPzogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY2F0ZXJpbmdTZXJ2aWNlQ2hhcmdlPzogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY2F0ZXJpbmdTZXJ2aWNlSG91cnM/OiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBvY2Nhc3Npb25MaXN0Pzogc3RyaW5nW107XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBsaXZlQ291bnRlckRldGFpbHM/OiBMaXZlQ291bnRlckRldGFpbHNbXTtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFwcGxpY2FibGVMaXZlQ291bnRlckNoYXJnZTpudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICB0b3RhbFNrZXdlckFkZG9uc0Nvc3Q/OiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBza2V3ZXJBZGRvbnM/OiBTa2V3ZXJBZGRvbnNPbk9yZGVyW107XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBkZWZhdWx0VmFsdWVzOiBJc0RlZmF1bHRWYWx1ZTtcbn1cblxuLy8gVG8gaGFuZGxlIHRoZSBkZWZhdWx0IHZhbHVlcyBvZiB0aGUgcGxhdGUgb3JkZXIgZXZlbnRUaW1lXG5leHBvcnQgY2xhc3MgSXNEZWZhdWx0VmFsdWUge1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGlzZGVmYXVsdEV2ZW50VGltZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFNrZXdlckFkZG9uc09uT3JkZXIge1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1JZDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbU5hbWU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1JbWFnZXNVcmw6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1UeXBlOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBza2V3ZXJRdHk6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHNrZXdlclF0eVVuaXQ6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHByaWNlUGVyU2tld2VyOiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBhY2NvbXBhbmltZW50cz86IEFjY29tcGFuaW1lbnRzRGV0YWlsc1tdO1xufVxuXG5cbmV4cG9ydCBjbGFzcyBMaXZlQ291bnRlckRldGFpbHMge1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGxpdmVDb3VudGVySWQ6IHN0cmluZztcbiAgICBAYXR0cmlidXRlKClcbiAgICBsaXZlQ291bnRlck5hbWU6IHN0cmluZztcbiAgICBAYXR0cmlidXRlKClcbiAgICBsaXZlQ291bnRlclR5cGU6IHN0cmluZzsgLy8gQ0hBQVRfQ09VTlRFUlxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGxpdmVDb3VudGVyUHJpY2VQZXJQZXJzb246IG51bWJlcjtcbiAgICBAYXR0cmlidXRlKClcbiAgICBsaXZlQ291bnRlckNvbWJpbmVkUHJpY2U6IG51bWJlcjtcbiAgICBAYXR0cmlidXRlKClcbiAgICBpbmNsdWRlZEJhdGNoU2l6ZTogbnVtYmVyOyAvLyAyLDQsNlxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1MaXN0OiBJdGVtRGV0YWlsc1tdO1xufVxuXG4vLyBWMiBOZXcgQWRkZWQgQ3V0bGVyeVxuZXhwb3J0IGNsYXNzIEN1dGxlcnlJdGVtIHtcbiAgICBAYXR0cmlidXRlKClcbiAgICBjdXRsZXJ5SWQ6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGN1dGxlcnlOYW1lOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjdXRsZXJ5UHJpY2U6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGN1dGxlcnlJbWFnZT86IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGN1dGxlcnlRdWFudGl0eTogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY3V0bGVyeVR5cGU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGN1dGxlcnlRdWFudGl0eVVuaXQ6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGN1dGxlcnlCYXNlUmF0aW86IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGlzSW5jbHVkZWQ6IGJvb2xlYW47XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpc1NlcnZpbmc6IGJvb2xlYW47XG59XG5cbi8vIFYyIE5ldyBBZGRlZCBBZGRvbnNcbmV4cG9ydCBjbGFzcyBBZGRvbnNDYXRlZ29yeSB7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY2F0ZWdvcnlJZDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY2F0ZWdvcnlOYW1lOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtczogQWRkb25zSXRlbXNbXTtcbn1cblxuLy8gVjIgTmV3IEFkZGVkIEFkZG9uc1xuZXhwb3J0IGNsYXNzIEFkZG9uc0l0ZW1zIHtcbiAgICBAYXR0cmlidXRlKClcbiAgICBhZGRvbklkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBhZGRvbk5hbWU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFkZG9uUHJpY2U6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFkZG9uSW1hZ2U/OiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBhZGRvblF1YW50aXR5OiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBhZGRvblR5cGU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFkZG9uUXVhbnRpdHlVbml0OiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBhZGRvbkJhc2VSYXRpbzogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXNCb25lbGVzc0l0ZW0/OiBib29sZWFuOyAvLyBWMlxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYm9uZUl0ZW1QcmljZT86IG51bWJlcjsgLy8gVjJcbn1cblxuZXhwb3J0IGNsYXNzIENhdGVnb3J5IHtcbiAgICBAYXR0cmlidXRlKClcbiAgICBjYXRlZ29yeUlkOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjYXRlZ29yeU5hbWU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGlzU2tld2VyQ2F0ZWdvcnk/OiBib29sZWFuOyAvLyBWMiAxMi0xMi0yMDI1XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBjYXRlZ29yeU9yZGVyPzogbnVtYmVyOyAvLyBWMiAxNy0xMi0yMDI1XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpc0NvbWJvQ2F0ZWdvcnk/OiBib29sZWFuOyAvLyBWMiAxNy0xMi0yMDI1XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtczogSXRlbVtdOyAvLyBBcnJheSBvZiBJdGVtIG9iamVjdHNcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHZlZ0l0ZW1zOiBJdGVtRGV0YWlsc1tdOyAvLyBWMlxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcHJlbWl1bVZlZ0l0ZW1zOiBJdGVtRGV0YWlsc1tdOyAvLyBWMlxuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgbm9uVmVnSXRlbXM6IEl0ZW1EZXRhaWxzW107IC8vIFYyXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBwcmVtaXVtTm9uVmVnSXRlbXM6IEl0ZW1EZXRhaWxzW107IC8vIFYyXG59XG5cbmV4cG9ydCBjbGFzcyBJdGVtIHtcbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtSWQ6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1OYW1lOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtUHJpY2U6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1UeXBlOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtUXVhbnRpdHk6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGJhc2VSYXRpbzogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcXVhbnRpdHlVbml0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBJdGVtRGV0YWlscyB7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcmVwbGFjZW1lbnRJdGVtSWQ/OiBzdHJpbmc7IC8vIFYyIDE3LTA0LTIwMjZcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIG9yaWdpbmFsSXRlbUlkPzogc3RyaW5nOyAvLyBWMiAxOC0wNC0yMDI2XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtSWQ6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1OYW1lOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtUHJpY2U6IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1UeXBlOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtSW1hZ2U/OiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtUGFydGlhbEdyaWxsUHJpY2U/OiBudW1iZXI7IC8vIFYyIDEyLTEyLTIwMjVcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1RdWFudGl0eTogbnVtYmVyO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYmFzZVJhdGlvOiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBxdWFudGl0eVVuaXQ6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGlzQm9uZWxlc3NJdGVtPzogYm9vbGVhbjsgLy8gVjJcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGJvbmVJdGVtUHJpY2U/OiBudW1iZXI7IC8vIFYyXG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBhY2NvbXBhbmltZW50czogQWNjb21wYW5pbWVudHNEZXRhaWxzW107XG59XG5cbmV4cG9ydCBjbGFzcyBBY2NvbXBhbmltZW50c0RldGFpbHMge1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFjY29tcGFuaW1lbnRJZDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYWNjb21wYW5pbWVudE5hbWU6IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGFjY29tcGFuaW1lbnRUeXBlOiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpc0ZyZWU6IGJvb2xlYW47XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBpbWFnZVVybD86IHN0cmluZztcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHF1YW50aXR5VW5pdDogc3RyaW5nO1xuXG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgYWNjb21wYW5pbWVudFByaWNlOiBudW1iZXI7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBhY2NvbXBhbmltZW50UXR5OiBzdHJpbmc7XG5cbiAgICBAYXR0cmlidXRlKClcbiAgICBiYXNlUmF0aW86IG51bWJlcjtcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGlzQm9uZWxlc3NJdGVtPzogYm9vbGVhbjsgLy8gVjJcblxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGJvbmVJdGVtUHJpY2U/OiBudW1iZXI7IC8vIFYyXG59Il19
|
|
@@ -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/OiBBdXRoQ29udGV4dFxuICAgICk6IFByb21pc2U8VGhpcmRQYXJ0eUFwaUtleT4gPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVBcGlLZXkoXG4gICAgICAgICAgICBwYXJ0bmVySWQsXG4gICAgICAgICAgICBhcGlLZXlJZCxcbiAgICAgICAgICAgIHsgc3RhdHVzOiBUSElSRF9QQVJUWV9BUElfS0VZX1NUQVRVUy5JTkFDVElWRSB9LFxuICAgICAgICAgICAgYXV0aENvbnRleHRcbiAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmUtZW5hYmxlcyBhIHByZXZpb3VzbHkgZGlzYWJsZWQga2V5IChgc3RhdHVzYCDihpIgYEFDVElWRWApLlxuICAgICAqXG4gICAgICogVXNlIHdoZW46IHJlc3RvcmluZyBwYXJ0bmVyIGFjY2VzcyBhZnRlciBzdXNwZW5zaW9uIHdpdGhvdXQgaXNzdWluZyBhIG5ldyBrZXkuXG4gICAgICovXG4gICAgYWN0aXZhdGUgPSBhc3luYyAoXG4gICAgICAgIHBhcnRuZXJJZDogc3RyaW5nLFxuICAgICAgICBhcGlLZXlJZDogc3RyaW5nLFxuICAgICAgICBhdXRoQ29udGV4dD86IEF1dGhDb250ZXh0XG4gICAgKTogUHJvbWlzZTxUaGlyZFBhcnR5QXBpS2V5PiA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUFwaUtleShcbiAgICAgICAgICAgIHBhcnRuZXJJZCxcbiAgICAgICAgICAgIGFwaUtleUlkLFxuICAgICAgICAgICAgeyBzdGF0dXM6IFRISVJEX1BBUlRZX0FQSV9LRVlfU1RBVFVTLkFDVElWRSB9LFxuICAgICAgICAgICAgYXV0aENvbnRleHRcbiAgICAgICAgKTtcbiAgICB9O1xufVxuXG5leHBvcnQgY29uc3QgdGhpcmRQYXJ0eUFwaUtleURhbyA9IG5ldyBUaGlyZFBhcnR5QXBpS2V5RGFvKCk7Il19
|
|
@@ -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;
|
|
@@ -0,0 +1,70 @@
|
|
|
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.convertToThirdPartyApiKeyModel = exports.ThirdPartyApiKeyModel = exports.THIRD_PARTY_API_KEY_STATUS = void 0;
|
|
7
|
+
const dynamoose_1 = __importDefault(require("dynamoose"));
|
|
8
|
+
const crypto_1 = require("crypto");
|
|
9
|
+
const base_dynamoose_model_1 = require("../../base-dynamoose-model");
|
|
10
|
+
const table_names_1 = require("../../config/table-names");
|
|
11
|
+
exports.THIRD_PARTY_API_KEY_STATUS = {
|
|
12
|
+
ACTIVE: "ACTIVE",
|
|
13
|
+
INACTIVE: "INACTIVE"
|
|
14
|
+
};
|
|
15
|
+
const thirdPartyApiKeySchema = new dynamoose_1.default.Schema({
|
|
16
|
+
partnerId: {
|
|
17
|
+
type: String,
|
|
18
|
+
hashKey: true,
|
|
19
|
+
required: true
|
|
20
|
+
},
|
|
21
|
+
partnerName: {
|
|
22
|
+
type: String,
|
|
23
|
+
required: true
|
|
24
|
+
},
|
|
25
|
+
apiKeyId: {
|
|
26
|
+
type: String,
|
|
27
|
+
rangeKey: true,
|
|
28
|
+
required: true,
|
|
29
|
+
default: () => (0, crypto_1.randomUUID)()
|
|
30
|
+
},
|
|
31
|
+
apiKeyHash: {
|
|
32
|
+
type: String,
|
|
33
|
+
required: true,
|
|
34
|
+
index: {
|
|
35
|
+
name: "apiKeyHashIndex",
|
|
36
|
+
type: "global"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
status: {
|
|
40
|
+
type: String,
|
|
41
|
+
required: true,
|
|
42
|
+
enum: [exports.THIRD_PARTY_API_KEY_STATUS.ACTIVE, exports.THIRD_PARTY_API_KEY_STATUS.INACTIVE],
|
|
43
|
+
default: exports.THIRD_PARTY_API_KEY_STATUS.ACTIVE,
|
|
44
|
+
index: {
|
|
45
|
+
name: "statusIndex",
|
|
46
|
+
type: "global"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
scopes: {
|
|
50
|
+
type: Array,
|
|
51
|
+
schema: [String],
|
|
52
|
+
required: true
|
|
53
|
+
},
|
|
54
|
+
expiresAt: {
|
|
55
|
+
type: Number
|
|
56
|
+
},
|
|
57
|
+
lastUsedAt: {
|
|
58
|
+
type: Number
|
|
59
|
+
},
|
|
60
|
+
...base_dynamoose_model_1.BASE_DYNAMOOSE_AUDIT_SCHEMA
|
|
61
|
+
}, {
|
|
62
|
+
saveUnknown: false,
|
|
63
|
+
timestamps: true
|
|
64
|
+
});
|
|
65
|
+
exports.ThirdPartyApiKeyModel = dynamoose_1.default.model(table_names_1.TABLE_NAMES.THIRD_PARTY_API_KEY, thirdPartyApiKeySchema, { create: false, waitForActive: false });
|
|
66
|
+
const convertToThirdPartyApiKeyModel = (input) => {
|
|
67
|
+
return new exports.ThirdPartyApiKeyModel(input);
|
|
68
|
+
};
|
|
69
|
+
exports.convertToThirdPartyApiKeyModel = convertToThirdPartyApiKeyModel;
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhpcmQtcGFydHktYXBpLWtleS1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXRuZXItdGhpcmQtcGFydHkvdGhpcmQtcGFydHktYXBpLWtleS90aGlyZC1wYXJ0eS1hcGkta2V5LW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDBEQUFrQztBQUNsQyxtQ0FBb0M7QUFDcEMscUVBQTZGO0FBQzdGLDBEQUF1RDtBQUUxQyxRQUFBLDBCQUEwQixHQUFHO0lBQ3RDLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFFBQVEsRUFBRSxVQUFVO0NBQ2QsQ0FBQztBQW9CWCxNQUFNLHNCQUFzQixHQUFHLElBQUksbUJBQVMsQ0FBQyxNQUFNLENBQy9DO0lBQ0ksU0FBUyxFQUFFO1FBQ1AsSUFBSSxFQUFFLE1BQU07UUFDWixPQUFPLEVBQUUsSUFBSTtRQUNiLFFBQVEsRUFBRSxJQUFJO0tBQ2pCO0lBQ0QsV0FBVyxFQUFFO1FBQ1QsSUFBSSxFQUFFLE1BQU07UUFDWixRQUFRLEVBQUUsSUFBSTtLQUNqQjtJQUNELFFBQVEsRUFBRTtRQUNOLElBQUksRUFBRSxNQUFNO1FBQ1osUUFBUSxFQUFFLElBQUk7UUFDZCxRQUFRLEVBQUUsSUFBSTtRQUNkLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFBLG1CQUFVLEdBQUU7S0FDOUI7SUFDRCxVQUFVLEVBQUU7UUFDUixJQUFJLEVBQUUsTUFBTTtRQUNaLFFBQVEsRUFBRSxJQUFJO1FBQ2QsS0FBSyxFQUFFO1lBQ0gsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixJQUFJLEVBQUUsUUFBUTtTQUNqQjtLQUNKO0lBQ0QsTUFBTSxFQUFFO1FBQ0osSUFBSSxFQUFFLE1BQU07UUFDWixRQUFRLEVBQUUsSUFBSTtRQUNkLElBQUksRUFBRSxDQUFDLGtDQUEwQixDQUFDLE1BQU0sRUFBRSxrQ0FBMEIsQ0FBQyxRQUFRLENBQUM7UUFDOUUsT0FBTyxFQUFFLGtDQUEwQixDQUFDLE1BQU07UUFDMUMsS0FBSyxFQUFFO1lBQ0gsSUFBSSxFQUFFLGFBQWE7WUFDbkIsSUFBSSxFQUFFLFFBQVE7U0FDakI7S0FDSjtJQUNELE1BQU0sRUFBRTtRQUNKLElBQUksRUFBRSxLQUFLO1FBQ1gsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2hCLFFBQVEsRUFBRSxJQUFJO0tBQ2pCO0lBQ0QsU0FBUyxFQUFFO1FBQ1AsSUFBSSxFQUFFLE1BQU07S0FDZjtJQUNELFVBQVUsRUFBRTtRQUNSLElBQUksRUFBRSxNQUFNO0tBQ2Y7SUFDRCxHQUFHLGtEQUEyQjtDQUNqQyxFQUNEO0lBQ0ksV0FBVyxFQUFFLEtBQUs7SUFDbEIsVUFBVSxFQUFFLElBQUk7Q0FDbkIsQ0FDSixDQUFDO0FBRVcsUUFBQSxxQkFBcUIsR0FBRyxtQkFBUyxDQUFDLEtBQUssQ0FDaEQseUJBQVcsQ0FBQyxtQkFBbUIsRUFDL0Isc0JBQXNCLEVBQ3RCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQzFDLENBQUM7QUFFSyxNQUFNLDhCQUE4QixHQUFHLENBQUMsS0FBcUQsRUFBRSxFQUFFO0lBQ3BHLE9BQU8sSUFBSSw2QkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1QyxDQUFDLENBQUM7QUFGVyxRQUFBLDhCQUE4QixrQ0FFekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZHluYW1vb3NlIGZyb20gXCJkeW5hbW9vc2VcIjtcbmltcG9ydCB7IHJhbmRvbVVVSUQgfSBmcm9tIFwiY3J5cHRvXCI7XG5pbXBvcnQgeyBCQVNFX0RZTkFNT09TRV9BVURJVF9TQ0hFTUEsIEJhc2VEeW5hbW9vc2VNb2RlbCB9IGZyb20gXCIuLi8uLi9iYXNlLWR5bmFtb29zZS1tb2RlbFwiO1xuaW1wb3J0IHsgVEFCTEVfTkFNRVMgfSBmcm9tIFwiLi4vLi4vY29uZmlnL3RhYmxlLW5hbWVzXCI7XG5cbmV4cG9ydCBjb25zdCBUSElSRF9QQVJUWV9BUElfS0VZX1NUQVRVUyA9IHtcbiAgICBBQ1RJVkU6IFwiQUNUSVZFXCIsXG4gICAgSU5BQ1RJVkU6IFwiSU5BQ1RJVkVcIlxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgVGhpcmRQYXJ0eUFwaUtleVN0YXR1cyA9XG4gICAgKHR5cGVvZiBUSElSRF9QQVJUWV9BUElfS0VZX1NUQVRVUylba2V5b2YgdHlwZW9mIFRISVJEX1BBUlRZX0FQSV9LRVlfU1RBVFVTXTtcblxuZXhwb3J0IGludGVyZmFjZSBUaGlyZFBhcnR5QXBpS2V5IGV4dGVuZHMgQmFzZUR5bmFtb29zZU1vZGVsIHtcbiAgICBwYXJ0bmVySWQ6IHN0cmluZztcbiAgICBwYXJ0bmVyTmFtZTogc3RyaW5nO1xuICAgIGFwaUtleUlkOiBzdHJpbmc7XG4gICAgYXBpS2V5SGFzaDogc3RyaW5nO1xuICAgIHN0YXR1czogVGhpcmRQYXJ0eUFwaUtleVN0YXR1cztcbiAgICBzY29wZXM6IHN0cmluZ1tdO1xuICAgIGV4cGlyZXNBdD86IG51bWJlcjtcbiAgICBsYXN0VXNlZEF0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBDcmVhdGVUaGlyZFBhcnR5QXBpS2V5SW5wdXQgPSBPbWl0PFRoaXJkUGFydHlBcGlLZXksIFwiYXBpS2V5SWRcIj4gJiB7XG4gICAgYXBpS2V5SWQ/OiBzdHJpbmc7XG59O1xuXG5jb25zdCB0aGlyZFBhcnR5QXBpS2V5U2NoZW1hID0gbmV3IGR5bmFtb29zZS5TY2hlbWEoXG4gICAge1xuICAgICAgICBwYXJ0bmVySWQ6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIGhhc2hLZXk6IHRydWUsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBwYXJ0bmVyTmFtZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgYXBpS2V5SWQ6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJhbmdlS2V5OiB0cnVlLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBkZWZhdWx0OiAoKSA9PiByYW5kb21VVUlEKClcbiAgICAgICAgfSxcbiAgICAgICAgYXBpS2V5SGFzaDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBpbmRleDoge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwiYXBpS2V5SGFzaEluZGV4XCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJnbG9iYWxcIlxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBzdGF0dXM6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgZW51bTogW1RISVJEX1BBUlRZX0FQSV9LRVlfU1RBVFVTLkFDVElWRSwgVEhJUkRfUEFSVFlfQVBJX0tFWV9TVEFUVVMuSU5BQ1RJVkVdLFxuICAgICAgICAgICAgZGVmYXVsdDogVEhJUkRfUEFSVFlfQVBJX0tFWV9TVEFUVVMuQUNUSVZFLFxuICAgICAgICAgICAgaW5kZXg6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcInN0YXR1c0luZGV4XCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJnbG9iYWxcIlxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBzY29wZXM6IHtcbiAgICAgICAgICAgIHR5cGU6IEFycmF5LFxuICAgICAgICAgICAgc2NoZW1hOiBbU3RyaW5nXSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIGV4cGlyZXNBdDoge1xuICAgICAgICAgICAgdHlwZTogTnVtYmVyXG4gICAgICAgIH0sXG4gICAgICAgIGxhc3RVc2VkQXQ6IHtcbiAgICAgICAgICAgIHR5cGU6IE51bWJlclxuICAgICAgICB9LFxuICAgICAgICAuLi5CQVNFX0RZTkFNT09TRV9BVURJVF9TQ0hFTUFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgc2F2ZVVua25vd246IGZhbHNlLFxuICAgICAgICB0aW1lc3RhbXBzOiB0cnVlXG4gICAgfVxuKTtcblxuZXhwb3J0IGNvbnN0IFRoaXJkUGFydHlBcGlLZXlNb2RlbCA9IGR5bmFtb29zZS5tb2RlbDxUaGlyZFBhcnR5QXBpS2V5PihcbiAgICBUQUJMRV9OQU1FUy5USElSRF9QQVJUWV9BUElfS0VZLFxuICAgIHRoaXJkUGFydHlBcGlLZXlTY2hlbWEsXG4gICAgeyBjcmVhdGU6IGZhbHNlLCB3YWl0Rm9yQWN0aXZlOiBmYWxzZSB9XG4pO1xuXG5leHBvcnQgY29uc3QgY29udmVydFRvVGhpcmRQYXJ0eUFwaUtleU1vZGVsID0gKGlucHV0OiBDcmVhdGVUaGlyZFBhcnR5QXBpS2V5SW5wdXQgfCBUaGlyZFBhcnR5QXBpS2V5KSA9PiB7XG4gICAgcmV0dXJuIG5ldyBUaGlyZFBhcnR5QXBpS2V5TW9kZWwoaW5wdXQpO1xufTtcbiJdfQ==
|
package/index.js
CHANGED
|
@@ -59,4 +59,6 @@ export { walletDao } from './dist/customer-user/wallet/wallet-dao';
|
|
|
59
59
|
export { WalletTransactionModel } from './dist/customer-user/wallet-transaction/wallet-transaction-model';
|
|
60
60
|
export { walletTransactionDao } from './dist/customer-user/wallet-transaction/wallet-transaction-dao';
|
|
61
61
|
export { WithdrawnModel } from './dist/customer-user/withdrawn/withdrawn-model';
|
|
62
|
-
export { withdrawnDao } from './dist/customer-user/withdrawn/withdrawn-dao';
|
|
62
|
+
export { withdrawnDao } from './dist/customer-user/withdrawn/withdrawn-dao';
|
|
63
|
+
export { ThirdPartyApiKeyModel } from './dist/patner-third-party/third-party-api-key/third-party-api-key-model';
|
|
64
|
+
export { thirdPartyApiKeyDao } from './dist/patner-third-party/third-party-api-key/third-party-api-key-dao';
|