{
  "name": "root",
  "private": true,
  "workspaces": [
    "packages/*"
  ],
  "repository": {
    "type": "git",
    "url": "git+https://github.com/laurent22/joplin.git"
  },
  "engines": {
    "node": ">=18",
    "yarn": "4.9.2"
  },
  "scripts": {
    "buildApiDoc": "yarn workspace joplin start apidoc ../../readme/api/references/rest_api.md",
    "buildScriptIndexes": "node packages/tools/gulp/tasks/buildScriptIndexesRun.js",
    "buildParallel": "yarn workspaces foreach --worktree --verbose --interlaced --parallel --jobs 2 --topological-dev run build && yarn tsc",
    "buildPluginDoc": "cd packages/generate-plugin-doc && yarn buildPluginDoc_",
    "buildSequential": "yarn workspaces foreach --worktree --verbose --interlaced --topological-dev run build && yarn tsc",
    "buildServerDocker": "node packages/tools/buildServerDocker.js",
    "buildSettingJsonSchema": "yarn workspace joplin start settingschema ../../../joplin-website/docs/schema/settings.json",
    "buildTranslations": "node packages/tools/build-translation.js",
    "buildWebsite": "node ./packages/tools/website/processDocs.js --env prod && node ./packages/tools/website/build.js && yarn buildPluginDoc && yarn buildSettingJsonSchema",
    "buildWebsiteTranslations": "node packages/tools/website/buildTranslations.js",
    "checkIgnoredFiles": "node ./packages/tools/checkIgnoredFiles.js",
    "checkLibPaths": "node ./packages/tools/checkLibPaths.js",
    "circularDependencyCheck": "madge --warning --circular --extensions js ./",
    "clean": "npm run clean --workspaces --if-present && node packages/tools/clean && yarn cache clean",
    "crowdin": "crowdin",
    "crowdinDownload": "crowdin download",
    "crowdinUpload": "crowdin upload",
    "dependencyTree": "madge",
    "generateTypes": "node packages/tools/generate-database-types",
    "linkChecker": "linkchecker https://joplinapp.org/ && linkchecker --check-extern https://joplinapp.org/api/references/plugin_api/classes/joplin.html",
    "linter-ci": "eslint --resolve-plugins-relative-to . --quiet --ext .js --ext .jsx --ext .ts --ext .tsx",
    "linter-interactive": "eslint-interactive --resolve-plugins-relative-to . --fix --quiet --ext .js --ext .jsx --ext .ts --ext .tsx",
    "linter-precommit": "eslint --resolve-plugins-relative-to . --fix --ext .js --ext .jsx --ext .ts --ext .tsx",
    "linter": "eslint --resolve-plugins-relative-to . --fix --quiet --ext .js --ext .jsx --ext .ts --ext .tsx",
    "packageJsonLint": "node ./packages/tools/packageJsonLint.js",
    "syncFuzzer": "node ./packages/tools/fuzzer/cli.js",
    "postinstall": "husky && gulp build",
    "postPreReleasesToForum": "node ./packages/tools/postPreReleasesToForum",
    "publishAll": "git pull && yarn buildParallel && lerna version --yes --no-private --no-git-tag-version && gulp completePublishAll",
    "releaseAndroid": "PATH=\"/usr/local/opt/openjdk@17/bin:$PATH\" node packages/tools/release-android.js",
    "releaseAndroidClean": "node packages/tools/release-android.js",
    "releaseCli": "node packages/tools/release-cli.js",
    "releaseClipper": "node packages/tools/release-clipper.js",
    "releaseDesktop": "node packages/tools/release-electron.js",
    "releaseIOS": "node packages/tools/release-ios.js",
    "releasePluginGenerator": "node packages/tools/release-plugin-generator.js",
    "releasePluginRepoCli": "node packages/tools/release-plugin-repo-cli.js",
    "releaseServer": "node packages/tools/release-server.js",
    "releaseTranscribe": "node packages/tools/release-transcribe.js",
    "saveClaConsentRecords": "node packages/tools/saveClaConsentRecords.js",
    "setupNewRelease": "node ./packages/tools/setupNewRelease",
    "spellcheck": "node packages/tools/spellcheck.js",
    "tagServerLatest": "node packages/tools/tagServerLatest.js",
    "test-ci": "yarn workspaces foreach --worktree --parallel --verbose --interlaced --jobs 2 run test-ci",
    "test": "yarn workspaces foreach --worktree --parallel --verbose --interlaced --jobs 2 run test",
    "tsc": "yarn workspaces foreach --worktree --parallel --verbose --interlaced run tsc",
    "updateIgnored": "node packages/tools/gulp/tasks/updateIgnoredTypeScriptBuildRun.js",
    "updateCanary": "node ./packages/tools/updateCanary",
    "updateMarkdownDoc": "node ./packages/tools/updateMarkdownDoc",
    "updateNews": "node ./packages/tools/website/updateNews",
    "updatePluginTypes": "./packages/generator-joplin/updateTypes.sh",
    "validateFilenames": "node ./packages/tools/validateFilenames.js",
    "watch": "yarn workspaces foreach --worktree --parallel --verbose --interlaced --jobs 999 run watch",
    "watchWebsite": "nodemon --delay 1 --watch Assets/WebsiteAssets --watch packages/tools/website --watch packages/tools/website/utils --watch packages/doc-builder/build --ext md,ts,js,mustache,css,tsx,gif,png,svg --exec \"node packages/tools/website/build.js && http-server --port 8077 ../joplin-website/docs -a localhost\""
  },
  "devDependencies": {
    "@crowdin/cli": "4",
    "@joplin/utils": "~2.12",
    "@seiyab/eslint-plugin-react-hooks": "4.5.1-beta.0",
    "@types/jest": "29.5.14",
    "@typescript-eslint/eslint-plugin": "6.21.0",
    "@typescript-eslint/parser": "6.21.0",
    "cspell": "5.21.2",
    "eslint": "8.57.1",
    "eslint-interactive": "10.8.0",
    "eslint-plugin-import": "2.32.0",
    "eslint-plugin-jest": "27.9.0",
    "eslint-plugin-promise": "6.6.0",
    "eslint-plugin-react": "7.37.5",
    "execa": "5.1.1",
    "fs-extra": "11.3.3",
    "glob": "11.1.0",
    "gulp": "4.0.2",
    "husky": "9.1.7",
    "lerna": "3.22.1",
    "lint-staged": "16.2.7",
    "madge": "8.0.0",
    "npm-package-json-lint": "9.0.0",
    "typescript": "5.8.3"
  },
  "dependencies": {
    "@types/fs-extra": "11.0.4",
    "eslint-plugin-github": "4.10.2",
    "http-server": "14.1.1",
    "node-gyp": "11.5.0",
    "nodemon": "3.1.11"
  },
  "packageManager": "yarn@4.9.2",
  "resolutions": {
    "react-native-camera@4.2.1": "patch:react-native-camera@npm%3A4.2.1#./.yarn/patches/react-native-camera-npm-4.2.1-24b2600a7e.patch",
    "eslint": "patch:eslint@8.57.1#./.yarn/patches/eslint-npm-8.39.0-d92bace04d.patch",
    "app-builder-lib@24.4.0": "patch:app-builder-lib@npm%3A24.4.0#./.yarn/patches/app-builder-lib-npm-24.4.0-05322ff057.patch",
    "nanoid": "patch:nanoid@npm%3A3.3.7#./.yarn/patches/nanoid-npm-3.3.7-98824ba130.patch",
    "pdfjs-dist": "patch:pdfjs-dist@npm%3A3.11.174#./.yarn/patches/pdfjs-dist-npm-3.11.174-67f2fee6d6.patch",
    "chokidar@^2.0.0": "3.5.3",
    "rn-fetch-blob@0.12.0": "patch:rn-fetch-blob@npm%3A0.12.0#./.yarn/patches/rn-fetch-blob-npm-0.12.0-cf02e3c544.patch",
    "app-builder-lib@26.0.0-alpha.7": "patch:app-builder-lib@npm%3A26.0.0-alpha.7#./.yarn/patches/app-builder-lib-npm-26.0.0-alpha.7-e1b3dca119.patch",
    "app-builder-lib@24.13.3": "patch:app-builder-lib@npm%3A24.13.3#./.yarn/patches/app-builder-lib-npm-24.13.3-86a66c0bf3.patch",
    "react-native-sqlite-storage@6.0.1": "patch:react-native-sqlite-storage@npm%3A6.0.1#./.yarn/patches/react-native-sqlite-storage-npm-6.0.1-8369d747bd.patch",
    "react-native-paper@5.13.1": "patch:react-native-paper@npm%3A5.13.1#./.yarn/patches/react-native-paper-npm-5.13.1-f153e542e2.patch",
    "react-native-popup-menu@0.17.0": "patch:react-native-popup-menu@npm%3A0.17.0#./.yarn/patches/react-native-popup-menu-npm-0.17.0-8b745d88dd.patch",
    "react-native@0.79.2": "patch:react-native@npm%3A0.79.2#./.yarn/patches/react-native-npm-0.79.2-9db13eddfe.patch",
    "pdfjs-dist@2.16.105": "patch:pdfjs-dist@npm%3A3.11.174#./.yarn/patches/pdfjs-dist-npm-3.11.174-67f2fee6d6.patch",
    "pdfjs-dist@*": "patch:pdfjs-dist@npm%3A3.11.174#./.yarn/patches/pdfjs-dist-npm-3.11.174-67f2fee6d6.patch",
    "pdfjs-dist@3.11.174": "patch:pdfjs-dist@npm%3A3.11.174#./.yarn/patches/pdfjs-dist-npm-3.11.174-67f2fee6d6.patch",
    "canvas@npm:^2.11.2": "link:./.yarn/joplin-empty-package/",
    "node-gyp@npm:^9.0.0": "11.2.0",
    "depd@npm:^2.0.0": "patch:depd@npm%3A2.0.0#~/.yarn/patches/depd-npm-2.0.0-b6c51a4b43.patch",
    "depd@npm:~2.0.0": "patch:depd@npm%3A2.0.0#~/.yarn/patches/depd-npm-2.0.0-b6c51a4b43.patch",
    "depd@npm:~1.1.2": "patch:depd@npm%3A2.0.0#~/.yarn/patches/depd-npm-2.0.0-b6c51a4b43.patch",
    "depd@npm:2.0.0": "patch:depd@npm%3A2.0.0#~/.yarn/patches/depd-npm-2.0.0-b6c51a4b43.patch",
    "depd@npm:^1.1.2": "patch:depd@npm%3A2.0.0#~/.yarn/patches/depd-npm-2.0.0-b6c51a4b43.patch",
    "depd@npm:^1.1.0": "patch:depd@npm%3A2.0.0#~/.yarn/patches/depd-npm-2.0.0-b6c51a4b43.patch",
    "formidable@npm:^2.0.1": "patch:formidable@npm%3A2.1.2#~/.yarn/patches/formidable-npm-2.1.2-40ba18d67f.patch",
    "formidable@npm:2.1.2": "patch:formidable@npm%3A2.1.2#~/.yarn/patches/formidable-npm-2.1.2-40ba18d67f.patch",
    "@react-native-vector-icons/fontawesome5@npm:12.3.0": "patch:@react-native-vector-icons/fontawesome5@npm%3A12.3.0#~/.yarn/patches/_at_react-native-vector-icons-fontawesome5-npm-12.3.0-a1ca46610f.patch",
    "@react-native-vector-icons/ionicons@npm:12.3.0": "patch:@react-native-vector-icons/ionicons@npm%3A12.3.0#~/.yarn/patches/_at_react-native-vector-icons-ionicons-npm-12.3.0-9bd4746f3f.patch",
    "@react-native-vector-icons/material-design-icons@npm:12.4.0": "patch:@react-native-vector-icons/material-design-icons@npm%3A12.4.0#~/.yarn/patches/_at_react-native-vector-icons-material-design-icons-npm-12.4.0-890f7f618b.patch",
    "@react-native-vector-icons/material-icons@npm:12.4.0": "patch:@react-native-vector-icons/material-icons@npm%3A12.4.0#~/.yarn/patches/_at_react-native-vector-icons-material-icons-npm-12.4.0-94138e627b.patch"
  }
}
