{
  "name": "@athenna/ioc",
  "version": "5.1.0",
  "description": "Global Ioc helper for Athenna ecosystem. Built on top of awilix.",
  "license": "MIT",
  "author": "João Lenon <lenon@athenna.io>",
  "bugs": "https://github.com/AthennaIO/IoC/issues",
  "repository": "https://github.com/AthennaIO/IoC.git",
  "homepage": "https://github.com/AthennaIO/IoC#readme",
  "keywords": [
    "ioc-container",
    "service-provider",
    "service-container",
    "typescript",
    "awilix",
    "esm",
    "nodejs",
    "athenna"
  ],
  "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"
  },
  "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"
  },
  "dependencies": {
    "awilix": "^10.0.2"
  },
  "devDependencies": {
    "@athenna/common": "^5.6.0",
    "@athenna/test": "^5.3.0",
    "@athenna/tsconfig": "^5.0.0",
    "@typescript-eslint/eslint-plugin": "^8.21.0",
    "@typescript-eslint/parser": "^8.21.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",
    "prettier": "^2.8.8"
  },
  "c8": {
    "all": true,
    "include": [
      "src/**/*.ts"
    ],
    "exclude": [
      "src/types",
      "src/providers/ServiceProvider.ts"
    ],
    "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": {
    "*.js": [
      "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": [],
  "eslintConfig": {
    "env": {
      "es2021": true,
      "node": true
    },
    "globals": {
      "Ioc": true,
      "Container": true,
      "Env": true,
      "Path": true,
      "Config": true,
      "container": 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": "^_"
        }
      ]
    }
  }
}
