{
  "name": "@kazupon/jts-utils",
  "description": "Opinionated collection of JavaScript / TypeScript utils by @kazupon",
  "version": "0.17.0",
  "author": {
    "name": "kazuya kawaguchi",
    "email": "kawakazu80@gmail.com"
  },
  "license": "MIT",
  "funding": "https://github.com/sponsors/kazupon",
  "bugs": {
    "url": "https://github.com/kazupon/jts-utils/issues"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/kazupon/jts-utils.git"
  },
  "keywords": [
    "javascript",
    "typescript",
    "utilities",
    "utils"
  ],
  "homepage": "https://github.com/kazupon/jts-utils#readme",
  "publishConfig": {
    "access": "public"
  },
  "engines": {
    "node": ">= 20"
  },
  "type": "module",
  "sideEffects": false,
  "files": [
    "dist",
    "docs"
  ],
  "exports": {
    "./url": {
      "types": "./dist/url/index.d.ts",
      "import": "./dist/url/index.js",
      "require": "./dist/url/index.js",
      "browser": "./dist/url/index.js",
      "default": "./dist/url/index.js"
    },
    "./abort": {
      "types": "./dist/abort/index.d.ts",
      "import": "./dist/abort/index.js",
      "require": "./dist/abort/index.js",
      "browser": "./dist/abort/index.js",
      "default": "./dist/abort/index.js"
    },
    "./timeout": {
      "types": "./dist/timeout/index.d.ts",
      "import": "./dist/timeout/index.js",
      "require": "./dist/timeout/index.js",
      "browser": "./dist/timeout/index.js",
      "default": "./dist/timeout/index.js"
    },
    "./array": {
      "types": "./dist/array/index.d.ts",
      "import": "./dist/array/index.js",
      "require": "./dist/array/index.js",
      "browser": "./dist/array/index.js",
      "default": "./dist/array/index.js"
    },
    "./string": {
      "types": "./dist/string/index.d.ts",
      "import": "./dist/string/index.js",
      "require": "./dist/string/index.js",
      "browser": "./dist/string/index.js",
      "default": "./dist/string/index.js"
    },
    "./observer": {
      "types": "./dist/observer/index.d.ts",
      "import": "./dist/observer/index.js",
      "require": "./dist/observer/index.js",
      "browser": "./dist/observer/index.js",
      "default": "./dist/observer/index.js"
    },
    "./object": {
      "types": "./dist/object/index.d.ts",
      "import": "./dist/object/index.js",
      "require": "./dist/object/index.js",
      "browser": "./dist/object/index.js",
      "default": "./dist/object/index.js"
    },
    "./module": {
      "types": "./dist/module/index.d.ts",
      "import": "./dist/module/index.js",
      "require": "./dist/module/index.js",
      "browser": "./dist/module/index.js",
      "default": "./dist/module/index.js"
    },
    "./event": {
      "types": "./dist/event/index.d.ts",
      "import": "./dist/event/index.js",
      "require": "./dist/event/index.js",
      "browser": "./dist/event/index.js",
      "default": "./dist/event/index.js"
    },
    "./event/emitter": {
      "types": "./dist/event/emitter.d.ts",
      "import": "./dist/event/emitter.js",
      "require": "./dist/event/emitter.js",
      "browser": "./dist/event/emitter.js",
      "default": "./dist/event/emitter.js"
    },
    "./event/target": {
      "types": "./dist/event/target.d.ts",
      "import": "./dist/event/target.js",
      "require": "./dist/event/target.js",
      "browser": "./dist/event/target.js",
      "default": "./dist/event/target.js"
    },
    "./event/wait": {
      "types": "./dist/event/wait.d.ts",
      "import": "./dist/event/wait.js",
      "require": "./dist/event/wait.js",
      "browser": "./dist/event/wait.js",
      "default": "./dist/event/wait.js"
    },
    "./message": {
      "types": "./dist/message/index.d.ts",
      "import": "./dist/message/index.js",
      "require": "./dist/message/index.js",
      "browser": "./dist/message/index.js",
      "default": "./dist/message/index.js"
    },
    "./message/port": {
      "types": "./dist/message/port.d.ts",
      "import": "./dist/message/port.js",
      "require": "./dist/message/port.js",
      "browser": "./dist/message/port.js",
      "default": "./dist/message/port.js"
    },
    "./types": {
      "types": "./dist/types/index.d.ts"
    },
    "./types/vue": {
      "types": "./dist/types/vue.d.ts"
    },
    "./package.json": "./package.json"
  },
  "typesVersions": {
    "*": {
      "*": [
        "./dist/*",
        "./*"
      ]
    }
  },
  "peerDependencies": {
    "@vue/reactivity": "^3.4"
  },
  "peerDependenciesMeta": {
    "@vue/reactivity": {
      "optional": true
    }
  },
  "devDependencies": {
    "@eslint/markdown": "^7.5.1",
    "@kazupon/eslint-config": "^0.45.0",
    "@kazupon/eslint-plugin": "^0.7.1",
    "@kazupon/prettier-config": "^0.2.0",
    "@types/node": "^25.3.0",
    "@typescript/native-preview": "7.0.0-dev.20260214.1",
    "@vitest/browser": "^4.0.18",
    "@vue/reactivity": "^3.5.28",
    "bumpp": "^10.4.1",
    "deno": "^2.6.8",
    "eslint": "^9.39.3",
    "eslint-plugin-jsdoc": "^62.7.0",
    "eslint-plugin-jsonc": "^2.21.1",
    "eslint-plugin-markdown-preferences": "^0.40.2",
    "eslint-plugin-oxlint": "^1.49.0",
    "eslint-plugin-regexp": "^3.0.0",
    "eslint-plugin-toml": "^1.1.1",
    "eslint-plugin-yml": "^3.2.1",
    "gh-changelogen": "^0.2.8",
    "jsr": "^0.14.3",
    "jsr-exports-lint": "^0.4.2",
    "knip": "^5.85.0",
    "lint-staged": "^16.2.7",
    "oxfmt": "^0.32.0",
    "oxlint": "^1.49.0",
    "oxlint-tsgolint": "^0.12.2",
    "playwright-core": "1.58.2",
    "publint": "^0.3.17",
    "tsdown": "^0.20.3",
    "typedoc": "^0.28.17",
    "typedoc-plugin-markdown": "^4.10.0",
    "typescript": "^5.9.3",
    "typescript-eslint": "^8.56.0",
    "vitest": "^4.0.18"
  },
  "prettier": "@kazupon/prettier-config",
  "lint-staged": {
    "*.ts?(x)": [
      "oxfmt --config ./node_modules/@kazupon/prettier-config/index.json --no-error-on-unmatched-pattern",
      "oxlint --config .oxlintrc.json --type-aware --type-check --fix"
    ],
    "*.{js,mjs,cjs}": [
      "oxfmt --config ./node_modules/@kazupon/prettier-config/index.json --no-error-on-unmatched-pattern",
      "oxlint --config .oxlintrc.json --fix"
    ],
    "*.{json,jsonc,json5,md,yml,yaml}": [
      "oxfmt --config ./node_modules/@kazupon/prettier-config/index.json --no-error-on-unmatched-pattern",
      "eslint --fix"
    ]
  },
  "scripts": {
    "build": "tsdown",
    "build:docs": "typedoc --excludeInternal",
    "changelog": "gh-changelogen --repo=kazupon/jts-utils",
    "fix": "pnpm run --color \"/fix:.*/\"",
    "fix:eslint": "eslint . --fix",
    "fix:knip": "knip --fix --no-exit-code",
    "fix:oxfmt": "oxfmt . --config ./node_modules/@kazupon/prettier-config/index.json --no-error-on-unmatched-pattern",
    "fix:oxlint": "oxlint --type-aware --type-check --fix",
    "jsr": "pnpx pkg-to-jsr",
    "lint": "pnpm run --color \"/lint:.*/\"",
    "lint:deno": "deno check src",
    "lint:eslint": "eslint . --cache",
    "lint:jsr": "jsr publish --dry-run --allow-dirty",
    "lint:knip": "knip",
    "lint:oxfmt": "oxfmt . --check --config ./node_modules/@kazupon/prettier-config/index.json",
    "lint:oxlint": "oxlint --type-aware --type-check",
    "release": "bumpp --commit \"release: v%s\" --all --push --tag",
    "test": "pnpm run --stream --sequential --color \"/test:unit/\"",
    "test:browser": "vitest run --browser.provider=playwright --browser.name=chromium --browser.headless",
    "test:bun": "bunx vitest run",
    "test:deno": "DENO_FUTURE=1 deno run -A npm:vitest run",
    "test:unit": "vitest run --typecheck"
  }
}