@webex/internal-plugin-conversation 3.0.0-beta.9 → 3.0.0-beta.91
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.
- package/README.md +1 -3
- package/dist/activities.js +8 -69
- package/dist/activities.js.map +1 -1
- package/dist/activity-thread-ordering.js +19 -79
- package/dist/activity-thread-ordering.js.map +1 -1
- package/dist/config.js +1 -7
- package/dist/config.js.map +1 -1
- package/dist/constants.js +4 -5
- package/dist/constants.js.map +1 -1
- package/dist/conversation.js +790 -1199
- package/dist/conversation.js.map +1 -1
- package/dist/convo-error.js +0 -23
- package/dist/convo-error.js.map +1 -1
- package/dist/decryption-transforms.js +35 -98
- package/dist/decryption-transforms.js.map +1 -1
- package/dist/encryption-transforms.js +11 -48
- package/dist/encryption-transforms.js.map +1 -1
- package/dist/index.js +7 -50
- package/dist/index.js.map +1 -1
- package/dist/share-activity.js +40 -106
- package/dist/share-activity.js.map +1 -1
- package/dist/to-array.js +9 -11
- package/dist/to-array.js.map +1 -1
- package/package.json +15 -15
- package/src/activities.js +10 -7
- package/src/activity-thread-ordering.js +27 -30
- package/src/activity-threading.md +68 -49
- package/src/config.js +5 -5
- package/src/conversation.js +621 -589
- package/src/decryption-transforms.js +103 -62
- package/src/encryption-transforms.js +103 -83
- package/src/index.js +82 -66
- package/src/share-activity.js +64 -55
- package/src/to-array.js +2 -2
- package/test/integration/spec/create.js +184 -118
- package/test/integration/spec/encryption.js +250 -186
- package/test/integration/spec/get.js +761 -513
- package/test/integration/spec/mercury.js +37 -27
- package/test/integration/spec/share.js +292 -229
- package/test/integration/spec/verbs.js +628 -441
- package/test/unit/spec/conversation.js +265 -163
- package/test/unit/spec/decrypt-transforms.js +112 -131
- package/test/unit/spec/encryption-transforms.js +24 -18
- package/test/unit/spec/share-activity.js +37 -40
package/README.md
CHANGED
|
@@ -21,14 +21,12 @@ npm install --save @webex/internal-plugin-conversation
|
|
|
21
21
|
## Usage
|
|
22
22
|
|
|
23
23
|
```js
|
|
24
|
-
|
|
25
24
|
import '@webex/internal-plugin-conversation';
|
|
26
25
|
|
|
27
26
|
import WebexCore from '@webex/webex-core';
|
|
28
27
|
|
|
29
28
|
const webex = new WebexCore();
|
|
30
|
-
webex.internal.conversation.WHATEVER
|
|
31
|
-
|
|
29
|
+
webex.internal.conversation.WHATEVER;
|
|
32
30
|
```
|
|
33
31
|
|
|
34
32
|
This is the list of environment variable used by this plugin:
|
package/dist/activities.js
CHANGED
|
@@ -1,33 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
|
|
4
|
-
|
|
5
4
|
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
|
6
|
-
|
|
7
5
|
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
8
|
-
|
|
9
6
|
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
|
10
|
-
|
|
11
7
|
var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
|
|
12
|
-
|
|
13
8
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
14
|
-
|
|
15
9
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
16
|
-
|
|
17
10
|
_Object$defineProperty(exports, "__esModule", {
|
|
18
11
|
value: true
|
|
19
12
|
});
|
|
20
|
-
|
|
21
13
|
exports.sortActivitiesByPublishedDate = exports.sanitizeActivity = exports.isRootActivity = exports.isReplyActivity = exports.isNewer = exports.isEditActivity = exports.isDeleteActivity = exports.isCreateActivity = exports.getPublishedDate = exports.getParentId = exports.getIsActivityOrphaned = exports.getActivityType = exports.determineActivityType = exports.createRootActivity = exports.createReplyEditActivity = exports.createReplyActivity = exports.createEditActivity = exports.OLDER = exports.NEWER = exports.MID = exports.INITIAL = exports.ACTIVITY_TYPES = void 0;
|
|
22
|
-
|
|
23
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
24
|
-
|
|
25
15
|
var _sortBy2 = _interopRequireDefault(require("lodash/sortBy"));
|
|
26
|
-
|
|
27
16
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
28
|
-
|
|
29
17
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
30
|
-
|
|
31
18
|
var OLDER = 'older';
|
|
32
19
|
exports.OLDER = OLDER;
|
|
33
20
|
var NEWER = 'newer';
|
|
@@ -56,167 +43,124 @@ var CREATE = 'create';
|
|
|
56
43
|
var TOMBSTONE = 'tombstone';
|
|
57
44
|
var DELETE = 'delete';
|
|
58
45
|
var ADD = 'add';
|
|
59
|
-
|
|
60
46
|
var getActivityType = function getActivityType(activity) {
|
|
61
47
|
var _activity$parent, _activity$parent2;
|
|
62
|
-
|
|
63
48
|
if (((_activity$parent = activity.parent) === null || _activity$parent === void 0 ? void 0 : _activity$parent.type) === REPLY) {
|
|
64
49
|
return ACTIVITY_TYPES.REPLY;
|
|
65
50
|
}
|
|
66
|
-
|
|
67
51
|
if (((_activity$parent2 = activity.parent) === null || _activity$parent2 === void 0 ? void 0 : _activity$parent2.type) === EDIT) {
|
|
68
52
|
return ACTIVITY_TYPES.EDIT;
|
|
69
53
|
}
|
|
70
|
-
|
|
71
54
|
if (activity.verb === ADD || activity.type === REACTION_SUMMARY) {
|
|
72
55
|
return ACTIVITY_TYPES.REACTION;
|
|
73
56
|
}
|
|
74
|
-
|
|
75
57
|
if (activity.type === REACTION_SELF_SUMMARY) {
|
|
76
58
|
return ACTIVITY_TYPES.REACTION_SELF;
|
|
77
59
|
}
|
|
78
|
-
|
|
79
60
|
if (activity.verb === CREATE) {
|
|
80
61
|
return ACTIVITY_TYPES.CREATE;
|
|
81
62
|
}
|
|
82
|
-
|
|
83
63
|
if (activity.verb === TOMBSTONE) {
|
|
84
64
|
return ACTIVITY_TYPES.TOMBSTONE;
|
|
85
65
|
}
|
|
86
|
-
|
|
87
66
|
if (activity.verb === DELETE) {
|
|
88
67
|
return ACTIVITY_TYPES.DELETE;
|
|
89
68
|
}
|
|
90
|
-
|
|
91
69
|
return ACTIVITY_TYPES.ROOT;
|
|
92
70
|
};
|
|
93
|
-
|
|
94
71
|
exports.getActivityType = getActivityType;
|
|
95
|
-
|
|
96
72
|
var getPublishedDate = function getPublishedDate() {
|
|
97
73
|
var activity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
98
74
|
return new Date(activity.published).getTime();
|
|
99
75
|
};
|
|
76
|
+
|
|
100
77
|
/**
|
|
101
78
|
* @param {Object} activity1
|
|
102
79
|
* @param {Object} activity2
|
|
103
80
|
* @returns {boolean} true if first activity is newer than second
|
|
104
81
|
*/
|
|
105
|
-
|
|
106
|
-
|
|
107
82
|
exports.getPublishedDate = getPublishedDate;
|
|
108
|
-
|
|
109
83
|
var isNewer = function isNewer(activity1, activity2) {
|
|
110
84
|
return getPublishedDate(activity1) > getPublishedDate(activity2);
|
|
111
85
|
};
|
|
112
|
-
|
|
113
86
|
exports.isNewer = isNewer;
|
|
114
|
-
|
|
115
87
|
var sortActivitiesByPublishedDate = function sortActivitiesByPublishedDate(activities) {
|
|
116
88
|
return (0, _sortBy2.default)(activities, function (activity) {
|
|
117
89
|
return getPublishedDate(activity);
|
|
118
90
|
});
|
|
119
91
|
};
|
|
120
|
-
|
|
121
92
|
exports.sortActivitiesByPublishedDate = sortActivitiesByPublishedDate;
|
|
122
|
-
|
|
123
93
|
var getParentId = function getParentId(activity) {
|
|
124
94
|
var _activity$parent3;
|
|
125
|
-
|
|
126
95
|
return activity === null || activity === void 0 ? void 0 : (_activity$parent3 = activity.parent) === null || _activity$parent3 === void 0 ? void 0 : _activity$parent3.id;
|
|
127
96
|
};
|
|
128
|
-
|
|
129
97
|
exports.getParentId = getParentId;
|
|
130
|
-
|
|
131
98
|
var isRootActivity = function isRootActivity(act) {
|
|
132
99
|
return getActivityType(act) === ACTIVITY_TYPES.ROOT;
|
|
133
100
|
};
|
|
134
|
-
|
|
135
101
|
exports.isRootActivity = isRootActivity;
|
|
136
|
-
|
|
137
102
|
var isReplyActivity = function isReplyActivity(act) {
|
|
138
103
|
return getActivityType(act) === ACTIVITY_TYPES.REPLY;
|
|
139
104
|
};
|
|
140
|
-
|
|
141
105
|
exports.isReplyActivity = isReplyActivity;
|
|
142
|
-
|
|
143
106
|
var isEditActivity = function isEditActivity(act) {
|
|
144
107
|
return getActivityType(act) === ACTIVITY_TYPES.EDIT;
|
|
145
108
|
};
|
|
146
|
-
|
|
147
109
|
exports.isEditActivity = isEditActivity;
|
|
148
|
-
|
|
149
110
|
var isCreateActivity = function isCreateActivity(act) {
|
|
150
111
|
return getActivityType(act) === ACTIVITY_TYPES.CREATE;
|
|
151
112
|
};
|
|
152
|
-
|
|
153
113
|
exports.isCreateActivity = isCreateActivity;
|
|
154
|
-
|
|
155
114
|
var isDeleteActivity = function isDeleteActivity(act) {
|
|
156
115
|
return getActivityType(act) === ACTIVITY_TYPES.DELETE;
|
|
157
116
|
};
|
|
158
|
-
|
|
159
117
|
exports.isDeleteActivity = isDeleteActivity;
|
|
160
|
-
|
|
161
118
|
var sanitizeActivity = function sanitizeActivity(activity) {
|
|
162
119
|
var final = _objectSpread({}, activity);
|
|
163
|
-
|
|
164
120
|
final.reaction = activity.reaction || {};
|
|
165
|
-
final.reactionSelf = activity.reactionSelf || {};
|
|
121
|
+
final.reactionSelf = activity.reactionSelf || {};
|
|
166
122
|
|
|
123
|
+
// replies will be spread in order beneath parent, no need to include on final objects
|
|
167
124
|
delete final.replies;
|
|
168
125
|
return final;
|
|
169
126
|
};
|
|
170
|
-
|
|
171
127
|
exports.sanitizeActivity = sanitizeActivity;
|
|
172
|
-
|
|
173
128
|
var getIsActivityOrphaned = function getIsActivityOrphaned(activity, activities) {
|
|
174
129
|
return activity.parent && activity.parent.id && !activities[activity.parent.id];
|
|
175
130
|
};
|
|
176
|
-
|
|
177
131
|
exports.getIsActivityOrphaned = getIsActivityOrphaned;
|
|
178
|
-
|
|
179
132
|
var getIsReplyEditActivity = function getIsReplyEditActivity(activity, activities) {
|
|
180
133
|
var parentId = activity.parent.id;
|
|
181
134
|
var parentActivity = activities[parentId];
|
|
182
135
|
return parentActivity && isReplyActivity(parentActivity);
|
|
183
136
|
};
|
|
184
|
-
|
|
185
137
|
var determineActivityType = function determineActivityType(activity, activities) {
|
|
186
|
-
var initialType = getActivityType(activity);
|
|
187
|
-
// the only way to dermine their status as an edited reply is to find the original reply
|
|
138
|
+
var initialType = getActivityType(activity);
|
|
188
139
|
|
|
140
|
+
// edits to a reply, while they are replies themselves, appear in every way as edits
|
|
141
|
+
// the only way to dermine their status as an edited reply is to find the original reply
|
|
189
142
|
if (initialType === ACTIVITY_TYPES.EDIT) {
|
|
190
143
|
var isReplyEditActivity = getIsReplyEditActivity(activity, activities);
|
|
191
144
|
return isReplyEditActivity ? ACTIVITY_TYPES.REPLY_EDIT : initialType;
|
|
192
145
|
}
|
|
193
|
-
|
|
194
146
|
return initialType;
|
|
195
147
|
};
|
|
196
|
-
|
|
197
148
|
exports.determineActivityType = determineActivityType;
|
|
198
|
-
|
|
199
149
|
var createRootActivity = function createRootActivity(activity) {
|
|
200
150
|
return activity;
|
|
201
151
|
};
|
|
202
|
-
|
|
203
152
|
exports.createRootActivity = createRootActivity;
|
|
204
|
-
|
|
205
153
|
var createReplyActivity = function createReplyActivity(activity) {
|
|
206
154
|
var replyAct = _objectSpread(_objectSpread({}, activity), {}, {
|
|
207
155
|
replyParent: activity.parent
|
|
208
156
|
});
|
|
209
|
-
|
|
210
157
|
return replyAct;
|
|
211
158
|
};
|
|
212
|
-
|
|
213
159
|
exports.createReplyActivity = createReplyActivity;
|
|
214
|
-
|
|
215
160
|
var createEditActivity = function createEditActivity(editActivity, activities) {
|
|
216
161
|
var editActParentObj = editActivity.parent;
|
|
217
162
|
var parentId = editActParentObj.id;
|
|
218
163
|
var parentAct = activities[parentId];
|
|
219
|
-
|
|
220
164
|
var joinedEditAct = _objectSpread(_objectSpread({}, parentAct), {}, {
|
|
221
165
|
id: editActivity.id,
|
|
222
166
|
parent: editActParentObj,
|
|
@@ -224,18 +168,15 @@ var createEditActivity = function createEditActivity(editActivity, activities) {
|
|
|
224
168
|
object: editActivity.object,
|
|
225
169
|
published: editActivity.published
|
|
226
170
|
});
|
|
227
|
-
|
|
228
171
|
return joinedEditAct;
|
|
229
|
-
};
|
|
230
|
-
|
|
172
|
+
};
|
|
231
173
|
|
|
174
|
+
// takes an edit activity whose parent is a reply activity
|
|
232
175
|
exports.createEditActivity = createEditActivity;
|
|
233
|
-
|
|
234
176
|
var createReplyEditActivity = function createReplyEditActivity(editActivity, activities) {
|
|
235
177
|
var editActParentObj = editActivity.parent;
|
|
236
178
|
var parentId = editActParentObj.id;
|
|
237
179
|
var parentReplyAct = activities[parentId];
|
|
238
|
-
|
|
239
180
|
var joinedReplyEditActivity = _objectSpread(_objectSpread({}, parentReplyAct), {}, {
|
|
240
181
|
id: editActivity.id,
|
|
241
182
|
parent: editActParentObj,
|
|
@@ -244,9 +185,7 @@ var createReplyEditActivity = function createReplyEditActivity(editActivity, act
|
|
|
244
185
|
object: editActivity.object,
|
|
245
186
|
published: editActivity.published
|
|
246
187
|
});
|
|
247
|
-
|
|
248
188
|
return joinedReplyEditActivity;
|
|
249
189
|
};
|
|
250
|
-
|
|
251
190
|
exports.createReplyEditActivity = createReplyEditActivity;
|
|
252
191
|
//# sourceMappingURL=activities.js.map
|
package/dist/activities.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OLDER","NEWER","MID","INITIAL","ACTIVITY_TYPES","REPLY","EDIT","REACTION","REACTION_SELF","ROOT","CREATE","TOMBSTONE","DELETE","REPLY_EDIT","REACTION_SUMMARY","REACTION_SELF_SUMMARY","ADD","getActivityType","activity","parent","type","verb","getPublishedDate","Date","published","getTime","isNewer","activity1","activity2","sortActivitiesByPublishedDate","activities","getParentId","id","isRootActivity","act","isReplyActivity","isEditActivity","isCreateActivity","isDeleteActivity","sanitizeActivity","final","reaction","reactionSelf","replies","getIsActivityOrphaned","getIsReplyEditActivity","parentId","parentActivity","determineActivityType","initialType","isReplyEditActivity","createRootActivity","createReplyActivity","replyAct","replyParent","createEditActivity","editActivity","editActParentObj","parentAct","joinedEditAct","editParent","object","createReplyEditActivity","parentReplyAct","joinedReplyEditActivity"],"sources":["activities.js"],"sourcesContent":["import {sortBy} from 'lodash';\n\nexport const OLDER = 'older';\nexport const NEWER = 'newer';\nexport const MID = 'mid';\nexport const INITIAL = 'initial';\n\nexport const ACTIVITY_TYPES = {\n REPLY: 'REPLY',\n EDIT: 'EDIT',\n REACTION: 'REACTION',\n REACTION_SELF: 'REACTION_SELF',\n ROOT: 'ROOT',\n CREATE: 'CREATE',\n TOMBSTONE: 'TOMBSTONE',\n DELETE: 'DELETE',\n REPLY_EDIT: 'REPLY_EDIT'\n};\n\nconst REPLY = 'reply';\nconst EDIT = 'edit';\nconst REACTION_SUMMARY = 'reactionSummary';\nconst REACTION_SELF_SUMMARY = 'reactionSelfSummary';\nconst CREATE = 'create';\nconst TOMBSTONE = 'tombstone';\nconst DELETE = 'delete';\nconst ADD = 'add';\n\nexport const getActivityType = (activity) => {\n if (activity.parent?.type === REPLY) {\n return ACTIVITY_TYPES.REPLY;\n }\n if (activity.parent?.type === EDIT) {\n return ACTIVITY_TYPES.EDIT;\n }\n if (activity.verb === ADD || activity.type === REACTION_SUMMARY) {\n return ACTIVITY_TYPES.REACTION;\n }\n if (activity.type === REACTION_SELF_SUMMARY) {\n return ACTIVITY_TYPES.REACTION_SELF;\n }\n if (activity.verb === CREATE) {\n return ACTIVITY_TYPES.CREATE;\n }\n if (activity.verb === TOMBSTONE) {\n return ACTIVITY_TYPES.TOMBSTONE;\n }\n if (activity.verb === DELETE) {\n return ACTIVITY_TYPES.DELETE;\n }\n\n return ACTIVITY_TYPES.ROOT;\n};\n\nexport const getPublishedDate = (activity = {}) => new Date(activity.published).getTime();\n\n/**\n * @param {Object} activity1\n * @param {Object} activity2\n * @returns {boolean} true if first activity is newer than second\n */\nexport const isNewer = (activity1, activity2) => getPublishedDate(activity1) > getPublishedDate(activity2);\n\nexport const sortActivitiesByPublishedDate = (activities) => sortBy(activities, (activity) => getPublishedDate(activity));\n\nexport const getParentId = (activity) => activity?.parent?.id;\n\nexport const isRootActivity = (act) => getActivityType(act) === ACTIVITY_TYPES.ROOT;\nexport const isReplyActivity = (act) => getActivityType(act) === ACTIVITY_TYPES.REPLY;\nexport const isEditActivity = (act) => getActivityType(act) === ACTIVITY_TYPES.EDIT;\nexport const isCreateActivity = (act) => getActivityType(act) === ACTIVITY_TYPES.CREATE;\nexport const isDeleteActivity = (act) => getActivityType(act) === ACTIVITY_TYPES.DELETE;\n\nexport const sanitizeActivity = (activity) => {\n const final = {...activity};\n\n final.reaction = activity.reaction || {};\n final.reactionSelf = activity.reactionSelf || {};\n\n // replies will be spread in order beneath parent, no need to include on final objects\n delete final.replies;\n\n return final;\n};\n\nexport const getIsActivityOrphaned = (activity, activities) => activity.parent && activity.parent.id && !activities[activity.parent.id];\n\nconst getIsReplyEditActivity = (activity, activities) => {\n const parentId = activity.parent.id;\n const parentActivity = activities[parentId];\n\n return parentActivity && isReplyActivity(parentActivity);\n};\n\nexport const determineActivityType = (activity, activities) => {\n const initialType = getActivityType(activity);\n\n // edits to a reply, while they are replies themselves, appear in every way as edits\n // the only way to dermine their status as an edited reply is to find the original reply\n if (initialType === ACTIVITY_TYPES.EDIT) {\n const isReplyEditActivity = getIsReplyEditActivity(activity, activities);\n\n return isReplyEditActivity ? ACTIVITY_TYPES.REPLY_EDIT : initialType;\n }\n\n return initialType;\n};\n\nexport const createRootActivity = (activity) => activity;\n\nexport const createReplyActivity = (activity) => {\n const replyAct = {\n ...activity,\n replyParent: activity.parent\n };\n\n return replyAct;\n};\n\nexport const createEditActivity = (editActivity, activities) => {\n const editActParentObj = editActivity.parent;\n const parentId = editActParentObj.id;\n const parentAct = activities[parentId];\n\n const joinedEditAct = {\n ...parentAct,\n id: editActivity.id,\n parent: editActParentObj,\n editParent: editActParentObj,\n object: editActivity.object,\n published: editActivity.published\n };\n\n return joinedEditAct;\n};\n\n// takes an edit activity whose parent is a reply activity\nexport const createReplyEditActivity = (editActivity, activities) => {\n const editActParentObj = editActivity.parent;\n const parentId = editActParentObj.id;\n const parentReplyAct = activities[parentId];\n\n const joinedReplyEditActivity = {\n ...parentReplyAct,\n id: editActivity.id,\n parent: editActParentObj,\n editParent: editActParentObj,\n replyParent: parentReplyAct.parent,\n object: editActivity.object,\n published: editActivity.published\n };\n\n return joinedReplyEditActivity;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["OLDER","NEWER","MID","INITIAL","ACTIVITY_TYPES","REPLY","EDIT","REACTION","REACTION_SELF","ROOT","CREATE","TOMBSTONE","DELETE","REPLY_EDIT","REACTION_SUMMARY","REACTION_SELF_SUMMARY","ADD","getActivityType","activity","parent","type","verb","getPublishedDate","Date","published","getTime","isNewer","activity1","activity2","sortActivitiesByPublishedDate","activities","getParentId","id","isRootActivity","act","isReplyActivity","isEditActivity","isCreateActivity","isDeleteActivity","sanitizeActivity","final","reaction","reactionSelf","replies","getIsActivityOrphaned","getIsReplyEditActivity","parentId","parentActivity","determineActivityType","initialType","isReplyEditActivity","createRootActivity","createReplyActivity","replyAct","replyParent","createEditActivity","editActivity","editActParentObj","parentAct","joinedEditAct","editParent","object","createReplyEditActivity","parentReplyAct","joinedReplyEditActivity"],"sources":["activities.js"],"sourcesContent":["import {sortBy} from 'lodash';\n\nexport const OLDER = 'older';\nexport const NEWER = 'newer';\nexport const MID = 'mid';\nexport const INITIAL = 'initial';\n\nexport const ACTIVITY_TYPES = {\n REPLY: 'REPLY',\n EDIT: 'EDIT',\n REACTION: 'REACTION',\n REACTION_SELF: 'REACTION_SELF',\n ROOT: 'ROOT',\n CREATE: 'CREATE',\n TOMBSTONE: 'TOMBSTONE',\n DELETE: 'DELETE',\n REPLY_EDIT: 'REPLY_EDIT',\n};\n\nconst REPLY = 'reply';\nconst EDIT = 'edit';\nconst REACTION_SUMMARY = 'reactionSummary';\nconst REACTION_SELF_SUMMARY = 'reactionSelfSummary';\nconst CREATE = 'create';\nconst TOMBSTONE = 'tombstone';\nconst DELETE = 'delete';\nconst ADD = 'add';\n\nexport const getActivityType = (activity) => {\n if (activity.parent?.type === REPLY) {\n return ACTIVITY_TYPES.REPLY;\n }\n if (activity.parent?.type === EDIT) {\n return ACTIVITY_TYPES.EDIT;\n }\n if (activity.verb === ADD || activity.type === REACTION_SUMMARY) {\n return ACTIVITY_TYPES.REACTION;\n }\n if (activity.type === REACTION_SELF_SUMMARY) {\n return ACTIVITY_TYPES.REACTION_SELF;\n }\n if (activity.verb === CREATE) {\n return ACTIVITY_TYPES.CREATE;\n }\n if (activity.verb === TOMBSTONE) {\n return ACTIVITY_TYPES.TOMBSTONE;\n }\n if (activity.verb === DELETE) {\n return ACTIVITY_TYPES.DELETE;\n }\n\n return ACTIVITY_TYPES.ROOT;\n};\n\nexport const getPublishedDate = (activity = {}) => new Date(activity.published).getTime();\n\n/**\n * @param {Object} activity1\n * @param {Object} activity2\n * @returns {boolean} true if first activity is newer than second\n */\nexport const isNewer = (activity1, activity2) =>\n getPublishedDate(activity1) > getPublishedDate(activity2);\n\nexport const sortActivitiesByPublishedDate = (activities) =>\n sortBy(activities, (activity) => getPublishedDate(activity));\n\nexport const getParentId = (activity) => activity?.parent?.id;\n\nexport const isRootActivity = (act) => getActivityType(act) === ACTIVITY_TYPES.ROOT;\nexport const isReplyActivity = (act) => getActivityType(act) === ACTIVITY_TYPES.REPLY;\nexport const isEditActivity = (act) => getActivityType(act) === ACTIVITY_TYPES.EDIT;\nexport const isCreateActivity = (act) => getActivityType(act) === ACTIVITY_TYPES.CREATE;\nexport const isDeleteActivity = (act) => getActivityType(act) === ACTIVITY_TYPES.DELETE;\n\nexport const sanitizeActivity = (activity) => {\n const final = {...activity};\n\n final.reaction = activity.reaction || {};\n final.reactionSelf = activity.reactionSelf || {};\n\n // replies will be spread in order beneath parent, no need to include on final objects\n delete final.replies;\n\n return final;\n};\n\nexport const getIsActivityOrphaned = (activity, activities) =>\n activity.parent && activity.parent.id && !activities[activity.parent.id];\n\nconst getIsReplyEditActivity = (activity, activities) => {\n const parentId = activity.parent.id;\n const parentActivity = activities[parentId];\n\n return parentActivity && isReplyActivity(parentActivity);\n};\n\nexport const determineActivityType = (activity, activities) => {\n const initialType = getActivityType(activity);\n\n // edits to a reply, while they are replies themselves, appear in every way as edits\n // the only way to dermine their status as an edited reply is to find the original reply\n if (initialType === ACTIVITY_TYPES.EDIT) {\n const isReplyEditActivity = getIsReplyEditActivity(activity, activities);\n\n return isReplyEditActivity ? ACTIVITY_TYPES.REPLY_EDIT : initialType;\n }\n\n return initialType;\n};\n\nexport const createRootActivity = (activity) => activity;\n\nexport const createReplyActivity = (activity) => {\n const replyAct = {\n ...activity,\n replyParent: activity.parent,\n };\n\n return replyAct;\n};\n\nexport const createEditActivity = (editActivity, activities) => {\n const editActParentObj = editActivity.parent;\n const parentId = editActParentObj.id;\n const parentAct = activities[parentId];\n\n const joinedEditAct = {\n ...parentAct,\n id: editActivity.id,\n parent: editActParentObj,\n editParent: editActParentObj,\n object: editActivity.object,\n published: editActivity.published,\n };\n\n return joinedEditAct;\n};\n\n// takes an edit activity whose parent is a reply activity\nexport const createReplyEditActivity = (editActivity, activities) => {\n const editActParentObj = editActivity.parent;\n const parentId = editActParentObj.id;\n const parentReplyAct = activities[parentId];\n\n const joinedReplyEditActivity = {\n ...parentReplyAct,\n id: editActivity.id,\n parent: editActParentObj,\n editParent: editActParentObj,\n replyParent: parentReplyAct.parent,\n object: editActivity.object,\n published: editActivity.published,\n };\n\n return joinedReplyEditActivity;\n};\n"],"mappings":"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"}
|
|
@@ -1,44 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
5
|
_Object$defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
|
|
11
8
|
exports.setValue = exports.rootActivityManager = exports.noMoreActivitiesManager = exports.minBatchSize = exports.getValue = exports.getQuery = exports.getLoopCounterFailsafe = exports.getActivityObjectsFromMap = exports.fetchLoopCountMax = exports.defaultMinDisplayableActivities = exports.bookendManager = exports.batchSizeIncrementCount = exports.activityManager = void 0;
|
|
12
|
-
|
|
13
9
|
var _from = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/array/from"));
|
|
14
|
-
|
|
15
10
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
|
|
16
|
-
|
|
17
11
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
18
|
-
|
|
19
12
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
|
|
20
|
-
|
|
21
13
|
var _last2 = _interopRequireDefault(require("lodash/last"));
|
|
22
|
-
|
|
23
14
|
var _activities = require("./activities");
|
|
24
|
-
|
|
25
15
|
var defaultMinDisplayableActivities = 20;
|
|
26
16
|
exports.defaultMinDisplayableActivities = defaultMinDisplayableActivities;
|
|
27
17
|
var minBatchSize = 10;
|
|
28
18
|
exports.minBatchSize = minBatchSize;
|
|
29
19
|
var fetchLoopCountMax = 100;
|
|
30
20
|
exports.fetchLoopCountMax = fetchLoopCountMax;
|
|
31
|
-
var batchSizeIncrementCount = 10;
|
|
21
|
+
var batchSizeIncrementCount = 10;
|
|
32
22
|
|
|
23
|
+
// use accessors for ease of refactoring underlying implementation
|
|
33
24
|
/**
|
|
34
25
|
* @param {Map} destination destination map object for data. Currently a Map, but could be refactored to use any type.
|
|
35
26
|
* @param {string} key
|
|
36
27
|
* @param {any} value
|
|
37
28
|
* @returns {Map}
|
|
38
29
|
*/
|
|
39
|
-
|
|
40
30
|
exports.batchSizeIncrementCount = batchSizeIncrementCount;
|
|
41
|
-
|
|
42
31
|
var setValue = function setValue(destination, key, value) {
|
|
43
32
|
return destination.set(key, value);
|
|
44
33
|
};
|
|
@@ -47,21 +36,15 @@ var setValue = function setValue(destination, key, value) {
|
|
|
47
36
|
* @param {string} key
|
|
48
37
|
* @returns {Map}
|
|
49
38
|
*/
|
|
50
|
-
|
|
51
|
-
|
|
52
39
|
exports.setValue = setValue;
|
|
53
|
-
|
|
54
40
|
var getValue = function getValue(source, key) {
|
|
55
41
|
return source.get(key);
|
|
56
42
|
};
|
|
57
|
-
|
|
58
43
|
exports.getValue = getValue;
|
|
59
|
-
|
|
60
44
|
var getActivityObjectsFromMap = function getActivityObjectsFromMap(hashMap) {
|
|
61
45
|
return (0, _from.default)(hashMap).map(function (_ref) {
|
|
62
46
|
var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
|
|
63
|
-
|
|
64
|
-
|
|
47
|
+
activity = _ref2[1];
|
|
65
48
|
return activity;
|
|
66
49
|
});
|
|
67
50
|
};
|
|
@@ -73,20 +56,15 @@ var getActivityObjectsFromMap = function getActivityObjectsFromMap(hashMap) {
|
|
|
73
56
|
* getActivityHandlerByKey(activityType) - accepts a key to map to a defined activity handler
|
|
74
57
|
* getActivityByTypeAndParentId(activityType, parentId) accepts a key and a parent ID to return an activity of that type whose parent is the parentId
|
|
75
58
|
*/
|
|
76
|
-
|
|
77
|
-
|
|
78
59
|
exports.getActivityObjectsFromMap = getActivityObjectsFromMap;
|
|
79
|
-
|
|
80
60
|
var activityManager = function activityManager() {
|
|
81
61
|
var replyActivityHash = new _map.default();
|
|
82
62
|
var editActivityHash = new _map.default();
|
|
83
63
|
var reactionActivityHash = new _map.default();
|
|
84
64
|
var reactionSelfActivityHash = new _map.default();
|
|
85
|
-
|
|
86
65
|
var handleNewReply = function handleNewReply(replyAct) {
|
|
87
66
|
var replyParentId = (0, _activities.getParentId)(replyAct);
|
|
88
67
|
var existingReplyHash = getValue(replyActivityHash, replyParentId);
|
|
89
|
-
|
|
90
68
|
if (existingReplyHash) {
|
|
91
69
|
setValue(existingReplyHash, replyAct.id, replyAct);
|
|
92
70
|
} else {
|
|
@@ -95,78 +73,67 @@ var activityManager = function activityManager() {
|
|
|
95
73
|
setValue(replyActivityHash, replyParentId, replyHash);
|
|
96
74
|
}
|
|
97
75
|
};
|
|
98
|
-
|
|
99
76
|
var handleNewEdit = function handleNewEdit(editAct) {
|
|
100
|
-
var isTombstone = editAct.verb === _activities.ACTIVITY_TYPES.TOMBSTONE;
|
|
77
|
+
var isTombstone = editAct.verb === _activities.ACTIVITY_TYPES.TOMBSTONE;
|
|
101
78
|
|
|
79
|
+
// we can ignore tombstone edits in favor of the newer one
|
|
102
80
|
if (isTombstone) {
|
|
103
81
|
return;
|
|
104
82
|
}
|
|
105
|
-
|
|
106
83
|
var editParentId = (0, _activities.getParentId)(editAct);
|
|
107
|
-
var existingEdit = getValue(editActivityHash, editParentId);
|
|
84
|
+
var existingEdit = getValue(editActivityHash, editParentId);
|
|
108
85
|
|
|
86
|
+
// edited activity must be newer than what we already have
|
|
109
87
|
if (!existingEdit || (0, _activities.isNewer)(editAct, existingEdit)) {
|
|
110
88
|
setValue(editActivityHash, editParentId, editAct);
|
|
111
89
|
}
|
|
112
|
-
};
|
|
113
|
-
|
|
90
|
+
};
|
|
114
91
|
|
|
92
|
+
// logic is identical between reactions and reaction selfs, so handler simply passes the activity and the correct hash
|
|
115
93
|
var reactionHelper = function reactionHelper(reactionAct, hash) {
|
|
116
94
|
var reactionParentId = (0, _activities.getParentId)(reactionAct);
|
|
117
|
-
var existingReaction = getValue(hash, reactionParentId);
|
|
95
|
+
var existingReaction = getValue(hash, reactionParentId);
|
|
118
96
|
|
|
97
|
+
// reaction activity must be newer than what we already have
|
|
119
98
|
if (!existingReaction || (0, _activities.isNewer)(reactionAct, existingReaction)) {
|
|
120
99
|
setValue(hash, reactionParentId, reactionAct);
|
|
121
100
|
}
|
|
122
101
|
};
|
|
123
|
-
|
|
124
102
|
var handleNewReaction = function handleNewReaction(reactionAct) {
|
|
125
103
|
reactionHelper(reactionAct, reactionActivityHash);
|
|
126
104
|
};
|
|
127
|
-
|
|
128
105
|
var handleNewReactionSelf = function handleNewReactionSelf(reactionSelfAct) {
|
|
129
106
|
reactionHelper(reactionSelfAct, reactionSelfActivityHash);
|
|
130
107
|
};
|
|
131
|
-
|
|
132
108
|
var getActivityHandlerByKey = function getActivityHandlerByKey(key) {
|
|
133
109
|
var _ACTIVITY_TYPES$REACT;
|
|
134
|
-
|
|
135
110
|
return (_ACTIVITY_TYPES$REACT = {}, (0, _defineProperty2.default)(_ACTIVITY_TYPES$REACT, _activities.ACTIVITY_TYPES.REACTION, handleNewReaction), (0, _defineProperty2.default)(_ACTIVITY_TYPES$REACT, _activities.ACTIVITY_TYPES.REACTION_SELF, handleNewReactionSelf), (0, _defineProperty2.default)(_ACTIVITY_TYPES$REACT, _activities.ACTIVITY_TYPES.EDIT, handleNewEdit), (0, _defineProperty2.default)(_ACTIVITY_TYPES$REACT, _activities.ACTIVITY_TYPES.REPLY, handleNewReply), _ACTIVITY_TYPES$REACT)[key];
|
|
136
111
|
};
|
|
137
|
-
|
|
138
112
|
var getActivityByTypeAndParentId = function getActivityByTypeAndParentId(type, id) {
|
|
139
113
|
var _ACTIVITY_TYPES$EDIT$;
|
|
140
|
-
|
|
141
114
|
return (_ACTIVITY_TYPES$EDIT$ = {}, (0, _defineProperty2.default)(_ACTIVITY_TYPES$EDIT$, _activities.ACTIVITY_TYPES.EDIT, getValue(editActivityHash, id)), (0, _defineProperty2.default)(_ACTIVITY_TYPES$EDIT$, _activities.ACTIVITY_TYPES.REPLY, getValue(replyActivityHash, id)), (0, _defineProperty2.default)(_ACTIVITY_TYPES$EDIT$, _activities.ACTIVITY_TYPES.REACTION, getValue(reactionActivityHash, id)), (0, _defineProperty2.default)(_ACTIVITY_TYPES$EDIT$, _activities.ACTIVITY_TYPES.REACTION_SELF, getValue(reactionSelfActivityHash, id)), _ACTIVITY_TYPES$EDIT$)[type];
|
|
142
115
|
};
|
|
143
|
-
|
|
144
116
|
return {
|
|
145
117
|
getActivityHandlerByKey: getActivityHandlerByKey,
|
|
146
118
|
getActivityByTypeAndParentId: getActivityByTypeAndParentId
|
|
147
119
|
};
|
|
148
120
|
};
|
|
121
|
+
|
|
149
122
|
/**
|
|
150
123
|
* encapsulates state and logic for managing oldest and newest activities
|
|
151
124
|
* @returns {object} setters and getters for activity state management
|
|
152
125
|
*/
|
|
153
|
-
|
|
154
|
-
|
|
155
126
|
exports.activityManager = activityManager;
|
|
156
|
-
|
|
157
127
|
var bookendManager = function bookendManager() {
|
|
158
128
|
// keep track of generator state, like what our current oldest & newest activities are
|
|
159
129
|
var oldestAct;
|
|
160
130
|
var newestAct;
|
|
161
|
-
|
|
162
131
|
var getOldestAct = function getOldestAct() {
|
|
163
132
|
return oldestAct;
|
|
164
133
|
};
|
|
165
|
-
|
|
166
134
|
var getNewestAct = function getNewestAct() {
|
|
167
135
|
return newestAct;
|
|
168
136
|
};
|
|
169
|
-
|
|
170
137
|
var setOldestAct = function setOldestAct(act) {
|
|
171
138
|
if (!oldestAct) {
|
|
172
139
|
oldestAct = act;
|
|
@@ -174,7 +141,6 @@ var bookendManager = function bookendManager() {
|
|
|
174
141
|
oldestAct = act;
|
|
175
142
|
}
|
|
176
143
|
};
|
|
177
|
-
|
|
178
144
|
var setNewestAct = function setNewestAct(act) {
|
|
179
145
|
if (!newestAct) {
|
|
180
146
|
newestAct = act;
|
|
@@ -182,7 +148,6 @@ var bookendManager = function bookendManager() {
|
|
|
182
148
|
newestAct = act;
|
|
183
149
|
}
|
|
184
150
|
};
|
|
185
|
-
|
|
186
151
|
var setBookends = function setBookends(activities) {
|
|
187
152
|
var oldestActsFirst = (0, _activities.sortActivitiesByPublishedDate)(activities);
|
|
188
153
|
var newestInBatch = (0, _last2.default)(oldestActsFirst);
|
|
@@ -190,50 +155,42 @@ var bookendManager = function bookendManager() {
|
|
|
190
155
|
setOldestAct(oldestInBatch);
|
|
191
156
|
setNewestAct(newestInBatch);
|
|
192
157
|
};
|
|
193
|
-
|
|
194
158
|
return {
|
|
195
159
|
setBookends: setBookends,
|
|
196
160
|
getNewestAct: getNewestAct,
|
|
197
161
|
getOldestAct: getOldestAct
|
|
198
162
|
};
|
|
199
163
|
};
|
|
164
|
+
|
|
200
165
|
/**
|
|
201
166
|
* encapsulates state and logic for when there are no more fetchable activities from convo
|
|
202
167
|
* @returns {object} setters and getters for no more activities logic
|
|
203
168
|
*/
|
|
204
|
-
|
|
205
|
-
|
|
206
169
|
exports.bookendManager = bookendManager;
|
|
207
|
-
|
|
208
170
|
var noMoreActivitiesManager = function noMoreActivitiesManager() {
|
|
209
171
|
// used to determine if we should continue to fetch older activities
|
|
210
172
|
// must be set per iteration, as querying newer activities is still valid when all end of convo has been reached
|
|
211
173
|
var noMoreActs = false;
|
|
212
174
|
var noOlderActs = false;
|
|
213
175
|
var noNewerActs = false;
|
|
214
|
-
|
|
215
176
|
var getNoMoreActs = function getNoMoreActs() {
|
|
216
177
|
return noMoreActs;
|
|
217
178
|
};
|
|
218
|
-
|
|
219
179
|
var checkAndSetNoOlderActs = function checkAndSetNoOlderActs(act) {
|
|
220
180
|
if (!noOlderActs && (0, _activities.getActivityType)(act) === _activities.ACTIVITY_TYPES.CREATE) {
|
|
221
181
|
noOlderActs = true;
|
|
222
182
|
}
|
|
223
183
|
};
|
|
224
|
-
|
|
225
184
|
var checkAndSetNoNewerActs = function checkAndSetNoNewerActs(activities) {
|
|
226
185
|
if (!activities || !activities.length) {
|
|
227
186
|
noNewerActs = true;
|
|
228
187
|
}
|
|
229
188
|
};
|
|
230
|
-
|
|
231
189
|
var checkAndSetNoMoreActs = function checkAndSetNoMoreActs(queryType, visibleActs, currentBatchSize) {
|
|
232
190
|
if (queryType === _activities.NEWER && noNewerActs || (queryType === _activities.OLDER || queryType === _activities.INITIAL) && noOlderActs || queryType === _activities.MID && visibleActs < currentBatchSize && noOlderActs) {
|
|
233
191
|
noMoreActs = true;
|
|
234
192
|
}
|
|
235
193
|
};
|
|
236
|
-
|
|
237
194
|
return {
|
|
238
195
|
getNoMoreActs: getNoMoreActs,
|
|
239
196
|
checkAndSetNoMoreActs: checkAndSetNoMoreActs,
|
|
@@ -241,43 +198,36 @@ var noMoreActivitiesManager = function noMoreActivitiesManager() {
|
|
|
241
198
|
checkAndSetNoOlderActs: checkAndSetNoOlderActs
|
|
242
199
|
};
|
|
243
200
|
};
|
|
201
|
+
|
|
244
202
|
/**
|
|
245
203
|
* encapsulates state and logic for managing root activities
|
|
246
204
|
* @returns {object} setters and getters for activity state management
|
|
247
205
|
*/
|
|
248
|
-
|
|
249
|
-
|
|
250
206
|
exports.noMoreActivitiesManager = noMoreActivitiesManager;
|
|
251
|
-
|
|
252
207
|
var rootActivityManager = function rootActivityManager() {
|
|
253
208
|
var rootActivityHash = new _map.default();
|
|
254
|
-
|
|
255
209
|
var addNewRoot = function addNewRoot(rootAct) {
|
|
256
210
|
setValue(rootActivityHash, rootAct.id, rootAct);
|
|
257
211
|
};
|
|
258
|
-
|
|
259
212
|
var getRootActivityHash = function getRootActivityHash() {
|
|
260
213
|
return rootActivityHash;
|
|
261
214
|
};
|
|
262
|
-
|
|
263
215
|
return {
|
|
264
216
|
addNewRoot: addNewRoot,
|
|
265
217
|
getRootActivityHash: getRootActivityHash
|
|
266
218
|
};
|
|
267
219
|
};
|
|
268
|
-
|
|
269
220
|
exports.rootActivityManager = rootActivityManager;
|
|
270
|
-
|
|
271
221
|
var getLoopCounterFailsafe = function getLoopCounterFailsafe() {
|
|
272
222
|
var fetchLoopCount = 0;
|
|
273
223
|
return function () {
|
|
274
224
|
fetchLoopCount += 1;
|
|
275
|
-
|
|
276
225
|
if (fetchLoopCount > fetchLoopCountMax) {
|
|
277
226
|
throw new Error('max fetches reached');
|
|
278
227
|
}
|
|
279
228
|
};
|
|
280
229
|
};
|
|
230
|
+
|
|
281
231
|
/**
|
|
282
232
|
* creates activity query object
|
|
283
233
|
* @param {string} type type of query to create
|
|
@@ -288,17 +238,13 @@ var getLoopCounterFailsafe = function getLoopCounterFailsafe() {
|
|
|
288
238
|
* @param {object} [queryOptions.activityToSearch] a server activity to use to build middate query
|
|
289
239
|
* @returns {object}
|
|
290
240
|
*/
|
|
291
|
-
|
|
292
|
-
|
|
293
241
|
exports.getLoopCounterFailsafe = getLoopCounterFailsafe;
|
|
294
|
-
|
|
295
242
|
var getQuery = function getQuery(type, queryOptions) {
|
|
296
243
|
var newestPublishedDate = queryOptions.newestPublishedDate,
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
244
|
+
oldestPublishedDate = queryOptions.oldestPublishedDate,
|
|
245
|
+
batchSize = queryOptions.batchSize,
|
|
246
|
+
_queryOptions$activit = queryOptions.activityToSearch,
|
|
247
|
+
activityToSearch = _queryOptions$activit === void 0 ? {} : _queryOptions$activit;
|
|
302
248
|
switch (type) {
|
|
303
249
|
case _activities.NEWER:
|
|
304
250
|
{
|
|
@@ -309,24 +255,20 @@ var getQuery = function getQuery(type, queryOptions) {
|
|
|
309
255
|
lastActivityFirst: lastActivityFirst
|
|
310
256
|
};
|
|
311
257
|
}
|
|
312
|
-
|
|
313
258
|
case _activities.MID:
|
|
314
259
|
{
|
|
315
260
|
var searchType = (0, _activities.getActivityType)(activityToSearch);
|
|
316
261
|
var midDate;
|
|
317
|
-
|
|
318
262
|
if (searchType === _activities.ACTIVITY_TYPES.REPLY || searchType === _activities.ACTIVITY_TYPES.EDIT) {
|
|
319
263
|
midDate = activityToSearch.parent.published;
|
|
320
264
|
} else {
|
|
321
265
|
midDate = activityToSearch.published;
|
|
322
266
|
}
|
|
323
|
-
|
|
324
267
|
return {
|
|
325
268
|
midDate: midDate,
|
|
326
269
|
limit: batchSize
|
|
327
270
|
};
|
|
328
271
|
}
|
|
329
|
-
|
|
330
272
|
case _activities.OLDER:
|
|
331
273
|
{
|
|
332
274
|
var maxDate = oldestPublishedDate - 1;
|
|
@@ -334,7 +276,6 @@ var getQuery = function getQuery(type, queryOptions) {
|
|
|
334
276
|
maxDate: maxDate
|
|
335
277
|
};
|
|
336
278
|
}
|
|
337
|
-
|
|
338
279
|
case _activities.INITIAL:
|
|
339
280
|
default:
|
|
340
281
|
{
|
|
@@ -342,6 +283,5 @@ var getQuery = function getQuery(type, queryOptions) {
|
|
|
342
283
|
}
|
|
343
284
|
}
|
|
344
285
|
};
|
|
345
|
-
|
|
346
286
|
exports.getQuery = getQuery;
|
|
347
287
|
//# sourceMappingURL=activity-thread-ordering.js.map
|