diff --git a/.claude/settings.json b/.claude/settings.json index 422d89133..72bbed76d 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -1,6 +1,7 @@ { "permissions": { "allow": [ + "Bash(cat:*)", "Bash(echo:*)", "Bash(gh issue view:*)", "Bash(gh label list:*)", diff --git a/package.json b/package.json index fa876a1fa..d0255ed53 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,10 @@ }, "devDependencies": { "@biomejs/biome": "^2.0.5", - "@changesets/cli": "^2.29.8" + "@changesets/cli": "^2.29.8", + "@types/node": "^18.19.130", + "shx": "^0.4.0", + "tsx": "^4.20.6", + "typescript": "5.9.3" } } diff --git a/packages/cli-hooks/jsconfig.json b/packages/cli-hooks/jsconfig.json index aca7ed985..e97ebebcf 100644 --- a/packages/cli-hooks/jsconfig.json +++ b/packages/cli-hooks/jsconfig.json @@ -1,24 +1,9 @@ { + "$schema": "https://json.schemastore.org/jsconfig", + "extends": "../../tsconfig.base.json", "compilerOptions": { "module": "es2022", - "moduleResolution": "node", - "esModuleInterop": true, - "checkJs": true, - - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - - "baseUrl": ".", - "paths": { - "*": ["./types/*"] - } + "checkJs": true }, - "include": ["src/**/*"], - "jsdoc": { - "out": "support/jsdoc", - "access": "public" - } + "include": ["src/**/*"] } diff --git a/packages/cli-hooks/package.json b/packages/cli-hooks/package.json index 59720a020..4800cbb5b 100644 --- a/packages/cli-hooks/package.json +++ b/packages/cli-hooks/package.json @@ -54,11 +54,8 @@ }, "devDependencies": { "@types/minimist": "^1.2.5", - "@types/node": "^18.19.130", "@types/semver": "^7.5.6", "@types/sinon": "^21.0.0", - "shx": "^0.4.0", - "sinon": "^21.0.0", - "typescript": "5.9.3" + "sinon": "^21.0.0" } } diff --git a/packages/cli-test/package.json b/packages/cli-test/package.json index be192823f..d1e537352 100644 --- a/packages/cli-test/package.json +++ b/packages/cli-test/package.json @@ -41,15 +41,10 @@ "winston": "^3.8.2" }, "devDependencies": { - "@tsconfig/recommended": "^1.0.6", - "@types/node": "^18.19.130", "@types/sinon": "^21.0.0", "cross-env": "^10.0.0", - "shx": "^0.4.0", "sinon": "^21.0.0", - "tsx": "^4.20.6", "typedoc": "^0.28.7", - "typedoc-plugin-markdown": "^4.7.1", - "typescript": "5.9.3" + "typedoc-plugin-markdown": "^4.7.1" } } diff --git a/packages/cli-test/tsconfig.json b/packages/cli-test/tsconfig.json index 2bf1fa1b5..749075079 100644 --- a/packages/cli-test/tsconfig.json +++ b/packages/cli-test/tsconfig.json @@ -1,22 +1,6 @@ { "$schema": "https://json.schemastore.org/tsconfig", - "compilerOptions": { - "declaration": true, - "declarationMap": true, - "esModuleInterop": true, - "noFallthroughCasesInSwitch": true, - "noImplicitReturns": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "outDir": "dist", - "skipLibCheck": true, - "sourceMap": true - }, - "extends": "@tsconfig/recommended/tsconfig.json", + "extends": "../../tsconfig.base.json", "include": ["src/**/*"], - "jsdoc": { - "out": "support/jsdoc", - "access": "public" - }, "exclude": ["src/**/*.test.*"] } diff --git a/packages/logger/package.json b/packages/logger/package.json index a9dc56715..2acf8e9ce 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -38,11 +38,7 @@ "test:unit": "npm run build && node --experimental-test-coverage --test-reporter=spec --test-reporter-destination=stdout --test-reporter=lcov --test-reporter-destination=lcov.info --test-reporter=junit --test-reporter-destination=test-results.xml --import tsx --test src/index.test.ts" }, "devDependencies": { - "@types/node": "^18.19.130", - "shx": "^0.4.0", - "tsx": "^4.20.6", "typedoc": "^0.28.7", - "typedoc-plugin-markdown": "^4.7.1", - "typescript": "^5.9.3" + "typedoc-plugin-markdown": "^4.7.1" } } diff --git a/packages/logger/tsconfig.json b/packages/logger/tsconfig.json index 709df4fe1..749075079 100644 --- a/packages/logger/tsconfig.json +++ b/packages/logger/tsconfig.json @@ -1,33 +1,6 @@ { "$schema": "https://json.schemastore.org/tsconfig", - "compilerOptions": { - "target": "es2017", - "module": "commonjs", - "declaration": true, - "declarationMap": true, - "sourceMap": true, - "outDir": "dist", - "skipLibCheck": true, - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "moduleResolution": "node", - "baseUrl": ".", - "paths": { - "*": ["./types/*"] - }, - "esModuleInterop": true - // Not using this setting because it's only used to require the package.json file, and that would change the - // structure of the files in the dist directory because package.json is not located inside src. It would be nice - // to use import instead of require(), but it's not worth the tradeoff of restructuring the build (for now). - // "resolveJsonModule": true, - }, + "extends": "../../tsconfig.base.json", "include": ["src/**/*"], - "exclude": ["src/**/*.test.*"], - "jsdoc": { - "out": "support/jsdoc", - "access": "public" - } + "exclude": ["src/**/*.test.*"] } diff --git a/packages/oauth/package.json b/packages/oauth/package.json index e75fc191d..d36dfed71 100644 --- a/packages/oauth/package.json +++ b/packages/oauth/package.json @@ -48,14 +48,10 @@ "jsonwebtoken": "^9" }, "devDependencies": { - "@types/node": "^18.19.130", "@types/sinon": "^21", "rewiremock": "^3", - "shx": "^0.4.0", "sinon": "^21", - "tsx": "^4.20.6", "typedoc": "^0.28.7", - "typedoc-plugin-markdown": "^4.7.0", - "typescript": "5.9.3" + "typedoc-plugin-markdown": "^4.7.0" } } diff --git a/packages/oauth/tsconfig.json b/packages/oauth/tsconfig.json index 51c5094cc..bea8a558f 100644 --- a/packages/oauth/tsconfig.json +++ b/packages/oauth/tsconfig.json @@ -1,33 +1,6 @@ { "$schema": "https://json.schemastore.org/tsconfig", - "compilerOptions": { - "target": "es5", - "module": "commonjs", - "declaration": true, - "declarationMap": true, - "sourceMap": true, - "outDir": "dist", - "skipLibCheck": true, - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "moduleResolution": "node", - "baseUrl": ".", - "paths": { - "*": ["./types/*"] - }, - "esModuleInterop": true - // Not using this setting because it's only used to require the package.json file, and that would change the - // structure of the files in the dist directory because package.json is not located inside src. It would be nice - // to use import instead of require(), but it's not worth the tradeoff of restructuring the build (for now). - // "resolveJsonModule": true, - }, + "extends": "../../tsconfig.base.json", "include": ["src/**/*"], - "exclude": ["src/**/spec-utils.ts", "src/**/*.test.*"], - "jsdoc": { - "out": "support/jsdoc", - "access": "public" - } + "exclude": ["src/**/spec-utils.ts", "src/**/*.test.*"] } diff --git a/packages/rtm-api/package.json b/packages/rtm-api/package.json index 93fbdbae0..ef2dcf222 100644 --- a/packages/rtm-api/package.json +++ b/packages/rtm-api/package.json @@ -55,14 +55,10 @@ "ws": "^8" }, "devDependencies": { - "@types/node": "^18.19.130", "@types/sinon": "^17", "@types/ws": "^8", - "shx": "^0.3.2", "sinon": "^21", - "tsx": "^4.20.6", "typedoc": "^0.28.7", - "typedoc-plugin-markdown": "^4.7.1", - "typescript": "5.9.3" + "typedoc-plugin-markdown": "^4.7.1" } } diff --git a/packages/rtm-api/tsconfig.json b/packages/rtm-api/tsconfig.json index adb1b18be..749075079 100644 --- a/packages/rtm-api/tsconfig.json +++ b/packages/rtm-api/tsconfig.json @@ -1,33 +1,6 @@ { "$schema": "https://json.schemastore.org/tsconfig", - "compilerOptions": { - "target": "es2017", - "module": "commonjs", - "declaration": true, - "declarationMap": true, - "sourceMap": true, - "outDir": "dist", - "skipLibCheck": true, - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "moduleResolution": "node", - "baseUrl": ".", - "paths": { - "*": ["./types/*"] - }, - "esModuleInterop": true - // Not using this setting because it's only used to require the package.json file, and that would change the - // structure of the files in the dist directory because package.json is not located inside src. It would be nice - // to use import instead of require(), but it's not worth the tradeoff of restructuring the build (for now). - // "resolveJsonModule": true, - }, + "extends": "../../tsconfig.base.json", "include": ["src/**/*"], - "exclude": ["src/**/*.spec.*"], - "jsdoc": { - "out": "support/jsdoc", - "access": "public" - } + "exclude": ["src/**/*.test.*"] } diff --git a/packages/socket-mode/package.json b/packages/socket-mode/package.json index c60a0cf23..f2382ea92 100644 --- a/packages/socket-mode/package.json +++ b/packages/socket-mode/package.json @@ -58,17 +58,12 @@ "ws": "^8" }, "devDependencies": { - "@types/node": "^18.19.130", - "@tsconfig/recommended": "^1.0.7", "@types/proxyquire": "^1.3.31", "@types/sinon": "^21", "nodemon": "^3.1.0", "proxyquire": "^2.1.3", - "shx": "^0.4.0", "sinon": "^21", - "tsx": "^4.20.6", "typedoc": "^0.28.7", - "typedoc-plugin-markdown": "^4.7.0", - "typescript": "5.9.3" + "typedoc-plugin-markdown": "^4.7.0" } } diff --git a/packages/socket-mode/tsconfig.json b/packages/socket-mode/tsconfig.json index 8c32efc39..275214891 100644 --- a/packages/socket-mode/tsconfig.json +++ b/packages/socket-mode/tsconfig.json @@ -1,22 +1,9 @@ { "$schema": "https://json.schemastore.org/tsconfig", + "extends": "../../tsconfig.base.json", "compilerOptions": { - "declaration": true, - "declarationMap": true, - "noFallthroughCasesInSwitch": true, - "noImplicitReturns": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "outDir": "dist", - "resolveJsonModule": true, - "skipLibCheck": true, - "sourceMap": true + "resolveJsonModule": true }, - "extends": "@tsconfig/recommended/tsconfig.json", "include": ["src/**/*"], - "exclude": ["src/**/*.test.*"], - "jsdoc": { - "out": "support/jsdoc", - "access": "public" - } + "exclude": ["src/**/*.test.*"] } diff --git a/packages/types/package.json b/packages/types/package.json index 09fde391b..896ff08db 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -39,11 +39,9 @@ "test:types": "tsd" }, "devDependencies": { - "shx": "^0.4.0", "tsd": "^0.33.0", "typedoc": "^0.28.7", - "typedoc-plugin-markdown": "^4.7.1", - "typescript": "^5.9.3" + "typedoc-plugin-markdown": "^4.7.1" }, "tsd": { "directory": "test" diff --git a/packages/types/tsconfig.json b/packages/types/tsconfig.json index adb1b18be..749075079 100644 --- a/packages/types/tsconfig.json +++ b/packages/types/tsconfig.json @@ -1,33 +1,6 @@ { "$schema": "https://json.schemastore.org/tsconfig", - "compilerOptions": { - "target": "es2017", - "module": "commonjs", - "declaration": true, - "declarationMap": true, - "sourceMap": true, - "outDir": "dist", - "skipLibCheck": true, - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "moduleResolution": "node", - "baseUrl": ".", - "paths": { - "*": ["./types/*"] - }, - "esModuleInterop": true - // Not using this setting because it's only used to require the package.json file, and that would change the - // structure of the files in the dist directory because package.json is not located inside src. It would be nice - // to use import instead of require(), but it's not worth the tradeoff of restructuring the build (for now). - // "resolveJsonModule": true, - }, + "extends": "../../tsconfig.base.json", "include": ["src/**/*"], - "exclude": ["src/**/*.spec.*"], - "jsdoc": { - "out": "support/jsdoc", - "access": "public" - } + "exclude": ["src/**/*.test.*"] } diff --git a/packages/web-api/package.json b/packages/web-api/package.json index 766073b57..70feb7882 100644 --- a/packages/web-api/package.json +++ b/packages/web-api/package.json @@ -63,19 +63,14 @@ "retry": "^0.13.1" }, "devDependencies": { - "@tsconfig/recommended": "^1", "@types/busboy": "^1.5.4", - "@types/node": "^18.19.130", "@types/sinon": "^21", "busboy": "^1", "nock": "^14", - "shx": "^0.4.0", "sinon": "^21", - "tsx": "^4.20.6", "tsd": "^0.33.0", "typedoc": "^0.28.7", - "typedoc-plugin-markdown": "^4.7.1", - "typescript": "5.9.3" + "typedoc-plugin-markdown": "^4.7.1" }, "tsd": { "directory": "test/types" diff --git a/packages/web-api/tsconfig.json b/packages/web-api/tsconfig.json index 936e7d63c..749075079 100644 --- a/packages/web-api/tsconfig.json +++ b/packages/web-api/tsconfig.json @@ -1,21 +1,6 @@ { "$schema": "https://json.schemastore.org/tsconfig", - "compilerOptions": { - "declaration": true, - "declarationMap": true, - "noFallthroughCasesInSwitch": true, - "noImplicitReturns": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "outDir": "dist", - "skipLibCheck": true, - "sourceMap": true - }, - "extends": "@tsconfig/recommended/tsconfig.json", + "extends": "../../tsconfig.base.json", "include": ["src/**/*"], - "exclude": ["src/**/*.test.*"], - "jsdoc": { - "out": "support/jsdoc", - "access": "public" - } + "exclude": ["src/**/*.test.*"] } diff --git a/packages/webhook/package.json b/packages/webhook/package.json index c489c7990..375747fc2 100644 --- a/packages/webhook/package.json +++ b/packages/webhook/package.json @@ -47,12 +47,8 @@ "axios": "^1.13.5" }, "devDependencies": { - "@types/node": "^18.19.130", "nock": "^14.0.6", - "shx": "^0.4.0", - "tsx": "^4.20.6", "typedoc": "^0.28.7", - "typedoc-plugin-markdown": "^4.7.1", - "typescript": "^5.9.3" + "typedoc-plugin-markdown": "^4.7.1" } } diff --git a/packages/webhook/tsconfig.json b/packages/webhook/tsconfig.json index 709df4fe1..749075079 100644 --- a/packages/webhook/tsconfig.json +++ b/packages/webhook/tsconfig.json @@ -1,33 +1,6 @@ { "$schema": "https://json.schemastore.org/tsconfig", - "compilerOptions": { - "target": "es2017", - "module": "commonjs", - "declaration": true, - "declarationMap": true, - "sourceMap": true, - "outDir": "dist", - "skipLibCheck": true, - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "moduleResolution": "node", - "baseUrl": ".", - "paths": { - "*": ["./types/*"] - }, - "esModuleInterop": true - // Not using this setting because it's only used to require the package.json file, and that would change the - // structure of the files in the dist directory because package.json is not located inside src. It would be nice - // to use import instead of require(), but it's not worth the tradeoff of restructuring the build (for now). - // "resolveJsonModule": true, - }, + "extends": "../../tsconfig.base.json", "include": ["src/**/*"], - "exclude": ["src/**/*.test.*"], - "jsdoc": { - "out": "support/jsdoc", - "access": "public" - } + "exclude": ["src/**/*.test.*"] } diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 000000000..5bf2bd980 --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + "target": "es2017", + "module": "commonjs", + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "outDir": "${configDir}/dist", + "skipLibCheck": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "moduleResolution": "node", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "baseUrl": "${configDir}", + "paths": { + "*": ["${configDir}/types/*"] + } + }, + "jsdoc": { + "out": "support/jsdoc", + "access": "public" + } +}