@tiledesk/tiledesk-server 2.2.37 → 2.3.1

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 (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",