{
  "name": "xtra-web-components",
  "version": "1.1.4",
  "description": "The Preact Web Components used on the Xtra website",
  "main": "dist/xtra-web.js",
  "files": [
    "dist"
  ],
  "repository": {
    "type": "git",
    "url": "https://dev.azure.com/dcsecosystem/Aladdin%20Frontend/_git/xtra-web"
  },
  "scripts": {
    "dev": "vite",
    "build": "vite build && ./scripts/replace-css.sh",
    "test": "jest",
    "test:coverage": "npm run test -- --coverage",
    "test:ci": "npm run test:coverage -- --ci",
    "generate": "graphql-codegen",
    "lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'",
    "lint:fix": "npm run lint -- --fix",
    "release": "standard-version",
    "stylelint": "stylelint src/**/*.css",
    "stylelint:fix": "npm run stylelint -- --fix",
    "markdown-lint": "markdownlint '**/*.md' --ignore node_modules --ignore CUSTOM_ELEMENTS.md --ignore CHANGELOG.md",
    "prettier": "prettier \"src/**/*.{js,ts,tsx}\"",
    "prettier:fix": "npm run prettier -- --write",
    "prepare": "./scripts/postinstall-local.sh",
    "purgecdn": "./scripts/purge-cdn.sh",
    "update:dev": "npm-check -u --dev-only --save-exact",
    "update": "npm-check -u --production --save-exact"
  },
  "author": "DCSPlatformServices",
  "license": "UNLICENSED",
  "devDependencies": {
    "@graphql-codegen/add": "^3.1.0",
    "@graphql-codegen/cli": "^2.3.0",
    "@graphql-codegen/near-operation-file-preset": "^2.2.2",
    "@graphql-codegen/typescript": "^2.4.1",
    "@graphql-codegen/typescript-operations": "^2.2.1",
    "@graphql-codegen/typescript-react-query": "^3.2.2",
    "@preact/preset-vite": "^2.1.5",
    "@testing-library/jest-dom": "^5.14.1",
    "@testing-library/preact": "^2.0.1",
    "@testing-library/preact-hooks": "^1.1.0",
    "@types/base-64": "^1.0.0",
    "@types/google.maps": "^3.48.2",
    "@types/jest": "^27.0.2",
    "@types/react": "^17.0.30",
    "@types/react-helmet": "^6.1.4",
    "@types/react-router-dom": "^5.3.2",
    "@types/uuid": "^8.3.1",
    "@typescript-eslint/eslint-plugin": "^5.27.0",
    "@typescript-eslint/parser": "^5.27.0",
    "eslint": "^8.5.0",
    "eslint-config-preact": "^1.3.0",
    "eslint-config-prettier": "^8.3.0",
    "eslint-plugin-import": "^2.25.2",
    "eslint-plugin-jest": "^26.1.0",
    "eslint-plugin-jsx-a11y": "^6.4.1",
    "eslint-plugin-prettier": "^4.0.0",
    "eslint-plugin-simple-import-sort": "^7.0.0",
    "identity-obj-proxy": "^3.0.0",
    "jest": "^27.3.1",
    "jest-fetch-mock": "^3.0.3",
    "jest-junit": "^13.0.0",
    "jest-matchmedia-mock": "^1.1.0",
    "markdownlint-cli": "^0.31.0",
    "mockdate": "^3.0.5",
    "nock": "^13.1.4",
    "npm-check": "^5.9.2",
    "preact-render-to-string": "^5.1.19",
    "prettier": "^2.4.1",
    "rollup-plugin-visualizer": "^5.5.2",
    "standard-version": "^9.3.2",
    "string.prototype.replaceall": "^1.0.6",
    "stylelint": "^14.1.0",
    "stylelint-config-idiomatic-order": "^8.1.0",
    "stylelint-config-prettier": "^9.0.3",
    "stylelint-config-standard": "^26.0.0",
    "stylelint-prettier": "^2.0.0",
    "ts-jest": "^27.1.1",
    "typescript": "^4.5.5",
    "vite": "^2.6.10",
    "vite-plugin-svgr": "^2.1.0"
  },
  "dependencies": {
    "@azure/msal-browser": "^2.18.0",
    "@azure/msal-react": "^1.1.0",
    "@googlemaps/markerclusterer": "^2.0.1",
    "@googlemaps/react-wrapper": "^1.1.27",
    "@googlemaps/typescript-guards": "^2.0.0",
    "base-64": "^1.0.0",
    "date-fns": "^2.25.0",
    "dialog-polyfill": "^0.5.6",
    "fast-equals": "^4.0.1",
    "formik": "^2.2.9",
    "fuse.js": "^6.5.3",
    "graphql": "^16.3.0",
    "graphql-request": "^4.0.0",
    "i18next": "^21.6.0",
    "i18next-browser-languagedetector": "^6.1.2",
    "i18next-chained-backend": "^3.0.2",
    "i18next-http-backend": "^1.3.1",
    "i18next-localstorage-backend": "^3.1.3",
    "js-cookie": "^3.0.1",
    "jwt-decode": "^3.1.2",
    "lodash": "^4.17.21",
    "preact": "^10.6.2",
    "react-device-detect": "^2.2.2",
    "react-helmet": "^6.1.0",
    "react-i18next": "^11.14.3",
    "react-infinite-scroll-component": "^6.1.0",
    "react-query": "^3.27.0",
    "react-router-dom": "^6.2.1",
    "react-use": "^17.3.1",
    "react-viewer": "^3.2.2",
    "uuid": "^8.3.2",
    "victory": "^36.2.0",
    "yup": "^0.32.11",
    "zustand": "^3.6.5"
  },
  "browserslist": [
    "defaults",
    "not IE 11",
    "maintained node versions"
  ],
  "commitlint": {
    "extends": [
      "@commitlint/config-conventional"
    ]
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "browser": true,
      "es2021": true,
      "jest/globals": true
    },
    "extends": [
      "preact",
      "plugin:@typescript-eslint/recommended",
      "plugin:@typescript-eslint/recommended-requiring-type-checking",
      "plugin:import/typescript",
      "plugin:jsx-a11y/recommended",
      "plugin:prettier/recommended"
    ],
    "ignorePatterns": [
      "**/*.generated.ts",
      "**/coverage",
      "src/customElements/Stores/**",
      "scripts/**",
      "register.js"
    ],
    "parser": "@typescript-eslint/parser",
    "parserOptions": {
      "ecmaVersion": 12,
      "sourceType": "module",
      "project": "./tsconfig.json"
    },
    "plugins": [
      "@typescript-eslint",
      "simple-import-sort",
      "import",
      "jsx-a11y"
    ],
    "rules": {
      "@typescript-eslint/no-unused-vars": [
        "error",
        {
          "ignoreRestSiblings": true
        }
      ],
      "@typescript-eslint/explicit-module-boundary-types": "off",
      "@typescript-eslint/no-non-null-assertion": "off",
      "jest/expect-expect": [
        "warn",
        {
          "assertFunctionNames": [
            "expect**"
          ]
        }
      ],
      "jsx-a11y/no-onchange": "off",
      "simple-import-sort/imports": "error",
      "simple-import-sort/exports": "error",
      "import/first": "error",
      "import/newline-after-import": "error",
      "import/no-duplicates": "error"
    }
  },
  "jest": {
    "collectCoverageFrom": [
      "<rootDir>/**/*.{ts,tsx,js}",
      "!<rootDir>/@types/**",
      "!<rootDir>/config/**",
      "!<rootDir>/coverage/**",
      "!<rootDir>/customElements/**/GraphQL/**",
      "!<rootDir>/customElements/Stores/**/*",
      "!<rootDir>/customElements/Profile/**/helpers/categories.tsx",
      "!<rootDir>/dist/**",
      "!<rootDir>/jest/**",
      "!<rootDir>/utils/register.js",
      "!<rootDir>/utils/meta.ts"
    ],
    "coverageReporters": [
      "json",
      "lcov",
      "text",
      "clover",
      "cobertura"
    ],
    "reporters": [
      "default",
      "jest-junit"
    ],
    "coverageThreshold": {
      "global": {
        "branches": 90,
        "functions": 90,
        "lines": 90
      }
    },
    "moduleNameMapper": {
      "\\.(jpg|jpeg|png|gif|eot|otf|webp|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/jest/modules/file.ts",
      "\\.svg": "<rootDir>/jest/modules/svgr.tsx",
      "\\.(css|less)$": "identity-obj-proxy",
      "^react$": "preact/compat",
      "^react-dom$": "preact/compat",
      "^@types$": "<rootDir>/@types",
      "^@xtra-types/(.*)$": "<rootDir>/@types/$1",
      "^@xtra-types": "<rootDir>/@types/index.ts",
      "^@xtra-primitives/(.*)$": "<rootDir>/common/primitives/$1",
      "^@xtra-icons/(.*)$": "<rootDir>/common/assets/icons/$1",
      "^@xtra-illustrations/(.*)$": "<rootDir>/common/assets/illustrations/$1",
      "^@xtra-atoms/(.*)$": "<rootDir>/common/atoms/$1",
      "^@xtra-molecules/(.*)$": "<rootDir>/common/molecules/$1",
      "^@xtra-organisms/(.*)$": "<rootDir>/common/organisms/$1",
      "^@xtra-templates/(.*)$": "<rootDir>/common/templates/$1",
      "^@xtra-hooks/(.*)$": "<rootDir>/common/hooks/$1",
      "^@xtra-context/(.*)$": "<rootDir>/common/context/$1",
      "^@xtra-store": "<rootDir>/common/store/index.ts",
      "^@xtra-utils/(.*)$": "<rootDir>/utils/$1"
    },
    "modulePathIgnorePatterns": [
      "<rootDir>/customElements/ShoppingList/",
      "<rootDir>/customElements/Xtra"
    ],
    "preset": "ts-jest/presets/js-with-ts",
    "rootDir": "src",
    "setupFilesAfterEnv": [
      "<rootDir>/jest/jest.setup.ts"
    ],
    "testEnvironment": "jsdom"
  },
  "prettier": {
    "singleQuote": true,
    "printWidth": 100,
    "tabWidth": 2,
    "trailingComma": "all"
  },
  "renovate": {
    "$schema": "https://docs.renovatebot.com/renovate-schema.json",
    "extends": [
      "config:base"
    ],
    "packageRules": [
      {
        "depTypeList": [
          "dependencies"
        ],
        "updateTypes": [
          "major"
        ],
        "groupName": "dependencies (major)"
      },
      {
        "depTypeList": [
          "devDependencies"
        ],
        "updateTypes": [
          "major"
        ],
        "groupName": "devDependencies (major)"
      },
      {
        "depTypeList": [
          "dependencies",
          "devDependencies"
        ],
        "updateTypes": [
          "minor",
          "patch"
        ],
        "matchCurrentVersion": "!/^0/",
        "automerge": true
      }
    ],
    "stabilityDays": 0,
    "dependencyDashboard": true,
    "prConcurrentLimit": 10
  },
  "standard-version": {
    "types": [
      {
        "type": "feat",
        "section": "Features"
      },
      {
        "type": "fix",
        "section": "Bug Fixes"
      },
      {
        "type": "chore",
        "section": "Chores"
      },
      {
        "type": "docs",
        "section": "Docs"
      },
      {
        "type": "refactor",
        "section": "Refactors"
      },
      {
        "type": "perf",
        "section": "Performance updates"
      },
      {
        "type": "test",
        "section": "Test changes"
      },
      {
        "type": "style",
        "section": "Code style changes"
      }
    ]
  },
  "stylelint": {
    "extends": [
      "stylelint-config-standard",
      "stylelint-config-idiomatic-order",
      "stylelint-prettier/recommended"
    ],
    "ignoreFiles": [
      "dist/**",
      "src/coverage/**",
      "src/customElements/Xtra/**"
    ],
    "rules": {
      "string-quotes": "single",
      "selector-class-pattern": null,
      "selector-pseudo-class-no-unknown": [
        true,
        {
          "ignorePseudoClasses": [
            "global"
          ]
        }
      ]
    }
  }
}
