@systemfsoftware/oxlint-plugin-cell-vocabulary 1.1.0 → 1.2.1

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 CHANGED
@@ -1,5 +1,58 @@
1
1
  # @systemfsoftware/oxlint-plugin-cell-vocabulary
2
2
 
3
+ ## 1.2.1
4
+
5
+ ### Patch Changes
6
+
7
+ - The peer requirements for `effect` and for the Effect test-runner integration now accept any compatible `4.0.0-rc` release, instead of demanding one exact release candidate.
8
+
9
+ Installing alongside a newer release candidate no longer reports an unmet peer dependency or resolves a second copy of `effect` into the dependency tree.
10
+
11
+ - Updated dependencies:
12
+ - @systemfsoftware/effect-cell-types@4.0.0
13
+
14
+ ## 1.2.0
15
+
16
+ ### Minor Changes
17
+
18
+ - New oxlint plugin whose rule vocabulary is derived, not declared: `no-io-in-phase-bodies` reads the pure-phase set, the description's module name and the I/O-cell classification off `Cell.vocabulary` at load time, so reclassifying a cell or changing a phase's kind moves the rule with no edit here.
19
+
20
+ The rule reports an I/O call reached from a pure phase body, directly or through a module-level helper it calls. That wording is the predicate's exact reach: a binding captured from an enclosing closure is not followed, and the message does not claim it is.
21
+
22
+ An empty walk throws at load rather than matching nothing, because a set-membership rule over an empty set stays registered and green while deciding nothing.
23
+
24
+ Delivered consumer-side through each consumer's own `jsPlugins`, never through the aggregate config: the plugin depends on `@systemfsoftware/effect-cell-types`, and declaring it in the aggregate would close a build cycle.
25
+
26
+ ### Patch Changes
27
+
28
+ - New version is published through npm trusted publishing, so it carries a provenance attestation you can verify.
29
+
30
+ - State the canonical-identifier contract once
31
+
32
+ Six leaves carried the same rule: a rule matches the canonical identifier only, its suite
33
+ carries a near-miss valid case proving the alias does not fire, and widening the match makes
34
+ every one of those cases pass vacuously. It now lives once in the hub leaf that governs the
35
+ whole family, so a leaf below inherits it rather than restating it.
36
+
37
+ One clause was genuinely package-specific and stayed: a computed `Effect['fn']` still counts
38
+ as an exported `Effect` value under `store-effect-fn-required`, which the shared rule does
39
+ not say.
40
+
41
+ Also corrects the turbo cycle recorded in two places. Both chains from `effect-executor` to
42
+ `effect-dmmf` are real — `effect-cell-types` dev-depends on `oxlint-config` directly and
43
+ again through `effect-gherkin-spec` — so the two were true at different granularity rather
44
+ than in conflict, and both now say so. The closing edge is absent today; the rules exist to
45
+ keep it absent.
46
+
47
+ - Each of these packages now has a README, so its registry page says what the package is, how
48
+ to install it, and what to import or register — previously the page was blank. The lint
49
+ plugins show the configuration line that enables what they recommend.
50
+
51
+ `@systemfsoftware/stryker-js-mutation-report` also carries its licence text
52
+
53
+ - Updated dependencies:
54
+ - @systemfsoftware/effect-cell-types@3.0.0
55
+
3
56
  ## 1.1.0
4
57
 
5
58
  ### Minor Changes
@@ -0,0 +1,20 @@
1
+ import { Rule } from '@oxlint/plugins';
2
+
3
+ declare const _default: {
4
+ meta: {
5
+ name: string;
6
+ };
7
+ rules: {
8
+ 'no-io-in-phase-bodies': Rule;
9
+ };
10
+ configs: {
11
+ recommended: {
12
+ rules: {
13
+ readonly [x: string]: "error";
14
+ };
15
+ };
16
+ };
17
+ };
18
+ export default _default;
19
+
20
+ export { }
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@systemfsoftware/oxlint-plugin-cell-vocabulary",
3
3
  "license": "Apache-2.0",
4
- "version": "1.1.0",
4
+ "version": "1.2.1",
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/oxlint-plugins/cell-vocabulary"
9
+ "directory": "packages/lint/oxlint/plugins/cells/cell-vocabulary"
10
10
  },
11
- "homepage": "https://github.com/systemfsoftware/systemfsoftware/tree/main/packages/oxlint-plugins/cell-vocabulary#readme",
11
+ "homepage": "https://github.com/systemfsoftware/systemfsoftware/tree/main/packages/lint/oxlint/plugins/cells/cell-vocabulary#readme",
12
12
  "bugs": "https://github.com/systemfsoftware/systemfsoftware/issues",
13
13
  "description": "Oxlint rules that decide the phase purity and I/O-cell vocabulary of a Cell description by walking Cell.vocabulary, and report I/O reached from the body of a phase whose kind forbids it.",
14
14
  "keywords": [
@@ -39,24 +39,24 @@
39
39
  "dependencies": {
40
40
  "@oxc-project/types": "^0.140.0",
41
41
  "@oxlint/plugins": "^1.77.0",
42
- "@systemfsoftware/effect-cell-types": "^2.0.0"
42
+ "@systemfsoftware/effect-cell-types": "^4.0.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@microsoft/api-extractor": "^7.58.7",
46
46
  "@systemfsoftware/arethetypeswrong-cli": "^1.1.1",
47
47
  "@types/node": "^24",
48
48
  "@vitest/coverage-v8": "^4",
49
- "effect": "4.0.0-rc.108",
49
+ "effect": "4.0.0-rc.111",
50
50
  "oxlint": "^1.77.0",
51
51
  "rimraf": "^6.1.3",
52
52
  "tsdown": "^0.22.14",
53
53
  "typescript": "^7",
54
54
  "vitest": "^4.1.10",
55
55
  "@systemfsoftware/vitest-config": "^0.1.0",
56
- "@systemfsoftware/tsconfig": "^1.3.2"
56
+ "@systemfsoftware/tsconfig": "^1.3.3"
57
57
  },
58
58
  "peerDependencies": {
59
- "effect": "4.0.0-rc.108",
59
+ "effect": "^4.0.0-rc.111",
60
60
  "typescript": ">=5.0.0"
61
61
  },
62
62
  "publishConfig": {