solid-logic 1.3.17-90501526 → 1.3.17-9d25ceb7
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/discovery/discoveryLogic.d.ts +10 -13
- package/lib/discovery/discoveryLogic.d.ts.map +1 -1
- package/lib/discovery/discoveryLogic.js +34 -21
- package/lib/discovery/discoveryLogic.js.map +1 -1
- package/package.json +1 -1
- package/src/discovery/discoveryLogic.ts +60 -83
- package/test/discoveryLogic.test.ts +511 -539
- package/test/helpers/setup.ts +0 -3
package/jest.config.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as $rdf from 'rdflib';
|
|
2
|
+
import { LiveStore, NamedNode } from 'rdflib';
|
|
2
3
|
declare type TypeIndexScope = {
|
|
3
4
|
label: string;
|
|
4
5
|
index: NamedNode;
|
|
@@ -8,33 +9,29 @@ declare type ScopedApp = {
|
|
|
8
9
|
instance: NamedNode;
|
|
9
10
|
scope: TypeIndexScope;
|
|
10
11
|
};
|
|
11
|
-
/**
|
|
12
|
-
*
|
|
12
|
+
/**
|
|
13
|
+
* Create a resource if it really does not exist
|
|
14
|
+
* Be absolutely sure something does not exist before creating a new empty file
|
|
13
15
|
* as otherwise existing could be deleted.
|
|
14
16
|
* @param doc {NamedNode} - The resource
|
|
15
17
|
*/
|
|
16
18
|
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;
|
|
19
|
+
export declare function suggestPreferencesFile(me: NamedNode): $rdf.NamedNode;
|
|
20
|
+
export declare function suggestPublicTypeIndex(me: NamedNode): $rdf.NamedNode;
|
|
21
|
+
export declare function suggestPrivateTypeIndex(preferencesFile: NamedNode): $rdf.NamedNode;
|
|
20
22
|
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
|
|
23
|
+
export declare function loadProfile(store: LiveStore, user: NamedNode): Promise<$rdf.NamedNode>;
|
|
22
24
|
export declare function loadPreferences(store: LiveStore, user: NamedNode): Promise<NamedNode | undefined>;
|
|
23
25
|
export declare function loadTypeIndexesFor(store: LiveStore, user: NamedNode): Promise<Array<TypeIndexScope>>;
|
|
24
26
|
export declare function loadCommunityTypeIndexes(store: LiveStore, user: NamedNode): Promise<TypeIndexScope[][]>;
|
|
25
27
|
export declare function loadAllTypeIndexes(store: LiveStore, user: NamedNode): Promise<TypeIndexScope[]>;
|
|
26
28
|
export declare function uniqueNodes(arr: NamedNode[]): NamedNode[];
|
|
27
29
|
export declare function getScopedAppsfromIndex(store: any, scope: any, theClass: NamedNode): Promise<{
|
|
28
|
-
instance: NamedNode;
|
|
30
|
+
instance: $rdf.NamedNode;
|
|
29
31
|
scope: any;
|
|
30
32
|
}[]>;
|
|
31
33
|
export declare function getScopedAppInstances(store: LiveStore, klass: NamedNode, user: NamedNode): Promise<ScopedApp[]>;
|
|
32
34
|
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
35
|
export declare function registerInstanceInTypeIndex(store: LiveStore, instance: NamedNode, index: NamedNode, theClass: NamedNode): Promise<NamedNode | null>;
|
|
39
36
|
export {};
|
|
40
37
|
//# 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,
|
|
1
|
+
{"version":3,"file":"discoveryLogic.d.ts","sourceRoot":"","sources":["../../src/discovery/discoveryLogic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAW,MAAM,QAAQ,CAAA;AAStD,aAAK,cAAc,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAA;AAC3E,aAAK,SAAS,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAA;AAE/D;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,gBAyB9E;AAED,wBAAgB,sBAAsB,CAAE,EAAE,EAAC,SAAS,kBAMnD;AAED,wBAAgB,sBAAsB,CAAE,EAAE,EAAC,SAAS,kBAEnD;AAGD,wBAAgB,uBAAuB,CAAE,eAAe,EAAC,SAAS,kBAEjE;AAMD,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EACjG,MAAM,EAAE,SAAS,EAAE,GAAG,EAAC,SAAS,GAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CA4B5D;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,2BAWlE;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAE,SAAS,GAAG,SAAS,CAAE,CAsBzG;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CA6CzG;AAED,wBAAsB,wBAAwB,CAAE,KAAK,EAAC,SAAS,EAAE,IAAI,EAAC,SAAS,GAAG,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAc5G;AAED,wBAAsB,kBAAkB,CAAE,KAAK,EAAC,SAAS,EAAE,IAAI,EAAC,SAAS,6BAExE;AAGD,wBAAgB,WAAW,CAAE,GAAG,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAM1D;AAED,wBAAsB,sBAAsB,CAAE,KAAK,KAAA,EAAE,KAAK,KAAA,EAAE,QAAQ,EAAE,SAAS;;;KAwB9E;AAED,wBAAsB,qBAAqB,CAAE,KAAK,EAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CASpH;AAKD,wBAAsB,eAAe,CAAE,KAAK,EAAC,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAK9F;AAOD,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,CAiB3B"}
|
|
@@ -1,4 +1,27 @@
|
|
|
1
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
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -35,30 +58,22 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
58
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
59
|
}
|
|
37
60
|
};
|
|
61
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
62
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
63
|
+
};
|
|
38
64
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
65
|
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 $rdf = __importStar(require("rdflib"));
|
|
40
67
|
var rdflib_1 = require("rdflib");
|
|
41
|
-
|
|
42
|
-
// import { getContainerMembers } from '../util/UtilityLogic'
|
|
68
|
+
var solid_namespace_1 = __importDefault(require("solid-namespace"));
|
|
43
69
|
var solidLogicSingleton_1 = require("../logic/solidLogicSingleton");
|
|
44
70
|
var uri_1 = require("../util/uri");
|
|
45
71
|
var authn = solidLogicSingleton_1.solidLogicSingleton.authn;
|
|
46
72
|
var currentUser = authn.currentUser;
|
|
47
|
-
var ns =
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
rdf: (0, rdflib_1.Namespace)('http://www.w3.org/1999/02/22-rdf-syntax-ns#'),
|
|
52
|
-
schema: (0, rdflib_1.Namespace)('http://schema.org/'),
|
|
53
|
-
solid: (0, rdflib_1.Namespace)('http://www.w3.org/ns/solid/terms#'),
|
|
54
|
-
space: (0, rdflib_1.Namespace)('http://www.w3.org/ns/pim/space#'),
|
|
55
|
-
stat: (0, rdflib_1.Namespace)('http://www.w3.org/ns/posix/stat#'),
|
|
56
|
-
vcard: (0, rdflib_1.Namespace)('http://www.w3.org/2006/vcard/ns#'),
|
|
57
|
-
wf: (0, rdflib_1.Namespace)('http://www.w3.org/2005/01/wf/flow#'),
|
|
58
|
-
xsd: (0, rdflib_1.Namespace)('http://www.w3.org/2001/XMLSchema#')
|
|
59
|
-
};
|
|
60
|
-
/** Create a resource if it really does not exist
|
|
61
|
-
* Be absolutely sure something does not exist before creating a new empty file
|
|
73
|
+
var ns = (0, solid_namespace_1.default)($rdf);
|
|
74
|
+
/**
|
|
75
|
+
* Create a resource if it really does not exist
|
|
76
|
+
* Be absolutely sure something does not exist before creating a new empty file
|
|
62
77
|
* as otherwise existing could be deleted.
|
|
63
78
|
* @param doc {NamedNode} - The resource
|
|
64
79
|
*/
|
|
@@ -123,7 +138,7 @@ function suggestPrivateTypeIndex(preferencesFile) {
|
|
|
123
138
|
exports.suggestPrivateTypeIndex = suggestPrivateTypeIndex;
|
|
124
139
|
/* Follow link from this doc to another thing, or else make a new link
|
|
125
140
|
**
|
|
126
|
-
**
|
|
141
|
+
** return: null no ld one and failed to make a new one
|
|
127
142
|
*/
|
|
128
143
|
function followOrCreateLink(store, subject, predicate, object, doc) {
|
|
129
144
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -213,12 +228,10 @@ function loadPreferences(store, user) {
|
|
|
213
228
|
_a.sent();
|
|
214
229
|
possiblePreferencesFile = suggestPreferencesFile(user);
|
|
215
230
|
return [4 /*yield*/, followOrCreateLink(store, user, ns.space('preferencesFile'), possiblePreferencesFile, user.doc())
|
|
216
|
-
// const preferencesFile = store.any(user, ns.space('preferencesFile'), undefined, profile)
|
|
217
231
|
// console.log('loadPreferences @@ pref file', preferencesFile)
|
|
218
232
|
];
|
|
219
233
|
case 2:
|
|
220
234
|
preferencesFile = _a.sent();
|
|
221
|
-
// const preferencesFile = store.any(user, ns.space('preferencesFile'), undefined, profile)
|
|
222
235
|
// console.log('loadPreferences @@ pref file', preferencesFile)
|
|
223
236
|
if (!preferencesFile) {
|
|
224
237
|
message = "User ".concat(user, " has no pointer in profile to preferences file.");
|
|
@@ -453,7 +466,7 @@ function getAppInstances(store, klass) {
|
|
|
453
466
|
});
|
|
454
467
|
}
|
|
455
468
|
exports.getAppInstances = getAppInstances;
|
|
456
|
-
|
|
469
|
+
/*
|
|
457
470
|
* Register a new app in a type index
|
|
458
471
|
* used in chat in bookmark.js (solid-ui)
|
|
459
472
|
* Returns the registration object if successful else null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discoveryLogic.js","sourceRoot":"","sources":["../../src/discovery/discoveryLogic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"discoveryLogic.js","sourceRoot":"","sources":["../../src/discovery/discoveryLogic.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,60 +1,47 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import { solidLogicSingleton } from
|
|
5
|
-
import { newThing } from
|
|
1
|
+
import * as $rdf from 'rdflib'
|
|
2
|
+
import { LiveStore, NamedNode, st, sym } from 'rdflib'
|
|
3
|
+
import solidNamespace from 'solid-namespace'
|
|
4
|
+
import { solidLogicSingleton } from '../logic/solidLogicSingleton'
|
|
5
|
+
import { newThing } from '../util/uri'
|
|
6
6
|
|
|
7
|
-
const {
|
|
7
|
+
const { authn } = solidLogicSingleton
|
|
8
8
|
const { currentUser } = authn
|
|
9
|
+
const ns = solidNamespace($rdf)
|
|
9
10
|
|
|
10
|
-
type TypeIndexScope = { label: string, index: NamedNode, agent: NamedNode }
|
|
11
|
+
type TypeIndexScope = { label: string, index: NamedNode, agent: NamedNode }
|
|
11
12
|
type ScopedApp = { instance: NamedNode, scope: TypeIndexScope }
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
meeting: Namespace('http://www.w3.org/ns/pim/meeting#'),
|
|
17
|
-
rdf: Namespace('http://www.w3.org/1999/02/22-rdf-syntax-ns#'),
|
|
18
|
-
schema: Namespace('http://schema.org/'),
|
|
19
|
-
solid: Namespace('http://www.w3.org/ns/solid/terms#'),
|
|
20
|
-
space: Namespace('http://www.w3.org/ns/pim/space#'),
|
|
21
|
-
stat: Namespace('http://www.w3.org/ns/posix/stat#'),
|
|
22
|
-
vcard: Namespace('http://www.w3.org/2006/vcard/ns#'),
|
|
23
|
-
wf: Namespace('http://www.w3.org/2005/01/wf/flow#'),
|
|
24
|
-
xsd: Namespace('http://www.w3.org/2001/XMLSchema#')
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/** Create a resource if it really does not exist
|
|
29
|
-
* Be absolutely sure something does not exist before creating a new empty file
|
|
14
|
+
/**
|
|
15
|
+
* Create a resource if it really does not exist
|
|
16
|
+
* Be absolutely sure something does not exist before creating a new empty file
|
|
30
17
|
* as otherwise existing could be deleted.
|
|
31
18
|
* @param doc {NamedNode} - The resource
|
|
32
19
|
*/
|
|
33
20
|
export async function loadOrCreateIfNotExists (store: LiveStore, doc: NamedNode) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
// console.log(msg)
|
|
46
|
-
throw new Error(msg)
|
|
47
|
-
}
|
|
48
|
-
delete store.fetcher.requested[doc.uri] // delete cached 404 error
|
|
49
|
-
// console.log('createIfNotExists doc created ok ' + doc)
|
|
50
|
-
} else {
|
|
51
|
-
const msg = 'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err
|
|
21
|
+
let response
|
|
22
|
+
// console.log('@@ loadOrCreateIfNotExists doc ', doc)
|
|
23
|
+
try {
|
|
24
|
+
response = await store.fetcher.load(doc)
|
|
25
|
+
} catch (err) {
|
|
26
|
+
if (err.response.status === 404) {
|
|
27
|
+
// console.log('createIfNotExists doc does NOT exist, will create: ' + doc)
|
|
28
|
+
try {
|
|
29
|
+
store.fetcher.webOperation('PUT', doc, {data: '', contentType: 'text/turtle'})
|
|
30
|
+
} catch (err) {
|
|
31
|
+
const msg = 'createIfNotExists: PUT FAILED: ' + doc + ': ' + err
|
|
52
32
|
// console.log(msg)
|
|
53
|
-
throw new Error(msg)
|
|
33
|
+
throw new Error(msg)
|
|
54
34
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
35
|
+
delete store.fetcher.requested[doc.uri] // delete cached 404 error
|
|
36
|
+
// console.log('createIfNotExists doc created ok ' + doc)
|
|
37
|
+
} else {
|
|
38
|
+
const msg = 'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err
|
|
39
|
+
// console.log(msg)
|
|
40
|
+
throw new Error(msg) // @@ add nested errors
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// console.log('createIfNotExists doc exists, all good ' + doc)
|
|
44
|
+
return response
|
|
58
45
|
}
|
|
59
46
|
|
|
60
47
|
export function suggestPreferencesFile (me:NamedNode) {
|
|
@@ -73,12 +60,13 @@ export function suggestPublicTypeIndex (me:NamedNode) {
|
|
|
73
60
|
export function suggestPrivateTypeIndex (preferencesFile:NamedNode) {
|
|
74
61
|
return sym(preferencesFile.doc().dir()?.uri + 'privateTypeIndex.ttl')
|
|
75
62
|
}
|
|
63
|
+
|
|
76
64
|
/* Follow link from this doc to another thing, or else make a new link
|
|
77
65
|
**
|
|
78
|
-
**
|
|
66
|
+
** return: null no ld one and failed to make a new one
|
|
79
67
|
*/
|
|
80
68
|
export async function followOrCreateLink(store: LiveStore, subject: NamedNode, predicate: NamedNode,
|
|
81
|
-
|
|
69
|
+
object: NamedNode, doc:NamedNode):Promise<NamedNode | null> {
|
|
82
70
|
await store.fetcher.load(doc)
|
|
83
71
|
const result = store.any(subject, predicate, null, doc)
|
|
84
72
|
// console.log('@@ followOrCreateLink result ', result)
|
|
@@ -128,7 +116,6 @@ export async function loadPreferences(store: LiveStore, user: NamedNode): Promis
|
|
|
128
116
|
const possiblePreferencesFile = suggestPreferencesFile(user)
|
|
129
117
|
|
|
130
118
|
const preferencesFile = await followOrCreateLink(store, user, ns.space('preferencesFile') as NamedNode, possiblePreferencesFile, user.doc())
|
|
131
|
-
// const preferencesFile = store.any(user, ns.space('preferencesFile'), undefined, profile)
|
|
132
119
|
|
|
133
120
|
// console.log('loadPreferences @@ pref file', preferencesFile)
|
|
134
121
|
if (!preferencesFile) {
|
|
@@ -139,7 +126,7 @@ export async function loadPreferences(store: LiveStore, user: NamedNode): Promis
|
|
|
139
126
|
}
|
|
140
127
|
try {
|
|
141
128
|
await store.fetcher.load(preferencesFile as NamedNode)
|
|
142
|
-
} catch (err) { //
|
|
129
|
+
} catch (err) { // Maybe a permission propblem or origin problem
|
|
143
130
|
return undefined
|
|
144
131
|
// throw new Error(`Unable to load preferences file ${preferencesFile} of user <${user}>: ${err}`)
|
|
145
132
|
}
|
|
@@ -175,7 +162,7 @@ export async function loadTypeIndexesFor(store: LiveStore, user:NamedNode): Prom
|
|
|
175
162
|
|
|
176
163
|
const privateTypeIndex = store.any(user, ns.solid('privateTypeIndex'), undefined, profile) ||
|
|
177
164
|
|
|
178
|
-
|
|
165
|
+
await followOrCreateLink(store, user, ns.solid('privateTypeIndex') as NamedNode, suggestedPrivateTypeIndex, preferencesFile);
|
|
179
166
|
|
|
180
167
|
privateScopes = privateTypeIndex ? [ { label: 'private', index: privateTypeIndex as NamedNode, agent: user } ] : []
|
|
181
168
|
} else {
|
|
@@ -214,7 +201,6 @@ export async function loadAllTypeIndexes (store:LiveStore, user:NamedNode) {
|
|
|
214
201
|
}
|
|
215
202
|
|
|
216
203
|
// Utility: remove duplicates from Array of NamedNodes
|
|
217
|
-
|
|
218
204
|
export function uniqueNodes (arr: NamedNode[]): NamedNode[] {
|
|
219
205
|
const uris = arr.map(x => x.uri)
|
|
220
206
|
const set = new Set(uris)
|
|
@@ -233,21 +219,11 @@ export async function getScopedAppsfromIndex (store, scope, theClass: NamedNode)
|
|
|
233
219
|
// console.log(' directInstances', directInstances )
|
|
234
220
|
let instances = uniqueNodes(directInstances)
|
|
235
221
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
const cont = store.any(reg as NamedNode, ns.solid('instanceContainer'), null, index)
|
|
240
|
-
if (cont) {
|
|
241
|
-
// console.log(' @@ getScopedAppsfromIndex got one: ', cont)
|
|
242
|
-
instanceContainers.push(cont)
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
*/
|
|
246
|
-
const instanceContainers = registrations.map(
|
|
247
|
-
reg => store.each(reg as NamedNode, ns.solid('instanceContainer'), null, index)).flat()
|
|
222
|
+
const instanceContainers = registrations.map(
|
|
223
|
+
reg => store.each(reg as NamedNode, ns.solid('instanceContainer'), null, index)
|
|
224
|
+
).flat()
|
|
248
225
|
|
|
249
226
|
// instanceContainers may be deprocatable if no one has used them
|
|
250
|
-
|
|
251
227
|
const containers = uniqueNodes(instanceContainers)
|
|
252
228
|
for (let i = 0; i < containers.length; i++) {
|
|
253
229
|
const cont = containers[i]
|
|
@@ -259,7 +235,6 @@ export async function getScopedAppsfromIndex (store, scope, theClass: NamedNode)
|
|
|
259
235
|
return instances.map(instance => { return {instance, scope}})
|
|
260
236
|
}
|
|
261
237
|
|
|
262
|
-
|
|
263
238
|
export async function getScopedAppInstances (store:LiveStore, klass: NamedNode, user: NamedNode):Promise<ScopedApp[]> {
|
|
264
239
|
// console.log('getScopedAppInstances @@ ' + user)
|
|
265
240
|
const scopes = await loadAllTypeIndexes(store, user)
|
|
@@ -270,6 +245,7 @@ export async function getScopedAppInstances (store:LiveStore, klass: NamedNode,
|
|
|
270
245
|
}
|
|
271
246
|
return scopedApps
|
|
272
247
|
}
|
|
248
|
+
|
|
273
249
|
// This is the function signature which used to be in solid-ui/logic
|
|
274
250
|
// Recommended to use getScopedAppInstances instead as it provides more information.
|
|
275
251
|
//
|
|
@@ -279,7 +255,8 @@ export async function getAppInstances (store:LiveStore, klass: NamedNode): Promi
|
|
|
279
255
|
const scopedAppInstances = await getScopedAppInstances(store, klass, user)
|
|
280
256
|
return scopedAppInstances.map(scoped => scoped.instance)
|
|
281
257
|
}
|
|
282
|
-
|
|
258
|
+
|
|
259
|
+
/*
|
|
283
260
|
* Register a new app in a type index
|
|
284
261
|
* used in chat in bookmark.js (solid-ui)
|
|
285
262
|
* Returns the registration object if successful else null
|
|
@@ -291,21 +268,21 @@ export async function registerInstanceInTypeIndex (
|
|
|
291
268
|
theClass: NamedNode,
|
|
292
269
|
// agent: NamedNode
|
|
293
270
|
): Promise<NamedNode | null> {
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
271
|
+
const registration = newThing(index)
|
|
272
|
+
const ins = [
|
|
273
|
+
// See https://github.com/solid/solid/blob/main/proposals/data-discovery.md
|
|
274
|
+
st(registration, ns.rdf('type'), ns.solid('TypeRegistration'), index),
|
|
275
|
+
st(registration, ns.solid('forClass'), theClass, index),
|
|
276
|
+
st(registration, ns.solid('instance'), instance, index)
|
|
277
|
+
]
|
|
278
|
+
try {
|
|
279
|
+
console.log('patching index', ins)
|
|
280
|
+
await store.updater.update([], ins)
|
|
281
|
+
} catch (err) {
|
|
282
|
+
const msg = `Unable to register ${instance} in index ${index}: ${err}`
|
|
283
|
+
console.warn(msg)
|
|
284
|
+
return null
|
|
285
|
+
}
|
|
286
|
+
return registration
|
|
310
287
|
}
|
|
311
288
|
// ENDS
|