ecspresso
Version:
A minimal Entity-Component-System library for typescript and javascript.
235 lines (234 loc) • 7.62 kB
JSON
{
"name": "ecspresso",
"version": "0.18.0",
"main": "dist/index.js",
"module": "dist/index.js",
"types": "dist/index.d.ts",
"homepage": "https://DeeGeeGames.github.io/ecspresso/",
"description": "A minimal Entity-Component-System library for typescript and javascript.",
"sideEffects": false,
"exports": {
".": {
"import": "./dist/index.js",
"types": "./dist/index.d.ts"
},
"./plugins/spatial/transform": {
"import": "./dist/plugins/spatial/transform.js",
"types": "./dist/plugins/spatial/transform.d.ts"
},
"./plugins/spatial/bounds": {
"import": "./dist/plugins/spatial/bounds.js",
"types": "./dist/plugins/spatial/bounds.d.ts"
},
"./plugins/spatial/camera": {
"import": "./dist/plugins/spatial/camera.js",
"types": "./dist/plugins/spatial/camera.d.ts"
},
"./plugins/spatial/camera3D": {
"import": "./dist/plugins/spatial/camera3D.js",
"types": "./dist/plugins/spatial/camera3D.d.ts"
},
"./plugins/spatial/transform3D": {
"import": "./dist/plugins/spatial/transform3D.js",
"types": "./dist/plugins/spatial/transform3D.d.ts"
},
"./plugins/isometric/projection": {
"import": "./dist/plugins/isometric/projection.js",
"types": "./dist/plugins/isometric/projection.d.ts"
},
"./plugins/isometric/depth-sort": {
"import": "./dist/plugins/isometric/depth-sort.js",
"types": "./dist/plugins/isometric/depth-sort.d.ts"
},
"./plugins/spatial/spatial-index": {
"import": "./dist/plugins/spatial/spatial-index.js",
"types": "./dist/plugins/spatial/spatial-index.d.ts"
},
"./plugins/spatial/spatial-index3D": {
"import": "./dist/plugins/spatial/spatial-index3D.js",
"types": "./dist/plugins/spatial/spatial-index3D.d.ts"
},
"./plugins/physics/physics2D": {
"import": "./dist/plugins/physics/physics2D.js",
"types": "./dist/plugins/physics/physics2D.d.ts"
},
"./plugins/physics/collision": {
"import": "./dist/plugins/physics/collision.js",
"types": "./dist/plugins/physics/collision.d.ts"
},
"./plugins/physics/collision3D": {
"import": "./dist/plugins/physics/collision3D.js",
"types": "./dist/plugins/physics/collision3D.d.ts"
},
"./plugins/physics/physics3D": {
"import": "./dist/plugins/physics/physics3D.js",
"types": "./dist/plugins/physics/physics3D.d.ts"
},
"./plugins/physics/steering": {
"import": "./dist/plugins/physics/steering.js",
"types": "./dist/plugins/physics/steering.d.ts"
},
"./plugins/rendering/renderer2D": {
"import": "./dist/plugins/rendering/renderer2D.js",
"types": "./dist/plugins/rendering/renderer2D.d.ts"
},
"./plugins/rendering/renderer3D": {
"import": "./dist/plugins/rendering/renderer3D.js",
"types": "./dist/plugins/rendering/renderer3D.d.ts"
},
"./plugins/rendering/particles": {
"import": "./dist/plugins/rendering/particles.js",
"types": "./dist/plugins/rendering/particles.d.ts"
},
"./plugins/rendering/sprite-animation": {
"import": "./dist/plugins/rendering/sprite-animation.js",
"types": "./dist/plugins/rendering/sprite-animation.d.ts"
},
"./plugins/rendering/tilemap": {
"import": "./dist/plugins/rendering/tilemap.js",
"types": "./dist/plugins/rendering/tilemap.d.ts"
},
"./plugins/input/input": {
"import": "./dist/plugins/input/input.js",
"types": "./dist/plugins/input/input.d.ts"
},
"./plugins/input/selection": {
"import": "./dist/plugins/input/selection.js",
"types": "./dist/plugins/input/selection.d.ts"
},
"./plugins/scripting/coroutine": {
"import": "./dist/plugins/scripting/coroutine.js",
"types": "./dist/plugins/scripting/coroutine.d.ts"
},
"./plugins/scripting/timers": {
"import": "./dist/plugins/scripting/timers.js",
"types": "./dist/plugins/scripting/timers.d.ts"
},
"./plugins/scripting/state-machine": {
"import": "./dist/plugins/scripting/state-machine.js",
"types": "./dist/plugins/scripting/state-machine.d.ts"
},
"./plugins/scripting/tween": {
"import": "./dist/plugins/scripting/tween.js",
"types": "./dist/plugins/scripting/tween.d.ts"
},
"./plugins/audio/audio": {
"import": "./dist/plugins/audio/audio.js",
"types": "./dist/plugins/audio/audio.d.ts"
},
"./plugins/debug/diagnostics": {
"import": "./dist/plugins/debug/diagnostics.js",
"types": "./dist/plugins/debug/diagnostics.d.ts"
},
"./plugins/ai/detection": {
"import": "./dist/plugins/ai/detection.js",
"types": "./dist/plugins/ai/detection.d.ts"
},
"./plugins/ai/flocking": {
"import": "./dist/plugins/ai/flocking.js",
"types": "./dist/plugins/ai/flocking.d.ts"
},
"./plugins/ai/behavior-tree": {
"import": "./dist/plugins/ai/behavior-tree.js",
"types": "./dist/plugins/ai/behavior-tree.d.ts"
},
"./plugins/ai/pathfinding": {
"import": "./dist/plugins/ai/pathfinding.js",
"types": "./dist/plugins/ai/pathfinding.d.ts"
},
"./plugins/combat/health": {
"import": "./dist/plugins/combat/health.js",
"types": "./dist/plugins/combat/health.d.ts"
},
"./plugins/combat/projectile": {
"import": "./dist/plugins/combat/projectile.js",
"types": "./dist/plugins/combat/projectile.d.ts"
},
"./plugins/ui/ui": {
"import": "./dist/plugins/ui/ui.js",
"types": "./dist/plugins/ui/ui.d.ts"
},
"./bindings/react": {
"import": "./dist/bindings/react/index.js",
"types": "./dist/bindings/react/index.d.ts"
}
},
"publishConfig": {
"registry": "https://npm.pkg.github.com/"
},
"repository": {
"type": "git",
"url": "https://github.com/DeeGeeGames/ecspresso"
},
"keywords": [
"game",
"gamedev",
"game development",
"game engine",
"game development",
"entity component system",
"web games",
"ecs"
],
"devDependencies": {
"@types/bun": "latest",
"@types/howler": "^2.2.12",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@types/three": "^0.184.0",
"howler": "^2.2.4",
"phaser": "^4.1.0",
"pixi.js": "^8.18.1",
"react": "^19.2.5",
"react-dom": "^19.2.5",
"three": "^0.184.0",
"typedoc": "^0.28.19"
},
"peerDependencies": {
"typescript": "^6.0.3",
"pixi.js": "^8.0.0",
"howler": "^2.2.0",
"three": "^0.184.0",
"react": "^19.0.0",
"react-dom": "^19.0.0"
},
"peerDependenciesMeta": {
"pixi.js": {
"optional": true
},
"howler": {
"optional": true
},
"three": {
"optional": true
},
"react": {
"optional": true
},
"react-dom": {
"optional": true
}
},
"files": [
"dist",
"CHANGELOG.md"
],
"scripts": {
"build:clean": "rm -rf dist",
"build:ts": "bun tsc -p tsconfig.build.json",
"build:js": "bun scripts/build.ts",
"build": "bun build:clean && bun build:ts && bun build:js",
"check:types": "bun tsc --noEmit --skipLibCheck",
"check": "bun run check:types && bun test",
"examples": "bun ./examples/serve-examples.ts",
"bench": "bun bench/narrowphase.bench.ts && bun bench/ecs-physics.bench.ts --spatial && bun bench/ecs-physics.bench.ts --no-spatial && bun bench/ecs-physics3D.bench.ts --spatial && bun bench/ecs-physics3D.bench.ts --no-spatial",
"bench:ecs3D": "bun bench/ecs-physics3D.bench.ts",
"bench:narrowphase": "bun bench/narrowphase.bench.ts",
"bench:ecs": "bun bench/ecs-physics.bench.ts",
"docs": "typedoc && bun scripts/build-examples.ts && bun scripts/build-changelog.ts && bun scripts/build-docs-index.ts",
"docs:serve": "bun run docs && bunx serve docs",
"postversion": "bun scripts/sync-plugin-version.ts && git add .claude-plugin/plugin.json .codex-plugin/plugin.json plugins/ecspresso/.codex-plugin/plugin.json",
"prepublishOnly": "bun run check && bun run build"
},
"type": "module"
}