cmp-aws-database 2.1.2-dev.60 → 2.1.2-dev.62

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.
@@ -24,6 +24,8 @@ export declare const BASE_TABLE_NAMES: {
24
24
  readonly TESTING_SESSION: "TestingSessionTable";
25
25
  readonly ITEMS_BUNDLE: "ItemsBundleTable";
26
26
  readonly LSQ_PRIORITY_UPDATION: "LsqPriorityUpdationTable";
27
+ readonly ELPHIE_SESSIONS: "elphie_sessions";
28
+ readonly ELPHIE_MESSAGES: "elphie_messages";
27
29
  readonly THIRD_PARTY_API_KEY: "ThirdPartyApiKeyTable";
28
30
  readonly ORDER: "OrderTable";
29
31
  readonly ORDER_ADDRESS: "OrderAddressTable";
@@ -88,6 +90,8 @@ export declare const TABLE_NAMES: {
88
90
  readonly TESTING_SESSION: string;
89
91
  readonly ITEMS_BUNDLE: string;
90
92
  readonly LSQ_PRIORITY_UPDATION: string;
93
+ readonly ELPHIE_SESSIONS: string;
94
+ readonly ELPHIE_MESSAGES: string;
91
95
  readonly THIRD_PARTY_API_KEY: string;
92
96
  readonly ORDER: string;
93
97
  readonly ORDER_ADDRESS: string;
@@ -30,6 +30,8 @@ exports.BASE_TABLE_NAMES = {
30
30
  TESTING_SESSION: 'TestingSessionTable',
31
31
  ITEMS_BUNDLE: 'ItemsBundleTable',
32
32
  LSQ_PRIORITY_UPDATION: 'LsqPriorityUpdationTable',
33
+ ELPHIE_SESSIONS: 'elphie_sessions',
34
+ ELPHIE_MESSAGES: 'elphie_messages',
33
35
  THIRD_PARTY_API_KEY: 'ThirdPartyApiKeyTable',
34
36
  // Order Module Tables
35
37
  ORDER: 'OrderTable',
@@ -109,6 +111,8 @@ exports.TABLE_NAMES = {
109
111
  TESTING_SESSION: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.TESTING_SESSION),
110
112
  ITEMS_BUNDLE: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.ITEMS_BUNDLE),
111
113
  LSQ_PRIORITY_UPDATION: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.LSQ_PRIORITY_UPDATION),
114
+ ELPHIE_SESSIONS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.ELPHIE_SESSIONS),
115
+ ELPHIE_MESSAGES: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.ELPHIE_MESSAGES),
112
116
  THIRD_PARTY_API_KEY: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.THIRD_PARTY_API_KEY),
113
117
  // Order Module Tables
114
118
  ORDER: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.ORDER),
@@ -146,4 +150,4 @@ exports.TABLE_NAMES = {
146
150
  ACTIVITY_LOGS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.ACTIVITY_LOGS),
147
151
  QUOTATIONS: TableNameManager.getTableName(exports.BASE_TABLE_NAMES.QUOTATIONS),
148
152
  };
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL3RhYmxlLW5hbWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlEQUFxRDtBQUVyRCxnREFBZ0Q7QUFDbkMsUUFBQSxnQkFBZ0IsR0FBRztJQUM1QixzQkFBc0I7SUFDdEIsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxPQUFPLEVBQUUsYUFBYTtJQUN0QixPQUFPLEVBQUUsY0FBYztJQUN2QixtQkFBbUIsRUFBRSx5QkFBeUI7SUFDOUMsT0FBTyxFQUFFLGNBQWM7SUFDdkIsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxrQkFBa0IsRUFBRSx1QkFBdUI7SUFDM0MsYUFBYSxFQUFFLG1CQUFtQjtJQUNsQyxvQkFBb0IsRUFBRSx5QkFBeUI7SUFDL0MsZUFBZSxFQUFFLHFCQUFxQjtJQUN0QyxjQUFjLEVBQUUsb0JBQW9CO0lBQ3BDLE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLGVBQWUsRUFBRSxxQkFBcUI7SUFDdEMscUJBQXFCLEVBQUUsMEJBQTBCO0lBQ2pELHFCQUFxQixFQUFFLDBCQUEwQjtJQUNqRCxnQkFBZ0IsRUFBRSxzQkFBc0I7SUFDeEMsb0JBQW9CLEVBQUUseUJBQXlCO0lBQy9DLFdBQVcsRUFBRSxpQkFBaUI7SUFDOUIsZ0JBQWdCLEVBQUUsc0JBQXNCO0lBQ3hDLG1CQUFtQixFQUFFLHlCQUF5QjtJQUM5QyxlQUFlLEVBQUUscUJBQXFCO0lBQ3RDLGNBQWMsRUFBRSxvQkFBb0I7SUFDcEMsZUFBZSxFQUFFLHFCQUFxQjtJQUN0QyxZQUFZLEVBQUUsa0JBQWtCO0lBQ2hDLHFCQUFxQixFQUFFLDBCQUEwQjtJQUNqRCxtQkFBbUIsRUFBRSx1QkFBdUI7SUFFNUMsc0JBQXNCO0lBQ3RCLEtBQUssRUFBRSxZQUFZO0lBQ25CLGFBQWEsRUFBRSxtQkFBbUI7SUFDbEMsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxPQUFPLEVBQUUsY0FBYztJ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QUM7SUFFcEUsdUJBQXVCO0lBQ3ZCLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsd0JBQWdCLENBQUMsYUFBYSxDQUFDO0lBQzVFLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsd0JBQWdCLENBQUMsYUFBYSxDQUFDO0lBQzVFLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsd0JBQWdCLENBQUMsVUFBVSxDQUFDO0NBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhYmFzZUZhY3RvcnkgfSBmcm9tICcuL2RhdGFiYXNlLWZhY3RvcnknO1xuXG4vLyBCYXNlIHRhYmxlIG5hbWVzICh3aXRob3V0IGVudmlyb25tZW50IHByZWZpeClcbmV4cG9ydCBjb25zdCBCQVNFX1RBQkxFX05BTUVTID0ge1xuICAgIC8vIEN1c3RvbWVyIEFwcCBUYWJsZXNcbiAgICBBUFBfRkVFREJBQ0s6ICdBcHBGZWVkYmFja1RhYmxlJyxcbiAgICBMU1FfQ1JNOiAnTHNxQ3JtVGFibGUnLFxuICAgIENVVExFUlk6ICdDdXRsZXJ5VGFibGUnLFxuICAgIElURU1fQUNDT01QQU5JTUVOVFM6ICdJdGVtQWNjb21wYW5pbWVudHNUYWJsZScsXG4gICAgQ1VJU0lORTogJ0N1aXNpbmVUYWJsZScsXG4gICAgVElFUl9ERVRBSUxTOiAnVGllckRldGFpbHNUYWJsZScsXG4gICAgVVNFUl9PUkRFUl9TVU1NQVJZOiAnVXNlck9yZGVyU3VtbWFyeVRhYmxlJyxcbiAgICBUSUVSX1JFRkVSUkFMOiAnVGllclJlZmVycmFsVGFibGUnLFxuICAgIFVTRVJfQUREUkVTU19SRVFVRVNUOiAnVXNlckFkZHJlc3NSZXF1ZXN0VGFibGUnLFxuICAgIENPTU1PTl9GRUVEQkFDSzogJ0NvbW1vbkZlZWRiYWNrVGFibGUnLFxuICAgIEdVRVNUX0ZFRURCQUNLOiAnR3Vlc3RGZWVkYmFja1RhYmxlJyxcbiAgICBDT1VOVEVSOiAnQ291bnRlclRhYmxlJyxcbiAgICBSRVFVRVNUX0lOVk9JQ0U6ICdSZXF1ZXN0SW52b2ljZVRhYmxlJyxcbiAgICBQTEFUVEVSX1NFQVJDSF9FVkVOVFM6ICdQbGF0dGVyU2VhcmNoRXZlbnRzVGFibGUnLFxuICAgIE9SREVSX1JFVklFV19GRUVEQkFDSzogJ09yZGVyUmV2aWV3RmVlZGJhY2tUYWJsZScsXG4gICAgQ0FURVJJTkdfUkVRVUVTVDogJ0NhdGVyaW5nUmVxdWVzdFRhYmxlJyxcbiAgICBGTVBfUkVRVUVTVF9DQUxMQkFDSzogJ0ZtcFJlcXVlc3RDYWxsYmFja1RhYmxlJyxcbiAgICBQTEFUVEVSX0ZJVDogJ1BsYXR0ZXJGaXRUYWJsZScsXG4gICAgSU5GTFVFTkNFUl9QUk9NTzogJ0luZmx1ZW5jZXJQcm9tb1RhYmxlJyxcbiAgICBJTkZMVUVOQ0VSX1JFRkVSUkFMOiAnSW5mbHVlbmNlclJlZmVycmFsVGFibGUnLFxuICAgIENBVEFMT0dVRV9JVEVNUzogJ0NhdGFsb2d1ZUl0ZW1zVGFibGUnLFxuICAgIEJST1dTRV9ISVNUT1JZOiAnQnJvd3NlSGlzdG9yeVRhYmxlJyxcbiAgICBURVNUSU5HX1NFU1NJT046ICdUZXN0aW5nU2Vzc2lvblRhYmxlJyxcbiAgICBJVEVNU19CVU5ETEU6ICdJdGVtc0J1bmRsZVRhYmxlJyxcbiAgICBMU1FfUFJJT1JJVFlfVVBEQVRJT046ICdMc3FQcmlvcml0eVVwZGF0aW9uVGFibGUnLFxuICAgIFRISVJEX1BBUlRZX0FQSV9LRVk6ICdUaGlyZFBhcnR5QXBpS2V5VGFibGUnLFxuXG4gICAgLy8gT3JkZXIgTW9kdWxlIFRhYmxlc1xuICAgIE9SREVSOiAnT3JkZXJUYWJsZScsXG4gICAgT1JERVJfQUREUkVTUzogJ09yZGVyQWRkcmVzc1RhYmxlJyxcbiAgICBPUkRFUl9SRVZJRVc6ICdPcmRlclJldmlld1RhYmxlJyxcbiAgICBQQVlNRU5UOiAnUGF5bWVudFRhYmxlJyxcbiAgICBQTEFURV9PUkRFUjogJ1BsYXRlT3JkZXJUYWJsZScsXG4gICAgVFJBQ0tJTkc6ICdUcmFja2luZ1RhYmxlJyxcbiAgICBVU0VSX0FERFJFU1M6ICdVc2VyQWRkcmVzc1RhYmxlJyxcbiAgICBVU0VSX1NQRUNJRklDUzogJ1VzZXJTcGVjaWZpY3NUYWJsZScsXG4gICAgQkJRX1NLRVdFUlM6ICdCYnFTa2V3ZXJzVGFibGUnLFxuXG4gICAgLy8gT3RoZXIgQ3VzdG9tZXIgVGFibGVzXG4gICAgQUREX09OUzogJ0FkZE9uc1RhYmxlJyxcbiAgICBCQU5LX0RFVEFJTFM6ICdCYW5rRGV0YWlsc1RhYmxlJyxcbiAgICBDQVJUOiAnQ2FydFRhYmxlJyxcbiAgICBDQVJUX0NBVEVHT1JJRVM6ICdDYXJ0Q2F0ZWdvcmllc1RhYmxlJyxcbiAgICBDQVRFR09SWTogJ0NhdGVnb3J5VGFibGUnLFxuICAgIENBVEVSSU5HOiAnQ2F0ZXJpbmdUYWJsZScsXG4gICAgQ09OVEVOVDogJ0NvbnRlbnRUYWJsZScsXG4gICAgQ09VUE9OUzogJ0NvdXBvbnNUYWJsZScsXG4gICAgREVGQVVMVF9QTEFUVEVSOiAnRGVmYXVsdFBsYXR0ZXJUYWJsZScsXG4gICAgREVGQVVMVF9QTEFUVEVSX0NBVEVHT1JJRVM6ICdEZWZhdWx0UGxhdHRlckNhdGVnb3JpZXNUYWJsZScsXG4gICAgREVGQVVMVF9QTEFUVEVSX0lURU1TOiAnRGVmYXVsdFBsYXR0ZXJJdGVtc1RhYmxlJyxcbiAgICBFVkVOVF9FWEVDVVRJVkVTOiAnRXZlbnRFeGVjdXRpdmVzVGFibGUnLFxuICAgIElURU1TOiAnSXRlbXNUYWJsZScsXG4gICAgTEVBRDogJ0xlYWRUYWJsZScsXG4gICAgT0NDQVNJT046ICdPY2Nhc2lvblRhYmxlJyxcbiAgICBSRUZFUlJBTF9DT05URU5UOiAnUmVmZXJyYWxDb250ZW50VGFibGUnLFxuICAgIFVTRVI6ICdVc2VyVGFibGUnLFxuICAgIFdBTExFVDogJ1dhbGxldFRhYmxlJyxcbiAgICBXQUxMRVRfVFJBTlNBQ1RJT046ICdXYWxsZXRUcmFuc2FjdGlvblRhYmxlJyxcbiAgICBXSVRIRFJBV046ICdXaXRoZHJhd25UYWJsZScsXG5cbiAgICAvLyBJbnRlcm5hbCBVc2VyIFRhYmxlc1xuICAgIElOVEVSTkFMX1VTRVI6ICdJbnRlcm5hbFVzZXJUYWJsZScsXG4gICAgQUNUSVZJVFlfTE9HUzogJ0FjdGl2aXR5TG9nc1RhYmxlJyxcbiAgICBRVU9UQVRJT05TOiAnUXVvdGF0aW9uc1RhYmxlJyxcbn0gYXMgY29uc3Q7XG5cbi8vIEVudmlyb25tZW50LWF3YXJlIHRhYmxlIG5hbWUgZ2V0dGVyXG5leHBvcnQgY2xhc3MgVGFibGVOYW1lTWFuYWdlciB7XG4gICAgcHVibGljIHN0YXRpYyBnZXRUYWJsZU5hbWUoYmFzZVRhYmxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIERhdGFiYXNlRmFjdG9yeS5nZXRUYWJsZU5hbWUoYmFzZVRhYmxlTmFtZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRBbGxUYWJsZU5hbWVzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICBjb25zdCB0YWJsZU5hbWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgICAgICAgT2JqZWN0LmVudHJpZXMoQkFTRV9UQUJMRV9OQU1FUykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICB0YWJsZU5hbWVzW2tleV0gPSB0aGlzLmdldFRhYmxlTmFtZSh2YWx1ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzO1xuICAgIH1cbn1cblxuLy8gRXhwb3J0IGVudmlyb25tZW50LWF3YXJlIHRhYmxlIG5hbWVzXG5leHBvcnQgY29uc3QgVEFCTEVfTkFNRVMgPSB7XG4gICAgLy8gQ3VzdG9tZXIgQXBwIFRhYmxlc1xuICAgIEFQUF9GRUVEQkFDSzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5BUFBfRkVFREJBQ0spLFxuICAgIExTUV9DUk06IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuTFNRX0NSTSksXG4gICAgQ1VUTEVSWTogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DVVRMRVJZKSxcbiAgICBJVEVNX0FDQ09NUEFOSU1FTlRTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLklURU1fQUNDT01QQU5JTUVOVFMpLFxuICAgIENVSVNJTkU6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ1VJU0lORSksXG4gICAgVElFUl9ERVRBSUxTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlRJRVJfREVUQUlMUyksXG4gICAgVVNFUl9PUkRFUl9TVU1NQVJZOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlVTRVJfT1JERVJfU1VNTUFSWSksXG4gICAgVElFUl9SRUZFUlJBTDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5USUVSX1JFRkVSUkFMKSxcbiAgICBVU0VSX0FERFJFU1NfUkVRVUVTVDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5VU0VSX0FERFJFU1NfUkVRVUVTVCksXG4gICAgQ09NTU9OX0ZFRURCQUNLOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNPTU1PTl9GRUVEQkFDSyksXG4gICAgR1VFU1RfRkVFREJBQ0s6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuR1VFU1RfRkVFREJBQ0spLFxuICAgIENPVU5URVI6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ09VTlRFUiksXG4gICAgUkVRVUVTVF9JTlZPSUNFOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlJFUVVFU1RfSU5WT0lDRSksXG4gICAgUExBVFRFUl9TRUFSQ0hfRVZFTlRTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlBMQVRURVJfU0VBUkNIX0VWRU5UUyksXG4gICAgT1JERVJfUkVWSUVXX0ZFRURCQUNLOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLk9SREVSX1JFVklFV19GRUVEQkFDSyksXG4gICAgQ0FURVJJTkdfUkVRVUVTVDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DQVRFUklOR19SRVFVRVNUKSxcbiAgICBGTVBfUkVRVUVTVF9DQUxMQkFDSzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5GTVBfUkVRVUVTVF9DQUxMQkFDSyksXG4gICAgUExBVFRFUl9GSVQ6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuUExBVFRFUl9GSVQpLFxuICAgIElORkxVRU5DRVJfUFJPTU86IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuSU5GTFVFTkNFUl9QUk9NTyksXG4gICAgSU5GTFVFTkNFUl9SRUZFUlJBTDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5JTkZMVUVOQ0VSX1JFRkVSUkFMKSxcbiAgICBDQVRBTE9HVUVfSVRFTVM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ0FUQUxPR1VFX0lURU1TKSxcbiAgICBCUk9XU0VfSElTVE9SWTogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5CUk9XU0VfSElTVE9SWSksXG4gICAgVEVTVElOR19TRVNTSU9OOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlRFU1RJTkdfU0VTU0lPTiksXG4gICAgSVRFTVNfQlVORExFOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLklURU1TX0JVTkRMRSksXG4gICAgTFNRX1BSSU9SSVRZX1VQREFUSU9OOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkxTUV9QUklPUklUWV9VUERBVElPTiksXG4gICAgVEhJUkRfUEFSVFlfQVBJX0tFWTogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5USElSRF9QQVJUWV9BUElfS0VZKSxcblxuICAgIC8vIE9yZGVyIE1vZHVsZSBUYWJsZXNcbiAgICBPUkRFUjogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5PUkRFUiksXG4gICAgT1JERVJfQUREUkVTUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5PUkRFUl9BRERSRVNTKSxcbiAgICBPUkRFUl9SRVZJRVc6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuT1JERVJfUkVWSUVXKSxcbiAgICBQQVlNRU5UOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlBBWU1FTlQpLFxuICAgIFBMQVRFX09SREVSOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlBMQVRFX09SREVSKSxcbiAgICBUUkFDS0lORzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5UUkFDS0lORyksXG4gICAgVVNFUl9BRERSRVNTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlVTRVJfQUREUkVTUyksXG4gICAgVVNFUl9TUEVDSUZJQ1M6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVVNFUl9TUEVDSUZJQ1MpLFxuICAgIEJCUV9TS0VXRVJTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkJCUV9TS0VXRVJTKSxcblxuICAgIC8vIE90aGVyIEN1c3RvbWVyIFRhYmxlc1xuICAgIEFERF9PTlM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQUREX09OUyksXG4gICAgQkFOS19ERVRBSUxTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkJBTktfREVUQUlMUyksXG4gICAgQ0FSVDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DQVJUKSxcbiAgICBDQVJUX0NBVEVHT1JJRVM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ0FSVF9DQVRFR09SSUVTKSxcbiAgICBDQVRFR09SWTogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DQVRFR09SWSksXG4gICAgQ0FURVJJTkc6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ0FURVJJTkcpLFxuICAgIENPTlRFTlQ6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ09OVEVOVCksXG4gICAgQ09VUE9OUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DT1VQT05TKSxcbiAgICBERUZBVUxUX1BMQVRURVI6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuREVGQVVMVF9QTEFUVEVSKSxcbiAgICBERUZBVUxUX1BMQVRURVJfQ0FURUdPUklFUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5ERUZBVUxUX1BMQVRURVJfQ0FURUdPUklFUyksXG4gICAgREVGQVVMVF9QTEFUVEVSX0lURU1TOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkRFRkFVTFRfUExBVFRFUl9JVEVNUyksXG4gICAgRVZFTlRfRVhFQ1VUSVZFUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5FVkVOVF9FWEVDVVRJVkVTKSxcbiAgICBJVEVNUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5JVEVNUyksXG4gICAgTEVBRDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5MRUFEKSxcbiAgICBPQ0NBU0lPTjogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5PQ0NBU0lPTiksXG4gICAgUkVGRVJSQUxfQ09OVEVOVDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5SRUZFUlJBTF9DT05URU5UKSxcbiAgICBVU0VSOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlVTRVIpLFxuICAgIFdBTExFVDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5XQUxMRVQpLFxuICAgIFdBTExFVF9UUkFOU0FDVElPTjogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5XQUxMRVRfVFJBTlNBQ1RJT04pLFxuICAgIFdJVEhEUkFXTjogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5XSVRIRFJBV04pLFxuXG4gICAgLy8gSW50ZXJuYWwgVXNlciBUYWJsZXNcbiAgICBJTlRFUk5BTF9VU0VSOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLklOVEVSTkFMX1VTRVIpLFxuICAgIEFDVElWSVRZX0xPR1M6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQUNUSVZJVFlfTE9HUyksXG4gICAgUVVPVEFUSU9OUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5RVU9UQVRJT05TKSxcbn0gYXMgY29uc3Q7XG4iXX0=
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL3RhYmxlLW5hbWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlEQUFxRDtBQUVyRCxnREFBZ0Q7QUFDbkMsUUFBQSxnQkFBZ0IsR0FBRztJQUM1QixzQkFBc0I7SUFDdEIsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxPQUFPLEVBQUUsYUFBYTtJQUN0QixPQUFPLEVBQUUsY0FBYztJQUN2QixtQkFBbUIsRUFBRSx5QkFBeUI7SUFDOUMsT0FBTyxFQUFFLGNBQWM7SUFDdkIsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxrQkFBa0IsRUFBRSx1QkFBdUI7SUFDM0MsYUFBYSxFQUFFLG1CQUFtQjtJQUNsQyxvQkFBb0IsRUFBRSx5QkFBeUI7SUFDL0MsZUFBZSxFQUFFLHFCQUFxQjtJQUN0QyxjQUFjLEVBQUUsb0JBQW9CO0lBQ3BDLE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLGVBQWUsRUFBRSxxQkFBcUI7SUFDdEMscUJBQXFCLEVBQUUsMEJBQTBCO0lBQ2pELHFCQUFxQixFQUFFLDBCQUEwQjtJQUNqRCxnQkFBZ0IsRUFBRSxzQkFBc0I7SUFDeEMsb0JBQW9CLEVBQUUseUJBQXlCO0lBQy9DLFdBQVcsRUFBRSxpQkFBaUI7SUFDOUIsZ0JBQWdCLEVBQUUsc0JBQXNCO0lBQ3hDLG1CQUFtQixFQUFFLHlCQUF5QjtJQUM5QyxlQUFlLEVBQUUscUJBQXFCO0lBQ3RDLGNBQWMsRUFBRSxvQkFBb0I7SUFDcEMsZUFBZSxFQUFFLHFCQUFxQjtJQUN0QyxZQUFZLEVBQUUsa0JBQWtCO0lBQ2hDLHFCQUFxQixFQUFFLDBCQUEwQjtJQUNqRCxlQUFlLEVBQUUsaUJBQWlCO0lBQ2xDLGVBQWUsRUFBRSxpQkFBaUI7SUFDbEMsbUJBQW1CLEVBQUUsdUJBQXVCO0lBRTVDLHNCQUFzQjtJQUN0QixLQUFLLEVBQUUsWUFBWTtJQUNuQixhQUFhLEVBQUUsbUJBQW1C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LGdCQUFnQixDQUFDLFlBQVksQ0FBQyx3QkFBZ0IsQ0FBQyxNQUFNLENBQUM7SUFDOUQsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLHdCQUFnQixDQUFDLGtCQUFrQixDQUFDO0lBQ3RGLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsd0JBQWdCLENBQUMsU0FBUyxDQUFDO0lBRXBFLHVCQUF1QjtJQUN2QixhQUFhLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLHdCQUFnQixDQUFDLGFBQWEsQ0FBQztJQUM1RSxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLHdCQUFnQixDQUFDLGFBQWEsQ0FBQztJQUM1RSxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLHdCQUFnQixDQUFDLFVBQVUsQ0FBQztDQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YWJhc2VGYWN0b3J5IH0gZnJvbSAnLi9kYXRhYmFzZS1mYWN0b3J5JztcblxuLy8gQmFzZSB0YWJsZSBuYW1lcyAod2l0aG91dCBlbnZpcm9ubWVudCBwcmVmaXgpXG5leHBvcnQgY29uc3QgQkFTRV9UQUJMRV9OQU1FUyA9IHtcbiAgICAvLyBDdXN0b21lciBBcHAgVGFibGVzXG4gICAgQVBQX0ZFRURCQUNLOiAnQXBwRmVlZGJhY2tUYWJsZScsXG4gICAgTFNRX0NSTTogJ0xzcUNybVRhYmxlJyxcbiAgICBDVVRMRVJZOiAnQ3V0bGVyeVRhYmxlJyxcbiAgICBJVEVNX0FDQ09NUEFOSU1FTlRTOiAnSXRlbUFjY29tcGFuaW1lbnRzVGFibGUnLFxuICAgIENVSVNJTkU6ICdDdWlzaW5lVGFibGUnLFxuICAgIFRJRVJfREVUQUlMUzogJ1RpZXJEZXRhaWxzVGFibGUnLFxuICAgIFVTRVJfT1JERVJfU1VNTUFSWTogJ1VzZXJPcmRlclN1bW1hcnlUYWJsZScsXG4gICAgVElFUl9SRUZFUlJBTDogJ1RpZXJSZWZlcnJhbFRhYmxlJyxcbiAgICBVU0VSX0FERFJFU1NfUkVRVUVTVDogJ1VzZXJBZGRyZXNzUmVxdWVzdFRhYmxlJyxcbiAgICBDT01NT05fRkVFREJBQ0s6ICdDb21tb25GZWVkYmFja1RhYmxlJyxcbiAgICBHVUVTVF9GRUVEQkFDSzogJ0d1ZXN0RmVlZGJhY2tUYWJsZScsXG4gICAgQ09VTlRFUjogJ0NvdW50ZXJUYWJsZScsXG4gICAgUkVRVUVTVF9JTlZPSUNFOiAnUmVxdWVzdEludm9pY2VUYWJsZScsXG4gICAgUExBVFRFUl9TRUFSQ0hfRVZFTlRTOiAnUGxhdHRlclNlYXJjaEV2ZW50c1RhYmxlJyxcbiAgICBPUkRFUl9SRVZJRVdfRkVFREJBQ0s6ICdPcmRlclJldmlld0ZlZWRiYWNrVGFibGUnLFxuICAgIENBVEVSSU5HX1JFUVVFU1Q6ICdDYXRlcmluZ1JlcXVlc3RUYWJsZScsXG4gICAgRk1QX1JFUVVFU1RfQ0FMTEJBQ0s6ICdGbXBSZXF1ZXN0Q2FsbGJhY2tUYWJsZScsXG4gICAgUExBVFRFUl9GSVQ6ICdQbGF0dGVyRml0VGFibGUnLFxuICAgIElORkxVRU5DRVJfUFJPTU86ICdJbmZsdWVuY2VyUHJvbW9UYWJsZScsXG4gICAgSU5GTFVFTkNFUl9SRUZFUlJBTDogJ0luZmx1ZW5jZXJSZWZlcnJhbFRhYmxlJyxcbiAgICBDQVRBTE9HVUVfSVRFTVM6ICdDYXRhbG9ndWVJdGVtc1RhYmxlJyxcbiAgICBCUk9XU0VfSElTVE9SWTogJ0Jyb3dzZUhpc3RvcnlUYWJsZScsXG4gICAgVEVTVElOR19TRVNTSU9OOiAnVGVzdGluZ1Nlc3Npb25UYWJsZScsXG4gICAgSVRFTVNfQlVORExFOiAnSXRlbXNCdW5kbGVUYWJsZScsXG4gICAgTFNRX1BSSU9SSVRZX1VQREFUSU9OOiAnTHNxUHJpb3JpdHlVcGRhdGlvblRhYmxlJyxcbiAgICBFTFBISUVfU0VTU0lPTlM6ICdlbHBoaWVfc2Vzc2lvbnMnLFxuICAgIEVMUEhJRV9NRVNTQUdFUzogJ2VscGhpZV9tZXNzYWdlcycsXG4gICAgVEhJUkRfUEFSVFlfQVBJX0tFWTogJ1RoaXJkUGFydHlBcGlLZXlUYWJsZScsXG5cbiAgICAvLyBPcmRlciBNb2R1bGUgVGFibGVzXG4gICAgT1JERVI6ICdPcmRlclRhYmxlJyxcbiAgICBPUkRFUl9BRERSRVNTOiAnT3JkZXJBZGRyZXNzVGFibGUnLFxuICAgIE9SREVSX1JFVklFVzogJ09yZGVyUmV2aWV3VGFibGUnLFxuICAgIFBBWU1FTlQ6ICdQYXltZW50VGFibGUnLFxuICAgIFBMQVRFX09SREVSOiAnUGxhdGVPcmRlclRhYmxlJyxcbiAgICBUUkFDS0lORzogJ1RyYWNraW5nVGFibGUnLFxuICAgIFVTRVJfQUREUkVTUzogJ1VzZXJBZGRyZXNzVGFibGUnLFxuICAgIFVTRVJfU1BFQ0lGSUNTOiAnVXNlclNwZWNpZmljc1RhYmxlJyxcbiAgICBCQlFfU0tFV0VSUzogJ0JicVNrZXdlcnNUYWJsZScsXG5cbiAgICAvLyBPdGhlciBDdXN0b21lciBUYWJsZXNcbiAgICBBRERfT05TOiAnQWRkT25zVGFibGUnLFxuICAgIEJBTktfREVUQUlMUzogJ0JhbmtEZXRhaWxzVGFibGUnLFxuICAgIENBUlQ6ICdDYXJ0VGFibGUnLFxuICAgIENBUlRfQ0FURUdPUklFUzogJ0NhcnRDYXRlZ29yaWVzVGFibGUnLFxuICAgIENBVEVHT1JZOiAnQ2F0ZWdvcnlUYWJsZScsXG4gICAgQ0FURVJJTkc6ICdDYXRlcmluZ1RhYmxlJyxcbiAgICBDT05URU5UOiAnQ29udGVudFRhYmxlJyxcbiAgICBDT1VQT05TOiAnQ291cG9uc1RhYmxlJyxcbiAgICBERUZBVUxUX1BMQVRURVI6ICdEZWZhdWx0UGxhdHRlclRhYmxlJyxcbiAgICBERUZBVUxUX1BMQVRURVJfQ0FURUdPUklFUzogJ0RlZmF1bHRQbGF0dGVyQ2F0ZWdvcmllc1RhYmxlJyxcbiAgICBERUZBVUxUX1BMQVRURVJfSVRFTVM6ICdEZWZhdWx0UGxhdHRlckl0ZW1zVGFibGUnLFxuICAgIEVWRU5UX0VYRUNVVElWRVM6ICdFdmVudEV4ZWN1dGl2ZXNUYWJsZScsXG4gICAgSVRFTVM6ICdJdGVtc1RhYmxlJyxcbiAgICBMRUFEOiAnTGVhZFRhYmxlJyxcbiAgICBPQ0NBU0lPTjogJ09jY2FzaW9uVGFibGUnLFxuICAgIFJFRkVSUkFMX0NPTlRFTlQ6ICdSZWZlcnJhbENvbnRlbnRUYWJsZScsXG4gICAgVVNFUjogJ1VzZXJUYWJsZScsXG4gICAgV0FMTEVUOiAnV2FsbGV0VGFibGUnLFxuICAgIFdBTExFVF9UUkFOU0FDVElPTjogJ1dhbGxldFRyYW5zYWN0aW9uVGFibGUnLFxuICAgIFdJVEhEUkFXTjogJ1dpdGhkcmF3blRhYmxlJyxcblxuICAgIC8vIEludGVybmFsIFVzZXIgVGFibGVzXG4gICAgSU5URVJOQUxfVVNFUjogJ0ludGVybmFsVXNlclRhYmxlJyxcbiAgICBBQ1RJVklUWV9MT0dTOiAnQWN0aXZpdHlMb2dzVGFibGUnLFxuICAgIFFVT1RBVElPTlM6ICdRdW90YXRpb25zVGFibGUnLFxufSBhcyBjb25zdDtcblxuLy8gRW52aXJvbm1lbnQtYXdhcmUgdGFibGUgbmFtZSBnZXR0ZXJcbmV4cG9ydCBjbGFzcyBUYWJsZU5hbWVNYW5hZ2VyIHtcbiAgICBwdWJsaWMgc3RhdGljIGdldFRhYmxlTmFtZShiYXNlVGFibGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gRGF0YWJhc2VGYWN0b3J5LmdldFRhYmxlTmFtZShiYXNlVGFibGVOYW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldEFsbFRhYmxlTmFtZXMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IHRhYmxlTmFtZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAgICAgICBPYmplY3QuZW50cmllcyhCQVNFX1RBQkxFX05BTUVTKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgIHRhYmxlTmFtZXNba2V5XSA9IHRoaXMuZ2V0VGFibGVOYW1lKHZhbHVlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRhYmxlTmFtZXM7XG4gICAgfVxufVxuXG4vLyBFeHBvcnQgZW52aXJvbm1lbnQtYXdhcmUgdGFibGUgbmFtZXNcbmV4cG9ydCBjb25zdCBUQUJMRV9OQU1FUyA9IHtcbiAgICAvLyBDdXN0b21lciBBcHAgVGFibGVzXG4gICAgQVBQX0ZFRURCQUNLOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkFQUF9GRUVEQkFDSyksXG4gICAgTFNRX0NSTTogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5MU1FfQ1JNKSxcbiAgICBDVVRMRVJZOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNVVExFUlkpLFxuICAgIElURU1fQUNDT01QQU5JTUVOVFM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuSVRFTV9BQ0NPTVBBTklNRU5UUyksXG4gICAgQ1VJU0lORTogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DVUlTSU5FKSxcbiAgICBUSUVSX0RFVEFJTFM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVElFUl9ERVRBSUxTKSxcbiAgICBVU0VSX09SREVSX1NVTU1BUlk6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVVNFUl9PUkRFUl9TVU1NQVJZKSxcbiAgICBUSUVSX1JFRkVSUkFMOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlRJRVJfUkVGRVJSQUwpLFxuICAgIFVTRVJfQUREUkVTU19SRVFVRVNUOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlVTRVJfQUREUkVTU19SRVFVRVNUKSxcbiAgICBDT01NT05fRkVFREJBQ0s6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQ09NTU9OX0ZFRURCQUNLKSxcbiAgICBHVUVTVF9GRUVEQkFDSzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5HVUVTVF9GRUVEQkFDSyksXG4gICAgQ09VTlRFUjogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DT1VOVEVSKSxcbiAgICBSRVFVRVNUX0lOVk9JQ0U6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuUkVRVUVTVF9JTlZPSUNFKSxcbiAgICBQTEFUVEVSX1NFQVJDSF9FVkVOVFM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuUExBVFRFUl9TRUFSQ0hfRVZFTlRTKSxcbiAgICBPUkRFUl9SRVZJRVdfRkVFREJBQ0s6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuT1JERVJfUkVWSUVXX0ZFRURCQUNLKSxcbiAgICBDQVRFUklOR19SRVFVRVNUOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNBVEVSSU5HX1JFUVVFU1QpLFxuICAgIEZNUF9SRVFVRVNUX0NBTExCQUNLOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkZNUF9SRVFVRVNUX0NBTExCQUNLKSxcbiAgICBQTEFUVEVSX0ZJVDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5QTEFUVEVSX0ZJVCksXG4gICAgSU5GTFVFTkNFUl9QUk9NTzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5JTkZMVUVOQ0VSX1BST01PKSxcbiAgICBJTkZMVUVOQ0VSX1JFRkVSUkFMOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLklORkxVRU5DRVJfUkVGRVJSQUwpLFxuICAgIENBVEFMT0dVRV9JVEVNUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DQVRBTE9HVUVfSVRFTVMpLFxuICAgIEJST1dTRV9ISVNUT1JZOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkJST1dTRV9ISVNUT1JZKSxcbiAgICBURVNUSU5HX1NFU1NJT046IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVEVTVElOR19TRVNTSU9OKSxcbiAgICBJVEVNU19CVU5ETEU6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuSVRFTVNfQlVORExFKSxcbiAgICBMU1FfUFJJT1JJVFlfVVBEQVRJT046IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuTFNRX1BSSU9SSVRZX1VQREFUSU9OKSxcbiAgICBFTFBISUVfU0VTU0lPTlM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuRUxQSElFX1NFU1NJT05TKSxcbiAgICBFTFBISUVfTUVTU0FHRVM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuRUxQSElFX01FU1NBR0VTKSxcbiAgICBUSElSRF9QQVJUWV9BUElfS0VZOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlRISVJEX1BBUlRZX0FQSV9LRVkpLFxuXG4gICAgLy8gT3JkZXIgTW9kdWxlIFRhYmxlc1xuICAgIE9SREVSOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLk9SREVSKSxcbiAgICBPUkRFUl9BRERSRVNTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLk9SREVSX0FERFJFU1MpLFxuICAgIE9SREVSX1JFVklFVzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5PUkRFUl9SRVZJRVcpLFxuICAgIFBBWU1FTlQ6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuUEFZTUVOVCksXG4gICAgUExBVEVfT1JERVI6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuUExBVEVfT1JERVIpLFxuICAgIFRSQUNLSU5HOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlRSQUNLSU5HKSxcbiAgICBVU0VSX0FERFJFU1M6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVVNFUl9BRERSRVNTKSxcbiAgICBVU0VSX1NQRUNJRklDUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5VU0VSX1NQRUNJRklDUyksXG4gICAgQkJRX1NLRVdFUlM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQkJRX1NLRVdFUlMpLFxuXG4gICAgLy8gT3RoZXIgQ3VzdG9tZXIgVGFibGVzXG4gICAgQUREX09OUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5BRERfT05TKSxcbiAgICBCQU5LX0RFVEFJTFM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuQkFOS19ERVRBSUxTKSxcbiAgICBDQVJUOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNBUlQpLFxuICAgIENBUlRfQ0FURUdPUklFUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DQVJUX0NBVEVHT1JJRVMpLFxuICAgIENBVEVHT1JZOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNBVEVHT1JZKSxcbiAgICBDQVRFUklORzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DQVRFUklORyksXG4gICAgQ09OVEVOVDogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5DT05URU5UKSxcbiAgICBDT1VQT05TOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkNPVVBPTlMpLFxuICAgIERFRkFVTFRfUExBVFRFUjogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5ERUZBVUxUX1BMQVRURVIpLFxuICAgIERFRkFVTFRfUExBVFRFUl9DQVRFR09SSUVTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkRFRkFVTFRfUExBVFRFUl9DQVRFR09SSUVTKSxcbiAgICBERUZBVUxUX1BMQVRURVJfSVRFTVM6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuREVGQVVMVF9QTEFUVEVSX0lURU1TKSxcbiAgICBFVkVOVF9FWEVDVVRJVkVTOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkVWRU5UX0VYRUNVVElWRVMpLFxuICAgIElURU1TOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLklURU1TKSxcbiAgICBMRUFEOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLkxFQUQpLFxuICAgIE9DQ0FTSU9OOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLk9DQ0FTSU9OKSxcbiAgICBSRUZFUlJBTF9DT05URU5UOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlJFRkVSUkFMX0NPTlRFTlQpLFxuICAgIFVTRVI6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuVVNFUiksXG4gICAgV0FMTEVUOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLldBTExFVCksXG4gICAgV0FMTEVUX1RSQU5TQUNUSU9OOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLldBTExFVF9UUkFOU0FDVElPTiksXG4gICAgV0lUSERSQVdOOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLldJVEhEUkFXTiksXG5cbiAgICAvLyBJbnRlcm5hbCBVc2VyIFRhYmxlc1xuICAgIElOVEVSTkFMX1VTRVI6IFRhYmxlTmFtZU1hbmFnZXIuZ2V0VGFibGVOYW1lKEJBU0VfVEFCTEVfTkFNRVMuSU5URVJOQUxfVVNFUiksXG4gICAgQUNUSVZJVFlfTE9HUzogVGFibGVOYW1lTWFuYWdlci5nZXRUYWJsZU5hbWUoQkFTRV9UQUJMRV9OQU1FUy5BQ1RJVklUWV9MT0dTKSxcbiAgICBRVU9UQVRJT05TOiBUYWJsZU5hbWVNYW5hZ2VyLmdldFRhYmxlTmFtZShCQVNFX1RBQkxFX05BTUVTLlFVT1RBVElPTlMpLFxufSBhcyBjb25zdDtcbiJdfQ==
@@ -10,9 +10,12 @@ export declare class CartCategoriesModel extends BaseModel {
10
10
  categoryItemsLimit?: number;
11
11
  }
12
12
  export declare class ItemDetails {
13
+ itemId: string;
13
14
  replacementItemId?: string;
14
15
  originalItemId?: string;
15
- itemId: string;
16
+ itemQty: string;
17
+ itemQtyUnit: string;
18
+ itemUpdatedQty: string;
16
19
  isBonelessItem: boolean;
17
20
  boneItemPrice: number;
18
21
  accompaniments: AccompanimentsDetails[];
@@ -23,4 +26,5 @@ export interface AccompanimentsDetails {
23
26
  accompanimentQtyUnit: string;
24
27
  isBonelessItem?: boolean;
25
28
  boneItemPrice?: number;
29
+ isFree?: boolean;
26
30
  }
@@ -70,6 +70,10 @@ exports.CartCategoriesModel = CartCategoriesModel = __decorate([
70
70
  class ItemDetails {
71
71
  }
72
72
  exports.ItemDetails = ItemDetails;
73
+ __decorate([
74
+ (0, annotations_1.attribute)(),
75
+ __metadata("design:type", String)
76
+ ], ItemDetails.prototype, "itemId", void 0);
73
77
  __decorate([
74
78
  (0, annotations_1.attribute)(),
75
79
  __metadata("design:type", String)
@@ -81,7 +85,15 @@ __decorate([
81
85
  __decorate([
82
86
  (0, annotations_1.attribute)(),
83
87
  __metadata("design:type", String)
84
- ], ItemDetails.prototype, "itemId", void 0);
88
+ ], ItemDetails.prototype, "itemQty", void 0);
89
+ __decorate([
90
+ (0, annotations_1.attribute)(),
91
+ __metadata("design:type", String)
92
+ ], ItemDetails.prototype, "itemQtyUnit", void 0);
93
+ __decorate([
94
+ (0, annotations_1.attribute)(),
95
+ __metadata("design:type", String)
96
+ ], ItemDetails.prototype, "itemUpdatedQty", void 0);
85
97
  __decorate([
86
98
  (0, annotations_1.attribute)(),
87
99
  __metadata("design:type", Boolean)
@@ -94,4 +106,4 @@ __decorate([
94
106
  (0, annotations_1.attribute)(),
95
107
  __metadata("design:type", Array)
96
108
  ], ItemDetails.prototype, "accompaniments", void 0);
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1jYXRlZ29yaWVzLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2N1c3RvbWVyLXVzZXIvY2FydC9jYXJ0LWNhdGVnb3JpZXMtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLCtFQUErRTtBQUMvRSxnREFBZ0Q7Ozs7Ozs7Ozs7OztBQUVoRCxnQ0FBZ0M7QUFDaEMsdURBQXVEO0FBQ3ZELG1DQUFtQztBQUNuQyxzQkFBc0I7QUFDdEIsb0NBQW9DO0FBQ3BDLDBCQUEwQjtBQUMxQix3REFBd0Q7QUFDeEQsNEJBQTRCO0FBQzVCLHdEQUF3RDtBQUN4RCxpQ0FBaUM7QUFDakMsd0RBQXdEO0FBQ3hELGlDQUFpQztBQUNqQyxtQkFBbUI7QUFDbkIsNEJBQTRCO0FBQzVCLElBQUk7QUFHSix1REFBNEU7QUFDNUUsaURBQTZDO0FBR3RDLElBQU0sbUJBQW1CLEdBQXpCLE1BQU0sbUJBQW9CLFNBQVEsc0JBQVM7Q0FpQmpELENBQUE7QUFqQlksa0RBQW1CO0FBRTVCO0lBREMsSUFBQSxxQkFBTyxFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDOzttREFDYjtBQUVmO0lBREMsSUFBQSxzQkFBUSxFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDOzt1REFDVjtBQUVuQjtJQURDLElBQUEsdUJBQVMsRUFBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDOzhCQUN4QyxHQUFHO29EQUFTO0FBRXJCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzt1REFDYztBQUUxQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7OERBQ3FCO0FBRWpDO0lBREMsSUFBQSx1QkFBUyxHQUFFOzswREFDaUI7QUFFN0I7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O2lFQUN3QjtBQUVwQztJQURDLElBQUEsdUJBQVMsR0FBRTs7K0RBQ2dCOzhCQWhCbkIsbUJBQW1CO0lBRC9CLElBQUEsbUJBQUssRUFBQyxxQkFBcUIsQ0FBQztHQUNoQixtQkFBbUIsQ0FpQi9CO0FBRUQsTUFBYSxXQUFXO0NBYXZCO0FBYkQsa0NBYUM7QUFYRztJQURDLElBQUEsdUJBQVMsR0FBRTs7c0RBQ2U7QUFFM0I7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O21EQUNZO0FBRXhCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzsyQ0FDRztBQUVmO0lBREMsSUFBQSx1QkFBUyxHQUFFOzttREFDWTtBQUV4QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7a0RBQ1U7QUFFdEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O21EQUM0QiIsInNvdXJjZXNDb250ZW50IjpbIlxuLy8gaW1wb3J0IHsgYXR0cmlidXRlLCBoYXNoS2V5LCByYW5nZUtleSwgdGFibGUgfSBmcm9tIFwiQG5vdmEtb2RtL2Fubm90YXRpb25zXCI7XG4vLyBpbXBvcnQgeyBCYXNlTW9kZWwgfSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbFwiO1xuXG4vLyBAdGFibGUoXCJDYXJ0Q2F0ZWdvcmllc1RhYmxlXCIpXG4vLyBleHBvcnQgY2xhc3MgQ2FydENhdGVnb3JpZXNNb2RlbCBleHRlbmRzIEJhc2VNb2RlbCB7XG4vLyAgICAgQGhhc2hLZXkoeyB0eXBlOiAnU3RyaW5nJyB9KVxuLy8gICAgIGNhcnRJZDogc3RyaW5nO1xuLy8gICAgIEByYW5nZUtleSh7IHR5cGU6ICdTdHJpbmcnIH0pXG4vLyAgICAgY2F0ZWdvcnlJZDogc3RyaW5nO1xuLy8gICAgIEBhdHRyaWJ1dGUoeyB0eXBlOiAnU2V0JywgbWVtYmVyVHlwZTogJ1N0cmluZycgfSlcbi8vICAgICBpdGVtSWRzOiBTZXQ8c3RyaW5nPjtcbi8vICAgICBAYXR0cmlidXRlKHsgdHlwZTogJ1NldCcsIG1lbWJlclR5cGU6ICdTdHJpbmcnIH0pXG4vLyAgICAgaXRlbXNJZHNfdjE/OiBTZXQ8c3RyaW5nPjtcbi8vICAgICBAYXR0cmlidXRlKHsgdHlwZTogJ1NldCcsIG1lbWJlclR5cGU6ICdTdHJpbmcnIH0pXG4vLyAgICAgaXRlbXNJZHNfdjI/OiBTZXQ8c3RyaW5nPjtcbi8vICAgICBAYXR0cmlidXRlKClcbi8vICAgICB1cGRhdGVDb3VudD86IG51bWJlcjtcbi8vIH1cblxuXG5pbXBvcnQgeyBhdHRyaWJ1dGUsIGhhc2hLZXksIHJhbmdlS2V5LCB0YWJsZSB9IGZyb20gXCJAbm92YS1vZG0vYW5ub3RhdGlvbnNcIjtcbmltcG9ydCB7IEJhc2VNb2RlbCB9IGZyb20gXCIuLi8uLi9iYXNlLW1vZGVsXCI7XG5cbkB0YWJsZShcIkNhcnRDYXRlZ29yaWVzVGFibGVcIilcbmV4cG9ydCBjbGFzcyBDYXJ0Q2F0ZWdvcmllc01vZGVsIGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgICBAaGFzaEtleSh7IHR5cGU6ICdTdHJpbmcnIH0pXG4gICAgY2FydElkOiBzdHJpbmc7XG4gICAgQHJhbmdlS2V5KHsgdHlwZTogJ1N0cmluZycgfSlcbiAgICBjYXRlZ29yeUlkOiBzdHJpbmc7XG4gICAgQGF0dHJpYnV0ZSh7IHR5cGU6ICdTZXQnLCBtZW1iZXJUeXBlOiAnU3RyaW5nJyB9KVxuICAgIGl0ZW1JZHM6IFNldDxzdHJpbmc+O1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHZlZ0l0ZW1JZHM6IEl0ZW1EZXRhaWxzW107XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcHJlbWl1bVZlZ0l0ZW1JZHM6IEl0ZW1EZXRhaWxzW107XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgbm9uVmVnSXRlbUlkczogSXRlbURldGFpbHNbXTtcbiAgICBAYXR0cmlidXRlKClcbiAgICBwcmVtaXVtTm9uVmVnSXRlbUlkczogSXRlbURldGFpbHNbXTtcbiAgICBAYXR0cmlidXRlKClcbiAgICBjYXRlZ29yeUl0ZW1zTGltaXQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBJdGVtRGV0YWlscyB7XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcmVwbGFjZW1lbnRJdGVtSWQ/OiBzdHJpbmc7IC8vIFYyIDE3LTA0LTIwMjZcbiAgICBAYXR0cmlidXRlKClcbiAgICBvcmlnaW5hbEl0ZW1JZD86IHN0cmluZzsgLy8gVjIgMTgtMDQtMjAyNlxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1JZDogc3RyaW5nO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGlzQm9uZWxlc3NJdGVtOiBib29sZWFuO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGJvbmVJdGVtUHJpY2U6IG51bWJlcjtcbiAgICBAYXR0cmlidXRlKClcbiAgICBhY2NvbXBhbmltZW50czogQWNjb21wYW5pbWVudHNEZXRhaWxzW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb21wYW5pbWVudHNEZXRhaWxzIHtcbiAgICBhY2NvbXBhbmltZW50SWQ6IHN0cmluZztcbiAgICBhY2NvbXBhbmltZW50UXR5OiBudW1iZXI7XG4gICAgYWNjb21wYW5pbWVudFF0eVVuaXQ6IHN0cmluZztcbiAgICBpc0JvbmVsZXNzSXRlbT86IGJvb2xlYW47IC8vIFYyXG4gICAgYm9uZUl0ZW1QcmljZT86IG51bWJlcjsgLy8gVjJcbn0iXX0=
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1jYXRlZ29yaWVzLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2N1c3RvbWVyLXVzZXIvY2FydC9jYXJ0LWNhdGVnb3JpZXMtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLCtFQUErRTtBQUMvRSxnREFBZ0Q7Ozs7Ozs7Ozs7OztBQUVoRCxnQ0FBZ0M7QUFDaEMsdURBQXVEO0FBQ3ZELG1DQUFtQztBQUNuQyxzQkFBc0I7QUFDdEIsb0NBQW9DO0FBQ3BDLDBCQUEwQjtBQUMxQix3REFBd0Q7QUFDeEQsNEJBQTRCO0FBQzVCLHdEQUF3RDtBQUN4RCxpQ0FBaUM7QUFDakMsd0RBQXdEO0FBQ3hELGlDQUFpQztBQUNqQyxtQkFBbUI7QUFDbkIsNEJBQTRCO0FBQzVCLElBQUk7QUFHSix1REFBNEU7QUFDNUUsaURBQTZDO0FBR3RDLElBQU0sbUJBQW1CLEdBQXpCLE1BQU0sbUJBQW9CLFNBQVEsc0JBQVM7Q0FpQmpELENBQUE7QUFqQlksa0RBQW1CO0FBRTVCO0lBREMsSUFBQSxxQkFBTyxFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDOzttREFDYjtBQUVmO0lBREMsSUFBQSxzQkFBUSxFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDOzt1REFDVjtBQUVuQjtJQURDLElBQUEsdUJBQVMsRUFBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDOzhCQUN4QyxHQUFHO29EQUFTO0FBRXJCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzt1REFDYztBQUUxQjtJQURDLElBQUEsdUJBQVMsR0FBRTs7OERBQ3FCO0FBRWpDO0lBREMsSUFBQSx1QkFBUyxHQUFFOzswREFDaUI7QUFFN0I7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O2lFQUN3QjtBQUVwQztJQURDLElBQUEsdUJBQVMsR0FBRTs7K0RBQ2dCOzhCQWhCbkIsbUJBQW1CO0lBRC9CLElBQUEsbUJBQUssRUFBQyxxQkFBcUIsQ0FBQztHQUNoQixtQkFBbUIsQ0FpQi9CO0FBRUQsTUFBYSxXQUFXO0NBbUJ2QjtBQW5CRCxrQ0FtQkM7QUFqQkc7SUFEQyxJQUFBLHVCQUFTLEdBQUU7OzJDQUNHO0FBRWY7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O3NEQUNlO0FBRTNCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzttREFDWTtBQUV4QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7NENBQ0k7QUFFaEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O2dEQUNRO0FBRXBCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzttREFDVztBQUV2QjtJQURDLElBQUEsdUJBQVMsR0FBRTs7bURBQ1k7QUFFeEI7SUFEQyxJQUFBLHVCQUFTLEdBQUU7O2tEQUNVO0FBRXRCO0lBREMsSUFBQSx1QkFBUyxHQUFFOzttREFDNEIiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vIGltcG9ydCB7IGF0dHJpYnV0ZSwgaGFzaEtleSwgcmFuZ2VLZXksIHRhYmxlIH0gZnJvbSBcIkBub3ZhLW9kbS9hbm5vdGF0aW9uc1wiO1xuLy8gaW1wb3J0IHsgQmFzZU1vZGVsIH0gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWxcIjtcblxuLy8gQHRhYmxlKFwiQ2FydENhdGVnb3JpZXNUYWJsZVwiKVxuLy8gZXhwb3J0IGNsYXNzIENhcnRDYXRlZ29yaWVzTW9kZWwgZXh0ZW5kcyBCYXNlTW9kZWwge1xuLy8gICAgIEBoYXNoS2V5KHsgdHlwZTogJ1N0cmluZycgfSlcbi8vICAgICBjYXJ0SWQ6IHN0cmluZztcbi8vICAgICBAcmFuZ2VLZXkoeyB0eXBlOiAnU3RyaW5nJyB9KVxuLy8gICAgIGNhdGVnb3J5SWQ6IHN0cmluZztcbi8vICAgICBAYXR0cmlidXRlKHsgdHlwZTogJ1NldCcsIG1lbWJlclR5cGU6ICdTdHJpbmcnIH0pXG4vLyAgICAgaXRlbUlkczogU2V0PHN0cmluZz47XG4vLyAgICAgQGF0dHJpYnV0ZSh7IHR5cGU6ICdTZXQnLCBtZW1iZXJUeXBlOiAnU3RyaW5nJyB9KVxuLy8gICAgIGl0ZW1zSWRzX3YxPzogU2V0PHN0cmluZz47XG4vLyAgICAgQGF0dHJpYnV0ZSh7IHR5cGU6ICdTZXQnLCBtZW1iZXJUeXBlOiAnU3RyaW5nJyB9KVxuLy8gICAgIGl0ZW1zSWRzX3YyPzogU2V0PHN0cmluZz47XG4vLyAgICAgQGF0dHJpYnV0ZSgpXG4vLyAgICAgdXBkYXRlQ291bnQ/OiBudW1iZXI7XG4vLyB9XG5cblxuaW1wb3J0IHsgYXR0cmlidXRlLCBoYXNoS2V5LCByYW5nZUtleSwgdGFibGUgfSBmcm9tIFwiQG5vdmEtb2RtL2Fubm90YXRpb25zXCI7XG5pbXBvcnQgeyBCYXNlTW9kZWwgfSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbFwiO1xuXG5AdGFibGUoXCJDYXJ0Q2F0ZWdvcmllc1RhYmxlXCIpXG5leHBvcnQgY2xhc3MgQ2FydENhdGVnb3JpZXNNb2RlbCBleHRlbmRzIEJhc2VNb2RlbCB7XG4gICAgQGhhc2hLZXkoeyB0eXBlOiAnU3RyaW5nJyB9KVxuICAgIGNhcnRJZDogc3RyaW5nO1xuICAgIEByYW5nZUtleSh7IHR5cGU6ICdTdHJpbmcnIH0pXG4gICAgY2F0ZWdvcnlJZDogc3RyaW5nO1xuICAgIEBhdHRyaWJ1dGUoeyB0eXBlOiAnU2V0JywgbWVtYmVyVHlwZTogJ1N0cmluZycgfSlcbiAgICBpdGVtSWRzOiBTZXQ8c3RyaW5nPjtcbiAgICBAYXR0cmlidXRlKClcbiAgICB2ZWdJdGVtSWRzOiBJdGVtRGV0YWlsc1tdO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHByZW1pdW1WZWdJdGVtSWRzOiBJdGVtRGV0YWlsc1tdO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIG5vblZlZ0l0ZW1JZHM6IEl0ZW1EZXRhaWxzW107XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgcHJlbWl1bU5vblZlZ0l0ZW1JZHM6IEl0ZW1EZXRhaWxzW107XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgY2F0ZWdvcnlJdGVtc0xpbWl0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgSXRlbURldGFpbHMge1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGl0ZW1JZDogc3RyaW5nO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIHJlcGxhY2VtZW50SXRlbUlkPzogc3RyaW5nOyAvLyBWMiAxNy0wNC0yMDI2XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgb3JpZ2luYWxJdGVtSWQ/OiBzdHJpbmc7IC8vIFYyIDE4LTA0LTIwMjZcbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtUXR5OiBzdHJpbmc7IC8vIFYyIDEyLTA5LTIwMjZcbiAgICBAYXR0cmlidXRlKClcbiAgICBpdGVtUXR5VW5pdDogc3RyaW5nOyAvLyBWMiAxMi0wOS0yMDI2XG4gICAgQGF0dHJpYnV0ZSgpXG4gICAgaXRlbVVwZGF0ZWRRdHk6IHN0cmluZzsgLy8gVjIgMTItMDktMjAyNlxuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGlzQm9uZWxlc3NJdGVtOiBib29sZWFuO1xuICAgIEBhdHRyaWJ1dGUoKVxuICAgIGJvbmVJdGVtUHJpY2U6IG51bWJlcjtcbiAgICBAYXR0cmlidXRlKClcbiAgICBhY2NvbXBhbmltZW50czogQWNjb21wYW5pbWVudHNEZXRhaWxzW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb21wYW5pbWVudHNEZXRhaWxzIHtcbiAgICBhY2NvbXBhbmltZW50SWQ6IHN0cmluZztcbiAgICBhY2NvbXBhbmltZW50UXR5OiBudW1iZXI7XG4gICAgYWNjb21wYW5pbWVudFF0eVVuaXQ6IHN0cmluZztcbiAgICBpc0JvbmVsZXNzSXRlbT86IGJvb2xlYW47IC8vIFYyXG4gICAgYm9uZUl0ZW1QcmljZT86IG51bWJlcjsgLy8gVjJcbiAgICBpc0ZyZWU/OiBib29sZWFuOyAvLyBWMiAxMi0wOS0yMDI2XG59Il19
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Typed errors for Elphie DynamoDB access — callers should not see raw Dynamoose/AWS errors.
3
+ */
4
+ export declare class SessionNotFoundError extends Error {
5
+ readonly statusCode = 404;
6
+ constructor(elphieSessionId: string);
7
+ }
8
+ export declare class ConversationNotFoundError extends Error {
9
+ readonly statusCode = 404;
10
+ constructor(conversationId: string);
11
+ }
12
+ export declare class ElphieValidationError extends Error {
13
+ readonly statusCode = 400;
14
+ constructor(message: string);
15
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /**
3
+ * Typed errors for Elphie DynamoDB access — callers should not see raw Dynamoose/AWS errors.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ElphieValidationError = exports.ConversationNotFoundError = exports.SessionNotFoundError = void 0;
7
+ class SessionNotFoundError extends Error {
8
+ constructor(elphieSessionId) {
9
+ super(`Elphie session not found: ${elphieSessionId}`);
10
+ this.statusCode = 404;
11
+ this.name = "SessionNotFoundError";
12
+ }
13
+ }
14
+ exports.SessionNotFoundError = SessionNotFoundError;
15
+ class ConversationNotFoundError extends Error {
16
+ constructor(conversationId) {
17
+ super(`Elphie conversation not found: ${conversationId}`);
18
+ this.statusCode = 404;
19
+ this.name = "ConversationNotFoundError";
20
+ }
21
+ }
22
+ exports.ConversationNotFoundError = ConversationNotFoundError;
23
+ class ElphieValidationError extends Error {
24
+ constructor(message) {
25
+ super(message);
26
+ this.statusCode = 400;
27
+ this.name = "ElphieValidationError";
28
+ }
29
+ }
30
+ exports.ElphieValidationError = ElphieValidationError;
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxwaGllLWVycm9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXN0b21lci11c2VyL2VscGhpZS9lbHBoaWUtZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBRUgsTUFBYSxvQkFBcUIsU0FBUSxLQUFLO0lBRzNDLFlBQVksZUFBdUI7UUFDL0IsS0FBSyxDQUFDLDZCQUE2QixlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBSGpELGVBQVUsR0FBRyxHQUFHLENBQUM7UUFJdEIsSUFBSSxDQUFDLElBQUksR0FBRyxzQkFBc0IsQ0FBQztJQUN2QyxDQUFDO0NBQ0o7QUFQRCxvREFPQztBQUVELE1BQWEseUJBQTBCLFNBQVEsS0FBSztJQUdoRCxZQUFZLGNBQXNCO1FBQzlCLEtBQUssQ0FBQyxrQ0FBa0MsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUhyRCxlQUFVLEdBQUcsR0FBRyxDQUFDO1FBSXRCLElBQUksQ0FBQyxJQUFJLEdBQUcsMkJBQTJCLENBQUM7SUFDNUMsQ0FBQztDQUNKO0FBUEQsOERBT0M7QUFFRCxNQUFhLHFCQUFzQixTQUFRLEtBQUs7SUFHNUMsWUFBWSxPQUFlO1FBQ3ZCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUhWLGVBQVUsR0FBRyxHQUFHLENBQUM7UUFJdEIsSUFBSSxDQUFDLElBQUksR0FBRyx1QkFBdUIsQ0FBQztJQUN4QyxDQUFDO0NBQ0o7QUFQRCxzREFPQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVHlwZWQgZXJyb3JzIGZvciBFbHBoaWUgRHluYW1vREIgYWNjZXNzIOKAlCBjYWxsZXJzIHNob3VsZCBub3Qgc2VlIHJhdyBEeW5hbW9vc2UvQVdTIGVycm9ycy5cbiAqL1xuXG5leHBvcnQgY2xhc3MgU2Vzc2lvbk5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgcmVhZG9ubHkgc3RhdHVzQ29kZSA9IDQwNDtcblxuICAgIGNvbnN0cnVjdG9yKGVscGhpZVNlc3Npb25JZDogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKGBFbHBoaWUgc2Vzc2lvbiBub3QgZm91bmQ6ICR7ZWxwaGllU2Vzc2lvbklkfWApO1xuICAgICAgICB0aGlzLm5hbWUgPSBcIlNlc3Npb25Ob3RGb3VuZEVycm9yXCI7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29udmVyc2F0aW9uTm90Rm91bmRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICByZWFkb25seSBzdGF0dXNDb2RlID0gNDA0O1xuXG4gICAgY29uc3RydWN0b3IoY29udmVyc2F0aW9uSWQ6IHN0cmluZykge1xuICAgICAgICBzdXBlcihgRWxwaGllIGNvbnZlcnNhdGlvbiBub3QgZm91bmQ6ICR7Y29udmVyc2F0aW9uSWR9YCk7XG4gICAgICAgIHRoaXMubmFtZSA9IFwiQ29udmVyc2F0aW9uTm90Rm91bmRFcnJvclwiO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVscGhpZVZhbGlkYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICByZWFkb25seSBzdGF0dXNDb2RlID0gNDAwO1xuXG4gICAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLm5hbWUgPSBcIkVscGhpZVZhbGlkYXRpb25FcnJvclwiO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,51 @@
1
+ import { DynamoKey } from "../../base-dynamoose-dao";
2
+ import { CreateElphieConversationInput, ElphieMessage, ElphieMessageTurn } from "./elphie-message-model";
3
+ type ListResult = {
4
+ items: ElphieMessage[];
5
+ lastKey?: DynamoKey;
6
+ };
7
+ /**
8
+ * Service/DAO for `elphie_messages`.
9
+ *
10
+ * HASH: `conversation_id`.
11
+ * Turn append uses Dynamoose `$APPEND` (atomic) — never full-item read-modify-write.
12
+ */
13
+ declare class ElphieMessageService {
14
+ /**
15
+ * Creates a conversation with the first turn already in `content`.
16
+ *
17
+ * @example
18
+ * await elphieMessageService.createConversation({
19
+ * conversation_id: "conv-1",
20
+ * user_id: "user-1",
21
+ * elphieSessionId: "session-uuid",
22
+ * firstTurn: { role: "user", text: "Hi", timestamp: new Date().toISOString() }
23
+ * });
24
+ */
25
+ createConversation: (input: CreateElphieConversationInput) => Promise<ElphieMessage>;
26
+ /**
27
+ * Atomically appends one turn to `content` and refreshes `updated_at`.
28
+ * Uses `$APPEND` so concurrent turns cannot lose updates.
29
+ */
30
+ appendTurn: (conversation_id: string, turn: ElphieMessageTurn) => Promise<ElphieMessage>;
31
+ /**
32
+ * Fetches one conversation by `conversation_id`.
33
+ * Throws `ConversationNotFoundError` when missing.
34
+ */
35
+ getConversation: (conversation_id: string) => Promise<ElphieMessage>;
36
+ /**
37
+ * Lists conversations for a user via GSI `user_id-index`.
38
+ * Newest-first order is applied in memory on `updated_at` (not a GSI range key).
39
+ */
40
+ listConversationsForUser: (user_id: string, { limit, lastKey }?: {
41
+ limit?: number;
42
+ lastKey?: DynamoKey;
43
+ }) => Promise<ListResult>;
44
+ /**
45
+ * Lists conversations linked to a session via GSI `elphieSessionId-index`.
46
+ */
47
+ listConversationsForSession: (elphieSessionId: string) => Promise<ElphieMessage[]>;
48
+ private assertValidTurn;
49
+ }
50
+ export declare const elphieMessageService: ElphieMessageService;
51
+ export {};
@@ -0,0 +1,160 @@
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.elphieMessageService = void 0;
7
+ const dynamoose_1 = __importDefault(require("dynamoose"));
8
+ const elphie_errors_1 = require("./elphie-errors");
9
+ const elphie_message_model_1 = require("./elphie-message-model");
10
+ const nowIso = () => new Date().toISOString();
11
+ const isValidRole = (role) => role === elphie_message_model_1.ELPHIE_MESSAGE_ROLE.USER || role === elphie_message_model_1.ELPHIE_MESSAGE_ROLE.ELPHIE;
12
+ /**
13
+ * Service/DAO for `elphie_messages`.
14
+ *
15
+ * HASH: `conversation_id`.
16
+ * Turn append uses Dynamoose `$APPEND` (atomic) — never full-item read-modify-write.
17
+ */
18
+ class ElphieMessageService {
19
+ constructor() {
20
+ /**
21
+ * Creates a conversation with the first turn already in `content`.
22
+ *
23
+ * @example
24
+ * await elphieMessageService.createConversation({
25
+ * conversation_id: "conv-1",
26
+ * user_id: "user-1",
27
+ * elphieSessionId: "session-uuid",
28
+ * firstTurn: { role: "user", text: "Hi", timestamp: new Date().toISOString() }
29
+ * });
30
+ */
31
+ this.createConversation = async (input) => {
32
+ this.assertValidTurn(input.firstTurn);
33
+ try {
34
+ const created = await elphie_message_model_1.ElphieMessageModel.create({
35
+ conversation_id: input.conversation_id,
36
+ user_id: input.user_id,
37
+ elphieSessionId: input.elphieSessionId,
38
+ content: [input.firstTurn],
39
+ updated_at: nowIso()
40
+ });
41
+ return created;
42
+ }
43
+ catch (error) {
44
+ throw wrapUnexpected("createConversation", error);
45
+ }
46
+ };
47
+ /**
48
+ * Atomically appends one turn to `content` and refreshes `updated_at`.
49
+ * Uses `$APPEND` so concurrent turns cannot lose updates.
50
+ */
51
+ this.appendTurn = async (conversation_id, turn) => {
52
+ this.assertValidTurn(turn);
53
+ try {
54
+ // Dynamoose list append operator — not expressible as Partial<ElphieMessage>.
55
+ const updateObj = {
56
+ content: { $APPEND: [turn] },
57
+ updated_at: nowIso()
58
+ };
59
+ const updated = await elphie_message_model_1.ElphieMessageModel.update({ conversation_id }, updateObj, {
60
+ condition: new dynamoose_1.default.Condition().attribute("conversation_id").exists()
61
+ });
62
+ return updated;
63
+ }
64
+ catch (error) {
65
+ if (isNotFoundError(error) || isConditionalCheckFailed(error)) {
66
+ throw new elphie_errors_1.ConversationNotFoundError(conversation_id);
67
+ }
68
+ throw wrapUnexpected("appendTurn", error);
69
+ }
70
+ };
71
+ /**
72
+ * Fetches one conversation by `conversation_id`.
73
+ * Throws `ConversationNotFoundError` when missing.
74
+ */
75
+ this.getConversation = async (conversation_id) => {
76
+ try {
77
+ const conversation = await elphie_message_model_1.ElphieMessageModel.get(conversation_id);
78
+ if (!conversation) {
79
+ throw new elphie_errors_1.ConversationNotFoundError(conversation_id);
80
+ }
81
+ return conversation;
82
+ }
83
+ catch (error) {
84
+ if (error instanceof elphie_errors_1.ConversationNotFoundError) {
85
+ throw error;
86
+ }
87
+ if (isNotFoundError(error)) {
88
+ throw new elphie_errors_1.ConversationNotFoundError(conversation_id);
89
+ }
90
+ throw wrapUnexpected("getConversation", error);
91
+ }
92
+ };
93
+ /**
94
+ * Lists conversations for a user via GSI `user_id-index`.
95
+ * Newest-first order is applied in memory on `updated_at` (not a GSI range key).
96
+ */
97
+ this.listConversationsForUser = async (user_id, { limit, lastKey } = {}) => {
98
+ try {
99
+ let queryBuilder = elphie_message_model_1.ElphieMessageModel.query("user_id")
100
+ .eq(user_id)
101
+ .using("user_id-index");
102
+ if (lastKey) {
103
+ queryBuilder = queryBuilder.startAt(lastKey);
104
+ }
105
+ if (typeof limit === "number") {
106
+ queryBuilder = queryBuilder.limit(limit);
107
+ }
108
+ const queryResult = await queryBuilder.exec();
109
+ const items = [...queryResult].sort((a, b) => (b.updated_at ?? "").localeCompare(a.updated_at ?? ""));
110
+ return {
111
+ items,
112
+ lastKey: queryResult.lastKey
113
+ };
114
+ }
115
+ catch (error) {
116
+ throw wrapUnexpected("listConversationsForUser", error);
117
+ }
118
+ };
119
+ /**
120
+ * Lists conversations linked to a session via GSI `elphieSessionId-index`.
121
+ */
122
+ this.listConversationsForSession = async (elphieSessionId) => {
123
+ try {
124
+ const queryResult = await elphie_message_model_1.ElphieMessageModel.query("elphieSessionId")
125
+ .eq(elphieSessionId)
126
+ .using("elphieSessionId-index")
127
+ .exec();
128
+ return queryResult;
129
+ }
130
+ catch (error) {
131
+ throw wrapUnexpected("listConversationsForSession", error);
132
+ }
133
+ };
134
+ this.assertValidTurn = (turn) => {
135
+ if (!turn || typeof turn.text !== "string" || turn.text.length === 0) {
136
+ throw new elphie_errors_1.ElphieValidationError("turn.text is required");
137
+ }
138
+ if (!isValidRole(turn.role)) {
139
+ throw new elphie_errors_1.ElphieValidationError(`Invalid turn.role "${turn.role}". Expected "user" | "elphie".`);
140
+ }
141
+ if (!turn.timestamp) {
142
+ throw new elphie_errors_1.ElphieValidationError("turn.timestamp is required");
143
+ }
144
+ };
145
+ }
146
+ }
147
+ const isNotFoundError = (error) => {
148
+ const name = error?.name;
149
+ return name === "ItemNotFoundException" || name === "ItemNotFoundError";
150
+ };
151
+ const isConditionalCheckFailed = (error) => {
152
+ const name = error?.name;
153
+ return name === "ConditionalCheckFailedException";
154
+ };
155
+ const wrapUnexpected = (operation, error) => {
156
+ const message = error instanceof Error ? error.message : String(error);
157
+ return new Error(`ElphieMessageService.${operation} failed: ${message}`);
158
+ };
159
+ exports.elphieMessageService = new ElphieMessageService();
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxwaGllLW1lc3NhZ2UtZGFvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2N1c3RvbWVyLXVzZXIvZWxwaGllL2VscGhpZS1tZXNzYWdlLWRhby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwREFBa0M7QUFFbEMsbURBQW1GO0FBQ25GLGlFQU9nQztBQU9oQyxNQUFNLE1BQU0sR0FBRyxHQUFXLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBRXRELE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBWSxFQUE2QixFQUFFLENBQzVELElBQUksS0FBSywwQ0FBbUIsQ0FBQyxJQUFJLElBQUksSUFBSSxLQUFLLDBDQUFtQixDQUFDLE1BQU0sQ0FBQztBQUU3RTs7Ozs7R0FLRztBQUNILE1BQU0sb0JBQW9CO0lBQTFCO1FBQ0k7Ozs7Ozs7Ozs7V0FVRztRQUNILHVCQUFrQixHQUFHLEtBQUssRUFBRSxLQUFvQyxFQUEwQixFQUFFO1lBQ3hGLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRXRDLElBQUksQ0FBQztnQkFDRCxNQUFNLE9BQU8sR0FBRyxNQUFNLHlDQUFrQixDQUFDLE1BQU0sQ0FBQztvQkFDNUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO29CQUN0QyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87b0JBQ3RCLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtvQkFDdEMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztvQkFDMUIsVUFBVSxFQUFFLE1BQU0sRUFBRTtpQkFDdkIsQ0FBQyxDQUFDO2dCQUNILE9BQU8sT0FBd0IsQ0FBQztZQUNwQyxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDYixNQUFNLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0RCxDQUFDO1FBQ0ws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bEUsQ0FBQztZQUNOLENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNsQixNQUFNLElBQUkscUNBQXFCLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUNsRSxDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBQ04sQ0FBQztDQUFBO0FBRUQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUFjLEVBQVcsRUFBRTtJQUNoRCxNQUFNLElBQUksR0FBSSxLQUFrQyxFQUFFLElBQUksQ0FBQztJQUN2RCxPQUFPLElBQUksS0FBSyx1QkFBdUIsSUFBSSxJQUFJLEtBQUssbUJBQW1CLENBQUM7QUFDNUUsQ0FBQyxDQUFDO0FBRUYsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEtBQWMsRUFBVyxFQUFFO0lBQ3pELE1BQU0sSUFBSSxHQUFJLEtBQWtDLEVBQUUsSUFBSSxDQUFDO0lBQ3ZELE9BQU8sSUFBSSxLQUFLLGlDQUFpQyxDQUFDO0FBQ3RELENBQUMsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsU0FBaUIsRUFBRSxLQUFjLEVBQVMsRUFBRTtJQUNoRSxNQUFNLE9BQU8sR0FBRyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkUsT0FBTyxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsU0FBUyxZQUFZLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDN0UsQ0FBQyxDQUFDO0FBRVcsUUFBQSxvQkFBb0IsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZHluYW1vb3NlIGZyb20gXCJkeW5hbW9vc2VcIjtcbmltcG9ydCB7IER5bmFtb0tleSB9IGZyb20gXCIuLi8uLi9iYXNlLWR5bmFtb29zZS1kYW9cIjtcbmltcG9ydCB7IENvbnZlcnNhdGlvbk5vdEZvdW5kRXJyb3IsIEVscGhpZVZhbGlkYXRpb25FcnJvciB9IGZyb20gXCIuL2VscGhpZS1lcnJvcnNcIjtcbmltcG9ydCB7XG4gICAgQ3JlYXRlRWxwaGllQ29udmVyc2F0aW9uSW5wdXQsXG4gICAgRUxQSElFX01FU1NBR0VfUk9MRSxcbiAgICBFbHBoaWVNZXNzYWdlLFxuICAgIEVscGhpZU1lc3NhZ2VNb2RlbCxcbiAgICBFbHBoaWVNZXNzYWdlUm9sZSxcbiAgICBFbHBoaWVNZXNzYWdlVHVyblxufSBmcm9tIFwiLi9lbHBoaWUtbWVzc2FnZS1tb2RlbFwiO1xuXG50eXBlIExpc3RSZXN1bHQgPSB7XG4gICAgaXRlbXM6IEVscGhpZU1lc3NhZ2VbXTtcbiAgICBsYXN0S2V5PzogRHluYW1vS2V5O1xufTtcblxuY29uc3Qgbm93SXNvID0gKCk6IHN0cmluZyA9PiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG5cbmNvbnN0IGlzVmFsaWRSb2xlID0gKHJvbGU6IHN0cmluZyk6IHJvbGUgaXMgRWxwaGllTWVzc2FnZVJvbGUgPT5cbiAgICByb2xlID09PSBFTFBISUVfTUVTU0FHRV9ST0xFLlVTRVIgfHwgcm9sZSA9PT0gRUxQSElFX01FU1NBR0VfUk9MRS5FTFBISUU7XG5cbi8qKlxuICogU2VydmljZS9EQU8gZm9yIGBlbHBoaWVfbWVzc2FnZXNgLlxuICpcbiAqIEhBU0g6IGBjb252ZXJzYXRpb25faWRgLlxuICogVHVybiBhcHBlbmQgdXNlcyBEeW5hbW9vc2UgYCRBUFBFTkRgIChhdG9taWMpIOKAlCBuZXZlciBmdWxsLWl0ZW0gcmVhZC1tb2RpZnktd3JpdGUuXG4gKi9cbmNsYXNzIEVscGhpZU1lc3NhZ2VTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY29udmVyc2F0aW9uIHdpdGggdGhlIGZpcnN0IHR1cm4gYWxyZWFkeSBpbiBgY29udGVudGAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGF3YWl0IGVscGhpZU1lc3NhZ2VTZXJ2aWNlLmNyZWF0ZUNvbnZlcnNhdGlvbih7XG4gICAgICogICAgIGNvbnZlcnNhdGlvbl9pZDogXCJjb252LTFcIixcbiAgICAgKiAgICAgdXNlcl9pZDogXCJ1c2VyLTFcIixcbiAgICAgKiAgICAgZWxwaGllU2Vzc2lvbklkOiBcInNlc3Npb24tdXVpZFwiLFxuICAgICAqICAgICBmaXJzdFR1cm46IHsgcm9sZTogXCJ1c2VyXCIsIHRleHQ6IFwiSGlcIiwgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkgfVxuICAgICAqIH0pO1xuICAgICAqL1xuICAgIGNyZWF0ZUNvbnZlcnNhdGlvbiA9IGFzeW5jIChpbnB1dDogQ3JlYXRlRWxwaGllQ29udmVyc2F0aW9uSW5wdXQpOiBQcm9taXNlPEVscGhpZU1lc3NhZ2U+ID0+IHtcbiAgICAgICAgdGhpcy5hc3NlcnRWYWxpZFR1cm4oaW5wdXQuZmlyc3RUdXJuKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY3JlYXRlZCA9IGF3YWl0IEVscGhpZU1lc3NhZ2VNb2RlbC5jcmVhdGUoe1xuICAgICAgICAgICAgICAgIGNvbnZlcnNhdGlvbl9pZDogaW5wdXQuY29udmVyc2F0aW9uX2lkLFxuICAgICAgICAgICAgICAgIHVzZXJfaWQ6IGlucHV0LnVzZXJfaWQsXG4gICAgICAgICAgICAgICAgZWxwaGllU2Vzc2lvbklkOiBpbnB1dC5lbHBoaWVTZXNzaW9uSWQsXG4gICAgICAgICAgICAgICAgY29udGVudDogW2lucHV0LmZpcnN0VHVybl0sXG4gICAgICAgICAgICAgICAgdXBkYXRlZF9hdDogbm93SXNvKClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZWQgYXMgRWxwaGllTWVzc2FnZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IHdyYXBVbmV4cGVjdGVkKFwiY3JlYXRlQ29udmVyc2F0aW9uXCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBBdG9taWNhbGx5IGFwcGVuZHMgb25lIHR1cm4gdG8gYGNvbnRlbnRgIGFuZCByZWZyZXNoZXMgYHVwZGF0ZWRfYXRgLlxuICAgICAqIFVzZXMgYCRBUFBFTkRgIHNvIGNvbmN1cnJlbnQgdHVybnMgY2Fubm90IGxvc2UgdXBkYXRlcy5cbiAgICAgKi9cbiAgICBhcHBlbmRUdXJuID0gYXN5bmMgKGNvbnZlcnNhdGlvbl9pZDogc3RyaW5nLCB0dXJuOiBFbHBoaWVNZXNzYWdlVHVybik6IFByb21pc2U8RWxwaGllTWVzc2FnZT4gPT4ge1xuICAgICAgICB0aGlzLmFzc2VydFZhbGlkVHVybih0dXJuKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gRHluYW1vb3NlIGxpc3QgYXBwZW5kIG9wZXJhdG9yIOKAlCBub3QgZXhwcmVzc2libGUgYXMgUGFydGlhbDxFbHBoaWVNZXNzYWdlPi5cbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZU9iaiA9IHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiB7ICRBUFBFTkQ6IFt0dXJuXSB9LFxuICAgICAgICAgICAgICAgIHVwZGF0ZWRfYXQ6IG5vd0lzbygpXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZCA9IGF3YWl0IEVscGhpZU1lc3NhZ2VNb2RlbC51cGRhdGUoXG4gICAgICAgICAgICAgICAgeyBjb252ZXJzYXRpb25faWQgfSxcbiAgICAgICAgICAgICAgICB1cGRhdGVPYmogYXMgdW5rbm93biBhcyBQYXJhbWV0ZXJzPHR5cGVvZiBFbHBoaWVNZXNzYWdlTW9kZWwudXBkYXRlPlsxXSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogbmV3IGR5bmFtb29zZS5Db25kaXRpb24oKS5hdHRyaWJ1dGUoXCJjb252ZXJzYXRpb25faWRcIikuZXhpc3RzKClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZWQgYXMgdW5rbm93biBhcyBFbHBoaWVNZXNzYWdlO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzTm90Rm91bmRFcnJvcihlcnJvcikgfHwgaXNDb25kaXRpb25hbENoZWNrRmFpbGVkKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBDb252ZXJzYXRpb25Ob3RGb3VuZEVycm9yKGNvbnZlcnNhdGlvbl9pZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyB3cmFwVW5leHBlY3RlZChcImFwcGVuZFR1cm5cIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEZldGNoZXMgb25lIGNvbnZlcnNhdGlvbiBieSBgY29udmVyc2F0aW9uX2lkYC5cbiAgICAgKiBUaHJvd3MgYENvbnZlcnNhdGlvbk5vdEZvdW5kRXJyb3JgIHdoZW4gbWlzc2luZy5cbiAgICAgKi9cbiAgICBnZXRDb252ZXJzYXRpb24gPSBhc3luYyAoY29udmVyc2F0aW9uX2lkOiBzdHJpbmcpOiBQcm9taXNlPEVscGhpZU1lc3NhZ2U+ID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnZlcnNhdGlvbiA9IGF3YWl0IEVscGhpZU1lc3NhZ2VNb2RlbC5nZXQoY29udmVyc2F0aW9uX2lkKTtcbiAgICAgICAgICAgIGlmICghY29udmVyc2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IENvbnZlcnNhdGlvbk5vdEZvdW5kRXJyb3IoY29udmVyc2F0aW9uX2lkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjb252ZXJzYXRpb24gYXMgRWxwaGllTWVzc2FnZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIENvbnZlcnNhdGlvbk5vdEZvdW5kRXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc05vdEZvdW5kRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IENvbnZlcnNhdGlvbk5vdEZvdW5kRXJyb3IoY29udmVyc2F0aW9uX2lkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IHdyYXBVbmV4cGVjdGVkKFwiZ2V0Q29udmVyc2F0aW9uXCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMaXN0cyBjb252ZXJzYXRpb25zIGZvciBhIHVzZXIgdmlhIEdTSSBgdXNlcl9pZC1pbmRleGAuXG4gICAgICogTmV3ZXN0LWZpcnN0IG9yZGVyIGlzIGFwcGxpZWQgaW4gbWVtb3J5IG9uIGB1cGRhdGVkX2F0YCAobm90IGEgR1NJIHJhbmdlIGtleSkuXG4gICAgICovXG4gICAgbGlzdENvbnZlcnNhdGlvbnNGb3JVc2VyID0gYXN5bmMgKFxuICAgICAgICB1c2VyX2lkOiBzdHJpbmcsXG4gICAgICAgIHsgbGltaXQsIGxhc3RLZXkgfTogeyBsaW1pdD86IG51bWJlcjsgbGFzdEtleT86IER5bmFtb0tleSB9ID0ge31cbiAgICApOiBQcm9taXNlPExpc3RSZXN1bHQ+ID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBxdWVyeUJ1aWxkZXIgPSBFbHBoaWVNZXNzYWdlTW9kZWwucXVlcnkoXCJ1c2VyX2lkXCIpXG4gICAgICAgICAgICAgICAgLmVxKHVzZXJfaWQpXG4gICAgICAgICAgICAgICAgLnVzaW5nKFwidXNlcl9pZC1pbmRleFwiKTtcblxuICAgICAgICAgICAgaWYgKGxhc3RLZXkpIHtcbiAgICAgICAgICAgICAgICBxdWVyeUJ1aWxkZXIgPSBxdWVyeUJ1aWxkZXIuc3RhcnRBdChsYXN0S2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgbGltaXQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICBxdWVyeUJ1aWxkZXIgPSBxdWVyeUJ1aWxkZXIubGltaXQobGltaXQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBxdWVyeVJlc3VsdCA9IGF3YWl0IHF1ZXJ5QnVpbGRlci5leGVjKCk7XG4gICAgICAgICAgICBjb25zdCBpdGVtcyA9IFsuLi4ocXVlcnlSZXN1bHQgYXMgdW5rbm93biBhcyBFbHBoaWVNZXNzYWdlW10pXS5zb3J0KChhLCBiKSA9PlxuICAgICAgICAgICAgICAgIChiLnVwZGF0ZWRfYXQgPz8gXCJcIikubG9jYWxlQ29tcGFyZShhLnVwZGF0ZWRfYXQgPz8gXCJcIilcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGl0ZW1zLFxuICAgICAgICAgICAgICAgIGxhc3RLZXk6IHF1ZXJ5UmVzdWx0Lmxhc3RLZXkgYXMgRHluYW1vS2V5IHwgdW5kZWZpbmVkXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgd3JhcFVuZXhwZWN0ZWQoXCJsaXN0Q29udmVyc2F0aW9uc0ZvclVzZXJcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExpc3RzIGNvbnZlcnNhdGlvbnMgbGlua2VkIHRvIGEgc2Vzc2lvbiB2aWEgR1NJIGBlbHBoaWVTZXNzaW9uSWQtaW5kZXhgLlxuICAgICAqL1xuICAgIGxpc3RDb252ZXJzYXRpb25zRm9yU2Vzc2lvbiA9IGFzeW5jIChlbHBoaWVTZXNzaW9uSWQ6IHN0cmluZyk6IFByb21pc2U8RWxwaGllTWVzc2FnZVtdPiA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeVJlc3VsdCA9IGF3YWl0IEVscGhpZU1lc3NhZ2VNb2RlbC5xdWVyeShcImVscGhpZVNlc3Npb25JZFwiKVxuICAgICAgICAgICAgICAgIC5lcShlbHBoaWVTZXNzaW9uSWQpXG4gICAgICAgICAgICAgICAgLnVzaW5nKFwiZWxwaGllU2Vzc2lvbklkLWluZGV4XCIpXG4gICAgICAgICAgICAgICAgLmV4ZWMoKTtcbiAgICAgICAgICAgIHJldHVybiBxdWVyeVJlc3VsdCBhcyB1bmtub3duIGFzIEVscGhpZU1lc3NhZ2VbXTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IHdyYXBVbmV4cGVjdGVkKFwibGlzdENvbnZlcnNhdGlvbnNGb3JTZXNzaW9uXCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBwcml2YXRlIGFzc2VydFZhbGlkVHVybiA9ICh0dXJuOiBFbHBoaWVNZXNzYWdlVHVybik6IHZvaWQgPT4ge1xuICAgICAgICBpZiAoIXR1cm4gfHwgdHlwZW9mIHR1cm4udGV4dCAhPT0gXCJzdHJpbmdcIiB8fCB0dXJuLnRleHQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRWxwaGllVmFsaWRhdGlvbkVycm9yKFwidHVybi50ZXh0IGlzIHJlcXVpcmVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNWYWxpZFJvbGUodHVybi5yb2xlKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVscGhpZVZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICAgICAgICBgSW52YWxpZCB0dXJuLnJvbGUgXCIke3R1cm4ucm9sZX1cIi4gRXhwZWN0ZWQgXCJ1c2VyXCIgfCBcImVscGhpZVwiLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0dXJuLnRpbWVzdGFtcCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVscGhpZVZhbGlkYXRpb25FcnJvcihcInR1cm4udGltZXN0YW1wIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuY29uc3QgaXNOb3RGb3VuZEVycm9yID0gKGVycm9yOiB1bmtub3duKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgbmFtZSA9IChlcnJvciBhcyB7IG5hbWU/OiBzdHJpbmcgfSB8IG51bGwpPy5uYW1lO1xuICAgIHJldHVybiBuYW1lID09PSBcIkl0ZW1Ob3RGb3VuZEV4Y2VwdGlvblwiIHx8IG5hbWUgPT09IFwiSXRlbU5vdEZvdW5kRXJyb3JcIjtcbn07XG5cbmNvbnN0IGlzQ29uZGl0aW9uYWxDaGVja0ZhaWxlZCA9IChlcnJvcjogdW5rbm93bik6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IG5hbWUgPSAoZXJyb3IgYXMgeyBuYW1lPzogc3RyaW5nIH0gfCBudWxsKT8ubmFtZTtcbiAgICByZXR1cm4gbmFtZSA9PT0gXCJDb25kaXRpb25hbENoZWNrRmFpbGVkRXhjZXB0aW9uXCI7XG59O1xuXG5jb25zdCB3cmFwVW5leHBlY3RlZCA9IChvcGVyYXRpb246IHN0cmluZywgZXJyb3I6IHVua25vd24pOiBFcnJvciA9PiB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKTtcbiAgICByZXR1cm4gbmV3IEVycm9yKGBFbHBoaWVNZXNzYWdlU2VydmljZS4ke29wZXJhdGlvbn0gZmFpbGVkOiAke21lc3NhZ2V9YCk7XG59O1xuXG5leHBvcnQgY29uc3QgZWxwaGllTWVzc2FnZVNlcnZpY2UgPSBuZXcgRWxwaGllTWVzc2FnZVNlcnZpY2UoKTtcbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { Item } from "dynamoose/dist/Item";
2
+ export declare const ELPHIE_MESSAGE_ROLE: {
3
+ readonly USER: "user";
4
+ readonly ELPHIE: "elphie";
5
+ };
6
+ export type ElphieMessageRole = (typeof ELPHIE_MESSAGE_ROLE)[keyof typeof ELPHIE_MESSAGE_ROLE];
7
+ export interface ElphieMessageTurn {
8
+ role: ElphieMessageRole;
9
+ text: string;
10
+ timestamp: string;
11
+ }
12
+ export interface ElphieMessage extends Item {
13
+ conversation_id: string;
14
+ user_id: string;
15
+ elphieSessionId: string;
16
+ content: ElphieMessageTurn[];
17
+ updated_at: string;
18
+ }
19
+ export type CreateElphieConversationInput = {
20
+ conversation_id: string;
21
+ user_id: string;
22
+ elphieSessionId: string;
23
+ firstTurn: ElphieMessageTurn;
24
+ };
25
+ export declare const ElphieMessageModel: import("dynamoose/dist/General").ModelType<ElphieMessage>;
@@ -0,0 +1,78 @@
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.ElphieMessageModel = exports.ELPHIE_MESSAGE_ROLE = void 0;
7
+ const dynamoose_1 = __importDefault(require("dynamoose"));
8
+ const table_names_1 = require("../../config/table-names");
9
+ exports.ELPHIE_MESSAGE_ROLE = {
10
+ USER: "user",
11
+ ELPHIE: "elphie"
12
+ };
13
+ /**
14
+ * Dynamoose schema for `elphie_messages`.
15
+ *
16
+ * HASH: `conversation_id`.
17
+ * GSI `user_id-index`: HASH `user_id` only (`updated_at` is a plain attribute).
18
+ * GSI `elphieSessionId-index`: HASH `elphieSessionId` (links to `elphie_sessions`).
19
+ *
20
+ * `create: false` — tables + GSIs are provisioned via CDK, not auto-created on boot.
21
+ */
22
+ const elphieMessageSchema = new dynamoose_1.default.Schema({
23
+ conversation_id: {
24
+ type: String,
25
+ hashKey: true,
26
+ required: true
27
+ },
28
+ user_id: {
29
+ type: String,
30
+ required: true,
31
+ index: {
32
+ name: "user_id-index",
33
+ type: "global"
34
+ }
35
+ },
36
+ elphieSessionId: {
37
+ type: String,
38
+ required: true,
39
+ index: {
40
+ name: "elphieSessionId-index",
41
+ type: "global"
42
+ }
43
+ },
44
+ content: {
45
+ type: Array,
46
+ schema: [
47
+ {
48
+ type: Object,
49
+ schema: {
50
+ role: {
51
+ type: String,
52
+ required: true,
53
+ enum: [exports.ELPHIE_MESSAGE_ROLE.USER, exports.ELPHIE_MESSAGE_ROLE.ELPHIE]
54
+ },
55
+ text: {
56
+ type: String,
57
+ required: true
58
+ },
59
+ timestamp: {
60
+ type: String,
61
+ required: true
62
+ }
63
+ }
64
+ }
65
+ ],
66
+ required: true,
67
+ default: []
68
+ },
69
+ updated_at: {
70
+ type: String,
71
+ required: true
72
+ }
73
+ }, {
74
+ saveUnknown: false,
75
+ timestamps: true
76
+ });
77
+ exports.ElphieMessageModel = dynamoose_1.default.model(table_names_1.TABLE_NAMES.ELPHIE_MESSAGES, elphieMessageSchema, { create: false, waitForActive: false });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxwaGllLW1lc3NhZ2UtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3VzdG9tZXItdXNlci9lbHBoaWUvZWxwaGllLW1lc3NhZ2UtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMERBQWtDO0FBRWxDLDBEQUF1RDtBQUUxQyxRQUFBLG1CQUFtQixHQUFHO0lBQy9CLElBQUksRUFBRSxNQUFNO0lBQ1osTUFBTSxFQUFFLFFBQVE7Q0FDVixDQUFDO0FBeUJYOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLG1CQUFTLENBQUMsTUFBTSxDQUM1QztJQUNJLGVBQWUsRUFBRTtRQUNiLElBQUksRUFBRSxNQUFNO1FBQ1osT0FBTyxFQUFFLElBQUk7UUFDYixRQUFRLEVBQUUsSUFBSTtLQUNqQjtJQUNELE9BQU8sRUFBRTtRQUNMLElBQUksRUFBRSxNQUFNO1FBQ1osUUFBUSxFQUFFLElBQUk7UUFDZCxLQUFLLEVBQUU7WUFDSCxJQUFJLEVBQUUsZUFBZTtZQUNyQixJQUFJLEVBQUUsUUFBUTtTQUNqQjtLQUNKO0lBQ0QsZUFBZSxFQUFFO1FBQ2IsSUFBSSxFQUFFLE1BQU07UUFDWixRQUFRLEVBQUUsSUFBSTtRQUNkLEtBQUssRUFBRTtZQUNILElBQUksRUFBRSx1QkFBdUI7WUFDN0IsSUFBSSxFQUFFLFFBQVE7U0FDakI7S0FDSjtJQUNELE9BQU8sRUFBRTtRQUNMLElBQUksRUFBRSxLQUFLO1FBQ1gsTUFBTSxFQUFFO1lBQ0o7Z0JBQ0ksSUFBSSxFQUFFLE1BQU07Z0JBQ1osTUFBTSxFQUFFO29CQUNKLElBQUksRUFBRTt3QkFDRixJQUFJLEVBQUUsTUFBTTt3QkFDWixRQUFRLEVBQUUsSUFBSTt3QkFDZCxJQUFJLEVBQUUsQ0FBQywyQkFBbUIsQ0FBQyxJQUFJLEVBQUUsMkJBQW1CLENBQUMsTUFBTSxDQUFDO3FCQUMvRDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0YsSUFBSSxFQUFFLE1BQU07d0JBQ1osUUFBUSxFQUFFLElBQUk7cUJBQ2pCO29CQUNELFNBQVMsRUFBRTt3QkFDUCxJQUFJLEVBQUUsTUFBTTt3QkFDWixRQUFRLEVBQUUsSUFBSTtxQkFDakI7aUJBQ0o7YUFDSjtTQUNKO1FBQ0QsUUFBUSxFQUFFLElBQUk7UUFDZCxPQUFPLEVBQUUsRUFBRTtLQUNkO0lBQ0QsVUFBVSxFQUFFO1FBQ1IsSUFBSSxFQUFFLE1BQU07UUFDWixRQUFRLEVBQUUsSUFBSTtLQUNqQjtDQUNKLEVBQ0Q7SUFDSSxXQUFXLEVBQUUsS0FBSztJQUNsQixVQUFVLEVBQUUsSUFBSTtDQUNuQixDQUNKLENBQUM7QUFFVyxRQUFBLGtCQUFrQixHQUFHLG1CQUFTLENBQUMsS0FBSyxDQUM3Qyx5QkFBVyxDQUFDLGVBQWUsRUFDM0IsbUJBQW1CLEVBQ25CLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZHluYW1vb3NlIGZyb20gXCJkeW5hbW9vc2VcIjtcbmltcG9ydCB7IEl0ZW0gfSBmcm9tIFwiZHluYW1vb3NlL2Rpc3QvSXRlbVwiO1xuaW1wb3J0IHsgVEFCTEVfTkFNRVMgfSBmcm9tIFwiLi4vLi4vY29uZmlnL3RhYmxlLW5hbWVzXCI7XG5cbmV4cG9ydCBjb25zdCBFTFBISUVfTUVTU0FHRV9ST0xFID0ge1xuICAgIFVTRVI6IFwidXNlclwiLFxuICAgIEVMUEhJRTogXCJlbHBoaWVcIlxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgRWxwaGllTWVzc2FnZVJvbGUgPSAodHlwZW9mIEVMUEhJRV9NRVNTQUdFX1JPTEUpW2tleW9mIHR5cGVvZiBFTFBISUVfTUVTU0FHRV9ST0xFXTtcblxuZXhwb3J0IGludGVyZmFjZSBFbHBoaWVNZXNzYWdlVHVybiB7XG4gICAgcm9sZTogRWxwaGllTWVzc2FnZVJvbGU7XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIHRpbWVzdGFtcDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVscGhpZU1lc3NhZ2UgZXh0ZW5kcyBJdGVtIHtcbiAgICBjb252ZXJzYXRpb25faWQ6IHN0cmluZztcbiAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgZWxwaGllU2Vzc2lvbklkOiBzdHJpbmc7XG4gICAgY29udGVudDogRWxwaGllTWVzc2FnZVR1cm5bXTtcbiAgICB1cGRhdGVkX2F0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIENyZWF0ZUVscGhpZUNvbnZlcnNhdGlvbklucHV0ID0ge1xuICAgIGNvbnZlcnNhdGlvbl9pZDogc3RyaW5nO1xuICAgIHVzZXJfaWQ6IHN0cmluZztcbiAgICBlbHBoaWVTZXNzaW9uSWQ6IHN0cmluZztcbiAgICBmaXJzdFR1cm46IEVscGhpZU1lc3NhZ2VUdXJuO1xufTtcblxuLyoqXG4gKiBEeW5hbW9vc2Ugc2NoZW1hIGZvciBgZWxwaGllX21lc3NhZ2VzYC5cbiAqXG4gKiBIQVNIOiBgY29udmVyc2F0aW9uX2lkYC5cbiAqIEdTSSBgdXNlcl9pZC1pbmRleGA6IEhBU0ggYHVzZXJfaWRgIG9ubHkgKGB1cGRhdGVkX2F0YCBpcyBhIHBsYWluIGF0dHJpYnV0ZSkuXG4gKiBHU0kgYGVscGhpZVNlc3Npb25JZC1pbmRleGA6IEhBU0ggYGVscGhpZVNlc3Npb25JZGAgKGxpbmtzIHRvIGBlbHBoaWVfc2Vzc2lvbnNgKS5cbiAqXG4gKiBgY3JlYXRlOiBmYWxzZWAg4oCUIHRhYmxlcyArIEdTSXMgYXJlIHByb3Zpc2lvbmVkIHZpYSBDREssIG5vdCBhdXRvLWNyZWF0ZWQgb24gYm9vdC5cbiAqL1xuY29uc3QgZWxwaGllTWVzc2FnZVNjaGVtYSA9IG5ldyBkeW5hbW9vc2UuU2NoZW1hKFxuICAgIHtcbiAgICAgICAgY29udmVyc2F0aW9uX2lkOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBoYXNoS2V5OiB0cnVlLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgdXNlcl9pZDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBpbmRleDoge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwidXNlcl9pZC1pbmRleFwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZ2xvYmFsXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZWxwaGllU2Vzc2lvbklkOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIGluZGV4OiB7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJlbHBoaWVTZXNzaW9uSWQtaW5kZXhcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImdsb2JhbFwiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICAgIHR5cGU6IEFycmF5LFxuICAgICAgICAgICAgc2NoZW1hOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBPYmplY3QsXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtOiBbRUxQSElFX01FU1NBR0VfUk9MRS5VU0VSLCBFTFBISUVfTUVTU0FHRV9ST0xFLkVMUEhJRV1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBkZWZhdWx0OiBbXVxuICAgICAgICB9LFxuICAgICAgICB1cGRhdGVkX2F0OiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZVxuICAgICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHNhdmVVbmtub3duOiBmYWxzZSxcbiAgICAgICAgdGltZXN0YW1wczogdHJ1ZVxuICAgIH1cbik7XG5cbmV4cG9ydCBjb25zdCBFbHBoaWVNZXNzYWdlTW9kZWwgPSBkeW5hbW9vc2UubW9kZWw8RWxwaGllTWVzc2FnZT4oXG4gICAgVEFCTEVfTkFNRVMuRUxQSElFX01FU1NBR0VTLFxuICAgIGVscGhpZU1lc3NhZ2VTY2hlbWEsXG4gICAgeyBjcmVhdGU6IGZhbHNlLCB3YWl0Rm9yQWN0aXZlOiBmYWxzZSB9XG4pO1xuIl19
@@ -0,0 +1,46 @@
1
+ import { DynamoKey } from "../../base-dynamoose-dao";
2
+ import { CreateElphieSessionInput, ElphieSession } from "./elphie-session-model";
3
+ type ListResult = {
4
+ items: ElphieSession[];
5
+ lastKey?: DynamoKey;
6
+ };
7
+ /**
8
+ * Service/DAO for `elphie_sessions`.
9
+ *
10
+ * HASH: `elphieSessionId` (UUID set here — never schema-defaulted).
11
+ * List-by-user: GSI `user_id-index`.
12
+ */
13
+ declare class ElphieSessionService {
14
+ /**
15
+ * Creates a session. Generates `elphieSessionId` via `randomUUID()` and stamps ISO UTC times.
16
+ *
17
+ * @example
18
+ * const session = await elphieSessionService.createSession({
19
+ * user_id: "user-1",
20
+ * conversation_id: "conv-1",
21
+ * title: "Birthday planning",
22
+ * fmp_context: { occasion: "birthday" }
23
+ * });
24
+ */
25
+ createSession: (input: CreateElphieSessionInput) => Promise<ElphieSession>;
26
+ /**
27
+ * Fetches one session by `elphieSessionId`.
28
+ * Throws `SessionNotFoundError` when missing.
29
+ */
30
+ getSessionById: (elphieSessionId: string) => Promise<ElphieSession>;
31
+ /**
32
+ * Lists sessions for a user via GSI `user_id-index`.
33
+ * Newest-first order is applied in memory on `created_at` (not a GSI range key).
34
+ * Pass `lastKey` from the previous response for pagination.
35
+ */
36
+ listSessionsForUser: (user_id: string, { limit, lastKey }?: {
37
+ limit?: number;
38
+ lastKey?: DynamoKey;
39
+ }) => Promise<ListResult>;
40
+ /**
41
+ * Atomically updates session `title` + `updated_at`.
42
+ */
43
+ updateSessionTitle: (elphieSessionId: string, title: string) => Promise<ElphieSession>;
44
+ }
45
+ export declare const elphieSessionService: ElphieSessionService;
46
+ export {};
@@ -0,0 +1,134 @@
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.elphieSessionService = void 0;
7
+ const crypto_1 = require("crypto");
8
+ const dynamoose_1 = __importDefault(require("dynamoose"));
9
+ const elphie_errors_1 = require("./elphie-errors");
10
+ const elphie_session_model_1 = require("./elphie-session-model");
11
+ const nowIso = () => new Date().toISOString();
12
+ /**
13
+ * Service/DAO for `elphie_sessions`.
14
+ *
15
+ * HASH: `elphieSessionId` (UUID set here — never schema-defaulted).
16
+ * List-by-user: GSI `user_id-index`.
17
+ */
18
+ class ElphieSessionService {
19
+ constructor() {
20
+ /**
21
+ * Creates a session. Generates `elphieSessionId` via `randomUUID()` and stamps ISO UTC times.
22
+ *
23
+ * @example
24
+ * const session = await elphieSessionService.createSession({
25
+ * user_id: "user-1",
26
+ * conversation_id: "conv-1",
27
+ * title: "Birthday planning",
28
+ * fmp_context: { occasion: "birthday" }
29
+ * });
30
+ */
31
+ this.createSession = async (input) => {
32
+ try {
33
+ const now = nowIso();
34
+ const created = await elphie_session_model_1.ElphieSessionModel.create({
35
+ elphieSessionId: (0, crypto_1.randomUUID)(),
36
+ user_id: input.user_id,
37
+ conversation_id: input.conversation_id,
38
+ title: input.title,
39
+ fmp_context: input.fmp_context,
40
+ created_at: now,
41
+ updated_at: now
42
+ });
43
+ return created;
44
+ }
45
+ catch (error) {
46
+ throw wrapUnexpected("createSession", error);
47
+ }
48
+ };
49
+ /**
50
+ * Fetches one session by `elphieSessionId`.
51
+ * Throws `SessionNotFoundError` when missing.
52
+ */
53
+ this.getSessionById = async (elphieSessionId) => {
54
+ try {
55
+ const session = await elphie_session_model_1.ElphieSessionModel.get(elphieSessionId);
56
+ if (!session) {
57
+ throw new elphie_errors_1.SessionNotFoundError(elphieSessionId);
58
+ }
59
+ return session;
60
+ }
61
+ catch (error) {
62
+ if (error instanceof elphie_errors_1.SessionNotFoundError) {
63
+ throw error;
64
+ }
65
+ // Dynamoose may throw ItemNotFoundError depending on settings
66
+ if (isNotFoundError(error)) {
67
+ throw new elphie_errors_1.SessionNotFoundError(elphieSessionId);
68
+ }
69
+ throw wrapUnexpected("getSessionById", error);
70
+ }
71
+ };
72
+ /**
73
+ * Lists sessions for a user via GSI `user_id-index`.
74
+ * Newest-first order is applied in memory on `created_at` (not a GSI range key).
75
+ * Pass `lastKey` from the previous response for pagination.
76
+ */
77
+ this.listSessionsForUser = async (user_id, { limit, lastKey } = {}) => {
78
+ try {
79
+ let queryBuilder = elphie_session_model_1.ElphieSessionModel.query("user_id")
80
+ .eq(user_id)
81
+ .using("user_id-index");
82
+ if (lastKey) {
83
+ queryBuilder = queryBuilder.startAt(lastKey);
84
+ }
85
+ if (typeof limit === "number") {
86
+ queryBuilder = queryBuilder.limit(limit);
87
+ }
88
+ const queryResult = await queryBuilder.exec();
89
+ const items = [...queryResult].sort((a, b) => (b.created_at ?? "").localeCompare(a.created_at ?? ""));
90
+ return {
91
+ items,
92
+ lastKey: queryResult.lastKey
93
+ };
94
+ }
95
+ catch (error) {
96
+ throw wrapUnexpected("listSessionsForUser", error);
97
+ }
98
+ };
99
+ /**
100
+ * Atomically updates session `title` + `updated_at`.
101
+ */
102
+ this.updateSessionTitle = async (elphieSessionId, title) => {
103
+ try {
104
+ const updated = await elphie_session_model_1.ElphieSessionModel.update({ elphieSessionId }, {
105
+ title,
106
+ updated_at: nowIso()
107
+ }, {
108
+ condition: new dynamoose_1.default.Condition().attribute("elphieSessionId").exists()
109
+ });
110
+ return updated;
111
+ }
112
+ catch (error) {
113
+ if (isNotFoundError(error) || isConditionalCheckFailed(error)) {
114
+ throw new elphie_errors_1.SessionNotFoundError(elphieSessionId);
115
+ }
116
+ throw wrapUnexpected("updateSessionTitle", error);
117
+ }
118
+ };
119
+ }
120
+ }
121
+ const isNotFoundError = (error) => {
122
+ const name = error?.name;
123
+ return name === "ItemNotFoundException" || name === "ItemNotFoundError";
124
+ };
125
+ const isConditionalCheckFailed = (error) => {
126
+ const name = error?.name;
127
+ return name === "ConditionalCheckFailedException";
128
+ };
129
+ const wrapUnexpected = (operation, error) => {
130
+ const message = error instanceof Error ? error.message : String(error);
131
+ return new Error(`ElphieSessionService.${operation} failed: ${message}`);
132
+ };
133
+ exports.elphieSessionService = new ElphieSessionService();
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxwaGllLXNlc3Npb24tZGFvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2N1c3RvbWVyLXVzZXIvZWxwaGllL2VscGhpZS1zZXNzaW9uLWRhby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtQ0FBb0M7QUFDcEMsMERBQWtDO0FBRWxDLG1EQUF1RDtBQUN2RCxpRUFJZ0M7QUFPaEMsTUFBTSxNQUFNLEdBQUcsR0FBVyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUV0RDs7Ozs7R0FLRztBQUNILE1BQU0sb0JBQW9CO0lBQTFCO1FBQ0k7Ozs7Ozs7Ozs7V0FVRztRQUNILGtCQUFhLEdBQUcsS0FBSyxFQUFFLEtBQStCLEVBQTBCLEVBQUU7WUFDOUUsSUFBSSxDQUFDO2dCQUNELE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDO2dCQUNyQixNQUFNLE9BQU8sR0FBRyxNQUFNLHlDQUFrQixDQUFDLE1BQU0sQ0FBQztvQkFDNUMsZUFBZSxFQUFFLElBQUEsbUJBQVUsR0FBRTtvQkFDN0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO29CQUN0QixlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7b0JBQ3RDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztvQkFDbEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO29CQUM5QixVQUFVLEVBQUUsR0FBRztvQkFDZixVQUFVLEVBQUUsR0FBRztpQkFDbEIsQ0FBQyxDQUFDO2dCQUNILE9BQU8sT0FBd0IsQ0FBQztZQUNwQyxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDYixNQUFNLGNBQWMsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDakQsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGOzs7V0FHRztRQUNILG1CQUFjLEdBQUcsS0FBSyxFQUFFLGVBQXVCLEVBQTBCLEVBQUU7WUFDdkUsSUFBSSxD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QkFBb0IsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0RCxDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBQ04sQ0FBQztDQUFBO0FBRUQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUFjLEVBQVcsRUFBRTtJQUNoRCxNQUFNLElBQUksR0FBSSxLQUFrQyxFQUFFLElBQUksQ0FBQztJQUN2RCxPQUFPLElBQUksS0FBSyx1QkFBdUIsSUFBSSxJQUFJLEtBQUssbUJBQW1CLENBQUM7QUFDNUUsQ0FBQyxDQUFDO0FBRUYsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEtBQWMsRUFBVyxFQUFFO0lBQ3pELE1BQU0sSUFBSSxHQUFJLEtBQWtDLEVBQUUsSUFBSSxDQUFDO0lBQ3ZELE9BQU8sSUFBSSxLQUFLLGlDQUFpQyxDQUFDO0FBQ3RELENBQUMsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsU0FBaUIsRUFBRSxLQUFjLEVBQVMsRUFBRTtJQUNoRSxNQUFNLE9BQU8sR0FBRyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkUsT0FBTyxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsU0FBUyxZQUFZLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDN0UsQ0FBQyxDQUFDO0FBRVcsUUFBQSxvQkFBb0IsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByYW5kb21VVUlEIH0gZnJvbSBcImNyeXB0b1wiO1xuaW1wb3J0IGR5bmFtb29zZSBmcm9tIFwiZHluYW1vb3NlXCI7XG5pbXBvcnQgeyBEeW5hbW9LZXkgfSBmcm9tIFwiLi4vLi4vYmFzZS1keW5hbW9vc2UtZGFvXCI7XG5pbXBvcnQgeyBTZXNzaW9uTm90Rm91bmRFcnJvciB9IGZyb20gXCIuL2VscGhpZS1lcnJvcnNcIjtcbmltcG9ydCB7XG4gICAgQ3JlYXRlRWxwaGllU2Vzc2lvbklucHV0LFxuICAgIEVscGhpZVNlc3Npb24sXG4gICAgRWxwaGllU2Vzc2lvbk1vZGVsXG59IGZyb20gXCIuL2VscGhpZS1zZXNzaW9uLW1vZGVsXCI7XG5cbnR5cGUgTGlzdFJlc3VsdCA9IHtcbiAgICBpdGVtczogRWxwaGllU2Vzc2lvbltdO1xuICAgIGxhc3RLZXk/OiBEeW5hbW9LZXk7XG59O1xuXG5jb25zdCBub3dJc28gPSAoKTogc3RyaW5nID0+IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcblxuLyoqXG4gKiBTZXJ2aWNlL0RBTyBmb3IgYGVscGhpZV9zZXNzaW9uc2AuXG4gKlxuICogSEFTSDogYGVscGhpZVNlc3Npb25JZGAgKFVVSUQgc2V0IGhlcmUg4oCUIG5ldmVyIHNjaGVtYS1kZWZhdWx0ZWQpLlxuICogTGlzdC1ieS11c2VyOiBHU0kgYHVzZXJfaWQtaW5kZXhgLlxuICovXG5jbGFzcyBFbHBoaWVTZXNzaW9uU2VydmljZSB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNlc3Npb24uIEdlbmVyYXRlcyBgZWxwaGllU2Vzc2lvbklkYCB2aWEgYHJhbmRvbVVVSUQoKWAgYW5kIHN0YW1wcyBJU08gVVRDIHRpbWVzLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCBzZXNzaW9uID0gYXdhaXQgZWxwaGllU2Vzc2lvblNlcnZpY2UuY3JlYXRlU2Vzc2lvbih7XG4gICAgICogICAgIHVzZXJfaWQ6IFwidXNlci0xXCIsXG4gICAgICogICAgIGNvbnZlcnNhdGlvbl9pZDogXCJjb252LTFcIixcbiAgICAgKiAgICAgdGl0bGU6IFwiQmlydGhkYXkgcGxhbm5pbmdcIixcbiAgICAgKiAgICAgZm1wX2NvbnRleHQ6IHsgb2NjYXNpb246IFwiYmlydGhkYXlcIiB9XG4gICAgICogfSk7XG4gICAgICovXG4gICAgY3JlYXRlU2Vzc2lvbiA9IGFzeW5jIChpbnB1dDogQ3JlYXRlRWxwaGllU2Vzc2lvbklucHV0KTogUHJvbWlzZTxFbHBoaWVTZXNzaW9uPiA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBub3cgPSBub3dJc28oKTtcbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCBFbHBoaWVTZXNzaW9uTW9kZWwuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICBlbHBoaWVTZXNzaW9uSWQ6IHJhbmRvbVVVSUQoKSxcbiAgICAgICAgICAgICAgICB1c2VyX2lkOiBpbnB1dC51c2VyX2lkLFxuICAgICAgICAgICAgICAgIGNvbnZlcnNhdGlvbl9pZDogaW5wdXQuY29udmVyc2F0aW9uX2lkLFxuICAgICAgICAgICAgICAgIHRpdGxlOiBpbnB1dC50aXRsZSxcbiAgICAgICAgICAgICAgICBmbXBfY29udGV4dDogaW5wdXQuZm1wX2NvbnRleHQsXG4gICAgICAgICAgICAgICAgY3JlYXRlZF9hdDogbm93LFxuICAgICAgICAgICAgICAgIHVwZGF0ZWRfYXQ6IG5vd1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlZCBhcyBFbHBoaWVTZXNzaW9uO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgd3JhcFVuZXhwZWN0ZWQoXCJjcmVhdGVTZXNzaW9uXCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGZXRjaGVzIG9uZSBzZXNzaW9uIGJ5IGBlbHBoaWVTZXNzaW9uSWRgLlxuICAgICAqIFRocm93cyBgU2Vzc2lvbk5vdEZvdW5kRXJyb3JgIHdoZW4gbWlzc2luZy5cbiAgICAgKi9cbiAgICBnZXRTZXNzaW9uQnlJZCA9IGFzeW5jIChlbHBoaWVTZXNzaW9uSWQ6IHN0cmluZyk6IFByb21pc2U8RWxwaGllU2Vzc2lvbj4gPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IEVscGhpZVNlc3Npb25Nb2RlbC5nZXQoZWxwaGllU2Vzc2lvbklkKTtcbiAgICAgICAgICAgIGlmICghc2Vzc2lvbikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBTZXNzaW9uTm90Rm91bmRFcnJvcihlbHBoaWVTZXNzaW9uSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHNlc3Npb24gYXMgRWxwaGllU2Vzc2lvbjtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFNlc3Npb25Ob3RGb3VuZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBEeW5hbW9vc2UgbWF5IHRocm93IEl0ZW1Ob3RGb3VuZEVycm9yIGRlcGVuZGluZyBvbiBzZXR0aW5nc1xuICAgICAgICAgICAgaWYgKGlzTm90Rm91bmRFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU2Vzc2lvbk5vdEZvdW5kRXJyb3IoZWxwaGllU2Vzc2lvbklkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IHdyYXBVbmV4cGVjdGVkKFwiZ2V0U2Vzc2lvbkJ5SWRcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExpc3RzIHNlc3Npb25zIGZvciBhIHVzZXIgdmlhIEdTSSBgdXNlcl9pZC1pbmRleGAuXG4gICAgICogTmV3ZXN0LWZpcnN0IG9yZGVyIGlzIGFwcGxpZWQgaW4gbWVtb3J5IG9uIGBjcmVhdGVkX2F0YCAobm90IGEgR1NJIHJhbmdlIGtleSkuXG4gICAgICogUGFzcyBgbGFzdEtleWAgZnJvbSB0aGUgcHJldmlvdXMgcmVzcG9uc2UgZm9yIHBhZ2luYXRpb24uXG4gICAgICovXG4gICAgbGlzdFNlc3Npb25zRm9yVXNlciA9IGFzeW5jIChcbiAgICAgICAgdXNlcl9pZDogc3RyaW5nLFxuICAgICAgICB7IGxpbWl0LCBsYXN0S2V5IH06IHsgbGltaXQ/OiBudW1iZXI7IGxhc3RLZXk/OiBEeW5hbW9LZXkgfSA9IHt9XG4gICAgKTogUHJvbWlzZTxMaXN0UmVzdWx0PiA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgcXVlcnlCdWlsZGVyID0gRWxwaGllU2Vzc2lvbk1vZGVsLnF1ZXJ5KFwidXNlcl9pZFwiKVxuICAgICAgICAgICAgICAgIC5lcSh1c2VyX2lkKVxuICAgICAgICAgICAgICAgIC51c2luZyhcInVzZXJfaWQtaW5kZXhcIik7XG5cbiAgICAgICAgICAgIGlmIChsYXN0S2V5KSB7XG4gICAgICAgICAgICAgICAgcXVlcnlCdWlsZGVyID0gcXVlcnlCdWlsZGVyLnN0YXJ0QXQobGFzdEtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIGxpbWl0ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgcXVlcnlCdWlsZGVyID0gcXVlcnlCdWlsZGVyLmxpbWl0KGxpbWl0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcXVlcnlSZXN1bHQgPSBhd2FpdCBxdWVyeUJ1aWxkZXIuZXhlYygpO1xuICAgICAgICAgICAgY29uc3QgaXRlbXMgPSBbLi4uKHF1ZXJ5UmVzdWx0IGFzIHVua25vd24gYXMgRWxwaGllU2Vzc2lvbltdKV0uc29ydCgoYSwgYikgPT5cbiAgICAgICAgICAgICAgICAoYi5jcmVhdGVkX2F0ID8/IFwiXCIpLmxvY2FsZUNvbXBhcmUoYS5jcmVhdGVkX2F0ID8/IFwiXCIpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBpdGVtcyxcbiAgICAgICAgICAgICAgICBsYXN0S2V5OiBxdWVyeVJlc3VsdC5sYXN0S2V5IGFzIER5bmFtb0tleSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IHdyYXBVbmV4cGVjdGVkKFwibGlzdFNlc3Npb25zRm9yVXNlclwiLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQXRvbWljYWxseSB1cGRhdGVzIHNlc3Npb24gYHRpdGxlYCArIGB1cGRhdGVkX2F0YC5cbiAgICAgKi9cbiAgICB1cGRhdGVTZXNzaW9uVGl0bGUgPSBhc3luYyAoZWxwaGllU2Vzc2lvbklkOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcpOiBQcm9taXNlPEVscGhpZVNlc3Npb24+ID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWQgPSBhd2FpdCBFbHBoaWVTZXNzaW9uTW9kZWwudXBkYXRlKFxuICAgICAgICAgICAgICAgIHsgZWxwaGllU2Vzc2lvbklkIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlZF9hdDogbm93SXNvKClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiBuZXcgZHluYW1vb3NlLkNvbmRpdGlvbigpLmF0dHJpYnV0ZShcImVscGhpZVNlc3Npb25JZFwiKS5leGlzdHMoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlZCBhcyB1bmtub3duIGFzIEVscGhpZVNlc3Npb247XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoaXNOb3RGb3VuZEVycm9yKGVycm9yKSB8fCBpc0NvbmRpdGlvbmFsQ2hlY2tGYWlsZWQoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFNlc3Npb25Ob3RGb3VuZEVycm9yKGVscGhpZVNlc3Npb25JZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyB3cmFwVW5leHBlY3RlZChcInVwZGF0ZVNlc3Npb25UaXRsZVwiLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5jb25zdCBpc05vdEZvdW5kRXJyb3IgPSAoZXJyb3I6IHVua25vd24pOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBuYW1lID0gKGVycm9yIGFzIHsgbmFtZT86IHN0cmluZyB9IHwgbnVsbCk/Lm5hbWU7XG4gICAgcmV0dXJuIG5hbWUgPT09IFwiSXRlbU5vdEZvdW5kRXhjZXB0aW9uXCIgfHwgbmFtZSA9PT0gXCJJdGVtTm90Rm91bmRFcnJvclwiO1xufTtcblxuY29uc3QgaXNDb25kaXRpb25hbENoZWNrRmFpbGVkID0gKGVycm9yOiB1bmtub3duKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgbmFtZSA9IChlcnJvciBhcyB7IG5hbWU/OiBzdHJpbmcgfSB8IG51bGwpPy5uYW1lO1xuICAgIHJldHVybiBuYW1lID09PSBcIkNvbmRpdGlvbmFsQ2hlY2tGYWlsZWRFeGNlcHRpb25cIjtcbn07XG5cbmNvbnN0IHdyYXBVbmV4cGVjdGVkID0gKG9wZXJhdGlvbjogc3RyaW5nLCBlcnJvcjogdW5rbm93bik6IEVycm9yID0+IHtcbiAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpO1xuICAgIHJldHVybiBuZXcgRXJyb3IoYEVscGhpZVNlc3Npb25TZXJ2aWNlLiR7b3BlcmF0aW9ufSBmYWlsZWQ6ICR7bWVzc2FnZX1gKTtcbn07XG5cbmV4cG9ydCBjb25zdCBlbHBoaWVTZXNzaW9uU2VydmljZSA9IG5ldyBFbHBoaWVTZXNzaW9uU2VydmljZSgpO1xuIl19
@@ -0,0 +1,26 @@
1
+ import { Item } from "dynamoose/dist/Item";
2
+ /**
3
+ * FMP context shape is still evolving — tighten once the product contract is fixed.
4
+ * Currently stored as an open object (no saveUnknown at schema root).
5
+ */
6
+ export type ElphieFmpContext = Record<string, unknown>;
7
+ export interface ElphieSession extends Item {
8
+ elphieSessionId: string;
9
+ user_id: string;
10
+ conversation_id: string;
11
+ title: string;
12
+ fmp_context?: ElphieFmpContext;
13
+ created_at: string;
14
+ updated_at: string;
15
+ }
16
+ /**
17
+ * Input for creating a session. `elphieSessionId` is set in the service/DAO layer
18
+ * via `crypto.randomUUID()` — never auto-generated in the schema.
19
+ */
20
+ export type CreateElphieSessionInput = {
21
+ user_id: string;
22
+ conversation_id: string;
23
+ title: string;
24
+ fmp_context?: ElphieFmpContext;
25
+ };
26
+ export declare const ElphieSessionModel: import("dynamoose/dist/General").ModelType<ElphieSession>;
@@ -0,0 +1,55 @@
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.ElphieSessionModel = void 0;
7
+ const dynamoose_1 = __importDefault(require("dynamoose"));
8
+ const table_names_1 = require("../../config/table-names");
9
+ /**
10
+ * Dynamoose schema for `elphie_sessions`.
11
+ *
12
+ * HASH: `elphieSessionId` (app-generated UUID — no schema default).
13
+ * GSI `user_id-index`: HASH `user_id` only (`created_at` / `updated_at` are plain attributes).
14
+ *
15
+ * `create: false` — tables + GSIs are provisioned via CDK, not auto-created on boot.
16
+ */
17
+ const elphieSessionSchema = new dynamoose_1.default.Schema({
18
+ elphieSessionId: {
19
+ type: String,
20
+ hashKey: true,
21
+ required: true
22
+ },
23
+ user_id: {
24
+ type: String,
25
+ required: true,
26
+ index: {
27
+ name: "user_id-index",
28
+ type: "global"
29
+ }
30
+ },
31
+ conversation_id: {
32
+ type: String,
33
+ required: true
34
+ },
35
+ title: {
36
+ type: String,
37
+ required: true
38
+ },
39
+ fmp_context: {
40
+ type: Object
41
+ },
42
+ created_at: {
43
+ type: String,
44
+ },
45
+ updated_at: {
46
+ type: String,
47
+ }
48
+ }, {
49
+ // Allow nested keys under fmp_context until the shape is finalized.
50
+ // Root remains closed — not `saveUnknown: true`.
51
+ saveUnknown: ["fmp_context.**"],
52
+ timestamps: true
53
+ });
54
+ exports.ElphieSessionModel = dynamoose_1.default.model(table_names_1.TABLE_NAMES.ELPHIE_SESSIONS, elphieSessionSchema, { create: false, waitForActive: false });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxwaGllLXNlc3Npb24tbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3VzdG9tZXItdXNlci9lbHBoaWUvZWxwaGllLXNlc3Npb24tbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMERBQWtDO0FBRWxDLDBEQUF1RDtBQTZCdkQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxtQkFBUyxDQUFDLE1BQU0sQ0FDNUM7SUFDSSxlQUFlLEVBQUU7UUFDYixJQUFJLEVBQUUsTUFBTTtRQUNaLE9BQU8sRUFBRSxJQUFJO1FBQ2IsUUFBUSxFQUFFLElBQUk7S0FDakI7SUFDRCxPQUFPLEVBQUU7UUFDTCxJQUFJLEVBQUUsTUFBTTtRQUNaLFFBQVEsRUFBRSxJQUFJO1FBQ2QsS0FBSyxFQUFFO1lBQ0gsSUFBSSxFQUFFLGVBQWU7WUFDckIsSUFBSSxFQUFFLFFBQVE7U0FDakI7S0FDSjtJQUNELGVBQWUsRUFBRTtRQUNiLElBQUksRUFBRSxNQUFNO1FBQ1osUUFBUSxFQUFFLElBQUk7S0FDakI7SUFDRCxLQUFLLEVBQUU7UUFDSCxJQUFJLEVBQUUsTUFBTTtRQUNaLFFBQVEsRUFBRSxJQUFJO0tBQ2pCO0lBQ0QsV0FBVyxFQUFFO1FBQ1QsSUFBSSxFQUFFLE1BQU07S0FDZjtJQUNELFVBQVUsRUFBRTtRQUNSLElBQUksRUFBRSxNQUFNO0tBQ2Y7SUFDRCxVQUFVLEVBQUU7UUFDUixJQUFJLEVBQUUsTUFBTTtLQUNmO0NBQ0osRUFDRDtJQUNJLG9FQUFvRTtJQUNwRSxpREFBaUQ7SUFDakQsV0FBVyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsVUFBVSxFQUFFLElBQUk7Q0FDbkIsQ0FDSixDQUFDO0FBRVcsUUFBQSxrQkFBa0IsR0FBRyxtQkFBUyxDQUFDLEtBQUssQ0FDN0MseUJBQVcsQ0FBQyxlQUFlLEVBQzNCLG1CQUFtQixFQUNuQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGR5bmFtb29zZSBmcm9tIFwiZHluYW1vb3NlXCI7XG5pbXBvcnQgeyBJdGVtIH0gZnJvbSBcImR5bmFtb29zZS9kaXN0L0l0ZW1cIjtcbmltcG9ydCB7IFRBQkxFX05BTUVTIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy90YWJsZS1uYW1lc1wiO1xuXG4vKipcbiAqIEZNUCBjb250ZXh0IHNoYXBlIGlzIHN0aWxsIGV2b2x2aW5nIOKAlCB0aWdodGVuIG9uY2UgdGhlIHByb2R1Y3QgY29udHJhY3QgaXMgZml4ZWQuXG4gKiBDdXJyZW50bHkgc3RvcmVkIGFzIGFuIG9wZW4gb2JqZWN0IChubyBzYXZlVW5rbm93biBhdCBzY2hlbWEgcm9vdCkuXG4gKi9cbmV4cG9ydCB0eXBlIEVscGhpZUZtcENvbnRleHQgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuZXhwb3J0IGludGVyZmFjZSBFbHBoaWVTZXNzaW9uIGV4dGVuZHMgSXRlbSB7XG4gICAgZWxwaGllU2Vzc2lvbklkOiBzdHJpbmc7XG4gICAgdXNlcl9pZDogc3RyaW5nO1xuICAgIGNvbnZlcnNhdGlvbl9pZDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZm1wX2NvbnRleHQ/OiBFbHBoaWVGbXBDb250ZXh0O1xuICAgIGNyZWF0ZWRfYXQ6IHN0cmluZztcbiAgICB1cGRhdGVkX2F0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW5wdXQgZm9yIGNyZWF0aW5nIGEgc2Vzc2lvbi4gYGVscGhpZVNlc3Npb25JZGAgaXMgc2V0IGluIHRoZSBzZXJ2aWNlL0RBTyBsYXllclxuICogdmlhIGBjcnlwdG8ucmFuZG9tVVVJRCgpYCDigJQgbmV2ZXIgYXV0by1nZW5lcmF0ZWQgaW4gdGhlIHNjaGVtYS5cbiAqL1xuZXhwb3J0IHR5cGUgQ3JlYXRlRWxwaGllU2Vzc2lvbklucHV0ID0ge1xuICAgIHVzZXJfaWQ6IHN0cmluZztcbiAgICBjb252ZXJzYXRpb25faWQ6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGZtcF9jb250ZXh0PzogRWxwaGllRm1wQ29udGV4dDtcbn07XG5cbi8qKlxuICogRHluYW1vb3NlIHNjaGVtYSBmb3IgYGVscGhpZV9zZXNzaW9uc2AuXG4gKlxuICogSEFTSDogYGVscGhpZVNlc3Npb25JZGAgKGFwcC1nZW5lcmF0ZWQgVVVJRCDigJQgbm8gc2NoZW1hIGRlZmF1bHQpLlxuICogR1NJIGB1c2VyX2lkLWluZGV4YDogSEFTSCBgdXNlcl9pZGAgb25seSAoYGNyZWF0ZWRfYXRgIC8gYHVwZGF0ZWRfYXRgIGFyZSBwbGFpbiBhdHRyaWJ1dGVzKS5cbiAqXG4gKiBgY3JlYXRlOiBmYWxzZWAg4oCUIHRhYmxlcyArIEdTSXMgYXJlIHByb3Zpc2lvbmVkIHZpYSBDREssIG5vdCBhdXRvLWNyZWF0ZWQgb24gYm9vdC5cbiAqL1xuY29uc3QgZWxwaGllU2Vzc2lvblNjaGVtYSA9IG5ldyBkeW5hbW9vc2UuU2NoZW1hKFxuICAgIHtcbiAgICAgICAgZWxwaGllU2Vzc2lvbklkOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBoYXNoS2V5OiB0cnVlLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgdXNlcl9pZDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBpbmRleDoge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwidXNlcl9pZC1pbmRleFwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZ2xvYmFsXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29udmVyc2F0aW9uX2lkOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB0aXRsZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgZm1wX2NvbnRleHQ6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdFxuICAgICAgICB9LFxuICAgICAgICBjcmVhdGVkX2F0OiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgIH0sXG4gICAgICAgIHVwZGF0ZWRfYXQ6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgICAvLyBBbGxvdyBuZXN0ZWQga2V5cyB1bmRlciBmbXBfY29udGV4dCB1bnRpbCB0aGUgc2hhcGUgaXMgZmluYWxpemVkLlxuICAgICAgICAvLyBSb290IHJlbWFpbnMgY2xvc2VkIOKAlCBub3QgYHNhdmVVbmtub3duOiB0cnVlYC5cbiAgICAgICAgc2F2ZVVua25vd246IFtcImZtcF9jb250ZXh0LioqXCJdLFxuICAgICAgICB0aW1lc3RhbXBzOiB0cnVlXG4gICAgfVxuKTtcblxuZXhwb3J0IGNvbnN0IEVscGhpZVNlc3Npb25Nb2RlbCA9IGR5bmFtb29zZS5tb2RlbDxFbHBoaWVTZXNzaW9uPihcbiAgICBUQUJMRV9OQU1FUy5FTFBISUVfU0VTU0lPTlMsXG4gICAgZWxwaGllU2Vzc2lvblNjaGVtYSxcbiAgICB7IGNyZWF0ZTogZmFsc2UsIHdhaXRGb3JBY3RpdmU6IGZhbHNlIH1cbik7XG4iXX0=
package/index.js CHANGED
@@ -61,4 +61,14 @@ export { walletTransactionDao } from './dist/customer-user/wallet-transaction/wa
61
61
  export { WithdrawnModel } from './dist/customer-user/withdrawn/withdrawn-model';
62
62
  export { withdrawnDao } from './dist/customer-user/withdrawn/withdrawn-dao';
63
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';
64
+ export { thirdPartyApiKeyDao } from './dist/patner-third-party/third-party-api-key/third-party-api-key-dao';
65
+ // Elphie (Dynamoose)
66
+ export { ElphieSessionModel } from './dist/customer-user/elphie/elphie-session-model';
67
+ export { elphieSessionService } from './dist/customer-user/elphie/elphie-session-dao';
68
+ export { ElphieMessageModel, ELPHIE_MESSAGE_ROLE } from './dist/customer-user/elphie/elphie-message-model';
69
+ export { elphieMessageService } from './dist/customer-user/elphie/elphie-message-dao';
70
+ export {
71
+ SessionNotFoundError,
72
+ ConversationNotFoundError,
73
+ ElphieValidationError
74
+ } from './dist/customer-user/elphie/elphie-errors';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cmp-aws-database",
3
- "version": "2.1.2-dev.60",
3
+ "version": "2.1.2-dev.62",
4
4
  "bin": {
5
5
  "craft-my-plate-database": "bin/craft-my-plate-database.js"
6
6
  },