warscript 0.0.1-dev.1858ab2

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 (493) hide show
  1. package/LICENSE +23 -0
  2. package/binaryreader.d.ts +20 -0
  3. package/binaryreader.lua +50 -0
  4. package/binarywriter.d.ts +21 -0
  5. package/binarywriter.lua +90 -0
  6. package/core/dummy.d.ts +22 -0
  7. package/core/dummy.lua +133 -0
  8. package/core/game.d.ts +3 -0
  9. package/core/game.lua +24 -0
  10. package/core/mapbounds.d.ts +8 -0
  11. package/core/mapbounds.lua +12 -0
  12. package/core/thread.d.ts +8 -0
  13. package/core/thread.lua +40 -0
  14. package/core/types/ability.d.ts +4 -0
  15. package/core/types/ability.lua +10 -0
  16. package/core/types/async.d.ts +3 -0
  17. package/core/types/async.lua +2 -0
  18. package/core/types/camera.d.ts +4 -0
  19. package/core/types/camera.lua +21 -0
  20. package/core/types/cameraField.d.ts +15 -0
  21. package/core/types/cameraField.lua +38 -0
  22. package/core/types/color.d.ts +16 -0
  23. package/core/types/color.lua +93 -0
  24. package/core/types/destructable.d.ts +31 -0
  25. package/core/types/destructable.lua +245 -0
  26. package/core/types/effect.d.ts +31 -0
  27. package/core/types/effect.lua +209 -0
  28. package/core/types/frame.d.ts +140 -0
  29. package/core/types/frame.lua +882 -0
  30. package/core/types/game.d.ts +8 -0
  31. package/core/types/game.lua +41 -0
  32. package/core/types/group.d.ts +22 -0
  33. package/core/types/group.lua +94 -0
  34. package/core/types/handle.d.ts +48 -0
  35. package/core/types/handle.lua +169 -0
  36. package/core/types/image.d.ts +30 -0
  37. package/core/types/image.lua +121 -0
  38. package/core/types/internal/ability+cooldownRemaining.d.ts +1 -0
  39. package/core/types/internal/ability+cooldownRemaining.lua +0 -0
  40. package/core/types/item.d.ts +4 -0
  41. package/core/types/item.lua +6 -0
  42. package/core/types/missile.d.ts +22 -0
  43. package/core/types/missile.lua +233 -0
  44. package/core/types/order.d.ts +25 -0
  45. package/core/types/order.lua +55 -0
  46. package/core/types/player.d.ts +71 -0
  47. package/core/types/player.lua +448 -0
  48. package/core/types/playerCamera.d.ts +32 -0
  49. package/core/types/playerCamera.lua +162 -0
  50. package/core/types/playerColor.d.ts +40 -0
  51. package/core/types/playerColor.lua +203 -0
  52. package/core/types/rect.d.ts +39 -0
  53. package/core/types/rect.lua +152 -0
  54. package/core/types/region.d.ts +14 -0
  55. package/core/types/region.lua +84 -0
  56. package/core/types/sound.d.ts +69 -0
  57. package/core/types/sound.lua +247 -0
  58. package/core/types/tileCell.d.ts +13 -0
  59. package/core/types/tileCell.lua +100 -0
  60. package/core/types/timer.d.ts +36 -0
  61. package/core/types/timer.lua +230 -0
  62. package/core/types/timerDialog.d.ts +19 -0
  63. package/core/types/timerDialog.lua +95 -0
  64. package/core/types/unit.d.ts +10 -0
  65. package/core/types/unit.lua +24 -0
  66. package/core/types/widget.d.ts +5 -0
  67. package/core/types/widget.lua +2 -0
  68. package/core/util.d.ts +62 -0
  69. package/core/util.lua +464 -0
  70. package/core/vecmath/common.d.ts +18 -0
  71. package/core/vecmath/common.lua +29 -0
  72. package/core/vecmath/mat2.d.ts +73 -0
  73. package/core/vecmath/mat2.lua +261 -0
  74. package/core/vecmath/vec3.d.ts +47 -0
  75. package/core/vecmath/vec3.lua +350 -0
  76. package/core/vecmath/vec4.d.ts +54 -0
  77. package/core/vecmath/vec4.lua +400 -0
  78. package/crypto/ecc.d.ts +6 -0
  79. package/crypto/ecc.lua +1734 -0
  80. package/decl/index.d.ts +116 -0
  81. package/decl/native.d.ts +8198 -0
  82. package/destroyable.d.ts +20 -0
  83. package/destroyable.lua +31 -0
  84. package/engine/ability.d.ts +5 -0
  85. package/engine/ability.lua +7 -0
  86. package/engine/behavior.d.ts +28 -0
  87. package/engine/behavior.lua +181 -0
  88. package/engine/behaviour/ability/apply-buff.d.ts +38 -0
  89. package/engine/behaviour/ability/apply-buff.lua +126 -0
  90. package/engine/behaviour/ability/apply-unit-behavior.d.ts +12 -0
  91. package/engine/behaviour/ability/apply-unit-behavior.lua +36 -0
  92. package/engine/behaviour/ability/damage.d.ts +25 -0
  93. package/engine/behaviour/ability/damage.lua +75 -0
  94. package/engine/behaviour/ability/heal.d.ts +16 -0
  95. package/engine/behaviour/ability/heal.lua +35 -0
  96. package/engine/behaviour/ability/instant-impact.d.ts +6 -0
  97. package/engine/behaviour/ability/instant-impact.lua +25 -0
  98. package/engine/behaviour/ability.d.ts +40 -0
  99. package/engine/behaviour/ability.lua +175 -0
  100. package/engine/behaviour/unit/stun-immunity.d.ts +19 -0
  101. package/engine/behaviour/unit/stun-immunity.lua +67 -0
  102. package/engine/behaviour/unit.d.ts +20 -0
  103. package/engine/behaviour/unit.lua +75 -0
  104. package/engine/buff.d.ts +221 -0
  105. package/engine/buff.lua +1093 -0
  106. package/engine/constants.d.ts +7 -0
  107. package/engine/constants.lua +8 -0
  108. package/engine/index.d.ts +5 -0
  109. package/engine/index.lua +2 -0
  110. package/engine/internal/ability.d.ts +91 -0
  111. package/engine/internal/ability.lua +531 -0
  112. package/engine/internal/item/ability.d.ts +2 -0
  113. package/engine/internal/item/ability.lua +48 -0
  114. package/engine/internal/item+owner.d.ts +7 -0
  115. package/engine/internal/item+owner.lua +22 -0
  116. package/engine/internal/item.d.ts +86 -0
  117. package/engine/internal/item.lua +580 -0
  118. package/engine/internal/mechanics/ability-duration.d.ts +4 -0
  119. package/engine/internal/mechanics/ability-duration.lua +11 -0
  120. package/engine/internal/mechanics/area-damage.d.ts +2 -0
  121. package/engine/internal/mechanics/area-damage.lua +33 -0
  122. package/engine/internal/misc/dummy-units.d.ts +2 -0
  123. package/engine/internal/misc/dummy-units.lua +14 -0
  124. package/engine/internal/object-data/armor-increase.d.ts +2 -0
  125. package/engine/internal/object-data/armor-increase.lua +19 -0
  126. package/engine/internal/object-data/attribute-bonus.d.ts +2 -0
  127. package/engine/internal/object-data/attribute-bonus.lua +15 -0
  128. package/engine/internal/object-data/auto-attack-damage-increase.d.ts +2 -0
  129. package/engine/internal/object-data/auto-attack-damage-increase.lua +17 -0
  130. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +2 -0
  131. package/engine/internal/object-data/auto-attack-speed-increase.lua +14 -0
  132. package/engine/internal/object-data/dummy-inventory.d.ts +2 -0
  133. package/engine/internal/object-data/dummy-inventory.lua +16 -0
  134. package/engine/internal/object-data/dummy-item.d.ts +2 -0
  135. package/engine/internal/object-data/dummy-item.lua +10 -0
  136. package/engine/internal/object-data/ghost-visible.d.ts +2 -0
  137. package/engine/internal/object-data/ghost-visible.lua +15 -0
  138. package/engine/internal/object-data/invulnerable.d.ts +2 -0
  139. package/engine/internal/object-data/invulnerable.lua +11 -0
  140. package/engine/internal/object-data/movement-speed-increase-factor.d.ts +2 -0
  141. package/engine/internal/object-data/movement-speed-increase-factor.lua +18 -0
  142. package/engine/internal/unit/ability.d.ts +143 -0
  143. package/engine/internal/unit/ability.lua +369 -0
  144. package/engine/internal/unit/allowed-targets.d.ts +17 -0
  145. package/engine/internal/unit/allowed-targets.lua +19 -0
  146. package/engine/internal/unit/band-aids/ancestral-spirit-cannibalize.d.ts +2 -0
  147. package/engine/internal/unit/band-aids/ancestral-spirit-cannibalize.lua +21 -0
  148. package/engine/internal/unit/bonus.d.ts +41 -0
  149. package/engine/internal/unit/bonus.lua +188 -0
  150. package/engine/internal/unit/buff.d.ts +38 -0
  151. package/engine/internal/unit/buff.lua +81 -0
  152. package/engine/internal/unit/expiration-timer.d.ts +22 -0
  153. package/engine/internal/unit/expiration-timer.lua +44 -0
  154. package/engine/internal/unit/ghost-counter.d.ts +12 -0
  155. package/engine/internal/unit/ghost-counter.lua +26 -0
  156. package/engine/internal/unit/invulnerability-counter.d.ts +12 -0
  157. package/engine/internal/unit/invulnerability-counter.lua +26 -0
  158. package/engine/internal/unit/missile.d.ts +42 -0
  159. package/engine/internal/unit/missile.lua +70 -0
  160. package/engine/internal/unit/movement-speed.d.ts +18 -0
  161. package/engine/internal/unit/movement-speed.lua +42 -0
  162. package/engine/internal/unit/summon-event.d.ts +12 -0
  163. package/engine/internal/unit/summon-event.lua +50 -0
  164. package/engine/internal/unit+ability.d.ts +9 -0
  165. package/engine/internal/unit+ability.lua +59 -0
  166. package/engine/internal/unit+bonus.d.ts +8 -0
  167. package/engine/internal/unit+bonus.lua +40 -0
  168. package/engine/internal/unit+damage.d.ts +69 -0
  169. package/engine/internal/unit+damage.lua +123 -0
  170. package/engine/internal/unit+rally.d.ts +10 -0
  171. package/engine/internal/unit+rally.lua +159 -0
  172. package/engine/internal/unit+spellSteal.d.ts +7 -0
  173. package/engine/internal/unit+spellSteal.lua +64 -0
  174. package/engine/internal/unit+transport.d.ts +12 -0
  175. package/engine/internal/unit+transport.lua +102 -0
  176. package/engine/internal/unit-missile-data.d.ts +2 -0
  177. package/engine/internal/unit-missile-data.lua +107 -0
  178. package/engine/internal/unit-missile-launch.d.ts +7 -0
  179. package/engine/internal/unit-missile-launch.lua +32 -0
  180. package/engine/internal/unit.d.ts +312 -0
  181. package/engine/internal/unit.lua +2430 -0
  182. package/engine/internal/utility.d.ts +2 -0
  183. package/engine/internal/utility.lua +13 -0
  184. package/engine/lightning.d.ts +51 -0
  185. package/engine/lightning.lua +303 -0
  186. package/engine/local-client.d.ts +16 -0
  187. package/engine/local-client.lua +86 -0
  188. package/engine/object-data/auxiliary/animation-name.d.ts +14 -0
  189. package/engine/object-data/auxiliary/animation-name.lua +2 -0
  190. package/engine/object-data/auxiliary/animation-qualifier.d.ts +53 -0
  191. package/engine/object-data/auxiliary/animation-qualifier.lua +2 -0
  192. package/engine/object-data/auxiliary/armor-sound-type.d.ts +8 -0
  193. package/engine/object-data/auxiliary/armor-sound-type.lua +2 -0
  194. package/engine/object-data/auxiliary/attachment-preset.d.ts +15 -0
  195. package/engine/object-data/auxiliary/attachment-preset.lua +29 -0
  196. package/engine/object-data/auxiliary/attack-type.d.ts +11 -0
  197. package/engine/object-data/auxiliary/attack-type.lua +2 -0
  198. package/engine/object-data/auxiliary/buff-polarity.d.ts +6 -0
  199. package/engine/object-data/auxiliary/buff-polarity.lua +2 -0
  200. package/engine/object-data/auxiliary/buff-resistance-type.d.ts +6 -0
  201. package/engine/object-data/auxiliary/buff-resistance-type.lua +2 -0
  202. package/engine/object-data/auxiliary/combat-classification.d.ts +46 -0
  203. package/engine/object-data/auxiliary/combat-classification.lua +206 -0
  204. package/engine/object-data/auxiliary/detection-type.d.ts +7 -0
  205. package/engine/object-data/auxiliary/detection-type.lua +2 -0
  206. package/engine/object-data/auxiliary/model-node-name.d.ts +12 -0
  207. package/engine/object-data/auxiliary/model-node-name.lua +2 -0
  208. package/engine/object-data/auxiliary/model-node-qualifier.d.ts +21 -0
  209. package/engine/object-data/auxiliary/model-node-qualifier.lua +2 -0
  210. package/engine/object-data/auxiliary/movement-type.d.ts +10 -0
  211. package/engine/object-data/auxiliary/movement-type.lua +2 -0
  212. package/engine/object-data/auxiliary/race.d.ts +14 -0
  213. package/engine/object-data/auxiliary/race.lua +2 -0
  214. package/engine/object-data/auxiliary/sound-preset-name.d.ts +8 -0
  215. package/engine/object-data/auxiliary/sound-preset-name.lua +2 -0
  216. package/engine/object-data/auxiliary/sound-set-name.d.ts +35 -0
  217. package/engine/object-data/auxiliary/sound-set-name.lua +2 -0
  218. package/engine/object-data/auxiliary/targeting-type.d.ts +8 -0
  219. package/engine/object-data/auxiliary/targeting-type.lua +2 -0
  220. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +16 -0
  221. package/engine/object-data/auxiliary/tech-tree-dependency.lua +8 -0
  222. package/engine/object-data/auxiliary/unit-classification.d.ts +19 -0
  223. package/engine/object-data/auxiliary/unit-classification.lua +50 -0
  224. package/engine/object-data/auxiliary/weapon-sound-type.d.ts +17 -0
  225. package/engine/object-data/auxiliary/weapon-sound-type.lua +2 -0
  226. package/engine/object-data/entry/ability-type/armor-increase.d.ts +8 -0
  227. package/engine/object-data/entry/ability-type/armor-increase.lua +26 -0
  228. package/engine/object-data/entry/ability-type/attribute-increase.d.ts +12 -0
  229. package/engine/object-data/entry/ability-type/attribute-increase.lua +52 -0
  230. package/engine/object-data/entry/ability-type/auto-attack-damage-increase.d.ts +8 -0
  231. package/engine/object-data/entry/ability-type/auto-attack-damage-increase.lua +26 -0
  232. package/engine/object-data/entry/ability-type/auto-attack-heal-reduction-effect.d.ts +12 -0
  233. package/engine/object-data/entry/ability-type/auto-attack-heal-reduction-effect.lua +52 -0
  234. package/engine/object-data/entry/ability-type/auto-attack-speed-increase.d.ts +8 -0
  235. package/engine/object-data/entry/ability-type/auto-attack-speed-increase.lua +26 -0
  236. package/engine/object-data/entry/ability-type/bash.d.ts +16 -0
  237. package/engine/object-data/entry/ability-type/bash.lua +78 -0
  238. package/engine/object-data/entry/ability-type/berserk.d.ts +10 -0
  239. package/engine/object-data/entry/ability-type/berserk.lua +39 -0
  240. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +21 -0
  241. package/engine/object-data/entry/ability-type/blank-configurable.lua +249 -0
  242. package/engine/object-data/entry/ability-type/blank-passive.d.ts +7 -0
  243. package/engine/object-data/entry/ability-type/blank-passive.lua +28 -0
  244. package/engine/object-data/entry/ability-type/blizzard.d.ts +16 -0
  245. package/engine/object-data/entry/ability-type/blizzard.lua +78 -0
  246. package/engine/object-data/entry/ability-type/blood-lust.d.ts +12 -0
  247. package/engine/object-data/entry/ability-type/blood-lust.lua +52 -0
  248. package/engine/object-data/entry/ability-type/chain-lightning.d.ts +12 -0
  249. package/engine/object-data/entry/ability-type/chain-lightning.lua +52 -0
  250. package/engine/object-data/entry/ability-type/channel.d.ts +48 -0
  251. package/engine/object-data/entry/ability-type/channel.lua +140 -0
  252. package/engine/object-data/entry/ability-type/charge-gold-and-lumber.d.ts +14 -0
  253. package/engine/object-data/entry/ability-type/charge-gold-and-lumber.lua +65 -0
  254. package/engine/object-data/entry/ability-type/cleaving-attack.d.ts +8 -0
  255. package/engine/object-data/entry/ability-type/cleaving-attack.lua +26 -0
  256. package/engine/object-data/entry/ability-type/cluster-rockets.d.ts +18 -0
  257. package/engine/object-data/entry/ability-type/cluster-rockets.lua +91 -0
  258. package/engine/object-data/entry/ability-type/cripple.d.ts +12 -0
  259. package/engine/object-data/entry/ability-type/cripple.lua +52 -0
  260. package/engine/object-data/entry/ability-type/critical-strike.d.ts +18 -0
  261. package/engine/object-data/entry/ability-type/critical-strike.lua +91 -0
  262. package/engine/object-data/entry/ability-type/curse.d.ts +8 -0
  263. package/engine/object-data/entry/ability-type/curse.lua +26 -0
  264. package/engine/object-data/entry/ability-type/dark-summoning.d.ts +10 -0
  265. package/engine/object-data/entry/ability-type/dark-summoning.lua +39 -0
  266. package/engine/object-data/entry/ability-type/death-coil.d.ts +8 -0
  267. package/engine/object-data/entry/ability-type/death-coil.lua +26 -0
  268. package/engine/object-data/entry/ability-type/disease-cloud.d.ts +15 -0
  269. package/engine/object-data/entry/ability-type/disease-cloud.lua +65 -0
  270. package/engine/object-data/entry/ability-type/divine-shield.d.ts +5 -0
  271. package/engine/object-data/entry/ability-type/divine-shield.lua +12 -0
  272. package/engine/object-data/entry/ability-type/endurance-aura.d.ts +10 -0
  273. package/engine/object-data/entry/ability-type/endurance-aura.lua +39 -0
  274. package/engine/object-data/entry/ability-type/engineering-upgrade.d.ts +13 -0
  275. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +88 -0
  276. package/engine/object-data/entry/ability-type/evasion.d.ts +8 -0
  277. package/engine/object-data/entry/ability-type/evasion.lua +26 -0
  278. package/engine/object-data/entry/ability-type/faerie-fire.d.ts +10 -0
  279. package/engine/object-data/entry/ability-type/faerie-fire.lua +39 -0
  280. package/engine/object-data/entry/ability-type/far-sight.d.ts +9 -0
  281. package/engine/object-data/entry/ability-type/far-sight.lua +26 -0
  282. package/engine/object-data/entry/ability-type/feral-spirit.d.ts +11 -0
  283. package/engine/object-data/entry/ability-type/feral-spirit.lua +39 -0
  284. package/engine/object-data/entry/ability-type/frenzy.d.ts +12 -0
  285. package/engine/object-data/entry/ability-type/frenzy.lua +52 -0
  286. package/engine/object-data/entry/ability-type/frost-nova.d.ts +12 -0
  287. package/engine/object-data/entry/ability-type/frost-nova.lua +52 -0
  288. package/engine/object-data/entry/ability-type/ghost-visible.d.ts +10 -0
  289. package/engine/object-data/entry/ability-type/ghost-visible.lua +39 -0
  290. package/engine/object-data/entry/ability-type/gold-mine.d.ts +12 -0
  291. package/engine/object-data/entry/ability-type/gold-mine.lua +52 -0
  292. package/engine/object-data/entry/ability-type/heal.d.ts +8 -0
  293. package/engine/object-data/entry/ability-type/heal.lua +26 -0
  294. package/engine/object-data/entry/ability-type/healing-salve.d.ts +22 -0
  295. package/engine/object-data/entry/ability-type/healing-salve.lua +78 -0
  296. package/engine/object-data/entry/ability-type/healing-spray.d.ts +18 -0
  297. package/engine/object-data/entry/ability-type/healing-spray.lua +91 -0
  298. package/engine/object-data/entry/ability-type/healing-wave.d.ts +12 -0
  299. package/engine/object-data/entry/ability-type/healing-wave.lua +52 -0
  300. package/engine/object-data/entry/ability-type/holy-light.d.ts +8 -0
  301. package/engine/object-data/entry/ability-type/holy-light.lua +26 -0
  302. package/engine/object-data/entry/ability-type/incinerate.d.ts +18 -0
  303. package/engine/object-data/entry/ability-type/incinerate.lua +91 -0
  304. package/engine/object-data/entry/ability-type/inner-fire.d.ts +14 -0
  305. package/engine/object-data/entry/ability-type/inner-fire.lua +65 -0
  306. package/engine/object-data/entry/ability-type/inventory.d.ts +16 -0
  307. package/engine/object-data/entry/ability-type/inventory.lua +78 -0
  308. package/engine/object-data/entry/ability-type/invulnerable.d.ts +5 -0
  309. package/engine/object-data/entry/ability-type/invulnerable.lua +12 -0
  310. package/engine/object-data/entry/ability-type/lightning-shield.d.ts +8 -0
  311. package/engine/object-data/entry/ability-type/lightning-shield.lua +26 -0
  312. package/engine/object-data/entry/ability-type/movement-speed-increase.d.ts +8 -0
  313. package/engine/object-data/entry/ability-type/movement-speed-increase.lua +26 -0
  314. package/engine/object-data/entry/ability-type/permanent-immolation.d.ts +8 -0
  315. package/engine/object-data/entry/ability-type/permanent-immolation.lua +26 -0
  316. package/engine/object-data/entry/ability-type/phoenix-morph.d.ts +25 -0
  317. package/engine/object-data/entry/ability-type/phoenix-morph.lua +130 -0
  318. package/engine/object-data/entry/ability-type/recall.d.ts +10 -0
  319. package/engine/object-data/entry/ability-type/recall.lua +39 -0
  320. package/engine/object-data/entry/ability-type/rejuvenation.d.ts +20 -0
  321. package/engine/object-data/entry/ability-type/rejuvenation.lua +65 -0
  322. package/engine/object-data/entry/ability-type/searing-arrows.d.ts +8 -0
  323. package/engine/object-data/entry/ability-type/searing-arrows.lua +26 -0
  324. package/engine/object-data/entry/ability-type/shock-wave.d.ts +10 -0
  325. package/engine/object-data/entry/ability-type/shock-wave.lua +39 -0
  326. package/engine/object-data/entry/ability-type/slow-poison.d.ts +12 -0
  327. package/engine/object-data/entry/ability-type/slow-poison.lua +52 -0
  328. package/engine/object-data/entry/ability-type/slow.d.ts +12 -0
  329. package/engine/object-data/entry/ability-type/slow.lua +52 -0
  330. package/engine/object-data/entry/ability-type/spell-damage-reduction.d.ts +10 -0
  331. package/engine/object-data/entry/ability-type/spell-damage-reduction.lua +39 -0
  332. package/engine/object-data/entry/ability-type/spiked-carapace.d.ts +12 -0
  333. package/engine/object-data/entry/ability-type/spiked-carapace.lua +52 -0
  334. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +14 -0
  335. package/engine/object-data/entry/ability-type/spirit-touch.lua +65 -0
  336. package/engine/object-data/entry/ability-type/storm-bolt.d.ts +8 -0
  337. package/engine/object-data/entry/ability-type/storm-bolt.lua +26 -0
  338. package/engine/object-data/entry/ability-type/summon-quilbeast.d.ts +11 -0
  339. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +39 -0
  340. package/engine/object-data/entry/ability-type/summon-water-elemental.d.ts +11 -0
  341. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +39 -0
  342. package/engine/object-data/entry/ability-type.d.ts +148 -0
  343. package/engine/object-data/entry/ability-type.lua +1058 -0
  344. package/engine/object-data/entry/buff-type/applicable.d.ts +16 -0
  345. package/engine/object-data/entry/buff-type/applicable.lua +377 -0
  346. package/engine/object-data/entry/buff-type/blank.d.ts +8 -0
  347. package/engine/object-data/entry/buff-type/blank.lua +17 -0
  348. package/engine/object-data/entry/buff-type.d.ts +64 -0
  349. package/engine/object-data/entry/buff-type.lua +316 -0
  350. package/engine/object-data/entry/destructible-type.d.ts +21 -0
  351. package/engine/object-data/entry/destructible-type.lua +83 -0
  352. package/engine/object-data/entry/item-type/blank.d.ts +8 -0
  353. package/engine/object-data/entry/item-type/blank.lua +21 -0
  354. package/engine/object-data/entry/item-type.d.ts +49 -0
  355. package/engine/object-data/entry/item-type.lua +259 -0
  356. package/engine/object-data/entry/lightning-type.d.ts +37 -0
  357. package/engine/object-data/entry/lightning-type.lua +191 -0
  358. package/engine/object-data/entry/unit-type/blank.d.ts +6 -0
  359. package/engine/object-data/entry/unit-type/blank.lua +13 -0
  360. package/engine/object-data/entry/unit-type.d.ts +218 -0
  361. package/engine/object-data/entry/unit-type.lua +1306 -0
  362. package/engine/object-data/entry/upgrade/blank.d.ts +8 -0
  363. package/engine/object-data/entry/upgrade/blank.lua +22 -0
  364. package/engine/object-data/entry/upgrade.d.ts +59 -0
  365. package/engine/object-data/entry/upgrade.lua +238 -0
  366. package/engine/object-data/entry.d.ts +80 -0
  367. package/engine/object-data/entry.lua +634 -0
  368. package/engine/object-data/utility/object-data-entry-id-generator.d.ts +6 -0
  369. package/engine/object-data/utility/object-data-entry-id-generator.lua +63 -0
  370. package/engine/object-data/utility/order-type-string-id-factory.d.ts +9 -0
  371. package/engine/object-data/utility/order-type-string-id-factory.lua +368 -0
  372. package/engine/object-field/ability.d.ts +115 -0
  373. package/engine/object-field/ability.lua +471 -0
  374. package/engine/object-field/unit.d.ts +15 -0
  375. package/engine/object-field/unit.lua +49 -0
  376. package/engine/object-field.d.ts +86 -0
  377. package/engine/object-field.lua +466 -0
  378. package/engine/random.d.ts +10 -0
  379. package/engine/random.lua +9 -0
  380. package/engine/standard/entries/ability-type.d.ts +8 -0
  381. package/engine/standard/entries/ability-type.lua +8 -0
  382. package/engine/standard/entries/lightning-type.d.ts +16 -0
  383. package/engine/standard/entries/lightning-type.lua +16 -0
  384. package/engine/standard/entries/unit-type.d.ts +63 -0
  385. package/engine/standard/entries/unit-type.lua +63 -0
  386. package/engine/standard/entries/upgrade.d.ts +92 -0
  387. package/engine/standard/entries/upgrade.lua +92 -0
  388. package/engine/standard/fields/ability.d.ts +737 -0
  389. package/engine/standard/fields/ability.lua +749 -0
  390. package/engine/standard/pathing-textures.d.ts +6 -0
  391. package/engine/standard/pathing-textures.lua +7 -0
  392. package/engine/text-tag.d.ts +25 -0
  393. package/engine/text-tag.lua +109 -0
  394. package/engine/unit.d.ts +20 -0
  395. package/engine/unit.lua +31 -0
  396. package/event.d.ts +53 -0
  397. package/event.lua +269 -0
  398. package/exception.d.ts +19 -0
  399. package/exception.lua +57 -0
  400. package/file.d.ts +4 -0
  401. package/file.lua +42 -0
  402. package/global/math.d.ts +21 -0
  403. package/global/math.lua +72 -0
  404. package/global/vec2.d.ts +66 -0
  405. package/global/vec2.lua +159 -0
  406. package/index.d.ts +8 -0
  407. package/index.lua +9 -0
  408. package/lualib_bundle.lua +2629 -0
  409. package/math/vec2.d.ts +18 -0
  410. package/math/vec2.lua +42 -0
  411. package/math.d.ts +39 -0
  412. package/math.lua +91 -0
  413. package/net/signal.d.ts +11 -0
  414. package/net/signal.lua +56 -0
  415. package/net/socket.d.ts +9 -0
  416. package/net/socket.lua +26 -0
  417. package/network.d.ts +31 -0
  418. package/network.lua +194 -0
  419. package/objutil/ability.d.ts +710 -0
  420. package/objutil/ability.lua +3781 -0
  421. package/objutil/buff.d.ts +110 -0
  422. package/objutil/buff.lua +769 -0
  423. package/objutil/dummy.d.ts +2 -0
  424. package/objutil/dummy.lua +49 -0
  425. package/objutil/idgen.d.ts +9 -0
  426. package/objutil/idgen.lua +92 -0
  427. package/objutil/item.d.ts +38 -0
  428. package/objutil/item.lua +254 -0
  429. package/objutil/object.d.ts +43 -0
  430. package/objutil/object.lua +213 -0
  431. package/objutil/unit.d.ts +134 -0
  432. package/objutil/unit.lua +913 -0
  433. package/objutil/upgrade.d.ts +22 -0
  434. package/objutil/upgrade.lua +127 -0
  435. package/operation.d.ts +35 -0
  436. package/operation.lua +179 -0
  437. package/package.json +47 -0
  438. package/patch-lualib.d.ts +2 -0
  439. package/patch-lualib.lua +67 -0
  440. package/patch-natives.d.ts +11 -0
  441. package/patch-natives.lua +14 -0
  442. package/string.d.ts +106 -0
  443. package/string.lua +34 -0
  444. package/time/dayOfWeek.d.ts +97 -0
  445. package/time/dayOfWeek.lua +53 -0
  446. package/time/localDate.d.ts +145 -0
  447. package/time/localDate.lua +236 -0
  448. package/time/localDateTime.d.ts +133 -0
  449. package/time/localDateTime.lua +154 -0
  450. package/time/localTime.d.ts +87 -0
  451. package/time/localTime.lua +91 -0
  452. package/time/month.d.ts +146 -0
  453. package/time/month.lua +129 -0
  454. package/time/year.d.ts +117 -0
  455. package/time/year.lua +81 -0
  456. package/types.d.ts +13 -0
  457. package/types.lua +0 -0
  458. package/util/objectPool.d.ts +6 -0
  459. package/util/objectPool.lua +28 -0
  460. package/util/stream.d.ts +29 -0
  461. package/util/stream.lua +453 -0
  462. package/util/stringBuilder.d.ts +8 -0
  463. package/util/stringBuilder.lua +25 -0
  464. package/utility/arrays.d.ts +57 -0
  465. package/utility/arrays.lua +372 -0
  466. package/utility/base64.d.ts +23 -0
  467. package/utility/base64.lua +177 -0
  468. package/utility/bit-set.d.ts +18 -0
  469. package/utility/bit-set.lua +12 -0
  470. package/utility/functions.d.ts +5 -0
  471. package/utility/functions.lua +90 -0
  472. package/utility/json.d.ts +2 -0
  473. package/utility/json.lua +400 -0
  474. package/utility/linked-set.d.ts +50 -0
  475. package/utility/linked-set.lua +197 -0
  476. package/utility/lua-maps.d.ts +6 -0
  477. package/utility/lua-maps.lua +25 -0
  478. package/utility/lua-sets.d.ts +6 -0
  479. package/utility/lua-sets.lua +37 -0
  480. package/utility/lzw.d.ts +2 -0
  481. package/utility/lzw.lua +161 -0
  482. package/utility/observable-array.d.ts +17 -0
  483. package/utility/observable-array.lua +30 -0
  484. package/utility/preconditions.d.ts +23 -0
  485. package/utility/preconditions.lua +58 -0
  486. package/utility/records.d.ts +3 -0
  487. package/utility/records.lua +9 -0
  488. package/utility/reflection.d.ts +4 -0
  489. package/utility/reflection.lua +31 -0
  490. package/utility/strings.d.ts +2 -0
  491. package/utility/strings.lua +44 -0
  492. package/utility/types.d.ts +39 -0
  493. package/utility/types.lua +2 -0
@@ -0,0 +1,400 @@
1
+ --
2
+ -- json.lua
3
+ --
4
+ -- Copyright (c) 2019 rxi
5
+ --
6
+ -- Permission is hereby granted, free of charge, to any person obtaining a copy of
7
+ -- this software and associated documentation files (the "Software"), to deal in
8
+ -- the Software without restriction, including without limitation the rights to
9
+ -- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
10
+ -- of the Software, and to permit persons to whom the Software is furnished to do
11
+ -- so, subject to the following conditions:
12
+ --
13
+ -- The above copyright notice and this permission notice shall be included in all
14
+ -- copies or substantial portions of the Software.
15
+ --
16
+ -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ -- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ -- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ -- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ -- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ -- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ -- SOFTWARE.
23
+ --
24
+
25
+ local json = { _version = "0.1.2" }
26
+
27
+ -------------------------------------------------------------------------------
28
+ -- Encode
29
+ -------------------------------------------------------------------------------
30
+
31
+ local encode
32
+
33
+ local escape_char_map = {
34
+ [ "\\" ] = "\\\\",
35
+ [ "\"" ] = "\\\"",
36
+ [ "\b" ] = "\\b",
37
+ [ "\f" ] = "\\f",
38
+ [ "\n" ] = "\\n",
39
+ [ "\r" ] = "\\r",
40
+ [ "\t" ] = "\\t",
41
+ }
42
+
43
+ local escape_char_map_inv = { [ "\\/" ] = "/" }
44
+ for k, v in pairs(escape_char_map) do
45
+ escape_char_map_inv[v] = k
46
+ end
47
+
48
+
49
+ local function escape_char(c)
50
+ return escape_char_map[c] or string.format("\\u%04x", c:byte())
51
+ end
52
+
53
+
54
+ local function encode_nil(val)
55
+ return "null"
56
+ end
57
+
58
+
59
+ local function encode_table(val, stack)
60
+ local res = {}
61
+ stack = stack or {}
62
+
63
+ -- Circular reference?
64
+ if stack[val] then error("circular reference") end
65
+
66
+ stack[val] = true
67
+
68
+ if rawget(val, 1) ~= nil or next(val) == nil then
69
+ -- Treat as array -- check keys are valid and it is not sparse
70
+ local n = 0
71
+ for k in pairs(val) do
72
+ if type(k) ~= "number" then
73
+ error("invalid table: mixed or invalid key types")
74
+ end
75
+ n = n + 1
76
+ end
77
+ if n ~= #val then
78
+ error("invalid table: sparse array")
79
+ end
80
+ -- Encode
81
+ for i, v in ipairs(val) do
82
+ table.insert(res, encode(v, stack))
83
+ end
84
+ stack[val] = nil
85
+ return "[" .. table.concat(res, ",") .. "]"
86
+
87
+ else
88
+ -- Treat as an object
89
+ for k, v in pairs(val) do
90
+ if type(k) ~= "string" then
91
+ error("invalid table: mixed or invalid key types")
92
+ end
93
+ table.insert(res, encode(k, stack) .. ":" .. encode(v, stack))
94
+ end
95
+ stack[val] = nil
96
+ return "{" .. table.concat(res, ",") .. "}"
97
+ end
98
+ end
99
+
100
+
101
+ local function encode_string(val)
102
+ return '"' .. val:gsub('[%z\1-\31\\"]', escape_char) .. '"'
103
+ end
104
+
105
+
106
+ local function encode_number(val)
107
+ -- Check for NaN, -inf and inf
108
+ if val ~= val or val <= -math.huge or val >= math.huge then
109
+ error("unexpected number value '" .. tostring(val) .. "'")
110
+ end
111
+ return string.format("%.14g", val)
112
+ end
113
+
114
+
115
+ local type_func_map = {
116
+ [ "nil" ] = encode_nil,
117
+ [ "table" ] = encode_table,
118
+ [ "string" ] = encode_string,
119
+ [ "number" ] = encode_number,
120
+ [ "boolean" ] = tostring,
121
+ }
122
+
123
+
124
+ encode = function(val, stack)
125
+ local t = type(val)
126
+ local f = type_func_map[t]
127
+ if f then
128
+ return f(val, stack)
129
+ end
130
+ error("unexpected type '" .. t .. "'")
131
+ end
132
+
133
+
134
+ function json.encode(val)
135
+ return ( encode(val) )
136
+ end
137
+
138
+
139
+ -------------------------------------------------------------------------------
140
+ -- Decode
141
+ -------------------------------------------------------------------------------
142
+
143
+ local parse
144
+
145
+ local function create_set(...)
146
+ local res = {}
147
+ for i = 1, select("#", ...) do
148
+ res[ select(i, ...) ] = true
149
+ end
150
+ return res
151
+ end
152
+
153
+ local space_chars = create_set(" ", "\t", "\r", "\n")
154
+ local delim_chars = create_set(" ", "\t", "\r", "\n", "]", "}", ",")
155
+ local escape_chars = create_set("\\", "/", '"', "b", "f", "n", "r", "t", "u")
156
+ local literals = create_set("true", "false", "null")
157
+
158
+ local literal_map = {
159
+ [ "true" ] = true,
160
+ [ "false" ] = false,
161
+ [ "null" ] = nil,
162
+ }
163
+
164
+
165
+ local function next_char(str, idx, set, negate)
166
+ for i = idx, #str do
167
+ if set[str:sub(i, i)] ~= negate then
168
+ return i
169
+ end
170
+ end
171
+ return #str + 1
172
+ end
173
+
174
+
175
+ local function decode_error(str, idx, msg)
176
+ local line_count = 1
177
+ local col_count = 1
178
+ for i = 1, idx - 1 do
179
+ col_count = col_count + 1
180
+ if str:sub(i, i) == "\n" then
181
+ line_count = line_count + 1
182
+ col_count = 1
183
+ end
184
+ end
185
+ error( string.format("%s at line %d col %d", msg, line_count, col_count) )
186
+ end
187
+
188
+
189
+ local function codepoint_to_utf8(n)
190
+ -- http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=iws-appendixa
191
+ local f = math.floor
192
+ if n <= 0x7f then
193
+ return string.char(n)
194
+ elseif n <= 0x7ff then
195
+ return string.char(f(n / 64) + 192, n % 64 + 128)
196
+ elseif n <= 0xffff then
197
+ return string.char(f(n / 4096) + 224, f(n % 4096 / 64) + 128, n % 64 + 128)
198
+ elseif n <= 0x10ffff then
199
+ return string.char(f(n / 262144) + 240, f(n % 262144 / 4096) + 128,
200
+ f(n % 4096 / 64) + 128, n % 64 + 128)
201
+ end
202
+ error( string.format("invalid unicode codepoint '%x'", n) )
203
+ end
204
+
205
+
206
+ local function parse_unicode_escape(s)
207
+ local n1 = tonumber( s:sub(3, 6), 16 )
208
+ local n2 = tonumber( s:sub(9, 12), 16 )
209
+ -- Surrogate pair?
210
+ if n2 then
211
+ return codepoint_to_utf8((n1 - 0xd800) * 0x400 + (n2 - 0xdc00) + 0x10000)
212
+ else
213
+ return codepoint_to_utf8(n1)
214
+ end
215
+ end
216
+
217
+
218
+ local function parse_string(str, i)
219
+ local has_unicode_escape = false
220
+ local has_surrogate_escape = false
221
+ local has_escape = false
222
+ local last
223
+ for j = i + 1, #str do
224
+ local x = str:byte(j)
225
+
226
+ if x < 32 then
227
+ decode_error(str, j, "control character in string")
228
+ end
229
+
230
+ if last == 92 then -- "\\" (escape char)
231
+ if x == 117 then -- "u" (unicode escape sequence)
232
+ local hex = str:sub(j + 1, j + 5)
233
+ if not hex:find("%x%x%x%x") then
234
+ decode_error(str, j, "invalid unicode escape in string")
235
+ end
236
+ if hex:find("^[dD][89aAbB]") then
237
+ has_surrogate_escape = true
238
+ else
239
+ has_unicode_escape = true
240
+ end
241
+ else
242
+ local c = string.char(x)
243
+ if not escape_chars[c] then
244
+ decode_error(str, j, "invalid escape char '" .. c .. "' in string")
245
+ end
246
+ has_escape = true
247
+ end
248
+ last = nil
249
+
250
+ elseif x == 34 then -- '"' (end of string)
251
+ local s = str:sub(i + 1, j - 1)
252
+ if has_surrogate_escape then
253
+ s = s:gsub("\\u[dD][89aAbB]..\\u....", parse_unicode_escape)
254
+ end
255
+ if has_unicode_escape then
256
+ s = s:gsub("\\u....", parse_unicode_escape)
257
+ end
258
+ if has_escape then
259
+ s = s:gsub("\\.", escape_char_map_inv)
260
+ end
261
+ return s, j + 1
262
+
263
+ else
264
+ last = x
265
+ end
266
+ end
267
+ decode_error(str, i, "expected closing quote for string")
268
+ end
269
+
270
+
271
+ local function parse_number(str, i)
272
+ local x = next_char(str, i, delim_chars)
273
+ local s = str:sub(i, x - 1)
274
+ local n = tonumber(s)
275
+ if not n then
276
+ decode_error(str, i, "invalid number '" .. s .. "'")
277
+ end
278
+ return n, x
279
+ end
280
+
281
+
282
+ local function parse_literal(str, i)
283
+ local x = next_char(str, i, delim_chars)
284
+ local word = str:sub(i, x - 1)
285
+ if not literals[word] then
286
+ decode_error(str, i, "invalid literal '" .. word .. "'")
287
+ end
288
+ return literal_map[word], x
289
+ end
290
+
291
+
292
+ local function parse_array(str, i)
293
+ local res = {}
294
+ local n = 1
295
+ i = i + 1
296
+ while 1 do
297
+ local x
298
+ i = next_char(str, i, space_chars, true)
299
+ -- Empty / end of array?
300
+ if str:sub(i, i) == "]" then
301
+ i = i + 1
302
+ break
303
+ end
304
+ -- Read token
305
+ x, i = parse(str, i)
306
+ res[n] = x
307
+ n = n + 1
308
+ -- Next token
309
+ i = next_char(str, i, space_chars, true)
310
+ local chr = str:sub(i, i)
311
+ i = i + 1
312
+ if chr == "]" then break end
313
+ if chr ~= "," then decode_error(str, i, "expected ']' or ','") end
314
+ end
315
+ return res, i
316
+ end
317
+
318
+
319
+ local function parse_object(str, i)
320
+ local res = {}
321
+ i = i + 1
322
+ while 1 do
323
+ local key, val
324
+ i = next_char(str, i, space_chars, true)
325
+ -- Empty / end of object?
326
+ if str:sub(i, i) == "}" then
327
+ i = i + 1
328
+ break
329
+ end
330
+ -- Read key
331
+ if str:sub(i, i) ~= '"' then
332
+ decode_error(str, i, "expected string for key")
333
+ end
334
+ key, i = parse(str, i)
335
+ -- Read ':' delimiter
336
+ i = next_char(str, i, space_chars, true)
337
+ if str:sub(i, i) ~= ":" then
338
+ decode_error(str, i, "expected ':' after key")
339
+ end
340
+ i = next_char(str, i + 1, space_chars, true)
341
+ -- Read value
342
+ val, i = parse(str, i)
343
+ -- Set
344
+ res[key] = val
345
+ -- Next token
346
+ i = next_char(str, i, space_chars, true)
347
+ local chr = str:sub(i, i)
348
+ i = i + 1
349
+ if chr == "}" then break end
350
+ if chr ~= "," then decode_error(str, i, "expected '}' or ','") end
351
+ end
352
+ return res, i
353
+ end
354
+
355
+
356
+ local char_func_map = {
357
+ [ '"' ] = parse_string,
358
+ [ "0" ] = parse_number,
359
+ [ "1" ] = parse_number,
360
+ [ "2" ] = parse_number,
361
+ [ "3" ] = parse_number,
362
+ [ "4" ] = parse_number,
363
+ [ "5" ] = parse_number,
364
+ [ "6" ] = parse_number,
365
+ [ "7" ] = parse_number,
366
+ [ "8" ] = parse_number,
367
+ [ "9" ] = parse_number,
368
+ [ "-" ] = parse_number,
369
+ [ "t" ] = parse_literal,
370
+ [ "f" ] = parse_literal,
371
+ [ "n" ] = parse_literal,
372
+ [ "[" ] = parse_array,
373
+ [ "{" ] = parse_object,
374
+ }
375
+
376
+
377
+ parse = function(str, idx)
378
+ local chr = str:sub(idx, idx)
379
+ local f = char_func_map[chr]
380
+ if f then
381
+ return f(str, idx)
382
+ end
383
+ decode_error(str, idx, "unexpected character '" .. chr .. "'")
384
+ end
385
+
386
+
387
+ function json.decode(str)
388
+ if type(str) ~= "string" then
389
+ error("expected argument of type string, got " .. type(str))
390
+ end
391
+ local res, idx = parse(str, next_char(str, 1, space_chars, true))
392
+ idx = next_char(str, idx, space_chars, true)
393
+ if idx <= #str then
394
+ decode_error(str, idx, "trailing garbage")
395
+ end
396
+ return res
397
+ end
398
+
399
+
400
+ return json
@@ -0,0 +1,50 @@
1
+ /// <reference types="@typescript-to-lua/language-extensions" />
2
+ /** @noSelfInFile */
3
+ type IteratorState<T extends AnyNotNil> = {
4
+ t: LuaMap<T, T>;
5
+ n?: T;
6
+ };
7
+ type OneSidedTypeGuard = {
8
+ readonly __oneSidedTypeGuard: unique symbol;
9
+ };
10
+ export interface ReadonlyLinkedSet<T extends AnyNotNil> extends LuaPairsKeyIterable<T> {
11
+ copyOf(): LinkedSet<T>;
12
+ first(): T | undefined;
13
+ last(): T | undefined;
14
+ next(key: T): T | undefined;
15
+ previous(key: T): T | undefined;
16
+ contains(key: AnyNotNil): key is T & OneSidedTypeGuard;
17
+ size: number;
18
+ forEach<Args extends any[]>(action: (value: T, ...args: Args) => void, ...args: Args): void;
19
+ toArray(): T[];
20
+ sumOf(selector: ((value: T) => number) | KeysOfType<T, number>): number;
21
+ }
22
+ export interface LinkedSet<T extends AnyNotNil> extends LuaPairsKeyIterable<T> {
23
+ readonly __linkedSet: unique symbol;
24
+ }
25
+ export declare class LinkedSet<T extends AnyNotNil> implements ReadonlyLinkedSet<T> {
26
+ private n;
27
+ private p;
28
+ private f?;
29
+ private l?;
30
+ private s;
31
+ copyOf(): LinkedSet<T>;
32
+ first(): T | undefined;
33
+ last(): T | undefined;
34
+ next(key: T): T | undefined;
35
+ previous(key: T): T | undefined;
36
+ add(key: T): boolean;
37
+ remove(key: T): boolean;
38
+ contains(key: AnyNotNil): key is T & OneSidedTypeGuard;
39
+ clear(): void;
40
+ get size(): number;
41
+ forEach<Args extends any[]>(action: (value: T, ...args: Args) => void, ...args: Args): void;
42
+ toArray(): T[];
43
+ sumOf(selector: ((value: T) => number) | KeysOfType<T, number>): number;
44
+ sortBy<R>(selector: ((value: T) => R) | KeysOfType<T, R>): void;
45
+ protected __pairs(this: LinkedSet<T>): LuaIterator<T | undefined, IteratorState<T>>;
46
+ }
47
+ export declare const emptyLinkedSet: <T extends AnyNotNil>() => ReadonlyLinkedSet<T>;
48
+ export declare const linkedSetOf: <T extends AnyNotNil>(...elements: readonly T[]) => LinkedSet<T>;
49
+ export declare const linkedSetOfNotNull: <T extends AnyNotNil>(...elements: readonly (T | null | undefined)[]) => LinkedSet<T>;
50
+ export {};
@@ -0,0 +1,197 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__Class = ____lualib.__TS__Class
3
+ local __TS__New = ____lualib.__TS__New
4
+ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
5
+ local __TS__ClassExtends = ____lualib.__TS__ClassExtends
6
+ local ____exports = {}
7
+ local ____arrays = require("utility.arrays")
8
+ local sortBy = ____arrays.sortBy
9
+ local ____exception = require("exception")
10
+ local UnsupportedOperationException = ____exception.UnsupportedOperationException
11
+ local function linkedSetNext(state)
12
+ local n = state.n
13
+ state.n = state.t[n]
14
+ return n
15
+ end
16
+ ____exports.LinkedSet = __TS__Class()
17
+ local LinkedSet = ____exports.LinkedSet
18
+ LinkedSet.name = "LinkedSet"
19
+ function LinkedSet.prototype.____constructor(self)
20
+ self.n = {}
21
+ self.p = {}
22
+ self.s = 0
23
+ end
24
+ function LinkedSet.prototype.copyOf(self)
25
+ local copy = __TS__New(____exports.LinkedSet)
26
+ local n = copy.n
27
+ for key, value in pairs(self.n) do
28
+ n[key] = value
29
+ end
30
+ local p = copy.p
31
+ for key, value in pairs(self.p) do
32
+ p[key] = value
33
+ end
34
+ copy.f = self.f
35
+ copy.l = self.l
36
+ copy.s = self.s
37
+ return copy
38
+ end
39
+ function LinkedSet.prototype.first(self)
40
+ return self.f
41
+ end
42
+ function LinkedSet.prototype.last(self)
43
+ return self.l
44
+ end
45
+ function LinkedSet.prototype.next(self, key)
46
+ return self.n[key]
47
+ end
48
+ function LinkedSet.prototype.previous(self, key)
49
+ return self.p[key]
50
+ end
51
+ function LinkedSet.prototype.add(self, key)
52
+ local n = self.n
53
+ if n[key] ~= nil then
54
+ return false
55
+ end
56
+ local l = self.l
57
+ if l == nil then
58
+ self.f = key
59
+ self.l = key
60
+ self.s = 1
61
+ elseif l ~= key then
62
+ n[l] = key
63
+ self.p[key] = l
64
+ self.l = key
65
+ self.s = self.s + 1
66
+ else
67
+ return false
68
+ end
69
+ return true
70
+ end
71
+ function LinkedSet.prototype.remove(self, key)
72
+ local n = self.n
73
+ local next = n[key]
74
+ n[key] = nil
75
+ local p = self.p
76
+ local previous = p[key]
77
+ p[key] = nil
78
+ if next ~= nil and previous ~= nil then
79
+ n[previous] = next
80
+ p[next] = previous
81
+ elseif next ~= nil then
82
+ self.f = next
83
+ p[next] = nil
84
+ elseif previous ~= nil then
85
+ self.l = previous
86
+ n[previous] = nil
87
+ elseif self.l == key then
88
+ self.f = nil
89
+ self.l = nil
90
+ else
91
+ return false
92
+ end
93
+ self.s = self.s - 1
94
+ return true
95
+ end
96
+ function LinkedSet.prototype.contains(self, key)
97
+ return self.n[key] ~= nil or self.l == key
98
+ end
99
+ function LinkedSet.prototype.clear(self)
100
+ self.n = {}
101
+ self.p = {}
102
+ self.f = nil
103
+ self.l = nil
104
+ self.s = 0
105
+ end
106
+ function LinkedSet.prototype.forEach(self, action, ...)
107
+ local n = self.n
108
+ local c = self.f
109
+ while c ~= nil do
110
+ action(c, ...)
111
+ c = n[c]
112
+ end
113
+ end
114
+ function LinkedSet.prototype.toArray(self)
115
+ local array = {}
116
+ local i = 1
117
+ local n = self.n
118
+ local c = self.f
119
+ while c ~= nil do
120
+ array[i] = c
121
+ i = i + 1
122
+ c = n[c]
123
+ end
124
+ return array
125
+ end
126
+ function LinkedSet.prototype.sumOf(self, selector)
127
+ local sum = 0
128
+ local n = self.n
129
+ local c = self.f
130
+ if type(selector) == "function" then
131
+ while c ~= nil do
132
+ sum = sum + selector(c)
133
+ c = n[c]
134
+ end
135
+ else
136
+ while c ~= nil do
137
+ sum = sum + c[selector]
138
+ c = n[c]
139
+ end
140
+ end
141
+ return sum
142
+ end
143
+ function LinkedSet.prototype.sortBy(self, selector)
144
+ local array = self:toArray()
145
+ sortBy(array, selector)
146
+ local n = self.n
147
+ local p = self.p
148
+ local s = self.s
149
+ for i = 1, s do
150
+ n[array[i]] = array[i + 1]
151
+ p[array[i]] = array[i - 2 + 1]
152
+ end
153
+ self.f = array[1]
154
+ self.l = array[s]
155
+ end
156
+ function LinkedSet.prototype.__pairs(self)
157
+ return linkedSetNext, {t = self.n, n = self.f}, nil
158
+ end
159
+ __TS__SetDescriptor(
160
+ LinkedSet.prototype,
161
+ "size",
162
+ {get = function(self)
163
+ return self.s
164
+ end},
165
+ true
166
+ )
167
+ local EmptyLinkedSet = __TS__Class()
168
+ EmptyLinkedSet.name = "EmptyLinkedSet"
169
+ __TS__ClassExtends(EmptyLinkedSet, ____exports.LinkedSet)
170
+ function EmptyLinkedSet.prototype.add(self)
171
+ error(
172
+ __TS__New(UnsupportedOperationException),
173
+ 0
174
+ )
175
+ end
176
+ local EMPTY_LINKED_SET = __TS__New(EmptyLinkedSet)
177
+ ____exports.emptyLinkedSet = function()
178
+ return EMPTY_LINKED_SET
179
+ end
180
+ ____exports.linkedSetOf = function(...)
181
+ local linkedSet = __TS__New(____exports.LinkedSet)
182
+ for i = 1, select("#", ...) do
183
+ linkedSet:add((select(i, ...)))
184
+ end
185
+ return linkedSet
186
+ end
187
+ ____exports.linkedSetOfNotNull = function(...)
188
+ local linkedSet = __TS__New(____exports.LinkedSet)
189
+ for i = 1, select("#", ...) do
190
+ local element = (select(i, ...))
191
+ if element ~= nil then
192
+ linkedSet:add(element)
193
+ end
194
+ end
195
+ return linkedSet
196
+ end
197
+ return ____exports
@@ -0,0 +1,6 @@
1
+ /// <reference types="@typescript-to-lua/language-extensions" />
2
+ /** @noSelfInFile */
3
+ import { Flatten, TupleOf } from "./types";
4
+ export declare const luaMapOf: <K extends AnyNotNil, V>(...pairs: Flatten<TupleOf<[K, V], 0 | 2 | 1 | 22 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 27 | 31 | 40 | 30 | 32 | 23 | 24 | 25 | 26 | 28 | 29 | 33 | 34 | 35 | 36 | 37 | 38 | 39>>) => LuaMap<K, V>;
5
+ export declare const luaMapInvert: <K extends AnyNotNil, V extends AnyNotNil>(luaMap: LuaMap<K, V>) => LuaMap<V, K>;
6
+ export declare const mapValues: <K extends AnyNotNil, V1, V2>(luaMap: LuaMap<K, V1>, transform: (value: V1) => V2) => LuaMap<K, V2>;
@@ -0,0 +1,25 @@
1
+ local ____exports = {}
2
+ local select = _G.select
3
+ ____exports.luaMapOf = function(...)
4
+ local luaMap = {}
5
+ for i = 1, select("#", ...), 2 do
6
+ local key, value = select(i, ...)
7
+ luaMap[key] = value
8
+ end
9
+ return luaMap
10
+ end
11
+ ____exports.luaMapInvert = function(luaMap)
12
+ local invertLuaMap = {}
13
+ for key, value in pairs(luaMap) do
14
+ invertLuaMap[value] = key
15
+ end
16
+ return invertLuaMap
17
+ end
18
+ ____exports.mapValues = function(luaMap, transform)
19
+ local result = {}
20
+ for key, value in pairs(luaMap) do
21
+ result[key] = transform(value)
22
+ end
23
+ return result
24
+ end
25
+ return ____exports
@@ -0,0 +1,6 @@
1
+ /// <reference types="@typescript-to-lua/language-extensions" />
2
+ /** @noSelfInFile */
3
+ export declare const luaSetOf: <T extends AnyNotNil>(...elements: readonly T[]) => LuaSet<T>;
4
+ export declare const luaSetOfNotNull: <T extends AnyNotNil>(...elements: readonly (T | null | undefined)[]) => LuaSet<T>;
5
+ export declare const luaSetIntersection: <T extends AnyNotNil>(firstLuaSet: ReadonlyLuaSet<T>, secondLuaSet: ReadonlyLuaSet<T>) => LuaSet<T>;
6
+ export declare const luaSetContainsAnyOf: <T extends AnyNotNil>(luaSet: ReadonlyLuaSet<T>, ...elements: readonly T[]) => boolean;