cmp-aws-database 2.1.2-dev.60 → 2.1.2-dev.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/table-names.d.ts +4 -0
- package/dist/config/table-names.js +5 -1
- package/dist/customer-user/elphie/elphie-errors.d.ts +15 -0
- package/dist/customer-user/elphie/elphie-errors.js +31 -0
- package/dist/customer-user/elphie/elphie-message-dao.d.ts +51 -0
- package/dist/customer-user/elphie/elphie-message-dao.js +160 -0
- package/dist/customer-user/elphie/elphie-message-model.d.ts +25 -0
- package/dist/customer-user/elphie/elphie-message-model.js +78 -0
- package/dist/customer-user/elphie/elphie-session-dao.d.ts +46 -0
- package/dist/customer-user/elphie/elphie-session-dao.js +134 -0
- package/dist/customer-user/elphie/elphie-session-model.d.ts +26 -0
- package/dist/customer-user/elphie/elphie-session-model.js +55 -0
- package/index.js +11 -1
- package/package.json +1 -1
|
@@ -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==
|
|
@@ -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';
|