@outfitter/tooling 0.3.3 → 0.3.5
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/.markdownlint-cli2.jsonc +55 -55
- package/README.md +33 -24
- package/dist/bun-version-compat.d.ts +2 -0
- package/dist/bun-version-compat.js +10 -0
- package/dist/cli/check-boundary-invocations.d.ts +34 -0
- package/dist/cli/check-boundary-invocations.js +14 -0
- package/dist/cli/check-bunup-registry.d.ts +36 -0
- package/dist/cli/check-bunup-registry.js +12 -0
- package/dist/cli/check-changeset.d.ts +82 -0
- package/dist/cli/check-changeset.js +24 -0
- package/dist/cli/check-clean-tree.d.ts +36 -0
- package/dist/cli/check-clean-tree.js +14 -0
- package/dist/cli/check-exports.d.ts +3 -0
- package/dist/cli/check-exports.js +17 -0
- package/dist/cli/check-home-paths.d.ts +31 -0
- package/dist/cli/check-home-paths.js +12 -0
- package/dist/cli/check-markdown-links.d.ts +42 -0
- package/dist/cli/check-markdown-links.js +13 -0
- package/dist/cli/check-readme-imports.d.ts +61 -0
- package/dist/{shared/chunk-7tdgbqb0.js → cli/check-readme-imports.js} +7 -6
- package/dist/cli/check-tsdoc.d.ts +5 -0
- package/dist/cli/check-tsdoc.js +42 -0
- package/dist/cli/check.d.ts +19 -0
- package/dist/cli/check.js +10 -0
- package/dist/cli/fix.d.ts +19 -0
- package/dist/cli/fix.js +10 -0
- package/dist/cli/index.js +61 -1218
- package/dist/cli/init.d.ts +31 -0
- package/dist/cli/init.js +12 -0
- package/dist/cli/internal/exports-analysis.d.ts +2 -0
- package/dist/cli/internal/exports-analysis.js +10 -0
- package/dist/cli/internal/exports-fs.d.ts +17 -0
- package/dist/cli/internal/exports-fs.js +9 -0
- package/dist/cli/internal/pre-push-checks.d.ts +2 -0
- package/dist/cli/internal/pre-push-checks.js +37 -0
- package/dist/cli/internal/tsdoc-analysis.d.ts +3 -0
- package/dist/cli/internal/tsdoc-analysis.js +26 -0
- package/dist/cli/internal/tsdoc-formatting.d.ts +3 -0
- package/dist/cli/internal/tsdoc-formatting.js +10 -0
- package/dist/cli/internal/tsdoc-types.d.ts +2 -0
- package/dist/cli/internal/tsdoc-types.js +16 -0
- package/dist/cli/pre-push.d.ts +7 -0
- package/dist/cli/pre-push.js +29 -0
- package/dist/cli/upgrade-bun.d.ts +8 -0
- package/dist/cli/upgrade-bun.js +9 -0
- package/dist/index.d.ts +9 -186
- package/dist/index.js +4 -42
- package/dist/registry/build.d.ts +4 -0
- package/dist/registry/build.js +279 -0
- package/dist/registry/index.d.ts +3 -0
- package/dist/registry/index.js +1 -0
- package/dist/registry/schema.d.ts +2 -0
- package/dist/registry/schema.js +28 -0
- package/dist/shared/@outfitter/tooling-0zjz8eg9.js +106 -0
- package/dist/shared/@outfitter/tooling-1hez6j9d.js +21 -0
- package/dist/shared/@outfitter/tooling-2vv5y3s4.js +145 -0
- package/dist/shared/{chunk-cmde0fwx.js → @outfitter/tooling-5xxctk9b.js} +12 -138
- package/dist/shared/@outfitter/tooling-5ynz680q.js +59 -0
- package/dist/shared/@outfitter/tooling-7437rmy6.js +39 -0
- package/dist/shared/@outfitter/tooling-8qcwr06t.d.ts +74 -0
- package/dist/shared/@outfitter/tooling-9ram55dd.js +69 -0
- package/dist/shared/@outfitter/tooling-9vs606gq.d.ts +3 -0
- package/dist/shared/@outfitter/tooling-a4bfx4be.js +21 -0
- package/dist/shared/@outfitter/tooling-a59br34g.js +32 -0
- package/dist/shared/@outfitter/tooling-a6q3zh7t.js +86 -0
- package/dist/shared/@outfitter/tooling-amrbp7cm.js +102 -0
- package/dist/shared/@outfitter/tooling-ayps7c4x.js +58 -0
- package/dist/shared/@outfitter/tooling-c8q6mj8z.js +228 -0
- package/dist/shared/@outfitter/tooling-cb0b8wsx.d.ts +57 -0
- package/dist/shared/@outfitter/tooling-ctmgnap5.js +19 -0
- package/dist/shared/@outfitter/tooling-f8q38e9z.d.ts +16 -0
- package/dist/shared/@outfitter/tooling-gcdvsqqp.js +73 -0
- package/dist/shared/@outfitter/tooling-h5dnevjw.js +139 -0
- package/dist/shared/@outfitter/tooling-j8d1h2zd.d.ts +10 -0
- package/dist/shared/@outfitter/tooling-ja1zg5yc.js +214 -0
- package/dist/shared/@outfitter/tooling-jnrs9rqd.js +4 -0
- package/dist/shared/@outfitter/tooling-mkynjra9.js +23 -0
- package/dist/shared/@outfitter/tooling-mq2xvz96.js +285 -0
- package/dist/shared/@outfitter/tooling-pq47jv6t.js +213 -0
- package/dist/shared/@outfitter/tooling-sjm8nebx.d.ts +109 -0
- package/dist/shared/@outfitter/tooling-stgnc2zx.d.ts +85 -0
- package/dist/shared/@outfitter/tooling-tj9p41vj.d.ts +55 -0
- package/dist/shared/@outfitter/tooling-vjmhvpjq.d.ts +29 -0
- package/dist/shared/@outfitter/tooling-wwm97f47.js +81 -0
- package/dist/shared/@outfitter/tooling-y43b117h.d.ts +13 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.js +8 -0
- package/lefthook.yml +5 -1
- package/package.json +140 -131
- package/registry/registry.json +19 -12
- package/tsconfig.preset.bun.json +5 -5
- package/tsconfig.preset.json +33 -33
- package/biome.json +0 -81
- package/dist/shared/chunk-3s189drz.js +0 -4
package/package.json
CHANGED
|
@@ -1,133 +1,142 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
2
|
+
"name": "@outfitter/tooling",
|
|
3
|
+
"description": "Dev tooling configuration presets for Outfitter projects (oxlint/oxfmt, typescript, lefthook, markdownlint)",
|
|
4
|
+
"version": "0.3.5",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"files": [
|
|
7
|
+
"dist",
|
|
8
|
+
"registry",
|
|
9
|
+
"tsconfig.preset.json",
|
|
10
|
+
"tsconfig.preset.bun.json",
|
|
11
|
+
"lefthook.yml",
|
|
12
|
+
".markdownlint-cli2.jsonc"
|
|
13
|
+
],
|
|
14
|
+
"module": "./dist/index.js",
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"import": {
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
20
|
+
"default": "./dist/index.js"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"./.markdownlint-cli2": "./.markdownlint-cli2.jsonc",
|
|
24
|
+
"./.markdownlint-cli2.jsonc": "./.markdownlint-cli2.jsonc",
|
|
25
|
+
"./cli/check": {
|
|
26
|
+
"import": {
|
|
27
|
+
"types": "./dist/cli/check.d.ts",
|
|
28
|
+
"default": "./dist/cli/check.js"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"./cli/check-home-paths": {
|
|
32
|
+
"import": {
|
|
33
|
+
"types": "./dist/cli/check-home-paths.d.ts",
|
|
34
|
+
"default": "./dist/cli/check-home-paths.js"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"./cli/check-markdown-links": {
|
|
38
|
+
"import": {
|
|
39
|
+
"types": "./dist/cli/check-markdown-links.d.ts",
|
|
40
|
+
"default": "./dist/cli/check-markdown-links.js"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"./cli/check-tsdoc": {
|
|
44
|
+
"import": {
|
|
45
|
+
"types": "./dist/cli/check-tsdoc.d.ts",
|
|
46
|
+
"default": "./dist/cli/check-tsdoc.js"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"./cli/fix": {
|
|
50
|
+
"import": {
|
|
51
|
+
"types": "./dist/cli/fix.d.ts",
|
|
52
|
+
"default": "./dist/cli/fix.js"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"./cli/init": {
|
|
56
|
+
"import": {
|
|
57
|
+
"types": "./dist/cli/init.d.ts",
|
|
58
|
+
"default": "./dist/cli/init.js"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"./lefthook": "./lefthook.yml",
|
|
62
|
+
"./lefthook.yml": "./lefthook.yml",
|
|
63
|
+
"./package.json": "./package.json",
|
|
64
|
+
"./registry": {
|
|
65
|
+
"import": {
|
|
66
|
+
"types": "./dist/registry/index.d.ts",
|
|
67
|
+
"default": "./dist/registry/index.js"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"./tsconfig": "./tsconfig.preset.json",
|
|
71
|
+
"./tsconfig-bun": "./tsconfig.preset.bun.json",
|
|
72
|
+
"./tsconfig.preset.bun.json": "./tsconfig.preset.bun.json",
|
|
73
|
+
"./tsconfig.preset.json": "./tsconfig.preset.json"
|
|
74
|
+
},
|
|
75
|
+
"bin": {
|
|
76
|
+
"tooling": "./dist/cli/index.js"
|
|
77
|
+
},
|
|
78
|
+
"sideEffects": false,
|
|
79
|
+
"scripts": {
|
|
80
|
+
"build:registry": "bun run src/registry/build.ts",
|
|
81
|
+
"sync:exports": "bun run scripts/sync-exports.ts",
|
|
82
|
+
"sync:exports:check": "bun run scripts/sync-exports.ts --check",
|
|
83
|
+
"build": "bun run build:registry && bun run sync:exports:check && cd ../.. && bash ./scripts/run-bunup-with-lock.sh bunup --filter @outfitter/tooling",
|
|
84
|
+
"prepack": "bun run sync:exports",
|
|
85
|
+
"lint": "oxlint ./src",
|
|
86
|
+
"lint:fix": "oxlint --fix ./src",
|
|
87
|
+
"test": "bun run build:registry && bun test",
|
|
88
|
+
"typecheck": "tsc --noEmit",
|
|
89
|
+
"clean": "rm -rf dist registry",
|
|
90
|
+
"prepublishOnly": "bun ../../scripts/check-publish-manifest.ts"
|
|
91
|
+
},
|
|
92
|
+
"dependencies": {
|
|
93
|
+
"@outfitter/cli": "1.0.0",
|
|
94
|
+
"commander": "^14.0.2",
|
|
95
|
+
"typescript": "^5.9.3",
|
|
96
|
+
"zod": "^4.3.5"
|
|
97
|
+
},
|
|
98
|
+
"devDependencies": {
|
|
99
|
+
"@outfitter/presets": "0.3.0",
|
|
100
|
+
"@types/bun": "^1.3.9",
|
|
101
|
+
"yaml": "^2.8.2"
|
|
102
|
+
},
|
|
103
|
+
"peerDependencies": {
|
|
104
|
+
"ultracite": "^7.0.0",
|
|
105
|
+
"lefthook": "^2.0.0",
|
|
106
|
+
"markdownlint-cli2": ">=0.17.0"
|
|
107
|
+
},
|
|
108
|
+
"peerDependenciesMeta": {
|
|
109
|
+
"ultracite": {
|
|
110
|
+
"optional": true
|
|
111
|
+
},
|
|
112
|
+
"lefthook": {
|
|
113
|
+
"optional": true
|
|
114
|
+
},
|
|
115
|
+
"markdownlint-cli2": {
|
|
116
|
+
"optional": true
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
"engines": {
|
|
120
|
+
"bun": ">=1.3.10"
|
|
121
|
+
},
|
|
122
|
+
"keywords": [
|
|
123
|
+
"outfitter",
|
|
124
|
+
"tooling",
|
|
125
|
+
"oxlint",
|
|
126
|
+
"oxfmt",
|
|
127
|
+
"typescript",
|
|
128
|
+
"lefthook",
|
|
129
|
+
"markdownlint",
|
|
130
|
+
"config",
|
|
131
|
+
"presets"
|
|
132
|
+
],
|
|
133
|
+
"license": "MIT",
|
|
134
|
+
"repository": {
|
|
135
|
+
"type": "git",
|
|
136
|
+
"url": "https://github.com/outfitter-dev/outfitter.git",
|
|
137
|
+
"directory": "packages/tooling"
|
|
138
|
+
},
|
|
139
|
+
"publishConfig": {
|
|
140
|
+
"access": "public"
|
|
141
|
+
}
|
|
133
142
|
}
|
package/registry/registry.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"files": [
|
|
8
8
|
{
|
|
9
9
|
"path": ".claude/settings.json",
|
|
10
|
-
"content": "{\n \"hooks\": {\n \"SessionStart\": [\n {\n \"matcher\": \"*\",\n \"hooks\": [\n {\n \"type\": \"command\",\n \"command\": \"bash \\\"$CLAUDE_PROJECT_DIR/scripts/bootstrap.sh\\\"\",\n \"timeout\": 120\n }\n ]\n }\n ],\n \"Stop\": [\n {\n \"matcher\": \"*\",\n \"hooks\": [\n {\n \"type\": \"command\",\n \"command\": \"bash \\\"$CLAUDE_PROJECT_DIR/.claude/hooks/format-code-on-stop.sh\\\"\",\n \"timeout\": 60\n }\n ]\n }\n ]\n },\n \"enabledPlugins\": {},\n \"extraKnownMarketplaces\": {}\n}\n"
|
|
10
|
+
"content": "{\n \"hooks\": {\n \"SessionStart\": [\n {\n \"matcher\": \"*\",\n \"hooks\": [\n {\n \"type\": \"command\",\n \"command\": \"bash \\\"$CLAUDE_PROJECT_DIR/scripts/bootstrap.sh\\\"\",\n \"timeout\": 120\n }\n ]\n }\n ],\n \"Stop\": [\n {\n \"matcher\": \"*\",\n \"hooks\": [\n {\n \"type\": \"command\",\n \"command\": \"bash \\\"$CLAUDE_PROJECT_DIR/.claude/hooks/format-code-on-stop.sh\\\"\",\n \"timeout\": 60\n }\n ]\n }\n ]\n },\n \"enabledPlugins\": {\n \"outfitter@outfitter\": true,\n \"fieldguides@outfitter\": true\n },\n \"extraKnownMarketplaces\": {\n \"outfitter\": {\n \"source\": {\n \"source\": \"github\",\n \"repo\": \"outfitter-dev/outfitter\",\n \"sparsePaths\": [\".claude-plugin\", \"plugins\"]\n }\n }\n }\n}\n"
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
"path": ".claude/hooks/format-code-on-stop.sh",
|
|
@@ -16,17 +16,24 @@
|
|
|
16
16
|
}
|
|
17
17
|
]
|
|
18
18
|
},
|
|
19
|
-
"
|
|
20
|
-
"name": "
|
|
21
|
-
"description": "
|
|
19
|
+
"linter": {
|
|
20
|
+
"name": "linter",
|
|
21
|
+
"description": "Linter and formatter configuration (oxlint/oxfmt) via Ultracite",
|
|
22
22
|
"files": [
|
|
23
23
|
{
|
|
24
|
-
"path": "
|
|
25
|
-
"content": "{\n\
|
|
24
|
+
"path": ".oxlintrc.json",
|
|
25
|
+
"content": "{\n \"$schema\": \"./node_modules/oxlint/configuration_schema.json\",\n \"plugins\": [\"eslint\"],\n \"jsPlugins\": [\n {\n \"name\": \"outfitter\",\n \"specifier\": \"@outfitter/oxlint-plugin\"\n }\n ],\n \"globals\": { \"Bun\": \"readonly\" },\n \"categories\": {\n \"correctness\": \"error\",\n \"suspicious\": \"error\",\n \"pedantic\": \"off\",\n \"perf\": \"off\",\n \"style\": \"off\",\n \"restriction\": \"off\"\n },\n \"ignorePatterns\": [\n \"**/node_modules/**\",\n \"**/dist/**\",\n \"**/.turbo/**\",\n \"**/*.gen.ts\",\n \"**/__tests__/fixtures/**\"\n ],\n \"rules\": {\n \"no-void\": \"off\",\n \"outfitter/action-must-register\": \"warn\",\n \"outfitter/handler-must-return-result\": \"error\",\n \"outfitter/max-file-lines\": [\"error\", { \"warn\": 200, \"error\": 400 }],\n \"outfitter/no-console-in-packages\": \"error\",\n \"outfitter/no-cross-tier-import\": \"error\",\n \"outfitter/no-deep-relative-import\": \"warn\",\n \"outfitter/no-nested-barrel\": \"warn\",\n \"outfitter/no-process-env-in-packages\": [\n \"warn\",\n { \"allowedPackages\": [\"config\"] }\n ],\n \"outfitter/no-process-exit-in-packages\": \"error\",\n \"outfitter/no-throw-in-handler\": \"error\",\n \"outfitter/prefer-bun-api\": \"warn\",\n \"outfitter/snapshot-location\": \"warn\",\n \"outfitter/test-file-naming\": \"warn\",\n \"outfitter/use-error-taxonomy\": \"warn\"\n }\n}\n"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"path": ".oxfmtrc.jsonc",
|
|
29
|
+
"content": "{\n \"$schema\": \"./node_modules/oxfmt/configuration_schema.json\",\n \"printWidth\": 80,\n \"tabWidth\": 2,\n \"useTabs\": false,\n \"semi\": true,\n \"singleQuote\": false,\n \"quoteProps\": \"as-needed\",\n \"jsxSingleQuote\": false,\n \"trailingComma\": \"es5\",\n \"bracketSpacing\": true,\n \"bracketSameLine\": false,\n \"arrowParens\": \"always\",\n \"endOfLine\": \"lf\",\n \"experimentalSortImports\": {\n \"ignoreCase\": true,\n \"newlinesBetween\": true,\n \"order\": \"asc\",\n },\n}\n"
|
|
26
30
|
}
|
|
27
31
|
],
|
|
28
32
|
"devDependencies": {
|
|
29
|
-
"
|
|
33
|
+
"@outfitter/oxlint-plugin": "^0.2.0",
|
|
34
|
+
"ultracite": "7.2.3",
|
|
35
|
+
"oxlint": "1.50.0",
|
|
36
|
+
"oxfmt": "0.35.0"
|
|
30
37
|
}
|
|
31
38
|
},
|
|
32
39
|
"lefthook": {
|
|
@@ -35,11 +42,11 @@
|
|
|
35
42
|
"files": [
|
|
36
43
|
{
|
|
37
44
|
"path": ".lefthook.yml",
|
|
38
|
-
"content": "# Lefthook configuration preset for Outfitter projects\n# https://github.com/evilmartians/lefthook\n#\n# Usage: In your project's .lefthook.yml, add:\n# extends:\n# - node_modules/@outfitter/tooling/lefthook.yml\n\npre-commit:\n parallel: true\n commands:\n ultracite:\n glob: \"*.{js,jsx,ts,tsx,json,jsonc,css}\"\n run: bun x ultracite fix {staged_files}\n stage_fixed: true\n\n typecheck:\n glob: \"*.{ts,tsx}\"\n run: bun run typecheck\n\npre-push:\n parallel: false\n commands:\n verify:\n # TDD-aware: skips strict verification on explicit RED phase branches\n # (*-tests, */tests, *_tests). Otherwise runs verify:ci (or a strict\n # fallback: typecheck/check-or-lint/build/test).\n # Requires: @outfitter/tooling as a dev dependency.\n run:
|
|
45
|
+
"content": "# Lefthook configuration preset for Outfitter projects\n# https://github.com/evilmartians/lefthook\n#\n# Usage: In your project's .lefthook.yml, add:\n# extends:\n# - node_modules/@outfitter/tooling/lefthook.yml\n\npre-commit:\n parallel: true\n commands:\n ultracite:\n glob: \"*.{js,jsx,ts,tsx,json,jsonc,css}\"\n run: bun x ultracite fix {staged_files}\n stage_fixed: true\n\n home-paths:\n glob: \"*.{js,jsx,json,jsonc,css,md,ts,tsx,yaml,yml}\"\n run: bun x @outfitter/tooling check-home-paths {staged_files}\n\n typecheck:\n glob: \"*.{ts,tsx}\"\n run: bun run typecheck\n\npre-push:\n parallel: false\n commands:\n verify:\n # TDD-aware: skips strict verification on explicit RED phase branches\n # (*-tests, */tests, *_tests). Otherwise runs verify:ci (or a strict\n # fallback: typecheck/check-or-lint/build/test).\n # Requires: @outfitter/tooling as a dev dependency.\n run: bun x @outfitter/tooling pre-push\n"
|
|
39
46
|
}
|
|
40
47
|
],
|
|
41
48
|
"devDependencies": {
|
|
42
|
-
"@outfitter/tooling": "^0.3.
|
|
49
|
+
"@outfitter/tooling": "^0.3.5",
|
|
43
50
|
"lefthook": "^2.1.1",
|
|
44
51
|
"ultracite": "7.2.3"
|
|
45
52
|
}
|
|
@@ -50,7 +57,7 @@
|
|
|
50
57
|
"files": [
|
|
51
58
|
{
|
|
52
59
|
"path": ".markdownlint-cli2.jsonc",
|
|
53
|
-
"content": "{\n
|
|
60
|
+
"content": "{\n // Outfitter markdownlint preset\n // https://github.com/DavidAnson/markdownlint\n\n \"config\": {\n // Headings\n \"MD003\": { \"style\": \"atx\" }, // ATX-style headings (# Heading)\n \"MD022\": { \"lines_above\": 1, \"lines_below\": 1 }, // Blank lines around headings\n \"MD024\": { \"siblings_only\": true }, // Allow duplicate headings in different sections\n \"MD041\": false, // First line doesn't need to be h1 (frontmatter, etc.)\n\n // Line length - disabled for prose flexibility\n \"MD013\": false,\n\n // Lists\n \"MD004\": { \"style\": \"dash\" }, // Unordered list style: dash (-)\n \"MD007\": { \"indent\": 2 }, // List indentation: 2 spaces\n \"MD032\": true, // Blank lines around lists\n\n // Code blocks\n \"MD040\": true, // Fenced code blocks should have a language\n \"MD046\": { \"style\": \"fenced\" }, // Code block style: fenced (```)\n \"MD048\": { \"style\": \"backtick\" }, // Code fence style: backticks\n\n // Links\n \"MD034\": true, // No bare URLs (use <url> or [text](url))\n\n // Whitespace\n \"MD009\": { \"br_spaces\": 2 }, // Allow 2 trailing spaces for <br>\n \"MD010\": { \"spaces_per_tab\": 2 }, // Tabs to spaces\n \"MD012\": { \"maximum\": 1 }, // Max 1 consecutive blank line\n \"MD047\": true, // Files should end with newline\n\n // HTML - allow for GitHub-specific elements\n \"MD033\": {\n \"allowed_elements\": [\n \"details\",\n \"summary\",\n \"kbd\",\n \"br\",\n \"sup\",\n \"sub\",\n \"img\",\n \"picture\",\n \"source\",\n \"a\",\n ],\n },\n\n // Emphasis\n \"MD049\": { \"style\": \"asterisk\" }, // Emphasis style: *italic*\n \"MD050\": { \"style\": \"asterisk\" }, // Strong style: **bold**\n },\n\n // Ignore patterns\n \"ignores\": [\n \"node_modules/**\",\n \"**/node_modules/**\",\n \"dist/**\",\n \"**/dist/**\",\n \".turbo/**\",\n \"**/.turbo/**\",\n \"CHANGELOG.md\",\n \"**/CHANGELOG.md\",\n ],\n}\n"
|
|
54
61
|
}
|
|
55
62
|
]
|
|
56
63
|
},
|
|
@@ -67,10 +74,10 @@
|
|
|
67
74
|
},
|
|
68
75
|
"scaffolding": {
|
|
69
76
|
"name": "scaffolding",
|
|
70
|
-
"description": "Full starter kit: Claude settings,
|
|
77
|
+
"description": "Full starter kit: Claude settings, oxlint/oxfmt, Lefthook, markdownlint, and bootstrap script",
|
|
71
78
|
"extends": [
|
|
72
79
|
"claude",
|
|
73
|
-
"
|
|
80
|
+
"linter",
|
|
74
81
|
"lefthook",
|
|
75
82
|
"markdownlint",
|
|
76
83
|
"bootstrap"
|
package/tsconfig.preset.bun.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
"$schema": "https://json.schemastore.org/tsconfig",
|
|
3
|
+
"extends": "./tsconfig.preset.json",
|
|
4
|
+
"compilerOptions": {
|
|
5
|
+
"types": ["@types/bun"]
|
|
6
|
+
}
|
|
7
7
|
}
|
package/tsconfig.preset.json
CHANGED
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
"$schema": "https://json.schemastore.org/tsconfig",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"target": "ESNext",
|
|
5
|
+
"module": "ESNext",
|
|
6
|
+
"moduleResolution": "bundler",
|
|
7
|
+
"lib": ["ESNext"],
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
9
|
+
"strict": true,
|
|
10
|
+
"noImplicitAny": true,
|
|
11
|
+
"strictNullChecks": true,
|
|
12
|
+
"strictFunctionTypes": true,
|
|
13
|
+
"strictBindCallApply": true,
|
|
14
|
+
"strictPropertyInitialization": true,
|
|
15
|
+
"noImplicitThis": true,
|
|
16
|
+
"useUnknownInCatchVariables": true,
|
|
17
|
+
"alwaysStrict": true,
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
"noUncheckedIndexedAccess": true,
|
|
20
|
+
"noImplicitReturns": true,
|
|
21
|
+
"noFallthroughCasesInSwitch": true,
|
|
22
|
+
"noUnusedLocals": true,
|
|
23
|
+
"noUnusedParameters": true,
|
|
24
|
+
"exactOptionalPropertyTypes": true,
|
|
25
|
+
"noPropertyAccessFromIndexSignature": true,
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
"declaration": true,
|
|
28
|
+
"declarationMap": true,
|
|
29
|
+
"sourceMap": true,
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
"esModuleInterop": true,
|
|
32
|
+
"forceConsistentCasingInFileNames": true,
|
|
33
|
+
"isolatedModules": true,
|
|
34
|
+
"verbatimModuleSyntax": true,
|
|
35
|
+
"skipLibCheck": true,
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
"resolveJsonModule": true,
|
|
38
|
+
"allowSyntheticDefaultImports": true
|
|
39
|
+
}
|
|
40
40
|
}
|
package/biome.json
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://biomejs.dev/schemas/2.4.4/schema.json",
|
|
3
|
-
"root": false,
|
|
4
|
-
"javascript": {
|
|
5
|
-
"globals": ["Bun"]
|
|
6
|
-
},
|
|
7
|
-
"linter": {
|
|
8
|
-
"rules": {
|
|
9
|
-
"complexity": {
|
|
10
|
-
"useLiteralKeys": "off",
|
|
11
|
-
"noVoid": "off",
|
|
12
|
-
"noExcessiveCognitiveComplexity": "off"
|
|
13
|
-
},
|
|
14
|
-
"performance": {
|
|
15
|
-
"useTopLevelRegex": "off"
|
|
16
|
-
},
|
|
17
|
-
"style": {
|
|
18
|
-
"useBlockStatements": "off"
|
|
19
|
-
},
|
|
20
|
-
"suspicious": {
|
|
21
|
-
"noConsole": "error"
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
"vcs": {
|
|
26
|
-
"enabled": true,
|
|
27
|
-
"clientKind": "git",
|
|
28
|
-
"useIgnoreFile": true
|
|
29
|
-
},
|
|
30
|
-
"files": {
|
|
31
|
-
"ignoreUnknown": true,
|
|
32
|
-
"includes": [
|
|
33
|
-
"**",
|
|
34
|
-
"!**/node_modules",
|
|
35
|
-
"!**/dist",
|
|
36
|
-
"!**/.turbo",
|
|
37
|
-
"!**/*.gen.ts",
|
|
38
|
-
"!registry/registry.json"
|
|
39
|
-
]
|
|
40
|
-
},
|
|
41
|
-
"overrides": [
|
|
42
|
-
{
|
|
43
|
-
"includes": [
|
|
44
|
-
"packages/*/src/index.ts",
|
|
45
|
-
"apps/*/src/index.ts",
|
|
46
|
-
"**/index.ts"
|
|
47
|
-
],
|
|
48
|
-
"linter": {
|
|
49
|
-
"rules": {
|
|
50
|
-
"performance": {
|
|
51
|
-
"noBarrelFile": "off"
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"includes": ["**/*.test.ts", "**/__tests__/**/*"],
|
|
58
|
-
"linter": {
|
|
59
|
-
"rules": {
|
|
60
|
-
"suspicious": {
|
|
61
|
-
"useAwait": "off",
|
|
62
|
-
"noConsole": "off"
|
|
63
|
-
},
|
|
64
|
-
"performance": {
|
|
65
|
-
"noDelete": "off"
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
"includes": ["apps/**/*.ts", "scripts/**/*.ts", "**/scripts/**/*.ts"],
|
|
72
|
-
"linter": {
|
|
73
|
-
"rules": {
|
|
74
|
-
"suspicious": {
|
|
75
|
-
"noConsole": "off"
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
]
|
|
81
|
-
}
|