@farris/api-wiki-toolchain 1.0.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/dist/adapters/base.d.ts +17 -0
- package/dist/adapters/component.d.ts +4 -0
- package/dist/adapters/rest.d.ts +4 -0
- package/dist/adapters/sdk.d.ts +4 -0
- package/dist/bin/aw-cli.d.ts +2 -0
- package/dist/bin/aw-cli.js +889 -0
- package/dist/commands/adapt.d.ts +8 -0
- package/dist/commands/generate-catalog.d.ts +4 -0
- package/dist/commands/generate-docs.d.ts +6 -0
- package/dist/commands/merge.d.ts +5 -0
- package/dist/commands/validate.d.ts +4 -0
- package/dist/extractors/vue-extractor.d.ts +6 -0
- package/dist/generator/doc-generator.d.ts +27 -0
- package/dist/index.d.ts +5 -0
- package/dist/test-catalog/catalog.json +17 -0
- package/dist/test-catalog/dest-asset/1.1.0/index.json +1 -0
- package/dist/test-catalog/dest-asset/catalog.json +27 -0
- package/dist/test-catalog/dest-asset/versions.json +17 -0
- package/dist/test-catalog/meta/asset-a/1.0.0/index.json +1 -0
- package/dist/test-catalog/meta/asset-a/catalog.json +1 -0
- package/dist/test-catalog/meta/asset-a/versions.json +1 -0
- package/dist/test-catalog/meta/asset-b/catalog.json +1 -0
- package/dist/test-catalog/meta/asset-b/versions.json +1 -0
- package/dist/test-catalog/meta/catalog.json +16 -0
- package/dist/test-catalog/meta/search-index/asset-a.json +12 -0
- package/dist/test-catalog/search-index/asset-a.json +12 -0
- package/dist/test-catalog/src-asset/catalog.json +1 -0
- package/dist/test-catalog/src-asset/index.json +1 -0
- package/dist/test-output/comp-adapted/index.json +21 -0
- package/dist/test-output/comp-adapted/view.json +34 -0
- package/dist/test-output/comp-native.json +1 -0
- package/dist/test-output/rest-adapted/index.json +22 -0
- package/dist/test-output/rest-native.json +1 -0
- package/dist/test-output/sdk-adapted/index.json +40 -0
- package/dist/test-output/sdk-native.json +1 -0
- package/dist/test-validate/1.0.0/index.json +1 -0
- package/dist/test-validate/1.0.0-SNAPSHOT/index.json +1 -0
- package/dist/test-validate/1.0.0-strict/index.json +1 -0
- package/package.json +38 -0
- package/resources/javadoc-doclet.jar +0 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface LayoutColumn {
|
|
2
|
+
name: string;
|
|
3
|
+
key: string;
|
|
4
|
+
formatter?: 'code' | 'boolean' | 'badge' | 'link';
|
|
5
|
+
}
|
|
6
|
+
export interface LayoutSection {
|
|
7
|
+
id: string;
|
|
8
|
+
title: string;
|
|
9
|
+
type: 'text' | 'code_block' | 'table';
|
|
10
|
+
source?: string;
|
|
11
|
+
empty_placeholder?: string;
|
|
12
|
+
language?: string;
|
|
13
|
+
template?: string;
|
|
14
|
+
columns?: LayoutColumn[];
|
|
15
|
+
}
|
|
16
|
+
export interface LayoutDescriptor {
|
|
17
|
+
title?: string;
|
|
18
|
+
sections: LayoutSection[];
|
|
19
|
+
}
|
|
20
|
+
export declare class DocGenerator {
|
|
21
|
+
private layout;
|
|
22
|
+
constructor(layoutYaml?: string);
|
|
23
|
+
generate(data: any): string;
|
|
24
|
+
private renderTable;
|
|
25
|
+
private formatValue;
|
|
26
|
+
private getDefaultLayout;
|
|
27
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"assets": [
|
|
3
|
+
{
|
|
4
|
+
"name": "asset-a",
|
|
5
|
+
"asset_type": "rest",
|
|
6
|
+
"title": "Asset A",
|
|
7
|
+
"summary": "",
|
|
8
|
+
"versions": [
|
|
9
|
+
"1.0.0"
|
|
10
|
+
],
|
|
11
|
+
"visibility": "internal",
|
|
12
|
+
"coordinates": {},
|
|
13
|
+
"relations": []
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"last_updated": "2026-07-09T12:18:11.592Z"
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"urn":"rest:my-asset/GET//test","kind":"endpoint","doc_md":"docs/test.md"}]
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"urn": "asset:my-asset",
|
|
3
|
+
"type": "rest",
|
|
4
|
+
"name": "新标题",
|
|
5
|
+
"description": "这是一个非常长且符合至少三十个字规则的合格新描述,用于测试合并功能。",
|
|
6
|
+
"owner": "team-x",
|
|
7
|
+
"visibility": "internal",
|
|
8
|
+
"lifecycle": "production",
|
|
9
|
+
"versions": [
|
|
10
|
+
"1.0.0",
|
|
11
|
+
"1.1.0"
|
|
12
|
+
],
|
|
13
|
+
"coordinates": [
|
|
14
|
+
{
|
|
15
|
+
"type": "github",
|
|
16
|
+
"version": "1.0.0",
|
|
17
|
+
"repo": "https://github.com/my-org/my-asset"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"relations": [
|
|
21
|
+
{
|
|
22
|
+
"type": "uses",
|
|
23
|
+
"target": "sdk:java:cache-lib"
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"deployments": {}
|
|
27
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"urn":"rest:asset-a/GET//hello","name":"hello","title":"Hello Api","signature":"GET /hello","summary":"test"}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"urn":"asset:asset-a","type":"rest","name":"Asset A","description":"这是一个非常长且符合至少三十个字规则的合格新描述,用于测试合并功能。","owner":"team-a","visibility":"internal"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"versions":["1.0.0"],"latest":"1.0.0","assets":{"1.0.0":{"index.json":true}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"urn":"asset:asset-b","type":"sdk","name":"Asset B","description":"这是一个非常长且符合至少三十个字规则的合格新描述,用于测试合并功能。","owner":"team-b","visibility":"restricted"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"versions":["1.0.0"],"latest":"1.0.0","assets":{"1.0.0":{"index.json":true}}}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"assets": [
|
|
3
|
+
{
|
|
4
|
+
"urn": "asset:asset-a",
|
|
5
|
+
"type": "rest",
|
|
6
|
+
"name": "Asset A",
|
|
7
|
+
"description": "这是一个非常长且符合至少三十个字规则的合格新描述,用于测试合并功能。",
|
|
8
|
+
"owner": "team-a",
|
|
9
|
+
"visibility": "internal",
|
|
10
|
+
"lifecycle": "production",
|
|
11
|
+
"latest": "1.0.0",
|
|
12
|
+
"dir": "asset-a"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"updated_at": "2026-07-11T03:15:12.419Z"
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"urn":"asset:my-asset","type":"rest","versions":["1.1.0"],"name":"新标题","description":"这是一个非常长且符合至少三十个字规则的合格新描述,用于测试合并功能。","owner":"team-x","visibility":"internal"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"urn":"rest:my-asset/GET//test","kind":"endpoint","doc_md":"docs/test.md"}]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"urn": "component:my-comp-lib/button",
|
|
4
|
+
"asset": "my-comp-lib",
|
|
5
|
+
"asset_type": "component",
|
|
6
|
+
"kind": "component",
|
|
7
|
+
"name": "button",
|
|
8
|
+
"title": "button",
|
|
9
|
+
"signature": "<button />",
|
|
10
|
+
"summary": "",
|
|
11
|
+
"version": "1.0.0",
|
|
12
|
+
"deprecated": false,
|
|
13
|
+
"pointer": "#/components/button",
|
|
14
|
+
"doc_md": "docs/button.md",
|
|
15
|
+
"provenance": {
|
|
16
|
+
"tier": "tool",
|
|
17
|
+
"tool": "vue-component-meta",
|
|
18
|
+
"confidence": "high"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
]
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"component": "button",
|
|
3
|
+
"framework": "vue",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"urn": "component:my-comp-lib/button",
|
|
6
|
+
"overview": "## button\n前端 Vue 组件。",
|
|
7
|
+
"examples": [],
|
|
8
|
+
"props": [
|
|
9
|
+
{
|
|
10
|
+
"name": "disabled",
|
|
11
|
+
"type": "boolean",
|
|
12
|
+
"default": "false",
|
|
13
|
+
"required": false,
|
|
14
|
+
"description": "是否禁用",
|
|
15
|
+
"deprecated": false
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"events": [
|
|
19
|
+
{
|
|
20
|
+
"name": "click",
|
|
21
|
+
"payload": "(e: MouseEvent) => void",
|
|
22
|
+
"description": "点击触发"
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
"slots": [
|
|
26
|
+
{
|
|
27
|
+
"name": "default",
|
|
28
|
+
"scoped_props": "any",
|
|
29
|
+
"description": "默认内容"
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"methods": [],
|
|
33
|
+
"css_vars": []
|
|
34
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"button":{"filePath":"components/button/button.tsx","components":{"default":{"props":[{"name":"disabled","type":"boolean","default":"false","required":false,"description":"是否禁用"}],"events":[{"name":"click","type":"(e: MouseEvent) => void","description":"点击触发"}],"slots":[{"name":"default","type":"any","description":"默认内容"}],"exposed":[]}}}}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"urn": "rest:my-rest-service/GET//users/{id}",
|
|
4
|
+
"asset": "my-rest-service",
|
|
5
|
+
"asset_type": "rest",
|
|
6
|
+
"kind": "endpoint",
|
|
7
|
+
"name": "getUserById",
|
|
8
|
+
"title": "获取用户",
|
|
9
|
+
"signature": "GET /users/{id}",
|
|
10
|
+
"summary": "根据 ID 获取用户详情",
|
|
11
|
+
"tags": [],
|
|
12
|
+
"version": "1.0.0",
|
|
13
|
+
"deprecated": false,
|
|
14
|
+
"pointer": "#/paths/~1users~1{id}/get",
|
|
15
|
+
"doc_md": "docs/get-users-id.md",
|
|
16
|
+
"provenance": {
|
|
17
|
+
"tier": "tool",
|
|
18
|
+
"tool": "openapi-spec@3.0.1",
|
|
19
|
+
"confidence": "high"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"openapi":"3.0.1","paths":{"/users/{id}":{"get":{"summary":"获取用户","description":"根据 ID 获取用户详情","operationId":"getUserById","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"成功"}}}}}}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"urn": "sdk:java:my-sdk-lib/com.inspures.caf.CacheService",
|
|
4
|
+
"asset": "my-sdk-lib",
|
|
5
|
+
"asset_type": "sdk",
|
|
6
|
+
"kind": "class",
|
|
7
|
+
"name": "CacheService",
|
|
8
|
+
"title": "缓存服务接口",
|
|
9
|
+
"signature": "public interface CacheService",
|
|
10
|
+
"summary": "缓存服务接口",
|
|
11
|
+
"version": "1.0.0",
|
|
12
|
+
"deprecated": false,
|
|
13
|
+
"pointer": "#/classes/com.inspures.caf.CacheService",
|
|
14
|
+
"doc_md": "docs/com.inspures.caf.CacheService.md",
|
|
15
|
+
"provenance": {
|
|
16
|
+
"tier": "tool",
|
|
17
|
+
"tool": "javadoc-doclet",
|
|
18
|
+
"confidence": "high"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"urn": "sdk:java:my-sdk-lib/com.inspures.caf.CacheService#get(java.lang.String)",
|
|
23
|
+
"asset": "my-sdk-lib",
|
|
24
|
+
"asset_type": "sdk",
|
|
25
|
+
"kind": "method",
|
|
26
|
+
"name": "get",
|
|
27
|
+
"title": "根据 Key 获取缓存",
|
|
28
|
+
"signature": "String get(String key)",
|
|
29
|
+
"summary": "根据 Key 获取缓存",
|
|
30
|
+
"version": "1.0.0",
|
|
31
|
+
"deprecated": false,
|
|
32
|
+
"pointer": "#/classes/com.inspures.caf.CacheService/methods/get(java.lang.String)",
|
|
33
|
+
"doc_md": "docs/com.inspures.caf.CacheService.md#get",
|
|
34
|
+
"provenance": {
|
|
35
|
+
"tier": "tool",
|
|
36
|
+
"tool": "javadoc-doclet",
|
|
37
|
+
"confidence": "high"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"classes":{"com.inspures.caf.CacheService":{"name":"CacheService","fullName":"com.inspures.caf.CacheService","kind":"interface","signature":"public interface CacheService","summary":"缓存服务接口","description":"提供基础的缓存读写能力","methods":{"get(java.lang.String)":{"name":"get","signature":"String get(String key)","returnType":"java.lang.String","returnDescription":"缓存的值","summary":"根据 Key 获取缓存","description":"根据 Key 获取缓存,如果没有则返回 null","parameters":[{"name":"key","type":"java.lang.String","description":"缓存键"}],"isDeprecated":false}}}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"urn":"rest:my-asset/GET//ok-path","asset":"my-asset","asset_type":"rest","kind":"endpoint","name":"ok","title":"Ok Title","signature":"GET /ok-path","summary":"这是一个非常长且符合至少三十个字规则的合格摘要说明,以便于大模型检索。","version":"1.0.0","deprecated":false,"pointer":"#/paths/~1ok-path/get","doc_md":"docs/ok.md","reviewed_by":"auditor","provenance":{"tier":"tool","tool":"test","confidence":"high"}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"urn":"rest:my-asset/GET//short","asset":"my-asset","asset_type":"rest","kind":"endpoint","name":"short","title":"Short Title","signature":"GET /short","summary":"太短了","version":"1.0.0","deprecated":false,"pointer":"#/paths/~1short/get","doc_md":"docs/short.md","reviewed_by":"auditor","provenance":{"tier":"tool","tool":"test","confidence":"high"}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"urn":"rest:my-asset/GET//short","asset":"my-asset","asset_type":"rest","kind":"endpoint","name":"short","title":"Short Title","signature":"GET /short","summary":"太短了","version":"1.0.0","deprecated":false,"pointer":"#/paths/~1short/get","doc_md":"docs/short.md","reviewed_by":"auditor","provenance":{"tier":"tool","tool":"test","confidence":"high"}}]
|
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@farris/api-wiki-toolchain",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"files": [
|
|
6
|
+
"dist",
|
|
7
|
+
"resources"
|
|
8
|
+
],
|
|
9
|
+
"bin": {
|
|
10
|
+
"aw-cli": "./dist/bin/aw-cli.js"
|
|
11
|
+
},
|
|
12
|
+
"main": "./dist/index.js",
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "esbuild src/bin/aw-cli.ts --bundle --platform=node --format=esm --packages=external --outfile=dist/bin/aw-cli.js && tsc --emitDeclarationOnly && mvn -f ../javadoc-doclet/pom.xml clean package && node -e \"const fs = require('fs-extra'); fs.ensureDirSync('resources'); fs.copySync('../javadoc-doclet/target/javadoc-doclet-1.0.0.jar', 'resources/javadoc-doclet.jar');\"",
|
|
16
|
+
"test": "vitest run"
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@farris/api-wiki-contract-schema": "workspace:*",
|
|
20
|
+
"ajv": "^8.17.1",
|
|
21
|
+
"commander": "^12.1.0",
|
|
22
|
+
"ejs": "^3.1.10",
|
|
23
|
+
"fs-extra": "^11.3.0",
|
|
24
|
+
"js-yaml": "^4.1.0",
|
|
25
|
+
"vue": "^3.4.21",
|
|
26
|
+
"vue-component-meta": "^1.8.27"
|
|
27
|
+
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"@types/ejs": "^3.1.5",
|
|
30
|
+
"@types/fs-extra": "^11.0.4",
|
|
31
|
+
"@types/js-yaml": "^4.0.9",
|
|
32
|
+
"@types/node": "^18.19.121",
|
|
33
|
+
"esbuild": "^0.24.0",
|
|
34
|
+
"tsx": "^4.22.4",
|
|
35
|
+
"typescript": "^5.6.0",
|
|
36
|
+
"vitest": "^2.1.8"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
Binary file
|