@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 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
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "./library.json",
4
+ "compilerOptions": {
5
+ "noEmit": false,
6
+ "declaration": true
7
+ }
8
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "./base.json",
4
+ "compilerOptions": {
5
+ "types": ["bun"]
6
+ }
7
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "./base.json",
4
+ "compilerOptions": {
5
+ "incremental": true,
6
+ "plugins": [{ "name": "next" }]
7
+ }
8
+ }
package/vitest.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ import type { ViteUserConfig } from "vitest/config";
2
+
3
+ export declare const vitestPreset: ViteUserConfig;
4
+ export declare const vitestIntegrationPreset: ViteUserConfig;
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
+ );