@longzai-intelligence-oxlint/architecture-plugin 0.1.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/README.md ADDED
@@ -0,0 +1,17 @@
1
+ # @longzai-intelligence-oxlint/architecture-plugin
2
+
3
+ ## 意图
4
+
5
+ 在静态检查阶段守护 Longzai Intelligence 生态的架构边界,防止依赖方向倒置、跨层泄漏与不安全的跨包导入。
6
+
7
+ ## 定位
8
+
9
+ Oxlint 生态的架构治理插件,按 core、domain、electron、library 四个子插件组织,是组织内最核心的架构约束载体。
10
+
11
+ ## 职能
12
+
13
+ core 子插件负责依赖方向、业务泄漏、实现包导入限制、导出控制、导出合规性、跨包相对导入禁止、按路径限制调用与导入等通用架构规则;domain 子插件负责 DDD 域实体命名、Port-Adapter 实现、域导出、域 TypeORM 导入、层 README 必备等域层规则;electron 子插件负责 IPC 通道类型化、IPC 结果解包、暴露安全 API、平台泄漏、unsafe electron API 暴露、renderer 实现禁入、generic IPC bridge 暴露、preload 内 ipcRenderer 直连、custom IPC utility 等规则;library 子插件负责测试文件放置、测试文件与源文件匹配、测试目录无非测试文件等规则。
14
+
15
+ ## 实现情况
16
+
17
+ 四类子插件均已实现并对外分别导出,完整插件聚合所有规则统一注册为 `@longzai-intelligence/architecture`;规则数量与覆盖范围在生态内最为完整,且配套 recommended-core 与 recommended-library 配置入口。
@@ -0,0 +1,13 @@
1
+ import { architectureCorePlugin, coreRules } from "@longzai-intelligence-oxlint/architecture-core-plugin";
2
+ import { architectureDomainPlugin, domainRules } from "@longzai-intelligence-oxlint/architecture-domain-plugin";
3
+ import { architectureElectronPlugin, electronRules } from "@longzai-intelligence-oxlint/architecture-electron-plugin";
4
+ import { architectureLibraryPlugin, libraryRules } from "@longzai-intelligence-oxlint/architecture-library-plugin";
5
+ //#region src/index.d.ts
6
+ /**
7
+ * architecture 完整插件
8
+ *
9
+ * 包含所有子插件的规则,通过 eslintCompatPlugin 包装以同时支持 Oxlint 和 ESLint 运行时
10
+ */
11
+ declare const architecturePlugin: import("@oxlint/plugins").Plugin;
12
+ //#endregion
13
+ export { architectureCorePlugin, architectureDomainPlugin, architectureElectronPlugin, architectureLibraryPlugin, architecturePlugin, architecturePlugin as default, coreRules, domainRules, electronRules, libraryRules };
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ import{eslintCompatPlugin as e}from"@oxlint/plugins";import{architectureCorePlugin as t,coreRules as n,coreRules as r}from"@longzai-intelligence-oxlint/architecture-core-plugin";import{architectureDomainPlugin as i,domainRules as a,domainRules as o}from"@longzai-intelligence-oxlint/architecture-domain-plugin";import{architectureElectronPlugin as s,electronRules as c,electronRules as l}from"@longzai-intelligence-oxlint/architecture-electron-plugin";import{architectureLibraryPlugin as u,libraryRules as d,libraryRules as f}from"@longzai-intelligence-oxlint/architecture-library-plugin";const p=e({meta:{name:`@longzai-intelligence-oxlint/architecture-plugin`},rules:{...r,...o,...l,...f}});export{t as architectureCorePlugin,i as architectureDomainPlugin,s as architectureElectronPlugin,u as architectureLibraryPlugin,p as architecturePlugin,p as default,n as coreRules,a as domainRules,c as electronRules,d as libraryRules};
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@longzai-intelligence-oxlint/architecture-plugin",
3
+ "version": "0.1.0",
4
+ "license": "UNLICENSED",
5
+ "files": [
6
+ "dist"
7
+ ],
8
+ "type": "module",
9
+ "main": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js"
15
+ }
16
+ },
17
+ "scripts": {
18
+ "build": "lzi-builder",
19
+ "build:prod": "NODE_ENV=production lzi-builder",
20
+ "prepublishOnly": "bun run build:prod",
21
+ "dev": "lzi-builder --watch",
22
+ "clean": "rimraf dist",
23
+ "test": "vitest run",
24
+ "test:watch": "vitest",
25
+ "test:coverage": "vitest run --coverage",
26
+ "lint": "oxlint && oxfmt --check",
27
+ "lint:fix": "oxlint --fix && oxfmt",
28
+ "typecheck": "bun run typecheck:app && bun run typecheck:node && bun run typecheck:test",
29
+ "typecheck:app": "tsgo --noEmit -p tsconfig/app.json",
30
+ "typecheck:node": "tsgo --noEmit -p tsconfig/node.json",
31
+ "typecheck:test": "tsgo --noEmit -p tsconfig/test.json"
32
+ },
33
+ "dependencies": {
34
+ "@longzai-intelligence-oxlint/architecture-core-plugin": "0.0.45",
35
+ "@longzai-intelligence-oxlint/architecture-domain-plugin": "0.0.45",
36
+ "@longzai-intelligence-oxlint/architecture-electron-plugin": "0.0.45",
37
+ "@longzai-intelligence-oxlint/architecture-library-plugin": "0.0.45",
38
+ "@oxlint/plugins": "^1.74.0"
39
+ },
40
+ "devDependencies": {
41
+ "@vitest/coverage-v8": "^4.1.10",
42
+ "typescript": "^6.0.3"
43
+ },
44
+ "peerDependencies": {
45
+ "oxlint": ">=1.0.0"
46
+ }
47
+ }