@tiledesk/tiledesk-server 2.7.26 → 2.7.27
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +5 -0
- package/app.js +1 -1
- package/config/labels/widget.json +31 -0
- package/event/emailEvent.js +58 -2
- package/models/faq.js +5 -0
- package/models/kb_setting.js +38 -3
- package/package.json +4 -3
- package/pubmodules/s/index.js +2 -2
- package/pubmodules/s/models/subscription-payment.js +2 -2
- package/pubmodules/s/stripe/index.js +2 -2
- package/routes/kb.js +952 -542
- package/routes/openai.js +3 -3
- package/routes/project.js +21 -6
- package/routes/quotes.js +13 -4
- package/services/QuoteManager.js +163 -16
- package/services/emailService.js +53 -1
- package/services/requestService.js +16 -5
- package/template/email/beenInvitedNewUser.html +221 -216
- package/template/email/checkpointReachedEmail.html +92 -0
- package/test/kbRoute.js +1186 -311
- package/test/mock/projectMock.js +2 -3
- package/test/openaiRoute.js +3 -0
- package/test/requestService.js +3 -0
- package/utils/aiUtils.js +41 -5
package/CHANGELOG.md
CHANGED
@@ -5,6 +5,11 @@
|
|
5
5
|
🚀 IN PRODUCTION 🚀
|
6
6
|
(https://www.npmjs.com/package/@tiledesk/tiledesk-server/v/2.3.77)
|
7
7
|
|
8
|
+
# 2.8.1
|
9
|
+
- Enable quotas for conversations, tokens, and direct email.
|
10
|
+
- Added namespaces to knowledge base
|
11
|
+
- Updated tybot-connector to 0.2.82
|
12
|
+
|
8
13
|
# 2.7.26
|
9
14
|
- Updated tybot-connector to 0.2.72
|
10
15
|
|
package/app.js
CHANGED
@@ -500,7 +500,7 @@ app.use('/files', files);
|
|
500
500
|
app.use('/urls', urls);
|
501
501
|
app.use('/users', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken], users);
|
502
502
|
app.use('/users_util', usersUtil);
|
503
|
-
|
503
|
+
app.use('/logs', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken], logs);
|
504
504
|
app.use('/requests_util', [passport.authenticate(['basic', 'jwt'], { session: false }), validtoken], requestUtilRoot);
|
505
505
|
|
506
506
|
app.use('/webhook', webhook);
|
@@ -82,6 +82,8 @@
|
|
82
82
|
"LABEL_PRECHAT_STATIC_TERMS_PRIVACY": "Before proceeding in the conversation please agree to our <a href='https://tiledesk.com/termsofservice/' target='_blank'>Terms</a> and <a href='https://tiledesk.com/privacy.html' target='_blank'>Privacy Policy</a>",
|
83
83
|
"LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "I agree",
|
84
84
|
"PRECHAT_REQUIRED_ERROR": "This field is required",
|
85
|
+
|
86
|
+
"TICKET_TAKING":"The request has been received and the assistance staff is dealing with it.\nTo add more comments, reply to this email.",
|
85
87
|
|
86
88
|
"LABEL_TODAY": "today",
|
87
89
|
"LABEL_TOMORROW": "yesterday",
|
@@ -170,6 +172,8 @@
|
|
170
172
|
"INFO_SUPPORT_MEMBER_ABANDONED_GROUP": "ha abbandonato la conversazione",
|
171
173
|
"INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU": "Una nuova richiesta di supporto è stata assegnata a te",
|
172
174
|
|
175
|
+
"TICKET_TAKING":"La richiesta è stata ricevuta e il personale di assistenza se ne sta occupando.\nPer aggiungere ulteriori commenti, rispondi a questa email.",
|
176
|
+
|
173
177
|
"LABEL_PRECHAT_USER_FULLNAME": "Nome completo",
|
174
178
|
"LABEL_PRECHAT_USER_EMAIL": "E-mail",
|
175
179
|
"LABEL_PRECHAT_USER_EMAIL_ERROR": "Indirizzo email non valido",
|
@@ -277,6 +281,8 @@
|
|
277
281
|
"LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "Je suis d'accord",
|
278
282
|
"PRECHAT_REQUIRED_ERROR": "Ce champ est obligatoire",
|
279
283
|
|
284
|
+
"TICKET_TAKING":"La demande a été reçue et le personnel d'assistance la traite.\nPour ajouter d'autres commentaires, répondez à cet e-mail.",
|
285
|
+
|
280
286
|
"LABEL_TODAY": "aujourd'hui",
|
281
287
|
"LABEL_TOMORROW": "hier",
|
282
288
|
"LABEL_LAST_ACCESS": "dernier accès",
|
@@ -374,6 +380,8 @@
|
|
374
380
|
"LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "Acepto",
|
375
381
|
"PRECHAT_REQUIRED_ERROR": "Este campo es obligatorio",
|
376
382
|
|
383
|
+
"TICKET_TAKING":"La solicitud ha sido recibida y el personal de asistencia está tratando con ella. \nPara agregar más comentarios, responda a este correo electrónico.",
|
384
|
+
|
377
385
|
"LABEL_TODAY": "hoy",
|
378
386
|
"LABEL_TOMORROW": "ayer",
|
379
387
|
"LABEL_LAST_ACCESS": "ultimo acceso",
|
@@ -471,6 +479,8 @@
|
|
471
479
|
"LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "Ich stimme zu",
|
472
480
|
"PRECHAT_REQUIRED_ERROR": "Dieses Feld ist erforderlich",
|
473
481
|
|
482
|
+
"TICKET_TAKING":"Die Anfrage ist eingegangen und wird vom Hilfspersonal bearbeitet.\nUm weitere Kommentare hinzuzufügen, antworten Sie auf diese E-Mail.",
|
483
|
+
|
474
484
|
"LABEL_TODAY": "heute",
|
475
485
|
"LABEL_TOMORROW": "gestern",
|
476
486
|
"LABEL_LAST_ACCESS": "letzter Zugriff",
|
@@ -568,6 +578,8 @@
|
|
568
578
|
"LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "Eu concordo",
|
569
579
|
"PRECHAT_REQUIRED_ERROR": "Este campo é obrigatório",
|
570
580
|
|
581
|
+
"TICKET_TAKING":"A solicitação foi recebida e a equipe de assistência está tratando dela. \nPara adicionar mais comentários, responda a este e-mail.",
|
582
|
+
|
571
583
|
"LABEL_TODAY": "hoje",
|
572
584
|
"LABEL_TOMORROW": "ontem",
|
573
585
|
"LABEL_LAST_ACCESS": "último acesso",
|
@@ -665,6 +677,8 @@
|
|
665
677
|
"LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "Я согласен",
|
666
678
|
"PRECHAT_REQUIRED_ERROR": "Это поле обязательно для заполнения",
|
667
679
|
|
680
|
+
"TICKET_TAKING":"Запрос был получен, и обслуживающий персонал занимается им. \nЧтобы добавить больше комментариев, ответьте на это письмо.",
|
681
|
+
|
668
682
|
"LABEL_TODAY": "Cегодня",
|
669
683
|
"LABEL_TOMORROW": "вчерашний день",
|
670
684
|
"LABEL_LAST_ACCESS": "последний доступ",
|
@@ -761,6 +775,8 @@
|
|
761
775
|
"LABEL_PRECHAT_STATIC_TERMS_PRIVACY": "Konuşmaya devam etmeden önce lütfen <a href='https://tiledesk.com/termsofservice/' target='_blank'>Şartlarımızı</a> ve <a href='https:/ kabul edin. /tiledesk.com/privacy.html' target='_blank'>Gizlilik Politikası</a>",
|
762
776
|
"LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "Kabul ediyorum",
|
763
777
|
"PRECHAT_REQUIRED_ERROR": "Bu alan gereklidir",
|
778
|
+
|
779
|
+
"TICKET_TAKING":"Talep alındı ve yardım ekibi bununla ilgileniyor.\nDaha fazla yorum eklemek için bu e-postayı yanıtlayın.",
|
764
780
|
|
765
781
|
"LABEL_TODAY": "bugün",
|
766
782
|
"LABEL_TOMORROW": "dün",
|
@@ -861,6 +877,8 @@
|
|
861
877
|
"LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY":"Слазем се",
|
862
878
|
"PRECHAT_REQUIRED_ERROR":"Ово поље је захтевано",
|
863
879
|
|
880
|
+
"TICKET_TAKING":"Захтјев је примљен и помоћно особље се бави њиме.\nДа бисте додали још коментара, одговорите на ову е-поруку.",
|
881
|
+
|
864
882
|
"LABEL_TODAY": "данас",
|
865
883
|
"LABEL_TOMORROW": "јуче",
|
866
884
|
"LABEL_LAST_ACCESS": "последњи приступ",
|
@@ -960,6 +978,8 @@
|
|
960
978
|
"LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "أنا موافق",
|
961
979
|
"PRECHAT_REQUIRED_ERROR": "هذه الخانة مطلوبه",
|
962
980
|
|
981
|
+
"TICKET_TAKING": "تم استلام الطلب ويقوم طاقم المساعدة بالتعامل معه.\nلإضافة المزيد من التعليقات ، قم بالرد على هذا البريد الإلكتروني.",
|
982
|
+
|
963
983
|
"LABEL_TODAY": "اليوم",
|
964
984
|
"LABEL_TOMORROW": "في الامس",
|
965
985
|
"LABEL_LAST_ACCESS": "آخر ولوج",
|
@@ -1059,6 +1079,8 @@
|
|
1059
1079
|
"LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "я згоден",
|
1060
1080
|
"PRECHAT_REQUIRED_ERROR": "Це поле є обов'язковим",
|
1061
1081
|
|
1082
|
+
"TICKET_TAKING": "Запит отримано, і допоміжний персонал працює з ним.\nЩоб додати більше коментарів, надішліть відповідь на цей електронний лист.",
|
1083
|
+
|
1062
1084
|
"LABEL_TODAY": "сьогодні",
|
1063
1085
|
"LABEL_TOMORROW": "вчора",
|
1064
1086
|
"LABEL_LAST_ACCESS": "вчора",
|
@@ -1157,6 +1179,8 @@
|
|
1157
1179
|
"LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "jag håller med",
|
1158
1180
|
"PRECHAT_REQUIRED_ERROR": "Detta fält är obligatoriskt",
|
1159
1181
|
|
1182
|
+
"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.",
|
1183
|
+
|
1160
1184
|
"LABEL_TODAY": "i dag",
|
1161
1185
|
"LABEL_TOMORROW": "i går",
|
1162
1186
|
"LABEL_LAST_ACCESS": "senaste åtkomst",
|
@@ -1255,6 +1279,8 @@
|
|
1255
1279
|
"LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "Мен келісемін",
|
1256
1280
|
"PRECHAT_REQUIRED_ERROR": "Бұл керек аймақ",
|
1257
1281
|
|
1282
|
+
"TICKET_TAKING": "Өтініш қабылданды және көмек көрсету қызметкерлері онымен айналысуда.\nҚосымша пікірлер қосу үшін осы электрондық поштаға жауап беріңіз.",
|
1283
|
+
|
1258
1284
|
"LABEL_TODAY": "бүгін",
|
1259
1285
|
"LABEL_TOMORROW": "кеше",
|
1260
1286
|
"LABEL_LAST_ACCESS": "соңғы рұқсат",
|
@@ -1353,6 +1379,8 @@
|
|
1353
1379
|
"LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "Men roziman",
|
1354
1380
|
"PRECHAT_REQUIRED_ERROR": "Ushbu qator to'ldirilishi shart",
|
1355
1381
|
|
1382
|
+
"TICKET_TAKING": "So'rov qabul qilindi va yordam xodimlari u bilan shug'ullanmoqda.\nKo'proq izoh qo'shish uchun ushbu xatga javob yozing.",
|
1383
|
+
|
1356
1384
|
"LABEL_TODAY": "bugungi kunda",
|
1357
1385
|
"LABEL_TOMORROW": "kecha",
|
1358
1386
|
"LABEL_LAST_ACCESS": "oxirgi kirish",
|
@@ -1450,6 +1478,9 @@
|
|
1450
1478
|
"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",
|
1451
1479
|
"LABEL_PRECHAT_ACCEPT_TERMS_PRIVACY": "razıyam",
|
1452
1480
|
"PRECHAT_REQUIRED_ERROR": "Bu xananın doldurulması məcburidir",
|
1481
|
+
|
1482
|
+
"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.",
|
1483
|
+
|
1453
1484
|
"LABEL_TODAY": "bu gün",
|
1454
1485
|
"LABEL_TOMORROW": "dünən",
|
1455
1486
|
"LABEL_LAST_ACCESS": "son giriş",
|
package/event/emailEvent.js
CHANGED
@@ -1,13 +1,69 @@
|
|
1
|
-
|
2
1
|
const EventEmitter = require('events');
|
2
|
+
const project_user = require('../models/project_user');
|
3
|
+
var winston = require('../config/winston');
|
4
|
+
const user = require('../models/user');
|
3
5
|
|
4
6
|
class EmailEvent extends EventEmitter {
|
5
7
|
constructor() {
|
6
8
|
super();
|
7
9
|
this.queueEnabled = false;
|
8
10
|
}
|
11
|
+
|
12
|
+
listen() {
|
13
|
+
|
14
|
+
emailEvent.on('email.send.quote.checkpoint', function(data) {
|
15
|
+
|
16
|
+
// TODO setImmediate here?
|
17
|
+
winston.debug("emailEvent data: ", data);
|
18
|
+
|
19
|
+
project_user.findOne({ id_project: data.id_project }, (err, puser) => {
|
20
|
+
|
21
|
+
if (err) {
|
22
|
+
winston.error("error finding owner user: " + err);
|
23
|
+
return;
|
24
|
+
}
|
25
|
+
|
26
|
+
if (!puser) {
|
27
|
+
winston.error("Owner user not found. Unable to send checkpoint quota reached.");
|
28
|
+
return;
|
29
|
+
}
|
30
|
+
|
31
|
+
user.findOne({ _id: puser.id_user}, (err, user) => {
|
32
|
+
|
33
|
+
if (err) {
|
34
|
+
winston.error("Error finding user: ", err);
|
35
|
+
return
|
36
|
+
}
|
37
|
+
|
38
|
+
if (!user) {
|
39
|
+
winston.error("User not found. Unable to send checkpoint quota reached.")
|
40
|
+
return;
|
41
|
+
}
|
42
|
+
|
43
|
+
let resource_name;
|
44
|
+
if (data.type == 'requests') {
|
45
|
+
resource_name = 'Conversations'
|
46
|
+
}
|
47
|
+
if (data.type == 'tokens') {
|
48
|
+
resource_name = 'AI Tokens'
|
49
|
+
}
|
50
|
+
if (data.type == 'email') {
|
51
|
+
resource_name = 'Chatbot Email'
|
52
|
+
}
|
53
|
+
|
54
|
+
const emailService = require('../services/emailService'); // imported here to ensure that the emailService instance was already created
|
55
|
+
|
56
|
+
emailService.sendEmailQuotaCheckpointReached(user.email, user.firstname, data.project_name, resource_name, data.checkpoint, data.quotes);
|
57
|
+
})
|
58
|
+
|
59
|
+
|
60
|
+
})
|
61
|
+
|
62
|
+
});
|
63
|
+
}
|
9
64
|
}
|
10
65
|
|
11
66
|
const emailEvent = new EmailEvent();
|
67
|
+
emailEvent.listen();
|
12
68
|
|
13
|
-
module.exports = emailEvent;
|
69
|
+
module.exports = emailEvent;
|
package/models/faq.js
CHANGED
@@ -166,6 +166,11 @@ FaqSchema.index({ question: 'text' },
|
|
166
166
|
FaqSchema.index({ id_project: 1, id_faq_kb: 1, intent_display_name: 1 }, { unique: true });
|
167
167
|
FaqSchema.index({ id_project: 1, id_faq_kb: 1, intent_id: 1 }, { unique: true });
|
168
168
|
|
169
|
+
FaqSchema.index(
|
170
|
+
{ "actions.namespace": -1 },
|
171
|
+
{ partialFilterExpression: { "actions.namespace": { $exists: true } } }
|
172
|
+
);
|
173
|
+
|
169
174
|
|
170
175
|
var faq = mongoose.model('faq', FaqSchema);
|
171
176
|
|
package/models/kb_setting.js
CHANGED
@@ -2,6 +2,31 @@ var mongoose = require('mongoose');
|
|
2
2
|
var Schema = mongoose.Schema;
|
3
3
|
var winston = require('../config/winston');
|
4
4
|
|
5
|
+
var NamespaceSchema = new Schema({
|
6
|
+
id_project: {
|
7
|
+
type: String,
|
8
|
+
required: true
|
9
|
+
},
|
10
|
+
id: {
|
11
|
+
type: String,
|
12
|
+
required: true
|
13
|
+
},
|
14
|
+
name: {
|
15
|
+
type: String,
|
16
|
+
required: true
|
17
|
+
},
|
18
|
+
preview_settings: {
|
19
|
+
type: Object,
|
20
|
+
required: true
|
21
|
+
},
|
22
|
+
default: {
|
23
|
+
type: Boolean,
|
24
|
+
default: false
|
25
|
+
}
|
26
|
+
}, {
|
27
|
+
timestamps: true
|
28
|
+
})
|
29
|
+
|
5
30
|
var KBSchema = new Schema({
|
6
31
|
id_project: {
|
7
32
|
type: String,
|
@@ -39,6 +64,8 @@ var KBSchema = new Schema({
|
|
39
64
|
timestamps: true
|
40
65
|
})
|
41
66
|
|
67
|
+
|
68
|
+
// DEPRECATED !! - Start
|
42
69
|
var KBSettingSchema = new Schema({
|
43
70
|
id_project: {
|
44
71
|
type: String,
|
@@ -59,16 +86,24 @@ var KBSettingSchema = new Schema({
|
|
59
86
|
},
|
60
87
|
kbs: [KBSchema]
|
61
88
|
});
|
89
|
+
// DEPRECATED !! - End
|
90
|
+
|
62
91
|
|
63
92
|
KBSchema.index({ createdAt: -1, updatedAt: -1 })
|
64
93
|
|
94
|
+
// DEPRECATED
|
95
|
+
const KBSettings = mongoose.model('KBSettings', KBSettingSchema);
|
65
96
|
|
66
|
-
|
67
|
-
const KBSettings = mongoose.model('KBSettings', KBSettingSchema);
|
97
|
+
const Namespace = mongoose.model('Namespace', NamespaceSchema)
|
68
98
|
const KB = mongoose.model('KB', KBSchema)
|
69
99
|
|
100
|
+
// module.exports = {
|
101
|
+
// KBSettings: KBSettings,
|
102
|
+
// KB: KB
|
103
|
+
// }
|
104
|
+
|
70
105
|
module.exports = {
|
71
106
|
KBSettings: KBSettings,
|
107
|
+
Namespace: Namespace,
|
72
108
|
KB: KB
|
73
109
|
}
|
74
|
-
|
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.7.
|
4
|
+
"version": "2.7.27",
|
5
5
|
"scripts": {
|
6
6
|
"start": "node ./bin/www",
|
7
7
|
"pretest": "mongodb-runner start",
|
@@ -46,9 +46,9 @@
|
|
46
46
|
"@tiledesk/tiledesk-kaleyra-proxy": "^0.1.7",
|
47
47
|
"@tiledesk/tiledesk-messenger-connector": "^0.1.21",
|
48
48
|
"@tiledesk/tiledesk-rasa-connector": "^1.0.10",
|
49
|
-
"@tiledesk/tiledesk-train-jobworker": "^0.0.11",
|
50
49
|
"@tiledesk/tiledesk-telegram-connector": "^0.1.14",
|
51
|
-
"@tiledesk/tiledesk-
|
50
|
+
"@tiledesk/tiledesk-train-jobworker": "^0.0.11",
|
51
|
+
"@tiledesk/tiledesk-tybot-connector": "^0.2.82",
|
52
52
|
"@tiledesk/tiledesk-whatsapp-connector": "^0.1.72",
|
53
53
|
"@tiledesk/tiledesk-whatsapp-jobworker": "^0.0.8",
|
54
54
|
"amqplib": "^0.5.5",
|
@@ -92,6 +92,7 @@
|
|
92
92
|
"multer": "^1.4.4",
|
93
93
|
"multer-gridfs-storage": "^4.2.0",
|
94
94
|
"nanoid": "^3.3.4",
|
95
|
+
"nock": "^13.5.4",
|
95
96
|
"node-rsa": "^1.1.1",
|
96
97
|
"node-schedule": "^2.1.0",
|
97
98
|
"nodemailer": "^6.7.5",
|
package/pubmodules/s/index.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
const
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
1
|
+
const _0x23c0=['exports','./stripe/index'];(function(_0x223380,_0x23c003){const _0x99c36c=function(_0x46674c){while(--_0x46674c){_0x223380['push'](_0x223380['shift']());}};_0x99c36c(++_0x23c003);}(_0x23c0,0xf3));const _0x99c3=function(_0x223380,_0x23c003){_0x223380=_0x223380-0x0;let _0x99c36c=_0x23c0[_0x223380];return _0x99c36c;};const stripeRoute=require(_0x99c3('0x0'));module[_0x99c3('0x1')]={'stripeRoute':stripeRoute};
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBheW1lbnRzL2luZGV4LmpzIl0sIm5hbWVzIjpbInN0cmlwZVJvdXRlIiwicmVxdWlyZSIsIm1vZHVsZSJdLCJtYXBwaW5ncyI6IjRVQUFBLE1BQU1BLFdBQUEsQ0FBY0MsT0FBQSxDLGNBQUEsQ0FBcEIsQ0FDQUMsTUFBQSxDLGNBQUEsRUFBaUIsQyxhQUFDLENBQVlGLFdBQWIsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzdHJpcGVSb3V0ZSA9IHJlcXVpcmUoXCIuL3N0cmlwZS9pbmRleFwiKTtcbm1vZHVsZS5leHBvcnRzID0ge3N0cmlwZVJvdXRlOnN0cmlwZVJvdXRlfTtcblxuLy8gdjE0LjE4LjAiXSwiZmlsZSI6InBheW1lbnRzL2luZGV4LmpzIn0=
|
@@ -1,2 +1,2 @@
|
|
1
|
-
var
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
1
|
+
var _0x11c5=['model','exports','Schema','subscription-payment'];(function(_0x1f7b88,_0x11c50d){var _0x5846c5=function(_0x4ee14f){while(--_0x4ee14f){_0x1f7b88['push'](_0x1f7b88['shift']());}};_0x5846c5(++_0x11c50d);}(_0x11c5,0xe8));var _0x5846=function(_0x1f7b88,_0x11c50d){_0x1f7b88=_0x1f7b88-0x0;var _0x5846c5=_0x11c5[_0x1f7b88];return _0x5846c5;};var mongoose=require('mongoose');var Schema=mongoose[_0x5846('0x2')];var SubscriptionPayment=new Schema({'subscription_id':{'type':String},'project_id':{'type':String},'object':{'type':Object},'user_id':{'type':String},'plan_name':{'type':String},'stripe_event':{'type':String},'agents':{'type':Number}},{'timestamps':!![]});module[_0x5846('0x1')]=mongoose[_0x5846('0x0')](_0x5846('0x3'),SubscriptionPayment);
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBheW1lbnRzL21vZGVscy9zdWJzY3JpcHRpb24tcGF5bWVudC5qcyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJTY2hlbWEiLCJTdWJzY3JpcHRpb25QYXltZW50IiwiU3RyaW5nIiwiT2JqZWN0IiwiTnVtYmVyIiwibW9kdWxlIl0sIm1hcHBpbmdzIjoiNlZBQUEsSUFBSUEsUUFBQSxDQUFXQyxPQUFBLEMsVUFBQSxDQUFmLENBQ0EsSUFBSUMsTUFBQSxDQUFTRixRQUFBLEMsY0FBQSxDQUFiLENBR0EsSUFBSUcsbUJBQUEsQ0FBc0IsSUFBSUQsTUFBSixDQUFXLEMsaUJBRW5DLENBQWlCLEMsTUFDZixDQUFNRSxNQURTLENBRmtCLEMsWUFNbkMsQ0FBWSxDLE1BQ1YsQ0FBTUEsTUFESSxDQU51QixDLFFBVW5DLENBQVEsQyxNQUNOLENBQU1DLE1BREEsQ0FWMkIsQyxTQWNuQyxDQUFTLEMsTUFDUCxDQUFNRCxNQURDLENBZDBCLEMsV0FrQm5DLENBQVcsQyxNQUNULENBQUtBLE1BREksQ0FsQndCLEMsY0FxQm5DLENBQWMsQyxNQUNaLENBQU1BLE1BRE0sQ0FyQnFCLEMsUUF5Qm5DLENBQVEsQyxNQUNOLENBQU1FLE1BREEsQ0F6QjJCLENBQVgsQ0E2QnZCLEMsWUFDQyxDLElBREQsQ0E3QnVCLENBQTFCLENBa0NBQyxNQUFBLEMsY0FBQSxFQUFpQlAsUUFBQSxDLGNBQUEsRSxjQUFBLENBQXVDRyxtQkFBdkMsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xudmFyIFNjaGVtYSA9IG1vbmdvb3NlLlNjaGVtYTtcblxuXG52YXIgU3Vic2NyaXB0aW9uUGF5bWVudCA9IG5ldyBTY2hlbWEoe1xuXG4gIHN1YnNjcmlwdGlvbl9pZDoge1xuICAgIHR5cGU6IFN0cmluZyxcbiAgICAvLyByZXF1aXJlZDogdHJ1ZVxuICB9LFxuICBwcm9qZWN0X2lkOiB7XG4gICAgdHlwZTogU3RyaW5nLFxuICAgIC8vIHJlcXVpcmVkOiB0cnVlXG4gIH0sXG4gIG9iamVjdDoge1xuICAgIHR5cGU6IE9iamVjdCxcbiAgICAvLyByZXF1aXJlZDogdHJ1ZVxuICB9LFxuICB1c2VyX2lkOiB7XG4gICAgdHlwZTogU3RyaW5nLFxuICAgIC8vIHJlcXVpcmVkOiB0cnVlXG4gIH0sXG4gIHBsYW5fbmFtZToge1xuICAgIHR5cGU6U3RyaW5nXG4gIH0sXG4gIHN0cmlwZV9ldmVudDoge1xuICAgIHR5cGU6IFN0cmluZyxcbiAgICAvLyByZXF1aXJlZDogdHJ1ZVxuICB9LFxuICBhZ2VudHM6IHtcbiAgICB0eXBlOiBOdW1iZXIsXG4gICAgLy8gcmVxdWlyZWQ6IHRydWVcbiAgfVxufSwge1xuICAgIHRpbWVzdGFtcHM6IHRydWVcbiAgfVxuKTtcblxubW9kdWxlLmV4cG9ydHMgPSBtb25nb29zZS5tb2RlbCgnc3Vic2NyaXB0aW9uLXBheW1lbnQnLCBTdWJzY3JpcHRpb25QYXltZW50KTsiXSwiZmlsZSI6InBheW1lbnRzL21vZGVscy9zdWJzY3JpcHRpb24tcGF5bWVudC5qcyJ9
|