{
  "name": "@doeixd/machine",
  "version": "1.6.0",
  "files": [
    "bin",
    "dist",
    "scripts/extract-statechart.ts",
    "src",
    "schemas"
  ],
  "engines": {
    "node": ">=18"
  },
  "license": "MIT",
  "keywords": [
    "state-machine",
    "finite-state-machine",
    "fsm",
    "statechart",
    "type-state",
    "typescript",
    "type-safe",
    "immutable",
    "functional",
    "reactive",
    "state-management",
    "react",
    "solid-js",
    "async",
    "transitions",
    "minimal",
    "lightweight",
    "xstate-alternative",
    "state-pattern",
    "type-driven",
    "compile-time-safety",
    "discriminated-unions"
  ],
  "peerDependencies": {
    "react": "^18.0.0 || ^19.0.0",
    "solid-js": "^1.8.0"
  },
  "peerDependenciesMeta": {
    "react": {
      "optional": true
    },
    "solid-js": {
      "optional": true
    }
  },
  "dependencies": {
    "ajv": "^8.17.1",
    "chalk": "^5.6.2",
    "chokidar": "^4.0.3",
    "commander": "^13.1.0",
    "ts-morph": "^27.0.2",
    "tsx": "^4.20.6"
  },
  "devDependencies": {
    "@types/node": "^22.10.2",
    "@types/react": "^19.2.4",
    "pridepack": "2.6.4",
    "react": "^19.2.0",
    "solid-js": "^1.8.22",
    "standard-version": "^9.5.0",
    "tslib": "^2.8.1",
    "typescript": "^5.7.2",
    "vitest": "^2.1.9"
  },
  "scripts": {
    "release": "standard-version && git push --follow-tags origin main",
    "prepublishOnly": "npm run build",
    "build": "pridepack clean && pridepack build && npm run verify:package",
    "verify:package": "tsx scripts/verify-package.ts",
    "type-check": "tsc --noEmit && tsc -p tsconfig.test.json && tsc -p tsconfig.examples.json",
    "clean": "pridepack clean",
    "watch": "pridepack watch",
    "start": "pridepack start",
    "dev": "pridepack dev",
    "test": "vitest run",
    "extract": "tsx scripts/extract-statechart.ts --config .statechart.config.ts",
    "extract:watch": "tsx scripts/extract-statechart.ts --config .statechart.config.ts --watch",
    "extract:validate": "tsx scripts/extract-statechart.ts --config .statechart.config.ts --validate",
    "extract:legacy": "tsx src/extract.ts"
  },
  "private": false,
  "description": "A minimal, type-safe state machine library for TypeScript centered on Type-State Programming. Uses the TypeScript compiler to catch invalid state transitions at compile-time, making illegal states unrepresentable. Features immutable updates, discriminated unions, async support, and integrations for React and Solid.js. Includes static analysis tools for generating formal statecharts compatible with Stately Viz and XState tooling.",
  "repository": {
    "url": "git+https://github.com/doeixd/machine.git",
    "type": "git"
  },
  "homepage": "https://github.com/doeixd/machine#readme",
  "bugs": {
    "url": "https://github.com/doeixd/machine/issues"
  },
  "author": "Patrick Glenn",
  "publishConfig": {
    "access": "public"
  },
  "types": "./dist/types/index.d.ts",
  "main": "./dist/cjs/production/index.js",
  "module": "./dist/esm/production/index.js",
  "sideEffects": false,
  "exports": {
    ".": {
      "types": "./dist/types/index.d.ts",
      "development": {
        "require": "./dist/cjs/development/index.js",
        "import": "./dist/esm/development/index.js"
      },
      "require": "./dist/cjs/production/index.js",
      "import": "./dist/esm/production/index.js"
    },
    "./core": {
      "types": "./dist/types/core.d.ts",
      "development": {
        "require": "./dist/cjs/development/core.js",
        "import": "./dist/esm/development/core.js"
      },
      "require": "./dist/cjs/production/core.js",
      "import": "./dist/esm/production/core.js"
    },
    "./extract": {
      "types": "./dist/types/extract.d.ts",
      "development": {
        "require": "./dist/cjs/development/extract.js",
        "import": "./dist/esm/development/extract.js"
      },
      "require": "./dist/cjs/production/extract.js",
      "import": "./dist/esm/production/extract.js"
    },
    "./minimal": {
      "types": "./dist/types/minimal.d.ts",
      "development": {
        "require": "./dist/cjs/development/minimal.js",
        "import": "./dist/esm/development/minimal.js"
      },
      "require": "./dist/cjs/production/minimal.js",
      "import": "./dist/esm/production/minimal.js"
    },
    "./delegate": {
      "types": "./dist/types/delegate.d.ts",
      "development": {
        "require": "./dist/cjs/development/delegate.js",
        "import": "./dist/esm/development/delegate.js"
      },
      "require": "./dist/cjs/production/delegate.js",
      "import": "./dist/esm/production/delegate.js"
    },
    "./react": {
      "types": "./dist/types/entry-react.d.ts",
      "development": {
        "require": "./dist/cjs/development/react.js",
        "import": "./dist/esm/development/react.js"
      },
      "require": "./dist/cjs/production/react.js",
      "import": "./dist/esm/production/react.js"
    },
    "./solid": {
      "types": "./dist/types/entry-solid.d.ts",
      "development": {
        "require": "./dist/cjs/development/solid.js",
        "import": "./dist/esm/development/solid.js"
      },
      "require": "./dist/cjs/production/solid.js",
      "import": "./dist/esm/production/solid.js"
    },
    "./actor": {
      "types": "./dist/types/actor.d.ts",
      "development": {
        "require": "./dist/cjs/development/actor.js",
        "import": "./dist/esm/development/actor.js"
      },
      "require": "./dist/cjs/production/actor.js",
      "import": "./dist/esm/production/actor.js"
    },
    "./adapters": {
      "types": "./dist/types/adapters.d.ts",
      "development": {
        "require": "./dist/cjs/development/adapters.js",
        "import": "./dist/esm/development/adapters.js"
      },
      "require": "./dist/cjs/production/adapters.js",
      "import": "./dist/esm/production/adapters.js"
    },
    "./base": {
      "types": "./dist/types/base.d.ts",
      "development": {
        "require": "./dist/cjs/development/base.js",
        "import": "./dist/esm/development/base.js"
      },
      "require": "./dist/cjs/production/base.js",
      "import": "./dist/esm/production/base.js"
    },
    "./context-bound": {
      "types": "./dist/types/context-bound.d.ts",
      "development": {
        "require": "./dist/cjs/development/context-bound.js",
        "import": "./dist/esm/development/context-bound.js"
      },
      "require": "./dist/cjs/production/context-bound.js",
      "import": "./dist/esm/production/context-bound.js"
    },
    "./devtools": {
      "types": "./dist/types/devtools.d.ts",
      "development": {
        "require": "./dist/cjs/development/devtools.js",
        "import": "./dist/esm/development/devtools.js"
      },
      "require": "./dist/cjs/production/devtools.js",
      "import": "./dist/esm/production/devtools.js"
    },
    "./functional-combinators": {
      "types": "./dist/types/functional-combinators.d.ts",
      "development": {
        "require": "./dist/cjs/development/functional-combinators.js",
        "import": "./dist/esm/development/functional-combinators.js"
      },
      "require": "./dist/cjs/production/functional-combinators.js",
      "import": "./dist/esm/production/functional-combinators.js"
    },
    "./generators": {
      "types": "./dist/types/generators.d.ts",
      "development": {
        "require": "./dist/cjs/development/generators.js",
        "import": "./dist/esm/development/generators.js"
      },
      "require": "./dist/cjs/production/generators.js",
      "import": "./dist/esm/production/generators.js"
    },
    "./higher-order": {
      "types": "./dist/types/higher-order.d.ts",
      "development": {
        "require": "./dist/cjs/development/higher-order.js",
        "import": "./dist/esm/development/higher-order.js"
      },
      "require": "./dist/cjs/production/higher-order.js",
      "import": "./dist/esm/production/higher-order.js"
    },
    "./matcher": {
      "types": "./dist/types/matcher.d.ts",
      "development": {
        "require": "./dist/cjs/development/matcher.js",
        "import": "./dist/esm/development/matcher.js"
      },
      "require": "./dist/cjs/production/matcher.js",
      "import": "./dist/esm/production/matcher.js"
    },
    "./middleware": {
      "types": "./dist/types/middleware/index.d.ts",
      "development": {
        "require": "./dist/cjs/development/middleware.js",
        "import": "./dist/esm/development/middleware.js"
      },
      "require": "./dist/cjs/production/middleware.js",
      "import": "./dist/esm/production/middleware.js"
    },
    "./mixins": {
      "types": "./dist/types/mixins.d.ts",
      "development": {
        "require": "./dist/cjs/development/mixins.js",
        "import": "./dist/esm/development/mixins.js"
      },
      "require": "./dist/cjs/production/mixins.js",
      "import": "./dist/esm/production/mixins.js"
    },
    "./multi": {
      "types": "./dist/types/multi.d.ts",
      "development": {
        "require": "./dist/cjs/development/multi.js",
        "import": "./dist/esm/development/multi.js"
      },
      "require": "./dist/cjs/production/multi.js",
      "import": "./dist/esm/production/multi.js"
    },
    "./primitives": {
      "types": "./dist/types/primitives.d.ts",
      "development": {
        "require": "./dist/cjs/development/primitives.js",
        "import": "./dist/esm/development/primitives.js"
      },
      "require": "./dist/cjs/production/primitives.js",
      "import": "./dist/esm/production/primitives.js"
    },
    "./runtime-extract": {
      "types": "./dist/types/runtime-extract.d.ts",
      "development": {
        "require": "./dist/cjs/development/runtime-extract.js",
        "import": "./dist/esm/development/runtime-extract.js"
      },
      "require": "./dist/cjs/production/runtime-extract.js",
      "import": "./dist/esm/production/runtime-extract.js"
    },
    "./types": {
      "types": "./dist/types/types.d.ts",
      "development": {
        "require": "./dist/cjs/development/types.js",
        "import": "./dist/esm/development/types.js"
      },
      "require": "./dist/cjs/production/types.js",
      "import": "./dist/esm/production/types.js"
    },
    "./utils": {
      "types": "./dist/types/utils.d.ts",
      "development": {
        "require": "./dist/cjs/development/utils.js",
        "import": "./dist/esm/development/utils.js"
      },
      "require": "./dist/cjs/production/utils.js",
      "import": "./dist/esm/production/utils.js"
    }
  },
  "typesVersions": {
    "*": {
      "core": [
        "./dist/types/core.d.ts"
      ],
      "extract": [
        "./dist/types/extract.d.ts"
      ],
      "minimal": [
        "./dist/types/minimal.d.ts"
      ],
      "delegate": [
        "./dist/types/delegate.d.ts"
      ],
      "react": [
        "./dist/types/entry-react.d.ts"
      ],
      "solid": [
        "./dist/types/entry-solid.d.ts"
      ],
      "actor": [
        "./dist/types/actor.d.ts"
      ],
      "adapters": [
        "./dist/types/adapters.d.ts"
      ],
      "base": [
        "./dist/types/base.d.ts"
      ],
      "context-bound": [
        "./dist/types/context-bound.d.ts"
      ],
      "devtools": [
        "./dist/types/devtools.d.ts"
      ],
      "functional-combinators": [
        "./dist/types/functional-combinators.d.ts"
      ],
      "generators": [
        "./dist/types/generators.d.ts"
      ],
      "higher-order": [
        "./dist/types/higher-order.d.ts"
      ],
      "matcher": [
        "./dist/types/matcher.d.ts"
      ],
      "middleware": [
        "./dist/types/middleware/index.d.ts"
      ],
      "mixins": [
        "./dist/types/mixins.d.ts"
      ],
      "multi": [
        "./dist/types/multi.d.ts"
      ],
      "primitives": [
        "./dist/types/primitives.d.ts"
      ],
      "runtime-extract": [
        "./dist/types/runtime-extract.d.ts"
      ],
      "types": [
        "./dist/types/types.d.ts"
      ],
      "utils": [
        "./dist/types/utils.d.ts"
      ]
    }
  },
  "bin": {
    "extract": "bin/extract.cjs"
  }
}
