solid-panes 3.5.14-bbf45639 → 3.5.16-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 (52) hide show
  1. package/lib/dashboard/basicPreferences.js +264 -193
  2. package/lib/dashboard/basicPreferences.js.map +1 -1
  3. package/lib/dashboard/dashboardPane.js +79 -57
  4. package/lib/dashboard/dashboardPane.js.map +1 -1
  5. package/lib/dashboard/homepage.js +100 -98
  6. package/lib/dashboard/homepage.js.map +1 -1
  7. package/lib/home/homePane.js +103 -112
  8. package/lib/home/homePane.js.map +1 -1
  9. package/lib/index.js +97 -49
  10. package/lib/index.js.map +1 -1
  11. package/lib/internal/internalPane.js +200 -180
  12. package/lib/internal/internalPane.js.map +1 -1
  13. package/lib/mainPage/footer.js +15 -9
  14. package/lib/mainPage/footer.js.map +1 -1
  15. package/lib/mainPage/header.js +162 -114
  16. package/lib/mainPage/header.js.map +1 -1
  17. package/lib/mainPage/index.js +45 -57
  18. package/lib/mainPage/index.js.map +1 -1
  19. package/lib/outline/context.js +17 -13
  20. package/lib/outline/context.js.map +1 -1
  21. package/lib/outline/manager.js +193 -162
  22. package/lib/outline/manager.js.map +1 -1
  23. package/lib/outline/propertyViews.js +46 -32
  24. package/lib/outline/propertyViews.js.map +1 -1
  25. package/lib/outline/viewAsImage.js +19 -22
  26. package/lib/outline/viewAsImage.js.map +1 -1
  27. package/lib/outline/viewAsMbox.js +15 -5
  28. package/lib/outline/viewAsMbox.js.map +1 -1
  29. package/lib/pad/padPane.js +451 -406
  30. package/lib/pad/padPane.js.map +1 -1
  31. package/lib/profile/editProfile.view.js +124 -101
  32. package/lib/profile/editProfile.view.js.map +1 -1
  33. package/lib/profile/profile.dom.js +17 -12
  34. package/lib/profile/profile.dom.js.map +1 -1
  35. package/lib/sharing/sharingPane.js +45 -33
  36. package/lib/sharing/sharingPane.js.map +1 -1
  37. package/lib/tabbed/tabbedPane.js +77 -87
  38. package/lib/tabbed/tabbedPane.js.map +1 -1
  39. package/lib/trustedApplications/trustedApplications.dom.js +182 -173
  40. package/lib/trustedApplications/trustedApplications.dom.js.map +1 -1
  41. package/lib/trustedApplications/trustedApplications.utils.js +36 -30
  42. package/lib/trustedApplications/trustedApplications.utils.js.map +1 -1
  43. package/lib/trustedApplications/trustedApplications.view.js +99 -91
  44. package/lib/trustedApplications/trustedApplications.view.js.map +1 -1
  45. package/lib/types.js +4 -1
  46. package/lib/types.js.map +1 -1
  47. package/lib/versionInfo.js +28 -23
  48. package/lib/versionInfo.js.map +1 -1
  49. package/package.json +13 -13
  50. package/src/mainPage/index.ts +1 -1
  51. package/src/outline/manager.js +29 -13
  52. package/src/versionInfo.ts +3 -3
@@ -1,98 +1,106 @@
1
1
  "use strict";
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 };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- var solid_ui_1 = require("solid-ui");
40
- var trustedApplications_dom_1 = require("./trustedApplications.dom");
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _solidUi = require("solid-ui");
9
+
10
+ var _trustedApplications = require("./trustedApplications.dom");
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
+
41
16
  var thisColor = '#418d99';
42
17
  var trustedApplicationView = {
43
- global: true,
44
- icon: "".concat(solid_ui_1.icons.iconBase, "noun_15177.svg"),
45
- name: 'trustedApplications',
46
- label: function () { return null; },
47
- render: function (subject, context) {
48
- var dom = context.dom;
49
- var div = dom.createElement('div');
50
- div.classList.add('trusted-applications-pane');
51
- div.setAttribute('style', 'border: 0.3em solid ' +
52
- thisColor +
53
- '; border-radius: 0.5em; padding: 0.7em; margin-top:0.7em;');
54
- var table = div.appendChild(dom.createElement('table'));
55
- var main = table.appendChild(dom.createElement('tr'));
56
- var bottom = table.appendChild(dom.createElement('tr'));
57
- var statusArea = bottom.appendChild(dom.createElement('div'));
58
- statusArea.setAttribute('style', 'padding: 0.7em;');
59
- render(dom, main, statusArea).catch(function (err) { return statusArea.appendChild(solid_ui_1.widgets.errorMessageBlock(dom, err)); });
60
- return div;
61
- }
18
+ global: true,
19
+ icon: "".concat(_solidUi.icons.iconBase, "noun_15177.svg"),
20
+ name: 'trustedApplications',
21
+ label: function label() {
22
+ return null;
23
+ },
24
+ render: function render(subject, context) {
25
+ var dom = context.dom;
26
+ var div = dom.createElement('div');
27
+ div.classList.add('trusted-applications-pane');
28
+ div.setAttribute('style', 'border: 0.3em solid ' + thisColor + '; border-radius: 0.5em; padding: 0.7em; margin-top:0.7em;');
29
+ var table = div.appendChild(dom.createElement('table'));
30
+ var main = table.appendChild(dom.createElement('tr'));
31
+ var bottom = table.appendChild(dom.createElement('tr'));
32
+ var statusArea = bottom.appendChild(dom.createElement('div'));
33
+ statusArea.setAttribute('style', 'padding: 0.7em;');
34
+
35
+ _render(dom, main, statusArea)["catch"](function (err) {
36
+ return statusArea.appendChild(_solidUi.widgets.errorMessageBlock(dom, err));
37
+ });
38
+
39
+ return div;
40
+ }
62
41
  };
63
- function render(dom, main, statusArea) {
64
- return __awaiter(this, void 0, void 0, function () {
65
- var authContext, subject, profile, editable, applicationsTable;
66
- return __generator(this, function (_a) {
67
- switch (_a.label) {
68
- case 0: return [4 /*yield*/, solid_ui_1.authn.logInLoadProfile({ dom: dom, div: main, statusArea: statusArea, me: null })];
69
- case 1:
70
- authContext = _a.sent();
71
- subject = authContext.me;
72
- profile = subject.doc();
73
- if (!solid_ui_1.store.updater) {
74
- throw new Error('Store has no updater');
75
- }
76
- editable = solid_ui_1.store.updater.editable(profile.uri, solid_ui_1.store);
77
- main.appendChild((0, trustedApplications_dom_1.createText)('h3', 'Manage your trusted applications'));
78
- if (!editable) {
79
- main.appendChild(solid_ui_1.widgets.errorMessageBlock(dom, "Your profile ".concat(subject.doc().uri, " is not editable, so we cannot do much here.")));
80
- return [2 /*return*/];
81
- }
82
- main.appendChild((0, trustedApplications_dom_1.createText)('p', 'Here you can manage the applications you trust.'));
83
- applicationsTable = (0, trustedApplications_dom_1.createApplicationTable)(subject);
84
- main.appendChild(applicationsTable);
85
- main.appendChild((0, trustedApplications_dom_1.createText)('h4', 'Notes'));
86
- main.appendChild((0, trustedApplications_dom_1.createContainer)('ol', [
87
- main.appendChild((0, trustedApplications_dom_1.createText)('li', 'Trusted applications will get access to all resources that you have access to.')),
88
- main.appendChild((0, trustedApplications_dom_1.createText)('li', 'You can limit which modes they have by default.')),
89
- main.appendChild((0, trustedApplications_dom_1.createText)('li', 'They will not gain more access than you have.'))
90
- ]));
91
- main.appendChild((0, trustedApplications_dom_1.createText)('p', 'Application URLs must be valid URL. Examples are http://localhost:3000, https://trusted.app, and https://sub.trusted.app.'));
92
- return [2 /*return*/];
42
+
43
+ function _render(_x, _x2, _x3) {
44
+ return _render2.apply(this, arguments);
45
+ }
46
+
47
+ function _render2() {
48
+ _render2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(dom, main, statusArea) {
49
+ var authContext, subject, profile, editable, applicationsTable;
50
+ return regeneratorRuntime.wrap(function _callee$(_context) {
51
+ while (1) {
52
+ switch (_context.prev = _context.next) {
53
+ case 0:
54
+ _context.next = 2;
55
+ return _solidUi.authn.logInLoadProfile({
56
+ dom: dom,
57
+ div: main,
58
+ statusArea: statusArea,
59
+ me: null
60
+ });
61
+
62
+ case 2:
63
+ authContext = _context.sent;
64
+ subject = authContext.me;
65
+ profile = subject.doc();
66
+
67
+ if (_solidUi.store.updater) {
68
+ _context.next = 7;
69
+ break;
93
70
  }
94
- });
95
- });
71
+
72
+ throw new Error('Store has no updater');
73
+
74
+ case 7:
75
+ editable = _solidUi.store.updater.editable(profile.uri, _solidUi.store);
76
+ main.appendChild((0, _trustedApplications.createText)('h3', 'Manage your trusted applications'));
77
+
78
+ if (editable) {
79
+ _context.next = 12;
80
+ break;
81
+ }
82
+
83
+ main.appendChild(_solidUi.widgets.errorMessageBlock(dom, "Your profile ".concat(subject.doc().uri, " is not editable, so we cannot do much here.")));
84
+ return _context.abrupt("return");
85
+
86
+ case 12:
87
+ main.appendChild((0, _trustedApplications.createText)('p', 'Here you can manage the applications you trust.'));
88
+ applicationsTable = (0, _trustedApplications.createApplicationTable)(subject);
89
+ main.appendChild(applicationsTable);
90
+ main.appendChild((0, _trustedApplications.createText)('h4', 'Notes'));
91
+ main.appendChild((0, _trustedApplications.createContainer)('ol', [main.appendChild((0, _trustedApplications.createText)('li', 'Trusted applications will get access to all resources that you have access to.')), main.appendChild((0, _trustedApplications.createText)('li', 'You can limit which modes they have by default.')), main.appendChild((0, _trustedApplications.createText)('li', 'They will not gain more access than you have.'))]));
92
+ main.appendChild((0, _trustedApplications.createText)('p', 'Application URLs must be valid URL. Examples are http://localhost:3000, https://trusted.app, and https://sub.trusted.app.'));
93
+
94
+ case 18:
95
+ case "end":
96
+ return _context.stop();
97
+ }
98
+ }
99
+ }, _callee);
100
+ }));
101
+ return _render2.apply(this, arguments);
96
102
  }
97
- exports.default = trustedApplicationView;
103
+
104
+ var _default = trustedApplicationView;
105
+ exports["default"] = _default;
98
106
  //# sourceMappingURL=trustedApplications.view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trustedApplications.view.js","sourceRoot":"","sources":["../../src/trustedApplications/trustedApplications.view.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAuD;AAIvD,qEAA+F;AAE/F,IAAM,SAAS,GAAG,SAAS,CAAA;AAE3B,IAAM,sBAAsB,GAAmB;IAC7C,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,UAAG,gBAAK,CAAC,QAAQ,mBAAgB;IACvC,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI;IACjB,MAAM,EAAE,UAAC,OAAO,EAAE,OAAO;QACvB,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACvB,IAAM,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACpC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;QAC9C,GAAG,CAAC,YAAY,CACd,OAAO,EACP,sBAAsB;YACtB,SAAS;YACT,2DAA2D,CAC5D,CAAA;QACD,IAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA;QACzD,IAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;QACvD,IAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;QACzD,IAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;QAC/D,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;QACnD,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,UAAA,GAAG,IAAI,OAAA,UAAU,CAAC,WAAW,CAAC,kBAAO,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAA3D,CAA2D,CAAC,CAAA;QACvG,OAAO,GAAG,CAAA;IACZ,CAAC;CACF,CAAA;AAED,SAAe,MAAM,CAAE,GAAG,EAAE,IAAI,EAAE,UAAU;;;;;wBACtB,qBAAM,gBAAK,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAA;;oBAArG,WAAW,GAAG,SAAuF;oBACrG,OAAO,GAAG,WAAW,CAAC,EAAe,CAAA;oBAErC,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;oBAC7B,IAAI,CAAC,gBAAK,CAAC,OAAO,EAAE;wBAClB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;qBACxC;oBACK,QAAQ,GAAG,gBAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAK,CAAC,CAAA;oBAE3D,IAAI,CAAC,WAAW,CAAC,IAAA,oCAAU,EAAC,IAAI,EAAE,kCAAkC,CAAC,CAAC,CAAA;oBAEtE,IAAI,CAAC,QAAQ,EAAE;wBACb,IAAI,CAAC,WAAW,CACd,kBAAO,CAAC,iBAAiB,CAAC,GAAG,EAAE,uBAAgB,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,iDAA8C,CAAC,CAChH,CAAA;wBACD,sBAAM;qBACP;oBAED,IAAI,CAAC,WAAW,CAAC,IAAA,oCAAU,EAAC,GAAG,EAAE,iDAAiD,CAAC,CAAC,CAAA;oBAE9E,iBAAiB,GAAG,IAAA,gDAAsB,EAAC,OAAO,CAAC,CAAA;oBACzD,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAA;oBAEnC,IAAI,CAAC,WAAW,CAAC,IAAA,oCAAU,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;oBAC3C,IAAI,CAAC,WAAW,CACd,IAAA,yCAAe,EAAC,IAAI,EAAE;wBACpB,IAAI,CAAC,WAAW,CACd,IAAA,oCAAU,EACR,IAAI,EACJ,gFAAgF,CACjF,CACF;wBACD,IAAI,CAAC,WAAW,CACd,IAAA,oCAAU,EAAC,IAAI,EAAE,iDAAiD,CAAC,CACpE;wBACD,IAAI,CAAC,WAAW,CACd,IAAA,oCAAU,EAAC,IAAI,EAAE,+CAA+C,CAAC,CAClE;qBACF,CAAC,CACH,CAAA;oBACD,IAAI,CAAC,WAAW,CACd,IAAA,oCAAU,EAAC,GAAG,EAAE,2HAA2H,CAAC,CAC7I,CAAA;;;;;CACF;AAED,kBAAe,sBAAsB,CAAA"}
1
+ {"version":3,"sources":["../../src/trustedApplications/trustedApplications.view.ts"],"names":["thisColor","trustedApplicationView","global","icon","icons","iconBase","name","label","render","subject","context","dom","div","createElement","classList","add","setAttribute","table","appendChild","main","bottom","statusArea","err","widgets","errorMessageBlock","authn","logInLoadProfile","me","authContext","profile","doc","store","updater","Error","editable","uri","applicationsTable"],"mappings":"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","sourcesContent":["import { authn, icons, store, widgets } from 'solid-ui'\nimport { NamedNode } from 'rdflib'\n\nimport { PaneDefinition } from 'pane-registry'\nimport { createApplicationTable, createContainer, createText } from './trustedApplications.dom'\n\nconst thisColor = '#418d99'\n\nconst trustedApplicationView: PaneDefinition = {\n global: true,\n icon: `${icons.iconBase}noun_15177.svg`,\n name: 'trustedApplications',\n label: () => null,\n render: (subject, context) => {\n const dom = context.dom\n const div = dom.createElement('div')\n div.classList.add('trusted-applications-pane')\n div.setAttribute(\n 'style',\n 'border: 0.3em solid ' +\n thisColor +\n '; border-radius: 0.5em; padding: 0.7em; margin-top:0.7em;'\n )\n const table = div.appendChild(dom.createElement('table'))\n const main = table.appendChild(dom.createElement('tr'))\n const bottom = table.appendChild(dom.createElement('tr'))\n const statusArea = bottom.appendChild(dom.createElement('div'))\n statusArea.setAttribute('style', 'padding: 0.7em;')\n render(dom, main, statusArea).catch(err => statusArea.appendChild(widgets.errorMessageBlock(dom, err)))\n return div\n }\n}\n\nasync function render (dom, main, statusArea): Promise<void> {\n const authContext = await authn.logInLoadProfile({ dom: dom, div: main, statusArea: statusArea, me: null })\n const subject = authContext.me as NamedNode\n\n const profile = subject.doc()\n if (!store.updater) {\n throw new Error('Store has no updater')\n }\n const editable = store.updater.editable(profile.uri, store)\n\n main.appendChild(createText('h3', 'Manage your trusted applications'))\n\n if (!editable) {\n main.appendChild(\n widgets.errorMessageBlock(dom, `Your profile ${subject.doc().uri} is not editable, so we cannot do much here.`)\n )\n return\n }\n\n main.appendChild(createText('p', 'Here you can manage the applications you trust.'))\n\n const applicationsTable = createApplicationTable(subject)\n main.appendChild(applicationsTable)\n\n main.appendChild(createText('h4', 'Notes'))\n main.appendChild(\n createContainer('ol', [\n main.appendChild(\n createText(\n 'li',\n 'Trusted applications will get access to all resources that you have access to.'\n )\n ),\n main.appendChild(\n createText('li', 'You can limit which modes they have by default.')\n ),\n main.appendChild(\n createText('li', 'They will not gain more access than you have.')\n )\n ])\n )\n main.appendChild(\n createText('p', 'Application URLs must be valid URL. Examples are http://localhost:3000, https://trusted.app, and https://sub.trusted.app.')\n )\n}\n\nexport default trustedApplicationView\n"],"file":"trustedApplications.view.js"}
package/lib/types.js CHANGED
@@ -1,3 +1,6 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  //# sourceMappingURL=types.js.map
package/lib/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"types.js"}
@@ -1,26 +1,31 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = {
4
- buildTime: '2022-01-18T18:46:24Z',
5
- commit: '56310b116d5edb9b1cab6175fb8ad59b67f40ac9',
6
- npmInfo: {
7
- 'solid-panes': '3.5.14',
8
- npm: '6.14.13',
9
- ares: '1.17.1',
10
- brotli: '1.0.9',
11
- cldr: '39.0',
12
- icu: '69.1',
13
- llhttp: '2.1.3',
14
- modules: '83',
15
- napi: '8',
16
- nghttp2: '1.42.0',
17
- node: '14.17.3',
18
- openssl: '1.1.1k',
19
- tz: '2021a',
20
- unicode: '13.0',
21
- uv: '1.41.0',
22
- v8: '8.4.371.23-node.67',
23
- zlib: '1.2.11'
24
- }
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _default = {
8
+ buildTime: '2022-02-06T14:39:07Z',
9
+ commit: '51887453dbcfa28d5485e9f2178193b6aea53fa0',
10
+ npmInfo: {
11
+ 'solid-panes': '3.5.16',
12
+ npm: '6.14.13',
13
+ ares: '1.17.1',
14
+ brotli: '1.0.9',
15
+ cldr: '39.0',
16
+ icu: '69.1',
17
+ llhttp: '2.1.3',
18
+ modules: '83',
19
+ napi: '8',
20
+ nghttp2: '1.42.0',
21
+ node: '14.17.3',
22
+ openssl: '1.1.1k',
23
+ tz: '2021a',
24
+ unicode: '13.0',
25
+ uv: '1.41.0',
26
+ v8: '8.4.371.23-node.67',
27
+ zlib: '1.2.11'
28
+ }
25
29
  };
30
+ exports["default"] = _default;
26
31
  //# sourceMappingURL=versionInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"versionInfo.js","sourceRoot":"","sources":["../src/versionInfo.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACb,SAAS,EAAE,sBAAsB;IACjC,MAAM,EAAE,0CAA0C;IAClD,OAAO,EACT;QACE,aAAa,EAAE,QAAQ;QACvB,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,MAAM;QACX,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,QAAQ;QACjB,EAAE,EAAE,OAAO;QACX,OAAO,EAAE,MAAM;QACf,EAAE,EAAE,QAAQ;QACZ,EAAE,EAAE,oBAAoB;QACxB,IAAI,EAAE,QAAQ;KACf;CACA,CAAA"}
1
+ {"version":3,"sources":["../src/versionInfo.ts"],"names":["buildTime","commit","npmInfo","npm","ares","brotli","cldr","icu","llhttp","modules","napi","nghttp2","node","openssl","tz","unicode","uv","v8","zlib"],"mappings":";;;;;;eAAe;AACbA,EAAAA,SAAS,EAAE,sBADE;AAEbC,EAAAA,MAAM,EAAE,0CAFK;AAGbC,EAAAA,OAAO,EACT;AACE,mBAAe,QADjB;AAEEC,IAAAA,GAAG,EAAE,SAFP;AAGEC,IAAAA,IAAI,EAAE,QAHR;AAIEC,IAAAA,MAAM,EAAE,OAJV;AAKEC,IAAAA,IAAI,EAAE,MALR;AAMEC,IAAAA,GAAG,EAAE,MANP;AAOEC,IAAAA,MAAM,EAAE,OAPV;AAQEC,IAAAA,OAAO,EAAE,IARX;AASEC,IAAAA,IAAI,EAAE,GATR;AAUEC,IAAAA,OAAO,EAAE,QAVX;AAWEC,IAAAA,IAAI,EAAE,SAXR;AAYEC,IAAAA,OAAO,EAAE,QAZX;AAaEC,IAAAA,EAAE,EAAE,OAbN;AAcEC,IAAAA,OAAO,EAAE,MAdX;AAeEC,IAAAA,EAAE,EAAE,QAfN;AAgBEC,IAAAA,EAAE,EAAE,oBAhBN;AAiBEC,IAAAA,IAAI,EAAE;AAjBR;AAJe,C","sourcesContent":["export default {\n buildTime: '2022-02-06T14:39:07Z',\n commit: '51887453dbcfa28d5485e9f2178193b6aea53fa0',\n npmInfo:\n{\n 'solid-panes': '3.5.16',\n npm: '6.14.13',\n ares: '1.17.1',\n brotli: '1.0.9',\n cldr: '39.0',\n icu: '69.1',\n llhttp: '2.1.3',\n modules: '83',\n napi: '8',\n nghttp2: '1.42.0',\n node: '14.17.3',\n openssl: '1.1.1k',\n tz: '2021a',\n unicode: '13.0',\n uv: '1.41.0',\n v8: '8.4.371.23-node.67',\n zlib: '1.2.11'\n}\n}\n"],"file":"versionInfo.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "solid-panes",
3
- "version": "3.5.14-bbf45639",
3
+ "version": "3.5.16-alpha",
4
4
  "description": "Solid-compatible Panes: applets and views for the mashlib and databrowser",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -46,26 +46,26 @@
46
46
  "dependencies": {
47
47
  "@babel/polyfill": "^7.12.1",
48
48
  "@solid/better-simple-slideshow": "^0.1.0",
49
- "activitystreams-pane": "^0.6.2-bbf45639",
49
+ "activitystreams-pane": "^0.6.3",
50
50
  "babel-preset-env": "^1.7.0",
51
51
  "babel-preset-metalab": "^1.0.0",
52
- "chat-pane": "^2.4.13-bbf45639",
53
- "contacts-pane": "^2.5.6-bbf45639",
54
- "folder-pane": "^2.4.10-bbf45639",
55
- "issue-pane": "^2.4.8-bbf45639",
52
+ "chat-pane": "^2.4.15",
53
+ "contacts-pane": "^2.6.0",
54
+ "folder-pane": "^2.4.12",
55
+ "issue-pane": "^2.4.9",
56
56
  "marked": "^4.0.8",
57
- "meeting-pane": "^2.3.7-bbf45639",
57
+ "meeting-pane": "^2.3.8",
58
58
  "mime-types": "^2.1.34",
59
- "pane-registry": "^2.4.5-bbf45639",
59
+ "pane-registry": "^2.4.6",
60
60
  "path-browserify": "^1.0.1",
61
- "profile-pane": "^1.0.4-bbf45639",
62
- "rdflib": "^2.2.15-bbf45639",
61
+ "profile-pane": "^1.0.7",
62
+ "rdflib": "^2.2.17",
63
63
  "react": "^17.0.2",
64
64
  "react-dom": "^17.0.2",
65
- "solid-logic": "^1.3.12-bbf45639",
65
+ "solid-logic": "^1.3.13",
66
66
  "solid-namespace": "^0.5.2",
67
- "solid-ui": "^2.4.14-bbf45639",
68
- "source-pane": "^2.2.13-bbf45639"
67
+ "solid-ui": "^2.4.16",
68
+ "source-pane": "^2.2.14"
69
69
  },
70
70
  "devDependencies": {
71
71
  "@babel/cli": "^7.16.0",
@@ -14,7 +14,7 @@ export default async function initMainPage (store: IndexedFormula, uri?: string|
14
14
  let subject = uri
15
15
  if (typeof uri === 'string') subject = store.sym(uri)
16
16
  outliner.GotoSubject(subject, true, undefined, true, undefined)
17
- const header = createHeader(store, outliner)
17
+ const header = await createHeader(store, outliner)
18
18
  const footer = createFooter(store)
19
19
  return Promise.all([header, footer])
20
20
  }
@@ -416,23 +416,23 @@ export default function (context) {
416
416
  .concat(pods)
417
417
 
418
418
  async function getPods () {
419
- async function addPodRoot (pod) { // namedNode
420
- await checkForContainerRepresentation(pod)
419
+ async function addPodStorage (pod) { // namedNode
420
+ await loadContainerRepresentation(pod)
421
421
  if (kb.holds(pod, ns.rdf('type'), ns.space('Storage'), pod.doc())) {
422
422
  pods.push(pod)
423
423
  return true
424
424
  }
425
425
  return false
426
426
  }
427
- async function addPodRootFromUrl (url) {
427
+ async function addPodStorageFromUrl (url) {
428
428
  const podStorage = new URL(url)
429
- // check that origin is not included in pods array
430
- if (!pods.some(pod => pod.uri.includes(podStorage.origin))) {
431
- // check in order, location.origin/<podName> then location.origin containing space:Storage
432
- if (podStorage.pathname === '/' || !(await addPodRoot(kb.sym(`${podStorage.origin}/${podStorage.pathname.split('/')[1]}/`)))) {
433
- await addPodRoot(kb.sym(`${podStorage.origin}/`))
434
- }
429
+ // check for predicate pim:Storage in containers up the path tree
430
+ let pathStorage = podStorage.pathname
431
+ while (pathStorage.length) {
432
+ pathStorage = pathStorage.substring(0, pathStorage.lastIndexOf('/'))
433
+ if (await addPodStorage(kb.sym(`${podStorage.origin}${pathStorage}/`))) return
435
434
  }
435
+ // TODO should url.origin be added to pods list when there are no pim:Storage ???
436
436
  }
437
437
 
438
438
  try {
@@ -442,16 +442,32 @@ export default function (context) {
442
442
  console.error('Unable to load profile', err)
443
443
  return []
444
444
  }
445
- const pods = kb.each(me, ns.space('storage'), null, me.doc())
445
+ // load pod's storages from profile
446
+ let pods = kb.each(me, ns.space('storage'), null, me.doc())
447
+ pods.map(async (pod) => {
448
+ // TODO use addPodStorageFromUrl(pod.uri) to check for pim:Storage ???
449
+ await loadContainerRepresentation(pod)
450
+ })
446
451
 
447
452
  try {
448
453
  // if uri then SolidOS is a browse.html web app
449
454
  const uri = (new URL(window.location.href)).searchParams.get('uri')
450
455
  const podUrl = uri || window.location.href
451
- await addPodRootFromUrl(podUrl.substring(0, podUrl.lastIndexOf('/') + 1))
456
+ await addPodStorageFromUrl(podUrl)
452
457
  } catch (err) {
453
458
  console.error('cannot load container', err)
454
459
  }
460
+ // remove namedNodes duplicates
461
+ function uniques (nodes) {
462
+ const uniqueNodes = []
463
+ nodes.forEach(node => {
464
+ if (!uniqueNodes.find(uniqueNode => uniqueNode.equals(node))) uniqueNodes.push(node)
465
+ })
466
+ return uniqueNodes
467
+ }
468
+ pods = uniques(pods)
469
+ console.log('return pods')
470
+ console.log(pods)
455
471
  if (!pods.length) return []
456
472
  return pods.map((pod, index) => {
457
473
  function split (item) { return item.uri.split('//')[1].slice(0, -1) }
@@ -566,7 +582,7 @@ export default function (context) {
566
582
  )
567
583
  }
568
584
 
569
- async function checkForContainerRepresentation (subject) {
585
+ async function loadContainerRepresentation (subject) {
570
586
  // force reload for index.html with RDFa
571
587
  if (!kb.any(subject, ns.ldp('contains'), undefined, subject.doc())) {
572
588
  const response = await kb.fetcher.webOperation('GET', subject.uri, kb.fetcher.initFetchOptions(subject.uri, { headers: { accept: 'text/turtle' } }))
@@ -577,7 +593,7 @@ export default function (context) {
577
593
 
578
594
  async function getRelevantPanes (subject, context) {
579
595
  // make sure container representation is loaded (when server returns index.html)
580
- if (subject.uri.endsWith('/')) { await checkForContainerRepresentation(subject) }
596
+ if (subject.uri.endsWith('/')) { await loadContainerRepresentation(subject) }
581
597
  const panes = context.session.paneRegistry
582
598
  const relevantPanes = panes.list.filter(
583
599
  pane => pane.label(subject, context) && !pane.global
@@ -1,9 +1,9 @@
1
1
  export default {
2
- buildTime: '2022-01-18T18:46:24Z',
3
- commit: '56310b116d5edb9b1cab6175fb8ad59b67f40ac9',
2
+ buildTime: '2022-02-06T14:39:07Z',
3
+ commit: '51887453dbcfa28d5485e9f2178193b6aea53fa0',
4
4
  npmInfo:
5
5
  {
6
- 'solid-panes': '3.5.14',
6
+ 'solid-panes': '3.5.16',
7
7
  npm: '6.14.13',
8
8
  ares: '1.17.1',
9
9
  brotli: '1.0.9',