@temboplus/tsconfig 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,9 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) TemboPlus Inc. & Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,197 @@
1
+ # temboplus-tsconfig
2
+
3
+ <!-- start: badges -->
4
+
5
+ [![pre-commit](https://github.com/TemboPlus-Inc/temboplus-tsconfig/actions/workflows/pre-commit.yaml/badge.svg)](https://github.com/TemboPlus-Inc/temboplus-tsconfig/actions/workflows/pre-commit.yaml)
6
+ [![audit](https://github.com/TemboPlus-Inc/temboplus-tsconfig/actions/workflows/audit.yaml/badge.svg)](https://github.com/TemboPlus-Inc/temboplus-tsconfig/actions/workflows/audit.yaml)
7
+
8
+ <!-- end: badges -->
9
+
10
+ Base TypeScript configuration files for TemboPlus applications and packages
11
+
12
+ ## Requirements
13
+
14
+ - [NodeJS v22.15.0+](https://nodejs.org)
15
+ - [npm v10.9.2+](https://www.npmjs.com/)
16
+ - [typescript v5.8.3+](https://www.typescriptlang.org)
17
+ - [tslib v2.8.1+](https://github.com/microsoft/tslib), [For optimized bundles](https://www.typescriptlang.org/tsconfig/#importHelpers)
18
+
19
+ ## Installation
20
+
21
+ ```sh
22
+ npm install --save-dev @temboplus/tsconfig
23
+ npm install --save tslib
24
+ ```
25
+
26
+ or
27
+
28
+ ```sh
29
+ npm install --save-dev git@github.com:TemboPlus-Inc/temboplus-tsconfig.git
30
+ npm install --save tslib
31
+ ```
32
+
33
+ ## Usage
34
+
35
+ Extend the desired config in your `tsconfig.json` or project-specific config files.
36
+
37
+ ### Base Configuration (Runtime-agnostic)
38
+
39
+ ```jsonc
40
+ // tsconfig.json or tsconfig.base.json
41
+ {
42
+ "$schema": "https://json.schemastore.org/tsconfig",
43
+ "extends": ["@temboplus/tsconfig/base.json"],
44
+ // overrides + other configurations
45
+ }
46
+ ```
47
+
48
+ ### Build Configurations
49
+
50
+ #### Base Build (Runtime-agnostic)
51
+
52
+ ```jsonc
53
+ // tsconfig.build.json
54
+ {
55
+ "$schema": "https://json.schemastore.org/tsconfig",
56
+ "extends": ["@temboplus/tsconfig/build.json"],
57
+ // overrides + other configurations
58
+ }
59
+ ```
60
+
61
+ #### [CJS](https://nodejs.org/api/modules.html#modules-commonjs-modules) Build
62
+
63
+ ```jsonc
64
+ // tsconfig.cjs.json
65
+ {
66
+ "$schema": "https://json.schemastore.org/tsconfig",
67
+ "extends": ["@temboplus/tsconfig/cjs.json"],
68
+ // overrides + other configurations
69
+ }
70
+ ```
71
+
72
+ #### [ESM](https://nodejs.org/api/esm.html#modules-ecmascript-modules) Build
73
+
74
+ ```jsonc
75
+ // tsconfig.esm.json
76
+ {
77
+ "$schema": "https://json.schemastore.org/tsconfig",
78
+ "extends": ["@temboplus/tsconfig/esm.json"],
79
+ // overrides + other configurations
80
+ }
81
+ ```
82
+
83
+ #### [Type Declarations](https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html) Build
84
+
85
+ ```jsonc
86
+ // tsconfig.types.json
87
+ {
88
+ "$schema": "https://json.schemastore.org/tsconfig",
89
+ "extends": ["@temboplus/tsconfig/types.json"],
90
+ // overrides + other configurations
91
+ }
92
+ ```
93
+
94
+ ### Test Configurations
95
+
96
+ #### Base Test (Runtime-agnostic)
97
+
98
+ ```jsonc
99
+ // tsconfig.test.json
100
+ {
101
+ "$schema": "https://json.schemastore.org/tsconfig",
102
+ "extends": ["@temboplus/tsconfig/test.json"],
103
+ // overrides + other configurations
104
+ }
105
+ ```
106
+
107
+ #### [Jest](https://jestjs.io/docs/getting-started) ([ts-jest](https://kulshekhar.github.io/ts-jest/docs/getting-started/installation))
108
+
109
+ ```jsonc
110
+ // tsconfig.test.json or tsconfig.jest.json
111
+ {
112
+ "$schema": "https://json.schemastore.org/tsconfig",
113
+ "extends": ["@temboplus/tsconfig/jest.json"],
114
+ // overrides + other configurations
115
+ }
116
+ ```
117
+
118
+ #### [Vitest](https://vitest.dev/guide/)
119
+
120
+ ```jsonc
121
+ // tsconfig.test.json or tsconfig.vitest.json
122
+ {
123
+ "$schema": "https://json.schemastore.org/tsconfig",
124
+ "extends": ["@temboplus/tsconfig/vitest.json"],
125
+ // overrides + other configurations
126
+ }
127
+ ```
128
+
129
+ ### [NestJS](https://nestjs.com) Configurations
130
+
131
+ ### Base Build (CommonJS & node10)
132
+
133
+ ```jsonc
134
+ // tsconfig.json or tsconfig.nestjs.json
135
+ {
136
+ "$schema": "https://json.schemastore.org/tsconfig",
137
+ "extends": ["@temboplus/tsconfig/nestjs.json"],
138
+ // overrides + other configurations
139
+ }
140
+ ```
141
+
142
+ ## Contribute
143
+
144
+ We welcome contributions! Here's how to get started:
145
+
146
+ ### How to Contribute
147
+
148
+ 1. **Open an Issue**
149
+ Start by [opening an issue](https://github.com/TemboPlus-Inc/temboplus-tsconfig/issues) to discuss your proposed changes.
150
+
151
+ 2. **Clone the Repo**
152
+
153
+ ```sh
154
+ git clone git@github.com:TemboPlus-Inc/temboplus-tsconfig.git
155
+ cd temboplus-tsconfig
156
+ ```
157
+
158
+ 3. **Install dependencies**
159
+
160
+ ```sh
161
+ npm install
162
+ ```
163
+
164
+ 4. **Create a Feature Branch**
165
+
166
+ ```sh
167
+ git checkout -b feature/<your-feature-name> main
168
+ ```
169
+
170
+ 5. **Make Your Changes & Run Checks**
171
+
172
+ ```sh
173
+ npm run check
174
+ ```
175
+
176
+ For available scripts and automation workflows, see the [Tasks guide](https://github.com/TemboPlus-Inc/temboplus-tsconfig/blob/main/TASKS.md).
177
+
178
+ 6. **Commit Your Changes**
179
+
180
+ ```sh
181
+ git commit -m "feat(<scope>): <add new feature description>"
182
+ ```
183
+
184
+ 7. **Push & Submit a Pull Request**
185
+
186
+ ```sh
187
+ git push origin feature/<your-feature-name>
188
+ ```
189
+
190
+ Then, open a **Pull Request (PR)** to the **main branch**.
191
+
192
+ ### Contribution Guidelines
193
+
194
+ - Follow **[Conventional Commits](https://www.conventionalcommits.org/)** (`feat`, `fix`, `chore`, etc.).
195
+ - Write meaningful **commit messages**, **PR titles** and **code comments**.
196
+ - Ensure the code passes **checks** before submitting.
197
+ - Keep changes focused and well-scoped.
package/package.json ADDED
@@ -0,0 +1,218 @@
1
+ {
2
+ "name": "@temboplus/tsconfig",
3
+ "version": "0.1.0",
4
+ "description": "Base TypeScript configuration files for TemboPlus applications and packages",
5
+ "files": [
6
+ "tsconfig.base.json",
7
+ "tsconfig.build.json",
8
+ "tsconfig.cjs.json",
9
+ "tsconfig.esm.json",
10
+ "tsconfig.jest.json",
11
+ "tsconfig.nestjs.json",
12
+ "tsconfig.test.json",
13
+ "tsconfig.types.json",
14
+ "tsconfig.vitest.json"
15
+ ],
16
+ "exports": {
17
+ "./base.json": "./tsconfig.base.json",
18
+ "./build.json": "./tsconfig.build.json",
19
+ "./cjs.json": "./tsconfig.cjs.json",
20
+ "./esm.json": "./tsconfig.esm.json",
21
+ "./jest.json": "./tsconfig.jest.json",
22
+ "./nestjs.json": "./tsconfig.jest.json",
23
+ "./test.json": "./tsconfig.test.json",
24
+ "./types.json": "./tsconfig.types.json",
25
+ "./vitest.json": "./tsconfig.vitest.json"
26
+ },
27
+ "scripts": {
28
+ "check": "npm-run-all format:check lint:check spell:check type:check",
29
+ "clean": "npm-run-all clean:*",
30
+ "clean:build": "rimraf dist",
31
+ "clean:docs": "rimraf docs",
32
+ "clean:test": "rimraf coverage",
33
+ "commit:lint": "npx commitlint --last --verbose",
34
+ "deps:check": "ncu",
35
+ "deps:fix": "ncu -u --install always",
36
+ "fix": "npm-run-all format:fix lint:fix",
37
+ "format:check": "npm-run-all format:check:*",
38
+ "format:check:js": "prettier --check \"./**/*.{js,mjs}\"",
39
+ "format:check:json": "prettier --check \"./**/*.json\"",
40
+ "format:check:md": "prettier --check \"./**/*.md\"",
41
+ "format:check:yaml": "prettier --check \"./**/*.{yaml,yml}\"",
42
+ "format:fix": "npm-run-all format:fix:*",
43
+ "format:fix:js": "prettier --write \"./**/*.{js,mjs}\"",
44
+ "format:fix:json": "prettier --write \"./**/*.json\"",
45
+ "format:fix:md": "prettier --write \"./**/*.md\"",
46
+ "format:fix:yaml": "prettier --write \"./**/*.{yaml,yml}\"",
47
+ "lint:check": "npm-run-all lint:check:*",
48
+ "lint:check:js": "eslint \"./**/*.{js,mjs}\"",
49
+ "lint:check:json": "eslint \"./**/*.json\"",
50
+ "lint:check:md": "eslint \"./**/*.md\"",
51
+ "lint:check:yaml": "eslint \"./**/*.{yaml,yml}\"",
52
+ "lint:fix": "npm-run-all lint:fix:*",
53
+ "lint:fix:js": "eslint --fix \"./**/*.{js,mjs}\"",
54
+ "lint:fix:json": "eslint --fix \"./**/*.json\"",
55
+ "lint:fix:md": "eslint --fix \"./**/*.md\"",
56
+ "lint:fix:yaml": "eslint --fix \"./**/*.{yaml,yml}\"",
57
+ "prepare": "husky",
58
+ "release:dry-run": "release-it --dry-run",
59
+ "release:version": "release-it --release-version",
60
+ "release": "release-it",
61
+ "security:check": "npm audit --audit-level=high",
62
+ "security:fix": "npm audit fix --audit-level=high",
63
+ "spell:check": "npm-run-all spell:check:*",
64
+ "spell:check:json": "cspell lint \"./**/*.json\"",
65
+ "spell:check:md": "cspell lint \"./**/*.md\"",
66
+ "test": "npm-run-all test:*",
67
+ "test:jest": "jest",
68
+ "test:vitest": "vitest run --coverage --exclude=**/jest.spec.ts --typecheck.enabled --typecheck.tsconfig=./tsconfig.vitest.json",
69
+ "type:check": "npm-run-all type:check:*",
70
+ "type:check:base": "tsc -p tsconfig.base.json --noEmit",
71
+ "type:check:build": "tsc -p tsconfig.build.json --noEmit",
72
+ "type:check:cjs": "tsc -p tsconfig.cjs.json --noEmit",
73
+ "type:check:esm": "tsc -p tsconfig.esm.json --noEmit",
74
+ "type:check:jest": "tsc -p tsconfig.jest.json --noEmit",
75
+ "type:check:nestjs": "tsc -p tsconfig.nestjs.json --noEmit",
76
+ "type:check:test": "tsc -p tsconfig.test.json --noEmit",
77
+ "type:check:types": "tsc -p tsconfig.types.json --noEmit",
78
+ "type:check:vitest": "tsc -p tsconfig.vitest.json --noEmit"
79
+ },
80
+ "repository": {
81
+ "type": "git",
82
+ "url": "https://github.com/TemboPlus-Inc/temboplus-tsconfig.git"
83
+ },
84
+ "keywords": [
85
+ "tembo",
86
+ "temboplus",
87
+ "typescript",
88
+ "tsc",
89
+ "tsconfig",
90
+ "ts",
91
+ "config"
92
+ ],
93
+ "author": {
94
+ "name": "temboplus",
95
+ "email": "engineering@temboplus.com",
96
+ "url": "https://github.com/TemboPlus-Inc"
97
+ },
98
+ "contributors": [
99
+ {
100
+ "name": "lykmapipo",
101
+ "email": "lallyelias87@gmail.com",
102
+ "url": "https://github.com/lykmapipo"
103
+ }
104
+ ],
105
+ "license": "MIT",
106
+ "bugs": {
107
+ "url": "https://github.com/TemboPlus-Inc/temboplus-tsconfig/issues",
108
+ "email": "engineering@temboplus.com"
109
+ },
110
+ "homepage": "https://github.com/TemboPlus-Inc/temboplus-tsconfig",
111
+ "engines": {
112
+ "node": ">=22.0.0",
113
+ "npm": ">=10.9.2"
114
+ },
115
+ "dependencies": {
116
+ "@tsconfig/node22": ">=22.0.2",
117
+ "@tsconfig/recommended": ">=1.0.8",
118
+ "@tsconfig/strictest": ">=2.0.5",
119
+ "tslib": ">=2.8.1"
120
+ },
121
+ "devDependencies": {
122
+ "@commitlint/cli": "^19.8.1",
123
+ "@commitlint/config-conventional": "^19.8.1",
124
+ "@eslint/markdown": "^6.4.0",
125
+ "@jest/globals": "^29.7.0",
126
+ "@release-it/conventional-changelog": "^10.0.1",
127
+ "@vitest/coverage-v8": "^3.2.0",
128
+ "cspell": "^9.0.2",
129
+ "eslint": "^9.28.0",
130
+ "eslint-config-flat-gitignore": "^2.1.0",
131
+ "eslint-config-prettier": "^10.1.5",
132
+ "eslint-plugin-jsdoc": "^50.7.1",
133
+ "eslint-plugin-jsonc": "^2.20.1",
134
+ "eslint-plugin-perfectionist": "^4.13.0",
135
+ "eslint-plugin-prettier": "^5.4.1",
136
+ "eslint-plugin-unicorn": "^59.0.1",
137
+ "eslint-plugin-yml": "^1.18.0",
138
+ "husky": "^9.1.7",
139
+ "jest": "^29.7.0",
140
+ "npm-check-updates": "^18.0.1",
141
+ "npm-run-all": "^4.1.5",
142
+ "prettier": "^3.5.3",
143
+ "release-it": "^19.0.3",
144
+ "rimraf": "^6.0.1",
145
+ "ts-jest": "^29.3.4",
146
+ "ts-node": "^10.9.2",
147
+ "typescript": "^5.8.3",
148
+ "vitest": "^3.2.0"
149
+ },
150
+ "publishConfig": {
151
+ "access": "public"
152
+ },
153
+ "commitlint": {
154
+ "extends": [
155
+ "@commitlint/config-conventional"
156
+ ]
157
+ },
158
+ "cspell": {
159
+ "version": "0.2",
160
+ "language": "en",
161
+ "words": [
162
+ "tembo",
163
+ "temboplus",
164
+ "lykmapipo",
165
+ "infile"
166
+ ],
167
+ "useGitignore": true
168
+ },
169
+ "jest": {
170
+ "transform": {
171
+ "^.+\\.tsx?$": [
172
+ "ts-jest",
173
+ {
174
+ "tsconfig": "./tsconfig.jest.json"
175
+ }
176
+ ]
177
+ },
178
+ "testEnvironment": "node",
179
+ "collectCoverage": true,
180
+ "coverageProvider": "v8",
181
+ "coverageReporters": [
182
+ "text",
183
+ "cobertura"
184
+ ],
185
+ "injectGlobals": false,
186
+ "testPathIgnorePatterns": [
187
+ "/node_modules/",
188
+ "./vitest.spec.ts"
189
+ ]
190
+ },
191
+ "release-it": {
192
+ "git": {
193
+ "requireCleanWorkingDir": true,
194
+ "requireBranch": "main",
195
+ "requireCommits": true,
196
+ "requireUpstream": true,
197
+ "commit": true,
198
+ "commitMessage": "chore(release): v${version}",
199
+ "tag": true,
200
+ "tagName": "v${version}",
201
+ "tagAnnotation": "v${version}",
202
+ "push": true
203
+ },
204
+ "github": {
205
+ "release": true
206
+ },
207
+ "npm": {
208
+ "publish": true
209
+ },
210
+ "plugins": {
211
+ "@release-it/conventional-changelog": {
212
+ "preset": "angular",
213
+ "infile": "CHANGELOG.md",
214
+ "header": "# Changelog"
215
+ }
216
+ }
217
+ }
218
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "display": "Base",
4
+ "_version": "0.1.0",
5
+ "extends": [
6
+ "@tsconfig/node22/tsconfig.json",
7
+ "@tsconfig/strictest/tsconfig.json"
8
+ ],
9
+ "compilerOptions": {
10
+ "allowJs": false,
11
+ "checkJs": false,
12
+ "emitDecoratorMetadata": true,
13
+ "experimentalDecorators": true,
14
+ "forceConsistentCasingInFileNames": true,
15
+ "lib": ["ESNext"],
16
+ "module": "ESNext",
17
+ "moduleResolution": "bundler",
18
+ "noEmit": true,
19
+ "pretty": true,
20
+ "removeComments": false,
21
+ "resolveJsonModule": true,
22
+ "strict": true,
23
+ "target": "ESNext",
24
+ "useDefineForClassFields": true
25
+ },
26
+ "exclude": [
27
+ "**/build",
28
+ "**/coverage",
29
+ "**/dist",
30
+ "**/docs",
31
+ "**/node_modules",
32
+ "**/out"
33
+ ]
34
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "display": "Build (base)",
4
+ "_version": "0.1.0",
5
+ "extends": ["./tsconfig.base.json"],
6
+ "compilerOptions": {
7
+ "declaration": true,
8
+ "declarationMap": true,
9
+ "emitDecoratorMetadata": true,
10
+ "experimentalDecorators": true,
11
+ "importHelpers": true,
12
+ "noEmit": false,
13
+ "outDir": "dist",
14
+ "removeComments": false,
15
+ "skipLibCheck": false,
16
+ "sourceMap": true,
17
+ "stripInternal": true
18
+ },
19
+ "include": ["src"],
20
+ "exclude": [
21
+ "**/build",
22
+ "**/coverage",
23
+ "**/dist",
24
+ "**/docs",
25
+ "**/node_modules",
26
+ "**/out",
27
+ "**/scripts",
28
+ "**/test",
29
+ "**/*spec.ts",
30
+ "**/*test.ts"
31
+ ]
32
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "display": "Build (cjs)",
4
+ "_version": "0.1.0",
5
+ "extends": ["./tsconfig.build.json"],
6
+ "compilerOptions": {
7
+ "module": "CommonJS",
8
+ "moduleResolution": "node10",
9
+ "outDir": "dist/cjs"
10
+ }
11
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "display": "Build (esm)",
4
+ "_version": "0.1.0",
5
+ "extends": ["./tsconfig.build.json"],
6
+ "compilerOptions": {
7
+ "outDir": "dist/esm"
8
+ }
9
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "display": "Jest (ts-jest)",
4
+ "_version": "0.1.0",
5
+ "extends": ["./tsconfig.test.json"]
6
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "display": "NestJS (base)",
4
+ "_version": "0.1.0",
5
+ "extends": ["./tsconfig.cjs.json"],
6
+ "compilerOptions": {
7
+ "baseUrl": "./",
8
+ "incremental": true,
9
+ "lib": ["ES2023"],
10
+ "module": "CommonJS",
11
+ "moduleResolution": "node10",
12
+ "outDir": "dist",
13
+ "removeComments": true,
14
+ "skipLibCheck": true,
15
+ "target": "ES2023"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "display": "Test (base)",
4
+ "_version": "0.1.0",
5
+ "extends": ["./tsconfig.base.json"],
6
+ "compilerOptions": {
7
+ "composite": false,
8
+ "declaration": false,
9
+ "declarationMap": false,
10
+ "emitDeclarationOnly": false,
11
+ "isolatedModules": false,
12
+ "module": "ESNext",
13
+ "noEmit": true,
14
+ "skipLibCheck": true,
15
+ "target": "ESNext"
16
+ }
17
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "display": "Build (types)",
4
+ "_version": "0.1.0",
5
+ "extends": ["./tsconfig.build.json"],
6
+ "compilerOptions": {
7
+ "declaration": true,
8
+ "declarationMap": true,
9
+ "emitDeclarationOnly": true,
10
+ "outDir": "dist/types"
11
+ }
12
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "display": "Vitest",
4
+ "_version": "0.1.0",
5
+ "extends": ["./tsconfig.test.json"],
6
+ "compilerOptions": {
7
+ "moduleResolution": "bundler"
8
+ }
9
+ }