@peerbit/identity-access-controller 5.0.128 → 5.1.0
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 +2 -2
- package/dist/src/access.d.ts.map +1 -1
- package/dist/src/access.js +112 -60
- package/dist/src/access.js.map +1 -1
- package/dist/src/acl-db.js +170 -129
- package/dist/src/acl-db.js.map +1 -1
- package/dist/src/condition.d.ts +3 -3
- package/dist/src/condition.d.ts.map +1 -1
- package/dist/src/condition.js +120 -52
- package/dist/src/condition.js.map +1 -1
- package/package.json +10 -10
- package/src/access.ts +2 -2
- package/src/condition.ts +3 -3
package/dist/src/access.d.ts
CHANGED
|
@@ -10,10 +10,10 @@ export declare const ACCESS_TYPE_PROPERTY = "accessTypes";
|
|
|
10
10
|
export declare class Access extends AccessData {
|
|
11
11
|
id: string;
|
|
12
12
|
[ACCESS_TYPE_PROPERTY]: AccessType[];
|
|
13
|
-
accessCondition: AccessCondition
|
|
13
|
+
accessCondition: AccessCondition;
|
|
14
14
|
constructor(options?: {
|
|
15
15
|
accessTypes: AccessType[];
|
|
16
|
-
accessCondition: AccessCondition
|
|
16
|
+
accessCondition: AccessCondition;
|
|
17
17
|
});
|
|
18
18
|
calculateId(): string;
|
|
19
19
|
initialize(): this;
|
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;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
|
|
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;gBAErB,OAAO,CAAC,EAAE;QACrB,WAAW,EAAE,UAAU,EAAE,CAAC;QAC1B,eAAe,EAAE,eAAe,CAAC;KACjC;IASD,WAAW,IAAI,MAAM;IAUrB,UAAU,IAAI,IAAI;IAKlB,QAAQ;CAQR"}
|
package/dist/src/access.js
CHANGED
|
@@ -1,14 +1,40 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
6
27
|
};
|
|
7
|
-
var
|
|
8
|
-
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
var __propKey = (this && this.__propKey) || function (x) {
|
|
36
|
+
return typeof x === "symbol" ? x : "".concat(x);
|
|
9
37
|
};
|
|
10
|
-
var Access_1;
|
|
11
|
-
var _a;
|
|
12
38
|
import { field, option, serialize, variant, vec } from "@dao-xyz/borsh";
|
|
13
39
|
import { toBase64 } from "@peerbit/crypto";
|
|
14
40
|
import { AccessCondition } from "./condition.js";
|
|
@@ -18,61 +44,87 @@ export var AccessType;
|
|
|
18
44
|
AccessType[AccessType["Read"] = 1] = "Read";
|
|
19
45
|
AccessType[AccessType["Write"] = 2] = "Write";
|
|
20
46
|
})(AccessType || (AccessType = {}));
|
|
21
|
-
let AccessData =
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
47
|
+
let AccessData = (() => {
|
|
48
|
+
let _classDecorators = [variant(0)];
|
|
49
|
+
let _classDescriptor;
|
|
50
|
+
let _classExtraInitializers = [];
|
|
51
|
+
let _classThis;
|
|
52
|
+
var AccessData = class {
|
|
53
|
+
static { _classThis = this; }
|
|
54
|
+
static {
|
|
55
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
56
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
57
|
+
AccessData = _classThis = _classDescriptor.value;
|
|
58
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
59
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
return AccessData = _classThis;
|
|
63
|
+
})();
|
|
26
64
|
export { AccessData };
|
|
27
65
|
export const ACCESS_TYPE_PROPERTY = "accessTypes";
|
|
28
|
-
let Access =
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
66
|
+
let Access = (() => {
|
|
67
|
+
var _a;
|
|
68
|
+
let _classDecorators = [variant(0)];
|
|
69
|
+
let _classDescriptor;
|
|
70
|
+
let _classExtraInitializers = [];
|
|
71
|
+
let _classThis;
|
|
72
|
+
let _classSuper = AccessData;
|
|
73
|
+
let _id_decorators;
|
|
74
|
+
let _id_initializers = [];
|
|
75
|
+
let _id_extraInitializers = [];
|
|
76
|
+
let _member_decorators;
|
|
77
|
+
let _member_initializers = [];
|
|
78
|
+
let _member_extraInitializers = [];
|
|
79
|
+
let _accessCondition_decorators;
|
|
80
|
+
let _accessCondition_initializers = [];
|
|
81
|
+
let _accessCondition_extraInitializers = [];
|
|
82
|
+
var Access = class extends _classSuper {
|
|
83
|
+
static { _classThis = this; }
|
|
84
|
+
static {
|
|
85
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
86
|
+
_accessCondition_decorators = [field({ type: AccessCondition })];
|
|
87
|
+
__esDecorate(null, null, _id_decorators, { kind: "field", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id, set: (obj, value) => { obj.id = value; } }, metadata: _metadata }, _id_initializers, _id_extraInitializers);
|
|
88
|
+
__esDecorate(null, null, _member_decorators, { kind: "field", name: _a, static: false, private: false, access: { has: obj => _a in obj, get: obj => obj[_a], set: (obj, value) => { obj[_a] = value; } }, metadata: _metadata }, _member_initializers, _member_extraInitializers);
|
|
89
|
+
__esDecorate(null, null, _accessCondition_decorators, { kind: "field", name: "accessCondition", static: false, private: false, access: { has: obj => "accessCondition" in obj, get: obj => obj.accessCondition, set: (obj, value) => { obj.accessCondition = value; } }, metadata: _metadata }, _accessCondition_initializers, _accessCondition_extraInitializers);
|
|
90
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
91
|
+
Access = _classThis = _classDescriptor.value;
|
|
92
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
93
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
38
94
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
95
|
+
id = __runInitializers(this, _id_initializers, void 0);
|
|
96
|
+
[(_id_decorators = [field({ type: option("string") })], _member_decorators = [field({ type: vec("u16") })], _a = __propKey(ACCESS_TYPE_PROPERTY))] = (__runInitializers(this, _id_extraInitializers), __runInitializers(this, _member_initializers, void 0));
|
|
97
|
+
accessCondition = (__runInitializers(this, _member_extraInitializers), __runInitializers(this, _accessCondition_initializers, void 0));
|
|
98
|
+
constructor(options) {
|
|
99
|
+
super();
|
|
100
|
+
__runInitializers(this, _accessCondition_extraInitializers);
|
|
101
|
+
if (options) {
|
|
102
|
+
this.accessTypes = options.accessTypes;
|
|
103
|
+
this.accessCondition = options.accessCondition;
|
|
104
|
+
this.initialize();
|
|
105
|
+
}
|
|
43
106
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
assertId() {
|
|
54
|
-
const calculatedId = this.calculateId();
|
|
55
|
-
if (this.id !== calculatedId) {
|
|
56
|
-
throw new Error(`Invalid id, got ${this.id} but expected ${calculatedId}`);
|
|
107
|
+
calculateId() {
|
|
108
|
+
if (!this.accessTypes || !this.accessCondition) {
|
|
109
|
+
throw new Error("Not initialized");
|
|
110
|
+
}
|
|
111
|
+
const a = new Access();
|
|
112
|
+
a.accessCondition = this.accessCondition;
|
|
113
|
+
a.accessTypes = this.accessTypes;
|
|
114
|
+
return toBase64(serialize(a));
|
|
57
115
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
__metadata("design:type", AccessCondition)
|
|
72
|
-
], Access.prototype, "accessCondition", void 0);
|
|
73
|
-
Access = Access_1 = __decorate([
|
|
74
|
-
variant(0),
|
|
75
|
-
__metadata("design:paramtypes", [Object])
|
|
76
|
-
], Access);
|
|
116
|
+
initialize() {
|
|
117
|
+
this.id = this.calculateId();
|
|
118
|
+
return this;
|
|
119
|
+
}
|
|
120
|
+
assertId() {
|
|
121
|
+
const calculatedId = this.calculateId();
|
|
122
|
+
if (this.id !== calculatedId) {
|
|
123
|
+
throw new Error(`Invalid id, got ${this.id} but expected ${calculatedId}`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
return Access = _classThis;
|
|
128
|
+
})();
|
|
77
129
|
export { Access };
|
|
78
130
|
//# sourceMappingURL=access.js.map
|
package/dist/src/access.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access.js","sourceRoot":"","sources":["../../src/access.ts"],"names":[],"mappings":"
|
|
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;IAGY,UAAU;4BADtB,OAAO,CAAC,CAAC,CAAC;;;;;;;;YACX,6KAA0B;;;YAAb,uDAAU;;;;;SAAV,UAAU;AAEvB,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAC;IAErC,MAAM;;4BADlB,OAAO,CAAC,CAAC,CAAC;;;;sBACiB,UAAU;;;;;;;;;;sBAAlB,SAAQ,WAAU;;;;2CAOpC,KAAK,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;YALjC,wJAAA,EAAE,6BAAF,EAAE,+EAAS;YAGX,kRAAqC;YAGrC,+LAAA,eAAe,6BAAf,eAAe,yGAAkB;YARlC,6KA6CC;;;YA7CY,uDAAM;;QAElB,EAAE,qDAAS;QAGX,oBAJC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,yBAGjC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,kBAC3B,oBAAoB,GAAC,2GAAe;QAGrC,eAAe,wHAAkB;QAEjC,YAAY,OAGX;YACA,KAAK,EAAE,CAAC;;YACR,IAAI,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;gBACvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;gBAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,CAAC;SACD;QAED,WAAW;YACV,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACpC,CAAC;YACD,MAAM,CAAC,GAAG,IAAI,MAAM,EAAE,CAAC;YACvB,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACzC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACjC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QAED,UAAU;YACT,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACb,CAAC;QAED,QAAQ;YACP,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,EAAE,KAAK,YAAY,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CACd,mBAAmB,IAAI,CAAC,EAAE,iBAAiB,YAAY,EAAE,CACzD,CAAC;YACH,CAAC;QACF,CAAC;;;;SA5CW,MAAM"}
|
package/dist/src/acl-db.js
CHANGED
|
@@ -1,11 +1,36 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
6
27
|
};
|
|
7
|
-
var
|
|
8
|
-
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
9
34
|
};
|
|
10
35
|
import { field, variant } from "@dao-xyz/borsh";
|
|
11
36
|
import {} from "@libp2p/interface";
|
|
@@ -17,91 +42,74 @@ import {} from "@peerbit/shared-log";
|
|
|
17
42
|
import { IdentityGraph, TrustedNetwork, createIdentityGraphStore, getFromByTo, getPathGenerator, } from "@peerbit/trusted-network";
|
|
18
43
|
import { concat } from "uint8arrays";
|
|
19
44
|
import { ACCESS_TYPE_PROPERTY, Access, AccessType } from "./access.js";
|
|
20
|
-
let IdentityAccessController =
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
return false;
|
|
45
|
+
let IdentityAccessController = (() => {
|
|
46
|
+
let _classDecorators = [variant("identity_acl")];
|
|
47
|
+
let _classDescriptor;
|
|
48
|
+
let _classExtraInitializers = [];
|
|
49
|
+
let _classThis;
|
|
50
|
+
let _classSuper = Program;
|
|
51
|
+
let _access_decorators;
|
|
52
|
+
let _access_initializers = [];
|
|
53
|
+
let _access_extraInitializers = [];
|
|
54
|
+
let _identityGraphController_decorators;
|
|
55
|
+
let _identityGraphController_initializers = [];
|
|
56
|
+
let _identityGraphController_extraInitializers = [];
|
|
57
|
+
let _trustedNetwork_decorators;
|
|
58
|
+
let _trustedNetwork_initializers = [];
|
|
59
|
+
let _trustedNetwork_extraInitializers = [];
|
|
60
|
+
var IdentityAccessController = class extends _classSuper {
|
|
61
|
+
static { _classThis = this; }
|
|
62
|
+
static {
|
|
63
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
64
|
+
_access_decorators = [field({ type: Documents })];
|
|
65
|
+
_identityGraphController_decorators = [field({ type: IdentityGraph })];
|
|
66
|
+
_trustedNetwork_decorators = [field({ type: TrustedNetwork })];
|
|
67
|
+
__esDecorate(null, null, _access_decorators, { kind: "field", name: "access", static: false, private: false, access: { has: obj => "access" in obj, get: obj => obj.access, set: (obj, value) => { obj.access = value; } }, metadata: _metadata }, _access_initializers, _access_extraInitializers);
|
|
68
|
+
__esDecorate(null, null, _identityGraphController_decorators, { kind: "field", name: "identityGraphController", static: false, private: false, access: { has: obj => "identityGraphController" in obj, get: obj => obj.identityGraphController, set: (obj, value) => { obj.identityGraphController = value; } }, metadata: _metadata }, _identityGraphController_initializers, _identityGraphController_extraInitializers);
|
|
69
|
+
__esDecorate(null, null, _trustedNetwork_decorators, { kind: "field", name: "trustedNetwork", static: false, private: false, access: { has: obj => "trustedNetwork" in obj, get: obj => obj.trustedNetwork, set: (obj, value) => { obj.trustedNetwork = value; } }, metadata: _metadata }, _trustedNetwork_initializers, _trustedNetwork_extraInitializers);
|
|
70
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
71
|
+
IdentityAccessController = _classThis = _classDescriptor.value;
|
|
72
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
73
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
50
74
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
new Or([
|
|
60
|
-
new IntegerCompare({
|
|
61
|
-
key: ACCESS_TYPE_PROPERTY,
|
|
62
|
-
compare: Compare.Equal,
|
|
63
|
-
value: AccessType.Any,
|
|
64
|
-
}),
|
|
65
|
-
new IntegerCompare({
|
|
66
|
-
key: ACCESS_TYPE_PROPERTY,
|
|
67
|
-
compare: Compare.Equal,
|
|
68
|
-
value: AccessType.Read,
|
|
69
|
-
}),
|
|
70
|
-
]),
|
|
71
|
-
],
|
|
72
|
-
}));
|
|
73
|
-
for (const access of accessReadOrAny) {
|
|
74
|
-
if (access instanceof Access) {
|
|
75
|
-
if (access.accessTypes.find((x) => x === AccessType.Any || x === AccessType.Read) !== undefined) {
|
|
76
|
-
// check condition
|
|
77
|
-
if (await access.accessCondition.allowed(key)) {
|
|
78
|
-
return true;
|
|
79
|
-
}
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
75
|
+
access = __runInitializers(this, _access_initializers, void 0);
|
|
76
|
+
identityGraphController = (__runInitializers(this, _access_extraInitializers), __runInitializers(this, _identityGraphController_initializers, void 0));
|
|
77
|
+
trustedNetwork = (__runInitializers(this, _identityGraphController_extraInitializers), __runInitializers(this, _trustedNetwork_initializers, void 0));
|
|
78
|
+
constructor(opts) {
|
|
79
|
+
super();
|
|
80
|
+
__runInitializers(this, _trustedNetwork_extraInitializers);
|
|
81
|
+
if (!opts.trustedNetwork && !opts.rootTrust) {
|
|
82
|
+
throw new Error("Expecting either TrustedNetwork or rootTrust");
|
|
83
83
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
this.access = new Documents({
|
|
85
|
+
id: opts.id && sha256Sync(concat([opts.id, new Uint8Array([0])])),
|
|
86
|
+
});
|
|
87
|
+
this.trustedNetwork = opts.trustedNetwork
|
|
88
|
+
? opts.trustedNetwork
|
|
89
|
+
: new TrustedNetwork({
|
|
90
|
+
id: opts.id && sha256Sync(concat([opts.id, new Uint8Array([1])])),
|
|
91
|
+
rootTrust: opts.rootTrust,
|
|
92
|
+
});
|
|
93
|
+
this.identityGraphController = new IdentityGraph({
|
|
94
|
+
relationGraph: createIdentityGraphStore(opts.id && sha256Sync(concat([opts.id, new Uint8Array([2])]))),
|
|
95
|
+
});
|
|
87
96
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
97
|
+
// allow anyone write to the ACL db, but assume entry is invalid until a verifier verifies
|
|
98
|
+
// can append will be anyone who has peformed some proof of work
|
|
99
|
+
// or
|
|
100
|
+
// custom can append
|
|
101
|
+
async canRead(_obj, s) {
|
|
102
|
+
// TODO, improve, caching etc
|
|
103
|
+
if (!s) {
|
|
104
|
+
return false;
|
|
91
105
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
async canPerform(properties) {
|
|
96
|
-
// TODO, improve, caching etc
|
|
97
|
-
// Check whether it is trusted by trust web
|
|
98
|
-
const canPerformByKey = async (key) => {
|
|
99
|
-
if (await this.trustedNetwork.isTrusted(key)) {
|
|
106
|
+
// Check whether it is trusted by trust web
|
|
107
|
+
if (await this.trustedNetwork.isTrusted(s)) {
|
|
100
108
|
return true;
|
|
101
109
|
}
|
|
102
110
|
// Else check whether its trusted by this access controller
|
|
103
|
-
const
|
|
104
|
-
const
|
|
111
|
+
const canReadCheck = async (key) => {
|
|
112
|
+
const accessReadOrAny = await this.access.index.search(new SearchRequest({
|
|
105
113
|
query: [
|
|
106
114
|
new Or([
|
|
107
115
|
new IntegerCompare({
|
|
@@ -112,14 +120,14 @@ let IdentityAccessController = class IdentityAccessController extends Program {
|
|
|
112
120
|
new IntegerCompare({
|
|
113
121
|
key: ACCESS_TYPE_PROPERTY,
|
|
114
122
|
compare: Compare.Equal,
|
|
115
|
-
value: AccessType.
|
|
123
|
+
value: AccessType.Read,
|
|
116
124
|
}),
|
|
117
125
|
]),
|
|
118
126
|
],
|
|
119
127
|
}));
|
|
120
|
-
for (const access of
|
|
128
|
+
for (const access of accessReadOrAny) {
|
|
121
129
|
if (access instanceof Access) {
|
|
122
|
-
if (access.accessTypes.find((x) => x === AccessType.Any || x === AccessType.
|
|
130
|
+
if (access.accessTypes.find((x) => x === AccessType.Any || x === AccessType.Read) !== undefined) {
|
|
123
131
|
// check condition
|
|
124
132
|
if (await access.accessCondition.allowed(key)) {
|
|
125
133
|
return true;
|
|
@@ -129,54 +137,87 @@ let IdentityAccessController = class IdentityAccessController extends Program {
|
|
|
129
137
|
}
|
|
130
138
|
}
|
|
131
139
|
};
|
|
132
|
-
if (await
|
|
140
|
+
if (await canReadCheck(s)) {
|
|
133
141
|
return true;
|
|
134
142
|
}
|
|
135
|
-
for await (const trustedByKey of getPathGenerator(
|
|
136
|
-
if (await
|
|
143
|
+
for await (const trustedByKey of getPathGenerator(s, this.identityGraphController.relationGraph, getFromByTo)) {
|
|
144
|
+
if (await canReadCheck(trustedByKey.from)) {
|
|
137
145
|
return true;
|
|
138
146
|
}
|
|
139
147
|
}
|
|
140
148
|
return false;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
149
|
+
}
|
|
150
|
+
async canPerform(properties) {
|
|
151
|
+
// TODO, improve, caching etc
|
|
152
|
+
// Check whether it is trusted by trust web
|
|
153
|
+
const canPerformByKey = async (key) => {
|
|
154
|
+
if (await this.trustedNetwork.isTrusted(key)) {
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
// Else check whether its trusted by this access controller
|
|
158
|
+
const canPerformCheck = async (key) => {
|
|
159
|
+
const accessWritedOrAny = await this.access.index.search(new SearchRequest({
|
|
160
|
+
query: [
|
|
161
|
+
new Or([
|
|
162
|
+
new IntegerCompare({
|
|
163
|
+
key: ACCESS_TYPE_PROPERTY,
|
|
164
|
+
compare: Compare.Equal,
|
|
165
|
+
value: AccessType.Any,
|
|
166
|
+
}),
|
|
167
|
+
new IntegerCompare({
|
|
168
|
+
key: ACCESS_TYPE_PROPERTY,
|
|
169
|
+
compare: Compare.Equal,
|
|
170
|
+
value: AccessType.Write,
|
|
171
|
+
}),
|
|
172
|
+
]),
|
|
173
|
+
],
|
|
174
|
+
}));
|
|
175
|
+
for (const access of accessWritedOrAny) {
|
|
176
|
+
if (access instanceof Access) {
|
|
177
|
+
if (access.accessTypes.find((x) => x === AccessType.Any || x === AccessType.Write) !== undefined) {
|
|
178
|
+
// check condition
|
|
179
|
+
if (await access.accessCondition.allowed(key)) {
|
|
180
|
+
return true;
|
|
181
|
+
}
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
if (await canPerformCheck(key)) {
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
for await (const trustedByKey of getPathGenerator(key, this.identityGraphController.relationGraph, getFromByTo)) {
|
|
191
|
+
if (await canPerformCheck(trustedByKey.from)) {
|
|
192
|
+
return true;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return false;
|
|
196
|
+
};
|
|
197
|
+
for (const key of await properties.entry.getPublicKeys()) {
|
|
198
|
+
if (await canPerformByKey(key)) {
|
|
199
|
+
return true;
|
|
200
|
+
}
|
|
145
201
|
}
|
|
202
|
+
return false;
|
|
146
203
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
};
|
|
165
|
-
__decorate([
|
|
166
|
-
field({ type: Documents }),
|
|
167
|
-
__metadata("design:type", Documents)
|
|
168
|
-
], IdentityAccessController.prototype, "access", void 0);
|
|
169
|
-
__decorate([
|
|
170
|
-
field({ type: IdentityGraph }),
|
|
171
|
-
__metadata("design:type", IdentityGraph)
|
|
172
|
-
], IdentityAccessController.prototype, "identityGraphController", void 0);
|
|
173
|
-
__decorate([
|
|
174
|
-
field({ type: TrustedNetwork }),
|
|
175
|
-
__metadata("design:type", TrustedNetwork)
|
|
176
|
-
], IdentityAccessController.prototype, "trustedNetwork", void 0);
|
|
177
|
-
IdentityAccessController = __decorate([
|
|
178
|
-
variant("identity_acl"),
|
|
179
|
-
__metadata("design:paramtypes", [Object])
|
|
180
|
-
], IdentityAccessController);
|
|
204
|
+
async open(properties) {
|
|
205
|
+
await this.identityGraphController.open({
|
|
206
|
+
replicate: properties?.replicate || { factor: 1 },
|
|
207
|
+
canRead: this.canRead.bind(this),
|
|
208
|
+
});
|
|
209
|
+
await this.access.open({
|
|
210
|
+
replicate: properties?.replicate || { factor: 1 },
|
|
211
|
+
type: Access,
|
|
212
|
+
canPerform: this.canPerform.bind(this),
|
|
213
|
+
index: {
|
|
214
|
+
canRead: () => true, // TODO set this correctly
|
|
215
|
+
},
|
|
216
|
+
});
|
|
217
|
+
await this.trustedNetwork.open(properties);
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
return IdentityAccessController = _classThis;
|
|
221
|
+
})();
|
|
181
222
|
export { IdentityAccessController };
|
|
182
223
|
//# sourceMappingURL=acl-db.js.map
|
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":"
|
|
1
|
+
{"version":3,"file":"acl-db.js","sourceRoot":"","sources":["../../src/acl-db.ts"],"names":[],"mappings":"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"}
|
package/dist/src/condition.d.ts
CHANGED
|
@@ -4,14 +4,14 @@ export declare class Network {
|
|
|
4
4
|
type: string;
|
|
5
5
|
rpc: string;
|
|
6
6
|
}
|
|
7
|
-
export declare class AccessCondition
|
|
7
|
+
export declare class AccessCondition {
|
|
8
8
|
allowed(_key: PublicSignKey): Promise<boolean>;
|
|
9
9
|
}
|
|
10
|
-
export declare class AnyAccessCondition
|
|
10
|
+
export declare class AnyAccessCondition extends AccessCondition {
|
|
11
11
|
constructor();
|
|
12
12
|
allowed(_key: PublicSignKey): Promise<boolean>;
|
|
13
13
|
}
|
|
14
|
-
export declare class PublicKeyAccessCondition
|
|
14
|
+
export declare class PublicKeyAccessCondition extends AccessCondition {
|
|
15
15
|
key: PublicSignKey;
|
|
16
16
|
constructor(options: {
|
|
17
17
|
key: PublicSignKey | PeerId;
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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;IACrB,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAGpD;AAED,qBACa,kBAAmB,SAAQ,eAAe;;IAIhD,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAGpD;AAED,qBACa,wBAAyB,SAAQ,eAAe;IAE5D,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
|
@@ -1,11 +1,36 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
6
27
|
};
|
|
7
|
-
var
|
|
8
|
-
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
9
34
|
};
|
|
10
35
|
import { field, variant } from "@dao-xyz/borsh";
|
|
11
36
|
import {} from "@libp2p/interface";
|
|
@@ -15,58 +40,101 @@ const coercePublicKey = (publicKey) => {
|
|
|
15
40
|
? publicKey
|
|
16
41
|
: getPublicKeyFromPeerId(publicKey);
|
|
17
42
|
};
|
|
18
|
-
let Network =
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
43
|
+
let Network = (() => {
|
|
44
|
+
let _classDecorators = [variant(0)];
|
|
45
|
+
let _classDescriptor;
|
|
46
|
+
let _classExtraInitializers = [];
|
|
47
|
+
let _classThis;
|
|
48
|
+
let _type_decorators;
|
|
49
|
+
let _type_initializers = [];
|
|
50
|
+
let _type_extraInitializers = [];
|
|
51
|
+
let _rpc_decorators;
|
|
52
|
+
let _rpc_initializers = [];
|
|
53
|
+
let _rpc_extraInitializers = [];
|
|
54
|
+
var Network = class {
|
|
55
|
+
static { _classThis = this; }
|
|
56
|
+
static {
|
|
57
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
58
|
+
_type_decorators = [field({ type: "string" })];
|
|
59
|
+
_rpc_decorators = [field({ type: "string" })];
|
|
60
|
+
__esDecorate(null, null, _type_decorators, { kind: "field", name: "type", static: false, private: false, access: { has: obj => "type" in obj, get: obj => obj.type, set: (obj, value) => { obj.type = value; } }, metadata: _metadata }, _type_initializers, _type_extraInitializers);
|
|
61
|
+
__esDecorate(null, null, _rpc_decorators, { kind: "field", name: "rpc", static: false, private: false, access: { has: obj => "rpc" in obj, get: obj => obj.rpc, set: (obj, value) => { obj.rpc = value; } }, metadata: _metadata }, _rpc_initializers, _rpc_extraInitializers);
|
|
62
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
63
|
+
Network = _classThis = _classDescriptor.value;
|
|
64
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
65
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
66
|
+
}
|
|
67
|
+
type = __runInitializers(this, _type_initializers, void 0);
|
|
68
|
+
rpc = (__runInitializers(this, _type_extraInitializers), __runInitializers(this, _rpc_initializers, void 0));
|
|
69
|
+
constructor() {
|
|
70
|
+
__runInitializers(this, _rpc_extraInitializers);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
return Network = _classThis;
|
|
74
|
+
})();
|
|
33
75
|
export { Network };
|
|
34
76
|
export class AccessCondition {
|
|
35
77
|
async allowed(_key) {
|
|
36
78
|
throw new Error("Not implemented");
|
|
37
79
|
}
|
|
38
80
|
}
|
|
39
|
-
let AnyAccessCondition =
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
81
|
+
let AnyAccessCondition = (() => {
|
|
82
|
+
let _classDecorators = [variant([0, 0])];
|
|
83
|
+
let _classDescriptor;
|
|
84
|
+
let _classExtraInitializers = [];
|
|
85
|
+
let _classThis;
|
|
86
|
+
let _classSuper = AccessCondition;
|
|
87
|
+
var AnyAccessCondition = class extends _classSuper {
|
|
88
|
+
static { _classThis = this; }
|
|
89
|
+
static {
|
|
90
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
91
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
92
|
+
AnyAccessCondition = _classThis = _classDescriptor.value;
|
|
93
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
94
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
95
|
+
}
|
|
96
|
+
constructor() {
|
|
97
|
+
super();
|
|
98
|
+
}
|
|
99
|
+
async allowed(_key) {
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
return AnyAccessCondition = _classThis;
|
|
104
|
+
})();
|
|
51
105
|
export { AnyAccessCondition };
|
|
52
|
-
let PublicKeyAccessCondition =
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
106
|
+
let PublicKeyAccessCondition = (() => {
|
|
107
|
+
let _classDecorators = [variant([0, 1])];
|
|
108
|
+
let _classDescriptor;
|
|
109
|
+
let _classExtraInitializers = [];
|
|
110
|
+
let _classThis;
|
|
111
|
+
let _classSuper = AccessCondition;
|
|
112
|
+
let _key_decorators;
|
|
113
|
+
let _key_initializers = [];
|
|
114
|
+
let _key_extraInitializers = [];
|
|
115
|
+
var PublicKeyAccessCondition = class extends _classSuper {
|
|
116
|
+
static { _classThis = this; }
|
|
117
|
+
static {
|
|
118
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
119
|
+
_key_decorators = [field({ type: PublicSignKey })];
|
|
120
|
+
__esDecorate(null, null, _key_decorators, { kind: "field", name: "key", static: false, private: false, access: { has: obj => "key" in obj, get: obj => obj.key, set: (obj, value) => { obj.key = value; } }, metadata: _metadata }, _key_initializers, _key_extraInitializers);
|
|
121
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
122
|
+
PublicKeyAccessCondition = _classThis = _classDescriptor.value;
|
|
123
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
124
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
125
|
+
}
|
|
126
|
+
key = __runInitializers(this, _key_initializers, void 0);
|
|
127
|
+
constructor(options) {
|
|
128
|
+
super();
|
|
129
|
+
__runInitializers(this, _key_extraInitializers);
|
|
130
|
+
this.key = coercePublicKey(options.key);
|
|
131
|
+
}
|
|
132
|
+
async allowed(identity) {
|
|
133
|
+
return this.key.equals(identity);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
return PublicKeyAccessCondition = _classThis;
|
|
137
|
+
})();
|
|
70
138
|
export { PublicKeyAccessCondition };
|
|
71
139
|
/* Not yet :)
|
|
72
140
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../src/condition.ts"],"names":[],"mappings":"
|
|
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;IAGW,OAAO;4BADnB,OAAO,CAAC,CAAC,CAAC;;;;;;;;;;;;;;gCAET,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;+BAGzB,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAF1B,8JAAA,IAAI,6BAAJ,IAAI,mFAAS;YAGb,2JAAA,GAAG,6BAAH,GAAG,iFAAS;YALb,6KAMC;;;YANY,uDAAO;;QAEnB,IAAI,uDAAS;QAGb,GAAG,0GAAS;;;;;;;SALA,OAAO;AAQpB,MAAM,OAAO,eAAe;IAC3B,KAAK,CAAC,OAAO,CAAC,IAAmB;QAChC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;CACD;IAGY,kBAAkB;4BAD9B,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;;;sBACwB,eAAe;kCAAvB,SAAQ,WAAe;;;;YAAvD,6KAOC;;;YAPY,uDAAkB;;QAC9B;YACC,KAAK,EAAE,CAAC;QACT,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,IAAmB;YAChC,OAAO,IAAI,CAAC;QACb,CAAC;;;;SANW,kBAAkB;IAUlB,wBAAwB;4BADpC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;;;sBAC8B,eAAe;;;;wCAAvB,SAAQ,WAAe;;;;+BAC3D,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;YAC/B,2JAAA,GAAG,6BAAH,GAAG,iFAAgB;YAFpB,6KAYC;;;YAZY,uDAAwB;;QAEpC,GAAG,sDAAgB;QAEnB,YAAY,OAAwC;YACnD,KAAK,EAAE,CAAC;;YACR,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SACxC;QAED,KAAK,CAAC,OAAO,CAAC,QAAuB;YACpC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;;;;SAXW,wBAAwB;AAcrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peerbit/identity-access-controller",
|
|
3
|
-
"version": "5.0
|
|
3
|
+
"version": "5.1.0",
|
|
4
4
|
"description": "Access controller that operates on a DB",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"type": "module",
|
|
@@ -52,18 +52,18 @@
|
|
|
52
52
|
"author": "dao.xyz",
|
|
53
53
|
"license": "MIT",
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@dao-xyz/borsh": "^
|
|
56
|
-
"@libp2p/interface": "^3.
|
|
57
|
-
"@peerbit/
|
|
58
|
-
"@peerbit/document": "10.0
|
|
59
|
-
"@peerbit/
|
|
60
|
-
"@peerbit/
|
|
61
|
-
"@peerbit/trusted-network": "4.
|
|
55
|
+
"@dao-xyz/borsh": "^6.0.0",
|
|
56
|
+
"@libp2p/interface": "^3.1.0",
|
|
57
|
+
"@peerbit/shared-log": "11.6.0",
|
|
58
|
+
"@peerbit/document": "10.1.0",
|
|
59
|
+
"@peerbit/crypto": "2.4.0",
|
|
60
|
+
"@peerbit/program": "1.0.0",
|
|
61
|
+
"@peerbit/trusted-network": "4.2.0"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
64
|
"uint8arrays": "^5.1.0",
|
|
65
|
-
"@peerbit/time": "2.
|
|
66
|
-
"@peerbit/test-utils": "2.
|
|
65
|
+
"@peerbit/time": "2.3.0",
|
|
66
|
+
"@peerbit/test-utils": "2.3.0"
|
|
67
67
|
},
|
|
68
68
|
"scripts": {
|
|
69
69
|
"clean": "aegir clean",
|
package/src/access.ts
CHANGED
|
@@ -21,11 +21,11 @@ export class Access extends AccessData {
|
|
|
21
21
|
[ACCESS_TYPE_PROPERTY]: AccessType[];
|
|
22
22
|
|
|
23
23
|
@field({ type: AccessCondition })
|
|
24
|
-
accessCondition: AccessCondition
|
|
24
|
+
accessCondition: AccessCondition;
|
|
25
25
|
|
|
26
26
|
constructor(options?: {
|
|
27
27
|
accessTypes: AccessType[];
|
|
28
|
-
accessCondition: AccessCondition
|
|
28
|
+
accessCondition: AccessCondition;
|
|
29
29
|
}) {
|
|
30
30
|
super();
|
|
31
31
|
if (options) {
|
package/src/condition.ts
CHANGED
|
@@ -17,14 +17,14 @@ export class Network {
|
|
|
17
17
|
rpc: string;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
export class AccessCondition
|
|
20
|
+
export class AccessCondition {
|
|
21
21
|
async allowed(_key: PublicSignKey): Promise<boolean> {
|
|
22
22
|
throw new Error("Not implemented");
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
@variant([0, 0])
|
|
27
|
-
export class AnyAccessCondition
|
|
27
|
+
export class AnyAccessCondition extends AccessCondition {
|
|
28
28
|
constructor() {
|
|
29
29
|
super();
|
|
30
30
|
}
|
|
@@ -34,7 +34,7 @@ export class AnyAccessCondition<T> extends AccessCondition<T> {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
@variant([0, 1])
|
|
37
|
-
export class PublicKeyAccessCondition
|
|
37
|
+
export class PublicKeyAccessCondition extends AccessCondition {
|
|
38
38
|
@field({ type: PublicSignKey })
|
|
39
39
|
key: PublicSignKey;
|
|
40
40
|
|