wuira 0.3.3 → 0.4.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.
Files changed (52) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +15 -12
  3. package/docs/source-converters.md +5 -5
  4. package/docs/spells.md +1 -1
  5. package/lib/datasources/NativeApi.d.ts +319 -0
  6. package/lib/datasources/NativeApi.lua +1114 -0
  7. package/lib/datasources/UseSource.d.ts +41 -43
  8. package/lib/datasources/index.d.ts +3 -25
  9. package/lib/datasources/index.lua +45 -74
  10. package/lib/helpers/Auras.d.ts +5 -0
  11. package/lib/helpers/Auras.lua +47 -0
  12. package/lib/helpers/Range.d.ts +2 -0
  13. package/lib/helpers/Range.lua +30 -0
  14. package/lib/helpers/index.d.ts +2 -0
  15. package/lib/helpers/index.lua +12 -0
  16. package/lib/index.d.ts +1 -0
  17. package/lib/index.lua +6 -0
  18. package/lib/platform/forever.d.ts +3 -0
  19. package/lib/rendering/progress.lua +5 -150
  20. package/lib/ui/UnitPortrait.d.ts +1 -2
  21. package/lib/ui/UnitPortrait.lua +11 -18
  22. package/package.json +8 -1
  23. package/lib/datasources/AuraTimer.d.ts +0 -21
  24. package/lib/datasources/AuraTimer.lua +0 -334
  25. package/lib/datasources/Auras.d.ts +0 -32
  26. package/lib/datasources/Auras.lua +0 -300
  27. package/lib/datasources/CastTimer.d.ts +0 -9
  28. package/lib/datasources/CastTimer.lua +0 -255
  29. package/lib/datasources/EditModeLayouts.d.ts +0 -33
  30. package/lib/datasources/EditModeLayouts.lua +0 -698
  31. package/lib/datasources/GroupMembers.d.ts +0 -24
  32. package/lib/datasources/GroupMembers.lua +0 -477
  33. package/lib/datasources/GroupRoster.d.ts +0 -28
  34. package/lib/datasources/GroupRoster.lua +0 -622
  35. package/lib/datasources/KnownSpells.d.ts +0 -33
  36. package/lib/datasources/KnownSpells.lua +0 -1077
  37. package/lib/datasources/ManaRegenTimer.d.ts +0 -29
  38. package/lib/datasources/ManaRegenTimer.lua +0 -683
  39. package/lib/datasources/Resources.d.ts +0 -81
  40. package/lib/datasources/Resources.lua +0 -907
  41. package/lib/datasources/SpellCooldown.d.ts +0 -12
  42. package/lib/datasources/SpellCooldown.lua +0 -240
  43. package/lib/datasources/SpellSource.d.ts +0 -14
  44. package/lib/datasources/SpellSource.lua +0 -236
  45. package/lib/datasources/SwingTimer.d.ts +0 -31
  46. package/lib/datasources/SwingTimer.lua +0 -650
  47. package/lib/datasources/TotemTimer.d.ts +0 -10
  48. package/lib/datasources/TotemTimer.lua +0 -275
  49. package/lib/datasources/UnitInfo.d.ts +0 -51
  50. package/lib/datasources/UnitInfo.lua +0 -801
  51. package/lib/datasources/UnitSource.d.ts +0 -38
  52. package/lib/datasources/UnitSource.lua +0 -613
@@ -1,24 +0,0 @@
1
- import { DataSource } from "./DataSource";
2
- export type GroupScope = "auto" | "party" | "raid";
3
- /** Fresh roster tokens, including offline members. Tokens are not persistent identities. */
4
- export declare class GroupMembers extends DataSource<readonly string[]> {
5
- readonly scope: GroupScope;
6
- private restricted;
7
- private readonly listeners;
8
- private frame?;
9
- protected constructor(scope?: GroupScope);
10
- /** Roster/connection events, with one listener frame while observed. No polling. */
11
- onChange(listener: (units: readonly string[]) => void): () => void;
12
- private StopListening;
13
- Dispose(): void;
14
- protected HasSecretFields(): boolean;
15
- protected GetValue(): readonly string[];
16
- }
17
- /** Includes the player in a party; empty when solo or in a raid. */
18
- export declare class PartyMembers extends GroupMembers {
19
- protected constructor();
20
- }
21
- /** Includes the player through their raidN token; empty outside a raid. */
22
- export declare class RaidMembers extends GroupMembers {
23
- protected constructor();
24
- }
@@ -1,477 +0,0 @@
1
- --[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
2
- -- Lua Library inline imports
3
- local function __TS__Class(self)
4
- local c = {prototype = {}}
5
- c.prototype.__index = c.prototype
6
- c.prototype.constructor = c
7
- return c
8
- end
9
-
10
- local function __TS__ClassExtends(target, base)
11
- target.____super = base
12
- local staticMetatable = setmetatable({__index = base}, base)
13
- setmetatable(target, staticMetatable)
14
- local baseMetatable = getmetatable(base)
15
- if baseMetatable then
16
- if type(baseMetatable.__index) == "function" then
17
- staticMetatable.__index = baseMetatable.__index
18
- end
19
- if type(baseMetatable.__newindex) == "function" then
20
- staticMetatable.__newindex = baseMetatable.__newindex
21
- end
22
- end
23
- setmetatable(target.prototype, base.prototype)
24
- if type(base.prototype.__index) == "function" then
25
- target.prototype.__index = base.prototype.__index
26
- end
27
- if type(base.prototype.__newindex) == "function" then
28
- target.prototype.__newindex = base.prototype.__newindex
29
- end
30
- if type(base.prototype.__tostring) == "function" then
31
- target.prototype.__tostring = base.prototype.__tostring
32
- end
33
- end
34
-
35
- local __TS__Symbol, Symbol
36
- do
37
- local symbolMetatable = {__tostring = function(self)
38
- return ("Symbol(" .. (self.description or "")) .. ")"
39
- end}
40
- function __TS__Symbol(description)
41
- return setmetatable({description = description}, symbolMetatable)
42
- end
43
- Symbol = {
44
- asyncDispose = __TS__Symbol("Symbol.asyncDispose"),
45
- dispose = __TS__Symbol("Symbol.dispose"),
46
- iterator = __TS__Symbol("Symbol.iterator"),
47
- hasInstance = __TS__Symbol("Symbol.hasInstance"),
48
- species = __TS__Symbol("Symbol.species"),
49
- toStringTag = __TS__Symbol("Symbol.toStringTag")
50
- }
51
- end
52
-
53
- local __TS__Iterator
54
- do
55
- local function iteratorGeneratorStep(self)
56
- local co = self.____coroutine
57
- local status, value = coroutine.resume(co)
58
- if not status then
59
- error(value, 0)
60
- end
61
- if coroutine.status(co) == "dead" then
62
- return
63
- end
64
- return true, value
65
- end
66
- local function iteratorIteratorStep(self)
67
- local result = self:next()
68
- if result.done then
69
- return
70
- end
71
- return true, result.value
72
- end
73
- local function iteratorStringStep(self, index)
74
- index = index + 1
75
- if index > #self then
76
- return
77
- end
78
- return index, string.sub(self, index, index)
79
- end
80
- function __TS__Iterator(iterable)
81
- if type(iterable) == "string" then
82
- return iteratorStringStep, iterable, 0
83
- elseif iterable.____coroutine ~= nil then
84
- return iteratorGeneratorStep, iterable
85
- elseif iterable[Symbol.iterator] then
86
- local iterator = iterable[Symbol.iterator](iterable)
87
- return iteratorIteratorStep, iterator
88
- else
89
- return ipairs(iterable)
90
- end
91
- end
92
- end
93
-
94
- local function __TS__New(target, ...)
95
- local instance = setmetatable({}, target.prototype)
96
- instance:____constructor(...)
97
- return instance
98
- end
99
-
100
- local Set
101
- do
102
- Set = __TS__Class()
103
- Set.name = "Set"
104
- function Set.prototype.____constructor(self, values)
105
- self[Symbol.toStringTag] = "Set"
106
- self.size = 0
107
- self.nextKey = {}
108
- self.previousKey = {}
109
- if values == nil then
110
- return
111
- end
112
- local iterable = values
113
- if iterable[Symbol.iterator] then
114
- local iterator = iterable[Symbol.iterator](iterable)
115
- while true do
116
- local result = iterator:next()
117
- if result.done then
118
- break
119
- end
120
- self:add(result.value)
121
- end
122
- else
123
- local array = values
124
- for ____, value in ipairs(array) do
125
- self:add(value)
126
- end
127
- end
128
- end
129
- function Set.prototype.add(self, value)
130
- local isNewValue = not self:has(value)
131
- if isNewValue then
132
- self.size = self.size + 1
133
- end
134
- if self.firstKey == nil then
135
- self.firstKey = value
136
- self.lastKey = value
137
- elseif isNewValue then
138
- self.nextKey[self.lastKey] = value
139
- self.previousKey[value] = self.lastKey
140
- self.lastKey = value
141
- end
142
- return self
143
- end
144
- function Set.prototype.clear(self)
145
- self.nextKey = {}
146
- self.previousKey = {}
147
- self.firstKey = nil
148
- self.lastKey = nil
149
- self.size = 0
150
- end
151
- function Set.prototype.delete(self, value)
152
- local contains = self:has(value)
153
- if contains then
154
- self.size = self.size - 1
155
- local next = self.nextKey[value]
156
- local previous = self.previousKey[value]
157
- if next ~= nil and previous ~= nil then
158
- self.nextKey[previous] = next
159
- self.previousKey[next] = previous
160
- elseif next ~= nil then
161
- self.firstKey = next
162
- self.previousKey[next] = nil
163
- elseif previous ~= nil then
164
- self.lastKey = previous
165
- self.nextKey[previous] = nil
166
- else
167
- self.firstKey = nil
168
- self.lastKey = nil
169
- end
170
- self.nextKey[value] = nil
171
- self.previousKey[value] = nil
172
- end
173
- return contains
174
- end
175
- function Set.prototype.forEach(self, callback)
176
- for ____, key in __TS__Iterator(self:keys()) do
177
- callback(nil, key, key, self)
178
- end
179
- end
180
- function Set.prototype.has(self, value)
181
- return self.nextKey[value] ~= nil or self.lastKey == value
182
- end
183
- Set.prototype[Symbol.iterator] = function(self)
184
- return self:values()
185
- end
186
- function Set.prototype.entries(self)
187
- local function getFirstKey()
188
- return self.firstKey
189
- end
190
- local nextKey = self.nextKey
191
- local key
192
- local started = false
193
- return {
194
- [Symbol.iterator] = function(self)
195
- return self
196
- end,
197
- next = function(self)
198
- if not started then
199
- started = true
200
- key = getFirstKey(nil)
201
- else
202
- key = nextKey[key]
203
- end
204
- return {done = not key, value = {key, key}}
205
- end
206
- }
207
- end
208
- function Set.prototype.keys(self)
209
- local function getFirstKey()
210
- return self.firstKey
211
- end
212
- local nextKey = self.nextKey
213
- local key
214
- local started = false
215
- return {
216
- [Symbol.iterator] = function(self)
217
- return self
218
- end,
219
- next = function(self)
220
- if not started then
221
- started = true
222
- key = getFirstKey(nil)
223
- else
224
- key = nextKey[key]
225
- end
226
- return {done = not key, value = key}
227
- end
228
- }
229
- end
230
- function Set.prototype.values(self)
231
- local function getFirstKey()
232
- return self.firstKey
233
- end
234
- local nextKey = self.nextKey
235
- local key
236
- local started = false
237
- return {
238
- [Symbol.iterator] = function(self)
239
- return self
240
- end,
241
- next = function(self)
242
- if not started then
243
- started = true
244
- key = getFirstKey(nil)
245
- else
246
- key = nextKey[key]
247
- end
248
- return {done = not key, value = key}
249
- end
250
- }
251
- end
252
- function Set.prototype.union(self, other)
253
- local result = __TS__New(Set, self)
254
- for ____, item in __TS__Iterator(other) do
255
- result:add(item)
256
- end
257
- return result
258
- end
259
- function Set.prototype.intersection(self, other)
260
- local result = __TS__New(Set)
261
- for ____, item in __TS__Iterator(self) do
262
- if other:has(item) then
263
- result:add(item)
264
- end
265
- end
266
- return result
267
- end
268
- function Set.prototype.difference(self, other)
269
- local result = __TS__New(Set, self)
270
- for ____, item in __TS__Iterator(other) do
271
- result:delete(item)
272
- end
273
- return result
274
- end
275
- function Set.prototype.symmetricDifference(self, other)
276
- local result = __TS__New(Set, self)
277
- for ____, item in __TS__Iterator(other) do
278
- if self:has(item) then
279
- result:delete(item)
280
- else
281
- result:add(item)
282
- end
283
- end
284
- return result
285
- end
286
- function Set.prototype.isSubsetOf(self, other)
287
- for ____, item in __TS__Iterator(self) do
288
- if not other:has(item) then
289
- return false
290
- end
291
- end
292
- return true
293
- end
294
- function Set.prototype.isSupersetOf(self, other)
295
- for ____, item in __TS__Iterator(other) do
296
- if not self:has(item) then
297
- return false
298
- end
299
- end
300
- return true
301
- end
302
- function Set.prototype.isDisjointFrom(self, other)
303
- for ____, item in __TS__Iterator(self) do
304
- if other:has(item) then
305
- return false
306
- end
307
- end
308
- return true
309
- end
310
- Set[Symbol.species] = Set
311
- end
312
-
313
- local function __TS__NumberIsFinite(value)
314
- return type(value) == "number" and value == value and value ~= math.huge and value ~= -math.huge
315
- end
316
-
317
- local function __TS__NumberIsInteger(value)
318
- return __TS__NumberIsFinite(value) and math.floor(value) == value
319
- end
320
- -- End of Lua Library inline imports
321
- local ____exports = {}
322
- local ____DataSource = require("datasources.DataSource")
323
- local DataSource = ____DataSource.DataSource
324
- local ____Source = require("datasources.Source")
325
- local registerSource = ____Source.registerSource
326
- --- Fresh roster tokens, including offline members. Tokens are not persistent identities.
327
- ____exports.GroupMembers = __TS__Class()
328
- local GroupMembers = ____exports.GroupMembers
329
- GroupMembers.name = "GroupMembers"
330
- __TS__ClassExtends(GroupMembers, DataSource)
331
- function GroupMembers.prototype.____constructor(self, scope)
332
- if scope == nil then
333
- scope = "auto"
334
- end
335
- DataSource.prototype.____constructor(self, {})
336
- self.scope = scope
337
- self.restricted = false
338
- self.listeners = __TS__New(Set)
339
- end
340
- function GroupMembers.prototype.onChange(self, listener)
341
- self.listeners:add(listener)
342
- if self.listeners.size == 1 then
343
- if self.frame == nil then
344
- self.frame = CreateFrame("Frame", nil, UIParent)
345
- end
346
- for ____, event in ipairs({
347
- "GROUP_ROSTER_UPDATE",
348
- "UNIT_PET",
349
- "UNIT_CONNECTION",
350
- "UNIT_NAME_UPDATE",
351
- "PLAYER_ENTERING_WORLD"
352
- }) do
353
- self.frame:RegisterEvent(event)
354
- end
355
- self.frame:SetScript(
356
- "OnEvent",
357
- function()
358
- local units = self:GetValue()
359
- if self.restricted then
360
- return
361
- end
362
- for ____, callback in __TS__Iterator(self.listeners) do
363
- callback(nil, units)
364
- end
365
- end
366
- )
367
- end
368
- return function()
369
- self.listeners:delete(listener)
370
- if self.listeners.size == 0 then
371
- self:StopListening()
372
- end
373
- end
374
- end
375
- function GroupMembers.prototype.StopListening(self)
376
- local ____opt_0 = self.frame
377
- if ____opt_0 ~= nil then
378
- ____opt_0:UnregisterAllEvents()
379
- end
380
- local ____opt_2 = self.frame
381
- if ____opt_2 ~= nil then
382
- ____opt_2:SetScript("OnEvent", nil)
383
- end
384
- local ____opt_4 = self.frame
385
- if ____opt_4 ~= nil then
386
- ____opt_4:Hide()
387
- end
388
- end
389
- function GroupMembers.prototype.Dispose(self)
390
- self.listeners:clear()
391
- self:StopListening()
392
- end
393
- function GroupMembers.prototype.HasSecretFields(self)
394
- return self.restricted
395
- end
396
- function GroupMembers.prototype.GetValue(self)
397
- self.restricted = false
398
- if IsInRaid == nil or GetNumGroupMembers == nil then
399
- error("GroupMembers: this client does not expose the required group APIs")
400
- end
401
- local raid = IsInRaid()
402
- local count = GetNumGroupMembers()
403
- if issecretvalue(raid) or issecretvalue(count) then
404
- self.restricted = true
405
- return {}
406
- end
407
- if not __TS__NumberIsInteger(count) or count < 0 or count > 1024 then
408
- error("GroupMembers: invalid group member count")
409
- end
410
- if raid then
411
- if self.scope == "party" then
412
- return {}
413
- end
414
- local units = {}
415
- do
416
- local index = 1
417
- while index <= count do
418
- units[#units + 1] = "raid" .. tostring(index)
419
- index = index + 1
420
- end
421
- end
422
- return units
423
- end
424
- if self.scope == "raid" then
425
- return {}
426
- end
427
- if count == 0 then
428
- return self.scope == "auto" and ({"player"}) or ({})
429
- end
430
- local units = {"player"}
431
- do
432
- local index = 1
433
- while index < count do
434
- units[#units + 1] = "party" .. tostring(index)
435
- index = index + 1
436
- end
437
- end
438
- return units
439
- end;
440
- (function(self)
441
- registerSource(
442
- nil,
443
- ____exports.GroupMembers,
444
- function(____, props) return __TS__New(____exports.GroupMembers, props[1]) end
445
- )
446
- end)(GroupMembers)
447
- --- Includes the player in a party; empty when solo or in a raid.
448
- ____exports.PartyMembers = __TS__Class()
449
- local PartyMembers = ____exports.PartyMembers
450
- PartyMembers.name = "PartyMembers"
451
- __TS__ClassExtends(PartyMembers, ____exports.GroupMembers)
452
- function PartyMembers.prototype.____constructor(self)
453
- PartyMembers.____super.prototype.____constructor(self, "party")
454
- end;
455
- (function(self)
456
- registerSource(
457
- nil,
458
- ____exports.PartyMembers,
459
- function() return __TS__New(____exports.PartyMembers) end
460
- )
461
- end)(PartyMembers)
462
- --- Includes the player through their raidN token; empty outside a raid.
463
- ____exports.RaidMembers = __TS__Class()
464
- local RaidMembers = ____exports.RaidMembers
465
- RaidMembers.name = "RaidMembers"
466
- __TS__ClassExtends(RaidMembers, ____exports.GroupMembers)
467
- function RaidMembers.prototype.____constructor(self)
468
- RaidMembers.____super.prototype.____constructor(self, "raid")
469
- end;
470
- (function(self)
471
- registerSource(
472
- nil,
473
- ____exports.RaidMembers,
474
- function() return __TS__New(____exports.RaidMembers) end
475
- )
476
- end)(RaidMembers)
477
- return ____exports
@@ -1,28 +0,0 @@
1
- import { DataSource } from "./DataSource";
2
- import type { GroupScope } from "./GroupMembers";
3
- export interface GroupRosterMember {
4
- readonly key: string;
5
- readonly guid?: string;
6
- readonly unit: string;
7
- readonly pet: boolean;
8
- readonly group: string;
9
- }
10
- export declare function getPetUnitToken(unit: string): string;
11
- /** Small snapshots describe identity/order only; keyed rendering owns widgets and unit sources. */
12
- export declare class GroupRoster extends DataSource<readonly GroupRosterMember[]> {
13
- private readonly scope;
14
- private readonly options;
15
- private readonly roster;
16
- private readonly knownNames;
17
- private snapshot;
18
- private restricted;
19
- get Status(): "ready" | "restricted";
20
- protected constructor(scope?: GroupScope, options?: {
21
- pets?: boolean;
22
- includeSelfWhenSolo?: boolean;
23
- });
24
- protected GetValue(): readonly GroupRosterMember[];
25
- private Read;
26
- onChange(listener: (members: readonly GroupRosterMember[]) => void): () => void;
27
- Dispose(): void;
28
- }