@alveolus/arch 0.1.0 → 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.
- package/README.md +2 -1
- package/dist/bin.mjs +1 -1
- package/dist/{cli-CwPCGjDg.mjs → cli-P5PwH9OE.mjs} +98 -34
- package/dist/cli-P5PwH9OE.mjs.map +1 -0
- package/dist/index.d.mts +46 -34
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
- package/dist/cli-CwPCGjDg.mjs.map +0 -1
package/dist/index.d.mts
CHANGED
|
@@ -226,12 +226,50 @@ declare class CoreApi {
|
|
|
226
226
|
private isCore;
|
|
227
227
|
}
|
|
228
228
|
//#endregion
|
|
229
|
+
//#region src/architecture/context-map.d.ts
|
|
230
|
+
type Upstreams = Readonly<Record<string, readonly string[]>>;
|
|
231
|
+
declare class ContextMap {
|
|
232
|
+
private readonly upstreams;
|
|
233
|
+
constructor(upstreams: Upstreams);
|
|
234
|
+
static ofEdges(edges: readonly {
|
|
235
|
+
readonly from: string;
|
|
236
|
+
readonly to: string;
|
|
237
|
+
}[]): ContextMap;
|
|
238
|
+
get contexts(): string[];
|
|
239
|
+
allows(from: string, to: string): boolean;
|
|
240
|
+
cycle(): string[] | undefined;
|
|
241
|
+
cycleThrough(from: string, to: string): boolean;
|
|
242
|
+
private cycleFrom;
|
|
243
|
+
private reaches;
|
|
244
|
+
}
|
|
245
|
+
//#endregion
|
|
246
|
+
//#region src/architecture/settings.d.ts
|
|
247
|
+
type SubdomainType = "core" | "supporting" | "generic";
|
|
248
|
+
type Subdomains = Readonly<Partial<Record<SubdomainType, readonly string[]>>>;
|
|
249
|
+
interface ContextFolder {
|
|
250
|
+
readonly name: string;
|
|
251
|
+
readonly dir: string;
|
|
252
|
+
readonly isSharedKernel: boolean;
|
|
253
|
+
readonly subdomain?: SubdomainType;
|
|
254
|
+
}
|
|
255
|
+
type ExtraFolders = Readonly<Partial<Record<"domain" | "application", readonly string[]>>>;
|
|
256
|
+
interface Settings {
|
|
257
|
+
readonly rootDir: string;
|
|
258
|
+
readonly contextFolders: readonly ContextFolder[];
|
|
259
|
+
readonly compositionRoot: string;
|
|
260
|
+
readonly extraFolders: ExtraFolders;
|
|
261
|
+
readonly contextMap: ContextMap | undefined;
|
|
262
|
+
readonly domainDependencies: AllowedPackages;
|
|
263
|
+
readonly applicationDependencies: AllowedPackages;
|
|
264
|
+
}
|
|
265
|
+
//#endregion
|
|
229
266
|
//#region src/architecture/paths/location.d.ts
|
|
230
267
|
type Area = "context" | "shared-kernel" | "root" | "outside";
|
|
231
268
|
type Unseen = "ignored" | "unresolved";
|
|
232
269
|
interface LocationProps {
|
|
233
270
|
readonly area: Area;
|
|
234
271
|
readonly context?: string;
|
|
272
|
+
readonly subdomain?: SubdomainType;
|
|
235
273
|
readonly layer?: Layer;
|
|
236
274
|
readonly folder?: string;
|
|
237
275
|
readonly foldersInLayer?: readonly string[];
|
|
@@ -242,6 +280,7 @@ interface LocationProps {
|
|
|
242
280
|
declare class Location {
|
|
243
281
|
readonly area: Area;
|
|
244
282
|
readonly context: string | undefined;
|
|
283
|
+
readonly subdomain: SubdomainType | undefined;
|
|
245
284
|
readonly layer: Layer | undefined;
|
|
246
285
|
readonly folder: string | undefined;
|
|
247
286
|
readonly foldersInLayer: readonly string[];
|
|
@@ -250,6 +289,7 @@ declare class Location {
|
|
|
250
289
|
readonly unseen: Unseen | undefined;
|
|
251
290
|
constructor(props: LocationProps);
|
|
252
291
|
get isInBoundedContext(): boolean;
|
|
292
|
+
get isInCoreDomain(): boolean;
|
|
253
293
|
get isInSharedKernel(): boolean;
|
|
254
294
|
get isAtRoot(): boolean;
|
|
255
295
|
get isOutside(): boolean;
|
|
@@ -280,46 +320,12 @@ declare class BuildingBlocks {
|
|
|
280
320
|
foldersOf(layer: "domain" | "application"): readonly string[];
|
|
281
321
|
}
|
|
282
322
|
//#endregion
|
|
283
|
-
//#region src/architecture/context-map.d.ts
|
|
284
|
-
type Upstreams = Readonly<Record<string, readonly string[]>>;
|
|
285
|
-
declare class ContextMap {
|
|
286
|
-
private readonly upstreams;
|
|
287
|
-
constructor(upstreams: Upstreams);
|
|
288
|
-
static ofEdges(edges: readonly {
|
|
289
|
-
readonly from: string;
|
|
290
|
-
readonly to: string;
|
|
291
|
-
}[]): ContextMap;
|
|
292
|
-
get contexts(): string[];
|
|
293
|
-
allows(from: string, to: string): boolean;
|
|
294
|
-
cycle(): string[] | undefined;
|
|
295
|
-
cycleThrough(from: string, to: string): boolean;
|
|
296
|
-
private cycleFrom;
|
|
297
|
-
private reaches;
|
|
298
|
-
}
|
|
299
|
-
//#endregion
|
|
300
323
|
//#region src/architecture/layers.d.ts
|
|
301
324
|
declare class Layers {
|
|
302
325
|
isLayer(name: string): name is Layer;
|
|
303
326
|
importableFrom(layer: Exclude<Layer, "domain">): readonly Layer[];
|
|
304
327
|
}
|
|
305
328
|
//#endregion
|
|
306
|
-
//#region src/architecture/settings.d.ts
|
|
307
|
-
interface ContextFolder {
|
|
308
|
-
readonly name: string;
|
|
309
|
-
readonly dir: string;
|
|
310
|
-
readonly isSharedKernel: boolean;
|
|
311
|
-
}
|
|
312
|
-
type ExtraFolders = Readonly<Partial<Record<"domain" | "application", readonly string[]>>>;
|
|
313
|
-
interface Settings {
|
|
314
|
-
readonly rootDir: string;
|
|
315
|
-
readonly contextFolders: readonly ContextFolder[];
|
|
316
|
-
readonly compositionRoot: string;
|
|
317
|
-
readonly extraFolders: ExtraFolders;
|
|
318
|
-
readonly contextMap: ContextMap | undefined;
|
|
319
|
-
readonly domainDependencies: AllowedPackages;
|
|
320
|
-
readonly applicationDependencies: AllowedPackages;
|
|
321
|
-
}
|
|
322
|
-
//#endregion
|
|
323
329
|
//#region src/architecture/paths/layer-shape.d.ts
|
|
324
330
|
type ShapeIssue = {
|
|
325
331
|
readonly kind: "directlyInLayer" | "tooDeep";
|
|
@@ -388,8 +394,10 @@ declare class Wording {
|
|
|
388
394
|
}
|
|
389
395
|
//#endregion
|
|
390
396
|
//#region src/rules/framework/rule.d.ts
|
|
397
|
+
type RuleContexts = "every" | "core";
|
|
391
398
|
interface RuleMeta<Id extends string, MessageId extends string> {
|
|
392
399
|
readonly id: Id;
|
|
400
|
+
readonly contexts: RuleContexts;
|
|
393
401
|
readonly description: string;
|
|
394
402
|
readonly messages: Readonly<Record<MessageId, string>>;
|
|
395
403
|
}
|
|
@@ -397,6 +405,8 @@ export declare abstract class Rule<Id extends string = string, MessageId extends
|
|
|
397
405
|
abstract readonly meta: RuleMeta<Id, MessageId>;
|
|
398
406
|
protected readonly wording: Wording;
|
|
399
407
|
abstract check(architecture: Architecture): Finding<MessageId>[];
|
|
408
|
+
protected filesOf(architecture: Architecture): SourceFile[];
|
|
409
|
+
private checks;
|
|
400
410
|
protected finding(file: SourceFile, line: number, symbol: string, messageId: MessageId, data?: FindingData): Finding<MessageId>;
|
|
401
411
|
}
|
|
402
412
|
//#endregion
|
|
@@ -557,6 +567,7 @@ interface AlveolusConfig {
|
|
|
557
567
|
readonly tsconfig?: string;
|
|
558
568
|
readonly boundedContexts: Readonly<Record<string, string>>;
|
|
559
569
|
readonly sharedKernel?: string;
|
|
570
|
+
readonly subdomains?: Subdomains;
|
|
560
571
|
readonly contextMap?: Upstreams;
|
|
561
572
|
readonly compositionRoot?: string;
|
|
562
573
|
readonly domainDependencies?: PackageDependencies;
|
|
@@ -580,6 +591,7 @@ export declare class Config implements CheckSettings {
|
|
|
580
591
|
private readonly ignored;
|
|
581
592
|
private readonly rules;
|
|
582
593
|
constructor(config: AlveolusConfig, projectDir: string);
|
|
594
|
+
private classifiedContexts;
|
|
583
595
|
private validContextMap;
|
|
584
596
|
isIgnored(path: string): boolean;
|
|
585
597
|
severityOf(rule: RuleId): Severity | "off";
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":["Project","FileTarget","Project","Project","MorphProject","Project"],"sources":["../src/architecture/allowed-packages.ts","../src/conventions/core-api.ts","../src/conventions/layers.ts","../src/conventions/building-blocks.ts","../src/model/classes/named-type.ts","../src/model/classes/class-type.ts","../src/model/classes/heritage.ts","../src/model/classes/return-shape.ts","../src/model/classes/member.ts","../src/model/classes/class-declaration.ts","../src/model/dependencies/dependency.ts","../src/model/dependencies/global-use.ts","../src/model/statements/disable-comment.ts","../src/model/statements/throw.ts","../src/model/statements/top-level-statement.ts","../src/model/source-file.ts","../src/model/project.ts","../src/architecture/core-api.ts","../src/architecture/
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":["Project","FileTarget","Project","Project","MorphProject","Project"],"sources":["../src/architecture/allowed-packages.ts","../src/conventions/core-api.ts","../src/conventions/layers.ts","../src/conventions/building-blocks.ts","../src/model/classes/named-type.ts","../src/model/classes/class-type.ts","../src/model/classes/heritage.ts","../src/model/classes/return-shape.ts","../src/model/classes/member.ts","../src/model/classes/class-declaration.ts","../src/model/dependencies/dependency.ts","../src/model/dependencies/global-use.ts","../src/model/statements/disable-comment.ts","../src/model/statements/throw.ts","../src/model/statements/top-level-statement.ts","../src/model/source-file.ts","../src/model/project.ts","../src/architecture/core-api.ts","../src/architecture/context-map.ts","../src/architecture/settings.ts","../src/architecture/paths/location.ts","../src/architecture/paths/place.ts","../src/architecture/building-blocks.ts","../src/architecture/layers.ts","../src/architecture/paths/layer-shape.ts","../src/architecture/architecture.ts","../src/rules/framework/finding.ts","../src/rules/framework/wording.ts","../src/rules/framework/rule.ts","../src/rules/tooling/no-loose-disable.rule.ts","../src/rules/registry.ts","../src/check/violation.ts","../src/check/baseline.ts","../src/importer/importer.ts","../src/importer/ts-morph/ts-morph-importer.ts","../src/check/checker.ts","../src/check/report.ts","../src/cli/cli.ts","../src/config/alveolus-config.ts","../src/config/config.ts","../src/config/config-loader.ts","../src/config/define-config.ts"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as Config, c as RuleRegistry, d as AllowedPackages, f as Baseline, i as ConfigLoader, l as Rule, n as TsMorphImporter, o as Report, r as Importer, s as Checker, t as Cli, u as Architecture } from "./cli-
|
|
1
|
+
import { a as Config, c as RuleRegistry, d as AllowedPackages, f as Baseline, i as ConfigLoader, l as Rule, n as TsMorphImporter, o as Report, r as Importer, s as Checker, t as Cli, u as Architecture } from "./cli-P5PwH9OE.mjs";
|
|
2
2
|
//#region src/config/define-config.ts
|
|
3
3
|
function defineConfig(config) {
|
|
4
4
|
return config;
|