{
  "name": "tify",
  "version": "0.35.0",
  "description": "A slim and mobile-friendly IIIF document viewer",
  "homepage": "https://tify.rocks/",
  "repository": {
    "type:": "git",
    "url": "git+https://github.com/tify-iiif-viewer/tify.git"
  },
  "bugs": {
    "url": "https://github.com/tify-iiif-viewer/tify/issues"
  },
  "keywords": [
    "iiif",
    "viewer",
    ":)"
  ],
  "license": "AGPL-3.0",
  "main": "dist/tify.js",
  "type": "module",
  "files": [
    "build",
    "dist",
    "doc",
    "src",
    "LICENSE",
    "*.md"
  ],
  "scripts": {
    "build": "vite build",
    "dev": "vite",
    "lint": "npm run lint:vue; npm run lint:style",
    "lint:fix": "npm run lint:vue:fix; npm run lint:style:fix",
    "lint:style": "stylelint '**/*.{scss,vue}' --ignore-path .gitignore",
    "lint:style:fix": "npm run lint:style -- --fix",
    "lint:vue": "eslint . --ext .cjs,.html,.js,.jsx,.mjs,.vue --ignore-path .gitignore",
    "lint:vue:fix": "npm run lint:vue -- --fix",
    "mock-api": "node -e 'import(`./tests/iiif-api/server.js`).then(server => server.default.start())'",
    "postinstall": "node build/create-icons.js",
    "preversion": "npm install-clean && npm run test:unit && npm run build && npm run test:e2e",
    "preview": "vite preview",
    "test:e2e": "start-server-and-test preview http://localhost:4173 'cypress run --e2e'",
    "test:e2e:dev": "start-server-and-test 'vite dev --port 4173' http://localhost:4173 'cypress open --e2e'",
    "test:i18n": "node build/test-translations.js",
    "test:i18n:fix": "node build/test-translations.js --add --remove --sort",
    "test:unit": "vitest run",
    "version": "npm run build; git add dist"
  },
  "devDependencies": {
    "@html-eslint/eslint-plugin": "^0.54.2",
    "@html-eslint/parser": "^0.54.0",
    "@iiif/parser": "^2.2.9",
    "@mdi/js": "^7.4.47",
    "@rushstack/eslint-patch": "^1.15.0",
    "@stylistic/stylelint-config": "^3.0.1",
    "@vitejs/plugin-vue": "^6.0.3",
    "@vitest/eslint-plugin": "^1.6.6",
    "@vue/eslint-config-airbnb": "^8.0.0",
    "@vue/test-utils": "^2.4.6",
    "@vueuse/core": "^13.9.0",
    "canvas": "^3.2.1",
    "chalk": "^5.6.2",
    "cypress": "^14.5.4",
    "cypress-html-validate": "^8.1.0",
    "diff": "^8.0.3",
    "dotenv": "^17.2.3",
    "eslint": "^8.57.1",
    "eslint-import-resolver-typescript": "^4.4.4",
    "eslint-plugin-cypress": "^3.6.0",
    "eslint-plugin-html": "^8.1.4",
    "eslint-plugin-vue": "^9.33.0",
    "html-validate": "^10.7.0",
    "jsdom": "^26.1.0",
    "openseadragon": "^5.0.1",
    "petite-vue": "^0.4.1",
    "sharp": "^0.34.5",
    "start-server-and-test": "^2.1.3",
    "striptags": "^3.2.0",
    "stylelint": "^16.26.1",
    "stylelint-config-recommended-vue": "^1.6.1",
    "stylelint-config-standard-scss": "^15.0.1",
    "stylelint-order": "^7.0.1",
    "unplugin-vue-components": "^29.2.0",
    "vite": "^6.4.1",
    "vite-plugin-banner": "^0.8.1",
    "vite-plugin-eslint": "^1.8.1",
    "vite-plugin-sass-glob-import": "^5.0.0",
    "vite-plugin-vue-devtools": "^8.0.5",
    "vitest": "^3.2.4",
    "vitest-canvas-mock": "^0.3.3",
    "vue": "^3.5.27"
  },
  "engines": {
    "node": ">= 20",
    "npm": ">= 9"
  }
}
