solid-logic 3.0.9-ea192f01 → 3.0.9-ed0c5877

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 (100) hide show
  1. package/eslint.config.js +24 -23
  2. package/jest.config.js +8 -15
  3. package/lib/acl/aclLogic.d.ts +2 -2
  4. package/lib/acl/aclLogic.d.ts.map +1 -1
  5. package/lib/acl/aclLogic.js +168 -0
  6. package/lib/acl/aclLogic.js.map +1 -0
  7. package/lib/authSession/authSession.js +8 -0
  8. package/lib/authSession/authSession.js.map +1 -0
  9. package/lib/authn/SolidAuthnLogic.d.ts +3 -3
  10. package/lib/authn/SolidAuthnLogic.d.ts.map +1 -1
  11. package/lib/authn/SolidAuthnLogic.js +191 -0
  12. package/lib/authn/SolidAuthnLogic.js.map +1 -0
  13. package/lib/authn/authUtil.d.ts +1 -1
  14. package/lib/authn/authUtil.js +105 -0
  15. package/lib/authn/authUtil.js.map +1 -0
  16. package/lib/chat/chatLogic.d.ts +1 -1
  17. package/lib/chat/chatLogic.js +272 -0
  18. package/lib/chat/chatLogic.js.map +1 -0
  19. package/lib/inbox/inboxLogic.d.ts +1 -1
  20. package/lib/inbox/inboxLogic.d.ts.map +1 -1
  21. package/lib/inbox/inboxLogic.js +139 -0
  22. package/lib/inbox/inboxLogic.js.map +1 -0
  23. package/lib/index.d.ts +1 -1
  24. package/lib/index.d.ts.map +1 -1
  25. package/lib/index.js +29 -0
  26. package/lib/index.js.map +1 -0
  27. package/lib/issuer/issuerLogic.js +52 -0
  28. package/lib/issuer/issuerLogic.js.map +1 -0
  29. package/lib/logic/CustomError.d.ts.map +1 -1
  30. package/lib/logic/CustomError.js +89 -0
  31. package/lib/logic/CustomError.js.map +1 -0
  32. package/lib/logic/solidLogic.d.ts +2 -2
  33. package/lib/logic/solidLogic.d.ts.map +1 -1
  34. package/lib/logic/solidLogic.js +102 -0
  35. package/lib/logic/solidLogic.js.map +1 -0
  36. package/lib/logic/solidLogicSingleton.js +94 -0
  37. package/lib/logic/solidLogicSingleton.js.map +1 -0
  38. package/lib/profile/profileLogic.d.ts +1 -1
  39. package/lib/profile/profileLogic.js +259 -0
  40. package/lib/profile/profileLogic.js.map +1 -0
  41. package/lib/typeIndex/typeIndexLogic.js +399 -0
  42. package/lib/typeIndex/typeIndexLogic.js.map +1 -0
  43. package/lib/types.d.ts +2 -2
  44. package/lib/types.js +3 -0
  45. package/lib/types.js.map +1 -0
  46. package/lib/util/containerLogic.d.ts +1 -1
  47. package/lib/util/containerLogic.d.ts.map +1 -1
  48. package/lib/util/containerLogic.js +102 -0
  49. package/lib/util/containerLogic.js.map +1 -0
  50. package/lib/util/debug.d.ts.map +1 -1
  51. package/lib/util/debug.js +40 -0
  52. package/lib/util/debug.js.map +1 -0
  53. package/lib/util/ns.js +44 -0
  54. package/lib/util/ns.js.map +1 -0
  55. package/lib/util/utilityLogic.d.ts +1 -1
  56. package/lib/util/utilityLogic.d.ts.map +1 -1
  57. package/lib/util/utilityLogic.js +284 -0
  58. package/lib/util/utilityLogic.js.map +1 -0
  59. package/lib/util/utils.d.ts +1 -1
  60. package/lib/util/utils.d.ts.map +1 -1
  61. package/lib/util/utils.js +47 -0
  62. package/lib/util/utils.js.map +1 -0
  63. package/package.json +15 -38
  64. package/src/acl/aclLogic.ts +8 -8
  65. package/src/authn/SolidAuthnLogic.ts +6 -6
  66. package/src/authn/authUtil.ts +1 -1
  67. package/src/chat/chatLogic.ts +75 -75
  68. package/src/inbox/inboxLogic.ts +19 -19
  69. package/src/index.ts +1 -1
  70. package/src/logic/CustomError.ts +6 -6
  71. package/src/logic/solidLogic.ts +22 -22
  72. package/src/logic/solidLogicSingleton.ts +3 -3
  73. package/src/profile/profileLogic.ts +22 -22
  74. package/src/typeIndex/typeIndexLogic.ts +7 -7
  75. package/src/types.ts +2 -2
  76. package/src/util/containerLogic.ts +15 -15
  77. package/src/util/debug.ts +8 -4
  78. package/src/util/utilityLogic.ts +18 -18
  79. package/src/util/utils.ts +12 -12
  80. package/test/aclLogic.test.ts +5 -5
  81. package/test/authUtil.test.ts +1 -1
  82. package/test/chatLogic.test.ts +154 -160
  83. package/test/container.test.ts +23 -23
  84. package/test/helpers/dataSetup.ts +1 -2
  85. package/test/helpers/setup.ts +3 -8
  86. package/test/inboxLogic.test.ts +110 -101
  87. package/test/logic.test.ts +2 -2
  88. package/test/profileLogic.test.ts +33 -35
  89. package/test/solidAuthLogic.test.ts +1 -1
  90. package/test/typeIndexLogic.test.ts +71 -71
  91. package/test/utilityLogic.test.ts +45 -46
  92. package/test/utils.test.ts +11 -11
  93. package/tsconfig.json +3 -5
  94. package/babel.config.js +0 -6
  95. package/lib/solid-logic.js +0 -107
  96. package/lib/solid-logic.js.map +0 -1
  97. package/rollup.config.js +0 -29
  98. package/src/versionInfo.ts +0 -32
  99. package/timestamp.sh +0 -13
  100. package/tsconfig.test.json +0 -8
package/eslint.config.js CHANGED
@@ -1,28 +1,29 @@
1
- import tsParser from '@typescript-eslint/parser';
2
- import tseslint from '@typescript-eslint/eslint-plugin';
3
- import importPlugin from 'eslint-plugin-import';
1
+ const {
2
+ defineConfig,
3
+ } = require("eslint/config");
4
4
 
5
- export default [
6
- {
7
- files: ['src/**/*.ts', 'test/**/*.test.ts'],
8
- ignores: ['lib/**', 'node_modules/**'],
5
+ const tsParser = require("@typescript-eslint/parser");
6
+ const typescriptEslint = require("@typescript-eslint/eslint-plugin");
7
+ const js = require("@eslint/js");
8
+
9
+ const {
10
+ FlatCompat,
11
+ } = require("@eslint/eslintrc");
12
+
13
+ const compat = new FlatCompat({
14
+ baseDirectory: __dirname,
15
+ recommendedConfig: js.configs.recommended,
16
+ allConfig: js.configs.all
17
+ });
18
+
19
+ module.exports = defineConfig([{
9
20
  languageOptions: {
10
- parser: tsParser,
11
- parserOptions: {
12
- project: ['./tsconfig.json', './tsconfig.test.json'],
13
- sourceType: 'module',
14
- },
21
+ parser: tsParser,
15
22
  },
23
+
16
24
  plugins: {
17
- '@typescript-eslint': tseslint,
18
- import: importPlugin,
19
- },
20
- rules: {
21
- 'semi': ['error', 'never'],
22
- 'quotes': ['error', 'single'],
23
- 'no-unused-vars': 'off', // handled by TS
24
- '@typescript-eslint/no-unused-vars': ['warn'],
25
- '@typescript-eslint/no-explicit-any': 'warn',
25
+ "@typescript-eslint": typescriptEslint,
26
26
  },
27
- },
28
- ];
27
+
28
+ extends: compat.extends("eslint:recommended", "plugin:@typescript-eslint/recommended"),
29
+ }]);
package/jest.config.js CHANGED
@@ -1,17 +1,10 @@
1
- /** @type {import("jest").Config} */
2
- export default {
3
- // verbose: true, // Uncomment for detailed test output
4
- collectCoverage: true,
5
- coverageDirectory: "coverage",
6
- testEnvironment: "jsdom",
1
+ module.exports = {
2
+ verbose: true,
3
+ testEnvironment: 'jsdom',
7
4
  testEnvironmentOptions: {
8
- customExportConditions: ["node"],
5
+ customExportConditions: ['node']
9
6
  },
10
- testPathIgnorePatterns: ["/node_modules/", "/lib/"],
11
- transform: {
12
- "^.+\\.[tj]sx?$": ["babel-jest", { configFile: "./babel.config.js" }],
13
- },
14
- setupFilesAfterEnv: ["./test/helpers/setup.ts"],
15
- testMatch: ["**/__tests__/**/*.ts?(x)", "**/?(*.)+(spec|test).ts?(x)"],
16
- roots: ["<rootDir>/src", "<rootDir>/test"],
17
- };
7
+ setupFilesAfterEnv: [
8
+ './test/helpers/setup.ts'
9
+ ]
10
+ }
@@ -1,5 +1,5 @@
1
- import { NamedNode } from 'rdflib';
2
- import { AclLogic } from '../types';
1
+ import { NamedNode } from "rdflib";
2
+ import { AclLogic } from "../types";
3
3
  export declare const ACL_LINK: NamedNode;
4
4
  export declare function createAclLogic(store: any): AclLogic;
5
5
  //# sourceMappingURL=aclLogic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"aclLogic.d.ts","sourceRoot":"","sources":["../../src/acl/aclLogic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,SAAS,EAA6B,MAAM,QAAQ,CAAA;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAInC,eAAO,MAAM,QAAQ,WAEpB,CAAA;AAED,wBAAgB,cAAc,CAAC,KAAK,KAAA,GAAG,QAAQ,CAkJ9C"}
1
+ {"version":3,"file":"aclLogic.d.ts","sourceRoot":"","sources":["../../src/acl/aclLogic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,SAAS,EAA6B,MAAM,QAAQ,CAAA;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAIpC,eAAO,MAAM,QAAQ,WAEpB,CAAC;AAEF,wBAAgB,cAAc,CAAC,KAAK,KAAA,GAAG,QAAQ,CAkJ9C"}
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.ACL_LINK = void 0;
40
+ exports.createAclLogic = createAclLogic;
41
+ var rdflib_1 = require("rdflib");
42
+ var ns_1 = require("../util/ns");
43
+ exports.ACL_LINK = (0, rdflib_1.sym)("http://www.iana.org/assignments/link-relations/acl");
44
+ function createAclLogic(store) {
45
+ var ns = ns_1.ns;
46
+ function findAclDocUrl(url) {
47
+ return __awaiter(this, void 0, void 0, function () {
48
+ var docNode;
49
+ return __generator(this, function (_a) {
50
+ switch (_a.label) {
51
+ case 0: return [4 /*yield*/, store.fetcher.load(url)];
52
+ case 1:
53
+ _a.sent();
54
+ docNode = store.any(url, exports.ACL_LINK);
55
+ if (!docNode) {
56
+ throw new Error("No ACL link discovered for ".concat(url));
57
+ }
58
+ return [2 /*return*/, docNode.value];
59
+ }
60
+ });
61
+ });
62
+ }
63
+ /**
64
+ * Simple Access Control
65
+ *
66
+ * This function sets up a simple default ACL for a resource, with
67
+ * RWC for the owner, and a specified access (default none) for the public.
68
+ * In all cases owner has read write control.
69
+ * Parameter lists modes allowed to public
70
+ *
71
+ * @param options
72
+ * @param options.public eg ['Read', 'Write']
73
+ *
74
+ * @returns Resolves with aclDoc uri on successful write
75
+ */
76
+ function setACLUserPublic(docURI, me, options) {
77
+ var aclDoc = store.any(store.sym(docURI), exports.ACL_LINK);
78
+ return Promise.resolve()
79
+ .then(function () {
80
+ if (aclDoc) {
81
+ return aclDoc;
82
+ }
83
+ return fetchACLRel(docURI).catch(function (err) {
84
+ throw new Error("Error fetching rel=ACL header for ".concat(docURI, ": ").concat(err));
85
+ });
86
+ })
87
+ .then(function (aclDoc) {
88
+ var aclText = genACLText(docURI, me, aclDoc.uri, options);
89
+ if (!store.fetcher) {
90
+ throw new Error('Cannot PUT this, store has no fetcher');
91
+ }
92
+ return store.fetcher
93
+ .webOperation('PUT', aclDoc.uri, {
94
+ data: aclText,
95
+ contentType: 'text/turtle'
96
+ })
97
+ .then(function (result) {
98
+ if (!result.ok) {
99
+ throw new Error('Error writing ACL text: ' + result.error);
100
+ }
101
+ return aclDoc;
102
+ });
103
+ });
104
+ }
105
+ /**
106
+ * @param docURI
107
+ * @returns
108
+ */
109
+ function fetchACLRel(docURI) {
110
+ var fetcher = store.fetcher;
111
+ if (!fetcher) {
112
+ throw new Error('Cannot fetch ACL rel, store has no fetcher');
113
+ }
114
+ return fetcher.load(docURI).then(function (result) {
115
+ if (!result.ok) {
116
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
117
+ throw new Error('fetchACLRel: While loading:' + result.error);
118
+ }
119
+ var aclDoc = store.any(store.sym(docURI), exports.ACL_LINK);
120
+ if (!aclDoc) {
121
+ throw new Error('fetchACLRel: No Link rel=ACL header for ' + docURI);
122
+ }
123
+ return aclDoc;
124
+ });
125
+ }
126
+ /**
127
+ * @param docURI
128
+ * @param me
129
+ * @param aclURI
130
+ * @param options
131
+ *
132
+ * @returns Serialized ACL
133
+ */
134
+ function genACLText(docURI, me, aclURI, options) {
135
+ if (options === void 0) { options = {}; }
136
+ var optPublic = options.public || [];
137
+ var g = (0, rdflib_1.graph)();
138
+ var auth = (0, rdflib_1.Namespace)('http://www.w3.org/ns/auth/acl#');
139
+ var a = g.sym("".concat(aclURI, "#a1"));
140
+ var acl = g.sym(aclURI);
141
+ var doc = g.sym(docURI);
142
+ g.add(a, ns.rdf('type'), auth('Authorization'), acl);
143
+ g.add(a, auth('accessTo'), doc, acl);
144
+ if (options.defaultForNew) {
145
+ g.add(a, auth('default'), doc, acl);
146
+ }
147
+ g.add(a, auth('agent'), me, acl);
148
+ g.add(a, auth('mode'), auth('Read'), acl);
149
+ g.add(a, auth('mode'), auth('Write'), acl);
150
+ g.add(a, auth('mode'), auth('Control'), acl);
151
+ if (optPublic.length) {
152
+ a = g.sym("".concat(aclURI, "#a2"));
153
+ g.add(a, ns.rdf('type'), auth('Authorization'), acl);
154
+ g.add(a, auth('accessTo'), doc, acl);
155
+ g.add(a, auth('agentClass'), ns.foaf('Agent'), acl);
156
+ for (var p = 0; p < optPublic.length; p++) {
157
+ g.add(a, auth('mode'), auth(optPublic[p]), acl); // Like 'Read' etc
158
+ }
159
+ }
160
+ return (0, rdflib_1.serialize)(acl, g, aclURI);
161
+ }
162
+ return {
163
+ findAclDocUrl: findAclDocUrl,
164
+ setACLUserPublic: setACLUserPublic,
165
+ genACLText: genACLText
166
+ };
167
+ }
168
+ //# sourceMappingURL=aclLogic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aclLogic.js","sourceRoot":"","sources":["../../src/acl/aclLogic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.authSession = void 0;
4
+ var solid_client_authn_browser_1 = require("@inrupt/solid-client-authn-browser");
5
+ exports.authSession = new solid_client_authn_browser_1.Session({
6
+ clientAuthentication: (0, solid_client_authn_browser_1.getClientAuthenticationWithDependencies)({})
7
+ }, 'mySession');
8
+ //# sourceMappingURL=authSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authSession.js","sourceRoot":"","sources":["../../src/authSession/authSession.ts"],"names":[],"mappings":";;;AAAA,iFAG2C;AAE9B,QAAA,WAAW,GAAG,IAAI,oCAAO,CAClC;IACE,oBAAoB,EAAE,IAAA,oEAAuC,EAAC,EAAE,CAAC;CAClE,EACD,WAAW,CACZ,CAAA"}
@@ -1,6 +1,6 @@
1
- import { NamedNode } from 'rdflib';
2
- import { Session } from '@inrupt/solid-client-authn-browser';
3
- import { AuthenticationContext, AuthnLogic } from '../types';
1
+ import { NamedNode } from "rdflib";
2
+ import { Session } from "@inrupt/solid-client-authn-browser";
3
+ import { AuthenticationContext, AuthnLogic } from "../types";
4
4
  export declare class SolidAuthnLogic implements AuthnLogic {
5
5
  private session;
6
6
  constructor(solidAuthSession: Session);
@@ -1 +1 @@
1
- {"version":3,"file":"SolidAuthnLogic.d.ts","sourceRoot":"","sources":["../../src/authn/SolidAuthnLogic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAO,MAAM,QAAQ,CAAA;AAGlD,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE5D,qBAAa,eAAgB,YAAW,UAAU;IAChD,OAAO,CAAC,OAAO,CAAS;gBAEZ,gBAAgB,EAAE,OAAO;IAKrC,IAAI,WAAW,IAAG,OAAO,CAAwB;IAEjD,WAAW,IAAI,SAAS,GAAG,IAAI;IAW/B;;;;;;OAMG;IACG,SAAS,CAAC,CAAC,EACf,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,KAAK,CAAC,GAC5C,OAAO,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC;IA0DhC;;;;;;OAMG;IACH,QAAQ,CACN,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,EAChC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,SAAS,GAAG,IAAI;IAanB;;OAEG;IACH,gBAAgB,CAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,GAAG,IAAI;CAKpF"}
1
+ {"version":3,"file":"SolidAuthnLogic.d.ts","sourceRoot":"","sources":["../../src/authn/SolidAuthnLogic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAO,MAAM,QAAQ,CAAC;AAGnD,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE7D,qBAAa,eAAgB,YAAW,UAAU;IAChD,OAAO,CAAC,OAAO,CAAU;gBAEb,gBAAgB,EAAE,OAAO;IAKrC,IAAI,WAAW,IAAG,OAAO,CAAwB;IAEjD,WAAW,IAAI,SAAS,GAAG,IAAI;IAW/B;;;;;;OAMG;IACG,SAAS,CAAC,CAAC,EACf,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,KAAK,CAAC,GAC5C,OAAO,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC;IA0DhC;;;;;;OAMG;IACH,QAAQ,CACN,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,EAChC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,SAAS,GAAG,IAAI;IAanB;;OAEG;IACH,gBAAgB,CAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,GAAG,IAAI;CAKpF"}
@@ -0,0 +1,191 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ var __generator = (this && this.__generator) || function (thisArg, body) {
45
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
46
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
47
+ function verb(n) { return function (v) { return step([n, v]); }; }
48
+ function step(op) {
49
+ if (f) throw new TypeError("Generator is already executing.");
50
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
51
+ 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;
52
+ if (y = 0, t) op = [op[0] & 2, t.value];
53
+ switch (op[0]) {
54
+ case 0: case 1: t = op; break;
55
+ case 4: _.label++; return { value: op[1], done: false };
56
+ case 5: _.label++; y = op[1]; op = [0]; continue;
57
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
58
+ default:
59
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
60
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
61
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
62
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
63
+ if (t[2]) _.ops.pop();
64
+ _.trys.pop(); continue;
65
+ }
66
+ op = body.call(thisArg, _);
67
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
68
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
69
+ }
70
+ };
71
+ Object.defineProperty(exports, "__esModule", { value: true });
72
+ exports.SolidAuthnLogic = void 0;
73
+ var rdflib_1 = require("rdflib");
74
+ var authUtil_1 = require("./authUtil");
75
+ var debug = __importStar(require("../util/debug"));
76
+ var SolidAuthnLogic = /** @class */ (function () {
77
+ function SolidAuthnLogic(solidAuthSession) {
78
+ this.session = solidAuthSession;
79
+ }
80
+ Object.defineProperty(SolidAuthnLogic.prototype, "authSession", {
81
+ // we created authSession getter because we want to access it as authn.authSession externally
82
+ get: function () { return this.session; },
83
+ enumerable: false,
84
+ configurable: true
85
+ });
86
+ SolidAuthnLogic.prototype.currentUser = function () {
87
+ var app = (0, authUtil_1.appContext)();
88
+ if (app.viewingNoAuthPage) {
89
+ return (0, rdflib_1.sym)(app.webId);
90
+ }
91
+ if (this && this.session && this.session.info && this.session.info.webId && this.session.info.isLoggedIn) {
92
+ return (0, rdflib_1.sym)(this.session.info.webId);
93
+ }
94
+ return (0, authUtil_1.offlineTestID)(); // null unless testing
95
+ };
96
+ /**
97
+ * Retrieves currently logged in webId from either
98
+ * defaultTestUser or SolidAuth
99
+ * Also activates a session after login
100
+ * @param [setUserCallback] Optional callback
101
+ * @returns Resolves with webId uri, if no callback provided
102
+ */
103
+ SolidAuthnLogic.prototype.checkUser = function (setUserCallback) {
104
+ return __awaiter(this, void 0, void 0, function () {
105
+ var preLoginRedirectHash, redirectUrl, postLoginRedirectHash, curUrl, me, webId;
106
+ return __generator(this, function (_a) {
107
+ switch (_a.label) {
108
+ case 0:
109
+ preLoginRedirectHash = new URL(window.location.href).hash;
110
+ if (preLoginRedirectHash) {
111
+ window.localStorage.setItem('preLoginRedirectHash', preLoginRedirectHash);
112
+ }
113
+ this.session.onSessionRestore(function (url) {
114
+ if (document.location.toString() !== url)
115
+ history.replaceState(null, '', url);
116
+ });
117
+ redirectUrl = new URL(window.location.href);
118
+ redirectUrl.hash = '';
119
+ return [4 /*yield*/, this.session
120
+ .handleIncomingRedirect({
121
+ restorePreviousSession: true,
122
+ url: redirectUrl.href
123
+ })
124
+ // Check to see if a hash was stored in local storage
125
+ ];
126
+ case 1:
127
+ _a.sent();
128
+ postLoginRedirectHash = window.localStorage.getItem('preLoginRedirectHash');
129
+ if (postLoginRedirectHash) {
130
+ curUrl = new URL(window.location.href);
131
+ if (curUrl.hash !== postLoginRedirectHash) {
132
+ if (history.pushState) {
133
+ // debug.log('Setting window.location.has using pushState')
134
+ history.pushState(null, document.title, postLoginRedirectHash);
135
+ }
136
+ else {
137
+ // debug.warn('Setting window.location.has using location.hash')
138
+ location.hash = postLoginRedirectHash;
139
+ }
140
+ curUrl.hash = postLoginRedirectHash;
141
+ }
142
+ // See https://stackoverflow.com/questions/3870057/how-can-i-update-window-location-hash-without-jumping-the-document
143
+ // window.location.href = curUrl.toString()// @@ See https://developer.mozilla.org/en-US/docs/Web/API/Window/location
144
+ window.localStorage.setItem('preLoginRedirectHash', '');
145
+ }
146
+ me = (0, authUtil_1.offlineTestID)();
147
+ if (me) {
148
+ return [2 /*return*/, Promise.resolve(setUserCallback ? setUserCallback(me) : me)];
149
+ }
150
+ webId = this.webIdFromSession(this.session.info);
151
+ if (webId) {
152
+ me = this.saveUser(webId);
153
+ }
154
+ if (me) {
155
+ debug.log("(Logged in as ".concat(me, " by authentication)"));
156
+ }
157
+ return [2 /*return*/, Promise.resolve(setUserCallback ? setUserCallback(me) : me)];
158
+ }
159
+ });
160
+ });
161
+ };
162
+ /**
163
+ * Saves `webId` in `context.me`
164
+ * @param webId
165
+ * @param context
166
+ *
167
+ * @returns Returns the WebID, after setting it
168
+ */
169
+ SolidAuthnLogic.prototype.saveUser = function (webId, context) {
170
+ var webIdUri;
171
+ if (webId) {
172
+ webIdUri = (typeof webId === 'string') ? webId : webId.uri;
173
+ var me = (0, rdflib_1.namedNode)(webIdUri);
174
+ if (context) {
175
+ context.me = me;
176
+ }
177
+ return me;
178
+ }
179
+ return null;
180
+ };
181
+ /**
182
+ * @returns {Promise<string|null>} Resolves with WebID URI or null
183
+ */
184
+ SolidAuthnLogic.prototype.webIdFromSession = function (session) {
185
+ var webId = (session === null || session === void 0 ? void 0 : session.webId) && session.isLoggedIn ? session.webId : null;
186
+ return webId;
187
+ };
188
+ return SolidAuthnLogic;
189
+ }());
190
+ exports.SolidAuthnLogic = SolidAuthnLogic;
191
+ //# sourceMappingURL=SolidAuthnLogic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidAuthnLogic.js","sourceRoot":"","sources":["../../src/authn/SolidAuthnLogic.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { NamedNode } from 'rdflib';
1
+ import { NamedNode } from "rdflib";
2
2
  /**
3
3
  * find a user or app's context as set in window.SolidAppContext
4
4
  * this is a const, not a function, because we have problems to jest mock it otherwise
@@ -0,0 +1,105 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.appContext = void 0;
37
+ exports.offlineTestID = offlineTestID;
38
+ var rdflib_1 = require("rdflib");
39
+ var debug = __importStar(require("../util/debug"));
40
+ /**
41
+ * find a user or app's context as set in window.SolidAppContext
42
+ * this is a const, not a function, because we have problems to jest mock it otherwise
43
+ * see: https://github.com/facebook/jest/issues/936#issuecomment-545080082 for more
44
+ * @return {any} - an appContext object
45
+ */
46
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
47
+ var appContext = function () {
48
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
49
+ var SolidAppContext = window.SolidAppContext;
50
+ SolidAppContext || (SolidAppContext = {});
51
+ SolidAppContext.viewingNoAuthPage = false;
52
+ if (SolidAppContext.noAuth && window.document) {
53
+ var currentPage = window.document.location.href;
54
+ if (currentPage.startsWith(SolidAppContext.noAuth)) {
55
+ SolidAppContext.viewingNoAuthPage = true;
56
+ var params = new URLSearchParams(window.document.location.search);
57
+ if (params) {
58
+ var viewedPage = SolidAppContext.viewedPage = params.get('uri') || null;
59
+ if (viewedPage) {
60
+ viewedPage = decodeURI(viewedPage);
61
+ if (!viewedPage.startsWith(SolidAppContext.noAuth)) {
62
+ var ary = viewedPage.split(/\//);
63
+ SolidAppContext.idp = ary[0] + '//' + ary[2];
64
+ SolidAppContext.viewingNoAuthPage = false;
65
+ }
66
+ }
67
+ }
68
+ }
69
+ }
70
+ return SolidAppContext;
71
+ };
72
+ exports.appContext = appContext;
73
+ /**
74
+ * Returns `sym($SolidTestEnvironment.username)` if
75
+ * `$SolidTestEnvironment.username` is defined as a global
76
+ * or
77
+ * returns testID defined in the HTML page
78
+ * @returns {NamedNode|null}
79
+ */
80
+ function offlineTestID() {
81
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
82
+ var $SolidTestEnvironment = window.$SolidTestEnvironment;
83
+ if (typeof $SolidTestEnvironment !== 'undefined' &&
84
+ $SolidTestEnvironment.username) {
85
+ // Test setup
86
+ debug.log('Assuming the user is ' + $SolidTestEnvironment.username);
87
+ return (0, rdflib_1.sym)($SolidTestEnvironment.username);
88
+ }
89
+ // hack that makes SolidOS work in offline mode by adding the webId directly in html
90
+ // example usage: https://github.com/solidos/mashlib/blob/29b8b53c46bf02e0e219f0bacd51b0e9951001dd/test/contact/local.html#L37
91
+ if (typeof document !== 'undefined' &&
92
+ document.location &&
93
+ ('' + document.location).slice(0, 16) === 'http://localhost') {
94
+ var div = document.getElementById('appTarget');
95
+ if (!div)
96
+ return null;
97
+ var id = div.getAttribute('testID');
98
+ if (!id)
99
+ return null;
100
+ debug.log('Assuming user is ' + id);
101
+ return (0, rdflib_1.sym)(id);
102
+ }
103
+ return null;
104
+ }
105
+ //# sourceMappingURL=authUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authUtil.js","sourceRoot":"","sources":["../../src/authn/authUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,sCA0BC;AArED,iCAAuC;AACvC,mDAAsC;AAEtC;;;;;GAKG;AACH,8DAA8D;AACvD,IAAM,UAAU,GAAG;IACtB,8DAA8D;IACxD,IAAA,eAAe,GAAU,MAAM,gBAAhB,CAAgB;IACrC,eAAe,KAAf,eAAe,GAAK,EAAE,EAAA;IACtB,eAAe,CAAC,iBAAiB,GAAG,KAAK,CAAA;IACzC,IAAI,eAAe,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC5C,IAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAA;QACjD,IAAI,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,eAAe,CAAC,iBAAiB,GAAG,IAAI,CAAA;YACxC,IAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YACnE,IAAI,MAAM,EAAE,CAAC;gBACT,IAAI,UAAU,GAAG,eAAe,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAA;gBACvE,IAAI,UAAU,EAAE,CAAC;oBACjB,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;oBAClC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;wBACjD,IAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;wBAClC,eAAe,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;wBAC5C,eAAe,CAAC,iBAAiB,GAAG,KAAK,CAAA;oBAC7C,CAAC;gBACD,CAAC;YACL,CAAC;QACD,CAAC;IACL,CAAC;IACD,OAAO,eAAe,CAAA;AAC1B,CAAC,CAAA;AAxBY,QAAA,UAAU,cAwBtB;AAED;;;;;;GAMG;AACH,SAAgB,aAAa;IACzB,+DAA+D;IACvD,IAAA,qBAAqB,GAAU,MAAM,sBAAhB,CAAgB;IAC7C,IACE,OAAO,qBAAqB,KAAK,WAAW;QAC5C,qBAAqB,CAAC,QAAQ,EAC9B,CAAC;QACD,aAAa;QACb,KAAK,CAAC,GAAG,CAAC,uBAAuB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAA;QACnE,OAAO,IAAA,YAAG,EAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IAC5C,CAAC;IACD,oFAAoF;IACpF,8HAA8H;IAC9H,IACE,OAAO,QAAQ,KAAK,WAAW;QAC/B,QAAQ,CAAC,QAAQ;QACjB,CAAC,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,kBAAkB,EAC5D,CAAC;QACD,IAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QAChD,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QACrB,IAAM,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;QACrC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAA;QACpB,KAAK,CAAC,GAAG,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAA;QACnC,OAAO,IAAA,YAAG,EAAC,EAAE,CAAC,CAAA;IAChB,CAAC;IACD,OAAO,IAAI,CAAA;AACf,CAAC"}
@@ -1,3 +1,3 @@
1
- import { ChatLogic } from '../types';
1
+ import { ChatLogic } from "../types";
2
2
  export declare function createChatLogic(store: any, profileLogic: any): ChatLogic;
3
3
  //# sourceMappingURL=chatLogic.d.ts.map