solid-ui 2.6.1-d631dfca → 2.6.1-dc6afe0

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 (366) hide show
  1. package/LICENSE.md +3 -1
  2. package/README.md +85 -26
  3. package/dist/acl/access-controller.js +293 -0
  4. package/dist/acl/access-controller.js.map +1 -0
  5. package/dist/acl/access-groups.js +372 -0
  6. package/dist/acl/access-groups.js.map +1 -0
  7. package/dist/acl/acl-control.js +217 -0
  8. package/dist/acl/acl-control.js.map +1 -0
  9. package/dist/acl/acl.js +550 -0
  10. package/dist/acl/acl.js.map +1 -0
  11. package/dist/acl/add-agent-buttons.js +260 -0
  12. package/dist/acl/add-agent-buttons.js.map +1 -0
  13. package/dist/acl/index.js +35 -0
  14. package/dist/acl/index.js.map +1 -0
  15. package/dist/acl/types.js +7 -0
  16. package/dist/acl/types.js.map +1 -0
  17. package/{lib → dist}/chat/keys.d.ts +1 -1
  18. package/{lib → dist}/chat/keys.d.ts.map +1 -1
  19. package/dist/chat/keys.js +148 -0
  20. package/dist/chat/keys.js.map +1 -0
  21. package/dist/chat/signature.js +71 -0
  22. package/dist/chat/signature.js.map +1 -0
  23. package/dist/create/create.js +288 -0
  24. package/dist/create/create.js.map +1 -0
  25. package/dist/create/index.js +8 -0
  26. package/dist/create/index.js.map +1 -0
  27. package/dist/create/types.js +3 -0
  28. package/dist/create/types.js.map +1 -0
  29. package/dist/debug.js +23 -0
  30. package/dist/debug.js.map +1 -0
  31. package/dist/footer/index.js +72 -0
  32. package/dist/footer/index.js.map +1 -0
  33. package/dist/header/empty-profile.js +14 -0
  34. package/dist/header/empty-profile.js.map +1 -0
  35. package/dist/header/index.js +305 -0
  36. package/dist/header/index.js.map +1 -0
  37. package/dist/iconBase.js +40 -0
  38. package/dist/iconBase.js.map +1 -0
  39. package/dist/icons/solid_logo.js.map +1 -0
  40. package/{lib → dist}/index.d.ts +7 -9
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.js +162 -0
  43. package/dist/index.js.map +1 -0
  44. package/{lib → dist}/log.js +85 -99
  45. package/dist/log.js.map +1 -0
  46. package/dist/login/login.js +910 -0
  47. package/dist/login/login.js.map +1 -0
  48. package/dist/matrix/index.js +8 -0
  49. package/dist/matrix/index.js.map +1 -0
  50. package/dist/matrix/matrix.js +253 -0
  51. package/dist/matrix/matrix.js.map +1 -0
  52. package/dist/matrix/types.js +3 -0
  53. package/dist/matrix/types.js.map +1 -0
  54. package/dist/media/index.js +9 -0
  55. package/dist/media/index.js.map +1 -0
  56. package/dist/media/media-capture.js +198 -0
  57. package/dist/media/media-capture.js.map +1 -0
  58. package/dist/pad.js +795 -0
  59. package/dist/pad.js.map +1 -0
  60. package/dist/participation.js +228 -0
  61. package/dist/participation.js.map +1 -0
  62. package/dist/solid-ui.esm.js +25542 -0
  63. package/dist/solid-ui.esm.js.map +1 -0
  64. package/dist/solid-ui.esm.min.js +43 -0
  65. package/dist/solid-ui.esm.min.js.map +1 -0
  66. package/dist/solid-ui.js +23485 -68926
  67. package/dist/solid-ui.js.map +1 -1
  68. package/dist/solid-ui.min.js +40 -2
  69. package/dist/solid-ui.min.js.map +1 -1
  70. package/dist/tabs.js +398 -0
  71. package/dist/tabs.js.map +1 -0
  72. package/dist/utils/headerFooterHelpers.js +122 -0
  73. package/dist/utils/headerFooterHelpers.js.map +1 -0
  74. package/{lib → dist}/utils/keyHelpers/accessData.d.ts +3 -3
  75. package/{lib → dist}/utils/keyHelpers/accessData.d.ts.map +1 -1
  76. package/dist/utils/keyHelpers/accessData.js +108 -0
  77. package/dist/utils/keyHelpers/accessData.js.map +1 -0
  78. package/dist/utils/keyHelpers/acl.js +112 -0
  79. package/dist/utils/keyHelpers/acl.js.map +1 -0
  80. package/{lib → dist}/utils/keyHelpers/otherHelpers.d.ts +1 -1
  81. package/{lib → dist}/utils/keyHelpers/otherHelpers.d.ts.map +1 -1
  82. package/dist/utils/keyHelpers/otherHelpers.js +19 -0
  83. package/dist/utils/keyHelpers/otherHelpers.js.map +1 -0
  84. package/dist/utils/label.js +150 -0
  85. package/dist/utils/label.js.map +1 -0
  86. package/dist/versionInfo.js +33 -0
  87. package/dist/versionInfo.js.map +1 -0
  88. package/dist/widgets/buttons/iconLinks.js +49 -0
  89. package/dist/widgets/buttons/iconLinks.js.map +1 -0
  90. package/dist/widgets/buttons.js +1355 -0
  91. package/dist/widgets/buttons.js.map +1 -0
  92. package/dist/widgets/error.js +42 -0
  93. package/dist/widgets/error.js.map +1 -0
  94. package/dist/widgets/forms/autocomplete/autocompleteBar.js +162 -0
  95. package/dist/widgets/forms/autocomplete/autocompleteBar.js.map +1 -0
  96. package/dist/widgets/forms/autocomplete/autocompleteField.js +235 -0
  97. package/dist/widgets/forms/autocomplete/autocompleteField.js.map +1 -0
  98. package/dist/widgets/forms/autocomplete/autocompletePicker.js +296 -0
  99. package/dist/widgets/forms/autocomplete/autocompletePicker.js.map +1 -0
  100. package/dist/widgets/forms/autocomplete/language.js +147 -0
  101. package/dist/widgets/forms/autocomplete/language.js.map +1 -0
  102. package/{lib → dist}/widgets/forms/autocomplete/publicData.d.ts +3 -3
  103. package/dist/widgets/forms/autocomplete/publicData.d.ts.map +1 -0
  104. package/dist/widgets/forms/autocomplete/publicData.js +507 -0
  105. package/dist/widgets/forms/autocomplete/publicData.js.map +1 -0
  106. package/dist/widgets/forms/basic.js +250 -0
  107. package/dist/widgets/forms/basic.js.map +1 -0
  108. package/dist/widgets/forms/comment.js +52 -0
  109. package/dist/widgets/forms/comment.js.map +1 -0
  110. package/dist/widgets/forms/fieldFunction.js +49 -0
  111. package/dist/widgets/forms/fieldFunction.js.map +1 -0
  112. package/dist/widgets/forms/fieldParams.js +95 -0
  113. package/dist/widgets/forms/fieldParams.js.map +1 -0
  114. package/dist/widgets/forms/formStyle.js +43 -0
  115. package/dist/widgets/forms/formStyle.js.map +1 -0
  116. package/{lib → dist}/widgets/widgetHelpers.d.ts.map +1 -1
  117. package/{lib → dist}/widgets/widgetHelpers.js +19 -24
  118. package/dist/widgets/widgetHelpers.js.map +1 -0
  119. package/package.json +44 -47
  120. package/dist/789.solid-ui.min.js +0 -1
  121. package/dist/841.solid-ui.min.js +0 -3
  122. package/dist/841.solid-ui.min.js.LICENSE.txt +0 -58
  123. package/dist/841.solid-ui.min.js.map +0 -1
  124. package/dist/_2b19.solid-ui.js +0 -14
  125. package/dist/_2b19.solid-ui.js.map +0 -1
  126. package/dist/index.html +0 -1
  127. package/dist/solid-ui.min.js.LICENSE.txt +0 -57
  128. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +0 -12247
  129. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +0 -1
  130. package/lib/acl/access-controller.js +0 -391
  131. package/lib/acl/access-controller.js.map +0 -1
  132. package/lib/acl/access-groups.js +0 -507
  133. package/lib/acl/access-groups.js.map +0 -1
  134. package/lib/acl/acl-control.js +0 -237
  135. package/lib/acl/acl-control.js.map +0 -1
  136. package/lib/acl/acl.js +0 -517
  137. package/lib/acl/acl.js.map +0 -1
  138. package/lib/acl/add-agent-buttons.js +0 -434
  139. package/lib/acl/add-agent-buttons.js.map +0 -1
  140. package/lib/acl/index.js +0 -39
  141. package/lib/acl/index.js.map +0 -1
  142. package/lib/acl/types.js +0 -6
  143. package/lib/acl/types.js.map +0 -1
  144. package/lib/chat/bookmarks.js +0 -303
  145. package/lib/chat/bookmarks.js.map +0 -1
  146. package/lib/chat/chatLogic.js +0 -420
  147. package/lib/chat/chatLogic.js.map +0 -1
  148. package/lib/chat/dateFolder.js +0 -328
  149. package/lib/chat/dateFolder.js.map +0 -1
  150. package/lib/chat/infinite.js +0 -994
  151. package/lib/chat/infinite.js.map +0 -1
  152. package/lib/chat/keys.js +0 -232
  153. package/lib/chat/keys.js.map +0 -1
  154. package/lib/chat/message.js +0 -715
  155. package/lib/chat/message.js.map +0 -1
  156. package/lib/chat/messageTools.js +0 -538
  157. package/lib/chat/messageTools.js.map +0 -1
  158. package/lib/chat/signature.js +0 -109
  159. package/lib/chat/signature.js.map +0 -1
  160. package/lib/chat/thread.js +0 -535
  161. package/lib/chat/thread.js.map +0 -1
  162. package/lib/create/create.js +0 -242
  163. package/lib/create/create.js.map +0 -1
  164. package/lib/create/index.js +0 -11
  165. package/lib/create/index.js.map +0 -1
  166. package/lib/create/types.js +0 -6
  167. package/lib/create/types.js.map +0 -1
  168. package/lib/debug.js +0 -30
  169. package/lib/debug.js.map +0 -1
  170. package/lib/folders.js +0 -132
  171. package/lib/folders.js.map +0 -1
  172. package/lib/footer/index.js +0 -123
  173. package/lib/footer/index.js.map +0 -1
  174. package/lib/header/empty-profile.js +0 -8
  175. package/lib/header/empty-profile.js.map +0 -1
  176. package/lib/header/index.js +0 -375
  177. package/lib/header/index.js.map +0 -1
  178. package/lib/iconBase.js +0 -44
  179. package/lib/iconBase.js.map +0 -1
  180. package/lib/icons/solid_logo.js.map +0 -1
  181. package/lib/index.d.ts.map +0 -1
  182. package/lib/index.js +0 -223
  183. package/lib/index.js.map +0 -1
  184. package/lib/log.js.map +0 -1
  185. package/lib/login/login.js +0 -1241
  186. package/lib/login/login.js.map +0 -1
  187. package/lib/matrix/index.js +0 -11
  188. package/lib/matrix/index.js.map +0 -1
  189. package/lib/matrix/matrix.js +0 -216
  190. package/lib/matrix/matrix.js.map +0 -1
  191. package/lib/matrix/types.js +0 -6
  192. package/lib/matrix/types.js.map +0 -1
  193. package/lib/media/index.js +0 -12
  194. package/lib/media/index.js.map +0 -1
  195. package/lib/media/media-capture.js +0 -194
  196. package/lib/media/media-capture.js.map +0 -1
  197. package/lib/messageArea.js +0 -319
  198. package/lib/messageArea.js.map +0 -1
  199. package/lib/noun_Camera_1618446_000000.js +0 -8
  200. package/lib/noun_Camera_1618446_000000.js.map +0 -1
  201. package/lib/ns.js +0 -17
  202. package/lib/ns.js.map +0 -1
  203. package/lib/pad.js +0 -805
  204. package/lib/pad.js.map +0 -1
  205. package/lib/participation.js +0 -219
  206. package/lib/participation.js.map +0 -1
  207. package/lib/preferences.js +0 -215
  208. package/lib/preferences.js.map +0 -1
  209. package/lib/signup/config-default.js +0 -43
  210. package/lib/signup/config-default.js.map +0 -1
  211. package/lib/signup/signup.js +0 -74
  212. package/lib/signup/signup.js.map +0 -1
  213. package/lib/stories/decorators.js +0 -10
  214. package/lib/stories/decorators.js.map +0 -1
  215. package/lib/style.js +0 -158
  216. package/lib/style.js.map +0 -1
  217. package/lib/styleConstants.js +0 -35
  218. package/lib/styleConstants.js.map +0 -1
  219. package/lib/style_multiSelect.js +0 -62
  220. package/lib/style_multiSelect.js.map +0 -1
  221. package/lib/table.js +0 -1573
  222. package/lib/table.js.map +0 -1
  223. package/lib/tabs.js +0 -448
  224. package/lib/tabs.js.map +0 -1
  225. package/lib/typings.d.js +0 -2
  226. package/lib/typings.d.js.map +0 -1
  227. package/lib/utils/headerFooterHelpers.js +0 -165
  228. package/lib/utils/headerFooterHelpers.js.map +0 -1
  229. package/lib/utils/index.js +0 -527
  230. package/lib/utils/index.js.map +0 -1
  231. package/lib/utils/keyHelpers/accessData.js +0 -131
  232. package/lib/utils/keyHelpers/accessData.js.map +0 -1
  233. package/lib/utils/keyHelpers/acl.js +0 -90
  234. package/lib/utils/keyHelpers/acl.js.map +0 -1
  235. package/lib/utils/keyHelpers/otherHelpers.js +0 -21
  236. package/lib/utils/keyHelpers/otherHelpers.js.map +0 -1
  237. package/lib/utils/label.js +0 -103
  238. package/lib/utils/label.js.map +0 -1
  239. package/lib/versionInfo.d.ts +0 -32
  240. package/lib/versionInfo.d.ts.map +0 -1
  241. package/lib/versionInfo.js +0 -37
  242. package/lib/versionInfo.js.map +0 -1
  243. package/lib/widgets/buttons/iconLinks.js +0 -53
  244. package/lib/widgets/buttons/iconLinks.js.map +0 -1
  245. package/lib/widgets/buttons.js +0 -1306
  246. package/lib/widgets/buttons.js.map +0 -1
  247. package/lib/widgets/dragAndDrop.js +0 -194
  248. package/lib/widgets/dragAndDrop.js.map +0 -1
  249. package/lib/widgets/error.js +0 -46
  250. package/lib/widgets/error.js.map +0 -1
  251. package/lib/widgets/forms/autocomplete/autocompleteBar.js +0 -271
  252. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +0 -1
  253. package/lib/widgets/forms/autocomplete/autocompleteField.js +0 -258
  254. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +0 -1
  255. package/lib/widgets/forms/autocomplete/autocompletePicker.js +0 -436
  256. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +0 -1
  257. package/lib/widgets/forms/autocomplete/language.js +0 -189
  258. package/lib/widgets/forms/autocomplete/language.js.map +0 -1
  259. package/lib/widgets/forms/autocomplete/publicData.d.ts.map +0 -1
  260. package/lib/widgets/forms/autocomplete/publicData.js +0 -636
  261. package/lib/widgets/forms/autocomplete/publicData.js.map +0 -1
  262. package/lib/widgets/forms/basic.js +0 -254
  263. package/lib/widgets/forms/basic.js.map +0 -1
  264. package/lib/widgets/forms/comment.js +0 -54
  265. package/lib/widgets/forms/comment.js.map +0 -1
  266. package/lib/widgets/forms/fieldFunction.js +0 -52
  267. package/lib/widgets/forms/fieldFunction.js.map +0 -1
  268. package/lib/widgets/forms/fieldParams.js +0 -77
  269. package/lib/widgets/forms/fieldParams.js.map +0 -1
  270. package/lib/widgets/forms/formStyle.js +0 -44
  271. package/lib/widgets/forms/formStyle.js.map +0 -1
  272. package/lib/widgets/forms.js +0 -2045
  273. package/lib/widgets/forms.js.map +0 -1
  274. package/lib/widgets/index.js +0 -110
  275. package/lib/widgets/index.js.map +0 -1
  276. package/lib/widgets/multiSelect.js +0 -658
  277. package/lib/widgets/multiSelect.js.map +0 -1
  278. package/lib/widgets/peoplePicker.js +0 -467
  279. package/lib/widgets/peoplePicker.js.map +0 -1
  280. package/lib/widgets/widgetHelpers.js.map +0 -1
  281. /package/{lib → dist}/acl/access-controller.d.ts +0 -0
  282. /package/{lib → dist}/acl/access-controller.d.ts.map +0 -0
  283. /package/{lib → dist}/acl/access-groups.d.ts +0 -0
  284. /package/{lib → dist}/acl/access-groups.d.ts.map +0 -0
  285. /package/{lib → dist}/acl/acl-control.d.ts +0 -0
  286. /package/{lib → dist}/acl/acl-control.d.ts.map +0 -0
  287. /package/{lib → dist}/acl/acl.d.ts +0 -0
  288. /package/{lib → dist}/acl/acl.d.ts.map +0 -0
  289. /package/{lib → dist}/acl/add-agent-buttons.d.ts +0 -0
  290. /package/{lib → dist}/acl/add-agent-buttons.d.ts.map +0 -0
  291. /package/{lib → dist}/acl/index.d.ts +0 -0
  292. /package/{lib → dist}/acl/index.d.ts.map +0 -0
  293. /package/{lib → dist}/acl/types.d.ts +0 -0
  294. /package/{lib → dist}/acl/types.d.ts.map +0 -0
  295. /package/{lib → dist}/chat/signature.d.ts +0 -0
  296. /package/{lib → dist}/chat/signature.d.ts.map +0 -0
  297. /package/{lib → dist}/create/create.d.ts +0 -0
  298. /package/{lib → dist}/create/create.d.ts.map +0 -0
  299. /package/{lib → dist}/create/index.d.ts +0 -0
  300. /package/{lib → dist}/create/index.d.ts.map +0 -0
  301. /package/{lib → dist}/create/types.d.ts +0 -0
  302. /package/{lib → dist}/create/types.d.ts.map +0 -0
  303. /package/{lib → dist}/debug.d.ts +0 -0
  304. /package/{lib → dist}/debug.d.ts.map +0 -0
  305. /package/{lib → dist}/footer/index.d.ts +0 -0
  306. /package/{lib → dist}/footer/index.d.ts.map +0 -0
  307. /package/{lib → dist}/header/empty-profile.d.ts +0 -0
  308. /package/{lib → dist}/header/empty-profile.d.ts.map +0 -0
  309. /package/{lib → dist}/header/index.d.ts +0 -0
  310. /package/{lib → dist}/header/index.d.ts.map +0 -0
  311. /package/{lib → dist}/iconBase.d.ts +0 -0
  312. /package/{lib → dist}/iconBase.d.ts.map +0 -0
  313. /package/{lib → dist}/icons/solid_logo.d.ts +0 -0
  314. /package/{lib → dist}/icons/solid_logo.d.ts.map +0 -0
  315. /package/{lib → dist}/icons/solid_logo.js +0 -0
  316. /package/{lib → dist}/log.d.ts +0 -0
  317. /package/{lib → dist}/log.d.ts.map +0 -0
  318. /package/{lib → dist}/login/login.d.ts +0 -0
  319. /package/{lib → dist}/login/login.d.ts.map +0 -0
  320. /package/{lib → dist}/matrix/index.d.ts +0 -0
  321. /package/{lib → dist}/matrix/index.d.ts.map +0 -0
  322. /package/{lib → dist}/matrix/matrix.d.ts +0 -0
  323. /package/{lib → dist}/matrix/matrix.d.ts.map +0 -0
  324. /package/{lib → dist}/matrix/types.d.ts +0 -0
  325. /package/{lib → dist}/matrix/types.d.ts.map +0 -0
  326. /package/{lib → dist}/media/index.d.ts +0 -0
  327. /package/{lib → dist}/media/index.d.ts.map +0 -0
  328. /package/{lib → dist}/media/media-capture.d.ts +0 -0
  329. /package/{lib → dist}/media/media-capture.d.ts.map +0 -0
  330. /package/{lib → dist}/pad.d.ts +0 -0
  331. /package/{lib → dist}/pad.d.ts.map +0 -0
  332. /package/{lib → dist}/participation.d.ts +0 -0
  333. /package/{lib → dist}/participation.d.ts.map +0 -0
  334. /package/{lib → dist}/tabs.d.ts +0 -0
  335. /package/{lib → dist}/tabs.d.ts.map +0 -0
  336. /package/{lib → dist}/utils/headerFooterHelpers.d.ts +0 -0
  337. /package/{lib → dist}/utils/headerFooterHelpers.d.ts.map +0 -0
  338. /package/{lib → dist}/utils/keyHelpers/acl.d.ts +0 -0
  339. /package/{lib → dist}/utils/keyHelpers/acl.d.ts.map +0 -0
  340. /package/{lib → dist}/utils/label.d.ts +0 -0
  341. /package/{lib → dist}/utils/label.d.ts.map +0 -0
  342. /package/{lib → dist}/widgets/buttons/iconLinks.d.ts +0 -0
  343. /package/{lib → dist}/widgets/buttons/iconLinks.d.ts.map +0 -0
  344. /package/{lib → dist}/widgets/buttons.d.ts +0 -0
  345. /package/{lib → dist}/widgets/buttons.d.ts.map +0 -0
  346. /package/{lib → dist}/widgets/error.d.ts +0 -0
  347. /package/{lib → dist}/widgets/error.d.ts.map +0 -0
  348. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
  349. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
  350. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
  351. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
  352. /package/{lib → dist}/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
  353. /package/{lib → dist}/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
  354. /package/{lib → dist}/widgets/forms/autocomplete/language.d.ts +0 -0
  355. /package/{lib → dist}/widgets/forms/autocomplete/language.d.ts.map +0 -0
  356. /package/{lib → dist}/widgets/forms/basic.d.ts +0 -0
  357. /package/{lib → dist}/widgets/forms/basic.d.ts.map +0 -0
  358. /package/{lib → dist}/widgets/forms/comment.d.ts +0 -0
  359. /package/{lib → dist}/widgets/forms/comment.d.ts.map +0 -0
  360. /package/{lib → dist}/widgets/forms/fieldFunction.d.ts +0 -0
  361. /package/{lib → dist}/widgets/forms/fieldFunction.d.ts.map +0 -0
  362. /package/{lib → dist}/widgets/forms/fieldParams.d.ts +0 -0
  363. /package/{lib → dist}/widgets/forms/fieldParams.d.ts.map +0 -0
  364. /package/{lib → dist}/widgets/forms/formStyle.d.ts +0 -0
  365. /package/{lib → dist}/widgets/forms/formStyle.d.ts.map +0 -0
  366. /package/{lib → dist}/widgets/widgetHelpers.d.ts +0 -0
@@ -0,0 +1,550 @@
1
+ "use strict";
2
+ /**
3
+ * Non-UI functions for access control.
4
+ * See https://github.com/solidos/web-access-control-spec
5
+ * for the spec that defines how ACL documents work.
6
+ * @packageDocumentation
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __importDefault = (this && this.__importDefault) || function (mod) {
42
+ return (mod && mod.__esModule) ? mod : { "default": mod };
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.adoptACLDefault = adoptACLDefault;
46
+ exports.readACL = readACL;
47
+ exports.sameACL = sameACL;
48
+ exports.ACLunion = ACLunion;
49
+ exports.loadUnionACL = loadUnionACL;
50
+ exports.ACLbyCombination = ACLbyCombination;
51
+ exports.makeACLGraph = makeACLGraph;
52
+ exports.makeACLGraphbyCombo = makeACLGraphbyCombo;
53
+ exports.ACLToString = ACLToString;
54
+ exports.comboToString = comboToString;
55
+ exports.makeACLString = makeACLString;
56
+ exports.putACLObject = putACLObject;
57
+ exports.putACLbyCombo = putACLbyCombo;
58
+ exports.fixIndividualCardACL = fixIndividualCardACL;
59
+ exports.fixIndividualACL = fixIndividualACL;
60
+ exports.setACL = setACL;
61
+ exports.getACLorDefault = getACLorDefault;
62
+ exports.getACL = getACL;
63
+ exports.getProspectiveHolder = getProspectiveHolder;
64
+ const ns_1 = __importDefault(require("../ns"));
65
+ const solid_logic_1 = require("solid-logic");
66
+ const utils = __importStar(require("../utils"));
67
+ const debug = __importStar(require("../debug"));
68
+ const rdflib_1 = require("rdflib");
69
+ const kb = solid_logic_1.solidLogicSingleton.store;
70
+ /**
71
+ * Take the "default" ACL and convert it into the equivalent ACL
72
+ * which the resource would have had. Return it as a new separate store.
73
+ * The "defaultForNew" predicate is also accepted, as a deprecated
74
+ * synonym for "default".
75
+ */
76
+ function adoptACLDefault(doc, aclDoc, defaultResource, defaultACLDoc) {
77
+ const ACL = ns_1.default.acl;
78
+ const isContainer = doc.uri.slice(-1) === '/'; // Give default for all directories
79
+ const defaults = kb
80
+ .each(undefined, ACL('default'), defaultResource, defaultACLDoc)
81
+ .concat(kb.each(undefined, ACL('defaultForNew'), defaultResource, defaultACLDoc));
82
+ const proposed = defaults.reduce((accumulatedStatements, da) => accumulatedStatements
83
+ .concat(kb.statementsMatching(da, ns_1.default.rdf('type'), ACL('Authorization'), defaultACLDoc))
84
+ .concat(kb.statementsMatching(da, ACL('agent'), undefined, defaultACLDoc))
85
+ .concat(kb.statementsMatching(da, ACL('agentClass'), undefined, defaultACLDoc))
86
+ .concat(kb.statementsMatching(da, ACL('agentGroup'), undefined, defaultACLDoc))
87
+ .concat(kb.statementsMatching(da, ACL('origin'), undefined, defaultACLDoc))
88
+ .concat(kb.statementsMatching(da, ACL('originClass'), undefined, defaultACLDoc))
89
+ .concat(kb.statementsMatching(da, ACL('mode'), undefined, defaultACLDoc))
90
+ .concat((0, rdflib_1.st)(da, ACL('accessTo'), doc, defaultACLDoc))
91
+ .concat(isContainer ? (0, rdflib_1.st)(da, ACL('default'), doc, defaultACLDoc) : []), []);
92
+ const kb2 = (0, rdflib_1.graph)(); // Potential - derived is kept apart
93
+ proposed.forEach(st => kb2.add(move(st.subject), move(st.predicate), move(st.object), (0, rdflib_1.sym)(aclDoc.uri)));
94
+ return kb2;
95
+ function move(symbol) {
96
+ const y = defaultACLDoc.uri.length; // The default ACL file
97
+ return (0, rdflib_1.sym)(symbol.uri.slice(0, y) === defaultACLDoc.uri
98
+ ? aclDoc.uri + symbol.uri.slice(y)
99
+ : symbol.uri);
100
+ }
101
+ }
102
+ /**
103
+ * Read and canonicalize the ACL for x in aclDoc
104
+ *
105
+ * Accumulate the access rights which each agent or class has
106
+ */
107
+ function readACL(doc, aclDoc, kb2 = kb, getDefaults = false) {
108
+ const auths = getDefaults
109
+ ? getDefaultsFallback(kb2, ns_1.default)
110
+ : kb2.each(undefined, ns_1.default.acl('accessTo'), doc);
111
+ const ACL = ns_1.default.acl;
112
+ const ac = {
113
+ agent: {},
114
+ agentClass: {},
115
+ agentGroup: {},
116
+ origin: {},
117
+ originClass: {}
118
+ };
119
+ Object.keys(ac).forEach(pred => {
120
+ auths.forEach(function (a) {
121
+ kb2.each(a, ACL('mode')).forEach(function (mode) {
122
+ kb2.each(a, ACL(pred)).forEach(function (agent) {
123
+ ac[pred][agent.uri] = ac[pred][agent.uri] || {};
124
+ ac[pred][agent.uri][mode.uri] = a; // could be "true" but leave pointer just in case
125
+ });
126
+ });
127
+ });
128
+ });
129
+ return ac;
130
+ function getDefaultsFallback(kb, ns) {
131
+ return kb
132
+ .each(undefined, ns.acl('default'), doc)
133
+ .concat(kb.each(undefined, ns.acl('defaultForNew'), doc));
134
+ }
135
+ }
136
+ /**
137
+ * Compare two ACLs
138
+ */
139
+ function sameACL(a, b) {
140
+ const contains = function (a, b) {
141
+ for (const pred in {
142
+ agent: true,
143
+ agentClass: true,
144
+ agentGroup: true,
145
+ origin: true,
146
+ originClass: true
147
+ }) {
148
+ if (a[pred]) {
149
+ for (const agent in a[pred]) {
150
+ for (const mode in a[pred][agent]) {
151
+ if (!b[pred][agent] || !b[pred][agent][mode]) {
152
+ return false;
153
+ }
154
+ }
155
+ }
156
+ }
157
+ }
158
+ return true;
159
+ };
160
+ return contains(a, b) && contains(b, a);
161
+ }
162
+ /**
163
+ * Union N ACLs
164
+ */
165
+ function ACLunion(list) {
166
+ const b = list[0];
167
+ let a, ag;
168
+ for (let k = 1; k < list.length; k++) {
169
+ ;
170
+ ['agent', 'agentClass', 'agentGroup', 'origin', 'originClass'].forEach(function (pred) {
171
+ a = list[k];
172
+ if (a[pred]) {
173
+ for (ag in a[pred]) {
174
+ for (const mode in a[pred][ag]) {
175
+ if (!b[pred][ag])
176
+ b[pred][ag] = [];
177
+ b[pred][ag][mode] = true;
178
+ }
179
+ }
180
+ }
181
+ });
182
+ }
183
+ return b;
184
+ }
185
+ /**
186
+ * Merge ACLs lists from things to form union
187
+ */
188
+ function loadUnionACL(subjectList, callbackFunction) {
189
+ const aclList = [];
190
+ const doList = function (list) {
191
+ if (list.length) {
192
+ const doc = list.shift().doc();
193
+ getACLorDefault(doc, function (ok, p2, targetDoc, targetACLDoc, defaultHolder, defaultACLDoc) {
194
+ const defa = !p2;
195
+ if (!ok || !defaultHolder || !defaultACLDoc)
196
+ return callbackFunction(ok, targetACLDoc);
197
+ const acl = defa
198
+ ? readACL(defaultHolder, defaultACLDoc)
199
+ : readACL(targetDoc, targetACLDoc);
200
+ aclList.push(acl);
201
+ doList(list.slice(1));
202
+ });
203
+ }
204
+ else {
205
+ // all gone
206
+ callbackFunction(true, ACLunion(aclList));
207
+ }
208
+ };
209
+ doList(subjectList);
210
+ }
211
+ /**
212
+ * Represents these as an RDF graph by combination of modes
213
+ *
214
+ * Each agent can only be in one place in this model, one combination of modes.
215
+ * Combos are like full control, read append, read only etc.
216
+ */
217
+ function ACLbyCombination(ac) {
218
+ const byCombo = {};
219
+ ['agent', 'agentClass', 'agentGroup', 'origin', 'originClass'].forEach(function (pred) {
220
+ for (const agent in ac[pred]) {
221
+ const combo = [];
222
+ for (const mode in ac[pred][agent]) {
223
+ combo.push(mode);
224
+ }
225
+ combo.sort();
226
+ const combo2 = combo.join('\n');
227
+ if (!byCombo[combo2])
228
+ byCombo[combo2] = [];
229
+ byCombo[combo2].push([pred, agent]);
230
+ }
231
+ });
232
+ return byCombo;
233
+ }
234
+ /**
235
+ * Write ACL graph to store from AC
236
+ */
237
+ function makeACLGraph(kb, x, ac, aclDoc) {
238
+ const byCombo = ACLbyCombination(ac);
239
+ return makeACLGraphbyCombo(kb, x, byCombo, aclDoc);
240
+ }
241
+ /**
242
+ * Write ACL graph to store from combo
243
+ */
244
+ function makeACLGraphbyCombo(kb, x, byCombo, aclDoc, main, defa) {
245
+ const ACL = ns_1.default.acl;
246
+ for (const combo in byCombo) {
247
+ const pairs = byCombo[combo];
248
+ if (!pairs.length)
249
+ continue; // do not add to store when no agent
250
+ const modeURIs = combo.split('\n');
251
+ let short = modeURIs
252
+ .map(function (u) {
253
+ return u.split('#')[1];
254
+ })
255
+ .join('');
256
+ if (defa && !main)
257
+ short += 'Default'; // don't muddle authorizations
258
+ const a = kb.sym(aclDoc.uri + '#' + short);
259
+ kb.add(a, ns_1.default.rdf('type'), ACL('Authorization'), aclDoc);
260
+ if (main) {
261
+ kb.add(a, ACL('accessTo'), x, aclDoc);
262
+ }
263
+ if (defa) {
264
+ kb.add(a, ACL('default'), x, aclDoc);
265
+ }
266
+ for (let i = 0; i < modeURIs.length; i++) {
267
+ kb.add(a, ACL('mode'), kb.sym(modeURIs[i]), aclDoc);
268
+ }
269
+ for (let i = 0; i < pairs.length; i++) {
270
+ const pred = pairs[i][0];
271
+ const ag = pairs[i][1];
272
+ kb.add(a, ACL(pred), kb.sym(ag), aclDoc);
273
+ }
274
+ }
275
+ }
276
+ /**
277
+ * Debugging short strings for dumping ACL
278
+ * and possibly in the UI
279
+ */
280
+ function ACLToString(ac) {
281
+ return comboToString(ACLbyCombination(ac));
282
+ }
283
+ /**
284
+ * Convert a [[ComboList]] to a string
285
+ */
286
+ function comboToString(byCombo) {
287
+ let str = '';
288
+ for (const combo in byCombo) {
289
+ const modeURIs = combo.split('\n');
290
+ const initials = modeURIs
291
+ .map(function (u) {
292
+ return u.split('#')[1][0];
293
+ })
294
+ .join('');
295
+ str += initials + ':';
296
+ const pairs = byCombo[combo];
297
+ for (let i = 0; i < pairs.length; i++) {
298
+ const pred = pairs[i][0];
299
+ const ag = (0, rdflib_1.sym)(pairs[i][1]);
300
+ str += pred === 'agent' ? '@' : '';
301
+ str += ag.sameTerm(ns_1.default.foaf('Agent')) ? '*' : utils.label(ag);
302
+ if (i < pairs.length - 1)
303
+ str += ',';
304
+ }
305
+ str += ';';
306
+ }
307
+ return '{' + str.slice(0, -1) + '}'; // drop extra semicolon
308
+ }
309
+ /**
310
+ * Write ACL graph as Turtle
311
+ */
312
+ function makeACLString(x, ac, aclDoc) {
313
+ const kb2 = (0, rdflib_1.graph)();
314
+ makeACLGraph(kb2, x, ac, aclDoc);
315
+ return (0, rdflib_1.serialize)(aclDoc, kb2, aclDoc.uri, 'text/turtle') || '';
316
+ }
317
+ /**
318
+ * Write ACL graph to web
319
+ */
320
+ function putACLObject(kb, x, ac, aclDoc, callbackFunction) {
321
+ const byCombo = ACLbyCombination(ac);
322
+ return putACLbyCombo(kb, x, byCombo, aclDoc, callbackFunction);
323
+ }
324
+ /**
325
+ * Write ACL graph to web from a [[ComboList]]
326
+ */
327
+ function putACLbyCombo(kb, x, byCombo, aclDoc, callbackFunction) {
328
+ const kb2 = (0, rdflib_1.graph)();
329
+ makeACLGraphbyCombo(kb2, x, byCombo, aclDoc, true);
330
+ // const str = makeACLString = function(x, ac, aclDoc)
331
+ kb.updater?.put(aclDoc, kb2.statementsMatching(undefined, undefined, undefined, aclDoc), 'text/turtle', function (uri, ok, message) {
332
+ if (!ok) {
333
+ callbackFunction(ok, message);
334
+ }
335
+ else {
336
+ kb.fetcher?.unload(aclDoc);
337
+ makeACLGraphbyCombo(kb, x, byCombo, aclDoc, true);
338
+ kb.fetcher.requested[aclDoc.uri] = 'done'; // missing: save headers
339
+ callbackFunction(ok);
340
+ }
341
+ });
342
+ }
343
+ /**
344
+ * Fix the ACl for an individual card as a function of the groups it is in
345
+ *
346
+ * All group files must be loaded first
347
+ */
348
+ function fixIndividualCardACL(person, log, callbackFunction) {
349
+ const groups = kb.each(undefined, ns_1.default.vcard('hasMember'), person);
350
+ // const doc = person.doc()
351
+ if (groups) {
352
+ fixIndividualACL(person, groups, log, callbackFunction);
353
+ }
354
+ else {
355
+ log('This card is in no groups');
356
+ callbackFunction(true); // fine, no requirements to access. default should be ok
357
+ }
358
+ // @@ if no groups, then use default for People container or the book top container.?
359
+ }
360
+ /**
361
+ * This function is used by [[fixIndividualCardACL]]
362
+ */
363
+ function fixIndividualACL(item, subjects, log, callbackFunction) {
364
+ log = log || debug.log;
365
+ const doc = item.doc();
366
+ getACLorDefault(doc, function (ok, exists, targetDoc, targetACLDoc, defaultHolder, defaultACLDoc) {
367
+ if (!ok || !defaultHolder || !defaultACLDoc)
368
+ return callbackFunction(false, targetACLDoc); // ie message
369
+ const ac = exists
370
+ ? readACL(targetDoc, targetACLDoc)
371
+ : readACL(defaultHolder, defaultACLDoc);
372
+ loadUnionACL(subjects, function (ok, union) {
373
+ if (!ok)
374
+ return callbackFunction(false, union);
375
+ if (sameACL(union, ac)) {
376
+ log('Nice - same ACL. no change ' + utils.label(item) + ' ' + doc);
377
+ }
378
+ else {
379
+ log('Group ACLs differ for ' + utils.label(item) + ' ' + doc);
380
+ // log("Group ACLs: " + makeACLString(targetDoc, union, targetACLDoc))
381
+ // log((exists ? "Previous set" : "Default") + " ACLs: " +
382
+ // makeACLString(targetDoc, ac, targetACLDoc))
383
+ putACLObject(kb, targetDoc, union, targetACLDoc, callbackFunction);
384
+ }
385
+ });
386
+ });
387
+ }
388
+ /**
389
+ * Set an ACL
390
+ */
391
+ function setACL(docURI, aclText, callbackFunction) {
392
+ const aclDoc = kb.any(docURI, solid_logic_1.ACL_LINK); // @@ check that this get set by web.js
393
+ if (!kb.fetcher) {
394
+ throw new Error('Store has no fetcher');
395
+ }
396
+ if (aclDoc) {
397
+ // Great we already know where it is
398
+ kb.fetcher
399
+ .webOperation('PUT', aclDoc.value, {
400
+ data: aclText,
401
+ contentType: 'text/turtle'
402
+ })
403
+ .then((res) => {
404
+ callbackFunction(res.ok, res.error || '');
405
+ }); // @@@ check params
406
+ }
407
+ else {
408
+ kb.fetcher.nowOrWhenFetched(docURI, undefined, function (ok, body) {
409
+ if (!ok)
410
+ return callbackFunction(ok, 'Gettting headers for ACL: ' + body);
411
+ const aclDoc = kb.any(docURI, solid_logic_1.ACL_LINK); // @@ check that this get set by web.js
412
+ if (!aclDoc) {
413
+ // complainIfBad(false, "No Link rel=ACL header for " + docURI)
414
+ callbackFunction(false, 'No Link rel=ACL header for ' + docURI);
415
+ }
416
+ else {
417
+ if (!kb.fetcher) {
418
+ throw new Error('Store has no fetcher');
419
+ }
420
+ kb.fetcher
421
+ .webOperation('PUT', aclDoc.value, {
422
+ data: aclText,
423
+ contentType: 'text/turtle'
424
+ })
425
+ .then((res) => {
426
+ callbackFunction(res.ok, res.error || '');
427
+ });
428
+ }
429
+ });
430
+ }
431
+ }
432
+ /**
433
+ * Get ACL file or default if necessary
434
+ *
435
+ * @param callbackFunction Will be called in the following ways, in the following cases:
436
+ * * `callbackFunction(true, true, doc, aclDoc)` if the ACL did exist
437
+ * * `callbackFunction(true, false, doc, aclDoc, defaultHolder, defaultACLDoc)` if the ACL file did not exist but a default did
438
+ * * `callbackFunction(false, false, status, message)` when there was an error getting the original
439
+ * * `callbackFunction(false, true, status, message)` when there was an error getting the default
440
+ */
441
+ function getACLorDefault(doc, callbackFunction) {
442
+ getACL(doc, function (ok, status, aclDoc, message) {
443
+ const ACL = ns_1.default.acl;
444
+ if (!ok)
445
+ return callbackFunction(false, false, status, message);
446
+ // Recursively search for the ACL file which gives default access
447
+ const tryParent = function (uri) {
448
+ if (uri.slice(-1) === '/') {
449
+ uri = uri.slice(0, -1);
450
+ }
451
+ const right = uri.lastIndexOf('/');
452
+ const left = uri.indexOf('/', uri.indexOf('//') + 2);
453
+ if (left > right) {
454
+ return callbackFunction(false, true, 404, 'Found no ACL resource');
455
+ }
456
+ uri = uri.slice(0, right + 1);
457
+ const doc2 = (0, rdflib_1.sym)(uri);
458
+ getACL(doc2, function (ok, status, defaultACLDoc) {
459
+ if (!ok) {
460
+ return callbackFunction(false, true, status, `( No ACL pointer ${uri} ${status})${defaultACLDoc}`);
461
+ }
462
+ else if (status === 403) {
463
+ return callbackFunction(false, true, status, `( default ACL file FORBIDDEN. Stop.${uri})`);
464
+ }
465
+ else if (status === 404) {
466
+ return tryParent(uri);
467
+ }
468
+ else if (status !== 200) {
469
+ return callbackFunction(false, true, status, `Error status '${status}' searching for default for ${doc2}`);
470
+ }
471
+ // 200
472
+ // statusBlock.textContent += (" ACCESS set at " + uri + ". End search.")
473
+ const defaults = kb
474
+ .each(undefined, ACL('default'), kb.sym(uri), defaultACLDoc)
475
+ .concat(kb.each(undefined, ACL('defaultForNew'), kb.sym(uri), defaultACLDoc));
476
+ if (!defaults.length) {
477
+ return tryParent(uri); // Keep searching
478
+ }
479
+ const defaultHolder = kb.sym(uri);
480
+ return callbackFunction(true, false, doc, aclDoc, defaultHolder, defaultACLDoc);
481
+ });
482
+ }; // tryParent
483
+ if (!ok) {
484
+ return callbackFunction(false, false, status, `Error accessing Access Control information for ${doc}) ${message}`);
485
+ }
486
+ else if (status === 404) {
487
+ tryParent(doc.uri); // @@ construct default one - the server should do that
488
+ }
489
+ else if (status === 403) {
490
+ return callbackFunction(false, false, status, `(Sharing not available to you)${message}`);
491
+ }
492
+ else if (status !== 200) {
493
+ return callbackFunction(false, false, status, `Error ${status} accessing Access Control information for ${doc}: ${message}`);
494
+ }
495
+ else {
496
+ // 200
497
+ return callbackFunction(true, true, doc, aclDoc);
498
+ }
499
+ }); // Call to getACL
500
+ }
501
+ /**
502
+ * Calls back `(ok, status, acldoc, message)` as follows
503
+ *
504
+ * * `(false, 900, errormessage)` if no link header
505
+ * * `(true, 403, documentSymbol, fileaccesserror)` if not authorized
506
+ * * `(true, 404, documentSymbol, fileaccesserror)` if does not exist
507
+ * * `(true, 200, documentSymbol)` if file exists and read OK
508
+ */
509
+ function getACL(doc, callbackFunction) {
510
+ if (!kb.fetcher) {
511
+ throw new Error('kb has no fetcher');
512
+ }
513
+ kb.fetcher.nowOrWhenFetched(doc, undefined, function (ok, body) {
514
+ if (!ok) {
515
+ return callbackFunction(ok, `Can't get headers to find ACL for ${doc}: ${body}`);
516
+ }
517
+ const aclDoc = kb.any(doc, solid_logic_1.ACL_LINK); // @@ check that this get set by web.js
518
+ if (!aclDoc) {
519
+ callbackFunction(false, 900, `No Link rel=ACL header for ${doc}`);
520
+ }
521
+ else {
522
+ if (!kb.fetcher) {
523
+ throw new Error('kb has no fetcher');
524
+ }
525
+ if (kb.fetcher.nonexistent[aclDoc.value]) {
526
+ return callbackFunction(true, 404, aclDoc, `ACL file ${aclDoc} does not exist.`);
527
+ }
528
+ kb.fetcher.nowOrWhenFetched(aclDoc, undefined, function (ok, message, response) {
529
+ if (!ok) {
530
+ callbackFunction(true, response.status, aclDoc, `Can't read Access Control File ${aclDoc}: ${message}`);
531
+ }
532
+ else {
533
+ callbackFunction(true, 200, aclDoc);
534
+ }
535
+ });
536
+ }
537
+ });
538
+ }
539
+ /**
540
+ * Calls [[getACLorDefault]] and then (?)
541
+ */
542
+ async function getProspectiveHolder(targetDirectory) {
543
+ return new Promise((resolve, reject) => getACLorDefault((0, rdflib_1.sym)(targetDirectory), (ok, isDirectACL, targetDoc, targetACLDoc, defaultHolder) => {
544
+ if (ok) {
545
+ return resolve((isDirectACL ? targetDoc : defaultHolder));
546
+ }
547
+ return reject(new Error(`Error loading ${targetDirectory}`));
548
+ }));
549
+ }
550
+ //# sourceMappingURL=acl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acl.js","sourceRoot":"","sources":["../../src/acl/acl.ts"],"names":[],"mappings":"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"}