{
  "name": "@athenna/core",
  "version": "5.13.0",
  "description": "One foundation for multiple applications.",
  "license": "MIT",
  "author": "João Lenon <lenon@athenna.io>",
  "bugs": "https://github.com/AthennaIO/Core/issues",
  "repository": "https://github.com/AthennaIO/Core.git",
  "homepage": "https://github.com/AthennaIO/Core#readme",
  "keywords": [
    "esm",
    "core",
    "cli",
    "rest",
    "rest-api",
    "http-server",
    "console",
    "cron",
    "cronjob",
    "scheduler",
    "ignite",
    "nodejs",
    "athenna",
    "bootstrap",
    "typescript"
  ],
  "engines": {
    "node": ">=20.0.0"
  },
  "scripts": {
    "build": "node node_modules/@athenna/tsconfig/src/build.js",
    "lint:fix": "eslint \"{bin,src,tests}/**/*.ts\" --fix",
    "test": "npm run --silent lint:fix && node --enable-source-maps --import=@athenna/tsconfig bin/test.ts",
    "test:debug": "cross-env NODE_DEBUG=athenna:* node --inspect --enable-source-maps --import=@athenna/tsconfig bin/test.ts",
    "test:coverage": "c8 npm run --silent test"
  },
  "files": [
    "src/*.js",
    "src/*.d.ts",
    "src/**/*.js",
    "src/**/*.d.ts",
    "templates",
    "configurer"
  ],
  "type": "module",
  "main": "./src/index.js",
  "types": "./src/index.d.ts",
  "exports": {
    ".": "./src/index.js",
    "./types": "./src/types/index.js",
    "./package": "./package.json",
    "./package.json": "./package.json",
    "./providers/CoreProvider": "./src/providers/CoreProvider.js",
    "./commands/MakeExceptionCommand": "./src/commands/MakeExceptionCommand.js",
    "./commands/MakeFacadeCommand": "./src/commands/MakeFacadeCommand.js",
    "./commands/MakeProviderCommand": "./src/commands/MakeProviderCommand.js",
    "./commands/MakeServiceCommand": "./src/commands/MakeServiceCommand.js",
    "./commands/MakeTestCommand": "./src/commands/MakeTestCommand.js",
    "./commands/ReplCommand": "./src/commands/ReplCommand.js",
    "./commands/ServeCommand": "./src/commands/ServeCommand.js",
    "./commands/TestCommand": "./src/commands/TestCommand.js",
    "./commands/BuildCommand": "./src/commands/BuildCommand.js",
    "./commands/InstallCommand": "./src/commands/InstallCommand.js",
    "./testing/BaseHttpTest": "./src/testing/BaseHttpTest.js",
    "./testing/BaseCronTest": "./src/testing/BaseCronTest.js",
    "./testing/BaseConsoleTest": "./src/testing/BaseConsoleTest.js"
  },
  "imports": {
    "#bin/*": "./bin/*.js",
    "#bin": "./bin/index.js",
    "#src/*": "./src/*.js",
    "#src": "./src/index.js",
    "#src/types": "./src/types/index.js",
    "#src/debug": "./src/debug/index.js",
    "#tests/*": "./tests/*.js",
    "#tests": "./tests/index.js",
    "#routes/*": "./routes/*.js"
  },
  "dependencies": {
    "pretty-repl": "^3.1.2",
    "semver": "^7.6.3"
  },
  "devDependencies": {
    "@athenna/artisan": "^5.6.0",
    "@athenna/common": "^5.7.0",
    "@athenna/config": "^5.3.0",
    "@athenna/cron": "^5.4.0",
    "@athenna/http": "^5.25.0",
    "@athenna/ioc": "^5.1.0",
    "@athenna/logger": "^5.3.0",
    "@athenna/test": "^5.3.0",
    "@athenna/tsconfig": "^5.0.0",
    "@athenna/view": "^5.3.0",
    "@typescript-eslint/eslint-plugin": "^7.18.0",
    "@typescript-eslint/parser": "^7.18.0",
    "commitizen": "^4.3.1",
    "cz-conventional-changelog": "^3.3.0",
    "eslint": "^8.57.1",
    "eslint-config-prettier": "^8.10.0",
    "eslint-config-standard": "^17.1.0",
    "eslint-plugin-import": "^2.31.0",
    "eslint-plugin-n": "^15.7.0",
    "eslint-plugin-prettier": "^4.2.1",
    "eslint-plugin-promise": "^6.6.0",
    "husky": "^3.1.0",
    "lint-staged": "^12.5.0",
    "nodemon": "^3.1.9",
    "prettier": "^2.8.8",
    "vite": "^6.0.11"
  },
  "c8": {
    "all": true,
    "include": [
      "src/**/*.ts"
    ],
    "exclude": [
      "src/testing/BaseConsoleTest.ts",
      "src/testing/BaseHttpTest.ts",
      "src/repl/helpers/Command.ts",
      "src/types/*"
    ],
    "reporter": [
      "text-summary",
      "html"
    ],
    "report-dir": "./tests/coverage",
    "check-coverage": true
  },
  "husky": {
    "hooks": {
      "prepare-commit-msg": "lint-staged && exec < /dev/tty && git cz --hook || true"
    }
  },
  "lint-staged": {
    "*.ts": [
      "eslint --fix",
      "git add"
    ],
    "*.json": [
      "prettier --write",
      "git add"
    ]
  },
  "config": {
    "commitizen": {
      "path": "./node_modules/cz-conventional-changelog"
    }
  },
  "prettier": {
    "singleQuote": true,
    "trailingComma": "none",
    "arrowParens": "avoid",
    "endOfLine": "lf",
    "semi": false,
    "printWidth": 80,
    "overrides": [
      {
        "files": "tests/**/*",
        "options": {
          "printWidth": 120
        }
      }
    ]
  },
  "eslintIgnore": [
    "tests/fixtures/syntaxErrorConfig/*"
  ],
  "eslintConfig": {
    "env": {
      "es2021": true,
      "node": true
    },
    "globals": {
      "ioc": true,
      "Env": true,
      "Path": true,
      "Config": true
    },
    "plugins": [
      "prettier",
      "@typescript-eslint"
    ],
    "extends": [
      "standard",
      "eslint:recommended",
      "plugin:prettier/recommended",
      "plugin:@typescript-eslint/recommended",
      "plugin:@typescript-eslint/eslint-recommended"
    ],
    "parser": "@typescript-eslint/parser",
    "rules": {
      "camelcase": "off",
      "dot-notation": "off",
      "prettier/prettier": "error",
      "no-useless-constructor": "off",
      "@typescript-eslint/no-explicit-any": "off",
      "@typescript-eslint/no-empty-function": "off",
      "@typescript-eslint/no-unused-vars": [
        "error",
        {
          "argsIgnorePattern": "^_",
          "varsIgnorePattern": "^_",
          "caughtErrorsIgnorePattern": "^_"
        }
      ]
    }
  },
  "athenna": {
    "templates": {
      "exception": "./templates/exception.edge",
      "facade": "./templates/facade.edge",
      "provider": "./templates/provider.edge",
      "service": "./templates/service.edge",
      "test": "./templates/test.edge",
      "test-console": "./templates/test-console.edge",
      "test-http": "./templates/test-http.edge",
      "test-cron": "./templates/test-cron.edge",
      "test-fn": "./templates/test-fn.edge",
      "command": "node_modules/@athenna/artisan/templates/command.edge",
      "controller": "node_modules/@athenna/http/templates/controller.edge",
      "middleware": "node_modules/@athenna/http/templates/middleware.edge",
      "interceptor": "node_modules/@athenna/http/templates/interceptor.edge",
      "terminator": "node_modules/@athenna/http/templates/terminator.edge"
    },
    "directories": {
      "bootstrap": "bin"
    },
    "schedulers": [
      "#tests/fixtures/schedulers/HelloScheduler"
    ],
    "commands": {
      "make:exception": {
        "path": "#src/commands/MakeExceptionCommand"
      },
      "make:facade": {
        "path": "#src/commands/MakeFacadeCommand"
      },
      "make:provider": {
        "path": "#src/commands/MakeProviderCommand"
      },
      "make:service": {
        "path": "#src/commands/MakeServiceCommand"
      },
      "make:test": {
        "path": "#src/commands/MakeTestCommand"
      },
      "serve": {
        "stayAlive": true,
        "path": "#src/commands/ServeCommand"
      },
      "test": {
        "stayAlive": true,
        "path": "#src/commands/TestCommand"
      },
      "repl": {
        "stayAlive": true,
        "path": "#src/commands/ReplCommand"
      },
      "build": {
        "path": "#src/commands/BuildCommand",
        "tsconfig": "./tests/fixtures/tsconfig.json",
        "outDir": "build"
      },
      "install": {
        "path": "#src/commands/InstallCommand"
      }
    },
    "providers": [
      "#src/providers/CoreProvider",
      "@athenna/http/providers/HttpRouteProvider",
      "@athenna/http/providers/HttpServerProvider"
    ]
  }
}
