limina 0.0.3 → 0.0.5

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/config.d.ts CHANGED
@@ -23,7 +23,7 @@ type PipelineStep = string | {
23
23
  */
24
24
  args?: string[];
25
25
  /**
26
- * Executable name, for example `pnpm`, `tsc`, or `vue-tsc`.
26
+ * Executable name, for example `pnpm`, `tsc`, `tsgo`, `vue-tsc`, or `vue-tsgo`.
27
27
  *
28
28
  * The command runs from the inferred workspace root unless `cwd` is set.
29
29
  */
@@ -55,8 +55,8 @@ type PipelineStep = string | {
55
55
  /**
56
56
  * Built-in task names understood by Limina pipelines.
57
57
  */
58
- type BuiltinTaskName = "checker:build" | "checker:typecheck" | "graph:check" | "package:check" | "proof:check" | "source:check";
59
- type BuiltinCheckerPreset = "svelte-check" | "tsc" | "vue-tsc";
58
+ type BuiltinTaskName = "checker:build" | "checker:typecheck" | "graph:check" | "nx:check" | "package:check" | "proof:check" | "release:check" | "source:check";
59
+ type BuiltinCheckerPreset = "svelte-check" | "tsc" | "tsgo" | "vue-tsc" | "vue-tsgo";
60
60
  type CheckerPreset = BuiltinCheckerPreset;
61
61
  type CheckerExecutionKind = "build" | "typecheck";
62
62
  /**
@@ -64,7 +64,7 @@ type CheckerExecutionKind = "build" | "typecheck";
64
64
  */
65
65
  interface CheckerConfig {
66
66
  /**
67
- * Built-in checker preset, such as `tsc`, `vue-tsc`, or `svelte-check`.
67
+ * Built-in checker preset, such as `tsc`, `tsgo`, `vue-tsc`, `vue-tsgo`, or `svelte-check`.
68
68
  */
69
69
  preset: CheckerPreset;
70
70
  /**
@@ -79,18 +79,118 @@ interface ResolvedCheckerConfig {
79
79
  preset: CheckerPreset;
80
80
  }
81
81
  /**
82
- * Source boundary that must be covered by checker entries or allowlist proof.
82
+ * Explicit exception for a declared workspace package dependency that is used
83
+ * through generated code, runtime strings, or another path that Knip
84
+ * dependency analysis cannot see.
85
+ */
86
+ interface SourceUnusedDependencyIgnoreEntry {
87
+ /**
88
+ * Importing package name from package.json.
89
+ */
90
+ importer: string;
91
+ /**
92
+ * Declared workspace dependency package name.
93
+ */
94
+ dependency: string;
95
+ /**
96
+ * Why the dependency is safe to keep even when Knip cannot prove it is
97
+ * reachable from package entries, binaries, or scripts.
98
+ */
99
+ reason: string;
100
+ }
101
+ /**
102
+ * Source dependency usage settings.
103
+ */
104
+ interface SourceUnusedDependenciesConfig {
105
+ /**
106
+ * Declared workspace dependencies intentionally not visible through Knip's
107
+ * entry-reachable dependency graph.
108
+ */
109
+ ignore?: SourceUnusedDependencyIgnoreEntry[];
110
+ }
111
+ /**
112
+ * Explicit exception for a source module that is owned by a package but is
113
+ * intentionally not reachable from Knip's package entry graph.
114
+ */
115
+ interface SourceUnusedModuleIgnoreEntry {
116
+ /**
117
+ * Named package owner from package.json.
118
+ */
119
+ owner: string;
120
+ /**
121
+ * Workspace-root-relative source module path.
122
+ */
123
+ file: string;
124
+ /**
125
+ * Why the source module is safe to keep even when Knip cannot prove it is
126
+ * reachable from package entries, binaries, or scripts.
127
+ */
128
+ reason: string;
129
+ }
130
+ /**
131
+ * Additional source module entries for Knip's strict-mode reachability graph.
132
+ */
133
+ interface SourceUnusedModuleEntryConfig {
134
+ /**
135
+ * Named package owner from package.json.
136
+ */
137
+ owner: string;
138
+ /**
139
+ * Workspace-root-relative file or glob patterns that Knip should treat as
140
+ * additional entries for this owner.
141
+ */
142
+ files: string[];
143
+ /**
144
+ * Why these modules are legitimate entries even though they are not package
145
+ * exports, binaries, scripts, or plugin-discovered entries.
146
+ */
147
+ reason: string;
148
+ }
149
+ /**
150
+ * Source module usage settings.
151
+ */
152
+ interface SourceUnusedModulesConfig {
153
+ /**
154
+ * Additional entry globs for source modules loaded by test runners or local
155
+ * tooling rather than package exports.
156
+ */
157
+ entries?: SourceUnusedModuleEntryConfig[];
158
+ /**
159
+ * Package-owned source modules intentionally not visible through Knip's
160
+ * entry-reachable file graph.
161
+ */
162
+ ignore?: SourceUnusedModuleIgnoreEntry[];
163
+ }
164
+ /**
165
+ * Source-owned dependency usage check settings.
166
+ */
167
+ interface SourceCheckConfig {
168
+ /**
169
+ * Checks that workspace package dependencies declared in package.json are
170
+ * reachable from package entries, binaries, or scripts owned by that package.
171
+ */
172
+ unusedDependencies?: SourceUnusedDependenciesConfig;
173
+ /**
174
+ * Strict-mode exceptions for package-owned source modules that are not
175
+ * reachable from package entries, binaries, or scripts owned by that package.
176
+ *
177
+ * There is no enabled switch: strict: true enables unused module checks.
178
+ */
179
+ unusedModules?: SourceUnusedModulesConfig;
180
+ }
181
+ /**
182
+ * Global source boundary used by proof checks.
83
183
  */
84
184
  interface SourceBoundaryConfig {
85
185
  /**
86
- * Glob patterns for source files that need proof coverage.
186
+ * Glob patterns for source files that Limina should govern.
87
187
  *
88
188
  * When omitted, Limina derives the source boundary from configured checker
89
189
  * extensions and then applies `exclude`.
90
190
  */
91
191
  include?: string[];
92
192
  /**
93
- * Glob patterns or directory shorthands to omit from proof coverage.
193
+ * Glob patterns or directory shorthands to omit from source governance.
94
194
  *
95
195
  * @default: [
96
196
  * "node_modules",
@@ -100,6 +200,7 @@ interface SourceBoundaryConfig {
100
200
  * "coverage",
101
201
  * "**\/tsconfig*.json",
102
202
  * "**\/package.json",
203
+ * "**\/project.json",
103
204
  * ".prettierrc.json",
104
205
  * ".markdownlint.json",
105
206
  * "vercel.json",
@@ -116,7 +217,7 @@ interface SharedLiminaConfig {
116
217
  */
117
218
  checkers?: Record<string, CheckerConfig>;
118
219
  /**
119
- * Source file boundary used by coverage proof.
220
+ * Global source file boundary used by proof checks.
120
221
  */
121
222
  source?: SourceBoundaryConfig;
122
223
  }
@@ -167,6 +268,20 @@ interface GraphRuleRefDenyEntry {
167
268
  reason: string;
168
269
  }
169
270
  /**
271
+ * Declaration leaf boundary explicitly allowed for projects with a matching
272
+ * Limina graph rule when static import analysis cannot prove the edge.
273
+ */
274
+ interface GraphRuleRefAllowEntry {
275
+ /**
276
+ * Target `tsconfig*.dts.json` path, relative to the inferred workspace root.
277
+ */
278
+ path: string;
279
+ /**
280
+ * Human-readable explanation documenting why this extra reference is safe.
281
+ */
282
+ reason: string;
283
+ }
284
+ /**
170
285
  * Dependency denied to projects with a matching Limina label.
171
286
  */
172
287
  interface GraphRuleDepDenyEntry {
@@ -197,10 +312,24 @@ interface GraphRuleDenyConfig {
197
312
  deps?: GraphRuleDepDenyEntry[];
198
313
  }
199
314
  /**
315
+ * Allow lists for a Limina graph label.
316
+ */
317
+ interface GraphRuleAllowConfig {
318
+ /**
319
+ * Extra declaration leaf boundaries that matching projects may keep even
320
+ * when static import analysis cannot prove them.
321
+ */
322
+ refs?: GraphRuleRefAllowEntry[];
323
+ }
324
+ /**
200
325
  * Package-level graph governance rule keyed by a label declared in
201
326
  * `tsconfig*.dts.json`.
202
327
  */
203
328
  interface GraphRule {
329
+ /**
330
+ * Allowed graph boundaries that static analysis cannot prove.
331
+ */
332
+ allow?: GraphRuleAllowConfig;
204
333
  /**
205
334
  * Denied graph boundaries and workspace package dependencies.
206
335
  */
@@ -213,8 +342,8 @@ interface GraphConfig {
213
342
  /**
214
343
  * Label-based package and build-boundary access rules.
215
344
  *
216
- * A `tsconfig*.dts.json` can opt into one rule by declaring
217
- * `"limina": "<label>"`.
345
+ * A `tsconfig*.dts.json` can opt into one or more rules by declaring
346
+ * `liminaOptions.graphRules`.
218
347
  */
219
348
  rules?: Record<string, GraphRule>;
220
349
  }
@@ -295,15 +424,19 @@ interface PackageBoundaryCheckConfig {
295
424
  ignoredExternalPackages?: string[];
296
425
  }
297
426
  /**
298
- * One published package output to check.
427
+ * One published package output entry.
299
428
  */
300
- interface PackageCheckTarget {
429
+ interface PackageEntry {
430
+ /**
431
+ * Package name used by CLI filters, reports, and cwd release matching.
432
+ */
433
+ name: string;
301
434
  /**
302
435
  * Built package directory to scan, relative to the inferred workspace root.
303
436
  */
304
437
  outDir: string;
305
438
  /**
306
- * Package check tools enabled for this target.
439
+ * Package check tools enabled for this entry.
307
440
  *
308
441
  * @default ["publint", "attw", "boundary"]
309
442
  */
@@ -320,26 +453,72 @@ interface PackageCheckTarget {
320
453
  * Built package import boundary settings.
321
454
  */
322
455
  boundary?: PackageBoundaryCheckConfig;
456
+ }
457
+ /**
458
+ * Published package settings.
459
+ */
460
+ interface PackageConfig {
461
+ /**
462
+ * Built package outputs to check.
463
+ */
464
+ entries?: PackageEntry[];
465
+ }
466
+ interface ReleaseContentHashConfigArgs {
467
+ /**
468
+ * Package currently being release-checked.
469
+ */
470
+ importerName: string;
471
+ /**
472
+ * Workspace dependency package being compared against npm.
473
+ */
474
+ dependencyName: string;
475
+ }
476
+ /**
477
+ * Release dependency artifact content hash settings.
478
+ */
479
+ interface ReleaseContentHashConfig {
480
+ /**
481
+ * npm dist-tag used as the online baseline for dependency package output.
482
+ *
483
+ * @default "latest"
484
+ */
485
+ baselineTag?: string | ((args: ReleaseContentHashConfigArgs) => string);
323
486
  /**
324
- * Friendly target name used by CLI filters and reports.
487
+ * Use Limina's built-in dependency artifact ignore set as a fallback when
488
+ * `ignore` is omitted or returns `undefined`.
325
489
  *
326
- * Defaults to the `outDir` path.
490
+ * @default false
327
491
  */
328
- name?: string;
492
+ builtinIgnore?: boolean;
493
+ /**
494
+ * Additional package-relative glob patterns ignored by dependency artifact
495
+ * content hashes.
496
+ */
497
+ ignore?: string[] | ((args: ReleaseContentHashConfigArgs) => string[] | undefined);
329
498
  }
330
499
  /**
331
- * Published package check settings.
500
+ * Release check settings.
332
501
  */
333
- interface PackageChecksConfig {
502
+ interface ReleaseConfig {
334
503
  /**
335
- * Built package outputs to check.
504
+ * Dependency artifact content hash comparison settings.
336
505
  */
337
- targets?: PackageCheckTarget[];
506
+ contentHash?: ReleaseContentHashConfig;
338
507
  }
339
508
  /**
340
509
  * Limina user config.
341
510
  */
342
511
  interface LiminaConfig {
512
+ /**
513
+ * Enable strict workspace modeling rules.
514
+ *
515
+ * Strict mode keeps the existing command surface but makes graph, proof,
516
+ * source, package, and release checks enforce the complete Limina workspace
517
+ * model.
518
+ *
519
+ * @default false
520
+ */
521
+ strict?: boolean;
343
522
  /**
344
523
  * Shared project facts, such as checker entries and source boundary.
345
524
  */
@@ -351,7 +530,7 @@ interface LiminaConfig {
351
530
  /**
352
531
  * Rules for checking built package outputs before publishing.
353
532
  */
354
- packageChecks?: PackageChecksConfig;
533
+ package?: PackageConfig;
355
534
  /**
356
535
  * Options for generating TypeScript source `paths` compatibility files.
357
536
  */
@@ -364,11 +543,19 @@ interface LiminaConfig {
364
543
  * Rules that prove source files are covered by graph or checker entries.
365
544
  */
366
545
  proof?: ProofConfig;
546
+ /**
547
+ * Rules for release dependency artifact comparisons.
548
+ */
549
+ release?: ReleaseConfig;
550
+ /**
551
+ * Rules for source-owned dependency usage checks.
552
+ */
553
+ source?: SourceCheckConfig;
367
554
  }
368
555
  /**
369
556
  * CLI command currently loading the config.
370
557
  */
371
- type LiminaCommand = "check" | "graph" | "package" | "paths" | "proof" | "source" | (string & {});
558
+ type LiminaCommand = "check" | "graph" | "nx" | "package" | "paths" | "proof" | "release" | "source" | (string & {});
372
559
  /**
373
560
  * Environment passed to function-style configs.
374
561
  */
@@ -410,6 +597,7 @@ declare function defineConfig(config: LiminaConfigFnObject): LiminaConfigFnObjec
410
597
  declare function defineConfig(config: LiminaConfigFnPromise): LiminaConfigFnPromise;
411
598
  declare function defineConfig(config: LiminaConfigFn): LiminaConfigFn;
412
599
  declare function validateLiminaConfig(config: LiminaConfig): void;
600
+ declare function isStrictConfig(config: Pick<LiminaConfig, "strict">): boolean;
413
601
  declare function getActiveCheckers(config: LiminaConfig): ResolvedCheckerConfig[];
414
602
  declare function getActiveCheckerExtensions(config: LiminaConfig): string[];
415
603
  interface LoadConfigOptions {
@@ -440,4 +628,4 @@ interface LoadConfigOptions {
440
628
  }
441
629
  declare function loadConfig(options?: LoadConfigOptions): Promise<ResolvedLiminaConfig>;
442
630
  //#endregion
443
- export { BuiltinCheckerPreset, BuiltinTaskName, CheckerConfig, CheckerExecutionKind, CheckerPreset, GraphConfig, GraphRule, GraphRuleDenyConfig, GraphRuleDepDenyEntry, GraphRuleRefDenyEntry, LiminaCommand, LiminaConfig, LiminaConfigEnv, LiminaConfigExport, LiminaConfigFn, LiminaConfigFnObject, LiminaConfigFnPromise, LoadConfigOptions, PackageAttwCheckConfig, PackageAttwProfile, PackageBoundaryCheckConfig, PackageCheckTarget, PackageCheckTool, PackageCheckToolSelection, PackageChecksConfig, PackagePublintCheckConfig, PathsConfig, PipelineStep, ProofAllowlistEntry, ProofConfig, ResolvedCheckerConfig, ResolvedLiminaConfig, RuntimeEnvironment, SharedLiminaConfig, SourceBoundaryConfig, defineConfig, getActiveCheckerExtensions, getActiveCheckers, loadConfig, validateLiminaConfig };
631
+ export { BuiltinCheckerPreset, BuiltinTaskName, CheckerConfig, CheckerExecutionKind, CheckerPreset, GraphConfig, GraphRule, GraphRuleAllowConfig, GraphRuleDenyConfig, GraphRuleDepDenyEntry, GraphRuleRefAllowEntry, GraphRuleRefDenyEntry, LiminaCommand, LiminaConfig, LiminaConfigEnv, LiminaConfigExport, LiminaConfigFn, LiminaConfigFnObject, LiminaConfigFnPromise, LoadConfigOptions, PackageAttwCheckConfig, PackageAttwProfile, PackageBoundaryCheckConfig, PackageCheckTool, PackageCheckToolSelection, PackageConfig, PackageEntry, PackagePublintCheckConfig, PathsConfig, PipelineStep, ProofAllowlistEntry, ProofConfig, ReleaseConfig, ReleaseContentHashConfig, ReleaseContentHashConfigArgs, ResolvedCheckerConfig, ResolvedLiminaConfig, RuntimeEnvironment, SharedLiminaConfig, SourceBoundaryConfig, SourceCheckConfig, SourceUnusedDependenciesConfig, SourceUnusedDependencyIgnoreEntry, SourceUnusedModuleEntryConfig, SourceUnusedModuleIgnoreEntry, SourceUnusedModulesConfig, defineConfig, getActiveCheckerExtensions, getActiveCheckers, isStrictConfig, loadConfig, validateLiminaConfig };
package/config.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import "./chunks/dep-lkQg1P9Q.js";
2
- import { a as validateLiminaConfig, i as loadConfig, n as getActiveCheckerExtensions, r as getActiveCheckers, t as defineConfig } from "./chunks/dep-DzYrmtQJ.js";
2
+ import { a as loadConfig, i as isStrictConfig, n as getActiveCheckerExtensions, o as validateLiminaConfig, r as getActiveCheckers, t as defineConfig } from "./chunks/dep-CBKvJc4Y.js";
3
3
 
4
- export { defineConfig, getActiveCheckerExtensions, getActiveCheckers, loadConfig, validateLiminaConfig };
4
+ export { defineConfig, getActiveCheckerExtensions, getActiveCheckers, isStrictConfig, loadConfig, validateLiminaConfig };
package/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { BuiltinCheckerPreset, BuiltinTaskName, CheckerConfig, CheckerExecutionKind, CheckerPreset, GraphConfig, GraphRule, GraphRuleDenyConfig, GraphRuleDepDenyEntry, GraphRuleRefDenyEntry, LiminaCommand, LiminaConfig, LiminaConfigEnv, LiminaConfigExport, LiminaConfigFn, LiminaConfigFnObject, LiminaConfigFnPromise, LoadConfigOptions, PackageAttwCheckConfig, PackageAttwProfile, PackageBoundaryCheckConfig, PackageCheckTarget, PackageCheckTool, PackageCheckToolSelection, PackageChecksConfig, PackagePublintCheckConfig, PathsConfig, PipelineStep, ProofAllowlistEntry, ProofConfig, ResolvedCheckerConfig, ResolvedLiminaConfig, RuntimeEnvironment, SharedLiminaConfig, SourceBoundaryConfig, defineConfig, getActiveCheckerExtensions, getActiveCheckers, loadConfig, validateLiminaConfig } from "./config.js";
1
+ import { BuiltinCheckerPreset, BuiltinTaskName, CheckerConfig, CheckerExecutionKind, CheckerPreset, GraphConfig, GraphRule, GraphRuleAllowConfig, GraphRuleDenyConfig, GraphRuleDepDenyEntry, GraphRuleRefAllowEntry, GraphRuleRefDenyEntry, LiminaCommand, LiminaConfig, LiminaConfigEnv, LiminaConfigExport, LiminaConfigFn, LiminaConfigFnObject, LiminaConfigFnPromise, LoadConfigOptions, PackageAttwCheckConfig, PackageAttwProfile, PackageBoundaryCheckConfig, PackageCheckTool, PackageCheckToolSelection, PackageConfig, PackageEntry, PackagePublintCheckConfig, PathsConfig, PipelineStep, ProofAllowlistEntry, ProofConfig, ResolvedCheckerConfig, ResolvedLiminaConfig, RuntimeEnvironment, SharedLiminaConfig, SourceBoundaryConfig, SourceCheckConfig, SourceUnusedDependenciesConfig, SourceUnusedDependencyIgnoreEntry, defineConfig, getActiveCheckerExtensions, getActiveCheckers, loadConfig, validateLiminaConfig } from "./config.js";
2
2
  //#region src/flow.d.ts
3
3
  interface ClackLogAdapter {
4
4
  error: (message: string) => void;
@@ -62,6 +62,26 @@ declare class LiminaFlowReporter {
62
62
  }
63
63
  declare function createLiminaFlowReporter(options?: LiminaFlowReporterOptions): LiminaFlowReporter;
64
64
  //#endregion
65
+ //#region src/commands/graph.d.ts
66
+ interface RunGraphCheckOptions {
67
+ clearScreen?: boolean;
68
+ flow?: LiminaFlowReporter;
69
+ flowDepth?: number;
70
+ }
71
+ interface RunGraphSyncOptions {
72
+ clearScreen?: boolean;
73
+ cwd?: string;
74
+ entryPath?: string;
75
+ flow?: LiminaFlowReporter;
76
+ flowDepth?: number;
77
+ }
78
+ interface RunGraphSyncResult {
79
+ changed: boolean;
80
+ projectCount: number;
81
+ }
82
+ declare function runGraphCheck(config: ResolvedLiminaConfig, options?: RunGraphCheckOptions): Promise<boolean>;
83
+ declare function runGraphSync(config: ResolvedLiminaConfig, options?: RunGraphSyncOptions): Promise<RunGraphSyncResult>;
84
+ //#endregion
65
85
  //#region src/commands/init.d.ts
66
86
  interface RunInitOptions {
67
87
  clearScreen?: boolean;
@@ -146,4 +166,4 @@ declare function runCheckerTypecheck(options: RunCheckerTypecheckOptions): Promi
146
166
  //#region src/tsconfig.d.ts
147
167
  declare function isOrdinaryTypecheckConfigPath(configPath: string): boolean;
148
168
  //#endregion
149
- export { type BuiltinCheckerPreset, type BuiltinTaskName, type CheckerConfig, type CheckerExecutionKind, type CheckerPreset, type GraphConfig, type GraphRule, type GraphRuleDenyConfig, type GraphRuleDepDenyEntry, type GraphRuleRefDenyEntry, type LiminaCommand, type LiminaConfig, type LiminaConfigEnv, type LiminaConfigExport, type LiminaConfigFn, type LiminaConfigFnObject, type LiminaConfigFnPromise, type LiminaFlowFailureOptions, type LiminaFlowMessageOptions, type LiminaFlowOutputOptions, LiminaFlowReporter, type LiminaFlowReporterOptions, type LiminaFlowTask, type LoadConfigOptions, type PackageAttwCheckConfig, type PackageAttwProfile, type PackageBoundaryCheckConfig, type PackageCheckTarget, type PackageCheckTool, type PackageCheckToolSelection, type PackageChecksConfig, type PackagePublintCheckConfig, type PathsConfig, type PipelineStep, type ProofAllowlistEntry, type ProofConfig, type ResolvedCheckerConfig, type ResolvedLiminaConfig, type RunCheckerBuildOptions, type RunCheckerBuildResult, type RunCheckerTypecheckOptions, type RunCheckerTypecheckResult, type RunInitOptions, type RunInitResult, type RunSourceCheckOptions, type RuntimeEnvironment, type SharedLiminaConfig, type SourceBoundaryConfig, type TypecheckRunner, type TypecheckTarget, type TypecheckTargetResult, createLiminaFlowReporter, defineConfig, getActiveCheckerExtensions, getActiveCheckers, isOrdinaryTypecheckConfigPath, loadConfig, runCheckerBuild, runCheckerTypecheck, runInit, runSourceCheck, validateLiminaConfig };
169
+ export { type BuiltinCheckerPreset, type BuiltinTaskName, type CheckerConfig, type CheckerExecutionKind, type CheckerPreset, type GraphConfig, type GraphRule, type GraphRuleAllowConfig, type GraphRuleDenyConfig, type GraphRuleDepDenyEntry, type GraphRuleRefAllowEntry, type GraphRuleRefDenyEntry, type LiminaCommand, type LiminaConfig, type LiminaConfigEnv, type LiminaConfigExport, type LiminaConfigFn, type LiminaConfigFnObject, type LiminaConfigFnPromise, type LiminaFlowFailureOptions, type LiminaFlowMessageOptions, type LiminaFlowOutputOptions, LiminaFlowReporter, type LiminaFlowReporterOptions, type LiminaFlowTask, type LoadConfigOptions, type PackageAttwCheckConfig, type PackageAttwProfile, type PackageBoundaryCheckConfig, type PackageCheckTool, type PackageCheckToolSelection, type PackageConfig, type PackageEntry, type PackagePublintCheckConfig, type PathsConfig, type PipelineStep, type ProofAllowlistEntry, type ProofConfig, type ResolvedCheckerConfig, type ResolvedLiminaConfig, type RunCheckerBuildOptions, type RunCheckerBuildResult, type RunCheckerTypecheckOptions, type RunCheckerTypecheckResult, type RunGraphCheckOptions, type RunGraphSyncOptions, type RunGraphSyncResult, type RunInitOptions, type RunInitResult, type RunSourceCheckOptions, type RuntimeEnvironment, type SharedLiminaConfig, type SourceBoundaryConfig, type SourceCheckConfig, type SourceUnusedDependenciesConfig, type SourceUnusedDependencyIgnoreEntry, type TypecheckRunner, type TypecheckTarget, type TypecheckTargetResult, createLiminaFlowReporter, defineConfig, getActiveCheckerExtensions, getActiveCheckers, isOrdinaryTypecheckConfigPath, loadConfig, runCheckerBuild, runCheckerTypecheck, runGraphCheck, runGraphSync, runInit, runSourceCheck, validateLiminaConfig };
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "./chunks/dep-lkQg1P9Q.js";
2
- import { a as validateLiminaConfig, i as loadConfig, n as getActiveCheckerExtensions, r as getActiveCheckers, t as defineConfig } from "./chunks/dep-DzYrmtQJ.js";
3
- import { J as isOrdinaryTypecheckConfigPath, a as runSourceCheck, i as runCheckerTypecheck, n as createLiminaFlowReporter, o as runInit, r as runCheckerBuild, t as LiminaFlowReporter } from "./chunks/dep-UWxsul2A.js";
2
+ import { a as loadConfig, n as getActiveCheckerExtensions, o as validateLiminaConfig, r as getActiveCheckers, t as defineConfig } from "./chunks/dep-CBKvJc4Y.js";
3
+ import { V as isOrdinaryTypecheckConfigPath, a as runCheckerTypecheck, c as runGraphCheck, i as runCheckerBuild, l as runGraphSync, n as createLiminaFlowReporter, o as runSourceCheck, s as runInit, t as LiminaFlowReporter } from "./chunks/dep-DTGmTTL7.js";
4
4
 
5
- export { LiminaFlowReporter, createLiminaFlowReporter, defineConfig, getActiveCheckerExtensions, getActiveCheckers, isOrdinaryTypecheckConfigPath, loadConfig, runCheckerBuild, runCheckerTypecheck, runInit, runSourceCheck, validateLiminaConfig };
5
+ export { LiminaFlowReporter, createLiminaFlowReporter, defineConfig, getActiveCheckerExtensions, getActiveCheckers, isOrdinaryTypecheckConfigPath, loadConfig, runCheckerBuild, runCheckerTypecheck, runGraphCheck, runGraphSync, runInit, runSourceCheck, validateLiminaConfig };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "limina",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "author": "Senao Xi",
@@ -33,10 +33,16 @@
33
33
  "dependencies": {
34
34
  "@arethetypeswrong/core": "^0.18.2",
35
35
  "@clack/prompts": "^1.4.0",
36
- "logaria": "0.0.2",
36
+ "logaria": "0.0.3",
37
37
  "@publint/pack": "^0.1.4",
38
38
  "cac": "^6.7.14",
39
39
  "es-module-lexer": "^2.0.0",
40
+ "knip": "^6.15.0",
41
+ "npm-package-json-lint": "^9.1.0",
42
+ "oxc-parser": "^0.133.0",
43
+ "oxc-resolver": "^11.20.0",
44
+ "pathe": "^2.0.3",
45
+ "picomatch": "^4.0.4",
40
46
  "publint": "^0.3.17",
41
47
  "semver": "^7.8.1",
42
48
  "tinyglobby": "^0.2.15",
@@ -44,12 +50,17 @@
44
50
  "zod": "^4.3.6"
45
51
  },
46
52
  "peerDependencies": {
53
+ "@typescript/native-preview": "7.0.0-dev.20260527.1",
47
54
  "@vue/compiler-sfc": "^3.5.28",
48
55
  "svelte-check": "^4.4.7",
49
56
  "typescript": "~5.9.3",
50
- "vue-tsc": "~3.2.4"
57
+ "vue-tsc": "~3.2.4",
58
+ "vue-tsgo": "0.2.2"
51
59
  },
52
60
  "peerDependenciesMeta": {
61
+ "@typescript/native-preview": {
62
+ "optional": true
63
+ },
53
64
  "@vue/compiler-sfc": {
54
65
  "optional": true
55
66
  },
@@ -61,12 +72,16 @@
61
72
  },
62
73
  "vue-tsc": {
63
74
  "optional": true
75
+ },
76
+ "vue-tsgo": {
77
+ "optional": true
64
78
  }
65
79
  },
66
80
  "types": "./index.d.ts",
67
81
  "exports": {
68
82
  ".": "./index.js",
69
83
  "./config": "./config.js",
84
+ "./schemas/tsconfig-schema.json": "./schemas/tsconfig-schema.json",
70
85
  "./package.json": "./package.json"
71
86
  },
72
87
  "sideEffects": false
@@ -0,0 +1,42 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-04/schema#",
3
+ "id": "https://docs.senao.me/docs-islands/limina/schemas/tsconfig-schema.json",
4
+ "title": "Limina TypeScript Configuration",
5
+ "description": "TypeScript tsconfig.json with Limina graph governance options.",
6
+ "allowTrailingCommas": true,
7
+ "allOf": [
8
+ {
9
+ "$ref": "https://json.schemastore.org/tsconfig"
10
+ },
11
+ {
12
+ "type": "object",
13
+ "properties": {
14
+ "liminaOptions": {
15
+ "$ref": "#/definitions/liminaOptions"
16
+ }
17
+ }
18
+ }
19
+ ],
20
+ "definitions": {
21
+ "nonEmptyString": {
22
+ "type": "string",
23
+ "minLength": 1,
24
+ "pattern": "\\S"
25
+ },
26
+ "liminaOptions": {
27
+ "type": "object",
28
+ "description": "Limina-specific options for this TypeScript project.",
29
+ "additionalProperties": true,
30
+ "properties": {
31
+ "graphRules": {
32
+ "type": "array",
33
+ "description": "Graph rule labels from limina.config.mjs#graph.rules that apply to this declaration leaf.",
34
+ "uniqueItems": true,
35
+ "items": {
36
+ "$ref": "#/definitions/nonEmptyString"
37
+ }
38
+ }
39
+ }
40
+ }
41
+ }
42
+ }