@inbeat/config 0.7.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/CHANGELOG.md +76 -0
- package/biome.json +56 -0
- package/commitlint.js +14 -0
- package/dependency-cruiser.cjs +70 -0
- package/package.json +55 -0
- package/tsconfig/base.json +21 -0
- package/tsconfig/compiled.json +8 -0
- package/tsconfig/library.json +7 -0
- package/tsconfig/nextjs.json +8 -0
- package/vitest.d.ts +4 -0
- package/vitest.js +23 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.7.0](https://github.com/Genoux/ib-toolkit/compare/config-v0.6.1...config-v0.7.0) (2026-10-01)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### ⚠ BREAKING CHANGES
|
|
7
|
+
|
|
8
|
+
* consumers must drop the @inbeat registry line from .npmrc/bunfig and the NODE_AUTH_TOKEN setup.
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* publish [@inbeat](https://github.com/inbeat) packages publicly on npm ([#27](https://github.com/Genoux/ib-toolkit/issues/27)) ([2bd9f53](https://github.com/Genoux/ib-toolkit/commit/2bd9f53c2d4dd030bdee037b8b1dce1e1bb828b5))
|
|
13
|
+
|
|
14
|
+
## [0.6.1](https://github.com/Genoux/ib-toolkit/compare/config-v0.6.0...config-v0.6.1) (2026-10-01)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Miscellaneous Chores
|
|
18
|
+
|
|
19
|
+
* **config:** Synchronize inbeat versions
|
|
20
|
+
|
|
21
|
+
## [0.6.0](https://github.com/Genoux/ib-toolkit/compare/config-v0.5.0...config-v0.6.0) (2026-10-01)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### Bug Fixes
|
|
25
|
+
|
|
26
|
+
* **config:** require biome 2.5 and accept biome.jsonc ([#19](https://github.com/Genoux/ib-toolkit/issues/19)) ([178dc95](https://github.com/Genoux/ib-toolkit/commit/178dc95b4c9a041970458526c3985f5a225a7caf))
|
|
27
|
+
|
|
28
|
+
## [0.5.0](https://github.com/Genoux/ib-toolkit/compare/config-v0.4.0...config-v0.5.0) (2026-10-01)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
### Miscellaneous Chores
|
|
32
|
+
|
|
33
|
+
* **config:** Synchronize inbeat versions
|
|
34
|
+
|
|
35
|
+
## [0.4.0](https://github.com/Genoux/ib-toolkit/compare/config-v0.3.0...config-v0.4.0) (2026-09-30)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
### ⚠ BREAKING CHANGES
|
|
39
|
+
|
|
40
|
+
* **standards:** sync skills to .agents/skills only ([#15](https://github.com/Genoux/ib-toolkit/issues/15))
|
|
41
|
+
|
|
42
|
+
### Features
|
|
43
|
+
|
|
44
|
+
* **standards:** sync skills to .agents/skills only ([#15](https://github.com/Genoux/ib-toolkit/issues/15)) ([cd3e8a2](https://github.com/Genoux/ib-toolkit/commit/cd3e8a21f028790ad84c26dc1cc832475885c461))
|
|
45
|
+
|
|
46
|
+
## [0.3.0](https://github.com/Genoux/ib-toolkit/compare/config-v0.2.0...config-v0.3.0) (2026-09-30)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
### Miscellaneous Chores
|
|
50
|
+
|
|
51
|
+
* **config:** Synchronize inbeat versions
|
|
52
|
+
|
|
53
|
+
## [0.2.0](https://github.com/Genoux/ib-toolkit/compare/config-v0.1.2...config-v0.2.0) (2026-09-30)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
### ⚠ BREAKING CHANGES
|
|
57
|
+
|
|
58
|
+
* make the template a standalone project starter ([#7](https://github.com/Genoux/ib-toolkit/issues/7))
|
|
59
|
+
|
|
60
|
+
### Features
|
|
61
|
+
|
|
62
|
+
* make the template a standalone project starter ([#7](https://github.com/Genoux/ib-toolkit/issues/7)) ([98656a0](https://github.com/Genoux/ib-toolkit/commit/98656a0e22e90594f1f10d585aad61ed7de255ea))
|
|
63
|
+
|
|
64
|
+
## [0.1.2](https://github.com/Genoux/ib-toolkit/compare/config-v0.1.1...config-v0.1.2) (2026-09-30)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
### Miscellaneous Chores
|
|
68
|
+
|
|
69
|
+
* **config:** Synchronize inbeat versions
|
|
70
|
+
|
|
71
|
+
## [0.1.1](https://github.com/Genoux/ib-toolkit/compare/config-v0.1.0...config-v0.1.1) (2026-09-30)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
### Bug Fixes
|
|
75
|
+
|
|
76
|
+
* ship compiled js from core and next ([#3](https://github.com/Genoux/ib-toolkit/issues/3)) ([8fef50a](https://github.com/Genoux/ib-toolkit/commit/8fef50aa87679bcf3c328fe4ca11a351434e2dda))
|
package/biome.json
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"root": false,
|
|
3
|
+
"files": {
|
|
4
|
+
"ignoreUnknown": true
|
|
5
|
+
},
|
|
6
|
+
"css": {
|
|
7
|
+
"parser": {
|
|
8
|
+
"tailwindDirectives": true
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"formatter": {
|
|
12
|
+
"indentStyle": "space",
|
|
13
|
+
"indentWidth": 2,
|
|
14
|
+
"lineWidth": 100
|
|
15
|
+
},
|
|
16
|
+
"linter": {
|
|
17
|
+
"enabled": true,
|
|
18
|
+
"rules": {
|
|
19
|
+
"preset": "recommended",
|
|
20
|
+
"suspicious": {
|
|
21
|
+
"noConsole": {
|
|
22
|
+
"level": "error",
|
|
23
|
+
"options": { "allow": ["error", "warn", "info", "debug"] }
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"style": {
|
|
27
|
+
"noProcessEnv": "error",
|
|
28
|
+
"useFilenamingConvention": {
|
|
29
|
+
"level": "error",
|
|
30
|
+
"options": { "filenameCases": ["kebab-case"], "requireAscii": true }
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"overrides": [
|
|
36
|
+
{
|
|
37
|
+
"includes": [
|
|
38
|
+
"**/env.ts",
|
|
39
|
+
"**/*.config.*",
|
|
40
|
+
"**/instrumentation*.ts",
|
|
41
|
+
"**/sentry.*.ts",
|
|
42
|
+
"**/scripts/**",
|
|
43
|
+
"**/tests/**",
|
|
44
|
+
"**/*.test.ts",
|
|
45
|
+
"**/*.test.tsx"
|
|
46
|
+
],
|
|
47
|
+
"linter": {
|
|
48
|
+
"rules": {
|
|
49
|
+
"style": { "noProcessEnv": "off" },
|
|
50
|
+
"suspicious": { "noConsole": "off" }
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
"assist": { "actions": { "source": { "organizeImports": "on" } } }
|
|
56
|
+
}
|
package/commitlint.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
extends: ["@commitlint/config-conventional"],
|
|
3
|
+
rules: {
|
|
4
|
+
"header-max-length": [2, "always", 60],
|
|
5
|
+
"subject-case": [2, "always", "lower-case"],
|
|
6
|
+
"body-case": [2, "always", "lower-case"],
|
|
7
|
+
"type-enum": [
|
|
8
|
+
2,
|
|
9
|
+
"always",
|
|
10
|
+
["feat", "fix", "build", "chore", "ci", "docs", "style", "test", "perf", "refactor"],
|
|
11
|
+
],
|
|
12
|
+
"trailer-exists": [0],
|
|
13
|
+
},
|
|
14
|
+
};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layer model shared by every inBeat app (see @inbeat/standards AGENTS block).
|
|
3
|
+
* Apps extend this file and may add or relax rules by redefining a rule with the same name.
|
|
4
|
+
* @type {import('dependency-cruiser').IConfiguration}
|
|
5
|
+
*/
|
|
6
|
+
module.exports = {
|
|
7
|
+
forbidden: [
|
|
8
|
+
{
|
|
9
|
+
name: "no-cross-feature",
|
|
10
|
+
comment:
|
|
11
|
+
"Features never import each other; share through entities/, shared/ or integrations/.",
|
|
12
|
+
severity: "error",
|
|
13
|
+
from: { path: "^src/features/([^/]+)/" },
|
|
14
|
+
to: { path: "^src/features/([^/]+)/", pathNot: "^src/features/$1/" },
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: "entities-are-leaf",
|
|
18
|
+
severity: "error",
|
|
19
|
+
from: { path: "^src/entities/" },
|
|
20
|
+
to: { path: "^src/(app|features|shared|integrations|db)/" },
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: "db-imports-entities-only",
|
|
24
|
+
severity: "error",
|
|
25
|
+
from: { path: "^src/db/" },
|
|
26
|
+
to: { path: "^src/(app|features|shared|integrations)/" },
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: "shared-below-features",
|
|
30
|
+
severity: "error",
|
|
31
|
+
from: { path: "^src/shared/" },
|
|
32
|
+
to: { path: "^src/(app|features)/" },
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: "integrations-below-features",
|
|
36
|
+
severity: "error",
|
|
37
|
+
from: { path: "^src/integrations/" },
|
|
38
|
+
to: { path: "^src/(app|features)/" },
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: "features-below-app",
|
|
42
|
+
severity: "error",
|
|
43
|
+
from: { path: "^src/features/" },
|
|
44
|
+
to: { path: "^src/app/" },
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: "private-components",
|
|
48
|
+
comment: "_components/ folders are private to the folder that contains them.",
|
|
49
|
+
severity: "error",
|
|
50
|
+
from: { path: "^(src/.+)/[^/]+$" },
|
|
51
|
+
to: { path: "/_components/", pathNot: ["^$1/_components/", "^$1/"] },
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: "no-circular",
|
|
55
|
+
severity: "warn",
|
|
56
|
+
from: {},
|
|
57
|
+
to: { circular: true },
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
options: {
|
|
61
|
+
doNotFollow: { path: "node_modules" },
|
|
62
|
+
exclude: { path: "(^|/)(node_modules|\\.next)/" },
|
|
63
|
+
tsPreCompilationDeps: true,
|
|
64
|
+
tsConfig: { fileName: "tsconfig.json" },
|
|
65
|
+
enhancedResolveOptions: {
|
|
66
|
+
exportsFields: ["exports"],
|
|
67
|
+
conditionNames: ["import", "require", "node", "default", "types"],
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@inbeat/config",
|
|
3
|
+
"version": "0.7.0",
|
|
4
|
+
"description": "Shared tsconfig, Biome, dependency-cruiser, Vitest and commitlint presets for inBeat apps",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"files": [
|
|
7
|
+
"CHANGELOG.md",
|
|
8
|
+
"tsconfig",
|
|
9
|
+
"biome.json",
|
|
10
|
+
"dependency-cruiser.cjs",
|
|
11
|
+
"vitest.js",
|
|
12
|
+
"vitest.d.ts",
|
|
13
|
+
"commitlint.js"
|
|
14
|
+
],
|
|
15
|
+
"exports": {
|
|
16
|
+
"./tsconfig/base.json": "./tsconfig/base.json",
|
|
17
|
+
"./tsconfig/nextjs.json": "./tsconfig/nextjs.json",
|
|
18
|
+
"./tsconfig/library.json": "./tsconfig/library.json",
|
|
19
|
+
"./tsconfig/compiled.json": "./tsconfig/compiled.json",
|
|
20
|
+
"./biome": "./biome.json",
|
|
21
|
+
"./dependency-cruiser": "./dependency-cruiser.cjs",
|
|
22
|
+
"./vitest": {
|
|
23
|
+
"types": "./vitest.d.ts",
|
|
24
|
+
"default": "./vitest.js"
|
|
25
|
+
},
|
|
26
|
+
"./commitlint": "./commitlint.js"
|
|
27
|
+
},
|
|
28
|
+
"scripts": {
|
|
29
|
+
"typecheck": "tsc --noEmit -p tsconfig.json"
|
|
30
|
+
},
|
|
31
|
+
"peerDependencies": {
|
|
32
|
+
"@biomejs/biome": "^2.5",
|
|
33
|
+
"vitest": "^4"
|
|
34
|
+
},
|
|
35
|
+
"peerDependenciesMeta": {
|
|
36
|
+
"@biomejs/biome": {
|
|
37
|
+
"optional": true
|
|
38
|
+
},
|
|
39
|
+
"vitest": {
|
|
40
|
+
"optional": true
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"vitest": "^4.1.1"
|
|
45
|
+
},
|
|
46
|
+
"repository": {
|
|
47
|
+
"type": "git",
|
|
48
|
+
"url": "git+https://github.com/Genoux/ib-toolkit.git",
|
|
49
|
+
"directory": "packages/config"
|
|
50
|
+
},
|
|
51
|
+
"publishConfig": {
|
|
52
|
+
"access": "public"
|
|
53
|
+
},
|
|
54
|
+
"license": "UNLICENSED"
|
|
55
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json.schemastore.org/tsconfig",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"target": "ES2022",
|
|
5
|
+
"lib": ["dom", "dom.iterable", "esnext"],
|
|
6
|
+
"module": "esnext",
|
|
7
|
+
"moduleResolution": "bundler",
|
|
8
|
+
"strict": true,
|
|
9
|
+
"noUncheckedIndexedAccess": false,
|
|
10
|
+
"noFallthroughCasesInSwitch": true,
|
|
11
|
+
"noImplicitOverride": true,
|
|
12
|
+
"esModuleInterop": true,
|
|
13
|
+
"skipLibCheck": true,
|
|
14
|
+
"resolveJsonModule": true,
|
|
15
|
+
"isolatedModules": true,
|
|
16
|
+
"verbatimModuleSyntax": false,
|
|
17
|
+
"allowJs": true,
|
|
18
|
+
"noEmit": true,
|
|
19
|
+
"jsx": "react-jsx"
|
|
20
|
+
}
|
|
21
|
+
}
|
package/vitest.d.ts
ADDED
package/vitest.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** @typedef {import("vitest/config").ViteUserConfig} ViteUserConfig */
|
|
2
|
+
|
|
3
|
+
export const vitestPreset = /** @satisfies {ViteUserConfig} */ (
|
|
4
|
+
/** @type {const} */ ({
|
|
5
|
+
test: {
|
|
6
|
+
environment: "node",
|
|
7
|
+
include: ["src/**/*.test.{ts,tsx}"],
|
|
8
|
+
exclude: ["**/node_modules/**", "**/*.integration.test.ts", "tests/e2e/**"],
|
|
9
|
+
restoreMocks: true,
|
|
10
|
+
server: { deps: { inline: [/\/node_modules\/@inbeat\//] } },
|
|
11
|
+
},
|
|
12
|
+
})
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
export const vitestIntegrationPreset = /** @satisfies {ViteUserConfig} */ (
|
|
16
|
+
/** @type {const} */ ({
|
|
17
|
+
test: {
|
|
18
|
+
environment: "node",
|
|
19
|
+
include: ["src/**/*.integration.test.ts"],
|
|
20
|
+
testTimeout: 30_000,
|
|
21
|
+
},
|
|
22
|
+
})
|
|
23
|
+
);
|