diff --git a/.vscode/settings.json b/.vscode/settings.json index ee7b675..2e76555 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,5 +3,6 @@ "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" - } + }, + "typescript.tsdk": "node_modules/typescript/lib" } diff --git a/package-lock.json b/package-lock.json index 01dda5d..aa0aa18 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "3.0.2", "license": "AGPL-3.0-or-later", "dependencies": { - "zotero-plugin-toolkit": "^4.0.11" + "zotero-plugin-toolkit": "^4.0.16" }, "devDependencies": { "@eslint/js": "^9.14.0", @@ -19,7 +19,7 @@ "typescript": "^5.7.2", "typescript-eslint": "^8.18.2", "zotero-plugin-scaffold": "^0.1.7", - "zotero-types": "^3.0.4" + "zotero-types": "^3.0.11" } }, "node_modules/@babel/code-frame": { @@ -1063,6 +1063,7 @@ "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.65.tgz", "integrity": "sha512-YcFhXQcp+b2d38zFOJNbpyPHnIL7KAEkhJQ+UeeKI5IpE9B8Cpf/M6RiHPQXSsSqnYbrfFylnW49dyh2oeSblQ==", "optional": true, + "peer": true, "engines": { "node": ">= 10" }, @@ -1090,6 +1091,7 @@ "os": [ "android" ], + "peer": true, "engines": { "node": ">= 10" } @@ -1105,6 +1107,7 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": ">= 10" } @@ -1120,6 +1123,7 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": ">= 10" } @@ -1135,6 +1139,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10" } @@ -1150,6 +1155,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10" } @@ -1165,6 +1171,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10" } @@ -1180,6 +1187,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10" } @@ -1195,6 +1203,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10" } @@ -1210,6 +1219,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10" } @@ -1225,6 +1235,7 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">= 10" } @@ -1676,7 +1687,8 @@ "node_modules/@types/bluebird": { "version": "3.5.42", "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.42.tgz", - "integrity": "sha512-Jhy+MWRlro6UjVi578V/4ZGNfeCOcNCp0YaFNIUGFKlImowqwb1O/22wDVk3FDGMLqxdpOV3qQHD5fPEH4hK6A==" + "integrity": "sha512-Jhy+MWRlro6UjVi578V/4ZGNfeCOcNCp0YaFNIUGFKlImowqwb1O/22wDVk3FDGMLqxdpOV3qQHD5fPEH4hK6A==", + "peer": true }, "node_modules/@types/estree": { "version": "1.0.6", @@ -1695,6 +1707,7 @@ "resolved": "https://registry.npmjs.org/@types/localforage/-/localforage-0.0.34.tgz", "integrity": "sha512-tJxahnjm9dEI1X+hQSC5f2BSd/coZaqbIl1m3TCl0q9SVuC52XcXfV0XmoCU1+PmjyucuVITwoTnN8OlTbEXXA==", "deprecated": "This is a stub types definition for localforage (https://github.com/localForage/localForage). localforage provides its own type definitions, so you don't need @types/localforage installed!", + "peer": true, "dependencies": { "localforage": "*" } @@ -1714,17 +1727,12 @@ "undici-types": "~6.20.0" } }, - "node_modules/@types/prop-types": { - "version": "15.7.14", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", - "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==" - }, "node_modules/@types/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.1.tgz", - "integrity": "sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw==", + "version": "19.0.2", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.2.tgz", + "integrity": "sha512-USU8ZI/xyKJwFTpjSVIrSeHBVAGagkHQKPNbxeWwql/vDmnTIBgx+TJnhFnj1NXgz8XfprU0egV2dROLGpsBEg==", + "peer": true, "dependencies": { - "@types/prop-types": "*", "csstype": "^3.0.2" } }, @@ -1944,6 +1952,7 @@ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.13.tgz", "integrity": "sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==", "deprecated": "this version is no longer supported, please update to at least 0.8.*", + "peer": true, "engines": { "node": ">=10.0.0" } @@ -3255,9 +3264,9 @@ } }, "node_modules/consola": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.3.2.tgz", - "integrity": "sha512-X3dcWPU+QeEaPrdtX3zBRQ0P0kIeEnmJV49uNtpy4N/TPnzA3grJvHftKjHuFIQNLrqBPzzykmc3fNrkQDl5yA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.3.3.tgz", + "integrity": "sha512-Qil5KwghMzlqd51UXM0b6fyaGHtOC22scxrwrz4A2882LyUMwQjnvaedN1HAeXzphspQ6CpHkzMAWxBTUruDLg==", "dev": true, "engines": { "node": "^14.18.0 || >=16.10.0" @@ -3268,6 +3277,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.39.0.tgz", "integrity": "sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==", "hasInstallScript": true, + "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -3323,12 +3333,14 @@ "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "peer": true }, "node_modules/d": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "peer": true, "dependencies": { "es5-ext": "^0.10.64", "type": "^2.7.2" @@ -3659,6 +3671,7 @@ "version": "0.3.93", "resolved": "https://registry.npmjs.org/epubjs/-/epubjs-0.3.93.tgz", "integrity": "sha512-c06pNSdBxcXv3dZSbXAVLE1/pmleRhOT6mXNZo6INKmvuKpYB65MwU/lO7830czCtjIiK9i+KR+3S+p0wtljrw==", + "peer": true, "dependencies": { "@types/localforage": "0.0.34", "@xmldom/xmldom": "^0.7.5", @@ -3681,9 +3694,9 @@ } }, "node_modules/es-toolkit": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.30.1.tgz", - "integrity": "sha512-ZXflqanzH8BpHkDhFa10bBf6ONDCe84EPUm7SSICGzuuROSluT2ynTPtwn9PcRelMtorCRozSknI/U0MNYp0Uw==", + "version": "1.31.0", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.31.0.tgz", + "integrity": "sha512-vwS0lv/tzjM2/t4aZZRAgN9I9TP0MSkWuvt6By+hEXfG/uLs8yg2S1/ayRXH/x3pinbLgVJYT+eppueg3cM6tg==", "dev": true, "workspaces": [ "docs", @@ -3695,6 +3708,7 @@ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", "hasInstallScript": true, + "peer": true, "dependencies": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", @@ -3715,6 +3729,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "peer": true, "dependencies": { "d": "1", "es5-ext": "^0.10.35", @@ -3725,6 +3740,7 @@ "version": "3.1.4", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "peer": true, "dependencies": { "d": "^1.0.2", "ext": "^1.7.0" @@ -3897,6 +3913,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "peer": true, "dependencies": { "d": "^1.0.1", "es5-ext": "^0.10.62", @@ -3983,6 +4000,7 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "peer": true, "dependencies": { "d": "1", "es5-ext": "~0.10.14" @@ -4033,6 +4051,7 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "peer": true, "dependencies": { "type": "^2.7.2" } @@ -5152,6 +5171,7 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", + "peer": true, "dependencies": { "lie": "3.1.1" } @@ -5160,6 +5180,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", + "peer": true, "dependencies": { "immediate": "~3.0.5" } @@ -5182,7 +5203,8 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "peer": true }, "node_modules/lodash.merge": { "version": "4.6.2", @@ -5217,7 +5239,8 @@ "node_modules/marks-pane": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/marks-pane/-/marks-pane-1.0.9.tgz", - "integrity": "sha512-Ahs4oeG90tbdPWwAJkAAoHg2lRR8lAs9mZXETNPO9hYg3AkjUJBKi1NQ4aaIQZVGrig7c/3NUV1jANl8rFTeMg==" + "integrity": "sha512-Ahs4oeG90tbdPWwAJkAAoHg2lRR8lAs9mZXETNPO9hYg3AkjUJBKi1NQ4aaIQZVGrig7c/3NUV1jANl8rFTeMg==", + "peer": true }, "node_modules/marky": { "version": "1.2.5", @@ -5424,7 +5447,8 @@ "node_modules/next-tick": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "peer": true }, "node_modules/node-fetch-native": { "version": "1.6.4", @@ -5957,7 +5981,8 @@ "node_modules/path-webpack": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/path-webpack/-/path-webpack-0.0.3.tgz", - "integrity": "sha512-AmeDxedoo5svf7aB3FYqSAKqMxys014lVKBzy1o/5vv9CtU7U4wgGWL1dA2o6MOzcD53ScN4Jmiq6VbtLz1vIQ==" + "integrity": "sha512-AmeDxedoo5svf7aB3FYqSAKqMxys014lVKBzy1o/5vv9CtU7U4wgGWL1dA2o6MOzcD53ScN4Jmiq6VbtLz1vIQ==", + "peer": true }, "node_modules/pathe": { "version": "1.1.2", @@ -5969,6 +5994,7 @@ "version": "4.9.155", "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-4.9.155.tgz", "integrity": "sha512-epRZn6DQQKCOEqbmFsxkiMBm1MHaNrnr6T4VBNP0bsDvdJdmrWcZbS5cgJXW68P0d3uJTlFhF6Wms2tlSgPYig==", + "peer": true, "engines": { "node": ">=20" }, @@ -6090,13 +6116,13 @@ "dev": true }, "node_modules/pkg-types": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.2.1.tgz", - "integrity": "sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.0.tgz", + "integrity": "sha512-kS7yWjVFCkIw9hqdJBoMxDdzEngmkr5FXeWZZfQ6GoYacjVnsW6l2CcYW/0ThD0vF4LPJgVYnrg4d0uuhwYQbg==", "dev": true, "dependencies": { "confbox": "^0.1.8", - "mlly": "^1.7.2", + "mlly": "^1.7.3", "pathe": "^1.1.2" } }, @@ -7195,7 +7221,8 @@ "node_modules/type": { "version": "2.7.3", "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", - "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==" + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", + "peer": true }, "node_modules/type-check": { "version": "0.4.0", @@ -7870,37 +7897,25 @@ } }, "node_modules/zotero-plugin-toolkit": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/zotero-plugin-toolkit/-/zotero-plugin-toolkit-4.0.11.tgz", - "integrity": "sha512-vDuJ+ARLrELZHL0sZqsAwHA+igrDbJ4DnJ/Bx/cbpJmf+3MB2j+dvBBvz3R+xj5EMTUoQb5XC46HHNm7JWMAuQ==", - "dependencies": { - "zotero-types": "^2.2.0" - }, + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/zotero-plugin-toolkit/-/zotero-plugin-toolkit-4.0.16.tgz", + "integrity": "sha512-VNBmvIpdBDRyV4ze553V5u8jUPo3FOkGkMWrDgDsFn5H3ckFo5EDKGuBOdOHaRgUI/F0zCI3iV3MbGdxHMheDQ==", "engines": { "node": ">=18" - } - }, - "node_modules/zotero-plugin-toolkit/node_modules/zotero-types": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/zotero-types/-/zotero-types-2.2.1.tgz", - "integrity": "sha512-alsjWn7i3pJq7b9+2XT2WbxZtWk4WWH4EIUi6o+Xx7/uz8TQDA0PFY2mS91gL8VXWKXMrSBJKYEbkvMMR6KuKA==", - "dependencies": { - "@types/bluebird": "^3.5.42", - "@types/react": "18.3.1", - "epubjs": "^0.3.93", - "pdfjs-dist": "^4.4.0" + }, + "peerDependencies": { + "zotero-types": "^3.0.10" } }, "node_modules/zotero-types": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/zotero-types/-/zotero-types-3.0.4.tgz", - "integrity": "sha512-4T6PfnzIUAOik5Gemj3HEh5eYo2DlGRA/H8jzOIqT1uf9QqPxyl3V1t+TDgZyf7FopgP8u8bu9TT6xT0+X4iHQ==", - "dev": true, - "dependencies": { - "@types/bluebird": "^3.5.42", - "@types/react": "18.3.1", - "epubjs": "^0.3.93", - "pdfjs-dist": "^4.4.0" + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/zotero-types/-/zotero-types-3.0.11.tgz", + "integrity": "sha512-/7IcnnvXAn6KmtH2iPdfE8ZjDf3ZZC3hgkp6nZaRlfd7OHZUgIN0O7zLj2TwWWm2Af1EDl+Dv+qeXcCJ+0S0bw==", + "peerDependencies": { + "@types/bluebird": "*", + "@types/react": "*", + "epubjs": "*", + "pdfjs-dist": "*" } } } diff --git a/package.json b/package.json index c5cf1db..7ffa6a4 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "update-deps": "npm update --save" }, "dependencies": { - "zotero-plugin-toolkit": "^4.0.11" + "zotero-plugin-toolkit": "^4.0.16" }, "devDependencies": { "@eslint/js": "^9.14.0", @@ -38,7 +38,7 @@ "typescript": "^5.7.2", "typescript-eslint": "^8.18.2", "zotero-plugin-scaffold": "^0.1.7", - "zotero-types": "^3.0.4" + "zotero-types": "^3.0.11" }, "prettier": { "printWidth": 80, diff --git a/src/hooks.ts b/src/hooks.ts index f879236..e6d44ae 100644 --- a/src/hooks.ts +++ b/src/hooks.ts @@ -100,6 +100,7 @@ function onShutdown(): void { addon.data.dialog?.window?.close(); // Remove addon object addon.data.alive = false; + // @ts-ignore - Plugin instance is not typed delete Zotero[addon.data.config.addonInstance]; } diff --git a/src/index.ts b/src/index.ts index eb510c9..3dd098e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,11 +4,13 @@ import { config } from "../package.json"; const basicTool = new BasicTool(); +// @ts-ignore - Plugin instance is not typed if (!basicTool.getGlobal("Zotero")[config.addonInstance]) { _globalThis.addon = new Addon(); defineGlobal("ztoolkit", () => { return _globalThis.addon.data.ztoolkit; }); + // @ts-ignore - Plugin instance is not typed Zotero[config.addonInstance] = addon; } diff --git a/src/utils/wait.ts b/src/utils/wait.ts deleted file mode 100644 index 5d2e765..0000000 --- a/src/utils/wait.ts +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Wait until the condition is `true` or timeout. - * The callback is triggered if condition returns `true`. - * @param condition - * @param callback - * @param interval - * @param timeout - */ -export function waitUntil( - condition: () => boolean, - callback: () => void, - interval = 100, - timeout = 10000, -) { - const start = Date.now(); - const intervalId = ztoolkit.getGlobal("setInterval")(() => { - if (condition()) { - ztoolkit.getGlobal("clearInterval")(intervalId); - callback(); - } else if (Date.now() - start > timeout) { - ztoolkit.getGlobal("clearInterval")(intervalId); - } - }, interval); -} - -/** - * Wait async until the condition is `true` or timeout. - * @param condition - * @param interval - * @param timeout - */ -export function waitUtilAsync( - condition: () => boolean, - interval = 100, - timeout = 10000, -) { - return new Promise((resolve, reject) => { - const start = Date.now(); - const intervalId = ztoolkit.getGlobal("setInterval")(() => { - if (condition()) { - ztoolkit.getGlobal("clearInterval")(intervalId); - resolve(); - } else if (Date.now() - start > timeout) { - ztoolkit.getGlobal("clearInterval")(intervalId); - reject(); - } - }, interval); - }); -} diff --git a/tsconfig.json b/tsconfig.json index a033072..2347a08 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,7 +4,7 @@ "module": "commonjs", "target": "ES2016", "resolveJsonModule": true, - "skipLibCheck": true, + "skipDefaultLibCheck": true, "strict": true }, "include": ["src", "typings", "node_modules/zotero-types"],