solid-logic 1.3.16-a52e4345 → 1.3.17-1274f5aa
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/jest.config.js +1 -1
- package/lib/authn/SolidAuthnLogic.js +1 -1
- package/lib/authn/SolidAuthnLogic.js.map +1 -1
- package/lib/discovery/discoveryLogic.d.ts +34 -6
- package/lib/discovery/discoveryLogic.d.ts.map +1 -1
- package/lib/discovery/discoveryLogic.js +361 -79
- package/lib/discovery/discoveryLogic.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +17 -4
- package/lib/index.js.map +1 -1
- package/lib/typeIndex/typeIndexLogic.js.map +1 -1
- package/package.json +6 -4
- package/src/authn/SolidAuthnLogic.ts +5 -5
- package/src/discovery/discoveryLogic.ts +238 -48
- package/src/index.ts +16 -3
- package/src/typeIndex/typeIndexLogic.ts +1 -1
- package/test/discoveryLogic.test.ts +740 -0
- package/test/helpers/setup.ts +3 -0
- package/test/typeIndexLogic.test.ts +5 -4
package/jest.config.js
CHANGED
|
@@ -78,7 +78,7 @@ var SolidAuthnLogic = /** @class */ (function () {
|
|
|
78
78
|
if (app.viewingNoAuthPage) {
|
|
79
79
|
return (0, rdflib_1.sym)(app.webId);
|
|
80
80
|
}
|
|
81
|
-
if (this.session.info.webId && this.session.info.isLoggedIn) {
|
|
81
|
+
if (this && this.session && this.session.info && this.session.info.webId && this.session.info.isLoggedIn) {
|
|
82
82
|
return (0, rdflib_1.sym)(this.session.info.webId);
|
|
83
83
|
}
|
|
84
84
|
return (0, authUtil_1.offlineTestID)(); // null unless testing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidAuthnLogic.js","sourceRoot":"","sources":["../../src/authn/SolidAuthnLogic.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAmD;AACnD,uCAAuD;AACvD,mDAAsC;AAGtC;IAGE,yBAAY,gBAAyB;QACnC,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC;IAClC,CAAC;IAGD,sBAAI,wCAAW;QADf,6FAA6F;aAC7F,cAA4B,OAAO,IAAI,CAAC,OAAO,CAAA,CAAC,CAAC;;;OAAA;IAEjD,qCAAW,GAAX;QACE,IAAM,GAAG,GAAG,IAAA,qBAAU,GAAE,CAAA;QACxB,IAAI,GAAG,CAAC,iBAAiB,EAAE;YACzB,OAAO,IAAA,YAAG,EAAC,GAAG,CAAC,KAAK,CAAC,CAAA;SACtB;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE;
|
|
1
|
+
{"version":3,"file":"SolidAuthnLogic.js","sourceRoot":"","sources":["../../src/authn/SolidAuthnLogic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,41 @@
|
|
|
1
1
|
import { NamedNode, LiveStore } from "rdflib";
|
|
2
|
-
declare type
|
|
2
|
+
declare type TypeIndexScope = {
|
|
3
3
|
label: string;
|
|
4
4
|
index: NamedNode;
|
|
5
5
|
agent: NamedNode;
|
|
6
6
|
};
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
declare type ScopedApp = {
|
|
8
|
+
instance: NamedNode;
|
|
9
|
+
scope: TypeIndexScope;
|
|
10
|
+
};
|
|
11
|
+
/** Create a resource if it really does not exist
|
|
12
|
+
* Be absolutely sure something does not exist before creating a new empty file
|
|
13
|
+
* as otherwise existing could be deleted.
|
|
14
|
+
* @param doc {NamedNode} - The resource
|
|
15
|
+
*/
|
|
16
|
+
export declare function loadOrCreateIfNotExists(store: LiveStore, doc: NamedNode): Promise<any>;
|
|
17
|
+
export declare function suggestPreferencesFile(me: NamedNode): NamedNode;
|
|
18
|
+
export declare function suggestPublicTypeIndex(me: NamedNode): NamedNode;
|
|
19
|
+
export declare function suggestPrivateTypeIndex(preferencesFile: NamedNode): NamedNode;
|
|
20
|
+
export declare function followOrCreateLink(store: LiveStore, subject: NamedNode, predicate: NamedNode, object: NamedNode, doc: NamedNode): Promise<NamedNode | null>;
|
|
21
|
+
export declare function loadProfile(store: LiveStore, user: NamedNode): Promise<NamedNode>;
|
|
22
|
+
export declare function loadPreferences(store: LiveStore, user: NamedNode): Promise<NamedNode | undefined>;
|
|
23
|
+
export declare function loadTypeIndexesFor(store: LiveStore, user: NamedNode): Promise<Array<TypeIndexScope>>;
|
|
24
|
+
export declare function loadCommunityTypeIndexes(store: LiveStore, user: NamedNode): Promise<TypeIndexScope[][]>;
|
|
25
|
+
export declare function loadAllTypeIndexes(store: LiveStore, user: NamedNode): Promise<TypeIndexScope[]>;
|
|
26
|
+
export declare function uniqueNodes(arr: NamedNode[]): NamedNode[];
|
|
27
|
+
export declare function getScopedAppsFromIndex(store: any, scope: any, theClass: NamedNode | null): Promise<{
|
|
28
|
+
instance: NamedNode;
|
|
29
|
+
scope: any;
|
|
30
|
+
}[]>;
|
|
31
|
+
export declare function getScopedAppInstances(store: LiveStore, klass: NamedNode, user: NamedNode): Promise<ScopedApp[]>;
|
|
32
|
+
export declare function getAppInstances(store: LiveStore, klass: NamedNode): Promise<NamedNode[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Register a new app in a type index
|
|
35
|
+
* used in chat in bookmark.js (solid-ui)
|
|
36
|
+
* Returns the registration object if successful else null
|
|
37
|
+
*/
|
|
38
|
+
export declare function registerInstanceInTypeIndex(store: LiveStore, instance: NamedNode, index: NamedNode, theClass: NamedNode): Promise<NamedNode | null>;
|
|
39
|
+
export declare function deleteTypeIndexRegistration(store: LiveStore, item: any): Promise<void>;
|
|
12
40
|
export {};
|
|
13
41
|
//# sourceMappingURL=discoveryLogic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discoveryLogic.d.ts","sourceRoot":"","sources":["../../src/discovery/discoveryLogic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAa,SAAS,
|
|
1
|
+
{"version":3,"file":"discoveryLogic.d.ts","sourceRoot":"","sources":["../../src/discovery/discoveryLogic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAa,SAAS,EAAW,MAAM,QAAQ,CAAC;AAMlE,aAAK,cAAc,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAE;AAC7E,aAAK,SAAS,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAA;AAiB/D;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,gBAmB9E;AAED,wBAAgB,sBAAsB,CAAE,EAAE,EAAC,SAAS,aAMnD;AAED,wBAAgB,sBAAsB,CAAE,EAAE,EAAC,SAAS,aAEnD;AAGD,wBAAgB,uBAAuB,CAAE,eAAe,EAAC,SAAS,aAEjE;AAKD,wBAAsB,kBAAkB,CAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAC/F,MAAM,EAAE,SAAS,EAAE,GAAG,EAAC,SAAS,GAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAsB/D;AAED,wBAAsB,WAAW,CAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,sBAUnE;AAED,wBAAsB,eAAe,CAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAE,SAAS,GAAG,SAAS,CAAE,CAkB1G;AAED,wBAAsB,kBAAkB,CAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAwC1G;AAED,wBAAsB,wBAAwB,CAAE,KAAK,EAAC,SAAS,EAAE,IAAI,EAAC,SAAS,GAAG,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAa5G;AAED,wBAAsB,kBAAkB,CAAE,KAAK,EAAC,SAAS,EAAE,IAAI,EAAC,SAAS,6BAExE;AAID,wBAAgB,WAAW,CAAE,GAAG,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAM1D;AAED,wBAAsB,sBAAsB,CAAE,KAAK,KAAA,EAAE,KAAK,KAAA,EAAE,QAAQ,EAAE,SAAS,GAAG,IAAI;;;KAwBrF;AAGD,wBAAsB,qBAAqB,CAAE,KAAK,EAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAQpH;AAID,wBAAsB,eAAe,CAAE,KAAK,EAAC,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAK9F;AACD;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,KAAK,EAAC,SAAS,EACf,QAAQ,EAAE,SAAS,EACnB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,SAAS,GAElB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAgB3B;AAED,wBAAsB,2BAA2B,CAAE,KAAK,EAAE,SAAS,EAAE,IAAI,KAAA,iBAKxE"}
|
|
@@ -36,15 +36,133 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.loadAllTypeIndexes = exports.loadCommunityTypeIndexes = exports.loadTypeIndexesFor = exports.loadPreferences = exports.loadProfile = void 0;
|
|
39
|
+
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;
|
|
40
40
|
var rdflib_1 = require("rdflib");
|
|
41
|
+
var solidLogicSingleton_1 = require("../logic/solidLogicSingleton");
|
|
42
|
+
var uri_1 = require("../util/uri");
|
|
43
|
+
var authn = solidLogicSingleton_1.solidLogicSingleton.authn;
|
|
44
|
+
var currentUser = authn.currentUser;
|
|
41
45
|
var ns = {
|
|
46
|
+
dct: (0, rdflib_1.Namespace)('http://purl.org/dc/terms/'),
|
|
47
|
+
ldp: (0, rdflib_1.Namespace)('http://www.w3.org/ns/ldp#'),
|
|
48
|
+
meeting: (0, rdflib_1.Namespace)('http://www.w3.org/ns/pim/meeting#'),
|
|
49
|
+
rdf: (0, rdflib_1.Namespace)('http://www.w3.org/1999/02/22-rdf-syntax-ns#'),
|
|
50
|
+
schema: (0, rdflib_1.Namespace)('http://schema.org/'),
|
|
42
51
|
solid: (0, rdflib_1.Namespace)('http://www.w3.org/ns/solid/terms#'),
|
|
43
|
-
space: (0, rdflib_1.Namespace)('http://www.w3.org/ns/pim/space#')
|
|
52
|
+
space: (0, rdflib_1.Namespace)('http://www.w3.org/ns/pim/space#'),
|
|
53
|
+
stat: (0, rdflib_1.Namespace)('http://www.w3.org/ns/posix/stat#'),
|
|
54
|
+
vcard: (0, rdflib_1.Namespace)('http://www.w3.org/2006/vcard/ns#'),
|
|
55
|
+
wf: (0, rdflib_1.Namespace)('http://www.w3.org/2005/01/wf/flow#'),
|
|
56
|
+
xsd: (0, rdflib_1.Namespace)('http://www.w3.org/2001/XMLSchema#')
|
|
44
57
|
};
|
|
58
|
+
/** Create a resource if it really does not exist
|
|
59
|
+
* Be absolutely sure something does not exist before creating a new empty file
|
|
60
|
+
* as otherwise existing could be deleted.
|
|
61
|
+
* @param doc {NamedNode} - The resource
|
|
62
|
+
*/
|
|
63
|
+
function loadOrCreateIfNotExists(store, doc) {
|
|
64
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
65
|
+
var response, err_1, msg, msg;
|
|
66
|
+
return __generator(this, function (_a) {
|
|
67
|
+
switch (_a.label) {
|
|
68
|
+
case 0:
|
|
69
|
+
_a.trys.push([0, 2, , 3]);
|
|
70
|
+
return [4 /*yield*/, store.fetcher.load(doc)];
|
|
71
|
+
case 1:
|
|
72
|
+
response = _a.sent();
|
|
73
|
+
return [3 /*break*/, 3];
|
|
74
|
+
case 2:
|
|
75
|
+
err_1 = _a.sent();
|
|
76
|
+
if (err_1.response.status === 404) {
|
|
77
|
+
try {
|
|
78
|
+
store.fetcher.webOperation('PUT', doc, { data: '', contentType: 'text/turtle' });
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
msg = 'createIfNotExists: PUT FAILED: ' + doc + ': ' + err;
|
|
82
|
+
throw new Error(msg);
|
|
83
|
+
}
|
|
84
|
+
delete store.fetcher.requested[doc.uri]; // delete cached 404 error
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
msg = 'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err_1;
|
|
88
|
+
throw new Error(msg); // @@ add nested errors
|
|
89
|
+
}
|
|
90
|
+
return [3 /*break*/, 3];
|
|
91
|
+
case 3: return [2 /*return*/, response];
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
exports.loadOrCreateIfNotExists = loadOrCreateIfNotExists;
|
|
97
|
+
function suggestPreferencesFile(me) {
|
|
98
|
+
var stripped = me.uri.replace('/profile/', '/').replace('/public/', '/');
|
|
99
|
+
// const stripped = me.uri.replace(\/[p|P]rofile/\g, '/').replace(\/[p|P]ublic/\g, '/')
|
|
100
|
+
var folderURI = stripped.split('/').slice(0, -1).join('/') + '/Settings/';
|
|
101
|
+
var fileURI = folderURI + 'Preferences.ttl';
|
|
102
|
+
return (0, rdflib_1.sym)(fileURI);
|
|
103
|
+
}
|
|
104
|
+
exports.suggestPreferencesFile = suggestPreferencesFile;
|
|
105
|
+
function suggestPublicTypeIndex(me) {
|
|
106
|
+
var _a;
|
|
107
|
+
return (0, rdflib_1.sym)(((_a = me.doc().dir()) === null || _a === void 0 ? void 0 : _a.uri) + 'publicTypeIndex.ttl');
|
|
108
|
+
}
|
|
109
|
+
exports.suggestPublicTypeIndex = suggestPublicTypeIndex;
|
|
110
|
+
// Note this one is based off the pref file not the profile
|
|
111
|
+
function suggestPrivateTypeIndex(preferencesFile) {
|
|
112
|
+
var _a;
|
|
113
|
+
return (0, rdflib_1.sym)(((_a = preferencesFile.doc().dir()) === null || _a === void 0 ? void 0 : _a.uri) + 'privateTypeIndex.ttl');
|
|
114
|
+
}
|
|
115
|
+
exports.suggestPrivateTypeIndex = suggestPrivateTypeIndex;
|
|
116
|
+
/* Follow link from this doc to another thing, or else make a new link
|
|
117
|
+
**
|
|
118
|
+
** return: null no ld one and failed to make a new one
|
|
119
|
+
*/
|
|
120
|
+
function followOrCreateLink(store, subject, predicate, object, doc) {
|
|
121
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
122
|
+
var result, err_2, err_3;
|
|
123
|
+
return __generator(this, function (_a) {
|
|
124
|
+
switch (_a.label) {
|
|
125
|
+
case 0: return [4 /*yield*/, store.fetcher.load(doc)];
|
|
126
|
+
case 1:
|
|
127
|
+
_a.sent();
|
|
128
|
+
result = store.any(subject, predicate, null, doc);
|
|
129
|
+
if (result)
|
|
130
|
+
return [2 /*return*/, result];
|
|
131
|
+
if (!store.updater.editable(doc)) {
|
|
132
|
+
return [2 /*return*/, null];
|
|
133
|
+
}
|
|
134
|
+
_a.label = 2;
|
|
135
|
+
case 2:
|
|
136
|
+
_a.trys.push([2, 4, , 5]);
|
|
137
|
+
return [4 /*yield*/, store.updater.update([], [(0, rdflib_1.st)(subject, predicate, object, doc)])];
|
|
138
|
+
case 3:
|
|
139
|
+
_a.sent();
|
|
140
|
+
return [3 /*break*/, 5];
|
|
141
|
+
case 4:
|
|
142
|
+
err_2 = _a.sent();
|
|
143
|
+
console.warn("followOrCreateLink: Error making link in ".concat(doc, " to ").concat(object, ": ").concat(err_2));
|
|
144
|
+
return [2 /*return*/, null];
|
|
145
|
+
case 5:
|
|
146
|
+
_a.trys.push([5, 7, , 8]);
|
|
147
|
+
return [4 /*yield*/, loadOrCreateIfNotExists(store, object)
|
|
148
|
+
// store.fetcher.webOperation('PUT', object, { data: '', contentType: 'text/turtle'})
|
|
149
|
+
];
|
|
150
|
+
case 6:
|
|
151
|
+
_a.sent();
|
|
152
|
+
return [3 /*break*/, 8];
|
|
153
|
+
case 7:
|
|
154
|
+
err_3 = _a.sent();
|
|
155
|
+
console.warn("followOrCreateLink: Error loading or saving new linked document: ".concat(object, ": ").concat(err_3));
|
|
156
|
+
return [3 /*break*/, 8];
|
|
157
|
+
case 8: return [2 /*return*/, object];
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
exports.followOrCreateLink = followOrCreateLink;
|
|
45
163
|
function loadProfile(store, user) {
|
|
46
164
|
return __awaiter(this, void 0, void 0, function () {
|
|
47
|
-
var
|
|
165
|
+
var err_4;
|
|
48
166
|
return __generator(this, function (_a) {
|
|
49
167
|
switch (_a.label) {
|
|
50
168
|
case 0:
|
|
@@ -59,8 +177,8 @@ function loadProfile(store, user) {
|
|
|
59
177
|
_a.sent();
|
|
60
178
|
return [3 /*break*/, 4];
|
|
61
179
|
case 3:
|
|
62
|
-
|
|
63
|
-
throw new Error("Unable to load profile of user
|
|
180
|
+
err_4 = _a.sent();
|
|
181
|
+
throw new Error("Unable to load profile of user ".concat(user, ": ").concat(err_4));
|
|
64
182
|
case 4: return [2 /*return*/, user.doc()];
|
|
65
183
|
}
|
|
66
184
|
});
|
|
@@ -69,27 +187,32 @@ function loadProfile(store, user) {
|
|
|
69
187
|
exports.loadProfile = loadProfile;
|
|
70
188
|
function loadPreferences(store, user) {
|
|
71
189
|
return __awaiter(this, void 0, void 0, function () {
|
|
72
|
-
var
|
|
190
|
+
var possiblePreferencesFile, preferencesFile, message, err_5;
|
|
73
191
|
return __generator(this, function (_a) {
|
|
74
192
|
switch (_a.label) {
|
|
75
193
|
case 0: return [4 /*yield*/, loadProfile(store, user)];
|
|
76
194
|
case 1:
|
|
77
|
-
|
|
78
|
-
|
|
195
|
+
_a.sent();
|
|
196
|
+
possiblePreferencesFile = suggestPreferencesFile(user);
|
|
197
|
+
return [4 /*yield*/, followOrCreateLink(store, user, ns.space('preferencesFile'), possiblePreferencesFile, user.doc())];
|
|
198
|
+
case 2:
|
|
199
|
+
preferencesFile = _a.sent();
|
|
79
200
|
if (!preferencesFile) {
|
|
80
|
-
|
|
201
|
+
message = "User ".concat(user, " has no pointer in profile to preferences file.");
|
|
202
|
+
console.warn(message);
|
|
81
203
|
return [2 /*return*/, undefined];
|
|
82
204
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
return [2 /*return*/,
|
|
205
|
+
_a.label = 3;
|
|
206
|
+
case 3:
|
|
207
|
+
_a.trys.push([3, 5, , 6]);
|
|
208
|
+
return [4 /*yield*/, store.fetcher.load(preferencesFile)];
|
|
209
|
+
case 4:
|
|
210
|
+
_a.sent();
|
|
211
|
+
return [3 /*break*/, 6];
|
|
212
|
+
case 5:
|
|
213
|
+
err_5 = _a.sent();
|
|
214
|
+
return [2 /*return*/, undefined];
|
|
215
|
+
case 6: return [2 /*return*/, preferencesFile];
|
|
93
216
|
}
|
|
94
217
|
});
|
|
95
218
|
});
|
|
@@ -97,7 +220,7 @@ function loadPreferences(store, user) {
|
|
|
97
220
|
exports.loadPreferences = loadPreferences;
|
|
98
221
|
function loadTypeIndexesFor(store, user) {
|
|
99
222
|
return __awaiter(this, void 0, void 0, function () {
|
|
100
|
-
var profile,
|
|
223
|
+
var profile, suggestion, publicTypeIndex, publicScopes, preferencesFile, err_6, privateScopes, suggestedPrivateTypeIndex, privateTypeIndex, _a, scopes, files, err_7;
|
|
101
224
|
return __generator(this, function (_b) {
|
|
102
225
|
switch (_b.label) {
|
|
103
226
|
case 0:
|
|
@@ -106,30 +229,55 @@ function loadTypeIndexesFor(store, user) {
|
|
|
106
229
|
return [4 /*yield*/, loadProfile(store, user)];
|
|
107
230
|
case 1:
|
|
108
231
|
profile = _b.sent();
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
_b.label = 2;
|
|
232
|
+
suggestion = suggestPublicTypeIndex(user);
|
|
233
|
+
return [4 /*yield*/, followOrCreateLink(store, user, ns.solid('publicTypeIndex'), suggestion, profile)];
|
|
112
234
|
case 2:
|
|
113
|
-
_b.
|
|
114
|
-
|
|
235
|
+
publicTypeIndex = _b.sent();
|
|
236
|
+
publicScopes = publicTypeIndex ? [{ label: 'public', index: publicTypeIndex, agent: user }] : [];
|
|
237
|
+
_b.label = 3;
|
|
115
238
|
case 3:
|
|
116
|
-
_b.
|
|
117
|
-
return [
|
|
239
|
+
_b.trys.push([3, 5, , 6]);
|
|
240
|
+
return [4 /*yield*/, loadPreferences(store, user)];
|
|
118
241
|
case 4:
|
|
119
|
-
|
|
120
|
-
return [3 /*break*/,
|
|
242
|
+
preferencesFile = _b.sent();
|
|
243
|
+
return [3 /*break*/, 6];
|
|
121
244
|
case 5:
|
|
122
|
-
|
|
123
|
-
|
|
245
|
+
err_6 = _b.sent();
|
|
246
|
+
preferencesFile = null;
|
|
247
|
+
return [3 /*break*/, 6];
|
|
124
248
|
case 6:
|
|
125
|
-
preferencesFile
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
249
|
+
if (!preferencesFile) return [3 /*break*/, 9];
|
|
250
|
+
suggestedPrivateTypeIndex = suggestPrivateTypeIndex(preferencesFile);
|
|
251
|
+
_a = store.any(user, ns.solid('privateTypeIndex'), undefined, profile);
|
|
252
|
+
if (_a) return [3 /*break*/, 8];
|
|
253
|
+
return [4 /*yield*/, followOrCreateLink(store, user, ns.solid('privateTypeIndex'), suggestedPrivateTypeIndex, preferencesFile)];
|
|
254
|
+
case 7:
|
|
255
|
+
_a = (_b.sent());
|
|
256
|
+
_b.label = 8;
|
|
257
|
+
case 8:
|
|
258
|
+
privateTypeIndex = _a;
|
|
259
|
+
privateScopes = privateTypeIndex ? [{ label: 'private', index: privateTypeIndex, agent: user }] : [];
|
|
260
|
+
return [3 /*break*/, 10];
|
|
261
|
+
case 9:
|
|
262
|
+
privateScopes = [];
|
|
263
|
+
_b.label = 10;
|
|
264
|
+
case 10:
|
|
265
|
+
scopes = publicScopes.concat(privateScopes);
|
|
266
|
+
if (scopes.length === 0)
|
|
267
|
+
return [2 /*return*/, scopes];
|
|
268
|
+
files = scopes.map(function (scope) { return scope.index; });
|
|
269
|
+
_b.label = 11;
|
|
270
|
+
case 11:
|
|
271
|
+
_b.trys.push([11, 13, , 14]);
|
|
272
|
+
return [4 /*yield*/, store.fetcher.load(files)];
|
|
273
|
+
case 12:
|
|
274
|
+
_b.sent();
|
|
275
|
+
return [3 /*break*/, 14];
|
|
276
|
+
case 13:
|
|
277
|
+
err_7 = _b.sent();
|
|
278
|
+
console.warn('Problems loading type index: ', err_7);
|
|
279
|
+
return [3 /*break*/, 14];
|
|
280
|
+
case 14: return [2 /*return*/, scopes];
|
|
133
281
|
}
|
|
134
282
|
});
|
|
135
283
|
});
|
|
@@ -137,44 +285,30 @@ function loadTypeIndexesFor(store, user) {
|
|
|
137
285
|
exports.loadTypeIndexesFor = loadTypeIndexesFor;
|
|
138
286
|
function loadCommunityTypeIndexes(store, user) {
|
|
139
287
|
return __awaiter(this, void 0, void 0, function () {
|
|
140
|
-
var preferencesFile, communities,
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
switch (_a.label) {
|
|
288
|
+
var preferencesFile, communities, result, _i, communities_1, org, _a, _b;
|
|
289
|
+
return __generator(this, function (_c) {
|
|
290
|
+
switch (_c.label) {
|
|
144
291
|
case 0: return [4 /*yield*/, loadPreferences(store, user)];
|
|
145
292
|
case 1:
|
|
146
|
-
preferencesFile =
|
|
147
|
-
if (preferencesFile)
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
*/
|
|
166
|
-
// return communityTypeIndexesPromise.resolve()
|
|
167
|
-
];
|
|
168
|
-
// const communityTypeIndexes = await Promise.all(communityTypeIndexesPromise)
|
|
169
|
-
/*
|
|
170
|
-
let result = [] as TypeIndex[]
|
|
171
|
-
for(const community of communities) {
|
|
172
|
-
result = result.concat(await loadTypeIndexesFor(store, community as NamedNode)) as TypeIndex[] // @@ how oto make functional with async?
|
|
173
|
-
}
|
|
174
|
-
*/
|
|
175
|
-
// return communityTypeIndexesPromise.resolve()
|
|
176
|
-
}
|
|
177
|
-
return [2 /*return*/, []];
|
|
293
|
+
preferencesFile = _c.sent();
|
|
294
|
+
if (!preferencesFile) return [3 /*break*/, 6];
|
|
295
|
+
communities = store.each(user, ns.solid('community'), undefined, preferencesFile).concat(store.each(user, ns.solid('community'), undefined, user.doc()));
|
|
296
|
+
result = [];
|
|
297
|
+
_i = 0, communities_1 = communities;
|
|
298
|
+
_c.label = 2;
|
|
299
|
+
case 2:
|
|
300
|
+
if (!(_i < communities_1.length)) return [3 /*break*/, 5];
|
|
301
|
+
org = communities_1[_i];
|
|
302
|
+
_b = (_a = result).concat;
|
|
303
|
+
return [4 /*yield*/, loadTypeIndexesFor(store, org)];
|
|
304
|
+
case 3:
|
|
305
|
+
result = _b.apply(_a, [_c.sent()]);
|
|
306
|
+
_c.label = 4;
|
|
307
|
+
case 4:
|
|
308
|
+
_i++;
|
|
309
|
+
return [3 /*break*/, 2];
|
|
310
|
+
case 5: return [2 /*return*/, result];
|
|
311
|
+
case 6: return [2 /*return*/, []]; // No communities
|
|
178
312
|
}
|
|
179
313
|
});
|
|
180
314
|
});
|
|
@@ -195,9 +329,157 @@ function loadAllTypeIndexes(store, user) {
|
|
|
195
329
|
});
|
|
196
330
|
}
|
|
197
331
|
exports.loadAllTypeIndexes = loadAllTypeIndexes;
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
332
|
+
// Utility: remove duplicates from Array of NamedNodes
|
|
333
|
+
function uniqueNodes(arr) {
|
|
334
|
+
var uris = arr.map(function (x) { return x.uri; });
|
|
335
|
+
var set = new Set(uris);
|
|
336
|
+
var uris2 = Array.from(set);
|
|
337
|
+
var arr2 = uris2.map(function (u) { return new rdflib_1.NamedNode(u); });
|
|
338
|
+
return arr2; // Array.from(new Set(arr.map(x => x.uri))).map(u => sym(u))
|
|
201
339
|
}
|
|
202
|
-
|
|
340
|
+
exports.uniqueNodes = uniqueNodes;
|
|
341
|
+
function getScopedAppsFromIndex(store, scope, theClass) {
|
|
342
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
343
|
+
var index, registrations, relevant, directInstances, instances, instanceContainers, containers, i, cont, contents;
|
|
344
|
+
return __generator(this, function (_a) {
|
|
345
|
+
switch (_a.label) {
|
|
346
|
+
case 0:
|
|
347
|
+
index = scope.index;
|
|
348
|
+
registrations = store.statementsMatching(null, ns.solid('instance'), null, index)
|
|
349
|
+
.concat(store.statementsMatching(null, ns.solid('instanceContainer'), null, index))
|
|
350
|
+
.map(function (st) { return st.subject; });
|
|
351
|
+
relevant = theClass ? registrations.filter(function (reg) { return store.any(reg, ns.solid('forClass'), null, index).sameTerm(theClass); })
|
|
352
|
+
: registrations;
|
|
353
|
+
directInstances = relevant.map(function (reg) { return store.each(reg, ns.solid('instance'), null, index); }).flat();
|
|
354
|
+
instances = uniqueNodes(directInstances);
|
|
355
|
+
instanceContainers = relevant.map(function (reg) { return store.each(reg, ns.solid('instanceContainer'), null, index); }).flat();
|
|
356
|
+
containers = uniqueNodes(instanceContainers);
|
|
357
|
+
if (containers.length > 0) {
|
|
358
|
+
console.log('@@ getScopedAppsFromIndex containers ', containers);
|
|
359
|
+
}
|
|
360
|
+
i = 0;
|
|
361
|
+
_a.label = 1;
|
|
362
|
+
case 1:
|
|
363
|
+
if (!(i < containers.length)) return [3 /*break*/, 4];
|
|
364
|
+
cont = containers[i];
|
|
365
|
+
return [4 /*yield*/, store.fetcher.load(cont)];
|
|
366
|
+
case 2:
|
|
367
|
+
_a.sent();
|
|
368
|
+
contents = store.each(cont, ns.ldp('contains'), null, cont);
|
|
369
|
+
instances = instances.concat(contents);
|
|
370
|
+
_a.label = 3;
|
|
371
|
+
case 3:
|
|
372
|
+
i++;
|
|
373
|
+
return [3 /*break*/, 1];
|
|
374
|
+
case 4: return [2 /*return*/, instances.map(function (instance) { return { instance: instance, scope: scope }; })];
|
|
375
|
+
}
|
|
376
|
+
});
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
exports.getScopedAppsFromIndex = getScopedAppsFromIndex;
|
|
380
|
+
function getScopedAppInstances(store, klass, user) {
|
|
381
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
382
|
+
var scopes, scopedApps, _i, scopes_1, scope, scopedApps0;
|
|
383
|
+
return __generator(this, function (_a) {
|
|
384
|
+
switch (_a.label) {
|
|
385
|
+
case 0: return [4 /*yield*/, loadAllTypeIndexes(store, user)];
|
|
386
|
+
case 1:
|
|
387
|
+
scopes = _a.sent();
|
|
388
|
+
scopedApps = [];
|
|
389
|
+
_i = 0, scopes_1 = scopes;
|
|
390
|
+
_a.label = 2;
|
|
391
|
+
case 2:
|
|
392
|
+
if (!(_i < scopes_1.length)) return [3 /*break*/, 5];
|
|
393
|
+
scope = scopes_1[_i];
|
|
394
|
+
return [4 /*yield*/, getScopedAppsFromIndex(store, scope, klass)];
|
|
395
|
+
case 3:
|
|
396
|
+
scopedApps0 = _a.sent();
|
|
397
|
+
scopedApps = scopedApps.concat(scopedApps0);
|
|
398
|
+
_a.label = 4;
|
|
399
|
+
case 4:
|
|
400
|
+
_i++;
|
|
401
|
+
return [3 /*break*/, 2];
|
|
402
|
+
case 5: return [2 /*return*/, scopedApps];
|
|
403
|
+
}
|
|
404
|
+
});
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
exports.getScopedAppInstances = getScopedAppInstances;
|
|
408
|
+
// This is the function signature which used to be in solid-ui/logic
|
|
409
|
+
// Recommended to use getScopedAppInstances instead as it provides more information.
|
|
410
|
+
//
|
|
411
|
+
function getAppInstances(store, klass) {
|
|
412
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
413
|
+
var user, scopedAppInstances;
|
|
414
|
+
return __generator(this, function (_a) {
|
|
415
|
+
switch (_a.label) {
|
|
416
|
+
case 0:
|
|
417
|
+
user = currentUser();
|
|
418
|
+
if (!user)
|
|
419
|
+
throw new Error('getAppInstances: Must be logged in to find apps.');
|
|
420
|
+
return [4 /*yield*/, getScopedAppInstances(store, klass, user)];
|
|
421
|
+
case 1:
|
|
422
|
+
scopedAppInstances = _a.sent();
|
|
423
|
+
return [2 /*return*/, scopedAppInstances.map(function (scoped) { return scoped.instance; })];
|
|
424
|
+
}
|
|
425
|
+
});
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
exports.getAppInstances = getAppInstances;
|
|
429
|
+
/**
|
|
430
|
+
* Register a new app in a type index
|
|
431
|
+
* used in chat in bookmark.js (solid-ui)
|
|
432
|
+
* Returns the registration object if successful else null
|
|
433
|
+
*/
|
|
434
|
+
function registerInstanceInTypeIndex(store, instance, index, theClass) {
|
|
435
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
436
|
+
var registration, ins, err_8, msg;
|
|
437
|
+
return __generator(this, function (_a) {
|
|
438
|
+
switch (_a.label) {
|
|
439
|
+
case 0:
|
|
440
|
+
registration = (0, uri_1.newThing)(index);
|
|
441
|
+
ins = [
|
|
442
|
+
// See https://github.com/solid/solid/blob/main/proposals/data-discovery.md
|
|
443
|
+
(0, rdflib_1.st)(registration, ns.rdf('type'), ns.solid('TypeRegistration'), index),
|
|
444
|
+
(0, rdflib_1.st)(registration, ns.solid('forClass'), theClass, index),
|
|
445
|
+
(0, rdflib_1.st)(registration, ns.solid('instance'), instance, index)
|
|
446
|
+
];
|
|
447
|
+
_a.label = 1;
|
|
448
|
+
case 1:
|
|
449
|
+
_a.trys.push([1, 3, , 4]);
|
|
450
|
+
return [4 /*yield*/, store.updater.update([], ins)];
|
|
451
|
+
case 2:
|
|
452
|
+
_a.sent();
|
|
453
|
+
return [3 /*break*/, 4];
|
|
454
|
+
case 3:
|
|
455
|
+
err_8 = _a.sent();
|
|
456
|
+
msg = "Unable to register ".concat(instance, " in index ").concat(index, ": ").concat(err_8);
|
|
457
|
+
console.warn(msg);
|
|
458
|
+
return [2 /*return*/, null];
|
|
459
|
+
case 4: return [2 /*return*/, registration];
|
|
460
|
+
}
|
|
461
|
+
});
|
|
462
|
+
});
|
|
463
|
+
}
|
|
464
|
+
exports.registerInstanceInTypeIndex = registerInstanceInTypeIndex;
|
|
465
|
+
function deleteTypeIndexRegistration(store, item) {
|
|
466
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
467
|
+
var reg, statements;
|
|
468
|
+
return __generator(this, function (_a) {
|
|
469
|
+
switch (_a.label) {
|
|
470
|
+
case 0:
|
|
471
|
+
reg = store.the(null, ns.solid('instance'), item.instance, item.scope.index);
|
|
472
|
+
if (!reg)
|
|
473
|
+
throw new Error("deleteTypeIndexRegistration: No registration found for ".concat(item.instance));
|
|
474
|
+
statements = store.statementsMatching(reg, null, null, item.scope.index);
|
|
475
|
+
return [4 /*yield*/, store.updater.update(statements, [])];
|
|
476
|
+
case 1:
|
|
477
|
+
_a.sent();
|
|
478
|
+
return [2 /*return*/];
|
|
479
|
+
}
|
|
480
|
+
});
|
|
481
|
+
});
|
|
482
|
+
}
|
|
483
|
+
exports.deleteTypeIndexRegistration = deleteTypeIndexRegistration;
|
|
484
|
+
// ENDS
|
|
203
485
|
//# sourceMappingURL=discoveryLogic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discoveryLogic.js","sourceRoot":"","sources":["../../src/discovery/discoveryLogic.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAyD;AAIzD,IAAM,EAAE,GAAE;IACR,KAAK,EAAE,IAAA,kBAAS,EAAC,mCAAmC,CAAC;IACrD,KAAK,EAAE,IAAA,kBAAS,EAAC,iCAAiC,CAAC;CACpD,CAAA;AAED,SAAsB,WAAW,CAAC,KAAgB,EAAE,IAAI;;;;;;oBACtD,IAAI,CAAC,IAAI,EAAE;wBACT,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;qBAC/C;;;;oBAEC,qBAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAA;;oBAApC,SAAoC,CAAA;;;;oBAEpC,MAAM,IAAI,KAAK,CAAC,0CAAmC,IAAI,gBAAM,KAAG,CAAE,CAAC,CAAA;wBAErE,sBAAO,IAAI,CAAC,GAAG,EAAE,EAAA;;;;CAClB;AAVD,kCAUC;AAED,SAAsB,eAAe,CAAC,KAAgB,EAAE,IAAI;;;;;wBAC1C,qBAAM,WAAW,CAAC,KAAkB,EAAE,IAAI,CAAC,EAAA;;oBAArD,OAAO,GAAG,SAA2C;oBACrD,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;oBACxF,IAAI,CAAC,eAAe,EAAE;wBACpB,iFAAiF;wBACjF,sBAAO,SAAS,EAAA;qBACjB;oBACD,IAAI;wBACF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAA4B,CAAC,CAAA;qBACjD;oBAAC,OAAO,GAAG,EAAE,EAAE,gDAAgD;wBAC9D,sBAAO,SAAS;4BAChB,kGAAkG;0BADlF;wBAChB,kGAAkG;qBACnG;oBACD,sBAAO,eAA4B,EAAA;;;;CACpC;AAdD,0CAcC;AAED,SAAsB,kBAAkB,CAAC,KAAgB,EAAE,IAAc;;;;;;oBACvE,IAAI,CAAC,IAAI;wBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;oBAC/C,qBAAM,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,EAAA;;oBAAxC,OAAO,GAAG,SAA8B;oBACxC,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;yBACpF,eAAe,EAAf,wBAAe;;;;oBAEf,qBAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAA4B,CAAC,EAAA;;oBAAtD,SAAsD,CAAA;;;;;;oBAKnD,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC,CAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,eAA4B,EAAE,KAAK,EAAE,IAAI,EAAE,CAAE,CAAC,CAAC,CAAC,EAAE,CAAA;oBAErF,qBAAM,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,EAAA;;oBAApD,eAAe,GAAG,SAAkC;oBAC1D,IAAI,eAAe,EAAE,EAAE,qDAAqD;wBACpE,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,SAAS,EAAE,eAA4B,CAAC;6BAC/G,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;wBACvE,IAAI,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAc,EAAE,KAAK,EAAE,IAAI,EAAE,CAAE,CAAC,CAAC,CAAC,EAAE,CAAA;wBAC1I,sBAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAA;qBACxB;oBACD,sBAAO,GAAG,EAAA;;;;CACX;AArBD,gDAqBC;AAED,SAAsB,wBAAwB,CAAE,KAAe,EAAE,IAAc;;;;;;wBACrD,qBAAM,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,EAAA;;oBAApD,eAAe,GAAG,SAAkC;oBAC1D,IAAI,eAAe,EAAE;wBACb,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,eAA4B,CAAC,CAAA;wBAC9F,2BAA2B,GAAG,WAAW,CAAC,GAAG,CAAC,UAAM,SAAS;;wCAAI,qBAAM,kBAAkB,CAAC,KAAK,EAAE,SAAsB,CAAC,EAAA;wCAAvD,sBAAA,SAAuD,EAAA;;iCAAA,CAAC,CAAA;wBACzH,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;wBACxD,uCAAuC;wBACvC,8BAA8B;wBAC9B,sBAAO,OAAO;4BACd,8EAA8E;4BAC5E;;;;;4BAKA;4BACF,+CAA+C;0BARjC;wBACd,8EAA8E;wBAC5E;;;;;wBAKA;wBACF,+CAA+C;qBAChD;oBACD,sBAAO,EAAE,EAAA;;;;CACV;AAnBD,4DAmBC;AAED,SAAsB,kBAAkB,CAAE,KAAe,EAAE,IAAc;;;;;wBAC/D,qBAAM,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAA;;oBAAtC,KAAA,CAAA,KAAA,CAAC,SAAqC,CAAC,CAAA,CAAC,MAAM,CAAA;oBAAE,qBAAM,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAA;wBAAlG,sBAAO,cAA+C,CAAC,SAA2C,CAAC,CAAC,IAAI,EAAE,EAAC,EAAA;;;;CAC5G;AAFD,gDAEC;AAED;;;;EAIE"}
|
|
1
|
+
{"version":3,"file":"discoveryLogic.js","sourceRoot":"","sources":["../../src/discovery/discoveryLogic.ts"],"names":[],"mappings":"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"}
|