solid-logic 3.1.1-dbb83f7 → 3.1.1-e3eba68

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 (153) hide show
  1. package/README.md +2 -105
  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/{dist → lib}/authSession/authSession.js +1 -1
  9. package/{dist → lib}/authSession/authSession.js.map +1 -1
  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/{dist → lib}/authn/authUtil.js +12 -12
  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 +1 -1
  25. package/{dist → lib}/index.d.ts.map +1 -1
  26. package/{dist → lib}/index.js +4 -4
  27. package/{dist → lib}/index.js.map +1 -1
  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/{dist → lib}/logic/solidLogic.js +33 -32
  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/{dist → lib}/util/containerLogic.d.ts +1 -1
  46. package/{dist → lib}/util/containerLogic.d.ts.map +1 -1
  47. package/lib/util/containerLogic.js +102 -0
  48. package/lib/util/containerLogic.js.map +1 -0
  49. package/lib/util/debug.d.ts.map +1 -0
  50. package/lib/util/debug.js +40 -0
  51. package/lib/util/debug.js.map +1 -0
  52. package/{dist → lib}/util/ns.js +2 -2
  53. package/{dist → lib}/util/ns.js.map +1 -1
  54. package/{dist → lib}/util/utilityLogic.d.ts +1 -1
  55. package/{dist → lib}/util/utilityLogic.d.ts.map +1 -1
  56. package/lib/util/utilityLogic.js +284 -0
  57. package/lib/util/utilityLogic.js.map +1 -0
  58. package/{dist → lib}/util/utils.d.ts +1 -1
  59. package/{dist → lib}/util/utils.d.ts.map +1 -1
  60. package/lib/util/utils.js +47 -0
  61. package/lib/util/utils.js.map +1 -0
  62. package/package.json +22 -50
  63. package/src/acl/aclLogic.ts +156 -0
  64. package/src/authSession/authSession.ts +7 -0
  65. package/src/authn/SolidAuthnLogic.ts +127 -0
  66. package/src/authn/authUtil.ts +70 -0
  67. package/src/chat/chatLogic.ts +226 -0
  68. package/src/inbox/inboxLogic.ts +59 -0
  69. package/src/index.ts +22 -0
  70. package/src/issuer/issuerLogic.ts +40 -0
  71. package/src/logic/CustomError.ts +29 -0
  72. package/src/logic/solidLogic.ts +76 -0
  73. package/src/logic/solidLogicSingleton.ts +20 -0
  74. package/src/profile/profileLogic.ts +125 -0
  75. package/src/typeIndex/typeIndexLogic.ts +198 -0
  76. package/src/types.ts +122 -0
  77. package/{dist/util/containerLogic.js → src/util/containerLogic.ts} +25 -20
  78. package/src/util/debug.ts +20 -0
  79. package/src/util/ns.ts +5 -0
  80. package/src/util/utilityLogic.ts +156 -0
  81. package/src/util/utils.ts +52 -0
  82. package/test/aclLogic.test.ts +24 -0
  83. package/test/authUtil.test.ts +23 -0
  84. package/test/chatLogic.test.ts +316 -0
  85. package/test/container.test.ts +58 -0
  86. package/test/helpers/dataSetup.ts +134 -0
  87. package/test/helpers/setup.ts +17 -0
  88. package/test/inboxLogic.test.ts +218 -0
  89. package/test/logic.test.ts +29 -0
  90. package/test/profileLogic.test.ts +246 -0
  91. package/test/solidAuthLogic.test.ts +49 -0
  92. package/test/typeIndexLogic.test.ts +255 -0
  93. package/test/utilityLogic.test.ts +179 -0
  94. package/test/utils.test.ts +32 -0
  95. package/tsconfig.json +75 -0
  96. package/dist/acl/aclLogic.d.ts +0 -5
  97. package/dist/acl/aclLogic.js +0 -122
  98. package/dist/acl/aclLogic.js.map +0 -1
  99. package/dist/authn/SolidAuthnLogic.js +0 -147
  100. package/dist/authn/SolidAuthnLogic.js.map +0 -1
  101. package/dist/authn/authUtil.js.map +0 -1
  102. package/dist/chat/chatLogic.js +0 -160
  103. package/dist/chat/chatLogic.js.map +0 -1
  104. package/dist/inbox/inboxLogic.js +0 -55
  105. package/dist/inbox/inboxLogic.js.map +0 -1
  106. package/dist/issuer/issuerLogic.js +0 -40
  107. package/dist/issuer/issuerLogic.js.map +0 -1
  108. package/dist/logic/CustomError.js +0 -38
  109. package/dist/logic/CustomError.js.map +0 -1
  110. package/dist/logic/solidLogic.d.ts +0 -6
  111. package/dist/logic/solidLogic.js.map +0 -1
  112. package/dist/logic/solidLogicSingleton.js +0 -54
  113. package/dist/logic/solidLogicSingleton.js.map +0 -1
  114. package/dist/profile/profileLogic.js +0 -165
  115. package/dist/profile/profileLogic.js.map +0 -1
  116. package/dist/solid-logic.esm.external.js +0 -12725
  117. package/dist/solid-logic.esm.external.js.map +0 -1
  118. package/dist/solid-logic.esm.external.min.js +0 -32
  119. package/dist/solid-logic.esm.external.min.js.map +0 -1
  120. package/dist/solid-logic.js +0 -12802
  121. package/dist/solid-logic.js.map +0 -1
  122. package/dist/solid-logic.min.js +0 -32
  123. package/dist/solid-logic.min.js.map +0 -1
  124. package/dist/typeIndex/typeIndexLogic.js +0 -222
  125. package/dist/typeIndex/typeIndexLogic.js.map +0 -1
  126. package/dist/util/containerLogic.js.map +0 -1
  127. package/dist/util/debug.d.ts.map +0 -1
  128. package/dist/util/debug.js +0 -20
  129. package/dist/util/debug.js.map +0 -1
  130. package/dist/util/utilityLogic.js +0 -180
  131. package/dist/util/utilityLogic.js.map +0 -1
  132. package/dist/util/utils.js +0 -47
  133. package/dist/util/utils.js.map +0 -1
  134. package/dist/versionInfo.js +0 -33
  135. package/dist/versionInfo.js.map +0 -1
  136. /package/{dist → lib}/authSession/authSession.d.ts +0 -0
  137. /package/{dist → lib}/authSession/authSession.d.ts.map +0 -0
  138. /package/{dist → lib}/authn/authUtil.d.ts.map +0 -0
  139. /package/{dist → lib}/chat/chatLogic.d.ts.map +0 -0
  140. /package/{dist → lib}/issuer/issuerLogic.d.ts +0 -0
  141. /package/{dist → lib}/issuer/issuerLogic.d.ts.map +0 -0
  142. /package/{dist → lib}/logic/CustomError.d.ts +0 -0
  143. /package/{dist → lib}/logic/solidLogicSingleton.d.ts +0 -0
  144. /package/{dist → lib}/logic/solidLogicSingleton.d.ts.map +0 -0
  145. /package/{dist → lib}/profile/profileLogic.d.ts.map +0 -0
  146. /package/{dist → lib}/typeIndex/typeIndexLogic.d.ts +0 -0
  147. /package/{dist → lib}/typeIndex/typeIndexLogic.d.ts.map +0 -0
  148. /package/{dist → lib}/types.d.ts.map +0 -0
  149. /package/{dist → lib}/types.js +0 -0
  150. /package/{dist → lib}/types.js.map +0 -0
  151. /package/{dist → lib}/util/debug.d.ts +0 -0
  152. /package/{dist → lib}/util/ns.d.ts +0 -0
  153. /package/{dist → lib}/util/ns.d.ts.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomError.js","sourceRoot":"","sources":["../../src/logic/CustomError.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;IAA0B,+BAAK;IAC3B,qBAAY,OAAgB;;QACxB,YAAA,MAAK,YAAC,OAAO,CAAC,SAAC;QACf,0EAA0E;QAC1E,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,WAAW,SAAS,CAAC,CAAC,CAAC,0BAA0B;QAC7E,KAAI,CAAC,IAAI,GAAG,WAAW,IAAI,CAAC,CAAC,qCAAqC;;IACtE,CAAC;IACL,kBAAC;AAAD,CAAC,AAPD,CAA0B,KAAK,GAO9B;AAED;IAAuC,qCAAW;IAAlD;;IAAoD,CAAC;IAAD,wBAAC;AAAD,CAAC,AAArD,CAAuC,WAAW,GAAG;AAAxC,8CAAiB;AAE9B;IAA+C,6CAAW;IAA1D;;IAA4D,CAAC;IAAD,gCAAC;AAAD,CAAC,AAA7D,CAA+C,WAAW,GAAG;AAAhD,8DAAyB;AAEtC;IAA8C,4CAAW;IAAzD;;IAA2D,CAAC;IAAD,+BAAC;AAAD,CAAC,AAA5D,CAA8C,WAAW,GAAG;AAA/C,4DAAwB;AAErC;IAAmC,iCAAW;IAA9C;;IAAgD,CAAC;IAAD,oBAAC;AAAD,CAAC,AAAjD,CAAmC,WAAW,GAAG;AAApC,sCAAa;AAE1B;IAAsC,oCAAW;IAAjD;;IAAoD,CAAC;IAAD,uBAAC;AAAD,CAAC,AAArD,CAAsC,WAAW,GAAI;AAAxC,4CAAgB;AAE7B;IAAuC,qCAAW;IAAlD;;IAAoD,CAAC;IAAD,wBAAC;AAAD,CAAC,AAArD,CAAuC,WAAW,GAAG;AAAxC,8CAAiB;AAE9B;IAAgC,8BAAW;IAGvC,oBAAY,MAAc,EAAE,OAAgB;QACxC,YAAA,MAAK,YAAC,OAAO,CAAC,SAAC;QACf,KAAI,CAAC,MAAM,GAAG,MAAM,CAAC;;IACzB,CAAC;IACL,iBAAC;AAAD,CAAC,AAPD,CAAgC,WAAW,GAO1C;AAPY,gCAAU"}
@@ -0,0 +1,6 @@
1
+ import { Session } from "@inrupt/solid-client-authn-browser";
2
+ import { SolidLogic } from "../types";
3
+ export declare function createSolidLogic(specialFetch: {
4
+ fetch: (url: any, requestInit: any) => any;
5
+ }, session: Session): SolidLogic;
6
+ //# sourceMappingURL=solidLogic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solidLogic.d.ts","sourceRoot":"","sources":["../../src/logic/solidLogic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAA;AAW5D,OAAO,EAAc,UAAU,EAAE,MAAM,UAAU,CAAA;AASjD,wBAAgB,gBAAgB,CAAC,YAAY,EAAE;IAAE,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,KAAK,GAAG,CAAA;CAAE,EAAE,OAAO,EAAE,OAAO,GAAG,UAAU,CAuD3H"}
1
+ {"version":3,"file":"solidLogic.d.ts","sourceRoot":"","sources":["../../src/logic/solidLogic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAW7D,OAAO,EAAc,UAAU,EAAE,MAAM,UAAU,CAAC;AASlD,wBAAgB,gBAAgB,CAAC,YAAY,EAAE;IAAE,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,KAAK,GAAG,CAAA;CAAE,EAAE,OAAO,EAAE,OAAO,GAAG,UAAU,CAuD3H"}
@@ -34,16 +34,16 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.createSolidLogic = createSolidLogic;
37
- const rdf = __importStar(require("rdflib"));
38
- const aclLogic_1 = require("../acl/aclLogic");
39
- const SolidAuthnLogic_1 = require("../authn/SolidAuthnLogic");
40
- const chatLogic_1 = require("../chat/chatLogic");
41
- const inboxLogic_1 = require("../inbox/inboxLogic");
42
- const profileLogic_1 = require("../profile/profileLogic");
43
- const typeIndexLogic_1 = require("../typeIndex/typeIndexLogic");
44
- const containerLogic_1 = require("../util/containerLogic");
45
- const utilityLogic_1 = require("../util/utilityLogic");
46
- const debug = __importStar(require("../util/debug"));
37
+ var rdf = __importStar(require("rdflib"));
38
+ var aclLogic_1 = require("../acl/aclLogic");
39
+ var SolidAuthnLogic_1 = require("../authn/SolidAuthnLogic");
40
+ var chatLogic_1 = require("../chat/chatLogic");
41
+ var inboxLogic_1 = require("../inbox/inboxLogic");
42
+ var profileLogic_1 = require("../profile/profileLogic");
43
+ var typeIndexLogic_1 = require("../typeIndex/typeIndexLogic");
44
+ var containerLogic_1 = require("../util/containerLogic");
45
+ var utilityLogic_1 = require("../util/utilityLogic");
46
+ var debug = __importStar(require("../util/debug"));
47
47
  /*
48
48
  ** It is important to distinquish `fetch`, a function provided by the browser
49
49
  ** and `Fetcher`, a helper object for the rdflib Store which turns it
@@ -52,26 +52,27 @@ const debug = __importStar(require("../util/debug"));
52
52
  */
53
53
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
54
54
  function createSolidLogic(specialFetch, session) {
55
- debug.log('SolidLogic: Unique instance created. There should only be one of these.');
56
- const store = rdf.graph();
55
+ debug.log("SolidLogic: Unique instance created. There should only be one of these.");
56
+ var store = rdf.graph();
57
57
  rdf.fetcher(store, { fetch: specialFetch.fetch }); // Attach a web I/O module, store.fetcher
58
58
  store.updater = new rdf.UpdateManager(store); // Add real-time live updates store.updater
59
59
  store.features = []; // disable automatic node merging on store load
60
- const authn = new SolidAuthnLogic_1.SolidAuthnLogic(session);
61
- const acl = (0, aclLogic_1.createAclLogic)(store);
62
- const containerLogic = (0, containerLogic_1.createContainerLogic)(store);
63
- const utilityLogic = (0, utilityLogic_1.createUtilityLogic)(store, acl, containerLogic);
64
- const profile = (0, profileLogic_1.createProfileLogic)(store, authn, utilityLogic);
65
- const chat = (0, chatLogic_1.createChatLogic)(store, profile);
66
- const inbox = (0, inboxLogic_1.createInboxLogic)(store, profile, utilityLogic, containerLogic, acl);
67
- const typeIndex = (0, typeIndexLogic_1.createTypeIndexLogic)(store, authn, profile, utilityLogic);
60
+ var authn = new SolidAuthnLogic_1.SolidAuthnLogic(session);
61
+ var acl = (0, aclLogic_1.createAclLogic)(store);
62
+ var containerLogic = (0, containerLogic_1.createContainerLogic)(store);
63
+ var utilityLogic = (0, utilityLogic_1.createUtilityLogic)(store, acl, containerLogic);
64
+ var profile = (0, profileLogic_1.createProfileLogic)(store, authn, utilityLogic);
65
+ var chat = (0, chatLogic_1.createChatLogic)(store, profile);
66
+ var inbox = (0, inboxLogic_1.createInboxLogic)(store, profile, utilityLogic, containerLogic, acl);
67
+ var typeIndex = (0, typeIndexLogic_1.createTypeIndexLogic)(store, authn, profile, utilityLogic);
68
68
  debug.log('SolidAuthnLogic initialized');
69
69
  function load(doc) {
70
70
  return store.fetcher.load(doc);
71
71
  }
72
72
  // @@@@ use the one in rdflib.js when it is available and delete this
73
- function updatePromise(del, ins = []) {
74
- return new Promise((resolve, reject) => {
73
+ function updatePromise(del, ins) {
74
+ if (ins === void 0) { ins = []; }
75
+ return new Promise(function (resolve, reject) {
75
76
  store.updater.update(del, ins, function (_uri, ok, errorBody) {
76
77
  if (!ok) {
77
78
  reject(new Error(errorBody));
@@ -86,16 +87,16 @@ function createSolidLogic(specialFetch, session) {
86
87
  store.statements.slice().forEach(store.remove.bind(store));
87
88
  }
88
89
  return {
89
- store,
90
- authn,
91
- acl,
92
- inbox,
93
- chat,
94
- profile,
95
- typeIndex,
96
- load,
97
- updatePromise,
98
- clearStore
90
+ store: store,
91
+ authn: authn,
92
+ acl: acl,
93
+ inbox: inbox,
94
+ chat: chat,
95
+ profile: profile,
96
+ typeIndex: typeIndex,
97
+ load: load,
98
+ updatePromise: updatePromise,
99
+ clearStore: clearStore
99
100
  };
100
101
  }
101
102
  //# sourceMappingURL=solidLogic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solidLogic.js","sourceRoot":"","sources":["../../src/logic/solidLogic.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,4CAuDC;AA1ED,0CAA8B;AAE9B,4CAAiD;AACjD,4DAA2D;AAC3D,+CAAoD;AACpD,kDAAuD;AACvD,wDAA6D;AAC7D,8DAAmE;AACnE,yDAA8D;AAC9D,qDAA0D;AAE1D,mDAAuC;AACvC;;;;;EAKE;AACF,8DAA8D;AAC9D,SAAgB,gBAAgB,CAAC,YAA4D,EAAE,OAAgB;IAE3G,KAAK,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAA;IACrF,IAAM,KAAK,GAAc,GAAG,CAAC,KAAK,EAAe,CAAA;IACjD,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAC,KAAK,EAAE,YAAY,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC,yCAAyC;IAC1F,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,2CAA2C;IACzF,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAA,CAAC,+CAA+C;IAEnE,IAAM,KAAK,GAAe,IAAI,iCAAe,CAAC,OAAO,CAAC,CAAA;IAEtD,IAAM,GAAG,GAAG,IAAA,yBAAc,EAAC,KAAK,CAAC,CAAA;IACjC,IAAM,cAAc,GAAG,IAAA,qCAAoB,EAAC,KAAK,CAAC,CAAA;IAClD,IAAM,YAAY,GAAG,IAAA,iCAAkB,EAAC,KAAK,EAAE,GAAG,EAAE,cAAc,CAAC,CAAA;IACnE,IAAM,OAAO,GAAG,IAAA,iCAAkB,EAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA;IAC9D,IAAM,IAAI,GAAG,IAAA,2BAAe,EAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC5C,IAAM,KAAK,GAAG,IAAA,6BAAgB,EAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,CAAC,CAAA;IACjF,IAAM,SAAS,GAAG,IAAA,qCAAoB,EAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;IAC3E,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;IAExC,SAAS,IAAI,CAAC,GAAqC;QAC/C,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,qEAAqE;IACrE,SAAS,aAAa,CAClB,GAAqB,EACrB,GAA0B;QAA1B,oBAAA,EAAA,QAA0B;QAE1B,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YACnC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,IAAI,EAAE,EAAE,EAAE,SAAS;gBACxD,IAAI,CAAC,EAAE,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACR,OAAO,EAAE,CAAC;gBACV,CAAC;YACL,CAAC,CAAC,CAAC,CAAC,WAAW;QACf,CAAC,CAAC,CAAC,CAAC,UAAU;IAClB,CAAC;IAED,SAAS,UAAU;QACf,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO;QACH,KAAK,OAAA;QACL,KAAK,OAAA;QACL,GAAG,KAAA;QACH,KAAK,OAAA;QACL,IAAI,MAAA;QACJ,OAAO,SAAA;QACP,SAAS,WAAA;QACT,IAAI,MAAA;QACJ,aAAa,eAAA;QACb,UAAU,YAAA;KACb,CAAA;AACL,CAAC"}
@@ -0,0 +1,94 @@
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.solidLogicSingleton = void 0;
73
+ var debug = __importStar(require("../util/debug"));
74
+ var authSession_1 = require("../authSession/authSession");
75
+ var solidLogic_1 = require("./solidLogic");
76
+ var _fetch = function (url, requestInit) { return __awaiter(void 0, void 0, void 0, function () {
77
+ var omitCreds;
78
+ return __generator(this, function (_a) {
79
+ omitCreds = requestInit && requestInit.credentials && requestInit.credentials == 'omit';
80
+ if (authSession_1.authSession.info.webId && !omitCreds) { // see https://github.com/solidos/solidos/issues/114
81
+ // In fact fetch should respect credentials omit itself
82
+ return [2 /*return*/, authSession_1.authSession.fetch(url, requestInit)];
83
+ }
84
+ else {
85
+ return [2 /*return*/, window.fetch(url, requestInit)];
86
+ }
87
+ return [2 /*return*/];
88
+ });
89
+ }); };
90
+ //this const makes solidLogicSingleton global accessible in mashlib
91
+ var solidLogicSingleton = (0, solidLogic_1.createSolidLogic)({ fetch: _fetch }, authSession_1.authSession);
92
+ exports.solidLogicSingleton = solidLogicSingleton;
93
+ debug.log('Unique quadstore initialized.');
94
+ //# sourceMappingURL=solidLogicSingleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solidLogicSingleton.js","sourceRoot":"","sources":["../../src/logic/solidLogicSingleton.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAsC;AACtC,0DAAwD;AACxD,2CAA+C;AAE/C,IAAM,MAAM,GAAG,UAAO,GAAG,EAAE,WAAW;;;QAC5B,SAAS,GAAG,WAAW,IAAI,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,IAAI,MAAM,CAAA;QAC7F,IAAI,yBAAW,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,oDAAoD;YAC5F,uDAAuD;YACvD,sBAAO,yBAAW,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,EAAA;QAC9C,CAAC;aAAM,CAAC;YACJ,sBAAO,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,EAAA;QACzC,CAAC;;;KACJ,CAAA;AAED,mEAAmE;AACnE,IAAM,mBAAmB,GAAG,IAAA,6BAAgB,EAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,yBAAW,CAAC,CAAA;AAInE,kDAAmB;AAF5B,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA"}
@@ -1,3 +1,3 @@
1
- import { ProfileLogic } from '../types';
1
+ import { ProfileLogic } from "../types";
2
2
  export declare function createProfileLogic(store: any, authn: any, utilityLogic: any): ProfileLogic;
3
3
  //# sourceMappingURL=profileLogic.d.ts.map
@@ -0,0 +1,259 @@
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.createProfileLogic = createProfileLogic;
73
+ var CustomError_1 = require("../logic/CustomError");
74
+ var debug = __importStar(require("../util/debug"));
75
+ var ns_1 = require("../util/ns");
76
+ var utils_1 = require("../util/utils");
77
+ function createProfileLogic(store, authn, utilityLogic) {
78
+ var ns = ns_1.ns;
79
+ /**
80
+ * loads the preference without throwing errors - if it can create it it does so.
81
+ * remark: it still throws error if it cannot load profile.
82
+ * @param user
83
+ * @returns undefined if preferenceFile cannot be returned or NamedNode if it can find it or create it
84
+ */
85
+ function silencedLoadPreferences(user) {
86
+ return __awaiter(this, void 0, void 0, function () {
87
+ var err_1;
88
+ return __generator(this, function (_a) {
89
+ switch (_a.label) {
90
+ case 0:
91
+ _a.trys.push([0, 2, , 3]);
92
+ return [4 /*yield*/, loadPreferences(user)
93
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
94
+ ];
95
+ case 1: return [2 /*return*/, _a.sent()
96
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
97
+ ];
98
+ case 2:
99
+ err_1 = _a.sent();
100
+ return [2 /*return*/, undefined];
101
+ case 3: return [2 /*return*/];
102
+ }
103
+ });
104
+ });
105
+ }
106
+ /**
107
+ * loads the preference without returning different errors if it cannot create or load it.
108
+ * remark: it also throws error if it cannot load profile.
109
+ * @param user
110
+ * @returns undefined if preferenceFile cannot be an Error or NamedNode if it can find it or create it
111
+ */
112
+ function loadPreferences(user) {
113
+ return __awaiter(this, void 0, void 0, function () {
114
+ var possiblePreferencesFile, preferencesFile, err_2, message, err_3, msg;
115
+ return __generator(this, function (_a) {
116
+ switch (_a.label) {
117
+ case 0: return [4 /*yield*/, loadProfile(user)];
118
+ case 1:
119
+ _a.sent();
120
+ possiblePreferencesFile = (0, utils_1.suggestPreferencesFile)(user);
121
+ _a.label = 2;
122
+ case 2:
123
+ _a.trys.push([2, 4, , 5]);
124
+ return [4 /*yield*/, utilityLogic.followOrCreateLink(user, ns.space('preferencesFile'), possiblePreferencesFile, user.doc())];
125
+ case 3:
126
+ preferencesFile = _a.sent();
127
+ return [3 /*break*/, 5];
128
+ case 4:
129
+ err_2 = _a.sent();
130
+ message = "User ".concat(user, " has no pointer in profile to preferences file.");
131
+ debug.warn(message);
132
+ // we are listing the possible errors
133
+ if (err_2 instanceof CustomError_1.NotEditableError) {
134
+ throw err_2;
135
+ }
136
+ if (err_2 instanceof CustomError_1.WebOperationError) {
137
+ throw err_2;
138
+ }
139
+ if (err_2 instanceof CustomError_1.UnauthorizedError) {
140
+ throw err_2;
141
+ }
142
+ if (err_2 instanceof CustomError_1.CrossOriginForbiddenError) {
143
+ throw err_2;
144
+ }
145
+ if (err_2 instanceof CustomError_1.SameOriginForbiddenError) {
146
+ throw err_2;
147
+ }
148
+ if (err_2 instanceof CustomError_1.FetchError) {
149
+ throw err_2;
150
+ }
151
+ throw err_2;
152
+ case 5:
153
+ _a.trys.push([5, 7, , 8]);
154
+ return [4 /*yield*/, store.fetcher.load(preferencesFile)];
155
+ case 6:
156
+ _a.sent();
157
+ return [3 /*break*/, 8];
158
+ case 7:
159
+ err_3 = _a.sent();
160
+ msg = "Unable to load preference of user ".concat(user, ": ").concat(err_3);
161
+ debug.warn(msg);
162
+ if (err_3.response.status === 401) {
163
+ throw new CustomError_1.UnauthorizedError();
164
+ }
165
+ if (err_3.response.status === 403) {
166
+ if ((0, utils_1.differentOrigin)(preferencesFile)) {
167
+ throw new CustomError_1.CrossOriginForbiddenError();
168
+ }
169
+ throw new CustomError_1.SameOriginForbiddenError();
170
+ }
171
+ /*if (err.response.status === 404) {
172
+ throw new NotFoundError();
173
+ }*/
174
+ throw new Error(msg);
175
+ case 8: return [2 /*return*/, preferencesFile];
176
+ }
177
+ });
178
+ });
179
+ }
180
+ function loadProfile(user) {
181
+ return __awaiter(this, void 0, void 0, function () {
182
+ var err_4;
183
+ return __generator(this, function (_a) {
184
+ switch (_a.label) {
185
+ case 0:
186
+ if (!user) {
187
+ throw new Error("loadProfile: no user given.");
188
+ }
189
+ _a.label = 1;
190
+ case 1:
191
+ _a.trys.push([1, 3, , 4]);
192
+ return [4 /*yield*/, store.fetcher.load(user.doc())];
193
+ case 2:
194
+ _a.sent();
195
+ return [3 /*break*/, 4];
196
+ case 3:
197
+ err_4 = _a.sent();
198
+ throw new Error("Unable to load profile of user ".concat(user, ": ").concat(err_4));
199
+ case 4: return [2 /*return*/, user.doc()];
200
+ }
201
+ });
202
+ });
203
+ }
204
+ function loadMe() {
205
+ return __awaiter(this, void 0, void 0, function () {
206
+ var me;
207
+ return __generator(this, function (_a) {
208
+ switch (_a.label) {
209
+ case 0:
210
+ me = authn.currentUser();
211
+ if (me === null) {
212
+ throw new Error("Current user not found! Not logged in?");
213
+ }
214
+ return [4 /*yield*/, store.fetcher.load(me.doc())];
215
+ case 1:
216
+ _a.sent();
217
+ return [2 /*return*/, me];
218
+ }
219
+ });
220
+ });
221
+ }
222
+ function getPodRoot(user) {
223
+ var podRoot = findStorage(user);
224
+ if (!podRoot) {
225
+ throw new Error("User pod root not found!");
226
+ }
227
+ return podRoot;
228
+ }
229
+ function getMainInbox(user) {
230
+ return __awaiter(this, void 0, void 0, function () {
231
+ var mainInbox;
232
+ return __generator(this, function (_a) {
233
+ switch (_a.label) {
234
+ case 0: return [4 /*yield*/, store.fetcher.load(user)];
235
+ case 1:
236
+ _a.sent();
237
+ mainInbox = store.any(user, ns.ldp("inbox"), undefined, user.doc());
238
+ if (!mainInbox) {
239
+ throw new Error("User main inbox not found!");
240
+ }
241
+ return [2 /*return*/, mainInbox];
242
+ }
243
+ });
244
+ });
245
+ }
246
+ function findStorage(me) {
247
+ return store.any(me, ns.space("storage"), undefined, me.doc());
248
+ }
249
+ return {
250
+ loadMe: loadMe,
251
+ getPodRoot: getPodRoot,
252
+ getMainInbox: getMainInbox,
253
+ findStorage: findStorage,
254
+ loadPreferences: loadPreferences,
255
+ loadProfile: loadProfile,
256
+ silencedLoadPreferences: silencedLoadPreferences
257
+ };
258
+ }
259
+ //# sourceMappingURL=profileLogic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileLogic.js","sourceRoot":"","sources":["../../src/profile/profileLogic.ts"],"names":[],"mappings":"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"}