solid-ui 2.4.25 → 2.4.26-068520ea
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/dist/main.js +1866 -1158
- package/dist/main.js.map +1 -1
- package/lib/acl/access-controller.js.map +1 -1
- package/lib/acl/access-groups.js.map +1 -1
- package/lib/acl/acl-control.js.map +1 -1
- package/lib/acl/acl.js.map +1 -1
- package/lib/acl/add-agent-buttons.js.map +1 -1
- package/lib/acl/index.js.map +1 -1
- package/lib/acl/styles.js.map +1 -1
- package/lib/chat/bookmarks.js +6 -7
- package/lib/chat/bookmarks.js.map +1 -1
- package/lib/chat/chatLogic.js +250 -61
- package/lib/chat/chatLogic.js.map +1 -1
- package/lib/chat/dateFolder.js.map +1 -1
- package/lib/chat/infinite.js +604 -426
- package/lib/chat/infinite.js.map +1 -1
- package/lib/chat/message.js +286 -158
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/messageTools.js +464 -276
- package/lib/chat/messageTools.js.map +1 -1
- package/lib/chat/thread.js +166 -144
- package/lib/chat/thread.js.map +1 -1
- package/lib/create/create.js.map +1 -1
- package/lib/create/index.js.map +1 -1
- package/lib/debug.js.map +1 -1
- package/lib/folders.js.map +1 -1
- package/lib/footer/index.js.map +1 -1
- package/lib/footer/styleMap.js.map +1 -1
- package/lib/header/empty-profile.js.map +1 -1
- package/lib/header/index.js.map +1 -1
- package/lib/header/styleMap.js.map +1 -1
- package/lib/iconBase.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/jss/index.js.map +1 -1
- package/lib/log.js +7 -7
- package/lib/log.js.map +1 -1
- package/lib/login/login.js.map +1 -1
- package/lib/matrix/index.js.map +1 -1
- package/lib/matrix/matrix.js.map +1 -1
- package/lib/media/index.js.map +1 -1
- package/lib/media/media-capture.js.map +1 -1
- package/lib/messageArea.js.map +1 -1
- package/lib/noun_Camera_1618446_000000.js.map +1 -1
- package/lib/ns.js.map +1 -1
- package/lib/pad.js.map +1 -1
- package/lib/participation.js.map +1 -1
- package/lib/preferences.js +4 -0
- package/lib/preferences.js.map +1 -1
- package/lib/signup/config-default.js.map +1 -1
- package/lib/signup/signup.js.map +1 -1
- package/lib/stories/decorators.js.map +1 -1
- package/lib/style.js.map +1 -1
- package/lib/style_multiSelect.js.map +1 -1
- package/lib/table.js.map +1 -1
- package/lib/tabs.js.map +1 -1
- package/lib/utils/headerFooterHelpers.js.map +1 -1
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/label.js.map +1 -1
- package/lib/versionInfo.d.ts +2 -0
- package/lib/versionInfo.d.ts.map +1 -1
- package/lib/versionInfo.js +17 -15
- package/lib/versionInfo.js.map +1 -1
- package/lib/widgets/buttons/iconLinks.js.map +1 -1
- package/lib/widgets/buttons.js.map +1 -1
- package/lib/widgets/dragAndDrop.js.map +1 -1
- package/lib/widgets/error.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
- package/lib/widgets/forms/autocomplete/language.js.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
- package/lib/widgets/forms/basic.js.map +1 -1
- package/lib/widgets/forms/comment.js.map +1 -1
- package/lib/widgets/forms/fieldFunction.js.map +1 -1
- package/lib/widgets/forms/fieldParams.js.map +1 -1
- package/lib/widgets/forms/formStyle.js.map +1 -1
- package/lib/widgets/forms.js.map +1 -1
- package/lib/widgets/index.js.map +1 -1
- package/lib/widgets/multiSelect.js.map +1 -1
- package/lib/widgets/peoplePicker.js.map +1 -1
- package/lib/widgets/widgetHelpers.js.map +1 -1
- package/package.json +20 -19
package/lib/chat/chatLogic.js
CHANGED
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.ChatChannel = void 0;
|
|
9
9
|
exports._createIfNotExists = _createIfNotExists;
|
|
10
|
+
exports.allVersions = allVersions;
|
|
10
11
|
exports.isDeleted = isDeleted;
|
|
11
12
|
exports.isHidden = isHidden;
|
|
12
13
|
exports.isReplaced = isReplaced;
|
|
@@ -82,6 +83,7 @@ var ChatChannel = /*#__PURE__*/function () {
|
|
|
82
83
|
var _this = this;
|
|
83
84
|
var oldMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
84
85
|
var deleteIt = arguments.length > 2 ? arguments[2] : undefined;
|
|
86
|
+
var thread = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
85
87
|
return /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
86
88
|
var sts, now, timestamp, dateStamp, chatDocument, message, me, msg;
|
|
87
89
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
@@ -94,41 +96,61 @@ var ChatChannel = /*#__PURE__*/function () {
|
|
|
94
96
|
chatDocument = oldMsg ? oldMsg.doc() : _this.dateFolder.leafDocumentFromDate(now);
|
|
95
97
|
message = _solidLogic.store.sym(chatDocument.uri + '#' + 'Msg' + timestamp); // const content = store.literal(text)
|
|
96
98
|
me = _solidLogic.authn.currentUser(); // If already logged on
|
|
97
|
-
if (oldMsg) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
99
|
+
if (!oldMsg) {
|
|
100
|
+
_context2.next = 21;
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
_context2.t0 = sts;
|
|
104
|
+
_context2.t1 = $rdf;
|
|
105
|
+
_context2.next = 12;
|
|
106
|
+
return mostRecentVersion(oldMsg);
|
|
107
|
+
case 12:
|
|
108
|
+
_context2.t2 = _context2.sent;
|
|
109
|
+
_context2.t3 = ns.dct('isReplacedBy');
|
|
110
|
+
_context2.t4 = message;
|
|
111
|
+
_context2.t5 = chatDocument;
|
|
112
|
+
_context2.t6 = _context2.t1.st.call(_context2.t1, _context2.t2, _context2.t3, _context2.t4, _context2.t5);
|
|
113
|
+
_context2.t0.push.call(_context2.t0, _context2.t6);
|
|
114
|
+
if (deleteIt) {
|
|
115
|
+
sts.push($rdf.st(message, ns.schema('dateDeleted'), dateStamp, chatDocument));
|
|
106
116
|
}
|
|
117
|
+
_context2.next = 22;
|
|
118
|
+
break;
|
|
119
|
+
case 21:
|
|
120
|
+
// link new message to channel
|
|
121
|
+
sts.push($rdf.st(_this.channel, ns.wf('message'), message, chatDocument));
|
|
122
|
+
case 22:
|
|
107
123
|
sts.push($rdf.st(message, ns.sioc('content'), _solidLogic.store.literal(text), chatDocument));
|
|
108
124
|
sts.push($rdf.st(message, ns.dct('created'), dateStamp, chatDocument));
|
|
109
125
|
if (me) {
|
|
110
126
|
sts.push($rdf.st(message, ns.foaf('maker'), me, chatDocument));
|
|
111
127
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
128
|
+
if (thread) {
|
|
129
|
+
sts.push($rdf.st(thread, ns.sioc('has_member'), message, chatDocument));
|
|
130
|
+
if (!thread.doc().sameTerm(message.doc())) {
|
|
131
|
+
sts.push($rdf.st(thread, ns.sioc('has_member'), message, thread.doc()));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
_context2.prev = 26;
|
|
135
|
+
_context2.next = 29;
|
|
136
|
+
return _solidLogic.store.updater.updateMany([], sts);
|
|
137
|
+
case 29:
|
|
138
|
+
_context2.next = 37;
|
|
117
139
|
break;
|
|
118
|
-
case
|
|
119
|
-
_context2.prev =
|
|
120
|
-
_context2.
|
|
121
|
-
msg = 'Error saving chat message: ' + _context2.
|
|
140
|
+
case 31:
|
|
141
|
+
_context2.prev = 31;
|
|
142
|
+
_context2.t7 = _context2["catch"](26);
|
|
143
|
+
msg = 'Error saving chat message: ' + _context2.t7;
|
|
122
144
|
debug.warn(msg);
|
|
123
145
|
alert(msg);
|
|
124
146
|
throw new Error(msg);
|
|
125
|
-
case
|
|
147
|
+
case 37:
|
|
126
148
|
return _context2.abrupt("return", message);
|
|
127
|
-
case
|
|
149
|
+
case 38:
|
|
128
150
|
case "end":
|
|
129
151
|
return _context2.stop();
|
|
130
152
|
}
|
|
131
|
-
}, _callee2, null, [[
|
|
153
|
+
}, _callee2, null, [[26, 31]]);
|
|
132
154
|
})();
|
|
133
155
|
});
|
|
134
156
|
function updateMessage(_x2) {
|
|
@@ -158,26 +180,193 @@ var ChatChannel = /*#__PURE__*/function () {
|
|
|
158
180
|
return _deleteMessage.apply(this, arguments);
|
|
159
181
|
}
|
|
160
182
|
return deleteMessage;
|
|
183
|
+
}() // Create a new thread of replies to the thread root message
|
|
184
|
+
// or returns one which already exists
|
|
185
|
+
}, {
|
|
186
|
+
key: "createThread",
|
|
187
|
+
value: function () {
|
|
188
|
+
var _createThread = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(threadRoot) {
|
|
189
|
+
var already, thread, insert;
|
|
190
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
191
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
192
|
+
case 0:
|
|
193
|
+
already = _solidLogic.store.each(threadRoot, ns.sioc('has_reply'), null, threadRoot.doc()).filter(function (thread) {
|
|
194
|
+
return _solidLogic.store.holds(thread, ns.rdf('type'), ns.sioc('Thread'), thread.doc());
|
|
195
|
+
});
|
|
196
|
+
if (!(already.length > 0)) {
|
|
197
|
+
_context4.next = 3;
|
|
198
|
+
break;
|
|
199
|
+
}
|
|
200
|
+
return _context4.abrupt("return", already[0]);
|
|
201
|
+
case 3:
|
|
202
|
+
thread = $rdf.sym(threadRoot.uri + '-thread');
|
|
203
|
+
insert = [$rdf.st(thread, ns.rdf('type'), ns.sioc('Thread'), thread.doc()), $rdf.st(threadRoot, ns.sioc('has_reply'), thread, thread.doc())];
|
|
204
|
+
_context4.next = 7;
|
|
205
|
+
return _solidLogic.store.updater.update([], insert);
|
|
206
|
+
case 7:
|
|
207
|
+
return _context4.abrupt("return", thread);
|
|
208
|
+
case 8:
|
|
209
|
+
case "end":
|
|
210
|
+
return _context4.stop();
|
|
211
|
+
}
|
|
212
|
+
}, _callee4);
|
|
213
|
+
}));
|
|
214
|
+
function createThread(_x4) {
|
|
215
|
+
return _createThread.apply(this, arguments);
|
|
216
|
+
}
|
|
217
|
+
return createThread;
|
|
161
218
|
}()
|
|
162
219
|
}]);
|
|
163
220
|
return ChatChannel;
|
|
164
221
|
}(); // class ChatChannel
|
|
222
|
+
// ////////// Utility functions
|
|
223
|
+
// Have to not loop forever if fed loops
|
|
165
224
|
exports.ChatChannel = ChatChannel;
|
|
166
|
-
function
|
|
167
|
-
|
|
168
|
-
while (msg) {
|
|
169
|
-
message = msg;
|
|
170
|
-
msg = _solidLogic.store.any(null, ns.dct('isReplacedBy'), message, message.doc());
|
|
171
|
-
}
|
|
172
|
-
return message;
|
|
225
|
+
function allVersions(_x5) {
|
|
226
|
+
return _allVersions.apply(this, arguments);
|
|
173
227
|
}
|
|
174
|
-
function
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
228
|
+
function _allVersions() {
|
|
229
|
+
_allVersions = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(message) {
|
|
230
|
+
var versions, done, m, prev, next;
|
|
231
|
+
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
232
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
233
|
+
case 0:
|
|
234
|
+
versions = [message];
|
|
235
|
+
done = {};
|
|
236
|
+
done[message.ur] = true;
|
|
237
|
+
m = message;
|
|
238
|
+
case 4:
|
|
239
|
+
if (!true) {
|
|
240
|
+
_context5.next = 15;
|
|
241
|
+
break;
|
|
242
|
+
}
|
|
243
|
+
// earlier?
|
|
244
|
+
prev = _solidLogic.store.any(null, ns.dct('isReplacedBy'), m, m.doc());
|
|
245
|
+
if (!(!prev || done[prev.uri])) {
|
|
246
|
+
_context5.next = 8;
|
|
247
|
+
break;
|
|
248
|
+
}
|
|
249
|
+
return _context5.abrupt("break", 15);
|
|
250
|
+
case 8:
|
|
251
|
+
_context5.next = 10;
|
|
252
|
+
return _solidLogic.store.fetcher.load(prev);
|
|
253
|
+
case 10:
|
|
254
|
+
versions.unshift(prev);
|
|
255
|
+
done[prev.uri] = true;
|
|
256
|
+
m = prev;
|
|
257
|
+
_context5.next = 4;
|
|
258
|
+
break;
|
|
259
|
+
case 15:
|
|
260
|
+
m = message;
|
|
261
|
+
case 16:
|
|
262
|
+
if (!true) {
|
|
263
|
+
_context5.next = 25;
|
|
264
|
+
break;
|
|
265
|
+
}
|
|
266
|
+
// later?
|
|
267
|
+
next = _solidLogic.store.any(m, ns.dct('isReplacedBy'), null, m.doc());
|
|
268
|
+
if (!(!next || done[next.uri])) {
|
|
269
|
+
_context5.next = 20;
|
|
270
|
+
break;
|
|
271
|
+
}
|
|
272
|
+
return _context5.abrupt("break", 25);
|
|
273
|
+
case 20:
|
|
274
|
+
versions.push(next);
|
|
275
|
+
done[next.uri] = true;
|
|
276
|
+
m = next;
|
|
277
|
+
_context5.next = 16;
|
|
278
|
+
break;
|
|
279
|
+
case 25:
|
|
280
|
+
return _context5.abrupt("return", versions);
|
|
281
|
+
case 26:
|
|
282
|
+
case "end":
|
|
283
|
+
return _context5.stop();
|
|
284
|
+
}
|
|
285
|
+
}, _callee5);
|
|
286
|
+
}));
|
|
287
|
+
return _allVersions.apply(this, arguments);
|
|
288
|
+
}
|
|
289
|
+
function originalVersion(_x6) {
|
|
290
|
+
return _originalVersion.apply(this, arguments);
|
|
291
|
+
}
|
|
292
|
+
function _originalVersion() {
|
|
293
|
+
_originalVersion = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(message) {
|
|
294
|
+
var msg, done;
|
|
295
|
+
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
296
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
297
|
+
case 0:
|
|
298
|
+
msg = message;
|
|
299
|
+
done = {}; // done[message.ur] = true
|
|
300
|
+
case 2:
|
|
301
|
+
if (!msg) {
|
|
302
|
+
_context6.next = 13;
|
|
303
|
+
break;
|
|
304
|
+
}
|
|
305
|
+
if (!done[msg.uri]) {
|
|
306
|
+
_context6.next = 6;
|
|
307
|
+
break;
|
|
308
|
+
}
|
|
309
|
+
debug.error('originalVersion: verion loop' + message);
|
|
310
|
+
return _context6.abrupt("return", message);
|
|
311
|
+
case 6:
|
|
312
|
+
done[msg.uri] = true;
|
|
313
|
+
message = msg;
|
|
314
|
+
_context6.next = 10;
|
|
315
|
+
return _solidLogic.store.fetcher.load(message);
|
|
316
|
+
case 10:
|
|
317
|
+
msg = _solidLogic.store.any(null, ns.dct('isReplacedBy'), message, message.doc());
|
|
318
|
+
_context6.next = 2;
|
|
319
|
+
break;
|
|
320
|
+
case 13:
|
|
321
|
+
return _context6.abrupt("return", message);
|
|
322
|
+
case 14:
|
|
323
|
+
case "end":
|
|
324
|
+
return _context6.stop();
|
|
325
|
+
}
|
|
326
|
+
}, _callee6);
|
|
327
|
+
}));
|
|
328
|
+
return _originalVersion.apply(this, arguments);
|
|
329
|
+
}
|
|
330
|
+
function mostRecentVersion(_x7) {
|
|
331
|
+
return _mostRecentVersion.apply(this, arguments);
|
|
332
|
+
}
|
|
333
|
+
function _mostRecentVersion() {
|
|
334
|
+
_mostRecentVersion = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(message) {
|
|
335
|
+
var msg, done;
|
|
336
|
+
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
337
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
338
|
+
case 0:
|
|
339
|
+
msg = message;
|
|
340
|
+
done = {};
|
|
341
|
+
case 2:
|
|
342
|
+
if (!msg) {
|
|
343
|
+
_context7.next = 13;
|
|
344
|
+
break;
|
|
345
|
+
}
|
|
346
|
+
if (!done[msg.uri]) {
|
|
347
|
+
_context7.next = 6;
|
|
348
|
+
break;
|
|
349
|
+
}
|
|
350
|
+
debug.error('mostRecentVersion: verion loop' + message);
|
|
351
|
+
return _context7.abrupt("return", message);
|
|
352
|
+
case 6:
|
|
353
|
+
done[msg.uri] = true;
|
|
354
|
+
message = msg;
|
|
355
|
+
_context7.next = 10;
|
|
356
|
+
return _solidLogic.store.fetcher.load(message);
|
|
357
|
+
case 10:
|
|
358
|
+
msg = _solidLogic.store.any(message, ns.dct('isReplacedBy'), null, message.doc());
|
|
359
|
+
_context7.next = 2;
|
|
360
|
+
break;
|
|
361
|
+
case 13:
|
|
362
|
+
return _context7.abrupt("return", message);
|
|
363
|
+
case 14:
|
|
364
|
+
case "end":
|
|
365
|
+
return _context7.stop();
|
|
366
|
+
}
|
|
367
|
+
}, _callee7);
|
|
368
|
+
}));
|
|
369
|
+
return _mostRecentVersion.apply(this, arguments);
|
|
181
370
|
}
|
|
182
371
|
function isDeleted(message) {
|
|
183
372
|
return _solidLogic.store.holds(message, ns.schema('dateDeleted'), null, message.doc());
|
|
@@ -196,62 +385,62 @@ function nick(person) {
|
|
|
196
385
|
if (s) return '' + s.value;
|
|
197
386
|
return '' + utils.label(person);
|
|
198
387
|
}
|
|
199
|
-
function _createIfNotExists(
|
|
388
|
+
function _createIfNotExists(_x8) {
|
|
200
389
|
return _createIfNotExists2.apply(this, arguments);
|
|
201
390
|
} // ends
|
|
202
391
|
function _createIfNotExists2() {
|
|
203
392
|
_createIfNotExists2 = (0, _asyncToGenerator2["default"])(function (doc) {
|
|
204
393
|
var contentType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'text/turtle';
|
|
205
394
|
var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
206
|
-
return /*#__PURE__*/_regenerator["default"].mark(function
|
|
395
|
+
return /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
|
|
207
396
|
var response;
|
|
208
|
-
return _regenerator["default"].wrap(function
|
|
209
|
-
while (1) switch (
|
|
397
|
+
return _regenerator["default"].wrap(function _callee8$(_context8) {
|
|
398
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
210
399
|
case 0:
|
|
211
|
-
|
|
212
|
-
|
|
400
|
+
_context8.prev = 0;
|
|
401
|
+
_context8.next = 3;
|
|
213
402
|
return _solidLogic.store.fetcher.load(doc);
|
|
214
403
|
case 3:
|
|
215
|
-
response =
|
|
216
|
-
|
|
404
|
+
response = _context8.sent;
|
|
405
|
+
_context8.next = 26;
|
|
217
406
|
break;
|
|
218
407
|
case 6:
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
if (!(
|
|
222
|
-
|
|
408
|
+
_context8.prev = 6;
|
|
409
|
+
_context8.t0 = _context8["catch"](0);
|
|
410
|
+
if (!(_context8.t0.response.status === 404)) {
|
|
411
|
+
_context8.next = 24;
|
|
223
412
|
break;
|
|
224
413
|
}
|
|
225
414
|
debug.log('createIfNotExists: doc does NOT exist, will create... ' + doc);
|
|
226
|
-
|
|
227
|
-
|
|
415
|
+
_context8.prev = 10;
|
|
416
|
+
_context8.next = 13;
|
|
228
417
|
return _solidLogic.store.fetcher.webOperation('PUT', doc.uri, {
|
|
229
418
|
data: data,
|
|
230
419
|
contentType: contentType
|
|
231
420
|
});
|
|
232
421
|
case 13:
|
|
233
|
-
response =
|
|
234
|
-
|
|
422
|
+
response = _context8.sent;
|
|
423
|
+
_context8.next = 20;
|
|
235
424
|
break;
|
|
236
425
|
case 16:
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
debug.log('createIfNotExists doc FAILED: ' + doc + ': ' +
|
|
240
|
-
throw
|
|
426
|
+
_context8.prev = 16;
|
|
427
|
+
_context8.t1 = _context8["catch"](10);
|
|
428
|
+
debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + _context8.t1);
|
|
429
|
+
throw _context8.t1;
|
|
241
430
|
case 20:
|
|
242
431
|
delete _solidLogic.store.fetcher.requested[doc.uri]; // delete cached 404 error
|
|
243
432
|
// debug.log('createIfNotExists doc created ok ' + doc)
|
|
244
|
-
return
|
|
433
|
+
return _context8.abrupt("return", response);
|
|
245
434
|
case 24:
|
|
246
|
-
debug.log('createIfNotExists doc load error NOT 404: ' + doc + ': ' +
|
|
247
|
-
throw
|
|
435
|
+
debug.log('createIfNotExists doc load error NOT 404: ' + doc + ': ' + _context8.t0);
|
|
436
|
+
throw _context8.t0;
|
|
248
437
|
case 26:
|
|
249
|
-
return
|
|
438
|
+
return _context8.abrupt("return", response);
|
|
250
439
|
case 27:
|
|
251
440
|
case "end":
|
|
252
|
-
return
|
|
441
|
+
return _context8.stop();
|
|
253
442
|
}
|
|
254
|
-
},
|
|
443
|
+
}, _callee8, null, [[0, 6], [10, 16]]);
|
|
255
444
|
})();
|
|
256
445
|
});
|
|
257
446
|
return _createIfNotExists2.apply(this, arguments);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatLogic.js","names":["ChatChannel","channel","options","channelRoot","doc","dateFolder","DateFolder","div","text","updateMessage","oldMsg","deleteIt","sts","now","Date","timestamp","getTime","dateStamp","$rdf","term","chatDocument","leafDocumentFromDate","message","store","sym","uri","me","authn","currentUser","push","st","mostRecentVersion","ns","dct","schema","wf","sioc","literal","foaf","updater","update","msg","debug","warn","alert","Error","originalVersion","any","isDeleted","holds","isReplaced","isHidden","nick","person","s","value","utils","label","_createIfNotExists","contentType","data","fetcher","load","response","status","log","webOperation","requested"],"sources":["../../src/chat/chatLogic.js"],"sourcesContent":["/**\n * Contains the [[ChatChannel]] class and logic for Solid Chat\n * @packageDocumentation\n */\n\nimport * as debug from '../debug'\nimport { DateFolder } from './dateFolder'\nimport { store, authn } from 'solid-logic'\nimport * as ns from '../ns'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as utils from '../utils'\n\n/* The Solid logic for a 'LongChat'\n*/\n/**\n * Common code for a chat (discussion area of messages about something)\n * This version runs over a series of files for different time periods\n *\n * Parameters for the whole chat like its title are stored on\n * index.ttl#this and the chats messages are stored in YYYY/MM/DD/chat.ttl\n *\n */\n\nexport class ChatChannel {\n constructor (channel, options) {\n this.channel = channel\n this.channelRoot = channel.doc()\n this.options = options\n this.dateFolder = new DateFolder(this.channelRoot, 'chat.ttl')\n this.div = null // : HTMLElement\n }\n\n /* Store a new message in the web,\n */\n async createMessage (text) {\n return this.updateMessage(text)\n }\n\n /* Store a new message in the web,\n as a replacement for an existing one.\n The old one iis left, and the two are linked\n */\n async updateMessage (text, oldMsg = null, deleteIt) {\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = $rdf.term(now)\n const chatDocument = oldMsg ? oldMsg.doc() : this.dateFolder.leafDocumentFromDate(now)\n const message = store.sym(chatDocument.uri + '#' + 'Msg' + timestamp)\n // const content = store.literal(text)\n\n const me = authn.currentUser() // If already logged on\n\n if (oldMsg) { // edit message replaces old one\n sts.push($rdf.st(mostRecentVersion(oldMsg), ns.dct('isReplacedBy'), message, chatDocument))\n if (deleteIt) {\n sts.push($rdf.st(message, ns.schema('dateDeleted'), dateStamp, chatDocument))\n }\n } else { // link new message to channel\n sts.push($rdf.st(this.channel, ns.wf('message'), message, chatDocument))\n }\n sts.push(\n $rdf.st(message, ns.sioc('content'), store.literal(text), chatDocument)\n )\n sts.push(\n $rdf.st(message, ns.dct('created'), dateStamp, chatDocument)\n )\n if (me) {\n sts.push($rdf.st(message, ns.foaf('maker'), me, chatDocument))\n }\n try {\n await store.updater.update([], sts)\n } catch (err) {\n const msg = 'Error saving chat message: ' + err\n debug.warn(msg)\n alert(msg)\n throw new Error(msg)\n }\n return message\n }\n\n /* Mark a message as deleted\n * Wee add a new version of the message,m witha deletion flag (deletion date)\n * so that the deletion can be revoked by adding another non-deleted update\n */\n async deleteMessage (message) {\n return this.updateMessage('(message deleted)', message, true)\n }\n} // class ChatChannel\n\nexport function originalVersion (message) {\n let msg = message\n while (msg) {\n message = msg\n msg = store.any(null, ns.dct('isReplacedBy'), message, message.doc())\n }\n return message\n}\n\nexport function mostRecentVersion (message) {\n let msg = message\n while (msg) {\n message = msg\n msg = store.any(message, ns.dct('isReplacedBy'), null, message.doc())\n }\n return message\n}\n\nexport function isDeleted (message) {\n return store.holds(message, ns.schema('dateDeleted'), null, message.doc())\n}\n\nexport function isReplaced (message) {\n return store.holds(message, ns.dct('isReplacedBy'), null, message.doc())\n}\n\nexport function isHidden (message) {\n return this.isDeleted(message) || this.isReplaced(message)\n}\n\n// A Nickname for a person\n\nexport function nick (person) {\n const s = store.any(person, ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + utils.label(person)\n}\n\nexport async function _createIfNotExists (doc, contentType = 'text/turtle', data = '') {\n let response\n try {\n response = await store.fetcher.load(doc)\n } catch (err) {\n if (err.response.status === 404) {\n debug.log(\n 'createIfNotExists: doc does NOT exist, will create... ' + doc\n )\n try {\n response = await store.fetcher.webOperation('PUT', doc.uri, {\n data,\n contentType\n })\n } catch (err) {\n debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + err)\n throw err\n }\n delete store.fetcher.requested[doc.uri] // delete cached 404 error\n // debug.log('createIfNotExists doc created ok ' + doc)\n return response\n } else {\n debug.log(\n 'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err\n )\n throw err\n }\n }\n // debug.log('createIfNotExists: doc exists, all good: ' + doc)\n return response\n}\n// ends\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chatLogic.js","names":["debug","_interopRequireWildcard","require","_dateFolder","_solidLogic","ns","$rdf","utils","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ChatChannel","channel","options","_classCallCheck2","channelRoot","doc","dateFolder","DateFolder","div","_createClass2","value","_createMessage","_asyncToGenerator2","_regenerator","mark","_callee","text","wrap","_callee$","_context","prev","next","abrupt","updateMessage","stop","createMessage","_x","apply","arguments","_updateMessage","_this","oldMsg","length","undefined","deleteIt","thread","_callee2","sts","now","timestamp","dateStamp","chatDocument","message","me","msg","_callee2$","_context2","Date","getTime","term","leafDocumentFromDate","store","sym","uri","authn","currentUser","t0","t1","mostRecentVersion","t2","sent","t3","dct","t4","t5","t6","st","push","schema","wf","sioc","literal","foaf","sameTerm","updater","updateMany","t7","warn","alert","Error","_x2","_deleteMessage","_callee3","_callee3$","_context3","deleteMessage","_x3","_createThread","_callee4","threadRoot","already","insert","_callee4$","_context4","each","filter","holds","rdf","update","createThread","_x4","exports","allVersions","_x5","_allVersions","_callee5","versions","done","m","_callee5$","_context5","ur","any","fetcher","load","unshift","originalVersion","_x6","_originalVersion","_callee6","_callee6$","_context6","error","_x7","_mostRecentVersion","_callee7","_callee7$","_context7","isDeleted","isReplaced","isHidden","nick","person","s","label","_createIfNotExists","_x8","_createIfNotExists2","contentType","data","_callee8","response","_callee8$","_context8","status","log","webOperation","requested"],"sources":["../../src/chat/chatLogic.js"],"sourcesContent":["/**\n * Contains the [[ChatChannel]] class and logic for Solid Chat\n * @packageDocumentation\n */\n\nimport * as debug from '../debug'\nimport { DateFolder } from './dateFolder'\nimport { store, authn } from 'solid-logic'\nimport * as ns from '../ns'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as utils from '../utils'\n\n/* The Solid logic for a 'LongChat'\n*/\n/**\n * Common code for a chat (discussion area of messages about something)\n * This version runs over a series of files for different time periods\n *\n * Parameters for the whole chat like its title are stored on\n * index.ttl#this and the chats messages are stored in YYYY/MM/DD/chat.ttl\n *\n */\n\nexport class ChatChannel {\n constructor (channel, options) {\n this.channel = channel\n this.channelRoot = channel.doc()\n this.options = options\n this.dateFolder = new DateFolder(this.channelRoot, 'chat.ttl')\n this.div = null // : HTMLElement\n }\n\n /* Store a new message in the web,\n */\n async createMessage (text) {\n return this.updateMessage(text)\n }\n\n /* Store a new message in the web,\n as a replacement for an existing one.\n The old one iis left, and the two are linked\n */\n async updateMessage (text, oldMsg = null, deleteIt, thread = null) {\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = $rdf.term(now)\n const chatDocument = oldMsg ? oldMsg.doc() : this.dateFolder.leafDocumentFromDate(now)\n const message = store.sym(chatDocument.uri + '#' + 'Msg' + timestamp)\n // const content = store.literal(text)\n\n const me = authn.currentUser() // If already logged on\n\n if (oldMsg) { // edit message replaces old one\n sts.push($rdf.st(await mostRecentVersion(oldMsg), ns.dct('isReplacedBy'), message, chatDocument))\n if (deleteIt) {\n sts.push($rdf.st(message, ns.schema('dateDeleted'), dateStamp, chatDocument))\n }\n } else { // link new message to channel\n sts.push($rdf.st(this.channel, ns.wf('message'), message, chatDocument))\n }\n sts.push(\n $rdf.st(message, ns.sioc('content'), store.literal(text), chatDocument)\n )\n sts.push(\n $rdf.st(message, ns.dct('created'), dateStamp, chatDocument)\n )\n if (me) {\n sts.push($rdf.st(message, ns.foaf('maker'), me, chatDocument))\n }\n if (thread) {\n sts.push($rdf.st(thread, ns.sioc('has_member'), message, chatDocument))\n if (!thread.doc().sameTerm(message.doc())) {\n sts.push($rdf.st(thread, ns.sioc('has_member'), message, thread.doc()))\n }\n }\n try {\n await store.updater.updateMany([], sts)\n } catch (err) {\n const msg = 'Error saving chat message: ' + err\n debug.warn(msg)\n alert(msg)\n throw new Error(msg)\n }\n return message\n }\n\n /* Mark a message as deleted\n * Wee add a new version of the message,m witha deletion flag (deletion date)\n * so that the deletion can be revoked by adding another non-deleted update\n */\n async deleteMessage (message) {\n return this.updateMessage('(message deleted)', message, true)\n }\n\n // Create a new thread of replies to the thread root message\n // or returns one which already exists\n\n async createThread (threadRoot) {\n const already = store.each(threadRoot, ns.sioc('has_reply'), null, threadRoot.doc())\n .filter(thread => store.holds(thread, ns.rdf('type'), ns.sioc('Thread'), thread.doc()))\n if (already.length > 0) return already[0]\n\n const thread = $rdf.sym(threadRoot.uri + '-thread')\n const insert = [\n $rdf.st(thread, ns.rdf('type'), ns.sioc('Thread'), thread.doc()),\n $rdf.st(threadRoot, ns.sioc('has_reply'), thread, thread.doc())\n ]\n await store.updater.update([], insert)\n return thread\n }\n} // class ChatChannel\n\n// ////////// Utility functions\n\n// Have to not loop forever if fed loops\nexport async function allVersions (message) {\n const versions = [message]\n const done = {}\n done[message.ur] = true\n let m = message\n while (true) { // earlier?\n const prev = store.any(null, ns.dct('isReplacedBy'), m, m.doc())\n if (!prev || done[prev.uri]) break\n await store.fetcher.load(prev)\n versions.unshift(prev)\n done[prev.uri] = true\n m = prev\n }\n m = message\n while (true) { // later?\n const next = store.any(m, ns.dct('isReplacedBy'), null, m.doc())\n if (!next || done[next.uri]) break\n versions.push(next)\n done[next.uri] = true\n m = next\n }\n return versions\n}\n\nexport async function originalVersion (message) {\n let msg = message\n const done = {}\n // done[message.ur] = true\n while (msg) {\n if (done[msg.uri]) {\n debug.error('originalVersion: verion loop' + message)\n return message\n }\n done[msg.uri] = true\n message = msg\n await store.fetcher.load(message)\n msg = store.any(null, ns.dct('isReplacedBy'), message, message.doc())\n }\n return message\n}\n\nexport async function mostRecentVersion (message) {\n let msg = message\n const done = {}\n while (msg) {\n if (done[msg.uri]) {\n debug.error('mostRecentVersion: verion loop' + message)\n return message\n }\n done[msg.uri] = true\n message = msg\n await store.fetcher.load(message)\n msg = store.any(message, ns.dct('isReplacedBy'), null, message.doc())\n }\n return message\n}\n\nexport function isDeleted (message) {\n return store.holds(message, ns.schema('dateDeleted'), null, message.doc())\n}\n\nexport function isReplaced (message) {\n return store.holds(message, ns.dct('isReplacedBy'), null, message.doc())\n}\n\nexport function isHidden (message) {\n return this.isDeleted(message) || this.isReplaced(message)\n}\n\n// A Nickname for a person\n\nexport function nick (person) {\n const s = store.any(person, ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + utils.label(person)\n}\n\nexport async function _createIfNotExists (doc, contentType = 'text/turtle', data = '') {\n let response\n try {\n response = await store.fetcher.load(doc)\n } catch (err) {\n if (err.response.status === 404) {\n debug.log(\n 'createIfNotExists: doc does NOT exist, will create... ' + doc\n )\n try {\n response = await store.fetcher.webOperation('PUT', doc.uri, {\n data,\n contentType\n })\n } catch (err) {\n debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + err)\n throw err\n }\n delete store.fetcher.requested[doc.uri] // delete cached 404 error\n // debug.log('createIfNotExists doc created ok ' + doc)\n return response\n } else {\n debug.log(\n 'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err\n )\n throw err\n }\n }\n // debug.log('createIfNotExists: doc exists, all good: ' + doc)\n return response\n}\n// ends\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dateFolder.js","names":["DateFolder","rootThing","leafFileName","membershipProperty","root","rootFolder","dir","ns","wf","date","isoDate","toISOString","path","split","replace","uri","store","sym","doc","head","length","str","slice","Date","debug","log","backwards","previousPeriod","file","level","younger","suitable","lastNonEmpty","siblings","filter","sort","reverse","pop","folder","leafDocument","thisDateFolder","fetcher","load","statementsMatching","dct","x","tail","includes","parent","each","ldp","response","status","Error","message","uncle","cousins","result","leafDocumentFromDate","found","dateFromLeafDocument","earliestSubfolder","folderFetcher","requested","force","kids","folderStore","$rdf","graph","Fetcher","y","month","d","leafObjects","msg","trace","sortMe","map","leafObject","any"],"sources":["../../src/chat/dateFolder.js"],"sourcesContent":["/**\n * Contains the [[DateFolder]] class\n * This tracks data stored in dated folders and sub-folders\n *\n */\n\nimport * as debug from '../debug'\nimport { store } from 'solid-logic'\n\nimport * as ns from '../ns'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\n\n/**\n * Track back through the YYYY/MM/DD tree to find the previous/next day\n */\nexport class DateFolder {\n constructor (rootThing, leafFileName, membershipProperty) {\n this.root = rootThing\n this.rootFolder = rootThing.dir()\n this.leafFileName = leafFileName || 'index.ttl' // typically chat.ttl\n this.membershipProperty = membershipProperty || ns.wf('leafObject')\n }\n\n /* Generate the leaf document (rdf object) from date\n * @returns: <NamedNode> - document\n */\n leafDocumentFromDate (date) {\n // debug.log('incoming date: ' + date)\n const isoDate = date.toISOString() // Like \"2018-05-07T17:42:46.576Z\"\n let path = isoDate.split('T')[0].replace(/-/g, '/') // Like \"2018/05/07\"\n path = this.root.dir().uri + path + '/' + this.leafFileName\n return store.sym(path)\n }\n\n /* Generate a date object from the leaf file name\n */\n dateFromLeafDocument (doc) {\n const head = this.rootFolder.uri.length\n const str = doc.uri.slice(head, head + 10).replace(/\\//g, '-')\n // let date = new Date(str + 'Z') // GMT - but fails in FF - invalid format :-(\n const date = new Date(str) // not explicitly UTC but is assumed so in spec\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse\n debug.log('Date for ' + doc + ':' + date.toISOString())\n return date\n }\n\n async loadPrevious (date, backwards) {\n const thisDateFolder = this\n async function previousPeriod (file, level) {\n function younger (x) {\n if (backwards ? x.uri >= file.uri : x.uri <= file.uri) return false // later than we want or same -- looking for different\n return true\n }\n function suitable (x) {\n const tail = x.uri\n .slice(0, -1)\n .split('/')\n .slice(-1)[0]\n if (!'0123456789'.includes(tail[0])) return false // not numeric\n return true\n }\n\n async function lastNonEmpty (siblings) {\n siblings = siblings.filter(suitable)\n siblings.sort() // chronological order\n if (!backwards) siblings.reverse()\n if (level !== 3) return siblings.pop() // only length chck final leverl\n while (siblings.length) {\n const folder = siblings.pop()\n const leafDocument = store.sym(folder.uri + thisDateFolder.leafFileName)\n await store.fetcher.load(leafDocument)\n // files can have seealso links. skip ones with no leafObjects with a date\n if (\n store.statementsMatching(null, ns.dct('created'), null, leafDocument)\n .length > 0\n ) {\n return folder\n }\n }\n return null\n }\n // debug.log(' previousPeriod level' + level + ' file ' + file)\n const parent = file.dir()\n try {\n await store.fetcher.load(parent)\n let siblings = store.each(parent, ns.ldp('contains'))\n siblings = siblings.filter(younger)\n const folder = await lastNonEmpty(siblings)\n if (folder) return folder\n } catch (err) {\n if (err.response && err.response.status && err.response.status === 404) {\n debug.log('Error 404 for chat parent file ' + parent)\n } else {\n debug.log('*** Error NON 404 for chat parent file ' + parent)\n // statusTR.appendChild(widgets.errorMessageBlock(dom, err, 'pink'))\n throw (new Error(`*** ${err.message} for chat folder ${parent}`))\n }\n }\n\n if (level === 0) return null // 3:day, 2:month, 1: year 0: no\n\n const uncle = await previousPeriod(parent, level - 1)\n if (!uncle) return null // reached first ever\n await store.fetcher.load(uncle)\n const cousins = store.each(uncle, ns.ldp('contains'))\n const result = await lastNonEmpty(cousins)\n return result\n } // previousPeriod\n\n const folder = this.leafDocumentFromDate(date).dir()\n const found = await previousPeriod(folder, 3)\n if (found) {\n const doc = store.sym(found.uri + this.leafFileName)\n return this.dateFromLeafDocument(doc)\n }\n return null\n } // loadPrevious\n\n async firstLeaf (backwards) {\n // backwards -> last leafObject\n const folderStore = $rdf.graph()\n const folderFetcher = new $rdf.Fetcher(folderStore)\n async function earliestSubfolder (parent) {\n function suitable (x) {\n const tail = x.uri\n .slice(0, -1)\n .split('/')\n .slice(-1)[0]\n if (!'0123456789'.includes(tail[0])) return false // not numeric\n return true\n }\n debug.log(' parent ' + parent)\n delete folderFetcher.requested[parent.uri]\n // try {\n await folderFetcher.load(parent, { force: true }) // Force fetch as will have changed\n // }catch (err) {\n // }\n\n let kids = folderStore.each(parent, ns.ldp('contains'))\n kids = kids.filter(suitable)\n if (kids.length === 0) {\n throw new Error(' @@@ No children to parent2 ' + parent)\n }\n\n kids.sort()\n if (backwards) kids.reverse()\n return kids[0]\n }\n const y = await earliestSubfolder(this.root.dir())\n const month = await earliestSubfolder(y)\n const d = await earliestSubfolder(month)\n const leafDocument = $rdf.sym(d.uri + 'chat.ttl')\n await folderFetcher.load(leafDocument)\n const leafObjects = folderStore.each(\n this.root,\n this.membershipProperty,\n null,\n leafDocument\n )\n if (leafObjects.length === 0) {\n const msg =\n ' INCONSISTENCY -- no chat leafObject in file ' + leafDocument\n debug.trace(msg)\n throw new Error(msg)\n }\n const sortMe = leafObjects.map(leafObject => [\n folderStore.any(leafObject, ns.dct('created')),\n leafObject\n ])\n sortMe.sort()\n if (backwards) sortMe.reverse()\n debug.log(\n (backwards ? 'Latest' : 'Earliest') + ' leafObject is ' + sortMe[0][1]\n )\n return sortMe[0][1]\n } // firstleafObject\n} // class\n"],"mappings":";;;;;;;;;;;;AAMA;AACA;AAEA;AACA;AAA8B;AAAA;AAV9B;AACA;AACA;AACA;AACA;AAM+B;AAE/B;AACA;AACA;AAFA,IAGaA,UAAU;EACrB,oBAAaC,SAAS,EAAEC,YAAY,EAAEC,kBAAkB,EAAE;IAAA;IACxD,IAAI,CAACC,IAAI,GAAGH,SAAS;IACrB,IAAI,CAACI,UAAU,GAAGJ,SAAS,CAACK,GAAG,EAAE;IACjC,IAAI,CAACJ,YAAY,GAAGA,YAAY,IAAI,WAAW,EAAC;IAChD,IAAI,CAACC,kBAAkB,GAAGA,kBAAkB,IAAII,EAAE,CAACC,EAAE,CAAC,YAAY,CAAC;EACrE;;EAEA;AACF;AACA;EAFE;IAAA;IAAA,OAGA,8BAAsBC,IAAI,EAAE;MAC1B;MACA,IAAMC,OAAO,GAAGD,IAAI,CAACE,WAAW,EAAE,EAAC;MACnC,IAAIC,IAAI,GAAGF,OAAO,CAACG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAC;MACpDF,IAAI,GAAG,IAAI,CAACR,IAAI,CAACE,GAAG,EAAE,CAACS,GAAG,GAAGH,IAAI,GAAG,GAAG,GAAG,IAAI,CAACV,YAAY;MAC3D,OAAOc,iBAAK,CAACC,GAAG,CAACL,IAAI,CAAC;IACxB;;IAEA;AACF;EADE;IAAA;IAAA,OAEA,8BAAsBM,GAAG,EAAE;MACzB,IAAMC,IAAI,GAAG,IAAI,CAACd,UAAU,CAACU,GAAG,CAACK,MAAM;MACvC,IAAMC,GAAG,GAAGH,GAAG,CAACH,GAAG,CAACO,KAAK,CAACH,IAAI,EAAEA,IAAI,GAAG,EAAE,CAAC,CAACL,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;MAC9D;MACA,IAAML,IAAI,GAAG,IAAIc,IAAI,CAACF,GAAG,CAAC,EAAC;MAC3B;MACAG,KAAK,CAACC,GAAG,CAAC,WAAW,GAAGP,GAAG,GAAG,GAAG,GAAGT,IAAI,CAACE,WAAW,EAAE,CAAC;MACvD,OAAOF,IAAI;IACb;EAAC;IAAA;IAAA;MAAA,kGAED,kBAAoBA,IAAI,EAAEiB,SAAS;QAAA,oBAElBC,cAAc;QAAA;UAAA;YAAA;cAAA;gBAAA,gGAA7B,kBAA+BC,IAAI,EAAEC,KAAK;kBAAA,IAC/BC,OAAO,EAIPC,QAAQ,EASFC,YAAY;kBAAA;oBAAA;sBAAA;wBAAA;0BAAA,8FAA3B,iBAA6BC,QAAQ;4BAAA;4BAAA;8BAAA;gCAAA;kCACnCA,QAAQ,GAAGA,QAAQ,CAACC,MAAM,CAACH,QAAQ,CAAC;kCACpCE,QAAQ,CAACE,IAAI,EAAE,EAAC;kCAChB,IAAI,CAACT,SAAS,EAAEO,QAAQ,CAACG,OAAO,EAAE;kCAAA,MAC9BP,KAAK,KAAK,CAAC;oCAAA;oCAAA;kCAAA;kCAAA,iCAASI,QAAQ,CAACI,GAAG,EAAE;gCAAA;kCAAA,KAC/BJ,QAAQ,CAACb,MAAM;oCAAA;oCAAA;kCAAA;kCACdkB,QAAM,GAAGL,QAAQ,CAACI,GAAG,EAAE;kCACvBE,YAAY,GAAGvB,iBAAK,CAACC,GAAG,CAACqB,QAAM,CAACvB,GAAG,GAAGyB,cAAc,CAACtC,YAAY,CAAC;kCAAA;kCAAA,OAClEc,iBAAK,CAACyB,OAAO,CAACC,IAAI,CAACH,YAAY,CAAC;gCAAA;kCAAA,MAGpCvB,iBAAK,CAAC2B,kBAAkB,CAAC,IAAI,EAAEpC,EAAE,CAACqC,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,EAAEL,YAAY,CAAC,CAClEnB,MAAM,GAAG,CAAC;oCAAA;oCAAA;kCAAA;kCAAA,iCAENkB,QAAM;gCAAA;kCAAA;kCAAA;gCAAA;kCAAA,iCAGV,IAAI;gCAAA;gCAAA;kCAAA;8BAAA;4BAAA;0BAAA,CACZ;0BAAA;wBAAA;wBAlBcN,YAAY;0BAAA;wBAAA;wBATlBD,QAAQ,sBAAEc,CAAC,EAAE;0BACpB,IAAMC,IAAI,GAAGD,CAAC,CAAC9B,GAAG,CACfO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CACZT,KAAK,CAAC,GAAG,CAAC,CACVS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;0BACf,IAAI,CAAC,YAAY,CAACyB,QAAQ,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,EAAC;0BAClD,OAAO,IAAI;wBACb,CAAC;wBAXQhB,OAAO,qBAAEe,CAAC,EAAE;0BACnB,IAAInB,SAAS,GAAGmB,CAAC,CAAC9B,GAAG,IAAIa,IAAI,CAACb,GAAG,GAAG8B,CAAC,CAAC9B,GAAG,IAAIa,IAAI,CAACb,GAAG,EAAE,OAAO,KAAK,EAAC;0BACpE,OAAO,IAAI;wBACb,CAAC;wBA6BD;wBACMiC,MAAM,GAAGpB,IAAI,CAACtB,GAAG,EAAE;wBAAA;wBAAA;wBAAA,OAEjBU,iBAAK,CAACyB,OAAO,CAACC,IAAI,CAACM,MAAM,CAAC;sBAAA;wBAC5Bf,QAAQ,GAAGjB,iBAAK,CAACiC,IAAI,CAACD,MAAM,EAAEzC,EAAE,CAAC2C,GAAG,CAAC,UAAU,CAAC,CAAC;wBACrDjB,QAAQ,GAAGA,QAAQ,CAACC,MAAM,CAACJ,OAAO,CAAC;wBAAA;wBAAA,OACdE,YAAY,CAACC,QAAQ,CAAC;sBAAA;wBAArCK,OAAM;wBAAA,KACRA,OAAM;0BAAA;0BAAA;wBAAA;wBAAA,kCAASA,OAAM;sBAAA;wBAAA;wBAAA;sBAAA;wBAAA;wBAAA;wBAAA,MAErB,aAAIa,QAAQ,IAAI,aAAIA,QAAQ,CAACC,MAAM,IAAI,aAAID,QAAQ,CAACC,MAAM,KAAK,GAAG;0BAAA;0BAAA;wBAAA;wBACpE5B,KAAK,CAACC,GAAG,CAAC,iCAAiC,GAAGuB,MAAM,CAAC;wBAAA;wBAAA;sBAAA;wBAErDxB,KAAK,CAACC,GAAG,CAAC,yCAAyC,GAAGuB,MAAM,CAAC;wBAC7D;wBAAA,MACO,IAAIK,KAAK,eAAQ,aAAIC,OAAO,8BAAoBN,MAAM,EAAG;sBAAA;wBAAA,MAIhEnB,KAAK,KAAK,CAAC;0BAAA;0BAAA;wBAAA;wBAAA,kCAAS,IAAI;sBAAA;wBAAA;wBAAA,OAERF,cAAc,CAACqB,MAAM,EAAEnB,KAAK,GAAG,CAAC,CAAC;sBAAA;wBAA/C0B,KAAK;wBAAA,IACNA,KAAK;0BAAA;0BAAA;wBAAA;wBAAA,kCAAS,IAAI;sBAAA;wBAAA;wBAAA,OACjBvC,iBAAK,CAACyB,OAAO,CAACC,IAAI,CAACa,KAAK,CAAC;sBAAA;wBACzBC,OAAO,GAAGxC,iBAAK,CAACiC,IAAI,CAACM,KAAK,EAAEhD,EAAE,CAAC2C,GAAG,CAAC,UAAU,CAAC,CAAC;wBAAA;wBAAA,OAChClB,YAAY,CAACwB,OAAO,CAAC;sBAAA;wBAApCC,MAAM;wBAAA,kCACLA,MAAM;sBAAA;sBAAA;wBAAA;oBAAA;kBAAA;gBAAA,CACd;gBAAA;cAAA;cA3Dc9B,cAAc;gBAAA;cAAA;cADvBa,cAAc,GAAG,IAAI;cA4DzB;cAEIF,MAAM,GAAG,IAAI,CAACoB,oBAAoB,CAACjD,IAAI,CAAC,CAACH,GAAG,EAAE;cAAA;cAAA,OAChCqB,cAAc,CAACW,MAAM,EAAE,CAAC,CAAC;YAAA;cAAvCqB,KAAK;cAAA,KACPA,KAAK;gBAAA;gBAAA;cAAA;cACDzC,GAAG,GAAGF,iBAAK,CAACC,GAAG,CAAC0C,KAAK,CAAC5C,GAAG,GAAG,IAAI,CAACb,YAAY,CAAC;cAAA,kCAC7C,IAAI,CAAC0D,oBAAoB,CAAC1C,GAAG,CAAC;YAAA;cAAA,kCAEhC,IAAI;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA,CACZ;MAAA;QAAA;MAAA;MAAA;IAAA,IAAC;EAAA;IAAA;IAAA;MAAA,+FAEF,kBAAiBQ,SAAS;QAAA,gCAITmC,iBAAiB;QAAA;UAAA;YAAA;cAAA;gBAAA,mGAAhC,kBAAkCb,MAAM;kBAAA,IAC7BjB,QAAQ;kBAAA;oBAAA;sBAAA;wBAARA,QAAQ,uBAAEc,CAAC,EAAE;0BACpB,IAAMC,IAAI,GAAGD,CAAC,CAAC9B,GAAG,CACfO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CACZT,KAAK,CAAC,GAAG,CAAC,CACVS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;0BACf,IAAI,CAAC,YAAY,CAACyB,QAAQ,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,EAAC;0BAClD,OAAO,IAAI;wBACb,CAAC;wBACDtB,KAAK,CAACC,GAAG,CAAC,qBAAqB,GAAGuB,MAAM,CAAC;wBACzC,OAAOc,aAAa,CAACC,SAAS,CAACf,MAAM,CAACjC,GAAG,CAAC;wBAC1C;wBAAA;wBAAA,OACM+C,aAAa,CAACpB,IAAI,CAACM,MAAM,EAAE;0BAAEgB,KAAK,EAAE;wBAAK,CAAC,CAAC;sBAAA;wBAAC;wBAClD;wBACA;wBAEIC,IAAI,GAAGC,WAAW,CAACjB,IAAI,CAACD,MAAM,EAAEzC,EAAE,CAAC2C,GAAG,CAAC,UAAU,CAAC,CAAC;wBACvDe,IAAI,GAAGA,IAAI,CAAC/B,MAAM,CAACH,QAAQ,CAAC;wBAAA,MACxBkC,IAAI,CAAC7C,MAAM,KAAK,CAAC;0BAAA;0BAAA;wBAAA;wBAAA,MACb,IAAIiC,KAAK,CAAC,uCAAuC,GAAGL,MAAM,CAAC;sBAAA;wBAGnEiB,IAAI,CAAC9B,IAAI,EAAE;wBACX,IAAIT,SAAS,EAAEuC,IAAI,CAAC7B,OAAO,EAAE;wBAAA,kCACtB6B,IAAI,CAAC,CAAC,CAAC;sBAAA;sBAAA;wBAAA;oBAAA;kBAAA;gBAAA,CACf;gBAAA;cAAA;cAzBcJ,iBAAiB;gBAAA;cAAA;cAHhC;cACMK,WAAW,GAAGC,IAAI,CAACC,KAAK,EAAE;cAC1BN,aAAa,GAAG,IAAIK,IAAI,CAACE,OAAO,CAACH,WAAW,CAAC;cAAA;cAAA,OA2BnCL,iBAAiB,CAAC,IAAI,CAACzD,IAAI,CAACE,GAAG,EAAE,CAAC;YAAA;cAA5CgE,CAAC;cAAA;cAAA,OACaT,iBAAiB,CAACS,CAAC,CAAC;YAAA;cAAlCC,KAAK;cAAA;cAAA,OACKV,iBAAiB,CAACU,KAAK,CAAC;YAAA;cAAlCC,CAAC;cACDjC,YAAY,GAAG4B,IAAI,CAAClD,GAAG,CAACuD,CAAC,CAACzD,GAAG,GAAG,UAAU,CAAC;cAAA;cAAA,OAC3C+C,aAAa,CAACpB,IAAI,CAACH,YAAY,CAAC;YAAA;cAChCkC,WAAW,GAAGP,WAAW,CAACjB,IAAI,CAClC,IAAI,CAAC7C,IAAI,EACT,IAAI,CAACD,kBAAkB,EACvB,IAAI,EACJoC,YAAY,CACb;cAAA,MACGkC,WAAW,CAACrD,MAAM,KAAK,CAAC;gBAAA;gBAAA;cAAA;cACpBsD,GAAG,GACP,gDAAgD,GAAGnC,YAAY;cACjEf,KAAK,CAACmD,KAAK,CAACD,GAAG,CAAC;cAAA,MACV,IAAIrB,KAAK,CAACqB,GAAG,CAAC;YAAA;cAEhBE,MAAM,GAAGH,WAAW,CAACI,GAAG,CAAC,UAAAC,UAAU;gBAAA,OAAI,CAC3CZ,WAAW,CAACa,GAAG,CAACD,UAAU,EAAEvE,EAAE,CAACqC,GAAG,CAAC,SAAS,CAAC,CAAC,EAC9CkC,UAAU,CACX;cAAA,EAAC;cACFF,MAAM,CAACzC,IAAI,EAAE;cACb,IAAIT,SAAS,EAAEkD,MAAM,CAACxC,OAAO,EAAE;cAC/BZ,KAAK,CAACC,GAAG,CACP,CAACC,SAAS,GAAG,QAAQ,GAAG,UAAU,IAAI,iBAAiB,GAAGkD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACvE;cAAA,kCACMA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA,CACpB;MAAA;QAAA;MAAA;MAAA;IAAA,IAAC;EAAA;EAAA;AAAA,KACF;AAAA"}
|
|
1
|
+
{"version":3,"file":"dateFolder.js","names":["debug","_interopRequireWildcard","require","_solidLogic","ns","$rdf","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","DateFolder","rootThing","leafFileName","membershipProperty","_classCallCheck2","root","rootFolder","dir","wf","_createClass2","value","leafDocumentFromDate","date","isoDate","toISOString","path","split","replace","uri","store","sym","dateFromLeafDocument","doc","head","length","str","slice","Date","log","_loadPrevious","_asyncToGenerator2","_regenerator","mark","_callee3","backwards","thisDateFolder","previousPeriod","_previousPeriod","folder","found","wrap","_callee3$","_context3","prev","next","_previousPeriod3","_callee2","file","level","younger","suitable","lastNonEmpty","_lastNonEmpty","parent","siblings","_folder","uncle","cousins","result","_callee2$","_context2","_lastNonEmpty3","_callee","_folder2","leafDocument","_callee$","_context","filter","sort","reverse","abrupt","pop","fetcher","load","statementsMatching","dct","stop","apply","arguments","_lastNonEmpty2","_x5","_suitable","x","tail","includes","_younger","each","ldp","sent","t0","response","status","Error","concat","message","_previousPeriod2","_x3","_x4","loadPrevious","_x","_x2","_firstLeaf","_callee5","folderStore","folderFetcher","earliestSubfolder","_earliestSubfolder","y","month","d","leafObjects","msg","sortMe","_callee5$","_context5","_earliestSubfolder3","_callee4","kids","_callee4$","_context4","_suitable2","requested","force","_earliestSubfolder2","_x7","graph","Fetcher","trace","map","leafObject","any","firstLeaf","_x6","exports"],"sources":["../../src/chat/dateFolder.js"],"sourcesContent":["/**\n * Contains the [[DateFolder]] class\n * This tracks data stored in dated folders and sub-folders\n *\n */\n\nimport * as debug from '../debug'\nimport { store } from 'solid-logic'\n\nimport * as ns from '../ns'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\n\n/**\n * Track back through the YYYY/MM/DD tree to find the previous/next day\n */\nexport class DateFolder {\n constructor (rootThing, leafFileName, membershipProperty) {\n this.root = rootThing\n this.rootFolder = rootThing.dir()\n this.leafFileName = leafFileName || 'index.ttl' // typically chat.ttl\n this.membershipProperty = membershipProperty || ns.wf('leafObject')\n }\n\n /* Generate the leaf document (rdf object) from date\n * @returns: <NamedNode> - document\n */\n leafDocumentFromDate (date) {\n // debug.log('incoming date: ' + date)\n const isoDate = date.toISOString() // Like \"2018-05-07T17:42:46.576Z\"\n let path = isoDate.split('T')[0].replace(/-/g, '/') // Like \"2018/05/07\"\n path = this.root.dir().uri + path + '/' + this.leafFileName\n return store.sym(path)\n }\n\n /* Generate a date object from the leaf file name\n */\n dateFromLeafDocument (doc) {\n const head = this.rootFolder.uri.length\n const str = doc.uri.slice(head, head + 10).replace(/\\//g, '-')\n // let date = new Date(str + 'Z') // GMT - but fails in FF - invalid format :-(\n const date = new Date(str) // not explicitly UTC but is assumed so in spec\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse\n debug.log('Date for ' + doc + ':' + date.toISOString())\n return date\n }\n\n async loadPrevious (date, backwards) {\n const thisDateFolder = this\n async function previousPeriod (file, level) {\n function younger (x) {\n if (backwards ? x.uri >= file.uri : x.uri <= file.uri) return false // later than we want or same -- looking for different\n return true\n }\n function suitable (x) {\n const tail = x.uri\n .slice(0, -1)\n .split('/')\n .slice(-1)[0]\n if (!'0123456789'.includes(tail[0])) return false // not numeric\n return true\n }\n\n async function lastNonEmpty (siblings) {\n siblings = siblings.filter(suitable)\n siblings.sort() // chronological order\n if (!backwards) siblings.reverse()\n if (level !== 3) return siblings.pop() // only length chck final leverl\n while (siblings.length) {\n const folder = siblings.pop()\n const leafDocument = store.sym(folder.uri + thisDateFolder.leafFileName)\n await store.fetcher.load(leafDocument)\n // files can have seealso links. skip ones with no leafObjects with a date\n if (\n store.statementsMatching(null, ns.dct('created'), null, leafDocument)\n .length > 0\n ) {\n return folder\n }\n }\n return null\n }\n // debug.log(' previousPeriod level' + level + ' file ' + file)\n const parent = file.dir()\n try {\n await store.fetcher.load(parent)\n let siblings = store.each(parent, ns.ldp('contains'))\n siblings = siblings.filter(younger)\n const folder = await lastNonEmpty(siblings)\n if (folder) return folder\n } catch (err) {\n if (err.response && err.response.status && err.response.status === 404) {\n debug.log('Error 404 for chat parent file ' + parent)\n } else {\n debug.log('*** Error NON 404 for chat parent file ' + parent)\n // statusTR.appendChild(widgets.errorMessageBlock(dom, err, 'pink'))\n throw (new Error(`*** ${err.message} for chat folder ${parent}`))\n }\n }\n\n if (level === 0) return null // 3:day, 2:month, 1: year 0: no\n\n const uncle = await previousPeriod(parent, level - 1)\n if (!uncle) return null // reached first ever\n await store.fetcher.load(uncle)\n const cousins = store.each(uncle, ns.ldp('contains'))\n const result = await lastNonEmpty(cousins)\n return result\n } // previousPeriod\n\n const folder = this.leafDocumentFromDate(date).dir()\n const found = await previousPeriod(folder, 3)\n if (found) {\n const doc = store.sym(found.uri + this.leafFileName)\n return this.dateFromLeafDocument(doc)\n }\n return null\n } // loadPrevious\n\n async firstLeaf (backwards) {\n // backwards -> last leafObject\n const folderStore = $rdf.graph()\n const folderFetcher = new $rdf.Fetcher(folderStore)\n async function earliestSubfolder (parent) {\n function suitable (x) {\n const tail = x.uri\n .slice(0, -1)\n .split('/')\n .slice(-1)[0]\n if (!'0123456789'.includes(tail[0])) return false // not numeric\n return true\n }\n debug.log(' parent ' + parent)\n delete folderFetcher.requested[parent.uri]\n // try {\n await folderFetcher.load(parent, { force: true }) // Force fetch as will have changed\n // }catch (err) {\n // }\n\n let kids = folderStore.each(parent, ns.ldp('contains'))\n kids = kids.filter(suitable)\n if (kids.length === 0) {\n throw new Error(' @@@ No children to parent2 ' + parent)\n }\n\n kids.sort()\n if (backwards) kids.reverse()\n return kids[0]\n }\n const y = await earliestSubfolder(this.root.dir())\n const month = await earliestSubfolder(y)\n const d = await earliestSubfolder(month)\n const leafDocument = $rdf.sym(d.uri + 'chat.ttl')\n await folderFetcher.load(leafDocument)\n const leafObjects = folderStore.each(\n this.root,\n this.membershipProperty,\n null,\n leafDocument\n )\n if (leafObjects.length === 0) {\n const msg =\n ' INCONSISTENCY -- no chat leafObject in file ' + leafDocument\n debug.trace(msg)\n throw new Error(msg)\n }\n const sortMe = leafObjects.map(leafObject => [\n folderStore.any(leafObject, ns.dct('created')),\n leafObject\n ])\n sortMe.sort()\n if (backwards) sortMe.reverse()\n debug.log(\n (backwards ? 'Latest' : 'Earliest') + ' leafObject is ' + sortMe[0][1]\n )\n return sortMe[0][1]\n } // firstleafObject\n} // class\n"],"mappings":"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"}
|