@resolveio/server-lib 1.0.0-rc28 → 1.0.0-rc4

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 (159) hide show
  1. package/collections/active-subscription.collection.js +2 -68
  2. package/collections/app-status.collection.js +2 -43
  3. package/collections/app-version.collection.js +2 -56
  4. package/collections/counter.collection.js +2 -73
  5. package/collections/cron-job-history.collection.js +2 -86
  6. package/collections/cron-job.collection.js +2 -89
  7. package/collections/file.collection.js +2 -73
  8. package/collections/flag.collection.js +2 -47
  9. package/collections/log.collection.js +2 -64
  10. package/collections/logged-in-users.collection.js +2 -70
  11. package/collections/method-call.collection.js +2 -44
  12. package/collections/method-response.collection.js +2 -48
  13. package/collections/queue-flag.collection.js +2 -41
  14. package/collections/queue-method.collection.js +2 -116
  15. package/collections/queue-response.collection.js +2 -78
  16. package/collections/support-ticket.collection.js +2 -146
  17. package/collections/user.collection.js +2 -108
  18. package/cron/cron.js +2 -160
  19. package/fixtures/cron-jobs.js +2 -72
  20. package/fixtures/init.js +2 -73
  21. package/http/auth.js +2 -472
  22. package/http/health.js +2 -8
  23. package/index.js +2 -125
  24. package/managers/cron.manager.js +2 -193
  25. package/managers/method.manager.js +2 -544
  26. package/managers/queue-method.manager.js +2 -239
  27. package/managers/subscription.manager.js +2 -700
  28. package/managers/support.manager.js +2 -208
  29. package/methods/accounts.js +2 -253
  30. package/methods/aws.js +2 -345
  31. package/methods/cloudconvert.js +2 -37
  32. package/methods/collections.js +2 -738
  33. package/methods/counters.js +2 -404
  34. package/methods/cron-jobs.js +2 -63
  35. package/methods/flags.js +2 -6
  36. package/methods/logs.js +2 -29
  37. package/methods/pdf.js +2 -303
  38. package/models/active-subscription.model.js +2 -2
  39. package/models/app-status.model.js +2 -2
  40. package/models/app-version.model.js +2 -2
  41. package/models/collection-document.model.js +2 -2
  42. package/models/counter.model.js +2 -2
  43. package/models/cron-job-history.model.js +2 -2
  44. package/models/cron-job.model.js +2 -2
  45. package/models/dialog.model.js +2 -2
  46. package/models/file.model.js +2 -2
  47. package/models/flag.model.js +2 -2
  48. package/models/log.model.js +2 -2
  49. package/models/logged-in-users.model.js +2 -2
  50. package/models/method-call.model.js +2 -2
  51. package/models/method-response.model.js +2 -2
  52. package/models/method.model.js +2 -2
  53. package/models/pagination.model.js +2 -20
  54. package/models/permission.model.js +2 -2
  55. package/models/queue-method.model.js +2 -2
  56. package/models/queue-response.model.js +2 -2
  57. package/models/select-data-label.model.js +2 -2
  58. package/models/server-response.model.js +2 -2
  59. package/models/subscription.model.js +2 -2
  60. package/models/support-method.model.js +2 -2
  61. package/models/support-ticket.model.js +2 -2
  62. package/models/user.model.js +2 -2
  63. package/package.json +2 -4
  64. package/publications/app-status.js +2 -14
  65. package/publications/app-version.js +2 -14
  66. package/publications/cron-jobs.js +2 -14
  67. package/publications/files.js +2 -71
  68. package/publications/flags.js +2 -23
  69. package/publications/logs.js +2 -26
  70. package/publications/method-calls.js +2 -14
  71. package/publications/method-responses.js +2 -14
  72. package/publications/super-admin.js +2 -21
  73. package/publications/support-tickets.js +2 -118
  74. package/server-app.js +2 -641
  75. package/support-methods/aws.js +2 -276
  76. package/support-methods/collections.js +2 -471
  77. package/support-methods/counters.js +2 -189
  78. package/support-methods/support.js +2 -19
  79. package/util/common.js +2 -334
  80. package/collections/active-subscription.collection.d.ts +0 -8
  81. package/collections/app-status.collection.d.ts +0 -8
  82. package/collections/app-version.collection.d.ts +0 -8
  83. package/collections/counter.collection.d.ts +0 -10
  84. package/collections/cron-job-history.collection.d.ts +0 -8
  85. package/collections/cron-job.collection.d.ts +0 -8
  86. package/collections/file.collection.d.ts +0 -10
  87. package/collections/flag.collection.d.ts +0 -8
  88. package/collections/log.collection.d.ts +0 -8
  89. package/collections/logged-in-users.collection.d.ts +0 -8
  90. package/collections/method-call.collection.d.ts +0 -7
  91. package/collections/method-response.collection.d.ts +0 -7
  92. package/collections/queue-flag.collection.d.ts +0 -8
  93. package/collections/queue-method.collection.d.ts +0 -8
  94. package/collections/queue-response.collection.d.ts +0 -8
  95. package/collections/support-ticket.collection.d.ts +0 -8
  96. package/collections/user.collection.d.ts +0 -9
  97. package/cron/cron.d.ts +0 -6
  98. package/fixtures/cron-jobs.d.ts +0 -2
  99. package/fixtures/init.d.ts +0 -2
  100. package/http/auth.d.ts +0 -3
  101. package/http/health.d.ts +0 -2
  102. package/index.d.ts +0 -17
  103. package/managers/cron.manager.d.ts +0 -17
  104. package/managers/method.manager.d.ts +0 -28
  105. package/managers/queue-method.manager.d.ts +0 -14
  106. package/managers/subscription.manager.d.ts +0 -27
  107. package/managers/support.manager.d.ts +0 -18
  108. package/methods/accounts.d.ts +0 -3
  109. package/methods/aws.d.ts +0 -3
  110. package/methods/cloudconvert.d.ts +0 -3
  111. package/methods/collections.d.ts +0 -3
  112. package/methods/counters.d.ts +0 -3
  113. package/methods/cron-jobs.d.ts +0 -3
  114. package/methods/flags.d.ts +0 -3
  115. package/methods/logs.d.ts +0 -3
  116. package/methods/pdf.d.ts +0 -3
  117. package/models/active-subscription.model.d.ts +0 -14
  118. package/models/app-status.model.d.ts +0 -5
  119. package/models/app-version.model.d.ts +0 -5
  120. package/models/collection-document.model.d.ts +0 -7
  121. package/models/counter.model.d.ts +0 -6
  122. package/models/cron-job-history.model.d.ts +0 -13
  123. package/models/cron-job.model.d.ts +0 -14
  124. package/models/dialog.model.d.ts +0 -24
  125. package/models/file.model.d.ts +0 -10
  126. package/models/flag.model.d.ts +0 -6
  127. package/models/log.model.d.ts +0 -12
  128. package/models/logged-in-users.model.d.ts +0 -10
  129. package/models/method-call.model.d.ts +0 -8
  130. package/models/method-response.model.d.ts +0 -9
  131. package/models/method.model.d.ts +0 -11
  132. package/models/notification.model.d.ts +0 -5
  133. package/models/notification.model.js +0 -2
  134. package/models/pagination.model.d.ts +0 -12
  135. package/models/permission.model.d.ts +0 -13
  136. package/models/queue-method.model.d.ts +0 -10
  137. package/models/queue-response.model.d.ts +0 -11
  138. package/models/select-data-label.model.d.ts +0 -10
  139. package/models/server-response.model.d.ts +0 -6
  140. package/models/subscription.model.d.ts +0 -31
  141. package/models/support-method.model.d.ts +0 -10
  142. package/models/support-ticket.model.d.ts +0 -40
  143. package/models/user.model.d.ts +0 -15
  144. package/publications/app-status.d.ts +0 -3
  145. package/publications/app-version.d.ts +0 -3
  146. package/publications/cron-jobs.d.ts +0 -3
  147. package/publications/files.d.ts +0 -3
  148. package/publications/flags.d.ts +0 -3
  149. package/publications/logs.d.ts +0 -3
  150. package/publications/method-calls.d.ts +0 -3
  151. package/publications/method-responses.d.ts +0 -3
  152. package/publications/super-admin.d.ts +0 -3
  153. package/publications/support-tickets.d.ts +0 -2
  154. package/server-app.d.ts +0 -34
  155. package/support-methods/aws.d.ts +0 -3
  156. package/support-methods/collections.d.ts +0 -3
  157. package/support-methods/counters.d.ts +0 -3
  158. package/support-methods/support.d.ts +0 -3
  159. package/util/common.d.ts +0 -15
@@ -1,189 +1,2 @@
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_1 = require("mongoose");
39
- var counter_collection_1 = require("../collections/counter.collection");
40
- var simpl_schema_1 = require("simpl-schema");
41
- var __1 = require("..");
42
- function loadCounterMethods(supportManager) {
43
- supportManager.supportMethods({
44
- incCounter: {
45
- check: new simpl_schema_1.default({
46
- counterType: {
47
- type: String
48
- }
49
- }),
50
- function: function (counterType) {
51
- var _this = this;
52
- return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
53
- var counter, newCount;
54
- return __generator(this, function (_a) {
55
- switch (_a.label) {
56
- case 0: return [4 /*yield*/, counter_collection_1.SupportCounters.findOne({ type: counterType })];
57
- case 1:
58
- counter = _a.sent();
59
- if (!!counter) return [3 /*break*/, 2];
60
- counter_collection_1.SupportCounters.create({
61
- _id: mongoose_1.Types.ObjectId().toHexString(),
62
- count: 2,
63
- type: counterType
64
- });
65
- resolve(1);
66
- return [3 /*break*/, 4];
67
- case 2: return [4 /*yield*/, counter_collection_1.SupportCounters.findOneAndUpdate({ type: counterType }, { $inc: { count: 1 } }).exec()];
68
- case 3:
69
- newCount = _a.sent();
70
- resolve(newCount.count);
71
- _a.label = 4;
72
- case 4: return [2 /*return*/];
73
- }
74
- });
75
- }); });
76
- }
77
- },
78
- countCollectionWithQuery: {
79
- check: new simpl_schema_1.default({
80
- collectionType: {
81
- type: String
82
- },
83
- query: {
84
- type: Object,
85
- blackbox: true
86
- }
87
- }),
88
- function: function (collectionType, query) {
89
- return __1.ResolveIOServer.getSupportDB().model(collectionType).collection.countDocuments(query);
90
- }
91
- },
92
- countQuery: {
93
- check: new simpl_schema_1.default({
94
- collectionType: {
95
- type: String
96
- },
97
- search: {
98
- type: String,
99
- optional: true
100
- },
101
- filters: simpl_schema_1.default.oneOf({
102
- type: Array,
103
- optional: true
104
- }, {
105
- type: Object,
106
- blackbox: true,
107
- optional: true
108
- }),
109
- 'filters.$': {
110
- type: Object,
111
- optional: true,
112
- blackbox: true
113
- },
114
- subType: {
115
- type: String,
116
- optional: true
117
- }
118
- }),
119
- function: function (collectionType, search, filters) {
120
- if (search === void 0) { search = ''; }
121
- if (filters === void 0) { filters = []; }
122
- var query = {};
123
- if (!search && (!filters || !filters.length)) {
124
- query = {};
125
- }
126
- else {
127
- if (filters && filters.length) {
128
- query['$and'] = [];
129
- filters.forEach(function (filter) {
130
- var _a;
131
- query['$and'].push((_a = {}, _a[filter['prop']] = filter['data'], _a));
132
- });
133
- }
134
- if (search && collectionType === 'support-tickets') {
135
- var searchRegEx = { '$regex': '.*' + (search || '') + '.*', '$options': 'i' };
136
- if (query['$and']) {
137
- query['$and'].push({
138
- $or: [
139
- {
140
- support_ticket_number_string: searchRegEx
141
- },
142
- {
143
- date_created_string: searchRegEx
144
- },
145
- {
146
- status: searchRegEx
147
- },
148
- {
149
- user_created: searchRegEx
150
- }
151
- ]
152
- });
153
- }
154
- else {
155
- query = {
156
- $or: [
157
- {
158
- support_ticket_number_string: searchRegEx
159
- },
160
- {
161
- date_created_string: searchRegEx
162
- },
163
- {
164
- status: searchRegEx
165
- },
166
- {
167
- user_created: searchRegEx
168
- }
169
- ]
170
- };
171
- }
172
- }
173
- }
174
- return __1.ResolveIOServer.getSupportDB().model(collectionType).collection.countDocuments(query);
175
- }
176
- },
177
- countCollection: {
178
- check: new simpl_schema_1.default({
179
- collectionType: {
180
- type: String
181
- }
182
- }),
183
- function: function (collectionType) {
184
- return __1.ResolveIOServer.getSupportDB().model(collectionType).collection.countDocuments();
185
- }
186
- }
187
- });
188
- }
189
- exports.loadCounterMethods = loadCounterMethods;
1
+ "use strict";var __awaiter=this&&this.__awaiter||function(c,u,i,a){return new(i||(i=Promise))(function(e,t){function n(e){try{r(a.next(e))}catch(e){t(e)}}function o(e){try{r(a.throw(e))}catch(e){t(e)}}function r(t){t.done?e(t.value):new i(function(e){e(t.value)}).then(n,o)}r((a=a.apply(c,u||[])).next())})},__generator=this&&this.__generator||function(n,o){var r,c,u,e,i={label:0,sent:function(){if(1&u[0])throw u[1];return u[1]},trys:[],ops:[]};return e={next:t(0),throw:t(1),return:t(2)},"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function(t){if(r)throw new TypeError("Generator is already executing.");for(;i;)try{if(r=1,c&&(u=2&t[0]?c.return:t[0]?c.throw||((u=c.return)&&u.call(c),0):c.next)&&!(u=u.call(c,t[1])).done)return u;switch(c=0,u&&(t=[2&t[0],u.value]),t[0]){case 0:case 1:u=t;break;case 4:return i.label++,{value:t[1],done:!1};case 5:i.label++,c=t[1],t=[0];continue;case 7:t=i.ops.pop(),i.trys.pop();continue;default:if(!(u=0<(u=i.trys).length&&u[u.length-1])&&(6===t[0]||2===t[0])){i=0;continue}if(3===t[0]&&(!u||t[1]>u[0]&&t[1]<u[3])){i.label=t[1];break}if(6===t[0]&&i.label<u[1]){i.label=u[1],u=t;break}if(u&&i.label<u[2]){i.label=u[2],i.ops.push(t);break}u[2]&&i.ops.pop(),i.trys.pop();continue}t=o.call(n,i)}catch(e){t=[6,e],c=0}finally{r=u=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([t,e])}}};Object.defineProperty(exports,"__esModule",{value:!0});var mongoose_1=require("mongoose"),counter_collection_1=require("../collections/counter.collection"),simpl_schema_1=require("simpl-schema"),__1=require("..");function loadCounterMethods(e){e.supportMethods({incCounter:{check:new simpl_schema_1.default({counterType:{type:String}}),function:function(o){var t=this;return new Promise(function(n,e){return __awaiter(t,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,counter_collection_1.SupportCounters.findOne({type:o})];case 1:return e.sent()?[3,2]:(counter_collection_1.SupportCounters.create({_id:mongoose_1.Types.ObjectId().toHexString(),count:2,type:o}),n(1),[3,4]);case 2:return[4,counter_collection_1.SupportCounters.findOneAndUpdate({type:o},{$inc:{count:1}}).exec()];case 3:t=e.sent(),n(t.count),e.label=4;case 4:return[2]}})})})}},countCollectionWithQuery:{check:new simpl_schema_1.default({collectionType:{type:String},query:{type:Object,blackbox:!0}}),function:function(e,t){return __1.default.getSupportDB().model(e).collection.countDocuments(t)}},countQuery:{check:new simpl_schema_1.default({collectionType:{type:String},search:{type:String,optional:!0},filters:simpl_schema_1.default.oneOf({type:Array,optional:!0},{type:Object,blackbox:!0,optional:!0}),"filters.$":{type:Object,optional:!0,blackbox:!0},subType:{type:String,optional:!0}}),function:function(e,t,n){void 0===t&&(t=""),void 0===n&&(n=[]);var o={};if(t||n&&n.length){if(n&&n.length&&(o.$and=[],n.forEach(function(e){var t;o.$and.push(((t={})[e.prop]=e.data,t))})),t&&"support-tickets"===e){var r={$regex:".*"+(t||"")+".*",$options:"i"};o.$and?o.$and.push({$or:[{support_ticket_number_string:r},{date_created_string:r},{status:r},{user_created:r}]}):o={$or:[{support_ticket_number_string:r},{date_created_string:r},{status:r},{user_created:r}]}}}else o={};return __1.default.getSupportDB().model(e).collection.countDocuments(o)}},countCollection:{check:new simpl_schema_1.default({collectionType:{type:String}}),function:function(e){return __1.default.getSupportDB().model(e).collection.countDocuments()}}})}exports.loadCounterMethods=loadCounterMethods;
2
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdXBwb3J0LW1ldGhvZHMvY291bnRlcnMudHMiXSwibmFtZXMiOlsibW9uZ29vc2VfMSIsInJlcXVpcmUiLCJjb3VudGVyX2NvbGxlY3Rpb25fMSIsInNpbXBsX3NjaGVtYV8xIiwiX18xIiwibG9hZENvdW50ZXJNZXRob2RzIiwic3VwcG9ydE1hbmFnZXIiLCJzdXBwb3J0TWV0aG9kcyIsImluY0NvdW50ZXIiLCJjaGVjayIsImRlZmF1bHQiLCJjb3VudGVyVHlwZSIsInR5cGUiLCJTdHJpbmciLCJmdW5jdGlvbiIsIl90aGlzIiwidGhpcyIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiX19hd2FpdGVyIiwiU3VwcG9ydENvdW50ZXJzIiwiZmluZE9uZSIsIl9hIiwic2VudCIsImNyZWF0ZSIsIl9pZCIsIlR5cGVzIiwiT2JqZWN0SWQiLCJ0b0hleFN0cmluZyIsImNvdW50IiwiZmluZE9uZUFuZFVwZGF0ZSIsIiRpbmMiLCJleGVjIiwibmV3Q291bnQiLCJjb3VudENvbGxlY3Rpb25XaXRoUXVlcnkiLCJjb2xsZWN0aW9uVHlwZSIsInF1ZXJ5IiwiT2JqZWN0IiwiYmxhY2tib3giLCJnZXRTdXBwb3J0REIiLCJtb2RlbCIsImNvbGxlY3Rpb24iLCJjb3VudERvY3VtZW50cyIsImNvdW50UXVlcnkiLCJzZWFyY2giLCJvcHRpb25hbCIsImZpbHRlcnMiLCJvbmVPZiIsIkFycmF5IiwiZmlsdGVycy4kIiwic3ViVHlwZSIsImxlbmd0aCIsImZvckVhY2giLCJmaWx0ZXIiLCJwdXNoIiwic2VhcmNoUmVnRXgiLCIkcmVnZXgiLCIkb3B0aW9ucyIsIiRvciIsInN1cHBvcnRfdGlja2V0X251bWJlcl9zdHJpbmciLCJkYXRlX2NyZWF0ZWRfc3RyaW5nIiwic3RhdHVzIiwidXNlcl9jcmVhdGVkIiwiY291bnRDb2xsZWN0aW9uIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Im83Q0FBQSxJQUFBQSxXQUFBQyxRQUFBLFlBQ0FDLHFCQUFB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V0MscUJBNUkzRXNCLFFBQUE1RCxtQkFBQUEiLCJmaWxlIjoic3VwcG9ydC1tZXRob2RzL2NvdW50ZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZXMgfSBmcm9tICdtb25nb29zZSc7XG5pbXBvcnQgeyBTdXBwb3J0Q291bnRlcnMgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb3VudGVyLmNvbGxlY3Rpb24nO1xuaW1wb3J0IFNpbXBsZVNjaGVtYSBmcm9tICdzaW1wbC1zY2hlbWEnO1xuaW1wb3J0IHsgU3VwcG9ydE1hbmFnZXIgfSBmcm9tICcuLi9tYW5hZ2Vycy9zdXBwb3J0Lm1hbmFnZXInO1xuaW1wb3J0IFJlc29sdmVJT1NlcnZlciBmcm9tICcuLic7XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQ291bnRlck1ldGhvZHMoc3VwcG9ydE1hbmFnZXI6IFN1cHBvcnRNYW5hZ2VyKSB7XG5cdHN1cHBvcnRNYW5hZ2VyLnN1cHBvcnRNZXRob2RzKHtcblx0XHRpbmNDb3VudGVyOiB7XG5cdFx0XHRjaGVjazogbmV3IFNpbXBsZVNjaGVtYSh7XG5cdFx0XHRcdGNvdW50ZXJUeXBlOiB7XG5cdFx0XHRcdFx0dHlwZTogU3RyaW5nXG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdFx0ZnVuY3Rpb246IGZ1bmN0aW9uKGNvdW50ZXJUeXBlOiBzdHJpbmcpIHtcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdFx0XHRsZXQgY291bnRlciA9IGF3YWl0IFN1cHBvcnRDb3VudGVycy5maW5kT25lKHt0eXBlOiBjb3VudGVyVHlwZX0pO1xuXG5cdFx0XHRcdFx0aWYgKCFjb3VudGVyKSB7XG5cdFx0XHRcdFx0XHRTdXBwb3J0Q291bnRlcnMuY3JlYXRlKHtcblx0XHRcdFx0XHRcdFx0X2lkOiBUeXBlcy5PYmplY3RJZCgpLnRvSGV4U3RyaW5nKCksXG5cdFx0XHRcdFx0XHRcdGNvdW50OiAyLFxuXHRcdFx0XHRcdFx0XHR0eXBlOiBjb3VudGVyVHlwZVxuXHRcdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRcdHJlc29sdmUoMSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0bGV0IG5ld0NvdW50ID0gYXdhaXQgU3VwcG9ydENvdW50ZXJzLmZpbmRPbmVBbmRVcGRhdGUoe3R5cGU6IGNvdW50ZXJUeXBlfSwgeyRpbmM6IHtjb3VudDogMX19KS5leGVjKCk7XG5cblx0XHRcdFx0XHRcdHJlc29sdmUobmV3Q291bnQuY291bnQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSxcblx0XHRjb3VudENvbGxlY3Rpb25XaXRoUXVlcnk6IHtcblx0XHRcdGNoZWNrOiBuZXcgU2ltcGxlU2NoZW1hKHtcblx0XHRcdFx0Y29sbGVjdGlvblR5cGU6IHtcblx0XHRcdFx0XHR0eXBlOiBTdHJpbmdcblx0XHRcdFx0fSxcblx0XHRcdFx0cXVlcnk6IHtcblx0XHRcdFx0XHR0eXBlOiBPYmplY3QsXG5cdFx0XHRcdFx0YmxhY2tib3g6IHRydWVcblx0XHRcdFx0fVxuXHRcdFx0fSksXG5cdFx0XHRmdW5jdGlvbjogZnVuY3Rpb24oY29sbGVjdGlvblR5cGU6IHN0cmluZywgcXVlcnk6IE9iamVjdCkge1x0XG5cdFx0XHRcdHJldHVybiBSZXNvbHZlSU9TZXJ2ZXIuZ2V0U3VwcG9ydERCKCkubW9kZWwoY29sbGVjdGlvblR5cGUpLmNvbGxlY3Rpb24uY291bnREb2N1bWVudHMocXVlcnkpO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0Y291bnRRdWVyeToge1xuXHRcdFx0Y2hlY2s6IG5ldyBTaW1wbGVTY2hlbWEoe1xuXHRcdFx0XHRjb2xsZWN0aW9uVHlwZToge1xuXHRcdFx0XHRcdHR5cGU6IFN0cmluZ1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRzZWFyY2g6IHtcblx0XHRcdFx0XHR0eXBlOiBTdHJpbmcsXG5cdFx0XHRcdFx0b3B0aW9uYWw6IHRydWVcblx0XHRcdFx0fSxcblx0XHRcdFx0ZmlsdGVyczogU2ltcGxlU2NoZW1hLm9uZU9mKFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHR5cGU6IEFycmF5LFxuXHRcdFx0XHRcdFx0b3B0aW9uYWw6IHRydWVcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHR5cGU6IE9iamVjdCxcblx0XHRcdFx0XHRcdGJsYWNrYm94OiB0cnVlLFxuXHRcdFx0XHRcdFx0b3B0aW9uYWw6IHRydWVcblx0XHRcdFx0XHR9XG5cdFx0XHRcdCksXG5cdFx0XHRcdCdmaWx0ZXJzLiQnOiB7XG5cdFx0XHRcdFx0dHlwZTogT2JqZWN0LFxuXHRcdFx0XHRcdG9wdGlvbmFsOiB0cnVlLFxuXHRcdFx0XHRcdGJsYWNrYm94OiB0cnVlXG5cdFx0XHRcdH0sIFxuXHRcdFx0XHRzdWJUeXBlOiB7XG5cdFx0XHRcdFx0dHlwZTogU3RyaW5nLFxuXHRcdFx0XHRcdG9wdGlvbmFsOiB0cnVlXG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdFx0ZnVuY3Rpb246IGZ1bmN0aW9uKGNvbGxlY3Rpb25UeXBlOiBzdHJpbmcsIHNlYXJjaCA9ICcnLCBmaWx0ZXJzID0gW10pIHtcblx0XHRcdFx0bGV0IHF1ZXJ5ID0ge307XG5cblx0XHRcdFx0aWYgKCFzZWFyY2ggJiYgKCFmaWx0ZXJzIHx8ICFmaWx0ZXJzLmxlbmd0aCkpIHtcblx0XHRcdFx0XHRxdWVyeSA9IHt9O1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdGlmIChmaWx0ZXJzICYmIGZpbHRlcnMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRxdWVyeVsnJGFuZCddID0gW107XG5cblx0XHRcdFx0XHRcdGZpbHRlcnMuZm9yRWFjaChmaWx0ZXIgPT4ge1xuXHRcdFx0XHRcdFx0XHRxdWVyeVsnJGFuZCddLnB1c2goe1tmaWx0ZXJbJ3Byb3AnXV06IGZpbHRlclsnZGF0YSddfSk7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAoc2VhcmNoICYmIGNvbGxlY3Rpb25UeXBlID09PSAnc3VwcG9ydC10aWNrZXRzJykge1xuXHRcdFx0XHRcdFx0Y29uc3Qgc2VhcmNoUmVnRXggPSB7ICckcmVnZXgnOiAnLionICsgKHNlYXJjaCB8fCAnJykgKyAnLionLCAnJG9wdGlvbnMnOiAnaScgfTtcblxuXHRcdFx0XHRcdFx0aWYgKHF1ZXJ5WyckYW5kJ10pIHtcblx0XHRcdFx0XHRcdFx0cXVlcnlbJyRhbmQnXS5wdXNoKHtcblx0XHRcdFx0XHRcdFx0XHQkb3I6IFtcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0c3VwcG9ydF90aWNrZXRfbnVtYmVyX3N0cmluZzogc2VhcmNoUmVnRXhcblx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGRhdGVfY3JlYXRlZF9zdHJpbmc6IHNlYXJjaFJlZ0V4XG5cdFx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRzdGF0dXM6IHNlYXJjaFJlZ0V4XG5cdFx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR1c2VyX2NyZWF0ZWQ6IHNlYXJjaFJlZ0V4XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRxdWVyeSA9IHtcblx0XHRcdFx0XHRcdFx0XHQkb3I6IFtcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0c3VwcG9ydF90aWNrZXRfbnVtYmVyX3N0cmluZzogc2VhcmNoUmVnRXhcblx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGRhdGVfY3JlYXRlZF9zdHJpbmc6IHNlYXJjaFJlZ0V4XG5cdFx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRzdGF0dXM6IHNlYXJjaFJlZ0V4XG5cdFx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR1c2VyX2NyZWF0ZWQ6IHNlYXJjaFJlZ0V4XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XVxuXHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFxuXHRcdFx0XHRyZXR1cm4gUmVzb2x2ZUlPU2VydmVyLmdldFN1cHBvcnREQigpLm1vZGVsKGNvbGxlY3Rpb25UeXBlKS5jb2xsZWN0aW9uLmNvdW50RG9jdW1lbnRzKHF1ZXJ5KTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdGNvdW50Q29sbGVjdGlvbjoge1xuXHRcdFx0Y2hlY2s6IG5ldyBTaW1wbGVTY2hlbWEoe1xuXHRcdFx0XHRjb2xsZWN0aW9uVHlwZToge1xuXHRcdFx0XHRcdHR5cGU6IFN0cmluZ1xuXHRcdFx0XHR9XG5cdFx0XHR9KSxcblx0XHRcdGZ1bmN0aW9uOiBmdW5jdGlvbihjb2xsZWN0aW9uVHlwZTogc3RyaW5nKSB7XHRcblx0XHRcdFx0cmV0dXJuIFJlc29sdmVJT1NlcnZlci5nZXRTdXBwb3J0REIoKS5tb2RlbChjb2xsZWN0aW9uVHlwZSkuY29sbGVjdGlvbi5jb3VudERvY3VtZW50cygpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSk7XG59Il19
@@ -1,19 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var simpl_schema_1 = require("simpl-schema");
4
- var support_ticket_collection_1 = require("../collections/support-ticket.collection");
5
- function loadSupportMethods(supportManager) {
6
- supportManager.supportMethods({
7
- testSupportMethods: {
8
- check: new simpl_schema_1.default({
9
- test: {
10
- type: String
11
- }
12
- }),
13
- function: function (test) {
14
- return support_ticket_collection_1.SupportTickets.findOne({}).exec();
15
- }
16
- },
17
- });
18
- }
19
- exports.loadSupportMethods = loadSupportMethods;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var simpl_schema_1=require("simpl-schema"),support_ticket_collection_1=require("../collections/support-ticket.collection");function loadSupportMethods(t){t.supportMethods({testSupportMethods:{check:new simpl_schema_1.default({test:{type:String}}),function:function(t){return support_ticket_collection_1.SupportTickets.findOne({}).exec()}}})}exports.loadSupportMethods=loadSupportMethods;
2
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdXBwb3J0LW1ldGhvZHMvc3VwcG9ydC50cyJdLCJuYW1lcyI6WyJzaW1wbF9zY2hlbWFfMSIsInJlcXVpcmUiLCJzdXBwb3J0X3RpY2tldF9jb2xsZWN0aW9uXzEiLCJsb2FkU3VwcG9ydE1ldGhvZHMiLCJzdXBwb3J0TWFuYWdlciIsInN1cHBvcnRNZXRob2RzIiwidGVzdFN1cHBvcnRNZXRob2RzIiwiY2hlY2siLCJkZWZhdWx0IiwidGVzdCIsInR5cGUiLCJTdHJpbmciLCJmdW5jdGlvbiIsIlN1cHBvcnRUaWNrZXRzIiwiZmluZE9uZSIsImV4ZWMiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoib0VBQUEsSUFBQUEsZUFBQUMsUUFBQSxnQkFFQUMsNEJBQUFELFFBQUEsNENBR0EsU0FBZ0JFLG1CQUFtQkMsR0FDbENBLEVBQWVDLGVBQWUsQ0FDN0JDLG1CQUFvQixDQUNuQkMsTUFBTyxJQUFJUCxlQUFBUSxRQUFhLENBQ3ZCQyxLQUFNLENBQ0xDLEtBQU1DLFVBR1JDLFNBQVUsU0FBU0gsR0FDbEIsT0FBT1AsNEJBQUFXLGVBQWVDLFFBQVEsSUFBSUMsV0FUdENDLFFBQUFiLG1CQUFBQSIsImZpbGUiOiJzdXBwb3J0LW1ldGhvZHMvc3VwcG9ydC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTaW1wbGVTY2hlbWEgZnJvbSAnc2ltcGwtc2NoZW1hJztcbmltcG9ydCB7IFN1cHBvcnRNYW5hZ2VyIH0gZnJvbSAnLi4vbWFuYWdlcnMvc3VwcG9ydC5tYW5hZ2VyJztcbmltcG9ydCB7IFN1cHBvcnRUaWNrZXRzIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvc3VwcG9ydC10aWNrZXQuY29sbGVjdGlvbic7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRTdXBwb3J0TWV0aG9kcyhzdXBwb3J0TWFuYWdlcjogU3VwcG9ydE1hbmFnZXIpIHtcblx0c3VwcG9ydE1hbmFnZXIuc3VwcG9ydE1ldGhvZHMoe1xuXHRcdHRlc3RTdXBwb3J0TWV0aG9kczoge1xuXHRcdFx0Y2hlY2s6IG5ldyBTaW1wbGVTY2hlbWEoe1xuXHRcdFx0XHR0ZXN0OiB7XG5cdFx0XHRcdFx0dHlwZTogU3RyaW5nXG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdFx0ZnVuY3Rpb246IGZ1bmN0aW9uKHRlc3QpIHtcblx0XHRcdFx0cmV0dXJuIFN1cHBvcnRUaWNrZXRzLmZpbmRPbmUoe30pLmV4ZWMoKTtcblx0XHRcdH1cblx0XHR9LFxuXHR9KTtcbn0iXX0=
package/util/common.js CHANGED
@@ -1,334 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var rusDiff = require('rus-diff');
4
- var deepDiff = require('deep-diff').diff;
5
- function deepCopy(obj) {
6
- return JSON.parse(JSON.stringify(obj), dateReviver);
7
- }
8
- exports.deepCopy = deepCopy;
9
- function dateReviver(key, value) {
10
- if (typeof value === 'string') {
11
- var a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
12
- if (a) {
13
- return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6].split('.')[0], +a[6].split('.')[1]));
14
- }
15
- }
16
- return value;
17
- }
18
- exports.dateReviver = dateReviver;
19
- function getMongoUpdates(currDoc, modifiedDoc, incVersion) {
20
- if (currDoc.createdAt) {
21
- modifiedDoc.createdAt = currDoc.createdAt;
22
- }
23
- if (currDoc.updatedAt) {
24
- modifiedDoc.updatedAt = currDoc.updatedAt;
25
- }
26
- var updates = rusDiff.diff(currDoc, modifiedDoc);
27
- if (updates) {
28
- if (updates.$set && !Object.keys(updates.$set).length) {
29
- delete updates.$set;
30
- }
31
- if (incVersion) {
32
- updates.$inc = { __v: 1 };
33
- }
34
- }
35
- else {
36
- if (incVersion) {
37
- updates = {
38
- $inc: { __v: 1 }
39
- };
40
- }
41
- }
42
- return updates;
43
- }
44
- exports.getMongoUpdates = getMongoUpdates;
45
- function getMongoMergeUpdatedDoc(f_doc, currentDoc, oldDoc) {
46
- var upDoc = deepCopy(oldDoc);
47
- upDoc.__v = currentDoc.__v;
48
- var diff_1 = getDeepDiff(oldDoc, currentDoc);
49
- var diff_2 = getDeepDiff(oldDoc, f_doc);
50
- var updates = mergeUpdates(diff_2, diff_1);
51
- applyMongoUpdate(upDoc, updates);
52
- return upDoc;
53
- }
54
- exports.getMongoMergeUpdatedDoc = getMongoMergeUpdatedDoc;
55
- function mergeUpdates() {
56
- var updatesToMerge = [];
57
- for (var _i = 0; _i < arguments.length; _i++) {
58
- updatesToMerge[_i] = arguments[_i];
59
- }
60
- var merged = {
61
- $set: {},
62
- $unset: {},
63
- $inc: {},
64
- $push: {},
65
- $pull: {}
66
- };
67
- updatesToMerge.filter(function (a) { return a; }).forEach(function (anUpdate) {
68
- anUpdate.forEach(function (change) {
69
- var path = change.path[0];
70
- for (var i = 1; i < change.path.length; i++) {
71
- path += '.' + change.path[i];
72
- }
73
- if (change.kind === 'E') {
74
- if (typeof (change.rhs) === 'number' && path.endsWith('quantity')) {
75
- if (merged.$inc[path]) {
76
- merged.$inc[path] += change.rhs - change.lhs;
77
- }
78
- else {
79
- merged.$inc[path] = change.rhs - change.lhs;
80
- }
81
- }
82
- else {
83
- merged.$set[path] = change.rhs;
84
- }
85
- }
86
- else if (change.kind === 'A') {
87
- if (change.item.kind === 'N') {
88
- if (!merged.$push[path] || JSON.stringify(merged.$push[path]) !== JSON.stringify(change.item.rhs)) {
89
- if (!merged.$push[path]) {
90
- merged.$push[path] = [];
91
- }
92
- if (!merged.$push[path].filter(function (a) { return JSON.stringify(a) === JSON.stringify(change.item.rhs); }).length) {
93
- merged.$push[path].push(change.item.rhs);
94
- }
95
- }
96
- }
97
- else if (change.item.kind === 'D') {
98
- if (!merged.$pull[path] || JSON.stringify(merged.$pull[path]) !== JSON.stringify(change.item.lhs)) {
99
- if (!merged.$pull[path]) {
100
- merged.$pull[path] = [];
101
- }
102
- if (!merged.$pull[path].filter(function (a) { return JSON.stringify(a) === JSON.stringify(change.item.lhs); }).length) {
103
- merged.$pull[path].push(change.item.lhs);
104
- }
105
- }
106
- }
107
- else if (change.item.kind === 'E') {
108
- console.log('Condition E not satisfied.');
109
- // if (!merged.$pull[path] || JSON.stringify(merged.$pull[path]) !== JSON.stringify(change.item.lhs)) {
110
- // merged.$pull[path] = change.item.lhs;
111
- // }
112
- }
113
- }
114
- });
115
- });
116
- return merged;
117
- }
118
- exports.mergeUpdates = mergeUpdates;
119
- function getDeepDiff(doc1, doc2) {
120
- delete doc1._id;
121
- delete doc1.__v;
122
- if (doc1.updatedAt) {
123
- delete doc1.updatedAt;
124
- }
125
- if (doc1.createdAt) {
126
- delete doc1.createdAt;
127
- }
128
- delete doc2._id;
129
- delete doc2.__v;
130
- if (doc2.updatedAt) {
131
- delete doc2.updatedAt;
132
- }
133
- if (doc2.createdAt) {
134
- delete doc2.createdAt;
135
- }
136
- return deepDiff(doc1, doc2);
137
- }
138
- exports.getDeepDiff = getDeepDiff;
139
- function applyMongoUpdate(uDoc, delta) {
140
- var orig, k, pathk, vk, n, n1, n2, name, o, o1, o2, ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9a, ref9b, ref10, ref11, ref12a, ref12b, ref13, v;
141
- orig = deepCopy(uDoc);
142
- if (delta != null) {
143
- if (delta.$rename != null) {
144
- ref = delta.$rename;
145
- // tslint:disable-next-line:forin
146
- for (k in ref) {
147
- v = ref[k];
148
- ref1 = resolve(uDoc, k), o1 = ref1[0], n1 = ref1[1];
149
- ref2 = resolve(uDoc, v), o2 = ref2[0], n2 = ref2[1];
150
- if ((o1 != null) && n1.length === 1) {
151
- if ((o2 != null) && n2.length === 1) {
152
- o2[n2[0]] = o1[n1[0]];
153
- delete o1[n1[0]];
154
- }
155
- else {
156
- throw new Error(o2 + '/' + n2 + ' - couldn\'t resolve first for ' + uDoc + ' ' + v);
157
- }
158
- }
159
- else {
160
- throw new Error(o1 + '/' + n1 + ' - couldn\'t resolve second for ' + uDoc + ' ' + k);
161
- }
162
- }
163
- }
164
- if (delta.$set != null) {
165
- ref3 = delta.$set;
166
- // tslint:disable-next-line:forin
167
- for (k in ref3) {
168
- v = ref3[k];
169
- ref4 = resolve(uDoc, k, {
170
- force: true
171
- }), o = ref4[0], n = ref4[1];
172
- if ((o != null) && n.length === 1) {
173
- o[n[0]] = v;
174
- }
175
- else {
176
- throw new Error(o + '/' + n + ' - couldn\'t set for ' + uDoc + ' ' + k);
177
- }
178
- }
179
- }
180
- if (delta.$inc != null) {
181
- ref5 = delta.$inc;
182
- // tslint:disable-next-line:forin
183
- for (k in ref5) {
184
- v = ref5[k];
185
- ref6 = resolve(uDoc, k, {
186
- force: true
187
- }), o = ref6[0], n = ref6[1];
188
- if ((o != null) && n.length === 1) {
189
- if (o[name = n[0]] == null) {
190
- o[name] = 0;
191
- }
192
- o[n[0]] += v;
193
- }
194
- else {
195
- throw new Error(o + '/' + n + ' - couldn\'t set for ' + uDoc + ' ' + k);
196
- }
197
- }
198
- }
199
- if (delta.$unset != null) {
200
- ref7 = delta.$unset;
201
- // tslint:disable-next-line:forin
202
- for (k in ref7) {
203
- v = ref7[k];
204
- ref8 = resolve(uDoc, k), o = ref8[0], n = ref8[1];
205
- if ((o != null) && n.length === 1) {
206
- delete o[n[0]];
207
- }
208
- else {
209
- throw new Error(o + '/' + n + ' - couldn\'t unset for ' + uDoc + ' ' + k);
210
- }
211
- }
212
- }
213
- if (delta.$pull != null) {
214
- ref9a = delta.$pull;
215
- // tslint:disable-next-line:forin
216
- for (pathk in ref9a) { // should only loop 1 time
217
- ref9b = ref9a[pathk];
218
- for (var kk = (ref9b.length - 1); kk >= 0; kk--) {
219
- vk = ref9b[kk];
220
- ref10 = resolve(uDoc, pathk), o = ref10[0], n = ref10[1];
221
- ref11 = resolve(orig, pathk), o2 = ref11[0], n2 = ref11[1];
222
- if ((o != null) && n.length === 1) {
223
- o[n[0]].splice(o2[n2[0]].findIndex(function (z) { return JSON.stringify(z) === JSON.stringify(vk); }), 1);
224
- }
225
- else {
226
- throw new Error(o + '/' + n + ' - couldn\'t unset for ' + uDoc + ' ' + pathk);
227
- }
228
- }
229
- }
230
- }
231
- if (delta.$push != null) {
232
- ref12a = delta.$push;
233
- // tslint:disable-next-line:forin
234
- for (pathk in ref12a) { // should only loop 1 time
235
- ref12b = ref12a[pathk];
236
- // for (let kk = 0; kk < ref12b.length; kk++) {
237
- for (var kk = (ref12b.length - 1); kk >= 0; kk--) {
238
- vk = ref12b[kk];
239
- ref13 = resolve(uDoc, pathk), o = ref13[0], n = ref13[1];
240
- if ((o != null) && n.length === 1) {
241
- o[n[0]].push(vk);
242
- }
243
- else {
244
- throw new Error(o + '/' + n + ' - couldn\'t unset for ' + uDoc + ' ' + pathk);
245
- }
246
- }
247
- }
248
- }
249
- }
250
- return uDoc;
251
- }
252
- exports.applyMongoUpdate = applyMongoUpdate;
253
- function resolve(a, path, options) {
254
- var e, k, last, stack;
255
- if (options == null) {
256
- options = {};
257
- }
258
- stack = arrize(path);
259
- last = [];
260
- if (stack.length > 0) {
261
- last.unshift(stack.pop());
262
- }
263
- e = a;
264
- if (e !== null) {
265
- while ((k = stack.shift()) !== void 0) {
266
- if (e[k] !== void 0) {
267
- e = e[k];
268
- }
269
- else {
270
- stack.unshift(k);
271
- break;
272
- }
273
- }
274
- }
275
- if (options.force) {
276
- while ((k = stack.shift()) !== void 0) {
277
- if ((typeof stack[0] === 'number') || ((stack.length === 0) && (typeof last[0] === 'number'))) {
278
- e[k] = [];
279
- }
280
- else {
281
- e[k] = {};
282
- }
283
- e = e[k];
284
- }
285
- }
286
- else {
287
- while ((k = stack.pop()) !== void 0) {
288
- last.unshift(k);
289
- }
290
- }
291
- return [e, last];
292
- }
293
- function arrize(path, glue) {
294
- if (glue == null) {
295
- glue = '.';
296
- }
297
- return ((function () {
298
- if (Array.isArray(path)) {
299
- return path.slice(0);
300
- }
301
- else {
302
- switch (path) {
303
- case void 0:
304
- case null:
305
- case false:
306
- case '':
307
- return [];
308
- default:
309
- return path.toString().split(glue);
310
- }
311
- }
312
- })()).map(function (e) {
313
- switch (e) {
314
- case void 0:
315
- case null:
316
- case false:
317
- case '':
318
- return null;
319
- default:
320
- return e.toString();
321
- }
322
- }).filter(function (e) {
323
- return e != null;
324
- });
325
- }
326
- function getBinarySize(string) {
327
- if (string) {
328
- return Buffer.byteLength(string, 'utf8');
329
- }
330
- else {
331
- return 0;
332
- }
333
- }
334
- exports.getBinarySize = getBinarySize;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var rusDiff=require("rus-diff"),deepDiff=require("deep-diff").diff;function deepCopy(e){return JSON.parse(JSON.stringify(e),dateReviver)}function dateReviver(e,t){if("string"==typeof t){var r=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(t);if(r)return new Date(Date.UTC(+r[1],+r[2]-1,+r[3],+r[4],+r[5],+r[6].split(".")[0],+r[6].split(".")[1]))}return t}function getMongoUpdates(e,t,r){e.createdAt&&(t.createdAt=e.createdAt),e.updatedAt&&(t.updatedAt=e.updatedAt);var n=rusDiff.diff(e,t);return n?(n.$set&&!Object.keys(n.$set).length&&delete n.$set,r&&(n.$inc={__v:1})):r&&(n={$inc:{__v:1}}),n}function getMongoMergeUpdatedDoc(e,t,r){var n=deepCopy(r);n.__v=t.__v;var i=getDeepDiff(r,t);return applyMongoUpdate(n,mergeUpdates(getDeepDiff(r,e),i)),n}function mergeUpdates(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n={$set:{},$unset:{},$inc:{},$push:{},$pull:{}};return e.filter(function(e){return e}).forEach(function(e){e.forEach(function(t){for(var e=t.path[0],r=1;r<t.path.length;r++)e+="."+t.path[r];"E"===t.kind?"number"==typeof t.rhs&&e.endsWith("quantity")?n.$inc[e]?n.$inc[e]+=t.rhs-t.lhs:n.$inc[e]=t.rhs-t.lhs:n.$set[e]=t.rhs:"A"===t.kind&&("N"===t.item.kind?n.$push[e]&&JSON.stringify(n.$push[e])===JSON.stringify(t.item.rhs)||(n.$push[e]||(n.$push[e]=[]),n.$push[e].filter(function(e){return JSON.stringify(e)===JSON.stringify(t.item.rhs)}).length||n.$push[e].push(t.item.rhs)):"D"===t.item.kind?n.$pull[e]&&JSON.stringify(n.$pull[e])===JSON.stringify(t.item.lhs)||(n.$pull[e]||(n.$pull[e]=[]),n.$pull[e].filter(function(e){return JSON.stringify(e)===JSON.stringify(t.item.lhs)}).length||n.$pull[e].push(t.item.lhs)):"E"===t.item.kind&&console.log("Condition E not satisfied."))})}),n}function getDeepDiff(e,t){return delete e._id,delete e.__v,e.updatedAt&&delete e.updatedAt,e.createdAt&&delete e.createdAt,delete t._id,delete t.__v,t.updatedAt&&delete t.updatedAt,t.createdAt&&delete t.createdAt,deepDiff(e,t)}function applyMongoUpdate(e,t){var r,n,i,o,l,f,u,s,d,p,a,c,g,h,v,$,y,D,m,w,A,S,_,U,M,O,N,E;if(r=deepCopy(e),null!=t){if(null!=t.$rename)for(n in c=t.$rename){if(E=c[n],p=(g=resolve(e,n))[0],f=g[1],a=(h=resolve(e,E))[0],u=h[1],null==p||1!==f.length)throw new Error(p+"/"+f+" - couldn't resolve second for "+e+" "+n);if(null==a||1!==u.length)throw new Error(a+"/"+u+" - couldn't resolve first for "+e+" "+E);a[u[0]]=p[f[0]],delete p[f[0]]}if(null!=t.$set)for(n in v=t.$set){if(E=v[n],d=($=resolve(e,n,{force:!0}))[0],l=$[1],null==d||1!==l.length)throw new Error(d+"/"+l+" - couldn't set for "+e+" "+n);d[l[0]]=E}if(null!=t.$inc)for(n in y=t.$inc){if(E=y[n],d=(D=resolve(e,n,{force:!0}))[0],l=D[1],null==d||1!==l.length)throw new Error(d+"/"+l+" - couldn't set for "+e+" "+n);null==d[s=l[0]]&&(d[s]=0),d[l[0]]+=E}if(null!=t.$unset)for(n in m=t.$unset){if(E=m[n],d=(w=resolve(e,n))[0],l=w[1],null==d||1!==l.length)throw new Error(d+"/"+l+" - couldn't unset for "+e+" "+n);delete d[l[0]]}if(null!=t.$pull)for(i in A=t.$pull)for(var J=(S=A[i]).length-1;0<=J;J--){if(o=S[J],d=(_=resolve(e,i))[0],l=_[1],a=(U=resolve(r,i))[0],u=U[1],null==d||1!==l.length)throw new Error(d+"/"+l+" - couldn't unset for "+e+" "+i);d[l[0]].splice(a[u[0]].findIndex(function(e){return JSON.stringify(e)===JSON.stringify(o)}),1)}if(null!=t.$push)for(i in M=t.$push)for(J=(O=M[i]).length-1;0<=J;J--){if(o=O[J],d=(N=resolve(e,i))[0],l=N[1],null==d||1!==l.length)throw new Error(d+"/"+l+" - couldn't unset for "+e+" "+i);d[l[0]].push(o)}}return e}function resolve(e,t,r){var n,i,o,l;if(null==r&&(r={}),o=[],0<(l=arrize(t)).length&&o.unshift(l.pop()),null!==(n=e))for(;void 0!==(i=l.shift());){if(void 0===n[i]){l.unshift(i);break}n=n[i]}if(r.force)for(;void 0!==(i=l.shift());)"number"==typeof l[0]||0===l.length&&"number"==typeof o[0]?n[i]=[]:n[i]={},n=n[i];else for(;void 0!==(i=l.pop());)o.unshift(i);return[n,o]}function arrize(e,t){return null==t&&(t="."),function(){if(Array.isArray(e))return e.slice(0);switch(e){case void 0:case null:case!1:case"":return[];default:return e.toString().split(t)}}().map(function(e){switch(e){case void 0:case null:case!1:case"":return null;default:return e.toString()}}).filter(function(e){return null!=e})}function getBinarySize(e){return e?Buffer.byteLength(e,"utf8"):0}exports.deepCopy=deepCopy,exports.dateReviver=dateReviver,exports.getMongoUpdates=getMongoUpdates,exports.getMongoMergeUpdatedDoc=getMongoMergeUpdatedDoc,exports.mergeUpdates=mergeUpdates,exports.getDeepDiff=getDeepDiff,exports.applyMongoUpdate=applyMongoUpdate,exports.getBinarySize=getBinarySize;
2
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2NvbW1vbi50cyJdLCJuYW1lcyI6WyJydXNEaWZmIiwicmVxdWlyZSIsImRlZXBEaWZmIiwiZGlmZiIsImRlZXBDb3B5Iiwib2JqIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5IiwiZGF0ZVJldml2ZXIiLCJrZXkiLCJ2YWx1ZSIsImEiLCJleGVjIiwiRGF0ZSIsIlVUQyIsInNwbGl0IiwiZ2V0TW9uZ29VcGRhdGVzIiwiY3VyckRvYyIsIm1vZGlmaWVkRG9jIiwiaW5jVmVyc2lvbiIsImNyZWF0ZWRBdCIsInVwZGF0ZWRBdCIsInVwZGF0ZXMiLCIkc2V0IiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsIiRpbmMiLCJfX3YiLCJnZXRNb25nb01lcmdlVXBkYXRlZERvYyIsImZfZG9jIiwiY3VycmVudERvYyIsIm9sZERvYyIsInVwRG9jIiwiZGlmZl8xIiwiZ2V0RGVlcERpZmYiLCJhcHBseU1vbmdvVXBkYXRlIiwibWVyZ2VVcGRhdGVzIiwidXBkYXRlc1RvTWVyZ2UiLCJfaSIsImFyZ3VtZW50cyIsIm1lcmdlZCIsIiR1bnNldCIsIiRwdXNoIiwiJHB1bGwiLCJmaWx0ZXIiLCJmb3JFYWNoIiwiYW5VcGRhdGUiLCJjaGFuZ2UiLCJwYXRoIiwiaSIsImtpbmQiLCJlbmRzV2l0aCIsInJocyIsImxocyIsIml0ZW0iLCJwdXNoIiwiY29uc29sZSIsImxvZyIsImRvYzEiLCJkb2MyIiwiX2lkIiwidURvYyIsImRlbHRhIiwib3JpZyIsImsiLCJwYXRoayIsInZrIiwibiIsIm4xIiwibjIiLCJuYW1lIiwibyIsIm8xIiwibzIiLCJyZWYiLCJyZWYxIiwicmVmMiIsInJlZjMiLCJyZWY0IiwicmVmNSIsInJlZjYiLCJyZWY3IiwicmVmOCIsInJlZjlhIiwicmVmOWIiLCJyZWYxMCIsInJlZjExIiwicmVmMTJhIiwicmVmMTJiIiwicmVmMTMiLCJ2IiwiJHJlbmFtZSIsInJlc29sdmUiLCJFcnJvciIsImZvcmNlIiwia2siLCJzcGxpY2UiLCJmaW5kSW5kZXgiLCJ6Iiwib3B0aW9ucyIsImUiLCJsYXN0Iiwic3RhY2siLCJhcnJpemUiLCJ1bnNoaWZ0IiwicG9wIiwic2hpZnQiLCJnbHVlIiwiQXJyYXkiLCJpc0FycmF5Iiwic2xpY2UiLCJ0b1N0cmluZyIsIm1hcCIsImdldEJpbmFyeVNpemUiLCJzdHJpbmciLCJCdWZmZXIiLCJieXRlTGVuZ3RoIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Im9FQUFBLElBQUlBLFFBQVVDLFFBQVEsWUFDbEJDLFNBQVdELFFBQVEsYUFBYUUsS0FFcEMsU0FBZ0JDLFNBQVNDLEdBQ3hCLE9BQU9DLEtBQUtDLE1BQU1ELEtBQUtFLFVBQVVILEdBQU1JLGFBR3hDLFNBQWdCQSxZQUFZQyxFQUFLQyxHQUNoQyxHQUFxQixpQkFBVkEsRUFBb0IsQ0FDOUIsSUFBSUMsRUFBSSwrREFBK0RDLEtBQUtGLEdBQzVFLEdBQUlDLEVBQ0gsT0FBTyxJQUFJRSxLQUFLQSxLQUFLQyxLQUFLSCxFQUFFLElBQUtBLEVBQUUsR0FBSyxHQUFJQSxFQUFFLElBQUtBLEVBQUUsSUFBS0EsRUFBRSxJQUFLQSxFQUFFLEdBQUdJLE1BQU0sS0FBSyxJQUFLSixFQUFFLEdBQUdJLE1BQU0sS0FBSyxLQUd4RyxPQUFPTCxFQUdSLFNBQWdCTSxnQkFBZ0JDLEVBQVNDLEVBQWFDLEdBQ2pERixFQUFRRyxZQUNYRixFQUFZRSxVQUFZSCxFQUFRRyxXQUc3QkgsRUFBUUksWUFDWEgsRUFBWUcsVUFBWUosRUFBUUksV0FHakMsSUFBSUMsRUFBVXZCLFFBQVFHLEtBQUtlLEVBQVNDLEdBbUJwQyxPQWpCSUksR0FDQ0EsRUFBUUMsT0FBU0MsT0FBT0MsS0FBS0gsRUFBUUMsTUFBTUcsZUFDdkNKLEVBQVFDLEtBR1pKLElBQ0hHLEVBQVFLLEtBQU8sQ0FBQ0MsSUFBSyxLQUlsQlQsSUFDSEcsRUFBVSxDQUNUSyxLQUFNLENBQUNDLElBQUssS0FLUk4sRUFHUixTQUFnQk8sd0JBQXdCQyxFQUFPQyxFQUFZQyxHQUMxRCxJQUFJQyxFQUFROUIs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QixPQUFPQSxFQUFLOEQsTUFBTSxHQUdsQixPQUFROUQsR0FDUixVQUFLLEVBQ0wsS0FBSyxLQUNMLEtBQUssRUFDTCxJQUFLLEdBQ0osTUFBTyxHQUNSLFFBQ0MsT0FBT0EsRUFBSytELFdBQVdqRyxNQUFNNkYsSUFaekIsR0FlREssSUFBSSxTQUFTWixHQUNsQixPQUFRQSxHQUNQLFVBQUssRUFDTCxLQUFLLEtBQ0wsS0FBSyxFQUNMLElBQUssR0FDTCxPQUFPLEtBQ1AsUUFDQSxPQUFPQSxFQUFFVyxjQUVSbkUsT0FBTyxTQUFTd0QsR0FDbEIsT0FBWSxNQUFMQSxJQUtULFNBQWdCYSxjQUFjQyxHQUM3QixPQUFJQSxFQUNJQyxPQUFPQyxXQUFXRixFQUFRLFFBRzFCLEVBelZURyxRQUFBbkgsU0FBQUEsU0FJQW1ILFFBQUE5RyxZQUFBQSxZQVVBOEcsUUFBQXRHLGdCQUFBQSxnQkErQkFzRyxRQUFBekYsd0JBQUFBLHdCQVVBeUYsUUFBQWpGLGFBQUFBLGFBbUVBaUYsUUFBQW5GLFlBQUFBLFlBMEJBbUYsUUFBQWxGLGlCQUFBQSxpQkFnTUFrRixRQUFBSixjQUFBQSIsImZpbGUiOiJ1dGlsL2NvbW1vbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImxldCBydXNEaWZmID0gcmVxdWlyZSgncnVzLWRpZmYnKTtcbmxldCBkZWVwRGlmZiA9IHJlcXVpcmUoJ2RlZXAtZGlmZicpLmRpZmY7XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWVwQ29weShvYmopIHtcblx0cmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqKSwgZGF0ZVJldml2ZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZVJldml2ZXIoa2V5LCB2YWx1ZSkge1xuXHRpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuXHRcdGxldCBhID0gL14oXFxkezR9KS0oXFxkezJ9KS0oXFxkezJ9KVQoXFxkezJ9KTooXFxkezJ9KTooXFxkezJ9KD86XFwuXFxkKik/KVokLy5leGVjKHZhbHVlKTtcblx0XHRpZiAoYSkge1xuXHRcdFx0cmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKCthWzFdLCArYVsyXSAtIDEsICthWzNdLCArYVs0XSwgK2FbNV0sICthWzZdLnNwbGl0KCcuJylbMF0sICthWzZdLnNwbGl0KCcuJylbMV0pKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9uZ29VcGRhdGVzKGN1cnJEb2MsIG1vZGlmaWVkRG9jLCBpbmNWZXJzaW9uKSB7XG5cdGlmIChjdXJyRG9jLmNyZWF0ZWRBdCkge1xuXHRcdG1vZGlmaWVkRG9jLmNyZWF0ZWRBdCA9IGN1cnJEb2MuY3JlYXRlZEF0O1xuXHR9XG5cblx0aWYgKGN1cnJEb2MudXBkYXRlZEF0KSB7XG5cdFx0bW9kaWZpZWREb2MudXBkYXRlZEF0ID0gY3VyckRvYy51cGRhdGVkQXQ7XG5cdH1cblxuXHRsZXQgdXBkYXRlcyA9IHJ1c0RpZmYuZGlmZihjdXJyRG9jLCBtb2RpZmllZERvYyk7XG5cblx0aWYgKHVwZGF0ZXMpIHtcblx0XHRpZiAodXBkYXRlcy4kc2V0ICYmICFPYmplY3Qua2V5cyh1cGRhdGVzLiRzZXQpLmxlbmd0aCkge1xuXHRcdFx0ZGVsZXRlIHVwZGF0ZXMuJHNldDtcblx0XHR9XG5cblx0XHRpZiAoaW5jVmVyc2lvbikge1xuXHRcdFx0dXBkYXRlcy4kaW5jID0ge19fdjogMX07XG5cdFx0fVxuXHR9XG5cdGVsc2Uge1xuXHRcdGlmIChpbmNWZXJzaW9uKSB7XG5cdFx0XHR1cGRhdGVzID0ge1xuXHRcdFx0XHQkaW5jOiB7X192OiAxfVxuXHRcdFx0fTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdXBkYXRlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vbmdvTWVyZ2VVcGRhdGVkRG9jKGZfZG9jLCBjdXJyZW50RG9jLCBvbGREb2MpIHtcblx0bGV0IHVwRG9jID0gZGVlcENvcHkob2xkRG9jKTtcblx0dXBEb2MuX192ID0gY3VycmVudERvYy5fX3Y7XG5cdGxldCBkaWZmXzEgPSBnZXREZWVwRGlmZihvbGREb2MsIGN1cnJlbnREb2MpO1xuXHRsZXQgZGlmZl8yID0gZ2V0RGVlcERpZmYob2xkRG9jLCBmX2RvYyk7XG5cdGxldCB1cGRhdGVzID0gbWVyZ2VVcGRhdGVzKGRpZmZfMiwgZGlmZl8xKTtcblx0YXBwbHlNb25nb1VwZGF0ZSh1cERvYywgdXBkYXRlcyk7XG5cdHJldHVybiB1cERvYztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlVXBkYXRlcyguLi51cGRhdGVzVG9NZXJnZSkge1xuXHRsZXQgbWVyZ2VkID0ge1xuXHRcdCRzZXQ6IHt9LFxuXHRcdCR1bnNldDoge30sXG5cdFx0JGluYzoge30sXG5cdFx0JHB1c2g6IHt9LFxuXHRcdCRwdWxsOiB7fVxuXHR9O1xuXG5cdHVwZGF0ZXNUb01lcmdlLmZpbHRlcihhID0+IGEpLmZvckVhY2goYW5VcGRhdGUgPT4ge1xuXHRcdGFuVXBkYXRlLmZvckVhY2goY2hhbmdlID0+IHtcblx0XHRcdGxldCBwYXRoID0gY2hhbmdlLnBhdGhbMF07XG5cblx0XHRcdGZvciAobGV0IGkgPSAxOyBpIDwgY2hhbmdlLnBhdGgubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0cGF0aCArPSAnLicgKyBjaGFuZ2UucGF0aFtpXTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKGNoYW5nZS5raW5kID09PSAnRScpIHtcblx0XHRcdFx0aWYgKHR5cGVvZihjaGFuZ2UucmhzKSA9PT0gJ251bWJlcicgJiYgcGF0aC5lbmRzV2l0aCgncXVhbnRpdHknKSkge1xuXHRcdFx0XHRcdGlmIChtZXJnZWQuJGluY1twYXRoXSkge1xuXHRcdFx0XHRcdFx0bWVyZ2VkLiRpbmNbcGF0aF0gKz0gY2hhbmdlLnJocyAtIGNoYW5nZS5saHM7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0bWVyZ2VkLiRpbmNbcGF0aF0gPSBjaGFuZ2UucmhzIC0gY2hhbmdlLmxocztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0bWVyZ2VkLiRzZXRbcGF0aF0gPSBjaGFuZ2UucmhzO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRlbHNlIGlmIChjaGFuZ2Uua2luZCA9PT0gJ0EnKSB7XG5cdFx0XHRcdGlmIChjaGFuZ2UuaXRlbS5raW5kID09PSAnTicpIHtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRpZiAoIW1lcmdlZC4kcHVzaFtwYXRoXSB8fCBKU09OLnN0cmluZ2lmeShtZXJnZWQuJHB1c2hbcGF0aF0pICE9PSBKU09OLnN0cmluZ2lmeShjaGFuZ2UuaXRlbS5yaHMpKSB7XG5cdFx0XHRcdFx0XHRpZiAoIW1lcmdlZC4kcHVzaFtwYXRoXSkge1xuXHRcdFx0XHRcdFx0XHRtZXJnZWQuJHB1c2hbcGF0aF0gPSBbXTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0aWYgKCFtZXJnZWQuJHB1c2hbcGF0aF0uZmlsdGVyKGEgPT4gSlNPTi5zdHJpbmdpZnkoYSkgPT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZS5pdGVtLnJocykpLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRtZXJnZWQuJHB1c2hbcGF0aF0ucHVzaChjaGFuZ2UuaXRlbS5yaHMpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmIChjaGFuZ2UuaXRlbS5raW5kID09PSAnRCcpIHtcblx0XHRcdFx0XHRpZiAoIW1lcmdlZC4kcHVsbFtwYXRoXSB8fCBKU09OLnN0cmluZ2lmeShtZXJnZWQuJHB1bGxbcGF0aF0pICE9PSBKU09OLnN0cmluZ2lmeShjaGFuZ2UuaXRlbS5saHMpKSB7XG5cdFx0XHRcdFx0XHRpZiAoIW1lcmdlZC4kcHVsbFtwYXRoXSkge1xuXHRcdFx0XHRcdFx0XHRtZXJnZWQuJHB1bGxbcGF0aF0gPSBbXTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0aWYgKCFtZXJnZWQuJHB1bGxbcGF0aF0uZmlsdGVyKGEgPT4gSlNPTi5zdHJpbmdpZnkoYSkgPT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZS5pdGVtLmxocykpLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRtZXJnZWQuJHB1bGxbcGF0aF0ucHVzaChjaGFuZ2UuaXRlbS5saHMpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmIChjaGFuZ2UuaXRlbS5raW5kID09PSAnRScpIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnQ29uZGl0aW9uIEUgbm90IHNhdGlzZmllZC4nKTtcblx0XHRcdFx0XHQvLyBpZiAoIW1lcmdlZC4kcHVsbFtwYXRoXSB8fCBKU09OLnN0cmluZ2lmeShtZXJnZWQuJHB1bGxbcGF0aF0pICE9PSBKU09OLnN0cmluZ2lmeShjaGFuZ2UuaXRlbS5saHMpKSB7XG5cdFx0XHRcdFx0Ly8gXHRtZXJnZWQuJHB1bGxbcGF0aF0gPSBjaGFuZ2UuaXRlbS5saHM7XG5cdFx0XHRcdFx0Ly8gfVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0pO1xuXG5cdHJldHVybiBtZXJnZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWVwRGlmZihkb2MxLCBkb2MyKSB7XG5cdGRlbGV0ZSBkb2MxLl9pZDtcblx0ZGVsZXRlIGRvYzEuX192O1xuXG5cdGlmIChkb2MxLnVwZGF0ZWRBdCkge1xuXHRcdGRlbGV0ZSBkb2MxLnVwZGF0ZWRBdDtcblx0fVxuXG5cdGlmIChkb2MxLmNyZWF0ZWRBdCkge1xuXHRcdGRlbGV0ZSBkb2MxLmNyZWF0ZWRBdDtcblx0fVxuXG5cdGRlbGV0ZSBkb2MyLl9pZDtcblx0ZGVsZXRlIGRvYzIuX192O1xuXG5cdGlmIChkb2MyLnVwZGF0ZWRBdCkge1xuXHRcdGRlbGV0ZSBkb2MyLnVwZGF0ZWRBdDtcblx0fVxuXG5cdGlmIChkb2MyLmNyZWF0ZWRBdCkge1xuXHRcdGRlbGV0ZSBkb2MyLmNyZWF0ZWRBdDtcblx0fVxuXG5cdHJldHVybiBkZWVwRGlmZihkb2MxLCBkb2MyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5TW9uZ29VcGRhdGUodURvYywgZGVsdGEpIHtcblx0bGV0IG9yaWcsIGssIHBhdGhrLCB2aywgbiwgbjEsIG4yLCBuYW1lLCBvLCBvMSwgbzIsIHJlZiwgcmVmMSwgcmVmMiwgcmVmMywgcmVmNCwgcmVmNSwgcmVmNiwgcmVmNywgcmVmOCwgcmVmOWEsIHJlZjliLCByZWYxMCwgcmVmMTEsIHJlZjEyYSwgcmVmMTJiLCByZWYxMywgdjtcblxuXHRvcmlnID0gZGVlcENvcHkodURvYyk7XG5cblx0aWYgKGRlbHRhICE9IG51bGwpIHtcblx0XHRpZiAoZGVsdGEuJHJlbmFtZSAhPSBudWxsKSB7XG5cdFx0XHRyZWYgPSBkZWx0YS4kcmVuYW1lO1xuXHRcdFx0Ly8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmZvcmluXG5cdFx0XHRmb3IgKGsgaW4gcmVmKSB7XG5cdFx0XHRcdHYgPSByZWZba107XG5cdFx0XHRcdHJlZjEgPSByZXNvbHZlKHVEb2MsIGspLCBvMSA9IHJlZjFbMF0sIG4xID0gcmVmMVsxXTtcblx0XHRcdFx0cmVmMiA9IHJlc29sdmUodURvYywgdiksIG8yID0gcmVmMlswXSwgbjIgPSByZWYyWzFdO1xuXHRcdFx0XHRpZiAoKG8xICE9IG51bGwpICYmIG4xLmxlbmd0aCA9PT0gMSkge1xuXHRcdFx0XHRcdGlmICgobzIgIT0gbnVsbCkgJiYgbjIubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdFx0XHRvMltuMlswXV0gPSBvMVtuMVswXV07XG5cdFx0XHRcdFx0XHRkZWxldGUgbzFbbjFbMF1dO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihvMiArICcvJyArIG4yICsgJyAtIGNvdWxkblxcJ3QgcmVzb2x2ZSBmaXJzdCBmb3IgJyArIHVEb2MgKyAnICcgKyB2KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gXG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihvMSArICcvJyArIG4xICsgJyAtIGNvdWxkblxcJ3QgcmVzb2x2ZSBzZWNvbmQgZm9yICcgKyB1RG9jICsgJyAnICsgayk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKGRlbHRhLiRzZXQgIT0gbnVsbCkge1xuXHRcdFx0cmVmMyA9IGRlbHRhLiRzZXQ7XG5cdFx0XHQvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Zm9yaW5cblx0XHRcdGZvciAoayBpbiByZWYzKSB7XG5cdFx0XHRcdHYgPSByZWYzW2tdO1xuXHRcdFx0XHRyZWY0ID0gcmVzb2x2ZSh1RG9jLCBrLCB7XG5cdFx0XHRcdFx0Zm9yY2U6IHRydWVcblx0XHRcdFx0fSksIG8gPSByZWY0WzBdLCBuID0gcmVmNFsxXTtcblx0XHRcdFx0aWYgKChvICE9IG51bGwpICYmIG4ubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdFx0b1tuWzBdXSA9IHY7XG5cdFx0XHRcdH0gXG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihvICsgJy8nICsgbiArICcgLSBjb3VsZG5cXCd0IHNldCBmb3IgJyArIHVEb2MgKyAnICcgKyBrKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoZGVsdGEuJGluYyAhPSBudWxsKSB7XG5cdFx0XHRyZWY1ID0gZGVsdGEuJGluYztcblx0XHRcdC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpmb3JpblxuXHRcdFx0Zm9yIChrIGluIHJlZjUpIHtcblx0XHRcdFx0diA9IHJlZjVba107XG5cdFx0XHRcdHJlZjYgPSByZXNvbHZlKHVEb2MsIGssIHtcblx0XHRcdFx0Zm9yY2U6IHRydWVcblx0XHRcdFx0fSksIG8gPSByZWY2WzBdLCBuID0gcmVmNlsxXTtcblx0XHRcdFx0aWYgKChvICE9IG51bGwpICYmIG4ubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdFx0aWYgKG9bbmFtZSA9IG5bMF1dID09IG51bGwpIHtcblx0XHRcdFx0XHRcdG9bbmFtZV0gPSAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRvW25bMF1dICs9IHY7XG5cdFx0XHRcdH0gXG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihvICsgJy8nICsgbiArICcgLSBjb3VsZG5cXCd0IHNldCBmb3IgJyArIHVEb2MgKyAnICcgKyBrKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoZGVsdGEuJHVuc2V0ICE9IG51bGwpIHtcblx0XHRcdHJlZjcgPSBkZWx0YS4kdW5zZXQ7XG5cdFx0XHQvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Zm9yaW5cblx0XHRcdGZvciAoayBpbiByZWY3KSB7XG5cdFx0XHRcdHYgPSByZWY3W2tdO1xuXHRcdFx0XHRyZWY4ID0gcmVzb2x2ZSh1RG9jLCBrKSwgbyA9IHJlZjhbMF0sIG4gPSByZWY4WzFdO1xuXHRcdFx0XHRpZiAoKG8gIT0gbnVsbCkgJiYgbi5sZW5ndGggPT09IDEpIHtcblx0XHRcdFx0XHRkZWxldGUgb1tuWzBdXTtcblx0XHRcdFx0fSBcblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKG8gKyAnLycgKyBuICsgJyAtIGNvdWxkblxcJ3QgdW5zZXQgZm9yICcgKyB1RG9jICsgJyAnICsgayk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKGRlbHRhLiRwdWxsICE9IG51bGwpIHtcblx0XHRcdHJlZjlhID0gZGVsdGEuJHB1bGw7XG5cdFx0XHQvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Zm9yaW5cblx0XHRcdGZvciAocGF0aGsgaW4gcmVmOWEpIHsgLy8gc2hvdWxkIG9ubHkgbG9vcCAxIHRpbWVcblx0XHRcdFx0cmVmOWIgPSByZWY5YVtwYXRoa107XG5cdFx0XHRcdGZvciAobGV0IGtrID0gKHJlZjliLmxlbmd0aCAtIDEpOyBrayA+PSAwOyBray0tKSB7XG5cdFx0XHRcdFx0dmsgPSByZWY5Yltra107XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0cmVmMTAgPSByZXNvbHZlKHVEb2MsIHBhdGhrKSwgbyA9IHJlZjEwWzBdLCBuID0gcmVmMTBbMV07XG5cdFx0XHRcdFx0cmVmMTEgPSByZXNvbHZlKG9yaWcsIHBhdGhrKSwgbzIgPSByZWYxMVswXSwgbjIgPSByZWYxMVsxXTtcblx0XHRcdFx0XHRpZiAoKG8gIT0gbnVsbCkgJiYgbi5sZW5ndGggPT09IDEpIHtcblx0XHRcdFx0XHRcdG9bblswXV0uc3BsaWNlKCg8QXJyYXk8YW55Pj5vMltuMlswXV0pLmZpbmRJbmRleCh6ID0+IEpTT04uc3RyaW5naWZ5KHopID09PSBKU09OLnN0cmluZ2lmeSh2aykpLCAxKTtcblx0XHRcdFx0XHR9IFxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKG8gKyAnLycgKyBuICsgJyAtIGNvdWxkblxcJ3QgdW5zZXQgZm9yICcgKyB1RG9jICsgJyAnICsgcGF0aGspO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoZGVsdGEuJHB1c2ggIT0gbnVsbCkge1xuXHRcdFx0cmVmMTJhID0gZGVsdGEuJHB1c2g7XG5cdFx0XHQvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Zm9yaW5cblx0XHRcdGZvciAocGF0aGsgaW4gcmVmMTJhKSB7IC8vIHNob3VsZCBvbmx5IGxvb3AgMSB0aW1lXG5cdFx0XHRcdHJlZjEyYiA9IHJlZjEyYVtwYXRoa107XG5cdFx0XHRcdC8vIGZvciAobGV0IGtrID0gMDsga2sgPCByZWYxMmIubGVuZ3RoOyBraysrKSB7XG5cdFx0XHRcdGZvciAobGV0IGtrID0gKHJlZjEyYi5sZW5ndGggLSAxKTsga2sgPj0gMDsga2stLSkge1xuXHRcdFx0XHRcdFx0dmsgPSByZWYxMmJba2tdO1xuXG5cdFx0XHRcdFx0cmVmMTMgPSByZXNvbHZlKHVEb2MsIHBhdGhrKSwgbyA9IHJlZjEzWzBdLCBuID0gcmVmMTNbMV07XG5cdFx0XHRcdFx0aWYgKChvICE9IG51bGwpICYmIG4ubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdFx0XHRvW25bMF1dLnB1c2godmspO1xuXHRcdFx0XHRcdH0gXG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IobyArICcvJyArIG4gKyAnIC0gY291bGRuXFwndCB1bnNldCBmb3IgJyArIHVEb2MgKyAnICcgKyBwYXRoayk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdHJldHVybiB1RG9jO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlKGEsIHBhdGgsIG9wdGlvbnM/KSB7XG5cdGxldCBlLCBrLCBsYXN0LCBzdGFjaztcblx0aWYgKG9wdGlvbnMgPT0gbnVsbCkge1xuXHRcdG9wdGlvbnMgPSB7fTtcblx0fVxuXHRzdGFjayA9IGFycml6ZShwYXRoKTtcblx0bGFzdCA9IFtdO1xuXHRpZiAoc3RhY2subGVuZ3RoID4gMCkge1xuXHRcdGxhc3QudW5zaGlmdChzdGFjay5wb3AoKSk7XG5cdH1cblx0ZSA9IGE7XG5cdGlmIChlICE9PSBudWxsKSB7XG5cdFx0d2hpbGUgKChrID0gc3RhY2suc2hpZnQoKSkgIT09IHZvaWQgMCkge1xuXHRcdFx0aWYgKGVba10gIT09IHZvaWQgMCkge1xuXHRcdFx0ZSA9IGVba107XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0c3RhY2sudW5zaGlmdChrKTtcblx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRpZiAob3B0aW9ucy5mb3JjZSkge1xuXHRcdHdoaWxlICgoayA9IHN0YWNrLnNoaWZ0KCkpICE9PSB2b2lkIDApIHtcblx0XHRcdGlmICgodHlwZW9mIHN0YWNrWzBdID09PSAnbnVtYmVyJykgfHwgKChzdGFjay5sZW5ndGggPT09IDApICYmICh0eXBlb2YgbGFzdFswXSA9PT0gJ251bWJlcicpKSkge1xuXHRcdFx0ZVtrXSA9IFtdO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdGVba10gPSB7fTtcblx0XHRcdH1cblx0XHRcdGUgPSBlW2tdO1xuXHRcdH1cblx0fSBcblx0ZWxzZSB7XG5cdFx0d2hpbGUgKChrID0gc3RhY2sucG9wKCkpICE9PSB2b2lkIDApIHtcblx0XHRcdGxhc3QudW5zaGlmdChrKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIFtlLCBsYXN0XTtcbn1cblxuZnVuY3Rpb24gYXJyaXplKHBhdGgsIGdsdWU/KSB7XG5cdGlmIChnbHVlID09IG51bGwpIHtcblx0XHRnbHVlID0gJy4nO1xuXHR9XG5cdHJldHVybiAoKGZ1bmN0aW9uKCkge1xuXHRcdGlmIChBcnJheS5pc0FycmF5KHBhdGgpKSB7XG5cdFx0XHRyZXR1cm4gcGF0aC5zbGljZSgwKTtcblx0XHR9IFxuXHRcdGVsc2Uge1xuXHRcdFx0c3dpdGNoIChwYXRoKSB7XG5cdFx0XHRjYXNlIHZvaWQgMDpcblx0XHRcdGNhc2UgbnVsbDpcblx0XHRcdGNhc2UgZmFsc2U6XG5cdFx0XHRjYXNlICcnOlxuXHRcdFx0XHRyZXR1cm4gW107XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRyZXR1cm4gcGF0aC50b1N0cmluZygpLnNwbGl0KGdsdWUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSkoKSkubWFwKGZ1bmN0aW9uKGUpIHtcblx0XHRzd2l0Y2ggKGUpIHtcblx0XHRcdGNhc2Ugdm9pZCAwOlxuXHRcdFx0Y2FzZSBudWxsOlxuXHRcdFx0Y2FzZSBmYWxzZTpcblx0XHRcdGNhc2UgJyc6XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRyZXR1cm4gZS50b1N0cmluZygpO1xuXHRcdH1cblx0fSkuZmlsdGVyKGZ1bmN0aW9uKGUpIHtcblx0XHRyZXR1cm4gZSAhPSBudWxsO1xuXHR9KTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmluYXJ5U2l6ZShzdHJpbmcpIHtcblx0aWYgKHN0cmluZykge1xuXHRcdHJldHVybiBCdWZmZXIuYnl0ZUxlbmd0aChzdHJpbmcsICd1dGY4Jyk7XG5cdH1cblx0ZWxzZSB7XG5cdFx0cmV0dXJuIDA7XG5cdH1cbn0iXX0=
@@ -1,8 +0,0 @@
1
- import { Model, Document } from 'mongoose';
2
- import { ActiveSubscriptionModel } from '../models/active-subscription.model';
3
- interface ResolveIOModel extends ActiveSubscriptionModel, Document {
4
- }
5
- export declare const ActiveSubscriptions: Model<ResolveIOModel>;
6
- export declare const ActiveSubscriptionVersions: Model<ResolveIOModel>;
7
- export {};
8
- //# sourceMappingURL=active-subscription.collection.d.ts.map
@@ -1,8 +0,0 @@
1
- import { Model, Document } from 'mongoose';
2
- import { AppStatusModel } from '../models/app-status.model';
3
- interface ResolveIOModel extends AppStatusModel, Document {
4
- }
5
- export declare const AppStatus: Model<ResolveIOModel>;
6
- export declare const AppStatusVersions: Model<ResolveIOModel>;
7
- export {};
8
- //# sourceMappingURL=app-status.collection.d.ts.map
@@ -1,8 +0,0 @@
1
- import { Model, Document } from 'mongoose';
2
- import { AppVersionModel } from '../models/app-version.model';
3
- interface ResolveIOModel extends AppVersionModel, Document {
4
- }
5
- export declare const AppVersions: Model<ResolveIOModel>;
6
- export declare const AppVersionVersions: Model<ResolveIOModel>;
7
- export {};
8
- //# sourceMappingURL=app-version.collection.d.ts.map