@peerbit/identity-access-controller 3.0.38 → 3.0.40-0691c73

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.
@@ -1,4 +1,4 @@
1
- import { AccessCondition } from "./condition";
1
+ import { AccessCondition } from "./condition.js";
2
2
  export declare enum AccessType {
3
3
  Any = 0,
4
4
  Read = 1,
@@ -6,9 +6,10 @@ export declare enum AccessType {
6
6
  }
7
7
  export declare class AccessData {
8
8
  }
9
+ export declare const ACCESS_TYPE_PROPERTY = "accessTypes";
9
10
  export declare class Access extends AccessData {
10
11
  id: string;
11
- accessTypes: AccessType[];
12
+ [ACCESS_TYPE_PROPERTY]: AccessType[];
12
13
  accessCondition: AccessCondition<any>;
13
14
  constructor(options?: {
14
15
  accessTypes: AccessType[];
@@ -18,3 +19,4 @@ export declare class Access extends AccessData {
18
19
  initialize(): Access;
19
20
  assertId(): void;
20
21
  }
22
+ //# sourceMappingURL=access.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../src/access.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD,oBAAY,UAAU;IACrB,GAAG,IAAI;IACP,IAAI,IAAI;IACR,KAAK,IAAI;CACT;AAED,qBACa,UAAU;CAAI;AAE3B,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAClD,qBACa,MAAO,SAAQ,UAAU;IAErC,EAAE,EAAE,MAAM,CAAC;IAGX,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,CAAC;IAGrC,eAAe,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;gBAE1B,OAAO,CAAC,EAAE;QACrB,WAAW,EAAE,UAAU,EAAE,CAAC;QAC1B,eAAe,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;KACtC;IASD,WAAW,IAAI,MAAM;IAUrB,UAAU,IAAI,MAAM;IAKpB,QAAQ;CAQR"}
@@ -8,9 +8,10 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  var Access_1;
11
+ var _a;
11
12
  import { field, option, variant, vec } from "@dao-xyz/borsh";
12
13
  import { serialize } from "@dao-xyz/borsh";
13
- import { AccessCondition } from "./condition";
14
+ import { AccessCondition } from "./condition.js";
14
15
  import { toBase64 } from "@peerbit/crypto";
15
16
  export var AccessType;
16
17
  (function (AccessType) {
@@ -24,9 +25,10 @@ AccessData = __decorate([
24
25
  variant(0)
25
26
  ], AccessData);
26
27
  export { AccessData };
28
+ export const ACCESS_TYPE_PROPERTY = "accessTypes";
27
29
  let Access = Access_1 = class Access extends AccessData {
28
30
  id;
29
- accessTypes;
31
+ [_a = ACCESS_TYPE_PROPERTY];
30
32
  accessCondition;
31
33
  constructor(options) {
32
34
  super();
@@ -63,7 +65,7 @@ __decorate([
63
65
  __decorate([
64
66
  field({ type: vec("u8") }),
65
67
  __metadata("design:type", Array)
66
- ], Access.prototype, "accessTypes", void 0);
68
+ ], Access.prototype, _a, void 0);
67
69
  __decorate([
68
70
  field({ type: AccessCondition }),
69
71
  __metadata("design:type", AccessCondition)
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access.js","sourceRoot":"","sources":["../../src/access.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACrB,yCAAO,CAAA;IACP,2CAAQ,CAAA;IACR,6CAAS,CAAA;AACV,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAGM,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAI,CAAA;AAAd,UAAU;IADtB,OAAO,CAAC,CAAC,CAAC;GACE,UAAU,CAAI;;AAE3B,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAE3C,IAAM,MAAM,cAAZ,MAAM,MAAO,SAAQ,UAAU;IAErC,EAAE,CAAS;IAGX,MAAC,oBAAoB,CAAC,CAAe;IAGrC,eAAe,CAAuB;IAEtC,YAAY,OAGX;QACA,KAAK,EAAE,CAAC;QACR,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;YAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QACnB,CAAC;IACF,CAAC;IAED,WAAW;QACV,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,CAAC,GAAG,IAAI,QAAM,EAAE,CAAC;QACvB,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACzC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,UAAU;QACT,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,QAAQ;QACP,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,EAAE,KAAK,YAAY,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACd,mBAAmB,IAAI,CAAC,EAAE,iBAAiB,YAAY,EAAE,CACzD,CAAC;QACH,CAAC;IACF,CAAC;CACD,CAAA;AA3CA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;;kCACvB;AAGX;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;;gCACU;AAGrC;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;8BAChB,eAAe;+CAAM;AAR1B,MAAM;IADlB,OAAO,CAAC,CAAC,CAAC;;GACE,MAAM,CA6ClB"}
@@ -1,10 +1,10 @@
1
- import { Documents, TransactionContext, PutOperation, DeleteOperation } from "@peerbit/document";
1
+ import { Documents, type CanPerformOperations } from "@peerbit/document";
2
2
  import { TrustedNetwork, IdentityGraph } from "@peerbit/trusted-network";
3
- import { Access } from "./access";
3
+ import { Access } from "./access.js";
4
4
  import { PublicSignKey } from "@peerbit/crypto";
5
5
  import { Program } from "@peerbit/program";
6
- import { PeerId } from "@libp2p/interface";
7
- import { RoleOptions } from "@peerbit/shared-log";
6
+ import { type PeerId } from "@libp2p/interface";
7
+ import { type RoleOptions } from "@peerbit/shared-log";
8
8
  export declare class IdentityAccessController extends Program {
9
9
  access: Documents<Access>;
10
10
  identityGraphController: IdentityGraph;
@@ -15,8 +15,9 @@ export declare class IdentityAccessController extends Program {
15
15
  trustedNetwork?: TrustedNetwork;
16
16
  });
17
17
  canRead(_obj: any, s: PublicSignKey | undefined): Promise<boolean>;
18
- canPerform(_operation: PutOperation<Access> | DeleteOperation, context: TransactionContext<Access>): Promise<boolean>;
18
+ canPerform(properties: CanPerformOperations<any>): Promise<boolean>;
19
19
  open(properties?: {
20
20
  role?: RoleOptions;
21
21
  }): Promise<void>;
22
22
  }
23
+ //# sourceMappingURL=acl-db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acl-db.d.ts","sourceRoot":"","sources":["../../src/acl-db.ts"],"names":[],"mappings":"AACA,OAAO,EACN,SAAS,EAKT,KAAK,oBAAoB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEN,cAAc,EAEd,aAAa,EAEb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAwB,MAAM,EAAc,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,aAAa,EAAc,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,qBACa,wBAAyB,SAAQ,OAAO;IAEpD,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAG1B,uBAAuB,EAAE,aAAa,CAAC;IAGvC,cAAc,EAAE,cAAc,CAAC;gBAEnB,IAAI,EAAE;QACjB,EAAE,CAAC,EAAE,UAAU,CAAC;QAChB,SAAS,EAAE,aAAa,GAAG,MAAM,CAAC;QAClC,cAAc,CAAC,EAAE,cAAc,CAAC;KAChC;IA6BK,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAiElE,UAAU,CAAC,UAAU,EAAE,oBAAoB,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAqEnE,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,WAAW,CAAA;KAAE;CAe9C"}
@@ -8,12 +8,14 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { field, variant } from "@dao-xyz/borsh";
11
- import { Documents } from "@peerbit/document";
11
+ import { Documents, SearchRequest, IntegerCompare, Compare, Or } from "@peerbit/document";
12
12
  import { getPathGenerator, TrustedNetwork, getFromByTo, IdentityGraph, createIdentityGraphStore } from "@peerbit/trusted-network";
13
- import { Access, AccessType } from "./access";
14
- import { sha256Sync } from "@peerbit/crypto";
13
+ import { ACCESS_TYPE_PROPERTY, Access, AccessType } from "./access.js";
14
+ import { PublicSignKey, sha256Sync } from "@peerbit/crypto";
15
15
  import { Program } from "@peerbit/program";
16
+ import {} from "@libp2p/interface";
16
17
  import { concat } from "uint8arrays";
18
+ import {} from "@peerbit/shared-log";
17
19
  let IdentityAccessController = class IdentityAccessController extends Program {
18
20
  access;
19
21
  identityGraphController;
@@ -51,8 +53,23 @@ let IdentityAccessController = class IdentityAccessController extends Program {
51
53
  }
52
54
  // Else check whether its trusted by this access controller
53
55
  const canReadCheck = async (key) => {
54
- for (const value of this.access.index.index.values()) {
55
- const access = value.value;
56
+ const accessReadOrAny = await this.access.index.search(new SearchRequest({
57
+ query: [
58
+ new Or([
59
+ new IntegerCompare({
60
+ key: ACCESS_TYPE_PROPERTY,
61
+ compare: Compare.Equal,
62
+ value: AccessType.Any
63
+ }),
64
+ new IntegerCompare({
65
+ key: ACCESS_TYPE_PROPERTY,
66
+ compare: Compare.Equal,
67
+ value: AccessType.Read
68
+ })
69
+ ])
70
+ ]
71
+ }));
72
+ for (const access of accessReadOrAny) {
56
73
  if (access instanceof Access) {
57
74
  if (access.accessTypes.find((x) => x === AccessType.Any || x === AccessType.Read) !== undefined) {
58
75
  // check condition
@@ -74,7 +91,7 @@ let IdentityAccessController = class IdentityAccessController extends Program {
74
91
  }
75
92
  return false;
76
93
  }
77
- async canPerform(_operation, context) {
94
+ async canPerform(properties) {
78
95
  // TODO, improve, caching etc
79
96
  // Check whether it is trusted by trust web
80
97
  const canPerformByKey = async (key) => {
@@ -83,8 +100,23 @@ let IdentityAccessController = class IdentityAccessController extends Program {
83
100
  }
84
101
  // Else check whether its trusted by this access controller
85
102
  const canPerformCheck = async (key) => {
86
- for (const value of this.access.index.index.values()) {
87
- const access = value.value;
103
+ const accessWritedOrAny = await this.access.index.search(new SearchRequest({
104
+ query: [
105
+ new Or([
106
+ new IntegerCompare({
107
+ key: ACCESS_TYPE_PROPERTY,
108
+ compare: Compare.Equal,
109
+ value: AccessType.Any
110
+ }),
111
+ new IntegerCompare({
112
+ key: ACCESS_TYPE_PROPERTY,
113
+ compare: Compare.Equal,
114
+ value: AccessType.Write
115
+ })
116
+ ])
117
+ ]
118
+ }));
119
+ for (const access of accessWritedOrAny) {
88
120
  if (access instanceof Access) {
89
121
  if (access.accessTypes.find((x) => x === AccessType.Any || x === AccessType.Write) !== undefined) {
90
122
  // check condition
@@ -106,7 +138,7 @@ let IdentityAccessController = class IdentityAccessController extends Program {
106
138
  }
107
139
  return false;
108
140
  };
109
- for (const key of await context.entry.getPublicKeys()) {
141
+ for (const key of await properties.entry.getPublicKeys()) {
110
142
  if (await canPerformByKey(key)) {
111
143
  return true;
112
144
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acl-db.js","sourceRoot":"","sources":["../../src/acl-db.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { PublicSignKey } from "@peerbit/crypto";
2
- import { PeerId } from "@libp2p/interface";
2
+ import { type PeerId } from "@libp2p/interface";
3
3
  export declare class Network {
4
4
  type: string;
5
5
  rpc: string;
@@ -18,3 +18,4 @@ export declare class PublicKeyAccessCondition<T> extends AccessCondition<T> {
18
18
  });
19
19
  allowed(identity: PublicSignKey): Promise<boolean>;
20
20
  }
21
+ //# sourceMappingURL=condition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../src/condition.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAA0B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAQhD,qBACa,OAAO;IAEnB,IAAI,EAAE,MAAM,CAAC;IAGb,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,qBAAa,eAAe,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAGpD;AAED,qBACa,kBAAkB,CAAC,CAAC,CAAE,SAAQ,eAAe,CAAC,CAAC,CAAC;;IAItD,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAGpD;AAED,qBACa,wBAAwB,CAAC,CAAC,CAAE,SAAQ,eAAe,CAAC,CAAC,CAAC;IAElE,GAAG,EAAE,aAAa,CAAC;gBAEP,OAAO,EAAE;QAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CAAA;KAAE;IAK9C,OAAO,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAGxD"}
@@ -9,6 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  import { field, variant } from "@dao-xyz/borsh";
11
11
  import { PublicSignKey, getPublicKeyFromPeerId } from "@peerbit/crypto";
12
+ import {} from "@libp2p/interface";
12
13
  const coercePublicKey = (publicKey) => {
13
14
  return publicKey instanceof PublicSignKey
14
15
  ? publicKey
@@ -0,0 +1 @@
1
+ {"version":3,"file":"condition.js","sourceRoot":"","sources":["../../src/condition.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAe,MAAM,mBAAmB,CAAC;AAEhD,MAAM,eAAe,GAAG,CAAC,SAAiC,EAAE,EAAE;IAC7D,OAAO,SAAS,YAAY,aAAa;QACxC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC,CAAC;AAGK,IAAM,OAAO,GAAb,MAAM,OAAO;IAEnB,IAAI,CAAS;IAGb,GAAG,CAAS;CACZ,CAAA;AAJA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;qCACb;AAGb;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;oCACd;AALA,OAAO;IADnB,OAAO,CAAC,CAAC,CAAC;GACE,OAAO,CAMnB;;AAED,MAAM,OAAO,eAAe;IAC3B,KAAK,CAAC,OAAO,CAAC,IAAmB;QAChC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;CACD;AAGM,IAAM,kBAAkB,GAAxB,MAAM,kBAAsB,SAAQ,eAAkB;IAC5D;QACC,KAAK,EAAE,CAAC;IACT,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,IAAmB;QAChC,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAA;AAPY,kBAAkB;IAD9B,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;GACH,kBAAkB,CAO9B;;AAGM,IAAM,wBAAwB,GAA9B,MAAM,wBAA4B,SAAQ,eAAkB;IAElE,GAAG,CAAgB;IAEnB,YAAY,OAAwC;QACnD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAuB;QACpC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;CACD,CAAA;AAVA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;8BAC1B,aAAa;qDAAC;AAFP,wBAAwB;IADpC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;GACH,wBAAwB,CAYpC;;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG"}
@@ -1,3 +1,4 @@
1
1
  export * from "./access.js";
2
2
  export * from "./acl-db.js";
3
3
  export * from "./condition.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC"}
package/package.json CHANGED
@@ -1,42 +1,68 @@
1
1
  {
2
- "name": "@peerbit/identity-access-controller",
3
- "version": "3.0.38",
4
- "description": "Access controller that operates on a DB",
5
- "type": "module",
6
- "sideEffects": false,
7
- "module": "lib/esm/index.js",
8
- "types": "lib/esm/index.d.ts",
9
- "exports": {
10
- "import": "./lib/esm/index.js",
11
- "require": "./lib/cjs/index.js"
12
- },
13
- "files": [
14
- "lib",
15
- "src",
16
- "!src/**/__tests__",
17
- "!lib/**/__tests__",
18
- "LICENSE"
19
- ],
20
- "publishConfig": {
21
- "access": "public"
22
- },
23
- "scripts": {
24
- "clean": "shx rm -rf lib/*",
25
- "build": "yarn clean && tsc -p tsconfig.json",
26
- "test": "node ../../../../node_modules/.bin/jest test -c ../../../../jest.config.ts --runInBand --forceExit",
27
- "test:unit": "node ../../../../node_modules/.bin/jest test -c ../../../../jest.config.unit.ts --runInBand --forceExit",
28
- "test:integration": "node ../node_modules/.bin/jest test -c ../../../../jest.config.integration.ts --runInBand --forceExit"
29
- },
30
- "author": "dao.xyz",
31
- "license": "MIT",
32
- "dependencies": {
33
- "@dao-xyz/borsh": "^5.2.1",
34
- "@peerbit/document": "6.0.5",
35
- "@peerbit/trusted-network": "3.0.38"
36
- },
37
- "devDependencies": {
38
- "@peerbit/test-utils": "^2.0.31",
39
- "@peerbit/time": "^2.0.6"
40
- },
41
- "gitHead": "b97732c727e239a3aa637830df4fc386468eaf86"
2
+ "name": "@peerbit/identity-access-controller",
3
+ "version": "3.0.40-0691c73",
4
+ "description": "Access controller that operates on a DB",
5
+ "sideEffects": false,
6
+ "type": "module",
7
+ "types": "./dist/src/index.d.ts",
8
+ "typesVersions": {
9
+ "*": {
10
+ "*": [
11
+ "*",
12
+ "dist/*",
13
+ "dist/src/*",
14
+ "dist/src/*/index"
15
+ ],
16
+ "src/*": [
17
+ "*",
18
+ "dist/*",
19
+ "dist/src/*",
20
+ "dist/src/*/index"
21
+ ]
22
+ }
23
+ },
24
+ "files": [
25
+ "src",
26
+ "dist",
27
+ "!dist/e2e",
28
+ "!dist/test",
29
+ "!**/*.tsbuildinfo"
30
+ ],
31
+ "exports": {
32
+ ".": {
33
+ "types": "./dist/src/index.d.ts",
34
+ "import": "./dist/src/index.js"
35
+ }
36
+ },
37
+ "eslintConfig": {
38
+ "extends": "ipfs",
39
+ "parserOptions": {
40
+ "project": true,
41
+ "sourceType": "module"
42
+ },
43
+ "ignorePatterns": [
44
+ "!.aegir.js",
45
+ "test/ts-use",
46
+ "*.d.ts"
47
+ ]
48
+ },
49
+ "publishConfig": {
50
+ "access": "public"
51
+ },
52
+ "scripts": {
53
+ "clean": "aegir clean",
54
+ "build": "aegir build --no-bundle",
55
+ "test": "aegir test --target node"
56
+ },
57
+ "author": "dao.xyz",
58
+ "license": "MIT",
59
+ "dependencies": {
60
+ "@dao-xyz/borsh": "^5.2.2",
61
+ "@peerbit/document": "6.0.7-0691c73",
62
+ "@peerbit/trusted-network": "3.0.40-0691c73"
63
+ },
64
+ "devDependencies": {
65
+ "@peerbit/time": "2.0.6-0691c73",
66
+ "@peerbit/test-utils": "2.0.33-0691c73"
67
+ }
42
68
  }
package/src/access.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { field, option, variant, vec } from "@dao-xyz/borsh";
2
2
  import { serialize } from "@dao-xyz/borsh";
3
- import { AccessCondition } from "./condition";
3
+ import { AccessCondition } from "./condition.js";
4
4
  import { toBase64 } from "@peerbit/crypto";
5
5
 
6
6
  export enum AccessType {
@@ -10,15 +10,16 @@ export enum AccessType {
10
10
  }
11
11
 
12
12
  @variant(0)
13
- export class AccessData {}
13
+ export class AccessData { }
14
14
 
15
+ export const ACCESS_TYPE_PROPERTY = "accessTypes";
15
16
  @variant(0)
16
17
  export class Access extends AccessData {
17
18
  @field({ type: option("string") })
18
19
  id: string;
19
20
 
20
21
  @field({ type: vec("u8") })
21
- accessTypes: AccessType[];
22
+ [ACCESS_TYPE_PROPERTY]: AccessType[];
22
23
 
23
24
  @field({ type: AccessCondition })
24
25
  accessCondition: AccessCondition<any>;
package/src/acl-db.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import { field, variant } from "@dao-xyz/borsh";
2
2
  import {
3
3
  Documents,
4
- TransactionContext,
5
- PutOperation,
6
- DeleteOperation
4
+ SearchRequest,
5
+ IntegerCompare,
6
+ Compare,
7
+ Or,
8
+ type CanPerformOperations
7
9
  } from "@peerbit/document";
8
10
  import {
9
11
  getPathGenerator,
@@ -12,12 +14,12 @@ import {
12
14
  IdentityGraph,
13
15
  createIdentityGraphStore
14
16
  } from "@peerbit/trusted-network";
15
- import { Access, AccessType } from "./access";
17
+ import { ACCESS_TYPE_PROPERTY, Access, AccessType } from "./access.js";
16
18
  import { PublicSignKey, sha256Sync } from "@peerbit/crypto";
17
19
  import { Program } from "@peerbit/program";
18
- import { PeerId } from "@libp2p/interface";
20
+ import { type PeerId } from "@libp2p/interface";
19
21
  import { concat } from "uint8arrays";
20
- import { RoleOptions } from "@peerbit/shared-log";
22
+ import { type RoleOptions } from "@peerbit/shared-log";
21
23
 
22
24
  @variant("identity_acl")
23
25
  export class IdentityAccessController extends Program {
@@ -46,9 +48,9 @@ export class IdentityAccessController extends Program {
46
48
  this.trustedNetwork = opts.trustedNetwork
47
49
  ? opts.trustedNetwork
48
50
  : new TrustedNetwork({
49
- id: opts.id && sha256Sync(concat([opts.id, new Uint8Array([1])])),
50
- rootTrust: opts.rootTrust
51
- });
51
+ id: opts.id && sha256Sync(concat([opts.id, new Uint8Array([1])])),
52
+ rootTrust: opts.rootTrust
53
+ });
52
54
  this.identityGraphController = new IdentityGraph({
53
55
  relationGraph: createIdentityGraphStore(
54
56
  opts.id && sha256Sync(concat([opts.id, new Uint8Array([2])]))
@@ -77,8 +79,25 @@ export class IdentityAccessController extends Program {
77
79
 
78
80
  // Else check whether its trusted by this access controller
79
81
  const canReadCheck = async (key: PublicSignKey) => {
80
- for (const value of this.access.index.index.values()) {
81
- const access = value.value;
82
+ const accessReadOrAny = await this.access.index.search(
83
+ new SearchRequest({
84
+ query: [
85
+ new Or([
86
+ new IntegerCompare({
87
+ key: ACCESS_TYPE_PROPERTY,
88
+ compare: Compare.Equal,
89
+ value: AccessType.Any
90
+ }),
91
+ new IntegerCompare({
92
+ key: ACCESS_TYPE_PROPERTY,
93
+ compare: Compare.Equal,
94
+ value: AccessType.Read
95
+ })
96
+ ])
97
+ ]
98
+ })
99
+ );
100
+ for (const access of accessReadOrAny) {
82
101
  if (access instanceof Access) {
83
102
  if (
84
103
  access.accessTypes.find(
@@ -111,10 +130,7 @@ export class IdentityAccessController extends Program {
111
130
  return false;
112
131
  }
113
132
 
114
- async canPerform(
115
- _operation: PutOperation<Access> | DeleteOperation,
116
- context: TransactionContext<Access>
117
- ): Promise<boolean> {
133
+ async canPerform(properties: CanPerformOperations<any>): Promise<boolean> {
118
134
  // TODO, improve, caching etc
119
135
 
120
136
  // Check whether it is trusted by trust web
@@ -124,8 +140,26 @@ export class IdentityAccessController extends Program {
124
140
  }
125
141
  // Else check whether its trusted by this access controller
126
142
  const canPerformCheck = async (key: PublicSignKey) => {
127
- for (const value of this.access.index.index.values()) {
128
- const access = value.value;
143
+ const accessWritedOrAny = await this.access.index.search(
144
+ new SearchRequest({
145
+ query: [
146
+ new Or([
147
+ new IntegerCompare({
148
+ key: ACCESS_TYPE_PROPERTY,
149
+ compare: Compare.Equal,
150
+ value: AccessType.Any
151
+ }),
152
+ new IntegerCompare({
153
+ key: ACCESS_TYPE_PROPERTY,
154
+ compare: Compare.Equal,
155
+ value: AccessType.Write
156
+ })
157
+ ])
158
+ ]
159
+ })
160
+ );
161
+
162
+ for (const access of accessWritedOrAny) {
129
163
  if (access instanceof Access) {
130
164
  if (
131
165
  access.accessTypes.find(
@@ -157,7 +191,7 @@ export class IdentityAccessController extends Program {
157
191
  return false;
158
192
  };
159
193
 
160
- for (const key of await context.entry.getPublicKeys()) {
194
+ for (const key of await properties.entry.getPublicKeys()) {
161
195
  if (await canPerformByKey(key)) {
162
196
  return true;
163
197
  }
package/src/condition.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { field, variant } from "@dao-xyz/borsh";
2
2
  import { PublicSignKey, getPublicKeyFromPeerId } from "@peerbit/crypto";
3
- import { PeerId } from "@libp2p/interface";
3
+ import { type PeerId } from "@libp2p/interface";
4
4
 
5
5
  const coercePublicKey = (publicKey: PublicSignKey | PeerId) => {
6
6
  return publicKey instanceof PublicSignKey
@@ -1 +0,0 @@
1
- {"version":3,"file":"access.js","sourceRoot":"","sources":["../../src/access.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACrB,yCAAO,CAAA;IACP,2CAAQ,CAAA;IACR,6CAAS,CAAA;AACV,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAGM,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,UAAU;IADtB,OAAO,CAAC,CAAC,CAAC;GACE,UAAU,CAAG;;AAGnB,IAAM,MAAM,cAAZ,MAAM,MAAO,SAAQ,UAAU;IAErC,EAAE,CAAS;IAGX,WAAW,CAAe;IAG1B,eAAe,CAAuB;IAEtC,YAAY,OAGX;QACA,KAAK,EAAE,CAAC;QACR,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;YAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QACnB,CAAC;IACF,CAAC;IAED,WAAW;QACV,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,CAAC,GAAG,IAAI,QAAM,EAAE,CAAC;QACvB,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACzC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,UAAU;QACT,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,QAAQ;QACP,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,EAAE,KAAK,YAAY,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACd,mBAAmB,IAAI,CAAC,EAAE,iBAAiB,YAAY,EAAE,CACzD,CAAC;QACH,CAAC;IACF,CAAC;CACD,CAAA;AA3CA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;;kCACvB;AAGX;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;;2CACD;AAG1B;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;8BAChB,eAAe;+CAAM;AAR1B,MAAM;IADlB,OAAO,CAAC,CAAC,CAAC;;GACE,MAAM,CA6ClB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"acl-db.js","sourceRoot":"","sources":["../../src/acl-db.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"condition.js","sourceRoot":"","sources":["../../src/condition.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAGxE,MAAM,eAAe,GAAG,CAAC,SAAiC,EAAE,EAAE;IAC7D,OAAO,SAAS,YAAY,aAAa;QACxC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC,CAAC;AAGK,IAAM,OAAO,GAAb,MAAM,OAAO;IAEnB,IAAI,CAAS;IAGb,GAAG,CAAS;CACZ,CAAA;AAJA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;qCACb;AAGb;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;oCACd;AALA,OAAO;IADnB,OAAO,CAAC,CAAC,CAAC;GACE,OAAO,CAMnB;;AAED,MAAM,OAAO,eAAe;IAC3B,KAAK,CAAC,OAAO,CAAC,IAAmB;QAChC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;CACD;AAGM,IAAM,kBAAkB,GAAxB,MAAM,kBAAsB,SAAQ,eAAkB;IAC5D;QACC,KAAK,EAAE,CAAC;IACT,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,IAAmB;QAChC,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAA;AAPY,kBAAkB;IAD9B,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;GACH,kBAAkB,CAO9B;;AAGM,IAAM,wBAAwB,GAA9B,MAAM,wBAA4B,SAAQ,eAAkB;IAElE,GAAG,CAAgB;IAEnB,YAAY,OAAwC;QACnD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAuB;QACpC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;CACD,CAAA;AAVA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;8BAC1B,aAAa;qDAAC;AAFP,wBAAwB;IADpC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;GACH,wBAAwB,CAYpC;;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG"}
File without changes
File without changes