@v12-engine/engine 0.1.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abilities/amounts.d.ts +28 -0
- package/dist/abilities/amounts.js +74 -0
- package/dist/abilities/amounts.js.map +1 -0
- package/dist/abilities/buffs.d.ts +106 -6
- package/dist/abilities/buffs.js +443 -0
- package/dist/abilities/buffs.js.map +1 -0
- package/dist/abilities/castTold.d.ts +2 -0
- package/dist/abilities/castTold.js +66 -0
- package/dist/abilities/castTold.js.map +1 -0
- package/dist/abilities/chance.d.ts +38 -0
- package/dist/abilities/chance.js +77 -0
- package/dist/abilities/chance.js.map +1 -0
- package/dist/abilities/charges.d.ts +18 -0
- package/dist/abilities/charges.js +101 -0
- package/dist/abilities/charges.js.map +1 -0
- package/dist/abilities/control.d.ts +28 -0
- package/dist/abilities/control.js +113 -0
- package/dist/abilities/control.js.map +1 -0
- package/dist/abilities/dispel.js +51 -0
- package/dist/abilities/dispel.js.map +1 -0
- package/dist/abilities/effectFields.d.ts +1 -1
- package/dist/abilities/effectFields.js +676 -0
- package/dist/abilities/effectFields.js.map +1 -0
- package/dist/abilities/effectIndex.d.ts +27 -0
- package/dist/abilities/effectIndex.js +64 -0
- package/dist/abilities/effectIndex.js.map +1 -0
- package/dist/abilities/effects/buff.d.ts +9 -3
- package/dist/abilities/effects/buff.js +84 -0
- package/dist/abilities/effects/buff.js.map +1 -0
- package/dist/abilities/effects/conditions.d.ts +2 -0
- package/dist/abilities/effects/conditions.js +41 -0
- package/dist/abilities/effects/conditions.js.map +1 -0
- package/dist/abilities/effects/core.js +54 -0
- package/dist/abilities/effects/core.js.map +1 -0
- package/dist/abilities/effects/damage.d.ts +1 -1
- package/dist/abilities/effects/damage.js +43 -0
- package/dist/abilities/effects/damage.js.map +1 -0
- package/dist/abilities/effects/heal.d.ts +2 -2
- package/dist/abilities/effects/heal.js +51 -0
- package/dist/abilities/effects/heal.js.map +1 -0
- package/dist/abilities/effects/missile.d.ts +13 -1
- package/dist/abilities/effects/missile.js +104 -0
- package/dist/abilities/effects/missile.js.map +1 -0
- package/dist/abilities/effects/morph.d.ts +5 -0
- package/dist/abilities/effects/morph.js +43 -0
- package/dist/abilities/effects/morph.js.map +1 -0
- package/dist/abilities/effects/moves.d.ts +16 -4
- package/dist/abilities/effects/moves.js +212 -0
- package/dist/abilities/effects/moves.js.map +1 -0
- package/dist/abilities/effects/passives.d.ts +19 -9
- package/dist/abilities/effects/passives.js +131 -0
- package/dist/abilities/effects/passives.js.map +1 -0
- package/dist/abilities/effects/proxy.d.ts +5 -0
- package/dist/abilities/effects/proxy.js +60 -0
- package/dist/abilities/effects/proxy.js.map +1 -0
- package/dist/abilities/effects/sight.d.ts +2 -2
- package/dist/abilities/effects/sight.js +39 -0
- package/dist/abilities/effects/sight.js.map +1 -0
- package/dist/abilities/effects/spawn.d.ts +5 -2
- package/dist/abilities/effects/spawn.js +40 -0
- package/dist/abilities/effects/spawn.js.map +1 -0
- package/dist/abilities/effects/timed.d.ts +2 -2
- package/dist/abilities/effects/timed.js +96 -0
- package/dist/abilities/effects/timed.js.map +1 -0
- package/dist/abilities/effects/trade.d.ts +1 -1
- package/dist/abilities/effects/trade.js +25 -0
- package/dist/abilities/effects/trade.js.map +1 -0
- package/dist/abilities/effects.d.ts +97 -23
- package/dist/abilities/effects.js +860 -0
- package/dist/abilities/effects.js.map +1 -0
- package/dist/abilities/land.d.ts +38 -4
- package/dist/abilities/land.js +189 -0
- package/dist/abilities/land.js.map +1 -0
- package/dist/abilities/recast.d.ts +45 -0
- package/dist/abilities/recast.js +118 -0
- package/dist/abilities/recast.js.map +1 -0
- package/dist/abilities/scaled.js +40 -0
- package/dist/abilities/scaled.js.map +1 -0
- package/dist/abilities/screen.d.ts +6 -0
- package/dist/abilities/screen.js +83 -0
- package/dist/abilities/screen.js.map +1 -0
- package/dist/abilities/shapes.d.ts +66 -0
- package/dist/abilities/shapes.js +122 -0
- package/dist/abilities/shapes.js.map +1 -0
- package/dist/abilities/text.d.ts +14 -2
- package/dist/abilities/text.js +204 -0
- package/dist/abilities/text.js.map +1 -0
- package/dist/abilities/triggers.d.ts +98 -0
- package/dist/abilities/triggers.js +351 -0
- package/dist/abilities/triggers.js.map +1 -0
- package/dist/abilityChanges.d.ts +131 -0
- package/dist/abilityChanges.js +345 -0
- package/dist/abilityChanges.js.map +1 -0
- package/dist/ai/area.d.ts +4 -1
- package/dist/ai/brain.d.ts +4 -1
- package/dist/ai/brain.js +844 -0
- package/dist/ai/brain.js.map +1 -0
- package/dist/ai/budget.js +74 -0
- package/dist/ai/budget.js.map +1 -0
- package/dist/ai/checks.d.ts +9 -1
- package/dist/ai/checks.js +242 -0
- package/dist/ai/checks.js.map +1 -0
- package/dist/ai/computer.d.ts +11 -4
- package/dist/ai/computer.js +251 -0
- package/dist/ai/computer.js.map +1 -0
- package/dist/ai/defence.d.ts +4 -0
- package/dist/ai/defence.js +430 -0
- package/dist/ai/defence.js.map +1 -0
- package/dist/ai/define.d.ts +3 -2
- package/dist/ai/define.js +31 -0
- package/dist/ai/define.js.map +1 -0
- package/dist/ai/economy.d.ts +10 -7
- package/dist/ai/economy.js +780 -0
- package/dist/ai/economy.js.map +1 -0
- package/dist/ai/geometry.js +38 -0
- package/dist/ai/geometry.js.map +1 -0
- package/dist/ai/goals.d.ts +1 -0
- package/dist/ai/goals.js +560 -0
- package/dist/ai/goals.js.map +1 -0
- package/dist/ai/knowledge.d.ts +72 -7
- package/dist/ai/knowledge.js +804 -0
- package/dist/ai/knowledge.js.map +1 -0
- package/dist/ai/lanes.d.ts +10 -2
- package/dist/ai/lanes.js +715 -0
- package/dist/ai/lanes.js.map +1 -0
- package/dist/ai/melee/build.js +264 -0
- package/dist/ai/melee/build.js.map +1 -0
- package/dist/ai/melee/goals.d.ts +7 -0
- package/dist/ai/melee/goals.js +720 -0
- package/dist/ai/melee/goals.js.map +1 -0
- package/dist/ai/melee/heroes.js +68 -0
- package/dist/ai/melee/heroes.js.map +1 -0
- package/dist/ai/melee/index.d.ts +1 -1
- package/dist/ai/melee/index.js +51 -0
- package/dist/ai/melee/index.js.map +1 -0
- package/dist/ai/melee/production.js +29 -0
- package/dist/ai/melee/production.js.map +1 -0
- package/dist/ai/melee/surrender.js +64 -0
- package/dist/ai/melee/surrender.js.map +1 -0
- package/dist/ai/micro.d.ts +9 -0
- package/dist/ai/micro.js +1316 -0
- package/dist/ai/micro.js.map +1 -0
- package/dist/ai/mission.d.ts +9 -2
- package/dist/ai/mission.js +538 -0
- package/dist/ai/mission.js.map +1 -0
- package/dist/ai/missionRules.d.ts +1 -1
- package/dist/ai/missionRules.js +26 -0
- package/dist/ai/missionRules.js.map +1 -0
- package/dist/ai/module.d.ts +6 -2
- package/dist/ai/module.js +37 -0
- package/dist/ai/module.js.map +1 -0
- package/dist/ai/options.d.ts +3 -3
- package/dist/ai/plans/build.d.ts +20 -1
- package/dist/ai/plans/build.js +608 -0
- package/dist/ai/plans/build.js.map +1 -0
- package/dist/ai/plans/placement.d.ts +4 -1
- package/dist/ai/plans/placement.js +295 -0
- package/dist/ai/plans/placement.js.map +1 -0
- package/dist/ai/plans/plans.d.ts +9 -0
- package/dist/ai/plans/plans.js +110 -0
- package/dist/ai/plans/plans.js.map +1 -0
- package/dist/ai/plans/production.d.ts +14 -2
- package/dist/ai/plans/production.js +434 -0
- package/dist/ai/plans/production.js.map +1 -0
- package/dist/ai/plans/purse.d.ts +6 -3
- package/dist/ai/plans/purse.js +139 -0
- package/dist/ai/plans/purse.js.map +1 -0
- package/dist/ai/plans/tech.d.ts +6 -0
- package/dist/ai/plans/tech.js +122 -0
- package/dist/ai/plans/tech.js.map +1 -0
- package/dist/ai/profiles.d.ts +4 -4
- package/dist/{profiles-B3NS9jwk.js → ai/profiles.js} +3 -98
- package/dist/ai/profiles.js.map +1 -0
- package/dist/ai/reach.js +54 -0
- package/dist/ai/reach.js.map +1 -0
- package/dist/ai/report.d.ts +8 -0
- package/dist/ai/report.js +87 -0
- package/dist/ai/report.js.map +1 -0
- package/dist/ai/roles.d.ts +4 -0
- package/dist/ai/roles.js +207 -0
- package/dist/ai/roles.js.map +1 -0
- package/dist/ai/rules.d.ts +8 -2
- package/dist/ai/rules.js +416 -0
- package/dist/ai/rules.js.map +1 -0
- package/dist/ai/scouting.d.ts +6 -0
- package/dist/ai/scouting.js +324 -0
- package/dist/ai/scouting.js.map +1 -0
- package/dist/ai/settings.js +99 -0
- package/dist/ai/settings.js.map +1 -0
- package/dist/ai/squads.d.ts +21 -2
- package/dist/ai/squads.js +916 -0
- package/dist/ai/squads.js.map +1 -0
- package/dist/ai/strength.js +320 -0
- package/dist/ai/strength.js.map +1 -0
- package/dist/ai/task.d.ts +3 -1
- package/dist/ai/task.js +17 -0
- package/dist/ai/task.js.map +1 -0
- package/dist/ai/tasks/attack.js +24 -0
- package/dist/ai/tasks/attack.js.map +1 -0
- package/dist/ai/tasks/capture.d.ts +3 -3
- package/dist/ai/tasks/capture.js +37 -0
- package/dist/ai/tasks/capture.js.map +1 -0
- package/dist/ai/tasks/creep.js +29 -0
- package/dist/ai/tasks/creep.js.map +1 -0
- package/dist/ai/tasks/defend.js +61 -0
- package/dist/ai/tasks/defend.js.map +1 -0
- package/dist/ai/tasks/drop.js +81 -0
- package/dist/ai/tasks/drop.js.map +1 -0
- package/dist/ai/tasks/escort.js +59 -0
- package/dist/ai/tasks/escort.js.map +1 -0
- package/dist/ai/tasks/gather.js +48 -0
- package/dist/ai/tasks/gather.js.map +1 -0
- package/dist/ai/tasks/harass.js +39 -0
- package/dist/ai/tasks/harass.js.map +1 -0
- package/dist/ai/tasks/hold.js +32 -0
- package/dist/ai/tasks/hold.js.map +1 -0
- package/dist/ai/tasks/index.js +34 -0
- package/dist/ai/tasks/index.js.map +1 -0
- package/dist/ai/tasks/move.js +26 -0
- package/dist/ai/tasks/move.js.map +1 -0
- package/dist/ai/tasks/patrol.js +59 -0
- package/dist/ai/tasks/patrol.js.map +1 -0
- package/dist/ai/tasks/retreat.js +28 -0
- package/dist/ai/tasks/retreat.js.map +1 -0
- package/dist/ai/tasks/scout.js +73 -0
- package/dist/ai/tasks/scout.js.map +1 -0
- package/dist/ai/tasks/shared.d.ts +1 -1
- package/dist/ai/tasks/shared.js +137 -0
- package/dist/ai/tasks/shared.js.map +1 -0
- package/dist/ai/team.d.ts +18 -1
- package/dist/ai/team.js +492 -0
- package/dist/ai/team.js.map +1 -0
- package/dist/ai/threat.d.ts +6 -0
- package/dist/ai/threat.js +206 -0
- package/dist/ai/threat.js.map +1 -0
- package/dist/ai/view.d.ts +21 -7
- package/dist/ai/view.js +677 -0
- package/dist/ai/view.js.map +1 -0
- package/dist/ai/waves.d.ts +6 -0
- package/dist/ai/waves.js +410 -0
- package/dist/ai/waves.js.map +1 -0
- package/dist/ai.js +54 -6239
- package/dist/aiTesting.d.ts +6 -3
- package/dist/aiTesting.js +229 -0
- package/dist/aiTesting.js.map +1 -0
- package/dist/areas.d.ts +4 -1
- package/dist/areas.js +295 -0
- package/dist/areas.js.map +1 -0
- package/dist/attacks.d.ts +3 -3
- package/dist/attacks.js +127 -0
- package/dist/attacks.js.map +1 -0
- package/dist/burning.d.ts +267 -0
- package/dist/burning.js +795 -0
- package/dist/burning.js.map +1 -0
- package/dist/bytes.js +21 -0
- package/dist/bytes.js.map +1 -0
- package/dist/callings.d.ts +71 -0
- package/dist/callings.js +157 -0
- package/dist/callings.js.map +1 -0
- package/dist/cameraOrders.d.ts +78 -0
- package/dist/cameraOrders.js +114 -0
- package/dist/cameraOrders.js.map +1 -0
- package/dist/camps.d.ts +70 -4
- package/dist/camps.js +501 -0
- package/dist/camps.js.map +1 -0
- package/dist/capture.d.ts +15 -3
- package/dist/capture.js +304 -0
- package/dist/capture.js.map +1 -0
- package/dist/cellLayers.d.ts +78 -13
- package/dist/cellLayers.js +275 -0
- package/dist/cellLayers.js.map +1 -0
- package/dist/cellPatches.d.ts +24 -0
- package/dist/cellPatches.js +73 -0
- package/dist/cellPatches.js.map +1 -0
- package/dist/cinematics.d.ts +10 -5
- package/dist/cinematics.js +161 -0
- package/dist/cinematics.js.map +1 -0
- package/dist/clock.d.ts +2 -2
- package/dist/clock.js +78 -0
- package/dist/clock.js.map +1 -0
- package/dist/commands.d.ts +36 -4
- package/dist/commands.js +636 -0
- package/dist/commands.js.map +1 -0
- package/dist/components.d.ts +31 -10
- package/dist/components.js +74 -0
- package/dist/components.js.map +1 -0
- package/dist/computers.d.ts +4 -4
- package/dist/computers.js +194 -0
- package/dist/computers.js.map +1 -0
- package/dist/concealment.d.ts +25 -2
- package/dist/concealment.js +409 -0
- package/dist/concealment.js.map +1 -0
- package/dist/coreComponents.js +130 -0
- package/dist/coreComponents.js.map +1 -0
- package/dist/createGame.d.ts +306 -0
- package/dist/createGame.js +405 -0
- package/dist/createGame.js.map +1 -0
- package/dist/dashing.d.ts +18 -2
- package/dist/dashing.js +41 -0
- package/dist/dashing.js.map +1 -0
- package/dist/debug.d.ts +8 -0
- package/dist/debug.js +5 -3
- package/dist/debug2.js +76 -0
- package/dist/debug2.js.map +1 -0
- package/dist/debugCommands.d.ts +6 -6
- package/dist/debugCommands.js +537 -0
- package/dist/debugCommands.js.map +1 -0
- package/dist/debugging.d.ts +1 -0
- package/dist/defaultSets.d.ts +183 -0
- package/dist/defaultSets.js +216 -0
- package/dist/defaultSets.js.map +1 -0
- package/dist/definitions.d.ts +6 -0
- package/dist/definitions.js +78 -0
- package/dist/definitions.js.map +1 -0
- package/dist/defs.d.ts +1895 -165
- package/dist/defs.js +380 -0
- package/dist/defs.js.map +1 -0
- package/dist/denying.d.ts +4 -4
- package/dist/denying.js +106 -0
- package/dist/denying.js.map +1 -0
- package/dist/destructibles.d.ts +2 -2
- package/dist/destructibles.js +36 -0
- package/dist/destructibles.js.map +1 -0
- package/dist/determinism.d.ts +4 -4
- package/dist/determinism.js +247 -0
- package/dist/determinism.js.map +1 -0
- package/dist/dialog.d.ts +17 -2
- package/dist/dialog.js +108 -0
- package/dist/dialog.js.map +1 -0
- package/dist/effectRefs.js +28 -0
- package/dist/effectRefs.js.map +1 -0
- package/dist/effects.d.ts +27 -11
- package/dist/effects.js +110 -0
- package/dist/effects.js.map +1 -0
- package/dist/endings.d.ts +1 -1
- package/dist/endings.js +78 -0
- package/dist/endings.js.map +1 -0
- package/dist/engagement.d.ts +40 -6
- package/dist/engagement.js +530 -0
- package/dist/engagement.js.map +1 -0
- package/dist/engineEvents.d.ts +72 -9
- package/dist/engineEvents.js +520 -0
- package/dist/engineEvents.js.map +1 -0
- package/dist/entity.d.ts +275 -26
- package/dist/entity.js +441 -0
- package/dist/entity.js.map +1 -0
- package/dist/entityIndex.d.ts +10 -3
- package/dist/entityIndex.js +149 -0
- package/dist/entityIndex.js.map +1 -0
- package/dist/errors.d.ts +6 -2
- package/dist/errors.js +59 -0
- package/dist/errors.js.map +1 -0
- package/dist/events.d.ts +11 -5
- package/dist/events.js +158 -0
- package/dist/events.js.map +1 -0
- package/dist/exactMath.js +273 -0
- package/dist/exactMath.js.map +1 -0
- package/dist/features.d.ts +1 -1
- package/dist/features.js +127 -0
- package/dist/features.js.map +1 -0
- package/dist/fields.d.ts +25 -5
- package/dist/fields.js +140 -0
- package/dist/fields.js.map +1 -0
- package/dist/fixture.d.ts +3 -3
- package/dist/fixture.js +512 -0
- package/dist/fixture.js.map +1 -0
- package/dist/fog.d.ts +26 -3
- package/dist/fog.js +333 -0
- package/dist/fog.js.map +1 -0
- package/dist/foliage.d.ts +476 -0
- package/dist/foliage.js +1478 -0
- package/dist/foliage.js.map +1 -0
- package/dist/foliageDebug.d.ts +57 -0
- package/dist/foliageDebug.js +172 -0
- package/dist/foliageDebug.js.map +1 -0
- package/dist/foliageRegrowth.d.ts +20 -0
- package/dist/foliageRegrowth.js +332 -0
- package/dist/foliageRegrowth.js.map +1 -0
- package/dist/formState.d.ts +67 -0
- package/dist/formState.js +65 -0
- package/dist/formState.js.map +1 -0
- package/dist/formation.d.ts +46 -8
- package/dist/formation.js +297 -0
- package/dist/formation.js.map +1 -0
- package/dist/forms.d.ts +58 -0
- package/dist/forms.js +146 -0
- package/dist/forms.js.map +1 -0
- package/dist/friendlyFire.d.ts +2 -2
- package/dist/friendlyFire.js +37 -0
- package/dist/friendlyFire.js.map +1 -0
- package/dist/game.d.ts +141 -48
- package/dist/game.js +834 -0
- package/dist/game.js.map +1 -0
- package/dist/gameData.d.ts +96 -22
- package/dist/gameData.js +1690 -0
- package/dist/gameData.js.map +1 -0
- package/dist/gameFiles.d.ts +3 -3
- package/dist/gameFiles.js +14 -0
- package/dist/gameFiles.js.map +1 -0
- package/dist/gates.js +92 -0
- package/dist/gates.js.map +1 -0
- package/dist/generate.d.ts +28 -1
- package/dist/generate.js +1062 -0
- package/dist/generate.js.map +1 -0
- package/dist/generateWorker.d.ts +7 -3
- package/dist/generateWorker.js +86 -0
- package/dist/generateWorker.js.map +1 -0
- package/dist/grid.d.ts +9 -0
- package/dist/grid.js +102 -0
- package/dist/grid.js.map +1 -0
- package/dist/ground.d.ts +17 -1
- package/dist/ground.js +375 -0
- package/dist/ground.js.map +1 -0
- package/dist/groundObjects.d.ts +70 -0
- package/dist/groundObjects.js +371 -0
- package/dist/groundObjects.js.map +1 -0
- package/dist/groundSpeed.d.ts +20 -3
- package/dist/groundSpeed.js +117 -0
- package/dist/groundSpeed.js.map +1 -0
- package/dist/hero.d.ts +126 -10
- package/dist/hero.js +432 -0
- package/dist/hero.js.map +1 -0
- package/dist/holds.d.ts +94 -0
- package/dist/holds.js +305 -0
- package/dist/holds.js.map +1 -0
- package/dist/home.d.ts +1 -1
- package/dist/home.js +30 -0
- package/dist/home.js.map +1 -0
- package/dist/hooks.d.ts +339 -57
- package/dist/hooks.js +105 -0
- package/dist/hooks.js.map +1 -0
- package/dist/hotReload.d.ts +6 -5
- package/dist/hotReload.js +145 -0
- package/dist/hotReload.js.map +1 -0
- package/dist/ids.d.ts +3 -3
- package/dist/ids.js +30 -0
- package/dist/ids.js.map +1 -0
- package/dist/idsFile.d.ts +36 -0
- package/dist/idsFile.js +134 -0
- package/dist/idsFile.js.map +1 -0
- package/dist/index.d.ts +105 -68
- package/dist/index.js +194 -4701
- package/dist/inspect.d.ts +29 -2
- package/dist/{inspect-D9dWHmZ0.js → inspect.js} +21 -12
- package/dist/inspect.js.map +1 -0
- package/dist/inventory.d.ts +14 -1
- package/dist/inventory.js +84 -0
- package/dist/inventory.js.map +1 -0
- package/dist/items.d.ts +136 -8
- package/dist/items.js +585 -0
- package/dist/items.js.map +1 -0
- package/dist/lanes.d.ts +12 -3
- package/dist/lanes.js +496 -0
- package/dist/lanes.js.map +1 -0
- package/dist/life.d.ts +6 -2
- package/dist/life.js +287 -0
- package/dist/life.js.map +1 -0
- package/dist/log.d.ts +26 -3
- package/dist/log.js +192 -0
- package/dist/log.js.map +1 -0
- package/dist/manaBurn.d.ts +2 -2
- package/dist/manaBurn.js +75 -0
- package/dist/manaBurn.js.map +1 -0
- package/dist/map/file.d.ts +56 -3
- package/dist/map/file.js +264 -0
- package/dist/map/file.js.map +1 -0
- package/dist/map/images.js +61 -0
- package/dist/map/images.js.map +1 -0
- package/dist/map/look.d.ts +1 -1
- package/dist/map/look.js +30 -0
- package/dist/map/look.js.map +1 -0
- package/dist/map/pathProfile.js +183 -0
- package/dist/map/pathProfile.js.map +1 -0
- package/dist/map/resize.d.ts +4 -0
- package/dist/map/resize.js +136 -0
- package/dist/map/resize.js.map +1 -0
- package/dist/map/schema.js +257 -0
- package/dist/map/schema.js.map +1 -0
- package/dist/map/terrain.js +214 -0
- package/dist/map/terrain.js.map +1 -0
- package/dist/map/types.d.ts +92 -13
- package/dist/map/types.js +251 -0
- package/dist/map/types.js.map +1 -0
- package/dist/mapCheck/cells.js +94 -0
- package/dist/mapCheck/cells.js.map +1 -0
- package/dist/mapCheck/rules/foliage.d.ts +9 -0
- package/dist/mapCheck/rules/foliage.js +83 -0
- package/dist/mapCheck/rules/foliage.js.map +1 -0
- package/dist/mapCheck/rules/names.js +39 -0
- package/dist/mapCheck/rules/names.js.map +1 -0
- package/dist/mapCheck/rules/objects.d.ts +1 -1
- package/dist/mapCheck/rules/objects.js +56 -0
- package/dist/mapCheck/rules/objects.js.map +1 -0
- package/dist/mapCheck/rules/paths.js +32 -0
- package/dist/mapCheck/rules/paths.js.map +1 -0
- package/dist/mapCheck/rules/players.js +20 -0
- package/dist/mapCheck/rules/players.js.map +1 -0
- package/dist/mapCheck/rules/races.js +56 -0
- package/dist/mapCheck/rules/races.js.map +1 -0
- package/dist/mapCheck/rules/random.js +47 -0
- package/dist/mapCheck/rules/random.js.map +1 -0
- package/dist/mapCheck/rules/regions.js +30 -0
- package/dist/mapCheck/rules/regions.js.map +1 -0
- package/dist/mapCheck/rules/targets.js +31 -0
- package/dist/mapCheck/rules/targets.js.map +1 -0
- package/dist/mapCheck/rules/walking.js +45 -0
- package/dist/mapCheck/rules/walking.js.map +1 -0
- package/dist/mapCheck.d.ts +2 -2
- package/dist/mapCheck.js +63 -0
- package/dist/mapCheck.js.map +1 -0
- package/dist/mapFields.d.ts +25 -2
- package/dist/mapFields.js +134 -0
- package/dist/mapFields.js.map +1 -0
- package/dist/mapFile.js +176 -0
- package/dist/mapFile.js.map +1 -0
- package/dist/mapMeasure.d.ts +8 -0
- package/dist/mapMeasure.js +283 -0
- package/dist/mapMeasure.js.map +1 -0
- package/dist/mapMerge.d.ts +1 -0
- package/dist/mapMerge.js +172 -0
- package/dist/mapMerge.js.map +1 -0
- package/dist/mapObjectives.js +138 -0
- package/dist/mapObjectives.js.map +1 -0
- package/dist/mapObjects.js +80 -0
- package/dist/mapObjects.js.map +1 -0
- package/dist/math.d.ts +37 -7
- package/dist/math.js +155 -0
- package/dist/math.js.map +1 -0
- package/dist/messages.d.ts +71 -4
- package/dist/messages.js +29 -0
- package/dist/messages.js.map +1 -0
- package/dist/missionRules.d.ts +10 -2
- package/dist/{missionRules-C-bGxm0Q.js → missionRules.js} +30 -150
- package/dist/missionRules.js.map +1 -0
- package/dist/mods.d.ts +39 -20
- package/dist/mods.js +271 -0
- package/dist/mods.js.map +1 -0
- package/dist/moves.d.ts +87 -0
- package/dist/moves.js +539 -0
- package/dist/moves.js.map +1 -0
- package/dist/names.d.ts +7 -0
- package/dist/names.js +122 -0
- package/dist/names.js.map +1 -0
- package/dist/navigation/agentParams.js +14 -0
- package/dist/navigation/agentParams.js.map +1 -0
- package/dist/navigation/air.d.ts +7 -3
- package/dist/navigation/air.js +401 -0
- package/dist/navigation/air.js.map +1 -0
- package/dist/navigation/builds.d.ts +34 -2
- package/dist/navigation/builds.js +287 -0
- package/dist/navigation/builds.js.map +1 -0
- package/dist/navigation/groundAreas.d.ts +59 -1
- package/dist/navigation/groundAreas.js +407 -0
- package/dist/navigation/groundAreas.js.map +1 -0
- package/dist/navigation/navigation.d.ts +98 -9
- package/dist/navigation/recast.d.ts +194 -18
- package/dist/navigation/recast.js +1379 -0
- package/dist/navigation/recast.js.map +1 -0
- package/dist/navigation/sidePaths.d.ts +8 -3
- package/dist/navigation/sidePaths.js +241 -0
- package/dist/navigation/sidePaths.js.map +1 -0
- package/dist/navigation/sized.js +243 -0
- package/dist/navigation/sized.js.map +1 -0
- package/dist/nearest.js +32 -0
- package/dist/nearest.js.map +1 -0
- package/dist/noise.js +59 -0
- package/dist/noise.js.map +1 -0
- package/dist/objectives.d.ts +12 -3
- package/dist/objectives.js +144 -0
- package/dist/objectives.js.map +1 -0
- package/dist/orders/basic.d.ts +5 -5
- package/dist/orders/basic.js +417 -0
- package/dist/orders/basic.js.map +1 -0
- package/dist/orders/build.js +278 -0
- package/dist/orders/build.js.map +1 -0
- package/dist/orders/cast.d.ts +13 -3
- package/dist/orders/cast.js +558 -0
- package/dist/orders/cast.js.map +1 -0
- package/dist/orders/facts.js +16 -0
- package/dist/orders/facts.js.map +1 -0
- package/dist/orders/harvest.d.ts +21 -5
- package/dist/orders/harvest.js +540 -0
- package/dist/orders/harvest.js.map +1 -0
- package/dist/orders/idle.d.ts +3 -1
- package/dist/orders/idle.js +234 -0
- package/dist/orders/idle.js.map +1 -0
- package/dist/orders/items.js +92 -0
- package/dist/orders/items.js.map +1 -0
- package/dist/orders/queue.js +108 -0
- package/dist/orders/queue.js.map +1 -0
- package/dist/orders/waiting.d.ts +39 -0
- package/dist/orders/waiting.js +149 -0
- package/dist/orders/waiting.js.map +1 -0
- package/dist/pack.schema.js +13 -0
- package/dist/pack.schema.js.map +1 -0
- package/dist/pack.schema.json +7622 -841
- package/dist/packs/director/index.d.ts +13 -5
- package/dist/packs/director/index.js +204 -0
- package/dist/packs/director/index.js.map +1 -0
- package/dist/packs/heroes/campaign.d.ts +3 -2
- package/dist/packs/heroes/campaign.js +241 -0
- package/dist/packs/heroes/campaign.js.map +1 -0
- package/dist/packs/heroes/carry.d.ts +6 -0
- package/dist/packs/heroes/carry.js +112 -0
- package/dist/packs/heroes/carry.js.map +1 -0
- package/dist/packs/heroes/commands.js +115 -0
- package/dist/packs/heroes/commands.js.map +1 -0
- package/dist/packs/heroes/fallen.d.ts +43 -0
- package/dist/packs/heroes/fallen.js +61 -0
- package/dist/packs/heroes/fallen.js.map +1 -0
- package/dist/packs/heroes/hire.js +60 -0
- package/dist/packs/heroes/hire.js.map +1 -0
- package/dist/packs/heroes/index.d.ts +7 -6
- package/dist/packs/heroes/index.js +130 -0
- package/dist/packs/heroes/index.js.map +1 -0
- package/dist/packs/heroes/loop.d.ts +95 -0
- package/dist/packs/heroes/loop.js +250 -0
- package/dist/packs/heroes/loop.js.map +1 -0
- package/dist/packs/heroes/making.d.ts +6 -3
- package/dist/packs/heroes/making.js +55 -0
- package/dist/packs/heroes/making.js.map +1 -0
- package/dist/packs/heroes/respawn.d.ts +3 -3
- package/dist/packs/heroes/respawn.js +87 -0
- package/dist/packs/heroes/respawn.js.map +1 -0
- package/dist/packs/heroes/sets.d.ts +32 -0
- package/dist/packs/heroes/sets.js +51 -0
- package/dist/packs/heroes/sets.js.map +1 -0
- package/dist/packs/heroes/spells.d.ts +16 -0
- package/dist/packs/heroes/spells.js +269 -0
- package/dist/packs/heroes/spells.js.map +1 -0
- package/dist/packs/items/defaults.d.ts +43 -0
- package/dist/packs/items/defaults.js +1504 -0
- package/dist/packs/items/defaults.js.map +1 -0
- package/dist/packs/items/index.d.ts +27 -0
- package/dist/packs/items/index.js +214 -0
- package/dist/packs/items/index.js.map +1 -0
- package/dist/packs/moba/index.d.ts +3 -3
- package/dist/packs/moba/index.js +174 -0
- package/dist/packs/moba/index.js.map +1 -0
- package/dist/packs/pack.d.ts +15 -15
- package/dist/packs/pack.js +14 -0
- package/dist/packs/pack.js.map +1 -0
- package/dist/packs.d.ts +15 -7
- package/dist/packs.js +222 -0
- package/dist/packs.js.map +1 -0
- package/dist/paths.d.ts +2 -0
- package/dist/paths.js +109 -0
- package/dist/paths.js.map +1 -0
- package/dist/plain.js +57 -0
- package/dist/plain.js.map +1 -0
- package/dist/player.d.ts +33 -10
- package/dist/player.js +159 -0
- package/dist/player.js.map +1 -0
- package/dist/portals.d.ts +1 -1
- package/dist/portals.js +194 -0
- package/dist/portals.js.map +1 -0
- package/dist/prefabs.d.ts +25 -2
- package/dist/prefabs.js +239 -0
- package/dist/prefabs.js.map +1 -0
- package/dist/presetBuildings.js +58 -0
- package/dist/presetBuildings.js.map +1 -0
- package/dist/presetFoliage.d.ts +27 -0
- package/dist/presetFoliage.js +98 -0
- package/dist/presetFoliage.js.map +1 -0
- package/dist/presetGround.js +65 -0
- package/dist/presetGround.js.map +1 -0
- package/dist/proxies.d.ts +12 -0
- package/dist/proxies.js +79 -0
- package/dist/proxies.js.map +1 -0
- package/dist/query.d.ts +56 -0
- package/dist/query.js +88 -0
- package/dist/query.js.map +1 -0
- package/dist/races.d.ts +15 -14
- package/dist/races.js +172 -0
- package/dist/races.js.map +1 -0
- package/dist/randomGroups.js +91 -0
- package/dist/randomGroups.js.map +1 -0
- package/dist/registry.d.ts +117 -53
- package/dist/registry.js +323 -0
- package/dist/registry.js.map +1 -0
- package/dist/remains.d.ts +11 -9
- package/dist/remains.js +188 -0
- package/dist/remains.js.map +1 -0
- package/dist/replication.d.ts +12 -7
- package/dist/replication.js +100 -0
- package/dist/replication.js.map +1 -0
- package/dist/rng.d.ts +2 -0
- package/dist/rng.js +40 -0
- package/dist/rng.js.map +1 -0
- package/dist/rules.d.ts +186 -99
- package/dist/rules.js +179 -0
- package/dist/rules.js.map +1 -0
- package/dist/rulesCheck.d.ts +5 -4
- package/dist/rulesCheck.js +693 -0
- package/dist/rulesCheck.js.map +1 -0
- package/dist/runes.d.ts +2 -2
- package/dist/runes.js +80 -0
- package/dist/runes.js.map +1 -0
- package/dist/save.d.ts +37 -12
- package/dist/save.js +532 -0
- package/dist/save.js.map +1 -0
- package/dist/scenario.d.ts +2 -2
- package/dist/scenario.js +99 -0
- package/dist/scenario.js.map +1 -0
- package/dist/scheduler.d.ts +3 -0
- package/dist/scheduler.js +156 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/score.d.ts +19 -19
- package/dist/score.js +709 -0
- package/dist/score.js.map +1 -0
- package/dist/sequences.d.ts +10 -6
- package/dist/sequences.js +206 -0
- package/dist/sequences.js.map +1 -0
- package/dist/server/doorman.js +154 -0
- package/dist/server/doorman.js.map +1 -0
- package/dist/server/gameServer.d.ts +16 -1
- package/dist/server/gameServer.js +643 -0
- package/dist/server/gameServer.js.map +1 -0
- package/dist/server/index.d.ts +1 -1
- package/dist/server/lobby.js +199 -0
- package/dist/server/lobby.js.map +1 -0
- package/dist/server/log.js +18 -0
- package/dist/server/log.js.map +1 -0
- package/dist/server/match.js +267 -0
- package/dist/server/match.js.map +1 -0
- package/dist/server/mode.d.ts +18 -9
- package/dist/server/mode.js +220 -0
- package/dist/server/mode.js.map +1 -0
- package/dist/{navigation-worker.js → server/navigation-worker.js} +1 -1
- package/dist/server/navigation-worker.js.map +1 -0
- package/dist/server/navigation.js +39 -0
- package/dist/server/navigation.js.map +1 -0
- package/dist/server/ops.d.ts +4 -0
- package/dist/server/ops.js +137 -0
- package/dist/server/ops.js.map +1 -0
- package/dist/server/packs.d.ts +3 -3
- package/dist/server/packs.js +32 -0
- package/dist/server/packs.js.map +1 -0
- package/dist/server/ratings.d.ts +5 -0
- package/dist/server/ratings.js +104 -0
- package/dist/server/ratings.js.map +1 -0
- package/dist/server/relay.d.ts +12 -2
- package/dist/server/relay.js +144 -0
- package/dist/server/relay.js.map +1 -0
- package/dist/server/rooms.d.ts +9 -2
- package/dist/server/rooms.js +442 -0
- package/dist/server/rooms.js.map +1 -0
- package/dist/server/seat.js +116 -0
- package/dist/server/seat.js.map +1 -0
- package/dist/server/seatSettings.d.ts +3 -3
- package/dist/server/seatSettings.js +63 -0
- package/dist/server/seatSettings.js.map +1 -0
- package/dist/server/secret.js +13 -0
- package/dist/server/secret.js.map +1 -0
- package/dist/server/start.d.ts +13 -6
- package/dist/server/start.js +76 -0
- package/dist/server/start.js.map +1 -0
- package/dist/server/websocket.d.ts +9 -1
- package/dist/server/websocket.js +306 -0
- package/dist/server/websocket.js.map +1 -0
- package/dist/server.js +15 -2861
- package/dist/session/can.js +26 -0
- package/dist/session/can.js.map +1 -0
- package/dist/session/commandReplay.d.ts +8 -2
- package/dist/session/commandReplay.js +293 -0
- package/dist/session/commandReplay.js.map +1 -0
- package/dist/session/debug.js +151 -0
- package/dist/session/debug.js.map +1 -0
- package/dist/session/delay.js +62 -0
- package/dist/session/delay.js.map +1 -0
- package/dist/session/delta.d.ts +14 -1
- package/dist/session/delta.js +407 -0
- package/dist/session/delta.js.map +1 -0
- package/dist/session/entityState.js +415 -0
- package/dist/session/entityState.js.map +1 -0
- package/dist/session/local.d.ts +47 -5
- package/dist/session/local.js +670 -0
- package/dist/session/local.js.map +1 -0
- package/dist/session/memory.d.ts +20 -2
- package/dist/session/memory.js +131 -0
- package/dist/session/memory.js.map +1 -0
- package/dist/session/protocol.d.ts +325 -31
- package/dist/session/protocol.js +55 -0
- package/dist/session/protocol.js.map +1 -0
- package/dist/session/remote.d.ts +74 -12
- package/dist/session/remote.js +1394 -0
- package/dist/session/remote.js.map +1 -0
- package/dist/session/replay.d.ts +11 -2
- package/dist/session/replay.js +160 -0
- package/dist/session/replay.js.map +1 -0
- package/dist/session/seed.js +12 -0
- package/dist/session/seed.js.map +1 -0
- package/dist/session/share.d.ts +5 -1
- package/dist/session/share.js +94 -0
- package/dist/session/share.js.map +1 -0
- package/dist/session/socket.d.ts +1 -1
- package/dist/session/socket.js +29 -0
- package/dist/session/socket.js.map +1 -0
- package/dist/session/wire.d.ts +5 -0
- package/dist/session/wire.js +84 -0
- package/dist/session/wire.js.map +1 -0
- package/dist/session/worker.d.ts +77 -12
- package/dist/session/worker.js +499 -0
- package/dist/session/worker.js.map +1 -0
- package/dist/shared.d.ts +31 -5
- package/dist/shared.js +166 -0
- package/dist/shared.js.map +1 -0
- package/dist/sides.d.ts +9 -3
- package/dist/sides.js +149 -0
- package/dist/sides.js.map +1 -0
- package/dist/sight.js +85 -0
- package/dist/sight.js.map +1 -0
- package/dist/simulate-worker.js +1 -1
- package/dist/simulate.d.ts +12 -8
- package/dist/{simulate-oXBiw1Ff.js → simulate.js} +10 -11
- package/dist/simulate.js.map +1 -0
- package/dist/smart.js +77 -0
- package/dist/smart.js.map +1 -0
- package/dist/spatial.d.ts +32 -16
- package/dist/spatial.js +234 -0
- package/dist/spatial.js.map +1 -0
- package/dist/spawning.d.ts +1 -0
- package/dist/spawning.js +224 -0
- package/dist/spawning.js.map +1 -0
- package/dist/stances.d.ts +6 -3
- package/dist/stances.js +169 -0
- package/dist/stances.js.map +1 -0
- package/dist/start.d.ts +10 -10
- package/dist/start.js +75 -0
- package/dist/start.js.map +1 -0
- package/dist/stats.d.ts +42 -16
- package/dist/stats.js +290 -0
- package/dist/stats.js.map +1 -0
- package/dist/summoned.d.ts +52 -0
- package/dist/summoned.js +38 -0
- package/dist/summoned.js.map +1 -0
- package/dist/summons.d.ts +10 -13
- package/dist/summons.js +271 -0
- package/dist/summons.js.map +1 -0
- package/dist/systems/abilities.js +224 -0
- package/dist/systems/abilities.js.map +1 -0
- package/dist/systems/combat.d.ts +35 -1
- package/dist/systems/combat.js +677 -0
- package/dist/systems/combat.js.map +1 -0
- package/dist/systems/combatTold.d.ts +3 -1
- package/dist/systems/combatTold.js +85 -0
- package/dist/systems/combatTold.js.map +1 -0
- package/dist/systems/construction.js +80 -0
- package/dist/systems/construction.js.map +1 -0
- package/dist/systems/economy.d.ts +0 -6
- package/dist/systems/economy.js +128 -0
- package/dist/systems/economy.js.map +1 -0
- package/dist/systems/fog.d.ts +1 -1
- package/dist/systems/fog.js +120 -0
- package/dist/systems/fog.js.map +1 -0
- package/dist/systems/life.js +32 -0
- package/dist/systems/life.js.map +1 -0
- package/dist/systems/movement.d.ts +24 -12
- package/dist/systems/movement.js +1247 -0
- package/dist/systems/movement.js.map +1 -0
- package/dist/systems/orders.js +64 -0
- package/dist/systems/orders.js.map +1 -0
- package/dist/systems/production.js +322 -0
- package/dist/systems/production.js.map +1 -0
- package/dist/systems/productionQueue.js +120 -0
- package/dist/systems/productionQueue.js.map +1 -0
- package/dist/systems/victory.d.ts +1 -1
- package/dist/systems/victory.js +56 -0
- package/dist/systems/victory.js.map +1 -0
- package/dist/talk.d.ts +6 -6
- package/dist/talk.js +153 -0
- package/dist/talk.js.map +1 -0
- package/dist/targeting.d.ts +142 -0
- package/dist/targeting.js +49 -0
- package/dist/targeting.js.map +1 -0
- package/dist/tech.d.ts +20 -3
- package/dist/tech.js +239 -0
- package/dist/tech.js.map +1 -0
- package/dist/techTree.d.ts +7 -0
- package/dist/techTree.js +90 -0
- package/dist/techTree.js.map +1 -0
- package/dist/terrain.d.ts +59 -7
- package/dist/terrain.js +389 -0
- package/dist/terrain.js.map +1 -0
- package/dist/terrainSave.d.ts +6 -0
- package/dist/terrainSave.js +74 -0
- package/dist/terrainSave.js.map +1 -0
- package/dist/testing.d.ts +8 -7
- package/dist/testing.js +13 -739
- package/dist/testing.js.map +1 -1
- package/dist/tiles.d.ts +1 -1
- package/dist/tiles.js +43 -0
- package/dist/tiles.js.map +1 -0
- package/dist/timers.d.ts +29 -4
- package/dist/timers.js +242 -0
- package/dist/timers.js.map +1 -0
- package/dist/tomes.d.ts +4 -4
- package/dist/tomes.js +94 -0
- package/dist/tomes.js.map +1 -0
- package/dist/trade.js +103 -0
- package/dist/trade.js.map +1 -0
- package/dist/transport.d.ts +6 -1
- package/dist/transport.js +281 -0
- package/dist/transport.js.map +1 -0
- package/dist/tunables.d.ts +10 -3
- package/dist/tunables.js +56 -0
- package/dist/tunables.js.map +1 -0
- package/dist/unitResources.d.ts +67 -0
- package/dist/unitResources.js +266 -0
- package/dist/unitResources.js.map +1 -0
- package/dist/upkeep.d.ts +6 -1
- package/dist/upkeep.js +26 -0
- package/dist/upkeep.js.map +1 -0
- package/dist/veterancy.d.ts +8 -3
- package/dist/veterancy.js +131 -0
- package/dist/veterancy.js.map +1 -0
- package/dist/vision.d.ts +36 -0
- package/dist/vision.js +133 -0
- package/dist/vision.js.map +1 -0
- package/dist/walls.d.ts +1 -1
- package/dist/walls.js +278 -0
- package/dist/walls.js.map +1 -0
- package/dist/world.d.ts +606 -88
- package/dist/world.js +1263 -0
- package/dist/world.js.map +1 -0
- package/package.json +2 -2
- package/dist/ai.js.map +0 -1
- package/dist/attributes.d.ts +0 -66
- package/dist/brain-BvVdUhX8.js +0 -7659
- package/dist/brain-BvVdUhX8.js.map +0 -1
- package/dist/builds-C6LfgvEU.js +0 -460
- package/dist/builds-C6LfgvEU.js.map +0 -1
- package/dist/coreComponents-syuh2fPG.js +0 -5149
- package/dist/coreComponents-syuh2fPG.js.map +0 -1
- package/dist/debugCommands-CzjrSm66.js +0 -14739
- package/dist/debugCommands-CzjrSm66.js.map +0 -1
- package/dist/determinism-BCymQwiE.js +0 -518
- package/dist/determinism-BCymQwiE.js.map +0 -1
- package/dist/game-DiJEN-Ks.js +0 -5800
- package/dist/game-DiJEN-Ks.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/inspect-D9dWHmZ0.js.map +0 -1
- package/dist/local-Dkovq42k.js +0 -1379
- package/dist/local-Dkovq42k.js.map +0 -1
- package/dist/missionRules-C-bGxm0Q.js.map +0 -1
- package/dist/navigation-worker.js.map +0 -1
- package/dist/packs-g5thvmGn.js +0 -3199
- package/dist/packs-g5thvmGn.js.map +0 -1
- package/dist/profiles-B3NS9jwk.js.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/simulate-oXBiw1Ff.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket.js","names":[],"sources":["../../src/server/websocket.ts"],"sourcesContent":["import { errorFields, type Logger, rootLogger } from '#engine/log'\nimport { createHash } from 'node:crypto'\nimport { createServer, type IncomingMessage, type Server } from 'node:http'\nimport type { Duplex } from 'node:stream'\nimport { constants, createDeflateRaw, type DeflateRaw, inflateRawSync } from 'node:zlib'\nimport type { Transport } from '#engine/session/remote'\n\n/*\n * WebSockets on Node's own `http`, as much of RFC 6455 as a game needs: the handshake, text messages (in one frame\n * or several), ping and pong, and closing; and compression (`permessage-deflate`, RFC 7692), which browsers ask for\n * on their own. No binary. Each connection is a `Transport`, the same a `loopback` gives: the game server does not\n * know which it talks through\n */\n\nconst GUID = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'\nconst TEXT = 0x1\nconst CONTINUATION = 0x0\nconst CLOSE = 0x8\nconst PING = 0x9\nconst PONG = 0xa\n\n/**\n * A connection, with what it came with: the address it was asked at, and who from\n *\n * @beta\n */\nexport interface Connection extends Transport {\n\t/** The address the connection was asked at */\n\treadonly url: string\n\t/** The network address the connection comes from */\n\treadonly address: string\n\t/** Bytes written to it so far, as they go over the wire: compressed, where it is */\n\treadonly bytesSent: number\n\t/** Whether what goes over it is compressed (`permessage-deflate`) */\n\treadonly compressed: boolean\n}\n\n/**\n * What `startSocketServer` is started with: the port, the log and the limits and compression of its connections\n *\n * @beta\n */\nexport interface SocketServerOptions {\n\t/** Port to listen on: 0 for any free one */\n\tport: number\n\t/** Where it says what goes wrong with a connection. The root logger when left out */\n\tlog?: Logger\n\t/** Characters a message may have at most: a longer one closes the connection. 64 KB when left out */\n\tmaxMessage?: number\n\t/** Whether to compress what goes over connections whose other end can take it. Yes when left out */\n\tcompress?: boolean\n\t/**\n\t * Seconds a connection may say nothing before it is closed: it is pinged meanwhile, and a browser answers a ping by\n\t * itself, so only one that is gone (a machine that vanished without closing) goes. 60 when left out\n\t */\n\tidleTimeout?: number\n\t/**\n\t * Bytes waiting to go out to a connection, at most: one that takes what it is sent too slowly is closed, where it\n\t * once queued in the server's memory without end. 16 MB when left out\n\t */\n\tmaxBuffered?: number\n\t/**\n\t * Connections open at once, at most: one more is answered `503` and never upgraded (RV38). 1024 when left out\n\t *\n\t * @beta\n\t */\n\tmaxConnections?: number\n\t/** What answers plain HTTP requests: a page saying what this is, by default */\n\tonRequest?: Parameters<typeof createServer>[1]\n}\n\n/**\n * Where a game server's connections come from (`GameServer.attach`): `onConnection` is told of each one made, `close`\n * closes them all. A socket server, or a room of a port that several share (`GameRooms`)\n *\n * @beta\n */\nexport interface ConnectionSource {\n\t/** The port they come in at */\n\treadonly port: number\n\t/** Who is told of each connection made: one handler, the last given */\n\tonConnection(handler: (connection: Connection) => void): void\n\t/** Closes every connection it made */\n\tclose(): Promise<void>\n}\n\n/**\n * A WebSocket server: `onConnection` is told of each connection made. `close` stops it, and closes them all\n *\n * @beta\n */\nexport interface SocketServer extends ConnectionSource {\n\t/** The underlying Node HTTP server */\n\treadonly server: Server\n\t/** The port it listens on: the one given, or the one it was given for 0 */\n\treadonly port: number\n}\n\n/**\n * Starts a WebSocket server, and resolves once it listens\n *\n * @beta\n */\nexport function startSocketServer(options: SocketServerOptions): Promise<SocketServer> {\n\tconst maxMessage = options.maxMessage ?? 64 * 1024\n\tconst maxConnections = options.maxConnections ?? 1024\n\tconst limits = { idle: (options.idleTimeout ?? 60) * 1000, buffered: options.maxBuffered ?? 16 * 1024 * 1024 }\n\tlet handler: (connection: Connection) => void = () => {}\n\tconst open = new Set<Duplex>()\n\t/** Each connection's own check: pinged when quiet, closed when silent too long */\n\tconst sweeps = new Set<() => void>()\n\tconst sweeper = setInterval(\n\t\t() => {\n\t\t\tfor (const sweep of sweeps) sweep()\n\t\t},\n\t\tMath.max(Math.min(limits.idle / 3, 20_000), 50)\n\t)\n\tsweeper.unref?.()\n\tconst server = createServer(\n\t\toptions.onRequest ??\n\t\t\t((_request, response) => {\n\t\t\t\tresponse.writeHead(426, { 'content-type': 'text/plain' })\n\t\t\t\tresponse.end('A game server: connect with a WebSocket\\n')\n\t\t\t})\n\t)\n\tserver.on('upgrade', (request: IncomingMessage, socket: Duplex) => {\n\t\tconst key = request.headers['sec-websocket-key']\n\t\tif (request.headers.upgrade?.toLowerCase() !== 'websocket' || typeof key !== 'string') {\n\t\t\tsocket.end('HTTP/1.1 400 Bad Request\\r\\n\\r\\n')\n\t\t\treturn\n\t\t}\n\t\tif (open.size >= maxConnections) {\n\t\t\tsocket.end('HTTP/1.1 503 Service Unavailable\\r\\nContent-Length: 0\\r\\n\\r\\n')\n\t\t\treturn\n\t\t}\n\t\tconst accept = createHash('sha1')\n\t\t\t.update(key + GUID)\n\t\t\t.digest('base64')\n\t\t// compressed where the other end asks for it: what it sends us each message on its own, so that taking it in\n\t\t// keeps nothing between messages (`client_no_context_takeover`); what we send, against all that went before\n\t\tconst offered = String(request.headers['sec-websocket-extensions'] ?? '')\n\t\tconst compressed = (options.compress ?? true) && /(^|,)\\s*permessage-deflate\\b/.test(offered)\n\t\tconst extension = compressed ? 'Sec-WebSocket-Extensions: permessage-deflate; client_no_context_takeover\\r\\n' : ''\n\t\tsocket.write(\n\t\t\t`HTTP/1.1 101 Switching Protocols\\r\\nUpgrade: websocket\\r\\nConnection: Upgrade\\r\\nSec-WebSocket-Accept: ${accept}\\r\\n${extension}\\r\\n`\n\t\t)\n\t\topen.add(socket)\n\t\tconst { connection, sweep } = connectionOf(socket, request, maxMessage, compressed, limits, options.log ?? rootLogger)\n\t\tsweeps.add(sweep)\n\t\tsocket.on('close', () => {\n\t\t\topen.delete(socket)\n\t\t\tsweeps.delete(sweep)\n\t\t})\n\t\thandler(connection)\n\t})\n\treturn new Promise((resolve) =>\n\t\tserver.listen(options.port, () => {\n\t\t\tconst address = server.address()\n\t\t\tresolve({\n\t\t\t\tserver,\n\t\t\t\tport: typeof address === 'object' && address ? address.port : options.port,\n\t\t\t\tonConnection: (next) => (handler = next),\n\t\t\t\tclose: () =>\n\t\t\t\t\tnew Promise((done) => {\n\t\t\t\t\t\tclearInterval(sweeper)\n\t\t\t\t\t\tfor (const socket of open) socket.destroy()\n\t\t\t\t\t\tserver.close(() => done())\n\t\t\t\t\t})\n\t\t\t})\n\t\t})\n\t)\n}\n\n/** The end every compressed message has, which the wire leaves off (RFC 7692): an empty block of a sync flush */\nconst SYNC_TAIL = Buffer.from([0x00, 0x00, 0xff, 0xff])\n/** Messages shorter than this go as they are: compressing them would save next to nothing */\nconst COMPRESS_FROM = 64\n/** Milliseconds a connection closed from here stays open for the other end's own close, which says it has read everything */\nconst CLOSE_WAIT = 1000\n\n/** A frame to send: a server's are never masked. `deflated` marks a compressed message (RSV1) */\nfunction frame(opcode: number, payload: Buffer, deflated = false): Buffer {\n\tconst length = payload.length\n\tconst head = length < 126 ? Buffer.alloc(2) : length < 65536 ? Buffer.alloc(4) : Buffer.alloc(10)\n\thead[0] = 0x80 | (deflated ? 0x40 : 0) | opcode\n\tif (length < 126) head[1] = length\n\telse if (length < 65536) {\n\t\thead[1] = 126\n\t\thead.writeUInt16BE(length, 2)\n\t} else {\n\t\thead[1] = 127\n\t\thead.writeBigUInt64BE(BigInt(length), 2)\n\t}\n\treturn Buffer.concat([head, payload])\n}\n\n/**\n * Compresses messages one after another against all the ones before (`permessage-deflate` with context): a delta\n * says much of what the one before it said, which the compressor remembers. In order, as zlib works in the background\n */\nclass Compressor {\n\tprivate readonly deflate: DeflateRaw = createDeflateRaw({ windowBits: 15, memLevel: 8 })\n\tprivate readonly chunks: Buffer[] = []\n\t/** The last message being compressed: the next waits for it, so that they go out in order */\n\tprivate queue: Promise<void> = Promise.resolve()\n\t/** Closed: what is still queued is let go, not written into a stream that is gone */\n\tprivate closed = false\n\n\tconstructor() {\n\t\tthis.deflate.on('data', (chunk: Buffer) => this.chunks.push(chunk))\n\t}\n\n\t/** Compresses a message, and hands it on when done: in the order they were given */\n\tcompress(message: Buffer, done: (compressed: Buffer) => void): void {\n\t\tthis.queue = this.queue.then(\n\t\t\t() =>\n\t\t\t\tnew Promise<void>((resolve) => {\n\t\t\t\t\tif (this.closed) return resolve()\n\t\t\t\t\tthis.deflate.write(message)\n\t\t\t\t\tthis.deflate.flush(constants.Z_SYNC_FLUSH, () => {\n\t\t\t\t\t\tconst all = Buffer.concat(this.chunks.splice(0))\n\t\t\t\t\t\t// the flush's empty block is left off the wire, and added back by who takes it in\n\t\t\t\t\t\tdone(all.subarray(0, all.length - SYNC_TAIL.length))\n\t\t\t\t\t\tresolve()\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t)\n\t}\n\n\t/** Runs once what is being compressed has gone: for what goes as it is, in its turn */\n\tafter(run: () => void): void {\n\t\tthis.queue = this.queue.then(run)\n\t}\n\n\tclose(): void {\n\t\tif (this.closed) return\n\t\tthis.closed = true\n\t\tthis.deflate.close()\n\t}\n}\n\nfunction connectionOf(\n\tsocket: Duplex,\n\trequest: IncomingMessage,\n\tmaxMessage: number,\n\tcompressed: boolean,\n\tlimits: { idle: number; buffered: number },\n\tlog: Logger\n): { connection: Connection; sweep: () => void } {\n\tlet onMessage: (message: string) => void = () => {}\n\tlet onClose: () => void = () => {}\n\tlet closed = false\n\tlet buffer = Buffer.alloc(0)\n\t/** The parts of a text message sent in several frames, until its last, and whether it came compressed */\n\tlet parts: Buffer[] = []\n\tlet deflated = false\n\tlet bytesSent = 0\n\tconst compressor = compressed ? new Compressor() : undefined\n\t/** Whether the close frame has gone: nothing more is written after it */\n\tlet ended = false\n\t/** When something last came in */\n\tlet heardAt = Date.now()\n\tconst write = (data: Buffer) => {\n\t\tif (ended || socket.destroyed) return\n\t\tbytesSent += data.length\n\t\tsocket.write(data)\n\t\t// what the other end does not take in piles up here: past the limit, it is let go\n\t\tif (socket.writableLength > limits.buffered) {\n\t\t\tlog.warn('server', 'a connection took in too slowly, it is closed', { waiting: socket.writableLength, address: request.socket.remoteAddress })\n\t\t\tended = true\n\t\t\tsocket.destroy()\n\t\t}\n\t}\n\n\tconst shut = () => {\n\t\tif (closed) return\n\t\tclosed = true\n\t\tonClose()\n\t}\n\t/** Our close has gone, and the other end's is waited for, a moment: what comes in is read for that alone */\n\tlet lingering: ReturnType<typeof setTimeout> | undefined\n\tconst end = () => {\n\t\tclearTimeout(lingering)\n\t\tlingering = undefined\n\t\tsocket.end()\n\t}\n\t/** `answering`: the other end closed first, and has nothing more to say or to read */\n\tconst close = (code = 1000, answering = false) => {\n\t\tif (closed) return\n\t\tconst payload = Buffer.alloc(2)\n\t\tpayload.writeUInt16BE(code, 0)\n\t\t// what was sent before still goes, before the close: a message being compressed is written once it is done,\n\t\t// and a last word (\"refused\") went nowhere when the close overtook it\n\t\tconst finish = () => {\n\t\t\twrite(frame(CLOSE, payload))\n\t\t\tended = true\n\t\t\tcompressor?.close()\n\t\t\tif (answering || socket.destroyed) return end()\n\t\t\t// the socket is ended once the other end answers with its own close, having read all that came before\n\t\t\t// ours, or after a moment when it does not. Ended at once, what it had not read yet was lost with the\n\t\t\t// connection: a player refused was never told why\n\t\t\tlingering = setTimeout(end, CLOSE_WAIT)\n\t\t\tlingering.unref?.()\n\t\t}\n\t\tif (compressor) compressor.after(finish)\n\t\telse finish()\n\t\tshut()\n\t}\n\n\tsocket.on('data', (data: Buffer) => {\n\t\t// closed, by either side: what still comes in is not read, but for the close that answers ours. Ending the\n\t\t// socket only ends what goes out, and a client could otherwise close, and then join and take a seat that\n\t\t// nothing would ever free again\n\t\tif (closed && !lingering) return\n\t\theardAt = Date.now()\n\t\tbuffer = Buffer.concat([buffer, data])\n\t\t// as many whole frames as have come in\n\t\tfor (;;) {\n\t\t\t// a frame before may have closed it: what came after it in the same chunk is not read either\n\t\t\tif ((closed && !lingering) || buffer.length < 2) return\n\t\t\tconst fin = (buffer[0] & 0x80) !== 0\n\t\t\t// a compressed message says so in its first frame\n\t\t\tconst rsv1 = (buffer[0] & 0x40) !== 0\n\t\t\tconst opcode = buffer[0] & 0x0f\n\t\t\tconst masked = (buffer[1] & 0x80) !== 0\n\t\t\tlet length = buffer[1] & 0x7f\n\t\t\tlet at = 2\n\t\t\tif (length === 126) {\n\t\t\t\tif (buffer.length < 4) return\n\t\t\t\tlength = buffer.readUInt16BE(2)\n\t\t\t\tat = 4\n\t\t\t} else if (length === 127) {\n\t\t\t\tif (buffer.length < 10) return\n\t\t\t\tconst long = buffer.readBigUInt64BE(2)\n\t\t\t\tif (long > BigInt(maxMessage)) return closed ? end() : close(1009)\n\t\t\t\tlength = Number(long)\n\t\t\t\tat = 10\n\t\t\t}\n\t\t\t// a client's frames are always masked\n\t\t\t// (waiting for its close, a frame that is not right ends the wait)\n\t\t\tif (!masked) return closed ? end() : close(1002)\n\t\t\tif (length > maxMessage) return closed ? end() : close(1009)\n\t\t\tif (buffer.length < at + 4 + length) return\n\t\t\tconst mask = buffer.subarray(at, at + 4)\n\t\t\tconst payload = Buffer.from(buffer.subarray(at + 4, at + 4 + length))\n\t\t\tfor (let i = 0; i < payload.length; i++) payload[i] ^= mask[i & 3]\n\t\t\tbuffer = buffer.subarray(at + 4 + length)\n\n\t\t\t// closed from here, and waiting: only the other end's close is looked for\n\t\t\tif (closed) {\n\t\t\t\tif (opcode === CLOSE) return end()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (opcode === TEXT || opcode === CONTINUATION) {\n\t\t\t\tif (opcode === TEXT) deflated = rsv1 && compressed\n\t\t\t\tparts.push(payload)\n\t\t\t\tif (parts.reduce((sum, part) => sum + part.length, 0) > maxMessage) return close(1009)\n\t\t\t\tif (!fin) continue\n\t\t\t\tlet data = Buffer.concat(parts)\n\t\t\t\tparts = []\n\t\t\t\tif (deflated) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// each on its own, as agreed: and no bigger than a message may be, whatever it says it is\n\t\t\t\t\t\t// it ends at a sync flush, not at a last block: that is where inflating stops, not an error\n\t\t\t\t\t\tdata = inflateRawSync(Buffer.concat([data, SYNC_TAIL]), { maxOutputLength: maxMessage, finishFlush: constants.Z_SYNC_FLUSH })\n\t\t\t\t\t} catch {\n\t\t\t\t\t\treturn close(1009)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// what the server does with a message is its own business, but it is never a reason for the process to\n\t\t\t\t// go: whatever is thrown closes this connection alone (1011, the server could not go on with it)\n\t\t\t\ttry {\n\t\t\t\t\tonMessage(data.toString('utf8'))\n\t\t\t\t} catch (error) {\n\t\t\t\t\tlog.error('server', 'a message could not be handled, the connection is closed', {\n\t\t\t\t\t\terror: errorFields(error),\n\t\t\t\t\t\taddress: request.socket.remoteAddress\n\t\t\t\t\t})\n\t\t\t\t\treturn close(1011)\n\t\t\t\t}\n\t\t\t} else if (opcode === PING) write(frame(PONG, payload))\n\t\t\telse if (opcode === CLOSE) return close(1000, true)\n\t\t\t// pongs, and binary, which a game here never sends, are let be\n\t\t}\n\t})\n\t// gone from the other side: nothing can be written any more\n\tconst gone = () => {\n\t\tclearTimeout(lingering)\n\t\tlingering = undefined\n\t\tended = true\n\t\tcompressor?.close()\n\t\tshut()\n\t}\n\tsocket.on('close', gone)\n\tsocket.on('error', gone)\n\n\tconst connection: Connection = {\n\t\turl: request.url ?? '/',\n\t\taddress: request.socket.remoteAddress ?? '',\n\t\tcompressed,\n\t\tget bytesSent() {\n\t\t\treturn bytesSent\n\t\t},\n\t\tsend(message) {\n\t\t\tif (closed) return\n\t\t\tconst data = Buffer.from(message, 'utf8')\n\t\t\tif (!compressor || data.length < COMPRESS_FROM) {\n\t\t\t\t// what is short goes as it is, though it waits for what is being compressed before it\n\t\t\t\tif (compressor) compressor.after(() => write(frame(TEXT, data)))\n\t\t\t\telse write(frame(TEXT, data))\n\t\t\t\treturn\n\t\t\t}\n\t\t\tcompressor.compress(data, (deflatedData) => write(frame(TEXT, deflatedData, true)))\n\t\t},\n\t\tonMessage(next) {\n\t\t\tonMessage = next\n\t\t},\n\t\tonClose(next) {\n\t\t\tonClose = next\n\t\t},\n\t\tclose: () => close()\n\t}\n\t/** Pings a connection that has been quiet, and closes one that has said nothing for longer than it may */\n\tconst sweep = () => {\n\t\tif (closed) return\n\t\tconst quiet = Date.now() - heardAt\n\t\tif (quiet > limits.idle) return close(1001)\n\t\tif (quiet > limits.idle / 3) write(frame(PING, Buffer.alloc(0)))\n\t}\n\treturn { connection, sweep }\n}\n"],"mappings":"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"}
|