limina 0.0.6 → 0.1.1

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 CHANGED
@@ -217,7 +217,33 @@ Repository: git+https://github.com/epoberezkin/json-schema-traverse.git
217
217
 
218
218
  ---------------------------------------
219
219
 
220
- ## ansi-styles, array-union, callsites, chalk, globby, has-flag, irregular-plurals, parent-module, path-type, resolve-from, slash, supports-color
220
+ ## ansi-align
221
+
222
+ License: ISC
223
+ By: nexdrew
224
+ Repository: git+https://github.com/nexdrew/ansi-align.git
225
+
226
+ > Copyright (c) 2016, Contributors
227
+ >
228
+ > Permission to use, copy, modify, and/or distribute this software for any purpose
229
+ > with or without fee is hereby granted, provided that the above copyright notice
230
+ > and this permission notice appear in all copies.
231
+ >
232
+ > THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
233
+ > REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
234
+ > FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
235
+ > INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
236
+ > OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
237
+ > TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
238
+ > THIS SOFTWARE.
239
+
240
+ ---------------------------------------
241
+
242
+ ## ansi-regex, ansi-styles, boxen, camelcase, chalk, cli-boxes, get-east-asian-width, import-fresh, is-plain-obj, is-unicode-supported, log-symbols, parse-json, plur, string-width, strip-ansi, strip-json-comments, widest-line, wrap-ansi
243
+
244
+ License: MIT
245
+ By: Sindre Sorhus
246
+ Repository: chalk/ansi-regex
221
247
 
222
248
  License: MIT
223
249
  By: Sindre Sorhus
@@ -225,46 +251,84 @@ Repository: chalk/ansi-styles
225
251
 
226
252
  License: MIT
227
253
  By: Sindre Sorhus
228
- Repository: sindresorhus/array-union
254
+ Repository: sindresorhus/boxen
229
255
 
230
256
  License: MIT
231
257
  By: Sindre Sorhus
232
- Repository: sindresorhus/callsites
258
+ Repository: sindresorhus/camelcase
233
259
 
234
260
  License: MIT
235
261
  Repository: chalk/chalk
236
262
 
237
263
  License: MIT
238
264
  By: Sindre Sorhus
239
- Repository: sindresorhus/globby
265
+ Repository: sindresorhus/cli-boxes
266
+
267
+ License: MIT
268
+ By: Sindre Sorhus
269
+ Repository: sindresorhus/get-east-asian-width
240
270
 
241
271
  License: MIT
242
272
  By: Sindre Sorhus
243
- Repository: sindresorhus/has-flag
273
+ Repository: sindresorhus/import-fresh
244
274
 
245
275
  License: MIT
246
276
  By: Sindre Sorhus
247
- Repository: sindresorhus/irregular-plurals
277
+ Repository: sindresorhus/is-plain-obj
248
278
 
249
279
  License: MIT
250
280
  By: Sindre Sorhus
251
- Repository: sindresorhus/parent-module
281
+ Repository: sindresorhus/is-unicode-supported
252
282
 
253
283
  License: MIT
254
284
  By: Sindre Sorhus
255
- Repository: sindresorhus/path-type
285
+ Repository: sindresorhus/log-symbols
256
286
 
257
287
  License: MIT
258
288
  By: Sindre Sorhus
259
- Repository: sindresorhus/resolve-from
289
+ Repository: sindresorhus/parse-json
260
290
 
261
291
  License: MIT
262
292
  By: Sindre Sorhus
263
- Repository: sindresorhus/slash
293
+ Repository: sindresorhus/plur
264
294
 
265
295
  License: MIT
266
296
  By: Sindre Sorhus
267
- Repository: chalk/supports-color
297
+ Repository: sindresorhus/string-width
298
+
299
+ License: MIT
300
+ By: Sindre Sorhus
301
+ Repository: chalk/strip-ansi
302
+
303
+ License: MIT
304
+ By: Sindre Sorhus
305
+ Repository: sindresorhus/strip-json-comments
306
+
307
+ License: MIT
308
+ By: Sindre Sorhus
309
+ Repository: sindresorhus/widest-line
310
+
311
+ License: MIT
312
+ By: Sindre Sorhus
313
+ Repository: chalk/wrap-ansi
314
+
315
+ > MIT License
316
+ >
317
+ > Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
318
+ >
319
+ > Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
320
+ >
321
+ > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
322
+ >
323
+ > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
324
+
325
+ ---------------------------------------
326
+
327
+ ## array-union, callsites, globby, has-flag, irregular-plurals, is-fullwidth-code-point, parent-module, path-type, resolve-from, slash, supports-color
328
+
329
+ License: MIT
330
+ By: Sindre Sorhus
331
+ Repositories: sindresorhus/array-union, sindresorhus/callsites, sindresorhus/globby, sindresorhus/has-flag, sindresorhus/irregular-plurals, sindresorhus/is-fullwidth-code-point, sindresorhus/parent-module, sindresorhus/path-type, sindresorhus/resolve-from, sindresorhus/slash, chalk/supports-color
268
332
 
269
333
  > MIT License
270
334
  >
@@ -472,6 +536,35 @@ Repository: kevva/dir-glob
472
536
 
473
537
  ---------------------------------------
474
538
 
539
+ ## emoji-regex
540
+
541
+ License: MIT
542
+ By: Mathias Bynens
543
+ Repository: https://github.com/mathiasbynens/emoji-regex.git
544
+
545
+ > Copyright Mathias Bynens <https://mathiasbynens.be/>
546
+ >
547
+ > Permission is hereby granted, free of charge, to any person obtaining
548
+ > a copy of this software and associated documentation files (the
549
+ > "Software"), to deal in the Software without restriction, including
550
+ > without limitation the rights to use, copy, modify, merge, publish,
551
+ > distribute, sublicense, and/or sell copies of the Software, and to
552
+ > permit persons to whom the Software is furnished to do so, subject to
553
+ > the following conditions:
554
+ >
555
+ > The above copyright notice and this permission notice shall be
556
+ > included in all copies or substantial portions of the Software.
557
+ >
558
+ > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
559
+ > EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
560
+ > MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
561
+ > NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
562
+ > LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
563
+ > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
564
+ > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
565
+
566
+ ---------------------------------------
567
+
475
568
  ## error-ex, is-arrayish
476
569
 
477
570
  License: MIT
@@ -692,24 +785,6 @@ Repository: git@github.com:kaelzhang/node-ignore.git
692
785
 
693
786
  ---------------------------------------
694
787
 
695
- ## import-fresh, is-plain-obj, is-unicode-supported, log-symbols, parse-json, plur, strip-json-comments
696
-
697
- License: MIT
698
- By: Sindre Sorhus
699
- Repositories: sindresorhus/import-fresh, sindresorhus/is-plain-obj, sindresorhus/is-unicode-supported, sindresorhus/log-symbols, sindresorhus/parse-json, sindresorhus/plur, sindresorhus/strip-json-comments
700
-
701
- > MIT License
702
- >
703
- > Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
704
- >
705
- > Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
706
- >
707
- > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
708
- >
709
- > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
710
-
711
- ---------------------------------------
712
-
713
788
  ## is-extglob
714
789
 
715
790
  License: MIT
@@ -898,7 +973,7 @@ Repository: https://github.com/eventualbuddha/lines-and-columns.git
898
973
 
899
974
  License: MIT
900
975
  By: Senao Xi
901
- Repository: git+https://github.com/XiSenao/docs-islands.git
976
+ Repository: git+https://github.com/senaoxi/docs-islands.git
902
977
 
903
978
  > <!-- markdownlint-disable MD003 MD009 MD025 MD035 MD026 -->
904
979
  > # logaria license
package/README.md CHANGED
@@ -1,29 +1,36 @@
1
1
  # limina
2
2
 
3
3
  <p align="center">
4
- <a href="https://docs.senao.me/docs-islands/limina" target="_blank" rel="noopener noreferrer">
4
+ <a href="https://docs.senao.me/docs-islands/limina/" target="_blank" rel="noopener noreferrer">
5
5
  <img width="180" src="https://docs.senao.me/docs-islands/limina/logo.svg" alt="limina logo">
6
6
  </a>
7
7
  </p>
8
+
8
9
  <p align="center">
9
10
  <a href="https://npmjs.com/package/limina"><img src="https://img.shields.io/npm/v/limina.svg" alt="npm package"></a>
10
11
  <a href="https://nodejs.org/en/about/previous-releases"><img src="https://img.shields.io/node/v/limina.svg" alt="node compatibility"></a>
11
- <a href="https://github.com/XiSenao/docs-islands/blob/main/packages/limina/LICENSE.md"><img src="https://img.shields.io/npm/l/limina.svg" alt="license"></a>
12
+ <a href="https://github.com/senaoxi/docs-islands/blob/main/packages/limina/LICENSE.md"><img src="https://img.shields.io/npm/l/limina.svg" alt="license"></a>
12
13
  </p>
13
14
 
14
15
  English | [简体中文](./README.zh-CN.md)
15
16
 
16
- > Architecture governance CLI for TypeScript monorepos
17
+ > Architecture governance for TypeScript monorepos.
18
+
19
+ Start with incremental type builds, then progressively enable architecture governance.
20
+
21
+ Limina is designed for large TypeScript monorepos where project references, source boundaries, check coverage, and release artifacts can drift over time. It builds on existing TypeScript configuration and source dependency relationships to generate reusable type-build configuration, then adds checks for dependency graphs, source boundaries, coverage, and release readiness.
22
+
23
+ ## What Limina does
17
24
 
18
- - Keep source dependency graphs aligned with type build graphs
19
- - Guard package, runtime, and workspace boundaries
20
- - Cover TypeScript and framework-specific checkers
21
- - Keep source manifests and built package outputs aligned
22
- - Validate package outputs before release
23
- - Compose checks for local development, CI, and publishing
25
+ - Adopts incremental type builds by generating reusable build configuration and deriving a build order from source dependencies.
26
+ - Governs the dependency graph by checking project references, access boundaries, and dependency declarations.
27
+ - Protects source boundaries by detecting cross-package relative imports, unauthorized imports, missing dependency declarations, and source ownership issues.
28
+ - Verifies check coverage by finding source files that are uncovered, covered more than once, or covered by a scope that does not match the source boundary.
29
+ - Composes check pipelines for local development, CI, and release workflows, with independent tasks running concurrently when dependencies allow.
30
+ - Adds release checks for package metadata, type entry points, build output, and packed package contents.
24
31
 
25
- Limina helps teams turn drifting TypeScript monorepo constraints into explicit, reviewable, runnable checks. It keeps source relationships, type coverage, build coordination, package metadata, and publishable outputs aligned across everyday development, code review, and pre-release workflows.
32
+ ## Non-goals
26
33
 
27
- Limina is not a bundler, test runner, or release tool, and it does not replace TypeScript or framework checkers. It runs those existing tools and verifies that the monorepo structure they rely on is still trustworthy.
34
+ Limina is not a bundler, a test framework, or a publishing tool. It does not replace TypeScript or framework-specific checkers. Instead, it runs alongside existing tools and verifies that the monorepo structure they depend on remains consistent and reviewable.
28
35
 
29
36
  [Read the Docs to Learn More](https://docs.senao.me/docs-islands/limina/)
package/README.zh-CN.md CHANGED
@@ -5,25 +5,32 @@
5
5
  <img width="180" src="https://docs.senao.me/docs-islands/limina/logo.svg" alt="limina logo">
6
6
  </a>
7
7
  </p>
8
+
8
9
  <p align="center">
9
10
  <a href="https://npmjs.com/package/limina"><img src="https://img.shields.io/npm/v/limina.svg" alt="npm package"></a>
10
11
  <a href="https://nodejs.org/en/about/previous-releases"><img src="https://img.shields.io/node/v/limina.svg" alt="node compatibility"></a>
11
- <a href="https://github.com/XiSenao/docs-islands/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/limina.svg" alt="license"></a>
12
+ <a href="https://github.com/senaoxi/docs-islands/blob/main/packages/limina/LICENSE.md"><img src="https://img.shields.io/npm/l/limina.svg" alt="license"></a>
12
13
  </p>
13
14
 
14
15
  [English](./README.md) | 简体中文
15
16
 
16
- > TypeScript monorepo 的架构治理 CLI
17
+ > TypeScript 单体仓库架构治理工具。
18
+
19
+ 先接入增量构建,再逐步打开架构治理。
20
+
21
+ Limina 面向大型 TypeScript monorepo,帮助团队把容易漂移的工程约束变成显式、可审查、可运行的检查。它基于现有 TypeScript 配置和源码依赖关系生成可复用的类型构建配置,并逐步覆盖依赖图、源码边界、检查覆盖和发布前校验。
22
+
23
+ ## 能力概览
17
24
 
18
- - 保持源码依赖图与类型构建图一致
19
- - 守住 package、运行时与工程边界
20
- - 覆盖 TypeScript 与框架专属 checker
21
- - 让源码 manifest 与构建产物 manifest 保持一致
22
- - 验证发布前 package 产物
23
- - 组合适合本地、CI 与发布流程的检查
25
+ - 接入增量类型构建,生成可复用的构建配置并安排合理的构建顺序。
26
+ - 治理项目依赖图,检查项目引用、访问边界和依赖声明是否一致。
27
+ - 保护源码边界,发现跨包相对导入、未授权导入、漏写依赖和源码归属问题。
28
+ - 确认检查覆盖,找出未覆盖、重复覆盖或检查范围不一致的源码文件。
29
+ - 编排检查流程,将构建、依赖图、源码边界和检查覆盖组合进本地开发、CI 或发布流程。
30
+ - 补充发布前检查,验证 package metadata、类型入口、发布产物和打包内容。
24
31
 
25
- Limina 帮助团队把 TypeScript monorepo 中容易漂移的工程约束变成显式、可审查、可运行的检查。它让源码关系、类型覆盖、构建协作、package metadata 和发布产物保持一致,适合放进日常开发、代码审查和发布前流程。
32
+ ## Limina 不是什么
26
33
 
27
- Limina 不是 bundler、测试框架或发布工具,也不会替代 TypeScript / framework checker。它调用这些已有工具,并验证它们依赖的 monorepo 结构是否仍然可靠。
34
+ Limina 不是 bundler、测试框架或发布工具,也不会替代 TypeScript 或框架专属 checker。它调用已有工具,并验证这些工具依赖的 monorepo 结构是否仍然可靠。
28
35
 
29
36
  [阅读文档了解更多](https://docs.senao.me/docs-islands/limina/zh/)
package/bin/limina.js CHANGED
@@ -30,7 +30,8 @@ if (existsSync(sourceCliPath)) {
30
30
 
31
31
  process.exit(result.status ?? 1);
32
32
  } else if (existsSync(distCliPath)) {
33
- await import(pathToFileURL(distCliPath).href);
33
+ const { runCli } = await import(pathToFileURL(distCliPath).href);
34
+ await runCli(process.argv);
34
35
  } else {
35
36
  throw new Error(`Unable to find limina CLI entry. Expected ${distCliPath}.`);
36
37
  }