@univer-cli/api-reference 1.0.0-beta.2

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,67 @@
1
+ # @univer-cli/api-reference
2
+
3
+ English | [简体中文](./README.zh-CN.md)
4
+
5
+ Search and consult the Univer Facade API locally without launching Univer or accessing online documentation.
6
+
7
+ When you know only what you want to accomplish, search by keyword. When you know the exact symbol, inspect structured details for classes, members, types, and enums. Query results are ordinary TypeScript data that a CLI, Agent, editor tool, or custom interface can process further.
8
+
9
+ ## Installation
10
+
11
+ ```bash
12
+ pnpm add @univer-cli/api-reference
13
+ ```
14
+
15
+ Requires Node.js 22.12 or higher.
16
+
17
+ ## Quick Start
18
+
19
+ The package includes a reference generated from the current Univer SDK declarations:
20
+
21
+ ```ts
22
+ import { createStandardApiReference } from "@univer-cli/api-reference";
23
+
24
+ const reference = createStandardApiReference();
25
+
26
+ const matches = reference.find({
27
+ terms: ["setValues", "conditional formatting"],
28
+ unit: "sheet",
29
+ limit: 20,
30
+ });
31
+
32
+ const details = reference.show(["FRange", "FRange.setValues", "ICellData.v"]);
33
+ ```
34
+
35
+ `find()` returns matches for each keyword and is useful for discovering APIs. `show()` returns precise details for each symbol and is useful for generating instructions or validating input.
36
+
37
+ ## Query rules
38
+
39
+ - Search is case-insensitive and supports substrings, camelCase word splitting, and fuzzy matching.
40
+ - `unit` can restrict results to `sheet`, `slide`, `doc`, `base`, or `board`; shared APIs are always
41
+ included.
42
+ - `limit` works on each search term, not the sum of all results.
43
+ - Details include inheritance, composition, overloads, related types, and spelling suggestions.
44
+ - Common class names can use aliases, for example, `range` will be resolved to `FRange`.
45
+ - When the symbol does not exist, `status: "not-found"` is returned and no exception is thrown.
46
+
47
+ ## Load your own reference
48
+
49
+ If your application needs to pin a different API dataset, load a prebuilt artifact:
50
+
51
+ ```ts
52
+ import { loadApiReference } from "@univer-cli/api-reference";
53
+
54
+ const reference = loadApiReference(artifact);
55
+ ```
56
+
57
+ Artifact is a versioned opaque value. The package verifies the format when loading; callers should not rely on its internal index structure.
58
+
59
+ For the preset command, see
60
+ [`@univer-cli/api-reference-command`](../api-reference-command/README.md).
61
+
62
+ ## API entry
63
+
64
+ - `createStandardApiReference()`: Create reference using built-in Univer declarations.
65
+ - `loadApiReference(artifact)`: Verify and load pre-generated artifacts.
66
+ - `ApiReference.find()`: Discover APIs by keyword.
67
+ - `ApiReference.show()`: Inspect details by symbol.
@@ -0,0 +1,67 @@
1
+ # @univer-cli/api-reference
2
+
3
+ [English](./README.md) | 简体中文
4
+
5
+ 在本地搜索和查阅 Univer Facade API,无需启动 Univer,也无需访问在线文档。
6
+
7
+ 当你只知道“想完成什么”,可以用关键词查找相关 API;当你已经知道 symbol,可以查看 class、member、type 或
8
+ enum 的结构化详情。查询结果是普通 TypeScript 数据,适合交给 CLI、Agent、编辑器工具或自定义界面继续处理。
9
+
10
+ ## 安装
11
+
12
+ ```bash
13
+ pnpm add @univer-cli/api-reference
14
+ ```
15
+
16
+ 要求 Node.js 22.12 或更高版本。
17
+
18
+ ## 快速开始
19
+
20
+ Package 自带一份与当前 Univer SDK declarations 对应的 reference:
21
+
22
+ ```ts
23
+ import { createStandardApiReference } from "@univer-cli/api-reference";
24
+
25
+ const reference = createStandardApiReference();
26
+
27
+ const matches = reference.find({
28
+ terms: ["setValues", "conditional formatting"],
29
+ unit: "sheet",
30
+ limit: 20,
31
+ });
32
+
33
+ const details = reference.show(["FRange", "FRange.setValues", "ICellData.v"]);
34
+ ```
35
+
36
+ `find()` 按关键词分别返回候选项,适合发现 API;`show()` 按 symbol 返回精确详情,适合生成说明或校验输入。
37
+
38
+ ## 查询规则
39
+
40
+ - 搜索不区分大小写,支持 substring、camelCase 分词和模糊匹配。
41
+ - `unit` 可限定为 `sheet`、`slide`、`doc`、`base` 或 `board`,shared API 始终保留。
42
+ - `limit` 作用于每个搜索词,而不是所有结果的总和。
43
+ - 详情包含继承、组合、overload、相关类型和拼写建议。
44
+ - 常用 class 名可使用别名,例如 `range` 会解析为 `FRange`。
45
+ - symbol 不存在时返回 `status: "not-found"`,不会抛出异常。
46
+
47
+ ## 加载自己的 reference
48
+
49
+ 如果 application 需要固定另一份 API 数据,可以加载预生成 artifact:
50
+
51
+ ```ts
52
+ import { loadApiReference } from "@univer-cli/api-reference";
53
+
54
+ const reference = loadApiReference(artifact);
55
+ ```
56
+
57
+ Artifact 是带版本的 opaque value。Package 会在加载时校验格式;调用方不应依赖其内部索引结构。
58
+
59
+ 预设 command 见
60
+ [`@univer-cli/api-reference-command`](../api-reference-command/README.zh-CN.md)。
61
+
62
+ ## API 入口
63
+
64
+ - `createStandardApiReference()`:使用内置 Univer declarations 创建 reference。
65
+ - `loadApiReference(artifact)`:校验并加载预生成 artifact。
66
+ - `ApiReference.find()`:按关键词发现 API。
67
+ - `ApiReference.show()`:按 symbol 查看详情。
package/dist/index.cjs ADDED
@@ -0,0 +1 @@
1
+ 'use strict';module['exports']=require('./index.mjs');
@@ -0,0 +1,121 @@
1
+ //#region src/index.d.ts
2
+ declare const API_REFERENCE_UNITS: readonly ["sheet", "slide", "doc", "base", "board"];
3
+ type ApiReferenceUnit = (typeof API_REFERENCE_UNITS)[number];
4
+ type ApiReferenceMemberKind = "method" | "getter" | "property" | "function-property";
5
+ type ApiReferenceMemberRelation = "own" | "inherited" | "composed";
6
+ type ApiReferenceTypeKind = "interface" | "enum" | "alias";
7
+ interface ApiReferenceMember {
8
+ readonly packageName: string;
9
+ readonly owner: string;
10
+ readonly kind: ApiReferenceMemberKind;
11
+ readonly readonly?: boolean;
12
+ readonly name: string;
13
+ readonly signature: string;
14
+ readonly summary: string;
15
+ readonly example: string;
16
+ }
17
+ interface ApiReferenceTypeMember {
18
+ readonly name: string;
19
+ readonly optional?: boolean;
20
+ readonly type: string;
21
+ readonly summary?: string;
22
+ }
23
+ interface ApiReferenceType {
24
+ readonly kind: ApiReferenceTypeKind;
25
+ readonly packageName: string;
26
+ readonly name: string;
27
+ readonly summary: string;
28
+ readonly members?: readonly ApiReferenceTypeMember[];
29
+ readonly values?: readonly {
30
+ readonly name: string;
31
+ readonly value: string | number;
32
+ }[];
33
+ readonly definition?: string;
34
+ readonly extends?: string;
35
+ readonly aliases?: readonly string[];
36
+ }
37
+ interface FindApiReferencesInput {
38
+ readonly terms: readonly string[];
39
+ readonly unit?: ApiReferenceUnit;
40
+ readonly limit?: number;
41
+ }
42
+ interface ApiReferenceFindMatch {
43
+ readonly kind: ApiReferenceMemberKind | ApiReferenceTypeKind | "field";
44
+ readonly label: string;
45
+ readonly signature: string;
46
+ readonly summary: string;
47
+ readonly packageName: string;
48
+ readonly score: number;
49
+ }
50
+ interface ApiReferenceFindTermResult {
51
+ readonly term: string;
52
+ readonly matches: readonly ApiReferenceFindMatch[];
53
+ readonly totalMatches: number;
54
+ }
55
+ interface ApiReferenceMemberGroup {
56
+ readonly owner: string;
57
+ readonly relation: ApiReferenceMemberRelation;
58
+ readonly members: readonly ApiReferenceMember[];
59
+ }
60
+ interface ApiReferenceClassResult {
61
+ readonly status: "found";
62
+ readonly kind: "class";
63
+ readonly query: string;
64
+ readonly name: string;
65
+ readonly lineage: readonly string[];
66
+ readonly composes: readonly string[];
67
+ readonly groups: readonly ApiReferenceMemberGroup[];
68
+ }
69
+ interface ApiReferenceMemberResultEntry {
70
+ readonly member: ApiReferenceMember;
71
+ readonly relation: ApiReferenceMemberRelation;
72
+ readonly relationOwner: string;
73
+ readonly appendix: readonly ApiReferenceType[];
74
+ }
75
+ interface ApiReferenceMemberResult {
76
+ readonly status: "found";
77
+ readonly kind: "member";
78
+ readonly query: string;
79
+ readonly target: string;
80
+ readonly entries: readonly ApiReferenceMemberResultEntry[];
81
+ }
82
+ interface ApiReferenceTypeResult {
83
+ readonly status: "found";
84
+ readonly kind: "type";
85
+ readonly query: string;
86
+ readonly type: ApiReferenceType;
87
+ readonly inherited: readonly ApiReferenceType[];
88
+ readonly appendix: readonly ApiReferenceType[];
89
+ }
90
+ interface ApiReferenceTypeMemberResult {
91
+ readonly status: "found";
92
+ readonly kind: "type-member";
93
+ readonly query: string;
94
+ readonly declaredBy: ApiReferenceType;
95
+ readonly requestedType: ApiReferenceType;
96
+ readonly member: ApiReferenceTypeMember | {
97
+ readonly name: string;
98
+ readonly value: string | number;
99
+ };
100
+ readonly appendix: readonly ApiReferenceType[];
101
+ }
102
+ interface ApiReferenceNotFoundResult {
103
+ readonly status: "not-found";
104
+ readonly kind: "symbol" | "member";
105
+ readonly query: string;
106
+ readonly owner?: string;
107
+ readonly member?: string;
108
+ readonly suggestions: readonly string[];
109
+ }
110
+ type ApiReferenceShowResult = ApiReferenceClassResult | ApiReferenceMemberResult | ApiReferenceTypeResult | ApiReferenceTypeMemberResult | ApiReferenceNotFoundResult;
111
+ interface ApiReference {
112
+ find(input: FindApiReferencesInput): readonly ApiReferenceFindTermResult[];
113
+ show(symbols: readonly string[]): readonly ApiReferenceShowResult[];
114
+ }
115
+ declare class ApiReferenceArtifactError extends Error {
116
+ constructor(message: string, options?: ErrorOptions);
117
+ }
118
+ declare function loadApiReferenceArtifact(serialized: string): ApiReference;
119
+ declare function createStandardApiReference(): ApiReference;
120
+ //#endregion
121
+ export { API_REFERENCE_UNITS, ApiReference, ApiReferenceArtifactError, ApiReferenceClassResult, ApiReferenceFindMatch, ApiReferenceFindTermResult, ApiReferenceMember, ApiReferenceMemberGroup, ApiReferenceMemberKind, ApiReferenceMemberRelation, ApiReferenceMemberResult, ApiReferenceMemberResultEntry, ApiReferenceNotFoundResult, ApiReferenceShowResult, ApiReferenceType, ApiReferenceTypeKind, ApiReferenceTypeMember, ApiReferenceTypeMemberResult, ApiReferenceTypeResult, ApiReferenceUnit, FindApiReferencesInput, createStandardApiReference, loadApiReferenceArtifact };