@lewismoten/gamemaker-sandbox-tools 3.1.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/NOTICE.md +105 -3
  3. package/README.md +301 -15
  4. package/dist/audio-files.js +82 -0
  5. package/dist/audio.js +23 -138
  6. package/dist/block-merge.js +43 -0
  7. package/dist/color-reduce.js +44 -0
  8. package/dist/colors.js +87 -0
  9. package/dist/delta.js +75 -0
  10. package/dist/disk-diff.js +220 -0
  11. package/dist/drawing.js +83 -869
  12. package/dist/embroidery/compile.js +85 -0
  13. package/dist/embroidery/dst.js +79 -0
  14. package/dist/embroidery/exp.js +26 -0
  15. package/dist/embroidery/fill.js +49 -0
  16. package/dist/embroidery/geom.js +82 -0
  17. package/dist/embroidery/pes.js +79 -0
  18. package/dist/embroidery/satin.js +29 -0
  19. package/dist/embroidery/simulate.js +30 -0
  20. package/dist/embroidery/strokeFont.js +253 -0
  21. package/dist/embroidery/svg.js +24 -0
  22. package/dist/embroidery/types.js +13 -0
  23. package/dist/embroidery/units.js +26 -0
  24. package/dist/embroidery/validate.js +15 -0
  25. package/dist/formats/blocks.js +1 -103
  26. package/dist/formats/character.js +1 -83
  27. package/dist/formats/cmf.js +1 -37
  28. package/dist/formats/fli.js +1 -296
  29. package/dist/formats/fliLimits.js +1 -54
  30. package/dist/formats/game.js +1 -193
  31. package/dist/formats/gif.js +1 -125
  32. package/dist/formats/graphicScripts.js +1 -44
  33. package/dist/formats/map.js +1 -38
  34. package/dist/formats/monster.js +1 -69
  35. package/dist/formats/palette.js +1 -58
  36. package/dist/formats/recording.js +1 -17
  37. package/dist/formats/sound.js +1 -44
  38. package/dist/formats/voc.js +1 -303
  39. package/dist/gif-shrink.js +56 -0
  40. package/dist/image/png.js +42 -0
  41. package/dist/images.js +81 -43
  42. package/dist/kit/actors.js +19 -0
  43. package/dist/kit/align.js +204 -0
  44. package/dist/kit/blit.js +45 -0
  45. package/dist/kit/blockRoles.js +97 -0
  46. package/dist/kit/clips.js +40 -0
  47. package/dist/kit/coverPaint.js +18 -0
  48. package/dist/kit/disk.js +76 -0
  49. package/dist/kit/fadeOut.js +13 -0
  50. package/dist/kit/fliClips.js +133 -0
  51. package/dist/kit/fliShrink.js +277 -0
  52. package/dist/kit/gameSim.js +235 -0
  53. package/dist/kit/hopBot.js +142 -0
  54. package/dist/kit/levelGen.js +1423 -0
  55. package/dist/kit/levelGrid.js +33 -0
  56. package/dist/kit/levelPicture.js +27 -0
  57. package/dist/kit/menuVersion.js +19 -0
  58. package/dist/kit/microText.js +35 -0
  59. package/dist/kit/mumble.js +74 -0
  60. package/dist/kit/music.js +8 -0
  61. package/dist/kit/palRamps.js +32 -0
  62. package/dist/kit/palette.js +49 -0
  63. package/dist/kit/pcText.js +72 -0
  64. package/dist/kit/photo.js +150 -0
  65. package/dist/kit/pixels.js +79 -0
  66. package/dist/kit/png.js +40 -0
  67. package/dist/kit/quantize.js +72 -0
  68. package/dist/kit/raytrace.js +379 -0
  69. package/dist/kit/recordedDemo.js +10 -0
  70. package/dist/kit/reel.js +77 -0
  71. package/dist/kit/road3d.js +67 -0
  72. package/dist/kit/routeChecks.js +8 -0
  73. package/dist/kit/saveSlots.js +11 -0
  74. package/dist/kit/sceneInit.js +13 -0
  75. package/dist/kit/sceneSim.js +112 -0
  76. package/dist/kit/screenText.js +15 -0
  77. package/dist/kit/sdftext.js +237 -0
  78. package/dist/kit/shading.js +69 -0
  79. package/dist/kit/song.js +251 -0
  80. package/dist/kit/songFx.js +179 -0
  81. package/dist/kit/sound.js +52 -0
  82. package/dist/kit/synthParts.js +20 -0
  83. package/dist/kit/tar.js +53 -0
  84. package/dist/kit/textBounds.js +84 -0
  85. package/dist/kit/textfit.js +246 -0
  86. package/dist/kit/transforms.js +57 -0
  87. package/dist/kit/tune.js +21 -0
  88. package/dist/look-alike.js +50 -0
  89. package/dist/menu-version.js +4 -0
  90. package/dist/mesh/colorBodies.js +137 -0
  91. package/dist/mesh/decimate.js +207 -0
  92. package/dist/mesh/meshCheck.js +51 -0
  93. package/dist/mesh/overhang.js +41 -0
  94. package/dist/mesh/sampledField.js +12 -0
  95. package/dist/mesh/stl.js +36 -0
  96. package/dist/mesh/surfaceNets.js +79 -0
  97. package/dist/mesh/tetraMesh.js +62 -0
  98. package/dist/mesh/threeMf.js +58 -0
  99. package/dist/mesh/zipFile.js +52 -0
  100. package/dist/microFont.js +101 -0
  101. package/dist/music/compose.js +72 -0
  102. package/dist/pack/meshPack.js +198 -0
  103. package/dist/pack/threeMfPack.js +92 -0
  104. package/dist/palette-reserve.js +116 -0
  105. package/dist/palettes.js +138 -0
  106. package/dist/release-notes.js +40 -0
  107. package/dist/simulation.js +16 -2774
  108. package/dist/text.js +74 -0
  109. package/dist/types/audio.d.ts +4 -0
  110. package/dist/types/audioFiles.d.ts +22 -0
  111. package/dist/types/audioWav.d.ts +4 -0
  112. package/dist/types/blockMerge.d.ts +24 -0
  113. package/dist/types/colorReduce.d.ts +23 -0
  114. package/dist/types/{web/packages/tools/src/colors.d.ts → colors.d.ts} +6 -0
  115. package/dist/types/delta.d.ts +32 -0
  116. package/dist/types/diskDiff.d.ts +47 -0
  117. package/dist/types/drawing.d.ts +15 -0
  118. package/dist/types/embroidery/compile.d.ts +3 -0
  119. package/dist/types/embroidery/dst.d.ts +13 -0
  120. package/dist/types/embroidery/exp.d.ts +8 -0
  121. package/dist/types/embroidery/fill.d.ts +6 -0
  122. package/dist/types/embroidery/geom.d.ts +19 -0
  123. package/dist/types/embroidery/pes.d.ts +10 -0
  124. package/dist/types/embroidery/satin.d.ts +11 -0
  125. package/dist/types/embroidery/simulate.d.ts +19 -0
  126. package/dist/types/embroidery/strokeFont.d.ts +20 -0
  127. package/dist/types/embroidery/svg.d.ts +3 -0
  128. package/dist/types/embroidery/types.d.ts +70 -0
  129. package/dist/types/embroidery/units.d.ts +10 -0
  130. package/dist/types/embroidery/validate.d.ts +22 -0
  131. package/dist/types/formats/blocks.d.ts +1 -0
  132. package/dist/types/formats/character.d.ts +1 -0
  133. package/dist/types/formats/cmf.d.ts +1 -0
  134. package/dist/types/formats/fli.d.ts +1 -0
  135. package/dist/types/formats/fliLimits.d.ts +1 -0
  136. package/dist/types/formats/game.d.ts +1 -0
  137. package/dist/types/formats/gif.d.ts +1 -0
  138. package/dist/types/formats/graphicScripts.d.ts +1 -0
  139. package/dist/types/formats/map.d.ts +1 -0
  140. package/dist/types/formats/monster.d.ts +1 -0
  141. package/dist/types/formats/palette.d.ts +1 -0
  142. package/dist/types/formats/recording.d.ts +1 -0
  143. package/dist/types/formats/sound.d.ts +1 -0
  144. package/dist/types/formats/voc.d.ts +1 -0
  145. package/dist/types/gifShrink.d.ts +8 -0
  146. package/dist/types/image/animatedGif.d.ts +9 -0
  147. package/dist/types/image/surface.d.ts +26 -0
  148. package/dist/types/images.d.ts +13 -0
  149. package/dist/types/kit/actors.d.ts +7 -0
  150. package/dist/types/kit/align.d.ts +93 -0
  151. package/dist/types/kit/audioEvents.d.ts +26 -0
  152. package/dist/types/kit/blit.d.ts +20 -0
  153. package/dist/types/kit/blockRoles.d.ts +243 -0
  154. package/dist/types/{games/kit → kit}/clips.d.ts +1 -1
  155. package/dist/types/kit/coverPaint.d.ts +7 -0
  156. package/dist/types/kit/disk.d.ts +15 -0
  157. package/dist/types/kit/fadeOut.d.ts +12 -0
  158. package/dist/types/kit/fliClips.d.ts +32 -0
  159. package/dist/types/kit/fliShrink.d.ts +149 -0
  160. package/dist/types/{games/kit → kit}/gameSim.d.ts +9 -5
  161. package/dist/types/kit/hopBot.d.ts +72 -0
  162. package/dist/types/kit/laserClearance.d.ts +16 -0
  163. package/dist/types/kit/laserJoints.d.ts +39 -0
  164. package/dist/types/kit/laserLayout.d.ts +54 -0
  165. package/dist/types/kit/laserPixels.d.ts +52 -0
  166. package/dist/types/kit/laserPreview.d.ts +9 -0
  167. package/dist/types/kit/laserSvg.d.ts +35 -0
  168. package/dist/types/kit/levelGen/castle.d.ts +17 -0
  169. package/dist/types/kit/levelGen/dungeon.d.ts +11 -0
  170. package/dist/types/kit/levelGen/forest.d.ts +17 -0
  171. package/dist/types/kit/levelGen/furnish.d.ts +31 -0
  172. package/dist/types/kit/levelGen/grid.d.ts +46 -0
  173. package/dist/types/kit/levelGen/index.d.ts +138 -0
  174. package/dist/types/kit/levelGen/interior.d.ts +18 -0
  175. package/dist/types/kit/levelGen/jumpModel.d.ts +78 -0
  176. package/dist/types/kit/levelGen/needs.d.ts +44 -0
  177. package/dist/types/kit/levelGen/overworld.d.ts +21 -0
  178. package/dist/types/kit/levelGen/platform.d.ts +59 -0
  179. package/dist/types/kit/levelGen/platformCap.d.ts +13 -0
  180. package/dist/types/kit/levelGen/platformReach.d.ts +37 -0
  181. package/dist/types/kit/levelGen/props.d.ts +37 -0
  182. package/dist/types/kit/levelGen/town.d.ts +24 -0
  183. package/dist/types/kit/levelGrid.d.ts +16 -0
  184. package/dist/types/kit/levelPicture.d.ts +9 -0
  185. package/dist/types/kit/menuVersion.d.ts +7 -0
  186. package/dist/types/kit/microText.d.ts +18 -0
  187. package/dist/types/kit/mumble.d.ts +41 -0
  188. package/dist/types/kit/music.d.ts +1 -0
  189. package/dist/types/kit/palMerge.d.ts +10 -0
  190. package/dist/types/kit/palRamps.d.ts +28 -0
  191. package/dist/types/kit/pcText.d.ts +19 -0
  192. package/dist/types/kit/photo.d.ts +69 -0
  193. package/dist/types/kit/png.d.ts +7 -0
  194. package/dist/types/kit/quantize.d.ts +20 -0
  195. package/dist/types/kit/raytrace.d.ts +169 -0
  196. package/dist/types/kit/recordedDemo.d.ts +1 -0
  197. package/dist/types/kit/road3d.d.ts +71 -0
  198. package/dist/types/kit/routeChecks.d.ts +6 -0
  199. package/dist/types/kit/saveSlots.d.ts +17 -0
  200. package/dist/types/kit/sceneInit.d.ts +11 -0
  201. package/dist/types/{games/kit → kit}/sceneSim.d.ts +5 -5
  202. package/dist/types/kit/screenText.d.ts +3 -0
  203. package/dist/types/kit/sdftext.d.ts +34 -0
  204. package/dist/types/kit/shading.d.ts +23 -0
  205. package/dist/types/kit/shareBlocks.d.ts +20 -0
  206. package/dist/types/kit/song.d.ts +89 -0
  207. package/dist/types/kit/songFx.d.ts +99 -0
  208. package/dist/types/kit/synthParts.d.ts +7 -0
  209. package/dist/types/kit/tar.d.ts +13 -0
  210. package/dist/types/kit/textfit.d.ts +74 -0
  211. package/dist/types/kit/transforms.d.ts +8 -0
  212. package/dist/types/lookAlike.d.ts +31 -0
  213. package/dist/types/menuVersionEntry.d.ts +1 -0
  214. package/dist/types/mesh/colorBodies.d.ts +18 -0
  215. package/dist/types/mesh/decimate.d.ts +10 -0
  216. package/dist/types/mesh/fieldTrinket.d.ts +40 -0
  217. package/dist/types/mesh/figureShapes.d.ts +24 -0
  218. package/dist/types/mesh/mesh.d.ts +9 -0
  219. package/dist/types/mesh/meshCheck.d.ts +22 -0
  220. package/dist/types/mesh/overhang.d.ts +24 -0
  221. package/dist/types/mesh/pixelFigure.d.ts +41 -0
  222. package/dist/types/mesh/sampledField.d.ts +3 -0
  223. package/dist/types/mesh/sdfShapes.d.ts +20 -0
  224. package/dist/types/mesh/stl.d.ts +9 -0
  225. package/dist/types/mesh/strokeText.d.ts +8 -0
  226. package/dist/types/mesh/surfaceNets.d.ts +14 -0
  227. package/dist/types/mesh/tetraMesh.d.ts +4 -0
  228. package/dist/types/mesh/threeMf.d.ts +12 -0
  229. package/dist/types/mesh/trinketKinds.d.ts +72 -0
  230. package/dist/types/mesh/trinketTool.d.ts +26 -0
  231. package/dist/types/mesh/voxel.d.ts +10 -0
  232. package/dist/types/mesh/zipFile.d.ts +13 -0
  233. package/dist/types/microFont.d.ts +6 -0
  234. package/dist/types/pack/meshPack.d.ts +26 -0
  235. package/dist/types/pack/threeMfPack.d.ts +11 -0
  236. package/dist/types/palettePresetData.d.ts +4 -0
  237. package/dist/types/palettePresets.d.ts +12 -0
  238. package/dist/types/paletteReserve.d.ts +52 -0
  239. package/dist/types/palettes.d.ts +4 -0
  240. package/dist/types/releaseNotes.d.ts +3 -0
  241. package/dist/types/simulation.d.ts +6 -0
  242. package/dist/types/{web/packages/tools/src/text.d.ts → text.d.ts} +6 -6
  243. package/package.json +145 -15
  244. package/dist/binary-D7wuaC5g.js +0 -120
  245. package/dist/pixels-DzfIIUOl.js +0 -76
  246. package/dist/types/games/kit/blit.d.ts +0 -10
  247. package/dist/types/games/kit/music.d.ts +0 -1
  248. package/dist/types/games/kit/pcText.d.ts +0 -8
  249. package/dist/types/games/kit/shading.d.ts +0 -11
  250. package/dist/types/web/packages/tools/src/audio.d.ts +0 -3
  251. package/dist/types/web/packages/tools/src/drawing.d.ts +0 -10
  252. package/dist/types/web/packages/tools/src/images.d.ts +0 -2
  253. package/dist/types/web/packages/tools/src/microFont.d.ts +0 -1
  254. package/dist/types/web/packages/tools/src/simulation.d.ts +0 -3
  255. package/dist/types/web/scripts/cdGames.d.ts +0 -103
  256. package/dist/types/web/scripts/gameShots.d.ts +0 -12
  257. package/dist/types/web/scripts/ogImage.d.ts +0 -21
  258. package/dist/types/web/src/audio/cmfLoad.d.ts +0 -7
  259. package/dist/types/web/src/audio/cmfPlayer.d.ts +0 -69
  260. package/dist/types/web/src/audio/context.d.ts +0 -12
  261. package/dist/types/web/src/audio/engine.d.ts +0 -39
  262. package/dist/types/web/src/audio/music.worklet.d.ts +0 -14
  263. package/dist/types/web/src/audio/opl.d.ts +0 -37
  264. package/dist/types/web/src/audio/output.d.ts +0 -13
  265. package/dist/types/web/src/desk/boxes/boxFacts.d.ts +0 -85
  266. package/dist/types/web/src/dosPlayer/fileExtensions.d.ts +0 -44
  267. package/dist/types/web/src/dosPlayer/patchRules.d.ts +0 -24
  268. package/dist/types/web/src/dosPlayer/patchTable.d.ts +0 -80
  269. package/dist/types/web/src/edition.d.ts +0 -6
  270. package/dist/types/web/src/eggs/eggState.d.ts +0 -26
  271. package/dist/types/web/src/eggs/eggs.d.ts +0 -31
  272. package/dist/types/web/src/engine/character.d.ts +0 -30
  273. package/dist/types/web/src/engine/funcKeys.d.ts +0 -33
  274. package/dist/types/web/src/engine/game.d.ts +0 -52
  275. package/dist/types/web/src/engine/keys.d.ts +0 -17
  276. package/dist/types/web/src/engine/machine.d.ts +0 -99
  277. package/dist/types/web/src/engine/menus.d.ts +0 -46
  278. package/dist/types/web/src/engine/monsters.d.ts +0 -19
  279. package/dist/types/web/src/engine/playGain.d.ts +0 -11
  280. package/dist/types/web/src/engine/playerLook.d.ts +0 -26
  281. package/dist/types/web/src/engine/recorder.d.ts +0 -60
  282. package/dist/types/web/src/engine/render.d.ts +0 -8
  283. package/dist/types/web/src/engine/scene.d.ts +0 -156
  284. package/dist/types/web/src/engine/scroll.d.ts +0 -16
  285. package/dist/types/web/src/engine/showGraphic.d.ts +0 -39
  286. package/dist/types/web/src/engine/slowPc.d.ts +0 -62
  287. package/dist/types/web/src/engine/touch.d.ts +0 -33
  288. package/dist/types/web/src/engine/world.d.ts +0 -215
  289. package/dist/types/web/src/export/gameAbout.d.ts +0 -15
  290. package/dist/types/web/src/formats/binary.d.ts +0 -44
  291. package/dist/types/web/src/formats/blocks.d.ts +0 -52
  292. package/dist/types/web/src/formats/character.d.ts +0 -65
  293. package/dist/types/web/src/formats/cmf.d.ts +0 -33
  294. package/dist/types/web/src/formats/fli.d.ts +0 -45
  295. package/dist/types/web/src/formats/fliLimits.d.ts +0 -13
  296. package/dist/types/web/src/formats/game.d.ts +0 -72
  297. package/dist/types/web/src/formats/gif.d.ts +0 -15
  298. package/dist/types/web/src/formats/graphicScripts.d.ts +0 -18
  299. package/dist/types/web/src/formats/highscore.d.ts +0 -10
  300. package/dist/types/web/src/formats/map.d.ts +0 -24
  301. package/dist/types/web/src/formats/monster.d.ts +0 -48
  302. package/dist/types/web/src/formats/palette.d.ts +0 -15
  303. package/dist/types/web/src/formats/recording.d.ts +0 -7
  304. package/dist/types/web/src/formats/sound.d.ts +0 -13
  305. package/dist/types/web/src/formats/voc.d.ts +0 -13
  306. package/dist/types/web/src/gfx/cp437Glyphs.d.ts +0 -2
  307. package/dist/types/web/src/gfx/font8x8.d.ts +0 -2
  308. package/dist/types/web/src/gfx/levelPicture.d.ts +0 -81
  309. package/dist/types/web/src/gfx/screen.d.ts +0 -46
  310. package/dist/types/web/src/gfx/titlePicture.d.ts +0 -21
  311. package/dist/types/web/src/input/chords.d.ts +0 -22
  312. package/dist/types/web/src/input/deskMouse.d.ts +0 -14
  313. package/dist/types/web/src/input/keyboard.d.ts +0 -39
  314. package/dist/types/web/src/input/scancodes.d.ts +0 -3
  315. package/dist/types/web/src/manual/printables/types.d.ts +0 -277
  316. package/dist/types/web/src/project/bizarre.d.ts +0 -28
  317. package/dist/types/web/src/project/companion.d.ts +0 -35
  318. package/dist/types/web/src/project/diskFacts.d.ts +0 -30
  319. package/dist/types/web/src/project/files.d.ts +0 -124
  320. package/dist/types/web/src/project/gameFiles.d.ts +0 -49
  321. package/dist/types/web/src/project/gamePack.d.ts +0 -17
  322. package/dist/types/web/src/project/health.d.ts +0 -30
  323. package/dist/types/web/src/project/secretGames.d.ts +0 -19
  324. package/dist/types/web/src/project/storage.d.ts +0 -46
  325. package/dist/types/web/src/project/streamGame.d.ts +0 -38
  326. package/dist/types/web/src/project/zip.d.ts +0 -33
  327. package/dist/types/web/src/retro/dos/disks.d.ts +0 -33
  328. package/dist/types/web/src/retro/text/cp437.d.ts +0 -4
  329. package/dist/types/web/src/seededRandom.d.ts +0 -6
  330. package/dist/types/web/src/tinHearts/deskHearts.d.ts +0 -33
  331. package/dist/types/web/src/tinHearts/manifest.d.ts +0 -30
  332. package/dist/types/web/src/tinHearts/tinHearts.d.ts +0 -84
  333. package/dist/types/web/src/walkthrough/format.d.ts +0 -92
  334. package/dist/types/web/src/walkthrough/madeUpScores.d.ts +0 -6
  335. package/dist/types/web/src/walkthrough/runtime.d.ts +0 -134
  336. /package/dist/types/{web/src/assistant → image}/png.d.ts +0 -0
  337. /package/dist/types/{games/kit → kit}/palette.d.ts +0 -0
  338. /package/dist/types/{games/kit → kit}/pixels.d.ts +0 -0
  339. /package/dist/types/{games/kit → kit}/reel.d.ts +0 -0
  340. /package/dist/types/{games/kit → kit}/sound.d.ts +0 -0
  341. /package/dist/types/{games/kit → kit}/textBounds.d.ts +0 -0
  342. /package/dist/types/{games/kit → kit}/tune.d.ts +0 -0
  343. /package/dist/types/{web/src/audio → music}/compose.d.ts +0 -0
@@ -1,44 +1 @@
1
- import { R as c, l as o, t as a } from "../binary-D7wuaC5g.js";
2
- function p(n) {
3
- const e = new c(n), t = e.i16(), s = e.i16(), i = o(n.subarray(4, 43)).split(/[\r\n\0]/)[0].trim();
4
- return { x: t, y: s, gif: i };
5
- }
6
- function u(n) {
7
- const e = a(n.gif), t = new Uint8Array(4 + e.length);
8
- return t[0] = n.x & 255, t[1] = n.x >> 8 & 255, t[2] = n.y & 255, t[3] = n.y >> 8 & 255, t.set(e, 4), t;
9
- }
10
- function f(n) {
11
- const e = [];
12
- for (const t of o(n).split(`
13
- `)) {
14
- const s = t.replace(/[\r\x1a]/g, ""), r = /^([^ ]{0,15})[^ ]* *(.*)$/.exec(s);
15
- if (!r || !r[1]) continue;
16
- const i = r[2].trim();
17
- e.push({ name: r[1].toLowerCase(), pause: i ? parseInt(i, 10) || 0 : void 0 });
18
- }
19
- return e;
20
- }
21
- function x(n) {
22
- return a(n.map((e) => e.pause === void 0 ? e.name : `${e.name} ${e.pause}`).join(`\r
23
- `) + `\r
24
- `);
25
- }
26
- function m(n) {
27
- const e = o(n).replace(/\x1a.*$/s, "").replace(/\r\n/g, `
28
- `), t = [];
29
- for (let s = 0; s < e.length; ) {
30
- let r = s;
31
- for (; r < e.length && r - s < 31 && e[r++] !== `
32
- `; )
33
- ;
34
- t.push(e.slice(s, r).replace(/\n$/, "")), s = r;
35
- }
36
- return t;
37
- }
38
- export {
39
- p as parseBackdrop,
40
- f as parseSlideList,
41
- u as serializeBackdrop,
42
- x as serializeSlideList,
43
- m as textLines
44
- };
1
+ export * from "@lewismoten/gamemaker-sandbox-engine/formats/graphicScripts";
@@ -1,38 +1 @@
1
- import { R as m, W as f } from "../binary-D7wuaC5g.js";
2
- const e = 100, a = 100, u = 200, s = e * a;
3
- function l(t) {
4
- const r = new m(t), n = new Uint8Array(s), c = new Uint8Array(s);
5
- for (let o = 0; o < s; o++)
6
- n[o] = r.u8(), c[o] = r.u8();
7
- const i = [];
8
- for (let o = 0; o < u; o++)
9
- i.push({ monnum: r.u8(), status: r.i16(), xtra: r.u8(), curx: r.i16(), cury: r.i16(), extra: r.i16() });
10
- return { blocks: n, mons: c, monsters: i };
11
- }
12
- function y(t) {
13
- const r = new f(s * 2 + u * 10);
14
- for (let n = 0; n < s; n++) r.u8(t.blocks[n]).u8(t.mons[n]);
15
- for (const n of t.monsters) r.u8(n.monnum).i16(n.status).u8(n.xtra).i16(n.curx).i16(n.cury).i16(n.extra);
16
- return r.toBytes();
17
- }
18
- function M() {
19
- return {
20
- blocks: new Uint8Array(s),
21
- mons: new Uint8Array(s).fill(u),
22
- monsters: Array.from({ length: u }, () => ({ monnum: 64, status: 0, xtra: 0, curx: 0, cury: 0, extra: 0 }))
23
- };
24
- }
25
- function w(t) {
26
- t.mons.fill(u), t.monsters.forEach((r, n) => {
27
- r.monnum < 64 && r.curx >= 0 && r.curx < e && r.cury >= 0 && r.cury < a && (t.mons[r.cury * e + r.curx] = n);
28
- });
29
- }
30
- export {
31
- u as LASTMM,
32
- e as MLEN,
33
- a as MWID,
34
- M as newMap,
35
- l as parseMap,
36
- w as reindexMonsters,
37
- y as serializeMap
38
- };
1
+ export * from "@lewismoten/gamemaker-sandbox-engine/formats/map";
@@ -1,69 +1 @@
1
- import { W as R, R as g } from "../binary-D7wuaC5g.js";
2
- const e = 64, p = 20, l = 10, L = 300, C = 0, V = 1;
3
- function a(t) {
4
- return { x: t.i16(), y: t.i16(), pic: t.i16(), orient: t.i16() };
5
- }
6
- function f(t, o) {
7
- t.i16(o.x).i16(o.y).i16(o.pic).i16(o.orient);
8
- }
9
- function j(t) {
10
- const o = t.i16(), n = t.i16(), c = t.i16(), M = t.i16(), h = t.u8(), y = t.i8(), s = [];
11
- for (let i = 0; i <= p; i++) s.push([t.i16(), t.i16()]);
12
- const d = t.u32(), w = t.i8(), A = t.i16(), x = t.bytesOf(21), T = t.i16(), E = t.i16(), O = t.i16(), S = [t.i16(), t.i16()], r = [[], []];
13
- for (let i = 0; i < 2; i++) for (let u = 0; u < l; u++) r[i].push(a(t));
14
- const N = a(t);
15
- return { used: o, fly: n, jump: c, stick: M, power: h, thru: y, pic: s, lasttime: d, newmon: w, upscore: A, xtra: x, activate: T, end: E, towards: O, close: S, march: r, cur: N };
16
- }
17
- function k(t, o) {
18
- t.i16(o.used).i16(o.fly).i16(o.jump).i16(o.stick).u8(o.power).i8(o.thru);
19
- for (const [n, c] of o.pic) t.i16(n).i16(c);
20
- t.u32(o.lasttime).i8(o.newmon).i16(o.upscore).bytes(o.xtra, 21).i16(o.activate).i16(o.end).i16(o.towards).i16(o.close[0]).i16(o.close[1]);
21
- for (const n of o.march) for (const c of n) f(t, c);
22
- f(t, o.cur);
23
- }
24
- function W(t) {
25
- const o = new g(t);
26
- return Array.from({ length: e }, () => j(o));
27
- }
28
- function z(t) {
29
- const o = new R(e * L);
30
- for (const n of t) k(o, n);
31
- return o.toBytes();
32
- }
33
- function v() {
34
- const t = Array.from({ length: p + 1 }, () => [100, 1]), o = () => Array.from({ length: l }, () => ({ x: 0, y: 0, pic: 0, orient: 0 }));
35
- return {
36
- used: 0,
37
- fly: 0,
38
- jump: 0,
39
- stick: 0,
40
- power: 1,
41
- thru: 1,
42
- pic: t,
43
- lasttime: 0,
44
- newmon: e,
45
- upscore: 0,
46
- xtra: new Uint8Array(21),
47
- activate: 0,
48
- end: 0,
49
- towards: 0,
50
- close: [0, 0],
51
- march: [o(), o()],
52
- cur: { x: 0, y: 0, pic: 0, orient: 0 }
53
- };
54
- }
55
- function B() {
56
- return Array.from({ length: e }, () => v());
57
- }
58
- export {
59
- V as ATTACKMOVEMENT,
60
- e as LASTMON,
61
- p as LASTSL,
62
- l as MAXMARCH,
63
- L as MONSTER_SIZE,
64
- C as NORMALMOVEMENT,
65
- v as emptyMonster,
66
- B as newMonsterSet,
67
- W as parseMonsters,
68
- z as serializeMonsters
69
- };
1
+ export * from "@lewismoten/gamemaker-sandbox-engine/formats/monster";
@@ -1,58 +1 @@
1
- const T = 768;
2
- function h(t) {
3
- const r = new Uint8Array(768);
4
- return r.set(t.subarray(0, 768)), r;
5
- }
6
- function A(t) {
7
- return t.slice(0, 768);
8
- }
9
- function P(t) {
10
- const r = new Uint32Array(256);
11
- for (let n = 0; n < 256; n++)
12
- r[n] = 255 << 24 | u(t[n * 3 + 2]) << 16 | u(t[n * 3 + 1]) << 8 | u(t[n * 3]);
13
- return r;
14
- }
15
- function u(t) {
16
- const r = t & 63;
17
- return r << 2 | r >> 4;
18
- }
19
- function b(t, r) {
20
- return `rgb(${u(t[r * 3])},${u(t[r * 3 + 1])},${u(t[r * 3 + 2])})`;
21
- }
22
- function d(t, r, n, e) {
23
- let o = 0, s = 1 / 0;
24
- for (let c = 0; c < 256; c++) {
25
- const i = (t[c * 3] & 63) - r, f = (t[c * 3 + 1] & 63) - n, a = (t[c * 3 + 2] & 63) - e, E = i * i + f * f + a * a;
26
- E < s && (s = E, o = c);
27
- }
28
- return o;
29
- }
30
- function I() {
31
- const t = new Uint8Array(768);
32
- for (let n = 0; n < 16; n++) t.set([n * 4 + 3, n * 4 + 3, n * 4 + 3], n * 3);
33
- let r = 16;
34
- for (let n = 0; n < 6; n++)
35
- for (let e = 0; e < 6; e++) for (let o = 0; o < 6; o++) t.set([Math.round(n * 63 / 5), Math.round(e * 63 / 5), Math.round(o * 63 / 5)], r++ * 3);
36
- for (; r < 255; r++) {
37
- const n = (r - 232) / 23 * 6, [e, o, s] = l(n, 1, 1);
38
- t.set([e, o, s], r * 3);
39
- }
40
- return t.set([63, 0, 63], 765), t;
41
- }
42
- function l(t, r, n) {
43
- const e = (o) => {
44
- const s = (o + t) % 6;
45
- return Math.round(63 * (n - n * r * Math.max(0, Math.min(s, 4 - s, 1))));
46
- };
47
- return [e(5), e(3), e(1)];
48
- }
49
- export {
50
- T as PALETTE_SIZE,
51
- I as defaultPalette,
52
- d as matchColor,
53
- b as paletteCss,
54
- P as paletteToRGBA,
55
- h as parsePalette,
56
- A as serializePalette,
57
- u as vga8
58
- };
1
+ export * from "@lewismoten/gamemaker-sandbox-engine/formats/palette";
@@ -1,17 +1 @@
1
- import { R as i, W as s } from "../binary-D7wuaC5g.js";
2
- const r = 1e3;
3
- function a(t) {
4
- const e = new i(t), o = [], c = Math.min(r, Math.floor(t.length / 3));
5
- for (let n = 0; n < c; n++) o.push({ delta: e.u16(), key: e.u8() });
6
- return o;
7
- }
8
- function l(t) {
9
- const e = new s(t.length * 3);
10
- for (const o of t.slice(0, r)) e.u16(o.delta).u8(o.key);
11
- return e.toBytes();
12
- }
13
- export {
14
- r as RECLEN,
15
- a as parseRecording,
16
- l as serializeRecording
17
- };
1
+ export * from "@lewismoten/gamemaker-sandbox-engine/formats/recording";
@@ -1,44 +1 @@
1
- import { R as f, W as u } from "../binary-D7wuaC5g.js";
2
- const e = 30, s = 36, d = e * s * 2 + e * 9, w = [
3
- "Help (hit points up)",
4
- "Kill monster",
5
- "Add money",
6
- "Subtract money",
7
- "Add life",
8
- "Add score",
9
- "Subtract score",
10
- "Add other counter",
11
- "Subtract other counter"
12
- ];
13
- function A(i) {
14
- const n = new f(i), o = [];
15
- for (let r = 0; r < e; r++) {
16
- const c = new Uint16Array(s);
17
- for (let a = 0; a < s; a++) c[a] = n.u16();
18
- o.push(c);
19
- }
20
- const t = [];
21
- for (let r = 0; r < e; r++) t.push(n.bytesOf(9));
22
- const l = t.map((r) => new f(r).cstr(9));
23
- return { freqs: o, digital: l, digitalRaw: t };
24
- }
25
- function y(i) {
26
- const n = new u(d);
27
- for (const o of i.freqs) for (let t = 0; t < s; t++) n.u16(o[t] ?? 0);
28
- return i.digital.forEach((o, t) => n.cstrOver(o, i.digitalRaw[t], 9)), n.toBytes();
29
- }
30
- function p() {
31
- return {
32
- freqs: Array.from({ length: e }, () => new Uint16Array(s)),
33
- digital: new Array(e).fill(""),
34
- digitalRaw: Array.from({ length: e }, () => new Uint8Array(9))
35
- };
36
- }
37
- export {
38
- e as LASTSND,
39
- s as NUMFREQ,
40
- w as SOUND_NAMES,
41
- p as newSoundSet,
42
- A as parseSoundSet,
43
- y as serializeSoundSet
44
- };
1
+ export * from "@lewismoten/gamemaker-sandbox-engine/formats/sound";
@@ -1,303 +1 @@
1
- const A = "Creative Voice File";
2
- function C(e) {
3
- for (let t = 0; t < A.length; t++) if (e[t] !== A.charCodeAt(t)) return !1;
4
- return !0;
5
- }
6
- function j(e) {
7
- if (!C(e)) throw new Error("Not a VOC file");
8
- let t = e[20] | e[21] << 8, n = 0;
9
- const s = [];
10
- let f = -1, h = 0, l = 0, u = 0, i;
11
- const p = (a) => {
12
- if (u === 0) return k(a);
13
- const c = x[u];
14
- return c ? (i || (i = { reference: a[0] ?? 128, scale: 0 }, a = a.subarray(1)), F(a, c, i)) : new Float32Array(0);
15
- };
16
- for (; t < e.length && l++ < 1e4; ) {
17
- const a = e[t];
18
- if (a === 0) break;
19
- const c = e[t + 1] | e[t + 2] << 8 | e[t + 3] << 16, r = t + 4, M = Math.min(e.length, r + c);
20
- switch (a) {
21
- case 1: {
22
- const m = Math.round(1e6 / (256 - e[r]));
23
- n ||= m, u = e[r + 1], i = void 0, s.push(p(e.subarray(r + 2, M)));
24
- break;
25
- }
26
- case 2:
27
- s.push(p(e.subarray(r, M)));
28
- break;
29
- case 3: {
30
- const m = (e[r] | e[r + 1] << 8) + 1;
31
- n ||= Math.round(1e6 / (256 - e[r + 2])), s.push(new Float32Array(m));
32
- break;
33
- }
34
- case 6:
35
- f = t + 4 + c, h = e[r] | e[r + 1] << 8;
36
- break;
37
- case 7:
38
- if (f >= 0 && h > 0 && h < 65535) {
39
- h--, t = f;
40
- continue;
41
- }
42
- break;
43
- case 8: {
44
- const m = e[r] | e[r + 1] << 8, w = e[r + 3] === 1;
45
- n = Math.round(256e6 / ((w ? 2 : 1) * (65536 - m)));
46
- break;
47
- }
48
- case 9: {
49
- n = e[r] | e[r + 1] << 8 | e[r + 2] << 16 | e[r + 3] << 24;
50
- const m = e[r + 4], w = e.subarray(r + 12, M);
51
- s.push(m === 16 ? V(w) : k(w));
52
- break;
53
- }
54
- }
55
- t = r + c;
56
- }
57
- const g = s.reduce((a, c) => a + c.length, 0), o = new Float32Array(g);
58
- let d = 0;
59
- for (const a of s)
60
- o.set(a, d), d += a.length;
61
- return { sampleRate: n || 8e3, samples: o };
62
- }
63
- function k(e) {
64
- const t = new Float32Array(e.length);
65
- for (let n = 0; n < e.length; n++) t[n] = (e[n] - 128) / 128;
66
- return t;
67
- }
68
- const x = {
69
- 1: {
70
- bits: [4, 4],
71
- scaleMap: [
72
- 0,
73
- 1,
74
- 2,
75
- 3,
76
- 4,
77
- 5,
78
- 6,
79
- 7,
80
- 0,
81
- -1,
82
- -2,
83
- -3,
84
- -4,
85
- -5,
86
- -6,
87
- -7,
88
- 1,
89
- 3,
90
- 5,
91
- 7,
92
- 9,
93
- 11,
94
- 13,
95
- 15,
96
- -1,
97
- -3,
98
- -5,
99
- -7,
100
- -9,
101
- -11,
102
- -13,
103
- -15,
104
- 2,
105
- 6,
106
- 10,
107
- 14,
108
- 18,
109
- 22,
110
- 26,
111
- 30,
112
- -2,
113
- -6,
114
- -10,
115
- -14,
116
- -18,
117
- -22,
118
- -26,
119
- -30,
120
- 4,
121
- 12,
122
- 20,
123
- 28,
124
- 36,
125
- 44,
126
- 52,
127
- 60,
128
- -4,
129
- -12,
130
- -20,
131
- -28,
132
- -36,
133
- -44,
134
- -52,
135
- -60
136
- ],
137
- adjustMap: [
138
- 0,
139
- 0,
140
- 0,
141
- 0,
142
- 0,
143
- 16,
144
- 16,
145
- 16,
146
- 0,
147
- 0,
148
- 0,
149
- 0,
150
- 0,
151
- 16,
152
- 16,
153
- 16,
154
- 240,
155
- 0,
156
- 0,
157
- 0,
158
- 0,
159
- 16,
160
- 16,
161
- 16,
162
- 240,
163
- 0,
164
- 0,
165
- 0,
166
- 0,
167
- 16,
168
- 16,
169
- 16,
170
- 240,
171
- 0,
172
- 0,
173
- 0,
174
- 0,
175
- 16,
176
- 16,
177
- 16,
178
- 240,
179
- 0,
180
- 0,
181
- 0,
182
- 0,
183
- 16,
184
- 16,
185
- 16,
186
- 240,
187
- 0,
188
- 0,
189
- 0,
190
- 0,
191
- 0,
192
- 0,
193
- 0,
194
- 240,
195
- 0,
196
- 0,
197
- 0,
198
- 0,
199
- 0,
200
- 0,
201
- 0
202
- ]
203
- },
204
- 2: {
205
- bits: [3, 3, 2],
206
- scaleMap: [
207
- 0,
208
- 1,
209
- 2,
210
- 3,
211
- 0,
212
- -1,
213
- -2,
214
- -3,
215
- 1,
216
- 3,
217
- 5,
218
- 7,
219
- -1,
220
- -3,
221
- -5,
222
- -7,
223
- 2,
224
- 6,
225
- 10,
226
- 14,
227
- -2,
228
- -6,
229
- -10,
230
- -14,
231
- 4,
232
- 12,
233
- 20,
234
- 28,
235
- -4,
236
- -12,
237
- -20,
238
- -28,
239
- 5,
240
- 15,
241
- 25,
242
- 35,
243
- -5,
244
- -15,
245
- -25,
246
- -35
247
- ],
248
- adjustMap: [0, 0, 0, 8, 0, 0, 0, 8, 248, 0, 0, 8, 248, 0, 0, 8, 248, 0, 0, 8, 248, 0, 0, 8, 248, 0, 0, 8, 248, 0, 0, 8, 248, 0, 0, 0, 248, 0, 0, 0]
249
- },
250
- 3: {
251
- bits: [2, 2, 2, 2],
252
- scaleMap: [0, 1, 0, -1, 1, 3, -1, -3, 2, 6, -2, -6, 4, 12, -4, -12, 8, 24, -8, -24, 6, 48, -16, -48],
253
- adjustMap: [0, 4, 0, 4, 252, 4, 252, 4, 252, 4, 252, 4, 252, 4, 252, 4, 252, 4, 252, 4, 252, 0, 252, 0]
254
- }
255
- };
256
- function F(e, t, n) {
257
- const s = new Float32Array(e.length * t.bits.length), f = t.scaleMap.length - 1;
258
- let h = 0;
259
- for (const l of e) {
260
- let u = 8;
261
- for (const i of t.bits) {
262
- u -= i;
263
- let p = l >> u & (1 << i) - 1;
264
- t.bits.length === 3 && i === 2 && (p <<= 1);
265
- const g = Math.max(0, Math.min(f, p + n.scale));
266
- n.reference = Math.max(0, Math.min(255, n.reference + t.scaleMap[g])), n.scale = n.scale + t.adjustMap[g] & 255, s[h++] = (n.reference - 128) / 128;
267
- }
268
- }
269
- return s;
270
- }
271
- function V(e) {
272
- const t = new Float32Array(e.length >> 1);
273
- for (let n = 0; n < t.length; n++) t[n] = ((e[n * 2] | e[n * 2 + 1] << 8) << 16 >> 16) / 32768;
274
- return t;
275
- }
276
- function U(e, t = 11025) {
277
- const n = Math.max(0, Math.min(255, Math.round(256 - 1e6 / t))), s = 16777200, f = [];
278
- let h = 0;
279
- do {
280
- const o = e.subarray(h, Math.min(e.length, h + s)), d = h === 0, a = d ? 6 : 4, c = new Uint8Array(a + o.length), r = o.length + (d ? 2 : 0);
281
- c[0] = d ? 1 : 2, c[1] = r & 255, c[2] = r >> 8 & 255, c[3] = r >> 16 & 255, d && (c[4] = n, c[5] = 0);
282
- for (let M = 0; M < o.length; M++) c[a + M] = Math.max(0, Math.min(255, Math.round(o[M] * 127 + 128)));
283
- f.push(c), h += s;
284
- } while (h < e.length);
285
- const l = new Uint8Array(26);
286
- for (let o = 0; o < A.length; o++) l[o] = A.charCodeAt(o);
287
- l[20] = 26;
288
- const u = 266;
289
- l[22] = u & 255, l[23] = u >> 8;
290
- const i = ~u + 4660 & 65535;
291
- l[24] = i & 255, l[25] = i >> 8;
292
- const p = new Uint8Array(l.length + f.reduce((o, d) => o + d.length, 0) + 1);
293
- p.set(l);
294
- let g = l.length;
295
- for (const o of f)
296
- p.set(o, g), g += o.length;
297
- return p;
298
- }
299
- export {
300
- j as decodeVoc,
301
- U as encodeVoc,
302
- C as isVoc
303
- };
1
+ export * from "@lewismoten/gamemaker-sandbox-engine/formats/voc";
@@ -0,0 +1,56 @@
1
+ import { isGif as p, decodeGif as s, lzwEncode as d } from "@lewismoten/gamemaker-sandbox-engine/formats/gif";
2
+ function g(i) {
3
+ let t = 10;
4
+ const o = i[t];
5
+ t += 3;
6
+ let l;
7
+ for (o & 128 && (l = { count: 2 << (o & 7), at: t }, t += l.count * 3); ; ) {
8
+ const h = i[t++];
9
+ if (h === 33) {
10
+ for (t++; t < i.length && i[t] !== 0; ) t += i[t] + 1;
11
+ t++;
12
+ } else {
13
+ if (h === 44) break;
14
+ return;
15
+ }
16
+ }
17
+ t += 8;
18
+ const n = i[t++];
19
+ return n & 128 && (l = { count: 2 << (n & 7), at: t }), l;
20
+ }
21
+ function v(i) {
22
+ if (p(i))
23
+ try {
24
+ const t = g(i);
25
+ if (!t) return;
26
+ const o = s(i);
27
+ let l = 0;
28
+ for (const e of o.pixels) e > l && (l = e);
29
+ let n = 4;
30
+ for (; n <= l; ) n *= 2;
31
+ for (; n < t.count; n *= 2) {
32
+ let e = !0;
33
+ for (let r = n * 3; r < o.palette.length && e; r++) e = o.palette[r] === 0;
34
+ if (e) break;
35
+ }
36
+ if (n >= t.count) return;
37
+ const h = Math.log2(n), f = [71, 73, 70, 56, 55, 97, i[6], i[7], i[8], i[9], 240 | h - 1, 0, 0];
38
+ for (let e = 0; e < n * 3; e++) f.push(i[t.at + e] ?? 0);
39
+ f.push(44, 0, 0, 0, 0, o.width & 255, o.width >> 8, o.height & 255, o.height >> 8, 0, h);
40
+ const c = d(o.pixels, h);
41
+ for (let e = 0; e < c.length; e += 255) {
42
+ f.push(Math.min(255, c.length - e));
43
+ for (let r = e; r < Math.min(c.length, e + 255); r++) f.push(c[r]);
44
+ }
45
+ f.push(0, 59);
46
+ const a = Uint8Array.from(f);
47
+ if (a.length >= i.length) return;
48
+ const u = s(a);
49
+ return u.width !== o.width || u.height !== o.height || u.pixels.some((e, r) => e !== o.pixels[r]) || u.palette.some((e, r) => e !== o.palette[r]) ? void 0 : { bytes: a, from: t.count, to: n };
50
+ } catch {
51
+ return;
52
+ }
53
+ }
54
+ export {
55
+ v as shrinkGif
56
+ };
@@ -0,0 +1,42 @@
1
+ import { crc32 as m } from "@lewismoten/gamemaker-sandbox-archives/zip";
2
+ import { vga8 as A } from "@lewismoten/gamemaker-sandbox-engine/formats/palette";
3
+ async function p(e) {
4
+ const r = new Blob([e]).stream().pipeThrough(new CompressionStream("deflate"));
5
+ return new Uint8Array(await new Response(r).arrayBuffer());
6
+ }
7
+ function i(e, r) {
8
+ const t = new Uint8Array(12 + r.length), s = new DataView(t.buffer);
9
+ s.setUint32(0, r.length);
10
+ for (let o = 0; o < 4; o++) t[4 + o] = e.charCodeAt(o);
11
+ return t.set(r, 8), s.setUint32(8 + r.length, m(t.subarray(4, 8 + r.length)) >>> 0), t;
12
+ }
13
+ async function D(e, r = 1) {
14
+ const t = Math.max(1, Math.floor(r)), s = e.width * t, o = e.height * t, l = new Uint8Array((s + 1) * o);
15
+ for (let n = 0; n < o; n++) {
16
+ const c = n * (s + 1) | 0, U = Math.floor(n / t) * e.width;
17
+ for (let a = 0; a < s; a++) l[c + 1 + a] = e.pixels[U + Math.floor(a / t)];
18
+ }
19
+ const f = new Uint8Array(13), h = new DataView(f.buffer);
20
+ h.setUint32(0, s), h.setUint32(4, o), f.set([8, 3, 0, 0, 0], 8);
21
+ const w = new Uint8Array(768);
22
+ for (let n = 0; n < 768; n++) w[n] = A(e.palette[n] ?? 0);
23
+ const u = [
24
+ new Uint8Array([137, 80, 78, 71, 13, 10, 26, 10]),
25
+ i("IHDR", f),
26
+ i("PLTE", w),
27
+ i("IDAT", await p(l)),
28
+ i("IEND", new Uint8Array(0))
29
+ ], y = new Uint8Array(u.reduce((n, c) => n + c.length, 0));
30
+ let g = 0;
31
+ for (const n of u) y.set(n, g), g += n.length;
32
+ return y;
33
+ }
34
+ function x(e) {
35
+ let r = "";
36
+ for (let t = 0; t < e.length; t += 32768) r += String.fromCharCode(...e.subarray(t, t + 32768));
37
+ return btoa(r);
38
+ }
39
+ export {
40
+ x as base64,
41
+ D as encodePng
42
+ };