@systemfsoftware/all 0.2.0 → 0.3.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 +17 -0
- package/README.md +51 -14
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +20 -97
- package/dist/all.d.ts +0 -50
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @systemfsoftware/all
|
|
2
2
|
|
|
3
|
+
## 0.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Preset configuration for Effect domain modelling, schema boundaries, test placement, property-based testing, entrypoint termination, and cell vocabulary. Peer dependencies are streamlined to core language and static analysis tools.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Introduce `@systemfsoftware/omp-typescript-discipline` plugin and rules for TypeScript configuration discipline
|
|
12
|
+
|
|
13
|
+
- Updated dependencies:
|
|
14
|
+
- @systemfsoftware/oxlint-plugin@2.0.0
|
|
15
|
+
- @systemfsoftware/oxlint-plugin-effect-dmmf@3.0.0
|
|
16
|
+
- @systemfsoftware/oxlint-plugin-effect-schema@3.0.0
|
|
17
|
+
- @systemfsoftware/oxlint-plugin-effect-workflow@3.0.0
|
|
18
|
+
- @systemfsoftware/oxlint-plugin-test-placement@3.0.0
|
|
19
|
+
|
|
3
20
|
## 0.2.0
|
|
4
21
|
|
|
5
22
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# @systemfsoftware/all
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Complete [oxlint](https://oxc.rs/docs/guide/usage/linter.html) preset for Effect-TS and the functional core / imperative shell architecture.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Extends oxlint with custom rule plugins for Effect domain modelling, schema boundaries, test placement, property-based testing, entrypoint termination, and cell vocabulary — pre-configured with type awareness and correctness defaults in a single import.
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
@@ -10,11 +10,11 @@ Installing this package installs every published `@systemfsoftware/*` package
|
|
|
10
10
|
pnpm add -D @systemfsoftware/all effect oxlint oxlint-tsgolint typescript
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
`effect`, `oxlint`, `oxlint-tsgolint
|
|
13
|
+
`effect`, `oxlint`, `oxlint-tsgolint`, and `typescript` are peer dependencies so your project controls its own versions. `oxlint-tsgolint` is the type-aware evaluation engine required for semantic rules (e.g. boundary assertions and schema codecs).
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
## Quick Start
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
Export the preset from your `oxlint.config.ts`:
|
|
18
18
|
|
|
19
19
|
```ts
|
|
20
20
|
// oxlint.config.ts
|
|
@@ -23,20 +23,57 @@ import all from '@systemfsoftware/all'
|
|
|
23
23
|
export default all
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
Run oxlint against your project:
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
```sh
|
|
29
|
+
pnpm oxlint
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
> [!NOTE]
|
|
33
|
+
> Type-aware rules require a `tsconfig.json` covering the files being linted. Without type information, type-dependent rules are skipped.
|
|
34
|
+
|
|
35
|
+
## What's Included
|
|
36
|
+
|
|
37
|
+
The preset registers and enables four custom plugin suites alongside stock oxlint correctness rules at `error`:
|
|
38
|
+
|
|
39
|
+
### Custom Rule Plugins
|
|
40
|
+
|
|
41
|
+
| Plugin | Scope | Key Invariants Enforced |
|
|
42
|
+
| -------------------------------------------------- | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
43
|
+
| `@systemfsoftware/oxlint-plugin` | Core Effect & architecture | Ban native `Date.now()`, `Map`, `Set`, `setTimeout`, and `Promise` inside Effect blocks; require structured errors over string errors; forbid boundary tests in unit suites |
|
|
44
|
+
| `@systemfsoftware/oxlint-plugin-cell-vocabulary` | Cell architecture | Enforce kernel/executor boundary conventions and domain naming structures by walking cell descriptions |
|
|
45
|
+
| `@systemfsoftware/oxlint-plugin-effect-dmmf` | DMMF aggregate suite | Bundles schema codec checks, workflow step structure, property-based test isolation, and test hygiene |
|
|
46
|
+
| `@systemfsoftware/oxlint-plugin-effect-entrypoint` | Application runtime | Require explicit top-level runtime entrypoints (`runMain`, `ManagedRuntime`) and forbid leaking intermediate runtimes |
|
|
31
47
|
|
|
32
|
-
|
|
48
|
+
### Stock Namespaces & Defaults
|
|
33
49
|
|
|
34
|
-
|
|
50
|
+
- **`categories`**: `correctness: 'error'`
|
|
51
|
+
- **Registered namespaces**: `oxc`, `typescript`, `import`, `unicorn`, `vitest`, `jsdoc`, `node`, `promise`
|
|
52
|
+
- **Default ignore patterns**: `dist/**`, `build/**`, `coverage/**`, `**/*.d.ts`, `.turbo/**`, `.stryker-tmp/**`
|
|
53
|
+
|
|
54
|
+
## Composition & Customization
|
|
55
|
+
|
|
56
|
+
If you need to override rules or extend existing settings, import individual configuration blocks or spread the preset:
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
// oxlint.config.ts
|
|
60
|
+
import all, { ignorePatterns, plugins, rules } from '@systemfsoftware/all'
|
|
61
|
+
|
|
62
|
+
export default {
|
|
63
|
+
...all,
|
|
64
|
+
ignorePatterns: [...ignorePatterns, 'generated/**'],
|
|
65
|
+
rules: {
|
|
66
|
+
...rules,
|
|
67
|
+
// downgrade or customize specific rules
|
|
68
|
+
'@systemfsoftware/oxlint-plugin/no-logging-in-catch': 'warn',
|
|
69
|
+
},
|
|
70
|
+
}
|
|
71
|
+
```
|
|
35
72
|
|
|
36
|
-
##
|
|
73
|
+
## Contributing
|
|
37
74
|
|
|
38
|
-
|
|
75
|
+
Development setup and repo workflow: [AGENTS.md](../../../AGENTS.md).
|
|
39
76
|
|
|
40
77
|
## License
|
|
41
78
|
|
|
42
|
-
Apache-2.0. Part of [systemfsoftware](https://github.com/systemfsoftware/systemfsoftware).
|
|
79
|
+
[Apache-2.0](LICENSE). Part of [systemfsoftware](https://github.com/systemfsoftware/systemfsoftware).
|
package/dist/index.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ declare const rules: NonNullable<OxlintConfig['rules']>;
|
|
|
30
30
|
*/
|
|
31
31
|
declare const ignorePatterns: readonly string[];
|
|
32
32
|
/**
|
|
33
|
-
* The
|
|
33
|
+
* The complete preset as one `extends`-consumable oxlint config, and this package's
|
|
34
34
|
* default export: `export default all` in an `oxlint.config.ts` delivers the
|
|
35
35
|
* plugins, type awareness, the correctness category, the stock defect and
|
|
36
36
|
* test-hygiene tiers, and every recommended cell rule at `error`.
|
package/dist/index.mjs
CHANGED
|
@@ -72,7 +72,7 @@ const ignorePatterns = [
|
|
|
72
72
|
"**/*.tsbuildinfo"
|
|
73
73
|
];
|
|
74
74
|
/**
|
|
75
|
-
* The
|
|
75
|
+
* The complete preset as one `extends`-consumable oxlint config, and this package's
|
|
76
76
|
* default export: `export default all` in an `oxlint.config.ts` delivers the
|
|
77
77
|
* plugins, type awareness, the correctness category, the stock defect and
|
|
78
78
|
* test-hygiene tiers, and every recommended cell rule at `error`.
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@systemfsoftware/all",
|
|
3
3
|
"license": "Apache-2.0",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.3.0",
|
|
5
5
|
"author": "Ryan Lee <drdgvhbh@gmail.com>",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "git+https://github.com/systemfsoftware/systemfsoftware.git",
|
|
9
|
-
"directory": "packages/all"
|
|
9
|
+
"directory": "packages/lint/oxlint/all"
|
|
10
10
|
},
|
|
11
|
-
"homepage": "https://github.com/systemfsoftware/systemfsoftware/tree/main/packages/all#readme",
|
|
11
|
+
"homepage": "https://github.com/systemfsoftware/systemfsoftware/tree/main/packages/lint/oxlint/all#readme",
|
|
12
12
|
"bugs": "https://github.com/systemfsoftware/systemfsoftware/issues",
|
|
13
|
-
"description": "
|
|
13
|
+
"description": "Complete oxlint preset for Effect and cell architecture: bundles all custom rule plugins (workflow, schema, entrypoint, cell vocabulary, property testing, test placement, hygiene) with type-aware correctness settings in a single config.",
|
|
14
14
|
"keywords": [
|
|
15
15
|
"effect",
|
|
16
16
|
"effect-ts",
|
|
@@ -18,8 +18,6 @@
|
|
|
18
18
|
"oxlint",
|
|
19
19
|
"oxlint-config",
|
|
20
20
|
"preset",
|
|
21
|
-
"meta-package",
|
|
22
|
-
"monorepo",
|
|
23
21
|
"schema",
|
|
24
22
|
"workflow",
|
|
25
23
|
"typescript"
|
|
@@ -29,43 +27,19 @@
|
|
|
29
27
|
"dist"
|
|
30
28
|
],
|
|
31
29
|
"dependencies": {
|
|
32
|
-
"@systemfsoftware/
|
|
33
|
-
"@systemfsoftware/
|
|
34
|
-
"@systemfsoftware/effect-
|
|
35
|
-
"@systemfsoftware/effect-
|
|
36
|
-
"@systemfsoftware/
|
|
37
|
-
"@systemfsoftware/
|
|
38
|
-
"@systemfsoftware/
|
|
39
|
-
"@systemfsoftware/effect-
|
|
40
|
-
"@systemfsoftware/
|
|
41
|
-
"@systemfsoftware/
|
|
42
|
-
"@systemfsoftware/effect-schema-vite": "^1.5.2",
|
|
43
|
-
"@systemfsoftware/hex-schema": "^1.7.0",
|
|
44
|
-
"@systemfsoftware/omp-agent-discipline": "^2.0.0",
|
|
45
|
-
"@systemfsoftware/oxlint-plugin-cell-vocabulary": "^1.1.0",
|
|
46
|
-
"@systemfsoftware/oxlint-plugin-effect-dmmf": "^2.0.0",
|
|
47
|
-
"@systemfsoftware/omp-claude-compat": "^2.0.0",
|
|
48
|
-
"@systemfsoftware/oxlint-plugin-effect-entrypoint": "^1.0.3",
|
|
49
|
-
"@systemfsoftware/oxlint-plugin": "^1.0.0",
|
|
50
|
-
"@systemfsoftware/oxlint-plugin-effect-schema": "^2.0.0",
|
|
51
|
-
"@systemfsoftware/oxlint-plugin-effect-workflow": "^2.0.0",
|
|
52
|
-
"@systemfsoftware/oxlint-plugin-recommended": "^1.1.2",
|
|
53
|
-
"@systemfsoftware/oxlint-plugin-test-hygiene": "^1.1.3",
|
|
54
|
-
"@systemfsoftware/oxlint-plugin-test-placement": "^2.0.0",
|
|
55
|
-
"@systemfsoftware/rx-effect": "^0.6.0",
|
|
56
|
-
"@systemfsoftware/oxlint-plugin-property-testing": "^1.2.0",
|
|
57
|
-
"@systemfsoftware/storybook-gherkin": "^1.0.0",
|
|
58
|
-
"@systemfsoftware/stryker-js-mutation-report": "^1.2.6",
|
|
59
|
-
"@systemfsoftware/stryker-js-cli": "^2.0.0",
|
|
60
|
-
"@systemfsoftware/stryker-js-mutation-run": "^2.0.0",
|
|
61
|
-
"@systemfsoftware/stryker-js-plugin-api": "^1.0.0",
|
|
62
|
-
"@systemfsoftware/stryker-js-typescript-checker": "^1.3.0",
|
|
63
|
-
"@systemfsoftware/stryker-plugins": "^0.12.0",
|
|
64
|
-
"@systemfsoftware/stryker-js-vitest-runner": "^0.1.1",
|
|
65
|
-
"@systemfsoftware/tsconfig": "^1.3.2"
|
|
30
|
+
"@systemfsoftware/oxlint-plugin-effect-dmmf": "^3.0.0",
|
|
31
|
+
"@systemfsoftware/oxlint-plugin-cell-vocabulary": "^1.2.0",
|
|
32
|
+
"@systemfsoftware/oxlint-plugin-effect-entrypoint": "^1.0.4",
|
|
33
|
+
"@systemfsoftware/oxlint-plugin-effect-schema": "^3.0.0",
|
|
34
|
+
"@systemfsoftware/oxlint-plugin": "^2.0.0",
|
|
35
|
+
"@systemfsoftware/oxlint-plugin-property-testing": "^1.3.0",
|
|
36
|
+
"@systemfsoftware/oxlint-plugin-test-hygiene": "^1.1.4",
|
|
37
|
+
"@systemfsoftware/oxlint-plugin-effect-workflow": "^3.0.0",
|
|
38
|
+
"@systemfsoftware/oxlint-plugin-recommended": "^1.1.3",
|
|
39
|
+
"@systemfsoftware/oxlint-plugin-test-placement": "^3.0.0"
|
|
66
40
|
},
|
|
67
41
|
"devDependencies": {
|
|
68
|
-
"@
|
|
42
|
+
"@systemfsoftware/arethetypeswrong-cli": "^1.1.1",
|
|
69
43
|
"@types/node": "^24",
|
|
70
44
|
"effect": "4.0.0-rc.108",
|
|
71
45
|
"oxlint": "^1.77.0",
|
|
@@ -73,80 +47,29 @@
|
|
|
73
47
|
"rimraf": "^6.1.3",
|
|
74
48
|
"tsdown": "^0.22.14",
|
|
75
49
|
"typescript": "^7",
|
|
76
|
-
"
|
|
77
|
-
"@systemfsoftware/oxlint-config": "^0.1.0"
|
|
78
|
-
"@systemfsoftware/vitest-config": "^0.1.0"
|
|
50
|
+
"@systemfsoftware/tsconfig": "^1.3.3",
|
|
51
|
+
"@systemfsoftware/oxlint-config": "^0.1.0"
|
|
79
52
|
},
|
|
80
53
|
"peerDependencies": {
|
|
81
|
-
"@effect/platform-node": "^4.0.0-rc.108",
|
|
82
|
-
"@effect/vitest": "4.0.0-rc.108",
|
|
83
|
-
"@oh-my-pi/pi-coding-agent": "^17.0.5",
|
|
84
|
-
"@stryker-mutator/api": "^9.6.1",
|
|
85
54
|
"effect": "4.0.0-rc.108",
|
|
86
55
|
"oxlint": "^1.77.0",
|
|
87
56
|
"oxlint-tsgolint": ">=0.24.0",
|
|
88
|
-
"
|
|
89
|
-
"react-dom": "^19.2.8",
|
|
90
|
-
"rxjs": "^7",
|
|
91
|
-
"scheduler": "*",
|
|
92
|
-
"storybook": ">=10.0.0",
|
|
93
|
-
"typescript": ">=5.0.0",
|
|
94
|
-
"vite": ">5.0.0",
|
|
95
|
-
"vitest": ">=4.1.0 <5.0.0"
|
|
96
|
-
},
|
|
97
|
-
"peerDependenciesMeta": {
|
|
98
|
-
"@effect/platform-node": {
|
|
99
|
-
"optional": true
|
|
100
|
-
},
|
|
101
|
-
"@effect/vitest": {
|
|
102
|
-
"optional": true
|
|
103
|
-
},
|
|
104
|
-
"@oh-my-pi/pi-coding-agent": {
|
|
105
|
-
"optional": true
|
|
106
|
-
},
|
|
107
|
-
"@stryker-mutator/api": {
|
|
108
|
-
"optional": true
|
|
109
|
-
},
|
|
110
|
-
"react": {
|
|
111
|
-
"optional": true
|
|
112
|
-
},
|
|
113
|
-
"react-dom": {
|
|
114
|
-
"optional": true
|
|
115
|
-
},
|
|
116
|
-
"rxjs": {
|
|
117
|
-
"optional": true
|
|
118
|
-
},
|
|
119
|
-
"scheduler": {
|
|
120
|
-
"optional": true
|
|
121
|
-
},
|
|
122
|
-
"storybook": {
|
|
123
|
-
"optional": true
|
|
124
|
-
},
|
|
125
|
-
"vite": {
|
|
126
|
-
"optional": true
|
|
127
|
-
},
|
|
128
|
-
"vitest": {
|
|
129
|
-
"optional": true
|
|
130
|
-
}
|
|
57
|
+
"typescript": ">=5.0.0"
|
|
131
58
|
},
|
|
132
59
|
"publishConfig": {
|
|
133
60
|
"provenance": true
|
|
134
61
|
},
|
|
135
62
|
"exports": {
|
|
136
63
|
".": {
|
|
137
|
-
"types": "./dist/
|
|
64
|
+
"types": "./dist/index.d.ts",
|
|
138
65
|
"default": "./dist/index.mjs"
|
|
139
66
|
},
|
|
140
67
|
"./package.json": "./package.json"
|
|
141
68
|
},
|
|
142
69
|
"scripts": {
|
|
143
70
|
"clean": "rimraf dist",
|
|
144
|
-
"build": "tsdown
|
|
71
|
+
"build": "tsdown",
|
|
145
72
|
"typecheck": "tsc --noEmit --incremental",
|
|
146
|
-
"test": "vitest run",
|
|
147
|
-
"test:run": "vitest run",
|
|
148
|
-
"api:check": "api-extractor run",
|
|
149
|
-
"api:update": "api-extractor run --local",
|
|
150
73
|
"lint": "f=${OXLINT_FORMAT:-${AGENT:+agent}}; oxlint . --format=${f:-default}",
|
|
151
74
|
"attw": "attw --pack ."
|
|
152
75
|
}
|
package/dist/all.d.ts
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { OxlintConfig } from 'oxlint';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* The whole stack as one `extends`-consumable oxlint config, and this package's
|
|
5
|
-
* default export: `export default all` in an `oxlint.config.ts` delivers the
|
|
6
|
-
* plugins, type awareness, the correctness category, the stock defect and
|
|
7
|
-
* test-hygiene tiers, and every recommended cell rule at `error`.
|
|
8
|
-
*
|
|
9
|
-
* Type awareness is on, so a consumer needs a `tsconfig.json` that includes the
|
|
10
|
-
* files being linted; half of these rules produce no diagnostics without it and
|
|
11
|
-
* say nothing about being inert.
|
|
12
|
-
*
|
|
13
|
-
* @public
|
|
14
|
-
*/
|
|
15
|
-
declare const all: OxlintConfig;
|
|
16
|
-
export default all;
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Paths that are never source. Build output and generated declarations are the
|
|
20
|
-
* load-bearing entries: a `dist/` left unignored makes a type-aware run read
|
|
21
|
-
* emitted code and report findings no edit can fix.
|
|
22
|
-
*
|
|
23
|
-
* @public
|
|
24
|
-
*/
|
|
25
|
-
export declare const ignorePatterns: readonly string[];
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Built-in namespaces the enabled rules key on.
|
|
29
|
-
*
|
|
30
|
-
* Setting `plugins` REPLACES oxlint's default set rather than merging into it,
|
|
31
|
-
* and there is no flag that reveals the loss — only `--disable-oxc-plugin`. So
|
|
32
|
-
* `oxc` is listed explicitly: omitting it silently drops every oxc correctness
|
|
33
|
-
* rule while `correctness: 'error'` still reads as enabled.
|
|
34
|
-
*
|
|
35
|
-
* @public
|
|
36
|
-
*/
|
|
37
|
-
export declare const plugins: NonNullable<OxlintConfig['plugins']>;
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Every rule this stack recommends, taken from each plugin's own
|
|
41
|
-
* `configs.recommended` rather than transcribed here. A copied rule list drifts
|
|
42
|
-
* from the plugin that owns it and the drift is invisible: the misspelled or
|
|
43
|
-
* retired key is reported as unknown at most once, and the rule it named is
|
|
44
|
-
* simply absent from then on.
|
|
45
|
-
*
|
|
46
|
-
* @public
|
|
47
|
-
*/
|
|
48
|
-
export declare const rules: NonNullable<OxlintConfig['rules']>;
|
|
49
|
-
|
|
50
|
-
export { }
|