solid-ui 2.6.0 → 2.6.1-05fb7cc

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 (365) hide show
  1. package/LICENSE.md +3 -1
  2. package/README.md +84 -25
  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/dist/chat/keys.js +148 -0
  18. package/dist/chat/keys.js.map +1 -0
  19. package/dist/chat/signature.js +71 -0
  20. package/dist/chat/signature.js.map +1 -0
  21. package/dist/create/create.js +288 -0
  22. package/dist/create/create.js.map +1 -0
  23. package/dist/create/index.js +8 -0
  24. package/dist/create/index.js.map +1 -0
  25. package/dist/create/types.js +3 -0
  26. package/dist/create/types.js.map +1 -0
  27. package/dist/debug.js +23 -0
  28. package/dist/debug.js.map +1 -0
  29. package/dist/footer/index.js +72 -0
  30. package/dist/footer/index.js.map +1 -0
  31. package/dist/header/empty-profile.js +14 -0
  32. package/dist/header/empty-profile.js.map +1 -0
  33. package/dist/header/index.js +305 -0
  34. package/dist/header/index.js.map +1 -0
  35. package/dist/iconBase.js +40 -0
  36. package/dist/iconBase.js.map +1 -0
  37. package/dist/icons/solid_logo.js.map +1 -0
  38. package/{lib → dist}/index.d.ts +4 -4
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +170 -0
  41. package/dist/index.js.map +1 -0
  42. package/{lib → dist}/log.js +85 -99
  43. package/dist/log.js.map +1 -0
  44. package/dist/login/login.js +910 -0
  45. package/dist/login/login.js.map +1 -0
  46. package/dist/matrix/index.js +8 -0
  47. package/dist/matrix/index.js.map +1 -0
  48. package/dist/matrix/matrix.js +253 -0
  49. package/dist/matrix/matrix.js.map +1 -0
  50. package/dist/matrix/types.js +3 -0
  51. package/dist/matrix/types.js.map +1 -0
  52. package/dist/media/index.js +9 -0
  53. package/dist/media/index.js.map +1 -0
  54. package/dist/media/media-capture.js +198 -0
  55. package/dist/media/media-capture.js.map +1 -0
  56. package/dist/pad.js +795 -0
  57. package/dist/pad.js.map +1 -0
  58. package/dist/participation.js +228 -0
  59. package/dist/participation.js.map +1 -0
  60. package/dist/solid-ui.esm.js +25549 -0
  61. package/dist/solid-ui.esm.js.map +1 -0
  62. package/dist/solid-ui.esm.min.js +43 -0
  63. package/dist/solid-ui.esm.min.js.map +1 -0
  64. package/dist/solid-ui.js +23399 -70837
  65. package/dist/solid-ui.js.map +1 -1
  66. package/dist/solid-ui.min.js +40 -2
  67. package/dist/solid-ui.min.js.map +1 -1
  68. package/dist/tabs.js +398 -0
  69. package/dist/tabs.js.map +1 -0
  70. package/dist/utils/headerFooterHelpers.js +122 -0
  71. package/dist/utils/headerFooterHelpers.js.map +1 -0
  72. package/dist/utils/keyHelpers/accessData.js +108 -0
  73. package/dist/utils/keyHelpers/accessData.js.map +1 -0
  74. package/dist/utils/keyHelpers/acl.js +112 -0
  75. package/dist/utils/keyHelpers/acl.js.map +1 -0
  76. package/dist/utils/keyHelpers/otherHelpers.js +19 -0
  77. package/dist/utils/keyHelpers/otherHelpers.js.map +1 -0
  78. package/dist/utils/label.js +150 -0
  79. package/dist/utils/label.js.map +1 -0
  80. package/dist/versionInfo.js +33 -0
  81. package/dist/versionInfo.js.map +1 -0
  82. package/dist/widgets/buttons/iconLinks.js +49 -0
  83. package/dist/widgets/buttons/iconLinks.js.map +1 -0
  84. package/dist/widgets/buttons.js +1355 -0
  85. package/dist/widgets/buttons.js.map +1 -0
  86. package/dist/widgets/error.js +42 -0
  87. package/dist/widgets/error.js.map +1 -0
  88. package/dist/widgets/forms/autocomplete/autocompleteBar.js +162 -0
  89. package/dist/widgets/forms/autocomplete/autocompleteBar.js.map +1 -0
  90. package/dist/widgets/forms/autocomplete/autocompleteField.js +235 -0
  91. package/dist/widgets/forms/autocomplete/autocompleteField.js.map +1 -0
  92. package/dist/widgets/forms/autocomplete/autocompletePicker.js +296 -0
  93. package/dist/widgets/forms/autocomplete/autocompletePicker.js.map +1 -0
  94. package/dist/widgets/forms/autocomplete/language.js +147 -0
  95. package/dist/widgets/forms/autocomplete/language.js.map +1 -0
  96. package/dist/widgets/forms/autocomplete/publicData.js +507 -0
  97. package/dist/widgets/forms/autocomplete/publicData.js.map +1 -0
  98. package/dist/widgets/forms/basic.js +250 -0
  99. package/dist/widgets/forms/basic.js.map +1 -0
  100. package/dist/widgets/forms/comment.js +52 -0
  101. package/dist/widgets/forms/comment.js.map +1 -0
  102. package/dist/widgets/forms/fieldFunction.js +49 -0
  103. package/dist/widgets/forms/fieldFunction.js.map +1 -0
  104. package/dist/widgets/forms/fieldParams.js +95 -0
  105. package/dist/widgets/forms/fieldParams.js.map +1 -0
  106. package/dist/widgets/forms/formStyle.js +43 -0
  107. package/dist/widgets/forms/formStyle.js.map +1 -0
  108. package/{lib → dist}/widgets/widgetHelpers.d.ts.map +1 -1
  109. package/{lib → dist}/widgets/widgetHelpers.js +19 -24
  110. package/dist/widgets/widgetHelpers.js.map +1 -0
  111. package/package.json +44 -47
  112. package/dist/789.solid-ui.min.js +0 -1
  113. package/dist/841.solid-ui.min.js +0 -3
  114. package/dist/841.solid-ui.min.js.LICENSE.txt +0 -58
  115. package/dist/841.solid-ui.min.js.map +0 -1
  116. package/dist/_2b19.solid-ui.js +0 -14
  117. package/dist/_2b19.solid-ui.js.map +0 -1
  118. package/dist/index.html +0 -1
  119. package/dist/solid-ui.min.js.LICENSE.txt +0 -57
  120. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +0 -12247
  121. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +0 -1
  122. package/lib/acl/access-controller.js +0 -391
  123. package/lib/acl/access-controller.js.map +0 -1
  124. package/lib/acl/access-groups.js +0 -507
  125. package/lib/acl/access-groups.js.map +0 -1
  126. package/lib/acl/acl-control.js +0 -237
  127. package/lib/acl/acl-control.js.map +0 -1
  128. package/lib/acl/acl.js +0 -517
  129. package/lib/acl/acl.js.map +0 -1
  130. package/lib/acl/add-agent-buttons.js +0 -434
  131. package/lib/acl/add-agent-buttons.js.map +0 -1
  132. package/lib/acl/index.js +0 -39
  133. package/lib/acl/index.js.map +0 -1
  134. package/lib/acl/types.js +0 -6
  135. package/lib/acl/types.js.map +0 -1
  136. package/lib/chat/bookmarks.js +0 -303
  137. package/lib/chat/bookmarks.js.map +0 -1
  138. package/lib/chat/chatLogic.js +0 -420
  139. package/lib/chat/chatLogic.js.map +0 -1
  140. package/lib/chat/dateFolder.js +0 -328
  141. package/lib/chat/dateFolder.js.map +0 -1
  142. package/lib/chat/infinite.js +0 -994
  143. package/lib/chat/infinite.js.map +0 -1
  144. package/lib/chat/keys.js +0 -232
  145. package/lib/chat/keys.js.map +0 -1
  146. package/lib/chat/message.js +0 -715
  147. package/lib/chat/message.js.map +0 -1
  148. package/lib/chat/messageTools.js +0 -538
  149. package/lib/chat/messageTools.js.map +0 -1
  150. package/lib/chat/signature.js +0 -109
  151. package/lib/chat/signature.js.map +0 -1
  152. package/lib/chat/thread.js +0 -535
  153. package/lib/chat/thread.js.map +0 -1
  154. package/lib/create/create.js +0 -242
  155. package/lib/create/create.js.map +0 -1
  156. package/lib/create/index.js +0 -11
  157. package/lib/create/index.js.map +0 -1
  158. package/lib/create/types.js +0 -6
  159. package/lib/create/types.js.map +0 -1
  160. package/lib/debug.js +0 -30
  161. package/lib/debug.js.map +0 -1
  162. package/lib/folders.js +0 -132
  163. package/lib/folders.js.map +0 -1
  164. package/lib/footer/index.js +0 -123
  165. package/lib/footer/index.js.map +0 -1
  166. package/lib/header/empty-profile.js +0 -8
  167. package/lib/header/empty-profile.js.map +0 -1
  168. package/lib/header/index.js +0 -375
  169. package/lib/header/index.js.map +0 -1
  170. package/lib/iconBase.js +0 -44
  171. package/lib/iconBase.js.map +0 -1
  172. package/lib/icons/solid_logo.js.map +0 -1
  173. package/lib/index.d.ts.map +0 -1
  174. package/lib/index.js +0 -223
  175. package/lib/index.js.map +0 -1
  176. package/lib/log.js.map +0 -1
  177. package/lib/login/login.js +0 -1241
  178. package/lib/login/login.js.map +0 -1
  179. package/lib/matrix/index.js +0 -11
  180. package/lib/matrix/index.js.map +0 -1
  181. package/lib/matrix/matrix.js +0 -216
  182. package/lib/matrix/matrix.js.map +0 -1
  183. package/lib/matrix/types.js +0 -6
  184. package/lib/matrix/types.js.map +0 -1
  185. package/lib/media/index.js +0 -12
  186. package/lib/media/index.js.map +0 -1
  187. package/lib/media/media-capture.js +0 -194
  188. package/lib/media/media-capture.js.map +0 -1
  189. package/lib/messageArea.js +0 -319
  190. package/lib/messageArea.js.map +0 -1
  191. package/lib/noun_Camera_1618446_000000.js +0 -8
  192. package/lib/noun_Camera_1618446_000000.js.map +0 -1
  193. package/lib/ns.js +0 -17
  194. package/lib/ns.js.map +0 -1
  195. package/lib/pad.js +0 -805
  196. package/lib/pad.js.map +0 -1
  197. package/lib/participation.js +0 -219
  198. package/lib/participation.js.map +0 -1
  199. package/lib/preferences.js +0 -215
  200. package/lib/preferences.js.map +0 -1
  201. package/lib/signup/config-default.js +0 -43
  202. package/lib/signup/config-default.js.map +0 -1
  203. package/lib/signup/signup.js +0 -74
  204. package/lib/signup/signup.js.map +0 -1
  205. package/lib/stories/decorators.js +0 -10
  206. package/lib/stories/decorators.js.map +0 -1
  207. package/lib/style.js +0 -158
  208. package/lib/style.js.map +0 -1
  209. package/lib/styleConstants.js +0 -35
  210. package/lib/styleConstants.js.map +0 -1
  211. package/lib/style_multiSelect.js +0 -62
  212. package/lib/style_multiSelect.js.map +0 -1
  213. package/lib/table.js +0 -1573
  214. package/lib/table.js.map +0 -1
  215. package/lib/tabs.js +0 -448
  216. package/lib/tabs.js.map +0 -1
  217. package/lib/typings.d.js +0 -2
  218. package/lib/typings.d.js.map +0 -1
  219. package/lib/utils/headerFooterHelpers.js +0 -165
  220. package/lib/utils/headerFooterHelpers.js.map +0 -1
  221. package/lib/utils/index.js +0 -527
  222. package/lib/utils/index.js.map +0 -1
  223. package/lib/utils/keyHelpers/accessData.js +0 -131
  224. package/lib/utils/keyHelpers/accessData.js.map +0 -1
  225. package/lib/utils/keyHelpers/acl.js +0 -90
  226. package/lib/utils/keyHelpers/acl.js.map +0 -1
  227. package/lib/utils/keyHelpers/otherHelpers.js +0 -21
  228. package/lib/utils/keyHelpers/otherHelpers.js.map +0 -1
  229. package/lib/utils/label.js +0 -103
  230. package/lib/utils/label.js.map +0 -1
  231. package/lib/versionInfo.d.ts +0 -34
  232. package/lib/versionInfo.d.ts.map +0 -1
  233. package/lib/versionInfo.js +0 -39
  234. package/lib/versionInfo.js.map +0 -1
  235. package/lib/widgets/buttons/iconLinks.js +0 -53
  236. package/lib/widgets/buttons/iconLinks.js.map +0 -1
  237. package/lib/widgets/buttons.js +0 -1306
  238. package/lib/widgets/buttons.js.map +0 -1
  239. package/lib/widgets/dragAndDrop.js +0 -194
  240. package/lib/widgets/dragAndDrop.js.map +0 -1
  241. package/lib/widgets/error.js +0 -46
  242. package/lib/widgets/error.js.map +0 -1
  243. package/lib/widgets/forms/autocomplete/autocompleteBar.js +0 -271
  244. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +0 -1
  245. package/lib/widgets/forms/autocomplete/autocompleteField.js +0 -258
  246. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +0 -1
  247. package/lib/widgets/forms/autocomplete/autocompletePicker.js +0 -436
  248. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +0 -1
  249. package/lib/widgets/forms/autocomplete/language.js +0 -189
  250. package/lib/widgets/forms/autocomplete/language.js.map +0 -1
  251. package/lib/widgets/forms/autocomplete/publicData.js +0 -636
  252. package/lib/widgets/forms/autocomplete/publicData.js.map +0 -1
  253. package/lib/widgets/forms/basic.js +0 -254
  254. package/lib/widgets/forms/basic.js.map +0 -1
  255. package/lib/widgets/forms/comment.js +0 -54
  256. package/lib/widgets/forms/comment.js.map +0 -1
  257. package/lib/widgets/forms/fieldFunction.js +0 -52
  258. package/lib/widgets/forms/fieldFunction.js.map +0 -1
  259. package/lib/widgets/forms/fieldParams.js +0 -77
  260. package/lib/widgets/forms/fieldParams.js.map +0 -1
  261. package/lib/widgets/forms/formStyle.js +0 -44
  262. package/lib/widgets/forms/formStyle.js.map +0 -1
  263. package/lib/widgets/forms.js +0 -2045
  264. package/lib/widgets/forms.js.map +0 -1
  265. package/lib/widgets/index.js +0 -110
  266. package/lib/widgets/index.js.map +0 -1
  267. package/lib/widgets/multiSelect.js +0 -658
  268. package/lib/widgets/multiSelect.js.map +0 -1
  269. package/lib/widgets/peoplePicker.js +0 -467
  270. package/lib/widgets/peoplePicker.js.map +0 -1
  271. package/lib/widgets/widgetHelpers.js.map +0 -1
  272. /package/{lib → dist}/acl/access-controller.d.ts +0 -0
  273. /package/{lib → dist}/acl/access-controller.d.ts.map +0 -0
  274. /package/{lib → dist}/acl/access-groups.d.ts +0 -0
  275. /package/{lib → dist}/acl/access-groups.d.ts.map +0 -0
  276. /package/{lib → dist}/acl/acl-control.d.ts +0 -0
  277. /package/{lib → dist}/acl/acl-control.d.ts.map +0 -0
  278. /package/{lib → dist}/acl/acl.d.ts +0 -0
  279. /package/{lib → dist}/acl/acl.d.ts.map +0 -0
  280. /package/{lib → dist}/acl/add-agent-buttons.d.ts +0 -0
  281. /package/{lib → dist}/acl/add-agent-buttons.d.ts.map +0 -0
  282. /package/{lib → dist}/acl/index.d.ts +0 -0
  283. /package/{lib → dist}/acl/index.d.ts.map +0 -0
  284. /package/{lib → dist}/acl/types.d.ts +0 -0
  285. /package/{lib → dist}/acl/types.d.ts.map +0 -0
  286. /package/{lib → dist}/chat/keys.d.ts +0 -0
  287. /package/{lib → dist}/chat/keys.d.ts.map +0 -0
  288. /package/{lib → dist}/chat/signature.d.ts +0 -0
  289. /package/{lib → dist}/chat/signature.d.ts.map +0 -0
  290. /package/{lib → dist}/create/create.d.ts +0 -0
  291. /package/{lib → dist}/create/create.d.ts.map +0 -0
  292. /package/{lib → dist}/create/index.d.ts +0 -0
  293. /package/{lib → dist}/create/index.d.ts.map +0 -0
  294. /package/{lib → dist}/create/types.d.ts +0 -0
  295. /package/{lib → dist}/create/types.d.ts.map +0 -0
  296. /package/{lib → dist}/debug.d.ts +0 -0
  297. /package/{lib → dist}/debug.d.ts.map +0 -0
  298. /package/{lib → dist}/footer/index.d.ts +0 -0
  299. /package/{lib → dist}/footer/index.d.ts.map +0 -0
  300. /package/{lib → dist}/header/empty-profile.d.ts +0 -0
  301. /package/{lib → dist}/header/empty-profile.d.ts.map +0 -0
  302. /package/{lib → dist}/header/index.d.ts +0 -0
  303. /package/{lib → dist}/header/index.d.ts.map +0 -0
  304. /package/{lib → dist}/iconBase.d.ts +0 -0
  305. /package/{lib → dist}/iconBase.d.ts.map +0 -0
  306. /package/{lib → dist}/icons/solid_logo.d.ts +0 -0
  307. /package/{lib → dist}/icons/solid_logo.d.ts.map +0 -0
  308. /package/{lib → dist}/icons/solid_logo.js +0 -0
  309. /package/{lib → dist}/log.d.ts +0 -0
  310. /package/{lib → dist}/log.d.ts.map +0 -0
  311. /package/{lib → dist}/login/login.d.ts +0 -0
  312. /package/{lib → dist}/login/login.d.ts.map +0 -0
  313. /package/{lib → dist}/matrix/index.d.ts +0 -0
  314. /package/{lib → dist}/matrix/index.d.ts.map +0 -0
  315. /package/{lib → dist}/matrix/matrix.d.ts +0 -0
  316. /package/{lib → dist}/matrix/matrix.d.ts.map +0 -0
  317. /package/{lib → dist}/matrix/types.d.ts +0 -0
  318. /package/{lib → dist}/matrix/types.d.ts.map +0 -0
  319. /package/{lib → dist}/media/index.d.ts +0 -0
  320. /package/{lib → dist}/media/index.d.ts.map +0 -0
  321. /package/{lib → dist}/media/media-capture.d.ts +0 -0
  322. /package/{lib → dist}/media/media-capture.d.ts.map +0 -0
  323. /package/{lib → dist}/pad.d.ts +0 -0
  324. /package/{lib → dist}/pad.d.ts.map +0 -0
  325. /package/{lib → dist}/participation.d.ts +0 -0
  326. /package/{lib → dist}/participation.d.ts.map +0 -0
  327. /package/{lib → dist}/tabs.d.ts +0 -0
  328. /package/{lib → dist}/tabs.d.ts.map +0 -0
  329. /package/{lib → dist}/utils/headerFooterHelpers.d.ts +0 -0
  330. /package/{lib → dist}/utils/headerFooterHelpers.d.ts.map +0 -0
  331. /package/{lib → dist}/utils/keyHelpers/accessData.d.ts +0 -0
  332. /package/{lib → dist}/utils/keyHelpers/accessData.d.ts.map +0 -0
  333. /package/{lib → dist}/utils/keyHelpers/acl.d.ts +0 -0
  334. /package/{lib → dist}/utils/keyHelpers/acl.d.ts.map +0 -0
  335. /package/{lib → dist}/utils/keyHelpers/otherHelpers.d.ts +0 -0
  336. /package/{lib → dist}/utils/keyHelpers/otherHelpers.d.ts.map +0 -0
  337. /package/{lib → dist}/utils/label.d.ts +0 -0
  338. /package/{lib → dist}/utils/label.d.ts.map +0 -0
  339. /package/{lib → dist}/widgets/buttons/iconLinks.d.ts +0 -0
  340. /package/{lib → dist}/widgets/buttons/iconLinks.d.ts.map +0 -0
  341. /package/{lib → dist}/widgets/buttons.d.ts +0 -0
  342. /package/{lib → dist}/widgets/buttons.d.ts.map +0 -0
  343. /package/{lib → dist}/widgets/error.d.ts +0 -0
  344. /package/{lib → dist}/widgets/error.d.ts.map +0 -0
  345. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
  346. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
  347. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
  348. /package/{lib → dist}/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
  349. /package/{lib → dist}/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
  350. /package/{lib → dist}/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
  351. /package/{lib → dist}/widgets/forms/autocomplete/language.d.ts +0 -0
  352. /package/{lib → dist}/widgets/forms/autocomplete/language.d.ts.map +0 -0
  353. /package/{lib → dist}/widgets/forms/autocomplete/publicData.d.ts +0 -0
  354. /package/{lib → dist}/widgets/forms/autocomplete/publicData.d.ts.map +0 -0
  355. /package/{lib → dist}/widgets/forms/basic.d.ts +0 -0
  356. /package/{lib → dist}/widgets/forms/basic.d.ts.map +0 -0
  357. /package/{lib → dist}/widgets/forms/comment.d.ts +0 -0
  358. /package/{lib → dist}/widgets/forms/comment.d.ts.map +0 -0
  359. /package/{lib → dist}/widgets/forms/fieldFunction.d.ts +0 -0
  360. /package/{lib → dist}/widgets/forms/fieldFunction.d.ts.map +0 -0
  361. /package/{lib → dist}/widgets/forms/fieldParams.d.ts +0 -0
  362. /package/{lib → dist}/widgets/forms/fieldParams.d.ts.map +0 -0
  363. /package/{lib → dist}/widgets/forms/formStyle.d.ts +0 -0
  364. /package/{lib → dist}/widgets/forms/formStyle.d.ts.map +0 -0
  365. /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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"}