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.
@@ -1,5 +1,4 @@
1
- import { a as SPINNER_FRAMES, l as hasRunningSnapshotWork, n as TerminalFrameTracker, o as SPINNER_INTERVAL_MS, t as DEFAULT_TERMINAL_COLUMNS, u as renderSnapshotLinesForTerminal } from "./chunks/dep-mnWOqiGN.js";
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 ?? DEFAULT_TERMINAL_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
- }, SPINNER_INTERVAL_MS);
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 the inferred workspace root unless `cwd` is set.
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 the inferred workspace root.
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
- * Workspace-root-relative source module path.
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
- * Workspace-root-relative file or glob patterns that Knip should treat as
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
- * Explicit bare-import authority rule for imports not fully authorized by the
204
- * owning source package manifest.
210
+ * Bare package import authority settings interpreted by source checks.
205
211
  */
206
- interface SourceImportAuthorityAllowRule {
207
- /**
208
- * Workspace-root-relative source file globs where this authorization applies.
209
- */
210
- files: string[];
212
+ interface SourceImportAuthorityConfig {
211
213
  /**
212
- * Package names or package-name globs whose declarations may also be read
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
- packages?: string[];
216
+ allow?: Record<string, SourceImportAuthorityWorkspaceRootGrant[]>;
217
+ }
218
+ interface SourceImportAuthorityWorkspaceRootGrant {
216
219
  /**
217
- * Full import specifiers or specifier globs authorized by this rule.
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
- specifiers?: string[];
225
+ include?: string[];
220
226
  /**
221
- * Optional source owner identity. Named owners use their package name;
222
- * nameless owners use their workspace-root-relative package directory.
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
- owner?: string;
230
+ workspaceRootDependencies: string[];
225
231
  /**
226
- * Why this import may use the matched authority rule.
232
+ * Why this owner may use these workspace-root dependency declarations.
227
233
  */
228
234
  reason: string;
229
235
  }
230
- /**
231
- * Bare package import authority settings interpreted by source checks.
232
- */
233
- interface SourceImportAuthorityConfig {
236
+ interface SourceAmbientDeclarationConfig {
237
+ /** Config-root-relative glob patterns filtering activated-island files. */
238
+ include: string[];
234
239
  /**
235
- * Explicit import authority rules. `packages` makes the workspace root
236
- * package.json an additional declaration candidate; `specifiers` authorizes
237
- * exact import specifier exceptions.
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
- allow?: SourceImportAuthorityAllowRule[];
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/JSON source defaults and adds
268
- * framework extensions from configured checkers, such as `.vue` or
269
- * `.svelte`.
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 reads the workspace root `.gitignore` and combines it
276
- * with the built-in excludes below.
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 `tsconfig*.dts.json` path, relative to the inferred workspace root.
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 `tsconfig*.dts.json` path, relative to the inferred workspace root.
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 `tsconfig*.dts.json` path, relative to the inferred workspace root.
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
- * File path to allow, relative to the inferred workspace root.
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 the inferred workspace root.
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 limina.config.mjs.
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
- export { type AutoCheckerConfig, type BuildCheckerPreset, type BuiltinCheckerPreset, type BuiltinTaskName, type CheckerConfig, type CheckerConfigMode, type CheckerExecutionKind, type CheckerPreset, type GraphConditionDomain, type GraphConfig, type GraphRule, type GraphRuleAllowConfig, type GraphRuleDenyConfig, type GraphRuleDepDenyEntry, type GraphRuleRefAllowEntry, type GraphRuleRefDenyEntry, type ImportAnalysisConfig, 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 ReleaseConfig, type ReleaseContentHashConfig, type ReleaseContentHashConfigArgs, type RuntimeEnvironment, type SharedLiminaConfig, type SourceBoundaryConfig, type SourceCheckConfig, type SourceImportAuthorityAllowRule, type SourceImportAuthorityConfig, type SourceKnipCheckConfig, type SourceKnipEntryConfig, type SourceKnipIgnoredDependencyConfig, type SourceKnipIgnoredFileConfig, type SourceKnipWorkspaceConfig, type VueImportParser, defineConfig };
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-DJz9JBTi.js";
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.1.2",
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": "^20.19.0 || >=22.12.0"
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.4",
35
- "tinyglobby": "^0.2.15",
36
- "oxc-parser": "^0.133.0",
37
- "oxc-resolver": "^11.20.0"
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.20260527.1 <7.0.0",
42
- "@vue/compiler-sfc": "^3.5.0",
43
- "knip": "^6.15.0",
44
- "publint": "^0.3.0",
45
- "svelte-check": "^4.4.0",
46
- "typescript": "^5.9.0",
47
- "vue-tsc": "^3.2.4",
48
- "vue-tsgo": "^0.2.2"
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
- "typescript": {
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.mjs#graph.rules that apply to this declaration leaf.",
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"
@@ -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 };