@mainframe/app-permissions
v0.3.0
Published
## Types
Downloads
8
Keywords
Readme
Application permissions utilities
Types
PermissionKeyBasic
Enum of permissions keys that only require a boolean check.
PermissionKey
Union of PermissionKeyBasic
and HTTPS_REQUEST
string.
HTTPSRequestDefinition
Array<string>
representing a list of domains.
PermissionsDefinitions
Permissions definitions as supported by the daemon.
type PermissionsDefinitions = {
HTTPS_REQUEST: HTTPSRequestDefinition,
[PermissionKeyBasic]: boolean,
}
PartialPermissionsDefinitions
Permissions definitions as defined in an application manifest.
type PartialPermissionsDefinitions = {
HTTPS_REQUEST?: HTTPSRequestDefinition,
[PermissionKeyBasic]: boolean,
}
PermissionsDefinitionsDifference
Differences between two PartialPermissionsDefinitions
.
type PermissionsDefinitionsDifference = {
added: PartialPermissionsDefinitions,
changed: PartialPermissionsDefinitions,
removed: PartialPermissionsDefinitions,
unchanged: PartialPermissionsDefinitions,
}
HTTPSRequestGrant
Permissions granted by the user for the HTTPS_REQUEST
key.
type HTTPSRequestGrant = {
granted: HTTPSRequestDefinition,
denied: HTTPSRequestDefinition,
}
PermissionsGrants
Permissions granted by the user.
type PermissionsGrants = {
HTTPS_REQUEST: HTTPSRequestGrant,
[PermissionKeyBasic]: boolean,
}
PermissionGrant
type PermissionGrant = $Values<PermissionsGrants>
PermissionRequirement
Enum for permission requirement as defined in an application manifest: 'required' | 'optional'
.
PermissionLifetime
Lifetime of a permission grant for a running app.
type PermissionLifetime =
| 'app' // As long as the app is installed
| 'user' // As long as the user allows
| 'session' // As long as the app is running
PermissionsRequirements
Permissions requirements as defined in an application manifest.
type PermissionsRequirements = {
[PermissionRequirement]: PermissionsDefinitions,
}
PermissionsRequirementsDifference
type PermissionsRequirementsDifference = {
[PermissionRequirement]: PermissionsDefinitionsDifference,
}
PermissionsDetails
type PermissionsDetails = { [PermissionLifetime]: PermissionsGrants }
PermissionCheckResult
type PermissionCheckResult =
| 'unknown_key' // Not a valid permission key
| 'not_set' // Valid key but no value
| 'invalid_input' // Special for HTTPS_REQUEST: domain not provided
| 'granted'
| 'denied'
APIs
EMPTY_DEFINITIONS
Constant of type PermissionsDefinitions
createHTTPSRequestGrant()
Arguments
granted?: HTTPSRequestDefinition
, defaults to[]
denied?: HTTPSRequestDefinition
, defaults to[]
Returns HTTPSRequestGrant
mergeGrantsToDetails()
Arguments
app: PermissionsGrants
user: PermissionsGrants
Returns PermissionsDetails
checkPermission()
Arguments
permissions: PermissionsGrants
key: PermissionKey
input?: ?string
: value to check against, only needed with theHTTPS_REQUEST
key.
Returns HTTPSRequestGrant
getDefinitionsDifference()
Arguments
current?: PermissionsDefinitions
, defaults toEMPTY_DEFINITIONS
next?: PermissionsDefinitions
, defaults toEMPTY_DEFINITIONS
Returns PermissionsDefinitionsDifference
getRequirementsDifference()
Arguments
current?: PermissionsRequirements
, defaults to{}
next?: PermissionsRequirements
, defaults to{}
Returns PermissionsRequirementsDifference