solid-logic 3.0.9-ff53d0a → 3.1.0-829773f

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 (160) hide show
  1. package/README.md +2 -103
  2. package/eslint.config.js +29 -0
  3. package/jest.config.js +10 -0
  4. package/lib/acl/aclLogic.d.ts +5 -0
  5. package/{dist → lib}/acl/aclLogic.d.ts.map +1 -1
  6. package/lib/acl/aclLogic.js +168 -0
  7. package/lib/acl/aclLogic.js.map +1 -0
  8. package/lib/authSession/authSession.js +6 -0
  9. package/lib/authSession/authSession.js.map +1 -0
  10. package/{dist → lib}/authn/SolidAuthnLogic.d.ts +3 -3
  11. package/{dist → lib}/authn/SolidAuthnLogic.d.ts.map +1 -1
  12. package/lib/authn/SolidAuthnLogic.js +193 -0
  13. package/lib/authn/SolidAuthnLogic.js.map +1 -0
  14. package/{dist → lib}/authn/authUtil.d.ts +1 -1
  15. package/lib/authn/authUtil.js +105 -0
  16. package/lib/authn/authUtil.js.map +1 -0
  17. package/{dist → lib}/chat/chatLogic.d.ts +1 -1
  18. package/lib/chat/chatLogic.js +272 -0
  19. package/lib/chat/chatLogic.js.map +1 -0
  20. package/{dist → lib}/inbox/inboxLogic.d.ts +1 -1
  21. package/{dist → lib}/inbox/inboxLogic.d.ts.map +1 -1
  22. package/lib/inbox/inboxLogic.js +139 -0
  23. package/lib/inbox/inboxLogic.js.map +1 -0
  24. package/{dist → lib}/index.d.ts +2 -1
  25. package/{dist → lib}/index.d.ts.map +1 -1
  26. package/lib/index.js +31 -0
  27. package/lib/index.js.map +1 -0
  28. package/lib/issuer/issuerLogic.js +52 -0
  29. package/lib/issuer/issuerLogic.js.map +1 -0
  30. package/{dist → lib}/logic/CustomError.d.ts.map +1 -1
  31. package/lib/logic/CustomError.js +89 -0
  32. package/lib/logic/CustomError.js.map +1 -0
  33. package/lib/logic/solidLogic.d.ts +6 -0
  34. package/{dist → lib}/logic/solidLogic.d.ts.map +1 -1
  35. package/lib/logic/solidLogic.js +102 -0
  36. package/lib/logic/solidLogic.js.map +1 -0
  37. package/lib/logic/solidLogicSingleton.js +94 -0
  38. package/lib/logic/solidLogicSingleton.js.map +1 -0
  39. package/{dist → lib}/profile/profileLogic.d.ts +1 -1
  40. package/lib/profile/profileLogic.js +259 -0
  41. package/lib/profile/profileLogic.js.map +1 -0
  42. package/lib/typeIndex/typeIndexLogic.js +399 -0
  43. package/lib/typeIndex/typeIndexLogic.js.map +1 -0
  44. package/{dist → lib}/types.d.ts +2 -2
  45. package/lib/types.js +3 -0
  46. package/{dist → lib}/util/containerLogic.d.ts +1 -1
  47. package/{dist → 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 -0
  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/{dist → lib}/util/utilityLogic.d.ts +1 -1
  56. package/{dist → 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/{dist → lib}/util/utils.d.ts +1 -1
  60. package/{dist → 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 +16 -58
  64. package/src/acl/aclLogic.ts +156 -0
  65. package/src/authSession/authSession.ts +7 -0
  66. package/src/authn/SolidAuthnLogic.ts +127 -0
  67. package/src/authn/authUtil.ts +70 -0
  68. package/src/chat/chatLogic.ts +226 -0
  69. package/src/inbox/inboxLogic.ts +59 -0
  70. package/src/index.ts +22 -0
  71. package/src/issuer/issuerLogic.ts +40 -0
  72. package/src/logic/CustomError.ts +29 -0
  73. package/src/logic/solidLogic.ts +76 -0
  74. package/src/logic/solidLogicSingleton.ts +20 -0
  75. package/src/profile/profileLogic.ts +125 -0
  76. package/src/typeIndex/typeIndexLogic.ts +198 -0
  77. package/src/types.ts +122 -0
  78. package/{dist/util/containerLogic.js → src/util/containerLogic.ts} +23 -15
  79. package/src/util/debug.ts +20 -0
  80. package/src/util/ns.ts +5 -0
  81. package/src/util/utilityLogic.ts +156 -0
  82. package/src/util/utils.ts +52 -0
  83. package/test/aclLogic.test.ts +24 -0
  84. package/test/authUtil.test.ts +23 -0
  85. package/test/chatLogic.test.ts +316 -0
  86. package/test/container.test.ts +58 -0
  87. package/test/helpers/dataSetup.ts +134 -0
  88. package/test/helpers/setup.ts +17 -0
  89. package/test/inboxLogic.test.ts +218 -0
  90. package/test/logic.test.ts +29 -0
  91. package/test/profileLogic.test.ts +246 -0
  92. package/test/solidAuthLogic.test.ts +49 -0
  93. package/test/typeIndexLogic.test.ts +255 -0
  94. package/test/utilityLogic.test.ts +179 -0
  95. package/test/utils.test.ts +32 -0
  96. package/tsconfig.json +75 -0
  97. package/dist/acl/aclLogic.d.ts +0 -5
  98. package/dist/acl/aclLogic.js +0 -118
  99. package/dist/acl/aclLogic.js.map +0 -1
  100. package/dist/authSession/authSession.js +0 -3
  101. package/dist/authSession/authSession.js.map +0 -1
  102. package/dist/authn/SolidAuthnLogic.js +0 -110
  103. package/dist/authn/SolidAuthnLogic.js.map +0 -1
  104. package/dist/authn/authUtil.js +0 -67
  105. package/dist/authn/authUtil.js.map +0 -1
  106. package/dist/chat/chatLogic.js +0 -157
  107. package/dist/chat/chatLogic.js.map +0 -1
  108. package/dist/inbox/inboxLogic.js +0 -52
  109. package/dist/inbox/inboxLogic.js.map +0 -1
  110. package/dist/index.js +0 -13
  111. package/dist/index.js.map +0 -1
  112. package/dist/issuer/issuerLogic.js +0 -37
  113. package/dist/issuer/issuerLogic.js.map +0 -1
  114. package/dist/logic/CustomError.js +0 -28
  115. package/dist/logic/CustomError.js.map +0 -1
  116. package/dist/logic/solidLogic.d.ts +0 -6
  117. package/dist/logic/solidLogic.js +0 -65
  118. package/dist/logic/solidLogic.js.map +0 -1
  119. package/dist/logic/solidLogicSingleton.js +0 -18
  120. package/dist/logic/solidLogicSingleton.js.map +0 -1
  121. package/dist/profile/profileLogic.js +0 -129
  122. package/dist/profile/profileLogic.js.map +0 -1
  123. package/dist/solid-logic.esm.js +0 -8560
  124. package/dist/solid-logic.esm.js.map +0 -1
  125. package/dist/solid-logic.esm.min.js +0 -32
  126. package/dist/solid-logic.esm.min.js.map +0 -1
  127. package/dist/solid-logic.umd.js +0 -8597
  128. package/dist/solid-logic.umd.js.map +0 -1
  129. package/dist/solid-logic.umd.min.js +0 -32
  130. package/dist/solid-logic.umd.min.js.map +0 -1
  131. package/dist/typeIndex/typeIndexLogic.js +0 -186
  132. package/dist/typeIndex/typeIndexLogic.js.map +0 -1
  133. package/dist/types.js +0 -2
  134. package/dist/util/containerLogic.js.map +0 -1
  135. package/dist/util/debug.d.ts.map +0 -1
  136. package/dist/util/debug.js +0 -14
  137. package/dist/util/debug.js.map +0 -1
  138. package/dist/util/ns.js +0 -5
  139. package/dist/util/ns.js.map +0 -1
  140. package/dist/util/utilityLogic.js +0 -144
  141. package/dist/util/utilityLogic.js.map +0 -1
  142. package/dist/util/utils.js +0 -39
  143. package/dist/util/utils.js.map +0 -1
  144. /package/{dist → lib}/authSession/authSession.d.ts +0 -0
  145. /package/{dist → lib}/authSession/authSession.d.ts.map +0 -0
  146. /package/{dist → lib}/authn/authUtil.d.ts.map +0 -0
  147. /package/{dist → lib}/chat/chatLogic.d.ts.map +0 -0
  148. /package/{dist → lib}/issuer/issuerLogic.d.ts +0 -0
  149. /package/{dist → lib}/issuer/issuerLogic.d.ts.map +0 -0
  150. /package/{dist → lib}/logic/CustomError.d.ts +0 -0
  151. /package/{dist → lib}/logic/solidLogicSingleton.d.ts +0 -0
  152. /package/{dist → lib}/logic/solidLogicSingleton.d.ts.map +0 -0
  153. /package/{dist → lib}/profile/profileLogic.d.ts.map +0 -0
  154. /package/{dist → lib}/typeIndex/typeIndexLogic.d.ts +0 -0
  155. /package/{dist → lib}/typeIndex/typeIndexLogic.d.ts.map +0 -0
  156. /package/{dist → lib}/types.d.ts.map +0 -0
  157. /package/{dist → lib}/types.js.map +0 -0
  158. /package/{dist → lib}/util/debug.d.ts +0 -0
  159. /package/{dist → lib}/util/ns.d.ts +0 -0
  160. /package/{dist → lib}/util/ns.d.ts.map +0 -0
@@ -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
@@ -0,0 +1,272 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ 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);
24
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ 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;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.createChatLogic = createChatLogic;
51
+ var rdflib_1 = require("rdflib");
52
+ var ns_1 = require("../util/ns");
53
+ var utils_1 = require("../util/utils");
54
+ var CHAT_LOCATION_IN_CONTAINER = "index.ttl#this";
55
+ function createChatLogic(store, profileLogic) {
56
+ var ns = ns_1.ns;
57
+ function setAcl(chatContainer, me, invitee) {
58
+ return __awaiter(this, void 0, void 0, function () {
59
+ var chatAclDoc, aclBody;
60
+ return __generator(this, function (_a) {
61
+ switch (_a.label) {
62
+ case 0:
63
+ // Some servers don't present a Link http response header
64
+ // if the container doesn't exist yet, so refetch the container
65
+ // now that it has been created:
66
+ return [4 /*yield*/, store.fetcher.load(chatContainer)];
67
+ case 1:
68
+ // Some servers don't present a Link http response header
69
+ // if the container doesn't exist yet, so refetch the container
70
+ // now that it has been created:
71
+ _a.sent();
72
+ chatAclDoc = store.any(chatContainer, new rdflib_1.NamedNode("http://www.iana.org/assignments/link-relations/acl"));
73
+ if (!chatAclDoc) {
74
+ throw new Error("Chat ACL doc not found!");
75
+ }
76
+ aclBody = "\n @prefix acl: <http://www.w3.org/ns/auth/acl#>.\n <#owner>\n a acl:Authorization;\n acl:agent <".concat(me.value, ">;\n acl:accessTo <.>;\n acl:default <.>;\n acl:mode\n acl:Read, acl:Write, acl:Control.\n <#invitee>\n a acl:Authorization;\n acl:agent <").concat(invitee.value, ">;\n acl:accessTo <.>;\n acl:default <.>;\n acl:mode\n acl:Read, acl:Append.\n ");
77
+ return [4 /*yield*/, store.fetcher.webOperation("PUT", chatAclDoc.value, {
78
+ data: aclBody,
79
+ contentType: "text/turtle",
80
+ })];
81
+ case 2:
82
+ _a.sent();
83
+ return [2 /*return*/];
84
+ }
85
+ });
86
+ });
87
+ }
88
+ function addToPrivateTypeIndex(chatThing, me) {
89
+ return __awaiter(this, void 0, void 0, function () {
90
+ var privateTypeIndex, reg, ins;
91
+ return __generator(this, function (_a) {
92
+ switch (_a.label) {
93
+ case 0:
94
+ privateTypeIndex = store.any(me, ns.solid("privateTypeIndex"));
95
+ if (!privateTypeIndex) {
96
+ throw new Error("Private type index not found!");
97
+ }
98
+ return [4 /*yield*/, store.fetcher.load(privateTypeIndex)];
99
+ case 1:
100
+ _a.sent();
101
+ reg = (0, utils_1.newThing)(privateTypeIndex);
102
+ ins = [
103
+ (0, rdflib_1.st)(reg, ns.rdf("type"), ns.solid("TypeRegistration"), privateTypeIndex.doc()),
104
+ (0, rdflib_1.st)(reg, ns.solid("forClass"), ns.meeting("LongChat"), privateTypeIndex.doc()),
105
+ (0, rdflib_1.st)(reg, ns.solid("instance"), chatThing, privateTypeIndex.doc()),
106
+ ];
107
+ return [4 /*yield*/, new Promise(function (resolve, reject) {
108
+ store.updater.update([], ins, function (_uri, ok, errm) {
109
+ if (!ok) {
110
+ reject(new Error(errm));
111
+ }
112
+ else {
113
+ resolve(null);
114
+ }
115
+ });
116
+ })];
117
+ case 2:
118
+ _a.sent();
119
+ return [2 /*return*/];
120
+ }
121
+ });
122
+ });
123
+ }
124
+ function findChat(invitee) {
125
+ return __awaiter(this, void 0, void 0, function () {
126
+ var me, podRoot, chatContainer, exists, e_1;
127
+ return __generator(this, function (_a) {
128
+ switch (_a.label) {
129
+ case 0: return [4 /*yield*/, profileLogic.loadMe()];
130
+ case 1:
131
+ me = _a.sent();
132
+ return [4 /*yield*/, profileLogic.getPodRoot(me)];
133
+ case 2:
134
+ podRoot = _a.sent();
135
+ chatContainer = (0, utils_1.determineChatContainer)(invitee, podRoot);
136
+ exists = true;
137
+ _a.label = 3;
138
+ case 3:
139
+ _a.trys.push([3, 5, , 6]);
140
+ return [4 /*yield*/, store.fetcher.load(new rdflib_1.NamedNode(chatContainer.value + "index.ttl#this"))];
141
+ case 4:
142
+ _a.sent();
143
+ return [3 /*break*/, 6];
144
+ case 5:
145
+ e_1 = _a.sent();
146
+ exists = false;
147
+ return [3 /*break*/, 6];
148
+ case 6: return [2 /*return*/, { me: me, chatContainer: chatContainer, exists: exists }];
149
+ }
150
+ });
151
+ });
152
+ }
153
+ function createChatThing(chatContainer, me) {
154
+ return __awaiter(this, void 0, void 0, function () {
155
+ var created;
156
+ return __generator(this, function (_a) {
157
+ switch (_a.label) {
158
+ case 0: return [4 /*yield*/, mintNew({
159
+ me: me,
160
+ newBase: chatContainer.value,
161
+ })];
162
+ case 1:
163
+ created = _a.sent();
164
+ return [2 /*return*/, created.newInstance];
165
+ }
166
+ });
167
+ });
168
+ }
169
+ function mintNew(newPaneOptions) {
170
+ var kb = store;
171
+ var updater = kb.updater;
172
+ if (newPaneOptions.me && !newPaneOptions.me.uri) {
173
+ throw new Error("chat mintNew: Invalid userid " + newPaneOptions.me);
174
+ }
175
+ var newInstance = (newPaneOptions.newInstance =
176
+ newPaneOptions.newInstance ||
177
+ kb.sym(newPaneOptions.newBase + CHAT_LOCATION_IN_CONTAINER));
178
+ var newChatDoc = newInstance.doc();
179
+ kb.add(newInstance, ns.rdf("type"), ns.meeting("LongChat"), newChatDoc);
180
+ kb.add(newInstance, ns.dc("title"), "Chat channel", newChatDoc);
181
+ kb.add(newInstance, ns.dc("created"), (0, rdflib_1.term)(new Date(Date.now())), newChatDoc);
182
+ if (newPaneOptions.me) {
183
+ kb.add(newInstance, ns.dc("author"), newPaneOptions.me, newChatDoc);
184
+ }
185
+ return new Promise(function (resolve, reject) {
186
+ updater === null || updater === void 0 ? void 0 : updater.put(newChatDoc, kb.statementsMatching(undefined, undefined, undefined, newChatDoc), "text/turtle", function (uri2, ok, message) {
187
+ if (ok) {
188
+ resolve(__assign(__assign({}, newPaneOptions), { newInstance: newInstance }));
189
+ }
190
+ else {
191
+ reject(new Error("FAILED to save new chat channel at: " + uri2 + " : " + message));
192
+ }
193
+ });
194
+ });
195
+ }
196
+ /**
197
+ * Find (and optionally create) an individual chat between the current user and the given invitee
198
+ * @param invitee - The person to chat with
199
+ * @param createIfMissing - Whether the chat should be created, if missing
200
+ * @returns null if missing, or a node referring to an already existing chat, or the newly created chat
201
+ */
202
+ function getChat(invitee_1) {
203
+ return __awaiter(this, arguments, void 0, function (invitee, createIfMissing) {
204
+ var _a, me, chatContainer, exists, chatThing;
205
+ if (createIfMissing === void 0) { createIfMissing = true; }
206
+ return __generator(this, function (_b) {
207
+ switch (_b.label) {
208
+ case 0: return [4 /*yield*/, findChat(invitee)];
209
+ case 1:
210
+ _a = _b.sent(), me = _a.me, chatContainer = _a.chatContainer, exists = _a.exists;
211
+ if (exists) {
212
+ return [2 /*return*/, new rdflib_1.NamedNode(chatContainer.value + CHAT_LOCATION_IN_CONTAINER)];
213
+ }
214
+ if (!createIfMissing) return [3 /*break*/, 6];
215
+ return [4 /*yield*/, createChatThing(chatContainer, me)];
216
+ case 2:
217
+ chatThing = _b.sent();
218
+ return [4 /*yield*/, sendInvite(invitee, chatThing)];
219
+ case 3:
220
+ _b.sent();
221
+ return [4 /*yield*/, setAcl(chatContainer, me, invitee)];
222
+ case 4:
223
+ _b.sent();
224
+ return [4 /*yield*/, addToPrivateTypeIndex(chatThing, me)];
225
+ case 5:
226
+ _b.sent();
227
+ return [2 /*return*/, chatThing];
228
+ case 6: return [2 /*return*/, null];
229
+ }
230
+ });
231
+ });
232
+ }
233
+ function sendInvite(invitee, chatThing) {
234
+ return __awaiter(this, void 0, void 0, function () {
235
+ var inviteeInbox, inviteBody, inviteResponse, locationStr;
236
+ var _a;
237
+ return __generator(this, function (_b) {
238
+ switch (_b.label) {
239
+ case 0: return [4 /*yield*/, store.fetcher.load(invitee.doc())];
240
+ case 1:
241
+ _b.sent();
242
+ inviteeInbox = store.any(invitee, ns.ldp("inbox"), undefined, invitee.doc());
243
+ if (!inviteeInbox) {
244
+ throw new Error("Invitee inbox not found! ".concat(invitee.value));
245
+ }
246
+ inviteBody = "\n <> a <http://www.w3.org/ns/pim/meeting#LongChatInvite> ;\n ".concat(ns.rdf("seeAlso"), " <").concat(chatThing.value, "> .\n ");
247
+ return [4 /*yield*/, ((_a = store.fetcher) === null || _a === void 0 ? void 0 : _a.webOperation("POST", inviteeInbox.value, {
248
+ data: inviteBody,
249
+ contentType: "text/turtle",
250
+ }))];
251
+ case 2:
252
+ inviteResponse = _b.sent();
253
+ locationStr = inviteResponse === null || inviteResponse === void 0 ? void 0 : inviteResponse.headers.get("location");
254
+ if (!locationStr) {
255
+ throw new Error("Invite sending returned a ".concat(inviteResponse === null || inviteResponse === void 0 ? void 0 : inviteResponse.status));
256
+ }
257
+ return [2 /*return*/];
258
+ }
259
+ });
260
+ });
261
+ }
262
+ return {
263
+ setAcl: setAcl,
264
+ addToPrivateTypeIndex: addToPrivateTypeIndex,
265
+ findChat: findChat,
266
+ createChatThing: createChatThing,
267
+ getChat: getChat,
268
+ sendInvite: sendInvite,
269
+ mintNew: mintNew
270
+ };
271
+ }
272
+ //# sourceMappingURL=chatLogic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatLogic.js","sourceRoot":"","sources":["../../src/chat/chatLogic.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { InboxLogic } from '../types';
1
+ import { InboxLogic } from "../types";
2
2
  export declare function createInboxLogic(store: any, profileLogic: any, utilityLogic: any, containerLogic: any, aclLogic: any): InboxLogic;
3
3
  //# sourceMappingURL=inboxLogic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inboxLogic.d.ts","sourceRoot":"","sources":["../../src/inbox/inboxLogic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAIrC,wBAAgB,gBAAgB,CAAC,KAAK,KAAA,EAAE,YAAY,KAAA,EAAE,YAAY,KAAA,EAAE,cAAc,KAAA,EAAE,QAAQ,KAAA,GAAG,UAAU,CAqDxG"}
1
+ {"version":3,"file":"inboxLogic.d.ts","sourceRoot":"","sources":["../../src/inbox/inboxLogic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAItC,wBAAgB,gBAAgB,CAAC,KAAK,KAAA,EAAE,YAAY,KAAA,EAAE,YAAY,KAAA,EAAE,cAAc,KAAA,EAAE,QAAQ,KAAA,GAAG,UAAU,CAqDxG"}
@@ -0,0 +1,139 @@
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.createInboxLogic = createInboxLogic;
40
+ var utils_1 = require("../util/utils");
41
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
42
+ function createInboxLogic(store, profileLogic, utilityLogic, containerLogic, aclLogic) {
43
+ function createInboxFor(peerWebId, nick) {
44
+ return __awaiter(this, void 0, void 0, function () {
45
+ var myWebId, podRoot, ourInbox;
46
+ return __generator(this, function (_a) {
47
+ switch (_a.label) {
48
+ case 0: return [4 /*yield*/, profileLogic.loadMe()];
49
+ case 1:
50
+ myWebId = _a.sent();
51
+ return [4 /*yield*/, profileLogic.getPodRoot(myWebId)];
52
+ case 2:
53
+ podRoot = _a.sent();
54
+ ourInbox = "".concat(podRoot.value, "p2p-inboxes/").concat(encodeURIComponent(nick), "/");
55
+ return [4 /*yield*/, containerLogic.createContainer(ourInbox)];
56
+ case 3:
57
+ _a.sent();
58
+ // const aclDocUrl = await aclLogic.findAclDocUrl(ourInbox);
59
+ return [4 /*yield*/, utilityLogic.setSinglePeerAccess({
60
+ ownerWebId: myWebId.value,
61
+ peerWebId: peerWebId,
62
+ accessToModes: 'acl:Append',
63
+ target: ourInbox
64
+ })];
65
+ case 4:
66
+ // const aclDocUrl = await aclLogic.findAclDocUrl(ourInbox);
67
+ _a.sent();
68
+ return [2 /*return*/, ourInbox];
69
+ }
70
+ });
71
+ });
72
+ }
73
+ function getNewMessages(user) {
74
+ return __awaiter(this, void 0, void 0, function () {
75
+ var inbox, urls;
76
+ return __generator(this, function (_a) {
77
+ switch (_a.label) {
78
+ case 0:
79
+ if (!!user) return [3 /*break*/, 2];
80
+ return [4 /*yield*/, profileLogic.loadMe()];
81
+ case 1:
82
+ user = _a.sent();
83
+ _a.label = 2;
84
+ case 2: return [4 /*yield*/, profileLogic.getMainInbox(user)];
85
+ case 3:
86
+ inbox = _a.sent();
87
+ return [4 /*yield*/, containerLogic.getContainerMembers(inbox)];
88
+ case 4:
89
+ urls = _a.sent();
90
+ return [2 /*return*/, urls.filter(function (url) { return !containerLogic.isContainer(url); })];
91
+ }
92
+ });
93
+ });
94
+ }
95
+ function markAsRead(url, date) {
96
+ return __awaiter(this, void 0, void 0, function () {
97
+ var downloaded, archiveUrl, options, uploaded;
98
+ var _a;
99
+ return __generator(this, function (_b) {
100
+ switch (_b.label) {
101
+ case 0: return [4 /*yield*/, store.fetcher._fetch(url)];
102
+ case 1:
103
+ downloaded = _b.sent();
104
+ if (downloaded.status !== 200) {
105
+ throw new Error("Not OK! ".concat(url));
106
+ }
107
+ archiveUrl = (0, utils_1.getArchiveUrl)(url, date);
108
+ _a = {
109
+ method: 'PUT'
110
+ };
111
+ return [4 /*yield*/, downloaded.text()];
112
+ case 2:
113
+ options = (_a.body = _b.sent(),
114
+ _a.headers = [
115
+ ['Content-Type', downloaded.headers.get('Content-Type') || 'application/octet-stream']
116
+ ],
117
+ _a);
118
+ return [4 /*yield*/, store.fetcher._fetch(archiveUrl, options)];
119
+ case 3:
120
+ uploaded = _b.sent();
121
+ if (!(uploaded.status.toString()[0] === '2')) return [3 /*break*/, 5];
122
+ return [4 /*yield*/, store.fetcher._fetch(url, {
123
+ method: 'DELETE'
124
+ })];
125
+ case 4:
126
+ _b.sent();
127
+ _b.label = 5;
128
+ case 5: return [2 /*return*/];
129
+ }
130
+ });
131
+ });
132
+ }
133
+ return {
134
+ createInboxFor: createInboxFor,
135
+ getNewMessages: getNewMessages,
136
+ markAsRead: markAsRead
137
+ };
138
+ }
139
+ //# sourceMappingURL=inboxLogic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inboxLogic.js","sourceRoot":"","sources":["../../src/inbox/inboxLogic.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,4CAqDC;AAxDD,uCAA8C;AAE9C,6DAA6D;AAC7D,SAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ;IAExF,SAAe,cAAc,CAAC,SAAiB,EAAE,IAAY;;;;;4BAChC,qBAAM,YAAY,CAAC,MAAM,EAAE,EAAA;;wBAAhD,OAAO,GAAc,SAA2B;wBAC3B,qBAAM,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,EAAA;;wBAA3D,OAAO,GAAc,SAAsC;wBAC3D,QAAQ,GAAG,UAAG,OAAO,CAAC,KAAK,yBAAe,kBAAkB,CAAC,IAAI,CAAC,MAAG,CAAC;wBAC5E,qBAAM,cAAc,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAA;;wBAA9C,SAA8C,CAAC;wBAC/C,4DAA4D;wBAC5D,qBAAM,YAAY,CAAC,mBAAmB,CAAC;gCACrC,UAAU,EAAE,OAAO,CAAC,KAAK;gCACzB,SAAS,WAAA;gCACT,aAAa,EAAE,YAAY;gCAC3B,MAAM,EAAE,QAAQ;6BACjB,CAAC,EAAA;;wBANF,4DAA4D;wBAC5D,SAKE,CAAC;wBACH,sBAAO,QAAQ,EAAC;;;;KACnB;IAED,SAAe,cAAc,CACzB,IAAgB;;;;;;6BAEZ,CAAC,IAAI,EAAL,wBAAK;wBACA,qBAAM,YAAY,CAAC,MAAM,EAAE,EAAA;;wBAAlC,IAAI,GAAG,SAA2B,CAAC;;4BAEvB,qBAAM,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,EAAA;;wBAA7C,KAAK,GAAG,SAAqC;wBACtC,qBAAM,cAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAA;;wBAAtD,IAAI,GAAG,SAA+C;wBAC5D,sBAAO,IAAI,CAAC,MAAM,CAAC,UAAA,GAAG,IAAI,OAAA,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,EAAhC,CAAgC,CAAC,EAAC;;;;KAC/D;IAED,SAAe,UAAU,CAAC,GAAW,EAAE,IAAU;;;;;;4BAC5B,qBAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAA;;wBAA5C,UAAU,GAAG,SAA+B;wBAClD,IAAI,UAAU,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;4BAC9B,MAAM,IAAI,KAAK,CAAC,kBAAW,GAAG,CAAE,CAAC,CAAC;wBACpC,CAAC;wBACK,UAAU,GAAG,IAAA,qBAAa,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;;4BAE1C,MAAM,EAAE,KAAK;;wBACP,qBAAM,UAAU,CAAC,IAAI,EAAE,EAAA;;wBAFzB,OAAO,IAEX,OAAI,GAAE,SAAuB;4BAC7B,UAAO,GAAE;gCACP,CAAC,cAAc,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,0BAA0B,CAAC;6BACvF;+BACF;wBACgB,qBAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,EAAA;;wBAA1D,QAAQ,GAAG,SAA+C;6BAC5D,CAAA,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAA,EAArC,wBAAqC;wBACvC,qBAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;gCAC9B,MAAM,EAAE,QAAQ;6BACjB,CAAC,EAAA;;wBAFF,SAEE,CAAC;;;;;;KAEN;IACD,OAAO;QACL,cAAc,gBAAA;QACd,cAAc,gBAAA;QACd,UAAU,YAAA;KACX,CAAA;AACH,CAAC"}
@@ -5,7 +5,8 @@ declare const store: import("rdflib").LiveStore;
5
5
  export { ACL_LINK } from './acl/aclLogic';
6
6
  export { offlineTestID, appContext } from './authn/authUtil';
7
7
  export { getSuggestedIssuers } from './issuer/issuerLogic';
8
- export type { AppDetails, SolidNamespace, AuthenticationContext, SolidLogic } from './types';
8
+ export { createTypeIndexLogic } from './typeIndex/typeIndexLogic';
9
+ export { AppDetails, SolidNamespace, AuthenticationContext, SolidLogic } from './types';
9
10
  export { UnauthorizedError, CrossOriginForbiddenError, SameOriginForbiddenError, NotFoundError, FetchError, NotEditableError, WebOperationError } from './logic/CustomError';
10
11
  export { solidLogicSingleton, // solidLogicSingleton is exported entirely because it is used in solid-panes
11
12
  store, authn, authSession };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE,QAAA,MAAM,KAAK,8BAA4B,CAAA;AACvC,QAAA,MAAM,WAAW,sDAAwC,CAAA;AACzD,QAAA,MAAM,KAAK,4BAA4B,CAAA;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAC5F,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5K,OAAO,EACL,mBAAmB,EAAE,6EAA6E;AAClG,KAAK,EACL,KAAK,EACL,WAAW,EACZ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE,QAAA,MAAM,KAAK,8BAA4B,CAAA;AACvC,QAAA,MAAM,WAAW,sDAAwC,CAAA;AACzD,QAAA,MAAM,KAAK,4BAA4B,CAAA;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACvF,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5K,OAAO,EACL,mBAAmB,EAAE,6EAA6E;AAClG,KAAK,EACL,KAAK,EACL,WAAW,EACZ,CAAA"}
package/lib/index.js ADDED
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.authSession = exports.authn = exports.store = exports.solidLogicSingleton = exports.WebOperationError = exports.NotEditableError = exports.FetchError = exports.NotFoundError = exports.SameOriginForbiddenError = exports.CrossOriginForbiddenError = exports.UnauthorizedError = exports.createTypeIndexLogic = exports.getSuggestedIssuers = exports.appContext = exports.offlineTestID = exports.ACL_LINK = void 0;
4
+ // Make these variables directly accessible as it is what you need most of the time
5
+ // This also makes these variable globaly accesible in mashlib
6
+ var solidLogicSingleton_1 = require("./logic/solidLogicSingleton");
7
+ Object.defineProperty(exports, "solidLogicSingleton", { enumerable: true, get: function () { return solidLogicSingleton_1.solidLogicSingleton; } });
8
+ var authn = solidLogicSingleton_1.solidLogicSingleton.authn;
9
+ exports.authn = authn;
10
+ var authSession = solidLogicSingleton_1.solidLogicSingleton.authn.authSession;
11
+ exports.authSession = authSession;
12
+ var store = solidLogicSingleton_1.solidLogicSingleton.store;
13
+ exports.store = store;
14
+ var aclLogic_1 = require("./acl/aclLogic");
15
+ Object.defineProperty(exports, "ACL_LINK", { enumerable: true, get: function () { return aclLogic_1.ACL_LINK; } });
16
+ var authUtil_1 = require("./authn/authUtil");
17
+ Object.defineProperty(exports, "offlineTestID", { enumerable: true, get: function () { return authUtil_1.offlineTestID; } });
18
+ Object.defineProperty(exports, "appContext", { enumerable: true, get: function () { return authUtil_1.appContext; } });
19
+ var issuerLogic_1 = require("./issuer/issuerLogic");
20
+ Object.defineProperty(exports, "getSuggestedIssuers", { enumerable: true, get: function () { return issuerLogic_1.getSuggestedIssuers; } });
21
+ var typeIndexLogic_1 = require("./typeIndex/typeIndexLogic");
22
+ Object.defineProperty(exports, "createTypeIndexLogic", { enumerable: true, get: function () { return typeIndexLogic_1.createTypeIndexLogic; } });
23
+ var CustomError_1 = require("./logic/CustomError");
24
+ Object.defineProperty(exports, "UnauthorizedError", { enumerable: true, get: function () { return CustomError_1.UnauthorizedError; } });
25
+ Object.defineProperty(exports, "CrossOriginForbiddenError", { enumerable: true, get: function () { return CustomError_1.CrossOriginForbiddenError; } });
26
+ Object.defineProperty(exports, "SameOriginForbiddenError", { enumerable: true, get: function () { return CustomError_1.SameOriginForbiddenError; } });
27
+ Object.defineProperty(exports, "NotFoundError", { enumerable: true, get: function () { return CustomError_1.NotFoundError; } });
28
+ Object.defineProperty(exports, "FetchError", { enumerable: true, get: function () { return CustomError_1.FetchError; } });
29
+ Object.defineProperty(exports, "NotEditableError", { enumerable: true, get: function () { return CustomError_1.NotEditableError; } });
30
+ Object.defineProperty(exports, "WebOperationError", { enumerable: true, get: function () { return CustomError_1.WebOperationError; } });
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mFAAmF;AACnF,8DAA8D;AAC9D,mEAAiE;AAc/D,oGAdO,yCAAmB,OAcP;AAZrB,IAAM,KAAK,GAAG,yCAAmB,CAAC,KAAK,CAAA;AAcrC,sBAAK;AAbP,IAAM,WAAW,GAAG,yCAAmB,CAAC,KAAK,CAAC,WAAW,CAAA;AAcvD,kCAAW;AAbb,IAAM,KAAK,GAAG,yCAAmB,CAAC,KAAK,CAAA;AAWrC,sBAAK;AATP,2CAAyC;AAAhC,oGAAA,QAAQ,OAAA;AACjB,6CAA4D;AAAnD,yGAAA,aAAa,OAAA;AAAE,sGAAA,UAAU,OAAA;AAClC,oDAA0D;AAAjD,kHAAA,mBAAmB,OAAA;AAC5B,6DAAiE;AAAxD,sHAAA,oBAAoB,OAAA;AAE7B,mDAA4K;AAAnK,gHAAA,iBAAiB,OAAA;AAAE,wHAAA,yBAAyB,OAAA;AAAE,uHAAA,wBAAwB,OAAA;AAAE,4GAAA,aAAa,OAAA;AAAE,yGAAA,UAAU,OAAA;AAAE,+GAAA,gBAAgB,OAAA;AAAE,gHAAA,iBAAiB,OAAA"}