@peerbit/identity-access-controller 3.0.40-aa577a5 → 3.0.40-cccc078
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.
- package/dist/src/access.d.ts +1 -1
- package/dist/src/access.d.ts.map +1 -1
- package/dist/src/access.js +2 -3
- package/dist/src/access.js.map +1 -1
- package/dist/src/acl-db.d.ts +6 -6
- package/dist/src/acl-db.d.ts.map +1 -1
- package/dist/src/acl-db.js +24 -23
- package/dist/src/acl-db.js.map +1 -1
- package/dist/src/condition.d.ts +1 -1
- package/dist/src/condition.d.ts.map +1 -1
- package/dist/src/condition.js +1 -1
- package/dist/src/condition.js.map +1 -1
- package/package.json +9 -8
- package/src/access.ts +6 -7
- package/src/acl-db.ts +40 -41
- package/src/condition.ts +1 -1
package/dist/src/access.d.ts
CHANGED
package/dist/src/access.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../src/access.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../src/access.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,oBAAY,UAAU;IACrB,GAAG,IAAI;IACP,IAAI,IAAI;IACR,KAAK,IAAI;CACT;AAED,qBACa,UAAU;CAAG;AAE1B,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,IAAI;IAKlB,QAAQ;CAQR"}
|
package/dist/src/access.js
CHANGED
|
@@ -9,10 +9,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
};
|
|
10
10
|
var Access_1;
|
|
11
11
|
var _a;
|
|
12
|
-
import { field, option, variant, vec } from "@dao-xyz/borsh";
|
|
13
|
-
import { serialize } from "@dao-xyz/borsh";
|
|
14
|
-
import { AccessCondition } from "./condition.js";
|
|
12
|
+
import { field, option, serialize, variant, vec } from "@dao-xyz/borsh";
|
|
15
13
|
import { toBase64 } from "@peerbit/crypto";
|
|
14
|
+
import { AccessCondition } from "./condition.js";
|
|
16
15
|
export var AccessType;
|
|
17
16
|
(function (AccessType) {
|
|
18
17
|
AccessType[AccessType["Any"] = 0] = "Any";
|
package/dist/src/access.js.map
CHANGED
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"access.js","sourceRoot":"","sources":["../../src/access.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,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;;AAE1B,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"}
|
package/dist/src/acl-db.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { TrustedNetwork, IdentityGraph } from "@peerbit/trusted-network";
|
|
3
|
-
import { Access } from "./access.js";
|
|
1
|
+
import { type PeerId } from "@libp2p/interface";
|
|
4
2
|
import { PublicSignKey } from "@peerbit/crypto";
|
|
3
|
+
import { type CanPerformOperations, Documents } from "@peerbit/document";
|
|
5
4
|
import { Program } from "@peerbit/program";
|
|
6
|
-
import { type
|
|
7
|
-
import {
|
|
5
|
+
import { type ReplicationOptions } from "@peerbit/shared-log";
|
|
6
|
+
import { IdentityGraph, TrustedNetwork } from "@peerbit/trusted-network";
|
|
7
|
+
import { Access } from "./access.js";
|
|
8
8
|
export declare class IdentityAccessController extends Program {
|
|
9
9
|
access: Documents<Access>;
|
|
10
10
|
identityGraphController: IdentityGraph;
|
|
@@ -17,7 +17,7 @@ export declare class IdentityAccessController extends Program {
|
|
|
17
17
|
canRead(_obj: any, s: PublicSignKey | undefined): Promise<boolean>;
|
|
18
18
|
canPerform(properties: CanPerformOperations<any>): Promise<boolean>;
|
|
19
19
|
open(properties?: {
|
|
20
|
-
|
|
20
|
+
replicate?: ReplicationOptions;
|
|
21
21
|
}): Promise<void>;
|
|
22
22
|
}
|
|
23
23
|
//# sourceMappingURL=acl-db.d.ts.map
|
package/dist/src/acl-db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acl-db.d.ts","sourceRoot":"","sources":["../../src/acl-db.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"acl-db.d.ts","sourceRoot":"","sources":["../../src/acl-db.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAc,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,KAAK,oBAAoB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAOzE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACN,aAAa,EACb,cAAc,EAId,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAwB,MAAM,EAAc,MAAM,aAAa,CAAC;AAEvE,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,SAAS,CAAC,EAAE,kBAAkB,CAAA;KAAE;CAe1D"}
|
package/dist/src/acl-db.js
CHANGED
|
@@ -8,14 +8,15 @@ 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 {
|
|
12
|
-
import { getPathGenerator, TrustedNetwork, getFromByTo, IdentityGraph, createIdentityGraphStore } from "@peerbit/trusted-network";
|
|
13
|
-
import { ACCESS_TYPE_PROPERTY, Access, AccessType } from "./access.js";
|
|
11
|
+
import {} from "@libp2p/interface";
|
|
14
12
|
import { PublicSignKey, sha256Sync } from "@peerbit/crypto";
|
|
13
|
+
import { Documents } from "@peerbit/document";
|
|
14
|
+
import { Compare, IntegerCompare, Or, SearchRequest, } from "@peerbit/indexer-interface";
|
|
15
15
|
import { Program } from "@peerbit/program";
|
|
16
|
-
import {} from "@libp2p/interface";
|
|
17
|
-
import { concat } from "uint8arrays";
|
|
18
16
|
import {} from "@peerbit/shared-log";
|
|
17
|
+
import { IdentityGraph, TrustedNetwork, createIdentityGraphStore, getFromByTo, getPathGenerator, } from "@peerbit/trusted-network";
|
|
18
|
+
import { concat } from "uint8arrays";
|
|
19
|
+
import { ACCESS_TYPE_PROPERTY, Access, AccessType } from "./access.js";
|
|
19
20
|
let IdentityAccessController = class IdentityAccessController extends Program {
|
|
20
21
|
access;
|
|
21
22
|
identityGraphController;
|
|
@@ -26,16 +27,16 @@ let IdentityAccessController = class IdentityAccessController extends Program {
|
|
|
26
27
|
throw new Error("Expecting either TrustedNetwork or rootTrust");
|
|
27
28
|
}
|
|
28
29
|
this.access = new Documents({
|
|
29
|
-
id: opts.id && sha256Sync(concat([opts.id, new Uint8Array([0])]))
|
|
30
|
+
id: opts.id && sha256Sync(concat([opts.id, new Uint8Array([0])])),
|
|
30
31
|
});
|
|
31
32
|
this.trustedNetwork = opts.trustedNetwork
|
|
32
33
|
? opts.trustedNetwork
|
|
33
34
|
: new TrustedNetwork({
|
|
34
35
|
id: opts.id && sha256Sync(concat([opts.id, new Uint8Array([1])])),
|
|
35
|
-
rootTrust: opts.rootTrust
|
|
36
|
+
rootTrust: opts.rootTrust,
|
|
36
37
|
});
|
|
37
38
|
this.identityGraphController = new IdentityGraph({
|
|
38
|
-
relationGraph: createIdentityGraphStore(opts.id && sha256Sync(concat([opts.id, new Uint8Array([2])])))
|
|
39
|
+
relationGraph: createIdentityGraphStore(opts.id && sha256Sync(concat([opts.id, new Uint8Array([2])]))),
|
|
39
40
|
});
|
|
40
41
|
}
|
|
41
42
|
// allow anyone write to the ACL db, but assume entry is invalid until a verifier verifies
|
|
@@ -59,15 +60,15 @@ let IdentityAccessController = class IdentityAccessController extends Program {
|
|
|
59
60
|
new IntegerCompare({
|
|
60
61
|
key: ACCESS_TYPE_PROPERTY,
|
|
61
62
|
compare: Compare.Equal,
|
|
62
|
-
value: AccessType.Any
|
|
63
|
+
value: AccessType.Any,
|
|
63
64
|
}),
|
|
64
65
|
new IntegerCompare({
|
|
65
66
|
key: ACCESS_TYPE_PROPERTY,
|
|
66
67
|
compare: Compare.Equal,
|
|
67
|
-
value: AccessType.Read
|
|
68
|
-
})
|
|
69
|
-
])
|
|
70
|
-
]
|
|
68
|
+
value: AccessType.Read,
|
|
69
|
+
}),
|
|
70
|
+
]),
|
|
71
|
+
],
|
|
71
72
|
}));
|
|
72
73
|
for (const access of accessReadOrAny) {
|
|
73
74
|
if (access instanceof Access) {
|
|
@@ -106,15 +107,15 @@ let IdentityAccessController = class IdentityAccessController extends Program {
|
|
|
106
107
|
new IntegerCompare({
|
|
107
108
|
key: ACCESS_TYPE_PROPERTY,
|
|
108
109
|
compare: Compare.Equal,
|
|
109
|
-
value: AccessType.Any
|
|
110
|
+
value: AccessType.Any,
|
|
110
111
|
}),
|
|
111
112
|
new IntegerCompare({
|
|
112
113
|
key: ACCESS_TYPE_PROPERTY,
|
|
113
114
|
compare: Compare.Equal,
|
|
114
|
-
value: AccessType.Write
|
|
115
|
-
})
|
|
116
|
-
])
|
|
117
|
-
]
|
|
115
|
+
value: AccessType.Write,
|
|
116
|
+
}),
|
|
117
|
+
]),
|
|
118
|
+
],
|
|
118
119
|
}));
|
|
119
120
|
for (const access of accessWritedOrAny) {
|
|
120
121
|
if (access instanceof Access) {
|
|
@@ -147,16 +148,16 @@ let IdentityAccessController = class IdentityAccessController extends Program {
|
|
|
147
148
|
}
|
|
148
149
|
async open(properties) {
|
|
149
150
|
await this.identityGraphController.open({
|
|
150
|
-
|
|
151
|
-
canRead: this.canRead.bind(this)
|
|
151
|
+
replicate: properties?.replicate || { factor: 1 },
|
|
152
|
+
canRead: this.canRead.bind(this),
|
|
152
153
|
});
|
|
153
154
|
await this.access.open({
|
|
154
|
-
|
|
155
|
+
replicate: properties?.replicate || { factor: 1 },
|
|
155
156
|
type: Access,
|
|
156
157
|
canPerform: this.canPerform.bind(this),
|
|
157
158
|
index: {
|
|
158
|
-
canRead: this.canRead.bind(this)
|
|
159
|
-
}
|
|
159
|
+
canRead: this.canRead.bind(this),
|
|
160
|
+
},
|
|
160
161
|
});
|
|
161
162
|
await this.trustedNetwork.open(properties);
|
|
162
163
|
}
|
package/dist/src/acl-db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acl-db.js","sourceRoot":"","sources":["../../src/acl-db.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"acl-db.js","sourceRoot":"","sources":["../../src/acl-db.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAA6B,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACN,OAAO,EACP,cAAc,EACd,EAAE,EACF,aAAa,GACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAA2B,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACN,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,WAAW,EACX,gBAAgB,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGhE,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,OAAO;IAEpD,MAAM,CAAoB;IAG1B,uBAAuB,CAAgB;IAGvC,cAAc,CAAiB;IAE/B,YAAY,IAIX;QACA,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC;YAC3B,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACjE,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc;YACxC,CAAC,CAAC,IAAI,CAAC,cAAc;YACrB,CAAC,CAAC,IAAI,cAAc,CAAC;gBACnB,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjE,SAAS,EAAE,IAAI,CAAC,SAAS;aACzB,CAAC,CAAC;QACL,IAAI,CAAC,uBAAuB,GAAG,IAAI,aAAa,CAAC;YAChD,aAAa,EAAE,wBAAwB,CACtC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7D;SACD,CAAC,CAAC;IACJ,CAAC;IAED,0FAA0F;IAC1F,gEAAgE;IAEhE,KAAK;IAEL,oBAAoB;IAEpB,KAAK,CAAC,OAAO,CAAC,IAAS,EAAE,CAA4B;QACpD,6BAA6B;QAE7B,IAAI,CAAC,CAAC,EAAE,CAAC;YACR,OAAO,KAAK,CAAC;QACd,CAAC;QAED,2CAA2C;QAC3C,IAAI,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QACb,CAAC;QAED,2DAA2D;QAC3D,MAAM,YAAY,GAAG,KAAK,EAAE,GAAkB,EAAE,EAAE;YACjD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CACrD,IAAI,aAAa,CAAC;gBACjB,KAAK,EAAE;oBACN,IAAI,EAAE,CAAC;wBACN,IAAI,cAAc,CAAC;4BAClB,GAAG,EAAE,oBAAoB;4BACzB,OAAO,EAAE,OAAO,CAAC,KAAK;4BACtB,KAAK,EAAE,UAAU,CAAC,GAAG;yBACrB,CAAC;wBACF,IAAI,cAAc,CAAC;4BAClB,GAAG,EAAE,oBAAoB;4BACzB,OAAO,EAAE,OAAO,CAAC,KAAK;4BACtB,KAAK,EAAE,UAAU,CAAC,IAAI;yBACtB,CAAC;qBACF,CAAC;iBACF;aACD,CAAC,CACF,CAAC;YACF,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;gBACtC,IAAI,MAAM,YAAY,MAAM,EAAE,CAAC;oBAC9B,IACC,MAAM,CAAC,WAAW,CAAC,IAAI,CACtB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,CACpD,KAAK,SAAS,EACd,CAAC;wBACF,kBAAkB;wBAClB,IAAI,MAAM,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC/C,OAAO,IAAI,CAAC;wBACb,CAAC;wBACD,SAAS;oBACV,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC,CAAC;QAEF,IAAI,MAAM,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACb,CAAC;QACD,IAAI,KAAK,EAAE,MAAM,YAAY,IAAI,gBAAgB,CAChD,CAAC,EACD,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAC1C,WAAW,CACX,EAAE,CAAC;YACH,IAAI,MAAM,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3C,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAqC;QACrD,6BAA6B;QAE7B,2CAA2C;QAC3C,MAAM,eAAe,GAAG,KAAK,EAAE,GAAkB,EAAoB,EAAE;YACtE,IAAI,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9C,OAAO,IAAI,CAAC;YACb,CAAC;YACD,2DAA2D;YAC3D,MAAM,eAAe,GAAG,KAAK,EAAE,GAAkB,EAAE,EAAE;gBACpD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CACvD,IAAI,aAAa,CAAC;oBACjB,KAAK,EAAE;wBACN,IAAI,EAAE,CAAC;4BACN,IAAI,cAAc,CAAC;gCAClB,GAAG,EAAE,oBAAoB;gCACzB,OAAO,EAAE,OAAO,CAAC,KAAK;gCACtB,KAAK,EAAE,UAAU,CAAC,GAAG;6BACrB,CAAC;4BACF,IAAI,cAAc,CAAC;gCAClB,GAAG,EAAE,oBAAoB;gCACzB,OAAO,EAAE,OAAO,CAAC,KAAK;gCACtB,KAAK,EAAE,UAAU,CAAC,KAAK;6BACvB,CAAC;yBACF,CAAC;qBACF;iBACD,CAAC,CACF,CAAC;gBAEF,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;oBACxC,IAAI,MAAM,YAAY,MAAM,EAAE,CAAC;wBAC9B,IACC,MAAM,CAAC,WAAW,CAAC,IAAI,CACtB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,UAAU,CAAC,KAAK,CACrD,KAAK,SAAS,EACd,CAAC;4BACF,kBAAkB;4BAClB,IAAI,MAAM,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gCAC/C,OAAO,IAAI,CAAC;4BACb,CAAC;4BACD,SAAS;wBACV,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC,CAAC;YACF,IAAI,MAAM,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC;YACb,CAAC;YACD,IAAI,KAAK,EAAE,MAAM,YAAY,IAAI,gBAAgB,CAChD,GAAG,EACH,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAC1C,WAAW,CACX,EAAE,CAAC;gBACH,IAAI,MAAM,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9C,OAAO,IAAI,CAAC;gBACb,CAAC;YACF,CAAC;YAED,OAAO,KAAK,CAAC;QACd,CAAC,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,MAAM,UAAU,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;YAC1D,IAAI,MAAM,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,UAA+C;QACzD,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;YACvC,SAAS,EAAE,UAAU,EAAE,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;YACjD,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;SAChC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,SAAS,EAAE,UAAU,EAAE,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;YACjD,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YACtC,KAAK,EAAE;gBACN,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;aAChC;SACD,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;CACD,CAAA;AA9LA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;8BACnB,SAAS;wDAAS;AAG1B;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;8BACN,aAAa;yEAAC;AAGvC;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;8BAChB,cAAc;gEAAC;AARnB,wBAAwB;IADpC,OAAO,CAAC,cAAc,CAAC;;GACX,wBAAwB,CAgMpC"}
|
package/dist/src/condition.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../src/condition.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../src/condition.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAA0B,MAAM,iBAAiB,CAAC;AAQxE,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"}
|
package/dist/src/condition.js
CHANGED
|
@@ -8,8 +8,8 @@ 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 { PublicSignKey, getPublicKeyFromPeerId } from "@peerbit/crypto";
|
|
12
11
|
import {} from "@libp2p/interface";
|
|
12
|
+
import { PublicSignKey, getPublicKeyFromPeerId } from "@peerbit/crypto";
|
|
13
13
|
const coercePublicKey = (publicKey) => {
|
|
14
14
|
return publicKey instanceof PublicSignKey
|
|
15
15
|
? publicKey
|
|
@@ -1 +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;
|
|
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,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAExE,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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peerbit/identity-access-controller",
|
|
3
|
-
"version": "3.0.40-
|
|
3
|
+
"version": "3.0.40-cccc078",
|
|
4
4
|
"description": "Access controller that operates on a DB",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"type": "module",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
"eslintConfig": {
|
|
38
|
-
"extends": "
|
|
38
|
+
"extends": "peerbit",
|
|
39
39
|
"parserOptions": {
|
|
40
40
|
"project": true,
|
|
41
41
|
"sourceType": "module"
|
|
@@ -52,17 +52,18 @@
|
|
|
52
52
|
"scripts": {
|
|
53
53
|
"clean": "aegir clean",
|
|
54
54
|
"build": "aegir build --no-bundle",
|
|
55
|
-
"test": "aegir test --target node"
|
|
55
|
+
"test": "aegir test --target node",
|
|
56
|
+
"lint": "aegir lint"
|
|
56
57
|
},
|
|
57
58
|
"author": "dao.xyz",
|
|
58
59
|
"license": "MIT",
|
|
59
60
|
"dependencies": {
|
|
60
|
-
"@dao-xyz/borsh": "^5.2.
|
|
61
|
-
"@peerbit/document": "6.0.7-
|
|
62
|
-
"@peerbit/trusted-network": "3.0.40-
|
|
61
|
+
"@dao-xyz/borsh": "^5.2.3",
|
|
62
|
+
"@peerbit/document": "6.0.7-cccc078",
|
|
63
|
+
"@peerbit/trusted-network": "3.0.40-cccc078"
|
|
63
64
|
},
|
|
64
65
|
"devDependencies": {
|
|
65
|
-
"@peerbit/time": "2.0.6-
|
|
66
|
-
"@peerbit/test-utils": "2.0.33-
|
|
66
|
+
"@peerbit/time": "2.0.6-cccc078",
|
|
67
|
+
"@peerbit/test-utils": "2.0.33-cccc078"
|
|
67
68
|
}
|
|
68
69
|
}
|
package/src/access.ts
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import { field, option, variant, vec } from "@dao-xyz/borsh";
|
|
2
|
-
import { serialize } from "@dao-xyz/borsh";
|
|
3
|
-
import { AccessCondition } from "./condition.js";
|
|
1
|
+
import { field, option, serialize, variant, vec } from "@dao-xyz/borsh";
|
|
4
2
|
import { toBase64 } from "@peerbit/crypto";
|
|
3
|
+
import { AccessCondition } from "./condition.js";
|
|
5
4
|
|
|
6
5
|
export enum AccessType {
|
|
7
6
|
Any = 0,
|
|
8
7
|
Read = 1,
|
|
9
|
-
Write = 2
|
|
8
|
+
Write = 2,
|
|
10
9
|
}
|
|
11
10
|
|
|
12
11
|
@variant(0)
|
|
13
|
-
export class AccessData {
|
|
12
|
+
export class AccessData {}
|
|
14
13
|
|
|
15
14
|
export const ACCESS_TYPE_PROPERTY = "accessTypes";
|
|
16
15
|
@variant(0)
|
|
@@ -46,7 +45,7 @@ export class Access extends AccessData {
|
|
|
46
45
|
return toBase64(serialize(a));
|
|
47
46
|
}
|
|
48
47
|
|
|
49
|
-
initialize():
|
|
48
|
+
initialize(): this {
|
|
50
49
|
this.id = this.calculateId();
|
|
51
50
|
return this;
|
|
52
51
|
}
|
|
@@ -55,7 +54,7 @@ export class Access extends AccessData {
|
|
|
55
54
|
const calculatedId = this.calculateId();
|
|
56
55
|
if (this.id !== calculatedId) {
|
|
57
56
|
throw new Error(
|
|
58
|
-
`Invalid id, got ${this.id} but expected ${calculatedId}
|
|
57
|
+
`Invalid id, got ${this.id} but expected ${calculatedId}`,
|
|
59
58
|
);
|
|
60
59
|
}
|
|
61
60
|
}
|
package/src/acl-db.ts
CHANGED
|
@@ -1,25 +1,24 @@
|
|
|
1
1
|
import { field, variant } from "@dao-xyz/borsh";
|
|
2
|
+
import { type PeerId } from "@libp2p/interface";
|
|
3
|
+
import { PublicSignKey, sha256Sync } from "@peerbit/crypto";
|
|
4
|
+
import { type CanPerformOperations, Documents } from "@peerbit/document";
|
|
2
5
|
import {
|
|
3
|
-
Documents,
|
|
4
|
-
SearchRequest,
|
|
5
|
-
IntegerCompare,
|
|
6
6
|
Compare,
|
|
7
|
+
IntegerCompare,
|
|
7
8
|
Or,
|
|
8
|
-
|
|
9
|
-
} from "@peerbit/
|
|
9
|
+
SearchRequest,
|
|
10
|
+
} from "@peerbit/indexer-interface";
|
|
11
|
+
import { Program } from "@peerbit/program";
|
|
12
|
+
import { type ReplicationOptions } from "@peerbit/shared-log";
|
|
10
13
|
import {
|
|
11
|
-
|
|
14
|
+
IdentityGraph,
|
|
12
15
|
TrustedNetwork,
|
|
16
|
+
createIdentityGraphStore,
|
|
13
17
|
getFromByTo,
|
|
14
|
-
|
|
15
|
-
createIdentityGraphStore
|
|
18
|
+
getPathGenerator,
|
|
16
19
|
} from "@peerbit/trusted-network";
|
|
17
|
-
import { ACCESS_TYPE_PROPERTY, Access, AccessType } from "./access.js";
|
|
18
|
-
import { PublicSignKey, sha256Sync } from "@peerbit/crypto";
|
|
19
|
-
import { Program } from "@peerbit/program";
|
|
20
|
-
import { type PeerId } from "@libp2p/interface";
|
|
21
20
|
import { concat } from "uint8arrays";
|
|
22
|
-
import {
|
|
21
|
+
import { ACCESS_TYPE_PROPERTY, Access, AccessType } from "./access.js";
|
|
23
22
|
|
|
24
23
|
@variant("identity_acl")
|
|
25
24
|
export class IdentityAccessController extends Program {
|
|
@@ -42,19 +41,19 @@ export class IdentityAccessController extends Program {
|
|
|
42
41
|
throw new Error("Expecting either TrustedNetwork or rootTrust");
|
|
43
42
|
}
|
|
44
43
|
this.access = new Documents({
|
|
45
|
-
id: opts.id && sha256Sync(concat([opts.id, new Uint8Array([0])]))
|
|
44
|
+
id: opts.id && sha256Sync(concat([opts.id, new Uint8Array([0])])),
|
|
46
45
|
});
|
|
47
46
|
|
|
48
47
|
this.trustedNetwork = opts.trustedNetwork
|
|
49
48
|
? opts.trustedNetwork
|
|
50
49
|
: new TrustedNetwork({
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
50
|
+
id: opts.id && sha256Sync(concat([opts.id, new Uint8Array([1])])),
|
|
51
|
+
rootTrust: opts.rootTrust,
|
|
52
|
+
});
|
|
54
53
|
this.identityGraphController = new IdentityGraph({
|
|
55
54
|
relationGraph: createIdentityGraphStore(
|
|
56
|
-
opts.id && sha256Sync(concat([opts.id, new Uint8Array([2])]))
|
|
57
|
-
)
|
|
55
|
+
opts.id && sha256Sync(concat([opts.id, new Uint8Array([2])])),
|
|
56
|
+
),
|
|
58
57
|
});
|
|
59
58
|
}
|
|
60
59
|
|
|
@@ -86,22 +85,22 @@ export class IdentityAccessController extends Program {
|
|
|
86
85
|
new IntegerCompare({
|
|
87
86
|
key: ACCESS_TYPE_PROPERTY,
|
|
88
87
|
compare: Compare.Equal,
|
|
89
|
-
value: AccessType.Any
|
|
88
|
+
value: AccessType.Any,
|
|
90
89
|
}),
|
|
91
90
|
new IntegerCompare({
|
|
92
91
|
key: ACCESS_TYPE_PROPERTY,
|
|
93
92
|
compare: Compare.Equal,
|
|
94
|
-
value: AccessType.Read
|
|
95
|
-
})
|
|
96
|
-
])
|
|
97
|
-
]
|
|
98
|
-
})
|
|
93
|
+
value: AccessType.Read,
|
|
94
|
+
}),
|
|
95
|
+
]),
|
|
96
|
+
],
|
|
97
|
+
}),
|
|
99
98
|
);
|
|
100
99
|
for (const access of accessReadOrAny) {
|
|
101
100
|
if (access instanceof Access) {
|
|
102
101
|
if (
|
|
103
102
|
access.accessTypes.find(
|
|
104
|
-
(x) => x === AccessType.Any || x === AccessType.Read
|
|
103
|
+
(x) => x === AccessType.Any || x === AccessType.Read,
|
|
105
104
|
) !== undefined
|
|
106
105
|
) {
|
|
107
106
|
// check condition
|
|
@@ -120,7 +119,7 @@ export class IdentityAccessController extends Program {
|
|
|
120
119
|
for await (const trustedByKey of getPathGenerator(
|
|
121
120
|
s,
|
|
122
121
|
this.identityGraphController.relationGraph,
|
|
123
|
-
getFromByTo
|
|
122
|
+
getFromByTo,
|
|
124
123
|
)) {
|
|
125
124
|
if (await canReadCheck(trustedByKey.from)) {
|
|
126
125
|
return true;
|
|
@@ -147,23 +146,23 @@ export class IdentityAccessController extends Program {
|
|
|
147
146
|
new IntegerCompare({
|
|
148
147
|
key: ACCESS_TYPE_PROPERTY,
|
|
149
148
|
compare: Compare.Equal,
|
|
150
|
-
value: AccessType.Any
|
|
149
|
+
value: AccessType.Any,
|
|
151
150
|
}),
|
|
152
151
|
new IntegerCompare({
|
|
153
152
|
key: ACCESS_TYPE_PROPERTY,
|
|
154
153
|
compare: Compare.Equal,
|
|
155
|
-
value: AccessType.Write
|
|
156
|
-
})
|
|
157
|
-
])
|
|
158
|
-
]
|
|
159
|
-
})
|
|
154
|
+
value: AccessType.Write,
|
|
155
|
+
}),
|
|
156
|
+
]),
|
|
157
|
+
],
|
|
158
|
+
}),
|
|
160
159
|
);
|
|
161
160
|
|
|
162
161
|
for (const access of accessWritedOrAny) {
|
|
163
162
|
if (access instanceof Access) {
|
|
164
163
|
if (
|
|
165
164
|
access.accessTypes.find(
|
|
166
|
-
(x) => x === AccessType.Any || x === AccessType.Write
|
|
165
|
+
(x) => x === AccessType.Any || x === AccessType.Write,
|
|
167
166
|
) !== undefined
|
|
168
167
|
) {
|
|
169
168
|
// check condition
|
|
@@ -181,7 +180,7 @@ export class IdentityAccessController extends Program {
|
|
|
181
180
|
for await (const trustedByKey of getPathGenerator(
|
|
182
181
|
key,
|
|
183
182
|
this.identityGraphController.relationGraph,
|
|
184
|
-
getFromByTo
|
|
183
|
+
getFromByTo,
|
|
185
184
|
)) {
|
|
186
185
|
if (await canPerformCheck(trustedByKey.from)) {
|
|
187
186
|
return true;
|
|
@@ -199,18 +198,18 @@ export class IdentityAccessController extends Program {
|
|
|
199
198
|
return false;
|
|
200
199
|
}
|
|
201
200
|
|
|
202
|
-
async open(properties?: {
|
|
201
|
+
async open(properties?: { replicate?: ReplicationOptions }) {
|
|
203
202
|
await this.identityGraphController.open({
|
|
204
|
-
|
|
205
|
-
canRead: this.canRead.bind(this)
|
|
203
|
+
replicate: properties?.replicate || { factor: 1 },
|
|
204
|
+
canRead: this.canRead.bind(this),
|
|
206
205
|
});
|
|
207
206
|
await this.access.open({
|
|
208
|
-
|
|
207
|
+
replicate: properties?.replicate || { factor: 1 },
|
|
209
208
|
type: Access,
|
|
210
209
|
canPerform: this.canPerform.bind(this),
|
|
211
210
|
index: {
|
|
212
|
-
canRead: this.canRead.bind(this)
|
|
213
|
-
}
|
|
211
|
+
canRead: this.canRead.bind(this),
|
|
212
|
+
},
|
|
214
213
|
});
|
|
215
214
|
await this.trustedNetwork.open(properties);
|
|
216
215
|
}
|
package/src/condition.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { field, variant } from "@dao-xyz/borsh";
|
|
2
|
-
import { PublicSignKey, getPublicKeyFromPeerId } from "@peerbit/crypto";
|
|
3
2
|
import { type PeerId } from "@libp2p/interface";
|
|
3
|
+
import { PublicSignKey, getPublicKeyFromPeerId } from "@peerbit/crypto";
|
|
4
4
|
|
|
5
5
|
const coercePublicKey = (publicKey: PublicSignKey | PeerId) => {
|
|
6
6
|
return publicKey instanceof PublicSignKey
|