solid-ui 2.4.32 → 2.4.33-7939606c

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 (146) hide show
  1. package/dist/{670.solid-ui.min.js → 789.solid-ui.min.js} +1 -1
  2. package/dist/841.solid-ui.min.js +3 -0
  3. package/dist/841.solid-ui.min.js.map +1 -0
  4. package/dist/solid-ui.js +6854 -3587
  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.LICENSE.txt +7 -0
  8. package/dist/solid-ui.min.js.map +1 -1
  9. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +1 -1
  10. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +1 -1
  11. package/lib/acl/access-controller.js +6 -7
  12. package/lib/acl/access-controller.js.map +1 -1
  13. package/lib/acl/access-groups.js +5 -6
  14. package/lib/acl/access-groups.js.map +1 -1
  15. package/lib/acl/acl-control.js +3 -3
  16. package/lib/acl/acl-control.js.map +1 -1
  17. package/lib/acl/acl.js +15 -15
  18. package/lib/acl/acl.js.map +1 -1
  19. package/lib/acl/add-agent-buttons.js +8 -9
  20. package/lib/acl/add-agent-buttons.js.map +1 -1
  21. package/lib/acl/index.js.map +1 -1
  22. package/lib/acl/types.js.map +1 -1
  23. package/lib/chat/bookmarks.js +13 -48
  24. package/lib/chat/bookmarks.js.map +1 -1
  25. package/lib/chat/chatLogic.js +230 -106
  26. package/lib/chat/chatLogic.js.map +1 -1
  27. package/lib/chat/dateFolder.js +141 -139
  28. package/lib/chat/dateFolder.js.map +1 -1
  29. package/lib/chat/infinite.js +619 -433
  30. package/lib/chat/infinite.js.map +1 -1
  31. package/lib/chat/keys.js +7 -7
  32. package/lib/chat/keys.js.map +1 -1
  33. package/lib/chat/message.js +331 -199
  34. package/lib/chat/message.js.map +1 -1
  35. package/lib/chat/messageTools.js +460 -277
  36. package/lib/chat/messageTools.js.map +1 -1
  37. package/lib/chat/signature.js.map +1 -1
  38. package/lib/chat/thread.js +300 -209
  39. package/lib/chat/thread.js.map +1 -1
  40. package/lib/create/create.js +1 -1
  41. package/lib/create/create.js.map +1 -1
  42. package/lib/create/index.js.map +1 -1
  43. package/lib/create/types.js.map +1 -1
  44. package/lib/debug.js.map +1 -1
  45. package/lib/folders.js +1 -1
  46. package/lib/folders.js.map +1 -1
  47. package/lib/footer/index.js +3 -3
  48. package/lib/footer/index.js.map +1 -1
  49. package/lib/header/empty-profile.js.map +1 -1
  50. package/lib/header/index.js +5 -5
  51. package/lib/header/index.js.map +1 -1
  52. package/lib/iconBase.js.map +1 -1
  53. package/lib/icons/solid_logo.js.map +1 -1
  54. package/lib/index.js +1 -1
  55. package/lib/index.js.map +1 -1
  56. package/lib/log.js.map +1 -1
  57. package/lib/login/login.js +15 -15
  58. package/lib/login/login.js.map +1 -1
  59. package/lib/matrix/index.js.map +1 -1
  60. package/lib/matrix/matrix.js +1 -1
  61. package/lib/matrix/matrix.js.map +1 -1
  62. package/lib/matrix/types.js.map +1 -1
  63. package/lib/media/index.js.map +1 -1
  64. package/lib/media/media-capture.js +2 -2
  65. package/lib/media/media-capture.js.map +1 -1
  66. package/lib/messageArea.js +1 -1
  67. package/lib/messageArea.js.map +1 -1
  68. package/lib/noun_Camera_1618446_000000.js.map +1 -1
  69. package/lib/ns.js +1 -1
  70. package/lib/ns.js.map +1 -1
  71. package/lib/pad.js +29 -32
  72. package/lib/pad.js.map +1 -1
  73. package/lib/participation.js +11 -13
  74. package/lib/participation.js.map +1 -1
  75. package/lib/preferences.js +5 -1
  76. package/lib/preferences.js.map +1 -1
  77. package/lib/signup/config-default.js.map +1 -1
  78. package/lib/signup/signup.js.map +1 -1
  79. package/lib/stories/decorators.js.map +1 -1
  80. package/lib/style.js.map +1 -1
  81. package/lib/styleConstants.js.map +1 -1
  82. package/lib/style_multiSelect.js.map +1 -1
  83. package/lib/table.js +1 -1
  84. package/lib/table.js.map +1 -1
  85. package/lib/tabs.js +19 -23
  86. package/lib/tabs.js.map +1 -1
  87. package/lib/typings.d.js.map +1 -1
  88. package/lib/utils/headerFooterHelpers.js +1 -1
  89. package/lib/utils/headerFooterHelpers.js.map +1 -1
  90. package/lib/utils/index.js +1 -1
  91. package/lib/utils/index.js.map +1 -1
  92. package/lib/utils/keyHelpers/accessData.d.ts +2 -2
  93. package/lib/utils/keyHelpers/accessData.d.ts.map +1 -1
  94. package/lib/utils/keyHelpers/accessData.js +60 -116
  95. package/lib/utils/keyHelpers/accessData.js.map +1 -1
  96. package/lib/utils/keyHelpers/acl.js +16 -16
  97. package/lib/utils/keyHelpers/acl.js.map +1 -1
  98. package/lib/utils/keyHelpers/otherHelpers.d.ts +3 -0
  99. package/lib/utils/keyHelpers/otherHelpers.d.ts.map +1 -0
  100. package/lib/utils/keyHelpers/otherHelpers.js +22 -0
  101. package/lib/utils/keyHelpers/otherHelpers.js.map +1 -0
  102. package/lib/utils/label.js +1 -1
  103. package/lib/utils/label.js.map +1 -1
  104. package/lib/versionInfo.d.ts +17 -10
  105. package/lib/versionInfo.d.ts.map +1 -1
  106. package/lib/versionInfo.js +26 -19
  107. package/lib/versionInfo.js.map +1 -1
  108. package/lib/widgets/buttons/iconLinks.js.map +1 -1
  109. package/lib/widgets/buttons.js +1 -1
  110. package/lib/widgets/buttons.js.map +1 -1
  111. package/lib/widgets/dragAndDrop.js +1 -1
  112. package/lib/widgets/dragAndDrop.js.map +1 -1
  113. package/lib/widgets/error.js +1 -1
  114. package/lib/widgets/error.js.map +1 -1
  115. package/lib/widgets/forms/autocomplete/autocompleteBar.js +10 -10
  116. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
  117. package/lib/widgets/forms/autocomplete/autocompleteField.js +3 -3
  118. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  119. package/lib/widgets/forms/autocomplete/autocompletePicker.js +12 -12
  120. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  121. package/lib/widgets/forms/autocomplete/language.js +3 -3
  122. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  123. package/lib/widgets/forms/autocomplete/publicData.js +10 -10
  124. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  125. package/lib/widgets/forms/basic.js +1 -1
  126. package/lib/widgets/forms/basic.js.map +1 -1
  127. package/lib/widgets/forms/comment.js +1 -1
  128. package/lib/widgets/forms/comment.js.map +1 -1
  129. package/lib/widgets/forms/fieldFunction.js.map +1 -1
  130. package/lib/widgets/forms/fieldParams.js +1 -1
  131. package/lib/widgets/forms/fieldParams.js.map +1 -1
  132. package/lib/widgets/forms/formStyle.js +1 -1
  133. package/lib/widgets/forms/formStyle.js.map +1 -1
  134. package/lib/widgets/forms.js +13 -13
  135. package/lib/widgets/forms.js.map +1 -1
  136. package/lib/widgets/index.js +1 -1
  137. package/lib/widgets/index.js.map +1 -1
  138. package/lib/widgets/multiSelect.js +2 -3
  139. package/lib/widgets/multiSelect.js.map +1 -1
  140. package/lib/widgets/peoplePicker.js +6 -11
  141. package/lib/widgets/peoplePicker.js.map +1 -1
  142. package/lib/widgets/widgetHelpers.js.map +1 -1
  143. package/package.json +21 -21
  144. package/dist/805.solid-ui.min.js +0 -3
  145. package/dist/805.solid-ui.min.js.map +0 -1
  146. /package/dist/{805.solid-ui.min.js.LICENSE.txt → 841.solid-ui.min.js.LICENSE.txt} +0 -0
package/lib/acl/acl.js CHANGED
@@ -32,7 +32,7 @@ var utils = _interopRequireWildcard(require("../utils"));
32
32
  var debug = _interopRequireWildcard(require("../debug"));
33
33
  var _rdflib = require("rdflib");
34
34
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
35
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
35
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
36
36
  /**
37
37
  * Non-UI functions for access control.
38
38
  * See https://github.com/solidos/web-access-control-spec
@@ -157,7 +157,7 @@ function ACLunion(list) {
157
157
  */
158
158
  function loadUnionACL(subjectList, callbackFunction) {
159
159
  var aclList = [];
160
- var doList = function doList(list) {
160
+ var _doList = function doList(list) {
161
161
  if (list.length) {
162
162
  var doc = list.shift().doc();
163
163
  getACLorDefault(doc, function (ok, p2, targetDoc, targetACLDoc, defaultHolder, defaultACLDoc) {
@@ -165,14 +165,14 @@ function loadUnionACL(subjectList, callbackFunction) {
165
165
  if (!ok || !defaultHolder || !defaultACLDoc) return callbackFunction(ok, targetACLDoc);
166
166
  var acl = defa ? readACL(defaultHolder, defaultACLDoc) : readACL(targetDoc, targetACLDoc);
167
167
  aclList.push(acl);
168
- doList(list.slice(1));
168
+ _doList(list.slice(1));
169
169
  });
170
170
  } else {
171
171
  // all gone
172
172
  callbackFunction(true, ACLunion(aclList));
173
173
  }
174
174
  };
175
- doList(subjectList);
175
+ _doList(subjectList);
176
176
  }
177
177
 
178
178
  /**
@@ -219,21 +219,21 @@ function makeACLGraphbyCombo(kb, x, byCombo, aclDoc, main, defa) {
219
219
  return u.split('#')[1];
220
220
  }).join('');
221
221
  if (defa && !main) _short += 'Default'; // don't muddle authorizations
222
- var _a = kb.sym(aclDoc.uri + '#' + _short);
223
- kb.add(_a, ns.rdf('type'), ACL('Authorization'), aclDoc);
222
+ var a = kb.sym(aclDoc.uri + '#' + _short);
223
+ kb.add(a, ns.rdf('type'), ACL('Authorization'), aclDoc);
224
224
  if (main) {
225
- kb.add(_a, ACL('accessTo'), x, aclDoc);
225
+ kb.add(a, ACL('accessTo'), x, aclDoc);
226
226
  }
227
227
  if (defa) {
228
- kb.add(_a, ACL('default'), x, aclDoc);
228
+ kb.add(a, ACL('default'), x, aclDoc);
229
229
  }
230
230
  for (var i = 0; i < modeURIs.length; i++) {
231
- kb.add(_a, ACL('mode'), kb.sym(modeURIs[i]), aclDoc);
231
+ kb.add(a, ACL('mode'), kb.sym(modeURIs[i]), aclDoc);
232
232
  }
233
233
  for (var _i = 0; _i < pairs.length; _i++) {
234
234
  var pred = pairs[_i][0];
235
235
  var ag = pairs[_i][1];
236
- kb.add(_a, ACL(pred), kb.sym(ag), aclDoc);
236
+ kb.add(a, ACL(pred), kb.sym(ag), aclDoc);
237
237
  }
238
238
  }
239
239
  }
@@ -404,7 +404,7 @@ function getACLorDefault(doc, callbackFunction) {
404
404
  if (!ok) return callbackFunction(false, false, status, message);
405
405
 
406
406
  // Recursively search for the ACL file which gives default access
407
- var tryParent = function tryParent(uri) {
407
+ var _tryParent = function tryParent(uri) {
408
408
  if (uri.slice(-1) === '/') {
409
409
  uri = uri.slice(0, -1);
410
410
  }
@@ -421,7 +421,7 @@ function getACLorDefault(doc, callbackFunction) {
421
421
  } else if (status === 403) {
422
422
  return callbackFunction(false, true, status, "( default ACL file FORBIDDEN. Stop.".concat(uri, ")"));
423
423
  } else if (status === 404) {
424
- return tryParent(uri);
424
+ return _tryParent(uri);
425
425
  } else if (status !== 200) {
426
426
  return callbackFunction(false, true, status, "Error status '".concat(status, "' searching for default for ").concat(doc2));
427
427
  }
@@ -429,7 +429,7 @@ function getACLorDefault(doc, callbackFunction) {
429
429
  // statusBlock.textContent += (" ACCESS set at " + uri + ". End search.")
430
430
  var defaults = kb.each(undefined, ACL('default'), kb.sym(uri), defaultACLDoc).concat(kb.each(undefined, ACL('defaultForNew'), kb.sym(uri), defaultACLDoc));
431
431
  if (!defaults.length) {
432
- return tryParent(uri); // Keep searching
432
+ return _tryParent(uri); // Keep searching
433
433
  }
434
434
  var defaultHolder = kb.sym(uri);
435
435
  return callbackFunction(true, false, doc, aclDoc, defaultHolder, defaultACLDoc);
@@ -439,7 +439,7 @@ function getACLorDefault(doc, callbackFunction) {
439
439
  if (!ok) {
440
440
  return callbackFunction(false, false, status, "Error accessing Access Control information for ".concat(doc, ") ").concat(message));
441
441
  } else if (status === 404) {
442
- tryParent(doc.uri); // @@ construct default one - the server should do that
442
+ _tryParent(doc.uri); // @@ construct default one - the server should do that
443
443
  } else if (status === 403) {
444
444
  return callbackFunction(false, false, status, "(Sharing not available to you)".concat(message));
445
445
  } else if (status !== 200) {
@@ -495,7 +495,7 @@ function getProspectiveHolder(_x) {
495
495
  return _getProspectiveHolder.apply(this, arguments);
496
496
  }
497
497
  function _getProspectiveHolder() {
498
- _getProspectiveHolder = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(targetDirectory) {
498
+ _getProspectiveHolder = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(targetDirectory) {
499
499
  return _regenerator["default"].wrap(function _callee$(_context) {
500
500
  while (1) switch (_context.prev = _context.next) {
501
501
  case 0:
@@ -1 +1 @@
1
- {"version":3,"file":"acl.js","names":["ns","_interopRequireWildcard","require","_solidLogic","utils","debug","_rdflib","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","kb","solidLogicSingleton","store","adoptACLDefault","doc","aclDoc","defaultResource","defaultACLDoc","ACL","acl","isContainer","uri","slice","defaults","each","undefined","concat","proposed","reduce","accumulatedStatements","da","statementsMatching","rdf","st","kb2","graph","forEach","add","move","subject","predicate","object","sym","symbol","y","length","readACL","arguments","getDefaults","auths","getDefaultsFallback","ac","agent","agentClass","agentGroup","origin","originClass","keys","pred","mode","sameACL","b","contains","ACLunion","list","ag","_loop","k","loadUnionACL","subjectList","callbackFunction","aclList","doList","shift","getACLorDefault","ok","p2","targetDoc","targetACLDoc","defaultHolder","defa","push","ACLbyCombination","byCombo","combo","sort","combo2","join","makeACLGraph","x","makeACLGraphbyCombo","main","pairs","modeURIs","split","short","map","ACLToString","comboToString","str","initials","sameTerm","foaf","label","makeACLString","serialize","putACLObject","putACLbyCombo","_kb$updater","updater","put","message","_kb$fetcher","fetcher","unload","requested","fixIndividualCardACL","person","log","groups","vcard","fixIndividualACL","item","subjects","exists","union","setACL","docURI","aclText","any","ACL_LINK","Error","webOperation","value","data","contentType","then","res","error","nowOrWhenFetched","body","getACL","status","tryParent","right","lastIndexOf","left","indexOf","doc2","nonexistent","response","getProspectiveHolder","_x","_getProspectiveHolder","apply","_asyncToGenerator2","_regenerator","mark","_callee","targetDirectory","wrap","_callee$","_context","prev","next","abrupt","Promise","resolve","reject","isDirectACL","stop"],"sources":["../../src/acl/acl.ts"],"sourcesContent":["/**\n * Non-UI functions for access control.\n * See https://github.com/solidos/web-access-control-spec\n * for the spec that defines how ACL documents work.\n * @packageDocumentation\n */\n\nimport * as ns from '../ns'\nimport { solidLogicSingleton, ACL_LINK } from 'solid-logic'\nimport * as utils from '../utils'\nimport { AgentMapMap, AgentMapUnion, ComboList } from './types'\nimport * as debug from '../debug'\nimport { graph, Store, NamedNode, serialize, st, Statement, sym, LiveStore } from 'rdflib'\n\nconst kb = solidLogicSingleton.store\n\n/**\n * Take the \"default\" ACL and convert it into the equivalent ACL\n * which the resource would have had. Return it as a new separate store.\n * The \"defaultForNew\" predicate is also accepted, as a deprecated\n * synonym for \"default\".\n */\nexport function adoptACLDefault (\n doc: NamedNode,\n aclDoc: NamedNode,\n defaultResource: NamedNode,\n defaultACLDoc: NamedNode\n): Store {\n const ACL = ns.acl\n const isContainer = doc.uri.slice(-1) === '/' // Give default for all directories\n\n const defaults = kb\n .each(undefined, ACL('default'), defaultResource, defaultACLDoc)\n .concat(kb.each(undefined, ACL('defaultForNew'), defaultResource, defaultACLDoc))\n\n const proposed = defaults.reduce((accumulatedStatements, da) => accumulatedStatements\n .concat(kb.statementsMatching(da as NamedNode, ns.rdf('type'), ACL('Authorization'), defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('agent'), undefined, defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('agentClass'), undefined, defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('agentGroup'), undefined, defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('origin'), undefined, defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('originClass'), undefined, defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('mode'), undefined, defaultACLDoc))\n .concat(st(da as NamedNode, ACL('accessTo'), doc, defaultACLDoc))\n .concat(isContainer ? st(da as NamedNode, ACL('default'), doc, defaultACLDoc) : []), [] as Statement[])\n\n const kb2 = graph() // Potential - derived is kept apart\n proposed.forEach(st => kb2.add(move(st.subject), move(st.predicate), move(st.object), sym(aclDoc.uri)))\n return kb2 as LiveStore\n\n function move (symbol) {\n const y = defaultACLDoc.uri.length // The default ACL file\n return sym(\n symbol.uri.slice(0, y) === defaultACLDoc.uri\n ? aclDoc.uri + symbol.uri.slice(y)\n : symbol.uri\n )\n }\n}\n\n/**\n * Read and canonicalize the ACL for x in aclDoc\n *\n * Accumulate the access rights which each agent or class has\n */\nexport function readACL (\n doc: NamedNode,\n aclDoc: NamedNode,\n kb2: Store = kb,\n getDefaults: boolean = false\n): AgentMapMap {\n const auths: Array<NamedNode> = getDefaults\n ? getDefaultsFallback(kb2, ns)\n : kb2.each(undefined, ns.acl('accessTo'), doc)\n\n const ACL = ns.acl\n const ac = {\n agent: {},\n agentClass: {},\n agentGroup: {},\n origin: {},\n originClass: {}\n }\n Object.keys(ac).forEach(pred => {\n auths.forEach(function (a) {\n (kb2.each(a, ACL('mode')) as Array<NamedNode>).forEach(function (mode) {\n (kb2.each(a, ACL(pred)) as Array<NamedNode>).forEach(function (agent) {\n ac[pred][agent.uri] = ac[pred][agent.uri] || {}\n ac[pred][agent.uri][mode.uri] = a // could be \"true\" but leave pointer just in case\n })\n })\n })\n })\n return ac\n\n function getDefaultsFallback (kb, ns) {\n return kb\n .each(undefined, ns.acl('default'), doc)\n .concat(kb.each(undefined, ns.acl('defaultForNew'), doc))\n }\n}\n\n/**\n * Compare two ACLs\n */\nexport function sameACL (a: AgentMapMap | AgentMapUnion, b: AgentMapMap | AgentMapUnion): boolean {\n const contains = function (a, b) {\n for (const pred in {\n agent: true,\n agentClass: true,\n agentGroup: true,\n origin: true,\n originClass: true\n }) {\n if (a[pred]) {\n for (const agent in a[pred]) {\n for (const mode in a[pred][agent]) {\n if (!b[pred][agent] || !b[pred][agent][mode]) {\n return false\n }\n }\n }\n }\n }\n return true\n }\n return contains(a, b) && contains(b, a)\n}\n\n/**\n * Union N ACLs\n */\nexport function ACLunion (list: Array<AgentMapMap | AgentMapUnion>): AgentMapUnion {\n const b = list[0]\n let a, ag\n for (let k = 1; k < list.length; k++) {\n ;['agent', 'agentClass', 'agentGroup', 'origin', 'originClass'].forEach(\n function (pred) {\n a = list[k]\n if (a[pred]) {\n for (ag in a[pred]) {\n for (const mode in a[pred][ag]) {\n if (!b[pred][ag]) b[pred][ag] = []\n b[pred][ag][mode] = true\n }\n }\n }\n }\n )\n }\n return b as AgentMapUnion\n}\n\ntype loadUnionACLCallback = (ok: boolean, message?: string | NamedNode | AgentMapUnion | AgentMapMap) => void\n\n/**\n * Merge ACLs lists from things to form union\n */\nexport function loadUnionACL (subjectList: Array<NamedNode>, callbackFunction: loadUnionACLCallback): void {\n const aclList: Array<AgentMapMap> = []\n const doList = function (list) {\n if (list.length) {\n const doc = list.shift().doc()\n getACLorDefault(doc, function (\n ok,\n p2,\n targetDoc,\n targetACLDoc,\n defaultHolder,\n defaultACLDoc\n ) {\n const defa = !p2\n if (!ok || !defaultHolder || !defaultACLDoc) return callbackFunction(ok, targetACLDoc)\n const acl = defa\n ? readACL(defaultHolder, defaultACLDoc)\n : readACL(targetDoc as NamedNode, targetACLDoc as NamedNode)\n aclList.push(acl)\n doList(list.slice(1))\n })\n } else {\n // all gone\n callbackFunction(true, ACLunion(aclList))\n }\n }\n doList(subjectList)\n}\n\n/**\n * Represents these as an RDF graph by combination of modes\n *\n * Each agent can only be in one place in this model, one combination of modes.\n * Combos are like full control, read append, read only etc.\n */\nexport function ACLbyCombination (ac: AgentMapMap | AgentMapUnion): ComboList {\n const byCombo = {}\n ;['agent', 'agentClass', 'agentGroup', 'origin', 'originClass'].forEach(function (pred) {\n for (const agent in ac[pred]) {\n const combo: string[] = []\n for (const mode in ac[pred][agent]) {\n combo.push(mode)\n }\n combo.sort()\n const combo2 = combo.join('\\n')\n if (!byCombo[combo2]) byCombo[combo2] = []\n byCombo[combo2].push([pred, agent])\n }\n })\n return byCombo\n}\n\n/**\n * Write ACL graph to store from AC\n */\nexport function makeACLGraph (kb: Store, x: NamedNode, ac: AgentMapMap, aclDoc: NamedNode): void {\n const byCombo = ACLbyCombination(ac)\n return makeACLGraphbyCombo(kb, x, byCombo, aclDoc)\n}\n\n/**\n * Write ACL graph to store from combo\n */\nexport function makeACLGraphbyCombo (\n kb: Store,\n x: NamedNode,\n byCombo: ComboList,\n aclDoc: NamedNode,\n main?: boolean,\n defa?: boolean\n): void {\n const ACL = ns.acl\n for (const combo in byCombo) {\n const pairs = byCombo[combo]\n if (!pairs.length) continue // do not add to store when no agent\n const modeURIs = combo.split('\\n')\n let short = modeURIs\n .map(function (u) {\n return u.split('#')[1]\n })\n .join('')\n if (defa && !main) short += 'Default' // don't muddle authorizations\n const a = kb.sym(aclDoc.uri + '#' + short)\n kb.add(a, ns.rdf('type'), ACL('Authorization'), aclDoc)\n if (main) {\n kb.add(a, ACL('accessTo'), x, aclDoc)\n }\n if (defa) {\n kb.add(a, ACL('default'), x, aclDoc)\n }\n for (let i = 0; i < modeURIs.length; i++) {\n kb.add(a, ACL('mode'), kb.sym(modeURIs[i]), aclDoc)\n }\n for (let i = 0; i < pairs.length; i++) {\n const pred = pairs[i][0]\n const ag = pairs[i][1]\n kb.add(a, ACL(pred), kb.sym(ag), aclDoc)\n }\n }\n}\n\n/**\n * Debugging short strings for dumping ACL\n * and possibly in the UI\n */\nexport function ACLToString (ac: AgentMapMap): string {\n return comboToString(ACLbyCombination(ac))\n}\n\n/**\n * Convert a [[ComboList]] to a string\n */\nexport function comboToString (byCombo: ComboList): string {\n let str = ''\n for (const combo in byCombo) {\n const modeURIs = combo.split('\\n')\n const initials = modeURIs\n .map(function (u) {\n return u.split('#')[1][0]\n })\n .join('')\n str += initials + ':'\n const pairs = byCombo[combo]\n for (let i = 0; i < pairs.length; i++) {\n const pred = pairs[i][0]\n const ag = sym(pairs[i][1])\n str += pred === 'agent' ? '@' : ''\n str += ag.sameTerm(ns.foaf('Agent')) ? '*' : utils.label(ag)\n if (i < pairs.length - 1) str += ','\n }\n str += ';'\n }\n return '{' + str.slice(0, -1) + '}' // drop extra semicolon\n}\n\n/**\n * Write ACL graph as Turtle\n */\nexport function makeACLString (x: NamedNode, ac: AgentMapMap, aclDoc: NamedNode): string {\n const kb2 = graph()\n makeACLGraph(kb2, x, ac, aclDoc)\n return serialize(aclDoc, kb2, aclDoc.uri, 'text/turtle') || ''\n}\n\n/**\n * Write ACL graph to web\n */\nexport function putACLObject (\n kb: LiveStore,\n x: NamedNode,\n ac: AgentMapMap | AgentMapUnion,\n aclDoc: NamedNode,\n callbackFunction: (ok: boolean, message?: string) => void\n): void {\n const byCombo = ACLbyCombination(ac)\n return putACLbyCombo(kb, x, byCombo, aclDoc, callbackFunction)\n}\n\n/**\n * Write ACL graph to web from a [[ComboList]]\n */\nexport function putACLbyCombo (\n kb: LiveStore,\n x: NamedNode,\n byCombo: ComboList,\n aclDoc: NamedNode,\n callbackFunction: (ok: boolean, message?: string) => void\n): void {\n const kb2 = graph()\n makeACLGraphbyCombo(kb2, x, byCombo, aclDoc, true)\n\n // const str = makeACLString = function(x, ac, aclDoc)\n kb.updater?.put(\n aclDoc,\n kb2.statementsMatching(undefined, undefined, undefined, aclDoc),\n 'text/turtle',\n function (uri, ok, message) {\n if (!ok) {\n callbackFunction(ok, message)\n } else {\n kb.fetcher?.unload(aclDoc)\n makeACLGraphbyCombo(kb, x, byCombo, aclDoc, true)\n kb.fetcher!.requested[aclDoc.uri] = 'done' // missing: save headers\n callbackFunction(ok)\n }\n }\n )\n}\n\ntype fixIndividualCardACLCallback = (ok: boolean, message?: string | NamedNode | AgentMapUnion | AgentMapMap) => void\ntype fixIndividualACLCallback = (ok: boolean, message?: string | NamedNode | AgentMapUnion | AgentMapMap) => void\n\n/**\n * Fix the ACl for an individual card as a function of the groups it is in\n *\n * All group files must be loaded first\n */\nexport function fixIndividualCardACL (person: NamedNode, log: Function, callbackFunction: fixIndividualCardACLCallback): void {\n const groups = kb.each(undefined, ns.vcard('hasMember'), person) as NamedNode[]\n // const doc = person.doc()\n if (groups) {\n fixIndividualACL(person, groups, log, callbackFunction)\n } else {\n log('This card is in no groups')\n callbackFunction(true) // fine, no requirements to access. default should be ok\n }\n // @@ if no groups, then use default for People container or the book top container.?\n}\n\n/**\n * This function is used by [[fixIndividualCardACL]]\n */\nexport function fixIndividualACL (item: NamedNode, subjects: Array<NamedNode>, log: Function, callbackFunction: fixIndividualACLCallback): void {\n log = log || debug.log\n const doc = item.doc()\n getACLorDefault(doc, function (\n ok,\n exists,\n targetDoc,\n targetACLDoc,\n defaultHolder,\n defaultACLDoc\n ) {\n if (!ok || !defaultHolder || !defaultACLDoc) return callbackFunction(false, targetACLDoc) // ie message\n const ac = exists\n ? readACL(targetDoc as NamedNode, targetACLDoc as NamedNode)\n : readACL(defaultHolder, defaultACLDoc)\n loadUnionACL(subjects, function (ok, union) {\n if (!ok) return callbackFunction(false, union)\n if (sameACL(union as AgentMapMap | AgentMapUnion, ac)) {\n log('Nice - same ACL. no change ' + utils.label(item) + ' ' + doc)\n } else {\n log('Group ACLs differ for ' + utils.label(item) + ' ' + doc)\n\n // log(\"Group ACLs: \" + makeACLString(targetDoc, union, targetACLDoc))\n // log((exists ? \"Previous set\" : \"Default\") + \" ACLs: \" +\n // makeACLString(targetDoc, ac, targetACLDoc))\n\n putACLObject(\n kb as unknown as LiveStore,\n targetDoc as NamedNode,\n union as AgentMapMap | AgentMapUnion,\n targetACLDoc as NamedNode,\n callbackFunction\n )\n }\n })\n })\n}\n\n/**\n * Set an ACL\n */\nexport function setACL (\n docURI: NamedNode,\n aclText: string,\n callbackFunction: (ok: boolean, message: string) => void\n): void {\n const aclDoc = kb.any(\n docURI,\n ACL_LINK\n ) // @@ check that this get set by web.js\n if (!kb.fetcher) {\n throw new Error('Store has no fetcher')\n }\n if (aclDoc) {\n // Great we already know where it is\n kb.fetcher\n .webOperation('PUT', aclDoc.value, {\n data: aclText,\n contentType: 'text/turtle'\n })\n .then((res) => {\n callbackFunction(res.ok, res.error || '')\n }) // @@@ check params\n } else {\n kb.fetcher.nowOrWhenFetched(docURI, undefined, function (ok, body) {\n if (!ok) return callbackFunction(ok, 'Gettting headers for ACL: ' + body)\n const aclDoc = kb.any(\n docURI,\n ACL_LINK\n ) // @@ check that this get set by web.js\n if (!aclDoc) {\n // complainIfBad(false, \"No Link rel=ACL header for \" + docURI)\n callbackFunction(false, 'No Link rel=ACL header for ' + docURI)\n } else {\n if (!kb.fetcher) {\n throw new Error('Store has no fetcher')\n }\n kb.fetcher\n .webOperation('PUT', aclDoc.value, {\n data: aclText,\n contentType: 'text/turtle'\n })\n .then((res) => {\n callbackFunction(res.ok, res.error || '')\n })\n }\n })\n }\n}\n\n/**\n * Get ACL file or default if necessary\n *\n * @param callbackFunction Will be called in the following ways, in the following cases:\n * * `callbackFunction(true, true, doc, aclDoc)` if the ACL did exist\n * * `callbackFunction(true, false, doc, aclDoc, defaultHolder, defaultACLDoc)` if the ACL file did not exist but a default did\n * * `callbackFunction(false, false, status, message)` when there was an error getting the original\n * * `callbackFunction(false, true, status, message)` when there was an error getting the default\n */\nexport function getACLorDefault (\n doc: NamedNode,\n callbackFunction: (\n a: boolean,\n b: boolean,\n statusOrMessage: number | NamedNode,\n message: string | NamedNode,\n c?: NamedNode,\n d?: NamedNode\n ) => void\n): void {\n getACL(doc, function (ok, status, aclDoc, message): string | void {\n const ACL = ns.acl\n if (!ok) return callbackFunction(false, false, status as number, message as string)\n\n // Recursively search for the ACL file which gives default access\n const tryParent = function (uri) {\n if (uri.slice(-1) === '/') {\n uri = uri.slice(0, -1)\n }\n const right = uri.lastIndexOf('/')\n const left = uri.indexOf('/', uri.indexOf('//') + 2)\n if (left > right) {\n return callbackFunction(false, true, 404, 'Found no ACL resource')\n }\n uri = uri.slice(0, right + 1)\n const doc2 = sym(uri)\n getACL(doc2, function (ok, status, defaultACLDoc: any): NamedNode | void {\n if (!ok) {\n return callbackFunction(\n false,\n true,\n status as number,\n `( No ACL pointer ${uri} ${status})${defaultACLDoc}`\n ) as void\n } else if (status === 403) {\n return callbackFunction(\n false,\n true,\n status,\n `( default ACL file FORBIDDEN. Stop.${uri})`\n )\n } else if (status === 404) {\n return tryParent(uri)\n } else if (status !== 200) {\n return callbackFunction(\n false,\n true,\n status as number,\n `Error status '${status}' searching for default for ${doc2}`\n )\n }\n // 200\n // statusBlock.textContent += (\" ACCESS set at \" + uri + \". End search.\")\n const defaults = kb\n .each(undefined, ACL('default'), kb.sym(uri), defaultACLDoc)\n .concat(\n kb.each(undefined, ACL('defaultForNew'), kb.sym(uri), defaultACLDoc)\n )\n if (!defaults.length) {\n return tryParent(uri) // Keep searching\n }\n const defaultHolder = kb.sym(uri)\n return callbackFunction(\n true,\n false,\n doc,\n aclDoc as NamedNode,\n defaultHolder,\n defaultACLDoc as NamedNode\n )\n })\n } // tryParent\n\n if (!ok) {\n return callbackFunction(\n false,\n false,\n status as number,\n `Error accessing Access Control information for ${doc}) ${message}`\n )\n } else if (status === 404) {\n tryParent(doc.uri) // @@ construct default one - the server should do that\n } else if (status === 403) {\n return callbackFunction(\n false,\n false,\n status,\n `(Sharing not available to you)${message}`\n )\n } else if (status !== 200) {\n return callbackFunction(\n false,\n false,\n status as number,\n `Error ${status} accessing Access Control information for ${doc}: ${message}`\n )\n } else {\n // 200\n return callbackFunction(true, true, doc, aclDoc as NamedNode)\n }\n }) // Call to getACL\n}\n\n/**\n * Calls back `(ok, status, acldoc, message)` as follows\n *\n * * `(false, 900, errormessage)` if no link header\n * * `(true, 403, documentSymbol, fileaccesserror)` if not authorized\n * * `(true, 404, documentSymbol, fileaccesserror)` if does not exist\n * * `(true, 200, documentSymbol)` if file exists and read OK\n */\nexport function getACL (\n doc: NamedNode,\n callbackFunction: (\n ok: boolean,\n messageOrStatus: number | string,\n messageOrDoc?: NamedNode | string,\n message?: string\n ) => void\n): void {\n if (!kb.fetcher) {\n throw new Error('kb has no fetcher')\n }\n kb.fetcher.nowOrWhenFetched(doc, undefined, function (ok, body) {\n if (!ok) {\n return callbackFunction(ok, `Can't get headers to find ACL for ${doc}: ${body}`)\n }\n const aclDoc = kb.any(\n doc,\n ACL_LINK\n ) // @@ check that this get set by web.js\n if (!aclDoc) {\n callbackFunction(false, 900, `No Link rel=ACL header for ${doc}`)\n } else {\n if (!kb.fetcher) {\n throw new Error('kb has no fetcher')\n }\n if (kb.fetcher.nonexistent[aclDoc.value]) {\n return callbackFunction(\n true,\n 404,\n aclDoc as NamedNode,\n `ACL file ${aclDoc} does not exist.`\n )\n }\n kb.fetcher.nowOrWhenFetched(aclDoc as NamedNode, undefined, function (\n ok,\n message,\n response\n ) {\n if (!ok) {\n callbackFunction(\n true,\n response.status,\n aclDoc as NamedNode,\n `Can't read Access Control File ${aclDoc}: ${message}`\n )\n } else {\n callbackFunction(true, 200, aclDoc as NamedNode)\n }\n })\n }\n })\n}\n\n/**\n * Calls [[getACLorDefault]] and then (?)\n */\nexport async function getProspectiveHolder (targetDirectory: string): Promise<NamedNode | undefined> {\n return new Promise((resolve, reject) => getACLorDefault(sym(targetDirectory), (\n ok,\n isDirectACL,\n targetDoc,\n targetACLDoc,\n defaultHolder\n ) => {\n if (ok) {\n return resolve((isDirectACL ? targetDoc : defaultHolder) as NamedNode)\n }\n return reject(new Error(`Error loading ${targetDirectory}`))\n }))\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"acl.js","names":["ns","_interopRequireWildcard","require","_solidLogic","utils","debug","_rdflib","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","kb","solidLogicSingleton","store","adoptACLDefault","doc","aclDoc","defaultResource","defaultACLDoc","ACL","acl","isContainer","uri","slice","defaults","each","undefined","concat","proposed","reduce","accumulatedStatements","da","statementsMatching","rdf","st","kb2","graph","forEach","add","move","subject","predicate","object","sym","symbol","y","length","readACL","arguments","getDefaults","auths","getDefaultsFallback","ac","agent","agentClass","agentGroup","origin","originClass","keys","pred","mode","sameACL","b","contains","ACLunion","list","ag","_loop","k","loadUnionACL","subjectList","callbackFunction","aclList","doList","shift","getACLorDefault","ok","p2","targetDoc","targetACLDoc","defaultHolder","defa","push","ACLbyCombination","byCombo","combo","sort","combo2","join","makeACLGraph","x","makeACLGraphbyCombo","main","pairs","modeURIs","split","short","map","ACLToString","comboToString","str","initials","sameTerm","foaf","label","makeACLString","serialize","putACLObject","putACLbyCombo","_kb$updater","updater","put","message","_kb$fetcher","fetcher","unload","requested","fixIndividualCardACL","person","log","groups","vcard","fixIndividualACL","item","subjects","exists","union","setACL","docURI","aclText","any","ACL_LINK","Error","webOperation","value","data","contentType","then","res","error","nowOrWhenFetched","body","getACL","status","tryParent","right","lastIndexOf","left","indexOf","doc2","nonexistent","response","getProspectiveHolder","_x","_getProspectiveHolder","apply","_asyncToGenerator2","_regenerator","mark","_callee","targetDirectory","wrap","_callee$","_context","prev","next","abrupt","Promise","resolve","reject","isDirectACL","stop"],"sources":["../../src/acl/acl.ts"],"sourcesContent":["/**\n * Non-UI functions for access control.\n * See https://github.com/solidos/web-access-control-spec\n * for the spec that defines how ACL documents work.\n * @packageDocumentation\n */\n\nimport * as ns from '../ns'\nimport { solidLogicSingleton, ACL_LINK } from 'solid-logic'\nimport * as utils from '../utils'\nimport { AgentMapMap, AgentMapUnion, ComboList } from './types'\nimport * as debug from '../debug'\nimport { graph, Store, NamedNode, serialize, st, Statement, sym, LiveStore } from 'rdflib'\n\nconst kb = solidLogicSingleton.store\n\n/**\n * Take the \"default\" ACL and convert it into the equivalent ACL\n * which the resource would have had. Return it as a new separate store.\n * The \"defaultForNew\" predicate is also accepted, as a deprecated\n * synonym for \"default\".\n */\nexport function adoptACLDefault (\n doc: NamedNode,\n aclDoc: NamedNode,\n defaultResource: NamedNode,\n defaultACLDoc: NamedNode\n): Store {\n const ACL = ns.acl\n const isContainer = doc.uri.slice(-1) === '/' // Give default for all directories\n\n const defaults = kb\n .each(undefined, ACL('default'), defaultResource, defaultACLDoc)\n .concat(kb.each(undefined, ACL('defaultForNew'), defaultResource, defaultACLDoc))\n\n const proposed = defaults.reduce((accumulatedStatements, da) => accumulatedStatements\n .concat(kb.statementsMatching(da as NamedNode, ns.rdf('type'), ACL('Authorization'), defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('agent'), undefined, defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('agentClass'), undefined, defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('agentGroup'), undefined, defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('origin'), undefined, defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('originClass'), undefined, defaultACLDoc))\n .concat(kb.statementsMatching(da as NamedNode, ACL('mode'), undefined, defaultACLDoc))\n .concat(st(da as NamedNode, ACL('accessTo'), doc, defaultACLDoc))\n .concat(isContainer ? st(da as NamedNode, ACL('default'), doc, defaultACLDoc) : []), [] as Statement[])\n\n const kb2 = graph() // Potential - derived is kept apart\n proposed.forEach(st => kb2.add(move(st.subject), move(st.predicate), move(st.object), sym(aclDoc.uri)))\n return kb2 as LiveStore\n\n function move (symbol) {\n const y = defaultACLDoc.uri.length // The default ACL file\n return sym(\n symbol.uri.slice(0, y) === defaultACLDoc.uri\n ? aclDoc.uri + symbol.uri.slice(y)\n : symbol.uri\n )\n }\n}\n\n/**\n * Read and canonicalize the ACL for x in aclDoc\n *\n * Accumulate the access rights which each agent or class has\n */\nexport function readACL (\n doc: NamedNode,\n aclDoc: NamedNode,\n kb2: Store = kb,\n getDefaults: boolean = false\n): AgentMapMap {\n const auths: Array<NamedNode> = getDefaults\n ? getDefaultsFallback(kb2, ns)\n : kb2.each(undefined, ns.acl('accessTo'), doc)\n\n const ACL = ns.acl\n const ac = {\n agent: {},\n agentClass: {},\n agentGroup: {},\n origin: {},\n originClass: {}\n }\n Object.keys(ac).forEach(pred => {\n auths.forEach(function (a) {\n (kb2.each(a, ACL('mode')) as Array<NamedNode>).forEach(function (mode) {\n (kb2.each(a, ACL(pred)) as Array<NamedNode>).forEach(function (agent) {\n ac[pred][agent.uri] = ac[pred][agent.uri] || {}\n ac[pred][agent.uri][mode.uri] = a // could be \"true\" but leave pointer just in case\n })\n })\n })\n })\n return ac\n\n function getDefaultsFallback (kb, ns) {\n return kb\n .each(undefined, ns.acl('default'), doc)\n .concat(kb.each(undefined, ns.acl('defaultForNew'), doc))\n }\n}\n\n/**\n * Compare two ACLs\n */\nexport function sameACL (a: AgentMapMap | AgentMapUnion, b: AgentMapMap | AgentMapUnion): boolean {\n const contains = function (a, b) {\n for (const pred in {\n agent: true,\n agentClass: true,\n agentGroup: true,\n origin: true,\n originClass: true\n }) {\n if (a[pred]) {\n for (const agent in a[pred]) {\n for (const mode in a[pred][agent]) {\n if (!b[pred][agent] || !b[pred][agent][mode]) {\n return false\n }\n }\n }\n }\n }\n return true\n }\n return contains(a, b) && contains(b, a)\n}\n\n/**\n * Union N ACLs\n */\nexport function ACLunion (list: Array<AgentMapMap | AgentMapUnion>): AgentMapUnion {\n const b = list[0]\n let a, ag\n for (let k = 1; k < list.length; k++) {\n ;['agent', 'agentClass', 'agentGroup', 'origin', 'originClass'].forEach(\n function (pred) {\n a = list[k]\n if (a[pred]) {\n for (ag in a[pred]) {\n for (const mode in a[pred][ag]) {\n if (!b[pred][ag]) b[pred][ag] = []\n b[pred][ag][mode] = true\n }\n }\n }\n }\n )\n }\n return b as AgentMapUnion\n}\n\ntype loadUnionACLCallback = (ok: boolean, message?: string | NamedNode | AgentMapUnion | AgentMapMap) => void\n\n/**\n * Merge ACLs lists from things to form union\n */\nexport function loadUnionACL (subjectList: Array<NamedNode>, callbackFunction: loadUnionACLCallback): void {\n const aclList: Array<AgentMapMap> = []\n const doList = function (list) {\n if (list.length) {\n const doc = list.shift().doc()\n getACLorDefault(doc, function (\n ok,\n p2,\n targetDoc,\n targetACLDoc,\n defaultHolder,\n defaultACLDoc\n ) {\n const defa = !p2\n if (!ok || !defaultHolder || !defaultACLDoc) return callbackFunction(ok, targetACLDoc)\n const acl = defa\n ? readACL(defaultHolder, defaultACLDoc)\n : readACL(targetDoc as NamedNode, targetACLDoc as NamedNode)\n aclList.push(acl)\n doList(list.slice(1))\n })\n } else {\n // all gone\n callbackFunction(true, ACLunion(aclList))\n }\n }\n doList(subjectList)\n}\n\n/**\n * Represents these as an RDF graph by combination of modes\n *\n * Each agent can only be in one place in this model, one combination of modes.\n * Combos are like full control, read append, read only etc.\n */\nexport function ACLbyCombination (ac: AgentMapMap | AgentMapUnion): ComboList {\n const byCombo = {}\n ;['agent', 'agentClass', 'agentGroup', 'origin', 'originClass'].forEach(function (pred) {\n for (const agent in ac[pred]) {\n const combo: string[] = []\n for (const mode in ac[pred][agent]) {\n combo.push(mode)\n }\n combo.sort()\n const combo2 = combo.join('\\n')\n if (!byCombo[combo2]) byCombo[combo2] = []\n byCombo[combo2].push([pred, agent])\n }\n })\n return byCombo\n}\n\n/**\n * Write ACL graph to store from AC\n */\nexport function makeACLGraph (kb: Store, x: NamedNode, ac: AgentMapMap, aclDoc: NamedNode): void {\n const byCombo = ACLbyCombination(ac)\n return makeACLGraphbyCombo(kb, x, byCombo, aclDoc)\n}\n\n/**\n * Write ACL graph to store from combo\n */\nexport function makeACLGraphbyCombo (\n kb: Store,\n x: NamedNode,\n byCombo: ComboList,\n aclDoc: NamedNode,\n main?: boolean,\n defa?: boolean\n): void {\n const ACL = ns.acl\n for (const combo in byCombo) {\n const pairs = byCombo[combo]\n if (!pairs.length) continue // do not add to store when no agent\n const modeURIs = combo.split('\\n')\n let short = modeURIs\n .map(function (u) {\n return u.split('#')[1]\n })\n .join('')\n if (defa && !main) short += 'Default' // don't muddle authorizations\n const a = kb.sym(aclDoc.uri + '#' + short)\n kb.add(a, ns.rdf('type'), ACL('Authorization'), aclDoc)\n if (main) {\n kb.add(a, ACL('accessTo'), x, aclDoc)\n }\n if (defa) {\n kb.add(a, ACL('default'), x, aclDoc)\n }\n for (let i = 0; i < modeURIs.length; i++) {\n kb.add(a, ACL('mode'), kb.sym(modeURIs[i]), aclDoc)\n }\n for (let i = 0; i < pairs.length; i++) {\n const pred = pairs[i][0]\n const ag = pairs[i][1]\n kb.add(a, ACL(pred), kb.sym(ag), aclDoc)\n }\n }\n}\n\n/**\n * Debugging short strings for dumping ACL\n * and possibly in the UI\n */\nexport function ACLToString (ac: AgentMapMap): string {\n return comboToString(ACLbyCombination(ac))\n}\n\n/**\n * Convert a [[ComboList]] to a string\n */\nexport function comboToString (byCombo: ComboList): string {\n let str = ''\n for (const combo in byCombo) {\n const modeURIs = combo.split('\\n')\n const initials = modeURIs\n .map(function (u) {\n return u.split('#')[1][0]\n })\n .join('')\n str += initials + ':'\n const pairs = byCombo[combo]\n for (let i = 0; i < pairs.length; i++) {\n const pred = pairs[i][0]\n const ag = sym(pairs[i][1])\n str += pred === 'agent' ? '@' : ''\n str += ag.sameTerm(ns.foaf('Agent')) ? '*' : utils.label(ag)\n if (i < pairs.length - 1) str += ','\n }\n str += ';'\n }\n return '{' + str.slice(0, -1) + '}' // drop extra semicolon\n}\n\n/**\n * Write ACL graph as Turtle\n */\nexport function makeACLString (x: NamedNode, ac: AgentMapMap, aclDoc: NamedNode): string {\n const kb2 = graph()\n makeACLGraph(kb2, x, ac, aclDoc)\n return serialize(aclDoc, kb2, aclDoc.uri, 'text/turtle') || ''\n}\n\n/**\n * Write ACL graph to web\n */\nexport function putACLObject (\n kb: LiveStore,\n x: NamedNode,\n ac: AgentMapMap | AgentMapUnion,\n aclDoc: NamedNode,\n callbackFunction: (ok: boolean, message?: string) => void\n): void {\n const byCombo = ACLbyCombination(ac)\n return putACLbyCombo(kb, x, byCombo, aclDoc, callbackFunction)\n}\n\n/**\n * Write ACL graph to web from a [[ComboList]]\n */\nexport function putACLbyCombo (\n kb: LiveStore,\n x: NamedNode,\n byCombo: ComboList,\n aclDoc: NamedNode,\n callbackFunction: (ok: boolean, message?: string) => void\n): void {\n const kb2 = graph()\n makeACLGraphbyCombo(kb2, x, byCombo, aclDoc, true)\n\n // const str = makeACLString = function(x, ac, aclDoc)\n kb.updater?.put(\n aclDoc,\n kb2.statementsMatching(undefined, undefined, undefined, aclDoc),\n 'text/turtle',\n function (uri, ok, message) {\n if (!ok) {\n callbackFunction(ok, message)\n } else {\n kb.fetcher?.unload(aclDoc)\n makeACLGraphbyCombo(kb, x, byCombo, aclDoc, true)\n kb.fetcher!.requested[aclDoc.uri] = 'done' // missing: save headers\n callbackFunction(ok)\n }\n }\n )\n}\n\ntype fixIndividualCardACLCallback = (ok: boolean, message?: string | NamedNode | AgentMapUnion | AgentMapMap) => void\ntype fixIndividualACLCallback = (ok: boolean, message?: string | NamedNode | AgentMapUnion | AgentMapMap) => void\n\n/**\n * Fix the ACl for an individual card as a function of the groups it is in\n *\n * All group files must be loaded first\n */\nexport function fixIndividualCardACL (person: NamedNode, log: Function, callbackFunction: fixIndividualCardACLCallback): void {\n const groups = kb.each(undefined, ns.vcard('hasMember'), person) as NamedNode[]\n // const doc = person.doc()\n if (groups) {\n fixIndividualACL(person, groups, log, callbackFunction)\n } else {\n log('This card is in no groups')\n callbackFunction(true) // fine, no requirements to access. default should be ok\n }\n // @@ if no groups, then use default for People container or the book top container.?\n}\n\n/**\n * This function is used by [[fixIndividualCardACL]]\n */\nexport function fixIndividualACL (item: NamedNode, subjects: Array<NamedNode>, log: Function, callbackFunction: fixIndividualACLCallback): void {\n log = log || debug.log\n const doc = item.doc()\n getACLorDefault(doc, function (\n ok,\n exists,\n targetDoc,\n targetACLDoc,\n defaultHolder,\n defaultACLDoc\n ) {\n if (!ok || !defaultHolder || !defaultACLDoc) return callbackFunction(false, targetACLDoc) // ie message\n const ac = exists\n ? readACL(targetDoc as NamedNode, targetACLDoc as NamedNode)\n : readACL(defaultHolder, defaultACLDoc)\n loadUnionACL(subjects, function (ok, union) {\n if (!ok) return callbackFunction(false, union)\n if (sameACL(union as AgentMapMap | AgentMapUnion, ac)) {\n log('Nice - same ACL. no change ' + utils.label(item) + ' ' + doc)\n } else {\n log('Group ACLs differ for ' + utils.label(item) + ' ' + doc)\n\n // log(\"Group ACLs: \" + makeACLString(targetDoc, union, targetACLDoc))\n // log((exists ? \"Previous set\" : \"Default\") + \" ACLs: \" +\n // makeACLString(targetDoc, ac, targetACLDoc))\n\n putACLObject(\n kb as unknown as LiveStore,\n targetDoc as NamedNode,\n union as AgentMapMap | AgentMapUnion,\n targetACLDoc as NamedNode,\n callbackFunction\n )\n }\n })\n })\n}\n\n/**\n * Set an ACL\n */\nexport function setACL (\n docURI: NamedNode,\n aclText: string,\n callbackFunction: (ok: boolean, message: string) => void\n): void {\n const aclDoc = kb.any(\n docURI,\n ACL_LINK\n ) // @@ check that this get set by web.js\n if (!kb.fetcher) {\n throw new Error('Store has no fetcher')\n }\n if (aclDoc) {\n // Great we already know where it is\n kb.fetcher\n .webOperation('PUT', aclDoc.value, {\n data: aclText,\n contentType: 'text/turtle'\n })\n .then((res) => {\n callbackFunction(res.ok, res.error || '')\n }) // @@@ check params\n } else {\n kb.fetcher.nowOrWhenFetched(docURI, undefined, function (ok, body) {\n if (!ok) return callbackFunction(ok, 'Gettting headers for ACL: ' + body)\n const aclDoc = kb.any(\n docURI,\n ACL_LINK\n ) // @@ check that this get set by web.js\n if (!aclDoc) {\n // complainIfBad(false, \"No Link rel=ACL header for \" + docURI)\n callbackFunction(false, 'No Link rel=ACL header for ' + docURI)\n } else {\n if (!kb.fetcher) {\n throw new Error('Store has no fetcher')\n }\n kb.fetcher\n .webOperation('PUT', aclDoc.value, {\n data: aclText,\n contentType: 'text/turtle'\n })\n .then((res) => {\n callbackFunction(res.ok, res.error || '')\n })\n }\n })\n }\n}\n\n/**\n * Get ACL file or default if necessary\n *\n * @param callbackFunction Will be called in the following ways, in the following cases:\n * * `callbackFunction(true, true, doc, aclDoc)` if the ACL did exist\n * * `callbackFunction(true, false, doc, aclDoc, defaultHolder, defaultACLDoc)` if the ACL file did not exist but a default did\n * * `callbackFunction(false, false, status, message)` when there was an error getting the original\n * * `callbackFunction(false, true, status, message)` when there was an error getting the default\n */\nexport function getACLorDefault (\n doc: NamedNode,\n callbackFunction: (\n a: boolean,\n b: boolean,\n statusOrMessage: number | NamedNode,\n message: string | NamedNode,\n c?: NamedNode,\n d?: NamedNode\n ) => void\n): void {\n getACL(doc, function (ok, status, aclDoc, message): string | void {\n const ACL = ns.acl\n if (!ok) return callbackFunction(false, false, status as number, message as string)\n\n // Recursively search for the ACL file which gives default access\n const tryParent = function (uri) {\n if (uri.slice(-1) === '/') {\n uri = uri.slice(0, -1)\n }\n const right = uri.lastIndexOf('/')\n const left = uri.indexOf('/', uri.indexOf('//') + 2)\n if (left > right) {\n return callbackFunction(false, true, 404, 'Found no ACL resource')\n }\n uri = uri.slice(0, right + 1)\n const doc2 = sym(uri)\n getACL(doc2, function (ok, status, defaultACLDoc: any): NamedNode | void {\n if (!ok) {\n return callbackFunction(\n false,\n true,\n status as number,\n `( No ACL pointer ${uri} ${status})${defaultACLDoc}`\n ) as void\n } else if (status === 403) {\n return callbackFunction(\n false,\n true,\n status,\n `( default ACL file FORBIDDEN. Stop.${uri})`\n )\n } else if (status === 404) {\n return tryParent(uri)\n } else if (status !== 200) {\n return callbackFunction(\n false,\n true,\n status as number,\n `Error status '${status}' searching for default for ${doc2}`\n )\n }\n // 200\n // statusBlock.textContent += (\" ACCESS set at \" + uri + \". End search.\")\n const defaults = kb\n .each(undefined, ACL('default'), kb.sym(uri), defaultACLDoc)\n .concat(\n kb.each(undefined, ACL('defaultForNew'), kb.sym(uri), defaultACLDoc)\n )\n if (!defaults.length) {\n return tryParent(uri) // Keep searching\n }\n const defaultHolder = kb.sym(uri)\n return callbackFunction(\n true,\n false,\n doc,\n aclDoc as NamedNode,\n defaultHolder,\n defaultACLDoc as NamedNode\n )\n })\n } // tryParent\n\n if (!ok) {\n return callbackFunction(\n false,\n false,\n status as number,\n `Error accessing Access Control information for ${doc}) ${message}`\n )\n } else if (status === 404) {\n tryParent(doc.uri) // @@ construct default one - the server should do that\n } else if (status === 403) {\n return callbackFunction(\n false,\n false,\n status,\n `(Sharing not available to you)${message}`\n )\n } else if (status !== 200) {\n return callbackFunction(\n false,\n false,\n status as number,\n `Error ${status} accessing Access Control information for ${doc}: ${message}`\n )\n } else {\n // 200\n return callbackFunction(true, true, doc, aclDoc as NamedNode)\n }\n }) // Call to getACL\n}\n\n/**\n * Calls back `(ok, status, acldoc, message)` as follows\n *\n * * `(false, 900, errormessage)` if no link header\n * * `(true, 403, documentSymbol, fileaccesserror)` if not authorized\n * * `(true, 404, documentSymbol, fileaccesserror)` if does not exist\n * * `(true, 200, documentSymbol)` if file exists and read OK\n */\nexport function getACL (\n doc: NamedNode,\n callbackFunction: (\n ok: boolean,\n messageOrStatus: number | string,\n messageOrDoc?: NamedNode | string,\n message?: string\n ) => void\n): void {\n if (!kb.fetcher) {\n throw new Error('kb has no fetcher')\n }\n kb.fetcher.nowOrWhenFetched(doc, undefined, function (ok, body) {\n if (!ok) {\n return callbackFunction(ok, `Can't get headers to find ACL for ${doc}: ${body}`)\n }\n const aclDoc = kb.any(\n doc,\n ACL_LINK\n ) // @@ check that this get set by web.js\n if (!aclDoc) {\n callbackFunction(false, 900, `No Link rel=ACL header for ${doc}`)\n } else {\n if (!kb.fetcher) {\n throw new Error('kb has no fetcher')\n }\n if (kb.fetcher.nonexistent[aclDoc.value]) {\n return callbackFunction(\n true,\n 404,\n aclDoc as NamedNode,\n `ACL file ${aclDoc} does not exist.`\n )\n }\n kb.fetcher.nowOrWhenFetched(aclDoc as NamedNode, undefined, function (\n ok,\n message,\n response\n ) {\n if (!ok) {\n callbackFunction(\n true,\n response.status,\n aclDoc as NamedNode,\n `Can't read Access Control File ${aclDoc}: ${message}`\n )\n } else {\n callbackFunction(true, 200, aclDoc as NamedNode)\n }\n })\n }\n })\n}\n\n/**\n * Calls [[getACLorDefault]] and then (?)\n */\nexport async function getProspectiveHolder (targetDirectory: string): Promise<NamedNode | undefined> {\n return new Promise((resolve, reject) => getACLorDefault(sym(targetDirectory), (\n ok,\n isDirectACL,\n targetDoc,\n targetACLDoc,\n defaultHolder\n ) => {\n if (ok) {\n return resolve((isDirectACL ? targetDoc : defaultHolder) as NamedNode)\n }\n return reject(new Error(`Error loading ${targetDirectory}`))\n }))\n}\n"],"mappings":"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","ignoreList":[]}
@@ -19,7 +19,7 @@ var utils = _interopRequireWildcard(require("../utils"));
19
19
  var widgets = _interopRequireWildcard(require("../widgets"));
20
20
  var style = _interopRequireWildcard(require("../style"));
21
21
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
22
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
22
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
23
23
  /**
24
24
  * Contains the [[AddAgentButtons]] class
25
25
  * @packageDocumentation
@@ -38,7 +38,7 @@ var AddAgentButtons = exports.AddAgentButtons = /*#__PURE__*/function () {
38
38
  this.rootElement = groupList.controller.dom.createElement('div');
39
39
  this.barElement = groupList.controller.dom.createElement('div');
40
40
  }
41
- (0, _createClass2["default"])(AddAgentButtons, [{
41
+ return (0, _createClass2["default"])(AddAgentButtons, [{
42
42
  key: "render",
43
43
  value: function render() {
44
44
  this.rootElement.innerHTML = '';
@@ -196,7 +196,7 @@ var AddAgentButtons = exports.AddAgentButtons = /*#__PURE__*/function () {
196
196
  }, {
197
197
  key: "renderAppsTable",
198
198
  value: function () {
199
- var _renderAppsTable = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(eventContext) {
199
+ var _renderAppsTable = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(eventContext) {
200
200
  var _this10 = this;
201
201
  var trustedApps, trustedOrigins;
202
202
  return _regenerator["default"].wrap(function _callee$(_context) {
@@ -252,7 +252,7 @@ var AddAgentButtons = exports.AddAgentButtons = /*#__PURE__*/function () {
252
252
  }, {
253
253
  key: "addPerson",
254
254
  value: function () {
255
- var _addPerson = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(name) {
255
+ var _addPerson = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(name) {
256
256
  var domainNameRegexp;
257
257
  return _regenerator["default"].wrap(function _callee2$(_context2) {
258
258
  while (1) switch (_context2.prev = _context2.next) {
@@ -291,7 +291,7 @@ var AddAgentButtons = exports.AddAgentButtons = /*#__PURE__*/function () {
291
291
  }, {
292
292
  key: "addGroup",
293
293
  value: function () {
294
- var _addGroup = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(name) {
294
+ var _addGroup = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(name) {
295
295
  var domainNameRegexp;
296
296
  return _regenerator["default"].wrap(function _callee3$(_context3) {
297
297
  while (1) switch (_context3.prev = _context3.next) {
@@ -330,7 +330,7 @@ var AddAgentButtons = exports.AddAgentButtons = /*#__PURE__*/function () {
330
330
  }, {
331
331
  key: "addAgent",
332
332
  value: function () {
333
- var _addAgent = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(agentUri) {
333
+ var _addAgent = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(agentUri) {
334
334
  return _regenerator["default"].wrap(function _callee4$(_context4) {
335
335
  while (1) switch (_context4.prev = _context4.next) {
336
336
  case 0:
@@ -352,7 +352,7 @@ var AddAgentButtons = exports.AddAgentButtons = /*#__PURE__*/function () {
352
352
  }, {
353
353
  key: "addBot",
354
354
  value: function () {
355
- var _addBot = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(name) {
355
+ var _addBot = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5(name) {
356
356
  var domainNameRegexp;
357
357
  return _regenerator["default"].wrap(function _callee5$(_context5) {
358
358
  while (1) switch (_context5.prev = _context5.next) {
@@ -391,7 +391,7 @@ var AddAgentButtons = exports.AddAgentButtons = /*#__PURE__*/function () {
391
391
  }, {
392
392
  key: "getOriginFromName",
393
393
  value: function () {
394
- var _getOriginFromName = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(name) {
394
+ var _getOriginFromName = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6(name) {
395
395
  var domainNameRegexp, origin;
396
396
  return _regenerator["default"].wrap(function _callee6$(_context6) {
397
397
  while (1) switch (_context6.prev = _context6.next) {
@@ -431,6 +431,5 @@ var AddAgentButtons = exports.AddAgentButtons = /*#__PURE__*/function () {
431
431
  this.isExpanded = !this.isExpanded;
432
432
  }
433
433
  }]);
434
- return AddAgentButtons;
435
434
  }();
436
435
  //# sourceMappingURL=add-agent-buttons.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-agent-buttons.js","names":["debug","_interopRequireWildcard","require","_iconBase","_login","ns","utils","widgets","style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","AddAgentButtons","exports","groupList","_classCallCheck2","_defineProperty2","rootElement","controller","dom","createElement","barElement","_createClass2","key","value","render","innerHTML","appendChild","renderAddButton","_this","button","concat","icons","iconBase","toggleBar","renderBar","isExpanded","renderPersonButton","renderGroupButton","renderPublicButton","renderAuthenticatedAgentButton","renderBotButton","renderAppsButton","renderSimplifiedBar","_this2","Array","from","children","filter","element","forEach","removeChild","_this3","iconForClass","event","target","renderNameForm","vcard","then","name","addPerson","renderCleanup","error","renderStatus","_this4","addGroup","type","noun","askName","store","_this5","addAgent","foaf","uri","renderTemporaryStatus","_this6","acl","_this7","schema","addBot","_this8","eventContext","div","existingApps","renderAppsTable","renderAppsView","newApp","getOriginFromName","Promise","race","origin","addNewURI","_this9","trustedApplications","context","session","paneRegistry","byName","trustedApplicationsElement","setAttribute","trustedAppController","cancelButton","trustedAppCancelButton","insertBefore","firstChild","_renderAppsTable","_asyncToGenerator2","_regenerator","mark","_callee","_this10","trustedApps","trustedOrigins","wrap","_callee$","_context","prev","next","ensureLoadedProfile","each","me","flatMap","app","textContent","length","abrupt","resolve","reject","appsTable","trustedAppAddApplicationsTable","any","Error","thingTR","personTR","innerTable","innerRow","innerLeftColumn","innerMiddleColumn","label","subject","innerRightColumn","continueButton","stop","_x","apply","arguments","_addPerson","_callee2","domainNameRegexp","_callee2$","_context2","match","log","_x2","_addGroup","_callee3","_callee3$","_context3","_x3","_addAgent","_callee4","agentUri","_callee4$","_context4","_x4","_addBot","_callee5","_callee5$","_context5","_x5","_getOriginFromName","_callee6","_callee6$","_context6","_x6"],"sources":["../../src/acl/add-agent-buttons.ts"],"sourcesContent":["/**\n * Contains the [[AddAgentButtons]] class\n * @packageDocumentation\n */\n\nimport { NamedNode, Store } from 'rdflib'\nimport { AuthenticationContext } from 'solid-logic'\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\nimport { ensureLoadedProfile } from '../login/login'\nimport * as ns from '../ns'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\nimport * as style from '../style'\nimport { AccessGroups } from './access-groups'\n\n/**\n * Renders the Sharing pane's \"+\" button and the menus behind it,\n * see https://github.com/solidos/userguide/blob/main/views/sharing/userguide.md#add\n */\nexport class AddAgentButtons {\n private readonly rootElement: HTMLElement\n private readonly barElement: HTMLElement\n private isExpanded: boolean = false\n\n constructor (private groupList: AccessGroups) {\n this.rootElement = groupList.controller.dom.createElement('div')\n this.barElement = groupList.controller.dom.createElement('div')\n }\n\n public render (): HTMLElement {\n this.rootElement.innerHTML = ''\n this.rootElement.appendChild(this.renderAddButton())\n this.rootElement.appendChild(this.barElement)\n return this.rootElement\n }\n\n private renderAddButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n `${icons.iconBase}noun_34653_green.svg`,\n 'Add ...',\n () => {\n this.toggleBar()\n this.renderBar()\n }\n )\n }\n\n private renderBar (): void {\n this.barElement.innerHTML = ''\n if (!this.isExpanded) {\n return\n }\n this.barElement.appendChild(this.renderPersonButton())\n this.barElement.appendChild(this.renderGroupButton())\n this.barElement.appendChild(this.renderPublicButton())\n this.barElement.appendChild(this.renderAuthenticatedAgentButton())\n this.barElement.appendChild(this.renderBotButton())\n this.barElement.appendChild(this.renderAppsButton())\n }\n\n private renderSimplifiedBar (button: EventTarget | null) {\n Array.from(this.barElement.children)\n .filter(element => element !== button)\n .forEach(element => this.barElement.removeChild(element))\n }\n\n private renderPersonButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n icons.iconBase + widgets.iconForClass['vcard:Individual'],\n 'Add Person',\n event => {\n this.renderSimplifiedBar(event.target)\n this.renderNameForm(ns.vcard('Individual'), 'person')\n .then(name => this.addPerson(name))\n .then(() => this.renderCleanup())\n .catch(error => this.groupList.controller.renderStatus(error))\n }\n )\n }\n\n private renderGroupButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n icons.iconBase + widgets.iconForClass['vcard:Group'],\n 'Add Group',\n event => {\n this.renderSimplifiedBar(event.target)\n this.renderNameForm(ns.vcard('Group'), 'group')\n .then(name => this.addGroup(name))\n .then(() => this.renderCleanup())\n .catch(error => this.groupList.controller.renderStatus(error))\n }\n )\n }\n\n private renderNameForm (type: NamedNode, noun: string): Promise<string | undefined> {\n return widgets.askName(\n this.groupList.controller.dom,\n this.groupList.store,\n this.barElement,\n ns.vcard('URI'),\n type,\n noun\n )\n }\n\n private renderPublicButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n icons.iconBase + widgets.iconForClass['foaf:Agent'],\n 'Add Everyone',\n () => this.addAgent(ns.foaf('Agent').uri)\n .then(() => this.groupList.controller.renderTemporaryStatus('Adding the general public to those who can read. Drag the globe to a different level to give them more access.'))\n .then(() => this.renderCleanup()))\n }\n\n private renderAuthenticatedAgentButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n `${icons.iconBase}noun_99101.svg`,\n 'Anyone logged In',\n () => this.addAgent(ns.acl('AuthenticatedAgent').uri)\n .then(() => this.groupList.controller.renderTemporaryStatus('Adding anyone logged in to those who can read. Drag the ID icon to a different level to give them more access.'))\n .then(() => this.renderCleanup()))\n }\n\n private renderBotButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n icons.iconBase + 'noun_Robot_849764.svg',\n 'A Software Agent (bot)',\n event => {\n this.renderSimplifiedBar(event.target)\n this.renderNameForm(ns.schema('Application'), 'bot')\n .then(name => this.addBot(name))\n .then(() => this.renderCleanup())\n })\n }\n\n private renderAppsButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n `${icons.iconBase}noun_15177.svg`,\n 'A Web App (origin)',\n event => {\n this.renderSimplifiedBar(event.target)\n const eventContext = {\n div: this.barElement,\n dom: this.groupList.controller.dom\n }\n const existingApps = this.renderAppsTable(eventContext)\n .catch(error => this.groupList.controller.renderStatus(error))\n this.renderAppsView()\n const newApp = this.renderNameForm(ns.schema('WebApplication'), 'webapp domain')\n .then(name => this.getOriginFromName(name))\n Promise.race([\n existingApps,\n newApp\n ])\n .then(origin => {\n if (origin) {\n this.groupList.addNewURI(origin)\n }\n })\n .then(() => this.renderCleanup())\n }\n )\n }\n\n private renderAppsView (): void {\n const trustedApplications = this.groupList.controller.context.session.paneRegistry.byName('trustedApplications')\n if (trustedApplications) {\n const trustedApplicationsElement = trustedApplications.render(null, this.groupList.controller.context)\n trustedApplicationsElement.setAttribute('style', style.trustedAppController)\n\n const cancelButton = widgets.cancelButton(this.groupList.controller.dom, () => this.renderCleanup())\n cancelButton.setAttribute('style', style.trustedAppCancelButton)\n trustedApplicationsElement.insertBefore(cancelButton, trustedApplicationsElement.firstChild)\n\n this.barElement.appendChild(trustedApplicationsElement)\n }\n }\n\n private async renderAppsTable (eventContext: AuthenticationContext): Promise<string> {\n await ensureLoadedProfile(eventContext)\n const trustedApps = (this.groupList.store as Store).each(eventContext.me, ns.acl('trustedApp')) as Array<NamedNode> // @@ TODO fix as\n const trustedOrigins = trustedApps.flatMap(app => (this.groupList.store as Store).each(app, ns.acl('origin'))) // @@ TODO fix as\n\n this.barElement.appendChild(this.groupList.controller.dom.createElement('p')).textContent = `You have ${trustedOrigins.length} selected web apps.`\n return new Promise((resolve, reject) => {\n const appsTable = this.barElement.appendChild(this.groupList.controller.dom.createElement('table'))\n appsTable.setAttribute('style', style.trustedAppAddApplicationsTable)\n trustedApps.forEach(app => {\n const origin = (this.groupList.store as Store).any(app, ns.acl('origin')) // @@ TODO fix as\n if (!origin) {\n reject(new Error(`Unable to pick app: ${app.value}`))\n }\n const thingTR = widgets.personTR(this.groupList.controller.dom, ns.acl('origin'), origin, {})\n const innerTable = this.groupList.controller.dom.createElement('table')\n const innerRow = innerTable.appendChild(this.groupList.controller.dom.createElement('tr'))\n\n const innerLeftColumn = innerRow.appendChild(this.groupList.controller.dom.createElement('td'))\n innerLeftColumn.appendChild(thingTR)\n\n const innerMiddleColumn = innerRow.appendChild(this.groupList.controller.dom.createElement('td'))\n innerMiddleColumn.textContent = `Give access to ${this.groupList.controller.noun} ${utils.label(this.groupList.controller.subject)}?`\n\n const innerRightColumn = innerRow.appendChild(this.groupList.controller.dom.createElement('td'))\n innerRightColumn.appendChild(widgets.continueButton(this.groupList.controller.dom, () => resolve(origin!.value)))\n\n appsTable.appendChild(innerTable)\n })\n })\n }\n\n private renderCleanup (): void {\n this.renderBar()\n this.groupList.render()\n }\n\n private async addPerson (name?: string): Promise<void> {\n if (!name) return this.toggleBar() // user cancelled\n const domainNameRegexp = /^https?:/i\n if (!name.match(domainNameRegexp)) {\n // @@ enforce in user input live like a form element\n return Promise.reject(new Error('Not a http URI'))\n }\n // @@ check it actually is a person and has an owner who agrees they own it\n debug.log(`Adding to ACL person: ${name}`)\n await this.groupList.addNewURI(name)\n this.toggleBar()\n }\n\n private async addGroup (name?: string): Promise<void> {\n if (!name) return this.toggleBar() // user cancelled\n\n const domainNameRegexp = /^https?:/i\n if (!name.match(domainNameRegexp)) {\n // @@ enforce in user input live like a form element\n return Promise.reject(new Error('Not a http URI'))\n }\n // @@ check it actually is a group and has an owner who agrees they own it\n debug.log('Adding to ACL group: ' + name)\n await this.groupList.addNewURI(name)\n this.toggleBar()\n }\n\n private async addAgent (agentUri: string): Promise<void> {\n await this.groupList.addNewURI(agentUri)\n this.toggleBar()\n }\n\n private async addBot (name?: string): Promise<void> {\n if (!name) return this.toggleBar() // user cancelled\n const domainNameRegexp = /^https?:/i\n if (!name.match(domainNameRegexp)) {\n // @@ enforce in user input live like a form element\n return Promise.reject(new Error('Not a http URI'))\n }\n // @@ check it actually is a bot and has an owner who agrees they own it\n debug.log('Adding to ACL bot: ' + name)\n await this.groupList.addNewURI(name)\n this.toggleBar()\n }\n\n private async getOriginFromName (name?: string): Promise<string | void> {\n if (!name) return Promise.resolve() // user cancelled\n const domainNameRegexp = /^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$/i\n // https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch08s15.html\n if (!name.match(domainNameRegexp)) {\n // @@ enforce in user input live like a form element\n return Promise.reject(new Error('Not a domain name'))\n }\n const origin = 'https://' + name\n debug.log('Adding to ACL origin: ' + origin)\n this.toggleBar()\n return origin\n }\n\n private toggleBar (): void {\n this.isExpanded = !this.isExpanded\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"add-agent-buttons.js","names":["debug","_interopRequireWildcard","require","_iconBase","_login","ns","utils","widgets","style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","AddAgentButtons","exports","groupList","_classCallCheck2","_defineProperty2","rootElement","controller","dom","createElement","barElement","_createClass2","key","value","render","innerHTML","appendChild","renderAddButton","_this","button","concat","icons","iconBase","toggleBar","renderBar","isExpanded","renderPersonButton","renderGroupButton","renderPublicButton","renderAuthenticatedAgentButton","renderBotButton","renderAppsButton","renderSimplifiedBar","_this2","Array","from","children","filter","element","forEach","removeChild","_this3","iconForClass","event","target","renderNameForm","vcard","then","name","addPerson","renderCleanup","error","renderStatus","_this4","addGroup","type","noun","askName","store","_this5","addAgent","foaf","uri","renderTemporaryStatus","_this6","acl","_this7","schema","addBot","_this8","eventContext","div","existingApps","renderAppsTable","renderAppsView","newApp","getOriginFromName","Promise","race","origin","addNewURI","_this9","trustedApplications","context","session","paneRegistry","byName","trustedApplicationsElement","setAttribute","trustedAppController","cancelButton","trustedAppCancelButton","insertBefore","firstChild","_renderAppsTable","_asyncToGenerator2","_regenerator","mark","_callee","_this10","trustedApps","trustedOrigins","wrap","_callee$","_context","prev","next","ensureLoadedProfile","each","me","flatMap","app","textContent","length","abrupt","resolve","reject","appsTable","trustedAppAddApplicationsTable","any","Error","thingTR","personTR","innerTable","innerRow","innerLeftColumn","innerMiddleColumn","label","subject","innerRightColumn","continueButton","stop","_x","apply","arguments","_addPerson","_callee2","domainNameRegexp","_callee2$","_context2","match","log","_x2","_addGroup","_callee3","_callee3$","_context3","_x3","_addAgent","_callee4","agentUri","_callee4$","_context4","_x4","_addBot","_callee5","_callee5$","_context5","_x5","_getOriginFromName","_callee6","_callee6$","_context6","_x6"],"sources":["../../src/acl/add-agent-buttons.ts"],"sourcesContent":["/**\n * Contains the [[AddAgentButtons]] class\n * @packageDocumentation\n */\n\nimport { NamedNode, Store } from 'rdflib'\nimport { AuthenticationContext } from 'solid-logic'\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\nimport { ensureLoadedProfile } from '../login/login'\nimport * as ns from '../ns'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\nimport * as style from '../style'\nimport { AccessGroups } from './access-groups'\n\n/**\n * Renders the Sharing pane's \"+\" button and the menus behind it,\n * see https://github.com/solidos/userguide/blob/main/views/sharing/userguide.md#add\n */\nexport class AddAgentButtons {\n private readonly rootElement: HTMLElement\n private readonly barElement: HTMLElement\n private isExpanded: boolean = false\n\n constructor (private groupList: AccessGroups) {\n this.rootElement = groupList.controller.dom.createElement('div')\n this.barElement = groupList.controller.dom.createElement('div')\n }\n\n public render (): HTMLElement {\n this.rootElement.innerHTML = ''\n this.rootElement.appendChild(this.renderAddButton())\n this.rootElement.appendChild(this.barElement)\n return this.rootElement\n }\n\n private renderAddButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n `${icons.iconBase}noun_34653_green.svg`,\n 'Add ...',\n () => {\n this.toggleBar()\n this.renderBar()\n }\n )\n }\n\n private renderBar (): void {\n this.barElement.innerHTML = ''\n if (!this.isExpanded) {\n return\n }\n this.barElement.appendChild(this.renderPersonButton())\n this.barElement.appendChild(this.renderGroupButton())\n this.barElement.appendChild(this.renderPublicButton())\n this.barElement.appendChild(this.renderAuthenticatedAgentButton())\n this.barElement.appendChild(this.renderBotButton())\n this.barElement.appendChild(this.renderAppsButton())\n }\n\n private renderSimplifiedBar (button: EventTarget | null) {\n Array.from(this.barElement.children)\n .filter(element => element !== button)\n .forEach(element => this.barElement.removeChild(element))\n }\n\n private renderPersonButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n icons.iconBase + widgets.iconForClass['vcard:Individual'],\n 'Add Person',\n event => {\n this.renderSimplifiedBar(event.target)\n this.renderNameForm(ns.vcard('Individual'), 'person')\n .then(name => this.addPerson(name))\n .then(() => this.renderCleanup())\n .catch(error => this.groupList.controller.renderStatus(error))\n }\n )\n }\n\n private renderGroupButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n icons.iconBase + widgets.iconForClass['vcard:Group'],\n 'Add Group',\n event => {\n this.renderSimplifiedBar(event.target)\n this.renderNameForm(ns.vcard('Group'), 'group')\n .then(name => this.addGroup(name))\n .then(() => this.renderCleanup())\n .catch(error => this.groupList.controller.renderStatus(error))\n }\n )\n }\n\n private renderNameForm (type: NamedNode, noun: string): Promise<string | undefined> {\n return widgets.askName(\n this.groupList.controller.dom,\n this.groupList.store,\n this.barElement,\n ns.vcard('URI'),\n type,\n noun\n )\n }\n\n private renderPublicButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n icons.iconBase + widgets.iconForClass['foaf:Agent'],\n 'Add Everyone',\n () => this.addAgent(ns.foaf('Agent').uri)\n .then(() => this.groupList.controller.renderTemporaryStatus('Adding the general public to those who can read. Drag the globe to a different level to give them more access.'))\n .then(() => this.renderCleanup()))\n }\n\n private renderAuthenticatedAgentButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n `${icons.iconBase}noun_99101.svg`,\n 'Anyone logged In',\n () => this.addAgent(ns.acl('AuthenticatedAgent').uri)\n .then(() => this.groupList.controller.renderTemporaryStatus('Adding anyone logged in to those who can read. Drag the ID icon to a different level to give them more access.'))\n .then(() => this.renderCleanup()))\n }\n\n private renderBotButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n icons.iconBase + 'noun_Robot_849764.svg',\n 'A Software Agent (bot)',\n event => {\n this.renderSimplifiedBar(event.target)\n this.renderNameForm(ns.schema('Application'), 'bot')\n .then(name => this.addBot(name))\n .then(() => this.renderCleanup())\n })\n }\n\n private renderAppsButton (): HTMLElement {\n return widgets.button(\n this.groupList.controller.dom,\n `${icons.iconBase}noun_15177.svg`,\n 'A Web App (origin)',\n event => {\n this.renderSimplifiedBar(event.target)\n const eventContext = {\n div: this.barElement,\n dom: this.groupList.controller.dom\n }\n const existingApps = this.renderAppsTable(eventContext)\n .catch(error => this.groupList.controller.renderStatus(error))\n this.renderAppsView()\n const newApp = this.renderNameForm(ns.schema('WebApplication'), 'webapp domain')\n .then(name => this.getOriginFromName(name))\n Promise.race([\n existingApps,\n newApp\n ])\n .then(origin => {\n if (origin) {\n this.groupList.addNewURI(origin)\n }\n })\n .then(() => this.renderCleanup())\n }\n )\n }\n\n private renderAppsView (): void {\n const trustedApplications = this.groupList.controller.context.session.paneRegistry.byName('trustedApplications')\n if (trustedApplications) {\n const trustedApplicationsElement = trustedApplications.render(null, this.groupList.controller.context)\n trustedApplicationsElement.setAttribute('style', style.trustedAppController)\n\n const cancelButton = widgets.cancelButton(this.groupList.controller.dom, () => this.renderCleanup())\n cancelButton.setAttribute('style', style.trustedAppCancelButton)\n trustedApplicationsElement.insertBefore(cancelButton, trustedApplicationsElement.firstChild)\n\n this.barElement.appendChild(trustedApplicationsElement)\n }\n }\n\n private async renderAppsTable (eventContext: AuthenticationContext): Promise<string> {\n await ensureLoadedProfile(eventContext)\n const trustedApps = (this.groupList.store as Store).each(eventContext.me, ns.acl('trustedApp')) as Array<NamedNode> // @@ TODO fix as\n const trustedOrigins = trustedApps.flatMap(app => (this.groupList.store as Store).each(app, ns.acl('origin'))) // @@ TODO fix as\n\n this.barElement.appendChild(this.groupList.controller.dom.createElement('p')).textContent = `You have ${trustedOrigins.length} selected web apps.`\n return new Promise((resolve, reject) => {\n const appsTable = this.barElement.appendChild(this.groupList.controller.dom.createElement('table'))\n appsTable.setAttribute('style', style.trustedAppAddApplicationsTable)\n trustedApps.forEach(app => {\n const origin = (this.groupList.store as Store).any(app, ns.acl('origin')) // @@ TODO fix as\n if (!origin) {\n reject(new Error(`Unable to pick app: ${app.value}`))\n }\n const thingTR = widgets.personTR(this.groupList.controller.dom, ns.acl('origin'), origin, {})\n const innerTable = this.groupList.controller.dom.createElement('table')\n const innerRow = innerTable.appendChild(this.groupList.controller.dom.createElement('tr'))\n\n const innerLeftColumn = innerRow.appendChild(this.groupList.controller.dom.createElement('td'))\n innerLeftColumn.appendChild(thingTR)\n\n const innerMiddleColumn = innerRow.appendChild(this.groupList.controller.dom.createElement('td'))\n innerMiddleColumn.textContent = `Give access to ${this.groupList.controller.noun} ${utils.label(this.groupList.controller.subject)}?`\n\n const innerRightColumn = innerRow.appendChild(this.groupList.controller.dom.createElement('td'))\n innerRightColumn.appendChild(widgets.continueButton(this.groupList.controller.dom, () => resolve(origin!.value)))\n\n appsTable.appendChild(innerTable)\n })\n })\n }\n\n private renderCleanup (): void {\n this.renderBar()\n this.groupList.render()\n }\n\n private async addPerson (name?: string): Promise<void> {\n if (!name) return this.toggleBar() // user cancelled\n const domainNameRegexp = /^https?:/i\n if (!name.match(domainNameRegexp)) {\n // @@ enforce in user input live like a form element\n return Promise.reject(new Error('Not a http URI'))\n }\n // @@ check it actually is a person and has an owner who agrees they own it\n debug.log(`Adding to ACL person: ${name}`)\n await this.groupList.addNewURI(name)\n this.toggleBar()\n }\n\n private async addGroup (name?: string): Promise<void> {\n if (!name) return this.toggleBar() // user cancelled\n\n const domainNameRegexp = /^https?:/i\n if (!name.match(domainNameRegexp)) {\n // @@ enforce in user input live like a form element\n return Promise.reject(new Error('Not a http URI'))\n }\n // @@ check it actually is a group and has an owner who agrees they own it\n debug.log('Adding to ACL group: ' + name)\n await this.groupList.addNewURI(name)\n this.toggleBar()\n }\n\n private async addAgent (agentUri: string): Promise<void> {\n await this.groupList.addNewURI(agentUri)\n this.toggleBar()\n }\n\n private async addBot (name?: string): Promise<void> {\n if (!name) return this.toggleBar() // user cancelled\n const domainNameRegexp = /^https?:/i\n if (!name.match(domainNameRegexp)) {\n // @@ enforce in user input live like a form element\n return Promise.reject(new Error('Not a http URI'))\n }\n // @@ check it actually is a bot and has an owner who agrees they own it\n debug.log('Adding to ACL bot: ' + name)\n await this.groupList.addNewURI(name)\n this.toggleBar()\n }\n\n private async getOriginFromName (name?: string): Promise<string | void> {\n if (!name) return Promise.resolve() // user cancelled\n const domainNameRegexp = /^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$/i\n // https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch08s15.html\n if (!name.match(domainNameRegexp)) {\n // @@ enforce in user input live like a form element\n return Promise.reject(new Error('Not a domain name'))\n }\n const origin = 'https://' + name\n debug.log('Adding to ACL origin: ' + origin)\n this.toggleBar()\n return origin\n }\n\n private toggleBar (): void {\n this.isExpanded = !this.isExpanded\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_acl","require","_aclControl","acl","exports","adoptACLDefault","readACL","sameACL","ACLunion","loadUnionACL","ACLbyCombination","makeACLGraph","makeACLGraphbyCombo","ACLToString","comboToString","makeACLString","putACLObject","putACLbyCombo","fixIndividualCardACL","fixIndividualACL","setACL","getACLorDefault","getACL","aclControl","preventBrowserDropEvents","shortNameForFolder","ACLControlBox5"],"sources":["../../src/acl/index.ts"],"sourcesContent":["/**\n * Re-exports all the exports from the various files in the src/acl/ folder\n * @packageDocumentation\n */\n\nimport {\n ACLbyCombination,\n ACLToString,\n ACLunion,\n adoptACLDefault,\n comboToString,\n fixIndividualACL,\n fixIndividualCardACL,\n getACL,\n getACLorDefault,\n loadUnionACL,\n makeACLGraph,\n makeACLGraphbyCombo,\n makeACLString,\n putACLbyCombo,\n putACLObject,\n readACL,\n sameACL,\n setACL\n} from './acl'\nimport {\n ACLControlBox5,\n preventBrowserDropEvents,\n shortNameForFolder\n} from './acl-control'\n\nexport const acl = {\n adoptACLDefault,\n readACL,\n sameACL,\n ACLunion,\n loadUnionACL,\n ACLbyCombination,\n makeACLGraph,\n makeACLGraphbyCombo,\n ACLToString,\n comboToString,\n makeACLString,\n putACLObject,\n putACLbyCombo,\n fixIndividualCardACL,\n fixIndividualACL,\n setACL,\n getACLorDefault,\n getACL\n}\n\nexport const aclControl = {\n preventBrowserDropEvents,\n shortNameForFolder,\n ACLControlBox5\n}\n"],"mappings":";;;;;;AAKA,IAAAA,IAAA,GAAAC,OAAA;AAoBA,IAAAC,WAAA,GAAAD,OAAA;AAzBA;AACA;AACA;AACA;;AA4BO,IAAME,GAAG,GAAAC,OAAA,CAAAD,GAAA,GAAG;EACjBE,eAAe,EAAfA,oBAAe;EACfC,OAAO,EAAPA,YAAO;EACPC,OAAO,EAAPA,YAAO;EACPC,QAAQ,EAARA,aAAQ;EACRC,YAAY,EAAZA,iBAAY;EACZC,gBAAgB,EAAhBA,qBAAgB;EAChBC,YAAY,EAAZA,iBAAY;EACZC,mBAAmB,EAAnBA,wBAAmB;EACnBC,WAAW,EAAXA,gBAAW;EACXC,aAAa,EAAbA,kBAAa;EACbC,aAAa,EAAbA,kBAAa;EACbC,YAAY,EAAZA,iBAAY;EACZC,aAAa,EAAbA,kBAAa;EACbC,oBAAoB,EAApBA,yBAAoB;EACpBC,gBAAgB,EAAhBA,qBAAgB;EAChBC,MAAM,EAANA,WAAM;EACNC,eAAe,EAAfA,oBAAe;EACfC,MAAM,EAANA;AACF,CAAC;AAEM,IAAMC,UAAU,GAAAnB,OAAA,CAAAmB,UAAA,GAAG;EACxBC,wBAAwB,EAAxBA,oCAAwB;EACxBC,kBAAkB,EAAlBA,8BAAkB;EAClBC,cAAc,EAAdA;AACF,CAAC"}
1
+ {"version":3,"file":"index.js","names":["_acl","require","_aclControl","acl","exports","adoptACLDefault","readACL","sameACL","ACLunion","loadUnionACL","ACLbyCombination","makeACLGraph","makeACLGraphbyCombo","ACLToString","comboToString","makeACLString","putACLObject","putACLbyCombo","fixIndividualCardACL","fixIndividualACL","setACL","getACLorDefault","getACL","aclControl","preventBrowserDropEvents","shortNameForFolder","ACLControlBox5"],"sources":["../../src/acl/index.ts"],"sourcesContent":["/**\n * Re-exports all the exports from the various files in the src/acl/ folder\n * @packageDocumentation\n */\n\nimport {\n ACLbyCombination,\n ACLToString,\n ACLunion,\n adoptACLDefault,\n comboToString,\n fixIndividualACL,\n fixIndividualCardACL,\n getACL,\n getACLorDefault,\n loadUnionACL,\n makeACLGraph,\n makeACLGraphbyCombo,\n makeACLString,\n putACLbyCombo,\n putACLObject,\n readACL,\n sameACL,\n setACL\n} from './acl'\nimport {\n ACLControlBox5,\n preventBrowserDropEvents,\n shortNameForFolder\n} from './acl-control'\n\nexport const acl = {\n adoptACLDefault,\n readACL,\n sameACL,\n ACLunion,\n loadUnionACL,\n ACLbyCombination,\n makeACLGraph,\n makeACLGraphbyCombo,\n ACLToString,\n comboToString,\n makeACLString,\n putACLObject,\n putACLbyCombo,\n fixIndividualCardACL,\n fixIndividualACL,\n setACL,\n getACLorDefault,\n getACL\n}\n\nexport const aclControl = {\n preventBrowserDropEvents,\n shortNameForFolder,\n ACLControlBox5\n}\n"],"mappings":";;;;;;AAKA,IAAAA,IAAA,GAAAC,OAAA;AAoBA,IAAAC,WAAA,GAAAD,OAAA;AAzBA;AACA;AACA;AACA;;AA4BO,IAAME,GAAG,GAAAC,OAAA,CAAAD,GAAA,GAAG;EACjBE,eAAe,EAAfA,oBAAe;EACfC,OAAO,EAAPA,YAAO;EACPC,OAAO,EAAPA,YAAO;EACPC,QAAQ,EAARA,aAAQ;EACRC,YAAY,EAAZA,iBAAY;EACZC,gBAAgB,EAAhBA,qBAAgB;EAChBC,YAAY,EAAZA,iBAAY;EACZC,mBAAmB,EAAnBA,wBAAmB;EACnBC,WAAW,EAAXA,gBAAW;EACXC,aAAa,EAAbA,kBAAa;EACbC,aAAa,EAAbA,kBAAa;EACbC,YAAY,EAAZA,iBAAY;EACZC,aAAa,EAAbA,kBAAa;EACbC,oBAAoB,EAApBA,yBAAoB;EACpBC,gBAAgB,EAAhBA,qBAAgB;EAChBC,MAAM,EAANA,WAAM;EACNC,eAAe,EAAfA,oBAAe;EACfC,MAAM,EAANA;AACF,CAAC;AAEM,IAAMC,UAAU,GAAAnB,OAAA,CAAAmB,UAAA,GAAG;EACxBC,wBAAwB,EAAxBA,oCAAwB;EACxBC,kBAAkB,EAAlBA,8BAAkB;EAClBC,cAAc,EAAdA;AACF,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../src/acl/types.ts"],"sourcesContent":["/**\n * Contains types for src/acl/\n * @packageDocumentation\n */\n\nimport { NamedNode } from 'rdflib'\n\nexport type AgentMap = {\n [agentUri: string]: {\n [modeUri: string]: NamedNode\n }\n}\n\nexport type AgentUnion = {\n [agentUri: string]: true | []\n}\n\nexport type AgentMapMap<T = AgentMap> = {\n agent: T,\n agentClass: T,\n agentGroup: T,\n origin: T,\n originClass: T\n}\n\nexport type AgentMapUnion = AgentMapMap<AgentUnion>\n\nexport type ComboList = { [key: string]: Array<string[]> }\n\nexport type PartialAgentTriple = {\n pred: string,\n obj: NamedNode\n}\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../src/acl/types.ts"],"sourcesContent":["/**\n * Contains types for src/acl/\n * @packageDocumentation\n */\n\nimport { NamedNode } from 'rdflib'\n\nexport type AgentMap = {\n [agentUri: string]: {\n [modeUri: string]: NamedNode\n }\n}\n\nexport type AgentUnion = {\n [agentUri: string]: true | []\n}\n\nexport type AgentMapMap<T = AgentMap> = {\n agent: T,\n agentClass: T,\n agentGroup: T,\n origin: T,\n originClass: T\n}\n\nexport type AgentMapUnion = AgentMapMap<AgentUnion>\n\nexport type ComboList = { [key: string]: Array<string[]> }\n\nexport type PartialAgentTriple = {\n pred: string,\n obj: NamedNode\n}\n"],"mappings":"","ignoreList":[]}