solid-ui 2.4.23 → 2.4.24-0c90afe2
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/LICENSE.md +0 -0
- package/README.md +0 -0
- package/dist/index.html +0 -0
- package/dist/main.js +2221 -5081
- package/dist/main.js.map +1 -1
- package/lib/acl/access-controller.d.ts +0 -0
- package/lib/acl/access-controller.d.ts.map +0 -0
- package/lib/acl/access-controller.js +4 -67
- package/lib/acl/access-controller.js.map +1 -1
- package/lib/acl/access-groups.d.ts +0 -0
- package/lib/acl/access-groups.d.ts.map +0 -0
- package/lib/acl/access-groups.js +59 -137
- package/lib/acl/access-groups.js.map +1 -1
- package/lib/acl/acl-control.d.ts +0 -0
- package/lib/acl/acl-control.d.ts.map +0 -0
- package/lib/acl/acl-control.js +14 -54
- package/lib/acl/acl-control.js.map +1 -1
- package/lib/acl/acl.d.ts +0 -0
- package/lib/acl/acl.d.ts.map +0 -0
- package/lib/acl/acl.js +32 -107
- package/lib/acl/acl.js.map +1 -1
- package/lib/acl/add-agent-buttons.d.ts +0 -0
- package/lib/acl/add-agent-buttons.d.ts.map +0 -0
- package/lib/acl/add-agent-buttons.js +0 -92
- package/lib/acl/add-agent-buttons.js.map +1 -1
- package/lib/acl/index.d.ts +0 -0
- package/lib/acl/index.d.ts.map +0 -0
- package/lib/acl/index.js +1 -3
- package/lib/acl/index.js.map +1 -1
- package/lib/acl/styles.d.ts +0 -0
- package/lib/acl/styles.d.ts.map +0 -0
- package/lib/acl/styles.js +1 -2
- package/lib/acl/styles.js.map +1 -1
- package/lib/acl/types.d.ts +0 -0
- package/lib/acl/types.d.ts.map +0 -0
- package/lib/acl/types.js +0 -0
- package/lib/acl/types.js.map +0 -0
- package/lib/chat/bookmarks.js +8 -80
- package/lib/chat/bookmarks.js.map +1 -1
- package/lib/chat/chatLogic.js +109 -180
- package/lib/chat/chatLogic.js.map +1 -1
- package/lib/chat/dateFolder.js +51 -117
- package/lib/chat/dateFolder.js.map +1 -1
- package/lib/chat/infinite.js +40 -191
- package/lib/chat/infinite.js.map +1 -1
- package/lib/chat/message.js +37 -150
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/messageTools.js +23 -96
- package/lib/chat/messageTools.js.map +1 -1
- package/lib/chat/thread.js +33 -91
- package/lib/chat/thread.js.map +1 -1
- package/lib/create/create.d.ts +0 -0
- package/lib/create/create.d.ts.map +0 -0
- package/lib/create/create.js +19 -51
- package/lib/create/create.js.map +1 -1
- package/lib/create/index.d.ts +0 -0
- package/lib/create/index.d.ts.map +0 -0
- package/lib/create/index.js +0 -2
- package/lib/create/index.js.map +1 -1
- package/lib/create/types.d.ts +0 -0
- package/lib/create/types.d.ts.map +0 -0
- package/lib/create/types.js +0 -0
- package/lib/create/types.js.map +0 -0
- package/lib/debug.d.ts +0 -0
- package/lib/debug.d.ts.map +0 -0
- package/lib/debug.js +0 -8
- package/lib/debug.js.map +1 -1
- package/lib/folders.js +4 -27
- package/lib/folders.js.map +1 -1
- package/lib/footer/index.d.ts +0 -0
- package/lib/footer/index.d.ts.map +0 -0
- package/lib/footer/index.js +2 -24
- package/lib/footer/index.js.map +1 -1
- package/lib/footer/styleMap.d.ts +0 -0
- package/lib/footer/styleMap.d.ts.map +0 -0
- package/lib/footer/styleMap.js +0 -0
- package/lib/footer/styleMap.js.map +1 -1
- package/lib/header/empty-profile.d.ts +0 -0
- package/lib/header/empty-profile.d.ts.map +0 -0
- package/lib/header/empty-profile.js +0 -0
- package/lib/header/empty-profile.js.map +1 -1
- package/lib/header/index.d.ts +0 -0
- package/lib/header/index.d.ts.map +0 -0
- package/lib/header/index.js +3 -72
- package/lib/header/index.js.map +1 -1
- package/lib/header/styleMap.d.ts +0 -0
- package/lib/header/styleMap.d.ts.map +0 -0
- package/lib/header/styleMap.js +4 -3
- package/lib/header/styleMap.js.map +1 -1
- package/lib/iconBase.d.ts +0 -0
- package/lib/iconBase.d.ts.map +0 -0
- package/lib/iconBase.js +3 -4
- package/lib/iconBase.js.map +1 -1
- package/lib/icons/solid_logo.d.ts +0 -0
- package/lib/icons/solid_logo.d.ts.map +0 -0
- package/lib/icons/solid_logo.js +0 -0
- package/lib/icons/solid_logo.js.map +0 -0
- package/lib/index.d.ts +0 -0
- package/lib/index.d.ts.map +0 -0
- package/lib/index.js +5 -46
- package/lib/index.js.map +1 -1
- package/lib/jss/index.d.ts +0 -0
- package/lib/jss/index.d.ts.map +0 -0
- package/lib/jss/index.js +3 -9
- package/lib/jss/index.js.map +1 -1
- package/lib/log.d.ts +0 -0
- package/lib/log.d.ts.map +0 -0
- package/lib/log.js +15 -51
- package/lib/log.js.map +1 -1
- package/lib/login/login.d.ts +0 -0
- package/lib/login/login.d.ts.map +0 -0
- package/lib/login/login.js +74 -303
- package/lib/login/login.js.map +1 -1
- package/lib/matrix/index.d.ts +0 -0
- package/lib/matrix/index.d.ts.map +0 -0
- package/lib/matrix/index.js +0 -2
- package/lib/matrix/index.js.map +1 -1
- package/lib/matrix/matrix.d.ts +0 -0
- package/lib/matrix/matrix.d.ts.map +0 -0
- package/lib/matrix/matrix.js +7 -55
- package/lib/matrix/matrix.js.map +1 -1
- package/lib/matrix/types.d.ts +0 -0
- package/lib/matrix/types.d.ts.map +0 -0
- package/lib/matrix/types.js +0 -0
- package/lib/matrix/types.js.map +0 -0
- package/lib/media/index.d.ts +0 -0
- package/lib/media/index.d.ts.map +0 -0
- package/lib/media/index.js +0 -2
- package/lib/media/index.js.map +1 -1
- package/lib/media/media-capture.d.ts +0 -0
- package/lib/media/media-capture.d.ts.map +0 -0
- package/lib/media/media-capture.js +13 -33
- package/lib/media/media-capture.js.map +1 -1
- package/lib/messageArea.js +23 -64
- package/lib/messageArea.js.map +1 -1
- package/lib/noun_Camera_1618446_000000.js +0 -0
- package/lib/noun_Camera_1618446_000000.js.map +1 -1
- package/lib/ns.js +5 -7
- package/lib/ns.js.map +1 -1
- package/lib/pad.d.ts +0 -0
- package/lib/pad.d.ts.map +0 -0
- package/lib/pad.js +48 -234
- package/lib/pad.js.map +1 -1
- package/lib/participation.d.ts +0 -0
- package/lib/participation.d.ts.map +0 -0
- package/lib/participation.js +10 -65
- package/lib/participation.js.map +1 -1
- package/lib/preferences.js +21 -42
- package/lib/preferences.js.map +1 -1
- package/lib/signup/config-default.js +1 -8
- package/lib/signup/config-default.js.map +1 -1
- package/lib/signup/signup.js +6 -13
- package/lib/signup/signup.js.map +1 -1
- package/lib/stories/decorators.js +0 -2
- package/lib/stories/decorators.js.map +1 -1
- package/lib/style.js +8 -5
- package/lib/style.js.map +1 -1
- package/lib/style_multiSelect.js +1 -5
- package/lib/style_multiSelect.js.map +1 -1
- package/lib/table.js +309 -322
- package/lib/table.js.map +1 -1
- package/lib/tabs.d.ts +0 -0
- package/lib/tabs.d.ts.map +0 -0
- package/lib/tabs.js +20 -100
- package/lib/tabs.js.map +1 -1
- package/lib/typings.d.js +0 -0
- package/lib/typings.d.js.map +0 -0
- package/lib/utils/headerFooterHelpers.d.ts +0 -0
- package/lib/utils/headerFooterHelpers.d.ts.map +0 -0
- package/lib/utils/headerFooterHelpers.js +4 -52
- package/lib/utils/headerFooterHelpers.js.map +1 -1
- package/lib/utils/index.js +41 -135
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/label.d.ts +0 -0
- package/lib/utils/label.d.ts.map +0 -0
- package/lib/utils/label.js +13 -34
- package/lib/utils/label.js.map +1 -1
- package/lib/versionInfo.d.ts +0 -0
- package/lib/versionInfo.d.ts.map +0 -0
- package/lib/versionInfo.js +14 -14
- package/lib/versionInfo.js.map +1 -1
- package/lib/widgets/buttons/iconLinks.d.ts +0 -0
- package/lib/widgets/buttons/iconLinks.d.ts.map +0 -0
- package/lib/widgets/buttons/iconLinks.js +0 -8
- package/lib/widgets/buttons/iconLinks.js.map +1 -1
- package/lib/widgets/buttons.d.ts +0 -0
- package/lib/widgets/buttons.d.ts.map +0 -0
- package/lib/widgets/buttons.js +115 -291
- package/lib/widgets/buttons.js.map +1 -1
- package/lib/widgets/dragAndDrop.js +12 -41
- package/lib/widgets/dragAndDrop.js.map +1 -1
- package/lib/widgets/error.d.ts +0 -0
- package/lib/widgets/error.d.ts.map +0 -0
- package/lib/widgets/error.js +3 -9
- package/lib/widgets/error.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +8 -71
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteField.js +13 -65
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +15 -107
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
- package/lib/widgets/forms/autocomplete/language.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/language.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/language.js +6 -55
- package/lib/widgets/forms/autocomplete/language.js.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/publicData.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/publicData.js +12 -131
- package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
- package/lib/widgets/forms/basic.d.ts +0 -0
- package/lib/widgets/forms/basic.d.ts.map +0 -0
- package/lib/widgets/forms/basic.js +12 -55
- package/lib/widgets/forms/basic.js.map +1 -1
- package/lib/widgets/forms/comment.d.ts +0 -0
- package/lib/widgets/forms/comment.d.ts.map +0 -0
- package/lib/widgets/forms/comment.js +1 -15
- package/lib/widgets/forms/comment.js.map +1 -1
- package/lib/widgets/forms/fieldFunction.d.ts +0 -0
- package/lib/widgets/forms/fieldFunction.d.ts.map +0 -0
- package/lib/widgets/forms/fieldFunction.js +3 -16
- package/lib/widgets/forms/fieldFunction.js.map +1 -1
- package/lib/widgets/forms/fieldParams.d.ts +0 -0
- package/lib/widgets/forms/fieldParams.d.ts.map +0 -0
- package/lib/widgets/forms/fieldParams.js +0 -12
- package/lib/widgets/forms/fieldParams.js.map +1 -1
- package/lib/widgets/forms/formStyle.d.ts +0 -0
- package/lib/widgets/forms/formStyle.d.ts.map +0 -0
- package/lib/widgets/forms/formStyle.js +1 -14
- package/lib/widgets/forms/formStyle.js.map +1 -1
- package/lib/widgets/forms.js +70 -474
- package/lib/widgets/forms.js.map +1 -1
- package/lib/widgets/index.js +0 -21
- package/lib/widgets/index.js.map +1 -1
- package/lib/widgets/multiSelect.js +48 -171
- package/lib/widgets/multiSelect.js.map +1 -1
- package/lib/widgets/peoplePicker.js +20 -90
- package/lib/widgets/peoplePicker.js.map +1 -1
- package/lib/widgets/widgetHelpers.d.ts +0 -0
- package/lib/widgets/widgetHelpers.d.ts.map +0 -0
- package/lib/widgets/widgetHelpers.js +2 -9
- package/lib/widgets/widgetHelpers.js.map +1 -1
- package/package.json +30 -30
package/lib/chat/dateFolder.js
CHANGED
|
@@ -1,41 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.DateFolder = void 0;
|
|
11
|
-
|
|
12
9
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
13
|
-
|
|
14
10
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
|
-
|
|
16
11
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
17
|
-
|
|
18
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
19
|
-
|
|
20
13
|
var debug = _interopRequireWildcard(require("../debug"));
|
|
21
|
-
|
|
22
14
|
var _solidLogic = require("solid-logic");
|
|
23
|
-
|
|
24
15
|
var ns = _interopRequireWildcard(require("../ns"));
|
|
25
|
-
|
|
26
16
|
var $rdf = _interopRequireWildcard(require("rdflib"));
|
|
27
|
-
|
|
28
17
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
|
-
|
|
30
18
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
|
-
|
|
32
19
|
/**
|
|
33
20
|
* Contains the [[DateFolder]] class
|
|
34
21
|
* This tracks data stored in dated folders and sub-folders
|
|
35
22
|
*
|
|
36
23
|
*/
|
|
37
24
|
// pull in first avoid cross-refs
|
|
38
|
-
|
|
39
25
|
/**
|
|
40
26
|
* Track back through the YYYY/MM/DD tree to find the previous/next day
|
|
41
27
|
*/
|
|
@@ -45,37 +31,32 @@ var DateFolder = /*#__PURE__*/function () {
|
|
|
45
31
|
this.root = rootThing;
|
|
46
32
|
this.rootFolder = rootThing.dir();
|
|
47
33
|
this.leafFileName = leafFileName || 'index.ttl'; // typically chat.ttl
|
|
48
|
-
|
|
49
34
|
this.membershipProperty = membershipProperty || ns.wf('leafObject');
|
|
50
35
|
}
|
|
36
|
+
|
|
51
37
|
/* Generate the leaf document (rdf object) from date
|
|
52
38
|
* @returns: <NamedNode> - document
|
|
53
39
|
*/
|
|
54
|
-
|
|
55
|
-
|
|
56
40
|
(0, _createClass2["default"])(DateFolder, [{
|
|
57
41
|
key: "leafDocumentFromDate",
|
|
58
42
|
value: function leafDocumentFromDate(date) {
|
|
59
43
|
// debug.log('incoming date: ' + date)
|
|
60
44
|
var isoDate = date.toISOString(); // Like "2018-05-07T17:42:46.576Z"
|
|
61
|
-
|
|
62
45
|
var path = isoDate.split('T')[0].replace(/-/g, '/'); // Like "2018/05/07"
|
|
63
|
-
|
|
64
46
|
path = this.root.dir().uri + path + '/' + this.leafFileName;
|
|
65
47
|
return _solidLogic.store.sym(path);
|
|
66
48
|
}
|
|
49
|
+
|
|
67
50
|
/* Generate a date object from the leaf file name
|
|
68
51
|
*/
|
|
69
|
-
|
|
70
52
|
}, {
|
|
71
53
|
key: "dateFromLeafDocument",
|
|
72
54
|
value: function dateFromLeafDocument(doc) {
|
|
73
55
|
var head = this.rootFolder.uri.length;
|
|
74
|
-
var str = doc.uri.slice(head, head + 10).replace(/\//g, '-');
|
|
75
|
-
|
|
56
|
+
var str = doc.uri.slice(head, head + 10).replace(/\//g, '-');
|
|
57
|
+
// let date = new Date(str + 'Z') // GMT - but fails in FF - invalid format :-(
|
|
76
58
|
var date = new Date(str); // not explicitly UTC but is assumed so in spec
|
|
77
59
|
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse
|
|
78
|
-
|
|
79
60
|
debug.log('Date for ' + doc + ':' + date.toISOString());
|
|
80
61
|
return date;
|
|
81
62
|
}
|
|
@@ -84,65 +65,52 @@ var DateFolder = /*#__PURE__*/function () {
|
|
|
84
65
|
value: function () {
|
|
85
66
|
var _loadPrevious = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(date, backwards) {
|
|
86
67
|
var thisDateFolder, previousPeriod, _previousPeriod, folder, found, doc;
|
|
87
|
-
|
|
88
68
|
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
89
69
|
while (1) {
|
|
90
70
|
switch (_context3.prev = _context3.next) {
|
|
91
71
|
case 0:
|
|
92
72
|
_previousPeriod = function _previousPeriod3() {
|
|
93
73
|
_previousPeriod = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(file, level) {
|
|
94
|
-
var younger, suitable, lastNonEmpty, _lastNonEmpty, parent, siblings,
|
|
95
|
-
|
|
74
|
+
var younger, suitable, lastNonEmpty, _lastNonEmpty, parent, siblings, _folder, uncle, cousins, result;
|
|
96
75
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
97
76
|
while (1) {
|
|
98
77
|
switch (_context2.prev = _context2.next) {
|
|
99
78
|
case 0:
|
|
100
79
|
_lastNonEmpty = function _lastNonEmpty3() {
|
|
101
80
|
_lastNonEmpty = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(siblings) {
|
|
102
|
-
var
|
|
103
|
-
|
|
81
|
+
var _folder2, leafDocument;
|
|
104
82
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
105
83
|
while (1) {
|
|
106
84
|
switch (_context.prev = _context.next) {
|
|
107
85
|
case 0:
|
|
108
86
|
siblings = siblings.filter(suitable);
|
|
109
87
|
siblings.sort(); // chronological order
|
|
110
|
-
|
|
111
88
|
if (!backwards) siblings.reverse();
|
|
112
|
-
|
|
113
89
|
if (!(level !== 3)) {
|
|
114
90
|
_context.next = 5;
|
|
115
91
|
break;
|
|
116
92
|
}
|
|
117
|
-
|
|
118
93
|
return _context.abrupt("return", siblings.pop());
|
|
119
|
-
|
|
120
94
|
case 5:
|
|
121
95
|
if (!siblings.length) {
|
|
122
96
|
_context.next = 14;
|
|
123
97
|
break;
|
|
124
98
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
leafDocument = _solidLogic.store.sym(_folder.uri + thisDateFolder.leafFileName);
|
|
99
|
+
_folder2 = siblings.pop();
|
|
100
|
+
leafDocument = _solidLogic.store.sym(_folder2.uri + thisDateFolder.leafFileName);
|
|
128
101
|
_context.next = 10;
|
|
129
102
|
return _solidLogic.store.fetcher.load(leafDocument);
|
|
130
|
-
|
|
131
103
|
case 10:
|
|
132
104
|
if (!(_solidLogic.store.statementsMatching(null, ns.dct('created'), null, leafDocument).length > 0)) {
|
|
133
105
|
_context.next = 12;
|
|
134
106
|
break;
|
|
135
107
|
}
|
|
136
|
-
|
|
137
|
-
return _context.abrupt("return", _folder);
|
|
138
|
-
|
|
108
|
+
return _context.abrupt("return", _folder2);
|
|
139
109
|
case 12:
|
|
140
110
|
_context.next = 5;
|
|
141
111
|
break;
|
|
142
|
-
|
|
143
112
|
case 14:
|
|
144
113
|
return _context.abrupt("return", null);
|
|
145
|
-
|
|
146
114
|
case 15:
|
|
147
115
|
case "end":
|
|
148
116
|
return _context.stop();
|
|
@@ -152,114 +120,106 @@ var DateFolder = /*#__PURE__*/function () {
|
|
|
152
120
|
}));
|
|
153
121
|
return _lastNonEmpty.apply(this, arguments);
|
|
154
122
|
};
|
|
155
|
-
|
|
156
123
|
lastNonEmpty = function _lastNonEmpty2(_x5) {
|
|
157
124
|
return _lastNonEmpty.apply(this, arguments);
|
|
158
125
|
};
|
|
159
|
-
|
|
160
126
|
suitable = function _suitable(x) {
|
|
161
127
|
var tail = x.uri.slice(0, -1).split('/').slice(-1)[0];
|
|
162
128
|
if (!'0123456789'.includes(tail[0])) return false; // not numeric
|
|
163
|
-
|
|
164
129
|
return true;
|
|
165
130
|
};
|
|
166
|
-
|
|
167
131
|
younger = function _younger(x) {
|
|
168
132
|
if (backwards ? x.uri >= file.uri : x.uri <= file.uri) return false; // later than we want or same -- looking for different
|
|
169
|
-
|
|
170
133
|
return true;
|
|
171
134
|
};
|
|
172
|
-
|
|
173
135
|
// debug.log(' previousPeriod level' + level + ' file ' + file)
|
|
174
136
|
parent = file.dir();
|
|
175
|
-
_context2.
|
|
137
|
+
_context2.prev = 5;
|
|
138
|
+
_context2.next = 8;
|
|
176
139
|
return _solidLogic.store.fetcher.load(parent);
|
|
177
|
-
|
|
178
|
-
case 7:
|
|
140
|
+
case 8:
|
|
179
141
|
siblings = _solidLogic.store.each(parent, ns.ldp('contains'));
|
|
180
142
|
siblings = siblings.filter(younger);
|
|
181
|
-
_context2.next =
|
|
143
|
+
_context2.next = 12;
|
|
182
144
|
return lastNonEmpty(siblings);
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
if (!folder) {
|
|
188
|
-
_context2.next = 14;
|
|
145
|
+
case 12:
|
|
146
|
+
_folder = _context2.sent;
|
|
147
|
+
if (!_folder) {
|
|
148
|
+
_context2.next = 15;
|
|
189
149
|
break;
|
|
190
150
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
151
|
+
return _context2.abrupt("return", _folder);
|
|
152
|
+
case 15:
|
|
153
|
+
_context2.next = 26;
|
|
154
|
+
break;
|
|
155
|
+
case 17:
|
|
156
|
+
_context2.prev = 17;
|
|
157
|
+
_context2.t0 = _context2["catch"](5);
|
|
158
|
+
if (!(_context2.t0.response && _context2.t0.response.status && _context2.t0.response.status === 404)) {
|
|
159
|
+
_context2.next = 24;
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
debug.log('Error 404 for chat parent file ' + parent);
|
|
163
|
+
delete _solidLogic.store.fetcher.requested[parent];
|
|
164
|
+
_context2.next = 26;
|
|
165
|
+
break;
|
|
166
|
+
case 24:
|
|
167
|
+
debug.log('*** Error NON 404 for chat parent file ' + parent);
|
|
168
|
+
// statusTR.appendChild(widgets.errorMessageBlock(dom, err, 'pink'))
|
|
169
|
+
throw new Error("*** ".concat(_context2.t0.message, " for chat folder ").concat(parent));
|
|
170
|
+
case 26:
|
|
195
171
|
if (!(level === 0)) {
|
|
196
|
-
_context2.next =
|
|
172
|
+
_context2.next = 28;
|
|
197
173
|
break;
|
|
198
174
|
}
|
|
199
|
-
|
|
200
175
|
return _context2.abrupt("return", null);
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
_context2.next = 18;
|
|
176
|
+
case 28:
|
|
177
|
+
_context2.next = 30;
|
|
204
178
|
return previousPeriod(parent, level - 1);
|
|
205
|
-
|
|
206
|
-
case 18:
|
|
179
|
+
case 30:
|
|
207
180
|
uncle = _context2.sent;
|
|
208
|
-
|
|
209
181
|
if (uncle) {
|
|
210
|
-
_context2.next =
|
|
182
|
+
_context2.next = 33;
|
|
211
183
|
break;
|
|
212
184
|
}
|
|
213
|
-
|
|
214
185
|
return _context2.abrupt("return", null);
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
_context2.next = 23;
|
|
186
|
+
case 33:
|
|
187
|
+
_context2.next = 35;
|
|
218
188
|
return _solidLogic.store.fetcher.load(uncle);
|
|
219
|
-
|
|
220
|
-
case 23:
|
|
189
|
+
case 35:
|
|
221
190
|
cousins = _solidLogic.store.each(uncle, ns.ldp('contains'));
|
|
222
|
-
_context2.next =
|
|
191
|
+
_context2.next = 38;
|
|
223
192
|
return lastNonEmpty(cousins);
|
|
224
|
-
|
|
225
|
-
case 26:
|
|
193
|
+
case 38:
|
|
226
194
|
result = _context2.sent;
|
|
227
195
|
return _context2.abrupt("return", result);
|
|
228
|
-
|
|
229
|
-
case 28:
|
|
196
|
+
case 40:
|
|
230
197
|
case "end":
|
|
231
198
|
return _context2.stop();
|
|
232
199
|
}
|
|
233
200
|
}
|
|
234
|
-
}, _callee2);
|
|
201
|
+
}, _callee2, null, [[5, 17]]);
|
|
235
202
|
}));
|
|
236
203
|
return _previousPeriod.apply(this, arguments);
|
|
237
204
|
};
|
|
238
|
-
|
|
239
205
|
previousPeriod = function _previousPeriod2(_x3, _x4) {
|
|
240
206
|
return _previousPeriod.apply(this, arguments);
|
|
241
207
|
};
|
|
242
|
-
|
|
243
208
|
thisDateFolder = this;
|
|
244
209
|
// previousPeriod
|
|
245
210
|
folder = this.leafDocumentFromDate(date).dir();
|
|
246
211
|
_context3.next = 6;
|
|
247
212
|
return previousPeriod(folder, 3);
|
|
248
|
-
|
|
249
213
|
case 6:
|
|
250
214
|
found = _context3.sent;
|
|
251
|
-
|
|
252
215
|
if (!found) {
|
|
253
216
|
_context3.next = 10;
|
|
254
217
|
break;
|
|
255
218
|
}
|
|
256
|
-
|
|
257
219
|
doc = _solidLogic.store.sym(found.uri + this.leafFileName);
|
|
258
220
|
return _context3.abrupt("return", this.dateFromLeafDocument(doc));
|
|
259
|
-
|
|
260
221
|
case 10:
|
|
261
222
|
return _context3.abrupt("return", null);
|
|
262
|
-
|
|
263
223
|
case 11:
|
|
264
224
|
case "end":
|
|
265
225
|
return _context3.stop();
|
|
@@ -267,20 +227,16 @@ var DateFolder = /*#__PURE__*/function () {
|
|
|
267
227
|
}
|
|
268
228
|
}, _callee3, this);
|
|
269
229
|
}));
|
|
270
|
-
|
|
271
230
|
function loadPrevious(_x, _x2) {
|
|
272
231
|
return _loadPrevious.apply(this, arguments);
|
|
273
232
|
}
|
|
274
|
-
|
|
275
233
|
return loadPrevious;
|
|
276
234
|
}() // loadPrevious
|
|
277
|
-
|
|
278
235
|
}, {
|
|
279
236
|
key: "firstLeaf",
|
|
280
237
|
value: function () {
|
|
281
238
|
var _firstLeaf = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(backwards) {
|
|
282
239
|
var folderStore, folderFetcher, earliestSubfolder, _earliestSubfolder, y, month, d, leafDocument, leafObjects, msg, sortMe;
|
|
283
|
-
|
|
284
240
|
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
285
241
|
while (1) {
|
|
286
242
|
switch (_context5.prev = _context5.next) {
|
|
@@ -295,37 +251,30 @@ var DateFolder = /*#__PURE__*/function () {
|
|
|
295
251
|
suitable = function _suitable2(x) {
|
|
296
252
|
var tail = x.uri.slice(0, -1).split('/').slice(-1)[0];
|
|
297
253
|
if (!'0123456789'.includes(tail[0])) return false; // not numeric
|
|
298
|
-
|
|
299
254
|
return true;
|
|
300
255
|
};
|
|
301
|
-
|
|
302
256
|
debug.log(' parent ' + parent);
|
|
303
|
-
delete folderFetcher.requested[parent.uri];
|
|
304
|
-
|
|
257
|
+
delete folderFetcher.requested[parent.uri];
|
|
258
|
+
// try {
|
|
305
259
|
_context4.next = 5;
|
|
306
260
|
return folderFetcher.load(parent, {
|
|
307
261
|
force: true
|
|
308
262
|
});
|
|
309
|
-
|
|
310
263
|
case 5:
|
|
311
264
|
// Force fetch as will have changed
|
|
312
265
|
// }catch (err) {
|
|
313
266
|
// }
|
|
314
267
|
kids = folderStore.each(parent, ns.ldp('contains'));
|
|
315
268
|
kids = kids.filter(suitable);
|
|
316
|
-
|
|
317
269
|
if (!(kids.length === 0)) {
|
|
318
270
|
_context4.next = 9;
|
|
319
271
|
break;
|
|
320
272
|
}
|
|
321
|
-
|
|
322
273
|
throw new Error(' @@@ No children to parent2 ' + parent);
|
|
323
|
-
|
|
324
274
|
case 9:
|
|
325
275
|
kids.sort();
|
|
326
276
|
if (backwards) kids.reverse();
|
|
327
277
|
return _context4.abrupt("return", kids[0]);
|
|
328
|
-
|
|
329
278
|
case 12:
|
|
330
279
|
case "end":
|
|
331
280
|
return _context4.stop();
|
|
@@ -335,45 +284,36 @@ var DateFolder = /*#__PURE__*/function () {
|
|
|
335
284
|
}));
|
|
336
285
|
return _earliestSubfolder.apply(this, arguments);
|
|
337
286
|
};
|
|
338
|
-
|
|
339
287
|
earliestSubfolder = function _earliestSubfolder2(_x7) {
|
|
340
288
|
return _earliestSubfolder.apply(this, arguments);
|
|
341
289
|
};
|
|
342
|
-
|
|
343
290
|
// backwards -> last leafObject
|
|
344
291
|
folderStore = $rdf.graph();
|
|
345
292
|
folderFetcher = new $rdf.Fetcher(folderStore);
|
|
346
293
|
_context5.next = 6;
|
|
347
294
|
return earliestSubfolder(this.root.dir());
|
|
348
|
-
|
|
349
295
|
case 6:
|
|
350
296
|
y = _context5.sent;
|
|
351
297
|
_context5.next = 9;
|
|
352
298
|
return earliestSubfolder(y);
|
|
353
|
-
|
|
354
299
|
case 9:
|
|
355
300
|
month = _context5.sent;
|
|
356
301
|
_context5.next = 12;
|
|
357
302
|
return earliestSubfolder(month);
|
|
358
|
-
|
|
359
303
|
case 12:
|
|
360
304
|
d = _context5.sent;
|
|
361
305
|
leafDocument = $rdf.sym(d.uri + 'chat.ttl');
|
|
362
306
|
_context5.next = 16;
|
|
363
307
|
return folderFetcher.load(leafDocument);
|
|
364
|
-
|
|
365
308
|
case 16:
|
|
366
309
|
leafObjects = folderStore.each(this.root, this.membershipProperty, null, leafDocument);
|
|
367
|
-
|
|
368
310
|
if (!(leafObjects.length === 0)) {
|
|
369
311
|
_context5.next = 21;
|
|
370
312
|
break;
|
|
371
313
|
}
|
|
372
|
-
|
|
373
314
|
msg = ' INCONSISTENCY -- no chat leafObject in file ' + leafDocument;
|
|
374
315
|
debug.trace(msg);
|
|
375
316
|
throw new Error(msg);
|
|
376
|
-
|
|
377
317
|
case 21:
|
|
378
318
|
sortMe = leafObjects.map(function (leafObject) {
|
|
379
319
|
return [folderStore.any(leafObject, ns.dct('created')), leafObject];
|
|
@@ -382,7 +322,6 @@ var DateFolder = /*#__PURE__*/function () {
|
|
|
382
322
|
if (backwards) sortMe.reverse();
|
|
383
323
|
debug.log((backwards ? 'Latest' : 'Earliest') + ' leafObject is ' + sortMe[0][1]);
|
|
384
324
|
return _context5.abrupt("return", sortMe[0][1]);
|
|
385
|
-
|
|
386
325
|
case 26:
|
|
387
326
|
case "end":
|
|
388
327
|
return _context5.stop();
|
|
@@ -390,18 +329,13 @@ var DateFolder = /*#__PURE__*/function () {
|
|
|
390
329
|
}
|
|
391
330
|
}, _callee5, this);
|
|
392
331
|
}));
|
|
393
|
-
|
|
394
332
|
function firstLeaf(_x6) {
|
|
395
333
|
return _firstLeaf.apply(this, arguments);
|
|
396
334
|
}
|
|
397
|
-
|
|
398
335
|
return firstLeaf;
|
|
399
336
|
}() // firstleafObject
|
|
400
|
-
|
|
401
337
|
}]);
|
|
402
338
|
return DateFolder;
|
|
403
339
|
}(); // class
|
|
404
|
-
|
|
405
|
-
|
|
406
340
|
exports.DateFolder = DateFolder;
|
|
407
341
|
//# sourceMappingURL=dateFolder.js.map
|
|
@@ -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","uncle","cousins","result","leafDocumentFromDate","found","dateFromLeafDocument","earliestSubfolder","folderFetcher","requested","force","kids","folderStore","Error","$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 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\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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"}
|
|
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","requested","Error","message","uncle","cousins","result","leafDocumentFromDate","found","dateFromLeafDocument","earliestSubfolder","folderFetcher","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 delete store.fetcher.requested[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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"}
|