@app-connect/core 1.7.25 → 1.7.26

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.
Files changed (137) hide show
  1. package/.env.test +5 -5
  2. package/README.md +441 -441
  3. package/connector/developerPortal.js +31 -31
  4. package/connector/mock.js +84 -77
  5. package/connector/proxy/engine.js +164 -164
  6. package/connector/proxy/index.js +500 -500
  7. package/connector/registry.js +252 -252
  8. package/docs/README.md +50 -50
  9. package/docs/architecture.md +93 -93
  10. package/docs/connectors.md +116 -116
  11. package/docs/handlers.md +125 -125
  12. package/docs/libraries.md +101 -101
  13. package/docs/models.md +144 -144
  14. package/docs/routes.md +115 -115
  15. package/docs/tests.md +73 -73
  16. package/handlers/admin.js +523 -523
  17. package/handlers/appointment.js +193 -0
  18. package/handlers/auth.js +296 -296
  19. package/handlers/calldown.js +99 -99
  20. package/handlers/contact.js +280 -280
  21. package/handlers/disposition.js +82 -80
  22. package/handlers/log.js +984 -973
  23. package/handlers/managedAuth.js +446 -446
  24. package/handlers/plugin.js +208 -208
  25. package/handlers/user.js +142 -142
  26. package/index.js +3140 -2652
  27. package/jest.config.js +56 -56
  28. package/lib/analytics.js +54 -54
  29. package/lib/authSession.js +109 -109
  30. package/lib/cacheCleanup.js +21 -0
  31. package/lib/callLogComposer.js +898 -898
  32. package/lib/callLogLookup.js +34 -0
  33. package/lib/constants.js +8 -8
  34. package/lib/debugTracer.js +177 -177
  35. package/lib/encode.js +30 -30
  36. package/lib/errorHandler.js +218 -206
  37. package/lib/generalErrorMessage.js +41 -41
  38. package/lib/jwt.js +18 -18
  39. package/lib/logger.js +190 -190
  40. package/lib/migrateCallLogsSchema.js +116 -0
  41. package/lib/ringcentral.js +266 -266
  42. package/lib/s3ErrorLogReport.js +65 -65
  43. package/lib/sharedSMSComposer.js +471 -471
  44. package/lib/util.js +67 -67
  45. package/mcp/README.md +412 -395
  46. package/mcp/lib/validator.js +91 -91
  47. package/mcp/mcpHandler.js +425 -425
  48. package/mcp/tools/cancelAppointment.js +101 -0
  49. package/mcp/tools/checkAuthStatus.js +105 -105
  50. package/mcp/tools/confirmAppointment.js +101 -0
  51. package/mcp/tools/createAppointment.js +157 -0
  52. package/mcp/tools/createCallLog.js +327 -316
  53. package/mcp/tools/createContact.js +117 -117
  54. package/mcp/tools/createMessageLog.js +287 -287
  55. package/mcp/tools/doAuth.js +60 -60
  56. package/mcp/tools/findContactByName.js +93 -93
  57. package/mcp/tools/findContactByPhone.js +101 -101
  58. package/mcp/tools/getCallLog.js +111 -102
  59. package/mcp/tools/getGoogleFilePicker.js +99 -99
  60. package/mcp/tools/getHelp.js +43 -43
  61. package/mcp/tools/getPublicConnectors.js +94 -94
  62. package/mcp/tools/getSessionInfo.js +90 -90
  63. package/mcp/tools/index.js +51 -41
  64. package/mcp/tools/listAppointments.js +163 -0
  65. package/mcp/tools/logout.js +96 -96
  66. package/mcp/tools/rcGetCallLogs.js +65 -65
  67. package/mcp/tools/updateAppointment.js +154 -0
  68. package/mcp/tools/updateCallLog.js +130 -126
  69. package/mcp/ui/App/App.tsx +358 -358
  70. package/mcp/ui/App/components/AuthInfoForm.tsx +113 -113
  71. package/mcp/ui/App/components/AuthSuccess.tsx +22 -22
  72. package/mcp/ui/App/components/ConnectorList.tsx +82 -82
  73. package/mcp/ui/App/components/DebugPanel.tsx +43 -43
  74. package/mcp/ui/App/components/OAuthConnect.tsx +270 -270
  75. package/mcp/ui/App/lib/callTool.ts +130 -130
  76. package/mcp/ui/App/lib/debugLog.ts +41 -41
  77. package/mcp/ui/App/lib/developerPortal.ts +111 -111
  78. package/mcp/ui/App/main.css +5 -5
  79. package/mcp/ui/App/root.tsx +13 -13
  80. package/mcp/ui/index.html +13 -13
  81. package/mcp/ui/package-lock.json +6356 -6356
  82. package/mcp/ui/package.json +25 -25
  83. package/mcp/ui/tsconfig.json +26 -26
  84. package/mcp/ui/vite.config.ts +16 -16
  85. package/models/accountDataModel.js +33 -33
  86. package/models/adminConfigModel.js +35 -35
  87. package/models/cacheModel.js +30 -26
  88. package/models/callDownListModel.js +34 -34
  89. package/models/callLogModel.js +33 -27
  90. package/models/dynamo/connectorSchema.js +146 -146
  91. package/models/dynamo/lockSchema.js +24 -24
  92. package/models/dynamo/noteCacheSchema.js +29 -29
  93. package/models/llmSessionModel.js +17 -17
  94. package/models/messageLogModel.js +25 -25
  95. package/models/sequelize.js +16 -16
  96. package/models/userModel.js +45 -45
  97. package/package.json +1 -1
  98. package/releaseNotes.json +1093 -1081
  99. package/test/connector/proxy/engine.test.js +126 -126
  100. package/test/connector/proxy/index.test.js +279 -279
  101. package/test/connector/proxy/sample.json +161 -161
  102. package/test/connector/registry.test.js +415 -415
  103. package/test/handlers/admin.test.js +616 -616
  104. package/test/handlers/auth.test.js +1018 -1018
  105. package/test/handlers/contact.test.js +1014 -1014
  106. package/test/handlers/log.test.js +1298 -1160
  107. package/test/handlers/managedAuth.test.js +457 -457
  108. package/test/handlers/plugin.test.js +380 -380
  109. package/test/index.test.js +105 -105
  110. package/test/lib/cacheCleanup.test.js +42 -0
  111. package/test/lib/callLogComposer.test.js +1231 -1231
  112. package/test/lib/debugTracer.test.js +328 -328
  113. package/test/lib/jwt.test.js +176 -176
  114. package/test/lib/logger.test.js +206 -206
  115. package/test/lib/oauth.test.js +359 -359
  116. package/test/lib/ringcentral.test.js +467 -467
  117. package/test/lib/sharedSMSComposer.test.js +1084 -1084
  118. package/test/lib/util.test.js +329 -329
  119. package/test/mcp/tools/checkAuthStatus.test.js +83 -83
  120. package/test/mcp/tools/createCallLog.test.js +436 -436
  121. package/test/mcp/tools/createContact.test.js +58 -58
  122. package/test/mcp/tools/createMessageLog.test.js +595 -595
  123. package/test/mcp/tools/doAuth.test.js +113 -113
  124. package/test/mcp/tools/findContactByName.test.js +275 -275
  125. package/test/mcp/tools/findContactByPhone.test.js +296 -296
  126. package/test/mcp/tools/getCallLog.test.js +298 -298
  127. package/test/mcp/tools/getGoogleFilePicker.test.js +281 -281
  128. package/test/mcp/tools/getPublicConnectors.test.js +107 -107
  129. package/test/mcp/tools/getSessionInfo.test.js +127 -127
  130. package/test/mcp/tools/logout.test.js +233 -233
  131. package/test/mcp/tools/rcGetCallLogs.test.js +56 -56
  132. package/test/mcp/tools/updateCallLog.test.js +360 -360
  133. package/test/models/accountDataModel.test.js +98 -98
  134. package/test/models/dynamo/connectorSchema.test.js +189 -189
  135. package/test/models/models.test.js +568 -539
  136. package/test/routes/managedAuthRoutes.test.js +104 -104
  137. package/test/setup.js +178 -178
@@ -1,161 +1,161 @@
1
- {
2
- "meta": {
3
- "name": "",
4
- "displayName": "",
5
- "logFormat": "text/plain"
6
- },
7
- "auth": {
8
- "type": "apiKey",
9
- "scheme": "Basic",
10
- "credentialTemplate": "{{apiKey}}",
11
- "encode": "base64",
12
- "headerName": "Authorization"
13
- },
14
- "requestDefaults": {
15
- "baseUrl": "",
16
- "timeoutSeconds": 30,
17
- "defaultHeaders": {
18
- "Accept": "application/json",
19
- "X-Secret-Key": "{{secretKey}}"
20
- }
21
- },
22
- "operations": {
23
- "getUserInfo": {
24
- "method": "GET",
25
- "url": "/authentication",
26
- "responseMapping": {
27
- "type": "object",
28
- "idPath": "body.user.username",
29
- "namePath": "body.user.username",
30
- "messagePath": "body.message",
31
- "platformAdditionalInfoPaths": {
32
- "userResponse": "body.user"
33
- }
34
- }
35
- },
36
- "findContact": {
37
- "method": "GET",
38
- "url": "/contacts",
39
- "query": {
40
- "phone": "{{phoneNumber}}"
41
- },
42
- "responseMapping": {
43
- "type": "list",
44
- "listPath": "body.contacts",
45
- "item": {
46
- "idPath": "id",
47
- "namePath": "name",
48
- "typePath": "",
49
- "phonePath": "",
50
- "additionalInfoPath": ""
51
- }
52
- }
53
- },
54
- "createContact": {
55
- "method": "POST",
56
- "url": "/contacts",
57
- "headers": {
58
- "Content-Type": "application/json"
59
- },
60
- "body": {
61
- "name": "{{newContactName}}",
62
- "type": "{{newContactType}}",
63
- "phone": "{{phoneNumber}}"
64
- },
65
- "responseMapping": {
66
- "type": "object",
67
- "idPath": "body.id",
68
- "namePath": "body.name",
69
- "typePath": "body.type"
70
- }
71
- },
72
- "createCallLog": {
73
- "method": "POST",
74
- "url": "/activities",
75
- "headers": {
76
- "Content-Type": "application/json"
77
- },
78
- "body": {
79
- "subject": "{{subject}}",
80
- "description": "{{composedLogDetails}}",
81
- "start_date": "{{startTime}}",
82
- "end_date": "{{endTime}}",
83
- "activity_code_id": 3,
84
- "repeats": "never",
85
- "linked_contacts": [
86
- { "contact_id": "{{contactInfo.id}}" }
87
- ]
88
- },
89
- "responseMapping": {
90
- "type": "object",
91
- "idPath": "body.activity.id"
92
- }
93
- },
94
- "updateCallLog": {
95
- "method": "PUT",
96
- "url": "/activities/{{thirdPartyLogId}}",
97
- "headers": {
98
- "Content-Type": "application/json"
99
- },
100
- "body": {
101
- "subject": "{{subject}}",
102
- "description": "{{composedLogDetails}}",
103
- "start_date": "{{startTime}}",
104
- "end_date": "{{endTime}}"
105
- }
106
- },
107
- "getCallLog": {
108
- "method": "GET",
109
- "url": "/activities/{{thirdPartyLogId}}",
110
- "headers": {
111
- "include": "linked_contacts"
112
- },
113
- "responseMapping": {
114
- "type": "object",
115
- "subjectPath": "body.activity.subject",
116
- "notePath": "body.activity.note",
117
- "fullBodyPath": "body.activity.description"
118
- }
119
- },
120
- "createMessageLog": {
121
- "method": "POST",
122
- "url": "/activities",
123
- "headers": {
124
- "Content-Type": "application/json"
125
- },
126
- "body": {
127
- "subject": "Message with {{contactInfo.name}}",
128
- "description": "Subject: {{message.subject}}\nDirection: {{message.direction}}\n phoneNumber: {{message.from.phoneNumber}}\nRecording link: {{recordingLink}}\n",
129
- "start_date": "{{creationTime}}",
130
- "end_date": "{{creationTime}}",
131
- "activity_code_id": 3,
132
- "repeats": "never",
133
- "linked_contacts": [
134
- { "contact_id": "{{contactInfo.id}}" }
135
- ]
136
- },
137
- "responseMapping": {
138
- "type": "object",
139
- "idPath": "body.activity.id"
140
- }
141
- },
142
- "updateMessageLog": {
143
- "method": "PUT",
144
- "url": "/activities/{{thirdPartyLogId}}",
145
- "headers": {
146
- "Content-Type": "application/json"
147
- },
148
- "body": {
149
- "subject": "Message with {{contactInfo.name}}",
150
- "description": "Subject: {{message.subject}}\nDirection: {{message.direction}}\nRecording link: {{recordingLink}}\n",
151
- "start_date": "{{creationTime}}",
152
- "end_date": "{{creationTime}}",
153
- "activity_code_id": 3,
154
- "repeats": "never",
155
- "linked_contacts": [
156
- { "contact_id": "{{contactInfo.id}}" }
157
- ]
158
- }
159
- }
160
- }
161
- }
1
+ {
2
+ "meta": {
3
+ "name": "",
4
+ "displayName": "",
5
+ "logFormat": "text/plain"
6
+ },
7
+ "auth": {
8
+ "type": "apiKey",
9
+ "scheme": "Basic",
10
+ "credentialTemplate": "{{apiKey}}",
11
+ "encode": "base64",
12
+ "headerName": "Authorization"
13
+ },
14
+ "requestDefaults": {
15
+ "baseUrl": "",
16
+ "timeoutSeconds": 30,
17
+ "defaultHeaders": {
18
+ "Accept": "application/json",
19
+ "X-Secret-Key": "{{secretKey}}"
20
+ }
21
+ },
22
+ "operations": {
23
+ "getUserInfo": {
24
+ "method": "GET",
25
+ "url": "/authentication",
26
+ "responseMapping": {
27
+ "type": "object",
28
+ "idPath": "body.user.username",
29
+ "namePath": "body.user.username",
30
+ "messagePath": "body.message",
31
+ "platformAdditionalInfoPaths": {
32
+ "userResponse": "body.user"
33
+ }
34
+ }
35
+ },
36
+ "findContact": {
37
+ "method": "GET",
38
+ "url": "/contacts",
39
+ "query": {
40
+ "phone": "{{phoneNumber}}"
41
+ },
42
+ "responseMapping": {
43
+ "type": "list",
44
+ "listPath": "body.contacts",
45
+ "item": {
46
+ "idPath": "id",
47
+ "namePath": "name",
48
+ "typePath": "",
49
+ "phonePath": "",
50
+ "additionalInfoPath": ""
51
+ }
52
+ }
53
+ },
54
+ "createContact": {
55
+ "method": "POST",
56
+ "url": "/contacts",
57
+ "headers": {
58
+ "Content-Type": "application/json"
59
+ },
60
+ "body": {
61
+ "name": "{{newContactName}}",
62
+ "type": "{{newContactType}}",
63
+ "phone": "{{phoneNumber}}"
64
+ },
65
+ "responseMapping": {
66
+ "type": "object",
67
+ "idPath": "body.id",
68
+ "namePath": "body.name",
69
+ "typePath": "body.type"
70
+ }
71
+ },
72
+ "createCallLog": {
73
+ "method": "POST",
74
+ "url": "/activities",
75
+ "headers": {
76
+ "Content-Type": "application/json"
77
+ },
78
+ "body": {
79
+ "subject": "{{subject}}",
80
+ "description": "{{composedLogDetails}}",
81
+ "start_date": "{{startTime}}",
82
+ "end_date": "{{endTime}}",
83
+ "activity_code_id": 3,
84
+ "repeats": "never",
85
+ "linked_contacts": [
86
+ { "contact_id": "{{contactInfo.id}}" }
87
+ ]
88
+ },
89
+ "responseMapping": {
90
+ "type": "object",
91
+ "idPath": "body.activity.id"
92
+ }
93
+ },
94
+ "updateCallLog": {
95
+ "method": "PUT",
96
+ "url": "/activities/{{thirdPartyLogId}}",
97
+ "headers": {
98
+ "Content-Type": "application/json"
99
+ },
100
+ "body": {
101
+ "subject": "{{subject}}",
102
+ "description": "{{composedLogDetails}}",
103
+ "start_date": "{{startTime}}",
104
+ "end_date": "{{endTime}}"
105
+ }
106
+ },
107
+ "getCallLog": {
108
+ "method": "GET",
109
+ "url": "/activities/{{thirdPartyLogId}}",
110
+ "headers": {
111
+ "include": "linked_contacts"
112
+ },
113
+ "responseMapping": {
114
+ "type": "object",
115
+ "subjectPath": "body.activity.subject",
116
+ "notePath": "body.activity.note",
117
+ "fullBodyPath": "body.activity.description"
118
+ }
119
+ },
120
+ "createMessageLog": {
121
+ "method": "POST",
122
+ "url": "/activities",
123
+ "headers": {
124
+ "Content-Type": "application/json"
125
+ },
126
+ "body": {
127
+ "subject": "Message with {{contactInfo.name}}",
128
+ "description": "Subject: {{message.subject}}\nDirection: {{message.direction}}\n phoneNumber: {{message.from.phoneNumber}}\nRecording link: {{recordingLink}}\n",
129
+ "start_date": "{{creationTime}}",
130
+ "end_date": "{{creationTime}}",
131
+ "activity_code_id": 3,
132
+ "repeats": "never",
133
+ "linked_contacts": [
134
+ { "contact_id": "{{contactInfo.id}}" }
135
+ ]
136
+ },
137
+ "responseMapping": {
138
+ "type": "object",
139
+ "idPath": "body.activity.id"
140
+ }
141
+ },
142
+ "updateMessageLog": {
143
+ "method": "PUT",
144
+ "url": "/activities/{{thirdPartyLogId}}",
145
+ "headers": {
146
+ "Content-Type": "application/json"
147
+ },
148
+ "body": {
149
+ "subject": "Message with {{contactInfo.name}}",
150
+ "description": "Subject: {{message.subject}}\nDirection: {{message.direction}}\nRecording link: {{recordingLink}}\n",
151
+ "start_date": "{{creationTime}}",
152
+ "end_date": "{{creationTime}}",
153
+ "activity_code_id": 3,
154
+ "repeats": "never",
155
+ "linked_contacts": [
156
+ { "contact_id": "{{contactInfo.id}}" }
157
+ ]
158
+ }
159
+ }
160
+ }
161
+ }