solid-ui 2.4.32 → 2.4.33-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/LICENSE.md +0 -0
  2. package/README.md +0 -0
  3. package/dist/{670.solid-ui.min.js → 320.solid-ui.min.js} +1 -1
  4. package/dist/376.solid-ui.min.js +3 -0
  5. package/dist/{805.solid-ui.min.js.LICENSE.txt → 376.solid-ui.min.js.LICENSE.txt} +0 -0
  6. package/dist/376.solid-ui.min.js.map +1 -0
  7. package/dist/_2b19.solid-ui.js +0 -0
  8. package/dist/_2b19.solid-ui.js.map +1 -1
  9. package/dist/index.html +0 -0
  10. package/dist/solid-ui.js +2300 -1562
  11. package/dist/solid-ui.js.map +1 -1
  12. package/dist/solid-ui.min.js +1 -1
  13. package/dist/solid-ui.min.js.LICENSE.txt +0 -0
  14. package/dist/solid-ui.min.js.map +1 -1
  15. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +1 -1
  16. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +1 -1
  17. package/lib/acl/access-controller.d.ts +0 -0
  18. package/lib/acl/access-controller.d.ts.map +0 -0
  19. package/lib/acl/access-controller.js +0 -0
  20. package/lib/acl/access-controller.js.map +0 -0
  21. package/lib/acl/access-groups.d.ts +0 -0
  22. package/lib/acl/access-groups.d.ts.map +0 -0
  23. package/lib/acl/access-groups.js +0 -0
  24. package/lib/acl/access-groups.js.map +0 -0
  25. package/lib/acl/acl-control.d.ts +0 -0
  26. package/lib/acl/acl-control.d.ts.map +0 -0
  27. package/lib/acl/acl-control.js +0 -0
  28. package/lib/acl/acl-control.js.map +0 -0
  29. package/lib/acl/acl.d.ts +0 -0
  30. package/lib/acl/acl.d.ts.map +0 -0
  31. package/lib/acl/acl.js +0 -0
  32. package/lib/acl/acl.js.map +0 -0
  33. package/lib/acl/add-agent-buttons.d.ts +0 -0
  34. package/lib/acl/add-agent-buttons.d.ts.map +0 -0
  35. package/lib/acl/add-agent-buttons.js +0 -0
  36. package/lib/acl/add-agent-buttons.js.map +0 -0
  37. package/lib/acl/index.d.ts +0 -0
  38. package/lib/acl/index.d.ts.map +0 -0
  39. package/lib/acl/index.js +0 -0
  40. package/lib/acl/index.js.map +0 -0
  41. package/lib/acl/types.d.ts +0 -0
  42. package/lib/acl/types.d.ts.map +0 -0
  43. package/lib/acl/types.js +0 -0
  44. package/lib/acl/types.js.map +0 -0
  45. package/lib/chat/bookmarks.js +7 -42
  46. package/lib/chat/bookmarks.js.map +1 -1
  47. package/lib/chat/chatLogic.js +226 -101
  48. package/lib/chat/chatLogic.js.map +1 -1
  49. package/lib/chat/dateFolder.js +139 -136
  50. package/lib/chat/dateFolder.js.map +1 -1
  51. package/lib/chat/infinite.js +618 -432
  52. package/lib/chat/infinite.js.map +1 -1
  53. package/lib/chat/keys.d.ts +0 -0
  54. package/lib/chat/keys.d.ts.map +0 -0
  55. package/lib/chat/keys.js +3 -3
  56. package/lib/chat/keys.js.map +1 -1
  57. package/lib/chat/message.js +323 -191
  58. package/lib/chat/message.js.map +1 -1
  59. package/lib/chat/messageTools.js +459 -276
  60. package/lib/chat/messageTools.js.map +1 -1
  61. package/lib/chat/signature.d.ts +0 -0
  62. package/lib/chat/signature.d.ts.map +0 -0
  63. package/lib/chat/signature.js +0 -0
  64. package/lib/chat/signature.js.map +0 -0
  65. package/lib/chat/thread.js +299 -208
  66. package/lib/chat/thread.js.map +1 -1
  67. package/lib/create/create.d.ts +0 -0
  68. package/lib/create/create.d.ts.map +0 -0
  69. package/lib/create/create.js +0 -0
  70. package/lib/create/create.js.map +0 -0
  71. package/lib/create/index.d.ts +0 -0
  72. package/lib/create/index.d.ts.map +0 -0
  73. package/lib/create/index.js +0 -0
  74. package/lib/create/index.js.map +0 -0
  75. package/lib/create/types.d.ts +0 -0
  76. package/lib/create/types.d.ts.map +0 -0
  77. package/lib/create/types.js +0 -0
  78. package/lib/create/types.js.map +0 -0
  79. package/lib/debug.d.ts +0 -0
  80. package/lib/debug.d.ts.map +0 -0
  81. package/lib/debug.js +0 -0
  82. package/lib/debug.js.map +0 -0
  83. package/lib/folders.js +0 -0
  84. package/lib/folders.js.map +0 -0
  85. package/lib/footer/index.d.ts +0 -0
  86. package/lib/footer/index.d.ts.map +0 -0
  87. package/lib/footer/index.js +0 -0
  88. package/lib/footer/index.js.map +0 -0
  89. package/lib/header/empty-profile.d.ts +0 -0
  90. package/lib/header/empty-profile.d.ts.map +0 -0
  91. package/lib/header/empty-profile.js +0 -0
  92. package/lib/header/empty-profile.js.map +0 -0
  93. package/lib/header/index.d.ts +0 -0
  94. package/lib/header/index.d.ts.map +0 -0
  95. package/lib/header/index.js +0 -0
  96. package/lib/header/index.js.map +0 -0
  97. package/lib/iconBase.d.ts +0 -0
  98. package/lib/iconBase.d.ts.map +0 -0
  99. package/lib/iconBase.js +0 -0
  100. package/lib/iconBase.js.map +0 -0
  101. package/lib/icons/solid_logo.d.ts +0 -0
  102. package/lib/icons/solid_logo.d.ts.map +0 -0
  103. package/lib/icons/solid_logo.js +0 -0
  104. package/lib/icons/solid_logo.js.map +0 -0
  105. package/lib/index.d.ts +0 -0
  106. package/lib/index.d.ts.map +0 -0
  107. package/lib/index.js +0 -0
  108. package/lib/index.js.map +0 -0
  109. package/lib/log.d.ts +0 -0
  110. package/lib/log.d.ts.map +0 -0
  111. package/lib/log.js +0 -0
  112. package/lib/log.js.map +0 -0
  113. package/lib/login/login.d.ts +0 -0
  114. package/lib/login/login.d.ts.map +0 -0
  115. package/lib/login/login.js +0 -0
  116. package/lib/login/login.js.map +0 -0
  117. package/lib/matrix/index.d.ts +0 -0
  118. package/lib/matrix/index.d.ts.map +0 -0
  119. package/lib/matrix/index.js +0 -0
  120. package/lib/matrix/index.js.map +0 -0
  121. package/lib/matrix/matrix.d.ts +0 -0
  122. package/lib/matrix/matrix.d.ts.map +0 -0
  123. package/lib/matrix/matrix.js +0 -0
  124. package/lib/matrix/matrix.js.map +0 -0
  125. package/lib/matrix/types.d.ts +0 -0
  126. package/lib/matrix/types.d.ts.map +0 -0
  127. package/lib/matrix/types.js +0 -0
  128. package/lib/matrix/types.js.map +0 -0
  129. package/lib/media/index.d.ts +0 -0
  130. package/lib/media/index.d.ts.map +0 -0
  131. package/lib/media/index.js +0 -0
  132. package/lib/media/index.js.map +0 -0
  133. package/lib/media/media-capture.d.ts +0 -0
  134. package/lib/media/media-capture.d.ts.map +0 -0
  135. package/lib/media/media-capture.js +0 -0
  136. package/lib/media/media-capture.js.map +0 -0
  137. package/lib/messageArea.js +0 -0
  138. package/lib/messageArea.js.map +0 -0
  139. package/lib/noun_Camera_1618446_000000.js +0 -0
  140. package/lib/noun_Camera_1618446_000000.js.map +0 -0
  141. package/lib/ns.js +0 -0
  142. package/lib/ns.js.map +0 -0
  143. package/lib/pad.d.ts +0 -0
  144. package/lib/pad.d.ts.map +0 -0
  145. package/lib/pad.js +6 -8
  146. package/lib/pad.js.map +1 -1
  147. package/lib/participation.d.ts +0 -0
  148. package/lib/participation.d.ts.map +0 -0
  149. package/lib/participation.js +5 -6
  150. package/lib/participation.js.map +1 -1
  151. package/lib/preferences.js +4 -0
  152. package/lib/preferences.js.map +1 -1
  153. package/lib/signup/config-default.js +0 -0
  154. package/lib/signup/config-default.js.map +0 -0
  155. package/lib/signup/signup.js +0 -0
  156. package/lib/signup/signup.js.map +0 -0
  157. package/lib/stories/decorators.js +0 -0
  158. package/lib/stories/decorators.js.map +0 -0
  159. package/lib/style.js +0 -0
  160. package/lib/style.js.map +0 -0
  161. package/lib/styleConstants.js +0 -0
  162. package/lib/styleConstants.js.map +0 -0
  163. package/lib/style_multiSelect.js +0 -0
  164. package/lib/style_multiSelect.js.map +0 -0
  165. package/lib/table.js +0 -0
  166. package/lib/table.js.map +0 -0
  167. package/lib/tabs.d.ts +0 -0
  168. package/lib/tabs.d.ts.map +0 -0
  169. package/lib/tabs.js +7 -10
  170. package/lib/tabs.js.map +1 -1
  171. package/lib/typings.d.js +0 -0
  172. package/lib/typings.d.js.map +0 -0
  173. package/lib/utils/headerFooterHelpers.d.ts +0 -0
  174. package/lib/utils/headerFooterHelpers.d.ts.map +0 -0
  175. package/lib/utils/headerFooterHelpers.js +0 -0
  176. package/lib/utils/headerFooterHelpers.js.map +0 -0
  177. package/lib/utils/index.js +0 -0
  178. package/lib/utils/index.js.map +0 -0
  179. package/lib/utils/keyHelpers/accessData.d.ts +2 -2
  180. package/lib/utils/keyHelpers/accessData.d.ts.map +1 -1
  181. package/lib/utils/keyHelpers/accessData.js +59 -115
  182. package/lib/utils/keyHelpers/accessData.js.map +1 -1
  183. package/lib/utils/keyHelpers/acl.d.ts +0 -0
  184. package/lib/utils/keyHelpers/acl.d.ts.map +0 -0
  185. package/lib/utils/keyHelpers/acl.js +14 -14
  186. package/lib/utils/keyHelpers/acl.js.map +1 -1
  187. package/lib/utils/keyHelpers/otherHelpers.d.ts +3 -0
  188. package/lib/utils/keyHelpers/otherHelpers.d.ts.map +1 -0
  189. package/lib/utils/keyHelpers/otherHelpers.js +22 -0
  190. package/lib/utils/keyHelpers/otherHelpers.js.map +1 -0
  191. package/lib/utils/label.d.ts +0 -0
  192. package/lib/utils/label.d.ts.map +0 -0
  193. package/lib/utils/label.js +0 -0
  194. package/lib/utils/label.js.map +0 -0
  195. package/lib/versionInfo.d.ts +17 -10
  196. package/lib/versionInfo.d.ts.map +1 -1
  197. package/lib/versionInfo.js +24 -17
  198. package/lib/versionInfo.js.map +1 -1
  199. package/lib/widgets/buttons/iconLinks.d.ts +0 -0
  200. package/lib/widgets/buttons/iconLinks.d.ts.map +0 -0
  201. package/lib/widgets/buttons/iconLinks.js +0 -0
  202. package/lib/widgets/buttons/iconLinks.js.map +0 -0
  203. package/lib/widgets/buttons.d.ts +0 -0
  204. package/lib/widgets/buttons.d.ts.map +0 -0
  205. package/lib/widgets/buttons.js +0 -0
  206. package/lib/widgets/buttons.js.map +0 -0
  207. package/lib/widgets/dragAndDrop.js +0 -0
  208. package/lib/widgets/dragAndDrop.js.map +0 -0
  209. package/lib/widgets/error.d.ts +0 -0
  210. package/lib/widgets/error.d.ts.map +0 -0
  211. package/lib/widgets/error.js +0 -0
  212. package/lib/widgets/error.js.map +0 -0
  213. package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
  214. package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
  215. package/lib/widgets/forms/autocomplete/autocompleteBar.js +0 -0
  216. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +0 -0
  217. package/lib/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
  218. package/lib/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
  219. package/lib/widgets/forms/autocomplete/autocompleteField.js +0 -0
  220. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +0 -0
  221. package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
  222. package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
  223. package/lib/widgets/forms/autocomplete/autocompletePicker.js +0 -0
  224. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +0 -0
  225. package/lib/widgets/forms/autocomplete/language.d.ts +0 -0
  226. package/lib/widgets/forms/autocomplete/language.d.ts.map +0 -0
  227. package/lib/widgets/forms/autocomplete/language.js +0 -0
  228. package/lib/widgets/forms/autocomplete/language.js.map +0 -0
  229. package/lib/widgets/forms/autocomplete/publicData.d.ts +0 -0
  230. package/lib/widgets/forms/autocomplete/publicData.d.ts.map +0 -0
  231. package/lib/widgets/forms/autocomplete/publicData.js +0 -0
  232. package/lib/widgets/forms/autocomplete/publicData.js.map +0 -0
  233. package/lib/widgets/forms/basic.d.ts +0 -0
  234. package/lib/widgets/forms/basic.d.ts.map +0 -0
  235. package/lib/widgets/forms/basic.js +0 -0
  236. package/lib/widgets/forms/basic.js.map +0 -0
  237. package/lib/widgets/forms/comment.d.ts +0 -0
  238. package/lib/widgets/forms/comment.d.ts.map +0 -0
  239. package/lib/widgets/forms/comment.js +0 -0
  240. package/lib/widgets/forms/comment.js.map +0 -0
  241. package/lib/widgets/forms/fieldFunction.d.ts +0 -0
  242. package/lib/widgets/forms/fieldFunction.d.ts.map +0 -0
  243. package/lib/widgets/forms/fieldFunction.js +0 -0
  244. package/lib/widgets/forms/fieldFunction.js.map +0 -0
  245. package/lib/widgets/forms/fieldParams.d.ts +0 -0
  246. package/lib/widgets/forms/fieldParams.d.ts.map +0 -0
  247. package/lib/widgets/forms/fieldParams.js +0 -0
  248. package/lib/widgets/forms/fieldParams.js.map +0 -0
  249. package/lib/widgets/forms/formStyle.d.ts +0 -0
  250. package/lib/widgets/forms/formStyle.d.ts.map +0 -0
  251. package/lib/widgets/forms/formStyle.js +0 -0
  252. package/lib/widgets/forms/formStyle.js.map +0 -0
  253. package/lib/widgets/forms.js +0 -0
  254. package/lib/widgets/forms.js.map +0 -0
  255. package/lib/widgets/index.js +0 -0
  256. package/lib/widgets/index.js.map +0 -0
  257. package/lib/widgets/multiSelect.js +0 -0
  258. package/lib/widgets/multiSelect.js.map +0 -0
  259. package/lib/widgets/peoplePicker.js +0 -0
  260. package/lib/widgets/peoplePicker.js.map +0 -0
  261. package/lib/widgets/widgetHelpers.d.ts +0 -0
  262. package/lib/widgets/widgetHelpers.d.ts.map +0 -0
  263. package/lib/widgets/widgetHelpers.js +0 -0
  264. package/lib/widgets/widgetHelpers.js.map +0 -0
  265. package/package.json +7 -7
  266. package/dist/805.solid-ui.min.js +0 -3
  267. package/dist/805.solid-ui.min.js.map +0 -1
@@ -6,10 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.DateFolder = void 0;
9
+ exports.emptyLeaf = emptyLeaf;
9
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
14
  var debug = _interopRequireWildcard(require("../debug"));
14
15
  var _solidLogic = require("solid-logic");
15
16
  var ns = _interopRequireWildcard(require("../ns"));
@@ -22,9 +23,29 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
22
23
  *
23
24
  */
24
25
  // pull in first avoid cross-refs
26
+ function emptyLeaf(_x) {
27
+ return _emptyLeaf.apply(this, arguments);
28
+ }
25
29
  /**
26
30
  * Track back through the YYYY/MM/DD tree to find the previous/next day
27
31
  */
32
+ function _emptyLeaf() {
33
+ _emptyLeaf = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(leafDocument) {
34
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
35
+ while (1) switch (_context5.prev = _context5.next) {
36
+ case 0:
37
+ _context5.next = 2;
38
+ return _solidLogic.store.fetcher.load(leafDocument);
39
+ case 2:
40
+ return _context5.abrupt("return", !(_solidLogic.store.statementsMatching(null, ns.dct('created'), null, leafDocument).length > 0));
41
+ case 3:
42
+ case "end":
43
+ return _context5.stop();
44
+ }
45
+ }, _callee5);
46
+ }));
47
+ return _emptyLeaf.apply(this, arguments);
48
+ }
28
49
  var DateFolder = exports.DateFolder = /*#__PURE__*/function () {
29
50
  function DateFolder(rootThing, leafFileName, membershipProperty) {
30
51
  (0, _classCallCheck2["default"])(this, DateFolder);
@@ -57,67 +78,28 @@ var DateFolder = exports.DateFolder = /*#__PURE__*/function () {
57
78
  // let date = new Date(str + 'Z') // GMT - but fails in FF - invalid format :-(
58
79
  var date = new Date(str); // not explicitly UTC but is assumed so in spec
59
80
  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse
60
- debug.log('Date for ' + doc + ':' + date.toISOString());
81
+ // debug.log('Date for ' + doc + ':' + date.toISOString())
61
82
  return date;
62
83
  }
63
84
  }, {
64
85
  key: "loadPrevious",
65
86
  value: function () {
66
- var _loadPrevious = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(date, backwards) {
67
- var thisDateFolder, previousPeriod, _previousPeriod, folder, found, doc;
68
- return _regenerator["default"].wrap(function _callee3$(_context3) {
69
- while (1) switch (_context3.prev = _context3.next) {
87
+ var _loadPrevious = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(date, backwards) {
88
+ var previousPeriod, _previousPeriod, folder, found, leafDocument, nextDate;
89
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
90
+ while (1) switch (_context2.prev = _context2.next) {
70
91
  case 0:
71
92
  _previousPeriod = function _previousPeriod3() {
72
- _previousPeriod = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(file, level) {
73
- var younger, suitable, lastNonEmpty, _lastNonEmpty, parent, siblings, _folder, uncle, cousins, result;
74
- return _regenerator["default"].wrap(function _callee2$(_context2) {
75
- while (1) switch (_context2.prev = _context2.next) {
93
+ _previousPeriod = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(file, level) {
94
+ var younger, suitable, lastOrFirst, parent, siblings, _folder, uncle, cousins, result;
95
+ return _regenerator["default"].wrap(function _callee$(_context) {
96
+ while (1) switch (_context.prev = _context.next) {
76
97
  case 0:
77
- _lastNonEmpty = function _lastNonEmpty3() {
78
- _lastNonEmpty = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(siblings) {
79
- var _folder2, leafDocument;
80
- return _regenerator["default"].wrap(function _callee$(_context) {
81
- while (1) switch (_context.prev = _context.next) {
82
- case 0:
83
- siblings = siblings.filter(suitable);
84
- siblings.sort(); // chronological order
85
- if (!backwards) siblings.reverse();
86
- if (!(level !== 3)) {
87
- _context.next = 5;
88
- break;
89
- }
90
- return _context.abrupt("return", siblings.pop());
91
- case 5:
92
- if (!siblings.length) {
93
- _context.next = 14;
94
- break;
95
- }
96
- _folder2 = siblings.pop();
97
- leafDocument = _solidLogic.store.sym(_folder2.uri + thisDateFolder.leafFileName);
98
- _context.next = 10;
99
- return _solidLogic.store.fetcher.load(leafDocument);
100
- case 10:
101
- if (!(_solidLogic.store.statementsMatching(null, ns.dct('created'), null, leafDocument).length > 0)) {
102
- _context.next = 12;
103
- break;
104
- }
105
- return _context.abrupt("return", _folder2);
106
- case 12:
107
- _context.next = 5;
108
- break;
109
- case 14:
110
- return _context.abrupt("return", null);
111
- case 15:
112
- case "end":
113
- return _context.stop();
114
- }
115
- }, _callee);
116
- }));
117
- return _lastNonEmpty.apply(this, arguments);
118
- };
119
- lastNonEmpty = function _lastNonEmpty2(_x5) {
120
- return _lastNonEmpty.apply(this, arguments);
98
+ lastOrFirst = function _lastOrFirst(siblings) {
99
+ siblings = siblings.filter(suitable);
100
+ siblings.sort(); // chronological order
101
+ if (!backwards) siblings.reverse();
102
+ return siblings.pop(); // date folder
121
103
  };
122
104
  suitable = function _suitable(x) {
123
105
  var tail = x.uri.slice(0, -1).split('/').slice(-1)[0];
@@ -127,98 +109,117 @@ var DateFolder = exports.DateFolder = /*#__PURE__*/function () {
127
109
  younger = function _younger(x) {
128
110
  if (backwards ? x.uri >= file.uri : x.uri <= file.uri) return false; // later than we want or same -- looking for different
129
111
  return true;
130
- }; // debug.log(' previousPeriod level' + level + ' file ' + file)
112
+ };
113
+ // debug.log(' previousPeriod level' + level + ' file ' + file)
131
114
  parent = file.dir();
132
- _context2.prev = 5;
133
- _context2.next = 8;
115
+ _context.prev = 4;
116
+ _context.next = 7;
134
117
  return _solidLogic.store.fetcher.load(parent);
135
- case 8:
118
+ case 7:
136
119
  siblings = _solidLogic.store.each(parent, ns.ldp('contains'));
137
120
  siblings = siblings.filter(younger);
138
- _context2.next = 12;
139
- return lastNonEmpty(siblings);
140
- case 12:
141
- _folder = _context2.sent;
121
+ _folder = lastOrFirst(siblings);
142
122
  if (!_folder) {
143
- _context2.next = 15;
123
+ _context.next = 12;
144
124
  break;
145
125
  }
146
- return _context2.abrupt("return", _folder);
147
- case 15:
148
- _context2.next = 25;
126
+ return _context.abrupt("return", _folder);
127
+ case 12:
128
+ _context.next = 22;
149
129
  break;
150
- case 17:
151
- _context2.prev = 17;
152
- _context2.t0 = _context2["catch"](5);
153
- if (!(_context2.t0.response && _context2.t0.response.status && _context2.t0.response.status === 404)) {
154
- _context2.next = 23;
130
+ case 14:
131
+ _context.prev = 14;
132
+ _context.t0 = _context["catch"](4);
133
+ if (!(_context.t0.response && _context.t0.response.status && _context.t0.response.status === 404)) {
134
+ _context.next = 20;
155
135
  break;
156
136
  }
157
137
  debug.log('Error 404 for chat parent file ' + parent);
158
- _context2.next = 25;
138
+ _context.next = 22;
159
139
  break;
160
- case 23:
140
+ case 20:
161
141
  debug.log('*** Error NON 404 for chat parent file ' + parent);
162
142
  // statusTR.appendChild(widgets.errorMessageBlock(dom, err, 'pink'))
163
- throw new Error("*** ".concat(_context2.t0.message, " for chat folder ").concat(parent));
164
- case 25:
143
+ throw new Error("*** ".concat(_context.t0.message, " for chat folder ").concat(parent));
144
+ case 22:
165
145
  if (!(level === 0)) {
166
- _context2.next = 27;
146
+ _context.next = 24;
167
147
  break;
168
148
  }
169
- return _context2.abrupt("return", null);
170
- case 27:
171
- _context2.next = 29;
149
+ return _context.abrupt("return", null);
150
+ case 24:
151
+ _context.next = 26;
172
152
  return previousPeriod(parent, level - 1);
173
- case 29:
174
- uncle = _context2.sent;
153
+ case 26:
154
+ uncle = _context.sent;
175
155
  if (uncle) {
176
- _context2.next = 32;
156
+ _context.next = 29;
177
157
  break;
178
158
  }
179
- return _context2.abrupt("return", null);
180
- case 32:
181
- _context2.next = 34;
159
+ return _context.abrupt("return", null);
160
+ case 29:
161
+ _context.next = 31;
182
162
  return _solidLogic.store.fetcher.load(uncle);
183
- case 34:
163
+ case 31:
184
164
  cousins = _solidLogic.store.each(uncle, ns.ldp('contains'));
185
- _context2.next = 37;
186
- return lastNonEmpty(cousins);
187
- case 37:
188
- result = _context2.sent;
189
- return _context2.abrupt("return", result);
190
- case 39:
165
+ result = lastOrFirst(cousins); // debug.log(' previousPeriod: returning cousins at level ' + level, cousins)
166
+ // debug.log(' previousPeriod: returning result at level ' + level, result)
167
+ return _context.abrupt("return", result);
168
+ case 34:
191
169
  case "end":
192
- return _context2.stop();
170
+ return _context.stop();
193
171
  }
194
- }, _callee2, null, [[5, 17]]);
172
+ }, _callee, null, [[4, 14]]);
195
173
  }));
196
174
  return _previousPeriod.apply(this, arguments);
197
175
  };
198
- previousPeriod = function _previousPeriod2(_x3, _x4) {
176
+ previousPeriod = function _previousPeriod2(_x4, _x5) {
199
177
  return _previousPeriod.apply(this, arguments);
200
- };
201
- thisDateFolder = this; // previousPeriod
178
+ }; // previousPeriod
202
179
  folder = this.leafDocumentFromDate(date).dir();
203
- _context3.next = 6;
180
+ case 3:
181
+ if (!true) {
182
+ _context2.next = 23;
183
+ break;
184
+ }
185
+ _context2.next = 6;
204
186
  return previousPeriod(folder, 3);
205
187
  case 6:
206
- found = _context3.sent;
188
+ found = _context2.sent;
207
189
  if (!found) {
208
- _context3.next = 10;
190
+ _context2.next = 20;
191
+ break;
192
+ }
193
+ leafDocument = _solidLogic.store.sym(found.uri + this.leafFileName);
194
+ nextDate = this.dateFromLeafDocument(leafDocument);
195
+ _context2.next = 12;
196
+ return emptyLeaf(leafDocument);
197
+ case 12:
198
+ if (_context2.sent) {
199
+ _context2.next = 16;
209
200
  break;
210
201
  }
211
- doc = _solidLogic.store.sym(found.uri + this.leafFileName);
212
- return _context3.abrupt("return", this.dateFromLeafDocument(doc));
213
- case 10:
214
- return _context3.abrupt("return", null);
215
- case 11:
202
+ return _context2.abrupt("return", nextDate);
203
+ case 16:
204
+ // debug.log(' loadPrevious: skipping empty ' + leafDocument)
205
+ date = nextDate;
206
+ folder = this.leafDocumentFromDate(date).dir();
207
+ // debug.log(' loadPrevious: moved back to ' + folder)
208
+ case 18:
209
+ _context2.next = 21;
210
+ break;
211
+ case 20:
212
+ return _context2.abrupt("return", null);
213
+ case 21:
214
+ _context2.next = 3;
215
+ break;
216
+ case 23:
216
217
  case "end":
217
- return _context3.stop();
218
+ return _context2.stop();
218
219
  }
219
- }, _callee3, this);
220
+ }, _callee2, this);
220
221
  }));
221
- function loadPrevious(_x, _x2) {
222
+ function loadPrevious(_x2, _x3) {
222
223
  return _loadPrevious.apply(this, arguments);
223
224
  }
224
225
  return loadPrevious;
@@ -226,49 +227,49 @@ var DateFolder = exports.DateFolder = /*#__PURE__*/function () {
226
227
  }, {
227
228
  key: "firstLeaf",
228
229
  value: function () {
229
- var _firstLeaf = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(backwards) {
230
+ var _firstLeaf = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(backwards) {
230
231
  var folderStore, folderFetcher, earliestSubfolder, _earliestSubfolder, y, month, d, leafDocument, leafObjects, msg, sortMe;
231
- return _regenerator["default"].wrap(function _callee5$(_context5) {
232
- while (1) switch (_context5.prev = _context5.next) {
232
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
233
+ while (1) switch (_context4.prev = _context4.next) {
233
234
  case 0:
234
235
  _earliestSubfolder = function _earliestSubfolder3() {
235
- _earliestSubfolder = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(parent) {
236
+ _earliestSubfolder = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(parent) {
236
237
  var suitable, kids;
237
- return _regenerator["default"].wrap(function _callee4$(_context4) {
238
- while (1) switch (_context4.prev = _context4.next) {
238
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
239
+ while (1) switch (_context3.prev = _context3.next) {
239
240
  case 0:
240
241
  suitable = function _suitable2(x) {
241
242
  var tail = x.uri.slice(0, -1).split('/').slice(-1)[0];
242
243
  if (!'0123456789'.includes(tail[0])) return false; // not numeric
243
244
  return true;
244
245
  };
245
- debug.log(' parent ' + parent);
246
+ // debug.log(' parent ' + parent)
246
247
  delete folderFetcher.requested[parent.uri];
247
248
  // try {
248
- _context4.next = 5;
249
+ _context3.next = 4;
249
250
  return folderFetcher.load(parent, {
250
251
  force: true
251
252
  });
252
- case 5:
253
+ case 4:
253
254
  // Force fetch as will have changed
254
255
  // }catch (err) {
255
256
  // }
256
257
  kids = folderStore.each(parent, ns.ldp('contains'));
257
258
  kids = kids.filter(suitable);
258
259
  if (!(kids.length === 0)) {
259
- _context4.next = 9;
260
+ _context3.next = 8;
260
261
  break;
261
262
  }
262
263
  throw new Error(' @@@ No children to parent2 ' + parent);
263
- case 9:
264
+ case 8:
264
265
  kids.sort();
265
266
  if (backwards) kids.reverse();
266
- return _context4.abrupt("return", kids[0]);
267
- case 12:
267
+ return _context3.abrupt("return", kids[0]);
268
+ case 11:
268
269
  case "end":
269
- return _context4.stop();
270
+ return _context3.stop();
270
271
  }
271
- }, _callee4);
272
+ }, _callee3);
272
273
  }));
273
274
  return _earliestSubfolder.apply(this, arguments);
274
275
  };
@@ -278,25 +279,25 @@ var DateFolder = exports.DateFolder = /*#__PURE__*/function () {
278
279
  // backwards -> last leafObject
279
280
  folderStore = $rdf.graph();
280
281
  folderFetcher = new $rdf.Fetcher(folderStore);
281
- _context5.next = 6;
282
+ _context4.next = 6;
282
283
  return earliestSubfolder(this.root.dir());
283
284
  case 6:
284
- y = _context5.sent;
285
- _context5.next = 9;
285
+ y = _context4.sent;
286
+ _context4.next = 9;
286
287
  return earliestSubfolder(y);
287
288
  case 9:
288
- month = _context5.sent;
289
- _context5.next = 12;
289
+ month = _context4.sent;
290
+ _context4.next = 12;
290
291
  return earliestSubfolder(month);
291
292
  case 12:
292
- d = _context5.sent;
293
+ d = _context4.sent;
293
294
  leafDocument = $rdf.sym(d.uri + 'chat.ttl');
294
- _context5.next = 16;
295
+ _context4.next = 16;
295
296
  return folderFetcher.load(leafDocument);
296
297
  case 16:
297
298
  leafObjects = folderStore.each(this.root, this.membershipProperty, null, leafDocument);
298
299
  if (!(leafObjects.length === 0)) {
299
- _context5.next = 21;
300
+ _context4.next = 21;
300
301
  break;
301
302
  }
302
303
  msg = ' INCONSISTENCY -- no chat leafObject in file ' + leafDocument;
@@ -308,13 +309,15 @@ var DateFolder = exports.DateFolder = /*#__PURE__*/function () {
308
309
  });
309
310
  sortMe.sort();
310
311
  if (backwards) sortMe.reverse();
311
- debug.log((backwards ? 'Latest' : 'Earliest') + ' leafObject is ' + sortMe[0][1]);
312
- return _context5.abrupt("return", sortMe[0][1]);
313
- case 26:
312
+ /* debug.log(
313
+ (backwards ? 'Latest' : 'Earliest') + ' leafObject is ' + sortMe[0][1]
314
+ ) */
315
+ return _context4.abrupt("return", sortMe[0][1]);
316
+ case 25:
314
317
  case "end":
315
- return _context5.stop();
318
+ return _context4.stop();
316
319
  }
317
- }, _callee5, this);
320
+ }, _callee4, this);
318
321
  }));
319
322
  function firstLeaf(_x6) {
320
323
  return _firstLeaf.apply(this, arguments);
@@ -1 +1 @@
1
- {"version":3,"file":"dateFolder.js","names":["debug","_interopRequireWildcard","require","_solidLogic","ns","$rdf","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","DateFolder","exports","rootThing","leafFileName","membershipProperty","_classCallCheck2","root","rootFolder","dir","wf","_createClass2","key","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"],"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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"}
1
+ {"version":3,"file":"dateFolder.js","names":["debug","_interopRequireWildcard","require","_solidLogic","ns","$rdf","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","emptyLeaf","_x","_emptyLeaf","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee5","leafDocument","wrap","_callee5$","_context5","prev","next","store","fetcher","load","abrupt","statementsMatching","dct","length","stop","DateFolder","exports","rootThing","leafFileName","membershipProperty","_classCallCheck2","root","rootFolder","dir","wf","_createClass2","key","value","leafDocumentFromDate","date","isoDate","toISOString","path","split","replace","uri","sym","dateFromLeafDocument","doc","head","str","slice","Date","_loadPrevious","_callee2","backwards","previousPeriod","_previousPeriod","folder","found","nextDate","_callee2$","_context2","_previousPeriod3","_callee","file","level","younger","suitable","lastOrFirst","parent","siblings","_folder","uncle","cousins","result","_callee$","_context","_lastOrFirst","filter","sort","reverse","pop","_suitable","x","tail","includes","_younger","each","ldp","t0","response","status","log","Error","concat","message","sent","_previousPeriod2","_x4","_x5","loadPrevious","_x2","_x3","_firstLeaf","_callee4","folderStore","folderFetcher","earliestSubfolder","_earliestSubfolder","y","month","d","leafObjects","msg","sortMe","_callee4$","_context4","_earliestSubfolder3","_callee3","kids","_callee3$","_context3","_suitable2","requested","force","_earliestSubfolder2","_x7","graph","Fetcher","trace","map","leafObject","any","firstLeaf","_x6"],"sources":["../../src/chat/dateFolder.js"],"sourcesContent":["/**\n * Contains the [[DateFolder]] class\n * This tracks data stored in dated folders and sub-folders\n *\n */\nimport * as debug from '../debug'\nimport { store } from 'solid-logic'\nimport * as ns from '../ns'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\n\nexport async function emptyLeaf (leafDocument) {\n await store.fetcher.load(leafDocument)\n // files can have seealso links. skip ones with no leafObjects with a date\n return !(\n store.statementsMatching(null, ns.dct('created'), null, leafDocument)\n .length > 0\n )\n}\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 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 function lastOrFirst (siblings) {\n siblings = siblings.filter(suitable)\n siblings.sort() // chronological order\n if (!backwards) siblings.reverse()\n return siblings.pop() // date folder\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 = lastOrFirst(siblings)\n if (folder) return folder\n // debug.log(' parent no suitable offspring ' + parent)\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 if (level === 0) {\n // debug.log('loadPrevious: returning as level is zero')\n return null // 3:day, 2:month, 1: year 0: no\n }\n\n const uncle = await previousPeriod(parent, level - 1)\n if (!uncle) {\n // debug.log(' previousPeriod: nothing left before. ', parent)\n return null // reached first ever\n }\n await store.fetcher.load(uncle)\n const cousins = store.each(uncle, ns.ldp('contains'))\n const result = lastOrFirst(cousins)\n // debug.log(' previousPeriod: returning cousins at level ' + level, cousins)\n // debug.log(' previousPeriod: returning result at level ' + level, result)\n\n return result\n } // previousPeriod\n\n let folder = this.leafDocumentFromDate(date).dir()\n while (true) {\n const found = await previousPeriod(folder, 3)\n if (found) {\n const leafDocument = store.sym(found.uri + this.leafFileName)\n const nextDate = this.dateFromLeafDocument(leafDocument)\n if (!await emptyLeaf(leafDocument)) {\n return nextDate\n } else {\n // debug.log(' loadPrevious: skipping empty ' + leafDocument)\n date = nextDate\n folder = this.leafDocumentFromDate(date).dir()\n // debug.log(' loadPrevious: moved back to ' + folder)\n }\n } else {\n return null // no more left\n }\n }\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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"}