@quenty/roblox-api-dump 8.11.3 → 8.11.4
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 +8 -0
- package/package.json +7 -7
- package/src/Server/RobloxApiClass.lua +41 -27
- package/src/Server/RobloxApiDump.lua +14 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
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
|
+
## [8.11.4](https://github.com/Quenty/NevermoreEngine/compare/@quenty/roblox-api-dump@8.11.3...@quenty/roblox-api-dump@8.11.4) (2025-04-10)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @quenty/roblox-api-dump
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [8.11.3](https://github.com/Quenty/NevermoreEngine/compare/@quenty/roblox-api-dump@8.11.1...@quenty/roblox-api-dump@8.11.3) (2025-04-07)
|
|
7
15
|
|
|
8
16
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/roblox-api-dump",
|
|
3
|
-
"version": "8.11.
|
|
3
|
+
"version": "8.11.4",
|
|
4
4
|
"description": "Utility functions for grabbing the Roblox API from the web",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Roblox",
|
|
@@ -26,14 +26,14 @@
|
|
|
26
26
|
"Quenty"
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@quenty/baseobject": "^10.8.
|
|
30
|
-
"@quenty/httppromise": "^10.10.
|
|
31
|
-
"@quenty/loader": "^10.8.
|
|
32
|
-
"@quenty/promise": "^10.10.
|
|
33
|
-
"@quenty/table": "^3.7.
|
|
29
|
+
"@quenty/baseobject": "^10.8.3",
|
|
30
|
+
"@quenty/httppromise": "^10.10.4",
|
|
31
|
+
"@quenty/loader": "^10.8.3",
|
|
32
|
+
"@quenty/promise": "^10.10.4",
|
|
33
|
+
"@quenty/table": "^3.7.4"
|
|
34
34
|
},
|
|
35
35
|
"publishConfig": {
|
|
36
36
|
"access": "public"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "b06c070ae91d5dab7bd8de6e290ad2caabb15d8f"
|
|
39
39
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
--!strict
|
|
1
2
|
--[=[
|
|
2
3
|
Represents a specific Roblox class.
|
|
3
4
|
@class RobloxApiClass
|
|
@@ -12,6 +13,16 @@ local RobloxApiClass = {}
|
|
|
12
13
|
RobloxApiClass.ClassName = "RobloxApiClass"
|
|
13
14
|
RobloxApiClass.__index = RobloxApiClass
|
|
14
15
|
|
|
16
|
+
export type RobloxApiClass = typeof(setmetatable(
|
|
17
|
+
{} :: {
|
|
18
|
+
_robloxApiDump: any,
|
|
19
|
+
_data: any,
|
|
20
|
+
_allSuperClassesPromise: Promise.Promise<any>?,
|
|
21
|
+
_tagCache: { [string]: boolean }?,
|
|
22
|
+
},
|
|
23
|
+
{} :: typeof({ __index = RobloxApiClass })
|
|
24
|
+
))
|
|
25
|
+
|
|
15
26
|
--[=[
|
|
16
27
|
Constructs a new RobloxApiClass. See [RobloxApiDump.PromiseClass] to actually construct
|
|
17
28
|
this class.
|
|
@@ -19,8 +30,8 @@ RobloxApiClass.__index = RobloxApiClass
|
|
|
19
30
|
@param data table
|
|
20
31
|
@return RobloxApiClass
|
|
21
32
|
]=]
|
|
22
|
-
function RobloxApiClass.new(robloxApiDump, data)
|
|
23
|
-
local self = setmetatable({}, RobloxApiClass)
|
|
33
|
+
function RobloxApiClass.new(robloxApiDump, data): RobloxApiClass
|
|
34
|
+
local self: RobloxApiClass = setmetatable({} :: any, RobloxApiClass)
|
|
24
35
|
|
|
25
36
|
--[[
|
|
26
37
|
{
|
|
@@ -47,7 +58,7 @@ end
|
|
|
47
58
|
Retrieves the raw class data
|
|
48
59
|
@return table
|
|
49
60
|
]=]
|
|
50
|
-
function RobloxApiClass
|
|
61
|
+
function RobloxApiClass.GetRawData(self: RobloxApiClass): unknown
|
|
51
62
|
return self._data
|
|
52
63
|
end
|
|
53
64
|
|
|
@@ -55,7 +66,7 @@ end
|
|
|
55
66
|
Gets the class name.
|
|
56
67
|
@return string
|
|
57
68
|
]=]
|
|
58
|
-
function RobloxApiClass
|
|
69
|
+
function RobloxApiClass.GetClassName(self: RobloxApiClass): string
|
|
59
70
|
assert(type(self._data.Name) == "string", "Bad Name")
|
|
60
71
|
return self._data.Name
|
|
61
72
|
end
|
|
@@ -64,7 +75,7 @@ end
|
|
|
64
75
|
Gets the class category.
|
|
65
76
|
@return string?
|
|
66
77
|
]=]
|
|
67
|
-
function RobloxApiClass
|
|
78
|
+
function RobloxApiClass.GetMemberCategory(self: RobloxApiClass): string?
|
|
68
79
|
return self._data.MemoryCategory -- might be nil, stuff like "Data" or ""
|
|
69
80
|
end
|
|
70
81
|
|
|
@@ -72,7 +83,7 @@ end
|
|
|
72
83
|
Retrieves the super class, or rejects.
|
|
73
84
|
@return Promise<RobloxApiClass>
|
|
74
85
|
]=]
|
|
75
|
-
function RobloxApiClass
|
|
86
|
+
function RobloxApiClass.PromiseSuperClass(self: RobloxApiClass): Promise.Promise<RobloxApiClass>
|
|
76
87
|
local superclass = self:GetSuperClassName()
|
|
77
88
|
if superclass then
|
|
78
89
|
return self._robloxApiDump:PromiseClass(superclass)
|
|
@@ -86,7 +97,7 @@ end
|
|
|
86
97
|
@param className string
|
|
87
98
|
@return Promise<boolean>
|
|
88
99
|
]=]
|
|
89
|
-
function RobloxApiClass
|
|
100
|
+
function RobloxApiClass.PromiseIsA(self: RobloxApiClass, className: string): Promise.Promise<boolean>
|
|
90
101
|
if self:GetClassName() == className then
|
|
91
102
|
return Promise.resolved(true)
|
|
92
103
|
end
|
|
@@ -101,7 +112,7 @@ end
|
|
|
101
112
|
@param className string
|
|
102
113
|
@return Promise<boolean>
|
|
103
114
|
]=]
|
|
104
|
-
function RobloxApiClass
|
|
115
|
+
function RobloxApiClass.PromiseIsDescendantOf(self: RobloxApiClass, className: string)
|
|
105
116
|
return self:PromiseAllSuperClasses():Then(function(classes)
|
|
106
117
|
for _, class in classes do
|
|
107
118
|
if class:GetClassName() == className then
|
|
@@ -117,33 +128,34 @@ end
|
|
|
117
128
|
Returns a promise that resolves to all super classes.
|
|
118
129
|
@return Promise<{ RobloxApiClass }>
|
|
119
130
|
]=]
|
|
120
|
-
function RobloxApiClass
|
|
131
|
+
function RobloxApiClass.PromiseAllSuperClasses(self: RobloxApiClass): Promise.Promise<{ RobloxApiClass }>
|
|
121
132
|
if self._allSuperClassesPromise then
|
|
122
133
|
return self._allSuperClassesPromise
|
|
123
134
|
end
|
|
124
135
|
|
|
125
|
-
local list = {}
|
|
136
|
+
local list: { RobloxApiClass } = {}
|
|
126
137
|
|
|
127
|
-
local function chain(current)
|
|
138
|
+
local function chain(current: RobloxApiClass): Promise.Promise<{ RobloxApiClass }>
|
|
128
139
|
return current:PromiseSuperClass():Then(function(superclass)
|
|
129
140
|
if superclass then
|
|
130
141
|
table.insert(list, superclass)
|
|
131
142
|
return chain(superclass)
|
|
132
143
|
else
|
|
133
|
-
return list
|
|
144
|
+
return list :: any
|
|
134
145
|
end
|
|
135
146
|
end)
|
|
136
147
|
end
|
|
137
148
|
|
|
138
|
-
|
|
139
|
-
|
|
149
|
+
local promise = chain(self)
|
|
150
|
+
self._allSuperClassesPromise = promise
|
|
151
|
+
return promise
|
|
140
152
|
end
|
|
141
153
|
|
|
142
154
|
--[=[
|
|
143
155
|
Returns the super class name
|
|
144
156
|
@return string?
|
|
145
157
|
]=]
|
|
146
|
-
function RobloxApiClass
|
|
158
|
+
function RobloxApiClass.GetSuperClassName(self: RobloxApiClass)
|
|
147
159
|
local data = self._data.Superclass
|
|
148
160
|
if data == RobloxApiDumpConstants.ROOT_CLASS_NAME then
|
|
149
161
|
return nil
|
|
@@ -156,7 +168,7 @@ end
|
|
|
156
168
|
Returns whether the class has a super class
|
|
157
169
|
@return boolean
|
|
158
170
|
]=]
|
|
159
|
-
function RobloxApiClass
|
|
171
|
+
function RobloxApiClass.HasSuperClass(self: RobloxApiClass): boolean
|
|
160
172
|
return self:GetSuperClassName() ~= nil
|
|
161
173
|
end
|
|
162
174
|
|
|
@@ -164,7 +176,7 @@ end
|
|
|
164
176
|
Retrieves all class members (events, properties, callbacks, functions).
|
|
165
177
|
@return Promise<{ RobloxApiMember }>
|
|
166
178
|
]=]
|
|
167
|
-
function RobloxApiClass
|
|
179
|
+
function RobloxApiClass.PromiseMembers(self: RobloxApiClass)
|
|
168
180
|
return self._robloxApiDump:PromiseMembers(self:GetClassName())
|
|
169
181
|
end
|
|
170
182
|
|
|
@@ -172,7 +184,7 @@ end
|
|
|
172
184
|
Gets all class properties.
|
|
173
185
|
@return Promise<{ RobloxApiMember }>
|
|
174
186
|
]=]
|
|
175
|
-
function RobloxApiClass
|
|
187
|
+
function RobloxApiClass.PromiseProperties(self: RobloxApiClass)
|
|
176
188
|
return self:PromiseMembers():Then(function(members)
|
|
177
189
|
local result = {}
|
|
178
190
|
for _, member in members do
|
|
@@ -188,7 +200,7 @@ end
|
|
|
188
200
|
Gets all class events.
|
|
189
201
|
@return Promise<{ RobloxApiMember }>
|
|
190
202
|
]=]
|
|
191
|
-
function RobloxApiClass
|
|
203
|
+
function RobloxApiClass.PromiseEvents(self: RobloxApiClass)
|
|
192
204
|
return self:PromiseMembers():Then(function(members)
|
|
193
205
|
local result = {}
|
|
194
206
|
for _, member in members do
|
|
@@ -204,7 +216,7 @@ end
|
|
|
204
216
|
Gets all class functions (i.e. methods).
|
|
205
217
|
@return Promise<{ RobloxApiMember }>
|
|
206
218
|
]=]
|
|
207
|
-
function RobloxApiClass
|
|
219
|
+
function RobloxApiClass.PromiseFunctions(self: RobloxApiClass)
|
|
208
220
|
return self:PromiseMembers():Then(function(members)
|
|
209
221
|
local result = {}
|
|
210
222
|
for _, member in members do
|
|
@@ -220,7 +232,7 @@ end
|
|
|
220
232
|
Retrieves whether the class is a service
|
|
221
233
|
@return boolean
|
|
222
234
|
]=]
|
|
223
|
-
function RobloxApiClass
|
|
235
|
+
function RobloxApiClass.IsService(self: RobloxApiClass): boolean
|
|
224
236
|
return self:HasTag("Service")
|
|
225
237
|
end
|
|
226
238
|
|
|
@@ -228,7 +240,7 @@ end
|
|
|
228
240
|
Retrieves whether the class is not creatable
|
|
229
241
|
@return boolean
|
|
230
242
|
]=]
|
|
231
|
-
function RobloxApiClass
|
|
243
|
+
function RobloxApiClass.IsNotCreatable(self: RobloxApiClass): boolean
|
|
232
244
|
return self:HasTag("NotCreatable")
|
|
233
245
|
end
|
|
234
246
|
|
|
@@ -236,7 +248,7 @@ end
|
|
|
236
248
|
Retrieves whether the class is not replicated
|
|
237
249
|
@return boolean
|
|
238
250
|
]=]
|
|
239
|
-
function RobloxApiClass
|
|
251
|
+
function RobloxApiClass.IsNotReplicated(self: RobloxApiClass): boolean
|
|
240
252
|
return self:HasTag("NotReplicated")
|
|
241
253
|
end
|
|
242
254
|
|
|
@@ -245,19 +257,21 @@ end
|
|
|
245
257
|
@param tagName string
|
|
246
258
|
@return boolean
|
|
247
259
|
]=]
|
|
248
|
-
function RobloxApiClass
|
|
260
|
+
function RobloxApiClass.HasTag(self: RobloxApiClass, tagName: string): boolean
|
|
249
261
|
if self._tagCache then
|
|
250
262
|
return self._tagCache[tagName] == true
|
|
251
263
|
end
|
|
252
264
|
|
|
253
|
-
|
|
265
|
+
local cache = {}
|
|
266
|
+
self._tagCache = cache
|
|
267
|
+
|
|
254
268
|
if type(self._data.Tags) == "table" then
|
|
255
269
|
for _, tag in self._data.Tags do
|
|
256
|
-
|
|
270
|
+
cache[tag] = true
|
|
257
271
|
end
|
|
258
272
|
end
|
|
259
273
|
|
|
260
|
-
return
|
|
274
|
+
return cache[tagName] == true
|
|
261
275
|
end
|
|
262
276
|
|
|
263
277
|
return RobloxApiClass
|
|
@@ -17,14 +17,26 @@ local RobloxApiDump = setmetatable({}, BaseObject)
|
|
|
17
17
|
RobloxApiDump.ClassName = "RobloxApiDump"
|
|
18
18
|
RobloxApiDump.__index = RobloxApiDump
|
|
19
19
|
|
|
20
|
-
export type RobloxApiDump = typeof(setmetatable(
|
|
20
|
+
export type RobloxApiDump = typeof(setmetatable(
|
|
21
|
+
{} :: {
|
|
22
|
+
_classMemberPromises: { [string]: Promise.Promise<()> },
|
|
23
|
+
_ancestorListPromise: { [string]: Promise.Promise<()> },
|
|
24
|
+
_classPromises: { [string]: Promise.Promise<()> },
|
|
25
|
+
_classMapPromise: Promise.Promise<()>?,
|
|
26
|
+
_dumpPromise: Promise.Promise<()>?,
|
|
27
|
+
_className: string,
|
|
28
|
+
_obj: Instance?,
|
|
29
|
+
_maid: any,
|
|
30
|
+
},
|
|
31
|
+
{} :: typeof({ __index = RobloxApiDump })
|
|
32
|
+
)) & BaseObject.BaseObject
|
|
21
33
|
|
|
22
34
|
--[=[
|
|
23
35
|
Constructs a new RobloxApiDump which will cache all results for its lifetime.
|
|
24
36
|
@return RobloxApiDump
|
|
25
37
|
]=]
|
|
26
38
|
function RobloxApiDump.new(): RobloxApiDump
|
|
27
|
-
local self = setmetatable(BaseObject.new() :: any, RobloxApiDump)
|
|
39
|
+
local self: RobloxApiDump = setmetatable(BaseObject.new() :: any, RobloxApiDump)
|
|
28
40
|
|
|
29
41
|
self._classMemberPromises = {}
|
|
30
42
|
self._ancestorListPromise = {}
|