solid-ui 2.6.1-b49f2e14 → 2.6.1-c6fc7fe
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.
- package/LICENSE.md +3 -1
- package/README.md +84 -25
- package/dist/acl/access-controller.js +293 -0
- package/dist/acl/access-controller.js.map +1 -0
- package/dist/acl/access-groups.js +372 -0
- package/dist/acl/access-groups.js.map +1 -0
- package/dist/acl/acl-control.js +217 -0
- package/dist/acl/acl-control.js.map +1 -0
- package/dist/acl/acl.js +550 -0
- package/dist/acl/acl.js.map +1 -0
- package/dist/acl/add-agent-buttons.js +260 -0
- package/dist/acl/add-agent-buttons.js.map +1 -0
- package/dist/acl/index.js +35 -0
- package/dist/acl/index.js.map +1 -0
- package/dist/acl/types.js +7 -0
- package/dist/acl/types.js.map +1 -0
- package/{lib → dist}/chat/keys.d.ts +1 -1
- package/{lib → dist}/chat/keys.d.ts.map +1 -1
- package/dist/chat/keys.js +148 -0
- package/dist/chat/keys.js.map +1 -0
- package/dist/chat/signature.js +71 -0
- package/dist/chat/signature.js.map +1 -0
- package/dist/create/create.js +288 -0
- package/dist/create/create.js.map +1 -0
- package/dist/create/index.js +8 -0
- package/dist/create/index.js.map +1 -0
- package/dist/create/types.js +3 -0
- package/dist/create/types.js.map +1 -0
- package/dist/debug.js +23 -0
- package/dist/debug.js.map +1 -0
- package/dist/footer/index.js +72 -0
- package/dist/footer/index.js.map +1 -0
- package/dist/header/empty-profile.js +14 -0
- package/dist/header/empty-profile.js.map +1 -0
- package/dist/header/index.js +305 -0
- package/dist/header/index.js.map +1 -0
- package/dist/iconBase.js +40 -0
- package/dist/iconBase.js.map +1 -0
- package/dist/icons/solid_logo.js.map +1 -0
- package/{lib → dist}/index.d.ts +7 -9
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +162 -0
- package/dist/index.js.map +1 -0
- package/{lib → dist}/log.js +85 -99
- package/dist/log.js.map +1 -0
- package/dist/login/login.js +910 -0
- package/dist/login/login.js.map +1 -0
- package/dist/matrix/index.js +8 -0
- package/dist/matrix/index.js.map +1 -0
- package/dist/matrix/matrix.js +253 -0
- package/dist/matrix/matrix.js.map +1 -0
- package/dist/matrix/types.js +3 -0
- package/dist/matrix/types.js.map +1 -0
- package/dist/media/index.js +9 -0
- package/dist/media/index.js.map +1 -0
- package/dist/media/media-capture.js +198 -0
- package/dist/media/media-capture.js.map +1 -0
- package/dist/pad.js +795 -0
- package/dist/pad.js.map +1 -0
- package/dist/participation.js +228 -0
- package/dist/participation.js.map +1 -0
- package/dist/solid-ui.esm.js +25542 -0
- package/dist/solid-ui.esm.js.map +1 -0
- package/dist/solid-ui.esm.min.js +43 -0
- package/dist/solid-ui.esm.min.js.map +1 -0
- package/dist/solid-ui.js +23485 -68926
- package/dist/solid-ui.js.map +1 -1
- package/dist/solid-ui.min.js +40 -2
- package/dist/solid-ui.min.js.map +1 -1
- package/dist/tabs.js +398 -0
- package/dist/tabs.js.map +1 -0
- package/dist/utils/headerFooterHelpers.js +122 -0
- package/dist/utils/headerFooterHelpers.js.map +1 -0
- package/{lib → dist}/utils/keyHelpers/accessData.d.ts +3 -3
- package/{lib → dist}/utils/keyHelpers/accessData.d.ts.map +1 -1
- package/dist/utils/keyHelpers/accessData.js +108 -0
- package/dist/utils/keyHelpers/accessData.js.map +1 -0
- package/dist/utils/keyHelpers/acl.js +112 -0
- package/dist/utils/keyHelpers/acl.js.map +1 -0
- package/{lib → dist}/utils/keyHelpers/otherHelpers.d.ts +1 -1
- package/{lib → dist}/utils/keyHelpers/otherHelpers.d.ts.map +1 -1
- package/dist/utils/keyHelpers/otherHelpers.js +19 -0
- package/dist/utils/keyHelpers/otherHelpers.js.map +1 -0
- package/dist/utils/label.js +150 -0
- package/dist/utils/label.js.map +1 -0
- package/dist/versionInfo.js +33 -0
- package/dist/versionInfo.js.map +1 -0
- package/dist/widgets/buttons/iconLinks.js +49 -0
- package/dist/widgets/buttons/iconLinks.js.map +1 -0
- package/dist/widgets/buttons.js +1355 -0
- package/dist/widgets/buttons.js.map +1 -0
- package/dist/widgets/error.js +42 -0
- package/dist/widgets/error.js.map +1 -0
- package/dist/widgets/forms/autocomplete/autocompleteBar.js +162 -0
- package/dist/widgets/forms/autocomplete/autocompleteBar.js.map +1 -0
- package/dist/widgets/forms/autocomplete/autocompleteField.js +235 -0
- package/dist/widgets/forms/autocomplete/autocompleteField.js.map +1 -0
- package/dist/widgets/forms/autocomplete/autocompletePicker.js +296 -0
- package/dist/widgets/forms/autocomplete/autocompletePicker.js.map +1 -0
- package/dist/widgets/forms/autocomplete/language.js +147 -0
- package/dist/widgets/forms/autocomplete/language.js.map +1 -0
- package/{lib → dist}/widgets/forms/autocomplete/publicData.d.ts +3 -3
- package/dist/widgets/forms/autocomplete/publicData.d.ts.map +1 -0
- package/dist/widgets/forms/autocomplete/publicData.js +507 -0
- package/dist/widgets/forms/autocomplete/publicData.js.map +1 -0
- package/dist/widgets/forms/basic.js +250 -0
- package/dist/widgets/forms/basic.js.map +1 -0
- package/dist/widgets/forms/comment.js +52 -0
- package/dist/widgets/forms/comment.js.map +1 -0
- package/dist/widgets/forms/fieldFunction.js +49 -0
- package/dist/widgets/forms/fieldFunction.js.map +1 -0
- package/dist/widgets/forms/fieldParams.js +95 -0
- package/dist/widgets/forms/fieldParams.js.map +1 -0
- package/dist/widgets/forms/formStyle.js +43 -0
- package/dist/widgets/forms/formStyle.js.map +1 -0
- package/{lib → dist}/widgets/widgetHelpers.d.ts.map +1 -1
- package/{lib → dist}/widgets/widgetHelpers.js +19 -24
- package/dist/widgets/widgetHelpers.js.map +1 -0
- package/package.json +44 -47
- package/dist/789.solid-ui.min.js +0 -1
- package/dist/841.solid-ui.min.js +0 -3
- package/dist/841.solid-ui.min.js.LICENSE.txt +0 -58
- package/dist/841.solid-ui.min.js.map +0 -1
- package/dist/_2b19.solid-ui.js +0 -14
- package/dist/_2b19.solid-ui.js.map +0 -1
- package/dist/index.html +0 -1
- package/dist/solid-ui.min.js.LICENSE.txt +0 -57
- package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +0 -12247
- package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +0 -1
- package/lib/acl/access-controller.js +0 -391
- package/lib/acl/access-controller.js.map +0 -1
- package/lib/acl/access-groups.js +0 -507
- package/lib/acl/access-groups.js.map +0 -1
- package/lib/acl/acl-control.js +0 -237
- package/lib/acl/acl-control.js.map +0 -1
- package/lib/acl/acl.js +0 -517
- package/lib/acl/acl.js.map +0 -1
- package/lib/acl/add-agent-buttons.js +0 -434
- package/lib/acl/add-agent-buttons.js.map +0 -1
- package/lib/acl/index.js +0 -39
- package/lib/acl/index.js.map +0 -1
- package/lib/acl/types.js +0 -6
- package/lib/acl/types.js.map +0 -1
- package/lib/chat/bookmarks.js +0 -303
- package/lib/chat/bookmarks.js.map +0 -1
- package/lib/chat/chatLogic.js +0 -420
- package/lib/chat/chatLogic.js.map +0 -1
- package/lib/chat/dateFolder.js +0 -328
- package/lib/chat/dateFolder.js.map +0 -1
- package/lib/chat/infinite.js +0 -994
- package/lib/chat/infinite.js.map +0 -1
- package/lib/chat/keys.js +0 -232
- package/lib/chat/keys.js.map +0 -1
- package/lib/chat/message.js +0 -715
- package/lib/chat/message.js.map +0 -1
- package/lib/chat/messageTools.js +0 -538
- package/lib/chat/messageTools.js.map +0 -1
- package/lib/chat/signature.js +0 -109
- package/lib/chat/signature.js.map +0 -1
- package/lib/chat/thread.js +0 -535
- package/lib/chat/thread.js.map +0 -1
- package/lib/create/create.js +0 -242
- package/lib/create/create.js.map +0 -1
- package/lib/create/index.js +0 -11
- package/lib/create/index.js.map +0 -1
- package/lib/create/types.js +0 -6
- package/lib/create/types.js.map +0 -1
- package/lib/debug.js +0 -30
- package/lib/debug.js.map +0 -1
- package/lib/folders.js +0 -132
- package/lib/folders.js.map +0 -1
- package/lib/footer/index.js +0 -123
- package/lib/footer/index.js.map +0 -1
- package/lib/header/empty-profile.js +0 -8
- package/lib/header/empty-profile.js.map +0 -1
- package/lib/header/index.js +0 -375
- package/lib/header/index.js.map +0 -1
- package/lib/iconBase.js +0 -44
- package/lib/iconBase.js.map +0 -1
- package/lib/icons/solid_logo.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -223
- package/lib/index.js.map +0 -1
- package/lib/log.js.map +0 -1
- package/lib/login/login.js +0 -1241
- package/lib/login/login.js.map +0 -1
- package/lib/matrix/index.js +0 -11
- package/lib/matrix/index.js.map +0 -1
- package/lib/matrix/matrix.js +0 -216
- package/lib/matrix/matrix.js.map +0 -1
- package/lib/matrix/types.js +0 -6
- package/lib/matrix/types.js.map +0 -1
- package/lib/media/index.js +0 -12
- package/lib/media/index.js.map +0 -1
- package/lib/media/media-capture.js +0 -194
- package/lib/media/media-capture.js.map +0 -1
- package/lib/messageArea.js +0 -319
- package/lib/messageArea.js.map +0 -1
- package/lib/noun_Camera_1618446_000000.js +0 -8
- package/lib/noun_Camera_1618446_000000.js.map +0 -1
- package/lib/ns.js +0 -17
- package/lib/ns.js.map +0 -1
- package/lib/pad.js +0 -805
- package/lib/pad.js.map +0 -1
- package/lib/participation.js +0 -219
- package/lib/participation.js.map +0 -1
- package/lib/preferences.js +0 -215
- package/lib/preferences.js.map +0 -1
- package/lib/signup/config-default.js +0 -43
- package/lib/signup/config-default.js.map +0 -1
- package/lib/signup/signup.js +0 -74
- package/lib/signup/signup.js.map +0 -1
- package/lib/stories/decorators.js +0 -10
- package/lib/stories/decorators.js.map +0 -1
- package/lib/style.js +0 -158
- package/lib/style.js.map +0 -1
- package/lib/styleConstants.js +0 -35
- package/lib/styleConstants.js.map +0 -1
- package/lib/style_multiSelect.js +0 -62
- package/lib/style_multiSelect.js.map +0 -1
- package/lib/table.js +0 -1573
- package/lib/table.js.map +0 -1
- package/lib/tabs.js +0 -448
- package/lib/tabs.js.map +0 -1
- package/lib/typings.d.js +0 -2
- package/lib/typings.d.js.map +0 -1
- package/lib/utils/headerFooterHelpers.js +0 -165
- package/lib/utils/headerFooterHelpers.js.map +0 -1
- package/lib/utils/index.js +0 -527
- package/lib/utils/index.js.map +0 -1
- package/lib/utils/keyHelpers/accessData.js +0 -131
- package/lib/utils/keyHelpers/accessData.js.map +0 -1
- package/lib/utils/keyHelpers/acl.js +0 -90
- package/lib/utils/keyHelpers/acl.js.map +0 -1
- package/lib/utils/keyHelpers/otherHelpers.js +0 -21
- package/lib/utils/keyHelpers/otherHelpers.js.map +0 -1
- package/lib/utils/label.js +0 -103
- package/lib/utils/label.js.map +0 -1
- package/lib/versionInfo.d.ts +0 -32
- package/lib/versionInfo.d.ts.map +0 -1
- package/lib/versionInfo.js +0 -37
- package/lib/versionInfo.js.map +0 -1
- package/lib/widgets/buttons/iconLinks.js +0 -53
- package/lib/widgets/buttons/iconLinks.js.map +0 -1
- package/lib/widgets/buttons.js +0 -1306
- package/lib/widgets/buttons.js.map +0 -1
- package/lib/widgets/dragAndDrop.js +0 -194
- package/lib/widgets/dragAndDrop.js.map +0 -1
- package/lib/widgets/error.js +0 -46
- package/lib/widgets/error.js.map +0 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +0 -271
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +0 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.js +0 -258
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +0 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +0 -436
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +0 -1
- package/lib/widgets/forms/autocomplete/language.js +0 -189
- package/lib/widgets/forms/autocomplete/language.js.map +0 -1
- package/lib/widgets/forms/autocomplete/publicData.d.ts.map +0 -1
- package/lib/widgets/forms/autocomplete/publicData.js +0 -636
- package/lib/widgets/forms/autocomplete/publicData.js.map +0 -1
- package/lib/widgets/forms/basic.js +0 -254
- package/lib/widgets/forms/basic.js.map +0 -1
- package/lib/widgets/forms/comment.js +0 -54
- package/lib/widgets/forms/comment.js.map +0 -1
- package/lib/widgets/forms/fieldFunction.js +0 -52
- package/lib/widgets/forms/fieldFunction.js.map +0 -1
- package/lib/widgets/forms/fieldParams.js +0 -77
- package/lib/widgets/forms/fieldParams.js.map +0 -1
- package/lib/widgets/forms/formStyle.js +0 -44
- package/lib/widgets/forms/formStyle.js.map +0 -1
- package/lib/widgets/forms.js +0 -2045
- package/lib/widgets/forms.js.map +0 -1
- package/lib/widgets/index.js +0 -110
- package/lib/widgets/index.js.map +0 -1
- package/lib/widgets/multiSelect.js +0 -658
- package/lib/widgets/multiSelect.js.map +0 -1
- package/lib/widgets/peoplePicker.js +0 -467
- package/lib/widgets/peoplePicker.js.map +0 -1
- package/lib/widgets/widgetHelpers.js.map +0 -1
- /package/{lib → dist}/acl/access-controller.d.ts +0 -0
- /package/{lib → dist}/acl/access-controller.d.ts.map +0 -0
- /package/{lib → dist}/acl/access-groups.d.ts +0 -0
- /package/{lib → dist}/acl/access-groups.d.ts.map +0 -0
- /package/{lib → dist}/acl/acl-control.d.ts +0 -0
- /package/{lib → dist}/acl/acl-control.d.ts.map +0 -0
- /package/{lib → dist}/acl/acl.d.ts +0 -0
- /package/{lib → dist}/acl/acl.d.ts.map +0 -0
- /package/{lib → dist}/acl/add-agent-buttons.d.ts +0 -0
- /package/{lib → dist}/acl/add-agent-buttons.d.ts.map +0 -0
- /package/{lib → dist}/acl/index.d.ts +0 -0
- /package/{lib → dist}/acl/index.d.ts.map +0 -0
- /package/{lib → dist}/acl/types.d.ts +0 -0
- /package/{lib → dist}/acl/types.d.ts.map +0 -0
- /package/{lib → dist}/chat/signature.d.ts +0 -0
- /package/{lib → dist}/chat/signature.d.ts.map +0 -0
- /package/{lib → dist}/create/create.d.ts +0 -0
- /package/{lib → dist}/create/create.d.ts.map +0 -0
- /package/{lib → dist}/create/index.d.ts +0 -0
- /package/{lib → dist}/create/index.d.ts.map +0 -0
- /package/{lib → dist}/create/types.d.ts +0 -0
- /package/{lib → dist}/create/types.d.ts.map +0 -0
- /package/{lib → dist}/debug.d.ts +0 -0
- /package/{lib → dist}/debug.d.ts.map +0 -0
- /package/{lib → dist}/footer/index.d.ts +0 -0
- /package/{lib → dist}/footer/index.d.ts.map +0 -0
- /package/{lib → dist}/header/empty-profile.d.ts +0 -0
- /package/{lib → dist}/header/empty-profile.d.ts.map +0 -0
- /package/{lib → dist}/header/index.d.ts +0 -0
- /package/{lib → dist}/header/index.d.ts.map +0 -0
- /package/{lib → dist}/iconBase.d.ts +0 -0
- /package/{lib → dist}/iconBase.d.ts.map +0 -0
- /package/{lib → dist}/icons/solid_logo.d.ts +0 -0
- /package/{lib → dist}/icons/solid_logo.d.ts.map +0 -0
- /package/{lib → dist}/icons/solid_logo.js +0 -0
- /package/{lib → dist}/log.d.ts +0 -0
- /package/{lib → dist}/log.d.ts.map +0 -0
- /package/{lib → dist}/login/login.d.ts +0 -0
- /package/{lib → dist}/login/login.d.ts.map +0 -0
- /package/{lib → dist}/matrix/index.d.ts +0 -0
- /package/{lib → dist}/matrix/index.d.ts.map +0 -0
- /package/{lib → dist}/matrix/matrix.d.ts +0 -0
- /package/{lib → dist}/matrix/matrix.d.ts.map +0 -0
- /package/{lib → dist}/matrix/types.d.ts +0 -0
- /package/{lib → dist}/matrix/types.d.ts.map +0 -0
- /package/{lib → dist}/media/index.d.ts +0 -0
- /package/{lib → dist}/media/index.d.ts.map +0 -0
- /package/{lib → dist}/media/media-capture.d.ts +0 -0
- /package/{lib → dist}/media/media-capture.d.ts.map +0 -0
- /package/{lib → dist}/pad.d.ts +0 -0
- /package/{lib → dist}/pad.d.ts.map +0 -0
- /package/{lib → dist}/participation.d.ts +0 -0
- /package/{lib → dist}/participation.d.ts.map +0 -0
- /package/{lib → dist}/tabs.d.ts +0 -0
- /package/{lib → dist}/tabs.d.ts.map +0 -0
- /package/{lib → dist}/utils/headerFooterHelpers.d.ts +0 -0
- /package/{lib → dist}/utils/headerFooterHelpers.d.ts.map +0 -0
- /package/{lib → dist}/utils/keyHelpers/acl.d.ts +0 -0
- /package/{lib → dist}/utils/keyHelpers/acl.d.ts.map +0 -0
- /package/{lib → dist}/utils/label.d.ts +0 -0
- /package/{lib → dist}/utils/label.d.ts.map +0 -0
- /package/{lib → dist}/widgets/buttons/iconLinks.d.ts +0 -0
- /package/{lib → dist}/widgets/buttons/iconLinks.d.ts.map +0 -0
- /package/{lib → dist}/widgets/buttons.d.ts +0 -0
- /package/{lib → dist}/widgets/buttons.d.ts.map +0 -0
- /package/{lib → dist}/widgets/error.d.ts +0 -0
- /package/{lib → dist}/widgets/error.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/language.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/autocomplete/language.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/basic.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/basic.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/comment.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/comment.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/fieldFunction.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/fieldFunction.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/fieldParams.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/fieldParams.d.ts.map +0 -0
- /package/{lib → dist}/widgets/forms/formStyle.d.ts +0 -0
- /package/{lib → dist}/widgets/forms/formStyle.d.ts.map +0 -0
- /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":"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"}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/acl/types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
|
@@ -8,6 +8,6 @@ export declare function generatePublicKey(privateKey: string): string;
|
|
|
8
8
|
* @param webId
|
|
9
9
|
* @returns string | undefined
|
|
10
10
|
*/
|
|
11
|
-
export declare function getPublicKey(webId: NamedNode): Promise<
|
|
11
|
+
export declare function getPublicKey(webId: NamedNode): Promise<any>;
|
|
12
12
|
export declare function getPrivateKey(webId: NamedNode): Promise<string>;
|
|
13
13
|
//# sourceMappingURL=keys.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/chat/keys.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAKlC,wBAAgB,kBAAkB,IAAK,MAAM,CAE5C;AAED,wBAAgB,iBAAiB,CAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAE,KAAK,EAAE,SAAS
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/chat/keys.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAKlC,wBAAgB,kBAAkB,IAAK,MAAM,CAE5C;AAED,wBAAgB,iBAAiB,CAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAE,KAAK,EAAE,SAAS,gBAUnD;AAED,wBAAsB,aAAa,CAAE,KAAK,EAAE,SAAS,mBA4CpD"}
|
|
@@ -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"}
|