@codeleap/permissions 7.0.1 → 7.0.2
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/Permission.js +12 -8
- package/dist/Permission.js.map +1 -1
- package/dist/PermissionsManager.js +12 -8
- package/dist/PermissionsManager.js.map +1 -1
- package/dist/globals.js +2 -1
- package/dist/index.js +20 -4
- package/dist/index.js.map +1 -1
- package/dist/types.js +2 -1
- package/package.json +1 -1
package/dist/Permission.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -7,9 +8,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
9
|
});
|
|
9
10
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.Permission = void 0;
|
|
13
|
+
const store_1 = require("@codeleap/store");
|
|
14
|
+
const types_1 = require("@codeleap/types");
|
|
15
|
+
const logger_1 = require("@codeleap/logger");
|
|
13
16
|
/**
|
|
14
17
|
* Represents a single named permission with persistent reactive state.
|
|
15
18
|
*
|
|
@@ -22,7 +25,7 @@ import { logger } from '@codeleap/logger';
|
|
|
22
25
|
* on most platforms a blocked permission can only be cleared through the OS
|
|
23
26
|
* settings screen, not by a subsequent API call.
|
|
24
27
|
*/
|
|
25
|
-
|
|
28
|
+
class Permission {
|
|
26
29
|
/**
|
|
27
30
|
* Converts a raw status string into a structured descriptor object.
|
|
28
31
|
* Prefer this over equality checks scattered across call sites so that
|
|
@@ -58,7 +61,7 @@ export class Permission {
|
|
|
58
61
|
}
|
|
59
62
|
constructor(options) {
|
|
60
63
|
const { name, config, check, request } = options;
|
|
61
|
-
this.state = globalState(null, { persistKey: 'permissions-' + name });
|
|
64
|
+
this.state = (0, store_1.globalState)(null, { persistKey: 'permissions-' + name });
|
|
62
65
|
this.name = name;
|
|
63
66
|
this.config = config;
|
|
64
67
|
this.checkStatus = check;
|
|
@@ -67,7 +70,7 @@ export class Permission {
|
|
|
67
70
|
log(msg, obj) {
|
|
68
71
|
if (!Permission.logsEnabled)
|
|
69
72
|
return;
|
|
70
|
-
logger.log(`(Permission) ${this.name} -> ${msg}`, obj);
|
|
73
|
+
logger_1.logger.log(`(Permission) ${this.name} -> ${msg}`, obj);
|
|
71
74
|
}
|
|
72
75
|
/**
|
|
73
76
|
* Directly overwrites the stored status without going through the native
|
|
@@ -99,7 +102,7 @@ export class Permission {
|
|
|
99
102
|
status = this.value;
|
|
100
103
|
}
|
|
101
104
|
const update = status != this.value;
|
|
102
|
-
if (update && TypeGuards.isString(status)) {
|
|
105
|
+
if (update && types_1.TypeGuards.isString(status)) {
|
|
103
106
|
this.set(status);
|
|
104
107
|
}
|
|
105
108
|
this.log('check', { status, update });
|
|
@@ -116,7 +119,7 @@ export class Permission {
|
|
|
116
119
|
return __awaiter(this, void 0, void 0, function* () {
|
|
117
120
|
const status = yield this.requestStatus();
|
|
118
121
|
const update = status != this.value;
|
|
119
|
-
if (update && TypeGuards.isString(status)) {
|
|
122
|
+
if (update && types_1.TypeGuards.isString(status)) {
|
|
120
123
|
this.set(status);
|
|
121
124
|
}
|
|
122
125
|
this.log('request', { status, update });
|
|
@@ -124,6 +127,7 @@ export class Permission {
|
|
|
124
127
|
});
|
|
125
128
|
}
|
|
126
129
|
}
|
|
130
|
+
exports.Permission = Permission;
|
|
127
131
|
/**
|
|
128
132
|
* Set to `true` to enable verbose permission logs via `@codeleap/logger`.
|
|
129
133
|
* Applies to every `Permission` instance; toggling at runtime takes effect
|
package/dist/Permission.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Permission.js","sourceRoot":"","sources":["../src/Permission.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Permission.js","sourceRoot":"","sources":["../src/Permission.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA0D;AAG1D,2CAA4C;AAC5C,6CAAyC;AAEzC;;;;;;;;;;;GAWG;AACH,MAAa,UAAU;IAiBrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,MAAwB;QAChC,OAAO;YACL,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,MAAM,KAAK,SAAS;YAC/B,SAAS,EAAE,MAAM,KAAK,SAAS;YAC/B,QAAQ,EAAE,MAAM,KAAK,QAAQ;YAC7B,SAAS,EAAE,MAAM,KAAK,SAAS;SAChC,CAAA;IACH,CAAC;IAKD;;;OAGG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;IACzB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAA;IAC5C,CAAC;IAED,IAAI,SAAS;QACX,OAAO,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAA;IAC5C,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAA;IAC3C,CAAC;IAED,IAAI,SAAS;QACX,OAAO,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAA;IAC5C,CAAC;IAED,YAAY,OAA4C;QACtD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;QAEhD,IAAI,CAAC,KAAK,GAAG,IAAA,mBAAW,EAAC,IAAwB,EAAE,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI,EAAE,CAAC,CAAA;QAEzF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;QACxB,IAAI,CAAC,aAAa,GAAG,OAAO,CAAA;IAC9B,CAAC;IAEO,GAAG,CAAC,GAAW,EAAE,GAAS;QAChC,IAAI,CAAC,UAAU,CAAC,WAAW;YAAE,OAAM;QACnC,eAAM,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,IAAI,OAAO,GAAG,EAAE,EAAE,GAAG,CAAC,CAAA;IACxD,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,SAA2B;QAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC3B,CAAC;IAED;;;OAGG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;IACzB,CAAC;IAED;;;;;;;OAOG;IACG,KAAK;;YACT,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;YAErC,IAAI,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACpD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;YACrB,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,CAAA;YAEnC,IAAI,MAAM,IAAI,kBAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC,GAAG,CAAC,MAA0B,CAAC,CAAA;YACtC,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;YAErC,OAAO,MAAM,CAAA;QACf,CAAC;KAAA;IAED;;;;;OAKG;IACG,OAAO;;YACX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;YACzC,MAAM,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,CAAA;YAEnC,IAAI,MAAM,IAAI,kBAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC,GAAG,CAAC,MAA0B,CAAC,CAAA;YACtC,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;YAEvC,OAAO,MAAM,CAAA;QACf,CAAC;KAAA;;AAvIH,gCAwIC;AA9HC;;;;GAIG;AACI,sBAAW,GAAY,KAAK,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -7,8 +8,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
9
|
});
|
|
9
10
|
};
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.PermissionsManager = void 0;
|
|
13
|
+
const Permission_1 = require("./Permission");
|
|
14
|
+
const logger_1 = require("@codeleap/logger");
|
|
12
15
|
/**
|
|
13
16
|
* Registry and coordinator for a fixed set of named permissions.
|
|
14
17
|
*
|
|
@@ -18,7 +21,7 @@ import { logger } from '@codeleap/logger';
|
|
|
18
21
|
* pre-prompt logic (e.g. showing an educational interstitial before the OS
|
|
19
22
|
* dialog appears).
|
|
20
23
|
*/
|
|
21
|
-
|
|
24
|
+
class PermissionsManager {
|
|
22
25
|
get keys() {
|
|
23
26
|
return Object.keys(this.permissions);
|
|
24
27
|
}
|
|
@@ -46,16 +49,16 @@ export class PermissionsManager {
|
|
|
46
49
|
this.permissions = {};
|
|
47
50
|
for (const permission in permissions) {
|
|
48
51
|
const permissionConfig = permissions[permission];
|
|
49
|
-
const permissionClass = new Permission(Object.assign(Object.assign({}, permissionConfig), { name: permission }));
|
|
52
|
+
const permissionClass = new Permission_1.Permission(Object.assign(Object.assign({}, permissionConfig), { name: permission }));
|
|
50
53
|
this.permissions[permission] = permissionClass;
|
|
51
54
|
}
|
|
52
55
|
this.requester = requester;
|
|
53
56
|
this.checkAll();
|
|
54
57
|
}
|
|
55
58
|
log(msg, ...args) {
|
|
56
|
-
if (!Permission.logsEnabled)
|
|
59
|
+
if (!Permission_1.Permission.logsEnabled)
|
|
57
60
|
return;
|
|
58
|
-
logger.log(`(Permissions) -> ${msg}`, ...(args !== null && args !== void 0 ? args : ''));
|
|
61
|
+
logger_1.logger.log(`(Permissions) -> ${msg}`, ...(args !== null && args !== void 0 ? args : ''));
|
|
59
62
|
}
|
|
60
63
|
/**
|
|
61
64
|
* React hook that subscribes a component to the reactive state of a single
|
|
@@ -76,7 +79,7 @@ export class PermissionsManager {
|
|
|
76
79
|
return __awaiter(this, void 0, void 0, function* () {
|
|
77
80
|
const permission = this.permissions[permissionName];
|
|
78
81
|
const status = yield this.requester(permission);
|
|
79
|
-
return Permission.is(status);
|
|
82
|
+
return Permission_1.Permission.is(status);
|
|
80
83
|
});
|
|
81
84
|
}
|
|
82
85
|
/**
|
|
@@ -87,7 +90,7 @@ export class PermissionsManager {
|
|
|
87
90
|
return __awaiter(this, void 0, void 0, function* () {
|
|
88
91
|
const permission = this.permissions[permissionName];
|
|
89
92
|
const status = yield permission.check();
|
|
90
|
-
return Permission.is(status);
|
|
93
|
+
return Permission_1.Permission.is(status);
|
|
91
94
|
});
|
|
92
95
|
}
|
|
93
96
|
/**
|
|
@@ -130,4 +133,5 @@ export class PermissionsManager {
|
|
|
130
133
|
});
|
|
131
134
|
}
|
|
132
135
|
}
|
|
136
|
+
exports.PermissionsManager = PermissionsManager;
|
|
133
137
|
//# sourceMappingURL=PermissionsManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionsManager.js","sourceRoot":"","sources":["../src/PermissionsManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PermissionsManager.js","sourceRoot":"","sources":["../src/PermissionsManager.ts"],"names":[],"mappings":"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"}
|
package/dist/globals.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./PermissionsManager"), exports);
|
|
18
|
+
__exportStar(require("./Permission"), exports);
|
|
19
|
+
__exportStar(require("./types"), exports);
|
|
20
|
+
__exportStar(require("./globals"), exports);
|
|
5
21
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAoC;AACpC,+CAA4B;AAC5B,0CAAuB;AACvB,4CAAyB"}
|
package/dist/types.js
CHANGED