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 +105 -30
- package/README.md +18 -11
- package/README.zh-CN.md +17 -10
- package/bin/limina.js +2 -1
- package/chunks/{dep-Ce6cDHmw.js → dep-C5gcXDHp.js} +546 -1322
- package/chunks/dep-CuMHuWBQ.js +87 -0
- package/cli.js +32051 -6059
- package/flow-renderer-process.js +109 -0
- package/index.d.ts +680 -163
- package/index.js +2 -3
- package/package.json +11 -12
- package/schemas/tsconfig-schema.json +31 -0
- package/chunks/dep-COZNKoxO.js +0 -15582
- package/config.d.ts +0 -683
- package/config.js +0 -3
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-
|
|
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/
|
|
254
|
+
Repository: sindresorhus/boxen
|
|
229
255
|
|
|
230
256
|
License: MIT
|
|
231
257
|
By: Sindre Sorhus
|
|
232
|
-
Repository: sindresorhus/
|
|
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/
|
|
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/
|
|
273
|
+
Repository: sindresorhus/import-fresh
|
|
244
274
|
|
|
245
275
|
License: MIT
|
|
246
276
|
By: Sindre Sorhus
|
|
247
|
-
Repository: sindresorhus/
|
|
277
|
+
Repository: sindresorhus/is-plain-obj
|
|
248
278
|
|
|
249
279
|
License: MIT
|
|
250
280
|
By: Sindre Sorhus
|
|
251
|
-
Repository: sindresorhus/
|
|
281
|
+
Repository: sindresorhus/is-unicode-supported
|
|
252
282
|
|
|
253
283
|
License: MIT
|
|
254
284
|
By: Sindre Sorhus
|
|
255
|
-
Repository: sindresorhus/
|
|
285
|
+
Repository: sindresorhus/log-symbols
|
|
256
286
|
|
|
257
287
|
License: MIT
|
|
258
288
|
By: Sindre Sorhus
|
|
259
|
-
Repository: sindresorhus/
|
|
289
|
+
Repository: sindresorhus/parse-json
|
|
260
290
|
|
|
261
291
|
License: MIT
|
|
262
292
|
By: Sindre Sorhus
|
|
263
|
-
Repository: sindresorhus/
|
|
293
|
+
Repository: sindresorhus/plur
|
|
264
294
|
|
|
265
295
|
License: MIT
|
|
266
296
|
By: Sindre Sorhus
|
|
267
|
-
Repository:
|
|
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/
|
|
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/
|
|
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
|
|
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
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
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
|
-
|
|
32
|
+
## Non-goals
|
|
26
33
|
|
|
27
|
-
Limina is not a bundler, test
|
|
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/
|
|
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
|
|
17
|
+
> TypeScript 单体仓库架构治理工具。
|
|
18
|
+
|
|
19
|
+
先接入增量构建,再逐步打开架构治理。
|
|
20
|
+
|
|
21
|
+
Limina 面向大型 TypeScript monorepo,帮助团队把容易漂移的工程约束变成显式、可审查、可运行的检查。它基于现有 TypeScript 配置和源码依赖关系生成可复用的类型构建配置,并逐步覆盖依赖图、源码边界、检查覆盖和发布前校验。
|
|
22
|
+
|
|
23
|
+
## 能力概览
|
|
17
24
|
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
25
|
+
- 接入增量类型构建,生成可复用的构建配置并安排合理的构建顺序。
|
|
26
|
+
- 治理项目依赖图,检查项目引用、访问边界和依赖声明是否一致。
|
|
27
|
+
- 保护源码边界,发现跨包相对导入、未授权导入、漏写依赖和源码归属问题。
|
|
28
|
+
- 确认检查覆盖,找出未覆盖、重复覆盖或检查范围不一致的源码文件。
|
|
29
|
+
- 编排检查流程,将构建、依赖图、源码边界和检查覆盖组合进本地开发、CI 或发布流程。
|
|
30
|
+
- 补充发布前检查,验证 package metadata、类型入口、发布产物和打包内容。
|
|
24
31
|
|
|
25
|
-
Limina
|
|
32
|
+
## Limina 不是什么
|
|
26
33
|
|
|
27
|
-
Limina 不是 bundler、测试框架或发布工具,也不会替代 TypeScript
|
|
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
|
}
|