limina 0.1.2 → 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/LICENSE.md +535 -794
- package/bin/limina.js +5 -9
- package/checker-host-process.js +49 -0
- package/chunks/dep-BOg2f5FD.js +42 -0
- package/chunks/{dep-DJz9JBTi.js → dep-D63Sc9OL.js} +1074 -329
- package/chunks/dep-gI8bWpox.js +1092 -0
- package/cli.js +40572 -40696
- package/flow-renderer-process.js +4 -6
- package/index.d.ts +209 -50
- package/index.js +2 -3
- package/package.json +20 -15
- package/schemas/tsconfig-schema.json +9 -5
- package/chunks/dep-BPK-6PAr.js +0 -114
- package/chunks/dep-esXeyN9I.js +0 -194
- package/chunks/dep-mnWOqiGN.js +0 -244
package/flow-renderer-process.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { c as renderSnapshotLinesForTerminal, i as SPINNER_FRAMES, s as hasRunningSnapshotWork, t as TerminalFrameTracker } from "./chunks/dep-gI8bWpox.js";
|
|
3
2
|
//#region src/flow/renderer-process.ts
|
|
4
3
|
let snapshot = {
|
|
5
4
|
entries: [],
|
|
@@ -19,7 +18,7 @@ function readPositiveInteger(value) {
|
|
|
19
18
|
return Number.isInteger(parsed) && parsed > 0 ? parsed : void 0;
|
|
20
19
|
}
|
|
21
20
|
function getTerminalColumns() {
|
|
22
|
-
return Math.max(1, readPositiveInteger(process.env[FLOW_RENDERER_TEST_COLUMNS_ENV]) ?? process.stdout.columns ?? snapshot.terminalDimensions?.columns ??
|
|
21
|
+
return Math.max(1, readPositiveInteger(process.env[FLOW_RENDERER_TEST_COLUMNS_ENV]) ?? process.stdout.columns ?? snapshot.terminalDimensions?.columns ?? 80);
|
|
23
22
|
}
|
|
24
23
|
function getTerminalRows() {
|
|
25
24
|
return readPositiveInteger(process.env.LIMINA_FLOW_RENDERER_TEST_ROWS) ?? process.stdout.rows;
|
|
@@ -54,7 +53,7 @@ function syncSpinnerTimer() {
|
|
|
54
53
|
spinnerTimer = setInterval(() => {
|
|
55
54
|
spinnerFrameIndex = (spinnerFrameIndex + 1) % SPINNER_FRAMES.length;
|
|
56
55
|
render();
|
|
57
|
-
},
|
|
56
|
+
}, 80);
|
|
58
57
|
}
|
|
59
58
|
function writeOutput(message) {
|
|
60
59
|
clearRenderedFrame();
|
|
@@ -96,6 +95,5 @@ process.on("message", (rawMessage) => {
|
|
|
96
95
|
}
|
|
97
96
|
});
|
|
98
97
|
send({ type: "ready" });
|
|
99
|
-
|
|
100
98
|
//#endregion
|
|
101
|
-
export {
|
|
99
|
+
export {};
|
package/index.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Allow source files to consume matched declarations through
|
|
3
|
+
* `/// <reference path="...">`. This does not authorize ordinary imports or
|
|
4
|
+
* `/// <reference types>`.
|
|
5
|
+
*
|
|
6
|
+
* @default false
|
|
7
|
+
*/
|
|
1
8
|
//#region src/execution/config.d.ts
|
|
2
9
|
type ExecutionConcurrency = number | "auto";
|
|
3
10
|
interface ExecutionConfig {
|
|
4
11
|
checkerBuild?: ExecutionConcurrency;
|
|
5
12
|
checkerTypecheck?: ExecutionConcurrency;
|
|
6
|
-
failFast?: boolean;
|
|
7
13
|
packageEntries?: ExecutionConcurrency;
|
|
8
14
|
releaseEntries?: ExecutionConcurrency;
|
|
9
15
|
tasks?: ExecutionConcurrency;
|
|
@@ -36,11 +42,11 @@ type PipelineStep = string | {
|
|
|
36
42
|
/**
|
|
37
43
|
* Executable name, for example `pnpm`, `tsc`, `tsgo`, `vue-tsc`, or `vue-tsgo`.
|
|
38
44
|
*
|
|
39
|
-
* The command runs from
|
|
45
|
+
* The command runs from config.rootDir unless `cwd` is set.
|
|
40
46
|
*/
|
|
41
47
|
command: string;
|
|
42
48
|
/**
|
|
43
|
-
* Working directory for this step, relative to
|
|
49
|
+
* Working directory for this step, relative to config.rootDir.
|
|
44
50
|
*/
|
|
45
51
|
cwd?: string;
|
|
46
52
|
/**
|
|
@@ -136,7 +142,8 @@ interface SourceKnipIgnoredDependencyConfig {
|
|
|
136
142
|
*/
|
|
137
143
|
interface SourceKnipIgnoredFileConfig {
|
|
138
144
|
/**
|
|
139
|
-
*
|
|
145
|
+
* Source module path relative to config.rootDir. Parent-relative paths are
|
|
146
|
+
* allowed for external activated packages.
|
|
140
147
|
*/
|
|
141
148
|
file: string;
|
|
142
149
|
/**
|
|
@@ -157,7 +164,7 @@ interface SourceKnipIgnoredFileConfig {
|
|
|
157
164
|
*/
|
|
158
165
|
interface SourceKnipEntryConfig {
|
|
159
166
|
/**
|
|
160
|
-
*
|
|
167
|
+
* File or glob patterns relative to config.rootDir that Knip should treat as
|
|
161
168
|
* additional entries for the keyed package.
|
|
162
169
|
*/
|
|
163
170
|
files: string[];
|
|
@@ -200,48 +207,56 @@ interface SourceKnipCheckConfig {
|
|
|
200
207
|
workspaces?: Record<string, SourceKnipWorkspaceConfig>;
|
|
201
208
|
}
|
|
202
209
|
/**
|
|
203
|
-
*
|
|
204
|
-
* owning source package manifest.
|
|
210
|
+
* Bare package import authority settings interpreted by source checks.
|
|
205
211
|
*/
|
|
206
|
-
interface
|
|
207
|
-
/**
|
|
208
|
-
* Workspace-root-relative source file globs where this authorization applies.
|
|
209
|
-
*/
|
|
210
|
-
files: string[];
|
|
212
|
+
interface SourceImportAuthorityConfig {
|
|
211
213
|
/**
|
|
212
|
-
*
|
|
213
|
-
* from the workspace root package.json when this rule matches.
|
|
214
|
+
* Workspace root dependency authority grants keyed by source owner identity.
|
|
214
215
|
*/
|
|
215
|
-
|
|
216
|
+
allow?: Record<string, SourceImportAuthorityWorkspaceRootGrant[]>;
|
|
217
|
+
}
|
|
218
|
+
interface SourceImportAuthorityWorkspaceRootGrant {
|
|
216
219
|
/**
|
|
217
|
-
*
|
|
220
|
+
* Config-root-relative source globs where this grant applies.
|
|
221
|
+
*
|
|
222
|
+
* When omitted, the grant applies to all governed source modules owned by
|
|
223
|
+
* this source owner.
|
|
218
224
|
*/
|
|
219
|
-
|
|
225
|
+
include?: string[];
|
|
220
226
|
/**
|
|
221
|
-
*
|
|
222
|
-
*
|
|
227
|
+
* Package names or package-name globs whose dependency declarations may be
|
|
228
|
+
* read from the workspace root package.json when this grant matches.
|
|
223
229
|
*/
|
|
224
|
-
|
|
230
|
+
workspaceRootDependencies: string[];
|
|
225
231
|
/**
|
|
226
|
-
* Why this
|
|
232
|
+
* Why this owner may use these workspace-root dependency declarations.
|
|
227
233
|
*/
|
|
228
234
|
reason: string;
|
|
229
235
|
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
interface SourceImportAuthorityConfig {
|
|
236
|
+
interface SourceAmbientDeclarationConfig {
|
|
237
|
+
/** Config-root-relative glob patterns filtering activated-island files. */
|
|
238
|
+
include: string[];
|
|
234
239
|
/**
|
|
235
|
-
*
|
|
236
|
-
*
|
|
237
|
-
*
|
|
240
|
+
* Allow matched declaration files to be consumed by TypeScript projects
|
|
241
|
+
* governed by more than one source owner. The declaration files retain one
|
|
242
|
+
* ambient governance role.
|
|
243
|
+
*
|
|
244
|
+
* @default false
|
|
238
245
|
*/
|
|
239
|
-
|
|
246
|
+
allowSharedAcrossOwners?: boolean;
|
|
247
|
+
allowTripleSlashReferences?: boolean;
|
|
248
|
+
/** Why this ambient declaration exception is required. */
|
|
249
|
+
reason: string;
|
|
250
|
+
}
|
|
251
|
+
interface SourceDeclarationsConfig {
|
|
252
|
+
ambient?: SourceAmbientDeclarationConfig[];
|
|
240
253
|
}
|
|
241
254
|
/**
|
|
242
255
|
* Source-owned dependency usage check settings.
|
|
243
256
|
*/
|
|
244
257
|
interface SourceCheckConfig {
|
|
258
|
+
/** Explicit governance for declaration-file roles. */
|
|
259
|
+
declarations?: SourceDeclarationsConfig;
|
|
245
260
|
/**
|
|
246
261
|
* Knip-backed unused dependency and unused source module analysis.
|
|
247
262
|
*
|
|
@@ -264,28 +279,38 @@ interface SourceBoundaryConfig {
|
|
|
264
279
|
/**
|
|
265
280
|
* Glob patterns for source files that Limina should govern.
|
|
266
281
|
*
|
|
267
|
-
* When omitted, Limina uses TypeScript
|
|
268
|
-
*
|
|
269
|
-
* `.
|
|
282
|
+
* When omitted, Limina uses TypeScript-neutral source defaults:
|
|
283
|
+
* `**\/*.ts`, `**\/*.tsx`, `**\/*.d.ts`, `**\/*.cts`, `**\/*.d.cts`,
|
|
284
|
+
* `**\/*.mts`, and `**\/*.d.mts`.
|
|
285
|
+
*
|
|
286
|
+
* When configured, these patterns replace the defaults. Include the exact
|
|
287
|
+
* string `"..."` to expand the default source patterns at that position,
|
|
288
|
+
* for example `["...", "**\/*.vue"]`.
|
|
289
|
+
*
|
|
290
|
+
* Checker extensions such as `.vue` and `.svelte` are not included by
|
|
291
|
+
* default.
|
|
270
292
|
*/
|
|
271
293
|
include?: string[];
|
|
272
294
|
/**
|
|
273
295
|
* Glob patterns or directory shorthands to omit from source governance.
|
|
274
296
|
*
|
|
275
|
-
* When omitted, Limina
|
|
276
|
-
*
|
|
297
|
+
* When omitted, Limina uses the default exclude bundle: `node_modules`,
|
|
298
|
+
* `bower_components`, `jspm_packages`, paths corresponding to explicit
|
|
299
|
+
* `liminaOptions.outputs.outDir` declarations in relevant source configs,
|
|
300
|
+
* and the workspace root `.gitignore`.
|
|
301
|
+
*
|
|
302
|
+
* When configured, these patterns replace the default exclude bundle and the
|
|
303
|
+
* root `.gitignore` is not used. Include the exact string `"..."` to expand
|
|
304
|
+
* the default exclude bundle, including root `.gitignore`, at that position.
|
|
305
|
+
* An explicit `exclude` array without `"..."` disables every default exclude
|
|
306
|
+
* entry.
|
|
277
307
|
*
|
|
278
308
|
* @default: [
|
|
279
|
-
* "nx.json",
|
|
280
|
-
* "project.json",
|
|
281
|
-
* "tsconfig.json",
|
|
282
|
-
* "**\/tsconfig.*.json",
|
|
283
|
-
* "dist",
|
|
284
|
-
* ".nx",
|
|
285
|
-
* ".git",
|
|
286
|
-
* ".tsbuild",
|
|
287
|
-
* "coverage",
|
|
288
309
|
* "node_modules",
|
|
310
|
+
* "bower_components",
|
|
311
|
+
* "jspm_packages",
|
|
312
|
+
* "<explicit liminaOptions.outputs.outDir paths>",
|
|
313
|
+
* "<root .gitignore>",
|
|
289
314
|
* ]
|
|
290
315
|
*/
|
|
291
316
|
exclude?: string[];
|
|
@@ -312,7 +337,7 @@ interface SharedLiminaConfig {
|
|
|
312
337
|
*/
|
|
313
338
|
interface GraphRuleRefDenyEntry {
|
|
314
339
|
/**
|
|
315
|
-
* Target
|
|
340
|
+
* Target source config path, relative to config.rootDir.
|
|
316
341
|
*/
|
|
317
342
|
path: string;
|
|
318
343
|
/**
|
|
@@ -326,7 +351,7 @@ interface GraphRuleRefDenyEntry {
|
|
|
326
351
|
*/
|
|
327
352
|
interface GraphRuleRefAllowEntry {
|
|
328
353
|
/**
|
|
329
|
-
* Target
|
|
354
|
+
* Target source config path, relative to config.rootDir.
|
|
330
355
|
*/
|
|
331
356
|
path: string;
|
|
332
357
|
/**
|
|
@@ -397,7 +422,7 @@ interface GraphConditionDomain {
|
|
|
397
422
|
*/
|
|
398
423
|
name: string;
|
|
399
424
|
/**
|
|
400
|
-
* Domain entry
|
|
425
|
+
* Domain entry source config path, relative to config.rootDir.
|
|
401
426
|
*/
|
|
402
427
|
entry: string;
|
|
403
428
|
/**
|
|
@@ -425,7 +450,7 @@ interface GraphConfig {
|
|
|
425
450
|
*/
|
|
426
451
|
interface ProofAllowlistEntry {
|
|
427
452
|
/**
|
|
428
|
-
*
|
|
453
|
+
* Source file path to allow, relative to config.rootDir.
|
|
429
454
|
*/
|
|
430
455
|
file: string;
|
|
431
456
|
/**
|
|
@@ -538,7 +563,7 @@ interface PackageEntry {
|
|
|
538
563
|
*/
|
|
539
564
|
name: string;
|
|
540
565
|
/**
|
|
541
|
-
* Built package directory to scan, relative to
|
|
566
|
+
* Built package directory to scan, relative to config.rootDir.
|
|
542
567
|
*/
|
|
543
568
|
outDir: string;
|
|
544
569
|
/**
|
|
@@ -603,6 +628,23 @@ interface ReleaseContentHashConfig {
|
|
|
603
628
|
ignore?: string[] | ((args: ReleaseContentHashConfigArgs) => string[] | undefined);
|
|
604
629
|
}
|
|
605
630
|
/**
|
|
631
|
+
* Severity accepted by npm-package-json-lint release rules.
|
|
632
|
+
*/
|
|
633
|
+
type ReleaseNpmPackageJsonLintSeverity = "error" | "off" | "warning";
|
|
634
|
+
/**
|
|
635
|
+
* One npm-package-json-lint rule setting.
|
|
636
|
+
*/
|
|
637
|
+
type ReleaseNpmPackageJsonLintRuleConfig = ReleaseNpmPackageJsonLintSeverity | readonly [ReleaseNpmPackageJsonLintSeverity, readonly unknown[] | Record<string, unknown>];
|
|
638
|
+
/**
|
|
639
|
+
* npm-package-json-lint settings for the packed publish manifest.
|
|
640
|
+
*/
|
|
641
|
+
interface ReleaseNpmPackageJsonLintConfig {
|
|
642
|
+
/**
|
|
643
|
+
* Rule settings merged over Limina's publish-manifest defaults.
|
|
644
|
+
*/
|
|
645
|
+
rules?: Record<string, ReleaseNpmPackageJsonLintRuleConfig>;
|
|
646
|
+
}
|
|
647
|
+
/**
|
|
606
648
|
* Release check settings.
|
|
607
649
|
*/
|
|
608
650
|
interface ReleaseConfig {
|
|
@@ -610,6 +652,52 @@ interface ReleaseConfig {
|
|
|
610
652
|
* Dependency artifact content hash comparison settings.
|
|
611
653
|
*/
|
|
612
654
|
contentHash?: ReleaseContentHashConfig;
|
|
655
|
+
/**
|
|
656
|
+
* Optional npm-package-json-lint integration for the packed publish
|
|
657
|
+
* manifest. `true` uses Limina's defaults, `false` or omission disables the
|
|
658
|
+
* integration, and an object overrides individual default rules.
|
|
659
|
+
*
|
|
660
|
+
* @default false
|
|
661
|
+
*/
|
|
662
|
+
npmPackageJsonLint?: boolean | ReleaseNpmPackageJsonLintConfig;
|
|
663
|
+
}
|
|
664
|
+
type RegionExcludeKind = "package-scope" | "workspace-package";
|
|
665
|
+
/** A governance root excluded from the current Limina run. */
|
|
666
|
+
interface RegionExcludeConfig {
|
|
667
|
+
/**
|
|
668
|
+
* The kind of governance root excluded by this rule.
|
|
669
|
+
*/
|
|
670
|
+
kind: RegionExcludeKind;
|
|
671
|
+
/**
|
|
672
|
+
* Workspace-root-relative glob patterns matched against candidate root
|
|
673
|
+
* directories.
|
|
674
|
+
*/
|
|
675
|
+
include: string[];
|
|
676
|
+
/**
|
|
677
|
+
* Why the matched governance roots are outside the current Limina run.
|
|
678
|
+
*/
|
|
679
|
+
reason: string;
|
|
680
|
+
}
|
|
681
|
+
/**
|
|
682
|
+
* Pnpm workspace region boundary settings.
|
|
683
|
+
*/
|
|
684
|
+
interface RegionsConfig {
|
|
685
|
+
/**
|
|
686
|
+
* Continue governance through eligible nested package scopes that have no
|
|
687
|
+
* package name and are not claimed by a discovered pnpm workspace.
|
|
688
|
+
*
|
|
689
|
+
* Nested pnpm workspaces remain hard boundaries.
|
|
690
|
+
*
|
|
691
|
+
* @default false
|
|
692
|
+
*/
|
|
693
|
+
extendNestedPackageScopes?: boolean;
|
|
694
|
+
/**
|
|
695
|
+
* Governance units or boundary roots intentionally excluded from the
|
|
696
|
+
* current region.
|
|
697
|
+
*
|
|
698
|
+
* @default []
|
|
699
|
+
*/
|
|
700
|
+
exclude?: RegionExcludeConfig[];
|
|
613
701
|
}
|
|
614
702
|
/**
|
|
615
703
|
* Limina user config.
|
|
@@ -644,6 +732,10 @@ interface LiminaConfig {
|
|
|
644
732
|
*/
|
|
645
733
|
release?: ReleaseConfig;
|
|
646
734
|
/**
|
|
735
|
+
* Pnpm workspace region boundary configuration for a single Limina run.
|
|
736
|
+
*/
|
|
737
|
+
regions?: RegionsConfig;
|
|
738
|
+
/**
|
|
647
739
|
* Rules for source-owned dependency usage checks.
|
|
648
740
|
*/
|
|
649
741
|
source?: SourceCheckConfig;
|
|
@@ -672,7 +764,7 @@ type LiminaConfigFnPromise = (env: LiminaConfigEnv) => Promise<LiminaConfig>;
|
|
|
672
764
|
type LiminaConfigFn = (env: LiminaConfigEnv) => LiminaConfig | Promise<LiminaConfig>;
|
|
673
765
|
type LiminaConfigExport = LiminaConfig | Promise<LiminaConfig> | LiminaConfigFnObject | LiminaConfigFnPromise | LiminaConfigFn;
|
|
674
766
|
/**
|
|
675
|
-
* Type helper for
|
|
767
|
+
* Type helper for Limina config files.
|
|
676
768
|
*
|
|
677
769
|
* Accepts a direct config object, a Promise, or a function that receives the
|
|
678
770
|
* current {@link LiminaConfigEnv}.
|
|
@@ -683,4 +775,71 @@ declare function defineConfig(config: LiminaConfigFnObject): LiminaConfigFnObjec
|
|
|
683
775
|
declare function defineConfig(config: LiminaConfigFnPromise): LiminaConfigFnPromise;
|
|
684
776
|
declare function defineConfig(config: LiminaConfigFn): LiminaConfigFn;
|
|
685
777
|
//#endregion
|
|
686
|
-
|
|
778
|
+
//#region src/domain/shared/identifiers.d.ts
|
|
779
|
+
/** Stable identifiers crossing aggregate and validation-view boundaries. */
|
|
780
|
+
declare const identifierBrand: unique symbol;
|
|
781
|
+
type Identifier<Name extends string> = string & {
|
|
782
|
+
readonly [identifierBrand]: Name;
|
|
783
|
+
};
|
|
784
|
+
type GovernanceIssueId = Identifier<"GovernanceIssueId">;
|
|
785
|
+
type RuleId = Identifier<"RuleId">;
|
|
786
|
+
//#endregion
|
|
787
|
+
//#region src/domain/validation/issues.d.ts
|
|
788
|
+
interface GovernanceIssueLocation {
|
|
789
|
+
readonly column?: number;
|
|
790
|
+
readonly fileId?: string;
|
|
791
|
+
readonly line?: number;
|
|
792
|
+
readonly path?: string;
|
|
793
|
+
readonly projectId?: string;
|
|
794
|
+
}
|
|
795
|
+
interface GovernanceIssueEvidence {
|
|
796
|
+
readonly kind: string;
|
|
797
|
+
readonly location?: GovernanceIssueLocation;
|
|
798
|
+
readonly value: string;
|
|
799
|
+
}
|
|
800
|
+
interface GovernanceIssueOrigin {
|
|
801
|
+
readonly kind: "built-in";
|
|
802
|
+
readonly suite: "architecture" | "package-output" | "release";
|
|
803
|
+
}
|
|
804
|
+
interface GovernanceIssue {
|
|
805
|
+
readonly category: string;
|
|
806
|
+
readonly documentation: string;
|
|
807
|
+
readonly evidence: readonly GovernanceIssueEvidence[];
|
|
808
|
+
readonly id: GovernanceIssueId;
|
|
809
|
+
readonly location?: GovernanceIssueLocation;
|
|
810
|
+
readonly message: string;
|
|
811
|
+
readonly messageId: string;
|
|
812
|
+
readonly origin: GovernanceIssueOrigin;
|
|
813
|
+
readonly ruleId: RuleId;
|
|
814
|
+
readonly severity: IssueSeverity;
|
|
815
|
+
readonly title: string;
|
|
816
|
+
}
|
|
817
|
+
//#endregion
|
|
818
|
+
//#region src/domain/validation/contracts.d.ts
|
|
819
|
+
type IssueSeverity = "error" | "info" | "warning";
|
|
820
|
+
interface RuleOptionProblem {
|
|
821
|
+
readonly message: string;
|
|
822
|
+
readonly path: readonly (number | string)[];
|
|
823
|
+
}
|
|
824
|
+
//#endregion
|
|
825
|
+
//#region src/domain/validation/errors.d.ts
|
|
826
|
+
declare class ConfigurationError extends Error {
|
|
827
|
+
override readonly name = "ConfigurationError";
|
|
828
|
+
readonly problems: readonly RuleOptionProblem[];
|
|
829
|
+
constructor(message: string, problems?: readonly RuleOptionProblem[]);
|
|
830
|
+
}
|
|
831
|
+
declare class ExecutionFailure extends Error {
|
|
832
|
+
override readonly name = "ExecutionFailure";
|
|
833
|
+
override readonly cause: unknown;
|
|
834
|
+
readonly stage?: string;
|
|
835
|
+
constructor(message: string, options: {
|
|
836
|
+
cause: unknown;
|
|
837
|
+
stage?: string;
|
|
838
|
+
});
|
|
839
|
+
}
|
|
840
|
+
declare class CancelledFailure extends Error {
|
|
841
|
+
override readonly name = "CancelledFailure";
|
|
842
|
+
constructor(message?: string);
|
|
843
|
+
}
|
|
844
|
+
//#endregion
|
|
845
|
+
export { type AutoCheckerConfig, type BuildCheckerPreset, type BuiltinCheckerPreset, type BuiltinTaskName, CancelledFailure, type CheckerConfig, type CheckerConfigMode, type CheckerExecutionKind, type CheckerPreset, ConfigurationError, ExecutionFailure, type GovernanceIssue, type GovernanceIssueEvidence, type GovernanceIssueLocation, type GovernanceIssueOrigin, type GraphConditionDomain, type GraphConfig, type GraphRule, type GraphRuleAllowConfig, type GraphRuleDenyConfig, type GraphRuleDepDenyEntry, type GraphRuleRefAllowEntry, type GraphRuleRefDenyEntry, type ImportAnalysisConfig, type IssueSeverity, type LiminaCommand, type LiminaConfig, type LiminaConfigEnv, type LiminaConfigExport, type LiminaConfigFn, type LiminaConfigFnObject, type LiminaConfigFnPromise, type PackageAttwCheckConfig, type PackageAttwIgnoreRule, type PackageAttwLevel, type PackageAttwProfile, type PackageBoundaryCheckConfig, type PackageCheckTool, type PackageCheckToolSelection, type PackageConfig, type PackageEntry, type PackagePublintCheckConfig, type PackagePublintLevel, type PipelineStep, type ProofAllowlistEntry, type ProofConfig, type RegionExcludeConfig, type RegionExcludeKind, type RegionsConfig, type ReleaseConfig, type ReleaseContentHashConfig, type ReleaseContentHashConfigArgs, type ReleaseNpmPackageJsonLintConfig, type ReleaseNpmPackageJsonLintRuleConfig, type ReleaseNpmPackageJsonLintSeverity, type RuntimeEnvironment, type SharedLiminaConfig, type SourceAmbientDeclarationConfig, type SourceBoundaryConfig, type SourceCheckConfig, type SourceDeclarationsConfig, type SourceImportAuthorityConfig, type SourceImportAuthorityWorkspaceRootGrant, type SourceKnipCheckConfig, type SourceKnipEntryConfig, type SourceKnipIgnoredDependencyConfig, type SourceKnipIgnoredFileConfig, type SourceKnipWorkspaceConfig, type VueImportParser, defineConfig };
|
package/index.js
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { t as defineConfig } from "./chunks/dep-
|
|
2
|
-
|
|
3
|
-
export { defineConfig };
|
|
1
|
+
import { a as CancelledFailure, o as ConfigurationError, s as ExecutionFailure, t as defineConfig } from "./chunks/dep-D63Sc9OL.js";
|
|
2
|
+
export { CancelledFailure, ConfigurationError, ExecutionFailure, defineConfig };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "limina",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Senao Xi",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"architecture"
|
|
14
14
|
],
|
|
15
15
|
"engines": {
|
|
16
|
-
"node": "^
|
|
16
|
+
"node": "^22.18.0 || >=24.11.0"
|
|
17
17
|
},
|
|
18
18
|
"repository": {
|
|
19
19
|
"type": "git",
|
|
@@ -31,21 +31,23 @@
|
|
|
31
31
|
"limina": "./bin/limina.js"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"picomatch": "^4.0.
|
|
35
|
-
"tinyglobby": "^0.2.
|
|
36
|
-
"oxc-parser": "^0.
|
|
37
|
-
"oxc-resolver": "^11.
|
|
34
|
+
"picomatch": "^4.0.5",
|
|
35
|
+
"tinyglobby": "^0.2.17",
|
|
36
|
+
"oxc-parser": "^0.138.0",
|
|
37
|
+
"oxc-resolver": "^11.23.0"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
40
|
"@arethetypeswrong/core": "^0.18.0",
|
|
41
|
-
"@typescript/native-preview": ">=7.0.0-dev.
|
|
42
|
-
"@vue/compiler-sfc": "
|
|
43
|
-
"knip": "
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
41
|
+
"@typescript/native-preview": ">=7.0.0-dev.20260421.2 <7.0.0",
|
|
42
|
+
"@vue/compiler-sfc": ">=3.0.0 <4.0.0",
|
|
43
|
+
"knip": ">=6.0.0 <7.0.0",
|
|
44
|
+
"npm-package-json-lint": ">=9.1.0 <10.0.0",
|
|
45
|
+
"publint": ">=0.3.0 <0.4.0",
|
|
46
|
+
"svelte-check": ">=4.0.0 <5.0.0",
|
|
47
|
+
"tsx": "^4.9.0",
|
|
48
|
+
"typescript": "^5.4.0 || ^6.0.0",
|
|
49
|
+
"vue-tsc": "^2.1.2 || ^3.0.0",
|
|
50
|
+
"vue-tsgo": "*"
|
|
49
51
|
},
|
|
50
52
|
"peerDependenciesMeta": {
|
|
51
53
|
"@arethetypeswrong/core": {
|
|
@@ -60,13 +62,16 @@
|
|
|
60
62
|
"knip": {
|
|
61
63
|
"optional": true
|
|
62
64
|
},
|
|
65
|
+
"npm-package-json-lint": {
|
|
66
|
+
"optional": true
|
|
67
|
+
},
|
|
63
68
|
"publint": {
|
|
64
69
|
"optional": true
|
|
65
70
|
},
|
|
66
71
|
"svelte-check": {
|
|
67
72
|
"optional": true
|
|
68
73
|
},
|
|
69
|
-
"
|
|
74
|
+
"tsx": {
|
|
70
75
|
"optional": true
|
|
71
76
|
},
|
|
72
77
|
"vue-tsc": {
|
|
@@ -10,6 +10,9 @@
|
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
12
|
"type": "object",
|
|
13
|
+
"not": {
|
|
14
|
+
"required": ["limina"]
|
|
15
|
+
},
|
|
13
16
|
"properties": {
|
|
14
17
|
"liminaOptions": {
|
|
15
18
|
"$ref": "#/definitions/liminaOptions"
|
|
@@ -56,6 +59,11 @@
|
|
|
56
59
|
"$ref": "#/definitions/nonEmptyString",
|
|
57
60
|
"description": "TypeScript target for generated artifact output builds."
|
|
58
61
|
},
|
|
62
|
+
"declarationMap": {
|
|
63
|
+
"type": "boolean",
|
|
64
|
+
"default": false,
|
|
65
|
+
"description": "Whether generated artifact output builds should emit declaration maps."
|
|
66
|
+
},
|
|
59
67
|
"rootDir": {
|
|
60
68
|
"$ref": "#/definitions/nonEmptyString",
|
|
61
69
|
"description": "Artifact build rootDir, relative to this tsconfig."
|
|
@@ -63,16 +71,12 @@
|
|
|
63
71
|
"outDir": {
|
|
64
72
|
"$ref": "#/definitions/nonEmptyString",
|
|
65
73
|
"description": "Artifact build outDir, relative to this tsconfig."
|
|
66
|
-
},
|
|
67
|
-
"tsBuildInfoFile": {
|
|
68
|
-
"$ref": "#/definitions/nonEmptyString",
|
|
69
|
-
"description": "Artifact build tsBuildInfoFile, relative to this tsconfig."
|
|
70
74
|
}
|
|
71
75
|
}
|
|
72
76
|
},
|
|
73
77
|
"graphRules": {
|
|
74
78
|
"type": "array",
|
|
75
|
-
"description": "Graph rule labels from limina.config.
|
|
79
|
+
"description": "Graph rule labels from limina.config.mts#graph.rules that apply to this declaration leaf.",
|
|
76
80
|
"uniqueItems": true,
|
|
77
81
|
"items": {
|
|
78
82
|
"$ref": "#/definitions/nonEmptyString"
|
package/chunks/dep-BPK-6PAr.js
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { createRequire } from "node:module";
|
|
2
|
-
|
|
3
|
-
//#region \0rolldown/runtime.js
|
|
4
|
-
var __create = Object.create;
|
|
5
|
-
var __defProp = Object.defineProperty;
|
|
6
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
-
var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
11
|
-
var __exportAll = (all, no_symbols) => {
|
|
12
|
-
let target = {};
|
|
13
|
-
for (var name in all) {
|
|
14
|
-
__defProp(target, name, {
|
|
15
|
-
get: all[name],
|
|
16
|
-
enumerable: true
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
if (!no_symbols) {
|
|
20
|
-
__defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
21
|
-
}
|
|
22
|
-
return target;
|
|
23
|
-
};
|
|
24
|
-
var __copyProps = (to, from, except, desc) => {
|
|
25
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
26
|
-
for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
27
|
-
key = keys[i];
|
|
28
|
-
if (!__hasOwnProp.call(to, key) && key !== except) {
|
|
29
|
-
__defProp(to, key, {
|
|
30
|
-
get: ((k) => from[k]).bind(null, key),
|
|
31
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return to;
|
|
37
|
-
};
|
|
38
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
39
|
-
value: mod,
|
|
40
|
-
enumerable: true
|
|
41
|
-
}) : target, mod));
|
|
42
|
-
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
43
|
-
|
|
44
|
-
//#endregion
|
|
45
|
-
//#region ../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js
|
|
46
|
-
var require_picocolors = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
47
|
-
let p = process || {}, argv = p.argv || [], env = p.env || {};
|
|
48
|
-
let isColorSupported = !(!!env.NO_COLOR || argv.includes("--no-color")) && (!!env.FORCE_COLOR || argv.includes("--color") || p.platform === "win32" || (p.stdout || {}).isTTY && env.TERM !== "dumb" || !!env.CI);
|
|
49
|
-
let formatter = (open, close, replace = open) => (input) => {
|
|
50
|
-
let string = "" + input, index = string.indexOf(close, open.length);
|
|
51
|
-
return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;
|
|
52
|
-
};
|
|
53
|
-
let replaceClose = (string, close, replace, index) => {
|
|
54
|
-
let result = "", cursor = 0;
|
|
55
|
-
do {
|
|
56
|
-
result += string.substring(cursor, index) + replace;
|
|
57
|
-
cursor = index + close.length;
|
|
58
|
-
index = string.indexOf(close, cursor);
|
|
59
|
-
} while (~index);
|
|
60
|
-
return result + string.substring(cursor);
|
|
61
|
-
};
|
|
62
|
-
let createColors = (enabled = isColorSupported) => {
|
|
63
|
-
let f = enabled ? formatter : () => String;
|
|
64
|
-
return {
|
|
65
|
-
isColorSupported: enabled,
|
|
66
|
-
reset: f("\x1B[0m", "\x1B[0m"),
|
|
67
|
-
bold: f("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m"),
|
|
68
|
-
dim: f("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m"),
|
|
69
|
-
italic: f("\x1B[3m", "\x1B[23m"),
|
|
70
|
-
underline: f("\x1B[4m", "\x1B[24m"),
|
|
71
|
-
inverse: f("\x1B[7m", "\x1B[27m"),
|
|
72
|
-
hidden: f("\x1B[8m", "\x1B[28m"),
|
|
73
|
-
strikethrough: f("\x1B[9m", "\x1B[29m"),
|
|
74
|
-
black: f("\x1B[30m", "\x1B[39m"),
|
|
75
|
-
red: f("\x1B[31m", "\x1B[39m"),
|
|
76
|
-
green: f("\x1B[32m", "\x1B[39m"),
|
|
77
|
-
yellow: f("\x1B[33m", "\x1B[39m"),
|
|
78
|
-
blue: f("\x1B[34m", "\x1B[39m"),
|
|
79
|
-
magenta: f("\x1B[35m", "\x1B[39m"),
|
|
80
|
-
cyan: f("\x1B[36m", "\x1B[39m"),
|
|
81
|
-
white: f("\x1B[37m", "\x1B[39m"),
|
|
82
|
-
gray: f("\x1B[90m", "\x1B[39m"),
|
|
83
|
-
bgBlack: f("\x1B[40m", "\x1B[49m"),
|
|
84
|
-
bgRed: f("\x1B[41m", "\x1B[49m"),
|
|
85
|
-
bgGreen: f("\x1B[42m", "\x1B[49m"),
|
|
86
|
-
bgYellow: f("\x1B[43m", "\x1B[49m"),
|
|
87
|
-
bgBlue: f("\x1B[44m", "\x1B[49m"),
|
|
88
|
-
bgMagenta: f("\x1B[45m", "\x1B[49m"),
|
|
89
|
-
bgCyan: f("\x1B[46m", "\x1B[49m"),
|
|
90
|
-
bgWhite: f("\x1B[47m", "\x1B[49m"),
|
|
91
|
-
blackBright: f("\x1B[90m", "\x1B[39m"),
|
|
92
|
-
redBright: f("\x1B[91m", "\x1B[39m"),
|
|
93
|
-
greenBright: f("\x1B[92m", "\x1B[39m"),
|
|
94
|
-
yellowBright: f("\x1B[93m", "\x1B[39m"),
|
|
95
|
-
blueBright: f("\x1B[94m", "\x1B[39m"),
|
|
96
|
-
magentaBright: f("\x1B[95m", "\x1B[39m"),
|
|
97
|
-
cyanBright: f("\x1B[96m", "\x1B[39m"),
|
|
98
|
-
whiteBright: f("\x1B[97m", "\x1B[39m"),
|
|
99
|
-
bgBlackBright: f("\x1B[100m", "\x1B[49m"),
|
|
100
|
-
bgRedBright: f("\x1B[101m", "\x1B[49m"),
|
|
101
|
-
bgGreenBright: f("\x1B[102m", "\x1B[49m"),
|
|
102
|
-
bgYellowBright: f("\x1B[103m", "\x1B[49m"),
|
|
103
|
-
bgBlueBright: f("\x1B[104m", "\x1B[49m"),
|
|
104
|
-
bgMagentaBright: f("\x1B[105m", "\x1B[49m"),
|
|
105
|
-
bgCyanBright: f("\x1B[106m", "\x1B[49m"),
|
|
106
|
-
bgWhiteBright: f("\x1B[107m", "\x1B[49m")
|
|
107
|
-
};
|
|
108
|
-
};
|
|
109
|
-
module.exports = createColors();
|
|
110
|
-
module.exports.createColors = createColors;
|
|
111
|
-
}));
|
|
112
|
-
|
|
113
|
-
//#endregion
|
|
114
|
-
export { __toESM as a, __require as i, __commonJSMin as n, __exportAll as r, require_picocolors as t };
|