solid-ui 2.6.1-7334254a → 2.6.1-7750253

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 +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/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 +7 -9
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +162 -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 +25542 -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 +23521 -68961
  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 +40 -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 -32
  232. package/lib/versionInfo.d.ts.map +0 -1
  233. package/lib/versionInfo.js +0 -37
  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,260 @@
1
+ "use strict";
2
+ /**
3
+ * Contains the [[AddAgentButtons]] class
4
+ * @packageDocumentation
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ var __importDefault = (this && this.__importDefault) || function (mod) {
40
+ return (mod && mod.__esModule) ? mod : { "default": mod };
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.AddAgentButtons = void 0;
44
+ const debug = __importStar(require("../debug"));
45
+ const iconBase_1 = require("../iconBase");
46
+ const login_1 = require("../login/login");
47
+ const ns_1 = __importDefault(require("../ns"));
48
+ const utils = __importStar(require("../utils"));
49
+ const widgets = __importStar(require("../widgets"));
50
+ const style_1 = require("../style");
51
+ /**
52
+ * Renders the Sharing pane's "+" button and the menus behind it,
53
+ * see https://github.com/solidos/userguide/blob/main/views/sharing/userguide.md#add
54
+ */
55
+ class AddAgentButtons {
56
+ groupList;
57
+ rootElement;
58
+ barElement;
59
+ isExpanded = false;
60
+ constructor(groupList) {
61
+ this.groupList = groupList;
62
+ this.rootElement = groupList.controller.dom.createElement('div');
63
+ this.barElement = groupList.controller.dom.createElement('div');
64
+ }
65
+ render() {
66
+ this.rootElement.innerHTML = '';
67
+ this.rootElement.appendChild(this.renderAddButton());
68
+ this.rootElement.appendChild(this.barElement);
69
+ return this.rootElement;
70
+ }
71
+ renderAddButton() {
72
+ return widgets.button(this.groupList.controller.dom, `${iconBase_1.icons.iconBase}noun_34653_green.svg`, 'Add ...', () => {
73
+ this.toggleBar();
74
+ this.renderBar();
75
+ });
76
+ }
77
+ renderBar() {
78
+ this.barElement.innerHTML = '';
79
+ if (!this.isExpanded) {
80
+ return;
81
+ }
82
+ this.barElement.appendChild(this.renderPersonButton());
83
+ this.barElement.appendChild(this.renderGroupButton());
84
+ this.barElement.appendChild(this.renderPublicButton());
85
+ this.barElement.appendChild(this.renderAuthenticatedAgentButton());
86
+ this.barElement.appendChild(this.renderBotButton());
87
+ this.barElement.appendChild(this.renderAppsButton());
88
+ }
89
+ renderSimplifiedBar(button) {
90
+ Array.from(this.barElement.children)
91
+ .filter(element => element !== button)
92
+ .forEach(element => this.barElement.removeChild(element));
93
+ }
94
+ renderPersonButton() {
95
+ return widgets.button(this.groupList.controller.dom, iconBase_1.icons.iconBase + widgets.iconForClass['vcard:Individual'], 'Add Person', event => {
96
+ this.renderSimplifiedBar(event.target);
97
+ this.renderNameForm(ns_1.default.vcard('Individual'), 'person')
98
+ .then(name => this.addPerson(name))
99
+ .then(() => this.renderCleanup())
100
+ .catch(error => this.groupList.controller.renderStatus(error));
101
+ });
102
+ }
103
+ renderGroupButton() {
104
+ return widgets.button(this.groupList.controller.dom, iconBase_1.icons.iconBase + widgets.iconForClass['vcard:Group'], 'Add Group', event => {
105
+ this.renderSimplifiedBar(event.target);
106
+ this.renderNameForm(ns_1.default.vcard('Group'), 'group')
107
+ .then(name => this.addGroup(name))
108
+ .then(() => this.renderCleanup())
109
+ .catch(error => this.groupList.controller.renderStatus(error));
110
+ });
111
+ }
112
+ renderNameForm(type, noun) {
113
+ return widgets.askName(this.groupList.controller.dom, this.groupList.store, this.barElement, ns_1.default.vcard('URI'), type, noun);
114
+ }
115
+ renderPublicButton() {
116
+ return widgets.button(this.groupList.controller.dom, iconBase_1.icons.iconBase + widgets.iconForClass['foaf:Agent'], 'Add Everyone', () => this.addAgent(ns_1.default.foaf('Agent').uri)
117
+ .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.'))
118
+ .then(() => this.renderCleanup()));
119
+ }
120
+ renderAuthenticatedAgentButton() {
121
+ return widgets.button(this.groupList.controller.dom, `${iconBase_1.icons.iconBase}noun_99101.svg`, 'Anyone logged In', () => this.addAgent(ns_1.default.acl('AuthenticatedAgent').uri)
122
+ .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.'))
123
+ .then(() => this.renderCleanup()));
124
+ }
125
+ renderBotButton() {
126
+ return widgets.button(this.groupList.controller.dom, iconBase_1.icons.iconBase + 'noun_Robot_849764.svg', 'A Software Agent (bot)', event => {
127
+ this.renderSimplifiedBar(event.target);
128
+ this.renderNameForm(ns_1.default.schema('Application'), 'bot')
129
+ .then(name => this.addBot(name))
130
+ .then(() => this.renderCleanup());
131
+ });
132
+ }
133
+ renderAppsButton() {
134
+ return widgets.button(this.groupList.controller.dom, `${iconBase_1.icons.iconBase}noun_15177.svg`, 'A Web App (origin)', event => {
135
+ this.renderSimplifiedBar(event.target);
136
+ const eventContext = {
137
+ div: this.barElement,
138
+ dom: this.groupList.controller.dom
139
+ };
140
+ const existingApps = this.renderAppsTable(eventContext)
141
+ .catch(error => this.groupList.controller.renderStatus(error));
142
+ this.renderAppsView();
143
+ const newApp = this.renderNameForm(ns_1.default.schema('WebApplication'), 'webapp domain')
144
+ .then(name => this.getOriginFromName(name));
145
+ Promise.race([
146
+ existingApps,
147
+ newApp
148
+ ])
149
+ .then(origin => {
150
+ if (origin) {
151
+ this.groupList.addNewURI(origin);
152
+ }
153
+ })
154
+ .then(() => this.renderCleanup());
155
+ });
156
+ }
157
+ renderAppsView() {
158
+ const trustedApplications = this.groupList.controller.context.session.paneRegistry.byName('trustedApplications');
159
+ if (trustedApplications) {
160
+ const trustedApplicationsElement = trustedApplications.render(null, this.groupList.controller.context);
161
+ trustedApplicationsElement.setAttribute('style', style_1.style.trustedAppController);
162
+ const cancelButton = widgets.cancelButton(this.groupList.controller.dom, () => this.renderCleanup());
163
+ cancelButton.setAttribute('style', style_1.style.trustedAppCancelButton);
164
+ trustedApplicationsElement.insertBefore(cancelButton, trustedApplicationsElement.firstChild);
165
+ this.barElement.appendChild(trustedApplicationsElement);
166
+ }
167
+ }
168
+ async renderAppsTable(eventContext) {
169
+ await (0, login_1.ensureLoadedProfile)(eventContext);
170
+ const trustedApps = this.groupList.store.each(eventContext.me, ns_1.default.acl('trustedApp')); // @@ TODO fix as
171
+ const trustedOrigins = trustedApps.flatMap(app => this.groupList.store.each(app, ns_1.default.acl('origin'))); // @@ TODO fix as
172
+ this.barElement.appendChild(this.groupList.controller.dom.createElement('p')).textContent = `You have ${trustedOrigins.length} selected web apps.`;
173
+ return new Promise((resolve, reject) => {
174
+ const appsTable = this.barElement.appendChild(this.groupList.controller.dom.createElement('table'));
175
+ appsTable.setAttribute('style', style_1.style.trustedAppAddApplicationsTable);
176
+ trustedApps.forEach(app => {
177
+ const origin = this.groupList.store.any(app, ns_1.default.acl('origin')); // @@ TODO fix as
178
+ if (!origin) {
179
+ reject(new Error(`Unable to pick app: ${app.value}`));
180
+ }
181
+ const thingTR = widgets.personTR(this.groupList.controller.dom, ns_1.default.acl('origin'), origin, {});
182
+ const innerTable = this.groupList.controller.dom.createElement('table');
183
+ const innerRow = innerTable.appendChild(this.groupList.controller.dom.createElement('tr'));
184
+ const innerLeftColumn = innerRow.appendChild(this.groupList.controller.dom.createElement('td'));
185
+ innerLeftColumn.appendChild(thingTR);
186
+ const innerMiddleColumn = innerRow.appendChild(this.groupList.controller.dom.createElement('td'));
187
+ innerMiddleColumn.textContent = `Give access to ${this.groupList.controller.noun} ${utils.label(this.groupList.controller.subject)}?`;
188
+ const innerRightColumn = innerRow.appendChild(this.groupList.controller.dom.createElement('td'));
189
+ innerRightColumn.appendChild(widgets.continueButton(this.groupList.controller.dom, () => resolve(origin.value)));
190
+ appsTable.appendChild(innerTable);
191
+ });
192
+ });
193
+ }
194
+ renderCleanup() {
195
+ this.renderBar();
196
+ this.groupList.render();
197
+ }
198
+ async addPerson(name) {
199
+ if (!name)
200
+ return this.toggleBar(); // user cancelled
201
+ const domainNameRegexp = /^https?:/i;
202
+ if (!name.match(domainNameRegexp)) {
203
+ // @@ enforce in user input live like a form element
204
+ return Promise.reject(new Error('Not a http URI'));
205
+ }
206
+ // @@ check it actually is a person and has an owner who agrees they own it
207
+ debug.log(`Adding to ACL person: ${name}`);
208
+ await this.groupList.addNewURI(name);
209
+ this.toggleBar();
210
+ }
211
+ async addGroup(name) {
212
+ if (!name)
213
+ return this.toggleBar(); // user cancelled
214
+ const domainNameRegexp = /^https?:/i;
215
+ if (!name.match(domainNameRegexp)) {
216
+ // @@ enforce in user input live like a form element
217
+ return Promise.reject(new Error('Not a http URI'));
218
+ }
219
+ // @@ check it actually is a group and has an owner who agrees they own it
220
+ debug.log('Adding to ACL group: ' + name);
221
+ await this.groupList.addNewURI(name);
222
+ this.toggleBar();
223
+ }
224
+ async addAgent(agentUri) {
225
+ await this.groupList.addNewURI(agentUri);
226
+ this.toggleBar();
227
+ }
228
+ async addBot(name) {
229
+ if (!name)
230
+ return this.toggleBar(); // user cancelled
231
+ const domainNameRegexp = /^https?:/i;
232
+ if (!name.match(domainNameRegexp)) {
233
+ // @@ enforce in user input live like a form element
234
+ return Promise.reject(new Error('Not a http URI'));
235
+ }
236
+ // @@ check it actually is a bot and has an owner who agrees they own it
237
+ debug.log('Adding to ACL bot: ' + name);
238
+ await this.groupList.addNewURI(name);
239
+ this.toggleBar();
240
+ }
241
+ async getOriginFromName(name) {
242
+ if (!name)
243
+ return Promise.resolve(); // user cancelled
244
+ const domainNameRegexp = /^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i;
245
+ // https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch08s15.html
246
+ if (!name.match(domainNameRegexp)) {
247
+ // @@ enforce in user input live like a form element
248
+ return Promise.reject(new Error('Not a domain name'));
249
+ }
250
+ const origin = 'https://' + name;
251
+ debug.log('Adding to ACL origin: ' + origin);
252
+ this.toggleBar();
253
+ return origin;
254
+ }
255
+ toggleBar() {
256
+ this.isExpanded = !this.isExpanded;
257
+ }
258
+ }
259
+ exports.AddAgentButtons = AddAgentButtons;
260
+ //# sourceMappingURL=add-agent-buttons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-agent-buttons.js","sourceRoot":"","sources":["../../src/acl/add-agent-buttons.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIH,gDAAiC;AACjC,0CAAmC;AACnC,0CAAoD;AACpD,+CAAsB;AACtB,gDAAiC;AACjC,oDAAqC;AACrC,oCAAgC;AAGhC;;;GAGG;AACH,MAAa,eAAe;IAKL;IAJJ,WAAW,CAAa;IACxB,UAAU,CAAa;IAChC,UAAU,GAAY,KAAK,CAAA;IAEnC,YAAqB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;QAC1C,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAChE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IACjE,CAAC;IAEM,MAAM;QACX,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,EAAE,CAAA;QAC/B,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAA;QACpD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC7C,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAEO,eAAe;QACrB,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,EAC7B,GAAG,gBAAK,CAAC,QAAQ,sBAAsB,EACvC,SAAS,EACT,GAAG,EAAE;YACH,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAI,CAAC,SAAS,EAAE,CAAA;QAClB,CAAC,CACF,CAAA;IACH,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,EAAE,CAAA;QAC9B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAA;QACtD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA;QACrD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAA;QACtD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,8BAA8B,EAAE,CAAC,CAAA;QAClE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAA;QACnD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAA;IACtD,CAAC;IAEO,mBAAmB,CAAE,MAA0B;QACrD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;aACjC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC;aACrC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA;IAC7D,CAAC;IAEO,kBAAkB;QACxB,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,EAC7B,gBAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,EACzD,YAAY,EACZ,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACtC,IAAI,CAAC,cAAc,CAAC,YAAE,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC;iBAClD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;iBAClC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;iBAChC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;QAClE,CAAC,CACF,CAAA;IACH,CAAC;IAEO,iBAAiB;QACvB,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,EAC7B,gBAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,EACpD,WAAW,EACX,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACtC,IAAI,CAAC,cAAc,CAAC,YAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;iBAC5C,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBACjC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;iBAChC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;QAClE,CAAC,CACF,CAAA;IACH,CAAC;IAEO,cAAc,CAAE,IAAe,EAAE,IAAY;QACnD,OAAO,OAAO,CAAC,OAAO,CACpB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,EAC7B,IAAI,CAAC,SAAS,CAAC,KAAK,EACpB,IAAI,CAAC,UAAU,EACf,YAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EACf,IAAI,EACJ,IAAI,CACL,CAAA;IACH,CAAC;IAEO,kBAAkB;QACxB,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,EAC7B,gBAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,EACnD,cAAc,EACd,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC;aACtC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,qBAAqB,CAAC,gHAAgH,CAAC,CAAC;aAC7K,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAA;IACxC,CAAC;IAEO,8BAA8B;QACpC,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,EAC7B,GAAG,gBAAK,CAAC,QAAQ,gBAAgB,EACjC,kBAAkB,EAClB,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC;aAClD,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,qBAAqB,CAAC,gHAAgH,CAAC,CAAC;aAC7K,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAA;IACxC,CAAC;IAEO,eAAe;QACrB,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,EAC7B,gBAAK,CAAC,QAAQ,GAAG,uBAAuB,EACxC,wBAAwB,EACxB,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACtC,IAAI,CAAC,cAAc,CAAC,YAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC;iBACjD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAC/B,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,gBAAgB;QACtB,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,EAC7B,GAAG,gBAAK,CAAC,QAAQ,gBAAgB,EACjC,oBAAoB,EACpB,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACtC,MAAM,YAAY,GAAG;gBACnB,GAAG,EAAE,IAAI,CAAC,UAAU;gBACpB,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG;aACnC,CAAA;YACD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;iBACpD,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;YAChE,IAAI,CAAC,cAAc,EAAE,CAAA;YACrB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,YAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,eAAe,CAAC;iBAC7E,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;YAC7C,OAAO,CAAC,IAAI,CAAC;gBACX,YAAY;gBACZ,MAAM;aACP,CAAC;iBACC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACb,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;gBAClC,CAAC;YACH,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;QACrC,CAAC,CACF,CAAA;IACH,CAAC;IAEO,cAAc;QACpB,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAA;QAChH,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,0BAA0B,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;YACtG,0BAA0B,CAAC,YAAY,CAAC,OAAO,EAAE,aAAK,CAAC,oBAAoB,CAAC,CAAA;YAE5E,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;YACpG,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,aAAK,CAAC,sBAAsB,CAAC,CAAA;YAChE,0BAA0B,CAAC,YAAY,CAAC,YAAY,EAAE,0BAA0B,CAAC,UAAU,CAAC,CAAA;YAE5F,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAA;QACzD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAE,YAAmC;QAChE,MAAM,IAAA,2BAAmB,EAAC,YAAY,CAAC,CAAA;QACvC,MAAM,WAAW,GAAI,IAAI,CAAC,SAAS,CAAC,KAAe,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,YAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAqB,CAAA,CAAC,iBAAiB;QACrI,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAE,IAAI,CAAC,SAAS,CAAC,KAAe,CAAC,IAAI,CAAC,GAAG,EAAE,YAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA,CAAC,iBAAiB;QAEhI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,YAAY,cAAc,CAAC,MAAM,qBAAqB,CAAA;QAClJ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA;YACnG,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,aAAK,CAAC,8BAA8B,CAAC,CAAA;YACrE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACxB,MAAM,MAAM,GAAI,IAAI,CAAC,SAAS,CAAC,KAAe,CAAC,GAAG,CAAC,GAAG,EAAE,YAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA,CAAC,iBAAiB;gBAC3F,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;gBACvD,CAAC;gBACD,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,YAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;gBAC7F,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;gBACvE,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;gBAE1F,MAAM,eAAe,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;gBAC/F,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;gBAEpC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;gBACjG,iBAAiB,CAAC,WAAW,GAAG,kBAAkB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAA;gBAErI,MAAM,gBAAgB,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;gBAChG,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAEjH,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;YACnC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,SAAS,EAAE,CAAA;QAChB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA;IACzB,CAAC;IAEO,KAAK,CAAC,SAAS,CAAE,IAAa;QACpC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,SAAS,EAAE,CAAA,CAAC,iBAAiB;QACpD,MAAM,gBAAgB,GAAG,WAAW,CAAA;QACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAClC,oDAAoD;YACpD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;QACpD,CAAC;QACD,2EAA2E;QAC3E,KAAK,CAAC,GAAG,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAA;QAC1C,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,CAAC,SAAS,EAAE,CAAA;IAClB,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAE,IAAa;QACnC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,SAAS,EAAE,CAAA,CAAC,iBAAiB;QAEpD,MAAM,gBAAgB,GAAG,WAAW,CAAA;QACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAClC,oDAAoD;YACpD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;QACpD,CAAC;QACD,0EAA0E;QAC1E,KAAK,CAAC,GAAG,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAA;QACzC,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,CAAC,SAAS,EAAE,CAAA;IAClB,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAE,QAAgB;QACtC,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QACxC,IAAI,CAAC,SAAS,EAAE,CAAA;IAClB,CAAC;IAEO,KAAK,CAAC,MAAM,CAAE,IAAa;QACjC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,SAAS,EAAE,CAAA,CAAC,iBAAiB;QACpD,MAAM,gBAAgB,GAAG,WAAW,CAAA;QACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAClC,oDAAoD;YACpD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;QACpD,CAAC;QACD,wEAAwE;QACxE,KAAK,CAAC,GAAG,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAA;QACvC,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,CAAC,SAAS,EAAE,CAAA;IAClB,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAE,IAAa;QAC5C,IAAI,CAAC,IAAI;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA,CAAC,iBAAiB;QACrD,MAAM,gBAAgB,GAAG,yCAAyC,CAAA;QAClE,+FAA+F;QAC/F,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAClC,oDAAoD;YACpD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAA;QACvD,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,GAAG,IAAI,CAAA;QAChC,KAAK,CAAC,GAAG,CAAC,wBAAwB,GAAG,MAAM,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,EAAE,CAAA;QAChB,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAA;IACpC,CAAC;CACF;AAzQD,0CAyQC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /**
3
+ * Re-exports all the exports from the various files in the src/acl/ folder
4
+ * @packageDocumentation
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.aclControl = exports.acl = void 0;
8
+ const acl_1 = require("./acl");
9
+ const acl_control_1 = require("./acl-control");
10
+ exports.acl = {
11
+ adoptACLDefault: acl_1.adoptACLDefault,
12
+ readACL: acl_1.readACL,
13
+ sameACL: acl_1.sameACL,
14
+ ACLunion: acl_1.ACLunion,
15
+ loadUnionACL: acl_1.loadUnionACL,
16
+ ACLbyCombination: acl_1.ACLbyCombination,
17
+ makeACLGraph: acl_1.makeACLGraph,
18
+ makeACLGraphbyCombo: acl_1.makeACLGraphbyCombo,
19
+ ACLToString: acl_1.ACLToString,
20
+ comboToString: acl_1.comboToString,
21
+ makeACLString: acl_1.makeACLString,
22
+ putACLObject: acl_1.putACLObject,
23
+ putACLbyCombo: acl_1.putACLbyCombo,
24
+ fixIndividualCardACL: acl_1.fixIndividualCardACL,
25
+ fixIndividualACL: acl_1.fixIndividualACL,
26
+ setACL: acl_1.setACL,
27
+ getACLorDefault: acl_1.getACLorDefault,
28
+ getACL: acl_1.getACL
29
+ };
30
+ exports.aclControl = {
31
+ preventBrowserDropEvents: acl_control_1.preventBrowserDropEvents,
32
+ shortNameForFolder: acl_control_1.shortNameForFolder,
33
+ ACLControlBox5: acl_control_1.ACLControlBox5
34
+ };
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/acl/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+BAmBc;AACd,+CAIsB;AAET,QAAA,GAAG,GAAG;IACjB,eAAe,EAAf,qBAAe;IACf,OAAO,EAAP,aAAO;IACP,OAAO,EAAP,aAAO;IACP,QAAQ,EAAR,cAAQ;IACR,YAAY,EAAZ,kBAAY;IACZ,gBAAgB,EAAhB,sBAAgB;IAChB,YAAY,EAAZ,kBAAY;IACZ,mBAAmB,EAAnB,yBAAmB;IACnB,WAAW,EAAX,iBAAW;IACX,aAAa,EAAb,mBAAa;IACb,aAAa,EAAb,mBAAa;IACb,YAAY,EAAZ,kBAAY;IACZ,aAAa,EAAb,mBAAa;IACb,oBAAoB,EAApB,0BAAoB;IACpB,gBAAgB,EAAhB,sBAAgB;IAChB,MAAM,EAAN,YAAM;IACN,eAAe,EAAf,qBAAe;IACf,MAAM,EAAN,YAAM;CACP,CAAA;AAEY,QAAA,UAAU,GAAG;IACxB,wBAAwB,EAAxB,sCAAwB;IACxB,kBAAkB,EAAlB,gCAAkB;IAClB,cAAc,EAAd,4BAAc;CACf,CAAA"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Contains types for src/acl/
4
+ * @packageDocumentation
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/acl/types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.generatePrivateKey = generatePrivateKey;
40
+ exports.generatePublicKey = generatePublicKey;
41
+ exports.getPublicKey = getPublicKey;
42
+ exports.getPrivateKey = getPrivateKey;
43
+ const debug = __importStar(require("../debug"));
44
+ const secp256k1_1 = require("@noble/curves/secp256k1");
45
+ const utils_1 = require("@noble/hashes/utils");
46
+ const ns_1 = __importDefault(require("../ns"));
47
+ const solid_logic_1 = require("solid-logic");
48
+ const $rdf = __importStar(require("rdflib"));
49
+ const accessData_1 = require("../utils/keyHelpers/accessData");
50
+ const acl_1 = require("../utils/keyHelpers/acl");
51
+ function generatePrivateKey() {
52
+ return (0, utils_1.bytesToHex)(secp256k1_1.schnorr.utils.randomPrivateKey());
53
+ }
54
+ function generatePublicKey(privateKey) {
55
+ return (0, utils_1.bytesToHex)(secp256k1_1.schnorr.getPublicKey(privateKey));
56
+ }
57
+ /**
58
+ * getPublicKey
59
+ * used for displaying messages in chat, therefore does not
60
+ * create a new key if not found
61
+ * @param webId
62
+ * @returns string | undefined
63
+ */
64
+ async function getPublicKey(webId) {
65
+ await solid_logic_1.store.fetcher.load(webId);
66
+ const publicKeyDoc = await (0, accessData_1.pubKeyUrl)(webId);
67
+ try {
68
+ await solid_logic_1.store.fetcher.load(publicKeyDoc); // url.href)
69
+ const key = solid_logic_1.store.any(webId, ns_1.default.solid('publicKey'));
70
+ return key?.value; // as NamedNode
71
+ }
72
+ catch (_err) {
73
+ return undefined;
74
+ }
75
+ }
76
+ async function getPrivateKey(webId) {
77
+ await solid_logic_1.store.fetcher.load(webId);
78
+ // find keys url's
79
+ const publicKeyDoc = await (0, accessData_1.pubKeyUrl)(webId);
80
+ const privateKeyDoc = await (0, accessData_1.privKeyUrl)(webId);
81
+ // find key pair
82
+ const publicKey = await (0, accessData_1.getExistingPublicKey)(webId, publicKeyDoc);
83
+ let privateKey = await (0, accessData_1.getExistingPrivateKey)(webId, privateKeyDoc);
84
+ // is publicKey valid ?
85
+ let validPublicKey = true;
86
+ if (privateKey && (publicKey !== generatePublicKey(privateKey))) {
87
+ if (confirm('This is strange the publicKey is not valid for\n' + webId?.uri +
88
+ '\'shall we repair keeping the private key ?'))
89
+ validPublicKey = false;
90
+ }
91
+ // create key pair or repair publicKey
92
+ if (!privateKey || !publicKey || !validPublicKey) {
93
+ let del = [];
94
+ let add = [];
95
+ if (!privateKey) {
96
+ // add = []
97
+ privateKey = generatePrivateKey();
98
+ add = [$rdf.st(webId, ns_1.default.solid('privateKey'), $rdf.literal(privateKey), solid_logic_1.store.sym(privateKeyDoc))];
99
+ await saveKey(privateKeyDoc, [], add, webId.uri);
100
+ }
101
+ if (!publicKey || !validPublicKey) {
102
+ del = [];
103
+ // delete invalid public key
104
+ if (publicKey) {
105
+ del = [$rdf.st(webId, ns_1.default.solid('publicKey'), $rdf.lit(publicKey), solid_logic_1.store.sym(publicKeyDoc))];
106
+ debug.log('delete invalid publicKey ' + del);
107
+ }
108
+ // update new valid key
109
+ const newPublicKey = generatePublicKey(privateKey);
110
+ add = [$rdf.st(webId, ns_1.default.solid('publicKey'), $rdf.literal(newPublicKey), solid_logic_1.store.sym(publicKeyDoc))];
111
+ await saveKey(publicKeyDoc, del, add);
112
+ }
113
+ const keyContainer = privateKeyDoc.substring(0, privateKeyDoc.lastIndexOf('/') + 1);
114
+ await (0, acl_1.setAcl)(keyContainer, (0, acl_1.keyContainerAclBody)(webId.uri)); // includes DELETE and PUT
115
+ }
116
+ return privateKey;
117
+ }
118
+ const deleteKeyAcl = async (keyDoc) => {
119
+ await solid_logic_1.store.fetcher.load(keyDoc);
120
+ const keyAclDoc = solid_logic_1.store.any(solid_logic_1.store.sym(keyDoc), solid_logic_1.store.sym('http://www.iana.org/assignments/link-relations/acl'));
121
+ if (keyAclDoc) {
122
+ // delete READ only keyAclDoc. This is possible if the webId is an owner
123
+ try {
124
+ const response = await solid_logic_1.store.fetcher.webOperation('DELETE', keyAclDoc.value); // this may fail if webId is not an owner
125
+ debug.log('delete keyAcl' + keyAclDoc.value + ' ' + response.status); // should test 404 and 2xx
126
+ }
127
+ catch (err) {
128
+ if (err.response.status !== 404) {
129
+ throw new Error(err);
130
+ }
131
+ debug.log('delete keyAcl' + keyAclDoc.value + ' ' + err.response.status); // should test 404 and 2xx
132
+ }
133
+ }
134
+ };
135
+ /**
136
+ * delete acl if keydoc exists
137
+ * create/edit keyDoc
138
+ * set keyDoc acl
139
+ */
140
+ async function saveKey(keyDoc, del, add, me = '') {
141
+ await deleteKeyAcl(keyDoc);
142
+ // save key
143
+ await solid_logic_1.store.updater.updateMany(del, add); // or a promise store.updater.update ?
144
+ // create READ only ACL
145
+ const aclBody = (0, acl_1.keyAclBody)(keyDoc, me);
146
+ await (0, acl_1.setAcl)(keyDoc, aclBody);
147
+ }
148
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/chat/keys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SEC = exports.utf8Encoder = exports.utf8Decoder = void 0;
4
+ exports.getBlankMsg = getBlankMsg;
5
+ exports.serializeMsg = serializeMsg;
6
+ exports.getMsgHash = getMsgHash;
7
+ exports.verifySignature = verifySignature;
8
+ exports.signMsg = signMsg;
9
+ const secp256k1_1 = require("@noble/curves/secp256k1");
10
+ const utils_1 = require("@noble/hashes/utils");
11
+ const sha256_1 = require("@noble/hashes/sha256");
12
+ // import {utf8Encoder} from './utils'
13
+ // import { getPublicKey } from './keys'
14
+ exports.utf8Decoder = new TextDecoder('utf-8');
15
+ exports.utf8Encoder = new TextEncoder();
16
+ exports.SEC = 'https://w3id.org/security#'; // Proof, VerificationMethod
17
+ function getBlankMsg() {
18
+ return {
19
+ id: '',
20
+ created: '',
21
+ dateDeleted: '', // TODO to remove if not used
22
+ content: '',
23
+ maker: '',
24
+ sig: '' // TODO to remove if not used
25
+ };
26
+ }
27
+ /* export function finishMsg (t: MsgTemplate, privateKey: string): Message {
28
+ // to update to chat message triples
29
+ const message = t as Message
30
+ // message.pubkey = getPublicKey(privateKey)
31
+ message.id = getMsgHash(message)
32
+ message.sig = signMsg(message, privateKey)
33
+ return message
34
+ } */
35
+ function serializeMsg(msg) {
36
+ // to update to chat messages triples
37
+ /* if (!validateMsg(msg))
38
+ throw new Error("can't serialize message with wrong or missing properties") */
39
+ return JSON.stringify(msg);
40
+ }
41
+ function getMsgHash(message) {
42
+ const msgHash = (0, sha256_1.sha256)(exports.utf8Encoder.encode(serializeMsg(message)));
43
+ return (0, utils_1.bytesToHex)(msgHash);
44
+ }
45
+ // const isRecord = (obj: unknown): obj is Record<string, unknown> => obj instanceof Object
46
+ /* export function validateMsg<T> (message: T): message is T & UnsignedMsg {
47
+ if (!isRecord(message)) return false
48
+ if (typeof message.kind !== 'number') return false
49
+ if (typeof message.content !== 'string') return false
50
+ if (typeof message.created_at !== 'number') return false
51
+ if (typeof message.pubkey !== 'string') return false
52
+ if (!message.pubkey.match(/^[a-f0-9]{64}$/)) return false
53
+
54
+ if (!Array.isArray(message.tags)) return false
55
+ for (let i = 0; i < message.tags.length; i++) {
56
+ let tag = message.tags[i]
57
+ if (!Array.isArray(tag)) return false
58
+ for (let j = 0; j < tag.length; j++) {
59
+ if (typeof tag[j] === 'object') return false
60
+ }
61
+ }
62
+
63
+ return true
64
+ } */
65
+ function verifySignature(sig, message, pubKey) {
66
+ return secp256k1_1.schnorr.verify(sig, getMsgHash(message), pubKey);
67
+ }
68
+ function signMsg(message, key) {
69
+ return (0, utils_1.bytesToHex)(secp256k1_1.schnorr.sign(getMsgHash(message), key));
70
+ }
71
+ //# sourceMappingURL=signature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/chat/signature.ts"],"names":[],"mappings":";;;AAuDA,kCASC;AAWD,oCAMC;AAED,gCAGC;AAwBD,0CAMC;AAED,0BAIC;AA1HD,uDAAiD;AACjD,+CAAgD;AAChD,iDAA6C;AAE7C,sCAAsC;AACtC,wCAAwC;AAE3B,QAAA,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;AACtC,QAAA,WAAW,GAAG,IAAI,WAAW,EAAE,CAAA;AAE/B,QAAA,GAAG,GAAG,4BAA4B,CAAA,CAAC,4BAA4B;AA6C5E,SAAgB,WAAW;IACzB,OAAO;QACL,EAAE,EAAE,EAAE;QACN,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,EAAE,EAAE,6BAA6B;QAC9C,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;QACT,GAAG,EAAE,EAAE,CAAC,6BAA6B;KACtC,CAAA;AACH,CAAC;AAED;;;;;;;IAOI;AAEJ,SAAgB,YAAY,CAAE,GAAgB;IAC5C,qCAAqC;IACrC;oFACgF;IAEhF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;AAC5B,CAAC;AAED,SAAgB,UAAU,CAAE,OAAoB;IAC9C,MAAM,OAAO,GAAG,IAAA,eAAM,EAAC,mBAAW,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACjE,OAAO,IAAA,kBAAU,EAAC,OAAO,CAAC,CAAA;AAC5B,CAAC;AAED,2FAA2F;AAE3F;;;;;;;;;;;;;;;;;;IAkBI;AAEJ,SAAgB,eAAe,CAAE,GAAW,EAAE,OAAgB,EAAE,MAAc;IAC5E,OAAO,mBAAO,CAAC,MAAM,CACnB,GAAG,EACH,UAAU,CAAC,OAAO,CAAC,EACnB,MAAM,CACP,CAAA;AACH,CAAC;AAED,SAAgB,OAAO,CAAE,OAAoB,EAAE,GAAW;IACxD,OAAO,IAAA,kBAAU,EACf,mBAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CACvC,CAAA;AACH,CAAC"}