feishu-docs-cli 0.1.0-beta.4 → 0.1.0-beta.6

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/scopes.d.ts CHANGED
@@ -1,31 +1,42 @@
1
1
  /**
2
2
  * OAuth scope catalog.
3
3
  *
4
- * BASE_SCOPES — granted during `feishu-docs login` (no admin review needed).
5
- * FEATURE_SCOPE_GROUPS — require admin review; granted on-demand via
6
- * `feishu-docs authorize --feature <name>`.
4
+ * BASE_SCOPES — all no-review (免审) scopes needed for core functionality.
5
+ * Requested during `feishu-docs login`.
6
+ * FEATURE_SCOPE_GROUPS scopes that require admin review; granted on-demand
7
+ * via `feishu-docs authorize --feature <name>`.
7
8
  */
8
9
  export declare const BASE_SCOPES: string[];
9
10
  export declare const FEATURE_SCOPE_GROUPS: {
10
11
  readonly drive: {
11
12
  readonly scopes: readonly ["drive:drive"];
12
- readonly description: "云空间文件管理(ls、在云空间文件夹中创建文档等)";
13
- readonly commands: readonly ["ls", "create --folder"];
13
+ readonly description: "云空间文件管理(ls、delete、share、在云空间文件夹中创建文档等)";
14
+ readonly commands: readonly ["ls", "delete", "share", "create --folder"];
14
15
  };
15
16
  readonly contact: {
16
17
  readonly scopes: readonly ["contact:contact.base:readonly"];
17
18
  readonly description: "联系人只读(通过邮件/手机号查找用户)";
18
19
  readonly commands: readonly ["share add"];
19
20
  };
20
- readonly whiteboard: {
21
- readonly scopes: readonly ["board:whiteboard:node:read"];
22
- readonly description: "白板节点只读";
23
- readonly commands: readonly ["read(白板)"];
21
+ readonly search: {
22
+ readonly scopes: readonly ["drive:drive.search:readonly"];
23
+ readonly description: "搜索云文档(需管理员审核)";
24
+ readonly commands: readonly ["search"];
24
25
  };
25
- readonly bitable: {
26
- readonly scopes: readonly ["bitable:app:readonly"];
27
- readonly description: "多维表格只读";
28
- readonly commands: readonly ["read(多维表格)"];
26
+ readonly "wiki-space": {
27
+ readonly scopes: readonly ["wiki:wiki.space:create"];
28
+ readonly description: "创建知识库(需管理员审核)";
29
+ readonly commands: readonly ["wiki create-space"];
30
+ };
31
+ readonly "wiki-node": {
32
+ readonly scopes: readonly ["wiki:wiki.space.node"];
33
+ readonly description: "编辑知识库节点(重命名、移动、复制,需管理员审核)";
34
+ readonly commands: readonly ["wiki rename", "wiki move", "wiki copy"];
35
+ };
36
+ readonly "wiki-member": {
37
+ readonly scopes: readonly ["wiki:wiki.space.member"];
38
+ readonly description: "管理知识库成员(需管理员审核)";
39
+ readonly commands: readonly ["wiki add-member", "wiki remove-member"];
29
40
  };
30
41
  };
31
42
  export type FeatureName = keyof typeof FEATURE_SCOPE_GROUPS;
package/dist/scopes.js CHANGED
@@ -1,35 +1,53 @@
1
1
  /**
2
2
  * OAuth scope catalog.
3
3
  *
4
- * BASE_SCOPES — granted during `feishu-docs login` (no admin review needed).
5
- * FEATURE_SCOPE_GROUPS — require admin review; granted on-demand via
6
- * `feishu-docs authorize --feature <name>`.
4
+ * BASE_SCOPES — all no-review (免审) scopes needed for core functionality.
5
+ * Requested during `feishu-docs login`.
6
+ * FEATURE_SCOPE_GROUPS scopes that require admin review; granted on-demand
7
+ * via `feishu-docs authorize --feature <name>`.
7
8
  */
8
9
  export const BASE_SCOPES = [
10
+ // Wiki & documents
9
11
  "wiki:wiki",
10
12
  "docx:document",
11
13
  "docx:document.block:convert",
14
+ // Embedded spreadsheets (read command, sheets/v2 API)
15
+ "sheets:spreadsheet:readonly",
16
+ // Embedded whiteboards (read command, board/v1 API)
17
+ "board:whiteboard:node:read",
18
+ // Embedded bitable / multi-dimensional tables (read command, bitable/v1 API)
19
+ "bitable:app:readonly",
12
20
  ];
13
21
  export const FEATURE_SCOPE_GROUPS = {
14
22
  drive: {
15
23
  scopes: ["drive:drive"],
16
- description: "云空间文件管理(ls、在云空间文件夹中创建文档等)",
17
- commands: ["ls", "create --folder"],
24
+ description: "云空间文件管理(ls、delete、share、在云空间文件夹中创建文档等)",
25
+ commands: ["ls", "delete", "share", "create --folder"],
18
26
  },
19
27
  contact: {
20
28
  scopes: ["contact:contact.base:readonly"],
21
29
  description: "联系人只读(通过邮件/手机号查找用户)",
22
30
  commands: ["share add"],
23
31
  },
24
- whiteboard: {
25
- scopes: ["board:whiteboard:node:read"],
26
- description: "白板节点只读",
27
- commands: ["read(白板)"],
32
+ search: {
33
+ scopes: ["drive:drive.search:readonly"],
34
+ description: "搜索云文档(需管理员审核)",
35
+ commands: ["search"],
28
36
  },
29
- bitable: {
30
- scopes: ["bitable:app:readonly"],
31
- description: "多维表格只读",
32
- commands: ["read(多维表格)"],
37
+ "wiki-space": {
38
+ scopes: ["wiki:wiki.space:create"],
39
+ description: "创建知识库(需管理员审核)",
40
+ commands: ["wiki create-space"],
41
+ },
42
+ "wiki-node": {
43
+ scopes: ["wiki:wiki.space.node"],
44
+ description: "编辑知识库节点(重命名、移动、复制,需管理员审核)",
45
+ commands: ["wiki rename", "wiki move", "wiki copy"],
46
+ },
47
+ "wiki-member": {
48
+ scopes: ["wiki:wiki.space.member"],
49
+ description: "管理知识库成员(需管理员审核)",
50
+ commands: ["wiki add-member", "wiki remove-member"],
33
51
  },
34
52
  };
35
53
  export const FEATURE_NAMES = Object.keys(FEATURE_SCOPE_GROUPS);
@@ -1 +1 @@
1
- {"version":3,"file":"scopes.js","sourceRoot":"","sources":["../src/scopes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,WAAW;IACX,eAAe;IACf,6BAA6B;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE;QACL,MAAM,EAAE,CAAC,aAAa,CAAC;QACvB,WAAW,EAAE,2BAA2B;QACxC,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC;KACpC;IACD,OAAO,EAAE;QACP,MAAM,EAAE,CAAC,+BAA+B,CAAC;QACzC,WAAW,EAAE,qBAAqB;QAClC,QAAQ,EAAE,CAAC,WAAW,CAAC;KACxB;IACD,UAAU,EAAE;QACV,MAAM,EAAE,CAAC,4BAA4B,CAAC;QACtC,WAAW,EAAE,QAAQ;QACrB,QAAQ,EAAE,CAAC,UAAU,CAAC;KACvB;IACD,OAAO,EAAE;QACP,MAAM,EAAE,CAAC,sBAAsB,CAAC;QAChC,WAAW,EAAE,QAAQ;QACrB,QAAQ,EAAE,CAAC,YAAY,CAAC;KACzB;CACO,CAAC;AAIX,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAkB,CAAC;AAEhF,oEAAoE;AACpE,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS;IAC9C,GAAG,WAAW;IACd,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;CAChE,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAA+B,EAC/B,QAAkB;IAElB,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAClE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,OAAiB,EAAE,KAAe;IAC5D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,aAAuB;IACpD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,OAAO,CACL,kBAAkB,QAAQ,IAAI;QAC9B,8BAA8B;QAC9B,oCAAoC,QAAQ,GAAG,CAChD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"scopes.js","sourceRoot":"","sources":["../src/scopes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Version display and update check utilities.
3
+ */
4
+ /**
5
+ * Read the local package version from package.json.
6
+ */
7
+ export declare function getLocalVersion(): string;
8
+ /**
9
+ * Check for updates and print a notice if a newer version is available.
10
+ * This is non-blocking and never throws — update check failures are silent.
11
+ */
12
+ export declare function checkForUpdates(): Promise<void>;
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Version display and update check utilities.
3
+ */
4
+ import { readFile, writeFile, mkdir } from "node:fs/promises";
5
+ import { join } from "node:path";
6
+ import { homedir } from "node:os";
7
+ import { createRequire } from "node:module";
8
+ const PACKAGE_NAME = "feishu-docs-cli";
9
+ const CONFIG_DIR = join(homedir(), ".feishu-docs");
10
+ const UPDATE_CHECK_FILE = join(CONFIG_DIR, ".update-check.json");
11
+ const CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000; // 24 hours
12
+ /**
13
+ * Read the local package version from package.json.
14
+ */
15
+ export function getLocalVersion() {
16
+ const require = createRequire(import.meta.url);
17
+ const pkg = require("../../package.json");
18
+ return pkg.version;
19
+ }
20
+ /**
21
+ * Fetch the latest version from npm registry.
22
+ */
23
+ async function fetchLatestVersion() {
24
+ const controller = new AbortController();
25
+ const timeoutId = setTimeout(() => controller.abort(), 5_000);
26
+ try {
27
+ const res = await fetch(`https://registry.npmjs.org/${PACKAGE_NAME}/latest`, { signal: controller.signal });
28
+ if (!res.ok)
29
+ return null;
30
+ const data = (await res.json());
31
+ return data.version || null;
32
+ }
33
+ catch {
34
+ return null;
35
+ }
36
+ finally {
37
+ clearTimeout(timeoutId);
38
+ }
39
+ }
40
+ /**
41
+ * Load the update check state from disk.
42
+ */
43
+ async function loadCheckState() {
44
+ try {
45
+ const raw = await readFile(UPDATE_CHECK_FILE, "utf-8");
46
+ return JSON.parse(raw);
47
+ }
48
+ catch {
49
+ return { lastCheck: 0 };
50
+ }
51
+ }
52
+ /**
53
+ * Save the update check state to disk.
54
+ */
55
+ async function saveCheckState(state) {
56
+ await mkdir(CONFIG_DIR, { recursive: true });
57
+ await writeFile(UPDATE_CHECK_FILE, JSON.stringify(state));
58
+ }
59
+ /**
60
+ * Compare two semver strings. Returns:
61
+ * 1 if a > b, -1 if a < b, 0 if equal.
62
+ */
63
+ function compareSemver(a, b) {
64
+ const pa = a.replace(/^v/, "").split(/[-.]/).map((s) => {
65
+ const n = Number(s);
66
+ return isNaN(n) ? s : n;
67
+ });
68
+ const pb = b.replace(/^v/, "").split(/[-.]/).map((s) => {
69
+ const n = Number(s);
70
+ return isNaN(n) ? s : n;
71
+ });
72
+ const len = Math.max(pa.length, pb.length);
73
+ for (let i = 0; i < len; i++) {
74
+ const va = pa[i] ?? 0;
75
+ const vb = pb[i] ?? 0;
76
+ // A pre-release tag (string) is less than a release (number absent)
77
+ if (typeof va === "string" && typeof vb === "number")
78
+ return -1;
79
+ if (typeof va === "number" && typeof vb === "string")
80
+ return 1;
81
+ if (va < vb)
82
+ return -1;
83
+ if (va > vb)
84
+ return 1;
85
+ }
86
+ return 0;
87
+ }
88
+ /**
89
+ * Check for updates and print a notice if a newer version is available.
90
+ * This is non-blocking and never throws — update check failures are silent.
91
+ */
92
+ export async function checkForUpdates() {
93
+ try {
94
+ const state = await loadCheckState();
95
+ const now = Date.now();
96
+ // Skip if checked recently
97
+ if (now - state.lastCheck < CHECK_INTERVAL_MS) {
98
+ // Still show cached notice if a newer version was found last time
99
+ if (state.latestVersion) {
100
+ const local = getLocalVersion();
101
+ if (compareSemver(state.latestVersion, local) > 0) {
102
+ printUpdateNotice(local, state.latestVersion);
103
+ }
104
+ }
105
+ return;
106
+ }
107
+ // Fetch latest version from npm (with timeout)
108
+ const latest = await fetchLatestVersion();
109
+ const newState = {
110
+ lastCheck: now,
111
+ latestVersion: latest || undefined,
112
+ };
113
+ await saveCheckState(newState);
114
+ if (latest) {
115
+ const local = getLocalVersion();
116
+ if (compareSemver(latest, local) > 0) {
117
+ printUpdateNotice(local, latest);
118
+ }
119
+ }
120
+ }
121
+ catch {
122
+ // Never block CLI usage due to update check failure
123
+ }
124
+ }
125
+ function printUpdateNotice(current, latest) {
126
+ process.stderr.write(`feishu-docs: 发现新版本 ${latest}(当前 ${current}),运行 npm update -g ${PACKAGE_NAME} 更新\n`);
127
+ }
128
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "feishu-docs-cli",
3
- "version": "0.1.0-beta.4",
3
+ "version": "0.1.0-beta.6",
4
4
  "description": "CLI tool for AI Agents to read/write Feishu docs via shell commands",
5
5
  "type": "module",
6
6
  "bin": {