@tiledesk/tiledesk-server 2.2.37 → 2.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/LICENSE +14 -657
  3. package/README.md +21 -18
  4. package/app.js +27 -3
  5. package/config/labels/widget.json +320 -0
  6. package/event/subscriptionEvent.js +11 -0
  7. package/models/subscriptionEvent.js +11 -0
  8. package/models/subscriptionLog.js +34 -0
  9. package/models/tagLibrary.js +42 -0
  10. package/package.json +5 -11
  11. package/pubmodules/activities/activityArchiver.js +295 -0
  12. package/pubmodules/activities/index.js +3 -0
  13. package/pubmodules/activities/models/activity.js +88 -0
  14. package/pubmodules/activities/routes/activity.js +710 -0
  15. package/pubmodules/activities/test/activityRoute.js +85 -0
  16. package/pubmodules/analytics/analytics.js +1719 -0
  17. package/pubmodules/analytics/index.js +3 -0
  18. package/pubmodules/canned/cannedResponse.js +51 -0
  19. package/pubmodules/canned/cannedResponseRoute.js +157 -0
  20. package/pubmodules/canned/index.js +3 -0
  21. package/pubmodules/pubModulesManager.js +115 -7
  22. package/pubmodules/rasa/index.js +8 -1
  23. package/pubmodules/rasa/listener.js +28 -7
  24. package/pubmodules/scheduler/tasks/closeBotUnresponsiveRequestTask.js +2 -2
  25. package/pubmodules/trigger/default.js +271 -0
  26. package/pubmodules/trigger/event/actionEventEmitter.js +10 -0
  27. package/pubmodules/trigger/event/flowEventEmitter.js +10 -0
  28. package/pubmodules/trigger/event/triggerEventEmitter.js +10 -0
  29. package/pubmodules/trigger/index.js +3 -0
  30. package/pubmodules/trigger/models/trigger.js +149 -0
  31. package/pubmodules/trigger/rulesTrigger.js +1180 -0
  32. package/pubmodules/trigger/start.js +114 -0
  33. package/pubmodules/trigger/triggerRoute.js +150 -0
  34. package/routes/department.js +51 -0
  35. package/routes/group.js +140 -0
  36. package/routes/project.js +52 -0
  37. package/routes/request.js +3 -2
  38. package/routes/subscription.js +140 -0
  39. package/routes/tag.js +138 -0
  40. package/services/faqBotHandler.js +2 -2
  41. package/services/faqBotSupport.js +0 -1
  42. package/services/faqService.js +1 -1
  43. package/services/modulesManager.js +16 -182
  44. package/services/subscriptionNotifier.js +485 -0
  45. package/template/email/assignedEmailMessage.html +1 -1
  46. package/template/email/assignedRequest.html +1 -1
  47. package/template/email/newMessage.html +1 -1
  48. package/template/email/passwordChanged.html +1 -1
  49. package/template/email/pooledEmailMessage.html +1 -1
  50. package/template/email/pooledRequest.html +1 -1
  51. package/template/email/resetPassword.html +2 -2
  52. package/template/email/ticket.html +1 -1
  53. package/views/messages.jade +1 -1
package/README.md CHANGED
@@ -25,23 +25,6 @@ Use [Docker Compose Tiledesk installation guide](https://github.com/Tiledesk/til
25
25
 
26
26
  # Running Tiledesk Server
27
27
 
28
- ## Run locally with npm
29
-
30
- Steps to run with npm:
31
-
32
- ```
33
- npm install -g @tiledesk/tiledesk-server mongodb-runner
34
- mongodb-runner start
35
- curl https://raw.githubusercontent.com/Tiledesk/tiledesk-server/master/.env.sample --output .env
36
- nano .env #configure .env file properly
37
- tiledesk-server
38
- ```
39
-
40
- If you want to load .env file from another path: `DOTENV_PATH=/MY/ABSOLUTE/PATH/.env tiledesk-server`
41
-
42
- Note: If installation with -g fails due to permission problems (npm ERR! code 'EACCES'), please refer to this [link](https://docs.npmjs.com/getting-started/fixing-npm-permissions).
43
-
44
-
45
28
  ## Using Docker
46
29
 
47
30
 
@@ -65,12 +48,30 @@ Otherwise if you want to run tiledesk only with docker run :
65
48
  docker run -p 3000:3000 --env DATABASE_URI="mongodb://YOUR_MONGO_INSTALLATION_ENDPOINT/tiledesk-server" --env-file .env tiledesk/tiledesk-server
66
49
  ```
67
50
 
51
+
52
+
53
+ ## Run locally with npm
54
+
55
+ Steps to run with npm:
56
+
57
+ ```
58
+ npm install -g @tiledesk/tiledesk-server mongodb-runner
59
+ mongodb-runner start
60
+ curl https://raw.githubusercontent.com/Tiledesk/tiledesk-server/master/.env.sample --output .env
61
+ nano .env #configure .env file properly
62
+ tiledesk-server
63
+ ```
64
+
65
+ If you want to load .env file from another path: `DOTENV_PATH=/MY/ABSOLUTE/PATH/.env tiledesk-server`
66
+
67
+ Note: If installation with -g fails due to permission problems (npm ERR! code 'EACCES'), please refer to this [link](https://docs.npmjs.com/getting-started/fixing-npm-permissions).
68
+
68
69
  ## Install from source code
69
70
 
70
71
  * Clone this repo
71
72
  * Install dependencies with `npm install`
72
73
  * Configure the tiledesk .env file. You can see an example in the file .env.sample under the root folder. Rename it from .env.sample to .env and configure it properly.
73
- * Run the app with the command `npm start` or with `nodemon` if you want monitoring and auto reload. Install nodemon with `npm install -g nodemon`
74
+ * Run the app with the command `npm start`.
74
75
 
75
76
 
76
77
  ## Deploy on Heroku
@@ -79,6 +80,8 @@ Deploy with button:
79
80
 
80
81
  [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/Tiledesk/tiledesk-server)
81
82
 
83
+ # Community? Questions? Support ?
84
+ If you need help or just want to hang out, come, say hi on our [Discord](https://discord.gg/WQPfqShJ) server.
82
85
 
83
86
  # REST API
84
87
 
package/app.js CHANGED
@@ -30,6 +30,7 @@ var Project = require("./models/project");
30
30
  var validtoken = require('./middleware/valid-token');
31
31
  var roleChecker = require('./middleware/has-role');
32
32
 
33
+ const MaskData = require("maskdata");
33
34
  var winston = require('./config/winston');
34
35
 
35
36
  // https://bretkikehara.wordpress.com/2013/05/02/nodejs-creating-your-first-global-module/
@@ -43,7 +44,18 @@ if (process.env.NODE_ENV == 'test') {
43
44
  databaseUri = config.databasetest;
44
45
  }
45
46
 
46
- winston.info("DatabaseUri: " + databaseUri);
47
+ const masked_databaseUri = MaskData.maskPhone(databaseUri, {
48
+ maskWith : "*",
49
+ unmaskedStartDigits: 15,
50
+ unmaskedEndDigits: 5
51
+ });
52
+
53
+ if (process.env.DISABLE_MONGO_PASSWORD_MASK ==true || process.env.DISABLE_MONGO_PASSWORD_MASK == "true") {
54
+ winston.info("DatabaseUri: " + databaseUri);
55
+ }else {
56
+ winston.info("DatabaseUri: " + masked_databaseUri);
57
+ }
58
+
47
59
 
48
60
  var autoIndex = true;
49
61
  if (process.env.MONGOOSE_AUTOINDEX) {
@@ -75,6 +87,9 @@ var lead = require('./routes/lead');
75
87
  var message = require('./routes/message');
76
88
  var messagesRootRoute = require('./routes/messagesRoot');
77
89
  var department = require('./routes/department');
90
+ var group = require('./routes/group');
91
+ var resthook = require('./routes/subscription');
92
+ var tag = require('./routes/tag');
78
93
  var faq = require('./routes/faq');
79
94
  var faq_kb = require('./routes/faq_kb');
80
95
  var project = require('./routes/project');
@@ -112,6 +127,9 @@ var RouterLogger = require('./models/routerLogger');
112
127
 
113
128
  require('./services/mongoose-cache-fn')(mongoose);
114
129
 
130
+ var subscriptionNotifier = require('./services/subscriptionNotifier');
131
+ subscriptionNotifier.start();
132
+
115
133
  var botSubscriptionNotifier = require('./services/BotSubscriptionNotifier');
116
134
  botSubscriptionNotifier.start();
117
135
 
@@ -123,8 +141,7 @@ var faqBotHandler = require('./services/faqBotHandler');
123
141
  faqBotHandler.listen();
124
142
 
125
143
  var pubModulesManager = require('./pubmodules/pubModulesManager');
126
- pubModulesManager.init();
127
-
144
+ pubModulesManager.init({express:express, mongoose:mongoose, passport:passport, databaseUri:databaseUri, routes:{}});
128
145
 
129
146
  var channelManager = require('./channels/channelManager');
130
147
  channelManager.listen();
@@ -133,6 +150,7 @@ const ipfilter = require('express-ipfilter').IpFilter
133
150
  // const IpDeniedError = require('express-ipfilter').IpDeniedError;
134
151
 
135
152
 
153
+
136
154
  var modulesManager = undefined;
137
155
  try {
138
156
  modulesManager = require('./services/modulesManager');
@@ -429,8 +447,14 @@ app.use('/:projectid/departments', department);
429
447
 
430
448
 
431
449
 
450
+
451
+
432
452
  channelManager.useUnderProjects(app);
433
453
 
454
+ app.use('/:projectid/groups', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRole('admin')], group);
455
+ app.use('/:projectid/tags', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRole('agent')], tag);
456
+ app.use('/:projectid/subscriptions', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRole('admin')], resthook);
457
+
434
458
  //deprecated
435
459
  app.use('/:projectid/faq', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRole('agent')], faq);
436
460
  app.use('/:projectid/intents', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken, roleChecker.hasRole('agent')], faq);
@@ -936,6 +936,326 @@
936
936
  "LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "я згоден",
937
937
  "PRECHAT_REQUIRED_ERROR": "Це поле є обов'язковим"
938
938
  }
939
+ },
940
+ {
941
+ "lang":"SV",
942
+ "data":
943
+ {
944
+ "LABEL_PLACEHOLDER": "skriv ditt meddelande..",
945
+ "LABEL_START_NW_CONV": "Ny konversation",
946
+ "LABEL_FIRST_MSG": "Beskriv kort ditt problem, du kommer att kontaktas av en agent.",
947
+ "LABEL_FIRST_MSG_NO_AGENTS": "🤔 Alla operatörer är offline för tillfället. Du kan hur som helst beskriva ditt problem. Det kommer att tilldelas supportteamet som återkommer till dig så snart som möjligt.",
948
+ "LABEL_FIRST_MSG_OPERATING_HOURS_CLOSED": "🤔 Våra kontor är stängda. Du kan hur som helst beskriva ditt problem. Det kommer att tilldelas supportteamet som återkommer till dig så snart som möjligt.",
949
+ "LABEL_SELECT_TOPIC": "Välj ett ämne",
950
+ "LABEL_COMPLETE_FORM": "Fyll i formuläret för att starta en konversation med nästa tillgängliga agent.",
951
+ "LABEL_FIELD_NAME": "namn",
952
+ "LABEL_ERROR_FIELD_NAME": "Obligatoriskt fält (minst 5 tecken).",
953
+ "LABEL_FIELD_EMAIL": "E-post",
954
+ "LABEL_ERROR_FIELD_EMAIL": "Ange en giltig e-postadress.",
955
+ "LABEL_WRITING": "skriver...",
956
+ "AGENT_NOT_AVAILABLE": " Off-line",
957
+ "AGENT_AVAILABLE": " Uppkopplad",
958
+ "GUEST_LABEL": "Gäst",
959
+ "ALL_AGENTS_OFFLINE_LABEL": "Alla operatörer är offline för tillfället",
960
+ "LABEL_LOADING": "Läser in...",
961
+ "CALLOUT_TITLE_PLACEHOLDER": "🖐 Behöver du hjälp?",
962
+ "CALLOUT_MSG_PLACEHOLDER": "Klicka här och börja chatta med oss!",
963
+ "CUSTOMER_SATISFACTION": "Kundnöjdhet",
964
+ "YOUR_OPINION_ON_OUR_CUSTOMER_SERVICE": "Din åsikt om vår kundtjänst",
965
+ "DOWNLOAD_TRANSCRIPT": "Ladda ner avskrift",
966
+ "BACK": "Tillbaka",
967
+ "YOUR_RATING": "ditt betyg",
968
+ "WRITE_YOUR_OPINION": "Skriv din åsikt ... (valfritt)",
969
+ "SUBMIT": "Skicka in",
970
+ "THANK_YOU_FOR_YOUR_EVALUATION": "Tack för din utvärdering",
971
+ "YOUR_RATING_HAS_BEEN_RECEIVED": "ditt betyg har mottagits",
972
+ "ALERT_LEAVE_CHAT": "Vill du lämna chatten?",
973
+ "YES": "Ja",
974
+ "NO": "Nej",
975
+ "BUTTON_CLOSE_TO_ICON": "Minimera chatten",
976
+ "BUTTON_EDIT_PROFILE": "Uppdatera profil",
977
+ "BUTTON_DOWNLOAD_TRANSCRIPT": "Ladda ner avskrift",
978
+ "RATE_CHAT": "Betygsätt chatt",
979
+ "WELLCOME_TITLE": "Hej, välkommen till Tiledesk 👋",
980
+ "WELLCOME_MSG": "Hur kan vi hjälpa?",
981
+ "WELLCOME": "Välkommen",
982
+ "WELCOME_TITLE": "Hej, välkommen till Tiledesk 👋",
983
+ "WELCOME_MSG": "Hur kan vi hjälpa?",
984
+ "WELCOME": "Välkommen",
985
+ "OPTIONS": "alternativ",
986
+ "SOUND_OFF": "ljud av",
987
+ "SOUND_ON": "ljud på",
988
+ "LOGOUT": "logga ut",
989
+ "CLOSE": "Stänga",
990
+ "PREV_CONVERSATIONS": "Dina konversationer",
991
+ "YOU": "Du",
992
+ "SHOW_ALL_CONV": "visa allt",
993
+ "START_A_CONVERSATION": "Starta en konversation",
994
+ "NO_CONVERSATION": "Ingen konversation",
995
+ "SEE_PREVIOUS": "se föregående",
996
+ "WAITING_TIME_FOUND": "Teamet svarar vanligtvis med $reply_time",
997
+ "WAITING_TIME_NOT_FOUND": "Teamet kommer att svara så snart som möjligt",
998
+ "CLOSED": "Stängd",
999
+ "INFO_SUPPORT_USER_ADDED_SUBJECT": "du",
1000
+ "INFO_SUPPORT_USER_ADDED_YOU_VERB": "du har lagts till ",
1001
+ "INFO_SUPPORT_USER_ADDED_COMPLEMENT": "chatten",
1002
+ "INFO_SUPPORT_USER_ADDED_VERB": "gick med",
1003
+ "INFO_SUPPORT_CHAT_REOPENED": "Chatten öppnades igen",
1004
+ "INFO_SUPPORT_CHAT_CLOSED": "Chatten stängd",
1005
+ "TICKET_TAKING": "Begäran har kommit in och assistanspersonalen hanterar den.\nFör att lägga till fler kommentarer, svara på det här e-postmeddelandet.",
1006
+ "LABEL_ERROR_FIELD_REQUIRED": "obligatoriskt fält",
1007
+ "SENT_AN_ATTACHMENT": "skickade en bilaga",
1008
+ "SENT_AN_IMAGE": "skickade en bild",
1009
+ "LABEL_PRECHAT_USER_FULLNAME": "Fullständiga namn",
1010
+ "LABEL_PRECHAT_USER_EMAIL": "E-post",
1011
+ "LABEL_PRECHAT_USER_EMAIL_ERROR": "Ogiltig e-postadress",
1012
+ "LABEL_PRECHAT_USER_PHONE": "Telefon",
1013
+ "LABEL_PRECHAT_USER_PHONE_ERROR": "Telefon krävs",
1014
+ "LABEL_PRECHAT_FIRST_MESSAGE": "Ditt meddelande till supportteamet",
1015
+ "LABEL_PRECHAT_STATIC_TERMS_PRIVACY": "Innan du fortsätter i konversationen, godkänn våra <a href='https://tiledesk.com/termsofservice/' target='_blank'>Villkor</a> och <a href='https://tiledesk.com/privacy.html' target='_blank'>Sekretesspolicy</a>",
1016
+ "LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "jag håller med",
1017
+ "PRECHAT_REQUIRED_ERROR": "Detta fält är obligatoriskt"
1018
+ }
1019
+ },
1020
+ {
1021
+ "lang":"KK",
1022
+ "data":
1023
+ {
1024
+ "LABEL_PLACEHOLDER": "хабарламаңызды теріңіз..",
1025
+ "LABEL_START_NW_CONV": "Жаңа әңгіме",
1026
+ "LABEL_FIRST_MSG": "Мәселеңізді қысқаша сипаттаңыз, сізге агент хабарласады.",
1027
+ "LABEL_FIRST_MSG_NO_AGENTS": "🤔 Қазіргі уақытта барлық операторлар желіден тыс. Сіз бәрібір мәселеңізді сипаттай аласыз. Ол сізге мүмкіндігінше тезірек хабарласатын қолдау көрсету тобына тағайындалады.",
1028
+ "LABEL_FIRST_MSG_OPERATING_HOURS_CLOSED": "🤔 Біздің кеңселер жабық. Сіз бәрібір мәселеңізді сипаттай аласыз. Ол сізге мүмкіндігінше тезірек хабарласатын қолдау көрсету тобына тағайындалады.",
1029
+ "LABEL_SELECT_TOPIC": "Тақырыпты таңдаңыз",
1030
+ "LABEL_COMPLETE_FORM": "Келесі қолжетімді агентпен сөйлесуді бастау үшін пішінді толтырыңыз.",
1031
+ "LABEL_FIELD_NAME": "Аты",
1032
+ "LABEL_ERROR_FIELD_NAME": "Міндетті өріс (кемінде 5 таңба).",
1033
+ "LABEL_FIELD_EMAIL": "Электрондық пошта",
1034
+ "LABEL_ERROR_FIELD_EMAIL": "Жарамды электрондық пошта мекенжайын енгізіңіз.",
1035
+ "LABEL_WRITING": "жазып жатыр...",
1036
+ "AGENT_NOT_AVAILABLE": " Офлайн",
1037
+ "AGENT_AVAILABLE": " Желіде",
1038
+ "GUEST_LABEL": "Қонақ",
1039
+ "ALL_AGENTS_OFFLINE_LABEL": "Қазіргі уақытта барлық операторлар желіден тыс",
1040
+ "LABEL_LOADING": "Жүктелуде...",
1041
+ "CALLOUT_TITLE_PLACEHOLDER": "🖐 Көмек керек пе?",
1042
+ "CALLOUT_MSG_PLACEHOLDER": "Мұнда басыңыз және бізбен сөйлесуді бастаңыз!",
1043
+ "CUSTOMER_SATISFACTION": "Тұтынушының қанағаттануы",
1044
+ "YOUR_OPINION_ON_OUR_CUSTOMER_SERVICE": "Біздің тұтынушыларға қызмет көрсету туралы пікіріңіз",
1045
+ "DOWNLOAD_TRANSCRIPT": "Транскриптті жүктеп алыңыз",
1046
+ "BACK": "Артқа",
1047
+ "YOUR_RATING": "сіздің рейтингіңіз",
1048
+ "WRITE_YOUR_OPINION": "Өз пікіріңізді жазыңыз ... (міндетті емес)",
1049
+ "SUBMIT": "Жіберу",
1050
+ "THANK_YOU_FOR_YOUR_EVALUATION": "Бағаңыз үшін рахмет",
1051
+ "YOUR_RATING_HAS_BEEN_RECEIVED": "сіздің рейтингіңіз алынды",
1052
+ "ALERT_LEAVE_CHAT": "Чаттан кеткіңіз келе ме?",
1053
+ "YES": "Иә",
1054
+ "NO": "Жоқ",
1055
+ "BUTTON_CLOSE_TO_ICON": "Сөйлесуді азайту",
1056
+ "BUTTON_EDIT_PROFILE": "Профильді жаңарту",
1057
+ "BUTTON_DOWNLOAD_TRANSCRIPT": "Транскриптті жүктеп алыңыз",
1058
+ "RATE_CHAT": "Чатқа баға беріңіз",
1059
+ "WELLCOME_TITLE": "Сәлем, Tiledesk сайтына қош келдіңіз 👋",
1060
+ "WELLCOME_MSG": "Біз қалай көмектесе аламыз?",
1061
+ "WELLCOME": "Қош келдіңіз",
1062
+ "WELCOME_TITLE": "Сәлем, Tiledesk сайтына қош келдіңіз 👋",
1063
+ "WELCOME_MSG": "Біз қалай көмектесе аламыз?",
1064
+ "WELCOME": "Қош келдіңіз",
1065
+ "OPTIONS": "опциялар",
1066
+ "SOUND_OFF": "дыбыс өшірулі",
1067
+ "SOUND_ON": "дыбыс қосулы",
1068
+ "LOGOUT": "шығу",
1069
+ "CLOSE": "Жабық",
1070
+ "PREV_CONVERSATIONS": "Сіздің сұхбаттарыңыз",
1071
+ "YOU": "Сіз",
1072
+ "SHOW_ALL_CONV": "барлығын көрсету",
1073
+ "START_A_CONVERSATION": "Әңгіме бастаңыз",
1074
+ "NO_CONVERSATION": "Әңгіме жоқ",
1075
+ "SEE_PREVIOUS": "алдыңғы қараңыз",
1076
+ "WAITING_TIME_FOUND": "Топ әдетте $reply_time-мен жауап береді",
1077
+ "WAITING_TIME_NOT_FOUND": "Команда мүмкіндігінше тезірек жауап береді",
1078
+ "CLOSED": "Жабық",
1079
+ "INFO_SUPPORT_USER_ADDED_SUBJECT": "сен",
1080
+ "INFO_SUPPORT_USER_ADDED_YOU_VERB": "сіз қосылдыңыз ",
1081
+ "INFO_SUPPORT_USER_ADDED_COMPLEMENT": "чат",
1082
+ "INFO_SUPPORT_USER_ADDED_VERB": "қосылды",
1083
+ "INFO_SUPPORT_CHAT_REOPENED": "Чат қайта ашылды",
1084
+ "INFO_SUPPORT_CHAT_CLOSED": "Чат жабылды",
1085
+ "TICKET_TAKING": "Өтініш қабылданды және көмек көрсету қызметкерлері онымен айналысуда.\nҚосымша пікірлер қосу үшін осы электрондық поштаға жауап беріңіз.",
1086
+ "LABEL_ERROR_FIELD_REQUIRED": "Міндетті өріс",
1087
+ "SENT_AN_ATTACHMENT": "қосымша жіберді",
1088
+ "SENT_AN_IMAGE": "сурет жіберді",
1089
+ "LABEL_PRECHAT_USER_FULLNAME": "Толық аты",
1090
+ "LABEL_PRECHAT_USER_EMAIL": "Электрондық пошта",
1091
+ "LABEL_PRECHAT_USER_EMAIL_ERROR": "Жарамсыз электрондық пошта мекенжайы",
1092
+ "LABEL_PRECHAT_USER_PHONE": "Телефон",
1093
+ "LABEL_PRECHAT_USER_PHONE_ERROR": "Телефон қажет",
1094
+ "LABEL_PRECHAT_FIRST_MESSAGE": "Қолдау көрсету тобына арналған хабарламаңыз",
1095
+ "LABEL_PRECHAT_STATIC_TERMS_PRIVACY": "Әңгімені жалғастырмас бұрын, <a href='https://tiledesk.com/termsofservice/' target='_blank'></a> және <a href='https://tiledesk.com/privacy.html' target='_blank'>-шарттар Құпиялылық саясаты</a>-пен келісесіз",
1096
+ "LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "Мен келісемін",
1097
+ "PRECHAT_REQUIRED_ERROR": "Бұл керек аймақ"
1098
+ }
1099
+ },
1100
+ {
1101
+ "lang":"UZ",
1102
+ "data":
1103
+ {
1104
+ "LABEL_PLACEHOLDER": "xabaringizni yozing..",
1105
+ "LABEL_START_NW_CONV": "Yangi suhbat",
1106
+ "LABEL_FIRST_MSG": "Muammoingizni qisqacha tasvirlab bering, siz bilan agent bog'lanadi.",
1107
+ "LABEL_FIRST_MSG_NO_AGENTS": "🤔 Hozirda barcha operatorlar oflayn. Qanday bo'lmasin, muammoingizni tasvirlashingiz mumkin. Bu sizga imkon qadar tezroq qaytib keladigan qo'llab-quvvatlash guruhiga tayinlanadi.",
1108
+ "LABEL_FIRST_MSG_OPERATING_HOURS_CLOSED": "🤔 Bizning ofislarimiz yopiq. Qanday bo'lmasin, muammoingizni tasvirlashingiz mumkin. Bu sizga imkon qadar tezroq qaytib keladigan qo'llab-quvvatlash guruhiga tayinlanadi.",
1109
+ "LABEL_SELECT_TOPIC": "Mavzuni tanlang",
1110
+ "LABEL_COMPLETE_FORM": "Keyingi mavjud agent bilan suhbatni boshlash uchun shaklni to'ldiring.",
1111
+ "LABEL_FIELD_NAME": "Ism",
1112
+ "LABEL_ERROR_FIELD_NAME": "Majburiy maydon (kamida 5 ta belgi).",
1113
+ "LABEL_FIELD_EMAIL": "Elektron pochta",
1114
+ "LABEL_ERROR_FIELD_EMAIL": "Yaroqli elektron pochta manzilini kiriting.",
1115
+ "LABEL_WRITING": "yozmoqda...",
1116
+ "AGENT_NOT_AVAILABLE": " Oflayn",
1117
+ "AGENT_AVAILABLE": " Onlayn",
1118
+ "GUEST_LABEL": "Mehmon",
1119
+ "ALL_AGENTS_OFFLINE_LABEL": "Ayni paytda barcha operatorlar oflayn rejimda",
1120
+ "LABEL_LOADING": "Yuklanmoqda...",
1121
+ "CALLOUT_TITLE_PLACEHOLDER": "🖐 Yordam kerakmi?",
1122
+ "CALLOUT_MSG_PLACEHOLDER": "Bu yerni bosing va biz bilan suhbatni boshlang!",
1123
+ "CUSTOMER_SATISFACTION": "Mijozlarning qoniqishi",
1124
+ "YOUR_OPINION_ON_OUR_CUSTOMER_SERVICE": "Mijozlarga xizmat ko'rsatish haqidagi fikringiz",
1125
+ "DOWNLOAD_TRANSCRIPT": "Transkriptni yuklab oling",
1126
+ "BACK": "Orqaga",
1127
+ "YOUR_RATING": "sizning reytingingiz",
1128
+ "WRITE_YOUR_OPINION": "Fikringizni yozing ... (ixtiyoriy)",
1129
+ "SUBMIT": "Yuborish",
1130
+ "THANK_YOU_FOR_YOUR_EVALUATION": "Baholaganingiz uchun tashakkur",
1131
+ "YOUR_RATING_HAS_BEEN_RECEIVED": "Sizning reytingingiz olindi",
1132
+ "ALERT_LEAVE_CHAT": "Chatni tark etmoqchimisiz?",
1133
+ "YES": "Ha",
1134
+ "NO": "Yo'q",
1135
+ "BUTTON_CLOSE_TO_ICON": "Suhbatni minimallashtirish",
1136
+ "BUTTON_EDIT_PROFILE": "Profilni yangilash",
1137
+ "BUTTON_DOWNLOAD_TRANSCRIPT": "Transkriptni yuklab oling",
1138
+ "RATE_CHAT": "Suhbatni baholang",
1139
+ "WELLCOME_TITLE": "Salom, Tiledesk 👋 ga xush kelibsiz",
1140
+ "WELLCOME_MSG": "Biz qanday yordam bera olamiz?",
1141
+ "WELLCOME": "Xush kelibsiz",
1142
+ "WELCOME_TITLE": "Salom, Tiledesk 👋 ga xush kelibsiz",
1143
+ "WELCOME_MSG": "Biz qanday yordam bera olamiz?",
1144
+ "WELCOME": "Xush kelibsiz",
1145
+ "OPTIONS": "variantlari",
1146
+ "SOUND_OFF": "ovoz o'chirilgan",
1147
+ "SOUND_ON": "ovoz yoqilgan",
1148
+ "LOGOUT": "chiqish",
1149
+ "CLOSE": "Yopish",
1150
+ "PREV_CONVERSATIONS": "Sizning suhbatlaringiz",
1151
+ "YOU": "Siz",
1152
+ "SHOW_ALL_CONV": "hammasini ko'rsatish",
1153
+ "START_A_CONVERSATION": "Suhbatni boshlang",
1154
+ "NO_CONVERSATION": "Suhbat yo'q",
1155
+ "SEE_PREVIOUS": "oldingisiga qarang",
1156
+ "WAITING_TIME_FOUND": "Jamoa odatda $reply_timebilan javob beradi",
1157
+ "WAITING_TIME_NOT_FOUND": "Jamoa imkon qadar tezroq javob beradi",
1158
+ "CLOSED": "Yopiq",
1159
+ "INFO_SUPPORT_USER_ADDED_SUBJECT": "siz",
1160
+ "INFO_SUPPORT_USER_ADDED_YOU_VERB": "qo'shildingiz ",
1161
+ "INFO_SUPPORT_USER_ADDED_COMPLEMENT": "suhbat",
1162
+ "INFO_SUPPORT_USER_ADDED_VERB": "qo'shildi",
1163
+ "INFO_SUPPORT_CHAT_REOPENED": "Chat qayta ochildi",
1164
+ "INFO_SUPPORT_CHAT_CLOSED": "Chat yopildi",
1165
+ "TICKET_TAKING": "So'rov qabul qilindi va yordam xodimlari u bilan shug'ullanmoqda.\nKo'proq izoh qo'shish uchun ushbu xatga javob yozing.",
1166
+ "LABEL_ERROR_FIELD_REQUIRED": "Majburiy maydon",
1167
+ "SENT_AN_ATTACHMENT": "ilova yubordi",
1168
+ "SENT_AN_IMAGE": "rasm yubordi",
1169
+ "LABEL_PRECHAT_USER_FULLNAME": "To'liq ismi sharif",
1170
+ "LABEL_PRECHAT_USER_EMAIL": "Elektron pochta",
1171
+ "LABEL_PRECHAT_USER_EMAIL_ERROR": "Yaroqsiz elektron pochta manzili",
1172
+ "LABEL_PRECHAT_USER_PHONE": "Telefon",
1173
+ "LABEL_PRECHAT_USER_PHONE_ERROR": "Telefon kerak",
1174
+ "LABEL_PRECHAT_FIRST_MESSAGE": "Qo'llab-quvvatlash jamoasi uchun xabaringiz",
1175
+ "LABEL_PRECHAT_STATIC_TERMS_PRIVACY": "Suhbatni davom ettirishdan oldin <a href='https://tiledesk.com/termsofservice/' target='_blank'>shartlar</a> va <a href='https://tiledesk.com/privacy.html' target='_blank'>Maxfiylik siyosati</a>rozilik bildiring",
1176
+ "LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "Men roziman",
1177
+ "PRECHAT_REQUIRED_ERROR": "Ushbu qator to'ldirilishi shart"
1178
+ }
1179
+ },
1180
+ {
1181
+ "lang":"AZ",
1182
+ "data":
1183
+ {
1184
+ "LABEL_PLACEHOLDER": "mesajınızı yazın..",
1185
+ "LABEL_START_NW_CONV": "Yeni söhbət",
1186
+ "LABEL_FIRST_MSG": "Probleminizi qısaca təsvir edin, agent sizinlə əlaqə saxlayacaq.",
1187
+ "LABEL_FIRST_MSG_NO_AGENTS": "🤔 Hazırda bütün operatorlar oflayndır. Hər halda probleminizi təsvir edə bilərsiniz. O, sizə ən qısa zamanda qayıdacaq dəstək komandasına təyin olunacaq.",
1188
+ "LABEL_FIRST_MSG_OPERATING_HOURS_CLOSED": "🤔 Ofislərimiz bağlıdır. Hər halda probleminizi təsvir edə bilərsiniz. O, sizə ən qısa zamanda qayıdacaq dəstək komandasına təyin olunacaq.",
1189
+ "LABEL_SELECT_TOPIC": "Mövzu seçin",
1190
+ "LABEL_COMPLETE_FORM": "Növbəti mövcud agentlə söhbətə başlamaq üçün formanı doldurun.",
1191
+ "LABEL_FIELD_NAME": "ad",
1192
+ "LABEL_ERROR_FIELD_NAME": "Tələb olunan sahə (minimum 5 simvol).",
1193
+ "LABEL_FIELD_EMAIL": "E-poçt",
1194
+ "LABEL_ERROR_FIELD_EMAIL": "Etibarlı e-poçt ünvanı daxil edin.",
1195
+ "LABEL_WRITING": "yazır...",
1196
+ "AGENT_NOT_AVAILABLE": " Oflayn",
1197
+ "AGENT_AVAILABLE": " Onlayn",
1198
+ "GUEST_LABEL": "Qonaq",
1199
+ "ALL_AGENTS_OFFLINE_LABEL": "Hazırda bütün operatorlar oflayndır",
1200
+ "LABEL_LOADING": "Yüklənir...",
1201
+ "CALLOUT_TITLE_PLACEHOLDER": "🖐 Kömək lazımdır?",
1202
+ "CALLOUT_MSG_PLACEHOLDER": "Bura klikləyin və bizimlə söhbət etməyə başlayın!",
1203
+ "CUSTOMER_SATISFACTION": "Müştəri məmnuniyyəti",
1204
+ "YOUR_OPINION_ON_OUR_CUSTOMER_SERVICE": "Müştəri xidmətlərimiz haqqında rəyiniz",
1205
+ "DOWNLOAD_TRANSCRIPT": "Transkript yükləyin",
1206
+ "BACK": "Geri",
1207
+ "YOUR_RATING": "sizin reytinqiniz",
1208
+ "WRITE_YOUR_OPINION": "Fikrinizi yazın... (istəyə görə)",
1209
+ "SUBMIT": "təqdim",
1210
+ "THANK_YOU_FOR_YOUR_EVALUATION": "Qiymətləndirməniz üçün təşəkkür edirik",
1211
+ "YOUR_RATING_HAS_BEEN_RECEIVED": "reytinqiniz alındı",
1212
+ "ALERT_LEAVE_CHAT": "Çatı tərk etmək istəyirsiniz?",
1213
+ "YES": "Bəli",
1214
+ "NO": "Yox",
1215
+ "BUTTON_CLOSE_TO_ICON": "Söhbəti minimuma endir",
1216
+ "BUTTON_EDIT_PROFILE": "Profili yeniləyin",
1217
+ "BUTTON_DOWNLOAD_TRANSCRIPT": "Transkript yükləyin",
1218
+ "RATE_CHAT": "Söhbəti qiymətləndirin",
1219
+ "WELLCOME_TITLE": "Salam, Tiledesk 👋-a xoş gəlmisiniz",
1220
+ "WELLCOME_MSG": "Biz necə kömək edə bilərik?",
1221
+ "WELLCOME": "Xoş gəldiniz",
1222
+ "WELCOME_TITLE": "Salam, Tiledesk 👋-a xoş gəlmisiniz",
1223
+ "WELCOME_MSG": "Biz necə kömək edə bilərik?",
1224
+ "WELCOME": "Xoş gəldiniz",
1225
+ "OPTIONS": "seçimlər",
1226
+ "SOUND_OFF": "səsi kəsilir",
1227
+ "SOUND_ON": "səsi yandırın",
1228
+ "LOGOUT": "çıxış",
1229
+ "CLOSE": "Yaxın",
1230
+ "PREV_CONVERSATIONS": "Söhbətləriniz",
1231
+ "YOU": "Sən",
1232
+ "SHOW_ALL_CONV": "hamısını göstər",
1233
+ "START_A_CONVERSATION": "Söhbətə başlayın",
1234
+ "NO_CONVERSATION": "Söhbət yoxdur",
1235
+ "SEE_PREVIOUS": "əvvəlki baxın",
1236
+ "WAITING_TIME_FOUND": "Komanda adətən $reply_timeilə cavab verir",
1237
+ "WAITING_TIME_NOT_FOUND": "Komanda mümkün qədər tez cavab verəcəkdir",
1238
+ "CLOSED": "Bağlı",
1239
+ "INFO_SUPPORT_USER_ADDED_SUBJECT": "Sən",
1240
+ "INFO_SUPPORT_USER_ADDED_YOU_VERB": "siz əlavə olundunuz ",
1241
+ "INFO_SUPPORT_USER_ADDED_COMPLEMENT": "söhbət",
1242
+ "INFO_SUPPORT_USER_ADDED_VERB": "qoşuldu",
1243
+ "INFO_SUPPORT_CHAT_REOPENED": "Çat yenidən açıldı",
1244
+ "INFO_SUPPORT_CHAT_CLOSED": "Çat bağlandı",
1245
+ "TICKET_TAKING": "Müraciət qəbul edilib və yardım işçiləri bununla məşğul olur.\nDaha çox şərh əlavə etmək üçün bu e-poçta cavab yazın.",
1246
+ "LABEL_ERROR_FIELD_REQUIRED": "tələb olunan sahə",
1247
+ "SENT_AN_ATTACHMENT": "əlavə göndərdi",
1248
+ "SENT_AN_IMAGE": "şəkil göndərdi",
1249
+ "LABEL_PRECHAT_USER_FULLNAME": "Tam adı",
1250
+ "LABEL_PRECHAT_USER_EMAIL": "E-poçt",
1251
+ "LABEL_PRECHAT_USER_EMAIL_ERROR": "E-mail ünvanı səhvdir",
1252
+ "LABEL_PRECHAT_USER_PHONE": "Telefon",
1253
+ "LABEL_PRECHAT_USER_PHONE_ERROR": "Telefon tələb olunur",
1254
+ "LABEL_PRECHAT_FIRST_MESSAGE": "Dəstək komandası üçün mesajınız",
1255
+ "LABEL_PRECHAT_STATIC_TERMS_PRIVACY": "Söhbətə davam etməzdən əvvəl <a href='https://tiledesk.com/termsofservice/' target='_blank'>Şərt</a> və <a href='https://tiledesk.com/privacy.html' target='_blank'>Məxfilik Siyasəti</a>ilə razılaşın",
1256
+ "LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "razıyam",
1257
+ "PRECHAT_REQUIRED_ERROR": "Bu xananın doldurulması məcburidir"
1258
+ }
939
1259
  }
940
1260
  ]
941
1261
 
@@ -0,0 +1,11 @@
1
+ const EventEmitter = require('events');
2
+
3
+ class SubscriptionEvent extends EventEmitter {}
4
+ var winston = require('../config/winston');
5
+
6
+
7
+ const subscriptionEvent = new SubscriptionEvent();
8
+
9
+
10
+
11
+ module.exports = subscriptionEvent;
@@ -0,0 +1,11 @@
1
+ const EventEmitter = require('events');
2
+
3
+ class SubscriptionEvent extends EventEmitter {}
4
+ var winston = require('../config/winston');
5
+
6
+
7
+ const subscriptionEvent = new SubscriptionEvent();
8
+
9
+
10
+
11
+ module.exports = subscriptionEvent;
@@ -0,0 +1,34 @@
1
+ var mongoose = require('mongoose');
2
+ var Schema = mongoose.Schema;
3
+
4
+
5
+
6
+ var SubscriptionLogSchema = new Schema({
7
+ event: {
8
+ type: String,
9
+ required: true
10
+ },
11
+ target: {
12
+ type: String,
13
+ required: true
14
+ },
15
+ response: {
16
+ type: String,
17
+ },
18
+ body: {
19
+ type: String,
20
+ },
21
+ err: {
22
+ type: String,
23
+ },
24
+ id_project: {
25
+ type: String,
26
+ required: true,
27
+ index:true
28
+ }
29
+ }, {
30
+ timestamps: true
31
+ }
32
+ );
33
+
34
+ module.exports = mongoose.model('subscriptionLog', SubscriptionLogSchema);
@@ -0,0 +1,42 @@
1
+ var mongoose = require('mongoose');
2
+ var Schema = mongoose.Schema;
3
+ var TagSchema = require('./tag');
4
+
5
+
6
+
7
+ var TagLibrarySchema = new Schema({
8
+ ...TagSchema.obj,
9
+ // tag: {
10
+ // type: String,
11
+ // required: true,
12
+ // index: true
13
+ // },
14
+ // color: {
15
+ // type: String,
16
+ // required: false,
17
+ // index: false
18
+ // },
19
+ // attributes: {
20
+ // type: Object,
21
+ // },
22
+ id_project: {
23
+ type: String,
24
+ required: true,
25
+ index: true
26
+ },
27
+ createdBy: {
28
+ type: String,
29
+ required: true
30
+ }
31
+ },{
32
+ timestamps: true
33
+ }
34
+ );
35
+
36
+ TagLibrarySchema.index({ id_project: 1, tag: 1 }, { unique: true });
37
+
38
+
39
+ var Tag = mongoose.model('tag', TagLibrarySchema);
40
+
41
+
42
+ module.exports = Tag;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tiledesk/tiledesk-server",
3
3
  "description": "The Tiledesk server module",
4
- "version": "2.2.37",
4
+ "version": "2.3.1",
5
5
  "scripts": {
6
6
  "start": "node ./bin/www",
7
7
  "pretest": "mongodb-runner start",
@@ -29,27 +29,21 @@
29
29
  "tiledesk-server": "./bin/www"
30
30
  },
31
31
  "optionalDependencies": {
32
- "@tiledesk-ent/tiledesk-server-activities": "^1.1.18",
33
- "@tiledesk-ent/tiledesk-server-analytics": "^1.1.12",
34
32
  "@tiledesk-ent/tiledesk-server-cache": "^1.1.10",
35
- "@tiledesk-ent/tiledesk-server-canned": "^1.1.1",
36
- "@tiledesk-ent/tiledesk-server-departments": "^1.1.2",
37
33
  "@tiledesk-ent/tiledesk-server-dialogflow": "^1.1.6",
38
- "@tiledesk-ent/tiledesk-server-groups": "^1.1.2",
39
34
  "@tiledesk-ent/tiledesk-server-jwthistory": "^1.1.9",
40
- "@tiledesk-ent/tiledesk-server-mt": "^1.1.7",
41
35
  "@tiledesk-ent/tiledesk-server-payments": "^1.1.6",
42
36
  "@tiledesk-ent/tiledesk-server-queue": "^1.1.11",
43
37
  "@tiledesk-ent/tiledesk-server-request-history": "^1.1.5",
44
- "@tiledesk-ent/tiledesk-server-resthook": "^1.1.53",
45
38
  "@tiledesk-ent/tiledesk-server-routing-queue": "^1.1.11",
46
- "@tiledesk-ent/tiledesk-server-tags": "^1.1.1",
47
- "@tiledesk-ent/tiledesk-server-triggers": "^1.1.82",
48
- "@tiledesk-ent/tiledesk-server-visitorcounter": "^1.1.1"
39
+ "@tiledesk-ent/tiledesk-server-visitorcounter": "^1.1.1",
40
+ "@tiledesk-ent/tiledesk-server-enterprise": "^1.0.0"
49
41
  },
50
42
  "dependencies": {
51
43
  "@tiledesk/tiledesk-chat21-app": "^1.1.4",
52
44
  "@tiledesk/tiledesk-chatbot-util": "^0.8.33",
45
+ "@tiledesk/tiledesk-rasa-connector": "^1.0.5",
46
+ "@tiledesk/tiledesk-json-rules-engine": "^4.0.3",
53
47
  "app-root-path": "^3.0.0",
54
48
  "bcrypt-nodejs": "0.0.3",
55
49
  "body-parser": "^1.20.0",