solid-logic 3.0.8 → 3.0.9-15abc0b

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 (105) hide show
  1. package/babel.config.js +6 -0
  2. package/eslint.config.js +28 -0
  3. package/jest.config.js +15 -8
  4. package/lib/acl/aclLogic.d.ts +2 -2
  5. package/lib/acl/aclLogic.d.ts.map +1 -1
  6. package/lib/authn/SolidAuthnLogic.d.ts +3 -3
  7. package/lib/authn/SolidAuthnLogic.d.ts.map +1 -1
  8. package/lib/authn/authUtil.d.ts +1 -1
  9. package/lib/authn/authUtil.d.ts.map +1 -1
  10. package/lib/chat/chatLogic.d.ts +1 -1
  11. package/lib/chat/chatLogic.d.ts.map +1 -1
  12. package/lib/inbox/inboxLogic.d.ts +1 -1
  13. package/lib/inbox/inboxLogic.d.ts.map +1 -1
  14. package/lib/index.d.ts +1 -1
  15. package/lib/index.d.ts.map +1 -1
  16. package/lib/logic/CustomError.d.ts.map +1 -1
  17. package/lib/logic/solidLogic.d.ts +2 -2
  18. package/lib/logic/solidLogic.d.ts.map +1 -1
  19. package/lib/profile/profileLogic.d.ts +1 -1
  20. package/lib/profile/profileLogic.d.ts.map +1 -1
  21. package/lib/solid-logic.js +107 -0
  22. package/lib/solid-logic.js.map +1 -0
  23. package/lib/typeIndex/typeIndexLogic.d.ts.map +1 -1
  24. package/lib/types.d.ts +3 -3
  25. package/lib/types.d.ts.map +1 -1
  26. package/lib/util/containerLogic.d.ts +1 -1
  27. package/lib/util/containerLogic.d.ts.map +1 -1
  28. package/lib/util/debug.d.ts.map +1 -1
  29. package/lib/util/utilityLogic.d.ts +1 -1
  30. package/lib/util/utilityLogic.d.ts.map +1 -1
  31. package/lib/util/utils.d.ts +1 -1
  32. package/lib/util/utils.d.ts.map +1 -1
  33. package/package.json +46 -23
  34. package/rollup.config.js +29 -0
  35. package/src/acl/aclLogic.ts +10 -9
  36. package/src/authn/SolidAuthnLogic.ts +6 -6
  37. package/src/authn/authUtil.ts +4 -1
  38. package/src/chat/chatLogic.ts +76 -75
  39. package/src/inbox/inboxLogic.ts +20 -19
  40. package/src/index.ts +1 -1
  41. package/src/logic/CustomError.ts +6 -6
  42. package/src/logic/solidLogic.ts +23 -22
  43. package/src/logic/solidLogicSingleton.ts +3 -3
  44. package/src/profile/profileLogic.ts +23 -22
  45. package/src/typeIndex/typeIndexLogic.ts +14 -8
  46. package/src/types.ts +4 -3
  47. package/src/util/containerLogic.ts +15 -15
  48. package/src/util/debug.ts +4 -8
  49. package/src/util/utilityLogic.ts +18 -18
  50. package/src/util/utils.ts +12 -12
  51. package/src/versionInfo.ts +32 -0
  52. package/test/aclLogic.test.ts +5 -5
  53. package/test/authUtil.test.ts +1 -1
  54. package/test/chatLogic.test.ts +160 -154
  55. package/test/container.test.ts +23 -23
  56. package/test/helpers/dataSetup.ts +2 -1
  57. package/test/helpers/setup.ts +8 -3
  58. package/test/inboxLogic.test.ts +101 -110
  59. package/test/logic.test.ts +2 -2
  60. package/test/profileLogic.test.ts +35 -33
  61. package/test/solidAuthLogic.test.ts +1 -1
  62. package/test/typeIndexLogic.test.ts +71 -71
  63. package/test/utilityLogic.test.ts +46 -45
  64. package/test/utils.test.ts +11 -11
  65. package/timestamp.sh +13 -0
  66. package/tsconfig.json +5 -3
  67. package/tsconfig.test.json +8 -0
  68. package/lib/acl/aclLogic.js +0 -167
  69. package/lib/acl/aclLogic.js.map +0 -1
  70. package/lib/authSession/authSession.js +0 -8
  71. package/lib/authSession/authSession.js.map +0 -1
  72. package/lib/authn/SolidAuthnLogic.js +0 -191
  73. package/lib/authn/SolidAuthnLogic.js.map +0 -1
  74. package/lib/authn/authUtil.js +0 -102
  75. package/lib/authn/authUtil.js.map +0 -1
  76. package/lib/chat/chatLogic.js +0 -272
  77. package/lib/chat/chatLogic.js.map +0 -1
  78. package/lib/inbox/inboxLogic.js +0 -138
  79. package/lib/inbox/inboxLogic.js.map +0 -1
  80. package/lib/index.js +0 -29
  81. package/lib/index.js.map +0 -1
  82. package/lib/issuer/issuerLogic.js +0 -52
  83. package/lib/issuer/issuerLogic.js.map +0 -1
  84. package/lib/logic/CustomError.js +0 -89
  85. package/lib/logic/CustomError.js.map +0 -1
  86. package/lib/logic/solidLogic.js +0 -101
  87. package/lib/logic/solidLogic.js.map +0 -1
  88. package/lib/logic/solidLogicSingleton.js +0 -94
  89. package/lib/logic/solidLogicSingleton.js.map +0 -1
  90. package/lib/profile/profileLogic.js +0 -255
  91. package/lib/profile/profileLogic.js.map +0 -1
  92. package/lib/typeIndex/typeIndexLogic.js +0 -392
  93. package/lib/typeIndex/typeIndexLogic.js.map +0 -1
  94. package/lib/types.js +0 -3
  95. package/lib/types.js.map +0 -1
  96. package/lib/util/containerLogic.js +0 -102
  97. package/lib/util/containerLogic.js.map +0 -1
  98. package/lib/util/debug.js +0 -40
  99. package/lib/util/debug.js.map +0 -1
  100. package/lib/util/ns.js +0 -44
  101. package/lib/util/ns.js.map +0 -1
  102. package/lib/util/utilityLogic.js +0 -283
  103. package/lib/util/utilityLogic.js.map +0 -1
  104. package/lib/util/utils.js +0 -47
  105. package/lib/util/utils.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"typeIndexLogic.d.ts","sourceRoot":"","sources":["../../src/typeIndex/typeIndexLogic.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,cAAc,EAAkB,MAAM,UAAU,CAAA;AAKpE,wBAAgB,oBAAoB,CAAC,KAAK,KAAA,EAAE,KAAK,KAAA,EAAE,YAAY,KAAA,EAAE,YAAY,KAAA,GAAG,cAAc,CAyL7F"}
1
+ {"version":3,"file":"typeIndexLogic.d.ts","sourceRoot":"","sources":["../../src/typeIndex/typeIndexLogic.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,cAAc,EAAkB,MAAM,UAAU,CAAA;AAKpE,wBAAgB,oBAAoB,CAAC,KAAK,KAAA,EAAE,KAAK,KAAA,EAAE,YAAY,KAAA,EAAE,YAAY,KAAA,GAAG,cAAc,CA+L7F"}
package/lib/types.d.ts CHANGED
@@ -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;
@@ -70,7 +70,7 @@ export interface ProfileLogic {
70
70
  findStorage: (me: NamedNode) => Node | null;
71
71
  }
72
72
  export interface AclLogic {
73
- findAclDocUrl: (url: NamedNode) => Promise<any>;
73
+ findAclDocUrl: (url: NamedNode) => Promise<string | undefined>;
74
74
  setACLUserPublic: (docURI: string, me: NamedNode, options: {
75
75
  defaultForNew?: boolean;
76
76
  public?: [];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { NamedNode } from "rdflib";
1
+ import { NamedNode } from 'rdflib';
2
2
  /**
3
3
  * 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 +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,CAGxC;AAED,wBAAgB,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAGzC;AAED,wBAAgB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAG1C;AAED,wBAAgB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAG1C"}
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"}
@@ -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"}
@@ -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"}
package/package.json CHANGED
@@ -1,17 +1,23 @@
1
1
  {
2
2
  "name": "solid-logic",
3
- "version": "3.0.8",
4
- "description": "Core business logic of Solid OS",
3
+ "type": "module",
4
+ "version": "3.0.9-15abc0b",
5
+ "description": "Core business logic of SolidOS",
5
6
  "main": "lib/index.js",
6
7
  "scripts": {
7
- "build": "npm run clean && tsc",
8
- "clean": "rm -rf lib",
9
- "lint": "eslint ./src",
10
- "test": "jest",
8
+ "clean": "rm -rf lib src/versionInfo.ts",
9
+ "build": "npm run clean && npm run build-types && npm run build-version && rollup -c",
10
+ "build-version": "./timestamp.sh > src/versionInfo.ts && eslint 'src/versionInfo.ts' --fix",
11
+ "build-types": "tsc --emitDeclarationOnly",
12
+ "lint": "eslint 'src/**/*.ts' 'test/**/*.ts'",
13
+ "typecheck": "tsc --noEmit",
14
+ "typecheck:test": "tsc --noEmit -p tsconfig.test.json",
15
+ "test": "jest --no-coverage",
16
+ "test:coverage": "jest --coverage",
11
17
  "test-debug": "node --inspect-brk ./node_modules/.bin/jest -i --env jest-environment-node-debug",
12
- "preversion": "npm test",
13
- "postversion": "git push --follow-tags",
14
18
  "ignore:prepublishOnly": "npm run build && npm run test",
19
+ "preversion": "npm run lint && npm run typecheck && npm test",
20
+ "postversion": "git push --follow-tags",
15
21
  "watch": "tsc --watch"
16
22
  },
17
23
  "repository": {
@@ -25,26 +31,43 @@
25
31
  },
26
32
  "homepage": "https://github.com/solidos/solid-logic#readme",
27
33
  "devDependencies": {
28
- "@babel/plugin-proposal-class-properties": "~7.18.6",
29
- "@babel/plugin-proposal-optional-chaining": "~7.21.0",
30
- "@babel/plugin-transform-async-to-generator": "~7.25.9",
31
- "@babel/plugin-transform-runtime": "^7.25.9",
32
- "@babel/preset-env": "~7.26.7",
33
- "@babel/preset-typescript": "~7.26.0",
34
- "@types/jest": "^29.5.14",
35
- "@typescript-eslint/eslint-plugin": "^5.62.0",
36
- "@typescript-eslint/parser": "^5.62.0",
37
- "eslint": "^8.57.1",
38
- "jest": "^29.7.0",
39
- "jest-environment-jsdom": "^29.7.0",
34
+ "@babel/core": "^7.28.3",
35
+ "@babel/preset-env": "^7.28.3",
36
+ "@babel/preset-typescript": "^7.27.1",
37
+ "@rollup/plugin-commonjs": "^28.0.6",
38
+ "@rollup/plugin-json": "^6.1.0",
39
+ "@rollup/plugin-node-resolve": "^16.0.1",
40
+ "@rollup/plugin-typescript": "^12.1.4",
41
+ "@types/jest": "^30.0.0",
42
+ "@typescript-eslint/eslint-plugin": "^8.34.0",
43
+ "@typescript-eslint/parser": "^8.34.0",
44
+ "eslint": "^9.28.0",
45
+ "eslint-config-prettier": "^10.1.8",
46
+ "eslint-plugin-import": "^2.32.0",
47
+ "husky": "^9.1.7",
48
+ "jest": "^30.0.2",
49
+ "jest-environment-jsdom": "^30.0.2",
40
50
  "jest-environment-node-debug": "^2.0.0",
41
51
  "jest-fetch-mock": "^3.0.3",
42
- "typescript": "^5.7.3"
52
+ "lint-staged": "^16.1.5",
53
+ "rollup": "^2.79.2",
54
+ "rollup-plugin-terser": "^7.0.2",
55
+ "ts-loader": "^9.5.4",
56
+ "tslib": "^2.8.1",
57
+ "typescript": "^5.9.2"
43
58
  },
44
59
  "dependencies": {
45
60
  "@inrupt/solid-client-authn-browser": "1.17",
46
- "lint-staged": "^15.4.3",
47
- "rdflib": "^2.2.36",
61
+ "rdflib": "^2.2.37",
48
62
  "solid-namespace": "^0.5.4"
63
+ },
64
+ "husky": {
65
+ "hooks": {
66
+ "pre-commit": "lint-staged",
67
+ "pre-push": "npm test"
68
+ }
69
+ },
70
+ "lint-staged": {
71
+ "*.ts": "eslint --fix"
49
72
  }
50
73
  }
@@ -0,0 +1,29 @@
1
+ import resolve from '@rollup/plugin-node-resolve'
2
+ import commonjs from '@rollup/plugin-commonjs'
3
+ import typescript from '@rollup/plugin-typescript'
4
+ import { terser } from 'rollup-plugin-terser'
5
+ import fs from 'fs'
6
+ import json from '@rollup/plugin-json'
7
+
8
+ const license = fs.readFileSync('./LICENSE', 'utf8')
9
+
10
+ export default {
11
+ input: 'src/index.ts',
12
+ output: {
13
+ file: 'lib/solid-logic.js',
14
+ format: 'esm',
15
+ banner: `/*!\n${license}\n*/`,
16
+ sourcemap: true
17
+ },
18
+ plugins: [
19
+ resolve({ preferBuiltins: true }), // best practice to be true, chooses node.js buildins
20
+ commonjs(),
21
+ typescript({
22
+ declaration: false, // this is false so it does not generate types for the versionInfo file
23
+ declarationMap: false
24
+ }),
25
+ json(),
26
+ terser()
27
+ ],
28
+ inlineDynamicImports: true // dissables multiple chunk creation, why we use rollup in the first place
29
+ }
@@ -1,23 +1,23 @@
1
- import { graph, NamedNode, Namespace, serialize, sym } from "rdflib"
2
- import { AclLogic } from "../types";
1
+ import { graph, NamedNode, Namespace, serialize, sym } from 'rdflib'
2
+ import { AclLogic } from '../types'
3
3
  import { ns as namespace } from '../util/ns'
4
4
 
5
5
 
6
6
  export const ACL_LINK = sym(
7
- "http://www.iana.org/assignments/link-relations/acl"
8
- );
7
+ 'http://www.iana.org/assignments/link-relations/acl'
8
+ )
9
9
 
10
10
  export function createAclLogic(store): AclLogic {
11
11
 
12
12
  const ns = namespace
13
13
 
14
14
  async function findAclDocUrl(url: NamedNode) {
15
- await store.fetcher.load(url);
16
- const docNode = store.any(url, ACL_LINK);
15
+ await store.fetcher.load(url)
16
+ const docNode = store.any(url, ACL_LINK)
17
17
  if (!docNode) {
18
- throw new Error(`No ACL link discovered for ${url}`);
18
+ throw new Error(`No ACL link discovered for ${url}`)
19
19
  }
20
- return docNode.value;
20
+ return docNode.value
21
21
  }
22
22
  /**
23
23
  * Simple Access Control
@@ -87,7 +87,8 @@ export function createAclLogic(store): AclLogic {
87
87
 
88
88
  return fetcher.load(docURI).then(result => {
89
89
  if (!result.ok) {
90
- throw new Error('fetchACLRel: While loading:' + (result as any).error)
90
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
91
+ throw new Error('fetchACLRel: While loading:' + (result as any).error)
91
92
  }
92
93
 
93
94
  const aclDoc = store.any(
@@ -1,14 +1,14 @@
1
- import { namedNode, NamedNode, sym } from "rdflib";
2
- import { appContext, offlineTestID } from "./authUtil";
1
+ import { namedNode, NamedNode, sym } from 'rdflib'
2
+ import { appContext, offlineTestID } from './authUtil'
3
3
  import * as debug from '../util/debug'
4
- import { Session } from "@inrupt/solid-client-authn-browser";
5
- import { AuthenticationContext, AuthnLogic } from "../types";
4
+ import { Session } from '@inrupt/solid-client-authn-browser'
5
+ import { AuthenticationContext, AuthnLogic } from '../types'
6
6
 
7
7
  export class SolidAuthnLogic implements AuthnLogic {
8
- private session: Session;
8
+ private session: Session
9
9
 
10
10
  constructor(solidAuthSession: Session) {
11
- this.session = solidAuthSession;
11
+ this.session = solidAuthSession
12
12
  }
13
13
 
14
14
  // we created authSession getter because we want to access it as authn.authSession externally
@@ -1,4 +1,4 @@
1
- import { NamedNode, sym } from "rdflib"
1
+ import { NamedNode, sym } from 'rdflib'
2
2
  import * as debug from '../util/debug'
3
3
 
4
4
  /**
@@ -7,7 +7,9 @@ import * as debug from '../util/debug'
7
7
  * see: https://github.com/facebook/jest/issues/936#issuecomment-545080082 for more
8
8
  * @return {any} - an appContext object
9
9
  */
10
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
11
  export const appContext = ():any => {
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
13
  let { SolidAppContext }: any = window
12
14
  SolidAppContext ||= {}
13
15
  SolidAppContext.viewingNoAuthPage = false
@@ -40,6 +42,7 @@ export const appContext = ():any => {
40
42
  * @returns {NamedNode|null}
41
43
  */
42
44
  export function offlineTestID (): NamedNode | null {
45
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
43
46
  const { $SolidTestEnvironment }: any = window
44
47
  if (
45
48
  typeof $SolidTestEnvironment !== 'undefined' &&
@@ -1,9 +1,9 @@
1
- import { NamedNode, Node, st, term } from "rdflib"
2
- import { ChatLogic, CreatedPaneOptions, NewPaneOptions, Chat } from "../types"
3
- import { ns as namespace } from "../util/ns";
4
- import { determineChatContainer, newThing } from "../util/utils"
1
+ import { NamedNode, Node, st, term } from 'rdflib'
2
+ import { ChatLogic, CreatedPaneOptions, NewPaneOptions, Chat } from '../types'
3
+ import { ns as namespace } from '../util/ns'
4
+ import { determineChatContainer, newThing } from '../util/utils'
5
5
 
6
- const CHAT_LOCATION_IN_CONTAINER = "index.ttl#this"
6
+ const CHAT_LOCATION_IN_CONTAINER = 'index.ttl#this'
7
7
 
8
8
  export function createChatLogic(store, profileLogic): ChatLogic {
9
9
  const ns = namespace
@@ -16,15 +16,15 @@ export function createChatLogic(store, profileLogic): ChatLogic {
16
16
  // Some servers don't present a Link http response header
17
17
  // if the container doesn't exist yet, so refetch the container
18
18
  // now that it has been created:
19
- await store.fetcher.load(chatContainer);
19
+ await store.fetcher.load(chatContainer)
20
20
 
21
21
  // FIXME: check the Why value on this quad:
22
22
  const chatAclDoc = store.any(
23
23
  chatContainer,
24
- new NamedNode("http://www.iana.org/assignments/link-relations/acl")
25
- );
24
+ new NamedNode('http://www.iana.org/assignments/link-relations/acl')
25
+ )
26
26
  if (!chatAclDoc) {
27
- throw new Error("Chat ACL doc not found!");
27
+ throw new Error('Chat ACL doc not found!')
28
28
  }
29
29
 
30
30
  const aclBody = `
@@ -43,63 +43,64 @@ export function createChatLogic(store, profileLogic): ChatLogic {
43
43
  acl:default <.>;
44
44
  acl:mode
45
45
  acl:Read, acl:Append.
46
- `;
47
- await store.fetcher.webOperation("PUT", chatAclDoc.value, {
46
+ `
47
+ await store.fetcher.webOperation('PUT', chatAclDoc.value, {
48
48
  data: aclBody,
49
- contentType: "text/turtle",
50
- });
49
+ contentType: 'text/turtle',
50
+ })
51
51
  }
52
52
 
53
53
  async function addToPrivateTypeIndex(chatThing, me) {
54
54
  // Add to private type index
55
55
  const privateTypeIndex = store.any(
56
56
  me,
57
- ns.solid("privateTypeIndex")
58
- ) as NamedNode | null;
57
+ ns.solid('privateTypeIndex')
58
+ ) as NamedNode | null
59
59
  if (!privateTypeIndex) {
60
- throw new Error("Private type index not found!");
60
+ throw new Error('Private type index not found!')
61
61
  }
62
- await store.fetcher.load(privateTypeIndex);
63
- const reg = newThing(privateTypeIndex);
62
+ await store.fetcher.load(privateTypeIndex)
63
+ const reg = newThing(privateTypeIndex)
64
64
  const ins = [
65
65
  st(
66
66
  reg,
67
- ns.rdf("type"),
68
- ns.solid("TypeRegistration"),
67
+ ns.rdf('type'),
68
+ ns.solid('TypeRegistration'),
69
69
  privateTypeIndex.doc()
70
70
  ),
71
71
  st(
72
72
  reg,
73
- ns.solid("forClass"),
74
- ns.meeting("LongChat"),
73
+ ns.solid('forClass'),
74
+ ns.meeting('LongChat'),
75
75
  privateTypeIndex.doc()
76
76
  ),
77
- st(reg, ns.solid("instance"), chatThing, privateTypeIndex.doc()),
78
- ];
77
+ st(reg, ns.solid('instance'), chatThing, privateTypeIndex.doc()),
78
+ ]
79
79
  await new Promise((resolve, reject) => {
80
80
  store.updater.update([], ins, function (_uri, ok, errm) {
81
81
  if (!ok) {
82
- reject(new Error(errm));
82
+ reject(new Error(errm))
83
83
  } else {
84
- resolve(null);
84
+ resolve(null)
85
85
  }
86
- });
87
- });
86
+ })
87
+ })
88
88
  }
89
89
 
90
90
  async function findChat(invitee: NamedNode): Promise<Chat> {
91
- const me = await profileLogic.loadMe();
92
- const podRoot = await profileLogic.getPodRoot(me);
93
- const chatContainer = determineChatContainer(invitee, podRoot);
94
- let exists = true;
91
+ const me = await profileLogic.loadMe()
92
+ const podRoot = await profileLogic.getPodRoot(me)
93
+ const chatContainer = determineChatContainer(invitee, podRoot)
94
+ let exists = true
95
95
  try {
96
96
  await store.fetcher.load(
97
- new NamedNode(chatContainer.value + "index.ttl#this")
98
- );
97
+ new NamedNode(chatContainer.value + 'index.ttl#this')
98
+ )
99
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
99
100
  } catch (e) {
100
- exists = false;
101
+ exists = false
101
102
  }
102
- return { me, chatContainer, exists };
103
+ return { me, chatContainer, exists }
103
104
  }
104
105
 
105
106
  async function createChatThing(
@@ -109,60 +110,60 @@ export function createChatLogic(store, profileLogic): ChatLogic {
109
110
  const created = await mintNew({
110
111
  me,
111
112
  newBase: chatContainer.value,
112
- });
113
- return created.newInstance;
113
+ })
114
+ return created.newInstance
114
115
  }
115
116
 
116
117
  function mintNew(newPaneOptions: NewPaneOptions): Promise<CreatedPaneOptions> {
117
- const kb = store;
118
- const updater = kb.updater;
118
+ const kb = store
119
+ const updater = kb.updater
119
120
  if (newPaneOptions.me && !newPaneOptions.me.uri) {
120
- throw new Error("chat mintNew: Invalid userid " + newPaneOptions.me);
121
+ throw new Error('chat mintNew: Invalid userid ' + newPaneOptions.me)
121
122
  }
122
123
 
123
124
  const newInstance = (newPaneOptions.newInstance =
124
125
  newPaneOptions.newInstance ||
125
- kb.sym(newPaneOptions.newBase + CHAT_LOCATION_IN_CONTAINER));
126
- const newChatDoc = newInstance.doc();
126
+ kb.sym(newPaneOptions.newBase + CHAT_LOCATION_IN_CONTAINER))
127
+ const newChatDoc = newInstance.doc()
127
128
 
128
129
  kb.add(
129
130
  newInstance,
130
- ns.rdf("type"),
131
- ns.meeting("LongChat"),
131
+ ns.rdf('type'),
132
+ ns.meeting('LongChat'),
132
133
  newChatDoc
133
- );
134
- kb.add(newInstance, ns.dc("title"), "Chat channel", newChatDoc);
134
+ )
135
+ kb.add(newInstance, ns.dc('title'), 'Chat channel', newChatDoc)
135
136
  kb.add(
136
137
  newInstance,
137
- ns.dc("created"),
138
+ ns.dc('created'),
138
139
  term<Node>(new Date(Date.now())),
139
140
  newChatDoc
140
- );
141
+ )
141
142
  if (newPaneOptions.me) {
142
- kb.add(newInstance, ns.dc("author"), newPaneOptions.me, newChatDoc);
143
+ kb.add(newInstance, ns.dc('author'), newPaneOptions.me, newChatDoc)
143
144
  }
144
145
 
145
146
  return new Promise(function (resolve, reject) {
146
147
  updater?.put(
147
148
  newChatDoc,
148
149
  kb.statementsMatching(undefined, undefined, undefined, newChatDoc),
149
- "text/turtle",
150
+ 'text/turtle',
150
151
  function (uri2, ok, message) {
151
152
  if (ok) {
152
153
  resolve({
153
154
  ...newPaneOptions,
154
155
  newInstance,
155
- });
156
+ })
156
157
  } else {
157
158
  reject(
158
159
  new Error(
159
- "FAILED to save new chat channel at: " + uri2 + " : " + message
160
+ 'FAILED to save new chat channel at: ' + uri2 + ' : ' + message
160
161
  )
161
- );
162
+ )
162
163
  }
163
164
  }
164
- );
165
- });
165
+ )
166
+ })
166
167
  }
167
168
 
168
169
  /**
@@ -175,48 +176,48 @@ export function createChatLogic(store, profileLogic): ChatLogic {
175
176
  invitee: NamedNode,
176
177
  createIfMissing = true
177
178
  ): Promise<NamedNode | null> {
178
- const { me, chatContainer, exists } = await findChat(invitee);
179
+ const { me, chatContainer, exists } = await findChat(invitee)
179
180
  if (exists) {
180
- return new NamedNode(chatContainer.value + CHAT_LOCATION_IN_CONTAINER);
181
+ return new NamedNode(chatContainer.value + CHAT_LOCATION_IN_CONTAINER)
181
182
  }
182
183
 
183
184
  if (createIfMissing) {
184
- const chatThing = await createChatThing(chatContainer, me);
185
- await sendInvite(invitee, chatThing);
186
- await setAcl(chatContainer, me, invitee);
187
- await addToPrivateTypeIndex(chatThing, me);
188
- return chatThing;
185
+ const chatThing = await createChatThing(chatContainer, me)
186
+ await sendInvite(invitee, chatThing)
187
+ await setAcl(chatContainer, me, invitee)
188
+ await addToPrivateTypeIndex(chatThing, me)
189
+ return chatThing
189
190
  }
190
- return null;
191
+ return null
191
192
  }
192
193
 
193
194
  async function sendInvite(invitee: NamedNode, chatThing: NamedNode) {
194
- await store.fetcher.load(invitee.doc());
195
+ await store.fetcher.load(invitee.doc())
195
196
  const inviteeInbox = store.any(
196
197
  invitee,
197
- ns.ldp("inbox"),
198
+ ns.ldp('inbox'),
198
199
  undefined,
199
200
  invitee.doc()
200
- );
201
+ )
201
202
  if (!inviteeInbox) {
202
- throw new Error(`Invitee inbox not found! ${invitee.value}`);
203
+ throw new Error(`Invitee inbox not found! ${invitee.value}`)
203
204
  }
204
205
  const inviteBody = `
205
206
  <> a <http://www.w3.org/ns/pim/meeting#LongChatInvite> ;
206
- ${ns.rdf("seeAlso")} <${chatThing.value}> .
207
- `;
207
+ ${ns.rdf('seeAlso')} <${chatThing.value}> .
208
+ `
208
209
 
209
210
  const inviteResponse = await store.fetcher?.webOperation(
210
- "POST",
211
+ 'POST',
211
212
  inviteeInbox.value,
212
213
  {
213
214
  data: inviteBody,
214
- contentType: "text/turtle",
215
+ contentType: 'text/turtle',
215
216
  }
216
- );
217
- const locationStr = inviteResponse?.headers.get("location");
217
+ )
218
+ const locationStr = inviteResponse?.headers.get('location')
218
219
  if (!locationStr) {
219
- throw new Error(`Invite sending returned a ${inviteResponse?.status}`);
220
+ throw new Error(`Invite sending returned a ${inviteResponse?.status}`)
220
221
  }
221
222
  }
222
223
  return {