solid-ui 2.4.32-8d90d955 → 2.4.32-9d930db7

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 (49) hide show
  1. package/dist/{320.solid-ui.min.js → 670.solid-ui.min.js} +1 -1
  2. package/dist/805.solid-ui.min.js +3 -0
  3. package/dist/805.solid-ui.min.js.map +1 -0
  4. package/dist/solid-ui.js +1509 -2226
  5. package/dist/solid-ui.js.map +1 -1
  6. package/dist/solid-ui.min.js +1 -1
  7. package/dist/solid-ui.min.js.map +1 -1
  8. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +1 -1
  9. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +1 -1
  10. package/lib/chat/bookmarks.js +42 -7
  11. package/lib/chat/bookmarks.js.map +1 -1
  12. package/lib/chat/chatLogic.js +101 -226
  13. package/lib/chat/chatLogic.js.map +1 -1
  14. package/lib/chat/dateFolder.js +136 -139
  15. package/lib/chat/dateFolder.js.map +1 -1
  16. package/lib/chat/infinite.js +432 -618
  17. package/lib/chat/infinite.js.map +1 -1
  18. package/lib/chat/keys.js +3 -3
  19. package/lib/chat/keys.js.map +1 -1
  20. package/lib/chat/message.js +191 -323
  21. package/lib/chat/message.js.map +1 -1
  22. package/lib/chat/messageTools.js +276 -459
  23. package/lib/chat/messageTools.js.map +1 -1
  24. package/lib/chat/thread.js +208 -299
  25. package/lib/chat/thread.js.map +1 -1
  26. package/lib/pad.js +8 -6
  27. package/lib/pad.js.map +1 -1
  28. package/lib/participation.js +6 -5
  29. package/lib/participation.js.map +1 -1
  30. package/lib/preferences.js +0 -4
  31. package/lib/preferences.js.map +1 -1
  32. package/lib/tabs.js +10 -7
  33. package/lib/tabs.js.map +1 -1
  34. package/lib/utils/keyHelpers/accessData.d.ts +2 -2
  35. package/lib/utils/keyHelpers/accessData.d.ts.map +1 -1
  36. package/lib/utils/keyHelpers/accessData.js +115 -59
  37. package/lib/utils/keyHelpers/accessData.js.map +1 -1
  38. package/lib/utils/keyHelpers/acl.js +14 -14
  39. package/lib/utils/keyHelpers/acl.js.map +1 -1
  40. package/lib/versionInfo.js +2 -2
  41. package/lib/versionInfo.js.map +1 -1
  42. package/package.json +2 -3
  43. package/dist/376.solid-ui.min.js +0 -3
  44. package/dist/376.solid-ui.min.js.map +0 -1
  45. package/lib/utils/keyHelpers/otherHelpers.d.ts +0 -3
  46. package/lib/utils/keyHelpers/otherHelpers.d.ts.map +0 -1
  47. package/lib/utils/keyHelpers/otherHelpers.js +0 -22
  48. package/lib/utils/keyHelpers/otherHelpers.js.map +0 -1
  49. /package/dist/{376.solid-ui.min.js.LICENSE.txt → 805.solid-ui.min.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"chatLogic.js","names":["debug","_interopRequireWildcard","require","_dateFolder","_solidLogic","ns","$rdf","utils","_signature","_keys","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ChatChannel","exports","channel","options","_classCallCheck2","channelRoot","doc","dateFolder","DateFolder","div","_createClass2","key","value","_createMessage","_asyncToGenerator2","_regenerator","mark","_callee","text","wrap","_callee$","_context","prev","next","abrupt","updateMessage","stop","createMessage","_x","apply","arguments","_updateMessage","_this","oldMsg","length","undefined","deleteIt","thread","_callee2","sts","now","timestamp","dateStamp","chatDocument","message","me","msg","oldMsgMaker","oldMsgMostRecentVersion","oldMsgThread","errMsg","privateKey","sig","_errMsg","_callee2$","_context2","Date","getTime","term","leafDocumentFromDate","store","sym","uri","authn","currentUser","getBlankMsg","id","any","foaf","mostRecentVersion","sent","push","st","dct","sioc","schema","warn","alert","Error","wf","literal","content","created","maker","getPrivateKey","signMsg","concat","SEC","lit","sameTerm","updater","updateMany","t0","_x2","_deleteMessage","_callee3","_callee3$","_context3","deleteMessage","_x3","_createThread","_callee4","threadRoot","already","insert","_callee4$","_context4","each","filter","holds","rdf","update","createThread","_x4","allVersions","_x5","_allVersions","_callee5","versions","done","m","_callee5$","_context5","fetcher","load","unshift","originalVersion","_x6","_originalVersion","_callee6","_callee6$","_context6","error","_x7","_mostRecentVersion","_callee7","_callee7$","_context7","isDeleted","isReplaced","isHidden","nick","person","s","label"],"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'\nimport { getBlankMsg, signMsg, SEC, verifySignature } from './signature'\nimport { getPrivateKey, getPublicKey } from './keys'\n\n/* The Solid logic for a 'LongChat'\n*/\n/**\n * Common code for a chat (discussion area of messages about something)\n * This version runs over a series of files for different time periods\n *\n * Parameters for the whole chat like its title are stored on\n * index.ttl#this and the chats messages are stored in YYYY/MM/DD/chat.ttl\n *\n */\n\nexport class ChatChannel {\n constructor (channel, options) {\n this.channel = channel\n this.channelRoot = channel.doc()\n this.options = options\n this.dateFolder = new DateFolder(this.channelRoot, 'chat.ttl')\n this.div = null // : HTMLElement\n }\n\n /* Store a new message in the web,\n */\n async createMessage (text) {\n return this.updateMessage(text)\n }\n\n /* Store a new message in the web,\n as a replacement for an existing one.\n The old one iis left, and the two are linked\n */\n async updateMessage (text, oldMsg = null, deleteIt, thread = null) {\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = $rdf.term(now)\n const chatDocument = oldMsg ? oldMsg.doc() : this.dateFolder.leafDocumentFromDate(now)\n const message = store.sym(chatDocument.uri + '#' + 'Msg' + timestamp)\n // const content = store.literal(text)\n\n const me = authn.currentUser() // If already logged on\n\n const msg = getBlankMsg()\n msg.id = message.uri\n if (oldMsg) { // edit message replaces old one\n const oldMsgMaker = store.any(oldMsg, ns.foaf('maker')) // may not be needed here, but needed on READ\n if (oldMsgMaker.uri === me.uri) {\n const oldMsgMostRecentVersion = await mostRecentVersion(oldMsg)\n sts.push($rdf.st(oldMsgMostRecentVersion, ns.dct('isReplacedBy'), message, chatDocument))\n // if oldMsg has_reply => add has_reply to message\n const oldMsgThread = store.any(oldMsgMostRecentVersion, ns.sioc('has_reply'))\n if (oldMsgThread) {\n sts.push($rdf.st(message, ns.sioc('has_reply'), oldMsgThread, chatDocument))\n }\n if (deleteIt) { // we need to add a specific signature, else anyone can delete a msg ?\n sts.push($rdf.st(message, ns.schema('dateDeleted'), dateStamp, chatDocument))\n }\n } else {\n const errMsg = 'Error you cannot delete/edit a message from someone else : \\n' + oldMsgMaker.uri\n debug.warn(errMsg)\n alert(errMsg)\n throw new Error(errMsg)\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 msg.content = text\n\n sts.push(\n $rdf.st(message, ns.dct('created'), dateStamp, chatDocument)\n )\n msg.created = dateStamp.value\n if (me) {\n sts.push($rdf.st(message, ns.foaf('maker'), me, chatDocument))\n msg.maker = me.uri\n // privateKey the cached private key of me, cached in store\n const privateKey = await getPrivateKey(me) // me.uri)\n\n const sig = signMsg(msg, privateKey)\n sts.push($rdf.st(message, $rdf.sym(`${SEC}proofValue`), $rdf.lit(sig), chatDocument))\n }\n if (thread) {\n sts.push($rdf.st(thread, ns.sioc('has_member'), message, chatDocument))\n if (!thread.doc().sameTerm(message.doc())) {\n sts.push($rdf.st(thread, ns.sioc('has_member'), message, thread.doc()))\n }\n }\n\n try {\n await store.updater.updateMany([], sts)\n } catch (err) {\n const errMsg = 'Error saving chat message: ' + err\n debug.warn(errMsg)\n alert(errMsg)\n throw new Error(errMsg)\n }\n return message\n }\n\n /* Mark a message as deleted\n * Wee add a new version of the message,m witha deletion flag (deletion date)\n * so that the deletion can be revoked by adding another non-deleted update\n */\n async deleteMessage (message) {\n return this.updateMessage('(message deleted)', message, true)\n }\n\n // Create a new thread of replies to the thread root message\n // or return one which already exists\n\n async createThread (threadRoot) {\n const already = store.each(threadRoot, ns.sioc('has_reply'), null, threadRoot.doc())\n .filter(thread => store.holds(thread, ns.rdf('type'), ns.sioc('Thread'), thread.doc()))\n if (already.length > 0) return already[0]\n\n const thread = $rdf.sym(threadRoot.uri + '-thread')\n const insert = [\n $rdf.st(thread, ns.rdf('type'), ns.sioc('Thread'), thread.doc()),\n $rdf.st(threadRoot, ns.sioc('has_reply'), thread, thread.doc())\n ]\n await store.updater.update([], insert)\n return thread\n }\n} // class ChatChannel\n\n// ////////// Utility functions\n\n// Have to not loop forever if fed loops\nexport async function allVersions (message) {\n const versions = [message]\n const done = {}\n done[message.uri] = true\n let m = message\n while (true) { // earlier?\n const prev = store.any(null, ns.dct('isReplacedBy'), m, m.doc())\n if (!prev || done[prev.uri]) break\n await store.fetcher.load(prev)\n versions.unshift(prev)\n done[prev.uri] = true\n m = prev\n }\n m = message\n while (true) { // later?\n const next = store.any(m, ns.dct('isReplacedBy'), null, m.doc())\n if (!next || done[next.uri]) break\n versions.push(next)\n done[next.uri] = true\n m = next\n }\n return versions\n}\n\nexport async function originalVersion (message) {\n let msg = message\n const done = {}\n // done[message.uri] = true\n while (msg) {\n if (done[msg.uri]) {\n debug.error('originalVersion: verion loop' + message)\n return message\n }\n done[msg.uri] = true\n message = msg\n await store.fetcher.load(message)\n msg = store.any(null, ns.dct('isReplacedBy'), message, message.doc())\n }\n return message\n}\n\nexport async function mostRecentVersion (message) {\n let msg = message\n const done = {}\n while (msg) {\n if (done[msg.uri]) {\n debug.error('mostRecentVersion: verion loop' + message)\n return message\n }\n done[msg.uri] = true\n message = msg\n await store.fetcher.load(message)\n msg = store.any(message, ns.dct('isReplacedBy'), null, message.doc())\n }\n return message\n}\n\nexport function isDeleted (message) {\n return store.holds(message, ns.schema('dateDeleted'), null, message.doc())\n}\n\nexport function isReplaced (message) {\n return store.holds(message, ns.dct('isReplacedBy'), null, message.doc())\n}\n\nexport function isHidden (message) {\n return this.isDeleted(message) || this.isReplaced(message)\n}\n\n// A Nickname for a person\n\nexport function nick (person) {\n const s = store.any(person, ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + utils.label(person)\n}\n// ends\n"],"mappings":"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"}
1
+ {"version":3,"file":"chatLogic.js","names":["debug","_interopRequireWildcard","require","_dateFolder","_solidLogic","ns","$rdf","utils","_signature","_keys","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ChatChannel","exports","channel","options","_classCallCheck2","channelRoot","doc","dateFolder","DateFolder","div","_createClass2","key","value","_createMessage","_asyncToGenerator2","_regenerator","mark","_callee","text","wrap","_callee$","_context","prev","next","abrupt","updateMessage","stop","createMessage","_x","apply","arguments","_updateMessage","_this","oldMsg","length","undefined","deleteIt","_callee2","sts","now","timestamp","dateStamp","chatDocument","message","me","msg","oldMsgMaker","errMsg","privateKey","sig","_errMsg","_callee2$","_context2","Date","getTime","term","leafDocumentFromDate","store","sym","uri","authn","currentUser","getBlankMsg","id","any","foaf","push","st","mostRecentVersion","dct","schema","warn","alert","Error","wf","sioc","literal","content","created","maker","getPrivateKey","sent","signMsg","concat","SEC","lit","updater","update","t0","_x2","_deleteMessage","_callee3","_callee3$","_context3","deleteMessage","_x3","originalVersion","isDeleted","holds","isReplaced","isHidden","nick","person","s","label","_createIfNotExists","_x4","_createIfNotExists2","contentType","data","_callee4","response","_callee4$","_context4","fetcher","load","status","log","webOperation","t1","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'\nimport { getBlankMsg, signMsg, SEC, verifySignature } from './signature'\nimport { getPrivateKey, getPublicKey } from './keys'\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 const msg = getBlankMsg()\n msg.id = message.uri\n if (oldMsg) { // edit message replaces old one\n const oldMsgMaker = store.any(oldMsg, ns.foaf('maker')) // may not be needed here, but needed on READ\n if (oldMsgMaker.uri === me.uri) {\n sts.push($rdf.st(mostRecentVersion(oldMsg), ns.dct('isReplacedBy'), message, chatDocument))\n if (deleteIt) { // we need to add a specific signature, else anyone can delete a msg ?\n sts.push($rdf.st(message, ns.schema('dateDeleted'), dateStamp, chatDocument))\n }\n } else {\n const errMsg = 'Error you cannot delete/edit a message from someone else : \\n' + oldMsgMaker.uri\n debug.warn(errMsg)\n alert(errMsg)\n throw new Error(errMsg)\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 msg.content = text\n\n sts.push(\n $rdf.st(message, ns.dct('created'), dateStamp, chatDocument)\n )\n msg.created = dateStamp.value\n if (me) {\n sts.push($rdf.st(message, ns.foaf('maker'), me, chatDocument))\n msg.maker = me.uri\n // privateKey the cached private key of me, cached in store\n const privateKey = await getPrivateKey(me) // me.uri)\n\n const sig = signMsg(msg, privateKey)\n sts.push($rdf.st(message, $rdf.sym(`${SEC}proofValue`), $rdf.lit(sig), chatDocument))\n }\n try {\n await store.updater.update([], sts)\n } catch (err) {\n const errMsg = 'Error saving chat message: ' + err\n debug.warn(errMsg)\n alert(errMsg)\n throw new Error(errMsg)\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 return response\n}\n// ends\n"],"mappings":"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"}
@@ -6,11 +6,10 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.DateFolder = void 0;
9
- exports.emptyLeaf = emptyLeaf;
10
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
13
  var debug = _interopRequireWildcard(require("../debug"));
15
14
  var _solidLogic = require("solid-logic");
16
15
  var ns = _interopRequireWildcard(require("../ns"));
@@ -23,29 +22,9 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
23
22
  *
24
23
  */
25
24
  // pull in first avoid cross-refs
26
- function emptyLeaf(_x) {
27
- return _emptyLeaf.apply(this, arguments);
28
- }
29
25
  /**
30
26
  * Track back through the YYYY/MM/DD tree to find the previous/next day
31
27
  */
32
- function _emptyLeaf() {
33
- _emptyLeaf = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(leafDocument) {
34
- return _regenerator["default"].wrap(function _callee5$(_context5) {
35
- while (1) switch (_context5.prev = _context5.next) {
36
- case 0:
37
- _context5.next = 2;
38
- return _solidLogic.store.fetcher.load(leafDocument);
39
- case 2:
40
- return _context5.abrupt("return", !(_solidLogic.store.statementsMatching(null, ns.dct('created'), null, leafDocument).length > 0));
41
- case 3:
42
- case "end":
43
- return _context5.stop();
44
- }
45
- }, _callee5);
46
- }));
47
- return _emptyLeaf.apply(this, arguments);
48
- }
49
28
  var DateFolder = exports.DateFolder = /*#__PURE__*/function () {
50
29
  function DateFolder(rootThing, leafFileName, membershipProperty) {
51
30
  (0, _classCallCheck2["default"])(this, DateFolder);
@@ -78,28 +57,67 @@ var DateFolder = exports.DateFolder = /*#__PURE__*/function () {
78
57
  // let date = new Date(str + 'Z') // GMT - but fails in FF - invalid format :-(
79
58
  var date = new Date(str); // not explicitly UTC but is assumed so in spec
80
59
  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse
81
- // debug.log('Date for ' + doc + ':' + date.toISOString())
60
+ debug.log('Date for ' + doc + ':' + date.toISOString());
82
61
  return date;
83
62
  }
84
63
  }, {
85
64
  key: "loadPrevious",
86
65
  value: function () {
87
- var _loadPrevious = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(date, backwards) {
88
- var previousPeriod, _previousPeriod, folder, found, leafDocument, nextDate;
89
- return _regenerator["default"].wrap(function _callee2$(_context2) {
90
- while (1) switch (_context2.prev = _context2.next) {
66
+ var _loadPrevious = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(date, backwards) {
67
+ var thisDateFolder, previousPeriod, _previousPeriod, folder, found, doc;
68
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
69
+ while (1) switch (_context3.prev = _context3.next) {
91
70
  case 0:
92
71
  _previousPeriod = function _previousPeriod3() {
93
- _previousPeriod = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(file, level) {
94
- var younger, suitable, lastOrFirst, parent, siblings, _folder, uncle, cousins, result;
95
- return _regenerator["default"].wrap(function _callee$(_context) {
96
- while (1) switch (_context.prev = _context.next) {
72
+ _previousPeriod = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(file, level) {
73
+ var younger, suitable, lastNonEmpty, _lastNonEmpty, parent, siblings, _folder, uncle, cousins, result;
74
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
75
+ while (1) switch (_context2.prev = _context2.next) {
97
76
  case 0:
98
- lastOrFirst = function _lastOrFirst(siblings) {
99
- siblings = siblings.filter(suitable);
100
- siblings.sort(); // chronological order
101
- if (!backwards) siblings.reverse();
102
- return siblings.pop(); // date folder
77
+ _lastNonEmpty = function _lastNonEmpty3() {
78
+ _lastNonEmpty = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(siblings) {
79
+ var _folder2, leafDocument;
80
+ return _regenerator["default"].wrap(function _callee$(_context) {
81
+ while (1) switch (_context.prev = _context.next) {
82
+ case 0:
83
+ siblings = siblings.filter(suitable);
84
+ siblings.sort(); // chronological order
85
+ if (!backwards) siblings.reverse();
86
+ if (!(level !== 3)) {
87
+ _context.next = 5;
88
+ break;
89
+ }
90
+ return _context.abrupt("return", siblings.pop());
91
+ case 5:
92
+ if (!siblings.length) {
93
+ _context.next = 14;
94
+ break;
95
+ }
96
+ _folder2 = siblings.pop();
97
+ leafDocument = _solidLogic.store.sym(_folder2.uri + thisDateFolder.leafFileName);
98
+ _context.next = 10;
99
+ return _solidLogic.store.fetcher.load(leafDocument);
100
+ case 10:
101
+ if (!(_solidLogic.store.statementsMatching(null, ns.dct('created'), null, leafDocument).length > 0)) {
102
+ _context.next = 12;
103
+ break;
104
+ }
105
+ return _context.abrupt("return", _folder2);
106
+ case 12:
107
+ _context.next = 5;
108
+ break;
109
+ case 14:
110
+ return _context.abrupt("return", null);
111
+ case 15:
112
+ case "end":
113
+ return _context.stop();
114
+ }
115
+ }, _callee);
116
+ }));
117
+ return _lastNonEmpty.apply(this, arguments);
118
+ };
119
+ lastNonEmpty = function _lastNonEmpty2(_x5) {
120
+ return _lastNonEmpty.apply(this, arguments);
103
121
  };
104
122
  suitable = function _suitable(x) {
105
123
  var tail = x.uri.slice(0, -1).split('/').slice(-1)[0];
@@ -109,117 +127,98 @@ var DateFolder = exports.DateFolder = /*#__PURE__*/function () {
109
127
  younger = function _younger(x) {
110
128
  if (backwards ? x.uri >= file.uri : x.uri <= file.uri) return false; // later than we want or same -- looking for different
111
129
  return true;
112
- };
113
- // debug.log(' previousPeriod level' + level + ' file ' + file)
130
+ }; // debug.log(' previousPeriod level' + level + ' file ' + file)
114
131
  parent = file.dir();
115
- _context.prev = 4;
116
- _context.next = 7;
132
+ _context2.prev = 5;
133
+ _context2.next = 8;
117
134
  return _solidLogic.store.fetcher.load(parent);
118
- case 7:
135
+ case 8:
119
136
  siblings = _solidLogic.store.each(parent, ns.ldp('contains'));
120
137
  siblings = siblings.filter(younger);
121
- _folder = lastOrFirst(siblings);
138
+ _context2.next = 12;
139
+ return lastNonEmpty(siblings);
140
+ case 12:
141
+ _folder = _context2.sent;
122
142
  if (!_folder) {
123
- _context.next = 12;
143
+ _context2.next = 15;
124
144
  break;
125
145
  }
126
- return _context.abrupt("return", _folder);
127
- case 12:
128
- _context.next = 22;
146
+ return _context2.abrupt("return", _folder);
147
+ case 15:
148
+ _context2.next = 25;
129
149
  break;
130
- case 14:
131
- _context.prev = 14;
132
- _context.t0 = _context["catch"](4);
133
- if (!(_context.t0.response && _context.t0.response.status && _context.t0.response.status === 404)) {
134
- _context.next = 20;
150
+ case 17:
151
+ _context2.prev = 17;
152
+ _context2.t0 = _context2["catch"](5);
153
+ if (!(_context2.t0.response && _context2.t0.response.status && _context2.t0.response.status === 404)) {
154
+ _context2.next = 23;
135
155
  break;
136
156
  }
137
157
  debug.log('Error 404 for chat parent file ' + parent);
138
- _context.next = 22;
158
+ _context2.next = 25;
139
159
  break;
140
- case 20:
160
+ case 23:
141
161
  debug.log('*** Error NON 404 for chat parent file ' + parent);
142
162
  // statusTR.appendChild(widgets.errorMessageBlock(dom, err, 'pink'))
143
- throw new Error("*** ".concat(_context.t0.message, " for chat folder ").concat(parent));
144
- case 22:
163
+ throw new Error("*** ".concat(_context2.t0.message, " for chat folder ").concat(parent));
164
+ case 25:
145
165
  if (!(level === 0)) {
146
- _context.next = 24;
166
+ _context2.next = 27;
147
167
  break;
148
168
  }
149
- return _context.abrupt("return", null);
150
- case 24:
151
- _context.next = 26;
169
+ return _context2.abrupt("return", null);
170
+ case 27:
171
+ _context2.next = 29;
152
172
  return previousPeriod(parent, level - 1);
153
- case 26:
154
- uncle = _context.sent;
173
+ case 29:
174
+ uncle = _context2.sent;
155
175
  if (uncle) {
156
- _context.next = 29;
176
+ _context2.next = 32;
157
177
  break;
158
178
  }
159
- return _context.abrupt("return", null);
160
- case 29:
161
- _context.next = 31;
179
+ return _context2.abrupt("return", null);
180
+ case 32:
181
+ _context2.next = 34;
162
182
  return _solidLogic.store.fetcher.load(uncle);
163
- case 31:
164
- cousins = _solidLogic.store.each(uncle, ns.ldp('contains'));
165
- result = lastOrFirst(cousins); // debug.log(' previousPeriod: returning cousins at level ' + level, cousins)
166
- // debug.log(' previousPeriod: returning result at level ' + level, result)
167
- return _context.abrupt("return", result);
168
183
  case 34:
184
+ cousins = _solidLogic.store.each(uncle, ns.ldp('contains'));
185
+ _context2.next = 37;
186
+ return lastNonEmpty(cousins);
187
+ case 37:
188
+ result = _context2.sent;
189
+ return _context2.abrupt("return", result);
190
+ case 39:
169
191
  case "end":
170
- return _context.stop();
192
+ return _context2.stop();
171
193
  }
172
- }, _callee, null, [[4, 14]]);
194
+ }, _callee2, null, [[5, 17]]);
173
195
  }));
174
196
  return _previousPeriod.apply(this, arguments);
175
197
  };
176
- previousPeriod = function _previousPeriod2(_x4, _x5) {
198
+ previousPeriod = function _previousPeriod2(_x3, _x4) {
177
199
  return _previousPeriod.apply(this, arguments);
178
- }; // previousPeriod
200
+ };
201
+ thisDateFolder = this; // previousPeriod
179
202
  folder = this.leafDocumentFromDate(date).dir();
180
- case 3:
181
- if (!true) {
182
- _context2.next = 23;
183
- break;
184
- }
185
- _context2.next = 6;
203
+ _context3.next = 6;
186
204
  return previousPeriod(folder, 3);
187
205
  case 6:
188
- found = _context2.sent;
206
+ found = _context3.sent;
189
207
  if (!found) {
190
- _context2.next = 20;
191
- break;
192
- }
193
- leafDocument = _solidLogic.store.sym(found.uri + this.leafFileName);
194
- nextDate = this.dateFromLeafDocument(leafDocument);
195
- _context2.next = 12;
196
- return emptyLeaf(leafDocument);
197
- case 12:
198
- if (_context2.sent) {
199
- _context2.next = 16;
208
+ _context3.next = 10;
200
209
  break;
201
210
  }
202
- return _context2.abrupt("return", nextDate);
203
- case 16:
204
- // debug.log(' loadPrevious: skipping empty ' + leafDocument)
205
- date = nextDate;
206
- folder = this.leafDocumentFromDate(date).dir();
207
- // debug.log(' loadPrevious: moved back to ' + folder)
208
- case 18:
209
- _context2.next = 21;
210
- break;
211
- case 20:
212
- return _context2.abrupt("return", null);
213
- case 21:
214
- _context2.next = 3;
215
- break;
216
- case 23:
211
+ doc = _solidLogic.store.sym(found.uri + this.leafFileName);
212
+ return _context3.abrupt("return", this.dateFromLeafDocument(doc));
213
+ case 10:
214
+ return _context3.abrupt("return", null);
215
+ case 11:
217
216
  case "end":
218
- return _context2.stop();
217
+ return _context3.stop();
219
218
  }
220
- }, _callee2, this);
219
+ }, _callee3, this);
221
220
  }));
222
- function loadPrevious(_x2, _x3) {
221
+ function loadPrevious(_x, _x2) {
223
222
  return _loadPrevious.apply(this, arguments);
224
223
  }
225
224
  return loadPrevious;
@@ -227,49 +226,49 @@ var DateFolder = exports.DateFolder = /*#__PURE__*/function () {
227
226
  }, {
228
227
  key: "firstLeaf",
229
228
  value: function () {
230
- var _firstLeaf = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(backwards) {
229
+ var _firstLeaf = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(backwards) {
231
230
  var folderStore, folderFetcher, earliestSubfolder, _earliestSubfolder, y, month, d, leafDocument, leafObjects, msg, sortMe;
232
- return _regenerator["default"].wrap(function _callee4$(_context4) {
233
- while (1) switch (_context4.prev = _context4.next) {
231
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
232
+ while (1) switch (_context5.prev = _context5.next) {
234
233
  case 0:
235
234
  _earliestSubfolder = function _earliestSubfolder3() {
236
- _earliestSubfolder = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(parent) {
235
+ _earliestSubfolder = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(parent) {
237
236
  var suitable, kids;
238
- return _regenerator["default"].wrap(function _callee3$(_context3) {
239
- while (1) switch (_context3.prev = _context3.next) {
237
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
238
+ while (1) switch (_context4.prev = _context4.next) {
240
239
  case 0:
241
240
  suitable = function _suitable2(x) {
242
241
  var tail = x.uri.slice(0, -1).split('/').slice(-1)[0];
243
242
  if (!'0123456789'.includes(tail[0])) return false; // not numeric
244
243
  return true;
245
244
  };
246
- // debug.log(' parent ' + parent)
245
+ debug.log(' parent ' + parent);
247
246
  delete folderFetcher.requested[parent.uri];
248
247
  // try {
249
- _context3.next = 4;
248
+ _context4.next = 5;
250
249
  return folderFetcher.load(parent, {
251
250
  force: true
252
251
  });
253
- case 4:
252
+ case 5:
254
253
  // Force fetch as will have changed
255
254
  // }catch (err) {
256
255
  // }
257
256
  kids = folderStore.each(parent, ns.ldp('contains'));
258
257
  kids = kids.filter(suitable);
259
258
  if (!(kids.length === 0)) {
260
- _context3.next = 8;
259
+ _context4.next = 9;
261
260
  break;
262
261
  }
263
262
  throw new Error(' @@@ No children to parent2 ' + parent);
264
- case 8:
263
+ case 9:
265
264
  kids.sort();
266
265
  if (backwards) kids.reverse();
267
- return _context3.abrupt("return", kids[0]);
268
- case 11:
266
+ return _context4.abrupt("return", kids[0]);
267
+ case 12:
269
268
  case "end":
270
- return _context3.stop();
269
+ return _context4.stop();
271
270
  }
272
- }, _callee3);
271
+ }, _callee4);
273
272
  }));
274
273
  return _earliestSubfolder.apply(this, arguments);
275
274
  };
@@ -279,25 +278,25 @@ var DateFolder = exports.DateFolder = /*#__PURE__*/function () {
279
278
  // backwards -> last leafObject
280
279
  folderStore = $rdf.graph();
281
280
  folderFetcher = new $rdf.Fetcher(folderStore);
282
- _context4.next = 6;
281
+ _context5.next = 6;
283
282
  return earliestSubfolder(this.root.dir());
284
283
  case 6:
285
- y = _context4.sent;
286
- _context4.next = 9;
284
+ y = _context5.sent;
285
+ _context5.next = 9;
287
286
  return earliestSubfolder(y);
288
287
  case 9:
289
- month = _context4.sent;
290
- _context4.next = 12;
288
+ month = _context5.sent;
289
+ _context5.next = 12;
291
290
  return earliestSubfolder(month);
292
291
  case 12:
293
- d = _context4.sent;
292
+ d = _context5.sent;
294
293
  leafDocument = $rdf.sym(d.uri + 'chat.ttl');
295
- _context4.next = 16;
294
+ _context5.next = 16;
296
295
  return folderFetcher.load(leafDocument);
297
296
  case 16:
298
297
  leafObjects = folderStore.each(this.root, this.membershipProperty, null, leafDocument);
299
298
  if (!(leafObjects.length === 0)) {
300
- _context4.next = 21;
299
+ _context5.next = 21;
301
300
  break;
302
301
  }
303
302
  msg = ' INCONSISTENCY -- no chat leafObject in file ' + leafDocument;
@@ -309,15 +308,13 @@ var DateFolder = exports.DateFolder = /*#__PURE__*/function () {
309
308
  });
310
309
  sortMe.sort();
311
310
  if (backwards) sortMe.reverse();
312
- /* debug.log(
313
- (backwards ? 'Latest' : 'Earliest') + ' leafObject is ' + sortMe[0][1]
314
- ) */
315
- return _context4.abrupt("return", sortMe[0][1]);
316
- case 25:
311
+ debug.log((backwards ? 'Latest' : 'Earliest') + ' leafObject is ' + sortMe[0][1]);
312
+ return _context5.abrupt("return", sortMe[0][1]);
313
+ case 26:
317
314
  case "end":
318
- return _context4.stop();
315
+ return _context5.stop();
319
316
  }
320
- }, _callee4, this);
317
+ }, _callee5, this);
321
318
  }));
322
319
  function firstLeaf(_x6) {
323
320
  return _firstLeaf.apply(this, arguments);
@@ -1 +1 @@
1
- {"version":3,"file":"dateFolder.js","names":["debug","_interopRequireWildcard","require","_solidLogic","ns","$rdf","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","emptyLeaf","_x","_emptyLeaf","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee5","leafDocument","wrap","_callee5$","_context5","prev","next","store","fetcher","load","abrupt","statementsMatching","dct","length","stop","DateFolder","exports","rootThing","leafFileName","membershipProperty","_classCallCheck2","root","rootFolder","dir","wf","_createClass2","key","value","leafDocumentFromDate","date","isoDate","toISOString","path","split","replace","uri","sym","dateFromLeafDocument","doc","head","str","slice","Date","_loadPrevious","_callee2","backwards","previousPeriod","_previousPeriod","folder","found","nextDate","_callee2$","_context2","_previousPeriod3","_callee","file","level","younger","suitable","lastOrFirst","parent","siblings","_folder","uncle","cousins","result","_callee$","_context","_lastOrFirst","filter","sort","reverse","pop","_suitable","x","tail","includes","_younger","each","ldp","t0","response","status","log","Error","concat","message","sent","_previousPeriod2","_x4","_x5","loadPrevious","_x2","_x3","_firstLeaf","_callee4","folderStore","folderFetcher","earliestSubfolder","_earliestSubfolder","y","month","d","leafObjects","msg","sortMe","_callee4$","_context4","_earliestSubfolder3","_callee3","kids","_callee3$","_context3","_suitable2","requested","force","_earliestSubfolder2","_x7","graph","Fetcher","trace","map","leafObject","any","firstLeaf","_x6"],"sources":["../../src/chat/dateFolder.js"],"sourcesContent":["/**\n * Contains the [[DateFolder]] class\n * This tracks data stored in dated folders and sub-folders\n *\n */\nimport * as debug from '../debug'\nimport { store } from 'solid-logic'\nimport * as ns from '../ns'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\n\nexport async function emptyLeaf (leafDocument) {\n await store.fetcher.load(leafDocument)\n // files can have seealso links. skip ones with no leafObjects with a date\n return !(\n store.statementsMatching(null, ns.dct('created'), null, leafDocument)\n .length > 0\n )\n}\n\n/**\n * Track back through the YYYY/MM/DD tree to find the previous/next day\n */\nexport class DateFolder {\n constructor (rootThing, leafFileName, membershipProperty) {\n this.root = rootThing\n this.rootFolder = rootThing.dir()\n this.leafFileName = leafFileName || 'index.ttl' // typically chat.ttl\n this.membershipProperty = membershipProperty || ns.wf('leafObject')\n }\n\n /* Generate the leaf document (rdf object) from date\n * @returns: <NamedNode> - document\n */\n leafDocumentFromDate (date) {\n // debug.log('incoming date: ' + date)\n const isoDate = date.toISOString() // Like \"2018-05-07T17:42:46.576Z\"\n let path = isoDate.split('T')[0].replace(/-/g, '/') // Like \"2018/05/07\"\n path = this.root.dir().uri + path + '/' + this.leafFileName\n return store.sym(path)\n }\n\n /* Generate a date object from the leaf file name\n */\n dateFromLeafDocument (doc) {\n const head = this.rootFolder.uri.length\n const str = doc.uri.slice(head, head + 10).replace(/\\//g, '-')\n // let date = new Date(str + 'Z') // GMT - but fails in FF - invalid format :-(\n const date = new Date(str) // not explicitly UTC but is assumed so in spec\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse\n // debug.log('Date for ' + doc + ':' + date.toISOString())\n return date\n }\n\n async loadPrevious (date, backwards) {\n async function previousPeriod (file, level) {\n function younger (x) {\n if (backwards ? x.uri >= file.uri : x.uri <= file.uri) return false // later than we want or same -- looking for different\n return true\n }\n function suitable (x) {\n const tail = x.uri\n .slice(0, -1)\n .split('/')\n .slice(-1)[0]\n if (!'0123456789'.includes(tail[0])) return false // not numeric\n return true\n }\n\n function lastOrFirst (siblings) {\n siblings = siblings.filter(suitable)\n siblings.sort() // chronological order\n if (!backwards) siblings.reverse()\n return siblings.pop() // date folder\n }\n // debug.log(' previousPeriod level' + level + ' file ' + file)\n const parent = file.dir()\n try {\n await store.fetcher.load(parent)\n let siblings = store.each(parent, ns.ldp('contains'))\n siblings = siblings.filter(younger)\n const folder = lastOrFirst(siblings)\n if (folder) return folder\n // debug.log(' parent no suitable offspring ' + parent)\n } catch (err) {\n if (err.response && err.response.status && err.response.status === 404) {\n debug.log('Error 404 for chat parent file ' + parent)\n } else {\n debug.log('*** Error NON 404 for chat parent file ' + parent)\n // statusTR.appendChild(widgets.errorMessageBlock(dom, err, 'pink'))\n throw (new Error(`*** ${err.message} for chat folder ${parent}`))\n }\n }\n if (level === 0) {\n // debug.log('loadPrevious: returning as level is zero')\n return null // 3:day, 2:month, 1: year 0: no\n }\n\n const uncle = await previousPeriod(parent, level - 1)\n if (!uncle) {\n // debug.log(' previousPeriod: nothing left before. ', parent)\n return null // reached first ever\n }\n await store.fetcher.load(uncle)\n const cousins = store.each(uncle, ns.ldp('contains'))\n const result = lastOrFirst(cousins)\n // debug.log(' previousPeriod: returning cousins at level ' + level, cousins)\n // debug.log(' previousPeriod: returning result at level ' + level, result)\n\n return result\n } // previousPeriod\n\n let folder = this.leafDocumentFromDate(date).dir()\n while (true) {\n const found = await previousPeriod(folder, 3)\n if (found) {\n const leafDocument = store.sym(found.uri + this.leafFileName)\n const nextDate = this.dateFromLeafDocument(leafDocument)\n if (!await emptyLeaf(leafDocument)) {\n return nextDate\n } else {\n // debug.log(' loadPrevious: skipping empty ' + leafDocument)\n date = nextDate\n folder = this.leafDocumentFromDate(date).dir()\n // debug.log(' loadPrevious: moved back to ' + folder)\n }\n } else {\n return null // no more left\n }\n }\n } // loadPrevious\n\n async firstLeaf (backwards) {\n // backwards -> last leafObject\n const folderStore = $rdf.graph()\n const folderFetcher = new $rdf.Fetcher(folderStore)\n async function earliestSubfolder (parent) {\n function suitable (x) {\n const tail = x.uri\n .slice(0, -1)\n .split('/')\n .slice(-1)[0]\n if (!'0123456789'.includes(tail[0])) return false // not numeric\n return true\n }\n // debug.log(' parent ' + parent)\n delete folderFetcher.requested[parent.uri]\n // try {\n await folderFetcher.load(parent, { force: true }) // Force fetch as will have changed\n // }catch (err) {\n // }\n\n let kids = folderStore.each(parent, ns.ldp('contains'))\n kids = kids.filter(suitable)\n if (kids.length === 0) {\n throw new Error(' @@@ No children to parent2 ' + parent)\n }\n\n kids.sort()\n if (backwards) kids.reverse()\n return kids[0]\n }\n const y = await earliestSubfolder(this.root.dir())\n const month = await earliestSubfolder(y)\n const d = await earliestSubfolder(month)\n const leafDocument = $rdf.sym(d.uri + 'chat.ttl')\n await folderFetcher.load(leafDocument)\n const leafObjects = folderStore.each(\n this.root,\n this.membershipProperty,\n null,\n leafDocument\n )\n if (leafObjects.length === 0) {\n const msg =\n ' INCONSISTENCY -- no chat leafObject in file ' + leafDocument\n debug.trace(msg)\n throw new Error(msg)\n }\n const sortMe = leafObjects.map(leafObject => [\n folderStore.any(leafObject, ns.dct('created')),\n leafObject\n ])\n sortMe.sort()\n if (backwards) sortMe.reverse()\n /* debug.log(\n (backwards ? 'Latest' : 'Earliest') + ' leafObject is ' + sortMe[0][1]\n ) */\n return sortMe[0][1]\n } // firstleafObject\n} // class\n"],"mappings":"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"}
1
+ {"version":3,"file":"dateFolder.js","names":["debug","_interopRequireWildcard","require","_solidLogic","ns","$rdf","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","DateFolder","exports","rootThing","leafFileName","membershipProperty","_classCallCheck2","root","rootFolder","dir","wf","_createClass2","key","value","leafDocumentFromDate","date","isoDate","toISOString","path","split","replace","uri","store","sym","dateFromLeafDocument","doc","head","length","str","slice","Date","log","_loadPrevious","_asyncToGenerator2","_regenerator","mark","_callee3","backwards","thisDateFolder","previousPeriod","_previousPeriod","folder","found","wrap","_callee3$","_context3","prev","next","_previousPeriod3","_callee2","file","level","younger","suitable","lastNonEmpty","_lastNonEmpty","parent","siblings","_folder","uncle","cousins","result","_callee2$","_context2","_lastNonEmpty3","_callee","_folder2","leafDocument","_callee$","_context","filter","sort","reverse","abrupt","pop","fetcher","load","statementsMatching","dct","stop","apply","arguments","_lastNonEmpty2","_x5","_suitable","x","tail","includes","_younger","each","ldp","sent","t0","response","status","Error","concat","message","_previousPeriod2","_x3","_x4","loadPrevious","_x","_x2","_firstLeaf","_callee5","folderStore","folderFetcher","earliestSubfolder","_earliestSubfolder","y","month","d","leafObjects","msg","sortMe","_callee5$","_context5","_earliestSubfolder3","_callee4","kids","_callee4$","_context4","_suitable2","requested","force","_earliestSubfolder2","_x7","graph","Fetcher","trace","map","leafObject","any","firstLeaf","_x6"],"sources":["../../src/chat/dateFolder.js"],"sourcesContent":["/**\n * Contains the [[DateFolder]] class\n * This tracks data stored in dated folders and sub-folders\n *\n */\n\nimport * as debug from '../debug'\nimport { store } from 'solid-logic'\n\nimport * as ns from '../ns'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\n\n/**\n * Track back through the YYYY/MM/DD tree to find the previous/next day\n */\nexport class DateFolder {\n constructor (rootThing, leafFileName, membershipProperty) {\n this.root = rootThing\n this.rootFolder = rootThing.dir()\n this.leafFileName = leafFileName || 'index.ttl' // typically chat.ttl\n this.membershipProperty = membershipProperty || ns.wf('leafObject')\n }\n\n /* Generate the leaf document (rdf object) from date\n * @returns: <NamedNode> - document\n */\n leafDocumentFromDate (date) {\n // debug.log('incoming date: ' + date)\n const isoDate = date.toISOString() // Like \"2018-05-07T17:42:46.576Z\"\n let path = isoDate.split('T')[0].replace(/-/g, '/') // Like \"2018/05/07\"\n path = this.root.dir().uri + path + '/' + this.leafFileName\n return store.sym(path)\n }\n\n /* Generate a date object from the leaf file name\n */\n dateFromLeafDocument (doc) {\n const head = this.rootFolder.uri.length\n const str = doc.uri.slice(head, head + 10).replace(/\\//g, '-')\n // let date = new Date(str + 'Z') // GMT - but fails in FF - invalid format :-(\n const date = new Date(str) // not explicitly UTC but is assumed so in spec\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse\n debug.log('Date for ' + doc + ':' + date.toISOString())\n return date\n }\n\n async loadPrevious (date, backwards) {\n const thisDateFolder = this\n async function previousPeriod (file, level) {\n function younger (x) {\n if (backwards ? x.uri >= file.uri : x.uri <= file.uri) return false // later than we want or same -- looking for different\n return true\n }\n function suitable (x) {\n const tail = x.uri\n .slice(0, -1)\n .split('/')\n .slice(-1)[0]\n if (!'0123456789'.includes(tail[0])) return false // not numeric\n return true\n }\n\n async function lastNonEmpty (siblings) {\n siblings = siblings.filter(suitable)\n siblings.sort() // chronological order\n if (!backwards) siblings.reverse()\n if (level !== 3) return siblings.pop() // only length chck final leverl\n while (siblings.length) {\n const folder = siblings.pop()\n const leafDocument = store.sym(folder.uri + thisDateFolder.leafFileName)\n await store.fetcher.load(leafDocument)\n // files can have seealso links. skip ones with no leafObjects with a date\n if (\n store.statementsMatching(null, ns.dct('created'), null, leafDocument)\n .length > 0\n ) {\n return folder\n }\n }\n return null\n }\n // debug.log(' previousPeriod level' + level + ' file ' + file)\n const parent = file.dir()\n try {\n await store.fetcher.load(parent)\n let siblings = store.each(parent, ns.ldp('contains'))\n siblings = siblings.filter(younger)\n const folder = await lastNonEmpty(siblings)\n if (folder) return folder\n } catch (err) {\n if (err.response && err.response.status && err.response.status === 404) {\n debug.log('Error 404 for chat parent file ' + parent)\n } else {\n debug.log('*** Error NON 404 for chat parent file ' + parent)\n // statusTR.appendChild(widgets.errorMessageBlock(dom, err, 'pink'))\n throw (new Error(`*** ${err.message} for chat folder ${parent}`))\n }\n }\n\n if (level === 0) return null // 3:day, 2:month, 1: year 0: no\n\n const uncle = await previousPeriod(parent, level - 1)\n if (!uncle) return null // reached first ever\n await store.fetcher.load(uncle)\n const cousins = store.each(uncle, ns.ldp('contains'))\n const result = await lastNonEmpty(cousins)\n return result\n } // previousPeriod\n\n const folder = this.leafDocumentFromDate(date).dir()\n const found = await previousPeriod(folder, 3)\n if (found) {\n const doc = store.sym(found.uri + this.leafFileName)\n return this.dateFromLeafDocument(doc)\n }\n return null\n } // loadPrevious\n\n async firstLeaf (backwards) {\n // backwards -> last leafObject\n const folderStore = $rdf.graph()\n const folderFetcher = new $rdf.Fetcher(folderStore)\n async function earliestSubfolder (parent) {\n function suitable (x) {\n const tail = x.uri\n .slice(0, -1)\n .split('/')\n .slice(-1)[0]\n if (!'0123456789'.includes(tail[0])) return false // not numeric\n return true\n }\n debug.log(' parent ' + parent)\n delete folderFetcher.requested[parent.uri]\n // try {\n await folderFetcher.load(parent, { force: true }) // Force fetch as will have changed\n // }catch (err) {\n // }\n\n let kids = folderStore.each(parent, ns.ldp('contains'))\n kids = kids.filter(suitable)\n if (kids.length === 0) {\n throw new Error(' @@@ No children to parent2 ' + parent)\n }\n\n kids.sort()\n if (backwards) kids.reverse()\n return kids[0]\n }\n const y = await earliestSubfolder(this.root.dir())\n const month = await earliestSubfolder(y)\n const d = await earliestSubfolder(month)\n const leafDocument = $rdf.sym(d.uri + 'chat.ttl')\n await folderFetcher.load(leafDocument)\n const leafObjects = folderStore.each(\n this.root,\n this.membershipProperty,\n null,\n leafDocument\n )\n if (leafObjects.length === 0) {\n const msg =\n ' INCONSISTENCY -- no chat leafObject in file ' + leafDocument\n debug.trace(msg)\n throw new Error(msg)\n }\n const sortMe = leafObjects.map(leafObject => [\n folderStore.any(leafObject, ns.dct('created')),\n leafObject\n ])\n sortMe.sort()\n if (backwards) sortMe.reverse()\n debug.log(\n (backwards ? 'Latest' : 'Earliest') + ' leafObject is ' + sortMe[0][1]\n )\n return sortMe[0][1]\n } // firstleafObject\n} // class\n"],"mappings":"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"}