solid-logic 1.3.17-a849582e → 1.3.17-af110ecf

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 (57) hide show
  1. package/lib/acl/aclLogic.d.ts +2 -11
  2. package/lib/acl/aclLogic.d.ts.map +1 -1
  3. package/lib/acl/aclLogic.js +5 -7
  4. package/lib/acl/aclLogic.js.map +1 -1
  5. package/lib/chat/chatLogic.d.ts +2 -15
  6. package/lib/chat/chatLogic.d.ts.map +1 -1
  7. package/lib/chat/chatLogic.js +8 -7
  8. package/lib/chat/chatLogic.js.map +1 -1
  9. package/lib/inbox/inboxLogic.d.ts +2 -6
  10. package/lib/inbox/inboxLogic.d.ts.map +1 -1
  11. package/lib/inbox/inboxLogic.js.map +1 -1
  12. package/lib/index.d.ts +7 -9
  13. package/lib/index.d.ts.map +1 -1
  14. package/lib/index.js +10 -74
  15. package/lib/index.js.map +1 -1
  16. package/lib/logic/solidLogic.d.ts +6 -0
  17. package/lib/logic/solidLogic.d.ts.map +1 -0
  18. package/lib/logic/solidLogic.js +92 -0
  19. package/lib/logic/solidLogic.js.map +1 -0
  20. package/lib/logic/solidLogicSingleton.d.ts +2 -35
  21. package/lib/logic/solidLogicSingleton.d.ts.map +1 -1
  22. package/lib/logic/solidLogicSingleton.js +7 -86
  23. package/lib/logic/solidLogicSingleton.js.map +1 -1
  24. package/lib/profile/profileLogic.d.ts +2 -12
  25. package/lib/profile/profileLogic.d.ts.map +1 -1
  26. package/lib/profile/profileLogic.js +1 -23
  27. package/lib/profile/profileLogic.js.map +1 -1
  28. package/lib/typeIndex/typeIndexLogic.d.ts +2 -31
  29. package/lib/typeIndex/typeIndexLogic.d.ts.map +1 -1
  30. package/lib/typeIndex/typeIndexLogic.js +12 -359
  31. package/lib/typeIndex/typeIndexLogic.js.map +1 -1
  32. package/lib/types.d.ts +65 -1
  33. package/lib/types.d.ts.map +1 -1
  34. package/lib/util/ns.d.ts +2 -0
  35. package/lib/util/ns.d.ts.map +1 -0
  36. package/lib/util/ns.js +34 -0
  37. package/lib/util/ns.js.map +1 -0
  38. package/package.json +1 -1
  39. package/src/acl/aclLogic.ts +8 -5
  40. package/src/chat/chatLogic.ts +7 -7
  41. package/src/inbox/inboxLogic.ts +2 -1
  42. package/src/index.ts +12 -83
  43. package/src/logic/solidLogic.ts +75 -0
  44. package/src/logic/solidLogicSingleton.ts +6 -159
  45. package/src/profile/profileLogic.ts +4 -12
  46. package/src/typeIndex/typeIndexLogic.ts +6 -277
  47. package/src/types.ts +76 -1
  48. package/src/util/{ns.js → ns.ts} +0 -0
  49. package/test/logic.test.ts +5 -6
  50. package/test/typeIndexLogic.test.ts +484 -54
  51. package/lib/discovery/discoveryLogic.d.ts +0 -37
  52. package/lib/discovery/discoveryLogic.d.ts.map +0 -1
  53. package/lib/discovery/discoveryLogic.js +0 -500
  54. package/lib/discovery/discoveryLogic.js.map +0 -1
  55. package/src/discovery/discoveryLogic.ts +0 -267
  56. package/test/discoveryLogic.test.ts +0 -712
  57. package/test/typeIndexLogicPart2.test.ts +0 -485
@@ -1,500 +0,0 @@
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
- var __importDefault = (this && this.__importDefault) || function (mod) {
62
- return (mod && mod.__esModule) ? mod : { "default": mod };
63
- };
64
- Object.defineProperty(exports, "__esModule", { value: true });
65
- exports.deleteTypeIndexRegistration = exports.registerInstanceInTypeIndex = exports.getAppInstances = exports.getScopedAppInstances = exports.getScopedAppsFromIndex = exports.uniqueNodes = exports.loadAllTypeIndexes = exports.loadCommunityTypeIndexes = exports.loadTypeIndexesFor = exports.loadPreferences = exports.loadProfile = exports.followOrCreateLink = exports.suggestPrivateTypeIndex = exports.suggestPublicTypeIndex = exports.suggestPreferencesFile = exports.loadOrCreateIfNotExists = void 0;
66
- var rdflib_1 = require("rdflib");
67
- var $rdf = __importStar(require("rdflib"));
68
- var utils_1 = require("../util/utils");
69
- var solid_namespace_1 = __importDefault(require("solid-namespace"));
70
- var solidLogicSingleton_1 = require("../logic/solidLogicSingleton");
71
- var ns = (0, solid_namespace_1.default)($rdf);
72
- /**
73
- * Create a resource if it really does not exist
74
- * Be absolutely sure something does not exist before creating a new empty file
75
- * as otherwise existing could be deleted.
76
- * @param doc {NamedNode} - The resource
77
- */
78
- function loadOrCreateIfNotExists(store, doc) {
79
- return __awaiter(this, void 0, void 0, function () {
80
- var response, err_1, msg, msg;
81
- return __generator(this, function (_a) {
82
- switch (_a.label) {
83
- case 0:
84
- _a.trys.push([0, 2, , 3]);
85
- return [4 /*yield*/, store.fetcher.load(doc)];
86
- case 1:
87
- response = _a.sent();
88
- return [3 /*break*/, 3];
89
- case 2:
90
- err_1 = _a.sent();
91
- if (err_1.response.status === 404) {
92
- try {
93
- store.fetcher.webOperation('PUT', doc, { data: '', contentType: 'text/turtle' });
94
- }
95
- catch (err) {
96
- msg = 'createIfNotExists: PUT FAILED: ' + doc + ': ' + err;
97
- throw new Error(msg);
98
- }
99
- delete store.fetcher.requested[doc.uri]; // delete cached 404 error
100
- }
101
- else {
102
- msg = 'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err_1;
103
- throw new Error(msg); // @@ add nested errors
104
- }
105
- return [3 /*break*/, 3];
106
- case 3: return [2 /*return*/, response];
107
- }
108
- });
109
- });
110
- }
111
- exports.loadOrCreateIfNotExists = loadOrCreateIfNotExists;
112
- function suggestPreferencesFile(me) {
113
- var stripped = me.uri.replace('/profile/', '/').replace('/public/', '/');
114
- // const stripped = me.uri.replace(\/[p|P]rofile/\g, '/').replace(\/[p|P]ublic/\g, '/')
115
- var folderURI = stripped.split('/').slice(0, -1).join('/') + '/Settings/';
116
- var fileURI = folderURI + 'Preferences.ttl';
117
- return (0, rdflib_1.sym)(fileURI);
118
- }
119
- exports.suggestPreferencesFile = suggestPreferencesFile;
120
- function suggestPublicTypeIndex(me) {
121
- var _a;
122
- return (0, rdflib_1.sym)(((_a = me.doc().dir()) === null || _a === void 0 ? void 0 : _a.uri) + 'publicTypeIndex.ttl');
123
- }
124
- exports.suggestPublicTypeIndex = suggestPublicTypeIndex;
125
- // Note this one is based off the pref file not the profile
126
- function suggestPrivateTypeIndex(preferencesFile) {
127
- var _a;
128
- return (0, rdflib_1.sym)(((_a = preferencesFile.doc().dir()) === null || _a === void 0 ? void 0 : _a.uri) + 'privateTypeIndex.ttl');
129
- }
130
- exports.suggestPrivateTypeIndex = suggestPrivateTypeIndex;
131
- /* Follow link from this doc to another thing, or else make a new link
132
- **
133
- ** return: null no ld one and failed to make a new one
134
- */
135
- function followOrCreateLink(store, subject, predicate, object, doc) {
136
- return __awaiter(this, void 0, void 0, function () {
137
- var result, err_2, err_3;
138
- return __generator(this, function (_a) {
139
- switch (_a.label) {
140
- case 0: return [4 /*yield*/, store.fetcher.load(doc)];
141
- case 1:
142
- _a.sent();
143
- result = store.any(subject, predicate, null, doc);
144
- if (result)
145
- return [2 /*return*/, result];
146
- if (!store.updater.editable(doc)) {
147
- return [2 /*return*/, null];
148
- }
149
- _a.label = 2;
150
- case 2:
151
- _a.trys.push([2, 4, , 5]);
152
- return [4 /*yield*/, store.updater.update([], [(0, rdflib_1.st)(subject, predicate, object, doc)])];
153
- case 3:
154
- _a.sent();
155
- return [3 /*break*/, 5];
156
- case 4:
157
- err_2 = _a.sent();
158
- console.warn("followOrCreateLink: Error making link in ".concat(doc, " to ").concat(object, ": ").concat(err_2));
159
- return [2 /*return*/, null];
160
- case 5:
161
- _a.trys.push([5, 7, , 8]);
162
- return [4 /*yield*/, loadOrCreateIfNotExists(store, object)
163
- // store.fetcher.webOperation('PUT', object, { data: '', contentType: 'text/turtle'})
164
- ];
165
- case 6:
166
- _a.sent();
167
- return [3 /*break*/, 8];
168
- case 7:
169
- err_3 = _a.sent();
170
- console.warn("followOrCreateLink: Error loading or saving new linked document: ".concat(object, ": ").concat(err_3));
171
- return [3 /*break*/, 8];
172
- case 8: return [2 /*return*/, object];
173
- }
174
- });
175
- });
176
- }
177
- exports.followOrCreateLink = followOrCreateLink;
178
- function loadProfile(store, user) {
179
- return __awaiter(this, void 0, void 0, function () {
180
- var err_4;
181
- return __generator(this, function (_a) {
182
- switch (_a.label) {
183
- case 0:
184
- if (!user) {
185
- throw new Error("loadProfile: no user given.");
186
- }
187
- _a.label = 1;
188
- case 1:
189
- _a.trys.push([1, 3, , 4]);
190
- return [4 /*yield*/, store.fetcher.load(user.doc())];
191
- case 2:
192
- _a.sent();
193
- return [3 /*break*/, 4];
194
- case 3:
195
- err_4 = _a.sent();
196
- throw new Error("Unable to load profile of user ".concat(user, ": ").concat(err_4));
197
- case 4: return [2 /*return*/, user.doc()];
198
- }
199
- });
200
- });
201
- }
202
- exports.loadProfile = loadProfile;
203
- function loadPreferences(store, user) {
204
- return __awaiter(this, void 0, void 0, function () {
205
- var possiblePreferencesFile, preferencesFile, message, err_5;
206
- return __generator(this, function (_a) {
207
- switch (_a.label) {
208
- case 0: return [4 /*yield*/, loadProfile(store, user)];
209
- case 1:
210
- _a.sent();
211
- possiblePreferencesFile = suggestPreferencesFile(user);
212
- return [4 /*yield*/, followOrCreateLink(store, user, ns.space('preferencesFile'), possiblePreferencesFile, user.doc())];
213
- case 2:
214
- preferencesFile = _a.sent();
215
- if (!preferencesFile) {
216
- message = "User ".concat(user, " has no pointer in profile to preferences file.");
217
- console.warn(message);
218
- return [2 /*return*/, undefined];
219
- }
220
- _a.label = 3;
221
- case 3:
222
- _a.trys.push([3, 5, , 6]);
223
- return [4 /*yield*/, store.fetcher.load(preferencesFile)];
224
- case 4:
225
- _a.sent();
226
- return [3 /*break*/, 6];
227
- case 5:
228
- err_5 = _a.sent();
229
- return [2 /*return*/, undefined];
230
- case 6: return [2 /*return*/, preferencesFile];
231
- }
232
- });
233
- });
234
- }
235
- exports.loadPreferences = loadPreferences;
236
- function loadTypeIndexesFor(store, user) {
237
- return __awaiter(this, void 0, void 0, function () {
238
- var profile, suggestion, publicTypeIndex, publicScopes, preferencesFile, err_6, privateScopes, suggestedPrivateTypeIndex, privateTypeIndex, _a, scopes, files, err_7;
239
- return __generator(this, function (_b) {
240
- switch (_b.label) {
241
- case 0:
242
- if (!user)
243
- throw new Error("loadTypeIndexesFor: No user given");
244
- return [4 /*yield*/, loadProfile(store, user)];
245
- case 1:
246
- profile = _b.sent();
247
- suggestion = suggestPublicTypeIndex(user);
248
- return [4 /*yield*/, followOrCreateLink(store, user, ns.solid('publicTypeIndex'), suggestion, profile)];
249
- case 2:
250
- publicTypeIndex = _b.sent();
251
- publicScopes = publicTypeIndex ? [{ label: 'public', index: publicTypeIndex, agent: user }] : [];
252
- _b.label = 3;
253
- case 3:
254
- _b.trys.push([3, 5, , 6]);
255
- return [4 /*yield*/, loadPreferences(store, user)];
256
- case 4:
257
- preferencesFile = _b.sent();
258
- return [3 /*break*/, 6];
259
- case 5:
260
- err_6 = _b.sent();
261
- preferencesFile = null;
262
- return [3 /*break*/, 6];
263
- case 6:
264
- if (!preferencesFile) return [3 /*break*/, 9];
265
- suggestedPrivateTypeIndex = suggestPrivateTypeIndex(preferencesFile);
266
- _a = store.any(user, ns.solid('privateTypeIndex'), undefined, profile);
267
- if (_a) return [3 /*break*/, 8];
268
- return [4 /*yield*/, followOrCreateLink(store, user, ns.solid('privateTypeIndex'), suggestedPrivateTypeIndex, preferencesFile)];
269
- case 7:
270
- _a = (_b.sent());
271
- _b.label = 8;
272
- case 8:
273
- privateTypeIndex = _a;
274
- privateScopes = privateTypeIndex ? [{ label: 'private', index: privateTypeIndex, agent: user }] : [];
275
- return [3 /*break*/, 10];
276
- case 9:
277
- privateScopes = [];
278
- _b.label = 10;
279
- case 10:
280
- scopes = publicScopes.concat(privateScopes);
281
- if (scopes.length === 0)
282
- return [2 /*return*/, scopes];
283
- files = scopes.map(function (scope) { return scope.index; });
284
- _b.label = 11;
285
- case 11:
286
- _b.trys.push([11, 13, , 14]);
287
- return [4 /*yield*/, store.fetcher.load(files)];
288
- case 12:
289
- _b.sent();
290
- return [3 /*break*/, 14];
291
- case 13:
292
- err_7 = _b.sent();
293
- console.warn('Problems loading type index: ', err_7);
294
- return [3 /*break*/, 14];
295
- case 14: return [2 /*return*/, scopes];
296
- }
297
- });
298
- });
299
- }
300
- exports.loadTypeIndexesFor = loadTypeIndexesFor;
301
- function loadCommunityTypeIndexes(store, user) {
302
- return __awaiter(this, void 0, void 0, function () {
303
- var preferencesFile, communities, result, _i, communities_1, org, _a, _b;
304
- return __generator(this, function (_c) {
305
- switch (_c.label) {
306
- case 0: return [4 /*yield*/, loadPreferences(store, user)];
307
- case 1:
308
- preferencesFile = _c.sent();
309
- if (!preferencesFile) return [3 /*break*/, 6];
310
- communities = store.each(user, ns.solid('community'), undefined, preferencesFile).concat(store.each(user, ns.solid('community'), undefined, user.doc()));
311
- result = [];
312
- _i = 0, communities_1 = communities;
313
- _c.label = 2;
314
- case 2:
315
- if (!(_i < communities_1.length)) return [3 /*break*/, 5];
316
- org = communities_1[_i];
317
- _b = (_a = result).concat;
318
- return [4 /*yield*/, loadTypeIndexesFor(store, org)];
319
- case 3:
320
- result = _b.apply(_a, [_c.sent()]);
321
- _c.label = 4;
322
- case 4:
323
- _i++;
324
- return [3 /*break*/, 2];
325
- case 5: return [2 /*return*/, result];
326
- case 6: return [2 /*return*/, []]; // No communities
327
- }
328
- });
329
- });
330
- }
331
- exports.loadCommunityTypeIndexes = loadCommunityTypeIndexes;
332
- function loadAllTypeIndexes(store, user) {
333
- return __awaiter(this, void 0, void 0, function () {
334
- var _a, _b;
335
- return __generator(this, function (_c) {
336
- switch (_c.label) {
337
- case 0: return [4 /*yield*/, loadTypeIndexesFor(store, user)];
338
- case 1:
339
- _b = (_a = (_c.sent())).concat;
340
- return [4 /*yield*/, loadCommunityTypeIndexes(store, user)];
341
- case 2: return [2 /*return*/, _b.apply(_a, [(_c.sent()).flat()])];
342
- }
343
- });
344
- });
345
- }
346
- exports.loadAllTypeIndexes = loadAllTypeIndexes;
347
- // Utility: remove duplicates from Array of NamedNodes
348
- function uniqueNodes(arr) {
349
- var uris = arr.map(function (x) { return x.uri; });
350
- var set = new Set(uris);
351
- var uris2 = Array.from(set);
352
- var arr2 = uris2.map(function (u) { return new rdflib_1.NamedNode(u); });
353
- return arr2; // Array.from(new Set(arr.map(x => x.uri))).map(u => sym(u))
354
- }
355
- exports.uniqueNodes = uniqueNodes;
356
- function getScopedAppsFromIndex(store, scope, theClass) {
357
- return __awaiter(this, void 0, void 0, function () {
358
- var index, registrations, relevant, directInstances, instances, instanceContainers, containers, i, cont, contents;
359
- return __generator(this, function (_a) {
360
- switch (_a.label) {
361
- case 0:
362
- index = scope.index;
363
- registrations = store.statementsMatching(null, ns.solid('instance'), null, index)
364
- .concat(store.statementsMatching(null, ns.solid('instanceContainer'), null, index))
365
- .map(function (st) { return st.subject; });
366
- relevant = theClass ? registrations.filter(function (reg) { return store.any(reg, ns.solid('forClass'), null, index).sameTerm(theClass); })
367
- : registrations;
368
- directInstances = relevant.map(function (reg) { return store.each(reg, ns.solid('instance'), null, index); }).flat();
369
- instances = uniqueNodes(directInstances);
370
- instanceContainers = relevant.map(function (reg) { return store.each(reg, ns.solid('instanceContainer'), null, index); }).flat();
371
- containers = uniqueNodes(instanceContainers);
372
- if (containers.length > 0) {
373
- console.log('@@ getScopedAppsFromIndex containers ', containers);
374
- }
375
- i = 0;
376
- _a.label = 1;
377
- case 1:
378
- if (!(i < containers.length)) return [3 /*break*/, 4];
379
- cont = containers[i];
380
- return [4 /*yield*/, store.fetcher.load(cont)];
381
- case 2:
382
- _a.sent();
383
- contents = store.each(cont, ns.ldp('contains'), null, cont);
384
- instances = instances.concat(contents);
385
- _a.label = 3;
386
- case 3:
387
- i++;
388
- return [3 /*break*/, 1];
389
- case 4: return [2 /*return*/, instances.map(function (instance) { return { instance: instance, scope: scope }; })];
390
- }
391
- });
392
- });
393
- }
394
- exports.getScopedAppsFromIndex = getScopedAppsFromIndex;
395
- function getScopedAppInstances(store, klass, user) {
396
- return __awaiter(this, void 0, void 0, function () {
397
- var scopes, scopedApps, _i, scopes_1, scope, scopedApps0;
398
- return __generator(this, function (_a) {
399
- switch (_a.label) {
400
- case 0: return [4 /*yield*/, loadAllTypeIndexes(store, user)];
401
- case 1:
402
- scopes = _a.sent();
403
- scopedApps = [];
404
- _i = 0, scopes_1 = scopes;
405
- _a.label = 2;
406
- case 2:
407
- if (!(_i < scopes_1.length)) return [3 /*break*/, 5];
408
- scope = scopes_1[_i];
409
- return [4 /*yield*/, getScopedAppsFromIndex(store, scope, klass)];
410
- case 3:
411
- scopedApps0 = _a.sent();
412
- scopedApps = scopedApps.concat(scopedApps0);
413
- _a.label = 4;
414
- case 4:
415
- _i++;
416
- return [3 /*break*/, 2];
417
- case 5: return [2 /*return*/, scopedApps];
418
- }
419
- });
420
- });
421
- }
422
- exports.getScopedAppInstances = getScopedAppInstances;
423
- // This is the function signature which used to be in solid-ui/logic
424
- // Recommended to use getScopedAppInstances instead as it provides more information.
425
- //
426
- function getAppInstances(store, klass) {
427
- return __awaiter(this, void 0, void 0, function () {
428
- var user, scopedAppInstances;
429
- return __generator(this, function (_a) {
430
- switch (_a.label) {
431
- case 0:
432
- user = solidLogicSingleton_1.authn.currentUser();
433
- if (!user)
434
- throw new Error('getAppInstances: Must be logged in to find apps.');
435
- return [4 /*yield*/, getScopedAppInstances(store, klass, user)];
436
- case 1:
437
- scopedAppInstances = _a.sent();
438
- return [2 /*return*/, scopedAppInstances.map(function (scoped) { return scoped.instance; })];
439
- }
440
- });
441
- });
442
- }
443
- exports.getAppInstances = getAppInstances;
444
- /*
445
- * Register a new app in a type index
446
- * used in chat in bookmark.js (solid-ui)
447
- * Returns the registration object if successful else null
448
- */
449
- function registerInstanceInTypeIndex(store, instance, index, theClass) {
450
- return __awaiter(this, void 0, void 0, function () {
451
- var registration, ins, err_8, msg;
452
- return __generator(this, function (_a) {
453
- switch (_a.label) {
454
- case 0:
455
- registration = (0, utils_1.newThing)(index);
456
- ins = [
457
- // See https://github.com/solid/solid/blob/main/proposals/data-discovery.md
458
- (0, rdflib_1.st)(registration, ns.rdf('type'), ns.solid('TypeRegistration'), index),
459
- (0, rdflib_1.st)(registration, ns.solid('forClass'), theClass, index),
460
- (0, rdflib_1.st)(registration, ns.solid('instance'), instance, index)
461
- ];
462
- _a.label = 1;
463
- case 1:
464
- _a.trys.push([1, 3, , 4]);
465
- return [4 /*yield*/, store.updater.update([], ins)];
466
- case 2:
467
- _a.sent();
468
- return [3 /*break*/, 4];
469
- case 3:
470
- err_8 = _a.sent();
471
- msg = "Unable to register ".concat(instance, " in index ").concat(index, ": ").concat(err_8);
472
- console.warn(msg);
473
- return [2 /*return*/, null];
474
- case 4: return [2 /*return*/, registration];
475
- }
476
- });
477
- });
478
- }
479
- exports.registerInstanceInTypeIndex = registerInstanceInTypeIndex;
480
- function deleteTypeIndexRegistration(store, item) {
481
- return __awaiter(this, void 0, void 0, function () {
482
- var reg, statements;
483
- return __generator(this, function (_a) {
484
- switch (_a.label) {
485
- case 0:
486
- reg = store.the(null, ns.solid('instance'), item.instance, item.scope.index);
487
- if (!reg)
488
- throw new Error("deleteTypeIndexRegistration: No registration found for ".concat(item.instance));
489
- statements = store.statementsMatching(reg, null, null, item.scope.index);
490
- return [4 /*yield*/, store.updater.update(statements, [])];
491
- case 1:
492
- _a.sent();
493
- return [2 /*return*/];
494
- }
495
- });
496
- });
497
- }
498
- exports.deleteTypeIndexRegistration = deleteTypeIndexRegistration;
499
- // ENDS
500
- //# sourceMappingURL=discoveryLogic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"discoveryLogic.js","sourceRoot":"","sources":["../../src/discovery/discoveryLogic.ts"],"names":[],"mappings":"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"}