isaacscript-common 84.0.1 → 84.1.1

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 (569) hide show
  1. package/dist/arrays/cachedEnumValues.js +33 -0
  2. package/dist/callbackClasses.js +289 -0
  3. package/dist/callbacks.js +181 -0
  4. package/dist/classes/DefaultMap.js +171 -0
  5. package/dist/classes/ModFeature.js +244 -0
  6. package/dist/classes/ModUpgraded.js +324 -0
  7. package/dist/classes/callbacks/EntityTakeDmgFilter.js +19 -0
  8. package/dist/classes/callbacks/EntityTakeDmgPlayer.js +29 -0
  9. package/dist/classes/callbacks/InputActionFilter.js +24 -0
  10. package/dist/classes/callbacks/InputActionPlayer.js +37 -0
  11. package/dist/classes/callbacks/PostAmbushFinished.js +40 -0
  12. package/dist/classes/callbacks/PostAmbushStarted.js +40 -0
  13. package/dist/classes/callbacks/PostBombExploded.js +24 -0
  14. package/dist/classes/callbacks/PostBombInitFilter.js +21 -0
  15. package/dist/classes/callbacks/PostBombInitLate.js +31 -0
  16. package/dist/classes/callbacks/PostBombRenderFilter.js +21 -0
  17. package/dist/classes/callbacks/PostBombUpdateFilter.js +21 -0
  18. package/dist/classes/callbacks/PostBoneSwing.js +53 -0
  19. package/dist/classes/callbacks/PostCollectibleEmpty.js +50 -0
  20. package/dist/classes/callbacks/PostCursedTeleport.js +119 -0
  21. package/dist/classes/callbacks/PostCustomRevive.js +17 -0
  22. package/dist/classes/callbacks/PostDiceRoomActivated.js +50 -0
  23. package/dist/classes/callbacks/PostDoorRender.js +24 -0
  24. package/dist/classes/callbacks/PostDoorUpdate.js +24 -0
  25. package/dist/classes/callbacks/PostEffectInitFilter.js +21 -0
  26. package/dist/classes/callbacks/PostEffectInitLate.js +31 -0
  27. package/dist/classes/callbacks/PostEffectRenderFilter.js +21 -0
  28. package/dist/classes/callbacks/PostEffectStateChanged.js +34 -0
  29. package/dist/classes/callbacks/PostEffectUpdateFilter.js +21 -0
  30. package/dist/classes/callbacks/PostEntityKillFilter.js +21 -0
  31. package/dist/classes/callbacks/PostEsauJr.js +12 -0
  32. package/dist/classes/callbacks/PostFamiliarInitFilter.js +21 -0
  33. package/dist/classes/callbacks/PostFamiliarInitLate.js +31 -0
  34. package/dist/classes/callbacks/PostFamiliarRenderFilter.js +21 -0
  35. package/dist/classes/callbacks/PostFamiliarStateChanged.js +34 -0
  36. package/dist/classes/callbacks/PostFamiliarUpdateFilter.js +21 -0
  37. package/dist/classes/callbacks/PostFirstEsauJr.js +12 -0
  38. package/dist/classes/callbacks/PostFirstFlip.js +12 -0
  39. package/dist/classes/callbacks/PostFlip.js +12 -0
  40. package/dist/classes/callbacks/PostGameEndFilter.js +21 -0
  41. package/dist/classes/callbacks/PostGameStartedReordered.js +14 -0
  42. package/dist/classes/callbacks/PostGameStartedReorderedLast.js +14 -0
  43. package/dist/classes/callbacks/PostGreedModeWave.js +35 -0
  44. package/dist/classes/callbacks/PostGridEntityBroken.js +14 -0
  45. package/dist/classes/callbacks/PostGridEntityCollision.js +28 -0
  46. package/dist/classes/callbacks/PostGridEntityCustomBroken.js +14 -0
  47. package/dist/classes/callbacks/PostGridEntityCustomCollision.js +24 -0
  48. package/dist/classes/callbacks/PostGridEntityCustomInit.js +14 -0
  49. package/dist/classes/callbacks/PostGridEntityCustomRemove.js +18 -0
  50. package/dist/classes/callbacks/PostGridEntityCustomRender.js +14 -0
  51. package/dist/classes/callbacks/PostGridEntityCustomStateChanged.js +14 -0
  52. package/dist/classes/callbacks/PostGridEntityCustomUpdate.js +14 -0
  53. package/dist/classes/callbacks/PostGridEntityInit.js +14 -0
  54. package/dist/classes/callbacks/PostGridEntityRemove.js +19 -0
  55. package/dist/classes/callbacks/PostGridEntityRender.js +14 -0
  56. package/dist/classes/callbacks/PostGridEntityStateChanged.js +14 -0
  57. package/dist/classes/callbacks/PostGridEntityUpdate.js +14 -0
  58. package/dist/classes/callbacks/PostHolyMantleRemoved.js +43 -0
  59. package/dist/classes/callbacks/PostItemDischarge.js +122 -0
  60. package/dist/classes/callbacks/PostItemPickup.js +14 -0
  61. package/dist/classes/callbacks/PostKeyboardChanged.js +46 -0
  62. package/dist/classes/callbacks/PostKnifeInitFilter.js +21 -0
  63. package/dist/classes/callbacks/PostKnifeInitLate.js +31 -0
  64. package/dist/classes/callbacks/PostKnifeRenderFilter.js +21 -0
  65. package/dist/classes/callbacks/PostKnifeUpdateFilter.js +21 -0
  66. package/dist/classes/callbacks/PostLaserInitFilter.js +21 -0
  67. package/dist/classes/callbacks/PostLaserInitLate.js +31 -0
  68. package/dist/classes/callbacks/PostLaserRenderFilter.js +21 -0
  69. package/dist/classes/callbacks/PostLaserUpdateFilter.js +21 -0
  70. package/dist/classes/callbacks/PostNPCDeathFilter.js +21 -0
  71. package/dist/classes/callbacks/PostNPCInitFilter.js +21 -0
  72. package/dist/classes/callbacks/PostNPCInitLate.js +31 -0
  73. package/dist/classes/callbacks/PostNPCRenderFilter.js +21 -0
  74. package/dist/classes/callbacks/PostNPCStateChanged.js +34 -0
  75. package/dist/classes/callbacks/PostNPCUpdateFilter.js +21 -0
  76. package/dist/classes/callbacks/PostNewLevelReordered.js +14 -0
  77. package/dist/classes/callbacks/PostNewRoomEarly.js +74 -0
  78. package/dist/classes/callbacks/PostNewRoomReordered.js +14 -0
  79. package/dist/classes/callbacks/PostPEffectUpdateReordered.js +14 -0
  80. package/dist/classes/callbacks/PostPickupChanged.js +14 -0
  81. package/dist/classes/callbacks/PostPickupCollect.js +38 -0
  82. package/dist/classes/callbacks/PostPickupInitFilter.js +21 -0
  83. package/dist/classes/callbacks/PostPickupInitFirst.js +33 -0
  84. package/dist/classes/callbacks/PostPickupInitLate.js +31 -0
  85. package/dist/classes/callbacks/PostPickupRenderFilter.js +21 -0
  86. package/dist/classes/callbacks/PostPickupSelectionFilter.js +29 -0
  87. package/dist/classes/callbacks/PostPickupStateChanged.js +34 -0
  88. package/dist/classes/callbacks/PostPickupUpdateFilter.js +21 -0
  89. package/dist/classes/callbacks/PostPitRender.js +24 -0
  90. package/dist/classes/callbacks/PostPitUpdate.js +24 -0
  91. package/dist/classes/callbacks/PostPlayerChangeHealth.js +47 -0
  92. package/dist/classes/callbacks/PostPlayerChangeStat.js +79 -0
  93. package/dist/classes/callbacks/PostPlayerChangeType.js +36 -0
  94. package/dist/classes/callbacks/PostPlayerCollectibleAdded.js +14 -0
  95. package/dist/classes/callbacks/PostPlayerCollectibleRemoved.js +14 -0
  96. package/dist/classes/callbacks/PostPlayerFatalDamage.js +83 -0
  97. package/dist/classes/callbacks/PostPlayerInitFirst.js +41 -0
  98. package/dist/classes/callbacks/PostPlayerInitLate.js +33 -0
  99. package/dist/classes/callbacks/PostPlayerRenderReordered.js +14 -0
  100. package/dist/classes/callbacks/PostPlayerUpdateReordered.js +14 -0
  101. package/dist/classes/callbacks/PostPoopRender.js +24 -0
  102. package/dist/classes/callbacks/PostPoopUpdate.js +24 -0
  103. package/dist/classes/callbacks/PostPressurePlateRender.js +24 -0
  104. package/dist/classes/callbacks/PostPressurePlateUpdate.js +24 -0
  105. package/dist/classes/callbacks/PostProjectileInitFilter.js +21 -0
  106. package/dist/classes/callbacks/PostProjectileInitLate.js +31 -0
  107. package/dist/classes/callbacks/PostProjectileKill.js +52 -0
  108. package/dist/classes/callbacks/PostProjectileRenderFilter.js +21 -0
  109. package/dist/classes/callbacks/PostProjectileUpdateFilter.js +21 -0
  110. package/dist/classes/callbacks/PostPurchase.js +90 -0
  111. package/dist/classes/callbacks/PostRockRender.js +24 -0
  112. package/dist/classes/callbacks/PostRockUpdate.js +24 -0
  113. package/dist/classes/callbacks/PostRoomClearChanged.js +46 -0
  114. package/dist/classes/callbacks/PostSacrifice.js +36 -0
  115. package/dist/classes/callbacks/PostSlotAnimationChanged.js +14 -0
  116. package/dist/classes/callbacks/PostSlotCollision.js +25 -0
  117. package/dist/classes/callbacks/PostSlotDestroyed.js +14 -0
  118. package/dist/classes/callbacks/PostSlotInit.js +14 -0
  119. package/dist/classes/callbacks/PostSlotRender.js +14 -0
  120. package/dist/classes/callbacks/PostSlotUpdate.js +14 -0
  121. package/dist/classes/callbacks/PostSpikesRender.js +24 -0
  122. package/dist/classes/callbacks/PostSpikesUpdate.js +24 -0
  123. package/dist/classes/callbacks/PostTNTRender.js +24 -0
  124. package/dist/classes/callbacks/PostTNTUpdate.js +24 -0
  125. package/dist/classes/callbacks/PostTearInitFilter.js +21 -0
  126. package/dist/classes/callbacks/PostTearInitLate.js +31 -0
  127. package/dist/classes/callbacks/PostTearInitVeryLate.js +35 -0
  128. package/dist/classes/callbacks/PostTearKill.js +52 -0
  129. package/dist/classes/callbacks/PostTearRenderFilter.js +21 -0
  130. package/dist/classes/callbacks/PostTearUpdateFilter.js +21 -0
  131. package/dist/classes/callbacks/PostTransformation.js +47 -0
  132. package/dist/classes/callbacks/PostTrinketBreak.js +70 -0
  133. package/dist/classes/callbacks/PostUsePillFilter.js +76 -0
  134. package/dist/classes/callbacks/PreBerserkDeath.js +41 -0
  135. package/dist/classes/callbacks/PreBombCollisionFilter.js +19 -0
  136. package/dist/classes/callbacks/PreCustomRevive.js +14 -0
  137. package/dist/classes/callbacks/PreEntitySpawnFilter.js +24 -0
  138. package/dist/classes/callbacks/PreFamiliarCollisionFilter.js +19 -0
  139. package/dist/classes/callbacks/PreGetPedestal.js +46 -0
  140. package/dist/classes/callbacks/PreItemPickup.js +14 -0
  141. package/dist/classes/callbacks/PreKnifeCollisionFilter.js +19 -0
  142. package/dist/classes/callbacks/PreNPCCollisionFilter.js +19 -0
  143. package/dist/classes/callbacks/PreNPCUpdateFilter.js +19 -0
  144. package/dist/classes/callbacks/PreNewLevel.js +51 -0
  145. package/dist/classes/callbacks/PreProjectileCollisionFilter.js +19 -0
  146. package/dist/classes/callbacks/PreRoomEntitySpawnFilter.js +26 -0
  147. package/dist/classes/callbacks/PreTearCollisionFilter.js +19 -0
  148. package/dist/classes/features/callbackLogic/CustomGridEntities.js +359 -0
  149. package/dist/classes/features/callbackLogic/CustomRevive.js +170 -0
  150. package/dist/classes/features/callbackLogic/EsauJrDetection.js +70 -0
  151. package/dist/classes/features/callbackLogic/FlipDetection.js +61 -0
  152. package/dist/classes/features/callbackLogic/GameReorderedCallbacks.js +220 -0
  153. package/dist/classes/features/callbackLogic/GridEntityCollisionDetection.js +62 -0
  154. package/dist/classes/features/callbackLogic/GridEntityRenderDetection.js +35 -0
  155. package/dist/classes/features/callbackLogic/GridEntityUpdateDetection.js +147 -0
  156. package/dist/classes/features/callbackLogic/ItemPickupDetection.js +68 -0
  157. package/dist/classes/features/callbackLogic/PickupChangeDetection.js +43 -0
  158. package/dist/classes/features/callbackLogic/PlayerCollectibleDetection.js +193 -0
  159. package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.js +109 -0
  160. package/dist/classes/features/callbackLogic/SlotDestroyedDetection.js +95 -0
  161. package/dist/classes/features/callbackLogic/SlotRenderDetection.js +48 -0
  162. package/dist/classes/features/callbackLogic/SlotUpdateDetection.js +52 -0
  163. package/dist/classes/features/other/CharacterHealthConversion.js +112 -0
  164. package/dist/classes/features/other/CharacterStats.js +68 -0
  165. package/dist/classes/features/other/CollectibleItemPoolType.js +75 -0
  166. package/dist/classes/features/other/CustomHotkeys.js +144 -0
  167. package/dist/classes/features/other/CustomItemPools.js +128 -0
  168. package/dist/classes/features/other/CustomPickups.js +118 -0
  169. package/dist/classes/features/other/CustomStages.js +471 -0
  170. package/dist/classes/features/other/CustomTrapdoors.js +596 -0
  171. package/dist/classes/features/other/DebugDisplay.js +699 -0
  172. package/dist/classes/features/other/DeployJSONRoom.js +301 -0
  173. package/dist/classes/features/other/DisableAllSound.js +90 -0
  174. package/dist/classes/features/other/DisableInputs.js +249 -0
  175. package/dist/classes/features/other/EdenStartingStatsHealth.js +197 -0
  176. package/dist/classes/features/other/ExtraConsoleCommands.js +292 -0
  177. package/dist/classes/features/other/FadeInRemover.js +67 -0
  178. package/dist/classes/features/other/FastReset.js +88 -0
  179. package/dist/classes/features/other/FlyingDetection.js +64 -0
  180. package/dist/classes/features/other/ForgottenSwitch.js +43 -0
  181. package/dist/classes/features/other/ItemPoolDetection.js +187 -0
  182. package/dist/classes/features/other/ModdedElementDetection.js +399 -0
  183. package/dist/classes/features/other/ModdedElementSets.js +1251 -0
  184. package/dist/classes/features/other/NoSirenSteal.js +88 -0
  185. package/dist/classes/features/other/Pause.js +197 -0
  186. package/dist/classes/features/other/PersistentEntities.js +168 -0
  187. package/dist/classes/features/other/PickupIndexCreation.js +229 -0
  188. package/dist/classes/features/other/PlayerCollectibleTracking.js +102 -0
  189. package/dist/classes/features/other/PonyDetection.js +86 -0
  190. package/dist/classes/features/other/PressInput.js +71 -0
  191. package/dist/classes/features/other/PreventChildEntities.js +60 -0
  192. package/dist/classes/features/other/PreventGridEntityRespawn.js +159 -0
  193. package/dist/classes/features/other/RerunDetection.js +69 -0
  194. package/dist/classes/features/other/RoomClearFrame.js +94 -0
  195. package/dist/classes/features/other/RoomHistory.js +196 -0
  196. package/dist/classes/features/other/RunInNFrames.js +323 -0
  197. package/dist/classes/features/other/RunNextRoom.js +53 -0
  198. package/dist/classes/features/other/RunNextRun.js +60 -0
  199. package/dist/classes/features/other/SaveDataManager.js +383 -0
  200. package/dist/classes/features/other/SpawnRockAltRewards.js +469 -0
  201. package/dist/classes/features/other/StageHistory.js +244 -0
  202. package/dist/classes/features/other/StartAmbush.js +62 -0
  203. package/dist/classes/features/other/TaintedLazarusPlayers.js +115 -0
  204. package/dist/classes/features/other/UnlockAchievementsDetection.js +60 -0
  205. package/dist/classes/features/other/customStages/backdrop.js +195 -0
  206. package/dist/classes/features/other/customStages/constants.js +19 -0
  207. package/dist/classes/features/other/customStages/gridEntities.js +177 -0
  208. package/dist/classes/features/other/customStages/shadows.js +67 -0
  209. package/dist/classes/features/other/customStages/streakText.js +222 -0
  210. package/dist/classes/features/other/customStages/utils.js +65 -0
  211. package/dist/classes/features/other/customStages/v.js +27 -0
  212. package/dist/classes/features/other/customStages/versusScreen.js +227 -0
  213. package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.js +23 -0
  214. package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.js +22 -0
  215. package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.js +23 -0
  216. package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.js +23 -0
  217. package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.js +23 -0
  218. package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.js +23 -0
  219. package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.js +23 -0
  220. package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.js +23 -0
  221. package/dist/classes/features/other/debugDisplay/DebugDisplayPit.js +22 -0
  222. package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.js +25 -0
  223. package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.js +22 -0
  224. package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.js +25 -0
  225. package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.js +23 -0
  226. package/dist/classes/features/other/debugDisplay/DebugDisplayRock.js +22 -0
  227. package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.js +22 -0
  228. package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.js +22 -0
  229. package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.js +22 -0
  230. package/dist/classes/features/other/debugDisplay/DebugDisplayTear.js +23 -0
  231. package/dist/classes/features/other/debugDisplay/utils.js +13 -0
  232. package/dist/classes/features/other/extraConsoleCommands/commands.js +1598 -0
  233. package/dist/classes/features/other/extraConsoleCommands/subroutines.js +135 -0
  234. package/dist/classes/features/other/extraConsoleCommands/v.js +30 -0
  235. package/dist/classes/features/other/saveDataManager/constants.js +4 -0
  236. package/dist/classes/features/other/saveDataManager/glowingHourGlass.js +106 -0
  237. package/dist/classes/features/other/saveDataManager/loadFromDisk.js +69 -0
  238. package/dist/classes/features/other/saveDataManager/restoreDefaults.js +69 -0
  239. package/dist/classes/features/other/saveDataManager/saveToDisk.js +46 -0
  240. package/dist/classes/private/CustomCallback.js +59 -0
  241. package/dist/classes/private/Feature.js +39 -0
  242. package/dist/core/cachedClasses.js +61 -0
  243. package/dist/core/constants.js +289 -0
  244. package/dist/core/constantsFirstLast.js +98 -0
  245. package/dist/core/constantsVanilla.js +131 -0
  246. package/dist/core/upgradeMod.js +71 -0
  247. package/dist/customStageMetadata.json +1 -0
  248. package/dist/data/itempools.json +16625 -0
  249. package/dist/decorators.js +21 -0
  250. package/dist/enums/AmbushType.js +9 -0
  251. package/dist/enums/CornerType.js +11 -0
  252. package/dist/enums/HealthType.js +20 -0
  253. package/dist/enums/ISCFeature.js +65 -0
  254. package/dist/enums/LadderSubTypeCustom.js +20 -0
  255. package/dist/enums/ModCallbackCustom.js +2477 -0
  256. package/dist/enums/MysteriousPaperEffect.js +16 -0
  257. package/dist/enums/PlayerStat.js +37 -0
  258. package/dist/enums/PocketItemType.js +13 -0
  259. package/dist/enums/RockAltType.js +23 -0
  260. package/dist/enums/SaveDataKey.js +14 -0
  261. package/dist/enums/SerializationType.js +10 -0
  262. package/dist/enums/SlotDestructionType.js +22 -0
  263. package/dist/enums/private/GridEntityTypeCustom.js +10 -0
  264. package/dist/enums/private/SerializationBrand.js +42 -0
  265. package/dist/enums/private/StageTravelState.js +13 -0
  266. package/dist/enums/private/TrapdoorAnimation.js +9 -0
  267. package/dist/enums/private/UIStreakAnimation.js +10 -0
  268. package/dist/features.js +150 -0
  269. package/dist/functions/ambush.js +26 -0
  270. package/dist/functions/array.js +586 -0
  271. package/dist/functions/arrayLua.js +81 -0
  272. package/dist/functions/benchmark.js +36 -0
  273. package/dist/functions/bitSet128.js +64 -0
  274. package/dist/functions/bitwise.js +82 -0
  275. package/dist/functions/bombs.js +14 -0
  276. package/dist/functions/bosses.js +238 -0
  277. package/dist/functions/cards.js +164 -0
  278. package/dist/functions/challenges.js +117 -0
  279. package/dist/functions/characters.js +182 -0
  280. package/dist/functions/charge.js +251 -0
  281. package/dist/functions/chargeBar.js +54 -0
  282. package/dist/functions/collectibleTag.js +24 -0
  283. package/dist/functions/collectibles.js +581 -0
  284. package/dist/functions/color.js +88 -0
  285. package/dist/functions/console.js +18 -0
  286. package/dist/functions/curses.js +37 -0
  287. package/dist/functions/debugFunctions.js +108 -0
  288. package/dist/functions/decorators.js +113 -0
  289. package/dist/functions/deepCopy.js +406 -0
  290. package/dist/functions/deepCopyTests.js +361 -0
  291. package/dist/functions/dimensions.js +30 -0
  292. package/dist/functions/direction.js +78 -0
  293. package/dist/functions/doors.js +524 -0
  294. package/dist/functions/easing.js +327 -0
  295. package/dist/functions/effects.js +14 -0
  296. package/dist/functions/emptyRoom.js +79 -0
  297. package/dist/functions/entities.js +529 -0
  298. package/dist/functions/entitiesSpecific.js +582 -0
  299. package/dist/functions/entityTypes.js +9 -0
  300. package/dist/functions/enums.js +244 -0
  301. package/dist/functions/external.js +59 -0
  302. package/dist/functions/familiars.js +136 -0
  303. package/dist/functions/flag.js +146 -0
  304. package/dist/functions/frames.js +166 -0
  305. package/dist/functions/globals.js +291 -0
  306. package/dist/functions/gridEntities.js +990 -0
  307. package/dist/functions/gridEntitiesSpecific.js +456 -0
  308. package/dist/functions/gridIndex.js +35 -0
  309. package/dist/functions/hash.js +75 -0
  310. package/dist/functions/hex.js +57 -0
  311. package/dist/functions/input.js +185 -0
  312. package/dist/functions/isaacAPIClass.js +157 -0
  313. package/dist/functions/itemPool.js +118 -0
  314. package/dist/functions/jsonHelpers.js +73 -0
  315. package/dist/functions/jsonRoom.js +184 -0
  316. package/dist/functions/kColor.js +89 -0
  317. package/dist/functions/language.js +16 -0
  318. package/dist/functions/level.js +66 -0
  319. package/dist/functions/levelGrid.js +497 -0
  320. package/dist/functions/log.js +86 -0
  321. package/dist/functions/logEntities.js +308 -0
  322. package/dist/functions/logMisc.js +510 -0
  323. package/dist/functions/map.js +121 -0
  324. package/dist/functions/math.js +149 -0
  325. package/dist/functions/merge.js +159 -0
  326. package/dist/functions/mergeTests.js +313 -0
  327. package/dist/functions/minimap.js +204 -0
  328. package/dist/functions/modFeatures.js +39 -0
  329. package/dist/functions/newArray.js +30 -0
  330. package/dist/functions/nextStage.js +169 -0
  331. package/dist/functions/npcDataStructures.js +146 -0
  332. package/dist/functions/npcs.js +132 -0
  333. package/dist/functions/pickupVariants.js +63 -0
  334. package/dist/functions/pickups.js +168 -0
  335. package/dist/functions/pickupsSpecific.js +376 -0
  336. package/dist/functions/pills.js +200 -0
  337. package/dist/functions/playerCenter.js +53 -0
  338. package/dist/functions/playerCollectibles.js +300 -0
  339. package/dist/functions/playerDataStructures.js +145 -0
  340. package/dist/functions/playerEffects.js +63 -0
  341. package/dist/functions/playerHealth.js +604 -0
  342. package/dist/functions/playerIndex.js +186 -0
  343. package/dist/functions/playerTrinkets.js +149 -0
  344. package/dist/functions/players.js +471 -0
  345. package/dist/functions/pocketItems.js +165 -0
  346. package/dist/functions/positionVelocity.js +158 -0
  347. package/dist/functions/pressurePlate.js +26 -0
  348. package/dist/functions/projectiles.js +57 -0
  349. package/dist/functions/random.js +90 -0
  350. package/dist/functions/readOnly.js +33 -0
  351. package/dist/functions/render.js +36 -0
  352. package/dist/functions/revive.js +151 -0
  353. package/dist/functions/rng.js +140 -0
  354. package/dist/functions/rockAlt.js +50 -0
  355. package/dist/functions/roomData.js +155 -0
  356. package/dist/functions/roomGrid.js +97 -0
  357. package/dist/functions/roomShape.js +143 -0
  358. package/dist/functions/roomShapeWalls.js +187 -0
  359. package/dist/functions/roomTransition.js +43 -0
  360. package/dist/functions/rooms.js +782 -0
  361. package/dist/functions/run.js +121 -0
  362. package/dist/functions/seeds.js +22 -0
  363. package/dist/functions/serialization.js +98 -0
  364. package/dist/functions/set.js +215 -0
  365. package/dist/functions/slots.js +41 -0
  366. package/dist/functions/sort.js +158 -0
  367. package/dist/functions/sound.js +45 -0
  368. package/dist/functions/spawnCollectible.js +112 -0
  369. package/dist/functions/sprites.js +130 -0
  370. package/dist/functions/stage.js +540 -0
  371. package/dist/functions/stats.js +104 -0
  372. package/dist/functions/storyBosses.js +63 -0
  373. package/dist/functions/string.js +194 -0
  374. package/dist/functions/table.js +162 -0
  375. package/dist/functions/tears.js +128 -0
  376. package/dist/functions/transformations.js +89 -0
  377. package/dist/functions/trinketGive.js +145 -0
  378. package/dist/functions/trinkets.js +213 -0
  379. package/dist/functions/tstlClass.js +97 -0
  380. package/dist/functions/types.js +225 -0
  381. package/dist/functions/ui.js +148 -0
  382. package/dist/functions/utils.d.ts +2 -0
  383. package/dist/functions/utils.d.ts.map +1 -1
  384. package/dist/functions/utils.js +195 -0
  385. package/dist/functions/utils.lua +4 -1
  386. package/dist/functions/vector.js +150 -0
  387. package/dist/functions/versusScreen.js +58 -0
  388. package/dist/functions/weighted.js +57 -0
  389. package/dist/index.js +219 -0
  390. package/dist/index.rollup.d.ts +2 -0
  391. package/dist/indexLua.js +220 -0
  392. package/dist/interfaces/ChargeBarSprites.js +2 -0
  393. package/dist/interfaces/Corner.js +2 -0
  394. package/dist/interfaces/CustomStageTSConfig.js +2 -0
  395. package/dist/interfaces/GridEntityCustomData.js +2 -0
  396. package/dist/interfaces/JSONRoomsFile.js +2 -0
  397. package/dist/interfaces/PlayerHealth.js +2 -0
  398. package/dist/interfaces/PlayerStats.js +4 -0
  399. package/dist/interfaces/PocketItemDescription.js +2 -0
  400. package/dist/interfaces/RoomDescription.js +2 -0
  401. package/dist/interfaces/SaveData.js +98 -0
  402. package/dist/interfaces/StageHistoryEntry.js +2 -0
  403. package/dist/interfaces/TSTLClassMetatable.js +2 -0
  404. package/dist/interfaces/TrinketSituation.js +2 -0
  405. package/dist/interfaces/private/AddCallbackParametersCustom.js +4 -0
  406. package/dist/interfaces/private/CustomStage.js +2 -0
  407. package/dist/interfaces/private/CustomTrapdoorDescription.js +2 -0
  408. package/dist/interfaces/private/ModUpgradedInterface.js +2 -0
  409. package/dist/isaacscript-common.lua +5 -2
  410. package/dist/maps/PHDPillConversionsMap.js +23 -0
  411. package/dist/maps/cardNameToTypeMap.js +211 -0
  412. package/dist/maps/characterNameToTypeMap.js +91 -0
  413. package/dist/maps/collectibleNameToTypeMap.js +19 -0
  414. package/dist/maps/defaultPlayerStatMap.js +17 -0
  415. package/dist/maps/entityTypeVariantToBossIDMap.js +11 -0
  416. package/dist/maps/falsePHDPillConversionsMap.js +37 -0
  417. package/dist/maps/gridEntityTypeToBrokenStateMap.js +32 -0
  418. package/dist/maps/gridEntityXMLMap.js +133 -0
  419. package/dist/maps/itemPoolTypeToItemPoolName.js +38 -0
  420. package/dist/maps/keyboardToStringMap.js +71 -0
  421. package/dist/maps/pillNameToEffectMap.js +91 -0
  422. package/dist/maps/roomNameToTypeMap.js +43 -0
  423. package/dist/maps/roomShapeToTopLeftWallGridIndexMap.js +17 -0
  424. package/dist/maps/transformationNameToPlayerFormMap.js +35 -0
  425. package/dist/maps/trinketNameToTypeMap.js +19 -0
  426. package/dist/objects/LRoomShapeToRectangles.js +43 -0
  427. package/dist/objects/backdropTypeToRockAltType.js +68 -0
  428. package/dist/objects/batteryNames.js +13 -0
  429. package/dist/objects/bombNames.js +17 -0
  430. package/dist/objects/bossIDToEntityTypeVariant.js +228 -0
  431. package/dist/objects/bossNamePNGFileNames.js +120 -0
  432. package/dist/objects/bossNames.js +119 -0
  433. package/dist/objects/bossPortraitPNGFileNames.js +123 -0
  434. package/dist/objects/cardDescriptions.js +106 -0
  435. package/dist/objects/cardNames.js +106 -0
  436. package/dist/objects/challengeBosses.js +60 -0
  437. package/dist/objects/challengeCharacters.js +58 -0
  438. package/dist/objects/challengeCollectibleTypes.js +255 -0
  439. package/dist/objects/challengeNames.js +54 -0
  440. package/dist/objects/challengeTrinketType.js +58 -0
  441. package/dist/objects/characterDamageMultipliers.js +49 -0
  442. package/dist/objects/characterNames.js +48 -0
  443. package/dist/objects/characterSpritePNGFileNames.js +50 -0
  444. package/dist/objects/characterStartingCollectibleTypes.js +105 -0
  445. package/dist/objects/characterStartingTrinketTypes.js +90 -0
  446. package/dist/objects/chestNames.js +20 -0
  447. package/dist/objects/coinNames.js +16 -0
  448. package/dist/objects/coinSubTypeToValue.js +15 -0
  449. package/dist/objects/collectibleDescriptions.js +742 -0
  450. package/dist/objects/collectibleNames.js +745 -0
  451. package/dist/objects/colors.js +26 -0
  452. package/dist/objects/directionNames.js +11 -0
  453. package/dist/objects/directionToDegrees.js +11 -0
  454. package/dist/objects/directionToMoveAction.js +11 -0
  455. package/dist/objects/directionToShootAction.js +11 -0
  456. package/dist/objects/directionToVector.js +13 -0
  457. package/dist/objects/doorSlotFlagToDoorSlot.js +15 -0
  458. package/dist/objects/doorSlotToDirection.js +15 -0
  459. package/dist/objects/doorSlotToDoorSlotFlag.js +15 -0
  460. package/dist/objects/gridEntityTypeToANM2Name.js +37 -0
  461. package/dist/objects/heartNames.js +21 -0
  462. package/dist/objects/isaacAPIClassTypeToBrand.js +12 -0
  463. package/dist/objects/isaacAPIClassTypeToFunctions.js +46 -0
  464. package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +57 -0
  465. package/dist/objects/kColors.js +27 -0
  466. package/dist/objects/keyNames.js +13 -0
  467. package/dist/objects/languageNames.js +13 -0
  468. package/dist/objects/oppositeDoorSlots.js +15 -0
  469. package/dist/objects/pillEffectClasses.js +57 -0
  470. package/dist/objects/pillEffectNames.js +57 -0
  471. package/dist/objects/pillEffectTypeToPillEffects.js +23 -0
  472. package/dist/objects/pillEffectTypes.js +57 -0
  473. package/dist/objects/playerNamePNGFileNames.js +57 -0
  474. package/dist/objects/playerPortraitPNGFileNames.js +54 -0
  475. package/dist/objects/roomShapeBounds.js +48 -0
  476. package/dist/objects/roomShapeCorners.js +330 -0
  477. package/dist/objects/roomShapeLayoutSizes.js +41 -0
  478. package/dist/objects/roomShapeToBottomRightPosition.js +25 -0
  479. package/dist/objects/roomShapeToDoorSlotCoordinates.js +111 -0
  480. package/dist/objects/roomShapeToDoorSlots.js +72 -0
  481. package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +118 -0
  482. package/dist/objects/roomShapeToGridWidth.js +20 -0
  483. package/dist/objects/roomShapeToTopLeftPosition.js +26 -0
  484. package/dist/objects/roomShapeVolumes.js +32 -0
  485. package/dist/objects/roomTypeNames.js +35 -0
  486. package/dist/objects/roomTypeSpecialGotoPrefixes.js +35 -0
  487. package/dist/objects/sackNames.js +11 -0
  488. package/dist/objects/slotNames.js +26 -0
  489. package/dist/objects/stageIDNames.js +43 -0
  490. package/dist/objects/stageToMusic.js +91 -0
  491. package/dist/objects/stageToStageID.js +117 -0
  492. package/dist/objects/stageTypeSuffixes.js +14 -0
  493. package/dist/objects/transformationNames.js +20 -0
  494. package/dist/objects/trinketDescriptions.js +199 -0
  495. package/dist/objects/trinketNames.js +202 -0
  496. package/dist/objects/versusScreenBackgroundColors.js +46 -0
  497. package/dist/objects/versusScreenDirtSpotColors.js +46 -0
  498. package/dist/patchErrorFunctions.js +65 -0
  499. package/dist/serialization.js +21 -0
  500. package/dist/sets/LRoomShapesSet.js +11 -0
  501. package/dist/sets/bigRoomShapesSet.js +14 -0
  502. package/dist/sets/bossSets.js +465 -0
  503. package/dist/sets/charactersThatStartWithAnActiveItemSet.js +18 -0
  504. package/dist/sets/charactersWithBlackHeartFromEternalHeartSet.js +9 -0
  505. package/dist/sets/charactersWithFreeDevilDealsSet.js +6 -0
  506. package/dist/sets/charactersWithNoRedHeartsSet.js +19 -0
  507. package/dist/sets/charactersWithNoSoulHeartsSet.js +16 -0
  508. package/dist/sets/consoleCommandsSet.js +64 -0
  509. package/dist/sets/entitiesWithArmorSet.js +59 -0
  510. package/dist/sets/familiarsThatShootPlayerTearsSet.js +15 -0
  511. package/dist/sets/itemConfigCardTypesForCards.js +14 -0
  512. package/dist/sets/lostStyleCharactersSet.js +16 -0
  513. package/dist/sets/mineShaftRoomSubTypesSet.js +12 -0
  514. package/dist/sets/narrowRoomShapesSet.js +11 -0
  515. package/dist/sets/poopGridEntityXMLTypesSet.js +16 -0
  516. package/dist/sets/redHeartSubTypesSet.js +10 -0
  517. package/dist/sets/repentanceBossIDsSet.js +30 -0
  518. package/dist/sets/sinEntityTypesSet.js +14 -0
  519. package/dist/sets/singleUseActiveCollectibleTypesSet.js +15 -0
  520. package/dist/shaderCrashFix.js +24 -0
  521. package/dist/shouldFire.js +226 -0
  522. package/dist/types/AddSubtract.js +2 -0
  523. package/dist/types/AllButFirst.js +2 -0
  524. package/dist/types/AllButLast.js +2 -0
  525. package/dist/types/AnyClass.js +2 -0
  526. package/dist/types/AnyEntity.js +2 -0
  527. package/dist/types/AnyFunction.js +2 -0
  528. package/dist/types/AnyGridEntity.js +2 -0
  529. package/dist/types/CompositionTypeSatisfiesEnum.js +11 -0
  530. package/dist/types/ConversionHeartSubType.js +2 -0
  531. package/dist/types/Decrement.js +2 -0
  532. package/dist/types/ERange.js +2 -0
  533. package/dist/types/EntityID.js +2 -0
  534. package/dist/types/FunctionTuple.js +2 -0
  535. package/dist/types/GridEntityID.js +2 -0
  536. package/dist/types/HasFunction.js +2 -0
  537. package/dist/types/IRange.js +2 -0
  538. package/dist/types/Immutable.js +2 -0
  539. package/dist/types/Increment.js +2 -0
  540. package/dist/types/LowercaseKeys.js +2 -0
  541. package/dist/types/NaturalNumbersLessThan.js +2 -0
  542. package/dist/types/NaturalNumbersLessThanOrEqualTo.js +2 -0
  543. package/dist/types/PickingUpItem.js +44 -0
  544. package/dist/types/PickupIndex.js +2 -0
  545. package/dist/types/PlayerIndex.js +2 -0
  546. package/dist/types/PossibleStatType.js +2 -0
  547. package/dist/types/PublicInterface.js +2 -0
  548. package/dist/types/ReadonlyMap.js +6 -0
  549. package/dist/types/ReadonlyRecord.js +2 -0
  550. package/dist/types/ReadonlySet.js +6 -0
  551. package/dist/types/StartsWithLowercase.js +2 -0
  552. package/dist/types/StartsWithUppercase.js +2 -0
  553. package/dist/types/TSTLClass.js +2 -0
  554. package/dist/types/Tuple.js +2 -0
  555. package/dist/types/TupleKeys.js +2 -0
  556. package/dist/types/TupleToIntersection.js +2 -0
  557. package/dist/types/TupleToUnion.js +2 -0
  558. package/dist/types/TupleWithLengthBetween.js +22 -0
  559. package/dist/types/TupleWithMaxLength.js +27 -0
  560. package/dist/types/UnionToIntersection.js +2 -0
  561. package/dist/types/UppercaseKeys.js +2 -0
  562. package/dist/types/WeightedArray.js +2 -0
  563. package/dist/types/WidenLiteral.js +2 -0
  564. package/dist/types/Writable.js +2 -0
  565. package/dist/types/private/CallbackTuple.js +2 -0
  566. package/dist/types/private/ModUpgradedWithFeatures.js +2 -0
  567. package/package.json +1 -1
  568. package/src/functions/utils.ts +4 -1
  569. package/src/lib/jsonLua.js +701 -0
@@ -0,0 +1,701 @@
1
+ // Created by lua.js:
2
+ // https://github.com/mherkender/lua.js?tab=readme-ov-file
3
+
4
+ // cspell: disable
5
+
6
+ var lua_script = (function () {
7
+ var tmp;
8
+ var G = lua_newtable2(lua_core);
9
+ for (var i in lua_libs) {
10
+ G.str[i] = lua_newtable2(lua_libs[i]);
11
+ }
12
+ G.str["arg"] = lua_newtable();
13
+ G.str["_G"] = G;
14
+ G.str["module"] = function (name) {
15
+ lua_createmodule(G, name, slice(arguments, 1));
16
+ };
17
+ G.str["require"] = function (name) {
18
+ lua_require(G, name);
19
+ };
20
+ G.str["package"].str["seeall"] = function (module) {
21
+ if (!module.metatable) {
22
+ module.metatable = lua_newtable();
23
+ }
24
+ module.metatable.str["__index"] = G;
25
+ };
26
+ {
27
+ var _json_1 = lua_newtable([], "_version", "0.1.2");
28
+ var _encode_1;
29
+ var _escape_char_map_1 = lua_newtable(
30
+ [],
31
+ "\\",
32
+ "\\",
33
+ '"',
34
+ '"',
35
+ "\b",
36
+ "b",
37
+ "\f",
38
+ "f",
39
+ "\n",
40
+ "n",
41
+ "\r",
42
+ "r",
43
+ "\t",
44
+ "t",
45
+ );
46
+ var _escape_char_map_inv_1 = lua_newtable([], "/", "/");
47
+ tmp = lua_call(G.str["pairs"], [_escape_char_map_1]);
48
+ var f_2 = tmp[0],
49
+ s_2 = tmp[1],
50
+ var_2 = tmp[2];
51
+ while ((tmp = lua_call(f_2, [s_2, var_2]))[0] != null) {
52
+ var_2 = tmp[0];
53
+ var _k_2 = var_2,
54
+ _v_2 = tmp[1];
55
+ tmp = null;
56
+ lua_tableset(_escape_char_map_inv_1, _v_2, _k_2);
57
+ }
58
+ tmp = null;
59
+ var _escape_char_1 = function (_c) {
60
+ var tmp;
61
+ return [
62
+ lua_concat(
63
+ "\\",
64
+ lua_or(lua_tableget(_escape_char_map_1, _c), function () {
65
+ return lua_tablegetcall(
66
+ G.str["string"],
67
+ "format",
68
+ ["u%04x"].concat(lua_mcall(_c, "byte", [])),
69
+ )[0];
70
+ }),
71
+ ),
72
+ ];
73
+ return [];
74
+ };
75
+ var _encode_nil_1 = function (_val) {
76
+ var tmp;
77
+ return ["null"];
78
+ return [];
79
+ };
80
+ var _encode_table_1 = function (_val, _stack, _traversalDescription) {
81
+ var tmp;
82
+ var _res_6 = lua_newtable();
83
+ _stack = lua_or(_stack, function () {
84
+ return lua_newtable();
85
+ });
86
+ _traversalDescription = lua_or(_traversalDescription, function () {
87
+ return "";
88
+ });
89
+ if (lua_true(lua_tableget(_stack, _val))) {
90
+ lua_call(G.str["error"], ["circular reference"]);
91
+ }
92
+ lua_tableset(_stack, _val, true);
93
+ if (
94
+ !lua_eq(lua_call(G.str["rawget"], [_val, 1])[0], null) ||
95
+ lua_eq(lua_call(G.str["next"], [_val])[0], null)
96
+ ) {
97
+ var _n_8 = 0;
98
+ tmp = lua_call(G.str["pairs"], [_val]);
99
+ var f_9 = tmp[0],
100
+ s_9 = tmp[1],
101
+ var_9 = tmp[2];
102
+ tmp = null;
103
+ while ((var_9 = lua_call(f_9, [s_9, var_9])[0]) != null) {
104
+ var _k_9 = var_9;
105
+ if (!lua_eq(lua_call(G.str["type"], [_k_9])[0], "number")) {
106
+ lua_call(G.str["error"], [
107
+ lua_concat(
108
+ "invalid table: mixed or invalid key types for array, excepted number, got: ",
109
+ lua_call(G.str["tostring"], lua_call(G.str["type"], [_k_9]))[0],
110
+ ),
111
+ ]);
112
+ }
113
+ _n_8 = lua_add(_n_8, 1);
114
+ }
115
+ if (!lua_eq(_n_8, lua_len(_val))) {
116
+ lua_call(G.str["error"], ["invalid table: sparse array"]);
117
+ }
118
+ tmp = lua_call(G.str["ipairs"], [_val]);
119
+ var f_13 = tmp[0],
120
+ s_13 = tmp[1],
121
+ var_13 = tmp[2];
122
+ while ((tmp = lua_call(f_13, [s_13, var_13]))[0] != null) {
123
+ var_13 = tmp[0];
124
+ var _i_13 = var_13,
125
+ _v_13 = tmp[1];
126
+ tmp = null;
127
+ var _newTraversalDescription_14 = lua_concat(
128
+ _traversalDescription,
129
+ lua_concat(lua_call(G.str["tostring"], [_i_13])[0], " - "),
130
+ );
131
+ lua_tablegetcall(
132
+ G.str["table"],
133
+ "insert",
134
+ [_res_6].concat(
135
+ lua_call(_encode_1, [_v_13, _stack, _newTraversalDescription_14]),
136
+ ),
137
+ );
138
+ }
139
+ tmp = null;
140
+ lua_tableset(_stack, _val, null);
141
+ return [
142
+ lua_concat(
143
+ "[",
144
+ lua_concat(
145
+ lua_tablegetcall(G.str["table"], "concat", [_res_6, ","])[0],
146
+ "]",
147
+ ),
148
+ ),
149
+ ];
150
+ } else {
151
+ tmp = lua_call(G.str["pairs"], [_val]);
152
+ var f_16 = tmp[0],
153
+ s_16 = tmp[1],
154
+ var_16 = tmp[2];
155
+ while ((tmp = lua_call(f_16, [s_16, var_16]))[0] != null) {
156
+ var_16 = tmp[0];
157
+ var _k_16 = var_16,
158
+ _v_16 = tmp[1];
159
+ tmp = null;
160
+ var _newTraversalDescription_17 = lua_concat(
161
+ _traversalDescription,
162
+ lua_concat(lua_call(G.str["tostring"], [_k_16])[0], " - "),
163
+ );
164
+ if (!lua_eq(lua_call(G.str["type"], [_k_16])[0], "string")) {
165
+ lua_call(G.str["error"], [
166
+ lua_concat(
167
+ 'invalid table: mixed or invalid key types for object "',
168
+ lua_concat(
169
+ _newTraversalDescription_17,
170
+ lua_concat(
171
+ '", ',
172
+ lua_concat(
173
+ "excepted string, got: ",
174
+ lua_call(
175
+ G.str["tostring"],
176
+ lua_call(G.str["type"], [_k_16]),
177
+ )[0],
178
+ ),
179
+ ),
180
+ ),
181
+ ),
182
+ ]);
183
+ }
184
+ lua_tablegetcall(G.str["table"], "insert", [
185
+ _res_6,
186
+ lua_concat(
187
+ lua_call(_encode_1, [
188
+ _k_16,
189
+ _stack,
190
+ _newTraversalDescription_17,
191
+ ])[0],
192
+ lua_concat(
193
+ ":",
194
+ lua_call(_encode_1, [
195
+ _v_16,
196
+ _stack,
197
+ _newTraversalDescription_17,
198
+ ])[0],
199
+ ),
200
+ ),
201
+ ]);
202
+ }
203
+ tmp = null;
204
+ lua_tableset(_stack, _val, null);
205
+ return [
206
+ lua_concat(
207
+ "{",
208
+ lua_concat(
209
+ lua_tablegetcall(G.str["table"], "concat", [_res_6, ","])[0],
210
+ "}",
211
+ ),
212
+ ),
213
+ ];
214
+ }
215
+ return [];
216
+ };
217
+ var _encode_string_1 = function (_val) {
218
+ var tmp;
219
+ return [
220
+ lua_concat(
221
+ '"',
222
+ lua_concat(
223
+ lua_mcall(_val, "gsub", ['[%z\x01-\x19\\"]', _escape_char_1])[0],
224
+ '"',
225
+ ),
226
+ ),
227
+ ];
228
+ return [];
229
+ };
230
+ var _encode_number_1 = function (_val) {
231
+ var tmp;
232
+ if (
233
+ !lua_eq(_val, _val) ||
234
+ lua_lte(_val, lua_unm(lua_tableget(G.str["math"], "huge"))) ||
235
+ lua_lte(lua_tableget(G.str["math"], "huge"), _val)
236
+ ) {
237
+ lua_call(G.str["error"], [
238
+ lua_concat(
239
+ "unexpected number value '",
240
+ lua_concat(lua_call(G.str["tostring"], [_val])[0], "'"),
241
+ ),
242
+ ]);
243
+ }
244
+ return lua_tablegetcall(G.str["string"], "format", ["%.14g", _val]);
245
+ return [];
246
+ };
247
+ var _type_func_map_1 = lua_newtable(
248
+ [],
249
+ "nil",
250
+ _encode_nil_1,
251
+ "table",
252
+ _encode_table_1,
253
+ "string",
254
+ _encode_string_1,
255
+ "number",
256
+ _encode_number_1,
257
+ "boolean",
258
+ G.str["tostring"],
259
+ );
260
+ _encode_1 = function (_val, _stack, _traversalDescription) {
261
+ var tmp;
262
+ var _t_22 = lua_call(G.str["type"], [_val])[0];
263
+ var _f_22 = lua_tableget(_type_func_map_1, _t_22);
264
+ if (lua_true(_f_22)) {
265
+ return lua_call(_f_22, [_val, _stack, _traversalDescription]);
266
+ }
267
+ lua_call(G.str["error"], [
268
+ lua_concat("unexpected type '", lua_concat(_t_22, "'")),
269
+ ]);
270
+ return [];
271
+ };
272
+ lua_tableset(_json_1, "encode", function (_val) {
273
+ var tmp;
274
+ return [lua_call(_encode_1, [_val])[0]];
275
+ return [];
276
+ });
277
+ var _parse_1;
278
+ var _create_set_1 = function () {
279
+ var tmp;
280
+ var varargs = slice(arguments, 0);
281
+ var _res_25 = lua_newtable();
282
+ var var_26 = 1,
283
+ stop_26 = lua_assertfloat(
284
+ lua_call(G.str["select"], ["#"].concat(varargs))[0],
285
+ );
286
+ for (; var_26 <= stop_26; var_26++) {
287
+ var _i_26 = var_26;
288
+ lua_tableset(
289
+ _res_25,
290
+ lua_call(G.str["select"], [_i_26].concat(varargs))[0],
291
+ true,
292
+ );
293
+ }
294
+ return [_res_25];
295
+ return [];
296
+ };
297
+ var _space_chars_1 = lua_call(_create_set_1, [" ", "\t", "\r", "\n"])[0];
298
+ var _delim_chars_1 = lua_call(_create_set_1, [
299
+ " ",
300
+ "\t",
301
+ "\r",
302
+ "\n",
303
+ "]",
304
+ "}",
305
+ ",",
306
+ ])[0];
307
+ var _escape_chars_1 = lua_call(_create_set_1, [
308
+ "\\",
309
+ "/",
310
+ '"',
311
+ "b",
312
+ "f",
313
+ "n",
314
+ "r",
315
+ "t",
316
+ "u",
317
+ ])[0];
318
+ var _literals_1 = lua_call(_create_set_1, ["true", "false", "null"])[0];
319
+ var _literal_map_1 = lua_newtable(
320
+ [],
321
+ "true",
322
+ true,
323
+ "false",
324
+ false,
325
+ "null",
326
+ null,
327
+ );
328
+ var _next_char_1 = function (_str, _idx, _set, _negate) {
329
+ var tmp;
330
+ var var_29 = lua_assertfloat(_idx),
331
+ stop_29 = lua_assertfloat(lua_len(_str));
332
+ for (; var_29 <= stop_29; var_29++) {
333
+ var _i_29 = var_29;
334
+ if (
335
+ !lua_eq(
336
+ lua_tableget(_set, lua_mcall(_str, "sub", [_i_29, _i_29])[0]),
337
+ _negate,
338
+ )
339
+ ) {
340
+ return [_i_29];
341
+ }
342
+ }
343
+ return [lua_add(lua_len(_str), 1)];
344
+ return [];
345
+ };
346
+ var _decode_error_1 = function (_str, _idx, _msg) {
347
+ var tmp;
348
+ var _line_count_32 = 1;
349
+ var _col_count_32 = 1;
350
+ var var_33 = 1,
351
+ stop_33 = lua_assertfloat(lua_subtract(_idx, 1));
352
+ for (; var_33 <= stop_33; var_33++) {
353
+ var _i_33 = var_33;
354
+ _col_count_32 = lua_add(_col_count_32, 1);
355
+ if (lua_eq(lua_mcall(_str, "sub", [_i_33, _i_33])[0], "\n")) {
356
+ _line_count_32 = lua_add(_line_count_32, 1);
357
+ _col_count_32 = 1;
358
+ }
359
+ }
360
+ lua_call(
361
+ G.str["error"],
362
+ lua_tablegetcall(G.str["string"], "format", [
363
+ "%s at line %d col %d",
364
+ _msg,
365
+ _line_count_32,
366
+ _col_count_32,
367
+ ]),
368
+ );
369
+ return [];
370
+ };
371
+ var _codepoint_to_utf8_1 = function (_n) {
372
+ var tmp;
373
+ var _f_36 = lua_tableget(G.str["math"], "floor");
374
+ if (lua_lte(_n, 0x7f)) {
375
+ return lua_tablegetcall(G.str["string"], "char", [_n]);
376
+ } else if (lua_lte(_n, 0x7ff)) {
377
+ return lua_tablegetcall(G.str["string"], "char", [
378
+ lua_add(lua_call(_f_36, [lua_divide(_n, 64)])[0], 192),
379
+ lua_add(lua_mod(_n, 64), 128),
380
+ ]);
381
+ } else if (lua_lte(_n, 0xffff)) {
382
+ return lua_tablegetcall(G.str["string"], "char", [
383
+ lua_add(lua_call(_f_36, [lua_divide(_n, 4096)])[0], 224),
384
+ lua_add(lua_call(_f_36, [lua_divide(lua_mod(_n, 4096), 64)])[0], 128),
385
+ lua_add(lua_mod(_n, 64), 128),
386
+ ]);
387
+ } else if (lua_lte(_n, 0x10ffff)) {
388
+ return lua_tablegetcall(G.str["string"], "char", [
389
+ lua_add(lua_call(_f_36, [lua_divide(_n, 262144)])[0], 240),
390
+ lua_add(
391
+ lua_call(_f_36, [lua_divide(lua_mod(_n, 262144), 4096)])[0],
392
+ 128,
393
+ ),
394
+ lua_add(lua_call(_f_36, [lua_divide(lua_mod(_n, 4096), 64)])[0], 128),
395
+ lua_add(lua_mod(_n, 64), 128),
396
+ ]);
397
+ }
398
+ lua_call(
399
+ G.str["error"],
400
+ lua_tablegetcall(G.str["string"], "format", [
401
+ "invalid unicode codepoint '%x'",
402
+ _n,
403
+ ]),
404
+ );
405
+ return [];
406
+ };
407
+ var _parse_unicode_escape_1 = function (_s) {
408
+ var tmp;
409
+ var _n1_41 = lua_call(G.str["tonumber"], [
410
+ lua_mcall(_s, "sub", [1, 4])[0],
411
+ 16,
412
+ ])[0];
413
+ var _n2_41 = lua_call(G.str["tonumber"], [
414
+ lua_mcall(_s, "sub", [7, 10])[0],
415
+ 16,
416
+ ])[0];
417
+ if (lua_true(_n2_41)) {
418
+ return lua_call(_codepoint_to_utf8_1, [
419
+ lua_add(
420
+ lua_add(
421
+ lua_multiply(lua_subtract(_n1_41, 0xd800), 0x400),
422
+ lua_subtract(_n2_41, 0xdc00),
423
+ ),
424
+ 0x10000,
425
+ ),
426
+ ]);
427
+ } else {
428
+ return lua_call(_codepoint_to_utf8_1, [_n1_41]);
429
+ }
430
+ return [];
431
+ };
432
+ var _parse_string_1 = function (_str, _i) {
433
+ var tmp;
434
+ var _res_44 = "";
435
+ var _j_44 = lua_add(_i, 1);
436
+ var _k_44 = _j_44;
437
+ while (lua_lte(_j_44, lua_len(_str))) {
438
+ var _x_45 = lua_mcall(_str, "byte", [_j_44])[0];
439
+ if (lua_lt(_x_45, 32)) {
440
+ lua_call(_decode_error_1, [
441
+ _str,
442
+ _j_44,
443
+ "control character in string",
444
+ ]);
445
+ } else if (lua_eq(_x_45, 92)) {
446
+ _res_44 = lua_concat(
447
+ _res_44,
448
+ lua_mcall(_str, "sub", [_k_44, lua_subtract(_j_44, 1)])[0],
449
+ );
450
+ _j_44 = lua_add(_j_44, 1);
451
+ var _c_47 = lua_mcall(_str, "sub", [_j_44, _j_44])[0];
452
+ if (lua_eq(_c_47, "u")) {
453
+ var _hex_48 = lua_or(
454
+ lua_or(
455
+ lua_mcall(_str, "match", [
456
+ "^[dD][89aAbB]%x%x\\u%x%x%x%x",
457
+ lua_add(_j_44, 1),
458
+ ])[0],
459
+ function () {
460
+ return lua_mcall(_str, "match", [
461
+ "^%x%x%x%x",
462
+ lua_add(_j_44, 1),
463
+ ])[0];
464
+ },
465
+ ),
466
+ function () {
467
+ return lua_call(_decode_error_1, [
468
+ _str,
469
+ lua_subtract(_j_44, 1),
470
+ "invalid unicode escape in string",
471
+ ])[0];
472
+ },
473
+ );
474
+ _res_44 = lua_concat(
475
+ _res_44,
476
+ lua_call(_parse_unicode_escape_1, [_hex_48])[0],
477
+ );
478
+ _j_44 = lua_add(_j_44, lua_len(_hex_48));
479
+ } else {
480
+ if (lua_not(lua_tableget(_escape_chars_1, _c_47))) {
481
+ lua_call(_decode_error_1, [
482
+ _str,
483
+ lua_subtract(_j_44, 1),
484
+ lua_concat(
485
+ "invalid escape char '",
486
+ lua_concat(_c_47, "' in string"),
487
+ ),
488
+ ]);
489
+ }
490
+ _res_44 = lua_concat(
491
+ _res_44,
492
+ lua_tableget(_escape_char_map_inv_1, _c_47),
493
+ );
494
+ }
495
+ _k_44 = lua_add(_j_44, 1);
496
+ } else if (lua_eq(_x_45, 34)) {
497
+ _res_44 = lua_concat(
498
+ _res_44,
499
+ lua_mcall(_str, "sub", [_k_44, lua_subtract(_j_44, 1)])[0],
500
+ );
501
+ return [_res_44, lua_add(_j_44, 1)];
502
+ }
503
+ _j_44 = lua_add(_j_44, 1);
504
+ }
505
+ lua_call(_decode_error_1, [
506
+ _str,
507
+ _i,
508
+ "expected closing quote for string",
509
+ ]);
510
+ return [];
511
+ };
512
+ var _parse_number_1 = function (_str, _i) {
513
+ var tmp;
514
+ var _x_52 = lua_call(_next_char_1, [_str, _i, _delim_chars_1])[0];
515
+ var _s_52 = lua_mcall(_str, "sub", [_i, lua_subtract(_x_52, 1)])[0];
516
+ var _n_52 = lua_call(G.str["tonumber"], [_s_52])[0];
517
+ if (lua_not(_n_52)) {
518
+ lua_call(_decode_error_1, [
519
+ _str,
520
+ _i,
521
+ lua_concat("invalid number '", lua_concat(_s_52, "'")),
522
+ ]);
523
+ }
524
+ return [_n_52, _x_52];
525
+ return [];
526
+ };
527
+ var _parse_literal_1 = function (_str, _i) {
528
+ var tmp;
529
+ var _x_54 = lua_call(_next_char_1, [_str, _i, _delim_chars_1])[0];
530
+ var _word_54 = lua_mcall(_str, "sub", [_i, lua_subtract(_x_54, 1)])[0];
531
+ if (lua_not(lua_tableget(_literals_1, _word_54))) {
532
+ lua_call(_decode_error_1, [
533
+ _str,
534
+ _i,
535
+ lua_concat("invalid literal '", lua_concat(_word_54, "'")),
536
+ ]);
537
+ }
538
+ return [lua_tableget(_literal_map_1, _word_54), _x_54];
539
+ return [];
540
+ };
541
+ var _parse_array_1 = function (_str, _i) {
542
+ var tmp;
543
+ var _res_56 = lua_newtable();
544
+ var _n_56 = 1;
545
+ _i = lua_add(_i, 1);
546
+ while (lua_true(1)) {
547
+ var _x_57;
548
+ _i = lua_call(_next_char_1, [_str, _i, _space_chars_1, true])[0];
549
+ if (lua_eq(lua_mcall(_str, "sub", [_i, _i])[0], "]")) {
550
+ _i = lua_add(_i, 1);
551
+ break;
552
+ }
553
+ tmp = lua_call(_parse_1, [_str, _i]);
554
+ _x_57 = tmp[0];
555
+ _i = tmp[1];
556
+ tmp = null;
557
+ lua_tableset(_res_56, _n_56, _x_57);
558
+ _n_56 = lua_add(_n_56, 1);
559
+ _i = lua_call(_next_char_1, [_str, _i, _space_chars_1, true])[0];
560
+ var _chr_57 = lua_mcall(_str, "sub", [_i, _i])[0];
561
+ _i = lua_add(_i, 1);
562
+ if (lua_eq(_chr_57, "]")) {
563
+ break;
564
+ }
565
+ if (!lua_eq(_chr_57, ",")) {
566
+ lua_call(_decode_error_1, [_str, _i, "expected ']' or ','"]);
567
+ }
568
+ }
569
+ return [_res_56, _i];
570
+ return [];
571
+ };
572
+ var _parse_object_1 = function (_str, _i) {
573
+ var tmp;
574
+ var _res_61 = lua_newtable();
575
+ _i = lua_add(_i, 1);
576
+ while (lua_true(1)) {
577
+ var _key_62, _val_62;
578
+ _i = lua_call(_next_char_1, [_str, _i, _space_chars_1, true])[0];
579
+ if (lua_eq(lua_mcall(_str, "sub", [_i, _i])[0], "}")) {
580
+ _i = lua_add(_i, 1);
581
+ break;
582
+ }
583
+ if (!lua_eq(lua_mcall(_str, "sub", [_i, _i])[0], '"')) {
584
+ lua_call(_decode_error_1, [_str, _i, "expected string for key"]);
585
+ }
586
+ tmp = lua_call(_parse_1, [_str, _i]);
587
+ _key_62 = tmp[0];
588
+ _i = tmp[1];
589
+ tmp = null;
590
+ _i = lua_call(_next_char_1, [_str, _i, _space_chars_1, true])[0];
591
+ if (!lua_eq(lua_mcall(_str, "sub", [_i, _i])[0], ":")) {
592
+ lua_call(_decode_error_1, [_str, _i, "expected ':' after key"]);
593
+ }
594
+ _i = lua_call(_next_char_1, [
595
+ _str,
596
+ lua_add(_i, 1),
597
+ _space_chars_1,
598
+ true,
599
+ ])[0];
600
+ tmp = lua_call(_parse_1, [_str, _i]);
601
+ _val_62 = tmp[0];
602
+ _i = tmp[1];
603
+ tmp = null;
604
+ lua_tableset(_res_61, _key_62, _val_62);
605
+ _i = lua_call(_next_char_1, [_str, _i, _space_chars_1, true])[0];
606
+ var _chr_62 = lua_mcall(_str, "sub", [_i, _i])[0];
607
+ _i = lua_add(_i, 1);
608
+ if (lua_eq(_chr_62, "}")) {
609
+ break;
610
+ }
611
+ if (!lua_eq(_chr_62, ",")) {
612
+ lua_call(_decode_error_1, [_str, _i, "expected '}' or ','"]);
613
+ }
614
+ }
615
+ return [_res_61, _i];
616
+ return [];
617
+ };
618
+ var _char_func_map_1 = lua_newtable(
619
+ [],
620
+ '"',
621
+ _parse_string_1,
622
+ "0",
623
+ _parse_number_1,
624
+ "1",
625
+ _parse_number_1,
626
+ "2",
627
+ _parse_number_1,
628
+ "3",
629
+ _parse_number_1,
630
+ "4",
631
+ _parse_number_1,
632
+ "5",
633
+ _parse_number_1,
634
+ "6",
635
+ _parse_number_1,
636
+ "7",
637
+ _parse_number_1,
638
+ "8",
639
+ _parse_number_1,
640
+ "9",
641
+ _parse_number_1,
642
+ "-",
643
+ _parse_number_1,
644
+ "t",
645
+ _parse_literal_1,
646
+ "f",
647
+ _parse_literal_1,
648
+ "n",
649
+ _parse_literal_1,
650
+ "[",
651
+ _parse_array_1,
652
+ "{",
653
+ _parse_object_1,
654
+ );
655
+ _parse_1 = function (_str, _idx) {
656
+ var tmp;
657
+ var _chr_68 = lua_mcall(_str, "sub", [_idx, _idx])[0];
658
+ var _f_68 = lua_tableget(_char_func_map_1, _chr_68);
659
+ if (lua_true(_f_68)) {
660
+ return lua_call(_f_68, [_str, _idx]);
661
+ }
662
+ lua_call(_decode_error_1, [
663
+ _str,
664
+ _idx,
665
+ lua_concat("unexpected character '", lua_concat(_chr_68, "'")),
666
+ ]);
667
+ return [];
668
+ };
669
+ lua_tableset(_json_1, "decode", function (_str) {
670
+ var tmp;
671
+ if (!lua_eq(lua_call(G.str["type"], [_str])[0], "string")) {
672
+ lua_call(G.str["error"], [
673
+ lua_concat(
674
+ "expected argument of type string, got ",
675
+ lua_call(G.str["type"], [_str])[0],
676
+ ),
677
+ ]);
678
+ }
679
+ tmp = lua_call(
680
+ _parse_1,
681
+ [_str].concat(lua_call(_next_char_1, [_str, 1, _space_chars_1, true])),
682
+ );
683
+ var _res_70 = tmp[0];
684
+ var _idx_70 = tmp[1];
685
+ tmp = null;
686
+ _idx_70 = lua_call(_next_char_1, [
687
+ _str,
688
+ _idx_70,
689
+ _space_chars_1,
690
+ true,
691
+ ])[0];
692
+ if (lua_lte(_idx_70, lua_len(_str))) {
693
+ lua_call(_decode_error_1, [_str, _idx_70, "trailing garbage"]);
694
+ }
695
+ return [_res_70];
696
+ return [];
697
+ });
698
+ return [_json_1];
699
+ }
700
+ return [G];
701
+ })()[0];