@resolveio/server-lib 3.2.11 → 3.2.12

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 (177) hide show
  1. package/collections/active-subscription.collection.d.ts +7 -0
  2. package/collections/active-subscription.collection.js +68 -0
  3. package/collections/app-status.collection.d.ts +7 -0
  4. package/collections/app-status.collection.js +43 -0
  5. package/collections/app-version.collection.d.ts +7 -0
  6. package/collections/app-version.collection.js +56 -0
  7. package/collections/billing-logged-in-users.collection.d.ts +7 -0
  8. package/collections/billing-logged-in-users.collection.js +73 -0
  9. package/collections/counter.collection.d.ts +9 -0
  10. package/collections/counter.collection.js +73 -0
  11. package/collections/cron-job-history.collection.d.ts +7 -0
  12. package/collections/cron-job-history.collection.js +86 -0
  13. package/collections/cron-job.collection.d.ts +7 -0
  14. package/collections/cron-job.collection.js +89 -0
  15. package/collections/file.collection.d.ts +9 -0
  16. package/collections/file.collection.js +73 -0
  17. package/collections/flag.collection.d.ts +7 -0
  18. package/collections/flag.collection.js +47 -0
  19. package/collections/log.collection.d.ts +7 -0
  20. package/collections/log.collection.js +65 -0
  21. package/collections/logged-in-users.collection.d.ts +7 -0
  22. package/collections/logged-in-users.collection.js +70 -0
  23. package/collections/method-call.collection.d.ts +6 -0
  24. package/collections/method-call.collection.js +44 -0
  25. package/collections/method-response.collection.d.ts +6 -0
  26. package/collections/method-response.collection.js +48 -0
  27. package/collections/notification.collection.d.ts +7 -0
  28. package/collections/notification.collection.js +43 -0
  29. package/collections/queue-flag.collection.d.ts +7 -0
  30. package/collections/queue-flag.collection.js +41 -0
  31. package/collections/queue-method.collection.d.ts +7 -0
  32. package/collections/queue-method.collection.js +119 -0
  33. package/collections/queue-response.collection.d.ts +7 -0
  34. package/collections/queue-response.collection.js +74 -0
  35. package/collections/support-ticket.collection.d.ts +7 -0
  36. package/collections/support-ticket.collection.js +200 -0
  37. package/collections/user.collection.d.ts +9 -0
  38. package/collections/user.collection.js +153 -0
  39. package/cron/cron.d.ts +5 -0
  40. package/cron/cron.js +160 -0
  41. package/fixtures/cron-jobs.d.ts +1 -0
  42. package/fixtures/cron-jobs.js +90 -0
  43. package/fixtures/init.d.ts +1 -0
  44. package/fixtures/init.js +67 -0
  45. package/http/auth.d.ts +2 -0
  46. package/http/auth.js +468 -0
  47. package/http/health.d.ts +1 -0
  48. package/http/health.js +8 -0
  49. package/index.d.ts +16 -0
  50. package/index.js +125 -0
  51. package/managers/cron.manager.d.ts +16 -0
  52. package/managers/cron.manager.js +202 -0
  53. package/managers/database.manager.d.ts +6 -0
  54. package/managers/database.manager.js +12 -0
  55. package/managers/method.manager.d.ts +28 -0
  56. package/managers/method.manager.js +584 -0
  57. package/managers/queue-method.manager.d.ts +13 -0
  58. package/managers/queue-method.manager.js +240 -0
  59. package/managers/subscription.manager.d.ts +28 -0
  60. package/managers/subscription.manager.js +808 -0
  61. package/managers/support.manager.d.ts +22 -0
  62. package/managers/support.manager.js +320 -0
  63. package/methods/accounts.d.ts +2 -0
  64. package/methods/accounts.js +253 -0
  65. package/methods/aws.d.ts +2 -0
  66. package/methods/aws.js +387 -0
  67. package/methods/cloudconvert.d.ts +2 -0
  68. package/methods/cloudconvert.js +37 -0
  69. package/methods/collections.d.ts +2 -0
  70. package/methods/collections.js +750 -0
  71. package/methods/counters.d.ts +2 -0
  72. package/methods/counters.js +107 -0
  73. package/methods/cron-jobs.d.ts +2 -0
  74. package/methods/cron-jobs.js +132 -0
  75. package/methods/flags.d.ts +2 -0
  76. package/methods/flags.js +6 -0
  77. package/methods/logs.d.ts +2 -0
  78. package/methods/logs.js +29 -0
  79. package/methods/pdf.d.ts +2 -0
  80. package/methods/pdf.js +303 -0
  81. package/models/active-subscription.model.d.ts +13 -0
  82. package/models/active-subscription.model.js +2 -0
  83. package/models/app-status.model.d.ts +4 -0
  84. package/models/app-status.model.js +2 -0
  85. package/models/app-version.model.d.ts +4 -0
  86. package/models/app-version.model.js +2 -0
  87. package/models/billing-logged-in-users.model.d.ts +7 -0
  88. package/models/billing-logged-in-users.model.js +2 -0
  89. package/models/collection-document.model.d.ts +6 -0
  90. package/models/collection-document.model.js +2 -0
  91. package/models/counter.model.d.ts +5 -0
  92. package/models/counter.model.js +2 -0
  93. package/models/cron-job-history.model.d.ts +12 -0
  94. package/models/cron-job-history.model.js +2 -0
  95. package/models/cron-job.model.d.ts +13 -0
  96. package/models/cron-job.model.js +2 -0
  97. package/models/dialog.model.d.ts +23 -0
  98. package/models/dialog.model.js +2 -0
  99. package/models/file.model.d.ts +9 -0
  100. package/models/file.model.js +2 -0
  101. package/models/flag.model.d.ts +5 -0
  102. package/models/flag.model.js +2 -0
  103. package/models/log.model.d.ts +11 -0
  104. package/models/log.model.js +2 -0
  105. package/models/logged-in-users.model.d.ts +9 -0
  106. package/models/logged-in-users.model.js +2 -0
  107. package/models/method-call.model.d.ts +7 -0
  108. package/models/method-call.model.js +2 -0
  109. package/models/method-response.model.d.ts +8 -0
  110. package/models/method-response.model.js +2 -0
  111. package/models/method.model.d.ts +10 -0
  112. package/models/method.model.js +2 -0
  113. package/models/notification.model.d.ts +4 -0
  114. package/models/notification.model.js +2 -0
  115. package/models/pagination.model.d.ts +11 -0
  116. package/models/pagination.model.js +20 -0
  117. package/models/permission.model.d.ts +12 -0
  118. package/models/permission.model.js +2 -0
  119. package/models/queue-method.model.d.ts +10 -0
  120. package/models/queue-method.model.js +2 -0
  121. package/models/queue-response.model.d.ts +10 -0
  122. package/models/queue-response.model.js +2 -0
  123. package/models/select-data-label.model.d.ts +9 -0
  124. package/models/select-data-label.model.js +2 -0
  125. package/models/server-response.model.d.ts +5 -0
  126. package/models/server-response.model.js +2 -0
  127. package/models/subscription.model.d.ts +30 -0
  128. package/models/subscription.model.js +2 -0
  129. package/models/support-method.model.d.ts +9 -0
  130. package/models/support-method.model.js +2 -0
  131. package/models/support-ticket.model.d.ts +61 -0
  132. package/models/support-ticket.model.js +2 -0
  133. package/models/user.model.d.ts +14 -0
  134. package/models/user.model.js +2 -0
  135. package/package.json +1 -1
  136. package/private/email-templates/enrollment.html +12 -0
  137. package/private/email-templates/forgot-password.html +12 -0
  138. package/private/email-templates/support-ticket-deleted.html +40 -0
  139. package/private/email-templates/support-ticket-modified.html +71 -0
  140. package/private/email-templates/support-ticket.html +71 -0
  141. package/private/images/ResolveIO.png +0 -0
  142. package/publications/app-status.d.ts +2 -0
  143. package/publications/app-status.js +14 -0
  144. package/publications/app-version.d.ts +2 -0
  145. package/publications/app-version.js +14 -0
  146. package/publications/billing-logged-in-users.d.ts +1 -0
  147. package/publications/billing-logged-in-users.js +63 -0
  148. package/publications/cron-jobs.d.ts +2 -0
  149. package/publications/cron-jobs.js +14 -0
  150. package/publications/files.d.ts +2 -0
  151. package/publications/files.js +71 -0
  152. package/publications/flags.d.ts +2 -0
  153. package/publications/flags.js +23 -0
  154. package/publications/logs.d.ts +2 -0
  155. package/publications/logs.js +26 -0
  156. package/publications/method-calls.d.ts +2 -0
  157. package/publications/method-calls.js +14 -0
  158. package/publications/method-responses.d.ts +2 -0
  159. package/publications/method-responses.js +14 -0
  160. package/publications/notifications.d.ts +2 -0
  161. package/publications/notifications.js +14 -0
  162. package/publications/super-admin.d.ts +2 -0
  163. package/publications/super-admin.js +21 -0
  164. package/publications/support-tickets.d.ts +1 -0
  165. package/publications/support-tickets.js +200 -0
  166. package/server-app.d.ts +35 -0
  167. package/server-app.js +638 -0
  168. package/support-methods/aws.d.ts +2 -0
  169. package/support-methods/aws.js +276 -0
  170. package/support-methods/collections.d.ts +2 -0
  171. package/support-methods/collections.js +471 -0
  172. package/support-methods/counters.d.ts +2 -0
  173. package/support-methods/counters.js +189 -0
  174. package/support-methods/support.d.ts +2 -0
  175. package/support-methods/support.js +236 -0
  176. package/util/common.d.ts +14 -0
  177. package/util/common.js +341 -0
package/http/auth.js ADDED
@@ -0,0 +1,468 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (_) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ var user_collection_1 = require("../collections/user.collection");
39
+ var jwt = require("jsonwebtoken");
40
+ var handlebars = require("handlebars");
41
+ var __1 = require("..");
42
+ function setupAuthRoutes(mainServer, app, serverConfig) {
43
+ var _this = this;
44
+ // Login via HTTP, return refresh token if authenticated
45
+ app.post('/login', function (request, response) { return __awaiter(_this, void 0, void 0, function () {
46
+ var user_1, username;
47
+ return __generator(this, function (_a) {
48
+ switch (_a.label) {
49
+ case 0:
50
+ if (!(request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'])) return [3 /*break*/, 1];
51
+ response.send(JSON.stringify({
52
+ error: true,
53
+ result: 'Invalid header'
54
+ }));
55
+ return [3 /*break*/, 5];
56
+ case 1: return [4 /*yield*/, user_collection_1.Users.findOne({ username: request.body.username }).exec()];
57
+ case 2:
58
+ user_1 = _a.sent();
59
+ if (!!user_1) return [3 /*break*/, 4];
60
+ return [4 /*yield*/, user_collection_1.Users.findOne({ email: request.body.username }).exec()];
61
+ case 3:
62
+ user_1 = _a.sent();
63
+ _a.label = 4;
64
+ case 4:
65
+ username = user_1 ? user_1.username : request.body.username;
66
+ user_collection_1.Users.authenticate()(username, request.body.password).then(function (res) {
67
+ if (res && res.user && res.user.active && !res.error) {
68
+ res.user.resetAttempts(function (errAt, resAt, errorAt) {
69
+ response.send(JSON.stringify({
70
+ error: false,
71
+ result: {
72
+ token: jwt.sign({ id_user: res.user._id }, serverConfig['JWT_SECRET'], {
73
+ expiresIn: 90 * 24 * 60 * 60 * 1000 // 90 days
74
+ })
75
+ }
76
+ }));
77
+ });
78
+ }
79
+ else if (res.error.name === 'TooManyAttemptsError') {
80
+ response.send(JSON.stringify({
81
+ error: true,
82
+ result: res.error.message + '. A password reset link has been sent to your email, please reset your password.'
83
+ }));
84
+ user_1.services.forgot_password = jwt.sign({ id_user: user_1._id }, serverConfig['JWT_SECRET']);
85
+ var emailData_1 = {
86
+ userToChangePassword: user_1.fullname,
87
+ userWhoResetPassword: __1.ResolveIOServer.getClientName() + ' System',
88
+ url: serverConfig['ROOT_URL'] + '/forgot-password?' + encodeURIComponent(serverConfig['SERVER_URL']) + '&' + user_1.services.forgot_password
89
+ };
90
+ user_collection_1.Users.updateOne({ _id: user_1._id }, { $set: { services: user_1.services } }).exec(function (errUp, resUp) {
91
+ mainServer.getMethodManager().readFile('email-templates/forgot-password.html').then(function (html) {
92
+ var template = handlebars.compile(html);
93
+ handlebars.registerHelper('equals', function (a, b) {
94
+ return a === b;
95
+ });
96
+ mainServer.getMethodManager().sendEmail(user_1.email, 'ResolveIO (' + __1.ResolveIOServer.getClientName() + ') - Forgot Password', '', template(emailData_1));
97
+ }, function (errEmail) { return console.log(errEmail); });
98
+ });
99
+ }
100
+ else {
101
+ response.send(JSON.stringify({
102
+ error: true,
103
+ result: res.error.message
104
+ }));
105
+ }
106
+ });
107
+ _a.label = 5;
108
+ case 5: return [2 /*return*/];
109
+ }
110
+ });
111
+ }); });
112
+ app.post('/accessToken', function (request, response) {
113
+ return __awaiter(this, void 0, void 0, function () {
114
+ return __generator(this, function (_a) {
115
+ if (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {
116
+ response.send(JSON.stringify({
117
+ error: true,
118
+ result: 'Invalid header'
119
+ }));
120
+ }
121
+ else {
122
+ if (serverConfig['ROOT_URL'] !== 'http://localhost:4200') {
123
+ jwt.verify(request.body.refreshToken, serverConfig['JWT_SECRET'], function (err, decoded) {
124
+ if (err) {
125
+ response.send(JSON.stringify({
126
+ error: true,
127
+ result: 'Invalid Token'
128
+ }));
129
+ }
130
+ else {
131
+ user_collection_1.Users.findById(decoded['id_user']).exec().then(function (user) {
132
+ if (user) {
133
+ if (user.active) {
134
+ user.resetAttempts(function (err, res) {
135
+ user.save();
136
+ response.send(JSON.stringify({
137
+ error: false,
138
+ result: {
139
+ token: jwt.sign({ id_user: user._id }, serverConfig['JWT_SECRET'], {
140
+ expiresIn: 3 * 24 * 60 * 60 * 1000 // 3 days
141
+ }),
142
+ user: user
143
+ }
144
+ }));
145
+ });
146
+ }
147
+ else {
148
+ response.send(JSON.stringify({
149
+ error: true,
150
+ result: 'Account is Disabled'
151
+ }));
152
+ }
153
+ }
154
+ else {
155
+ response.send(JSON.stringify({
156
+ error: true,
157
+ result: 'Invalid User'
158
+ }));
159
+ }
160
+ }, function (error) {
161
+ response.send(JSON.stringify({
162
+ error: true,
163
+ result: 'Invalid Mongoose Get User'
164
+ }));
165
+ });
166
+ }
167
+ });
168
+ }
169
+ else {
170
+ jwt.verify(request.body.refreshToken, serverConfig['JWT_SECRET'], function (err, decoded) {
171
+ if (err) {
172
+ response.send(JSON.stringify({
173
+ error: true,
174
+ result: 'Invalid Token'
175
+ }));
176
+ }
177
+ else {
178
+ user_collection_1.Users.findById(decoded['id_user']).exec().then(function (user) {
179
+ if (user) {
180
+ if (user.active) {
181
+ user.resetAttempts(function (err, res) {
182
+ user.save();
183
+ response.send(JSON.stringify({
184
+ error: false,
185
+ result: {
186
+ token: jwt.sign({ id_user: user._id }, serverConfig['JWT_SECRET'], {
187
+ expiresIn: 3 * 24 * 60 * 60 * 1000 // 3 days
188
+ }),
189
+ user: user
190
+ }
191
+ }));
192
+ });
193
+ }
194
+ else {
195
+ response.send(JSON.stringify({
196
+ error: true,
197
+ result: 'Account is Disabled'
198
+ }));
199
+ }
200
+ }
201
+ else {
202
+ response.send(JSON.stringify({
203
+ error: true,
204
+ result: 'Invalid User'
205
+ }));
206
+ }
207
+ }, function (error) {
208
+ response.send(JSON.stringify({
209
+ error: true,
210
+ result: 'Invalid Mongoose Get User'
211
+ }));
212
+ });
213
+ }
214
+ });
215
+ }
216
+ }
217
+ return [2 /*return*/];
218
+ });
219
+ });
220
+ });
221
+ app.post('/userWithEnrollmentToken', function (request, response) {
222
+ if (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {
223
+ response.send(JSON.stringify({
224
+ error: true,
225
+ result: 'Invalid header'
226
+ }));
227
+ }
228
+ else {
229
+ jwt.verify(request.body.enrollmentToken, serverConfig['JWT_SECRET'], function (err, decoded) {
230
+ if (err) {
231
+ response.send(JSON.stringify({
232
+ error: true,
233
+ result: 'Invalid Token'
234
+ }));
235
+ }
236
+ else {
237
+ user_collection_1.Users.findOne({
238
+ $and: [
239
+ { _id: decoded['id_user'] },
240
+ { 'services.enrollment': request.body.enrollmentToken }
241
+ ]
242
+ }).select('_id __v username active').exec().then(function (user) {
243
+ if (user) {
244
+ if (user.active) {
245
+ response.send(JSON.stringify({
246
+ error: false,
247
+ result: {
248
+ user: user
249
+ }
250
+ }));
251
+ }
252
+ else {
253
+ response.send(JSON.stringify({
254
+ error: true,
255
+ result: 'Account is Disabled'
256
+ }));
257
+ }
258
+ }
259
+ else {
260
+ response.send(JSON.stringify({
261
+ error: true,
262
+ result: 'Invalid User'
263
+ }));
264
+ }
265
+ }, function (error) {
266
+ response.send(JSON.stringify({
267
+ error: true,
268
+ result: 'Invalid Mongoose Get User'
269
+ }));
270
+ });
271
+ }
272
+ });
273
+ }
274
+ });
275
+ app.post('/setUserWithEnrollmentToken', function (request, response) {
276
+ var _this = this;
277
+ if (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {
278
+ response.send(JSON.stringify({
279
+ error: true,
280
+ result: 'Invalid header'
281
+ }));
282
+ }
283
+ else {
284
+ jwt.verify(request.body.enrollmentToken, serverConfig['JWT_SECRET'], function (err, decoded) { return __awaiter(_this, void 0, void 0, function () {
285
+ return __generator(this, function (_a) {
286
+ if (err) {
287
+ response.send(JSON.stringify({
288
+ error: true,
289
+ result: 'Invalid Token'
290
+ }));
291
+ }
292
+ else {
293
+ user_collection_1.Users.findOne({
294
+ $and: [
295
+ { _id: decoded['id_user'] },
296
+ { 'services.enrollment': request.body.enrollmentToken }
297
+ ]
298
+ }).exec().then(function (user) {
299
+ if (user) {
300
+ if (user.active) {
301
+ user.setPassword(request.body.password, function (errSet, resSet) {
302
+ if (resSet) {
303
+ user.services.enrollment = '';
304
+ user.save();
305
+ response.send(JSON.stringify({
306
+ error: false,
307
+ result: true
308
+ }));
309
+ }
310
+ else {
311
+ response.send(JSON.stringify({
312
+ error: true,
313
+ result: errSet
314
+ }));
315
+ }
316
+ });
317
+ }
318
+ else {
319
+ response.send(JSON.stringify({
320
+ error: true,
321
+ result: 'Account is Disabled'
322
+ }));
323
+ }
324
+ }
325
+ else {
326
+ response.send(JSON.stringify({
327
+ error: true,
328
+ result: 'Invalid User'
329
+ }));
330
+ }
331
+ }, function (error) {
332
+ response.send(JSON.stringify({
333
+ error: true,
334
+ result: 'Invalid Mongoose Get User'
335
+ }));
336
+ });
337
+ }
338
+ return [2 /*return*/];
339
+ });
340
+ }); });
341
+ }
342
+ });
343
+ app.post('/userWithForgotPasswordToken', function (request, response) {
344
+ if (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {
345
+ response.send(JSON.stringify({
346
+ error: true,
347
+ result: 'Invalid header'
348
+ }));
349
+ }
350
+ else {
351
+ jwt.verify(request.body.forgotPasswordToken, serverConfig['JWT_SECRET'], function (err, decoded) {
352
+ if (err) {
353
+ response.send(JSON.stringify({
354
+ error: true,
355
+ result: 'Invalid Token'
356
+ }));
357
+ }
358
+ else {
359
+ user_collection_1.Users.findOne({
360
+ $and: [
361
+ { _id: decoded['id_user'] },
362
+ { 'services.forgot_password': request.body.forgotPasswordToken }
363
+ ]
364
+ }).select('_id __v username active').exec().then(function (user) {
365
+ if (user) {
366
+ if (user.active) {
367
+ response.send(JSON.stringify({
368
+ error: false,
369
+ result: {
370
+ user: user
371
+ }
372
+ }));
373
+ }
374
+ else {
375
+ response.send(JSON.stringify({
376
+ error: true,
377
+ result: 'Account is Disabled'
378
+ }));
379
+ }
380
+ }
381
+ else {
382
+ response.send(JSON.stringify({
383
+ error: true,
384
+ result: 'Invalid User'
385
+ }));
386
+ }
387
+ }, function (error) {
388
+ response.send(JSON.stringify({
389
+ error: true,
390
+ result: 'Invalid Mongoose Get User'
391
+ }));
392
+ });
393
+ }
394
+ });
395
+ }
396
+ });
397
+ app.post('/setUserWithForgotPasswordToken', function (request, response) {
398
+ var _this = this;
399
+ if (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {
400
+ response.send(JSON.stringify({
401
+ error: true,
402
+ result: 'Invalid header'
403
+ }));
404
+ }
405
+ else {
406
+ jwt.verify(request.body.forgotPasswordToken, serverConfig['JWT_SECRET'], function (err, decoded) { return __awaiter(_this, void 0, void 0, function () {
407
+ return __generator(this, function (_a) {
408
+ if (err) {
409
+ response.send(JSON.stringify({
410
+ error: true,
411
+ result: 'Invalid Token'
412
+ }));
413
+ }
414
+ else {
415
+ user_collection_1.Users.findOne({
416
+ $and: [
417
+ { _id: decoded['id_user'] },
418
+ { 'services.forgot_password': request.body.forgotPasswordToken }
419
+ ]
420
+ }).exec().then(function (user) {
421
+ if (user) {
422
+ if (user.active) {
423
+ user.setPassword(request.body.password, function (errSet, resSet) {
424
+ if (resSet) {
425
+ user.services.forgot_password = '';
426
+ user.resetAttempts(function (err, res) {
427
+ user.save();
428
+ });
429
+ response.send(JSON.stringify({
430
+ error: false,
431
+ result: true
432
+ }));
433
+ }
434
+ else {
435
+ response.send(JSON.stringify({
436
+ error: true,
437
+ result: errSet
438
+ }));
439
+ }
440
+ });
441
+ }
442
+ else {
443
+ response.send(JSON.stringify({
444
+ error: true,
445
+ result: 'Account is Disabled'
446
+ }));
447
+ }
448
+ }
449
+ else {
450
+ response.send(JSON.stringify({
451
+ error: true,
452
+ result: 'Invalid User'
453
+ }));
454
+ }
455
+ }, function (error) {
456
+ response.send(JSON.stringify({
457
+ error: true,
458
+ result: 'Invalid Mongoose Get User'
459
+ }));
460
+ });
461
+ }
462
+ return [2 /*return*/];
463
+ });
464
+ }); });
465
+ }
466
+ });
467
+ }
468
+ exports.setupAuthRoutes = setupAuthRoutes;
@@ -0,0 +1 @@
1
+ export declare function setupHealthRoutes(app: any, serverConfig: any): void;
package/http/health.js ADDED
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function setupHealthRoutes(app, serverConfig) {
4
+ app.get('/health', function (request, response) {
5
+ response.sendStatus(200);
6
+ });
7
+ }
8
+ exports.setupHealthRoutes = setupHealthRoutes;
package/index.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ import ResolveIOMainServer from './server-app';
2
+ export declare class ResolveIOServer {
3
+ private static _serverConfig;
4
+ private static _mainDB;
5
+ private static _supportDB;
6
+ private static _mainServer;
7
+ private static _client;
8
+ private static _clientDir;
9
+ private static _dontRunSupport;
10
+ constructor(serverConfig: any, client: string, clientDir: any, _dontRunSupport?: any);
11
+ static connectAndRun(): Promise<unknown>;
12
+ static getClientName(): string;
13
+ static getMainServer(): ResolveIOMainServer;
14
+ static getMainDB(): any;
15
+ static getSupportDB(): any;
16
+ }
package/index.js ADDED
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (_) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ var mongoose = require("mongoose");
39
+ var ResolveIOServer = /** @class */ (function () {
40
+ function ResolveIOServer(serverConfig, client, clientDir, _dontRunSupport) {
41
+ ResolveIOServer._serverConfig = serverConfig;
42
+ ResolveIOServer._client = client;
43
+ ResolveIOServer._clientDir = clientDir;
44
+ if (_dontRunSupport) {
45
+ ResolveIOServer._dontRunSupport = _dontRunSupport;
46
+ }
47
+ }
48
+ ResolveIOServer.connectAndRun = function () {
49
+ var _this = this;
50
+ return new Promise(function (resolve, reject) {
51
+ if (ResolveIOServer._serverConfig['ROOT_URL'] !== 'http://localhost:4200' && !_this._dontRunSupport) {
52
+ mongoose.createConnection(ResolveIOServer._serverConfig['RESOLVEIO_SUPPORT_MONGO_URL'], { useNewUrlParser: true }).then(function (db) { return __awaiter(_this, void 0, void 0, function () {
53
+ var _this = this;
54
+ return __generator(this, function (_a) {
55
+ ResolveIOServer._supportDB = db;
56
+ mongoose.createConnection(ResolveIOServer._serverConfig['MONGO_URL'], { useNewUrlParser: true }).then(function (dbMain) { return __awaiter(_this, void 0, void 0, function () {
57
+ var serverApp;
58
+ return __generator(this, function (_a) {
59
+ switch (_a.label) {
60
+ case 0:
61
+ ResolveIOServer._mainDB = dbMain;
62
+ return [4 /*yield*/, Promise.resolve().then(function () { return require('./server-app'); })];
63
+ case 1:
64
+ serverApp = (_a.sent()).default;
65
+ ResolveIOServer._mainServer = new serverApp(this, ResolveIOServer._serverConfig, this._clientDir);
66
+ resolve();
67
+ return [2 /*return*/];
68
+ }
69
+ });
70
+ }); }, function (err) {
71
+ process.exit();
72
+ reject();
73
+ });
74
+ return [2 /*return*/];
75
+ });
76
+ }); }, function (err) {
77
+ process.exit();
78
+ reject();
79
+ });
80
+ }
81
+ else {
82
+ ResolveIOServer._supportDB = null;
83
+ mongoose.createConnection(ResolveIOServer._serverConfig['MONGO_URL'], { useNewUrlParser: true }).then(function (dbMain) { return __awaiter(_this, void 0, void 0, function () {
84
+ var serverApp;
85
+ return __generator(this, function (_a) {
86
+ switch (_a.label) {
87
+ case 0:
88
+ ResolveIOServer._mainDB = dbMain;
89
+ return [4 /*yield*/, Promise.resolve().then(function () { return require('./server-app'); })];
90
+ case 1:
91
+ serverApp = (_a.sent()).default;
92
+ ResolveIOServer._mainServer = new serverApp(this, ResolveIOServer._serverConfig, this._clientDir);
93
+ resolve();
94
+ return [2 /*return*/];
95
+ }
96
+ });
97
+ }); }, function (err) {
98
+ process.exit();
99
+ reject();
100
+ });
101
+ }
102
+ });
103
+ };
104
+ ResolveIOServer.getClientName = function () {
105
+ return this._client;
106
+ };
107
+ ResolveIOServer.getMainServer = function () {
108
+ return ResolveIOServer._mainServer;
109
+ };
110
+ ResolveIOServer.getMainDB = function () {
111
+ return ResolveIOServer._mainDB;
112
+ };
113
+ ResolveIOServer.getSupportDB = function () {
114
+ return ResolveIOServer._supportDB;
115
+ };
116
+ ResolveIOServer._serverConfig = null;
117
+ ResolveIOServer._mainDB = null;
118
+ ResolveIOServer._supportDB = null;
119
+ ResolveIOServer._mainServer = null;
120
+ ResolveIOServer._client = '';
121
+ ResolveIOServer._clientDir = '';
122
+ ResolveIOServer._dontRunSupport = false;
123
+ return ResolveIOServer;
124
+ }());
125
+ exports.ResolveIOServer = ResolveIOServer;
@@ -0,0 +1,16 @@
1
+ export declare class CronManager {
2
+ private _cronManager;
3
+ private _mainServer;
4
+ constructor(mainServer: any);
5
+ private loadCronJobs;
6
+ private doesCronJobExist;
7
+ private doesCronJobNameExist;
8
+ private addCronJob;
9
+ private updateCronJob;
10
+ private removeCronJob;
11
+ private startCronJob;
12
+ private stopCronJob;
13
+ private stopAllCronJobs;
14
+ checkCronJobsForUpdates(): Promise<void>;
15
+ private runCronJob;
16
+ }