{"versions":{"9.6.0-beta.1":{"name":"@hussar/biz-extensions","version":"9.6.0-beta.1","description":"轻骑兵平台功能扩展","main":"main.js","types":"hussar-dts/hussar.d.ts","scripts":{"build":"npm run clean && tsc && npm run sync:presets","dev":"tsc --watch","clean":"rm -rf lib","sync:presets":"node scripts/sync-presets-from-readme.js","gen:summary":"node scripts/generate-readme-summary.js","generateDts":"node scripts/generateDts.js","updatePackage":"node scripts/updatePackage.js"},"repository":{"type":"git","url":"git@192.168.2.106:hussarfe/hussar-feature-modules.git"},"author":{"name":"@轻骑兵前端架构组"},"license":"ISC","files":["lib","hussar-dts","presets","package.json","README.md"],"peerDependencies":{"vue":">= 2.7.14","@hussar/types":">= 1.0.0"},"dependencies":{"@hussar/api":"9.6.0-beta.1","@hussar/core-extensions":"9.6.0-beta.1","hussar-notice":"9.6.0-beta.1","hussar-config":"9.6.0-beta.1","hussar-config-info":"9.6.0-beta.1","hussar-mobile-config":"9.6.0-beta.1","hussar-workstation-config":"9.6.0-beta.1","bpm-manage-server":"9.6.0-beta.1","bpm-bpa":"9.6.0-beta.1","hussar-code-plus":"9.6.0-beta.1","hussar-operations":"9.6.0-beta.1","hussar-unifiedtodo":"9.6.0-beta.1","hussar-plugin":"9.6.0-beta.1","hussar-theme-config":"9.6.0-beta.1","hussar-tenant-url":"9.6.0-beta.1","hussar-tenant-domain":"9.6.0-beta.1","hussar-template":"9.6.0-beta.1","hussar-general":"9.6.0-beta.1","hussar-client":"9.6.0-beta.1","hussar-schedule":"9.6.0-beta.1","hussar-audit":"9.6.0-beta.1","hussar-unified-log":"9.6.0-beta.1","hussar-migration":"9.6.0-beta.1","hussar-message":"9.6.0-beta.1","hussar-datasource":"9.6.0-beta.1","hussar-excel":"9.6.0-beta.1","hussar-fusion-application":"9.6.0-beta.1","hussar-nocode-app":"9.6.0-beta.1","hussar-register":"9.6.0-beta.1","hussar-application":"9.6.0-beta.1","hussar-application-mix":"9.6.0-beta.1"},"devDependencies":{"typescript":"~5.9.0"},"readmeFilename":"README.md","_id":"@hussar/biz-extensions@9.6.0-beta.1","_integrity":"sha512-/RblQBfvdIWZpCUxWwW1eJ+BaDCp4FHMmZbAujo6Bm5eWYWO6XfMCCsQxR4tqLibPzDIb41zmKIWIVUFW7LKCw==","_resolved":"/var/jenkins_home/workspace/fusion/common/front-npm-transfer/packages/@hussar_biz-extensions@9.6.0-beta.1.tgz","_from":"file:/var/jenkins_home/workspace/fusion/common/front-npm-transfer/packages/@hussar_biz-extensions@9.6.0-beta.1.tgz","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-/RblQBfvdIWZpCUxWwW1eJ+BaDCp4FHMmZbAujo6Bm5eWYWO6XfMCCsQxR4tqLibPzDIb41zmKIWIVUFW7LKCw==","shasum":"ac779407deb483713c855f26679f3be6718ee855","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@hussar/biz-extensions/-/biz-extensions-9.6.0-beta.1.tgz"},"contributors":[]}},"dist-tags":{"latest":"9.6.0-beta.1"},"name":"@hussar/biz-extensions","time":{"modified":"2026-04-24T11:35:47.222Z","created":"2026-04-24T11:35:47.222Z","9.6.0-beta.1":"2026-04-24T11:35:47.222Z"},"readme":"# @hussar/feature-modules 开发规范\n\n## 1. 项目概述\n\n- **包名**：`@hussar/feature-modules`\n- **用途**：轻骑兵平台功能模块集合包，提供可扩展的功能模块和 API 接口\n- **技术栈**：TypeScript 5.9.x，ES2020 模块系统\n\n---\n\n## 2. 目录结构\n\n```\nhussar-feature-modules/\n├── src/                    # 源码目录（约 40 个功能模块）\n│   ├── {ModuleName}/       # 各功能模块\n│   └── ...\n├── lib/                    # 编译输出（构建后生成）\n├── types/                  # 自动生成的类型声明（构建后生成）\n├── hussar-dts/             # 聚合类型声明入口\n│   └── hussar.d.ts         # 构建时自动生成\n├── presets/                # 预设插件集合\n│   ├── portal.js           # 门户模式预设\n│   └── console.js          # 控制台模式预设\n├── scripts/                # 构建脚本\n│   ├── generateDts.js      # DTS 聚合生成\n│   └── updatePackage.js    # exports 自动更新\n├── package.json\n└── tsconfig.json\n```\n\n---\n\n## 3. 模块结构规范（三层分层架构）\n\n每个功能模块遵循统一的三层分层结构：\n\n```\nsrc/{ModuleName}/\n├── context.ts              # Layer 1: 共享状态管理（注册表、状态容器）\n├── api/                    # Layer 2: 内部 API 实现\n│   └── {name}.api.ts       # 内部函数（可带 Internal 后缀）\n├── public/api/             # Layer 3: 公开 API\n│   └── {name}.api.ts       # 使用 satisfies 确保接口签名正确\n├── types/                  # 模块类型声明\n│   └── hussar.{name}.d.ts  # declare module '@hussar/api/{name}'\n├── plugin.ts               # (可选) Plugin 类，在 activate() 中注册 API\n├── index.js                # (可选) 组件/常量导出\n└── README.md               # 模块文档\n```\n\n**各层职责说明：**\n\n| 层级 | 文件 | 职责 |\n|------|------|------|\n| Layer 1 | `context.ts` | 管理注册表实例和共享状态 |\n| Layer 2 | `api/*.api.ts` | 内部业务逻辑实现，不直接对外暴露 |\n| Layer 3 | `public/api/*.api.ts` | 标准化公开接口，使用 `satisfies` 确保与类型签名一致 |\n| 类型契约 | `types/hussar.{name}.d.ts` | 定义 `declare module '@hussar/api/{name}'` 接口契约 |\n\n---\n\n## 4. 类型声明规范\n\n### 编写 .d.ts 文件\n\n每个需要暴露 API 的模块在 `types/` 目录下维护 `hussar.{name}.d.ts`：\n\n```typescript\ndeclare module '@hussar/api/{name}' {\n  export namespace {name} {\n    export function methodA(): void;\n    export function methodB(param: string): Promise<void>;\n  }\n}\n```\n\n### 自动聚合机制\n\n构建时 `scripts/generateDts.js` 自动扫描所有 `src/*/types/hussar.*.d.ts`，生成聚合入口 `hussar-dts/hussar.d.ts`，包含：\n\n- `/// <reference path>` 引用各模块声明\n- `declare module '@hussar/api'` 统一导出\n\n> 新增模块只需在 `types/` 下添加 dts 文件，构建时自动识别，无需手动维护。\n\n---\n\n## 5. 构建流程\n\n```bash\nnpm run build\n```\n\n执行步骤：\n\n1. **clean** — 清空 `lib/` 目录\n2. **generateDts** — 扫描各模块 dts 文件，生成 `hussar-dts/hussar.d.ts`\n3. **tsc** — TypeScript 编译，输出 `lib/` 和 `types/`\n4. **updateExport** — 扫描 `lib/` 目录，自动更新 `package.json` 的 `exports` 字段\n\n开发模式：`npm run dev`（tsc --watch）\n\n---\n\n## 6. exports 自动生成规则\n\n`scripts/updatePackage.js` 扫描 `lib/` 目录自动生成 exports：\n\n| 文件位置 | 导出路径 |\n|---------|---------|\n| `lib/{Module}/index.js` | `./{Module}/index` |\n| `lib/{Module}/api/{name}.js` | `./{Module}/api/{name}` |\n| `lib/{Module}/public/api/{name}.js` | `./{Module}/public/api/{name}` |\n\n固定导出项：`./presets/portal`、`./presets/console`、`./lib/*`、`./package.json`\n\n---\n\n## 7. Plugin 开发\n\n```typescript\nimport { Plugin } from '@hussarjs/pluggable';\nimport hussar from '@hussar/api';\n\nclass MyModule extends Plugin {\n  name = 'MyModule';\n  activate(): void {\n    // 注册视图\n    hussar.view.registerViews(allViews);\n    // 注册其他功能...\n  }\n}\nexport default MyModule;\n```\n\n---\n\n## 8. Presets 预设\n\n- `presets/portal.js` — 门户模式插件集合\n- `presets/console.js` — 控制台模式插件集合\n\n```javascript\nimport presets from '@hussar/feature-modules/presets/portal';\n```\n\n---\n\n## 9. 开发最佳实践\n\n1. 遵循三层分层架构：`context` → `api` → `public/api`\n2. `public/api` 中使用 `satisfies` 运算符验证 API 接口完整性\n3. 每个公开模块提供 `types/hussar.{name}.d.ts` 类型声明\n4. 每个模块提供 `README.md` 文档（包含描述、功能清单、归属）\n5. 向后兼容：`public/api` 中的 API 签名不应随意改动\n6. 命名规范：模块名 PascalCase，API 函数 camelCase，常量 UPPER_CASE","users":{}}