@ddd-ts-kit/eslint-plugin 0.1.1 → 0.2.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.
Files changed (83) hide show
  1. package/README.md +3 -1
  2. package/dist/project/config.d.ts +4 -0
  3. package/dist/project/config.d.ts.map +1 -1
  4. package/dist/project/is-judged.d.ts +5 -0
  5. package/dist/project/is-judged.d.ts.map +1 -0
  6. package/dist/project/is-judged.js +7 -0
  7. package/dist/project/is-judged.js.map +1 -0
  8. package/dist/project/parse-config.d.ts.map +1 -1
  9. package/dist/project/parse-config.js +4 -0
  10. package/dist/project/parse-config.js.map +1 -1
  11. package/dist/project/resolve-import.d.ts.map +1 -1
  12. package/dist/project/resolve-import.js +4 -1
  13. package/dist/project/resolve-import.js.map +1 -1
  14. package/dist/project/specifier-suffix.d.ts +6 -0
  15. package/dist/project/specifier-suffix.d.ts.map +1 -0
  16. package/dist/project/specifier-suffix.js +8 -0
  17. package/dist/project/specifier-suffix.js.map +1 -0
  18. package/dist/project/to-alias.d.ts +3 -2
  19. package/dist/project/to-alias.d.ts.map +1 -1
  20. package/dist/project/to-alias.js +4 -3
  21. package/dist/project/to-alias.js.map +1 -1
  22. package/dist/rules/clean-one-export-per-file.js +7 -3
  23. package/dist/rules/clean-one-export-per-file.js.map +1 -1
  24. package/dist/rules/declarations-constructor-injection.d.ts +5 -0
  25. package/dist/rules/declarations-constructor-injection.d.ts.map +1 -0
  26. package/dist/rules/declarations-constructor-injection.js +80 -0
  27. package/dist/rules/declarations-constructor-injection.js.map +1 -0
  28. package/dist/rules/imports-alias-only.d.ts.map +1 -1
  29. package/dist/rules/imports-alias-only.js +7 -9
  30. package/dist/rules/imports-alias-only.js.map +1 -1
  31. package/dist/rules/imports-extension.d.ts +5 -0
  32. package/dist/rules/imports-extension.d.ts.map +1 -0
  33. package/dist/rules/imports-extension.js +45 -0
  34. package/dist/rules/imports-extension.js.map +1 -0
  35. package/dist/rules/ports-no-concrete-dependency.d.ts +3 -1
  36. package/dist/rules/ports-no-concrete-dependency.d.ts.map +1 -1
  37. package/dist/rules/ports-no-concrete-dependency.js +51 -3
  38. package/dist/rules/ports-no-concrete-dependency.js.map +1 -1
  39. package/dist/rules/rules.d.ts.map +1 -1
  40. package/dist/rules/rules.js +4 -0
  41. package/dist/rules/rules.js.map +1 -1
  42. package/dist/support/declarations/declared-roles.d.ts.map +1 -1
  43. package/dist/support/declarations/declared-roles.js +1 -0
  44. package/dist/support/declarations/declared-roles.js.map +1 -1
  45. package/dist/support/injection/language-types.d.ts +3 -0
  46. package/dist/support/injection/language-types.d.ts.map +1 -0
  47. package/dist/support/injection/language-types.js +20 -0
  48. package/dist/support/injection/language-types.js.map +1 -0
  49. package/dist/support/injection/not-classes.d.ts +4 -0
  50. package/dist/support/injection/not-classes.d.ts.map +1 -0
  51. package/dist/support/injection/not-classes.js +20 -0
  52. package/dist/support/injection/not-classes.js.map +1 -0
  53. package/dist/support/injection/parameter-reading.d.ts +9 -0
  54. package/dist/support/injection/parameter-reading.d.ts.map +1 -0
  55. package/dist/support/injection/parameter-reading.js +2 -0
  56. package/dist/support/injection/parameter-reading.js.map +1 -0
  57. package/dist/support/injection/read-parameter.d.ts +9 -0
  58. package/dist/support/injection/read-parameter.d.ts.map +1 -0
  59. package/dist/support/injection/read-parameter.js +41 -0
  60. package/dist/support/injection/read-parameter.js.map +1 -0
  61. package/dist/support/injection/written-name.d.ts +4 -0
  62. package/dist/support/injection/written-name.d.ts.map +1 -0
  63. package/dist/support/injection/written-name.js +13 -0
  64. package/dist/support/injection/written-name.js.map +1 -0
  65. package/dist/version.d.ts +1 -1
  66. package/dist/version.js +1 -1
  67. package/docs/rules/clean-one-export-per-file.md +1 -1
  68. package/docs/rules/context-declared-relationship.md +2 -2
  69. package/docs/rules/context-extractable.md +3 -3
  70. package/docs/rules/context-published-language-is-a-contract.md +1 -1
  71. package/docs/rules/context-published-language-only.md +2 -2
  72. package/docs/rules/declarations-constructor-injection.md +89 -0
  73. package/docs/rules/declarations-role-declared.md +15 -9
  74. package/docs/rules/domain-events-transactional-before-commit.md +1 -1
  75. package/docs/rules/imports-alias-only.md +10 -9
  76. package/docs/rules/imports-extension.md +83 -0
  77. package/docs/rules/layer-application-inward.md +3 -3
  78. package/docs/rules/layer-domain-purity.md +3 -3
  79. package/docs/rules/layer-infrastructure-no-presentation.md +2 -2
  80. package/docs/rules/layer-presentation-no-infrastructure.md +2 -2
  81. package/docs/rules/ports-no-concrete-dependency.md +4 -3
  82. package/docs/rules/test-no-mocks.md +1 -1
  83. package/package.json +1 -1
package/README.md CHANGED
@@ -121,14 +121,16 @@ is an error whatever the configured limit). `strict` sets every rule to `error`.
121
121
  | [`standard/no-parallel-interface`](docs/rules/standard-no-parallel-interface.md) | `ddd-ts-kit/standard-no-parallel-interface` | no declared `ILogger`, `UserContext`, `PaginatedResult`, `CronJob`, `ErrorTracker` and the like next to the standard interfaces of the kernel (`standardInterfaces` in the config) | `warn` | custom |
122
122
  | [`governance/recorded-deviation`](docs/rules/governance-recorded-deviation.md) | `ddd-ts-kit/governance-recorded-deviation` | every suppression names its rules and points to `ADR-<number>` after `--` | `error` | custom |
123
123
  | [`declarations/role-declared`](docs/rules/declarations-role-declared.md) | `ddd-ts-kit/declarations-role-declared` | declared style only: a role file exports a class carrying the decorator of its role, the `consumer` and `name` of a declaration are string literals, a domain event handler names its event as the event does, `domain/` carries no declaration decorator | `error` | custom |
124
+ | [`declarations/constructor-injection`](docs/rules/declarations-constructor-injection.md) | `ddd-ts-kit/declarations-constructor-injection` | declared style only: a class whose decorator lists no dependency types each constructor parameter by one class, with no `?`, default value, rest or destructuring; under `stack.dependencies: signature` a decorator carries no list (a list that repeats the constructor is removed by the fix, one that differs is reported) | `error` | custom |
124
125
  | [`ports/abstract-class`](docs/rules/ports-abstract-class.md) | `ddd-ts-kit/ports-abstract-class` | a port (`domain/repositories/*.repository.ts`, `application/ports/*.port.ts`) is an abstract class with abstract members only, never an interface | `error` | custom |
125
126
  | [`ports/implements-never-extends`](docs/rules/ports-implements-never-extends.md) | `ddd-ts-kit/ports-implements-never-extends` | an adapter (`@Repository`, `@Gateway`, `@Adapter`, `bind(Port).toClass(Class)`) implements its port and never extends it | `error` | custom |
126
127
  | [`ports/no-token-constant`](docs/rules/ports-no-token-constant.md) | `ddd-ts-kit/ports-no-token-constant` | a dependency is named by its port class: no token helper, symbol, string or constant, no token file | `error` | custom |
127
- | [`ports/no-concrete-dependency`](docs/rules/ports-no-concrete-dependency.md) | `ddd-ts-kit/ports-no-concrete-dependency` | a dependency list names nothing imported from `infrastructure/` or `test/fakes/` | `error` | custom |
128
+ | [`ports/no-concrete-dependency`](docs/rules/ports-no-concrete-dependency.md) | `ddd-ts-kit/ports-no-concrete-dependency` | a dependency list names nothing imported from `infrastructure/` or `test/fakes/`, and no constructor parameter of a declared class that lists nothing is typed by such a class | `error` | custom |
128
129
  | [`ports/value-import`](docs/rules/ports-value-import.md) | `ddd-ts-kit/ports-value-import` | a port named in a dependency list or given to `bind` is not a type-only import; fixable | `error` | custom |
129
130
  | [`scheduling/job-triggers-use-case`](docs/rules/scheduling-job-triggers-use-case.md) | `ddd-ts-kit/scheduling-job-triggers-use-case` | a job lives in `application/scheduling/*.job.ts`, implements `ScheduledJob`, sends a command, and touches neither a repository nor the model | `error` | custom |
130
131
  | [`scheduling/job-name`](docs/rules/scheduling-job-name.md) | `ddd-ts-kit/scheduling-job-name` | a job is named `<context>.<job-name>` by a string literal, and its `systemActor` carries that name | `error` | custom |
131
132
  | [`imports/alias-only`](docs/rules/imports-alias-only.md) | `ddd-ts-kit/imports-alias-only` | a file of the project is imported by its alias (`@/...`, `$test/...`, `$scripts/...`), never by a relative path, the same directory included; no `.` or `..` segment in an alias path; fixable | `error` | custom |
133
+ | [`imports/extension`](docs/rules/imports-extension.md) | `ddd-ts-kit/imports-extension` | an import of a file of the project ends as `importExtension` of the config says: no extension under `none`, `.js` under `js`; fixable | `error` | custom |
132
134
 
133
135
  `domain/*` and `application/*` ids are added by this plugin: the shape of a class needs a syntax
134
136
  tree, so the CLI checker has no equivalent. The `domain-events/*` ids are not among them: both tools
@@ -16,6 +16,8 @@ export interface Stack {
16
16
  readonly style: Style;
17
17
  /** How a declared context reaches the composition root: one generated barrel, or discovery of its role files. */
18
18
  readonly assembly: Assembly;
19
+ /** Where a declared class states what it depends on: its constructor signature, or the list of its decorator. A config that does not say is `listed`. */
20
+ readonly dependencies: 'signature' | 'listed';
19
21
  /** Kept as written: with `prisma` the generated client under `generated/` has an import alias of its own. */
20
22
  readonly orm: string;
21
23
  }
@@ -38,6 +40,8 @@ export interface Config {
38
40
  readonly sharedKernelDir: string;
39
41
  readonly platformDir: string;
40
42
  readonly importAlias: string;
43
+ /** `none` or `js`: whether an import of a file of the project ends with the extension of the emitted file. */
44
+ readonly importExtension: string;
41
45
  readonly contexts: Readonly<Record<string, ContextConfig>>;
42
46
  readonly rules: Readonly<Record<string, string>>;
43
47
  readonly domainAllowedPackages: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/project/config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAEhD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAED,MAAM,MAAM,KAAK,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5C,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE9C,6EAA6E;AAC7E,MAAM,WAAW,KAAK;IACpB,qIAAqI;IACrI,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,iHAAiH;IACjH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,6GAA6G;IAC7G,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,mFAAmF;AACnF,MAAM,WAAW,WAAW;IAC1B,kGAAkG;IAClG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAC;IAClD,QAAQ,CAAC,0BAA0B,EAAE,SAAS,MAAM,EAAE,CAAC;IACvD,QAAQ,CAAC,gCAAgC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kGAAkG;IAClG,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,gJAAgJ;IAChJ,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;CACvE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/project/config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAEhD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAED,MAAM,MAAM,KAAK,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5C,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE9C,6EAA6E;AAC7E,MAAM,WAAW,KAAK;IACpB,qIAAqI;IACrI,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,iHAAiH;IACjH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,yJAAyJ;IACzJ,QAAQ,CAAC,YAAY,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC9C,6GAA6G;IAC7G,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,mFAAmF;AACnF,MAAM,WAAW,WAAW;IAC1B,kGAAkG;IAClG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,8GAA8G;IAC9G,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAC;IAClD,QAAQ,CAAC,0BAA0B,EAAE,SAAS,MAAM,EAAE,CAAC;IACvD,QAAQ,CAAC,gCAAgC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kGAAkG;IAClG,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,gJAAgJ;IAChJ,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;CACvE"}
@@ -0,0 +1,5 @@
1
+ import type { AliasRoot } from './alias-root.js';
2
+ import type { LintedFile } from './linted-file.js';
3
+ /** A source under an aliased tree the team writes: the source root, the tests and the scripts. The import rules judge no other file. */
4
+ export declare function isJudged(roots: readonly AliasRoot[], file: LintedFile): boolean;
5
+ //# sourceMappingURL=is-judged.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-judged.d.ts","sourceRoot":"","sources":["../../src/project/is-judged.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAKnD,wIAAwI;AACxI,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAE/E"}
@@ -0,0 +1,7 @@
1
+ /** Written by a tool and never linted as project code. */
2
+ const BUILD_PRODUCTS = ['generated'];
3
+ /** A source under an aliased tree the team writes: the source root, the tests and the scripts. The import rules judge no other file. */
4
+ export function isJudged(roots, file) {
5
+ return roots.some(({ directory }) => !BUILD_PRODUCTS.includes(directory) && file.path.startsWith(`${directory}/`));
6
+ }
7
+ //# sourceMappingURL=is-judged.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-judged.js","sourceRoot":"","sources":["../../src/project/is-judged.ts"],"names":[],"mappings":"AAGA,0DAA0D;AAC1D,MAAM,cAAc,GAAG,CAAC,WAAW,CAAC,CAAC;AAErC,wIAAwI;AACxI,MAAM,UAAU,QAAQ,CAAC,KAA2B,EAAE,IAAgB;IACpE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;AACrH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-config.d.ts","sourceRoot":"","sources":["../../src/project/parse-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuE,MAAM,EAAE,MAAM,aAAa,CAAC;AAO/G,+GAA+G;AAC/G,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAkB1C;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAuBhD"}
1
+ {"version":3,"file":"parse-config.d.ts","sourceRoot":"","sources":["../../src/project/parse-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuE,MAAM,EAAE,MAAM,aAAa,CAAC;AAO/G,+GAA+G;AAC/G,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAmB1C;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAyBhD"}
@@ -6,6 +6,7 @@ const DEFAULT_LIMITS = { maxParameters: 3, maxFunctionLines: 30 };
6
6
  export const FUNCTION_LINES_CEILING = 100;
7
7
  const STYLES = ['declared', 'explicit'];
8
8
  const ASSEMBLIES = ['barrel', 'discovery'];
9
+ const DEPENDENCY_STATEMENTS = ['signature', 'listed'];
9
10
  const KERNEL = ['@ddd-ts-kit/kernel'];
10
11
  /** The application layer declares its permissions and policies with `@ddd-ts-kit/auth`, which imports the kernel only. */
11
12
  const APPLICATION = [...KERNEL, '@ddd-ts-kit/auth'];
@@ -29,6 +30,8 @@ export function parseConfig(raw) {
29
30
  sharedKernelDir: posix(text(source['sharedKernelDir'], `${sourceRoot}/shared-kernel`)),
30
31
  platformDir: posix(text(source['platformDir'], `${sourceRoot}/platform`)),
31
32
  importAlias: text(source['importAlias'], '@/'),
33
+ // A config without the key was written before it existed: its imports end with `.js`.
34
+ importExtension: text(source['importExtension'], 'js'),
32
35
  contexts: mapEntries(source['contexts'], parseContext),
33
36
  rules: mapEntries(source['rules'], String),
34
37
  domainAllowedPackages: strings(source['domainAllowedPackages'], KERNEL),
@@ -45,6 +48,7 @@ function parseStack(value) {
45
48
  return {
46
49
  style: oneOf(STYLES, raw['style'], 'explicit'),
47
50
  assembly: oneOf(ASSEMBLIES, raw['assembly'], 'barrel'),
51
+ dependencies: oneOf(DEPENDENCY_STATEMENTS, raw['dependencies'], 'listed'),
48
52
  orm: text(raw['orm'], 'drizzle'),
49
53
  };
50
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parse-config.js","sourceRoot":"","sources":["../../src/project/parse-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,cAAc,GAAW,EAAE,aAAa,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;AAE1E,+GAA+G;AAC/G,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAE1C,MAAM,MAAM,GAAqB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAE1D,MAAM,UAAU,GAAwB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAEhE,MAAM,MAAM,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAEtC,0HAA0H;AAC1H,MAAM,WAAW,GAAG,CAAC,GAAG,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAEpD,MAAM,gBAAgB,GAAgD;IACpE,GAAG,EAAE,CAAC,KAAK,CAAC;IACZ,iBAAiB,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;IAC3D,iBAAiB,EAAE,EAAE;IACrB,IAAI,EAAE,EAAE;CACT,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAE5D,OAAO;QACL,UAAU;QACV,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,UAAU,WAAW,CAAC,CAAC;QACzE,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,GAAG,UAAU,gBAAgB,CAAC,CAAC;QACtF,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,UAAU,WAAW,CAAC,CAAC;QACzE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;QAC9C,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC;QACtD,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAC1C,qBAAqB,EAAE,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACvE,0BAA0B,EAAE,OAAO,CAAC,MAAM,CAAC,4BAA4B,CAAC,EAAE,WAAW,CAAC;QACtF,gCAAgC,EAAE,OAAO,CACvC,MAAM,CAAC,kCAAkC,CAAC,EAC1C,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAClC;QACD,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACjD,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClC,kBAAkB,EAAE,uBAAuB,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzC,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;QAC9C,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC;QACtD,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAE9E,OAAO,CAAC,GAAG,MAAM,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC9G,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpF,OAAO;QACL,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC;QAC/C,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC;QACpF,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC;KAChG,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC;IAChE,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,oBAAoB,CAAC,EAAE,CAAC;AACxG,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAc;IAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAA8B,EAAE,CACnH,OAAO,KAAK,KAAK,IAAI,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAC9F,CAAC;IAEF,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzC,OAAO;QACL,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC;QAC3E,gBAAgB,EAAE,IAAI,CAAC,GAAG,CACxB,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,EAClE,sBAAsB,CACvB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAErF,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,QAAQ,CAAC,SAAkB,EAAE,QAAgB;IACpD,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC9G,CAAC;AAED,SAAS,UAAU,CAAI,KAAc,EAAE,KAA4B;IACjE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrH,CAAC;AAED,SAAS,OAAO,CAAC,KAAc,EAAE,QAA2B;IAC1D,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC5F,CAAC;AAED,SAAS,KAAK,CAAmB,MAAoB,EAAE,SAAkB,EAAE,QAAW;IACpF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,QAAQ,CAAC;AACjE,CAAC;AAED,SAAS,IAAI,CAAC,KAAc,EAAE,QAAgB;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"parse-config.js","sourceRoot":"","sources":["../../src/project/parse-config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-import.d.ts","sourceRoot":"","sources":["../../src/project/resolve-import.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,GAC7E;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAMxD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CAoB/F"}
1
+ {"version":3,"file":"resolve-import.d.ts","sourceRoot":"","sources":["../../src/project/resolve-import.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,GAC7E;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AASxD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CAoB/F"}
@@ -3,6 +3,8 @@ import path from 'node:path';
3
3
  import { aliasRoots } from './alias-roots.js';
4
4
  import { locate } from './locate.js';
5
5
  const SOURCE = /\.(?:ts|mts|cts)$/;
6
+ /** A file that is not a module of the project, named with its own extension. */
7
+ const ASSET = /\.(?:json|node|wasm|[jt]sx)$/;
6
8
  const BUILTINS = new Set(builtinModules);
7
9
  export function resolveImport(config, fromFile, specifier) {
8
10
  if (specifier.startsWith('.')) {
@@ -22,7 +24,8 @@ export function resolveImport(config, fromFile, specifier) {
22
24
  }
23
25
  function fileTarget(config, target) {
24
26
  const clean = path.posix.normalize(target).replace(/\.(?:js|mjs|cjs)$/, '.ts');
25
- const withExtension = SOURCE.test(clean) || path.posix.extname(clean) !== '' ? clean : `${clean}.ts`;
27
+ // Written without its extension, a module is named by what remains, dots included: `invoice.aggregate` is `invoice.aggregate.ts`.
28
+ const withExtension = SOURCE.test(clean) || ASSET.test(clean) ? clean : `${clean}.ts`;
26
29
  return { kind: 'file', path: withExtension, location: locate(config, withExtension) };
27
30
  }
28
31
  function packageName(specifier) {
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-import.js","sourceRoot":"","sources":["../../src/project/resolve-import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAOrC,MAAM,MAAM,GAAG,mBAAmB,CAAC;AAEnC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;AAEzC,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,QAAgB,EAAE,SAAiB;IAC/E,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,EAAE,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAEpG,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClG,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC9C,CAAC;IAED,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,SAAS,EAAE,EAAE,CAAC;IACxD,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,UAAU,CAAC,MAAc,EAAE,MAAc;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC/E,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC;IAErG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;AACxF,CAAC;AAED,SAAS,WAAW,CAAC,SAAiB;IACpC,MAAM,CAAC,KAAK,GAAG,EAAE,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElD,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AACtF,CAAC"}
1
+ {"version":3,"file":"resolve-import.js","sourceRoot":"","sources":["../../src/project/resolve-import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAOrC,MAAM,MAAM,GAAG,mBAAmB,CAAC;AAEnC,gFAAgF;AAChF,MAAM,KAAK,GAAG,8BAA8B,CAAC;AAE7C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;AAEzC,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,QAAgB,EAAE,SAAiB;IAC/E,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,EAAE,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAEpG,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClG,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC9C,CAAC;IAED,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,SAAS,EAAE,EAAE,CAAC;IACxD,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,UAAU,CAAC,MAAc,EAAE,MAAc;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC/E,kIAAkI;IAClI,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC;IAEtF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;AACxF,CAAC;AAED,SAAS,WAAW,CAAC,SAAiB;IACpC,MAAM,CAAC,KAAK,GAAG,EAAE,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElD,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AACtF,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * What an alias specifier ends with under "importExtension": nothing for `none`, `.js` otherwise.
3
+ * Mirrors `specifierSuffix` of the CLI: a wrong value is read as `js`.
4
+ */
5
+ export declare function specifierSuffix(importExtension: string): '' | '.js';
6
+ //# sourceMappingURL=specifier-suffix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specifier-suffix.d.ts","sourceRoot":"","sources":["../../src/project/specifier-suffix.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,eAAe,CAAC,eAAe,EAAE,MAAM,GAAG,EAAE,GAAG,KAAK,CAEnE"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * What an alias specifier ends with under "importExtension": nothing for `none`, `.js` otherwise.
3
+ * Mirrors `specifierSuffix` of the CLI: a wrong value is read as `js`.
4
+ */
5
+ export function specifierSuffix(importExtension) {
6
+ return importExtension === 'none' ? '' : '.js';
7
+ }
8
+ //# sourceMappingURL=specifier-suffix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specifier-suffix.js","sourceRoot":"","sources":["../../src/project/specifier-suffix.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,eAAuB;IACrD,OAAO,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AACjD,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import type { AliasRoot } from './alias-root.js';
2
2
  /**
3
3
  * The specifier that names a file of the project, given by its path from the project root with
4
- * or without its extension; nothing when the file is under no aliased tree.
4
+ * or without its extension, ending with `suffix` (`.js`, or nothing); nothing when the file is
5
+ * under no aliased tree.
5
6
  */
6
- export declare function toAlias(roots: readonly AliasRoot[], file: string): string | undefined;
7
+ export declare function toAlias(roots: readonly AliasRoot[], file: string, suffix: string): string | undefined;
7
8
  //# sourceMappingURL=to-alias.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"to-alias.d.ts","sourceRoot":"","sources":["../../src/project/to-alias.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD;;;GAGG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQrF"}
1
+ {"version":3,"file":"to-alias.d.ts","sourceRoot":"","sources":["../../src/project/to-alias.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQrG"}
@@ -1,13 +1,14 @@
1
1
  const EXTENSION = /\.(?:ts|js)$/;
2
2
  /**
3
3
  * The specifier that names a file of the project, given by its path from the project root with
4
- * or without its extension; nothing when the file is under no aliased tree.
4
+ * or without its extension, ending with `suffix` (`.js`, or nothing); nothing when the file is
5
+ * under no aliased tree.
5
6
  */
6
- export function toAlias(roots, file) {
7
+ export function toAlias(roots, file, suffix) {
7
8
  const root = roots.find(({ directory }) => file.startsWith(`${directory}/`));
8
9
  if (root === undefined) {
9
10
  return undefined;
10
11
  }
11
- return `${root.prefix}${file.slice(root.directory.length + 1).replace(EXTENSION, '')}.js`;
12
+ return `${root.prefix}${file.slice(root.directory.length + 1).replace(EXTENSION, '')}${suffix}`;
12
13
  }
13
14
  //# sourceMappingURL=to-alias.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"to-alias.js","sourceRoot":"","sources":["../../src/project/to-alias.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAG,cAAc,CAAC;AAEjC;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,KAA2B,EAAE,IAAY;IAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;IAE7E,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC;AAC5F,CAAC"}
1
+ {"version":3,"file":"to-alias.js","sourceRoot":"","sources":["../../src/project/to-alias.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAG,cAAc,CAAC;AAEjC;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,KAA2B,EAAE,IAAY,EAAE,MAAc;IAC/E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;IAE7E,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC;AAClG,CAAC"}
@@ -39,7 +39,7 @@ export const cleanOneExportPerFile = defineRule({
39
39
  ],
40
40
  defaultOptions: [{}],
41
41
  create({ file, sourceCode, options: [options], report }) {
42
- if (!isJudged(file)) {
42
+ if (!isJudged(file) || isGenerated(file)) {
43
43
  return {};
44
44
  }
45
45
  const isEntry = isEntryFile(file, options);
@@ -68,8 +68,12 @@ export const cleanOneExportPerFile = defineRule({
68
68
  },
69
69
  });
70
70
  function isEntryFile(file, options) {
71
- return (isIndex(file) ||
72
- globMatcher([`${file.config.contextsDir}/*/*.declarations.ts`, ...(options.entries ?? [])])(file.path));
71
+ return isIndex(file) || globMatcher(options.entries ?? [])(file.path);
72
+ }
73
+ /** The generated files of a declared context: `declarations/barrel-current` of `ddd-ts-kit check` holds every line of them. */
74
+ function isGenerated(file) {
75
+ const { contextsDir } = file.config;
76
+ return globMatcher([`${contextsDir}/*/*.declarations.ts`, `${contextsDir}/*/*.dependencies.ts`])(file.path);
73
77
  }
74
78
  function isIndex(file) {
75
79
  return /^index\.[cm]?ts$/.test(path.posix.basename(file.path));
@@ -1 +1 @@
1
- {"version":3,"file":"clean-one-export-per-file.js","sourceRoot":"","sources":["../../src/rules/clean-one-export-per-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clean-one-export-per-file.js","sourceRoot":"","sources":["../../src/rules/clean-one-export-per-file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type TSESLint } from '@typescript-eslint/utils';
2
+ type MessageId = 'parameter' | 'redundant' | 'differs';
3
+ export declare const declarationsConstructorInjection: TSESLint.RuleModule<MessageId, [], import("../index.js").RuleDocs, TSESLint.RuleListener>;
4
+ export {};
5
+ //# sourceMappingURL=declarations-constructor-injection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declarations-constructor-injection.d.ts","sourceRoot":"","sources":["../../src/rules/declarations-constructor-injection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,QAAQ,EAAiB,MAAM,0BAA0B,CAAC;AAaxF,KAAK,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;AAQvD,eAAO,MAAM,gCAAgC,2FA+C3C,CAAC"}
@@ -0,0 +1,80 @@
1
+ import { AST_NODE_TYPES } from '@typescript-eslint/utils';
2
+ import { className } from '../support/classes/class-name.js';
3
+ import { constructorOf } from '../support/classes/constructor-of.js';
4
+ import { ACCESS_DECORATORS } from '../support/declarations/access-decorators.js';
5
+ import { declarationReader } from '../support/declarations/declaration-reader.js';
6
+ import { declaredRoleOf } from '../support/declarations/declared-role-of.js';
7
+ import { isDeclaredStyle } from '../support/declarations/is-declared-style.js';
8
+ import { notClasses } from '../support/injection/not-classes.js';
9
+ import { readParameter } from '../support/injection/read-parameter.js';
10
+ import { writtenName } from '../support/injection/written-name.js';
11
+ import { defineRule } from '../support/rule/define-rule.js';
12
+ export const declarationsConstructorInjection = defineRule({
13
+ id: 'declarations/constructor-injection',
14
+ type: 'problem',
15
+ recommended: 'error',
16
+ fixable: 'code',
17
+ description: 'In a declared-style project, a class whose decorator lists no dependency states them in its constructor, each parameter typed by one class; under "stack.dependencies": "signature" a decorator carries no list.',
18
+ messages: {
19
+ parameter: 'Parameter "{{name}}" of the constructor of {{className}} {{flaw}}. Type it by one class and nothing else: a port (an abstract class of application/ports or domain/repositories), a port of the kernel, another declared class, or an abstract class with readonly members that the platform binds to a value. The composition root injects each constructor parameter by the class that types it.',
20
+ redundant: 'The decorator of {{className}} lists [{{listed}}], which its constructor already states. Remove the list: the constructor signature is the one statement of what a class depends on, and `ddd-ts-kit docs` reads it.',
21
+ differs: 'The decorator of {{className}} lists [{{listed}}] and its constructor says something else: the list wins at run time, so the signature lies. Type each constructor parameter by the class its list entry names (the token is the type), then remove the list.',
22
+ },
23
+ create({ file, sourceCode, report }) {
24
+ if (file.isTest || !isDeclaredStyle(file) || declaredRoleOf(file) === undefined) {
25
+ return {};
26
+ }
27
+ const declarationsOf = declarationReader(sourceCode.ast);
28
+ const declaredOtherwise = notClasses(sourceCode.ast);
29
+ const signature = file.config.stack.dependencies === 'signature';
30
+ const judgeClass = (node) => {
31
+ const [declaration] = declarationsOf(node).filter(({ name }) => !ACCESS_DECORATORS.has(name));
32
+ const written = constructorOf(node.body);
33
+ if (declaration === undefined || (written === undefined && node.superClass !== null)) {
34
+ return;
35
+ }
36
+ const read = (written?.value.params ?? []).map((parameter) => ({
37
+ node: parameter,
38
+ reading: readParameter(parameter, declaredOtherwise),
39
+ }));
40
+ const list = declaration.arguments.at(-1);
41
+ const findings = list?.type === AST_NODE_TYPES.ArrayExpression ? listed(node, { list, read, signature }) : unstated(node, read);
42
+ findings.forEach(report);
43
+ };
44
+ return { ClassDeclaration: judgeClass, ClassExpression: judgeClass };
45
+ },
46
+ });
47
+ function unstated(node, read) {
48
+ return read.flatMap(({ node: parameter, reading }) => reading.flaw === undefined
49
+ ? []
50
+ : [
51
+ {
52
+ node: parameter,
53
+ messageId: 'parameter',
54
+ data: { name: writtenName(parameter), className: className(node), flaw: reading.flaw },
55
+ },
56
+ ]);
57
+ }
58
+ function listed(node, { list, read, signature }) {
59
+ if (!signature) {
60
+ return [];
61
+ }
62
+ const names = list.elements.map((element) => (element?.type === AST_NODE_TYPES.Identifier ? element.name : '?'));
63
+ const typed = read.map(({ reading }) => reading.token ?? '');
64
+ const same = names.length === typed.length && names.every((name, index) => name === typed[index]);
65
+ const data = { className: className(node), listed: names.join(', ') };
66
+ return [
67
+ same
68
+ ? { node: list, messageId: 'redundant', data, fix: withoutList(list) }
69
+ : { node: list, messageId: 'differs', data },
70
+ ];
71
+ }
72
+ /** Removes the list with the comma before it: `@CommandHandler(PlaceOrder, [Clock])` becomes `@CommandHandler(PlaceOrder)`. */
73
+ function withoutList(list) {
74
+ return (fixer) => {
75
+ const call = list.parent;
76
+ const before = call.type === AST_NODE_TYPES.CallExpression ? call.arguments[call.arguments.indexOf(list) - 1] : undefined;
77
+ return before === undefined ? null : fixer.removeRange([before.range[1], list.range[1]]);
78
+ };
79
+ }
80
+ //# sourceMappingURL=declarations-constructor-injection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declarations-constructor-injection.js","sourceRoot":"","sources":["../../src/rules/declarations-constructor-injection.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"imports-alias-only.d.ts","sourceRoot":"","sources":["../../src/rules/imports-alias-only.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AAQnE,KAAK,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAOpD,eAAO,MAAM,gBAAgB,2FA8B3B,CAAC"}
1
+ {"version":3,"file":"imports-alias-only.d.ts","sourceRoot":"","sources":["../../src/rules/imports-alias-only.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AAUnE,KAAK,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAKpD,eAAO,MAAM,gBAAgB,2FA8B3B,CAAC"}
@@ -1,12 +1,12 @@
1
1
  import path from 'node:path';
2
2
  import { aliasRoots } from '../project/alias-roots.js';
3
+ import { isJudged } from '../project/is-judged.js';
4
+ import { specifierSuffix } from '../project/specifier-suffix.js';
3
5
  import { toAlias } from '../project/to-alias.js';
4
6
  import { importListener } from '../support/imports/import-listener.js';
5
7
  import { defineRule } from '../support/rule/define-rule.js';
6
8
  const RELATIVE = /^\.{1,2}(?:\/|$)/;
7
9
  const DOT_SEGMENT = /\/\.{1,2}(?:\/|$)/;
8
- /** Written by a tool and never linted as project code. */
9
- const BUILD_PRODUCTS = ['generated'];
10
10
  export const importsAliasOnly = defineRule({
11
11
  id: 'imports/alias-only',
12
12
  type: 'suggestion',
@@ -24,19 +24,17 @@ export const importsAliasOnly = defineRule({
24
24
  return {};
25
25
  }
26
26
  return importListener(file, ({ node, specifier }) => {
27
- const finding = RELATIVE.test(specifier) ? relative(roots, file, specifier) : dotSegment(roots, specifier);
27
+ const finding = RELATIVE.test(specifier) ? relative(file, specifier) : dotSegment(roots, specifier);
28
28
  if (finding !== undefined) {
29
29
  report({ node, ...finding, ...fixOf(node, finding) });
30
30
  }
31
31
  });
32
32
  },
33
33
  });
34
- /** A source under an aliased tree the team writes: the source root, the tests and the scripts. */
35
- function isJudged(roots, file) {
36
- return roots.some(({ directory }) => !BUILD_PRODUCTS.includes(directory) && file.path.startsWith(`${directory}/`));
37
- }
38
- function relative(roots, file, specifier) {
39
- const alias = toAlias(roots, path.posix.join(path.posix.dirname(file.path), specifier));
34
+ function relative(file, specifier) {
35
+ const roots = aliasRoots(file.config);
36
+ const suffix = specifierSuffix(file.config.importExtension);
37
+ const alias = toAlias(roots, path.posix.join(path.posix.dirname(file.path), specifier), suffix);
40
38
  if (alias !== undefined) {
41
39
  return { messageId: 'relative', data: { specifier, alias } };
42
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"imports-alias-only.js","sourceRoot":"","sources":["../../src/rules/imports-alias-only.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imports-alias-only.js","sourceRoot":"","sources":["../../src/rules/imports-alias-only.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { TSESLint } from '@typescript-eslint/utils';
2
+ type MessageId = 'unexpected' | 'missing';
3
+ export declare const importsExtension: TSESLint.RuleModule<MessageId, [], import("../index.js").RuleDocs, TSESLint.RuleListener>;
4
+ export {};
5
+ //# sourceMappingURL=imports-extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imports-extension.d.ts","sourceRoot":"","sources":["../../src/rules/imports-extension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AAOnE,KAAK,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;AAM1C,eAAO,MAAM,gBAAgB,2FA6B3B,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { aliasRoots } from '../project/alias-roots.js';
2
+ import { isJudged } from '../project/is-judged.js';
3
+ import { specifierSuffix } from '../project/specifier-suffix.js';
4
+ import { importListener } from '../support/imports/import-listener.js';
5
+ import { defineRule } from '../support/rule/define-rule.js';
6
+ /** The extensions a module of the project or the file emitted for it can bear. */
7
+ const EXTENSION = /\.(?:[cm]?js|[cm]?ts)$/;
8
+ const EMITTED = /\.[cm]?js$/;
9
+ export const importsExtension = defineRule({
10
+ id: 'imports/extension',
11
+ type: 'suggestion',
12
+ recommended: 'error',
13
+ fixable: 'code',
14
+ description: 'An import of a file of the project ends as "importExtension" says: with no extension under `none`, with `.js` under `js`.',
15
+ messages: {
16
+ unexpected: '"{{specifier}}" ends with "{{extension}}" although "importExtension" is "none". Write \'{{expected}}\': the compiler and every tool that reads the sources resolve the file without its extension, and the build writes the ".js" Node needs into the compiled output.',
17
+ missing: '"{{specifier}}" does not end with ".js" although "importExtension" is "js". Write \'{{expected}}\', the name of the file the compiler emits: the compiler resolves as Node does and refuses any other spelling.',
18
+ },
19
+ create({ file, report }) {
20
+ const roots = aliasRoots(file.config);
21
+ const suffix = specifierSuffix(file.config.importExtension);
22
+ if (!isJudged(roots, file)) {
23
+ return {};
24
+ }
25
+ return importListener(file, ({ node, specifier }) => {
26
+ const finding = roots.some(({ prefix }) => specifier.startsWith(prefix)) ? judged(specifier, suffix) : undefined;
27
+ if (finding !== undefined) {
28
+ report({ node, ...finding, fix: fixOf(node, finding.data.expected) });
29
+ }
30
+ });
31
+ },
32
+ });
33
+ function judged(specifier, suffix) {
34
+ const extension = EXTENSION.exec(specifier)?.[0] ?? '';
35
+ const expected = `${specifier.slice(0, specifier.length - extension.length)}${suffix}`;
36
+ if (suffix === '') {
37
+ return extension === '' ? undefined : { messageId: 'unexpected', data: { specifier, extension, expected } };
38
+ }
39
+ return EMITTED.test(specifier) ? undefined : { messageId: 'missing', data: { specifier, extension, expected } };
40
+ }
41
+ /** The specifier rewritten in place, between the quotes it was written with. */
42
+ function fixOf(node, expected) {
43
+ return (fixer) => fixer.replaceTextRange([node.range[0] + 1, node.range[1] - 1], expected);
44
+ }
45
+ //# sourceMappingURL=imports-extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imports-extension.js","sourceRoot":"","sources":["../../src/rules/imports-extension.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,4 @@
1
- export declare const portsNoConcreteDependency: import("@typescript-eslint/utils/ts-eslint").RuleModule<"concrete", [], import("../index.js").RuleDocs, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
1
+ type MessageId = 'concrete' | 'typed';
2
+ export declare const portsNoConcreteDependency: import("@typescript-eslint/utils/ts-eslint").RuleModule<MessageId, [], import("../index.js").RuleDocs, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
3
+ export {};
2
4
  //# sourceMappingURL=ports-no-concrete-dependency.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ports-no-concrete-dependency.d.ts","sourceRoot":"","sources":["../../src/rules/ports-no-concrete-dependency.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,yBAAyB,oKAqBpC,CAAC"}
1
+ {"version":3,"file":"ports-no-concrete-dependency.d.ts","sourceRoot":"","sources":["../../src/rules/ports-no-concrete-dependency.ts"],"names":[],"mappings":"AAcA,KAAK,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAEtC,eAAO,MAAM,yBAAyB,mKAqCpC,CAAC"}