solid-logic 1.3.12 → 1.3.13

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.
@@ -1,5 +1,5 @@
1
- import { NamedNode, Node, st, term } from "rdflib";
2
- import { LiveStore, SolidNamespace } from "../index";
1
+ import { LiveStore, NamedNode, Node, st, term } from "rdflib";
2
+ import { SolidNamespace } from "../index";
3
3
  import { ProfileLogic } from "../profile/ProfileLogic";
4
4
  import { newThing } from "../uri";
5
5
  import { determineChatContainer } from "./determineChatContainer";
@@ -38,7 +38,7 @@ export class ChatLogic {
38
38
  // Some servers don't present a Link http response header
39
39
  // if the container doesn't exist yet, so refetch the container
40
40
  // now that it has been created:
41
- await this.store.fetcher.load(chatContainer);
41
+ await this.store.fetcher?.load(chatContainer);
42
42
 
43
43
  // FIXME: check the Why value on this quad:
44
44
  const chatAclDoc = this.store.any(
@@ -66,7 +66,7 @@ export class ChatLogic {
66
66
  acl:mode
67
67
  acl:Read, acl:Append.
68
68
  `;
69
- await this.store.fetcher.webOperation("PUT", chatAclDoc.value, {
69
+ await this.store.fetcher?.webOperation("PUT", chatAclDoc.value, {
70
70
  data: aclBody,
71
71
  contentType: "text/turtle",
72
72
  });
@@ -81,7 +81,7 @@ export class ChatLogic {
81
81
  if (!privateTypeIndex) {
82
82
  throw new Error("Private type index not found!");
83
83
  }
84
- await this.store.fetcher.load(privateTypeIndex);
84
+ await this.store.fetcher?.load(privateTypeIndex);
85
85
  const reg = newThing(privateTypeIndex);
86
86
  const ins = [
87
87
  st(
@@ -99,7 +99,7 @@ export class ChatLogic {
99
99
  st(reg, this.ns.solid("instance"), chatThing, privateTypeIndex.doc()),
100
100
  ];
101
101
  await new Promise((resolve, reject) => {
102
- this.store.updater.update([], ins, function (_uri, ok, errm) {
102
+ this.store.updater?.update([], ins, function (_uri, ok, errm) {
103
103
  if (!ok) {
104
104
  reject(new Error(errm));
105
105
  } else {
@@ -115,7 +115,7 @@ export class ChatLogic {
115
115
  const chatContainer = determineChatContainer(invitee, podRoot);
116
116
  let exists = true;
117
117
  try {
118
- await this.store.fetcher.load(
118
+ await this.store.fetcher?.load(
119
119
  new NamedNode(chatContainer.value + "index.ttl#this")
120
120
  );
121
121
  } catch (e) {
@@ -165,7 +165,7 @@ export class ChatLogic {
165
165
  }
166
166
 
167
167
  return new Promise(function (resolve, reject) {
168
- updater.put(
168
+ updater?.put(
169
169
  newChatDoc,
170
170
  kb.statementsMatching(undefined, undefined, undefined, newChatDoc),
171
171
  "text/turtle",
@@ -213,7 +213,7 @@ export class ChatLogic {
213
213
  }
214
214
 
215
215
  private async sendInvite(invitee: NamedNode, chatThing: NamedNode) {
216
- await this.store.fetcher.load(invitee.doc());
216
+ await this.store.fetcher?.load(invitee.doc());
217
217
  const inviteeInbox = this.store.any(
218
218
  invitee,
219
219
  this.ns.ldp("inbox"),
@@ -228,7 +228,7 @@ export class ChatLogic {
228
228
  ${this.ns.rdf("seeAlso")} <${chatThing.value}> .
229
229
  `;
230
230
 
231
- const inviteResponse = await this.store.fetcher.webOperation(
231
+ const inviteResponse = await this.store.fetcher?.webOperation(
232
232
  "POST",
233
233
  inviteeInbox.value,
234
234
  {
@@ -236,9 +236,9 @@ ${this.ns.rdf("seeAlso")} <${chatThing.value}> .
236
236
  contentType: "text/turtle",
237
237
  }
238
238
  );
239
- const locationStr = inviteResponse.headers.get("location");
239
+ const locationStr = inviteResponse?.headers.get("location");
240
240
  if (!locationStr) {
241
- throw new Error(`Invite sending returned a ${inviteResponse.status}`);
241
+ throw new Error(`Invite sending returned a ${inviteResponse?.status}`);
242
242
  }
243
243
  }
244
244
  }
@@ -1,6 +1,6 @@
1
1
  // import { v4 as uuid } from "uuid";
2
- import { NamedNode, Node, st, term } from "rdflib";
3
- import { LiveStore, SolidNamespace } from "../index";
2
+ import { LiveStore, NamedNode, Node, st, term } from "rdflib";
3
+ import { SolidNamespace } from "../index";
4
4
  import { ProfileLogic } from "../profile/ProfileLogic";
5
5
  import { UtilityLogic } from "../util/UtilityLogic";
6
6
  // import { newThing } from "../uri";
@@ -70,7 +70,7 @@ export class InboxLogic {
70
70
  };
71
71
  const uploaded = await this.util.fetcher.fetch(archiveUrl, options);
72
72
  if (uploaded.status.toString()[0] === '2') {
73
- await this.store.fetcher._fetch(url, {
73
+ await this.store.fetcher?._fetch(url, {
74
74
  method: 'DELETE'
75
75
  });
76
76
  }
package/src/index.ts CHANGED
@@ -10,18 +10,19 @@ import { ChatLogic } from "./chat/ChatLogic";
10
10
  import * as debug from "./debug";
11
11
  import { ProfileLogic } from "./profile/ProfileLogic";
12
12
  import { UtilityLogic } from "./util/UtilityLogic";
13
+ import { ConnectedStore, LiveStore } from 'rdflib'
13
14
 
14
15
  export { ACL_LINK } from './util/UtilityLogic';
15
16
 
16
17
  const ns: SolidNamespace = solidNamespace(rdf);
17
18
 
18
- interface ConnectedStore extends Store {
19
+ /* interface ConnectedStore extends Store {
19
20
  fetcher: Fetcher;
20
21
  }
21
22
 
22
23
  export interface LiveStore extends ConnectedStore {
23
24
  updater: UpdateManager;
24
- }
25
+ } */
25
26
 
26
27
  export interface SolidNamespace {
27
28
  [key: string]: (term: string) => NamedNode;
@@ -1,6 +1,6 @@
1
- import { NamedNode } from "rdflib";
1
+ import { LiveStore, NamedNode } from "rdflib";
2
2
  import { AuthnLogic } from "../authn";
3
- import { LiveStore, SolidNamespace } from "../index";
3
+ import { SolidNamespace } from "../index";
4
4
 
5
5
  export class ProfileLogic {
6
6
  store: LiveStore;
@@ -18,7 +18,7 @@ export class ProfileLogic {
18
18
  if (me === null) {
19
19
  throw new Error("Current user not found! Not logged in?");
20
20
  }
21
- await this.store.fetcher.load(me.doc());
21
+ await this.store.fetcher?.load(me.doc());
22
22
  return me;
23
23
  }
24
24
 
@@ -31,7 +31,7 @@ export class ProfileLogic {
31
31
  }
32
32
 
33
33
  async getMainInbox(user: NamedNode): Promise<NamedNode> {
34
- await this.store.fetcher.load(user);
34
+ await this.store.fetcher?.load(user);
35
35
  const mainInbox = this.store.any(user, this.ns.ldp("inbox"), undefined, user.doc());
36
36
  if (!mainInbox) {
37
37
  throw new Error("User main inbox not found!");
@@ -1,5 +1,5 @@
1
- import { NamedNode, Node, st, term, sym, Statement } from "rdflib";
2
- import { LiveStore, SolidNamespace } from "../index";
1
+ import { LiveStore, NamedNode, Node, st, term, sym, Statement } from "rdflib";
2
+ import { SolidNamespace } from "../index";
3
3
  import { ProfileLogic } from "../profile/ProfileLogic";
4
4
  import { newThing } from "../uri";
5
5
 
@@ -33,7 +33,7 @@ export class UtilityLogic {
33
33
 
34
34
  async findAclDocUrl(url: string) {
35
35
  const doc = this.store.sym(url);
36
- await this.store.fetcher.load(doc);
36
+ await this.store.fetcher?.load(doc);
37
37
  const docNode = this.store.any(doc, ACL_LINK);
38
38
  if (!docNode) {
39
39
  throw new Error(`No ACL link discovered for ${url}`);
@@ -137,7 +137,7 @@ export class UtilityLogic {
137
137
 
138
138
  async getContainerMembers(containerUrl: string): Promise<string[]> {
139
139
  const containerNode = this.store.sym(containerUrl);
140
- await this.store.fetcher.load(containerNode);
140
+ await this.store.fetcher?.load(containerNode);
141
141
  const nodes = this.getContainerElements(containerNode);
142
142
  return nodes.map(node => node.value);
143
143
  }
@@ -1,75 +0,0 @@
1
- import { Session } from "@inrupt/solid-client-authn-browser";
2
- import * as rdf from "rdflib";
3
- import { Fetcher, NamedNode, Statement, Store, UpdateManager } from "rdflib";
4
- import { AuthnLogic } from "./authn";
5
- import { ChatLogic } from "./chat/ChatLogic";
6
- import { ProfileLogic } from "./profile/ProfileLogic";
7
- import { UtilityLogic } from "./util/UtilityLogic";
8
- export { ACL_LINK } from './util/UtilityLogic';
9
- interface ConnectedStore extends Store {
10
- fetcher: Fetcher;
11
- }
12
- export interface LiveStore extends ConnectedStore {
13
- updater: UpdateManager;
14
- }
15
- export interface SolidNamespace {
16
- [key: string]: (term: string) => NamedNode;
17
- }
18
- export declare class SolidLogic {
19
- cache: {
20
- profileDocument: {
21
- [WebID: string]: NamedNode;
22
- };
23
- preferencesFile: {
24
- [WebID: string]: NamedNode;
25
- };
26
- };
27
- store: LiveStore;
28
- me: string | undefined;
29
- fetcher: {
30
- fetch: (url: string, options?: any) => any;
31
- };
32
- _fetch: Function;
33
- chat: ChatLogic;
34
- profile: ProfileLogic;
35
- authn: AuthnLogic;
36
- util: UtilityLogic;
37
- constructor(fetcher: {
38
- fetch: (url: any, requestInit: any) => any;
39
- }, solidAuthSession: Session);
40
- findAclDocUrl(url: string): Promise<string>;
41
- loadDoc(doc: NamedNode): Promise<void>;
42
- loadProfile(me: NamedNode): Promise<NamedNode>;
43
- loadPreferences(me: NamedNode): Promise<NamedNode>;
44
- getTypeIndex(me: NamedNode | string, preferencesFile: NamedNode | string, isPublic: boolean): NamedNode[];
45
- getRegistrations(instance: any, theClass: any): rdf.Node[];
46
- load(doc: NamedNode | NamedNode[] | string): Promise<Response> | Promise<Response[]>;
47
- loadIndexes(me: NamedNode | string, publicProfile: NamedNode | string | null, preferencesFile: NamedNode | string | null, onWarning?: (_err: Error) => Promise<undefined>): Promise<{
48
- private: any;
49
- public: any;
50
- }>;
51
- createEmptyRdfDoc(doc: NamedNode, comment: string): Promise<void>;
52
- updatePromise(del: Array<Statement>, ins?: Array<Statement>): Promise<void>;
53
- isContainer(url: string): boolean;
54
- getContainerElements(containerNode: NamedNode): NamedNode[];
55
- getContainerMembers(containerUrl: string): Promise<string[]>;
56
- recursiveDelete(url: string): Promise<any>;
57
- clearStore(): void;
58
- fetch(url: string, options?: any): Promise<any>;
59
- }
60
- declare class CustomError extends Error {
61
- constructor(message?: string);
62
- }
63
- export declare class UnauthorizedError extends CustomError {
64
- }
65
- export declare class CrossOriginForbiddenError extends CustomError {
66
- }
67
- export declare class SameOriginForbiddenError extends CustomError {
68
- }
69
- export declare class NotFoundError extends CustomError {
70
- }
71
- export declare class FetchError extends CustomError {
72
- status: number;
73
- constructor(status: number, message?: string);
74
- }
75
- //# sourceMappingURL=index-alain.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-alain.d.ts","sourceRoot":"","sources":["../src/index-alain.ts"],"names":[],"mappings":"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"}
@@ -1,398 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
- if (k2 === undefined) k2 = k;
19
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
- return new (P || (P = Promise))(function (resolve, reject) {
39
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
- step((generator = generator.apply(thisArg, _arguments || [])).next());
43
- });
44
- };
45
- var __generator = (this && this.__generator) || function (thisArg, body) {
46
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
47
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
48
- function verb(n) { return function (v) { return step([n, v]); }; }
49
- function step(op) {
50
- if (f) throw new TypeError("Generator is already executing.");
51
- while (_) try {
52
- 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;
53
- if (y = 0, t) op = [op[0] & 2, t.value];
54
- switch (op[0]) {
55
- case 0: case 1: t = op; break;
56
- case 4: _.label++; return { value: op[1], done: false };
57
- case 5: _.label++; y = op[1]; op = [0]; continue;
58
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
59
- default:
60
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
61
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
62
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
63
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
64
- if (t[2]) _.ops.pop();
65
- _.trys.pop(); continue;
66
- }
67
- op = body.call(thisArg, _);
68
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
69
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
70
- }
71
- };
72
- var __importDefault = (this && this.__importDefault) || function (mod) {
73
- return (mod && mod.__esModule) ? mod : { "default": mod };
74
- };
75
- Object.defineProperty(exports, "__esModule", { value: true });
76
- exports.FetchError = exports.NotFoundError = exports.SameOriginForbiddenError = exports.CrossOriginForbiddenError = exports.UnauthorizedError = exports.SolidLogic = exports.ACL_LINK = void 0;
77
- var rdf = __importStar(require("rdflib"));
78
- var solid_namespace_1 = __importDefault(require("solid-namespace"));
79
- var NoAuthnLogic_1 = require("./authn/NoAuthnLogic");
80
- var SolidAuthnLogic_1 = require("./authn/SolidAuthnLogic");
81
- var ChatLogic_1 = require("./chat/ChatLogic");
82
- var debug = __importStar(require("./debug"));
83
- var ProfileLogic_1 = require("./profile/ProfileLogic");
84
- var UtilityLogic_1 = require("./util/UtilityLogic");
85
- var UtilityLogic_2 = require("./util/UtilityLogic");
86
- Object.defineProperty(exports, "ACL_LINK", { enumerable: true, get: function () { return UtilityLogic_2.ACL_LINK; } });
87
- var ns = (0, solid_namespace_1.default)(rdf);
88
- var SolidLogic = /** @class */ (function () {
89
- function SolidLogic(fetcher, solidAuthSession) {
90
- this.store = rdf.graph(); // Make a Quad store
91
- rdf.fetcher(this.store, fetcher); // Attach a web I/O module, store.fetcher
92
- this.store.updater = new rdf.UpdateManager(this.store); // Add real-time live updates store.updater
93
- this.cache = {
94
- profileDocument: {},
95
- preferencesFile: {},
96
- };
97
- this.fetcher = fetcher;
98
- /*this._fetch = this.fetcher.fetch
99
- || typeof global !== 'undefined' && global.solidFetch
100
- || typeof window !== 'undefined' && window.solidFetch
101
- || crossFetch
102
- if (!this._fetch) {
103
- throw new Error('No _fetch function available for Fetcher')
104
- } */
105
- if (solidAuthSession) {
106
- this.authn = new SolidAuthnLogic_1.SolidAuthnLogic(solidAuthSession);
107
- }
108
- else {
109
- this.authn = new NoAuthnLogic_1.NoAuthnLogic();
110
- }
111
- this.profile = new ProfileLogic_1.ProfileLogic(this.store, ns, this.authn);
112
- this.chat = new ChatLogic_1.ChatLogic(this.store, ns, this.profile);
113
- this.util = new UtilityLogic_1.UtilityLogic(this.store, ns, this.fetcher);
114
- }
115
- SolidLogic.prototype.findAclDocUrl = function (url) {
116
- return this.util.findAclDocUrl(url);
117
- };
118
- SolidLogic.prototype.loadDoc = function (doc) {
119
- return this.util.loadDoc(doc);
120
- };
121
- SolidLogic.prototype.loadProfile = function (me) {
122
- return __awaiter(this, void 0, void 0, function () {
123
- var profileDocument, err_1, message;
124
- return __generator(this, function (_a) {
125
- switch (_a.label) {
126
- case 0:
127
- // console.log('loadProfile', me)
128
- if (this.cache.profileDocument[me.value]) {
129
- return [2 /*return*/, this.cache.profileDocument[me.value]];
130
- }
131
- _a.label = 1;
132
- case 1:
133
- _a.trys.push([1, 3, , 4]);
134
- profileDocument = me.doc();
135
- return [4 /*yield*/, this.loadDoc(profileDocument)];
136
- case 2:
137
- _a.sent();
138
- return [2 /*return*/, profileDocument];
139
- case 3:
140
- err_1 = _a.sent();
141
- message = "Logged in but cannot load profile ".concat(profileDocument, " : ").concat(err_1);
142
- throw new Error(message);
143
- case 4: return [2 /*return*/];
144
- }
145
- });
146
- });
147
- };
148
- SolidLogic.prototype.loadPreferences = function (me) {
149
- return __awaiter(this, void 0, void 0, function () {
150
- // console.log('this.store.any()', this.store.any())
151
- /**
152
- * Are we working cross-origin?
153
- * Returns True if we are in a webapp at an origin, and the file origin is different
154
- */
155
- function differentOrigin() {
156
- if (!preferencesFile) {
157
- return true;
158
- }
159
- return ("".concat(window.location.origin, "/") !== new URL(preferencesFile.value).origin);
160
- }
161
- var preferencesFile, err_2, status_1;
162
- return __generator(this, function (_a) {
163
- switch (_a.label) {
164
- case 0:
165
- // console.log('loadPreferences', me)
166
- if (this.cache.preferencesFile[me.value]) {
167
- return [2 /*return*/, this.cache.preferencesFile[me.value]];
168
- }
169
- preferencesFile = this.store.any(me, ns.space("preferencesFile"));
170
- if (!preferencesFile) {
171
- throw new Error("Can't find a preference file pointer in profile ".concat(me.doc()));
172
- }
173
- if (!this.store.fetcher) {
174
- throw new Error("Cannot load doc, have no fetcher");
175
- }
176
- _a.label = 1;
177
- case 1:
178
- _a.trys.push([1, 3, , 4]);
179
- return [4 /*yield*/, this.store.fetcher.load(preferencesFile, {
180
- withCredentials: true,
181
- })];
182
- case 2:
183
- _a.sent();
184
- return [3 /*break*/, 4];
185
- case 3:
186
- err_2 = _a.sent();
187
- status_1 = err_2.status;
188
- debug.log("HTTP status ".concat(status_1, " for preference file ").concat(preferencesFile));
189
- if (status_1 === 401) {
190
- throw new UnauthorizedError();
191
- }
192
- if (status_1 === 403) {
193
- if (differentOrigin()) {
194
- throw new CrossOriginForbiddenError();
195
- }
196
- throw new SameOriginForbiddenError();
197
- }
198
- if (status_1 === 404) {
199
- throw new NotFoundError(preferencesFile.value);
200
- }
201
- throw new FetchError(err_2.status, err_2.message);
202
- case 4: return [2 /*return*/, preferencesFile];
203
- }
204
- });
205
- });
206
- };
207
- SolidLogic.prototype.getTypeIndex = function (me, preferencesFile, isPublic) {
208
- // console.log('getTypeIndex', this.store.each(me, undefined, undefined, preferencesFile), isPublic, preferencesFile)
209
- return this.store.each(me, isPublic ? ns.solid("publicTypeIndex") : ns.solid("privateTypeIndex"), undefined, preferencesFile);
210
- };
211
- SolidLogic.prototype.getRegistrations = function (instance, theClass) {
212
- var _this = this;
213
- return this.store
214
- .each(undefined, ns.solid("instance"), instance)
215
- .filter(function (r) {
216
- return _this.store.holds(r, ns.solid("forClass"), theClass);
217
- });
218
- };
219
- SolidLogic.prototype.load = function (doc) {
220
- if (!this.store.fetcher) {
221
- throw new Error("Cannot load doc(s), have no fetcher");
222
- }
223
- return this.store.fetcher.load(doc);
224
- };
225
- SolidLogic.prototype.loadIndexes = function (me, publicProfile, preferencesFile, onWarning) {
226
- var _this = this;
227
- if (onWarning === void 0) { onWarning = function (_err) { return __awaiter(_this, void 0, void 0, function () {
228
- return __generator(this, function (_a) {
229
- return [2 /*return*/, undefined];
230
- });
231
- }); }; }
232
- return __awaiter(this, void 0, void 0, function () {
233
- var privateIndexes, publicIndexes, err_3, err_4;
234
- return __generator(this, function (_a) {
235
- switch (_a.label) {
236
- case 0:
237
- privateIndexes = [];
238
- publicIndexes = [];
239
- if (!publicProfile) return [3 /*break*/, 4];
240
- publicIndexes = this.getTypeIndex(me, publicProfile, true);
241
- _a.label = 1;
242
- case 1:
243
- _a.trys.push([1, 3, , 4]);
244
- return [4 /*yield*/, this.load(publicIndexes)];
245
- case 2:
246
- _a.sent();
247
- return [3 /*break*/, 4];
248
- case 3:
249
- err_3 = _a.sent();
250
- onWarning(new Error("loadIndex: loading public type index(es) ".concat(err_3)));
251
- return [3 /*break*/, 4];
252
- case 4:
253
- if (!preferencesFile) return [3 /*break*/, 9];
254
- privateIndexes = this.getTypeIndex(me, preferencesFile, false);
255
- if (!(privateIndexes.length === 0)) return [3 /*break*/, 6];
256
- return [4 /*yield*/, onWarning(new Error("Your preference file ".concat(preferencesFile, " does not point to a private type index.")))];
257
- case 5:
258
- _a.sent();
259
- return [3 /*break*/, 9];
260
- case 6:
261
- _a.trys.push([6, 8, , 9]);
262
- return [4 /*yield*/, this.load(privateIndexes)];
263
- case 7:
264
- _a.sent();
265
- return [3 /*break*/, 9];
266
- case 8:
267
- err_4 = _a.sent();
268
- onWarning(new Error("loadIndex: loading private type index(es) ".concat(err_4)));
269
- return [3 /*break*/, 9];
270
- case 9: return [2 /*return*/, {
271
- private: privateIndexes,
272
- public: publicIndexes,
273
- }];
274
- }
275
- });
276
- });
277
- };
278
- SolidLogic.prototype.createEmptyRdfDoc = function (doc, comment) {
279
- return __awaiter(this, void 0, void 0, function () {
280
- return __generator(this, function (_a) {
281
- switch (_a.label) {
282
- case 0:
283
- if (!this.store.fetcher) {
284
- throw new Error("Cannot create empty rdf doc, have no fetcher");
285
- }
286
- return [4 /*yield*/, this.store.fetcher.webOperation("PUT", doc.uri, {
287
- data: "# ".concat(new Date(), " ").concat(comment, "\n"),
288
- contentType: "text/turtle",
289
- })];
290
- case 1:
291
- _a.sent();
292
- return [2 /*return*/];
293
- }
294
- });
295
- });
296
- };
297
- // @@@@ use the one in rdflib.js when it is available and delete this
298
- SolidLogic.prototype.updatePromise = function (del, ins) {
299
- var _this = this;
300
- if (ins === void 0) { ins = []; }
301
- return new Promise(function (resolve, reject) {
302
- if (!_this.store.updater) {
303
- throw new Error("Cannot updatePromise, have no updater");
304
- }
305
- _this.store.updater.update(del, ins, function (_uri, ok, errorBody) {
306
- if (!ok) {
307
- reject(new Error(errorBody));
308
- }
309
- else {
310
- resolve();
311
- }
312
- }); // callback
313
- }); // promise
314
- };
315
- SolidLogic.prototype.isContainer = function (url) {
316
- return this.util.isContainer(url);
317
- };
318
- SolidLogic.prototype.getContainerElements = function (containerNode) {
319
- return this.util.getContainerElements(containerNode);
320
- };
321
- SolidLogic.prototype.getContainerMembers = function (containerUrl) {
322
- return this.util.getContainerMembers(containerUrl);
323
- };
324
- SolidLogic.prototype.recursiveDelete = function (url) {
325
- return __awaiter(this, void 0, void 0, function () {
326
- return __generator(this, function (_a) {
327
- return [2 /*return*/, this.util.recursiveDelete(url)];
328
- });
329
- });
330
- };
331
- SolidLogic.prototype.clearStore = function () {
332
- return this.util.clearStore();
333
- };
334
- SolidLogic.prototype.fetch = function (url, options) {
335
- return __awaiter(this, void 0, void 0, function () {
336
- return __generator(this, function (_a) {
337
- return [2 /*return*/, this.fetcher.fetch(url, options)];
338
- });
339
- });
340
- };
341
- return SolidLogic;
342
- }());
343
- exports.SolidLogic = SolidLogic;
344
- var CustomError = /** @class */ (function (_super) {
345
- __extends(CustomError, _super);
346
- function CustomError(message) {
347
- var _newTarget = this.constructor;
348
- var _this = _super.call(this, message) || this;
349
- // see: typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html
350
- Object.setPrototypeOf(_this, _newTarget.prototype); // restore prototype chain
351
- _this.name = _newTarget.name; // stack traces display correctly now
352
- return _this;
353
- }
354
- return CustomError;
355
- }(Error));
356
- var UnauthorizedError = /** @class */ (function (_super) {
357
- __extends(UnauthorizedError, _super);
358
- function UnauthorizedError() {
359
- return _super !== null && _super.apply(this, arguments) || this;
360
- }
361
- return UnauthorizedError;
362
- }(CustomError));
363
- exports.UnauthorizedError = UnauthorizedError;
364
- var CrossOriginForbiddenError = /** @class */ (function (_super) {
365
- __extends(CrossOriginForbiddenError, _super);
366
- function CrossOriginForbiddenError() {
367
- return _super !== null && _super.apply(this, arguments) || this;
368
- }
369
- return CrossOriginForbiddenError;
370
- }(CustomError));
371
- exports.CrossOriginForbiddenError = CrossOriginForbiddenError;
372
- var SameOriginForbiddenError = /** @class */ (function (_super) {
373
- __extends(SameOriginForbiddenError, _super);
374
- function SameOriginForbiddenError() {
375
- return _super !== null && _super.apply(this, arguments) || this;
376
- }
377
- return SameOriginForbiddenError;
378
- }(CustomError));
379
- exports.SameOriginForbiddenError = SameOriginForbiddenError;
380
- var NotFoundError = /** @class */ (function (_super) {
381
- __extends(NotFoundError, _super);
382
- function NotFoundError() {
383
- return _super !== null && _super.apply(this, arguments) || this;
384
- }
385
- return NotFoundError;
386
- }(CustomError));
387
- exports.NotFoundError = NotFoundError;
388
- var FetchError = /** @class */ (function (_super) {
389
- __extends(FetchError, _super);
390
- function FetchError(status, message) {
391
- var _this = _super.call(this, message) || this;
392
- _this.status = status;
393
- return _this;
394
- }
395
- return FetchError;
396
- }(CustomError));
397
- exports.FetchError = FetchError;
398
- //# sourceMappingURL=index-alain.js.map