solid-panes 3.5.11 → 3.5.14-alpha

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 (85) hide show
  1. package/.github/workflows/ci.yml +1 -1
  2. package/README.md +4 -0
  3. package/lib/dashboard/basicPreferences.js +193 -264
  4. package/lib/dashboard/basicPreferences.js.map +1 -1
  5. package/lib/dashboard/dashboardPane.d.ts.map +1 -1
  6. package/lib/dashboard/dashboardPane.js +57 -75
  7. package/lib/dashboard/dashboardPane.js.map +1 -1
  8. package/lib/dashboard/homepage.js +98 -100
  9. package/lib/dashboard/homepage.js.map +1 -1
  10. package/lib/form/pane.js +1 -1
  11. package/lib/form/pane.js.map +1 -1
  12. package/lib/home/homePane.js +112 -103
  13. package/lib/home/homePane.js.map +1 -1
  14. package/lib/humanReadablePane.js +55 -23
  15. package/lib/humanReadablePane.js.map +1 -1
  16. package/lib/index.d.ts +2 -1
  17. package/lib/index.d.ts.map +1 -1
  18. package/lib/index.js +49 -89
  19. package/lib/index.js.map +1 -1
  20. package/lib/internal/internalPane.js +180 -200
  21. package/lib/internal/internalPane.js.map +1 -1
  22. package/lib/mainPage/footer.d.ts +3 -0
  23. package/lib/mainPage/footer.d.ts.map +1 -0
  24. package/lib/mainPage/footer.js +20 -0
  25. package/lib/mainPage/footer.js.map +1 -0
  26. package/lib/mainPage/header.d.ts +2 -0
  27. package/lib/mainPage/header.d.ts.map +1 -0
  28. package/lib/mainPage/header.js +142 -0
  29. package/lib/mainPage/header.js.map +1 -0
  30. package/lib/mainPage/index.d.ts +3 -0
  31. package/lib/mainPage/index.d.ts.map +1 -0
  32. package/lib/mainPage/index.js +63 -0
  33. package/lib/mainPage/index.js.map +1 -0
  34. package/lib/microblogPane/microblogPane.js +1 -1
  35. package/lib/outline/context.d.ts +2 -2
  36. package/lib/outline/context.d.ts.map +1 -1
  37. package/lib/outline/context.js +13 -17
  38. package/lib/outline/context.js.map +1 -1
  39. package/lib/outline/manager.js +178 -150
  40. package/lib/outline/manager.js.map +1 -1
  41. package/lib/outline/propertyViews.js +32 -46
  42. package/lib/outline/propertyViews.js.map +1 -1
  43. package/lib/outline/userInput.js +1 -1
  44. package/lib/outline/viewAsImage.js +22 -19
  45. package/lib/outline/viewAsImage.js.map +1 -1
  46. package/lib/outline/viewAsMbox.js +5 -15
  47. package/lib/outline/viewAsMbox.js.map +1 -1
  48. package/lib/pad/padPane.js +406 -451
  49. package/lib/pad/padPane.js.map +1 -1
  50. package/lib/profile/editProfile.view.js +101 -124
  51. package/lib/profile/editProfile.view.js.map +1 -1
  52. package/lib/profile/profile.dom.js +12 -17
  53. package/lib/profile/profile.dom.js.map +1 -1
  54. package/lib/registerPanes.js +1 -1
  55. package/lib/registerPanes.js.map +1 -1
  56. package/lib/sharing/sharingPane.js +33 -45
  57. package/lib/sharing/sharingPane.js.map +1 -1
  58. package/lib/tabbed/tabbedPane.js +87 -77
  59. package/lib/tabbed/tabbedPane.js.map +1 -1
  60. package/lib/trustedApplications/trustedApplications.dom.js +173 -182
  61. package/lib/trustedApplications/trustedApplications.dom.js.map +1 -1
  62. package/lib/trustedApplications/trustedApplications.test.js +1 -1
  63. package/lib/trustedApplications/trustedApplications.utils.js +30 -36
  64. package/lib/trustedApplications/trustedApplications.utils.js.map +1 -1
  65. package/lib/trustedApplications/trustedApplications.view.js +91 -99
  66. package/lib/trustedApplications/trustedApplications.view.js.map +1 -1
  67. package/lib/types.js +1 -4
  68. package/lib/types.js.map +1 -1
  69. package/lib/versionInfo.d.ts +0 -1
  70. package/lib/versionInfo.d.ts.map +1 -1
  71. package/lib/versionInfo.js +23 -29
  72. package/lib/versionInfo.js.map +1 -1
  73. package/package.json +22 -21
  74. package/src/dashboard/dashboardPane.ts +5 -3
  75. package/src/form/pane.js +1 -1
  76. package/src/humanReadablePane.js +38 -14
  77. package/src/index.ts +4 -3
  78. package/src/mainPage/footer.ts +19 -0
  79. package/src/mainPage/header.ts +75 -0
  80. package/src/mainPage/index.ts +20 -0
  81. package/src/outline/context.ts +2 -2
  82. package/src/outline/manager.js +26 -16
  83. package/src/registerPanes.js +2 -2
  84. package/src/versionInfo.ts +18 -19
  85. package/webpack.config.js +1 -1
@@ -12,7 +12,7 @@ jobs:
12
12
  node-version:
13
13
  - 12.x
14
14
  - 14.x
15
- - 15.x
15
+ - 16.x
16
16
  steps:
17
17
  - uses: actions/checkout@v2
18
18
  - name: Use Node.js ${{ matrix.node-version }}
package/README.md CHANGED
@@ -48,6 +48,10 @@ to new users.
48
48
 
49
49
  Volunteers are always welcome!
50
50
 
51
+ ## Documentation
52
+ - [Visual Language](https://solid.github.io/solid-panes/Documentation/VisualLanguage.html)
53
+ - [Conventions](./Documentation/conventions.md)
54
+
51
55
  ## Development
52
56
  To get started, make sure you have Node.js installed (for instance
53
57
  through https://github.com/nvm-sh/nvm), and:
@@ -1,171 +1,166 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = exports.basicPreferencesPane = void 0;
7
-
8
- var _solidUi = require("solid-ui");
9
-
10
- var _rdflib = require("rdflib");
11
-
12
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
13
-
14
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
15
-
16
- /* babel-plugin-inline-import './preferencesFormText.ttl' */
17
- var preferencesFormText = "@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix : <#>.\n\n:this <http://purl.org/dc/elements/1.1/title> \"Basic preferences\" ;\n a ui:Form ;\n ui:part :categorizeUser, :privateComment, :personalInformationHeading;\n ui:parts ( :personalInformationHeading :privateComment :categorizeUser ).\n\n:personalInformationHeading a ui:Heading;\n ui:contents \"Personal information\".\n\n:privateComment a ui:Comment;\n ui:contents \"This information is private.\".\n\n:categorizeUser a ui:Classifier;\n ui:label \"Level of user\"; ui:property rdf:type ; ui:category solid:User.\n";
18
-
19
- /* babel-plugin-inline-import './ontologyData.ttl' */
20
- var ontologyData = "@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix schema: <http:/schema.org/>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix : <#>.\n\nsolid:User a rdfs:Class;\n rdfs:label \"user\"@en, \"utilisateur\"@fr;\n rdfs:comment \"\"\"Any person who might use a Solid-based system\"\"\";\n rdfs:subClassOf foaf:Person, schema:Person, vcard:Individual.\n\n# Since these options are opt-in, it is a bit strange to have new users opt in\n# That they are new users - also we do not use this class for anything specific\n# yet\n# solid:NewUser a rdfs:Class;\n# rdfs:label \"new user\"@en;\n# rdfs:comment \"\"\"A person who might use a Solid-based system who has a low\n# level of familiarity with technical details.\"\"\";\n# rdfs:subClassOf solid:User.\n\nsolid:PowerUser a rdfs:Class;\n rdfs:label \"power user\"@en;\n rdfs:comment \"\"\"A person who might use a Solid-based system\n who is prepared to be given a more complex interface in order\n to be provided with more pwerful features.\"\"\";\n rdfs:subClassOf solid:User.\n\n solid:Developer a rdfs:Class;\n rdfs:label \"Developer\";\n rdfs:comment \"\"\"Any person who might use a Solid-based system,\n who has software development skills.\"\"\";\n rdfs:subClassOf solid:User.\n";
21
- var basicPreferencesPane = {
22
- icon: _solidUi.icons.iconBase + 'noun_Sliders_341315_000000.svg',
23
- name: 'basicPreferences',
24
- label: function label(_subject) {
25
- return null;
26
- },
27
- // Render the pane
28
- // The subject should be the logged in user.
29
- render: function render(subject, context) {
30
- var dom = context.dom;
31
- var store = context.session.store;
32
-
33
- function complainIfBad(ok, mess) {
34
- if (ok) return;
35
- container.appendChild(_solidUi.widgets.errorMessageBlock(dom, mess, '#fee'));
36
- }
37
-
38
- var container = dom.createElement('div');
39
- var formArea = setupUserTypesSection(container, dom);
40
-
41
- function loadData(doc, turtle) {
42
- doc = doc.doc(); // remove # from URI if nec
43
-
44
- if (!store.holds(undefined, undefined, undefined, doc)) {
45
- // If not loaded already
46
- ;
47
- (0, _rdflib.parse)(turtle, store, doc.uri, 'text/turtle', null); // Load form directly
48
- }
49
- }
50
-
51
- var preferencesForm = store.sym('urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597#this');
52
- loadData(preferencesForm, preferencesFormText);
53
- var ontologyExtra = store.sym('urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597-ONT');
54
- loadData(ontologyExtra, ontologyData);
55
-
56
- function doRender() {
57
- return _doRender.apply(this, arguments);
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
58
36
  }
59
-
60
- function _doRender() {
61
- _doRender = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
62
- var renderContext, appendedForm, trustedApplicationsView;
63
- return regeneratorRuntime.wrap(function _callee$(_context) {
64
- while (1) {
65
- switch (_context.prev = _context.next) {
66
- case 0:
67
- _context.next = 2;
68
- return _solidUi.authn.logInLoadPreferences({
69
- dom: dom,
70
- div: container
71
- });
72
-
73
- case 2:
74
- renderContext = _context.sent;
75
-
76
- if (renderContext.preferencesFile) {
77
- _context.next = 6;
78
- break;
79
- }
80
-
81
- // Could be CORS
82
- console.log('Not doing private class preferences as no access to preferences file. ' + renderContext.preferencesFileError);
83
- return _context.abrupt("return");
84
-
85
- case 6:
86
- appendedForm = _solidUi.widgets.appendForm(dom, formArea, {}, renderContext.me, preferencesForm, renderContext.preferencesFile, complainIfBad);
87
- appendedForm.style.borderStyle = 'none';
88
- trustedApplicationsView = context.session.paneRegistry.byName('trustedApplications');
89
-
90
- if (trustedApplicationsView) {
91
- container.appendChild(trustedApplicationsView.render(null, context));
92
- } // @@ TODO Remove need for casting as any and bang (!) syntax
93
-
94
-
95
- addDeleteSection(container, store, renderContext.me, dom);
96
-
97
- case 11:
98
- case "end":
99
- return _context.stop();
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.basicPreferencesPane = void 0;
43
+ var solid_ui_1 = require("solid-ui");
44
+ var rdflib_1 = require("rdflib");
45
+ var preferencesFormText_ttl_1 = __importDefault(require("./preferencesFormText.ttl"));
46
+ var ontologyData_ttl_1 = __importDefault(require("./ontologyData.ttl"));
47
+ exports.basicPreferencesPane = {
48
+ icon: solid_ui_1.icons.iconBase + 'noun_Sliders_341315_000000.svg',
49
+ name: 'basicPreferences',
50
+ label: function (_subject) {
51
+ return null;
52
+ },
53
+ // Render the pane
54
+ // The subject should be the logged in user.
55
+ render: function (subject, context) {
56
+ var dom = context.dom;
57
+ var store = context.session.store;
58
+ function complainIfBad(ok, mess) {
59
+ if (ok)
60
+ return;
61
+ container.appendChild(solid_ui_1.widgets.errorMessageBlock(dom, mess, '#fee'));
62
+ }
63
+ var container = dom.createElement('div');
64
+ var formArea = setupUserTypesSection(container, dom);
65
+ function loadData(doc, turtle) {
66
+ doc = doc.doc(); // remove # from URI if nec
67
+ if (!store.holds(undefined, undefined, undefined, doc)) {
68
+ // If not loaded already
69
+ ;
70
+ rdflib_1.parse(turtle, store, doc.uri, 'text/turtle', null); // Load form directly
100
71
  }
101
- }
102
- }, _callee);
103
- }));
104
- return _doRender.apply(this, arguments);
72
+ }
73
+ var preferencesForm = store.sym('urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597#this');
74
+ loadData(preferencesForm, preferencesFormText_ttl_1.default);
75
+ var ontologyExtra = store.sym('urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597-ONT');
76
+ loadData(ontologyExtra, ontologyData_ttl_1.default);
77
+ function doRender() {
78
+ return __awaiter(this, void 0, void 0, function () {
79
+ var renderContext, appendedForm, trustedApplicationsView;
80
+ return __generator(this, function (_a) {
81
+ switch (_a.label) {
82
+ case 0: return [4 /*yield*/, solid_ui_1.authn.logInLoadPreferences({
83
+ dom: dom,
84
+ div: container
85
+ })];
86
+ case 1:
87
+ renderContext = _a.sent();
88
+ if (!renderContext.preferencesFile) {
89
+ // Could be CORS
90
+ console.log('Not doing private class preferences as no access to preferences file. ' +
91
+ renderContext.preferencesFileError);
92
+ return [2 /*return*/];
93
+ }
94
+ appendedForm = solid_ui_1.widgets.appendForm(dom, formArea, {}, renderContext.me, preferencesForm, renderContext.preferencesFile, complainIfBad);
95
+ appendedForm.style.borderStyle = 'none';
96
+ trustedApplicationsView = context.session.paneRegistry.byName('trustedApplications');
97
+ if (trustedApplicationsView) {
98
+ container.appendChild(trustedApplicationsView.render(null, context));
99
+ }
100
+ // @@ TODO Remove need for casting as any and bang (!) syntax
101
+ addDeleteSection(container, store, renderContext.me, dom);
102
+ return [2 /*return*/];
103
+ }
104
+ });
105
+ });
106
+ }
107
+ doRender();
108
+ return container;
105
109
  }
106
-
107
- doRender();
108
- return container;
109
- }
110
110
  };
111
- exports.basicPreferencesPane = basicPreferencesPane;
112
-
113
111
  function setupUserTypesSection(container, dom) {
114
- var formContainer = createSection(container, dom, 'User types');
115
- var description = formContainer.appendChild(dom.createElement('p'));
116
- description.innerText = 'Here you can self-assign user types to help the data browser know which views you would like to access.';
117
- var userTypesLink = formContainer.appendChild(dom.createElement('a'));
118
- userTypesLink.href = 'https://github.com/solid/userguide/#role';
119
- userTypesLink.innerText = 'Read more';
120
- var formArea = formContainer.appendChild(dom.createElement('div'));
121
- return formArea;
112
+ var formContainer = createSection(container, dom, 'User types');
113
+ var description = formContainer.appendChild(dom.createElement('p'));
114
+ description.innerText = 'Here you can self-assign user types to help the data browser know which views you would like to access.';
115
+ var userTypesLink = formContainer.appendChild(dom.createElement('a'));
116
+ userTypesLink.href = 'https://github.com/solid/userguide/#role';
117
+ userTypesLink.innerText = 'Read more';
118
+ var formArea = formContainer.appendChild(dom.createElement('div'));
119
+ return formArea;
122
120
  }
123
-
124
- var _default = basicPreferencesPane; // ends
125
-
126
- exports["default"] = _default;
127
-
121
+ exports.default = exports.basicPreferencesPane;
122
+ // ends
128
123
  function addDeleteSection(container, store, profile, dom) {
129
- var section = createSection(container, dom, 'Delete account');
130
- var podServerNodes = store.each(profile, _solidUi.ns.space('storage'), null, profile.doc());
131
- var podServers = podServerNodes.map(function (node) {
132
- return node.value;
133
- });
134
- var list = section.appendChild(dom.createElement('ul'));
135
- podServers.forEach( /*#__PURE__*/function () {
136
- var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(server) {
137
- var deletionLink, listItem;
138
- return regeneratorRuntime.wrap(function _callee2$(_context2) {
139
- while (1) {
140
- switch (_context2.prev = _context2.next) {
141
- case 0:
142
- _context2.next = 2;
143
- return generateDeletionLink(server, dom);
144
-
145
- case 2:
146
- deletionLink = _context2.sent;
147
-
148
- if (deletionLink) {
149
- listItem = list.appendChild(dom.createElement('li'));
150
- listItem.appendChild(deletionLink);
151
- }
152
-
153
- case 4:
154
- case "end":
155
- return _context2.stop();
156
- }
157
- }
158
- }, _callee2);
159
- }));
160
-
161
- return function (_x) {
162
- return _ref.apply(this, arguments);
163
- };
164
- }());
124
+ var _this = this;
125
+ var section = createSection(container, dom, 'Delete account');
126
+ var podServerNodes = store.each(profile, solid_ui_1.ns.space('storage'), null, profile.doc());
127
+ var podServers = podServerNodes.map(function (node) { return node.value; });
128
+ var list = section.appendChild(dom.createElement('ul'));
129
+ podServers.forEach(function (server) { return __awaiter(_this, void 0, void 0, function () {
130
+ var deletionLink, listItem;
131
+ return __generator(this, function (_a) {
132
+ switch (_a.label) {
133
+ case 0: return [4 /*yield*/, generateDeletionLink(server, dom)];
134
+ case 1:
135
+ deletionLink = _a.sent();
136
+ if (deletionLink) {
137
+ listItem = list.appendChild(dom.createElement('li'));
138
+ listItem.appendChild(deletionLink);
139
+ }
140
+ return [2 /*return*/];
141
+ }
142
+ });
143
+ }); });
165
144
  }
166
-
167
- function generateDeletionLink(_x2, _x3) {
168
- return _generateDeletionLink.apply(this, arguments);
145
+ function generateDeletionLink(podServer, dom) {
146
+ return __awaiter(this, void 0, void 0, function () {
147
+ var link, deletionUrl;
148
+ return __generator(this, function (_a) {
149
+ switch (_a.label) {
150
+ case 0:
151
+ link = dom.createElement('a');
152
+ link.textContent = "Delete your account at ".concat(podServer);
153
+ return [4 /*yield*/, getDeletionUrlForServer(podServer)];
154
+ case 1:
155
+ deletionUrl = _a.sent();
156
+ if (typeof deletionUrl !== 'string') {
157
+ return [2 /*return*/, null];
158
+ }
159
+ link.href = deletionUrl;
160
+ return [2 /*return*/, link];
161
+ }
162
+ });
163
+ });
169
164
  }
170
165
  /**
171
166
  * Hacky way to get the deletion link to a Pod
@@ -182,113 +177,47 @@ function generateDeletionLink(_x2, _x3) {
182
177
  * @returns URL of the page that Node Solid Server would offer to delete the account, or null if
183
178
  * the URLs we tried give invalid responses.
184
179
  */
185
-
186
-
187
- function _generateDeletionLink() {
188
- _generateDeletionLink = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(podServer, dom) {
189
- var link, deletionUrl;
190
- return regeneratorRuntime.wrap(function _callee3$(_context3) {
191
- while (1) {
192
- switch (_context3.prev = _context3.next) {
193
- case 0:
194
- link = dom.createElement('a');
195
- link.textContent = "Delete your account at ".concat(podServer);
196
- _context3.next = 4;
197
- return getDeletionUrlForServer(podServer);
198
-
199
- case 4:
200
- deletionUrl = _context3.sent;
201
-
202
- if (!(typeof deletionUrl !== 'string')) {
203
- _context3.next = 7;
204
- break;
180
+ function getDeletionUrlForServer(server) {
181
+ return __awaiter(this, void 0, void 0, function () {
182
+ var singleUserUrl, multiUserUrl, hostnameParts, multiUserNssResponse, singleUserNssResponse;
183
+ return __generator(this, function (_a) {
184
+ switch (_a.label) {
185
+ case 0:
186
+ singleUserUrl = new URL(server);
187
+ multiUserUrl = new URL(server);
188
+ multiUserUrl.pathname = singleUserUrl.pathname = '/account/delete';
189
+ hostnameParts = multiUserUrl.hostname.split('.');
190
+ // Remove `vincent.` from `vincent.dev.inrupt.net`, for example:
191
+ multiUserUrl.hostname = hostnameParts.slice(1).join('.');
192
+ return [4 /*yield*/, fetch(multiUserUrl.href, {
193
+ method: 'HEAD'
194
+ })];
195
+ case 1:
196
+ multiUserNssResponse = _a.sent();
197
+ if (multiUserNssResponse.ok) {
198
+ return [2 /*return*/, multiUserUrl.href];
199
+ }
200
+ return [4 /*yield*/, fetch(singleUserUrl.href, {
201
+ method: 'HEAD'
202
+ })];
203
+ case 2:
204
+ singleUserNssResponse = _a.sent();
205
+ if (singleUserNssResponse.ok) {
206
+ return [2 /*return*/, singleUserUrl.href];
207
+ }
208
+ return [2 /*return*/, null];
205
209
  }
206
-
207
- return _context3.abrupt("return", null);
208
-
209
- case 7:
210
- link.href = deletionUrl;
211
- return _context3.abrupt("return", link);
212
-
213
- case 9:
214
- case "end":
215
- return _context3.stop();
216
- }
217
- }
218
- }, _callee3);
219
- }));
220
- return _generateDeletionLink.apply(this, arguments);
221
- }
222
-
223
- function getDeletionUrlForServer(_x4) {
224
- return _getDeletionUrlForServer.apply(this, arguments);
225
- }
226
-
227
- function _getDeletionUrlForServer() {
228
- _getDeletionUrlForServer = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(server) {
229
- var singleUserUrl, multiUserUrl, hostnameParts, multiUserNssResponse, singleUserNssResponse;
230
- return regeneratorRuntime.wrap(function _callee4$(_context4) {
231
- while (1) {
232
- switch (_context4.prev = _context4.next) {
233
- case 0:
234
- singleUserUrl = new URL(server);
235
- multiUserUrl = new URL(server);
236
- multiUserUrl.pathname = singleUserUrl.pathname = '/account/delete';
237
- hostnameParts = multiUserUrl.hostname.split('.'); // Remove `vincent.` from `vincent.dev.inrupt.net`, for example:
238
-
239
- multiUserUrl.hostname = hostnameParts.slice(1).join('.');
240
- _context4.next = 7;
241
- return fetch(multiUserUrl.href, {
242
- method: 'HEAD'
243
- });
244
-
245
- case 7:
246
- multiUserNssResponse = _context4.sent;
247
-
248
- if (!multiUserNssResponse.ok) {
249
- _context4.next = 10;
250
- break;
251
- }
252
-
253
- return _context4.abrupt("return", multiUserUrl.href);
254
-
255
- case 10:
256
- _context4.next = 12;
257
- return fetch(singleUserUrl.href, {
258
- method: 'HEAD'
259
- });
260
-
261
- case 12:
262
- singleUserNssResponse = _context4.sent;
263
-
264
- if (!singleUserNssResponse.ok) {
265
- _context4.next = 15;
266
- break;
267
- }
268
-
269
- return _context4.abrupt("return", singleUserUrl.href);
270
-
271
- case 15:
272
- return _context4.abrupt("return", null);
273
-
274
- case 16:
275
- case "end":
276
- return _context4.stop();
277
- }
278
- }
279
- }, _callee4);
280
- }));
281
- return _getDeletionUrlForServer.apply(this, arguments);
210
+ });
211
+ });
282
212
  }
283
-
284
213
  function createSection(container, dom, title) {
285
- var section = container.appendChild(dom.createElement('div'));
286
- section.style.border = '0.3em solid #418d99';
287
- section.style.borderRadius = '0.5em';
288
- section.style.padding = '0.7em';
289
- section.style.marginTop = '0.7em';
290
- var titleElement = section.appendChild(dom.createElement('h3'));
291
- titleElement.innerText = title;
292
- return section;
214
+ var section = container.appendChild(dom.createElement('div'));
215
+ section.style.border = '0.3em solid #418d99';
216
+ section.style.borderRadius = '0.5em';
217
+ section.style.padding = '0.7em';
218
+ section.style.marginTop = '0.7em';
219
+ var titleElement = section.appendChild(dom.createElement('h3'));
220
+ titleElement.innerText = title;
221
+ return section;
293
222
  }
294
223
  //# sourceMappingURL=basicPreferences.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dashboard/basicPreferences.ts"],"names":["basicPreferencesPane","icon","icons","iconBase","name","label","_subject","render","subject","context","dom","store","session","complainIfBad","ok","mess","container","appendChild","widgets","errorMessageBlock","createElement","formArea","setupUserTypesSection","loadData","doc","turtle","holds","undefined","parse","uri","preferencesForm","sym","preferencesFormText","ontologyExtra","ontologyData","doRender","authn","logInLoadPreferences","div","renderContext","preferencesFile","console","log","preferencesFileError","appendedForm","appendForm","me","style","borderStyle","trustedApplicationsView","paneRegistry","byName","addDeleteSection","formContainer","createSection","description","innerText","userTypesLink","href","profile","section","podServerNodes","each","ns","space","podServers","map","node","value","list","forEach","server","generateDeletionLink","deletionLink","listItem","podServer","link","textContent","getDeletionUrlForServer","deletionUrl","singleUserUrl","URL","multiUserUrl","pathname","hostnameParts","hostname","split","slice","join","fetch","method","multiUserNssResponse","singleUserNssResponse","title","border","borderRadius","padding","marginTop","titleElement"],"mappings":"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","sourcesContent":["import { authn, icons, ns, widgets } from 'solid-ui'\nimport { IndexedFormula, NamedNode, parse, Store } from 'rdflib'\n\nimport preferencesFormText from './preferencesFormText.ttl'\nimport ontologyData from './ontologyData.ttl'\nimport { PaneDefinition } from 'pane-registry'\n\nexport const basicPreferencesPane: PaneDefinition = {\n icon: icons.iconBase + 'noun_Sliders_341315_000000.svg',\n name: 'basicPreferences',\n label: _subject => {\n return null\n },\n\n // Render the pane\n // The subject should be the logged in user.\n render: (subject, context) => {\n const dom = context.dom\n const store = context.session.store as Store\n\n function complainIfBad (ok: Boolean, mess: any) {\n if (ok) return\n container.appendChild(widgets.errorMessageBlock(dom, mess, '#fee'))\n }\n\n const container = dom.createElement('div')\n\n const formArea = setupUserTypesSection(container, dom)\n\n function loadData (doc: NamedNode, turtle: String) {\n doc = doc.doc() // remove # from URI if nec\n if (!store.holds(undefined, undefined, undefined, doc)) {\n // If not loaded already\n ;(parse as any)(turtle, store, doc.uri, 'text/turtle', null) // Load form directly\n }\n }\n\n const preferencesForm = store.sym(\n 'urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597#this'\n )\n loadData(preferencesForm, preferencesFormText)\n\n const ontologyExtra = store.sym(\n 'urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597-ONT'\n )\n loadData(ontologyExtra, ontologyData)\n\n async function doRender () {\n const renderContext = await authn.logInLoadPreferences({\n dom,\n div: container\n })\n if (!renderContext.preferencesFile) {\n // Could be CORS\n console.log(\n 'Not doing private class preferences as no access to preferences file. ' +\n renderContext.preferencesFileError\n )\n return\n }\n const appendedForm = widgets.appendForm(\n dom,\n formArea,\n {},\n renderContext.me,\n preferencesForm,\n renderContext.preferencesFile,\n complainIfBad\n )\n appendedForm.style.borderStyle = 'none'\n\n const trustedApplicationsView = context.session.paneRegistry.byName('trustedApplications')\n if (trustedApplicationsView) {\n container.appendChild(trustedApplicationsView.render(null, context))\n }\n\n // @@ TODO Remove need for casting as any and bang (!) syntax\n addDeleteSection(container, store, renderContext.me!, dom)\n }\n\n doRender()\n\n return container\n }\n}\n\nfunction setupUserTypesSection (\n container: Element,\n dom: HTMLDocument\n): Element {\n const formContainer = createSection(container, dom, 'User types')\n\n const description = formContainer.appendChild(dom.createElement('p'))\n description.innerText = 'Here you can self-assign user types to help the data browser know which views you would like to access.'\n\n const userTypesLink = formContainer.appendChild(dom.createElement('a'))\n userTypesLink.href = 'https://github.com/solid/userguide/#role'\n userTypesLink.innerText = 'Read more'\n\n const formArea = formContainer.appendChild(dom.createElement('div'))\n\n return formArea\n}\n\nexport default basicPreferencesPane\n\n// ends\n\nfunction addDeleteSection (\n container: HTMLElement,\n store: IndexedFormula,\n profile: NamedNode,\n dom: HTMLDocument\n): void {\n const section = createSection(container, dom, 'Delete account')\n\n const podServerNodes = store.each(profile, ns.space('storage'), null, profile.doc())\n const podServers = podServerNodes.map(node => node.value)\n\n const list = section.appendChild(dom.createElement('ul'))\n\n podServers.forEach(async server => {\n const deletionLink = await generateDeletionLink(server, dom)\n if (deletionLink) {\n const listItem = list.appendChild(dom.createElement('li'))\n listItem.appendChild(deletionLink)\n }\n })\n}\n\nasync function generateDeletionLink (\n podServer: string,\n dom: HTMLDocument\n): Promise<HTMLElement | null> {\n const link = dom.createElement('a')\n link.textContent = `Delete your account at ${podServer}`\n const deletionUrl = await getDeletionUrlForServer(podServer)\n if (typeof deletionUrl !== 'string') {\n return null\n }\n link.href = deletionUrl\n return link\n}\n\n/**\n * Hacky way to get the deletion link to a Pod\n *\n * This function infers the deletion link by assuming the URL structure of Node Solid server.\n * In the future, Solid will hopefully provide a standardised way of discovering the deletion link:\n * https://github.com/solid/data-interoperability-panel/issues/18\n *\n * If NSS is in multi-user mode (the case on inrupt.net and solid.community), the deletion URL for\n * vincent.dev.inrupt.net would be at dev.inrupt.net/account/delete. In single-user mode, the\n * deletion URL would be at vincent.dev.inrupt.net/account/delete.\n *\n * @param server Pod server containing the user's account.\n * @returns URL of the page that Node Solid Server would offer to delete the account, or null if\n * the URLs we tried give invalid responses.\n */\nasync function getDeletionUrlForServer (\n server: string\n): Promise<string | null> {\n const singleUserUrl = new URL(server)\n const multiUserUrl = new URL(server)\n multiUserUrl.pathname = singleUserUrl.pathname = '/account/delete'\n\n const hostnameParts = multiUserUrl.hostname.split('.')\n // Remove `vincent.` from `vincent.dev.inrupt.net`, for example:\n multiUserUrl.hostname = hostnameParts.slice(1).join('.')\n\n const multiUserNssResponse = await fetch(multiUserUrl.href, {\n method: 'HEAD'\n })\n if (multiUserNssResponse.ok) {\n return multiUserUrl.href\n }\n\n const singleUserNssResponse = await fetch(singleUserUrl.href, {\n method: 'HEAD'\n })\n if (singleUserNssResponse.ok) {\n return singleUserUrl.href\n }\n return null\n}\n\nfunction createSection (\n container: Element,\n dom: HTMLDocument,\n title: string\n): Element {\n const section = container.appendChild(dom.createElement('div'))\n section.style.border = '0.3em solid #418d99'\n section.style.borderRadius = '0.5em'\n section.style.padding = '0.7em'\n section.style.marginTop = '0.7em'\n\n const titleElement = section.appendChild(dom.createElement('h3'))\n titleElement.innerText = title\n\n return section\n}\n"],"file":"basicPreferences.js"}
1
+ {"version":3,"file":"basicPreferences.js","sourceRoot":"","sources":["../../src/dashboard/basicPreferences.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dashboardPane.d.ts","sourceRoot":"","sources":["../../src/dashboard/dashboardPane.ts"],"names":[],"mappings":"AAGA,OAAO,EAAsB,cAAc,EAAE,MAAM,eAAe,CAAA;AAElE,eAAO,MAAM,aAAa,EAAE,cAoC3B,CAAA;AAsCD,eAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"dashboardPane.d.ts","sourceRoot":"","sources":["../../src/dashboard/dashboardPane.ts"],"names":[],"mappings":"AAGA,OAAO,EAAsB,cAAc,EAAE,MAAM,eAAe,CAAA;AAElE,eAAO,MAAM,aAAa,EAAE,cAqC3B,CAAA;AAuCD,eAAe,aAAa,CAAA"}