explodorama / CI
CI passed: 5588b4e74479
✓ test · test · passed · 1m 38s
fw-runner truenas: test (test) in node:22
$ npm ci
added 47 packages, and audited 48 packages in 12s
13 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
$ npm test
> explodorama@0.2.0 test
> vitest run
RUN v5.0.5 /builds/explodorama
✓ test/gamepad.test.ts (31 tests) 34ms
✓ test/padMap.test.ts (59 tests) 39ms
✓ test/charges.test.ts (33 tests) 60ms
✓ test/enemies.test.ts (153 tests) 216ms
✓ test/powerups.test.ts (131 tests) 278ms
✓ test/oil-slide.test.ts (24 tests) 30ms
✓ test/hazards.test.ts (17 tests) 155ms
✓ test/options.test.ts (116 tests) 133ms
✓ test/autopilot.test.ts (15 tests) 199ms
✓ test/new-powers.test.ts (16 tests) 27ms
✓ test/keyCursor.test.ts (24 tests) 21ms
✓ test/padTiles.test.ts (22 tests) 28ms
✓ test/padDialog.test.ts (19 tests) 14ms
✓ test/picks.test.ts (20 tests) 44ms
✓ test/farTiles.test.ts (27 tests) 431ms
✓ test/padGlyph.test.ts (14 tests) 29ms
✓ test/new-enemies.test.ts (13 tests) 29ms
✓ test/q75.test.ts (11 tests) 54ms
✓ test/path.test.ts (15 tests) 20ms
✓ test/turn.test.ts (12 tests) 24ms
✓ test/keyDemo.test.ts (68 tests) 47943ms
✓ keyPlan on the demo scenes (53)
✓ wait: every turn has keys that, replayed through the game's rules, play that action on that tile 465ms
✓ kill: every turn has keys that, replayed through the game's rules, play that action on that tile 2225ms
✓ arrows: every turn has keys that, replayed through the game's rules, play that action on that tile 1489ms
✓ chain: every turn has keys that, replayed through the game's rules, play that action on that tile 3430ms
✓ coins: every turn has keys that, replayed through the game's rules, play that action on that tile 2578ms
✓ gem: every turn has keys that, replayed through the game's rules, play that action on that tile 941ms
✓ bombPlus: every turn has keys that, replayed through the game's rules, play that action on that tile 1545ms
✓ fusePlus: every turn has keys that, replayed through the game's rules, play that action on that tile 541ms
✓ run: every turn has keys that, replayed through the game's rules, play that action on that tile 793ms
✓ kick: every turn has keys that, replayed through the game's rules, play that action on that tile 684ms
✓ teleport: every turn has keys that, replayed through the game's rules, play that action on that tile 1217ms
✓ diagonal: every turn has keys that, replayed through the game's rules, play that action on that tile 1243ms
✓ icbm: every turn has keys that, replayed through the game's rules, play that action on that tile 354ms
✓ star: every turn has keys that, replayed through the game's rules, play that action on that tile 549ms
✓ pierce: every turn has keys that, replayed through the game's rules, play that action on that tile 3026ms
✓ power: every turn has keys that, replayed through the game's rules, play that action on that tile 3239ms
✓ nuke: every turn has keys that, replayed through the game's rules, play that action on that tile 2328ms
✓ acid: every turn has keys that, replayed through the game's rules, play that action on that tile 590ms
✓ rubble: every turn has keys that, replayed through the game's rules, play that action on that tile 2100ms
✓ freeze: every turn has keys that, replayed through the game's rules, play that action on that tile 4100ms
✓ decoy: every turn has keys that, replayed through the game's rules, play that action on that tile 2564ms
✓ exit: every turn has keys that, replayed through the game's rules, play that action on that tile 3246ms
✓ doorBlast: every turn has keys that, replayed through the game's rules, play that action on that tile 1156ms
✓ bush: every turn has keys that, replayed through the game's rules, play that action on that tile 374ms
✓ bushFire: every turn has keys that, replayed through the game's rules, play that action on that tile 1147ms
✓ metal: every turn has keys that, replayed through the game's rules, play that action on that tile 1027ms
✓ oil: every turn has keys that, replayed through the game's rules, play that action on that tile 874ms
✓ barrel: every turn has keys that, replayed through the game's rules, play that action on that tile 1510ms
✓ dieChain: every turn has keys that, replayed through the game's rules, play that action on that tile 317ms
✓ test/padDemo.test.ts (67 tests) 48719ms
✓ padPlan on the demo scenes (53)
✓ wait: every turn has a plan whose presses end on the action's tile with the face button that does it 403ms
✓ kill: every turn has a plan whose presses end on the action's tile with the face button that does it 2310ms
✓ arrows: every turn has a plan whose presses end on the action's tile with the face button that does it 1396ms
✓ chain: every turn has a plan whose presses end on the action's tile with the face button that does it 3492ms
✓ lingering: every turn has a plan whose presses end on the action's tile with the face button that does it 321ms
✓ coins: every turn has a plan whose presses end on the action's tile with the face button that does it 2533ms
✓ gem: every turn has a plan whose presses end on the action's tile with the face button that does it 953ms
✓ bombPlus: every turn has a plan whose presses end on the action's tile with the face button that does it 1567ms
✓ fusePlus: every turn has a plan whose presses end on the action's tile with the face button that does it 534ms
✓ run: every turn has a plan whose presses end on the action's tile with the face button that does it 715ms
✓ kick: every turn has a plan whose presses end on the action's tile with the face button that does it 727ms
✓ teleport: every turn has a plan whose presses end on the action's tile with the face button that does it 1181ms
✓ diagonal: every turn has a plan whose presses end on the action's tile with the face button that does it 1337ms
✓ icbm: every turn has a plan whose presses end on the action's tile with the face button that does it 360ms
✓ star: every turn has a plan whose presses end on the action's tile with the face button that does it 592ms
✓ pierce: every turn has a plan whose presses end on the action's tile with the face button that does it 3157ms
✓ power: every turn has a plan whose presses end on the action's tile with the face button that does it 3233ms
✓ nuke: every turn has a plan whose presses end on the action's tile with the face button that does it 2356ms
✓ acid: every turn has a plan whose presses end on the action's tile with the face button that does it 578ms
✓ rubble: every turn has a plan whose presses end on the action's tile with the face button that does it 2095ms
✓ freeze: every turn has a plan whose presses end on the action's tile with the face button that does it 4175ms
✓ decoy: every turn has a plan whose presses end on the action's tile with the face button that does it 2625ms
✓ exit: every turn has a plan whose presses end on the action's tile with the face button that does it 3295ms
✓ doorBlast: every turn has a plan whose presses end on the action's tile with the face button that does it 1175ms
✓ bush: every turn has a plan whose presses end on the action's tile with the face button that does it 363ms
✓ bushFire: every turn has a plan whose presses end on the action's tile with the face button that does it 1148ms
✓ metal: every turn has a plan whose presses end on the action's tile with the face button that does it 1002ms
✓ oil: every turn has a plan whose presses end on the action's tile with the face button that does it 881ms
✓ barrel: every turn has a plan whose presses end on the action's tile with the face button that does it 1614ms
✓ dieChain: every turn has a plan whose presses end on the action's tile with the face button that does it 308ms
✓ test/targetLabel.test.ts (11 tests) 33ms
✓ test/danger.test.ts (4 tests) 750ms
✓ danger overlay (1)
✓ "now" is exactly what burns if the player waits, and "next" what burns the turn after 717ms
✓ test/padTarget.test.ts (12 tests) 19ms
✓ test/shop.test.ts (8 tests) 34ms
✓ test/test-scenes.test.ts (18 tests) 59ms
✓ test/spatial.test.ts (10 tests) 13ms
✓ test/padHold.test.ts (8 tests) 9ms
✓ test/scores.test.ts (5 tests) 15ms
✓ test/animation.test.ts (5 tests) 15ms
✓ test/changelog.test.ts (8 tests) 20ms
✓ test/reportReplay.test.ts (3 tests) 154ms
✓ test/demoInput.test.ts (5 tests) 8ms
✓ test/ruleCompare.test.ts (3 tests) 198ms
✓ test/routePreview.test.ts (8 tests) 203ms
✓ test/padPlaces.test.ts (3 tests) 12ms
✓ test/explosions.test.ts (4 tests) 11ms
✓ test/reveal.test.ts (5 tests) 8ms
✓ test/demo.test.ts (62 tests) 48945ms
✓ demo scenes (62)
✓ wait: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 352ms
✓ kill: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 1921ms
✓ arrows: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 1237ms
✓ chain: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 3262ms
✓ coins: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 2381ms
✓ gem: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 955ms
✓ bombPlus: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 1565ms
✓ fusePlus: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 498ms
✓ run: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 697ms
✓ kick: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 658ms
✓ teleport: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 1138ms
✓ diagonal: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 1343ms
✓ icbm: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 348ms
✓ star: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 512ms
✓ pierce: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 2907ms
✓ power: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 3221ms
✓ nuke: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 2366ms
✓ acid: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 706ms
✓ rubble: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 1910ms
✓ freeze: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 3938ms
✓ decoy: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 2476ms
✓ exit: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 3233ms
✓ doorBlast: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 1161ms
✓ bush: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 380ms
✓ bushFire: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 1161ms
✓ metal: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 993ms
✓ oil: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 803ms
✓ barrel: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 1649ms
✓ dieChain: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 316ms
✓ rubble: the ceiling falls at the moment, and the aftermath shows it 908ms
✓ the same seed gives the same scene 1147ms
✓ test/levelgen.test.ts (201 tests) 288ms
✓ test/replayCompare.test.ts (3 tests) 112ms
✓ test/sprites.test.ts (2 tests) 15ms
✓ test/holdRing.test.ts (4 tests) 6ms
✓ test/toast.test.ts (3 tests) 6ms
✓ test/channel.test.ts (2 tests) 5ms
✓ test/turnNumber.test.ts (1 test) 8ms
✓ test/balance.test.ts (3 tests) 1476ms
✓ the balance lab (3)
✓ the Careful bot clears the first levels of a seed without stalling 798ms
✓ the same seed and bot play the same run 674ms
✓ test/version.test.ts (1 test) 5ms
stdout | test/perf.test.ts > every demo scene is found within 4000 ms a seed
slowest demo scenes:
freeze seed 3: 1490 ms
pierce seed 3: 1269 ms
chain seed 2: 1146 ms
kill seed 1: 1001 ms
doorBlast seed 3: 971 ms
✓ test/perf.test.ts (1 test) 26877ms
✓ every demo scene is found within 4000 ms a seed 26875ms
Test Files 50 passed (50)
Tests 1310 passed (1310)
Start at 04:54:27
Duration 82.32s (tests 95%, import 3%, transform 2%)
$ npm run build
> explodorama@0.2.0 build
> tsc --noEmit && vite build
vite v8.3.4 building client environment for production...
transforming...
✓ 301 modules transformed.
rendering chunks...
computing gzip size...
dist/assets/keyboard_arrows-IM1YXfQU.png 0.20 kB
dist/assets/xbox_dpad-CO15a5jj.png 0.21 kB
dist/assets/xbox_dpad_down-CBlga3eU.png 0.24 kB
dist/assets/xbox_dpad_up-BQfRgIuY.png 0.25 kB
dist/assets/xbox_dpad_left-B1hUhZxU.png 0.25 kB
dist/assets/xbox_dpad_right-BoY6ZUsh.png 0.25 kB
dist/assets/cursor_none-CM0uT-GH.png 0.26 kB
dist/assets/keyboard_arrow_up-CA3jnBQe.png 0.28 kB
dist/assets/keyboard_arrow_down-BRpFlar5.png 0.28 kB
dist/assets/keyboard_arrow_right-DFSJ7bad.png 0.29 kB
dist/assets/keyboard_arrow_left-CR5uQAnl.png 0.29 kB
dist/assets/keyboard_alt-BNSmsuOZ.png 0.29 kB
dist/assets/switch_button_l-B6yerSEe.png 0.30 kB
dist/assets/keyboard_b-D8H0qipd.png 0.32 kB
dist/assets/xbox_lb-PkHylcus.png 0.33 kB
dist/assets/crosshair041-CndbD-Ym.png 0.33 kB
dist/assets/playstation5_button_options-B0D0cdCJ.png 0.33 kB
dist/assets/keyboard_shift-DjNWVPt2.png 0.34 kB
dist/assets/keyboard_question-BbGosnL8.png 0.35 kB
dist/assets/keyboard_m-BrssqtOv.png 0.35 kB
dist/assets/playstation_trigger_l1-CKkNAGSB.png 0.35 kB
dist/assets/switch_button_r-ByhUa_EX.png 0.35 kB
dist/assets/keyboard_home-CWa1HdnH.png 0.36 kB
dist/assets/keyboard_escape-XJ_88jeE.png 0.36 kB
dist/assets/playstation_dpad-UfCa4R7K.png 0.37 kB
dist/assets/keyboard_v-6eKRziYv.png 0.37 kB
dist/assets/xbox_rb-CdW2Vv32.png 0.37 kB
dist/assets/keyboard_enter-BtVY8_ft.png 0.38 kB
dist/assets/keyboard_space-CuMazU4d.png 0.38 kB
dist/assets/playstation_dpad_down-BDH1g_un.png 0.39 kB
dist/assets/playstation_dpad_up-BAb1cFN6.png 0.39 kB
dist/assets/switch_dpad-BiNR1egj.png 0.39 kB
dist/assets/playstation_dpad_left-hrCfAM-b.png 0.40 kB
dist/assets/xbox_button_menu-BKcvO5Pb.png 0.40 kB
dist/assets/playstation_dpad_right-83eT074K.png 0.41 kB
dist/assets/switch_button_plus-j9hW6FXE.png 0.41 kB
dist/assets/playstation_button_color_square-DOUiHEOD.png 0.41 kB
dist/assets/playstation_trigger_r1-DUFC1pem.png 0.41 kB
dist/assets/switch_dpad_up-C77dSC1y.png 0.46 kB
dist/assets/switch_button_b-SMPWGuu6.png 0.46 kB
dist/assets/xbox_button_color_b-B5I4Lrrt.png 0.46 kB
dist/assets/switch_dpad_down-BAqfFtUA.png 0.46 kB
dist/assets/switch_dpad_left-oBeOwfwL.png 0.47 kB
dist/assets/switch_button_y-p2pj7KI5.png 0.47 kB
dist/assets/switch_dpad_right-B0DOFp72.png 0.47 kB
dist/assets/xbox_button_color_y-yTOHje0T.png 0.47 kB
dist/assets/icon_play_light-sPnBmo7X.png 0.48 kB
dist/assets/switch_button_a-C5AaLIaI.png 0.49 kB
dist/assets/xbox_button_color_a-BM1iUpmG.png 0.49 kB
dist/assets/playstation_button_color_cross-MiR0nhhj.png 0.50 kB
dist/assets/playstation_button_color_triangle-EqAmyTQc.png 0.51 kB
dist/assets/switch_button_x-DhEOdszH.png 0.51 kB
dist/assets/xbox_button_color_x-DzPGg-9a.png 0.51 kB
dist/assets/icon_cross-CS_Wvalb.png 0.51 kB
dist/assets/playstation_button_color_circle-C_A4ojSa.png 0.52 kB
dist/assets/xbox_stick_r-0PF3PO-a.png 0.64 kB
dist/assets/xbox_stick_r_right-C6vZ7oBG.png 0.65 kB
dist/assets/xbox_stick_r_left-DAP1D6Nv.png 0.65 kB
dist/assets/xbox_stick_r_up-DsoX5hon.png 0.67 kB
dist/assets/xbox_stick_r_down-OHs1V1q0.png 0.68 kB
dist/assets/xbox_stick_r_press-CAsOn0MP.png 0.69 kB
dist/assets/icon_repeat_light-CTXb8bj_.png 0.73 kB
dist/assets/block_strong_empty-CEXLbkCe.png 0.73 kB
dist/assets/hud_character_4-B4X75SYh.png 0.77 kB
dist/assets/button_rectangle_depth_flat-CeRxlf6C.png 0.78 kB
dist/assets/button_rectangle_depth_flat-CpP-C2jB.png 0.78 kB
dist/assets/panel_beigeLight-6djPtQM6.png 0.78 kB
dist/assets/button_rectangle_depth_flat-Bjen5_k2.png 0.78 kB
dist/assets/block_blue-BFzfMpxU.png 0.80 kB
dist/assets/block_green-DoVnEOFi.png 0.80 kB
dist/assets/block_yellow-BJJhbOnH.png 0.80 kB
dist/assets/block_red-U5K0epKM.png 0.81 kB
dist/assets/hud_character_1-D30m-cUy.png 0.82 kB
dist/assets/block_metal-HeEw6Ft3.png 0.92 kB
dist/assets/terrain_stone_vertical_middle-C8sA0aT-.png 0.93 kB
dist/assets/terrain_stone_horizontal_middle-CPBO8mG-.png 0.97 kB
dist/assets/hud_character_7-1vpkekg-.png 1.05 kB
dist/assets/ramp-yB0FxWuk.png 1.06 kB
dist/assets/slime_normal_flat-CPNsFeTf.png 1.07 kB
dist/assets/hud_character_5-H_zTIWTj.png 1.10 kB
dist/assets/hud_character_2-DdgRetcd.png 1.11 kB
dist/assets/hud_character_0-D-beXF0C.png 1.14 kB
dist/assets/hud_character_6-CoQZDPAu.png 1.15 kB
dist/assets/hud_character_8-DSuv24Rh.png 1.16 kB
dist/assets/hud_character_9-D09Snwh0.png 1.16 kB
dist/assets/terrain_stone_block_bottom_right-B8KPlYln.png 1.16 kB
dist/assets/hud_character_3-92VVq8jX.png 1.17 kB
dist/assets/terrain_stone_block_bottom_left-CbgOlVHq.png 1.17 kB
dist/assets/icon_move-DoAlveDl.png 1.18 kB
dist/assets/slime_block_rest-DvyOnEnq.png 1.21 kB
dist/assets/heart-B5xfXfO6.png 1.22 kB
dist/assets/flag_green_a-DZJ6ohZZ.png 1.29 kB
dist/assets/icon_wait-CDPU03Sb.png 1.31 kB
dist/assets/terrain_stone_block_top_left-XgA3Squt.png 1.32 kB
dist/assets/terrain_stone_block_top_right-CPLuw5ve.png 1.33 kB
dist/assets/slime_block_walk_b-Bn2nbINQ.png 1.33 kB
dist/assets/charge_decoy-uJnlsYHR.png 1.33 kB
dist/assets/slime_block_walk_a-B9kH-UEZ.png 1.34 kB
dist/assets/slime_block_jump-CkgwXA9Q.png 1.35 kB
dist/assets/block_strong_danger-DZNQyloF.png 1.35 kB
dist/assets/gem_yellow-CVtOeu_a.png 1.39 kB
dist/assets/gem_green-BZoJhaX-.png 1.42 kB
dist/assets/gem_red-BxP5HD_Z.png 1.43 kB
dist/assets/gem_blue-0PmWQZ5N.png 1.43 kB
dist/assets/lock_yellow-BkfWK4ns.png 1.45 kB
dist/assets/smaller-KljWsB1L.png 1.45 kB
dist/assets/chain-DOwFFF3h.png 1.45 kB
dist/assets/spikes-B7yQsCiu.png 1.46 kB
dist/assets/switch_blue-BUEjmO1S.png 1.49 kB
dist/assets/larger-ySwE8bJr.png 1.52 kB
dist/assets/cancel-xxaCOqX4.png 1.55 kB
dist/assets/slime_normal_rest-BE2I4a9u.png 1.56 kB
dist/assets/dice_3D_detailed-CyxkNNgV.png 1.56 kB
dist/assets/slime_normal_walk_b-AHxbYTZg.png 1.64 kB
dist/assets/rock-DEghCPal.png 1.65 kB
dist/assets/slime_normal_walk_a-CR9Vf-Gl.png 1.67 kB
dist/assets/hud_heart_empty-DrVQ0rwl.png 1.68 kB
dist/assets/hud_heart-DMWL1Iog.png 1.68 kB
dist/assets/door_open_top-Bec1zXUR.png 1.69 kB
dist/assets/question-L8GorbFa.png 1.71 kB
dist/assets/lever-kYSKcI-e.png 1.80 kB
dist/assets/zoom-Dq4o1JF5.png 1.81 kB
dist/assets/return-Dc5MGV5X.png 1.81 kB
dist/assets/icon_fuse-DtmKmQUM.png 1.82 kB
dist/assets/bomb-BtHNJO54.png 1.95 kB
dist/assets/bomb_active-R3d2ICtK.png 1.97 kB
dist/assets/coin_silver-6jziWs-Y.png 2.00 kB
dist/assets/mouse_rest-ClZh37SZ.png 2.03 kB
dist/assets/bridge_logs-D2omcsFK.png 2.04 kB
dist/assets/door_closed_top-BId0Useu.png 2.06 kB
dist/assets/slime_fire_flat-DDBbR1cD.png 2.10 kB
dist/assets/coin_bronze-Bc3zxzLp.png 2.13 kB
dist/assets/bush-D4e-CA81.png 2.14 kB
dist/assets/mouse_walk_a-D6WWHiBF.png 2.15 kB
dist/assets/coin_gold-CQQ9Ks9J.png 2.16 kB
dist/assets/mouse_walk_b-BZfoKbEB.png 2.17 kB
dist/assets/powerup_run-BSY-8lDb.png 2.21 kB
dist/assets/powerup_teleport-C3-w_vcy.png 2.25 kB
dist/assets/powerup_slide-DFZvRVFB.png 2.25 kB
dist/assets/weight-BKRsH4_Q.png 2.27 kB
dist/assets/sfx_select-C4ld5733.mp3 2.28 kB
dist/assets/star-Wk5aU7un.png 2.36 kB
dist/assets/sfx_bump-B7v4rHM_.mp3 2.39 kB
dist/assets/hud_coin-B2JMsd8Z.png 2.40 kB
dist/assets/splat15-Dr_oR7xo.png 2.41 kB
dist/assets/splat21-6Xtp5ZW4.png 2.46 kB
dist/assets/button_round_depth_flat-BcAxdvrZ.png 2.47 kB
dist/assets/block_planks-BnmrQY55.png 2.47 kB
dist/assets/button_round_depth_flat-aj4RAIs5.png 2.47 kB
dist/assets/powerup_diagonal-DTiXaWtV.png 2.48 kB
dist/assets/fireball-DV6Plkp_.png 2.48 kB
dist/assets/frog_rest-D8vSVyme.png 2.48 kB
dist/assets/splat13-DBNww0wp.png 2.49 kB
dist/assets/splat08-CvetTC2m.png 2.51 kB
dist/assets/sfx_hurt-B7uC5Y7i.mp3 2.54 kB
dist/assets/cursorHand_beige-BpfEfQ_1.svg 2.56 kB │ gzip: 0.89 kB
dist/assets/frog_jump-DtvS6rZX.png 2.63 kB
dist/assets/slime_fire_rest-Ci05jwuq.png 2.71 kB
dist/assets/splat05-BOdH0x8e.png 2.72 kB
dist/assets/splat00-Cdw9xPL6.png 2.72 kB
dist/assets/slime_fire_walk_b-TMG3F3r5.png 2.76 kB
dist/assets/sfx_throw-IcmvoL3b.mp3 2.78 kB
dist/assets/splat11-DQ9SzSBa.png 2.79 kB
dist/assets/splat24-BByRhZEk.png 2.80 kB
dist/assets/slime_fire_walk_a-D-I2qFMX.png 2.83 kB
dist/assets/sfx_jump-DjChNvLz.mp3 2.83 kB
dist/assets/saw_rest-DuYp5CZV.png 2.93 kB
dist/assets/splat03-BOo2eAQf.png 2.94 kB
dist/assets/hud_player_helmet_green-BDdh1dul.png 2.99 kB
dist/assets/saw_a-Cm9zmMz8.png 3.04 kB
dist/assets/splat27-Dojw7Mm2.png 3.07 kB
dist/assets/charge_shield-D2cdn0fQ.png 3.09 kB
dist/assets/fly_b-ooBz86GV.png 3.09 kB
dist/assets/powerup_kick-DkMKkWkX.png 3.12 kB
dist/assets/powerup_detonator-BGzNHRRD.png 3.13 kB
dist/assets/character_green_duck-vqTEXp4Q.png 3.13 kB
dist/assets/powerup_rpg-DQq37O9N.png 3.14 kB
dist/assets/splat30-B2L7bI_v.png 3.15 kB
dist/assets/character_green_climb_b-cAkDPB0z.png 3.16 kB
dist/assets/powerup_throw-jz83Y_DS.png 3.18 kB
dist/assets/character_green_climb_a-BdnHo2Lc.png 3.19 kB
dist/assets/powerup_bomb_plus-DWAe-xpU.png 3.19 kB
dist/assets/character_green_idle-BH37Ygh9.png 3.29 kB
dist/assets/splat19-cYuqKHEp.png 3.31 kB
dist/assets/saw_b-OQSNaBz-.png 3.32 kB
dist/assets/character_green_walk_a-C1dkKNXj.png 3.32 kB
dist/assets/frog_idle-BEiVlOxC.png 3.33 kB
dist/assets/fly_rest-HDbBrfGx.png 3.34 kB
dist/assets/character_green_front-B0NeJ0g6.png 3.34 kB
dist/assets/fly_a-Bhi7L4Hv.png 3.37 kB
dist/assets/splat02-CXDEWj8b.png 3.38 kB
dist/assets/character_green_jump-BsvY4lZV.png 3.38 kB
dist/assets/tap-a-1cq5pC9_.mp3 3.38 kB
dist/assets/character_green_walk_b-COcSQMYi.png 3.42 kB
dist/assets/gem_rainbow-D0ZNNAds.png 3.43 kB
dist/assets/character_green_hit-bGpqPKkU.png 3.44 kB
dist/assets/splat33-CyhX8WCv.png 3.63 kB
dist/assets/oil-B-G-pwIQ.png 3.73 kB
dist/index.html 3.78 kB │ gzip: 1.16 kB
dist/assets/sfx_coin-CxfbCuDT.mp3 3.82 kB
dist/assets/charge_freeze-SlqOoyrI.png 3.84 kB
dist/assets/sfx_gem-0kda12Xe.mp3 4.58 kB
dist/assets/sfx_magic-BiCfUoIe.mp3 4.66 kB
dist/assets/powerup_flame_pass-J1pE3wPF.png 5.72 kB
dist/assets/powerup_tnt-CeQCK8MM.png 5.73 kB
dist/assets/sfx_jump-high-Bsrhxx2Z.mp3 5.86 kB
dist/assets/switch-a-CCKFDxvU.mp3 6.09 kB
dist/assets/powerup_proximity-DlQQd3wj.png 6.15 kB
dist/assets/powerup_bomb_pass-BrvgonKX.png 6.28 kB
dist/assets/powerup_fire_plus-BNhxhbcp.png 6.39 kB
dist/assets/charge_nuke-Cooh6Khb.png 6.57 kB
dist/assets/charge_icbm-DgGc2aC-.png 6.72 kB
dist/assets/charge_acid-BISbgBoP.png 7.04 kB
dist/assets/grass_a-pqyEcuWt.png 7.26 kB
dist/assets/powerup_wall_pass-jG6fCYv8.png 7.26 kB
dist/assets/sfx_disappear-FqTOIA2b.mp3 7.45 kB
dist/assets/powerup_fuse_plus-CEXVlHz4.png 7.59 kB
dist/assets/grass_b-_mTfZlCw.png 8.04 kB
dist/assets/canopy_b-DO9VegbN.png 8.52 kB
dist/assets/canopy_a-BvTv7ZXj.png 8.75 kB
dist/assets/grass_d-Cqq2QF-J.png 10.85 kB
dist/assets/grass_c-Dt_XEkgd.png 11.79 kB
dist/assets/arrowRight-B4opVS7m.png 15.28 kB
dist/assets/Kenney Future-DVB-apiN.ttf 34.16 kB
dist/assets/padart-nintendo-Dy26DI-B.png 52.69 kB
dist/assets/padart-xbox-l-hJ3cW6.png 60.70 kB
dist/assets/scene-worker-CHa_a51r.js 68.79 kB
dist/assets/padart-playstation-DVr5HwP9.png 74.50 kB
dist/assets/index-C6sbfyDG.css 32.29 kB │ gzip: 7.57 kB
dist/assets/index-B6qm3J2L.js 399.36 kB │ gzip: 140.34 kB
✓ built in 650ms
✓ pages · deploy · passed · 16s
fw-runner truenas: pages (deploy) in node:22 note: GitLab Pages: the build runs as a check here; `fw deploy` publishes apps. $ npm ci added 47 packages, and audited 48 packages in 12s 13 packages are looking for funding run `npm fund` for details found 0 vulnerabilities $ npm run build > explodorama@0.2.0 build > tsc --noEmit && vite build vite v8.3.4 building client environment for production... transforming... ✓ 301 modules transformed. rendering chunks... computing gzip size... dist/assets/keyboard_arrows-IM1YXfQU.png 0.20 kB dist/assets/xbox_dpad-CO15a5jj.png 0.21 kB dist/assets/xbox_dpad_down-CBlga3eU.png 0.24 kB dist/assets/xbox_dpad_up-BQfRgIuY.png 0.25 kB dist/assets/xbox_dpad_left-B1hUhZxU.png 0.25 kB dist/assets/xbox_dpad_right-BoY6ZUsh.png 0.25 kB dist/assets/cursor_none-CM0uT-GH.png 0.26 kB dist/assets/keyboard_arrow_up-CA3jnBQe.png 0.28 kB dist/assets/keyboard_arrow_down-BRpFlar5.png 0.28 kB dist/assets/keyboard_arrow_right-DFSJ7bad.png 0.29 kB dist/assets/keyboard_arrow_left-CR5uQAnl.png 0.29 kB dist/assets/keyboard_alt-BNSmsuOZ.png 0.29 kB dist/assets/switch_button_l-B6yerSEe.png 0.30 kB dist/assets/keyboard_b-D8H0qipd.png 0.32 kB dist/assets/xbox_lb-PkHylcus.png 0.33 kB dist/assets/crosshair041-CndbD-Ym.png 0.33 kB dist/assets/playstation5_button_options-B0D0cdCJ.png 0.33 kB dist/assets/keyboard_shift-DjNWVPt2.png 0.34 kB dist/assets/keyboard_question-BbGosnL8.png 0.35 kB dist/assets/keyboard_m-BrssqtOv.png 0.35 kB dist/assets/playstation_trigger_l1-CKkNAGSB.png 0.35 kB dist/assets/switch_button_r-ByhUa_EX.png 0.35 kB dist/assets/keyboard_home-CWa1HdnH.png 0.36 kB dist/assets/keyboard_escape-XJ_88jeE.png 0.36 kB dist/assets/playstation_dpad-UfCa4R7K.png 0.37 kB dist/assets/keyboard_v-6eKRziYv.png 0.37 kB dist/assets/xbox_rb-CdW2Vv32.png 0.37 kB dist/assets/keyboard_enter-BtVY8_ft.png 0.38 kB dist/assets/keyboard_space-CuMazU4d.png 0.38 kB dist/assets/playstation_dpad_down-BDH1g_un.png 0.39 kB dist/assets/playstation_dpad_up-BAb1cFN6.png 0.39 kB dist/assets/switch_dpad-BiNR1egj.png 0.39 kB dist/assets/playstation_dpad_left-hrCfAM-b.png 0.40 kB dist/assets/xbox_button_menu-BKcvO5Pb.png 0.40 kB dist/assets/playstation_dpad_right-83eT074K.png 0.41 kB dist/assets/switch_button_plus-j9hW6FXE.png 0.41 kB dist/assets/playstation_button_color_square-DOUiHEOD.png 0.41 kB dist/assets/playstation_trigger_r1-DUFC1pem.png 0.41 kB dist/assets/switch_dpad_up-C77dSC1y.png 0.46 kB dist/assets/switch_button_b-SMPWGuu6.png 0.46 kB dist/assets/xbox_button_color_b-B5I4Lrrt.png 0.46 kB dist/assets/switch_dpad_down-BAqfFtUA.png 0.46 kB dist/assets/switch_dpad_left-oBeOwfwL.png 0.47 kB dist/assets/switch_button_y-p2pj7KI5.png 0.47 kB dist/assets/switch_dpad_right-B0DOFp72.png 0.47 kB dist/assets/xbox_button_color_y-yTOHje0T.png 0.47 kB dist/assets/icon_play_light-sPnBmo7X.png 0.48 kB dist/assets/switch_button_a-C5AaLIaI.png 0.49 kB dist/assets/xbox_button_color_a-BM1iUpmG.png 0.49 kB dist/assets/playstation_button_color_cross-MiR0nhhj.png 0.50 kB dist/assets/playstation_button_color_triangle-EqAmyTQc.png 0.51 kB dist/assets/switch_button_x-DhEOdszH.png 0.51 kB dist/assets/xbox_button_color_x-DzPGg-9a.png 0.51 kB dist/assets/icon_cross-CS_Wvalb.png 0.51 kB dist/assets/playstation_button_color_circle-C_A4ojSa.png 0.52 kB dist/assets/xbox_stick_r-0PF3PO-a.png 0.64 kB dist/assets/xbox_stick_r_right-C6vZ7oBG.png 0.65 kB dist/assets/xbox_stick_r_left-DAP1D6Nv.png 0.65 kB dist/assets/xbox_stick_r_up-DsoX5hon.png 0.67 kB dist/assets/xbox_stick_r_down-OHs1V1q0.png 0.68 kB dist/assets/xbox_stick_r_press-CAsOn0MP.png 0.69 kB dist/assets/icon_repeat_light-CTXb8bj_.png 0.73 kB dist/assets/block_strong_empty-CEXLbkCe.png 0.73 kB dist/assets/hud_character_4-B4X75SYh.png 0.77 kB dist/assets/button_rectangle_depth_flat-CeRxlf6C.png 0.78 kB dist/assets/button_rectangle_depth_flat-CpP-C2jB.png 0.78 kB dist/assets/panel_beigeLight-6djPtQM6.png 0.78 kB dist/assets/button_rectangle_depth_flat-Bjen5_k2.png 0.78 kB dist/assets/block_blue-BFzfMpxU.png 0.80 kB dist/assets/block_green-DoVnEOFi.png 0.80 kB dist/assets/block_yellow-BJJhbOnH.png 0.80 kB dist/assets/block_red-U5K0epKM.png 0.81 kB dist/assets/hud_character_1-D30m-cUy.png 0.82 kB dist/assets/block_metal-HeEw6Ft3.png 0.92 kB dist/assets/terrain_stone_vertical_middle-C8sA0aT-.png 0.93 kB dist/assets/terrain_stone_horizontal_middle-CPBO8mG-.png 0.97 kB dist/assets/hud_character_7-1vpkekg-.png 1.05 kB dist/assets/ramp-yB0FxWuk.png 1.06 kB dist/assets/slime_normal_flat-CPNsFeTf.png 1.07 kB dist/assets/hud_character_5-H_zTIWTj.png 1.10 kB dist/assets/hud_character_2-DdgRetcd.png 1.11 kB dist/assets/hud_character_0-D-beXF0C.png 1.14 kB dist/assets/hud_character_6-CoQZDPAu.png 1.15 kB dist/assets/hud_character_8-DSuv24Rh.png 1.16 kB dist/assets/hud_character_9-D09Snwh0.png 1.16 kB dist/assets/terrain_stone_block_bottom_right-B8KPlYln.png 1.16 kB dist/assets/hud_character_3-92VVq8jX.png 1.17 kB dist/assets/terrain_stone_block_bottom_left-CbgOlVHq.png 1.17 kB dist/assets/icon_move-DoAlveDl.png 1.18 kB dist/assets/slime_block_rest-DvyOnEnq.png 1.21 kB dist/assets/heart-B5xfXfO6.png 1.22 kB dist/assets/flag_green_a-DZJ6ohZZ.png 1.29 kB dist/assets/icon_wait-CDPU03Sb.png 1.31 kB dist/assets/terrain_stone_block_top_left-XgA3Squt.png 1.32 kB dist/assets/terrain_stone_block_top_right-CPLuw5ve.png 1.33 kB dist/assets/slime_block_walk_b-Bn2nbINQ.png 1.33 kB dist/assets/charge_decoy-uJnlsYHR.png 1.33 kB dist/assets/slime_block_walk_a-B9kH-UEZ.png 1.34 kB dist/assets/slime_block_jump-CkgwXA9Q.png 1.35 kB dist/assets/block_strong_danger-DZNQyloF.png 1.35 kB dist/assets/gem_yellow-CVtOeu_a.png 1.39 kB dist/assets/gem_green-BZoJhaX-.png 1.42 kB dist/assets/gem_red-BxP5HD_Z.png 1.43 kB dist/assets/gem_blue-0PmWQZ5N.png 1.43 kB dist/assets/lock_yellow-BkfWK4ns.png 1.45 kB dist/assets/smaller-KljWsB1L.png 1.45 kB dist/assets/chain-DOwFFF3h.png 1.45 kB dist/assets/spikes-B7yQsCiu.png 1.46 kB dist/assets/switch_blue-BUEjmO1S.png 1.49 kB dist/assets/larger-ySwE8bJr.png 1.52 kB dist/assets/cancel-xxaCOqX4.png 1.55 kB dist/assets/slime_normal_rest-BE2I4a9u.png 1.56 kB dist/assets/dice_3D_detailed-CyxkNNgV.png 1.56 kB dist/assets/slime_normal_walk_b-AHxbYTZg.png 1.64 kB dist/assets/rock-DEghCPal.png 1.65 kB dist/assets/slime_normal_walk_a-CR9Vf-Gl.png 1.67 kB dist/assets/hud_heart_empty-DrVQ0rwl.png 1.68 kB dist/assets/hud_heart-DMWL1Iog.png 1.68 kB dist/assets/door_open_top-Bec1zXUR.png 1.69 kB dist/assets/question-L8GorbFa.png 1.71 kB dist/assets/lever-kYSKcI-e.png 1.80 kB dist/assets/zoom-Dq4o1JF5.png 1.81 kB dist/assets/return-Dc5MGV5X.png 1.81 kB dist/assets/icon_fuse-DtmKmQUM.png 1.82 kB dist/assets/bomb-BtHNJO54.png 1.95 kB dist/assets/bomb_active-R3d2ICtK.png 1.97 kB dist/assets/coin_silver-6jziWs-Y.png 2.00 kB dist/assets/mouse_rest-ClZh37SZ.png 2.03 kB dist/assets/bridge_logs-D2omcsFK.png 2.04 kB dist/assets/door_closed_top-BId0Useu.png 2.06 kB dist/assets/slime_fire_flat-DDBbR1cD.png 2.10 kB dist/assets/coin_bronze-Bc3zxzLp.png 2.13 kB dist/assets/bush-D4e-CA81.png 2.14 kB dist/assets/mouse_walk_a-D6WWHiBF.png 2.15 kB dist/assets/coin_gold-CQQ9Ks9J.png 2.16 kB dist/assets/mouse_walk_b-BZfoKbEB.png 2.17 kB dist/assets/powerup_run-BSY-8lDb.png 2.21 kB dist/assets/powerup_teleport-C3-w_vcy.png 2.25 kB dist/assets/powerup_slide-DFZvRVFB.png 2.25 kB dist/assets/weight-BKRsH4_Q.png 2.27 kB dist/assets/sfx_select-C4ld5733.mp3 2.28 kB dist/assets/star-Wk5aU7un.png 2.36 kB dist/assets/sfx_bump-B7v4rHM_.mp3 2.39 kB dist/assets/hud_coin-B2JMsd8Z.png 2.40 kB dist/assets/splat15-Dr_oR7xo.png 2.41 kB dist/assets/splat21-6Xtp5ZW4.png 2.46 kB dist/assets/button_round_depth_flat-BcAxdvrZ.png 2.47 kB dist/assets/block_planks-BnmrQY55.png 2.47 kB dist/assets/button_round_depth_flat-aj4RAIs5.png 2.47 kB dist/assets/powerup_diagonal-DTiXaWtV.png 2.48 kB dist/assets/fireball-DV6Plkp_.png 2.48 kB dist/assets/frog_rest-D8vSVyme.png 2.48 kB dist/assets/splat13-DBNww0wp.png 2.49 kB dist/assets/splat08-CvetTC2m.png 2.51 kB dist/assets/sfx_hurt-B7uC5Y7i.mp3 2.54 kB dist/assets/cursorHand_beige-BpfEfQ_1.svg 2.56 kB │ gzip: 0.89 kB dist/assets/frog_jump-DtvS6rZX.png 2.63 kB dist/assets/slime_fire_rest-Ci05jwuq.png 2.71 kB dist/assets/splat05-BOdH0x8e.png 2.72 kB dist/assets/splat00-Cdw9xPL6.png 2.72 kB dist/assets/slime_fire_walk_b-TMG3F3r5.png 2.76 kB dist/assets/sfx_throw-IcmvoL3b.mp3 2.78 kB dist/assets/splat11-DQ9SzSBa.png 2.79 kB dist/assets/splat24-BByRhZEk.png 2.80 kB dist/assets/slime_fire_walk_a-D-I2qFMX.png 2.83 kB dist/assets/sfx_jump-DjChNvLz.mp3 2.83 kB dist/assets/saw_rest-DuYp5CZV.png 2.93 kB dist/assets/splat03-BOo2eAQf.png 2.94 kB dist/assets/hud_player_helmet_green-BDdh1dul.png 2.99 kB dist/assets/saw_a-Cm9zmMz8.png 3.04 kB dist/assets/splat27-Dojw7Mm2.png 3.07 kB dist/assets/charge_shield-D2cdn0fQ.png 3.09 kB dist/assets/fly_b-ooBz86GV.png 3.09 kB dist/assets/powerup_kick-DkMKkWkX.png 3.12 kB dist/assets/powerup_detonator-BGzNHRRD.png 3.13 kB dist/assets/character_green_duck-vqTEXp4Q.png 3.13 kB dist/assets/powerup_rpg-DQq37O9N.png 3.14 kB dist/assets/splat30-B2L7bI_v.png 3.15 kB dist/assets/character_green_climb_b-cAkDPB0z.png 3.16 kB dist/assets/powerup_throw-jz83Y_DS.png 3.18 kB dist/assets/character_green_climb_a-BdnHo2Lc.png 3.19 kB dist/assets/powerup_bomb_plus-DWAe-xpU.png 3.19 kB dist/assets/character_green_idle-BH37Ygh9.png 3.29 kB dist/assets/splat19-cYuqKHEp.png 3.31 kB dist/assets/saw_b-OQSNaBz-.png 3.32 kB dist/assets/character_green_walk_a-C1dkKNXj.png 3.32 kB dist/assets/frog_idle-BEiVlOxC.png 3.33 kB dist/assets/fly_rest-HDbBrfGx.png 3.34 kB dist/assets/character_green_front-B0NeJ0g6.png 3.34 kB dist/assets/fly_a-Bhi7L4Hv.png 3.37 kB dist/assets/splat02-CXDEWj8b.png 3.38 kB dist/assets/character_green_jump-BsvY4lZV.png 3.38 kB dist/assets/tap-a-1cq5pC9_.mp3 3.38 kB dist/assets/character_green_walk_b-COcSQMYi.png 3.42 kB dist/assets/gem_rainbow-D0ZNNAds.png 3.43 kB dist/assets/character_green_hit-bGpqPKkU.png 3.44 kB dist/assets/splat33-CyhX8WCv.png 3.63 kB dist/assets/oil-B-G-pwIQ.png 3.73 kB dist/index.html 3.78 kB │ gzip: 1.16 kB dist/assets/sfx_coin-CxfbCuDT.mp3 3.82 kB dist/assets/charge_freeze-SlqOoyrI.png 3.84 kB dist/assets/sfx_gem-0kda12Xe.mp3 4.58 kB dist/assets/sfx_magic-BiCfUoIe.mp3 4.66 kB dist/assets/powerup_flame_pass-J1pE3wPF.png 5.72 kB dist/assets/powerup_tnt-CeQCK8MM.png 5.73 kB dist/assets/sfx_jump-high-Bsrhxx2Z.mp3 5.86 kB dist/assets/switch-a-CCKFDxvU.mp3 6.09 kB dist/assets/powerup_proximity-DlQQd3wj.png 6.15 kB dist/assets/powerup_bomb_pass-BrvgonKX.png 6.28 kB dist/assets/powerup_fire_plus-BNhxhbcp.png 6.39 kB dist/assets/charge_nuke-Cooh6Khb.png 6.57 kB dist/assets/charge_icbm-DgGc2aC-.png 6.72 kB dist/assets/charge_acid-BISbgBoP.png 7.04 kB dist/assets/grass_a-pqyEcuWt.png 7.26 kB dist/assets/powerup_wall_pass-jG6fCYv8.png 7.26 kB dist/assets/sfx_disappear-FqTOIA2b.mp3 7.45 kB dist/assets/powerup_fuse_plus-CEXVlHz4.png 7.59 kB dist/assets/grass_b-_mTfZlCw.png 8.04 kB dist/assets/canopy_b-DO9VegbN.png 8.52 kB dist/assets/canopy_a-BvTv7ZXj.png 8.75 kB dist/assets/grass_d-Cqq2QF-J.png 10.85 kB dist/assets/grass_c-Dt_XEkgd.png 11.79 kB dist/assets/arrowRight-B4opVS7m.png 15.28 kB dist/assets/Kenney Future-DVB-apiN.ttf 34.16 kB dist/assets/padart-nintendo-Dy26DI-B.png 52.69 kB dist/assets/padart-xbox-l-hJ3cW6.png 60.70 kB dist/assets/scene-worker-CHa_a51r.js 68.79 kB dist/assets/padart-playstation-DVr5HwP9.png 74.50 kB dist/assets/index-C6sbfyDG.css 32.29 kB │ gzip: 7.57 kB dist/assets/index-B6qm3J2L.js 399.36 kB │ gzip: 140.34 kB ✓ built in 698ms $ mv dist public $ test -f public/index.html || (echo "no index.html at artifact root" && exit 1)