solid-logic 3.1.1-f0ed025 → 3.1.1-f480b7d

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 +105 -2
  2. package/dist/acl/aclLogic.d.ts +5 -0
  3. package/{lib → dist}/acl/aclLogic.d.ts.map +1 -1
  4. package/dist/acl/aclLogic.js +122 -0
  5. package/dist/acl/aclLogic.js.map +1 -0
  6. package/{lib → dist}/authSession/authSession.js +1 -1
  7. package/{lib → dist}/authSession/authSession.js.map +1 -1
  8. package/{lib → dist}/authn/SolidAuthnLogic.d.ts +3 -3
  9. package/{lib → dist}/authn/SolidAuthnLogic.d.ts.map +1 -1
  10. package/dist/authn/SolidAuthnLogic.js +147 -0
  11. package/dist/authn/SolidAuthnLogic.js.map +1 -0
  12. package/{lib → dist}/authn/authUtil.d.ts +1 -1
  13. package/{lib → dist}/authn/authUtil.js +12 -12
  14. package/dist/authn/authUtil.js.map +1 -0
  15. package/{lib → dist}/chat/chatLogic.d.ts +1 -1
  16. package/dist/chat/chatLogic.js +160 -0
  17. package/dist/chat/chatLogic.js.map +1 -0
  18. package/{lib → dist}/inbox/inboxLogic.d.ts +1 -1
  19. package/{lib → dist}/inbox/inboxLogic.d.ts.map +1 -1
  20. package/dist/inbox/inboxLogic.js +55 -0
  21. package/dist/inbox/inboxLogic.js.map +1 -0
  22. package/{lib → dist}/index.d.ts +1 -1
  23. package/{lib → dist}/index.d.ts.map +1 -1
  24. package/{lib → dist}/index.js +4 -4
  25. package/{lib → dist}/index.js.map +1 -1
  26. package/dist/issuer/issuerLogic.js +40 -0
  27. package/dist/issuer/issuerLogic.js.map +1 -0
  28. package/{lib → dist}/logic/CustomError.d.ts.map +1 -1
  29. package/dist/logic/CustomError.js +38 -0
  30. package/dist/logic/CustomError.js.map +1 -0
  31. package/dist/logic/solidLogic.d.ts +6 -0
  32. package/{lib → dist}/logic/solidLogic.d.ts.map +1 -1
  33. package/{lib → dist}/logic/solidLogic.js +32 -33
  34. package/dist/logic/solidLogic.js.map +1 -0
  35. package/dist/logic/solidLogicSingleton.js +54 -0
  36. package/dist/logic/solidLogicSingleton.js.map +1 -0
  37. package/{lib → dist}/profile/profileLogic.d.ts +1 -1
  38. package/dist/profile/profileLogic.js +165 -0
  39. package/dist/profile/profileLogic.js.map +1 -0
  40. package/dist/solid-logic.esm.external.js +12725 -0
  41. package/dist/solid-logic.esm.external.js.map +1 -0
  42. package/dist/solid-logic.esm.external.min.js +32 -0
  43. package/dist/solid-logic.esm.external.min.js.map +1 -0
  44. package/dist/solid-logic.js +12802 -0
  45. package/dist/solid-logic.js.map +1 -0
  46. package/dist/solid-logic.min.js +32 -0
  47. package/dist/solid-logic.min.js.map +1 -0
  48. package/dist/typeIndex/typeIndexLogic.js +222 -0
  49. package/dist/typeIndex/typeIndexLogic.js.map +1 -0
  50. package/{lib → dist}/types.d.ts +2 -2
  51. package/{lib → dist}/util/containerLogic.d.ts +1 -1
  52. package/{lib → dist}/util/containerLogic.d.ts.map +1 -1
  53. package/{src/util/containerLogic.ts → dist/util/containerLogic.js} +20 -25
  54. package/dist/util/containerLogic.js.map +1 -0
  55. package/dist/util/debug.d.ts.map +1 -0
  56. package/dist/util/debug.js +20 -0
  57. package/dist/util/debug.js.map +1 -0
  58. package/{lib → dist}/util/ns.js +2 -2
  59. package/{lib → dist}/util/ns.js.map +1 -1
  60. package/{lib → dist}/util/utilityLogic.d.ts +1 -1
  61. package/{lib → dist}/util/utilityLogic.d.ts.map +1 -1
  62. package/dist/util/utilityLogic.js +180 -0
  63. package/dist/util/utilityLogic.js.map +1 -0
  64. package/{lib → dist}/util/utils.d.ts +1 -1
  65. package/{lib → dist}/util/utils.d.ts.map +1 -1
  66. package/dist/util/utils.js +47 -0
  67. package/dist/util/utils.js.map +1 -0
  68. package/dist/versionInfo.js +33 -0
  69. package/dist/versionInfo.js.map +1 -0
  70. package/package.json +50 -22
  71. package/eslint.config.js +0 -29
  72. package/jest.config.js +0 -10
  73. package/lib/acl/aclLogic.d.ts +0 -5
  74. package/lib/acl/aclLogic.js +0 -168
  75. package/lib/acl/aclLogic.js.map +0 -1
  76. package/lib/authn/SolidAuthnLogic.js +0 -193
  77. package/lib/authn/SolidAuthnLogic.js.map +0 -1
  78. package/lib/authn/authUtil.js.map +0 -1
  79. package/lib/chat/chatLogic.js +0 -272
  80. package/lib/chat/chatLogic.js.map +0 -1
  81. package/lib/inbox/inboxLogic.js +0 -139
  82. package/lib/inbox/inboxLogic.js.map +0 -1
  83. package/lib/issuer/issuerLogic.js +0 -52
  84. package/lib/issuer/issuerLogic.js.map +0 -1
  85. package/lib/logic/CustomError.js +0 -89
  86. package/lib/logic/CustomError.js.map +0 -1
  87. package/lib/logic/solidLogic.d.ts +0 -6
  88. package/lib/logic/solidLogic.js.map +0 -1
  89. package/lib/logic/solidLogicSingleton.js +0 -94
  90. package/lib/logic/solidLogicSingleton.js.map +0 -1
  91. package/lib/profile/profileLogic.js +0 -259
  92. package/lib/profile/profileLogic.js.map +0 -1
  93. package/lib/typeIndex/typeIndexLogic.js +0 -399
  94. package/lib/typeIndex/typeIndexLogic.js.map +0 -1
  95. package/lib/util/containerLogic.js +0 -102
  96. package/lib/util/containerLogic.js.map +0 -1
  97. package/lib/util/debug.d.ts.map +0 -1
  98. package/lib/util/debug.js +0 -40
  99. package/lib/util/debug.js.map +0 -1
  100. package/lib/util/utilityLogic.js +0 -284
  101. package/lib/util/utilityLogic.js.map +0 -1
  102. package/lib/util/utils.js +0 -47
  103. package/lib/util/utils.js.map +0 -1
  104. package/src/acl/aclLogic.ts +0 -156
  105. package/src/authSession/authSession.ts +0 -7
  106. package/src/authn/SolidAuthnLogic.ts +0 -127
  107. package/src/authn/authUtil.ts +0 -70
  108. package/src/chat/chatLogic.ts +0 -226
  109. package/src/inbox/inboxLogic.ts +0 -59
  110. package/src/index.ts +0 -22
  111. package/src/issuer/issuerLogic.ts +0 -40
  112. package/src/logic/CustomError.ts +0 -29
  113. package/src/logic/solidLogic.ts +0 -76
  114. package/src/logic/solidLogicSingleton.ts +0 -20
  115. package/src/profile/profileLogic.ts +0 -125
  116. package/src/typeIndex/typeIndexLogic.ts +0 -198
  117. package/src/types.ts +0 -122
  118. package/src/util/debug.ts +0 -20
  119. package/src/util/ns.ts +0 -5
  120. package/src/util/utilityLogic.ts +0 -156
  121. package/src/util/utils.ts +0 -52
  122. package/test/aclLogic.test.ts +0 -24
  123. package/test/authUtil.test.ts +0 -23
  124. package/test/chatLogic.test.ts +0 -316
  125. package/test/container.test.ts +0 -58
  126. package/test/helpers/dataSetup.ts +0 -134
  127. package/test/helpers/setup.ts +0 -17
  128. package/test/inboxLogic.test.ts +0 -218
  129. package/test/logic.test.ts +0 -29
  130. package/test/profileLogic.test.ts +0 -246
  131. package/test/solidAuthLogic.test.ts +0 -49
  132. package/test/typeIndexLogic.test.ts +0 -255
  133. package/test/utilityLogic.test.ts +0 -179
  134. package/test/utils.test.ts +0 -32
  135. package/tsconfig.json +0 -75
  136. /package/{lib → dist}/authSession/authSession.d.ts +0 -0
  137. /package/{lib → dist}/authSession/authSession.d.ts.map +0 -0
  138. /package/{lib → dist}/authn/authUtil.d.ts.map +0 -0
  139. /package/{lib → dist}/chat/chatLogic.d.ts.map +0 -0
  140. /package/{lib → dist}/issuer/issuerLogic.d.ts +0 -0
  141. /package/{lib → dist}/issuer/issuerLogic.d.ts.map +0 -0
  142. /package/{lib → dist}/logic/CustomError.d.ts +0 -0
  143. /package/{lib → dist}/logic/solidLogicSingleton.d.ts +0 -0
  144. /package/{lib → dist}/logic/solidLogicSingleton.d.ts.map +0 -0
  145. /package/{lib → dist}/profile/profileLogic.d.ts.map +0 -0
  146. /package/{lib → dist}/typeIndex/typeIndexLogic.d.ts +0 -0
  147. /package/{lib → dist}/typeIndex/typeIndexLogic.d.ts.map +0 -0
  148. /package/{lib → dist}/types.d.ts.map +0 -0
  149. /package/{lib → dist}/types.js +0 -0
  150. /package/{lib → dist}/types.js.map +0 -0
  151. /package/{lib → dist}/util/debug.d.ts +0 -0
  152. /package/{lib → dist}/util/ns.d.ts +0 -0
  153. /package/{lib → dist}/util/ns.d.ts.map +0 -0
@@ -0,0 +1,222 @@
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.createTypeIndexLogic = createTypeIndexLogic;
37
+ const rdflib_1 = require("rdflib");
38
+ const debug = __importStar(require("../util/debug"));
39
+ const ns_1 = require("../util/ns");
40
+ const utils_1 = require("../util/utils");
41
+ function createTypeIndexLogic(store, authn, profileLogic, utilityLogic) {
42
+ const ns = ns_1.ns;
43
+ function getRegistrations(instance, theClass) {
44
+ return store
45
+ .each(undefined, ns.solid('instance'), instance)
46
+ .filter((r) => {
47
+ return store.holds(r, ns.solid('forClass'), theClass);
48
+ });
49
+ }
50
+ async function loadTypeIndexesFor(user) {
51
+ if (!user)
52
+ throw new Error('loadTypeIndexesFor: No user given');
53
+ const profile = await profileLogic.loadProfile(user);
54
+ const suggestion = suggestPublicTypeIndex(user);
55
+ let publicTypeIndex;
56
+ try {
57
+ publicTypeIndex = await utilityLogic.followOrCreateLink(user, ns.solid('publicTypeIndex'), suggestion, profile);
58
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
59
+ }
60
+ catch (err) {
61
+ const message = `User ${user} has no pointer in profile to publicTypeIndex file.`;
62
+ debug.warn(message);
63
+ }
64
+ const publicScopes = publicTypeIndex ? [{ label: 'public', index: publicTypeIndex, agent: user }] : [];
65
+ let preferencesFile;
66
+ try {
67
+ preferencesFile = await profileLogic.silencedLoadPreferences(user);
68
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
69
+ }
70
+ catch (err) {
71
+ preferencesFile = null;
72
+ }
73
+ let privateScopes;
74
+ if (preferencesFile) { // watch out - can be in either as spec was not clear. Legacy is profile.
75
+ // If there is a legacy one linked from the profile, use that.
76
+ // Otherwiae use or make one linked from Preferences
77
+ const suggestedPrivateTypeIndex = suggestPrivateTypeIndex(preferencesFile);
78
+ let privateTypeIndex;
79
+ try {
80
+ privateTypeIndex = store.any(user, ns.solid('privateTypeIndex'), undefined, profile) ||
81
+ await utilityLogic.followOrCreateLink(user, ns.solid('privateTypeIndex'), suggestedPrivateTypeIndex, preferencesFile);
82
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
83
+ }
84
+ catch (err) {
85
+ const message = `User ${user} has no pointer in preference file to privateTypeIndex file.`;
86
+ debug.warn(message);
87
+ }
88
+ privateScopes = privateTypeIndex ? [{ label: 'private', index: privateTypeIndex, agent: user }] : [];
89
+ }
90
+ else {
91
+ privateScopes = [];
92
+ }
93
+ const scopes = publicScopes.concat(privateScopes);
94
+ if (scopes.length === 0)
95
+ return scopes;
96
+ const files = scopes.map(scope => scope.index);
97
+ try {
98
+ await store.fetcher.load(files);
99
+ }
100
+ catch (err) {
101
+ debug.warn('Problems loading type index: ', err);
102
+ }
103
+ return scopes;
104
+ }
105
+ async function loadCommunityTypeIndexes(user) {
106
+ let preferencesFile;
107
+ try {
108
+ preferencesFile = await profileLogic.silencedLoadPreferences(user);
109
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
110
+ }
111
+ catch (err) {
112
+ const message = `User ${user} has no pointer in profile to preferences file.`;
113
+ debug.warn(message);
114
+ }
115
+ if (preferencesFile) { // For now, pick up communities as simple links from the preferences file.
116
+ const communities = store.each(user, ns.solid('community'), undefined, preferencesFile).concat(store.each(user, ns.solid('community'), undefined, user.doc()));
117
+ let result = [];
118
+ for (const org of communities) {
119
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
120
+ result = result.concat(await loadTypeIndexesFor(org));
121
+ }
122
+ return result;
123
+ }
124
+ return []; // No communities
125
+ }
126
+ async function loadAllTypeIndexes(user) {
127
+ return (await loadTypeIndexesFor(user)).concat((await loadCommunityTypeIndexes(user)).flat());
128
+ }
129
+ async function getScopedAppInstances(klass, user) {
130
+ const scopes = await loadAllTypeIndexes(user);
131
+ let scopedApps = [];
132
+ for (const scope of scopes) {
133
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
134
+ const scopedApps0 = await getScopedAppsFromIndex(scope, klass);
135
+ scopedApps = scopedApps.concat(scopedApps0);
136
+ }
137
+ return scopedApps;
138
+ }
139
+ // This is the function signature which used to be in solid-ui/logic
140
+ // Recommended to use getScopedAppInstances instead as it provides more information.
141
+ //
142
+ async function getAppInstances(klass) {
143
+ const user = authn.currentUser();
144
+ if (!user)
145
+ throw new Error('getAppInstances: Must be logged in to find apps.');
146
+ const scopedAppInstances = await getScopedAppInstances(klass, user);
147
+ return scopedAppInstances.map(scoped => scoped.instance);
148
+ }
149
+ function suggestPublicTypeIndex(me) {
150
+ return (0, rdflib_1.sym)(me.doc().dir()?.uri + 'publicTypeIndex.ttl');
151
+ }
152
+ // Note this one is based off the pref file not the profile
153
+ function suggestPrivateTypeIndex(preferencesFile) {
154
+ return (0, rdflib_1.sym)(preferencesFile.doc().dir()?.uri + 'privateTypeIndex.ttl');
155
+ }
156
+ /*
157
+ * Register a new app in a type index
158
+ * used in chat in bookmark.js (solid-ui)
159
+ * Returns the registration object if successful else null
160
+ */
161
+ async function registerInTypeIndex(instance, index, theClass) {
162
+ const registration = (0, utils_1.newThing)(index);
163
+ const ins = [
164
+ // See https://github.com/solid/solid/blob/main/proposals/data-discovery.md
165
+ (0, rdflib_1.st)(registration, ns.rdf('type'), ns.solid('TypeRegistration'), index),
166
+ (0, rdflib_1.st)(registration, ns.solid('forClass'), theClass, index),
167
+ (0, rdflib_1.st)(registration, ns.solid('instance'), instance, index)
168
+ ];
169
+ try {
170
+ await store.updater.update([], ins);
171
+ }
172
+ catch (err) {
173
+ const msg = `Unable to register ${instance} in index ${index}: ${err}`;
174
+ console.warn(msg);
175
+ return null;
176
+ }
177
+ return registration;
178
+ }
179
+ async function deleteTypeIndexRegistration(item) {
180
+ const reg = store.the(null, ns.solid('instance'), item.instance, item.scope.index);
181
+ if (!reg)
182
+ throw new Error(`deleteTypeIndexRegistration: No registration found for ${item.instance}`);
183
+ const statements = store.statementsMatching(reg, null, null, item.scope.index);
184
+ await store.updater.update(statements, []);
185
+ }
186
+ async function getScopedAppsFromIndex(scope, theClass) {
187
+ const index = scope.index;
188
+ const results = [];
189
+ const registrations = store.statementsMatching(null, ns.solid('instance'), null, index)
190
+ .concat(store.statementsMatching(null, ns.solid('instanceContainer'), null, index))
191
+ .map(st => st.subject);
192
+ for (const reg of registrations) {
193
+ const klass = store.any(reg, ns.solid('forClass'), null, index);
194
+ if (!theClass || klass.sameTerm(theClass)) {
195
+ const instances = store.each(reg, ns.solid('instance'), null, index);
196
+ for (const instance of instances) {
197
+ results.push({ instance, type: klass, scope });
198
+ }
199
+ const containers = store.each(reg, ns.solid('instanceContainer'), null, index);
200
+ for (const instance of containers) {
201
+ await store.fetcher.load(instance);
202
+ results.push({ instance: (0, rdflib_1.sym)(instance.value), type: klass, scope });
203
+ }
204
+ }
205
+ }
206
+ return results;
207
+ }
208
+ return {
209
+ registerInTypeIndex,
210
+ getRegistrations,
211
+ loadTypeIndexesFor,
212
+ loadCommunityTypeIndexes,
213
+ loadAllTypeIndexes,
214
+ getScopedAppInstances,
215
+ getAppInstances,
216
+ suggestPublicTypeIndex,
217
+ suggestPrivateTypeIndex,
218
+ deleteTypeIndexRegistration,
219
+ getScopedAppsFromIndex
220
+ };
221
+ }
222
+ //# sourceMappingURL=typeIndexLogic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeIndexLogic.js","sourceRoot":"","sources":["../../src/typeIndex/typeIndexLogic.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,oDA+LC;AArMD,mCAA2C;AAE3C,qDAAsC;AACtC,mCAA4C;AAC5C,yCAAwC;AAExC,SAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY;IACzE,MAAM,EAAE,GAAG,OAAS,CAAA;IAEpB,SAAS,gBAAgB,CAAC,QAAQ,EAAE,QAAQ;QACxC,OAAO,KAAK;aACP,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC;aAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;IACV,CAAC;IAED,KAAK,UAAU,kBAAkB,CAAC,IAAe;QAC7C,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;QAC/D,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAEpD,MAAM,UAAU,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,eAAe,CAAA;QACnB,IAAI,CAAC;YACD,eAAe,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAc,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;YAChI,6DAA6D;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,QAAQ,IAAI,qDAAqD,CAAA;YACjF,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACvB,CAAC;QACD,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,eAA4B,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAEnH,IAAI,eAAe,CAAA;QACnB,IAAI,CAAC;YACD,eAAe,GAAG,MAAM,YAAY,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAA;YACtE,6DAA6D;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,eAAe,GAAG,IAAI,CAAA;QAC1B,CAAC;QAED,IAAI,aAAa,CAAA;QACjB,IAAI,eAAe,EAAE,CAAC,CAAC,0EAA0E;YAC7F,8DAA8D;YAC9D,oDAAoD;YACpD,MAAM,yBAAyB,GAAG,uBAAuB,CAAC,eAAe,CAAC,CAAA;YAC1E,IAAI,gBAAgB,CAAA;YACpB,IAAI,CAAC;gBACD,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC;oBAChF,MAAM,YAAY,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAc,EAAE,yBAAyB,EAAE,eAAe,CAAC,CAAA;gBAC1I,6DAA6D;YACzD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,QAAQ,IAAI,8DAA8D,CAAA;gBAC1F,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACvB,CAAC;YACD,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,gBAA6B,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACrH,CAAC;aAAM,CAAC;YACJ,aAAa,GAAG,EAAE,CAAA;QACtB,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QACjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,MAAM,CAAA;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC9C,IAAI,CAAC;YACD,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAA;QACpD,CAAC;QACD,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,KAAK,UAAU,wBAAwB,CAAC,IAAe;QACnD,IAAI,eAAe,CAAA;QACnB,IAAI,CAAC;YACD,eAAe,GAAG,MAAM,YAAY,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAA;YAClE,6DAA6D;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,QAAQ,IAAI,iDAAiD,CAAA;YAC7E,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACvB,CAAC;QACD,IAAI,eAAe,EAAE,CAAC,CAAC,0EAA0E;YAC7F,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,eAA4B,CAAC,CAAC,MAAM,CACvG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAe,CAAC,CAC9E,CAAA;YACD,IAAI,MAAM,GAAG,EAAE,CAAA;YACf,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC5B,8DAA8D;gBAC9D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,kBAAkB,CAAC,GAAgB,CAAQ,CAAC,CAAA;YAC7E,CAAC;YACD,OAAO,MAAM,CAAA;QACjB,CAAC;QACD,OAAO,EAAE,CAAA,CAAC,iBAAiB;IAC/B,CAAC;IAED,KAAK,UAAU,kBAAkB,CAAC,IAAe;QAC7C,OAAO,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IACjG,CAAC;IAED,KAAK,UAAU,qBAAqB,CAAC,KAAgB,EAAE,IAAe;QAClE,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAC7C,IAAI,UAAU,GAAG,EAAE,CAAA;QACnB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,8DAA8D;YAC9D,MAAM,WAAW,GAAG,MAAM,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAQ,CAAA;YACrE,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAC/C,CAAC;QACD,OAAO,UAAU,CAAA;IACrB,CAAC;IAED,oEAAoE;IACpE,oFAAoF;IACpF,EAAE;IACF,KAAK,UAAU,eAAe,CAAC,KAAgB;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;QAChC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;QAC9E,MAAM,kBAAkB,GAAG,MAAM,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACnE,OAAO,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC5D,CAAC;IAED,SAAS,sBAAsB,CAAC,EAAa;QACzC,OAAO,IAAA,YAAG,EAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,GAAG,qBAAqB,CAAC,CAAA;IAC3D,CAAC;IACD,2DAA2D;IAE3D,SAAS,uBAAuB,CAAC,eAA0B;QACvD,OAAO,IAAA,YAAG,EAAC,eAAe,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,GAAG,sBAAsB,CAAC,CAAA;IACzE,CAAC;IAED;;;;MAIE;IACF,KAAK,UAAU,mBAAmB,CAC9B,QAAmB,EACnB,KAAgB,EAChB,QAAmB;QAGnB,MAAM,YAAY,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;QACpC,MAAM,GAAG,GAAG;YACR,2EAA2E;YAC3E,IAAA,WAAE,EAAC,YAAY,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC;YACrE,IAAA,WAAE,EAAC,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC;YACvD,IAAA,WAAE,EAAC,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC;SAC1D,CAAA;QACD,IAAI,CAAC;YACD,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QACvC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,sBAAsB,QAAQ,aAAa,KAAK,KAAK,GAAG,EAAE,CAAA;YACtE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACjB,OAAO,IAAI,CAAA;QACf,CAAC;QACD,OAAO,YAAY,CAAA;IACvB,CAAC;IAED,KAAK,UAAU,2BAA2B,CAAC,IAAI;QAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAc,CAAA;QAC/F,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QACpG,MAAM,UAAU,GAAG,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC9E,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED,KAAK,UAAU,sBAAsB,CAAC,KAAqB,EAAE,QAA0B;QACnF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;QACzB,MAAM,OAAO,GAAgB,EAAE,CAAA;QAC/B,MAAM,aAAa,GAAG,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC;aAClF,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;aAClF,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;QAC1B,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;YAC/D,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;gBACpE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;gBAChD,CAAC;gBACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;gBAC9E,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;oBAChC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;oBAClC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAA,YAAG,EAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAG,KAAK,EAAE,CAAC,CAAA;gBACxE,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAA;IAClB,CAAC;IAED,OAAO;QACH,mBAAmB;QACnB,gBAAgB;QAChB,kBAAkB;QAClB,wBAAwB;QACxB,kBAAkB;QAClB,qBAAqB;QACrB,eAAe;QACf,sBAAsB;QACtB,uBAAuB;QACvB,2BAA2B;QAC3B,sBAAsB;KACzB,CAAA;AACL,CAAC"}
@@ -1,5 +1,5 @@
1
- import { Session } from "@inrupt/solid-client-authn-browser";
2
- import { LiveStore, NamedNode, Statement } from "rdflib";
1
+ import { Session } from '@inrupt/solid-client-authn-browser';
2
+ import { LiveStore, NamedNode, Statement } from 'rdflib';
3
3
  export type AppDetails = {
4
4
  noun: string;
5
5
  appPathSegment: string;
@@ -1,4 +1,4 @@
1
- import { NamedNode } from "rdflib";
1
+ import { NamedNode } from 'rdflib';
2
2
  /**
3
3
  * Container-related class
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"containerLogic.d.ts","sourceRoot":"","sources":["../../src/util/containerLogic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,QAAQ,CAAC;AAEnD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,KAAA;uBAYZ,SAAS;2BAKC,MAAM;0CAfG,SAAS,KAAG,SAAS,EAAE;wCAmCnB,SAAS,KAAG,OAAO,CAAC,SAAS,EAAE,CAAC;EAUpF"}
1
+ {"version":3,"file":"containerLogic.d.ts","sourceRoot":"","sources":["../../src/util/containerLogic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,QAAQ,CAAA;AAElD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,KAAA;uBAYZ,SAAS;2BAKC,MAAM;0CAfG,SAAS,KAAG,SAAS,EAAE;wCAmCnB,SAAS,KAAG,OAAO,CAAC,SAAS,EAAE,CAAC;EAUpF"}
@@ -1,46 +1,40 @@
1
- import { NamedNode, Statement, sym } from "rdflib";
2
-
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createContainerLogic = createContainerLogic;
4
+ const rdflib_1 = require("rdflib");
3
5
  /**
4
6
  * Container-related class
5
7
  */
6
- export function createContainerLogic(store) {
7
-
8
- function getContainerElements(containerNode: NamedNode): NamedNode[] {
8
+ function createContainerLogic(store) {
9
+ function getContainerElements(containerNode) {
9
10
  return store
10
- .statementsMatching(
11
- containerNode,
12
- sym("http://www.w3.org/ns/ldp#contains"),
13
- undefined
14
- )
15
- .map((st: Statement) => st.object as NamedNode);
11
+ .statementsMatching(containerNode, (0, rdflib_1.sym)('http://www.w3.org/ns/ldp#contains'), undefined)
12
+ .map((st) => st.object);
16
13
  }
17
-
18
- function isContainer(url: NamedNode) {
14
+ function isContainer(url) {
19
15
  const nodeToString = url.value;
20
- return nodeToString.charAt(nodeToString.length - 1) === "/";
16
+ return nodeToString.charAt(nodeToString.length - 1) === '/';
21
17
  }
22
-
23
- async function createContainer(url: string) {
24
- const stringToNode = sym(url);
18
+ async function createContainer(url) {
19
+ const stringToNode = (0, rdflib_1.sym)(url);
25
20
  if (!isContainer(stringToNode)) {
26
21
  throw new Error(`Not a container URL ${url}`);
27
22
  }
28
23
  // Copied from https://github.com/solidos/solid-crud-tests/blob/v3.1.0/test/surface/create-container.test.ts#L56-L64
29
24
  const result = await store.fetcher._fetch(url, {
30
- method: "PUT",
25
+ method: 'PUT',
31
26
  headers: {
32
- "Content-Type": "text/turtle",
33
- "If-None-Match": "*",
27
+ 'Content-Type': 'text/turtle',
28
+ 'If-None-Match': '*',
34
29
  Link: '<http://www.w3.org/ns/ldp#BasicContainer>; rel="type"', // See https://github.com/solidos/node-solid-server/issues/1465
35
30
  },
36
- body: " ", // work around https://github.com/michielbdejong/community-server/issues/4#issuecomment-776222863
31
+ body: ' ', // work around https://github.com/michielbdejong/community-server/issues/4#issuecomment-776222863
37
32
  });
38
33
  if (result.status.toString()[0] !== '2') {
39
34
  throw new Error(`Not OK: got ${result.status} response while creating container at ${url}`);
40
35
  }
41
36
  }
42
-
43
- async function getContainerMembers(containerUrl: NamedNode): Promise<NamedNode[]> {
37
+ async function getContainerMembers(containerUrl) {
44
38
  await store.fetcher.load(containerUrl);
45
39
  return getContainerElements(containerUrl);
46
40
  }
@@ -49,5 +43,6 @@ export function createContainerLogic(store) {
49
43
  createContainer,
50
44
  getContainerElements,
51
45
  getContainerMembers
52
- }
53
- }
46
+ };
47
+ }
48
+ //# sourceMappingURL=containerLogic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containerLogic.js","sourceRoot":"","sources":["../../src/util/containerLogic.ts"],"names":[],"mappings":";;AAKA,oDA+CC;AApDD,mCAAkD;AAElD;;GAEG;AACH,SAAgB,oBAAoB,CAAC,KAAK;IAEtC,SAAS,oBAAoB,CAAC,aAAwB;QAClD,OAAO,KAAK;aACP,kBAAkB,CACf,aAAa,EACb,IAAA,YAAG,EAAC,mCAAmC,CAAC,EACxC,SAAS,CACZ;aACA,GAAG,CAAC,CAAC,EAAa,EAAE,EAAE,CAAC,EAAE,CAAC,MAAmB,CAAC,CAAA;IACvD,CAAC;IAED,SAAS,WAAW,CAAC,GAAc;QAC/B,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAA;QAC9B,OAAO,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAA;IAC/D,CAAC;IAED,KAAK,UAAU,eAAe,CAAC,GAAW;QACtC,MAAM,YAAY,GAAG,IAAA,YAAG,EAAC,GAAG,CAAC,CAAA;QAC7B,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAA;QACjD,CAAC;QACD,oHAAoH;QACpH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;YAC3C,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACL,cAAc,EAAE,aAAa;gBAC7B,eAAe,EAAE,GAAG;gBACpB,IAAI,EAAE,uDAAuD,EAAE,+DAA+D;aACjI;YACD,IAAI,EAAE,GAAG,EAAE,iGAAiG;SAC/G,CAAC,CAAA;QACF,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,eAAe,MAAM,CAAC,MAAM,yCAAyC,GAAG,EAAE,CAAC,CAAA;QAC/F,CAAC;IACL,CAAC;IAED,KAAK,UAAU,mBAAmB,CAAC,YAAuB;QACtD,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACtC,OAAO,oBAAoB,CAAC,YAAY,CAAC,CAAA;IAC7C,CAAC;IACD,OAAO;QACH,WAAW;QACX,eAAe;QACf,oBAAoB;QACpB,mBAAmB;KACtB,CAAA;AACL,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/util/debug.ts"],"names":[],"mappings":"AACA,wBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAExC;AAED,wBAAgB,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAEzC;AAED,wBAAgB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAE1C;AAED,wBAAgB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAE1C"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.log = log;
4
+ exports.warn = warn;
5
+ exports.error = error;
6
+ exports.trace = trace;
7
+ /* eslint-disable @typescript-eslint/no-explicit-any */
8
+ function log(...args) {
9
+ console.log(...args);
10
+ }
11
+ function warn(...args) {
12
+ console.warn(...args);
13
+ }
14
+ function error(...args) {
15
+ console.error(...args);
16
+ }
17
+ function trace(...args) {
18
+ console.trace(...args);
19
+ }
20
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/util/debug.ts"],"names":[],"mappings":";;AACA,kBAEC;AAED,oBAEC;AAED,sBAEC;AAED,sBAEC;AAfD,uDAAuD;AACvD,SAAgB,GAAG,CAAC,GAAG,IAAW;IAChC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;AACtB,CAAC;AAED,SAAgB,IAAI,CAAC,GAAG,IAAW;IACjC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;AACvB,CAAC;AAED,SAAgB,KAAK,CAAC,GAAG,IAAW;IAClC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;AACxB,CAAC;AAED,SAAgB,KAAK,CAAC,GAAG,IAAW;IAClC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;AACxB,CAAC"}
@@ -38,7 +38,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.ns = void 0;
40
40
  // Namespaces we commonly use and have common prefixes for around Solid
41
- var solid_namespace_1 = __importDefault(require("solid-namespace")); // Delegate to this which takes RDFlib as param.
42
- var $rdf = __importStar(require("rdflib"));
41
+ const solid_namespace_1 = __importDefault(require("solid-namespace")); // Delegate to this which takes RDFlib as param.
42
+ const $rdf = __importStar(require("rdflib"));
43
43
  exports.ns = (0, solid_namespace_1.default)($rdf);
44
44
  //# sourceMappingURL=ns.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ns.js","sourceRoot":"","sources":["../../src/util/ns.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uEAAuE;AACvE,oEAA4C,CAAC,gDAAgD;AAC7F,2CAA8B;AAEjB,QAAA,EAAE,GAAG,IAAA,yBAAc,EAAC,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"ns.js","sourceRoot":"","sources":["../../src/util/ns.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uEAAuE;AACvE,sEAA4C,CAAC,gDAAgD;AAC7F,6CAA8B;AAEjB,QAAA,EAAE,GAAG,IAAA,yBAAc,EAAC,IAAI,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
- import { NamedNode } from "rdflib";
1
+ import { NamedNode } from 'rdflib';
2
2
  export declare function createUtilityLogic(store: any, aclLogic: any, containerLogic: any): {
3
3
  recursiveDelete: (containerNode: NamedNode) => Promise<any>;
4
4
  setSinglePeerAccess: (options: {
@@ -1 +1 @@
1
- {"version":3,"file":"utilityLogic.d.ts","sourceRoot":"","sources":["../../src/util/utilityLogic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAW,MAAM,QAAQ,CAAC;AAK5C,wBAAgB,kBAAkB,CAAC,KAAK,KAAA,EAAE,QAAQ,KAAA,EAAE,cAAc,KAAA;qCAElB,SAAS;mCAwFX;QAC1C,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,CAAA;KACf;6BAsCqC,SAAS,WAAW,MAAM;kCA3ErB,SAAS,aAAa,SAAS,UAChE,SAAS,OAAO,SAAS,KAChC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;mCApCgB,SAAS;EA4HtD"}
1
+ {"version":3,"file":"utilityLogic.d.ts","sourceRoot":"","sources":["../../src/util/utilityLogic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAW,MAAM,QAAQ,CAAA;AAK3C,wBAAgB,kBAAkB,CAAC,KAAK,KAAA,EAAE,QAAQ,KAAA,EAAE,cAAc,KAAA;qCAElB,SAAS;mCAwFX;QAC1C,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,CAAA;KACf;6BAsCqC,SAAS,WAAW,MAAM;kCA3ErB,SAAS,aAAa,SAAS,UAChE,SAAS,OAAO,SAAS,KAChC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;mCApCgB,SAAS;EA4HtD"}
@@ -0,0 +1,180 @@
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.createUtilityLogic = createUtilityLogic;
37
+ const rdflib_1 = require("rdflib");
38
+ const CustomError_1 = require("../logic/CustomError");
39
+ const debug = __importStar(require("../util/debug"));
40
+ const utils_1 = require("./utils");
41
+ function createUtilityLogic(store, aclLogic, containerLogic) {
42
+ async function recursiveDelete(containerNode) {
43
+ try {
44
+ if (containerLogic.isContainer(containerNode)) {
45
+ const aclDocUrl = await aclLogic.findAclDocUrl(containerNode);
46
+ await store.fetcher._fetch(aclDocUrl, { method: 'DELETE' });
47
+ const containerMembers = await containerLogic.getContainerMembers(containerNode);
48
+ await Promise.all(containerMembers.map((url) => recursiveDelete(url)));
49
+ }
50
+ const nodeToStringHere = containerNode.value;
51
+ return store.fetcher._fetch(nodeToStringHere, { method: 'DELETE' });
52
+ }
53
+ catch (e) {
54
+ debug.log(`Please manually remove ${containerNode.value} from your system.`, e);
55
+ }
56
+ }
57
+ /**
58
+ * Create a resource if it really does not exist
59
+ * Be absolutely sure something does not exist before creating a new empty file
60
+ * as otherwise existing could be deleted.
61
+ * @param doc {NamedNode} - The resource
62
+ */
63
+ async function loadOrCreateIfNotExists(doc) {
64
+ let response;
65
+ try {
66
+ response = await store.fetcher.load(doc);
67
+ }
68
+ catch (err) {
69
+ if (err.response.status === 404) {
70
+ try {
71
+ await store.fetcher.webOperation('PUT', doc, { data: '', contentType: 'text/turtle' });
72
+ }
73
+ catch (err) {
74
+ const msg = 'createIfNotExists: PUT FAILED: ' + doc + ': ' + err;
75
+ throw new CustomError_1.WebOperationError(msg);
76
+ }
77
+ await store.fetcher.load(doc);
78
+ }
79
+ else {
80
+ if (err.response.status === 401) {
81
+ throw new CustomError_1.UnauthorizedError();
82
+ }
83
+ if (err.response.status === 403) {
84
+ if ((0, utils_1.differentOrigin)(doc)) {
85
+ throw new CustomError_1.CrossOriginForbiddenError();
86
+ }
87
+ throw new CustomError_1.SameOriginForbiddenError();
88
+ }
89
+ const msg = 'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err;
90
+ throw new CustomError_1.FetchError(err.status, err.message + msg);
91
+ }
92
+ }
93
+ return response;
94
+ }
95
+ /* Follow link from this doc to another thing, or else make a new link
96
+ **
97
+ ** @returns existing object, or creates it if non existent
98
+ */
99
+ async function followOrCreateLink(subject, predicate, object, doc) {
100
+ await store.fetcher.load(doc);
101
+ const result = store.any(subject, predicate, null, doc);
102
+ if (result)
103
+ return result;
104
+ if (!store.updater.editable(doc)) {
105
+ const msg = `followOrCreateLink: cannot edit ${doc.value}`;
106
+ debug.warn(msg);
107
+ throw new CustomError_1.NotEditableError(msg);
108
+ }
109
+ try {
110
+ await store.updater.update([], [(0, rdflib_1.st)(subject, predicate, object, doc)]);
111
+ }
112
+ catch (err) {
113
+ const msg = `followOrCreateLink: Error making link in ${doc} to ${object}: ${err}`;
114
+ debug.warn(msg);
115
+ throw new CustomError_1.WebOperationError(err);
116
+ }
117
+ try {
118
+ await loadOrCreateIfNotExists(object);
119
+ // store.fetcher.webOperation('PUT', object, { data: '', contentType: 'text/turtle'})
120
+ }
121
+ catch (err) {
122
+ debug.warn(`followOrCreateLink: Error loading or saving new linked document: ${object}: ${err}`);
123
+ throw err;
124
+ }
125
+ return object;
126
+ }
127
+ // Copied from https://github.com/solidos/web-access-control-tests/blob/v3.0.0/test/surface/delete.test.ts#L5
128
+ async function setSinglePeerAccess(options) {
129
+ let str = [
130
+ '@prefix acl: <http://www.w3.org/ns/auth/acl#>.',
131
+ '',
132
+ `<#alice> a acl:Authorization;\n acl:agent <${options.ownerWebId}>;`,
133
+ ` acl:accessTo <${options.target}>;`,
134
+ ` acl:default <${options.target}>;`,
135
+ ' acl:mode acl:Read, acl:Write, acl:Control.',
136
+ ''
137
+ ].join('\n');
138
+ if (options.accessToModes) {
139
+ str += [
140
+ '<#bobAccessTo> a acl:Authorization;',
141
+ ` acl:agent <${options.peerWebId}>;`,
142
+ ` acl:accessTo <${options.target}>;`,
143
+ ` acl:mode ${options.accessToModes}.`,
144
+ ''
145
+ ].join('\n');
146
+ }
147
+ if (options.defaultModes) {
148
+ str += [
149
+ '<#bobDefault> a acl:Authorization;',
150
+ ` acl:agent <${options.peerWebId}>;`,
151
+ ` acl:default <${options.target}>;`,
152
+ ` acl:mode ${options.defaultModes}.`,
153
+ ''
154
+ ].join('\n');
155
+ }
156
+ const aclDocUrl = await aclLogic.findAclDocUrl((0, rdflib_1.sym)(options.target));
157
+ return store.fetcher._fetch(aclDocUrl, {
158
+ method: 'PUT',
159
+ body: str,
160
+ headers: [
161
+ ['Content-Type', 'text/turtle']
162
+ ]
163
+ });
164
+ }
165
+ async function createEmptyRdfDoc(doc, comment) {
166
+ await store.fetcher.webOperation('PUT', doc.uri, {
167
+ data: `# ${new Date()} ${comment}
168
+ `,
169
+ contentType: 'text/turtle',
170
+ });
171
+ }
172
+ return {
173
+ recursiveDelete,
174
+ setSinglePeerAccess,
175
+ createEmptyRdfDoc,
176
+ followOrCreateLink,
177
+ loadOrCreateIfNotExists
178
+ };
179
+ }
180
+ //# sourceMappingURL=utilityLogic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilityLogic.js","sourceRoot":"","sources":["../../src/util/utilityLogic.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { NamedNode } from "rdflib";
1
+ import { NamedNode } from 'rdflib';
2
2
  export declare function newThing(doc: NamedNode): NamedNode;
3
3
  export declare function uniqueNodes(arr: NamedNode[]): NamedNode[];
4
4
  export declare function getArchiveUrl(baseUrl: string, date: Date): string;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/util/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAO,MAAM,QAAQ,CAAC;AAExC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,SAAS,CAElD;AAED,wBAAgB,WAAW,CAAE,GAAG,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAM1D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,UAOxD;AAED,wBAAgB,eAAe,CAAC,GAAG,KAAA,GAAG,OAAO,CAO5C;AAED,wBAAgB,sBAAsB,CAAE,EAAE,EAAC,SAAS,aAMnD;AAED,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,SAAS,GACnB,SAAS,CAQX"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/util/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAO,MAAM,QAAQ,CAAA;AAEvC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,SAAS,CAElD;AAED,wBAAgB,WAAW,CAAE,GAAG,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAM1D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,UAOxD;AAED,wBAAgB,eAAe,CAAC,GAAG,KAAA,GAAG,OAAO,CAO5C;AAED,wBAAgB,sBAAsB,CAAE,EAAE,EAAC,SAAS,aAMnD;AAED,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,SAAS,GACnB,SAAS,CAQX"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.newThing = newThing;
4
+ exports.uniqueNodes = uniqueNodes;
5
+ exports.getArchiveUrl = getArchiveUrl;
6
+ exports.differentOrigin = differentOrigin;
7
+ exports.suggestPreferencesFile = suggestPreferencesFile;
8
+ exports.determineChatContainer = determineChatContainer;
9
+ const rdflib_1 = require("rdflib");
10
+ function newThing(doc) {
11
+ return (0, rdflib_1.sym)(doc.uri + '#' + 'id' + ('' + Date.now()));
12
+ }
13
+ function uniqueNodes(arr) {
14
+ const uris = arr.map(x => x.uri);
15
+ const set = new Set(uris);
16
+ const uris2 = Array.from(set);
17
+ const arr2 = uris2.map(u => new rdflib_1.NamedNode(u));
18
+ return arr2; // Array.from(new Set(arr.map(x => x.uri))).map(u => sym(u))
19
+ }
20
+ function getArchiveUrl(baseUrl, date) {
21
+ const year = date.getUTCFullYear();
22
+ const month = ('0' + (date.getUTCMonth() + 1)).slice(-2);
23
+ const day = ('0' + (date.getUTCDate())).slice(-2);
24
+ const parts = baseUrl.split('/');
25
+ const filename = parts[parts.length - 1];
26
+ return new URL(`./archive/${year}/${month}/${day}/${filename}`, baseUrl).toString();
27
+ }
28
+ function differentOrigin(doc) {
29
+ if (!doc) {
30
+ return true;
31
+ }
32
+ return (`${window.location.origin}/` !== new URL(doc.value).origin);
33
+ }
34
+ function suggestPreferencesFile(me) {
35
+ const stripped = me.uri.replace('/profile/', '/').replace('/public/', '/');
36
+ // const stripped = me.uri.replace(\/[p|P]rofile/\g, '/').replace(\/[p|P]ublic/\g, '/')
37
+ const folderURI = stripped.split('/').slice(0, -1).join('/') + '/Settings/';
38
+ const fileURI = folderURI + 'Preferences.ttl';
39
+ return (0, rdflib_1.sym)(fileURI);
40
+ }
41
+ function determineChatContainer(invitee, podRoot) {
42
+ // Create chat
43
+ // See https://gitter.im/solid/chat-app?at=5f3c800f855be416a23ae74a
44
+ const chatContainerStr = new URL(`IndividualChats/${new URL(invitee.value).host}/`, podRoot.value).toString();
45
+ return new rdflib_1.NamedNode(chatContainerStr);
46
+ }
47
+ //# sourceMappingURL=utils.js.map