diff --git a/.gitignore b/.gitignore index 38bb7dea..65f40509 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ shared/pdf_viewer.css shared/pdf_viewer.js shared/pdf_viewer.js.map shared/cmaps/ +types/ diff --git a/package-lock.json b/package-lock.json index 519d99b1..d5dc4de5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,6 +31,7 @@ "sinon": "^9.0.2", "sinon-chai": "^3.3.0", "terser-webpack-plugin": "^4.2.3", + "typescript": "^4.5.5", "webpack": "^4.34.0", "webpack-cli": "^4.7.2", "webpack-dev-server": "^3.7.2" @@ -11853,6 +11854,19 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "node_modules/typescript": { + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", + "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, "node_modules/ua-parser-js": { "version": "0.7.31", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", @@ -22990,6 +23004,12 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "typescript": { + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", + "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", + "dev": true + }, "ua-parser-js": { "version": "0.7.31", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", diff --git a/package.json b/package.json index 782f6edb..245d2b08 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "2.4.0", "description": "Annotation layer for pdf.js", "main": "index.js", + "types": "types", "scripts": { "test": "karma start --single-run", "start": "./scripts/web", @@ -10,7 +11,8 @@ "startindocker": "./scripts/web-docker", "build": "webpack && MINIFY=1 webpack", "codecov": "codecov", - "prepublishOnly": "npm run build" + "prepublishOnly": "npm run build && npm run types", + "types": "tsc" }, "repository": { "type": "git", @@ -58,6 +60,7 @@ "sinon": "^9.0.2", "sinon-chai": "^3.3.0", "terser-webpack-plugin": "^4.2.3", + "typescript": "^4.5.5", "webpack": "^4.34.0", "webpack-cli": "^4.7.2", "webpack-dev-server": "^3.7.2" @@ -69,6 +72,7 @@ "dist", "src", "index.js", + "types", "LICENSE.md", "README.md", "webpack.config.js" diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..9eccdc60 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,10 @@ +{ + "include": ["src/**/*.js", "index.js"], + "compilerOptions": { + "allowJs": true, + "declaration": true, + "emitDeclarationOnly": true, + "declarationMap": true, + "outDir": "types" + } +}