solid-logic 1.3.17-f7bdc345 → 2.0.0

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 (156) hide show
  1. package/.babelrc +0 -0
  2. package/.eslintrc.js +0 -0
  3. package/.github/workflows/ci.yml +0 -0
  4. package/.github/workflows/release.yml +0 -0
  5. package/.nvmrc +0 -0
  6. package/LICENSE +0 -0
  7. package/README.md +0 -0
  8. package/jest.config.js +0 -0
  9. package/lib/acl/aclLogic.d.ts +3 -30
  10. package/lib/acl/aclLogic.d.ts.map +1 -1
  11. package/lib/acl/aclLogic.js +152 -119
  12. package/lib/acl/aclLogic.js.map +1 -1
  13. package/lib/authSession/authSession.d.ts +0 -0
  14. package/lib/authSession/authSession.d.ts.map +0 -0
  15. package/lib/authSession/authSession.js +0 -0
  16. package/lib/authSession/authSession.js.map +0 -0
  17. package/lib/authn/SolidAuthnLogic.d.ts +0 -0
  18. package/lib/authn/SolidAuthnLogic.d.ts.map +1 -1
  19. package/lib/authn/SolidAuthnLogic.js +2 -2
  20. package/lib/authn/SolidAuthnLogic.js.map +1 -1
  21. package/lib/authn/authUtil.d.ts +0 -0
  22. package/lib/authn/authUtil.d.ts.map +0 -0
  23. package/lib/authn/authUtil.js +0 -0
  24. package/lib/authn/authUtil.js.map +0 -0
  25. package/lib/chat/chatLogic.d.ts +3 -0
  26. package/lib/chat/chatLogic.d.ts.map +1 -0
  27. package/lib/chat/{ChatLogic.js → chatLogic.js} +82 -86
  28. package/lib/chat/chatLogic.js.map +1 -0
  29. package/lib/inbox/inboxLogic.d.ts +3 -0
  30. package/lib/inbox/inboxLogic.d.ts.map +1 -0
  31. package/lib/inbox/{InboxLogic.js → inboxLogic.js} +58 -64
  32. package/lib/inbox/inboxLogic.js.map +1 -0
  33. package/lib/index.d.ts +6 -11
  34. package/lib/index.d.ts.map +1 -1
  35. package/lib/index.js +5 -38
  36. package/lib/index.js.map +1 -1
  37. package/lib/issuer/issuerLogic.d.ts +0 -0
  38. package/lib/issuer/issuerLogic.d.ts.map +0 -0
  39. package/lib/issuer/issuerLogic.js +1 -1
  40. package/lib/issuer/issuerLogic.js.map +1 -1
  41. package/lib/logic/CustomError.d.ts +4 -0
  42. package/lib/logic/CustomError.d.ts.map +1 -1
  43. package/lib/logic/CustomError.js +17 -1
  44. package/lib/logic/CustomError.js.map +1 -1
  45. package/lib/logic/solidLogic.d.ts +6 -0
  46. package/lib/logic/solidLogic.d.ts.map +1 -0
  47. package/lib/logic/solidLogic.js +92 -0
  48. package/lib/logic/solidLogic.js.map +1 -0
  49. package/lib/logic/solidLogicSingleton.d.ts +1 -2
  50. package/lib/logic/solidLogicSingleton.d.ts.map +1 -1
  51. package/lib/logic/solidLogicSingleton.js +3 -3
  52. package/lib/logic/solidLogicSingleton.js.map +1 -1
  53. package/lib/profile/profileLogic.d.ts +3 -0
  54. package/lib/profile/profileLogic.d.ts.map +1 -0
  55. package/lib/profile/profileLogic.js +246 -0
  56. package/lib/profile/profileLogic.js.map +1 -0
  57. package/lib/typeIndex/typeIndexLogic.d.ts +2 -21
  58. package/lib/typeIndex/typeIndexLogic.d.ts.map +1 -1
  59. package/lib/typeIndex/typeIndexLogic.js +304 -296
  60. package/lib/typeIndex/typeIndexLogic.js.map +1 -1
  61. package/lib/types.d.ts +82 -1
  62. package/lib/types.d.ts.map +1 -1
  63. package/lib/types.js +0 -0
  64. package/lib/types.js.map +0 -0
  65. package/lib/util/containerLogic.d.ts +11 -0
  66. package/lib/util/containerLogic.d.ts.map +1 -0
  67. package/lib/{profile/ProfileLogic.js → util/containerLogic.js} +53 -44
  68. package/lib/util/containerLogic.js.map +1 -0
  69. package/lib/util/debug.d.ts +0 -0
  70. package/lib/util/debug.d.ts.map +0 -0
  71. package/lib/util/debug.js +0 -0
  72. package/lib/util/debug.js.map +0 -0
  73. package/lib/util/ns.d.ts +2 -0
  74. package/lib/util/ns.d.ts.map +1 -0
  75. package/lib/util/ns.js +34 -0
  76. package/lib/util/ns.js.map +1 -0
  77. package/lib/util/utilityLogic.d.ts +15 -0
  78. package/lib/util/utilityLogic.d.ts.map +1 -0
  79. package/lib/util/utilityLogic.js +272 -0
  80. package/lib/util/utilityLogic.js.map +1 -0
  81. package/lib/util/utils.d.ts +8 -0
  82. package/lib/util/utils.d.ts.map +1 -0
  83. package/lib/util/utils.js +48 -0
  84. package/lib/util/utils.js.map +1 -0
  85. package/package.json +15 -15
  86. package/src/acl/aclLogic.ts +137 -118
  87. package/src/authSession/authSession.ts +0 -0
  88. package/src/authn/SolidAuthnLogic.ts +3 -2
  89. package/src/authn/authUtil.ts +0 -0
  90. package/src/chat/chatLogic.ts +225 -0
  91. package/src/inbox/inboxLogic.ts +58 -0
  92. package/src/index.ts +11 -42
  93. package/src/issuer/issuerLogic.ts +1 -1
  94. package/src/logic/CustomError.ts +5 -1
  95. package/src/logic/solidLogic.ts +75 -0
  96. package/src/logic/solidLogicSingleton.ts +3 -3
  97. package/src/profile/profileLogic.ts +126 -0
  98. package/src/typeIndex/typeIndexLogic.ts +175 -182
  99. package/src/types.ts +83 -4
  100. package/src/util/containerLogic.ts +54 -0
  101. package/src/util/debug.ts +0 -0
  102. package/src/util/ns.ts +5 -0
  103. package/src/util/utilityLogic.ts +155 -0
  104. package/src/util/utils.ts +52 -0
  105. package/test/aclLogic.test.ts +13 -4
  106. package/test/authUtil.test.ts +0 -0
  107. package/test/chatLogic.test.ts +70 -71
  108. package/test/container.test.ts +56 -0
  109. package/test/helpers/dataSetup.ts +134 -0
  110. package/test/helpers/setup.ts +4 -0
  111. package/test/inboxLogic.test.ts +39 -38
  112. package/test/logic.test.ts +10 -9
  113. package/test/profileLogic.test.ts +246 -0
  114. package/test/solidAuthLogic.test.ts +0 -0
  115. package/test/typeIndexLogic.test.ts +487 -30
  116. package/test/utilityLogic.test.ts +172 -126
  117. package/test/utils.test.ts +32 -0
  118. package/tsconfig.json +0 -0
  119. package/lib/chat/ChatLogic.d.ts +0 -26
  120. package/lib/chat/ChatLogic.d.ts.map +0 -1
  121. package/lib/chat/ChatLogic.js.map +0 -1
  122. package/lib/chat/determineChatContainer.d.ts +0 -3
  123. package/lib/chat/determineChatContainer.d.ts.map +0 -1
  124. package/lib/chat/determineChatContainer.js +0 -12
  125. package/lib/chat/determineChatContainer.js.map +0 -1
  126. package/lib/discovery/discoveryLogic.d.ts +0 -37
  127. package/lib/discovery/discoveryLogic.d.ts.map +0 -1
  128. package/lib/discovery/discoveryLogic.js +0 -502
  129. package/lib/discovery/discoveryLogic.js.map +0 -1
  130. package/lib/inbox/InboxLogic.d.ts +0 -18
  131. package/lib/inbox/InboxLogic.d.ts.map +0 -1
  132. package/lib/inbox/InboxLogic.js.map +0 -1
  133. package/lib/logic/SolidLogic.d.ts +0 -45
  134. package/lib/logic/SolidLogic.d.ts.map +0 -1
  135. package/lib/logic/SolidLogic.js +0 -320
  136. package/lib/logic/SolidLogic.js.map +0 -1
  137. package/lib/profile/ProfileLogic.d.ts +0 -13
  138. package/lib/profile/ProfileLogic.d.ts.map +0 -1
  139. package/lib/profile/ProfileLogic.js.map +0 -1
  140. package/lib/util/UtilityLogic.d.ts +0 -27
  141. package/lib/util/UtilityLogic.d.ts.map +0 -1
  142. package/lib/util/UtilityLogic.js +0 -216
  143. package/lib/util/UtilityLogic.js.map +0 -1
  144. package/lib/util/uri.d.ts +0 -3
  145. package/lib/util/uri.d.ts.map +0 -1
  146. package/lib/util/uri.js +0 -9
  147. package/lib/util/uri.js.map +0 -1
  148. package/src/chat/ChatLogic.ts +0 -244
  149. package/src/chat/determineChatContainer.ts +0 -14
  150. package/src/discovery/discoveryLogic.ts +0 -269
  151. package/src/inbox/InboxLogic.ts +0 -66
  152. package/src/logic/SolidLogic.ts +0 -259
  153. package/src/profile/ProfileLogic.ts +0 -44
  154. package/src/util/UtilityLogic.ts +0 -144
  155. package/src/util/uri.ts +0 -5
  156. package/test/discoveryLogic.test.ts +0 -712
@@ -0,0 +1,272 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __generator = (this && this.__generator) || function (thisArg, body) {
35
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
36
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
37
+ function verb(n) { return function (v) { return step([n, v]); }; }
38
+ function step(op) {
39
+ if (f) throw new TypeError("Generator is already executing.");
40
+ while (_) try {
41
+ 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;
42
+ if (y = 0, t) op = [op[0] & 2, t.value];
43
+ switch (op[0]) {
44
+ case 0: case 1: t = op; break;
45
+ case 4: _.label++; return { value: op[1], done: false };
46
+ case 5: _.label++; y = op[1]; op = [0]; continue;
47
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
48
+ default:
49
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
50
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
51
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
52
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
53
+ if (t[2]) _.ops.pop();
54
+ _.trys.pop(); continue;
55
+ }
56
+ op = body.call(thisArg, _);
57
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
58
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
59
+ }
60
+ };
61
+ Object.defineProperty(exports, "__esModule", { value: true });
62
+ exports.createUtilityLogic = void 0;
63
+ var rdflib_1 = require("rdflib");
64
+ var CustomError_1 = require("../logic/CustomError");
65
+ var debug = __importStar(require("../util/debug"));
66
+ var utils_1 = require("./utils");
67
+ function createUtilityLogic(store, aclLogic, containerLogic) {
68
+ function recursiveDelete(url) {
69
+ return __awaiter(this, void 0, void 0, function () {
70
+ var aclDocUrl, containerMembers, e_1;
71
+ return __generator(this, function (_a) {
72
+ switch (_a.label) {
73
+ case 0:
74
+ _a.trys.push([0, 6, , 7]);
75
+ if (!containerLogic.isContainer(url)) return [3 /*break*/, 5];
76
+ return [4 /*yield*/, aclLogic.findAclDocUrl(url)];
77
+ case 1:
78
+ aclDocUrl = _a.sent();
79
+ return [4 /*yield*/, store.fetcher._fetch(aclDocUrl, { method: "DELETE" })];
80
+ case 2:
81
+ _a.sent();
82
+ return [4 /*yield*/, containerLogic.getContainerMembers(url)];
83
+ case 3:
84
+ containerMembers = _a.sent();
85
+ return [4 /*yield*/, Promise.all(containerMembers.map(function (url) { return recursiveDelete(url); }))];
86
+ case 4:
87
+ _a.sent();
88
+ _a.label = 5;
89
+ case 5: return [2 /*return*/, store.fetcher._fetch(url, { method: "DELETE" })];
90
+ case 6:
91
+ e_1 = _a.sent();
92
+ return [3 /*break*/, 7];
93
+ case 7: return [2 /*return*/];
94
+ }
95
+ });
96
+ });
97
+ }
98
+ /**
99
+ * Create a resource if it really does not exist
100
+ * Be absolutely sure something does not exist before creating a new empty file
101
+ * as otherwise existing could be deleted.
102
+ * @param doc {NamedNode} - The resource
103
+ */
104
+ function loadOrCreateIfNotExists(doc) {
105
+ return __awaiter(this, void 0, void 0, function () {
106
+ var response, err_1, err_2, msg, msg;
107
+ return __generator(this, function (_a) {
108
+ switch (_a.label) {
109
+ case 0:
110
+ _a.trys.push([0, 2, , 10]);
111
+ return [4 /*yield*/, store.fetcher.load(doc)];
112
+ case 1:
113
+ response = _a.sent();
114
+ return [3 /*break*/, 10];
115
+ case 2:
116
+ err_1 = _a.sent();
117
+ if (!(err_1.response.status === 404)) return [3 /*break*/, 8];
118
+ _a.label = 3;
119
+ case 3:
120
+ _a.trys.push([3, 5, , 6]);
121
+ return [4 /*yield*/, store.fetcher.webOperation('PUT', doc, { data: '', contentType: 'text/turtle' })];
122
+ case 4:
123
+ _a.sent();
124
+ return [3 /*break*/, 6];
125
+ case 5:
126
+ err_2 = _a.sent();
127
+ msg = 'createIfNotExists: PUT FAILED: ' + doc + ': ' + err_2;
128
+ throw new CustomError_1.WebOperationError(msg);
129
+ case 6: return [4 /*yield*/, store.fetcher.load(doc)];
130
+ case 7:
131
+ _a.sent();
132
+ return [3 /*break*/, 9];
133
+ case 8:
134
+ if (err_1.response.status === 401) {
135
+ throw new CustomError_1.UnauthorizedError();
136
+ }
137
+ if (err_1.response.status === 403) {
138
+ if ((0, utils_1.differentOrigin)(doc)) {
139
+ throw new CustomError_1.CrossOriginForbiddenError();
140
+ }
141
+ throw new CustomError_1.SameOriginForbiddenError();
142
+ }
143
+ msg = 'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err_1;
144
+ throw new CustomError_1.FetchError(err_1.status, err_1.message + msg);
145
+ case 9: return [3 /*break*/, 10];
146
+ case 10: return [2 /*return*/, response];
147
+ }
148
+ });
149
+ });
150
+ }
151
+ /* Follow link from this doc to another thing, or else make a new link
152
+ **
153
+ ** @returns existing object, or creates it if non existent
154
+ */
155
+ function followOrCreateLink(subject, predicate, object, doc) {
156
+ return __awaiter(this, void 0, void 0, function () {
157
+ var result, msg, err_3, msg, err_4;
158
+ return __generator(this, function (_a) {
159
+ switch (_a.label) {
160
+ case 0: return [4 /*yield*/, store.fetcher.load(doc)];
161
+ case 1:
162
+ _a.sent();
163
+ result = store.any(subject, predicate, null, doc);
164
+ if (result)
165
+ return [2 /*return*/, result];
166
+ if (!store.updater.editable(doc)) {
167
+ msg = "followOrCreateLink: cannot edit ".concat(doc.value);
168
+ debug.warn(msg);
169
+ throw new CustomError_1.NotEditableError(msg);
170
+ }
171
+ _a.label = 2;
172
+ case 2:
173
+ _a.trys.push([2, 4, , 5]);
174
+ return [4 /*yield*/, store.updater.update([], [(0, rdflib_1.st)(subject, predicate, object, doc)])];
175
+ case 3:
176
+ _a.sent();
177
+ return [3 /*break*/, 5];
178
+ case 4:
179
+ err_3 = _a.sent();
180
+ msg = "followOrCreateLink: Error making link in ".concat(doc, " to ").concat(object, ": ").concat(err_3);
181
+ debug.warn(msg);
182
+ throw new CustomError_1.WebOperationError(err_3);
183
+ case 5:
184
+ _a.trys.push([5, 7, , 8]);
185
+ return [4 /*yield*/, loadOrCreateIfNotExists(object)
186
+ // store.fetcher.webOperation('PUT', object, { data: '', contentType: 'text/turtle'})
187
+ ];
188
+ case 6:
189
+ _a.sent();
190
+ return [3 /*break*/, 8];
191
+ case 7:
192
+ err_4 = _a.sent();
193
+ debug.warn("followOrCreateLink: Error loading or saving new linked document: ".concat(object, ": ").concat(err_4));
194
+ throw err_4;
195
+ case 8: return [2 /*return*/, object];
196
+ }
197
+ });
198
+ });
199
+ }
200
+ // Copied from https://github.com/solidos/web-access-control-tests/blob/v3.0.0/test/surface/delete.test.ts#L5
201
+ function setSinglePeerAccess(options) {
202
+ return __awaiter(this, void 0, void 0, function () {
203
+ var str, aclDocUrl;
204
+ return __generator(this, function (_a) {
205
+ switch (_a.label) {
206
+ case 0:
207
+ str = [
208
+ '@prefix acl: <http://www.w3.org/ns/auth/acl#>.',
209
+ '',
210
+ "<#alice> a acl:Authorization;\n acl:agent <".concat(options.ownerWebId, ">;"),
211
+ " acl:accessTo <".concat(options.target, ">;"),
212
+ " acl:default <".concat(options.target, ">;"),
213
+ ' acl:mode acl:Read, acl:Write, acl:Control.',
214
+ ''
215
+ ].join('\n');
216
+ if (options.accessToModes) {
217
+ str += [
218
+ '<#bobAccessTo> a acl:Authorization;',
219
+ " acl:agent <".concat(options.peerWebId, ">;"),
220
+ " acl:accessTo <".concat(options.target, ">;"),
221
+ " acl:mode ".concat(options.accessToModes, "."),
222
+ ''
223
+ ].join('\n');
224
+ }
225
+ if (options.defaultModes) {
226
+ str += [
227
+ '<#bobDefault> a acl:Authorization;',
228
+ " acl:agent <".concat(options.peerWebId, ">;"),
229
+ " acl:default <".concat(options.target, ">;"),
230
+ " acl:mode ".concat(options.defaultModes, "."),
231
+ ''
232
+ ].join('\n');
233
+ }
234
+ return [4 /*yield*/, aclLogic.findAclDocUrl(options.target)];
235
+ case 1:
236
+ aclDocUrl = _a.sent();
237
+ return [2 /*return*/, store.fetcher._fetch(aclDocUrl, {
238
+ method: 'PUT',
239
+ body: str,
240
+ headers: [
241
+ ['Content-Type', 'text/turtle']
242
+ ]
243
+ })];
244
+ }
245
+ });
246
+ });
247
+ }
248
+ function createEmptyRdfDoc(doc, comment) {
249
+ return __awaiter(this, void 0, void 0, function () {
250
+ return __generator(this, function (_a) {
251
+ switch (_a.label) {
252
+ case 0: return [4 /*yield*/, store.fetcher.webOperation("PUT", doc.uri, {
253
+ data: "# ".concat(new Date(), " ").concat(comment, "\n "),
254
+ contentType: "text/turtle",
255
+ })];
256
+ case 1:
257
+ _a.sent();
258
+ return [2 /*return*/];
259
+ }
260
+ });
261
+ });
262
+ }
263
+ return {
264
+ recursiveDelete: recursiveDelete,
265
+ setSinglePeerAccess: setSinglePeerAccess,
266
+ createEmptyRdfDoc: createEmptyRdfDoc,
267
+ followOrCreateLink: followOrCreateLink,
268
+ loadOrCreateIfNotExists: loadOrCreateIfNotExists
269
+ };
270
+ }
271
+ exports.createUtilityLogic = createUtilityLogic;
272
+ //# sourceMappingURL=utilityLogic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilityLogic.js","sourceRoot":"","sources":["../../src/util/utilityLogic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { NamedNode } from "rdflib";
2
+ export declare function newThing(doc: NamedNode): NamedNode;
3
+ export declare function uniqueNodes(arr: NamedNode[]): NamedNode[];
4
+ export declare function getArchiveUrl(baseUrl: string, date: Date): string;
5
+ export declare function differentOrigin(doc: any): boolean;
6
+ export declare function suggestPreferencesFile(me: NamedNode): NamedNode;
7
+ export declare function determineChatContainer(invitee: NamedNode, podRoot: NamedNode): NamedNode;
8
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/util/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAO,MAAM,QAAQ,CAAC;AAExC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,SAAS,CAElD;AAED,wBAAgB,WAAW,CAAE,GAAG,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAM1D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,UAOxD;AAED,wBAAgB,eAAe,CAAC,GAAG,KAAA,GAAG,OAAO,CAO5C;AAED,wBAAgB,sBAAsB,CAAE,EAAE,EAAC,SAAS,aAMnD;AAED,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,SAAS,GACnB,SAAS,CAQX"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.determineChatContainer = exports.suggestPreferencesFile = exports.differentOrigin = exports.getArchiveUrl = exports.uniqueNodes = exports.newThing = void 0;
4
+ var rdflib_1 = require("rdflib");
5
+ function newThing(doc) {
6
+ return (0, rdflib_1.sym)(doc.uri + "#" + "id" + ("" + Date.now()));
7
+ }
8
+ exports.newThing = newThing;
9
+ function uniqueNodes(arr) {
10
+ var uris = arr.map(function (x) { return x.uri; });
11
+ var set = new Set(uris);
12
+ var uris2 = Array.from(set);
13
+ var arr2 = uris2.map(function (u) { return new rdflib_1.NamedNode(u); });
14
+ return arr2; // Array.from(new Set(arr.map(x => x.uri))).map(u => sym(u))
15
+ }
16
+ exports.uniqueNodes = uniqueNodes;
17
+ function getArchiveUrl(baseUrl, date) {
18
+ var year = date.getUTCFullYear();
19
+ var month = ('0' + (date.getUTCMonth() + 1)).slice(-2);
20
+ var day = ('0' + (date.getUTCDate())).slice(-2);
21
+ var parts = baseUrl.split('/');
22
+ var filename = parts[parts.length - 1];
23
+ return new URL("./archive/".concat(year, "/").concat(month, "/").concat(day, "/").concat(filename), baseUrl).toString();
24
+ }
25
+ exports.getArchiveUrl = getArchiveUrl;
26
+ function differentOrigin(doc) {
27
+ if (!doc) {
28
+ return true;
29
+ }
30
+ return ("".concat(window.location.origin, "/") !== new URL(doc.value).origin);
31
+ }
32
+ exports.differentOrigin = differentOrigin;
33
+ function suggestPreferencesFile(me) {
34
+ var stripped = me.uri.replace('/profile/', '/').replace('/public/', '/');
35
+ // const stripped = me.uri.replace(\/[p|P]rofile/\g, '/').replace(\/[p|P]ublic/\g, '/')
36
+ var folderURI = stripped.split('/').slice(0, -1).join('/') + '/Settings/';
37
+ var fileURI = folderURI + 'Preferences.ttl';
38
+ return (0, rdflib_1.sym)(fileURI);
39
+ }
40
+ exports.suggestPreferencesFile = suggestPreferencesFile;
41
+ function determineChatContainer(invitee, podRoot) {
42
+ // Create chat
43
+ // See https://gitter.im/solid/chat-app?at=5f3c800f855be416a23ae74a
44
+ var chatContainerStr = new URL("IndividualChats/".concat(new URL(invitee.value).host, "/"), podRoot.value).toString();
45
+ return new rdflib_1.NamedNode(chatContainerStr);
46
+ }
47
+ exports.determineChatContainer = determineChatContainer;
48
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/util/utils.ts"],"names":[],"mappings":";;;AAAA,iCAAwC;AAExC,SAAgB,QAAQ,CAAC,GAAc;IACnC,OAAO,IAAA,YAAG,EAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAFD,4BAEC;AAED,SAAgB,WAAW,CAAE,GAAgB;IACzC,IAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAA;IAChC,IAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;IACzB,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,IAAI,kBAAS,CAAC,CAAC,CAAC,EAAhB,CAAgB,CAAC,CAAA;IAC7C,OAAO,IAAI,CAAA,CAAC,4DAA4D;AAC5E,CAAC;AAND,kCAMC;AAED,SAAgB,aAAa,CAAC,OAAe,EAAE,IAAU;IACrD,IAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACnC,IAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,IAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAE,CAAC,CAAE,CAAC;IACzC,OAAO,IAAI,GAAG,CAAC,oBAAa,IAAI,cAAI,KAAK,cAAI,GAAG,cAAI,QAAQ,CAAE,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;AACxF,CAAC;AAPD,sCAOC;AAED,SAAgB,eAAe,CAAC,GAAG;IAC/B,IAAI,CAAC,GAAG,EAAE;QACN,OAAO,IAAI,CAAC;KACf;IACD,OAAO,CACH,UAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,MAAG,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAC7D,CAAC;AACN,CAAC;AAPD,0CAOC;AAED,SAAgB,sBAAsB,CAAE,EAAY;IAChD,IAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAC1E,uFAAuF;IACvF,IAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAA;IAC1E,IAAM,OAAO,GAAG,SAAS,GAAG,iBAAiB,CAAA;IAC7C,OAAO,IAAA,YAAG,EAAC,OAAO,CAAC,CAAA;AACvB,CAAC;AAND,wDAMC;AAED,SAAgB,sBAAsB,CAClC,OAAkB,EAClB,OAAkB;IAElB,cAAc;IACd,mEAAmE;IACnE,IAAM,gBAAgB,GAAG,IAAI,GAAG,CAC5B,0BAAmB,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,MAAG,EACjD,OAAO,CAAC,KAAK,CAChB,CAAC,QAAQ,EAAE,CAAC;IACb,OAAO,IAAI,kBAAS,CAAC,gBAAgB,CAAC,CAAC;AAC3C,CAAC;AAXD,wDAWC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "solid-logic",
3
- "version": "1.3.17-f7bdc345",
3
+ "version": "2.0.0",
4
4
  "description": "Core business logic of Solid OS",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -11,7 +11,7 @@
11
11
  "test-debug": "node --inspect-brk ./node_modules/.bin/jest -i --env jest-environment-node-debug",
12
12
  "preversion": "npm test",
13
13
  "postversion": "git push --follow-tags",
14
- "ignore:prepublishOnly": "npm run build",
14
+ "prepublishOnly": "npm run build",
15
15
  "watch": "tsc --watch"
16
16
  },
17
17
  "repository": {
@@ -25,24 +25,24 @@
25
25
  },
26
26
  "homepage": "https://github.com/solidos/solid-logic#readme",
27
27
  "devDependencies": {
28
- "@babel/plugin-proposal-class-properties": "~7.16.7",
29
- "@babel/plugin-proposal-optional-chaining": "~7.16.7",
30
- "@babel/plugin-transform-async-to-generator": "~7.16.8",
31
- "@babel/plugin-transform-runtime": "^7.17.0",
32
- "@babel/preset-env": "~7.16.11",
33
- "@babel/preset-typescript": "~7.16.7",
34
- "@types/jest": "^27.4.1",
35
- "@typescript-eslint/eslint-plugin": "^5.19.0",
36
- "@typescript-eslint/parser": "^5.19.0",
37
- "eslint": "^8.13.0",
28
+ "@babel/plugin-proposal-class-properties": "~7.18.6",
29
+ "@babel/plugin-proposal-optional-chaining": "~7.18.9",
30
+ "@babel/plugin-transform-async-to-generator": "~7.18.6",
31
+ "@babel/plugin-transform-runtime": "^7.18.10",
32
+ "@babel/preset-env": "~7.18.10",
33
+ "@babel/preset-typescript": "~7.18.6",
34
+ "@types/jest": "^27.5.2",
35
+ "@typescript-eslint/eslint-plugin": "^5.35.1",
36
+ "@typescript-eslint/parser": "^5.35.1",
37
+ "eslint": "^8.23.0",
38
38
  "jest": "^27.5.1",
39
39
  "jest-environment-node-debug": "^2.0.0",
40
40
  "jest-fetch-mock": "^3.0.3",
41
- "typescript": "^4.6.3"
41
+ "typescript": "^4.8.2"
42
42
  },
43
43
  "dependencies": {
44
- "@inrupt/solid-client-authn-browser": "^1.11.7",
45
- "rdflib": "^2.2.19",
44
+ "@inrupt/solid-client-authn-browser": "^1.12.2",
45
+ "rdflib": "^2.2.20",
46
46
  "solid-namespace": "^0.5.2"
47
47
  }
48
48
  }