@systemfsoftware/arethetypeswrong-cli 2.0.0 → 3.0.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,85 @@
|
|
|
1
1
|
# @systemfsoftware/arethetypeswrong-cli
|
|
2
2
|
|
|
3
|
+
## 3.0.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies.
|
|
8
|
+
|
|
9
|
+
- Updated dependencies.
|
|
10
|
+
|
|
11
|
+
- Updated dependencies:
|
|
12
|
+
- @systemfsoftware/arethetypeswrong-core@4.0.0
|
|
13
|
+
|
|
14
|
+
## 3.0.0
|
|
15
|
+
|
|
16
|
+
### Major Changes
|
|
17
|
+
|
|
18
|
+
- Collapse projection tags into the ports they projected
|
|
19
|
+
|
|
20
|
+
A `*ExecutorDeps` tag whose service type was indexed off other ports recorded which members
|
|
21
|
+
one operation happened to reach for. Exporting it turned internal composition into a surface
|
|
22
|
+
commitment: a consumer had to discover and provide an aggregator for each operation, where the
|
|
23
|
+
port it came from already served. The tags rode the `R` channel of exported signatures, so a
|
|
24
|
+
consumer met them only at their own call site.
|
|
25
|
+
|
|
26
|
+
Each was removed the way its evidence directed — no tag was renamed, and none was replaced:
|
|
27
|
+
|
|
28
|
+
- `AttwCliExecutorDeps`, `CheckPackageExecutorDeps` — deleted. Zero consumers, no Live layer;
|
|
29
|
+
callers already required the real capabilities directly.
|
|
30
|
+
- `HookDispatcherExecutorDeps` — was a 1:1 alias of `Scope.Scope`. Requiring `Scope` names the
|
|
31
|
+
same service.
|
|
32
|
+
- `InjectInstructionsExecutorDeps` — packed `FileSystem`, `Path` and `TomlLoader` with no logic.
|
|
33
|
+
Consumers require the three ports.
|
|
34
|
+
- `EffectVitestDeps` → `EffectVitestBindings`. Never a `Context.Tag`: a plain type alias already
|
|
35
|
+
passed as an ordinary parameter, so only the name misdescribed it. A stale api report that no
|
|
36
|
+
`api-extractor` regenerates was deleted with it.
|
|
37
|
+
|
|
38
|
+
A consumer providing a port instead of an aggregator provides no more than before, since a
|
|
39
|
+
service `{ a, b }` is assignable to a requirement `{ a }`.
|
|
40
|
+
|
|
41
|
+
### Minor Changes
|
|
42
|
+
|
|
43
|
+
- cut over to effect v4 (4.0.0-rc.108): public surface derives from effect types; peers flip effect ^3→^4
|
|
44
|
+
|
|
45
|
+
### Patch Changes
|
|
46
|
+
|
|
47
|
+
- Array types are spelled one way. `Array<T>` and `ReadonlyArray<T>` in emitted
|
|
48
|
+
declarations become `T[]` and `readonly T[]`, which the type checker cannot tell
|
|
49
|
+
apart: no exported type changes, only how it is written.
|
|
50
|
+
|
|
51
|
+
- An `.attw.json` in the working directory is read again. Rules listed under `ignoreRules`
|
|
52
|
+
were being discarded, so a package that had waived a resolution condition still failed on
|
|
53
|
+
it, and the only way to get a passing run was to repeat every rule on the command line
|
|
54
|
+
|
|
55
|
+
- Rename five mislabelled `*.workflow.ts` files to `*.kernel.ts`.
|
|
56
|
+
|
|
57
|
+
`computeExitCode`, `applyProfile`, `renderAnalysis`, `detectEntrypointResolutions`, and
|
|
58
|
+
`detectModuleKindDisagreement` each return a bare value — a decision instance, a string, an array, or
|
|
59
|
+
`undefined` — never an `Either`. None has a failure mode, so none is a workflow, and the suffix was
|
|
60
|
+
claiming a contract the files never held. The `UninhabitedError` marker in
|
|
61
|
+
`@systemfsoftware/effect-cell-types` prescribes exactly this repair: "this workflow cannot fail, so it
|
|
62
|
+
decides nothing; give it an error variant or move it to a `*.kernel.ts`". Wrapping their results in
|
|
63
|
+
`Either.right` to satisfy the constructor was rejected — that manufactures a success-only decision.
|
|
64
|
+
|
|
65
|
+
Neither package takes a dependency on the constructor. Both are listed as `TOOLING` in
|
|
66
|
+
`scripts/guards/check-lint-coverage.mjs` ("port of arethetypeswrong, tooling"), carry no
|
|
67
|
+
`oxlint.config.ts`, and the cell rules deliberately do not reach them.
|
|
68
|
+
|
|
69
|
+
The public symbols and the `export *` surface of `core/src/index.ts` are unchanged, so no consumer
|
|
70
|
+
import breaks. The bump is real rather than empty because both packages ship `dist/` built from these
|
|
71
|
+
sources: the emitted chunk filenames change, and `arethetypeswrong-cli` rebuilds its `bin` target at
|
|
72
|
+
pack time via `prepack`. Test files and one non-UTF-8 property test were repointed alongside.
|
|
73
|
+
|
|
74
|
+
- Packing for analysis (attw --pack) no longer runs the target package's pack lifecycle scripts: packing acquires the artifact for analysis instead of rebuilding it, so analyzing a package never mutates its build output.
|
|
75
|
+
|
|
76
|
+
- New version is published through npm trusted publishing, so it carries a provenance attestation you can verify.
|
|
77
|
+
|
|
78
|
+
- Build the `bin` target during install. Both CLIs point `bin` at gitignored build output, which pnpm's two bin-link passes skip when it is absent, leaving a fresh clone without the command and never retrying. A `prepare` script now builds the target between the passes; `arethetypeswrong-cli` drops its committed `bin/attw.mjs` launcher in favour of the same pattern.
|
|
79
|
+
|
|
80
|
+
- Updated dependencies:
|
|
81
|
+
- @systemfsoftware/arethetypeswrong-core@3.0.0
|
|
82
|
+
|
|
3
83
|
## 2.0.0
|
|
4
84
|
|
|
5
85
|
### Patch Changes
|
|
@@ -580,15 +580,15 @@ const registryOptions = () => Flag.string("registry").pipe(Flag.withDescription(
|
|
|
580
580
|
const unwrap = (opt) => Option.isSome(opt) ? opt.value : void 0;
|
|
581
581
|
const attwCommand = Command.make("attw", {
|
|
582
582
|
fileOrDirectory: Argument.optional(Argument.string("file-directory-or-package-spec")),
|
|
583
|
-
pack: Flag.boolean("pack").pipe(Flag.withAlias("P"), Flag.withDescription("Run `npm pack` in the specified directory and delete the resulting .tgz file afterwards")),
|
|
584
|
-
fromNpm: Flag.boolean("from-npm").pipe(Flag.withAlias("p"), Flag.withDescription("Read from the npm registry instead of a local file")),
|
|
583
|
+
pack: Flag.boolean("pack").pipe(Flag.withAlias("P"), Flag.withDefault(false), Flag.withDescription("Run `npm pack` in the specified directory and delete the resulting .tgz file afterwards")),
|
|
584
|
+
fromNpm: Flag.boolean("from-npm").pipe(Flag.withAlias("p"), Flag.withDefault(false), Flag.withDescription("Read from the npm registry instead of a local file")),
|
|
585
585
|
definitelyTyped: definitelyTypedOptions(),
|
|
586
586
|
format: formatOptions(),
|
|
587
|
-
quiet: Flag.boolean("quiet").pipe(Flag.withAlias("q"), Flag.withDescription("Don't print anything to STDOUT (overrides all other options)")),
|
|
587
|
+
quiet: Flag.boolean("quiet").pipe(Flag.withAlias("q"), Flag.withDefault(false), Flag.withDescription("Don't print anything to STDOUT (overrides all other options)")),
|
|
588
588
|
entrypoints: Flag.optional(Flag.atLeast(1)(Flag.string("entrypoints"))),
|
|
589
589
|
includeEntrypoints: Flag.optional(Flag.atLeast(1)(Flag.string("include-entrypoints"))),
|
|
590
590
|
excludeEntrypoints: Flag.optional(Flag.atLeast(1)(Flag.string("exclude-entrypoints"))),
|
|
591
|
-
entrypointsLegacy: Flag.boolean("entrypoints-legacy"),
|
|
591
|
+
entrypointsLegacy: Flag.boolean("entrypoints-legacy").pipe(Flag.withDefault(false)),
|
|
592
592
|
ignoreRules: ignoreRulesOptions(),
|
|
593
593
|
profile: profileOptions(),
|
|
594
594
|
summary: Flag.boolean("summary").pipe(Flag.withDefault(true)),
|
package/dist/AttwHandler.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as attwCommand } from "./AttwHandler-
|
|
1
|
+
import { t as attwCommand } from "./AttwHandler-GdVcA4q8.mjs";
|
|
2
2
|
export { attwCommand };
|
package/dist/main.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { a as FilesystemLive, i as PackRunnerLive, n as TerminalLive, r as StdinLive, t as attwCommand } from "./AttwHandler-
|
|
2
|
+
import { a as FilesystemLive, i as PackRunnerLive, n as TerminalLive, r as StdinLive, t as attwCommand } from "./AttwHandler-GdVcA4q8.mjs";
|
|
3
3
|
import { layer } from "@effect/platform-node-shared/NodeChildProcessSpawner";
|
|
4
4
|
import { layer as layer$1 } from "@effect/platform-node-shared/NodeFileSystem";
|
|
5
5
|
import { layer as layer$2 } from "@effect/platform-node-shared/NodePath";
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@systemfsoftware/arethetypeswrong-cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "A CLI tool for arethetypeswrong.github.io — owned and maintained by systemfsoftware",
|
|
5
5
|
"author": "Ryan Lee <drdgvhbh@gmail.com>",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "https://github.com/systemfsoftware/systemfsoftware.git",
|
|
10
|
-
"directory": "packages/arethetypeswrong/cli"
|
|
10
|
+
"directory": "packages/testing/type-testing/arethetypeswrong/cli"
|
|
11
11
|
},
|
|
12
12
|
"files": [
|
|
13
13
|
"dist",
|
|
@@ -22,13 +22,13 @@
|
|
|
22
22
|
},
|
|
23
23
|
"type": "module",
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@effect/platform-node": "^4.0.0-rc.
|
|
26
|
-
"@effect/platform-node-shared": "^4.0.0-rc.
|
|
27
|
-
"effect": "4.0.0-rc.
|
|
28
|
-
"@systemfsoftware/arethetypeswrong-core": "
|
|
25
|
+
"@effect/platform-node": "^4.0.0-rc.111",
|
|
26
|
+
"@effect/platform-node-shared": "^4.0.0-rc.111",
|
|
27
|
+
"effect": "4.0.0-rc.111",
|
|
28
|
+
"@systemfsoftware/arethetypeswrong-core": "4.0.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@effect/vitest": "4.0.0-rc.
|
|
31
|
+
"@effect/vitest": "4.0.0-rc.111",
|
|
32
32
|
"@types/node": "^24",
|
|
33
33
|
"fast-check": "^4",
|
|
34
34
|
"oxlint": "^1.77.0",
|
|
@@ -37,13 +37,13 @@
|
|
|
37
37
|
"tsdown": "^0.22.14",
|
|
38
38
|
"vite-tsconfig-paths": "^6.1.1",
|
|
39
39
|
"vitest": "^4.1.10",
|
|
40
|
-
"@systemfsoftware/effect-
|
|
41
|
-
"@systemfsoftware/effect-schema-
|
|
40
|
+
"@systemfsoftware/effect-gherkin-spec": "^2.0.1",
|
|
41
|
+
"@systemfsoftware/effect-schema-law": "^0.9.0",
|
|
42
|
+
"@systemfsoftware/effect-schema-vite": "^1.5.4",
|
|
42
43
|
"@systemfsoftware/oxlint-config": "^0.1.0",
|
|
43
|
-
"@systemfsoftware/
|
|
44
|
-
"@systemfsoftware/
|
|
45
|
-
"@systemfsoftware/
|
|
46
|
-
"@systemfsoftware/vitest-config": "^0.1.0"
|
|
44
|
+
"@systemfsoftware/vitest-config": "^0.1.0",
|
|
45
|
+
"@systemfsoftware/tsconfig": "^1.3.3",
|
|
46
|
+
"@systemfsoftware/oxlint-plugin-effect-dmmf": "^4.0.0"
|
|
47
47
|
},
|
|
48
48
|
"engines": {
|
|
49
49
|
"node": ">=24"
|