{
	"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"
}
