@aephia/atlas-kit 0.6.0-next.10 → 0.6.0-next.11
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/identity/actions/create-profile.d.ts +2 -0
- package/dist/identity/actions/create-profile.d.ts.map +1 -1
- package/dist/identity/actions/create-profile.js +14 -9
- package/dist/identity/actions/create-profile.js.map +1 -1
- package/dist/identity/permissions.d.ts +8 -4
- package/dist/identity/permissions.d.ts.map +1 -1
- package/dist/identity/permissions.js +14 -6
- package/dist/identity/permissions.js.map +1 -1
- package/package.json +1 -1
|
@@ -34,6 +34,8 @@ export interface PlanCreateProfileOptions {
|
|
|
34
34
|
/** Plans a new signer-created Profile with explicit scoped permissions.
|
|
35
35
|
* The new Profile, storage funder, and every Player Profile AUTH key sign creation,
|
|
36
36
|
* even when the editing threshold is lower. Other keys remain readonly.
|
|
37
|
+
* The new Profile signer is needed only for creation unless explicitly listed
|
|
38
|
+
* among the initial authority keys; creating the account does not grant it AUTH.
|
|
37
39
|
* The threshold governs protected Profile updates; it is not a gameplay-wide multisig policy.
|
|
38
40
|
* Existing target accounts and a Profile address equal to its funder are rejected.
|
|
39
41
|
* No Game load, onboarding, funding top-up, key generation or signing is implicit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-profile.d.ts","sourceRoot":"","sources":["../../../src/identity/actions/create-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAO7D,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;;;;GASG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;
|
|
1
|
+
{"version":3,"file":"create-profile.d.ts","sourceRoot":"","sources":["../../../src/identity/actions/create-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAO7D,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;;;;GASG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAyID;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,WAAW,EAChB,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA0Cf"}
|
|
@@ -30,26 +30,27 @@ function options(input) {
|
|
|
30
30
|
invalid('options.keys', raw.keys, 'Specify at least one non-expiring Player Profile AUTH key.');
|
|
31
31
|
const seen = new Set();
|
|
32
32
|
const keys = [];
|
|
33
|
-
for (const value of raw.keys) {
|
|
34
|
-
const
|
|
33
|
+
for (const [index, value] of raw.keys.entries()) {
|
|
34
|
+
const path = `options.keys[${index}]`;
|
|
35
|
+
const key = record(value, path, [
|
|
35
36
|
'address',
|
|
36
37
|
'scope',
|
|
37
38
|
'permissionsRaw',
|
|
38
39
|
'expiresAt',
|
|
39
40
|
]);
|
|
40
|
-
const address = validAddress(key.address,
|
|
41
|
-
const scope = validAddress(key.scope,
|
|
41
|
+
const address = validAddress(key.address, `${path}.address`, false);
|
|
42
|
+
const scope = validAddress(key.scope, `${path}.scope`, false);
|
|
42
43
|
const permissionsRaw = key.permissionsRaw;
|
|
43
44
|
if (typeof permissionsRaw !== 'bigint' ||
|
|
44
45
|
permissionsRaw < 0n ||
|
|
45
46
|
permissionsRaw > 0xffffffffffffffffn)
|
|
46
|
-
invalid(
|
|
47
|
+
invalid(`${path}.permissionsRaw`, permissionsRaw, 'Supply an explicit bigint permission mask from 0n through 18446744073709551615n.');
|
|
47
48
|
const expiresAt = key.expiresAt;
|
|
48
49
|
if (expiresAt !== undefined &&
|
|
49
50
|
(typeof expiresAt !== 'bigint' ||
|
|
50
51
|
expiresAt < 0n ||
|
|
51
52
|
expiresAt > 0x7fffffffffffffffn))
|
|
52
|
-
invalid(
|
|
53
|
+
invalid(`${path}.expiresAt`, expiresAt, 'Omit expiry for a permanent key, or supply nonnegative bigint Unix seconds within the signed 64-bit range.');
|
|
53
54
|
const captured = {
|
|
54
55
|
address,
|
|
55
56
|
scope,
|
|
@@ -57,17 +58,19 @@ function options(input) {
|
|
|
57
58
|
...(expiresAt === undefined ? {} : { expiresAt }),
|
|
58
59
|
};
|
|
59
60
|
if (isProfileCreationAuthority(captured)) {
|
|
60
|
-
validAddress(address,
|
|
61
|
+
validAddress(address, `${path}.address`, true);
|
|
61
62
|
if (expiresAt !== undefined)
|
|
62
|
-
invalid(
|
|
63
|
+
invalid(`${path}.expiresAt`, expiresAt, 'Omit expiry for every Player Profile AUTH key.');
|
|
63
64
|
}
|
|
64
65
|
const identity = `${address}:${scope}`;
|
|
65
66
|
if (seen.has(identity))
|
|
66
|
-
invalid(
|
|
67
|
+
invalid(path, address, 'Remove duplicate address/scope pairs; distinct scopes may reuse one key address.');
|
|
67
68
|
seen.add(identity);
|
|
68
69
|
keys.push(captured);
|
|
69
70
|
}
|
|
70
71
|
const authCount = keys.filter(isProfileCreationAuthority).length;
|
|
72
|
+
if (authCount === 0)
|
|
73
|
+
invalid('options.keys', raw.keys, 'Specify at least one non-expiring Player Profile AUTH key.');
|
|
71
74
|
const keyThreshold = raw.keyThreshold;
|
|
72
75
|
if (typeof keyThreshold !== 'number' ||
|
|
73
76
|
!Number.isInteger(keyThreshold) ||
|
|
@@ -80,6 +83,8 @@ function options(input) {
|
|
|
80
83
|
/** Plans a new signer-created Profile with explicit scoped permissions.
|
|
81
84
|
* The new Profile, storage funder, and every Player Profile AUTH key sign creation,
|
|
82
85
|
* even when the editing threshold is lower. Other keys remain readonly.
|
|
86
|
+
* The new Profile signer is needed only for creation unless explicitly listed
|
|
87
|
+
* among the initial authority keys; creating the account does not grant it AUTH.
|
|
83
88
|
* The threshold governs protected Profile updates; it is not a gameplay-wide multisig policy.
|
|
84
89
|
* Existing target accounts and a Profile address equal to its funder are rejected.
|
|
85
90
|
* No Game load, onboarding, funding top-up, key generation or signing is implicit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-profile.js","sourceRoot":"","sources":["../../../src/identity/actions/create-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAgB,MAAM,aAAa,CAAC;AAEzE,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EACL,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAa,MAAM,yBAAyB,CAAC;AAkChE,SAAS,OAAO,CAAC,KAAa,EAAE,KAAc,EAAE,MAAc;IAC5D,MAAM,IAAI,uBAAuB,CAC/B,KAAK,EACL,KAAK,EACL,uCAAuC,EACvC,MAAM,CACP,CAAC;AACJ,CAAC;AACD,SAAS,MAAM,CACb,KAAc,EACd,KAAa,EACb,OAA0B;IAE1B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrE,OAAO,CACL,KAAK,EACL,KAAK,EACL,2DAA2D,CAC5D,CAAC;IACJ,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3D,OAAO,CACL,KAAK,EACL,KAAK,EACL,qGAAqG,CACtG,CAAC;IACJ,OAAO,MAAM,CAAC;AAChB,CAAC;AACD,SAAS,YAAY,CAAC,KAAc,EAAE,KAAa,EAAE,MAAe;IAClE,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,SAAS,CAAC,KAAK,CAAC;QACjB,CAAC,MAAM,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAEpC,OAAO,CACL,KAAK,EACL,KAAK,EACL,MAAM;YACJ,CAAC,CAAC,yEAAyE;YAC3E,CAAC,CAAC,8CAA8C,CACnD,CAAC;IACJ,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAS,OAAO,CAAC,KAAc;IAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAChE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QACnD,OAAO,CACL,cAAc,EACd,GAAG,CAAC,IAAI,EACR,4DAA4D,CAC7D,CAAC;IACJ,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,IAAI,GAA8B,EAAE,CAAC;IAC3C,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"create-profile.js","sourceRoot":"","sources":["../../../src/identity/actions/create-profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,19 +18,23 @@ export declare const PROFILE_PERMISSION_SCOPE: Address;
|
|
|
18
18
|
*/
|
|
19
19
|
export declare function composeProfilePermissions(scope: Address, names: readonly ProfilePermission[]): bigint;
|
|
20
20
|
/** Union exact raw masks, preserving unknown bits. Empty input returns zero.
|
|
21
|
+
* This is a pure bit operation. Callers must track the scope each mask belongs to;
|
|
22
|
+
* combining masks does not establish permission meanings or authorization.
|
|
21
23
|
* @example
|
|
22
24
|
* ```ts
|
|
23
|
-
* const raw = unionProfilePermissionMasks(
|
|
25
|
+
* const raw = unionProfilePermissionMasks([4n, 0n]);
|
|
24
26
|
* ```
|
|
25
27
|
*/
|
|
26
|
-
export declare function unionProfilePermissionMasks(
|
|
28
|
+
export declare function unionProfilePermissionMasks(masks: readonly bigint[]): bigint;
|
|
27
29
|
/** Numeric bit containment only, including unknown bits; this is not authorization.
|
|
30
|
+
* Callers must track the scope each mask belongs to; this pure bit operation
|
|
31
|
+
* neither checks scope compatibility nor interprets permission meanings.
|
|
28
32
|
* @example
|
|
29
33
|
* ```ts
|
|
30
|
-
* const contains = containsProfilePermissions(
|
|
34
|
+
* const contains = containsProfilePermissions(6n, 4n);
|
|
31
35
|
* ```
|
|
32
36
|
*/
|
|
33
|
-
export declare function containsProfilePermissions(
|
|
37
|
+
export declare function containsProfilePermissions(availableRaw: bigint, requiredRaw: bigint): boolean;
|
|
34
38
|
/** Immutable scoped permission meanings with all raw bits retained.
|
|
35
39
|
* @example
|
|
36
40
|
* ```ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/identity/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAGzE,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,OAAuB,CAAC;AA8B/D;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,SAAS,iBAAiB,EAAE,GAClC,MAAM,CAoBR;AACD
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/identity/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAGzE,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,OAAuB,CAAC;AA8B/D;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,SAAS,iBAAiB,EAAE,GAClC,MAAM,CAoBR;AACD;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAO5E;AACD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAIT;AACD;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACnD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,MAAM,IAAI,OAAO,CAAC;CACnB;AACD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,MAAM,GACrB,2BAA2B,CAa7B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AACD;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAC5B,kBAAkB,GAClB,gBAAgB,GAChB,SAAS,GACT,qBAAqB,GACrB,0BAA0B,CAAC;AAC/B;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,eAAe,CAAC;IACxD,MAAM,IAAI,OAAO,CAAC;CACnB;AACD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,qBAAqB,GACjC,SAAS,oBAAoB,EAAE,CA+EjC"}
|
|
@@ -43,13 +43,14 @@ export function composeProfilePermissions(scope, names) {
|
|
|
43
43
|
}, 0n);
|
|
44
44
|
}
|
|
45
45
|
/** Union exact raw masks, preserving unknown bits. Empty input returns zero.
|
|
46
|
+
* This is a pure bit operation. Callers must track the scope each mask belongs to;
|
|
47
|
+
* combining masks does not establish permission meanings or authorization.
|
|
46
48
|
* @example
|
|
47
49
|
* ```ts
|
|
48
|
-
* const raw = unionProfilePermissionMasks(
|
|
50
|
+
* const raw = unionProfilePermissionMasks([4n, 0n]);
|
|
49
51
|
* ```
|
|
50
52
|
*/
|
|
51
|
-
export function unionProfilePermissionMasks(
|
|
52
|
-
validateScope(scope);
|
|
53
|
+
export function unionProfilePermissionMasks(masks) {
|
|
53
54
|
if (!Array.isArray(masks))
|
|
54
55
|
invalid('masks', masks, 'Supply an array of unsigned 64-bit bigint masks.');
|
|
55
56
|
return masks.reduce((raw, mask) => {
|
|
@@ -58,13 +59,14 @@ export function unionProfilePermissionMasks(scope, masks) {
|
|
|
58
59
|
}, 0n);
|
|
59
60
|
}
|
|
60
61
|
/** Numeric bit containment only, including unknown bits; this is not authorization.
|
|
62
|
+
* Callers must track the scope each mask belongs to; this pure bit operation
|
|
63
|
+
* neither checks scope compatibility nor interprets permission meanings.
|
|
61
64
|
* @example
|
|
62
65
|
* ```ts
|
|
63
|
-
* const contains = containsProfilePermissions(
|
|
66
|
+
* const contains = containsProfilePermissions(6n, 4n);
|
|
64
67
|
* ```
|
|
65
68
|
*/
|
|
66
|
-
export function containsProfilePermissions(
|
|
67
|
-
validateScope(scope);
|
|
69
|
+
export function containsProfilePermissions(availableRaw, requiredRaw) {
|
|
68
70
|
validateMask(availableRaw);
|
|
69
71
|
validateMask(requiredRaw);
|
|
70
72
|
return (availableRaw & requiredRaw) === requiredRaw;
|
|
@@ -103,6 +105,12 @@ export function inspectProfilePermissions(scope, permissionsRaw) {
|
|
|
103
105
|
* ```
|
|
104
106
|
*/
|
|
105
107
|
export function inspectProfileKeys(profile, requirement) {
|
|
108
|
+
if (profile === null ||
|
|
109
|
+
typeof profile !== 'object' ||
|
|
110
|
+
Array.isArray(profile) ||
|
|
111
|
+
profile.kind !== 'profile' ||
|
|
112
|
+
!Array.isArray(profile.keys))
|
|
113
|
+
invalid('profile', profile, 'Load a ProfileSnapshot with getProfile and pass that loaded Profile, not a Character or raw account.');
|
|
106
114
|
if (requirement === null ||
|
|
107
115
|
typeof requirement !== 'object' ||
|
|
108
116
|
Array.isArray(requirement) ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/identity/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAgB,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,oBAAoB,GAErB,MAAM,uCAAuC,CAAC;AAG/C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAY,aAAa,CAAC;AAE/D,SAAS,OAAO,CAAC,KAAa,EAAE,KAAc,EAAE,MAAc;IAC5D,MAAM,IAAI,uBAAuB,CAC/B,KAAK,EACL,KAAK,EACL,gDAAgD,EAChD,MAAM,CACP,CAAC;AACJ,CAAC;AACD,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAChD,OAAO,CACL,OAAO,EACP,KAAK,EACL,wFAAwF,CACzF,CAAC;AACN,CAAC;AACD,SAAS,YAAY,CAAC,IAAa;IACjC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,mBAAmB;QACrE,OAAO,CACL,gBAAgB,EAChB,IAAI,EACJ,6DAA6D,CAC9D,CAAC;AACN,CAAC;AACD,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAc,EACd,KAAmC;IAEnC,aAAa,CAAC,KAAK,CAAC,CAAC;IACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACvB,OAAO,CACL,OAAO,EACP,KAAK,EACL,uDAAuD,CACxD,CAAC;IACJ,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QAChC,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC,IAAI,CAC9C,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,KAAK,IAAI,CACxC,CAAC;QACF,IAAI,CAAC,KAAK;YACR,OAAO,CACL,YAAY,EACZ,IAAI,EACJ,8GAA8G,CAC/G,CAAC;QACJ,OAAO,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AACD
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/identity/permissions.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED