ddd-ts-kit 0.1.0 → 0.1.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/README.md +43 -3
- package/dist/affected/changed-paths.d.ts +8 -0
- package/dist/affected/changed-paths.d.ts.map +1 -0
- package/dist/affected/changed-paths.js +21 -0
- package/dist/affected/changed-paths.js.map +1 -0
- package/dist/affected/downstreams-of.d.ts +4 -0
- package/dist/affected/downstreams-of.d.ts.map +1 -0
- package/dist/affected/downstreams-of.js +16 -0
- package/dist/affected/downstreams-of.js.map +1 -0
- package/dist/affected/everything.d.ts +5 -0
- package/dist/affected/everything.d.ts.map +1 -0
- package/dist/affected/everything.js +5 -0
- package/dist/affected/everything.js.map +1 -0
- package/dist/affected/format-selection.d.ts +10 -0
- package/dist/affected/format-selection.d.ts.map +1 -0
- package/dist/affected/format-selection.js +45 -0
- package/dist/affected/format-selection.js.map +1 -0
- package/dist/affected/path-reach.d.ts +12 -0
- package/dist/affected/path-reach.d.ts.map +1 -0
- package/dist/affected/path-reach.js +2 -0
- package/dist/affected/path-reach.js.map +1 -0
- package/dist/affected/reach-of.d.ts +10 -0
- package/dist/affected/reach-of.d.ts.map +1 -0
- package/dist/affected/reach-of.js +30 -0
- package/dist/affected/reach-of.js.map +1 -0
- package/dist/affected/select-affected.d.ts +11 -0
- package/dist/affected/select-affected.d.ts.map +1 -0
- package/dist/affected/select-affected.js +39 -0
- package/dist/affected/select-affected.js.map +1 -0
- package/dist/affected/selection.d.ts +14 -0
- package/dist/affected/selection.d.ts.map +1 -0
- package/dist/affected/selection.js +2 -0
- package/dist/affected/selection.js.map +1 -0
- package/dist/commands/affected.d.ts +8 -0
- package/dist/commands/affected.d.ts.map +1 -0
- package/dist/commands/affected.js +38 -0
- package/dist/commands/affected.js.map +1 -0
- package/dist/commands/docs.d.ts.map +1 -1
- package/dist/commands/docs.js +2 -0
- package/dist/commands/docs.js.map +1 -1
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +5 -0
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +6 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/parse-stack.d.ts.map +1 -1
- package/dist/config/parse-stack.js +2 -1
- package/dist/config/parse-stack.js.map +1 -1
- package/dist/config/serialize-config.js +2 -2
- package/dist/config/serialize-config.js.map +1 -1
- package/dist/config/stack.d.ts +7 -0
- package/dist/config/stack.d.ts.map +1 -1
- package/dist/config/stack.js +1 -0
- package/dist/config/stack.js.map +1 -1
- package/dist/depcruise/cruise-configuration.js +3 -1
- package/dist/depcruise/cruise-configuration.js.map +1 -1
- package/dist/generate/apply-wiring.js +1 -1
- package/dist/generate/apply-wiring.js.map +1 -1
- package/dist/generate/kinds/adapter-kind.d.ts.map +1 -1
- package/dist/generate/kinds/adapter-kind.js +5 -2
- package/dist/generate/kinds/adapter-kind.js.map +1 -1
- package/dist/generate/kinds/declare-context-entries.d.ts +10 -0
- package/dist/generate/kinds/declare-context-entries.d.ts.map +1 -0
- package/dist/generate/kinds/declare-context-entries.js +31 -0
- package/dist/generate/kinds/declare-context-entries.js.map +1 -0
- package/dist/generate/kinds/generate-context.d.ts.map +1 -1
- package/dist/generate/kinds/generate-context.js +2 -0
- package/dist/generate/kinds/generate-context.js.map +1 -1
- package/dist/generate/kinds/import-assembler.d.ts +9 -0
- package/dist/generate/kinds/import-assembler.d.ts.map +1 -0
- package/dist/generate/kinds/import-assembler.js +29 -0
- package/dist/generate/kinds/import-assembler.js.map +1 -0
- package/dist/generate/kinds/write-context-files.d.ts.map +1 -1
- package/dist/generate/kinds/write-context-files.js +10 -2
- package/dist/generate/kinds/write-context-files.js.map +1 -1
- package/dist/generate/kinds/write-own-policy.d.ts +9 -0
- package/dist/generate/kinds/write-own-policy.d.ts.map +1 -0
- package/dist/generate/kinds/write-own-policy.js +13 -0
- package/dist/generate/kinds/write-own-policy.js.map +1 -0
- package/dist/generate/shared-writes.d.ts.map +1 -1
- package/dist/generate/shared-writes.js +6 -0
- package/dist/generate/shared-writes.js.map +1 -1
- package/dist/generate/stop-ignoring-validation.d.ts +9 -0
- package/dist/generate/stop-ignoring-validation.d.ts.map +1 -0
- package/dist/generate/stop-ignoring-validation.js +36 -0
- package/dist/generate/stop-ignoring-validation.js.map +1 -0
- package/dist/init/files/architecture-files.d.ts +9 -0
- package/dist/init/files/architecture-files.d.ts.map +1 -0
- package/dist/init/files/architecture-files.js +10 -0
- package/dist/init/files/architecture-files.js.map +1 -0
- package/dist/init/files/init-files.d.ts.map +1 -1
- package/dist/init/files/init-files.js +2 -0
- package/dist/init/files/init-files.js.map +1 -1
- package/dist/init/files/persistence-files.d.ts.map +1 -1
- package/dist/init/files/persistence-files.js +5 -1
- package/dist/init/files/persistence-files.js.map +1 -1
- package/dist/init/files/pipeline-files.d.ts.map +1 -1
- package/dist/init/files/pipeline-files.js +5 -1
- package/dist/init/files/pipeline-files.js.map +1 -1
- package/dist/init/files/platform-files.d.ts.map +1 -1
- package/dist/init/files/platform-files.js +3 -1
- package/dist/init/files/platform-files.js.map +1 -1
- package/dist/init/files/project-files.d.ts.map +1 -1
- package/dist/init/files/project-files.js +3 -1
- package/dist/init/files/project-files.js.map +1 -1
- package/dist/init/knip-vars.d.ts +3 -3
- package/dist/init/knip-vars.d.ts.map +1 -1
- package/dist/init/knip-vars.js +27 -5
- package/dist/init/knip-vars.js.map +1 -1
- package/dist/init/manifest/documentation-scripts.d.ts.map +1 -1
- package/dist/init/manifest/documentation-scripts.js +2 -0
- package/dist/init/manifest/documentation-scripts.js.map +1 -1
- package/dist/init/manifest/scripts-for.d.ts +5 -1
- package/dist/init/manifest/scripts-for.d.ts.map +1 -1
- package/dist/init/manifest/scripts-for.js +10 -1
- package/dist/init/manifest/scripts-for.js.map +1 -1
- package/dist/init/manifest/versions.js +23 -23
- package/dist/init/manifest/write-manifest.d.ts.map +1 -1
- package/dist/init/manifest/write-manifest.js +18 -1
- package/dist/init/manifest/write-manifest.js.map +1 -1
- package/dist/init/run-init.d.ts.map +1 -1
- package/dist/init/run-init.js +24 -4
- package/dist/init/run-init.js.map +1 -1
- package/dist/init/stack/resolve-stack.d.ts.map +1 -1
- package/dist/init/stack/resolve-stack.js +3 -1
- package/dist/init/stack/resolve-stack.js.map +1 -1
- package/dist/init/stack/stack-options.d.ts +1 -0
- package/dist/init/stack/stack-options.d.ts.map +1 -1
- package/dist/init/template-vars.d.ts.map +1 -1
- package/dist/init/template-vars.js +2 -0
- package/dist/init/template-vars.js.map +1 -1
- package/dist/init/validation-dependencies.d.ts +10 -0
- package/dist/init/validation-dependencies.d.ts.map +1 -0
- package/dist/init/validation-dependencies.js +23 -0
- package/dist/init/validation-dependencies.js.map +1 -0
- package/dist/init/write-contracts.d.ts +10 -0
- package/dist/init/write-contracts.d.ts.map +1 -0
- package/dist/init/write-contracts.js +33 -0
- package/dist/init/write-contracts.js.map +1 -0
- package/dist/package-manager/default-package-manager.d.ts +8 -0
- package/dist/package-manager/default-package-manager.d.ts.map +1 -0
- package/dist/package-manager/default-package-manager.js +7 -0
- package/dist/package-manager/default-package-manager.js.map +1 -0
- package/dist/package-manager/dialect.d.ts +3 -0
- package/dist/package-manager/dialect.d.ts.map +1 -0
- package/dist/package-manager/dialect.js +2 -0
- package/dist/package-manager/dialect.js.map +1 -0
- package/dist/package-manager/dialects.d.ts +5 -0
- package/dist/package-manager/dialects.d.ts.map +1 -0
- package/dist/package-manager/dialects.js +21 -0
- package/dist/package-manager/dialects.js.map +1 -0
- package/dist/package-manager/in-dialect.d.ts +8 -0
- package/dist/package-manager/in-dialect.d.ts.map +1 -0
- package/dist/package-manager/in-dialect.js +10 -0
- package/dist/package-manager/in-dialect.js.map +1 -0
- package/dist/package-manager/lockfiles.d.ts +4 -0
- package/dist/package-manager/lockfiles.d.ts.map +1 -0
- package/dist/package-manager/lockfiles.js +6 -0
- package/dist/package-manager/lockfiles.js.map +1 -0
- package/dist/package-manager/package-manager-of.d.ts +4 -0
- package/dist/package-manager/package-manager-of.d.ts.map +1 -0
- package/dist/package-manager/package-manager-of.js +15 -0
- package/dist/package-manager/package-manager-of.js.map +1 -0
- package/dist/package-manager/package-manager-vars.d.ts +5 -0
- package/dist/package-manager/package-manager-vars.d.ts.map +1 -0
- package/dist/package-manager/package-manager-vars.js +13 -0
- package/dist/package-manager/package-manager-vars.js.map +1 -0
- package/dist/package-manager/pinned-package-managers.d.ts +7 -0
- package/dist/package-manager/pinned-package-managers.d.ts.map +1 -0
- package/dist/package-manager/pinned-package-managers.js +9 -0
- package/dist/package-manager/pinned-package-managers.js.map +1 -0
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +8 -2
- package/dist/run.js.map +1 -1
- package/dist/templating/render.d.ts.map +1 -1
- package/dist/templating/render.js +2 -1
- package/dist/templating/render.js.map +1 -1
- package/dist/templating/rendering.js +1 -1
- package/dist/templating/rendering.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/workspace/workspace.d.ts +5 -1
- package/dist/workspace/workspace.d.ts.map +1 -1
- package/dist/workspace/workspace.js +13 -3
- package/dist/workspace/workspace.js.map +1 -1
- package/package.json +2 -2
- package/templates/architecture/extractable.declared.spec.ts.tpl +6 -6
- package/templates/architecture/extractable.manual.spec.ts.tpl +4 -0
- package/templates/architecture/extractable.tsyringe.spec.ts.tpl +6 -0
- package/templates/docs/asyncapi.json.tpl +12 -0
- package/templates/docs/event-catalog.md +3 -0
- package/templates/docs/openapi.json.tpl +354 -0
- package/templates/init/README.md.tpl +1 -0
- package/templates/init/docker/Dockerfile.tpl +9 -2
- package/templates/init/jest.config.js.tpl +3 -1
- package/templates/init/platform/compose-application.tsyringe.ts.tpl +0 -6
- package/templates/init/platform/database/journal.drizzle.json +5 -0
- package/templates/init/pnpm-workspace.yaml +8 -0
- package/templates/init/rules/infrastructure.md.tpl +2 -2
- package/templates/init/scripts/events.ts.tpl +1 -1
- package/templates/init/scripts/openapi.ts.tpl +1 -1
- package/templates/pipeline/biome.json.tpl +2 -1
- package/templates/pipeline/github/actions/setup/action.yml.tpl +37 -0
- package/templates/pipeline/github/scripts/start-postgres.sh +47 -0
- package/templates/pipeline/github/workflows/ci.yml +68 -110
- package/templates/pipeline/github/workflows/pr-title.yml +1 -5
- package/templates/pipeline/gitlab/{gitlab-ci.yml → gitlab-ci.yml.tpl} +59 -31
- package/templates/pipeline/knip.json.tpl +9 -10
- package/templates/pipeline/package-scripts.json +1 -1
- package/templates/pipeline/vitest.config.ts.tpl +7 -3
package/README.md
CHANGED
|
@@ -22,6 +22,12 @@ npx ddd-ts-kit generate route billing IssueInvoice --method POST --path /invoice
|
|
|
22
22
|
npx ddd-ts-kit check
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
+
`init` ends by saying what to run next: `pnpm install`, then `pnpm run verify` (`npm install`,
|
|
26
|
+
then `npm run verify` with `--package-manager npm`). A new project passes that whole gate before
|
|
27
|
+
anything is generated, with no context, with one and with several: the end-to-end suite installs
|
|
28
|
+
it for real and runs it, on both package managers and on every proven stack. After the install the
|
|
29
|
+
CLI is the one the project pins: `pnpm exec ddd-ts-kit <command>`, or `npx ddd-ts-kit <command>`.
|
|
30
|
+
|
|
25
31
|
Every command accepts `--json` (machine-readable output, errors included) and `--cwd <dir>`.
|
|
26
32
|
Commands other than `init` look for `ddd-ts-kit.config.json` in the directory and its parents.
|
|
27
33
|
Exit codes: `0` success, `1` violations, stale documentation or, under `--strict`, a commit over
|
|
@@ -41,13 +47,18 @@ ddd-ts-kit init [--http express|fastify|nest|none]
|
|
|
41
47
|
[--broker none|rabbitmq|kafka|nats|redis|custom] [--cache none|redis] [--audit on|off]
|
|
42
48
|
[--errors none|sentry] [--logger stdout|pino|winston]
|
|
43
49
|
[--style declared|explicit] [--assembly barrel|discovery]
|
|
50
|
+
[--package-manager npm|pnpm]
|
|
44
51
|
[--allow-no-outbox "<reason>"] [--import-alias '$<name>/']
|
|
45
52
|
[--context <name>:<core|supporting|generic>]...
|
|
46
53
|
[--dry-run] [--force]
|
|
47
54
|
```
|
|
48
55
|
|
|
49
56
|
Works in an empty directory or an existing project. An existing file is never replaced without
|
|
50
|
-
`--force`; it is reported as skipped.
|
|
57
|
+
`--force`; it is reported as skipped. `init` also writes the generated contracts as the scripts
|
|
58
|
+
of the project write them for a project without a route or an integration event of its own
|
|
59
|
+
(`openapi/openapi.json`, `docs/integration/asyncapi.json` and `event-catalog.md`), so that the
|
|
60
|
+
first commit holds them and `docs:check` passes at once; a contract that is already there is
|
|
61
|
+
left alone, `--force` included. An existing `package.json` is merged: missing scripts and
|
|
51
62
|
dependencies are added, yours are kept and mentioned in the notes. Run again later, `init` keeps
|
|
52
63
|
the stack recorded in the config.
|
|
53
64
|
|
|
@@ -57,6 +68,18 @@ the cache in the process, the audit trail `on` when there is an ORM, unexpected
|
|
|
57
68
|
nowhere (`--errors none`), JSON lines on the standard output (`--logger stdout`), and the
|
|
58
69
|
`declared` style with a `barrel` wherever the declarations are read: with `--di tsyringe`.
|
|
59
70
|
|
|
71
|
+
**Package manager.** `pnpm` unless `--package-manager npm`: every script, pipeline, hook, the
|
|
72
|
+
Dockerfile, the guidance and the agent permissions are written in the dialect of the one chosen,
|
|
73
|
+
recorded under `stack.packageManager`. pnpm is pinned in `package.json` and provided by corepack;
|
|
74
|
+
`pnpm-workspace.yaml` says that no dependency runs a build script unless allowed by name. Both are
|
|
75
|
+
proven by a real install of a generated project, its build and its `verify`. The kit is installed
|
|
76
|
+
from the registry either way.
|
|
77
|
+
|
|
78
|
+
**Pipelines.** A pull or merge request runs the unit specs, the integration specs and the lint of
|
|
79
|
+
the contexts its change reaches through the context map (`ddd-ts-kit affected`); types,
|
|
80
|
+
architecture, import graph, dead code, end to end, build and documents always run on the whole
|
|
81
|
+
project, and the default branch and the nightly schedule run everything.
|
|
82
|
+
|
|
60
83
|
**Two styles.** In the `declared` style each class says what it is with a decorator of
|
|
61
84
|
`@ddd-ts-kit/kernel/declarations` (`@Requires` or `@Public` on a command or a query,
|
|
62
85
|
`@CommandHandler`, `@QueryHandler`, `@IntegrationEventHandler`, `@DomainEventHandler`, `@Scheduled`,
|
|
@@ -713,8 +736,8 @@ npm run clean:self --workspace ddd-ts-kit # the clean/* rules on this pack
|
|
|
713
736
|
npm run clean:packages --workspace ddd-ts-kit # the same rules on the sources of every other package
|
|
714
737
|
```
|
|
715
738
|
|
|
716
|
-
The slow suite lives in `test/e2e/`, in
|
|
717
|
-
generates every project with every kind, a job on an interval and one on a cron expression with a
|
|
739
|
+
The slow suite lives in `test/e2e/`, in its spec files and their support files; but for the
|
|
740
|
+
`first-minute` specs it generates every project with every kind, a job on an interval and one on a cron expression with a
|
|
718
741
|
time zone, `adapter --decorators`, `generate service` and `generate worker` included. It runs in
|
|
719
742
|
the process, without a container:
|
|
720
743
|
|
|
@@ -738,6 +761,23 @@ the process, without a container:
|
|
|
738
761
|
`--authz rebac --broker rabbitmq --ci gitlab`; and hand wiring (`--di manual`) on
|
|
739
762
|
`--authz abac --orm knex` and on
|
|
740
763
|
`--http fastify --orm knex --broker rabbitmq --cache redis --errors sentry --logger winston`.
|
|
764
|
+
- `first-minute.spec.ts`, `first-minute-proven.spec.ts`, `first-minute-no-context.spec.ts` and
|
|
765
|
+
`first-minute-two-contexts.spec.ts`: a
|
|
766
|
+
project is green from its first minute, before anything is generated. The first runs the quick
|
|
767
|
+
start of the root README line by line as it is written, on pnpm and, in the words the README
|
|
768
|
+
gives for it, on npm: `init` alone, the install and the `verify` the note of `init` names (also
|
|
769
|
+
held to the README and the `CLAUDE.md` of the project), then a context, a second one downstream
|
|
770
|
+
of it, a use case with its route, `docs:generate`, with a `verify` at each step; and the
|
|
771
|
+
sequence the defect of 0.1.0 was reported with, contexts asked of `init`. The second does the
|
|
772
|
+
same on the seven other proven stacks, one package manager each in turn: no context, one, two
|
|
773
|
+
with an upstream, a first use case. Both install for real from the packed kit and run in the
|
|
774
|
+
package manager jobs of the pipeline (`ci:test:managers`). The last two take every stack the
|
|
775
|
+
workspace can run, installed as a published kit would be, with no context and with two: no
|
|
776
|
+
finding of the four analyzers, specs that pass, a build, and the contracts `init` wrote equal to
|
|
777
|
+
what the scripts of the project generate.
|
|
778
|
+
- `package-managers.spec.ts`: one project per package manager on the default stack and on NestJS
|
|
779
|
+
with Prisma, every kind generated, installed for real from the packed kit: the frozen install of
|
|
780
|
+
a pipeline, the build, `verify`, and `affected` from the installed CLI.
|
|
741
781
|
- `first-class.spec.ts`: the first-class stack, `--validation class-validator --orm knex --authn
|
|
742
782
|
keycloak --authz rebac --cache redis --audit on --errors sentry --logger pino --style declared`
|
|
743
783
|
(legacy decorator mode), three times, with `--broker redis` (one server for the cache and the
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The paths that differ between `base` and `head`, relative to the project at `root`; a path of
|
|
3
|
+
* the repository outside the project keeps a leading `../`. A rename is its old path and its new
|
|
4
|
+
* one. Undefined when git cannot tell (not a repository, an unknown ref, a shallow clone without
|
|
5
|
+
* the base): the caller then selects everything.
|
|
6
|
+
*/
|
|
7
|
+
export declare function changedPaths(root: string, base: string, head: string): string[] | undefined;
|
|
8
|
+
//# sourceMappingURL=changed-paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changed-paths.d.ts","sourceRoot":"","sources":["../../src/affected/changed-paths.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAc3F"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { runGit } from '../commit/run-git.js';
|
|
2
|
+
/**
|
|
3
|
+
* The paths that differ between `base` and `head`, relative to the project at `root`; a path of
|
|
4
|
+
* the repository outside the project keeps a leading `../`. A rename is its old path and its new
|
|
5
|
+
* one. Undefined when git cannot tell (not a repository, an unknown ref, a shallow clone without
|
|
6
|
+
* the base): the caller then selects everything.
|
|
7
|
+
*/
|
|
8
|
+
export function changedPaths(root, base, head) {
|
|
9
|
+
const prefix = runGit(root, ['rev-parse', '--show-prefix'])?.trim();
|
|
10
|
+
// Three dots would need the history between the two; the merge base is asked for and used when the clone has it.
|
|
11
|
+
const from = runGit(root, ['merge-base', base, head])?.trim() || base;
|
|
12
|
+
const diff = runGit(root, ['diff', '--name-only', '--no-renames', '-z', from, head]);
|
|
13
|
+
if (prefix === undefined || diff === undefined) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
return diff
|
|
17
|
+
.split('\0')
|
|
18
|
+
.filter((file) => file !== '')
|
|
19
|
+
.map((file) => (file.startsWith(prefix) ? file.slice(prefix.length) : `../${file}`));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=changed-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changed-paths.js","sourceRoot":"","sources":["../../src/affected/changed-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,IAAY,EAAE,IAAY;IACnE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IACpE,iHAAiH;IACjH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;IACtE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAErF,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,IAAI;SACR,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;SAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;AACzF,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Config } from '../config/index.js';
|
|
2
|
+
/** Every context that declares `context` as an upstream, directly or through another: the context map read as a dependency graph. */
|
|
3
|
+
export declare function downstreamsOf(config: Config, context: string): string[];
|
|
4
|
+
//# sourceMappingURL=downstreams-of.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"downstreams-of.d.ts","sourceRoot":"","sources":["../../src/affected/downstreams-of.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,qIAAqI;AACrI,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBvE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Every context that declares `context` as an upstream, directly or through another: the context map read as a dependency graph. */
|
|
2
|
+
export function downstreamsOf(config, context) {
|
|
3
|
+
const reached = new Set();
|
|
4
|
+
const pending = [context];
|
|
5
|
+
for (let current = pending.pop(); current !== undefined; current = pending.pop()) {
|
|
6
|
+
for (const [name, { upstreams }] of Object.entries(config.contexts)) {
|
|
7
|
+
if (!reached.has(name) && upstreams.some((upstream) => upstream.context === current)) {
|
|
8
|
+
reached.add(name);
|
|
9
|
+
pending.push(name);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
reached.delete(context);
|
|
14
|
+
return [...reached];
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=downstreams-of.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"downstreams-of.js","sourceRoot":"","sources":["../../src/affected/downstreams-of.ts"],"names":[],"mappings":"AAEA,qIAAqI;AACrI,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,OAAe;IAC3D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;IAE1B,KAAK,IAAI,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,KAAK,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QACjF,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,CAAC;gBACrF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAExB,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Config } from '../config/index.js';
|
|
2
|
+
import type { Selection } from './selection.js';
|
|
3
|
+
/** The whole project: no context left out, which is what the default branch and the nightly run always get. */
|
|
4
|
+
export declare function everything(config: Config, reason: string): Selection;
|
|
5
|
+
//# sourceMappingURL=everything.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"everything.d.ts","sourceRoot":"","sources":["../../src/affected/everything.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,+GAA+G;AAC/G,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAEpE"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** The whole project: no context left out, which is what the default branch and the nightly run always get. */
|
|
2
|
+
export function everything(config, reason) {
|
|
3
|
+
return { scope: 'all', reason, contexts: Object.keys(config.contexts), specs: ['**/*.spec.ts'], leftOut: [] };
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=everything.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"everything.js","sourceRoot":"","sources":["../../src/affected/everything.ts"],"names":[],"mappings":"AAGA,+GAA+G;AAC/G,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,MAAc;IACvD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAChH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Selection } from './selection.js';
|
|
2
|
+
/**
|
|
3
|
+
* The selection for a reader (`text`), as data (`json`), or as `key=value` lines: `github` for
|
|
4
|
+
* `$GITHUB_OUTPUT`, `env` (keys in upper case behind `AFFECTED_`) for a GitLab `dotenv` report.
|
|
5
|
+
* The keys: `scope` (`all`, `contexts` or `none`); `contexts`, comma separated, which the test
|
|
6
|
+
* runner reads as `DDD_TS_KIT_AFFECTED` (empty for `all`: nothing is left out); `args`, the
|
|
7
|
+
* arguments a partial run adds to the test runner; `lint`, the ones it adds to the linter.
|
|
8
|
+
*/
|
|
9
|
+
export declare function formatSelection(selection: Selection, format: string): string;
|
|
10
|
+
//# sourceMappingURL=format-selection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-selection.d.ts","sourceRoot":"","sources":["../../src/affected/format-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAMhD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAc5E"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** Lets a partial run pass when a selected context has no spec of one kind. */
|
|
2
|
+
const PARTIAL_RUN = '--passWithNoTests';
|
|
3
|
+
const ENV_PREFIX = 'AFFECTED_';
|
|
4
|
+
/**
|
|
5
|
+
* The selection for a reader (`text`), as data (`json`), or as `key=value` lines: `github` for
|
|
6
|
+
* `$GITHUB_OUTPUT`, `env` (keys in upper case behind `AFFECTED_`) for a GitLab `dotenv` report.
|
|
7
|
+
* The keys: `scope` (`all`, `contexts` or `none`); `contexts`, comma separated, which the test
|
|
8
|
+
* runner reads as `DDD_TS_KIT_AFFECTED` (empty for `all`: nothing is left out); `args`, the
|
|
9
|
+
* arguments a partial run adds to the test runner; `lint`, the ones it adds to the linter.
|
|
10
|
+
*/
|
|
11
|
+
export function formatSelection(selection, format) {
|
|
12
|
+
if (format === 'json') {
|
|
13
|
+
return JSON.stringify(selection, null, 2);
|
|
14
|
+
}
|
|
15
|
+
if (format === 'text') {
|
|
16
|
+
return text(selection);
|
|
17
|
+
}
|
|
18
|
+
const key = (name) => (format === 'env' ? `${ENV_PREFIX}${name.toUpperCase()}` : name);
|
|
19
|
+
return Object.entries(values(selection))
|
|
20
|
+
.map(([name, value]) => `${key(name)}=${value}`)
|
|
21
|
+
.join('\n');
|
|
22
|
+
}
|
|
23
|
+
function values(selection) {
|
|
24
|
+
const partial = selection.scope === 'contexts';
|
|
25
|
+
return {
|
|
26
|
+
scope: selection.scope,
|
|
27
|
+
contexts: partial ? selection.contexts.join(',') : '',
|
|
28
|
+
args: partial ? PARTIAL_RUN : '',
|
|
29
|
+
lint: selection.leftOut.map((directory) => `--ignore-pattern ${directory}`).join(' '),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function text(selection) {
|
|
33
|
+
if (selection.scope === 'all') {
|
|
34
|
+
return `Everything is affected: ${selection.reason}.`;
|
|
35
|
+
}
|
|
36
|
+
if (selection.scope === 'none') {
|
|
37
|
+
return `Nothing that runs is affected: ${selection.reason}.`;
|
|
38
|
+
}
|
|
39
|
+
return [
|
|
40
|
+
`Affected contexts: ${selection.contexts.join(', ')} (${selection.reason}).`,
|
|
41
|
+
`Specs: ${selection.specs.join(' ')}`,
|
|
42
|
+
`Left to the default branch: ${selection.leftOut.join(' ')}`,
|
|
43
|
+
].join('\n');
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=format-selection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-selection.js","sourceRoot":"","sources":["../../src/affected/format-selection.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAC/E,MAAM,WAAW,GAAG,mBAAmB,CAAC;AACxC,MAAM,UAAU,GAAG,WAAW,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,SAAoB,EAAE,MAAc;IAClE,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEvG,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACrC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;SAC/C,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,MAAM,CAAC,SAAoB;IAClC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,KAAK,UAAU,CAAC;IAE/C,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;QACrD,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;QAChC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;KACtF,CAAC;AACJ,CAAC;AAED,SAAS,IAAI,CAAC,SAAoB;IAChC,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QAC9B,OAAO,2BAA2B,SAAS,CAAC,MAAM,GAAG,CAAC;IACxD,CAAC;IAED,IAAI,SAAS,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QAC/B,OAAO,kCAAkC,SAAS,CAAC,MAAM,GAAG,CAAC;IAC/D,CAAC;IAED,OAAO;QACL,sBAAsB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,MAAM,IAAI;QAC5E,UAAU,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACrC,+BAA+B,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;KAC7D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** What one changed path reaches: one context (its specs alone when only its tests changed), everything, or nothing that runs. */
|
|
2
|
+
export type PathReach = {
|
|
3
|
+
readonly kind: 'context';
|
|
4
|
+
readonly context: string;
|
|
5
|
+
readonly testsOnly: boolean;
|
|
6
|
+
} | {
|
|
7
|
+
readonly kind: 'everything';
|
|
8
|
+
readonly reason: string;
|
|
9
|
+
} | {
|
|
10
|
+
readonly kind: 'nothing';
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=path-reach.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-reach.d.ts","sourceRoot":"","sources":["../../src/affected/path-reach.ts"],"names":[],"mappings":"AAAA,kIAAkI;AAClI,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GACnF;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-reach.js","sourceRoot":"","sources":["../../src/affected/path-reach.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Config } from '../config/index.js';
|
|
2
|
+
import type { PathReach } from './path-reach.js';
|
|
3
|
+
/**
|
|
4
|
+
* What a changed path, relative to the project root, reaches. A path under a declared context
|
|
5
|
+
* reaches that context; a document reaches nothing; anything else (the shared kernel, the
|
|
6
|
+
* platform, the composition root, the configuration, the lockfile, the tooling, the pipeline, a
|
|
7
|
+
* context the config does not declare, a path nobody listed) reaches everything.
|
|
8
|
+
*/
|
|
9
|
+
export declare function reachOf(config: Config, file: string): PathReach;
|
|
10
|
+
//# sourceMappingURL=reach-of.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reach-of.d.ts","sourceRoot":"","sources":["../../src/affected/reach-of.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAKjD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAY/D"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** Written for people and agents, never loaded by a spec, a build or a tool of the pipeline other than the documents gate, which always runs. */
|
|
2
|
+
const DOCUMENT_DIRECTORIES = ['docs/', 'openapi/', '.claude/'];
|
|
3
|
+
/**
|
|
4
|
+
* What a changed path, relative to the project root, reaches. A path under a declared context
|
|
5
|
+
* reaches that context; a document reaches nothing; anything else (the shared kernel, the
|
|
6
|
+
* platform, the composition root, the configuration, the lockfile, the tooling, the pipeline, a
|
|
7
|
+
* context the config does not declare, a path nobody listed) reaches everything.
|
|
8
|
+
*/
|
|
9
|
+
export function reachOf(config, file) {
|
|
10
|
+
const contexts = `${config.contextsDir}/`;
|
|
11
|
+
if (file.startsWith(contexts)) {
|
|
12
|
+
return contextReach(config, file.slice(contexts.length));
|
|
13
|
+
}
|
|
14
|
+
if (isDocument(file)) {
|
|
15
|
+
return { kind: 'nothing' };
|
|
16
|
+
}
|
|
17
|
+
return { kind: 'everything', reason: `${file} is shared by every context` };
|
|
18
|
+
}
|
|
19
|
+
function contextReach(config, inside) {
|
|
20
|
+
const [context = '', ...rest] = inside.split('/');
|
|
21
|
+
if (rest.length === 0 || config.contexts[context] === undefined) {
|
|
22
|
+
return { kind: 'everything', reason: `${config.contextsDir}/${inside} belongs to no declared context` };
|
|
23
|
+
}
|
|
24
|
+
return { kind: 'context', context, testsOnly: rest[0] === 'test' };
|
|
25
|
+
}
|
|
26
|
+
function isDocument(file) {
|
|
27
|
+
const atRoot = !file.includes('/');
|
|
28
|
+
return (atRoot && file.endsWith('.md')) || DOCUMENT_DIRECTORIES.some((directory) => file.startsWith(directory));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=reach-of.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reach-of.js","sourceRoot":"","sources":["../../src/affected/reach-of.ts"],"names":[],"mappings":"AAGA,iJAAiJ;AACjJ,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,MAAc,EAAE,IAAY;IAClD,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,WAAW,GAAG,CAAC;IAE1C,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,6BAA6B,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,YAAY,CAAC,MAAc,EAAE,MAAc;IAClD,MAAM,CAAC,OAAO,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;QAChE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,iCAAiC,EAAE,CAAC;IAC1G,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;AACrE,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAEnC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAClH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Config } from '../config/index.js';
|
|
2
|
+
import type { Selection } from './selection.js';
|
|
3
|
+
/**
|
|
4
|
+
* What a change set has to run. A context whose sources changed is selected with every context
|
|
5
|
+
* downstream of it; a context whose tests alone changed is selected alone (no other context may
|
|
6
|
+
* import them); one path that is shared, or that nobody listed, selects everything. The
|
|
7
|
+
* selection is never narrower than the declared dependencies: `context/declared-relationship`
|
|
8
|
+
* keeps the imports inside them, and that rule runs on the whole project in every pipeline.
|
|
9
|
+
*/
|
|
10
|
+
export declare function selectAffected(config: Config, changed: readonly string[]): Selection;
|
|
11
|
+
//# sourceMappingURL=select-affected.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-affected.d.ts","sourceRoot":"","sources":["../../src/affected/select-affected.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAKjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CA2BpF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { downstreamsOf } from './downstreams-of.js';
|
|
2
|
+
import { everything } from './everything.js';
|
|
3
|
+
import { reachOf } from './reach-of.js';
|
|
4
|
+
/**
|
|
5
|
+
* What a change set has to run. A context whose sources changed is selected with every context
|
|
6
|
+
* downstream of it; a context whose tests alone changed is selected alone (no other context may
|
|
7
|
+
* import them); one path that is shared, or that nobody listed, selects everything. The
|
|
8
|
+
* selection is never narrower than the declared dependencies: `context/declared-relationship`
|
|
9
|
+
* keeps the imports inside them, and that rule runs on the whole project in every pipeline.
|
|
10
|
+
*/
|
|
11
|
+
export function selectAffected(config, changed) {
|
|
12
|
+
const reaches = changed.map((file) => reachOf(config, file));
|
|
13
|
+
const shared = reaches.find((reach) => reach.kind === 'everything');
|
|
14
|
+
if (shared !== undefined) {
|
|
15
|
+
return everything(config, shared.reason);
|
|
16
|
+
}
|
|
17
|
+
const selected = new Set(reaches.flatMap((reach) => contextsOf(config, reach)));
|
|
18
|
+
const declared = Object.keys(config.contexts);
|
|
19
|
+
const contexts = declared.filter((context) => selected.has(context));
|
|
20
|
+
if (contexts.length === 0) {
|
|
21
|
+
const reason = changed.length === 0 ? 'no file changed' : 'only documents changed';
|
|
22
|
+
return { scope: 'none', reason, contexts: [], specs: [], leftOut: [] };
|
|
23
|
+
}
|
|
24
|
+
const directory = (context) => `${config.contextsDir}/${context}/`;
|
|
25
|
+
return {
|
|
26
|
+
scope: contexts.length === declared.length ? 'all' : 'contexts',
|
|
27
|
+
reason: 'the changed contexts and the contexts downstream of them in the context map',
|
|
28
|
+
contexts,
|
|
29
|
+
specs: [...contexts.map((context) => `${directory(context)}**/*.spec.ts`), `!${config.contextsDir}/**`],
|
|
30
|
+
leftOut: declared.filter((context) => !selected.has(context)).map(directory),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function contextsOf(config, reach) {
|
|
34
|
+
if (reach.kind !== 'context') {
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
return reach.testsOnly ? [reach.context] : [reach.context, ...downstreamsOf(config, reach.context)];
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=select-affected.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-affected.js","sourceRoot":"","sources":["../../src/affected/select-affected.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,OAA0B;IACvE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;IAEpE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAErE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAEnF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzE,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,OAAe,EAAU,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO,GAAG,CAAC;IAEnF,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU;QAC/D,MAAM,EAAE,6EAA6E;QACrF,QAAQ;QACR,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC;QACvG,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;KAC7E,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,MAAc,EAAE,KAAgB;IAClD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACtG,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** What a pull request has to run for a change set: the bounded contexts it reaches, and the ones it leaves to the default branch. */
|
|
2
|
+
export interface Selection {
|
|
3
|
+
/** How much of the project the change set reaches: everything, some bounded contexts, or nothing that runs. */
|
|
4
|
+
readonly scope: 'all' | 'contexts' | 'none';
|
|
5
|
+
/** Why: the path that widened the selection to everything, or how the contexts were reached. */
|
|
6
|
+
readonly reason: string;
|
|
7
|
+
/** The contexts whose specs run and whose coverage is held, in the order of the config file; every context when the scope is `all`. */
|
|
8
|
+
readonly contexts: readonly string[];
|
|
9
|
+
/** The spec globs that run; what lives outside the contexts (platform, shared kernel, `test/`) runs with any of them. */
|
|
10
|
+
readonly specs: readonly string[];
|
|
11
|
+
/** The directories of the contexts left out, each ending in `/`: their specs are not run and their sources are not linted. */
|
|
12
|
+
readonly leftOut: readonly string[];
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=selection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../src/affected/selection.ts"],"names":[],"mappings":"AAAA,sIAAsI;AACtI,MAAM,WAAW,SAAS;IACxB,+GAA+G;IAC/G,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,GAAG,MAAM,CAAC;IAC5C,gGAAgG;IAChG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uIAAuI;IACvI,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,yHAAyH;IACzH,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,8HAA8H;IAC9H,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection.js","sourceRoot":"","sources":["../../src/affected/selection.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Command } from './command.js';
|
|
2
|
+
/**
|
|
3
|
+
* `affected`: what a pull request has to run, read from the context map and the paths that
|
|
4
|
+
* differ between two commits. Without `--base` everything is selected, which is what the
|
|
5
|
+
* default branch runs; so is it whenever git cannot give the difference.
|
|
6
|
+
*/
|
|
7
|
+
export declare const affectedCommand: Command;
|
|
8
|
+
//# sourceMappingURL=affected.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"affected.d.ts","sourceRoot":"","sources":["../../src/commands/affected.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAI5C;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,OAkB7B,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { changedPaths } from '../affected/changed-paths.js';
|
|
2
|
+
import { everything } from '../affected/everything.js';
|
|
3
|
+
import { formatSelection } from '../affected/format-selection.js';
|
|
4
|
+
import { selectAffected } from '../affected/select-affected.js';
|
|
5
|
+
import { CliError } from '../cli-error.js';
|
|
6
|
+
import { readConfig } from '../config/index.js';
|
|
7
|
+
import { Arguments } from './arguments.js';
|
|
8
|
+
const FORMATS = ['text', 'json', 'github', 'env'];
|
|
9
|
+
/**
|
|
10
|
+
* `affected`: what a pull request has to run, read from the context map and the paths that
|
|
11
|
+
* differ between two commits. Without `--base` everything is selected, which is what the
|
|
12
|
+
* default branch runs; so is it whenever git cannot give the difference.
|
|
13
|
+
*/
|
|
14
|
+
export const affectedCommand = (argv, io) => {
|
|
15
|
+
const args = Arguments.parse(argv, {
|
|
16
|
+
base: { type: 'string' },
|
|
17
|
+
head: { type: 'string' },
|
|
18
|
+
format: { type: 'string' },
|
|
19
|
+
});
|
|
20
|
+
const format = args.json ? 'json' : (args.text('format') ?? 'text');
|
|
21
|
+
if (!FORMATS.includes(format)) {
|
|
22
|
+
throw new CliError(`Unknown value "${format}" for --format.`, `Use one of: ${FORMATS.join(', ')}.`);
|
|
23
|
+
}
|
|
24
|
+
const root = args.projectRoot;
|
|
25
|
+
io.out(formatSelection(selectionFor(root, readConfig(root).config, args), format));
|
|
26
|
+
return 0;
|
|
27
|
+
};
|
|
28
|
+
function selectionFor(root, config, args) {
|
|
29
|
+
const base = args.text('base');
|
|
30
|
+
if (base === undefined || base === '') {
|
|
31
|
+
return everything(config, 'no base to compare with');
|
|
32
|
+
}
|
|
33
|
+
const changed = changedPaths(root, base, args.text('head') ?? 'HEAD');
|
|
34
|
+
return changed === undefined
|
|
35
|
+
? everything(config, `git cannot tell what changed since ${base}`)
|
|
36
|
+
: selectAffected(config, changed);
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=affected.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"affected.js","sourceRoot":"","sources":["../../src/commands/affected.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAe,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAElD;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAY,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;IACnD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE;QACjC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC3B,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC;IAEpE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,QAAQ,CAAC,kBAAkB,MAAM,iBAAiB,EAAE,eAAe,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtG,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;IAE9B,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAEnF,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,SAAS,YAAY,CAAC,IAAY,EAAE,MAAc,EAAE,IAAe;IACjE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE/B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QACtC,OAAO,UAAU,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC;IAEtE,OAAO,OAAO,KAAK,SAAS;QAC1B,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,sCAAsC,IAAI,EAAE,CAAC;QAClE,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,eAAO,MAAM,WAAW,EAAE,OA8BzB,CAAC"}
|
package/dist/commands/docs.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { readConfig } from '../config/index.js';
|
|
2
2
|
import { writeDocs } from '../docs/write-docs.js';
|
|
3
|
+
import { stopIgnoringValidation } from '../generate/stop-ignoring-validation.js';
|
|
3
4
|
import { Workspace } from '../workspace/index.js';
|
|
4
5
|
import { Arguments } from './arguments.js';
|
|
5
6
|
import { printReport } from './print-report.js';
|
|
@@ -12,6 +13,7 @@ export const docsCommand = (argv, io) => {
|
|
|
12
13
|
const ws = new Workspace(root, false);
|
|
13
14
|
writeDocs(ws, readConfig(root).config);
|
|
14
15
|
if (!args.flag('check')) {
|
|
16
|
+
stopIgnoringValidation(ws, readConfig(root).config);
|
|
15
17
|
printReport(io, args, ws.commit(args.flag('dry-run')));
|
|
16
18
|
return 0;
|
|
17
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,CAAC,MAAM,WAAW,GAAY,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;IAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE;QACjC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;QAC1C,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;KAC/C,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;IAC9B,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAEtC,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;IAEvC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAEvD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAErD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,8CAA8C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpH,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,CAAC,MAAM,WAAW,GAAY,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;IAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE;QACjC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;QAC1C,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;KAC/C,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;IAC9B,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAEtC,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;IAEvC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,sBAAsB,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;QACpD,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAEvD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAErD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,8CAA8C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpH,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,eAAO,MAAM,eAAe,EAAE,OAsB7B,CAAC"}
|
|
@@ -8,6 +8,7 @@ import { findKind } from '../generate/find-kind.js';
|
|
|
8
8
|
import { KINDS } from '../generate/kinds.js';
|
|
9
9
|
import { refreshBarrels } from '../generate/refresh-barrels.js';
|
|
10
10
|
import { refuseSharedWrites } from '../generate/refuse-shared-writes.js';
|
|
11
|
+
import { stopIgnoringValidation } from '../generate/stop-ignoring-validation.js';
|
|
11
12
|
import { toName } from '../naming/index.js';
|
|
12
13
|
import { Workspace } from '../workspace/index.js';
|
|
13
14
|
import { Arguments } from './arguments.js';
|
|
@@ -25,6 +26,10 @@ export const generateCommand = (argv, io) => {
|
|
|
25
26
|
if (args.flag('local-only')) {
|
|
26
27
|
refuseSharedWrites(ws, config, kind.positionals[0] === 'context' ? toName(rest[0] ?? '').kebab : undefined);
|
|
27
28
|
}
|
|
29
|
+
else {
|
|
30
|
+
// A worker confined to its context leaves knip.json alone: the next command on the trunk, or `docs`, does this.
|
|
31
|
+
stopIgnoringValidation(ws, config);
|
|
32
|
+
}
|
|
28
33
|
printReport(io, args, ws.commit(args.flag('dry-run')));
|
|
29
34
|
return 0;
|
|
30
35
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAuB5C,eAAO,MAAM,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAuB5C,eAAO,MAAM,WAAW,EAAE,OAkCzB,CAAC"}
|
package/dist/commands/init.js
CHANGED
|
@@ -25,7 +25,10 @@ const STACK_FLAGS = [
|
|
|
25
25
|
];
|
|
26
26
|
export const initCommand = (argv, io) => {
|
|
27
27
|
const args = Arguments.parse(argv, {
|
|
28
|
-
...Object.fromEntries([...STACK_FLAGS, 'docs-ui', 'allow-no-outbox', 'import-alias'].map((flag) => [
|
|
28
|
+
...Object.fromEntries([...STACK_FLAGS, 'docs-ui', 'allow-no-outbox', 'import-alias', 'package-manager'].map((flag) => [
|
|
29
|
+
flag,
|
|
30
|
+
{ type: 'string' },
|
|
31
|
+
])),
|
|
29
32
|
context: { type: 'string', multiple: true },
|
|
30
33
|
'dry-run': { type: 'boolean', default: false },
|
|
31
34
|
force: { type: 'boolean', default: false },
|
|
@@ -45,11 +48,13 @@ function stackOptions(args) {
|
|
|
45
48
|
const docsUi = args.text('docs-ui');
|
|
46
49
|
const allowNoOutbox = args.text('allow-no-outbox');
|
|
47
50
|
const importAlias = args.text('import-alias');
|
|
51
|
+
const packageManager = args.text('package-manager');
|
|
48
52
|
return {
|
|
49
53
|
...args.texts(STACK_FLAGS),
|
|
50
54
|
...(docsUi === undefined ? {} : { docsUi }),
|
|
51
55
|
...(allowNoOutbox === undefined ? {} : { allowNoOutbox }),
|
|
52
56
|
...(importAlias === undefined ? {} : { importAlias }),
|
|
57
|
+
...(packageManager === undefined ? {} : { packageManager }),
|
|
53
58
|
};
|
|
54
59
|
}
|
|
55
60
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAgB,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,GAAG;IAClB,MAAM;IACN,YAAY;IACZ,IAAI;IACJ,OAAO;IACP,KAAK;IACL,UAAU;IACV,QAAQ;IACR,IAAI;IACJ,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,UAAU;CACF,CAAC;AAEX,MAAM,CAAC,MAAM,WAAW,GAAY,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;IAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE;QACjC,GAAG,MAAM,CAAC,WAAW,CACnB,CAAC,GAAG,WAAW,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAgB,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,GAAG;IAClB,MAAM;IACN,YAAY;IACZ,IAAI;IACJ,OAAO;IACP,KAAK;IACL,UAAU;IACV,QAAQ;IACR,IAAI;IACJ,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,UAAU;CACF,CAAC;AAEX,MAAM,CAAC,MAAM,WAAW,GAAY,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;IAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE;QACjC,GAAG,MAAM,CAAC,WAAW,CACnB,CAAC,GAAG,WAAW,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9F,IAAI;YACJ,EAAE,IAAI,EAAE,QAAiB,EAAE;SAC5B,CAAC,CACH;QACD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3C,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;QAC9C,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;KAC3C,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,QAAQ,CAChB,wBAAwB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EACrD,6CAA6C,CAC9C,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,WAAW,CACT,EAAE,EACF,IAAI,EACJ,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAC5G,CAAC;IAEF,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,SAAS,YAAY,CAAC,IAAe;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAEpD,OAAO;QACL,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAC1B,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3C,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;QACzD,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QACrD,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC"}
|