solid-ui 2.4.22-fd0ccabe → 2.4.22-fd705c8d

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 (106) hide show
  1. package/dist/main.js +2059 -1163
  2. package/dist/main.js.map +1 -1
  3. package/lib/acl/access-controller.js +9 -14
  4. package/lib/acl/access-controller.js.map +1 -1
  5. package/lib/acl/access-groups.js +10 -15
  6. package/lib/acl/access-groups.js.map +1 -1
  7. package/lib/acl/acl-control.js +9 -13
  8. package/lib/acl/acl-control.js.map +1 -1
  9. package/lib/acl/acl.js +7 -11
  10. package/lib/acl/acl.js.map +1 -1
  11. package/lib/acl/add-agent-buttons.js +13 -19
  12. package/lib/acl/add-agent-buttons.js.map +1 -1
  13. package/lib/acl/index.js.map +1 -1
  14. package/lib/acl/styles.js.map +1 -1
  15. package/lib/acl/types.js.map +1 -1
  16. package/lib/chat/bookmarks.js +14 -19
  17. package/lib/chat/bookmarks.js.map +1 -1
  18. package/lib/chat/chatLogic.js +9 -15
  19. package/lib/chat/chatLogic.js.map +1 -1
  20. package/lib/chat/dateFolder.js +12 -17
  21. package/lib/chat/dateFolder.js.map +1 -1
  22. package/lib/chat/infinite.js +29 -37
  23. package/lib/chat/infinite.js.map +1 -1
  24. package/lib/chat/message.js +14 -14
  25. package/lib/chat/message.js.map +1 -1
  26. package/lib/chat/messageTools.js +10 -23
  27. package/lib/chat/messageTools.js.map +1 -1
  28. package/lib/chat/thread.js +4 -9
  29. package/lib/chat/thread.js.map +1 -1
  30. package/lib/create/create.js.map +1 -1
  31. package/lib/create/index.js.map +1 -1
  32. package/lib/create/types.js.map +1 -1
  33. package/lib/debug.js.map +1 -1
  34. package/lib/folders.js.map +1 -1
  35. package/lib/footer/index.js +8 -10
  36. package/lib/footer/index.js.map +1 -1
  37. package/lib/footer/styleMap.js.map +1 -1
  38. package/lib/header/empty-profile.js.map +1 -1
  39. package/lib/header/index.js +9 -17
  40. package/lib/header/index.js.map +1 -1
  41. package/lib/header/styleMap.js.map +1 -1
  42. package/lib/iconBase.js.map +1 -1
  43. package/lib/icons/solid_logo.js.map +1 -1
  44. package/lib/index.js.map +1 -1
  45. package/lib/jss/index.js.map +1 -1
  46. package/lib/log.js.map +1 -1
  47. package/lib/login/login.js +21 -63
  48. package/lib/login/login.js.map +1 -1
  49. package/lib/matrix/index.js.map +1 -1
  50. package/lib/matrix/matrix.js.map +1 -1
  51. package/lib/matrix/types.js.map +1 -1
  52. package/lib/media/index.js.map +1 -1
  53. package/lib/media/media-capture.js +4 -20
  54. package/lib/media/media-capture.js.map +1 -1
  55. package/lib/messageArea.js.map +1 -1
  56. package/lib/noun_Camera_1618446_000000.js.map +1 -1
  57. package/lib/ns.js.map +1 -1
  58. package/lib/pad.js.map +1 -1
  59. package/lib/participation.js.map +1 -1
  60. package/lib/preferences.js.map +1 -1
  61. package/lib/signup/config-default.js.map +1 -1
  62. package/lib/signup/signup.js.map +1 -1
  63. package/lib/stories/decorators.js.map +1 -1
  64. package/lib/style.js.map +1 -1
  65. package/lib/style_multiSelect.js +67 -0
  66. package/lib/style_multiSelect.js.map +1 -0
  67. package/lib/table.js.map +1 -1
  68. package/lib/tabs.d.ts +1 -1
  69. package/lib/tabs.d.ts.map +1 -1
  70. package/lib/tabs.js +38 -22
  71. package/lib/tabs.js.map +1 -1
  72. package/lib/typings.d.js.map +1 -1
  73. package/lib/utils/headerFooterHelpers.js +5 -7
  74. package/lib/utils/headerFooterHelpers.js.map +1 -1
  75. package/lib/utils/index.js.map +1 -1
  76. package/lib/utils/label.js +1 -1
  77. package/lib/utils/label.js.map +1 -1
  78. package/lib/versionInfo.js +5 -5
  79. package/lib/versionInfo.js.map +1 -1
  80. package/lib/widgets/buttons/iconLinks.js.map +1 -1
  81. package/lib/widgets/buttons.js.map +1 -1
  82. package/lib/widgets/dragAndDrop.js.map +1 -1
  83. package/lib/widgets/error.js.map +1 -1
  84. package/lib/widgets/forms/autocomplete/autocompleteBar.js +17 -15
  85. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
  86. package/lib/widgets/forms/autocomplete/autocompleteField.js +5 -8
  87. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  88. package/lib/widgets/forms/autocomplete/autocompletePicker.js +21 -19
  89. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  90. package/lib/widgets/forms/autocomplete/language.js +8 -15
  91. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  92. package/lib/widgets/forms/autocomplete/publicData.js +22 -27
  93. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  94. package/lib/widgets/forms/basic.js.map +1 -1
  95. package/lib/widgets/forms/comment.js.map +1 -1
  96. package/lib/widgets/forms/fieldFunction.js.map +1 -1
  97. package/lib/widgets/forms/fieldParams.js.map +1 -1
  98. package/lib/widgets/forms/formStyle.js.map +1 -1
  99. package/lib/widgets/forms.js +504 -203
  100. package/lib/widgets/forms.js.map +1 -1
  101. package/lib/widgets/index.js.map +1 -1
  102. package/lib/widgets/multiSelect.js +784 -0
  103. package/lib/widgets/multiSelect.js.map +1 -0
  104. package/lib/widgets/peoplePicker.js.map +1 -1
  105. package/lib/widgets/widgetHelpers.js.map +1 -1
  106. package/package.json +5 -3
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _typeof = require("@babel/runtime/helpers/typeof");
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
6
 
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
@@ -11,7 +11,7 @@ exports.findBookmarkDocument = findBookmarkDocument;
11
11
  exports.renderBookmarksButton = renderBookmarksButton;
12
12
  exports.toggleBookmark = toggleBookmark;
13
13
 
14
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
14
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
15
 
16
16
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
17
 
@@ -39,15 +39,10 @@ var _login = require("../login/login");
39
39
 
40
40
  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); }
41
41
 
42
- 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; }
42
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(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; }
43
43
 
44
- /**
45
- * Functions related to chat and bookmarks
46
- * @packageDocumentation
47
- */
44
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == (0, _typeof2["default"])(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
48
45
 
49
- /* global alert confirm */
50
- // pull in first avoid cross-refs
51
46
  var UI = {
52
47
  icons: _iconBase.icons,
53
48
  ns: ns,
@@ -129,9 +124,9 @@ function findBookmarkDocument(_x) {
129
124
 
130
125
 
131
126
  function _findBookmarkDocument() {
132
- _findBookmarkDocument = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(userContext) {
127
+ _findBookmarkDocument = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(userContext) {
133
128
  var theClass, fileTail, isPublic, newBookmarkFile;
134
- return _regenerator["default"].wrap(function _callee$(_context) {
129
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
135
130
  while (1) {
136
131
  switch (_context.prev = _context.next) {
137
132
  case 0:
@@ -210,9 +205,9 @@ function addBookmark(_x2, _x3) {
210
205
  }
211
206
 
212
207
  function _addBookmark() {
213
- _addBookmark = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(context, target) {
208
+ _addBookmark = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(context, target) {
214
209
  var title, me, author, bookmarkDoc, bookmark, ins, msg;
215
- return _regenerator["default"].wrap(function _callee2$(_context2) {
210
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
216
211
  while (1) {
217
212
  switch (_context2.prev = _context2.next) {
218
213
  case 0:
@@ -278,9 +273,9 @@ function toggleBookmark(_x4, _x5, _x6) {
278
273
  }
279
274
 
280
275
  function _toggleBookmark() {
281
- _toggleBookmark = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(userContext, target, bookmarkButton) {
276
+ _toggleBookmark = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(userContext, target, bookmarkButton) {
282
277
  var bookmarks, i, bookmark;
283
- return _regenerator["default"].wrap(function _callee3$(_context3) {
278
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
284
279
  while (1) {
285
280
  switch (_context3.prev = _context3.next) {
286
281
  case 0:
@@ -360,17 +355,17 @@ function renderBookmarksButton(_x7, _x8) {
360
355
  }
361
356
 
362
357
  function _renderBookmarksButton() {
363
- _renderBookmarksButton = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(userContext, target) {
358
+ _renderBookmarksButton = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(userContext, target) {
364
359
  var setBookmarkButtonColor, _setBookmarkButtonColor, bookmarkButton;
365
360
 
366
- return _regenerator["default"].wrap(function _callee5$(_context5) {
361
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
367
362
  while (1) {
368
363
  switch (_context5.prev = _context5.next) {
369
364
  case 0:
370
365
  _setBookmarkButtonColor = function _setBookmarkButtonCol2() {
371
- _setBookmarkButtonColor = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(bookmarkButton) {
366
+ _setBookmarkButtonColor = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(bookmarkButton) {
372
367
  var bookmarked;
373
- return _regenerator["default"].wrap(function _callee4$(_context4) {
368
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
374
369
  while (1) {
375
370
  switch (_context4.prev = _context4.next) {
376
371
  case 0:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/chat/bookmarks.js"],"names":["UI","icons","ns","media","pad","rdf","style","utils","widgets","$rdf","BOOK","Namespace","BOOKMARK_ICON","label","dom","window","document","createIfNotExists","doc","Promise","resolve","reject","store","fetcher","load","then","response","debug","log","err","status","webOperation","uri","data","contentType","requested","updatePromise","del","ins","updater","update","ok","errorBody","Error","findBookmarkDocument","userContext","theClass","fileTail","isPublic","instances","length","bookmarkDocument","alert","publicProfile","newBookmarkFile","sym","dir","error","addBookmark","context","target","title","me","authn","currentUser","author","any","foaf","anyValue","sioc","slice","bookmarkDoc","bookmark","newThing","st","dct","Date","msg","toggleBookmark","bookmarkButton","bookmarks","each","confirm","i","connectedStatements","backgroundColor","renderBookmarksButton","setBookmarkButtonColor","bookmarked","buttonStyle","button","iconBase"],"mappings":"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","sourcesContent":["/**\n * Functions related to chat and bookmarks\n * @packageDocumentation\n */\n\n/* global alert confirm */\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\nimport { media } from '../media/index'\nimport * as ns from '../ns'\nimport * as pad from '../pad'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as style from '../style'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\nimport { store, registerInTypeIndex, authn } from 'solid-logic'\nimport { findAppInstances } from '../login/login'\n\nconst UI = { icons, ns, media, pad, rdf, style, utils, widgets }\nconst $rdf = UI.rdf\n\nconst BOOK = $rdf.Namespace('http://www.w3.org/2002/01/bookmark#')\nconst BOOKMARK_ICON = 'noun_45961.svg'\n\nconst label = utils.label\nconst dom = window.document || null\n\n/** Create a resource if it really does not exist\n * Be absolutely sure something does not exist before creating a new empty file\n * as otherwise existing could be deleted.\n * @param doc {NamedNode} - The resource\n */\nfunction createIfNotExists (doc) {\n return new Promise(function (resolve, reject) {\n store.fetcher.load(doc).then(\n response => {\n debug.log('createIfNotExists doc exists, all good ' + doc)\n // store.fetcher.webOperation('HEAD', doc.uri).then(response => {\n resolve(response)\n },\n err => {\n if (err.response.status === 404) {\n debug.log(\n 'createIfNotExists doc does NOT exist, will create... ' + doc\n )\n\n store.fetcher\n .webOperation('PUT', doc.uri, {\n data: '',\n contentType: 'text/turtle'\n })\n .then(\n response => {\n // fetcher.requested[doc.uri] = 'done' // do not need to read ?? but no headers\n delete store.fetcher.requested[doc.uri] // delete cached 404 error\n debug.log('createIfNotExists doc created ok ' + doc)\n resolve(response)\n },\n err => {\n debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + err)\n reject(err)\n }\n )\n } else {\n debug.log(\n 'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err\n )\n reject(err)\n }\n }\n )\n })\n}\n\n// @@@@ use the one in rdflib.js when it is avaiable and delete this\nfunction updatePromise (del, ins) {\n return new Promise(function (resolve, reject) {\n store.updater.update(del, ins, function (uri, ok, errorBody) {\n if (!ok) {\n reject(new Error(errorBody))\n } else {\n resolve()\n }\n }) // callback\n }) // promise\n}\n\n// export findBookmarkDocument,\n\n/* Bookmarking\n */\n/** Find a user's bookmarks\n */\nexport async function findBookmarkDocument (userContext) {\n const theClass = BOOK('Bookmark')\n const fileTail = 'bookmarks.ttl'\n const isPublic = true\n\n await findAppInstances(userContext, theClass, isPublic) // public -- only look for public links\n if (userContext.instances && userContext.instances.length > 0) {\n userContext.bookmarkDocument = userContext.instances[0]\n if (userContext.instances.length > 1) {\n alert('More than one bookmark file! ' + userContext.instances)\n }\n } else {\n if (userContext.publicProfile) {\n // publicProfile or preferencesFile\n const newBookmarkFile = $rdf.sym(\n userContext.publicProfile.dir().uri + fileTail\n )\n try {\n debug.log('Creating new bookmark file ' + newBookmarkFile)\n await createIfNotExists(newBookmarkFile)\n } catch (e) {\n alert.error(\"Can't make fresh bookmark file:\" + e)\n return userContext\n }\n await registerInTypeIndex(\n userContext,\n newBookmarkFile,\n theClass,\n true\n ) // public\n userContext.bookmarkDocument = newBookmarkFile\n } else {\n alert('You seem to have no bookmark file and not even a profile file.')\n }\n }\n return userContext\n}\n\n/** Add a bookmark\n */\n\nasync function addBookmark (context, target) {\n /* like\n @prefix terms: <http://purl.org/dc/terms/>.\n @prefix bookm: <http://www.w3.org/2002/01/bookmark#>.\n @prefix n0: <http://xmlns.com/foaf/0.1/>.\n <> terms:references <#0.5534145389246576>.\n <#0.5534145389246576>\n a bookm:Bookmark;\n terms:created \"2019-01-26T20:26:44.374Z\"^^XML:dateTime;\n terms:title \"Herons\";\n bookm:recalls wiki:Heron;\n n0:maker c:me.\n */\n let title = ''\n const me = authn.currentUser() // If already logged on\n if (!me) throw new Error('Must be logged on to add Bookmark')\n\n const author = store.any(target, ns.foaf('maker'))\n title =\n label(author) + ': ' + store.anyValue(target, ns.sioc('content')).slice(0, 80) // @@ add chat title too?\n const bookmarkDoc = context.bookmarkDocument\n const bookmark = UI.widgets.newThing(bookmarkDoc, title)\n const ins = [\n $rdf.st(bookmarkDoc, UI.ns.dct('references'), bookmark, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.rdf('type'), BOOK('Bookmark'), bookmarkDoc),\n $rdf.st(bookmark, UI.ns.dct('created'), new Date(), bookmarkDoc),\n $rdf.st(bookmark, BOOK('recalls'), target, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.foaf('maker'), me, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.dct('title'), title, bookmarkDoc)\n ]\n try {\n await updatePromise([], ins) // 20190118A\n } catch (e) {\n const msg = 'Making bookmark: ' + e\n alert.error(msg)\n return null\n }\n return bookmark\n}\n\nexport async function toggleBookmark (userContext, target, bookmarkButton) {\n await store.fetcher.load(userContext.bookmarkDocument)\n const bookmarks = store.each(\n null,\n BOOK('recalls'),\n target,\n userContext.bookmarkDocument\n )\n if (bookmarks.length) {\n // delete\n if (!confirm('Delete bookmark on this?' + bookmarks.length)) return\n for (let i = 0; i < bookmarks.length; i++) {\n try {\n await updatePromise(store.connectedStatements(bookmarks[i]), [])\n bookmarkButton.style.backgroundColor = 'white'\n debug.log('Bookmark deleted: ' + bookmarks[i])\n } catch (e) {\n debug.error('Cant delete bookmark:' + e)\n alert('Cant delete bookmark:' + e)\n }\n }\n } else {\n const bookmark = await addBookmark(userContext, target)\n bookmarkButton.style.backgroundColor = 'yellow'\n debug.log('Bookmark added: ' + bookmark)\n }\n}\n\nexport async function renderBookmarksButton (userContext, target) {\n async function setBookmarkButtonColor (bookmarkButton) {\n await store.fetcher.load(userContext.bookmarkDocument)\n const bookmarked = store.any(\n null,\n BOOK('recalls'),\n bookmarkButton.target,\n userContext.bookmarkDocument\n )\n bookmarkButton.style = UI.style.buttonStyle\n if (bookmarked) bookmarkButton.style.backgroundColor = 'yellow'\n }\n\n let bookmarkButton\n if (userContext.bookmarkDocument) {\n bookmarkButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + BOOKMARK_ICON,\n label(BOOK('Bookmark')),\n () => {\n toggleBookmark(userContext, target, bookmarkButton)\n }\n )\n bookmarkButton.target = target\n await setBookmarkButtonColor(bookmarkButton)\n return bookmarkButton\n }\n}\n"],"file":"bookmarks.js"}
1
+ {"version":3,"file":"bookmarks.js","names":["UI","icons","ns","media","pad","rdf","style","utils","widgets","$rdf","BOOK","Namespace","BOOKMARK_ICON","label","dom","window","document","createIfNotExists","doc","Promise","resolve","reject","store","fetcher","load","then","response","debug","log","err","status","webOperation","uri","data","contentType","requested","updatePromise","del","ins","updater","update","ok","errorBody","Error","findBookmarkDocument","userContext","theClass","fileTail","isPublic","findAppInstances","instances","length","bookmarkDocument","alert","publicProfile","newBookmarkFile","sym","dir","error","registerInTypeIndex","addBookmark","context","target","title","me","authn","currentUser","author","any","foaf","anyValue","sioc","slice","bookmarkDoc","bookmark","newThing","st","dct","Date","msg","toggleBookmark","bookmarkButton","bookmarks","each","confirm","i","connectedStatements","backgroundColor","renderBookmarksButton","setBookmarkButtonColor","bookmarked","buttonStyle","button","iconBase"],"sources":["../../src/chat/bookmarks.js"],"sourcesContent":["/**\n * Functions related to chat and bookmarks\n * @packageDocumentation\n */\n\n/* global alert confirm */\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\nimport { media } from '../media/index'\nimport * as ns from '../ns'\nimport * as pad from '../pad'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as style from '../style'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\nimport { store, registerInTypeIndex, authn } from 'solid-logic'\nimport { findAppInstances } from '../login/login'\n\nconst UI = { icons, ns, media, pad, rdf, style, utils, widgets }\nconst $rdf = UI.rdf\n\nconst BOOK = $rdf.Namespace('http://www.w3.org/2002/01/bookmark#')\nconst BOOKMARK_ICON = 'noun_45961.svg'\n\nconst label = utils.label\nconst dom = window.document || null\n\n/** Create a resource if it really does not exist\n * Be absolutely sure something does not exist before creating a new empty file\n * as otherwise existing could be deleted.\n * @param doc {NamedNode} - The resource\n */\nfunction createIfNotExists (doc) {\n return new Promise(function (resolve, reject) {\n store.fetcher.load(doc).then(\n response => {\n debug.log('createIfNotExists doc exists, all good ' + doc)\n // store.fetcher.webOperation('HEAD', doc.uri).then(response => {\n resolve(response)\n },\n err => {\n if (err.response.status === 404) {\n debug.log(\n 'createIfNotExists doc does NOT exist, will create... ' + doc\n )\n\n store.fetcher\n .webOperation('PUT', doc.uri, {\n data: '',\n contentType: 'text/turtle'\n })\n .then(\n response => {\n // fetcher.requested[doc.uri] = 'done' // do not need to read ?? but no headers\n delete store.fetcher.requested[doc.uri] // delete cached 404 error\n debug.log('createIfNotExists doc created ok ' + doc)\n resolve(response)\n },\n err => {\n debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + err)\n reject(err)\n }\n )\n } else {\n debug.log(\n 'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err\n )\n reject(err)\n }\n }\n )\n })\n}\n\n// @@@@ use the one in rdflib.js when it is avaiable and delete this\nfunction updatePromise (del, ins) {\n return new Promise(function (resolve, reject) {\n store.updater.update(del, ins, function (uri, ok, errorBody) {\n if (!ok) {\n reject(new Error(errorBody))\n } else {\n resolve()\n }\n }) // callback\n }) // promise\n}\n\n// export findBookmarkDocument,\n\n/* Bookmarking\n */\n/** Find a user's bookmarks\n */\nexport async function findBookmarkDocument (userContext) {\n const theClass = BOOK('Bookmark')\n const fileTail = 'bookmarks.ttl'\n const isPublic = true\n\n await findAppInstances(userContext, theClass, isPublic) // public -- only look for public links\n if (userContext.instances && userContext.instances.length > 0) {\n userContext.bookmarkDocument = userContext.instances[0]\n if (userContext.instances.length > 1) {\n alert('More than one bookmark file! ' + userContext.instances)\n }\n } else {\n if (userContext.publicProfile) {\n // publicProfile or preferencesFile\n const newBookmarkFile = $rdf.sym(\n userContext.publicProfile.dir().uri + fileTail\n )\n try {\n debug.log('Creating new bookmark file ' + newBookmarkFile)\n await createIfNotExists(newBookmarkFile)\n } catch (e) {\n alert.error(\"Can't make fresh bookmark file:\" + e)\n return userContext\n }\n await registerInTypeIndex(\n userContext,\n newBookmarkFile,\n theClass,\n true\n ) // public\n userContext.bookmarkDocument = newBookmarkFile\n } else {\n alert('You seem to have no bookmark file and not even a profile file.')\n }\n }\n return userContext\n}\n\n/** Add a bookmark\n */\n\nasync function addBookmark (context, target) {\n /* like\n @prefix terms: <http://purl.org/dc/terms/>.\n @prefix bookm: <http://www.w3.org/2002/01/bookmark#>.\n @prefix n0: <http://xmlns.com/foaf/0.1/>.\n <> terms:references <#0.5534145389246576>.\n <#0.5534145389246576>\n a bookm:Bookmark;\n terms:created \"2019-01-26T20:26:44.374Z\"^^XML:dateTime;\n terms:title \"Herons\";\n bookm:recalls wiki:Heron;\n n0:maker c:me.\n */\n let title = ''\n const me = authn.currentUser() // If already logged on\n if (!me) throw new Error('Must be logged on to add Bookmark')\n\n const author = store.any(target, ns.foaf('maker'))\n title =\n label(author) + ': ' + store.anyValue(target, ns.sioc('content')).slice(0, 80) // @@ add chat title too?\n const bookmarkDoc = context.bookmarkDocument\n const bookmark = UI.widgets.newThing(bookmarkDoc, title)\n const ins = [\n $rdf.st(bookmarkDoc, UI.ns.dct('references'), bookmark, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.rdf('type'), BOOK('Bookmark'), bookmarkDoc),\n $rdf.st(bookmark, UI.ns.dct('created'), new Date(), bookmarkDoc),\n $rdf.st(bookmark, BOOK('recalls'), target, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.foaf('maker'), me, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.dct('title'), title, bookmarkDoc)\n ]\n try {\n await updatePromise([], ins) // 20190118A\n } catch (e) {\n const msg = 'Making bookmark: ' + e\n alert.error(msg)\n return null\n }\n return bookmark\n}\n\nexport async function toggleBookmark (userContext, target, bookmarkButton) {\n await store.fetcher.load(userContext.bookmarkDocument)\n const bookmarks = store.each(\n null,\n BOOK('recalls'),\n target,\n userContext.bookmarkDocument\n )\n if (bookmarks.length) {\n // delete\n if (!confirm('Delete bookmark on this?' + bookmarks.length)) return\n for (let i = 0; i < bookmarks.length; i++) {\n try {\n await updatePromise(store.connectedStatements(bookmarks[i]), [])\n bookmarkButton.style.backgroundColor = 'white'\n debug.log('Bookmark deleted: ' + bookmarks[i])\n } catch (e) {\n debug.error('Cant delete bookmark:' + e)\n alert('Cant delete bookmark:' + e)\n }\n }\n } else {\n const bookmark = await addBookmark(userContext, target)\n bookmarkButton.style.backgroundColor = 'yellow'\n debug.log('Bookmark added: ' + bookmark)\n }\n}\n\nexport async function renderBookmarksButton (userContext, target) {\n async function setBookmarkButtonColor (bookmarkButton) {\n await store.fetcher.load(userContext.bookmarkDocument)\n const bookmarked = store.any(\n null,\n BOOK('recalls'),\n bookmarkButton.target,\n userContext.bookmarkDocument\n )\n bookmarkButton.style = UI.style.buttonStyle\n if (bookmarked) bookmarkButton.style.backgroundColor = 'yellow'\n }\n\n let bookmarkButton\n if (userContext.bookmarkDocument) {\n bookmarkButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + BOOKMARK_ICON,\n label(BOOK('Bookmark')),\n () => {\n toggleBookmark(userContext, target, bookmarkButton)\n }\n )\n bookmarkButton.target = target\n await setBookmarkButtonColor(bookmarkButton)\n return bookmarkButton\n }\n}\n"],"mappings":"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"}
@@ -16,8 +16,6 @@ exports.mostRecentVersion = mostRecentVersion;
16
16
  exports.nick = nick;
17
17
  exports.originalVersion = originalVersion;
18
18
 
19
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
20
-
21
19
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
22
20
 
23
21
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -40,11 +38,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
40
38
 
41
39
  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; }
42
40
 
43
- /**
44
- * Contains the [[ChatChannel]] class and logic for Solid Chat
45
- * @packageDocumentation
46
- */
47
- // pull in first avoid cross-refs
41
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
48
42
 
49
43
  /* The Solid logic for a 'LongChat'
50
44
  */
@@ -73,8 +67,8 @@ var ChatChannel = /*#__PURE__*/function () {
73
67
  (0, _createClass2["default"])(ChatChannel, [{
74
68
  key: "createMessage",
75
69
  value: function () {
76
- var _createMessage = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(text) {
77
- return _regenerator["default"].wrap(function _callee$(_context) {
70
+ var _createMessage = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(text) {
71
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
78
72
  while (1) {
79
73
  switch (_context.prev = _context.next) {
80
74
  case 0:
@@ -102,7 +96,7 @@ var ChatChannel = /*#__PURE__*/function () {
102
96
  }, {
103
97
  key: "updateMessage",
104
98
  value: function () {
105
- var _updateMessage = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(text) {
99
+ var _updateMessage = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(text) {
106
100
  var oldMsg,
107
101
  deleteIt,
108
102
  sts,
@@ -114,7 +108,7 @@ var ChatChannel = /*#__PURE__*/function () {
114
108
  me,
115
109
  msg,
116
110
  _args2 = arguments;
117
- return _regenerator["default"].wrap(function _callee2$(_context2) {
111
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
118
112
  while (1) {
119
113
  switch (_context2.prev = _context2.next) {
120
114
  case 0:
@@ -189,8 +183,8 @@ var ChatChannel = /*#__PURE__*/function () {
189
183
  }, {
190
184
  key: "deleteMessage",
191
185
  value: function () {
192
- var _deleteMessage = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(message) {
193
- return _regenerator["default"].wrap(function _callee3$(_context3) {
186
+ var _deleteMessage = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(message) {
187
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
194
188
  while (1) {
195
189
  switch (_context3.prev = _context3.next) {
196
190
  case 0:
@@ -265,12 +259,12 @@ function _createIfNotExists(_x4) {
265
259
 
266
260
 
267
261
  function _createIfNotExists2() {
268
- _createIfNotExists2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(doc) {
262
+ _createIfNotExists2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(doc) {
269
263
  var contentType,
270
264
  data,
271
265
  response,
272
266
  _args4 = arguments;
273
- return _regenerator["default"].wrap(function _callee4$(_context4) {
267
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
274
268
  while (1) {
275
269
  switch (_context4.prev = _context4.next) {
276
270
  case 0:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/chat/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"],"mappings":"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","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"],"file":"chatLogic.js"}
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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"}
@@ -9,8 +9,6 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.DateFolder = void 0;
11
11
 
12
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
-
14
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
13
 
16
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -29,11 +27,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
29
27
 
30
28
  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
29
 
32
- /**
33
- * Contains the [[DateFolder]] class
34
- * This tracks data stored in dated folders and sub-folders
35
- *
36
- */
30
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
31
+
37
32
  // pull in first avoid cross-refs
38
33
 
39
34
  /**
@@ -82,26 +77,26 @@ var DateFolder = /*#__PURE__*/function () {
82
77
  }, {
83
78
  key: "loadPrevious",
84
79
  value: function () {
85
- var _loadPrevious = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(date, backwards) {
80
+ var _loadPrevious = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(date, backwards) {
86
81
  var thisDateFolder, previousPeriod, _previousPeriod, folder, found, doc;
87
82
 
88
- return _regenerator["default"].wrap(function _callee3$(_context3) {
83
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
89
84
  while (1) {
90
85
  switch (_context3.prev = _context3.next) {
91
86
  case 0:
92
87
  _previousPeriod = function _previousPeriod3() {
93
- _previousPeriod = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(file, level) {
88
+ _previousPeriod = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(file, level) {
94
89
  var younger, suitable, lastNonEmpty, _lastNonEmpty, parent, siblings, folder, uncle, cousins, result;
95
90
 
96
- return _regenerator["default"].wrap(function _callee2$(_context2) {
91
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
97
92
  while (1) {
98
93
  switch (_context2.prev = _context2.next) {
99
94
  case 0:
100
95
  _lastNonEmpty = function _lastNonEmpty3() {
101
- _lastNonEmpty = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(siblings) {
96
+ _lastNonEmpty = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(siblings) {
102
97
  var _folder, leafDocument;
103
98
 
104
- return _regenerator["default"].wrap(function _callee$(_context) {
99
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
105
100
  while (1) {
106
101
  switch (_context.prev = _context.next) {
107
102
  case 0:
@@ -278,17 +273,17 @@ var DateFolder = /*#__PURE__*/function () {
278
273
  }, {
279
274
  key: "firstLeaf",
280
275
  value: function () {
281
- var _firstLeaf = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(backwards) {
276
+ var _firstLeaf = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(backwards) {
282
277
  var folderStore, folderFetcher, earliestSubfolder, _earliestSubfolder, y, month, d, leafDocument, leafObjects, msg, sortMe;
283
278
 
284
- return _regenerator["default"].wrap(function _callee5$(_context5) {
279
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
285
280
  while (1) {
286
281
  switch (_context5.prev = _context5.next) {
287
282
  case 0:
288
283
  _earliestSubfolder = function _earliestSubfolder3() {
289
- _earliestSubfolder = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(parent) {
284
+ _earliestSubfolder = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(parent) {
290
285
  var suitable, kids;
291
- return _regenerator["default"].wrap(function _callee4$(_context4) {
286
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
292
287
  while (1) {
293
288
  switch (_context4.prev = _context4.next) {
294
289
  case 0:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/chat/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"],"mappings":"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","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"],"file":"dateFolder.js"}
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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"}