@quenty/permissionprovider 14.19.3 → 14.19.4-canary.559.339cfa7.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/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [14.19.4-canary.559.339cfa7.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/permissionprovider@14.19.3...@quenty/permissionprovider@14.19.4-canary.559.339cfa7.0) (2025-05-10)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * Additional type checking updates ([05ba29a](https://github.com/Quenty/NevermoreEngine/commit/05ba29a03efc9f3feed74b34f1d9dfb237496214))
12
+
13
+
14
+ ### Features
15
+
16
+ * Add even more types ([b31717d](https://github.com/Quenty/NevermoreEngine/commit/b31717d8c9f7620c457f5018a2affa760a65334a))
17
+
18
+
19
+
20
+
21
+
6
22
  ## [14.19.3](https://github.com/Quenty/NevermoreEngine/compare/@quenty/permissionprovider@14.19.2...@quenty/permissionprovider@14.19.3) (2025-04-10)
7
23
 
8
24
  **Note:** Version bump only for package @quenty/permissionprovider
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quenty/permissionprovider",
3
- "version": "14.19.3",
3
+ "version": "14.19.4-canary.559.339cfa7.0",
4
4
  "description": "Permission provider for Roblox, including authenticating against group membership",
5
5
  "keywords": [
6
6
  "Roblox",
@@ -25,20 +25,20 @@
25
25
  "Quenty"
26
26
  ],
27
27
  "dependencies": {
28
- "@quenty/baseobject": "^10.8.3",
29
- "@quenty/brio": "^14.17.3",
30
- "@quenty/grouputils": "^10.10.4",
31
- "@quenty/loader": "^10.8.3",
32
- "@quenty/maid": "^3.4.3",
33
- "@quenty/playerutils": "^8.17.3",
34
- "@quenty/promise": "^10.10.4",
35
- "@quenty/remoting": "^12.18.3",
36
- "@quenty/rx": "^13.17.3",
37
- "@quenty/servicebag": "^11.11.4",
38
- "@quenty/table": "^3.7.4"
28
+ "@quenty/baseobject": "10.8.4-canary.559.339cfa7.0",
29
+ "@quenty/brio": "14.17.4-canary.559.339cfa7.0",
30
+ "@quenty/grouputils": "10.10.5-canary.559.339cfa7.0",
31
+ "@quenty/loader": "10.8.4-canary.559.339cfa7.0",
32
+ "@quenty/maid": "3.4.4-canary.559.339cfa7.0",
33
+ "@quenty/playerutils": "8.17.4-canary.559.339cfa7.0",
34
+ "@quenty/promise": "10.10.5-canary.559.339cfa7.0",
35
+ "@quenty/remoting": "12.18.4-canary.559.339cfa7.0",
36
+ "@quenty/rx": "13.17.4-canary.559.339cfa7.0",
37
+ "@quenty/servicebag": "11.11.5-canary.559.339cfa7.0",
38
+ "@quenty/table": "3.7.5-canary.559.339cfa7.0"
39
39
  },
40
40
  "publishConfig": {
41
41
  "access": "public"
42
42
  },
43
- "gitHead": "b06c070ae91d5dab7bd8de6e290ad2caabb15d8f"
43
+ "gitHead": "339cfa778736f08768ed7305041f6221faa35bfc"
44
44
  }
@@ -11,11 +11,11 @@
11
11
 
12
12
  local require = require(script.Parent.loader).load(script)
13
13
 
14
- local PermissionProviderConstants = require("PermissionProviderConstants")
14
+ local Maid = require("Maid")
15
15
  local PermissionProviderClient = require("PermissionProviderClient")
16
+ local PermissionProviderConstants = require("PermissionProviderConstants")
16
17
  local Promise = require("Promise")
17
- local Maid = require("Maid")
18
- local _ServiceBag = require("ServiceBag")
18
+ local ServiceBag = require("ServiceBag")
19
19
 
20
20
  local PermissionServiceClient = {}
21
21
  PermissionServiceClient.ServiceName = "PermissionServiceClient"
@@ -24,7 +24,7 @@ PermissionServiceClient.ServiceName = "PermissionServiceClient"
24
24
  Initializes the permission service on the client. Should be done via [ServiceBag].
25
25
  @param serviceBag ServiceBag
26
26
  ]=]
27
- function PermissionServiceClient:Init(serviceBag: _ServiceBag.ServiceBag)
27
+ function PermissionServiceClient:Init(serviceBag: ServiceBag.ServiceBag)
28
28
  assert(not self._serviceBag, "Already initialized")
29
29
  self._serviceBag = assert(serviceBag, "no serviceBag")
30
30
  self._maid = Maid.new()
@@ -88,4 +88,4 @@ function PermissionProviderClient._promiseRemoteFunction(self: PermissionProvide
88
88
  return self._remoteFunctionPromise
89
89
  end
90
90
 
91
- return PermissionProviderClient
91
+ return PermissionProviderClient
@@ -75,15 +75,15 @@ end
75
75
  function PermissionProviderUtils.createConfigFromGame(): PermissionProviderConfig
76
76
  if game.CreatorType == Enum.CreatorType.Group then
77
77
  return PermissionProviderUtils.createGroupRankConfig({
78
- groupId = game.CreatorId;
79
- minAdminRequiredRank = 250;
80
- minCreatorRequiredRank = 254;
78
+ groupId = game.CreatorId,
79
+ minAdminRequiredRank = 250,
80
+ minCreatorRequiredRank = 254,
81
81
  })
82
82
  else
83
83
  return PermissionProviderUtils.createSingleUserConfig({
84
- userId = game.CreatorId;
84
+ userId = game.CreatorId,
85
85
  })
86
86
  end
87
87
  end
88
88
 
89
- return PermissionProviderUtils
89
+ return PermissionProviderUtils
@@ -1,3 +1,4 @@
1
+ --!strict
1
2
  --[=[
2
3
  Provides permissions for the game. See [BasePermissionProvider].
3
4
 
@@ -24,21 +25,21 @@
24
25
 
25
26
  local require = require(script.Parent.loader).load(script)
26
27
 
28
+ local BasePermissionProvider = require("BasePermissionProvider")
29
+ local Brio = require("Brio")
27
30
  local CreatorPermissionProvider = require("CreatorPermissionProvider")
28
31
  local GroupPermissionProvider = require("GroupPermissionProvider")
29
32
  local Maid = require("Maid")
33
+ local Observable = require("Observable")
30
34
  local PermissionLevel = require("PermissionLevel")
35
+ local PermissionLevelUtils = require("PermissionLevelUtils")
31
36
  local PermissionProviderConstants = require("PermissionProviderConstants")
32
37
  local PermissionProviderUtils = require("PermissionProviderUtils")
33
38
  local Promise = require("Promise")
34
39
  local Rx = require("Rx")
35
40
  local RxBrioUtils = require("RxBrioUtils")
36
41
  local RxPlayerUtils = require("RxPlayerUtils")
37
- local PermissionLevelUtils = require("PermissionLevelUtils")
38
- local _ServiceBag = require("ServiceBag")
39
- local _Observable = require("Observable")
40
- local _Brio = require("Brio")
41
- local _BasePermissionProvider = require("BasePermissionProvider")
42
+ local ServiceBag = require("ServiceBag")
42
43
 
43
44
  local PermissionService = {}
44
45
  PermissionService.ServiceName = "PermissionService"
@@ -56,7 +57,7 @@ export type PermissionService = typeof(setmetatable(
56
57
  Initializes the service. Should be done via [ServiceBag].
57
58
  @param _serviceBag ServiceBag
58
59
  ]=]
59
- function PermissionService:Init(_serviceBag: _ServiceBag.ServiceBag)
60
+ function PermissionService.Init(self: PermissionService, _serviceBag: ServiceBag.ServiceBag)
60
61
  assert(not self._promise, "Already initialized")
61
62
  assert(not self._provider, "Already have provider")
62
63
 
@@ -71,7 +72,10 @@ end
71
72
 
72
73
  @param config { type: string }
73
74
  ]=]
74
- function PermissionService:SetProviderFromConfig(config: PermissionProviderUtils.PermissionProviderConfig)
75
+ function PermissionService.SetProviderFromConfig(
76
+ self: PermissionService,
77
+ config: PermissionProviderUtils.PermissionProviderConfig
78
+ )
75
79
  assert(self._promise, "Not initialized")
76
80
  assert(not self._provider, "Already have provider set")
77
81
 
@@ -87,7 +91,7 @@ end
87
91
  --[=[
88
92
  Starts the permission service. Should be done via [ServiceBag].
89
93
  ]=]
90
- function PermissionService:Start()
94
+ function PermissionService.Start(self: PermissionService)
91
95
  if not self._provider then
92
96
  self:SetProviderFromConfig(PermissionProviderUtils.createConfigFromGame())
93
97
  end
@@ -101,7 +105,9 @@ end
101
105
  Returns the permission provider
102
106
  @return Promise<BasePermissionProvider>
103
107
  ]=]
104
- function PermissionService:PromisePermissionProvider(): Promise.Promise<_BasePermissionProvider.BasePermissionProvider>
108
+ function PermissionService.PromisePermissionProvider(
109
+ self: PermissionService
110
+ ): Promise.Promise<BasePermissionProvider.BasePermissionProvider>
105
111
  assert(self._promise, "Not initialized")
106
112
 
107
113
  return self._promise
@@ -112,7 +118,7 @@ end
112
118
  @param player Player
113
119
  @return Promise<boolean>
114
120
  ]=]
115
- function PermissionService:PromiseIsAdmin(player: Player): Promise.Promise<boolean>
121
+ function PermissionService.PromiseIsAdmin(self: PermissionService, player: Player): Promise.Promise<boolean>
116
122
  assert(typeof(player) == "Instance" and player:IsA("Player"), "bad player")
117
123
 
118
124
  return self:PromiseIsPermissionLevel(player, PermissionLevel.ADMIN)
@@ -123,7 +129,7 @@ end
123
129
  @param player Player
124
130
  @return Promise<boolean>
125
131
  ]=]
126
- function PermissionService:PromiseIsCreator(player: Player): Promise.Promise<boolean>
132
+ function PermissionService.PromiseIsCreator(self: PermissionService, player: Player): Promise.Promise<boolean>
127
133
  assert(typeof(player) == "Instance" and player:IsA("Player"), "bad player")
128
134
 
129
135
  return self:PromiseIsPermissionLevel(player, PermissionLevel.CREATOR)
@@ -135,7 +141,8 @@ end
135
141
  @param permissionLevel PermissionLevel
136
142
  @return Promise<boolean>
137
143
  ]=]
138
- function PermissionService:PromiseIsPermissionLevel(
144
+ function PermissionService.PromiseIsPermissionLevel(
145
+ self: PermissionService,
139
146
  player: Player,
140
147
  permissionLevel: PermissionLevel.PermissionLevel
141
148
  ): Promise.Promise<boolean>
@@ -153,25 +160,28 @@ end
153
160
  @param permissionLevel PermissionLevel
154
161
  @return Observable<Brio<Player>>
155
162
  ]=]
156
- function PermissionService:ObservePermissionedPlayersBrio(permissionLevel: PermissionLevel.PermissionLevel): _Observable.Observable<_Brio.Brio<Player>>
163
+ function PermissionService.ObservePermissionedPlayersBrio(
164
+ self: PermissionService,
165
+ permissionLevel: PermissionLevel.PermissionLevel
166
+ ): Observable.Observable<Brio.Brio<Player>>
157
167
  assert(PermissionLevelUtils.isPermissionLevel(permissionLevel), "Bad permissionLevel")
158
168
 
159
169
  return RxPlayerUtils.observePlayersBrio():Pipe({
160
170
  RxBrioUtils.flatMapBrio(function(player)
161
171
  return Rx.fromPromise(self:PromiseIsPermissionLevel(player, permissionLevel)):Pipe({
162
- Rx.switchMap(function(hasPermission)
172
+ Rx.switchMap(function(hasPermission): any
163
173
  if hasPermission then
164
174
  return Rx.of(player)
165
175
  else
166
176
  return Rx.EMPTY
167
177
  end
168
- end),
169
- })
170
- end),
171
- })
178
+ end) :: any,
179
+ }) :: any
180
+ end) :: any,
181
+ }) :: any
172
182
  end
173
183
 
174
- function PermissionService:Destroy()
184
+ function PermissionService.Destroy(self: PermissionService)
175
185
  self._maid:DoCleaning()
176
186
  self._provider = nil
177
187
  end
@@ -11,9 +11,9 @@ local BaseObject = require("BaseObject")
11
11
  local GetRemoteFunction = require("GetRemoteFunction")
12
12
  local PermissionLevel = require("PermissionLevel")
13
13
  local PermissionLevelUtils = require("PermissionLevelUtils")
14
+ local PermissionProviderUtils = require("PermissionProviderUtils")
15
+ local Promise = require("Promise")
14
16
  local Table = require("Table")
15
- local _Promise = require("Promise")
16
- local _PermissionProviderUtils = require("PermissionProviderUtils")
17
17
 
18
18
  local BasePermissionProvider = setmetatable({}, BaseObject)
19
19
  BasePermissionProvider.ClassName = "BasePermissionProvider"
@@ -34,7 +34,7 @@ export type BasePermissionProvider = typeof(setmetatable(
34
34
  @param config { remoteFunctionName: string }
35
35
  @return BasePermissionProvider
36
36
  ]=]
37
- function BasePermissionProvider.new(config: _PermissionProviderUtils.PermissionProviderConfig): BasePermissionProvider
37
+ function BasePermissionProvider.new(config: PermissionProviderUtils.PermissionProviderConfig): BasePermissionProvider
38
38
  local self: BasePermissionProvider = setmetatable(BaseObject.new() :: any, BasePermissionProvider)
39
39
 
40
40
  self._config = Table.readonly(assert(config, "Bad config") :: any)
@@ -66,7 +66,7 @@ function BasePermissionProvider.PromiseIsPermissionLevel(
66
66
  _self: BasePermissionProvider,
67
67
  player: Player,
68
68
  permissionLevel: PermissionLevel.PermissionLevel
69
- ): _Promise.Promise<boolean>
69
+ ): Promise.Promise<boolean>
70
70
  assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
71
71
  assert(PermissionLevelUtils.isPermissionLevel(permissionLevel), "Bad permissionLevel")
72
72
 
@@ -106,10 +106,7 @@ end
106
106
  @param player Player
107
107
  @return Promise<boolean>
108
108
  ]=]
109
- function BasePermissionProvider.PromiseIsCreator(
110
- self: BasePermissionProvider,
111
- player: Player
112
- ): _Promise.Promise<boolean>
109
+ function BasePermissionProvider.PromiseIsCreator(self: BasePermissionProvider, player: Player): Promise.Promise<boolean>
113
110
  assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
114
111
 
115
112
  return self:PromiseIsPermissionLevel(player, PermissionLevel.CREATOR)
@@ -120,7 +117,7 @@ end
120
117
  @param player Player
121
118
  @return Promise<boolean>
122
119
  ]=]
123
- function BasePermissionProvider.PromiseIsAdmin(self: BasePermissionProvider, player: Player): _Promise.Promise<boolean>
120
+ function BasePermissionProvider.PromiseIsAdmin(self: BasePermissionProvider, player: Player): Promise.Promise<boolean>
124
121
  assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
125
122
 
126
123
  return self:PromiseIsPermissionLevel(player, PermissionLevel.ADMIN)
@@ -169,4 +166,4 @@ function BasePermissionProvider._onServerInvoke(self: BasePermissionProvider, pl
169
166
  return result and true or false
170
167
  end
171
168
 
172
- return BasePermissionProvider
169
+ return BasePermissionProvider
@@ -11,11 +11,11 @@ local require = require(script.Parent.loader).load(script)
11
11
  local RunService = game:GetService("RunService")
12
12
 
13
13
  local BasePermissionProvider = require("BasePermissionProvider")
14
- local PermissionProviderConstants = require("PermissionProviderConstants")
15
- local Promise = require("Promise")
16
14
  local PermissionLevel = require("PermissionLevel")
17
15
  local PermissionLevelUtils = require("PermissionLevelUtils")
18
- local _PermissionProviderUtils = require("PermissionProviderUtils")
16
+ local PermissionProviderConstants = require("PermissionProviderConstants")
17
+ local PermissionProviderUtils = require("PermissionProviderUtils")
18
+ local Promise = require("Promise")
19
19
 
20
20
  local CreatorPermissionProvider = setmetatable({}, BasePermissionProvider)
21
21
  CreatorPermissionProvider.ClassName = "CreatorPermissionProvider"
@@ -23,7 +23,7 @@ CreatorPermissionProvider.__index = CreatorPermissionProvider
23
23
 
24
24
  export type CreatorPermissionProvider = typeof(setmetatable(
25
25
  {} :: {
26
- _config: _PermissionProviderUtils.SingleUserConfig,
26
+ _config: PermissionProviderUtils.SingleUserConfig,
27
27
  _userId: number,
28
28
  },
29
29
  {} :: typeof({ __index = CreatorPermissionProvider })
@@ -33,7 +33,7 @@ export type CreatorPermissionProvider = typeof(setmetatable(
33
33
  @param config table
34
34
  @return CreatorPermissionProvider
35
35
  ]=]
36
- function CreatorPermissionProvider.new(config: _PermissionProviderUtils.SingleUserConfig): CreatorPermissionProvider
36
+ function CreatorPermissionProvider.new(config: PermissionProviderUtils.SingleUserConfig): CreatorPermissionProvider
37
37
  local self: CreatorPermissionProvider =
38
38
  setmetatable(BasePermissionProvider.new(config) :: any, CreatorPermissionProvider)
39
39
 
@@ -50,16 +50,19 @@ end
50
50
  @param permissionLevel PermissionLevel
51
51
  @return Promise<boolean>
52
52
  ]=]
53
- function CreatorPermissionProvider.PromiseIsPermissionLevel(self: CreatorPermissionProvider, player: Player, permissionLevel: PermissionLevel.PermissionLevel): Promise.Promise<boolean>
53
+ function CreatorPermissionProvider.PromiseIsPermissionLevel(
54
+ self: CreatorPermissionProvider,
55
+ player: Player,
56
+ permissionLevel: PermissionLevel.PermissionLevel
57
+ ): Promise.Promise<boolean>
54
58
  assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
55
59
  assert(PermissionLevelUtils.isPermissionLevel(permissionLevel), "Bad permissionLevel")
56
60
 
57
- if permissionLevel == PermissionLevel.ADMIN
58
- or permissionLevel == PermissionLevel.CREATOR then
61
+ if permissionLevel == PermissionLevel.ADMIN or permissionLevel == PermissionLevel.CREATOR then
59
62
  return Promise.resolved(player.UserId == self._userId or RunService:IsStudio())
60
63
  else
61
64
  error("Unknown permissionLevel")
62
65
  end
63
66
  end
64
67
 
65
- return CreatorPermissionProvider
68
+ return CreatorPermissionProvider
@@ -15,8 +15,8 @@ local GroupUtils = require("GroupUtils")
15
15
  local PermissionLevel = require("PermissionLevel")
16
16
  local PermissionLevelUtils = require("PermissionLevelUtils")
17
17
  local PermissionProviderConstants = require("PermissionProviderConstants")
18
+ local PermissionProviderUtils = require("PermissionProviderUtils")
18
19
  local Promise = require("Promise")
19
- local _PermissionProviderUtils = require("PermissionProviderUtils")
20
20
 
21
21
  local GroupPermissionProvider = setmetatable({}, BasePermissionProvider)
22
22
  GroupPermissionProvider.__index = GroupPermissionProvider
@@ -24,7 +24,7 @@ GroupPermissionProvider.ClassName = "GroupPermissionProvider"
24
24
 
25
25
  export type GroupPermissionProvider = typeof(setmetatable(
26
26
  {} :: {
27
- _config: _PermissionProviderUtils.GroupRankConfig,
27
+ _config: PermissionProviderUtils.GroupRankConfig,
28
28
  _groupId: number,
29
29
  _minAdminRequiredRank: number,
30
30
  _minCreatorRequiredRank: number,
@@ -39,7 +39,7 @@ export type GroupPermissionProvider = typeof(setmetatable(
39
39
  @param config table
40
40
  @return GroupPermissionProvider
41
41
  ]=]
42
- function GroupPermissionProvider.new(config: _PermissionProviderUtils.GroupRankConfig): GroupPermissionProvider
42
+ function GroupPermissionProvider.new(config: PermissionProviderUtils.GroupRankConfig): GroupPermissionProvider
43
43
  local self = setmetatable(BasePermissionProvider.new(config) :: any, GroupPermissionProvider)
44
44
 
45
45
  assert(self._config.type == PermissionProviderConstants.GROUP_RANK_CONFIG_TYPE, "Bad configType")
@@ -158,7 +158,10 @@ function GroupPermissionProvider._handlePlayer(self: GroupPermissionProvider, pl
158
158
  end)
159
159
  end
160
160
 
161
- function GroupPermissionProvider._promiseRankInGroup(self: GroupPermissionProvider, player: Player): Promise.Promise<number>
161
+ function GroupPermissionProvider._promiseRankInGroup(
162
+ self: GroupPermissionProvider,
163
+ player: Player
164
+ ): Promise.Promise<number>
162
165
  assert(typeof(player) == "Instance", "Bad player")
163
166
 
164
167
  if self._promiseRankPromisesCache[player.UserId] then
@@ -169,4 +172,4 @@ function GroupPermissionProvider._promiseRankInGroup(self: GroupPermissionProvid
169
172
  return self._promiseRankPromisesCache[player.UserId]
170
173
  end
171
174
 
172
- return GroupPermissionProvider
175
+ return GroupPermissionProvider
@@ -1,3 +1,4 @@
1
+ --!strict
1
2
  --[=[
2
3
  @class PermissionLevelUtils
3
4
  ]=]
@@ -20,4 +21,4 @@ function PermissionLevelUtils.isPermissionLevel(permissionLevel: any): boolean
20
21
  return ALLOWED[permissionLevel] == true
21
22
  end
22
23
 
23
- return PermissionLevelUtils
24
+ return PermissionLevelUtils
@@ -1,3 +1,4 @@
1
+ --!strict
1
2
  --[=[
2
3
  Constants for the permission system
3
4
  @class PermissionProviderConstants
@@ -9,7 +9,9 @@ serviceBag:GetService(require("PermissionServiceClient"))
9
9
  serviceBag:Init()
10
10
  serviceBag:Start()
11
11
 
12
- serviceBag:GetService(require("PermissionServiceClient")):PromisePermissionProvider()
12
+ serviceBag
13
+ :GetService(require("PermissionServiceClient"))
14
+ :PromisePermissionProvider()
13
15
  :Then(function(permissionProvider)
14
16
  return permissionProvider:PromiseIsAdmin()
15
17
  end)
@@ -17,4 +19,4 @@ serviceBag:GetService(require("PermissionServiceClient")):PromisePermissionProvi
17
19
  print("isAdmin", isAdmin)
18
20
  end)
19
21
 
20
- print("Loaded")
22
+ print("Loaded")