@nocoo/zhe 1.11.3 → 1.15.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.
Files changed (48) hide show
  1. package/dist/api/client.d.ts +29 -1
  2. package/dist/api/client.d.ts.map +1 -1
  3. package/dist/api/client.js +65 -2
  4. package/dist/api/client.js.map +1 -1
  5. package/dist/api/types.d.ts +70 -0
  6. package/dist/api/types.d.ts.map +1 -1
  7. package/dist/commands/create.d.ts +1 -1
  8. package/dist/commands/create.d.ts.map +1 -1
  9. package/dist/commands/create.js +48 -4
  10. package/dist/commands/create.js.map +1 -1
  11. package/dist/commands/folders.d.ts +10 -0
  12. package/dist/commands/folders.d.ts.map +1 -0
  13. package/dist/commands/folders.js +58 -0
  14. package/dist/commands/folders.js.map +1 -0
  15. package/dist/commands/get.d.ts.map +1 -1
  16. package/dist/commands/get.js +29 -2
  17. package/dist/commands/get.js.map +1 -1
  18. package/dist/commands/idea.d.ts +5 -0
  19. package/dist/commands/idea.d.ts.map +1 -0
  20. package/dist/commands/idea.js +406 -0
  21. package/dist/commands/idea.js.map +1 -0
  22. package/dist/commands/inbox.d.ts +19 -0
  23. package/dist/commands/inbox.d.ts.map +1 -0
  24. package/dist/commands/inbox.js +81 -0
  25. package/dist/commands/inbox.js.map +1 -0
  26. package/dist/commands/list.d.ts +26 -1
  27. package/dist/commands/list.d.ts.map +1 -1
  28. package/dist/commands/list.js +71 -6
  29. package/dist/commands/list.js.map +1 -1
  30. package/dist/commands/tags.d.ts +10 -0
  31. package/dist/commands/tags.d.ts.map +1 -0
  32. package/dist/commands/tags.js +58 -0
  33. package/dist/commands/tags.js.map +1 -0
  34. package/dist/commands/update.d.ts +23 -1
  35. package/dist/commands/update.d.ts.map +1 -1
  36. package/dist/commands/update.js +63 -5
  37. package/dist/commands/update.js.map +1 -1
  38. package/dist/index.js +10 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/utils.d.ts +33 -3
  41. package/dist/utils.d.ts.map +1 -1
  42. package/dist/utils.js +128 -4
  43. package/dist/utils.js.map +1 -1
  44. package/dist/version.d.ts +5 -0
  45. package/dist/version.d.ts.map +1 -0
  46. package/dist/version.js +28 -0
  47. package/dist/version.js.map +1 -0
  48. package/package.json +1 -1
package/dist/utils.js CHANGED
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Shared utilities for zhe CLI
3
3
  */
4
+ import { pc } from "@nocoo/cli-base";
4
5
  /**
5
6
  * Mask an API key for display: zhe_abcd...wxyz
6
7
  */
@@ -45,11 +46,39 @@ export function truncate(str, maxLength) {
45
46
  /**
46
47
  * Format links as a table
47
48
  */
48
- export function formatLinksTable(links) {
49
+ export function formatLinksTable(links, options = {}) {
49
50
  if (links.length === 0) {
50
51
  return "No links found.";
51
52
  }
52
- const header = "ID SLUG URL CLICKS CREATED";
53
+ const { wide = false, folderMap } = options;
54
+ const showFolders = links.some((l) => l.folderId);
55
+ if (wide) {
56
+ // Wide mode: no truncation
57
+ const header = showFolders
58
+ ? "ID SLUG URL FOLDER CLICKS CREATED"
59
+ : "ID SLUG URL CLICKS CREATED";
60
+ const separator = "─".repeat(header.length);
61
+ const rows = links.map((link) => {
62
+ const id = String(link.id).padEnd(6);
63
+ const slug = link.slug.padEnd(20);
64
+ const url = link.originalUrl.padEnd(48);
65
+ const clicks = String(link.clicks).padEnd(7);
66
+ const created = formatDate(link.createdAt);
67
+ if (showFolders) {
68
+ const folderName = link.folderId
69
+ ? (folderMap?.get(link.folderId) ?? link.folderId.slice(0, 8))
70
+ : "";
71
+ const folder = folderName.padEnd(16);
72
+ return `${id} ${slug} ${url} ${folder} ${clicks} ${created}`;
73
+ }
74
+ return `${id} ${slug} ${url} ${clicks} ${created}`;
75
+ });
76
+ return [header, separator, ...rows].join("\n");
77
+ }
78
+ // Default compact mode with truncation
79
+ const header = showFolders
80
+ ? "ID SLUG URL FOLDER CLICKS CREATED"
81
+ : "ID SLUG URL CLICKS CREATED";
53
82
  const separator = "─".repeat(header.length);
54
83
  const rows = links.map((link) => {
55
84
  const id = String(link.id).padEnd(6);
@@ -57,6 +86,13 @@ export function formatLinksTable(links) {
57
86
  const url = truncate(link.originalUrl, 32).padEnd(32);
58
87
  const clicks = String(link.clicks).padEnd(7);
59
88
  const created = formatDate(link.createdAt);
89
+ if (showFolders) {
90
+ const folderName = link.folderId
91
+ ? (folderMap?.get(link.folderId) ?? link.folderId.slice(0, 8))
92
+ : "";
93
+ const folder = truncate(folderName, 12).padEnd(12);
94
+ return `${id} ${slug} ${url} ${folder} ${clicks} ${created}`;
95
+ }
60
96
  return `${id} ${slug} ${url} ${clicks} ${created}`;
61
97
  });
62
98
  return [header, separator, ...rows].join("\n");
@@ -72,8 +108,10 @@ export function formatLinksMinimal(links) {
72
108
  }
73
109
  /**
74
110
  * Format a single link for detailed display
111
+ * @param link - The link to format
112
+ * @param folderName - Optional folder name (if not provided, shows folder ID)
75
113
  */
76
- export function formatLinkDetail(link) {
114
+ export function formatLinkDetail(link, folderName) {
77
115
  const lines = [
78
116
  `Link #${link.id}`,
79
117
  "",
@@ -83,7 +121,8 @@ export function formatLinkDetail(link) {
83
121
  ` Clicks: ${link.clicks}`,
84
122
  ];
85
123
  if (link.folderId) {
86
- lines.push(` Folder: ${link.folderId}`);
124
+ const folderDisplay = folderName ?? link.folderId;
125
+ lines.push(` Folder: ${folderDisplay}`);
87
126
  }
88
127
  if (link.note) {
89
128
  lines.push(` Note: ${link.note}`);
@@ -102,4 +141,89 @@ export function parseLinkId(input) {
102
141
  }
103
142
  return id;
104
143
  }
144
+ /**
145
+ * Format folders as a table
146
+ */
147
+ export function formatFoldersTable(folders) {
148
+ if (folders.length === 0) {
149
+ return "No folders found.";
150
+ }
151
+ const header = "ID NAME LINKS ICON CREATED";
152
+ const separator = "─".repeat(header.length);
153
+ const rows = folders.map((folder) => {
154
+ const id = folder.id.padEnd(36);
155
+ const name = truncate(folder.name, 18).padEnd(18);
156
+ const links = String(folder.linkCount).padEnd(6);
157
+ const icon = truncate(folder.icon, 8).padEnd(8);
158
+ const created = formatDate(folder.createdAt);
159
+ return `${id} ${name} ${links} ${icon} ${created}`;
160
+ });
161
+ return [header, separator, ...rows].join("\n");
162
+ }
163
+ /**
164
+ * Format tags as a table
165
+ */
166
+ export function formatTagsTable(tags) {
167
+ if (tags.length === 0) {
168
+ return "No tags found.";
169
+ }
170
+ const header = "ID NAME COLOR CREATED";
171
+ const separator = "─".repeat(header.length);
172
+ const rows = tags.map((tag) => {
173
+ const id = tag.id.padEnd(36);
174
+ const name = truncate(tag.name, 18).padEnd(18);
175
+ const color = tag.color.padEnd(8);
176
+ const created = formatDate(tag.createdAt);
177
+ return `${id} ${name} ${color} ${created}`;
178
+ });
179
+ return [header, separator, ...rows].join("\n");
180
+ }
181
+ /**
182
+ * Resolve a folder name to folder ID via API.
183
+ * If input looks like a UUID, use it directly.
184
+ * Returns null if folder is not found (with error message printed).
185
+ */
186
+ export async function resolveFolderName(client, input) {
187
+ // Check if input looks like a UUID (36 chars with dashes)
188
+ const uuidPattern = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
189
+ if (uuidPattern.test(input)) {
190
+ return input; // Assume it's already an ID
191
+ }
192
+ // Otherwise, resolve by name
193
+ const { folders } = await client.listFolders();
194
+ const matches = folders.filter((f) => f.name.toLowerCase() === input.toLowerCase());
195
+ if (matches.length === 0) {
196
+ console.log(pc.red(`Folder not found: ${input}`));
197
+ return null;
198
+ }
199
+ if (matches.length > 1) {
200
+ console.log(pc.red(`Multiple folders match "${input}". Please use the folder ID instead.`));
201
+ console.log(pc.dim("Use `zhe folders` to see all folder IDs."));
202
+ return null;
203
+ }
204
+ return matches[0].id;
205
+ }
206
+ /**
207
+ * Resolve a tag name to tag ID via API.
208
+ * If input looks like a UUID, use it directly.
209
+ * Returns null if tag is not found (with error message printed).
210
+ */
211
+ export async function resolveTagName(client, input) {
212
+ // Check if input looks like a UUID
213
+ const uuidPattern = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
214
+ if (uuidPattern.test(input)) {
215
+ return input;
216
+ }
217
+ const { tags } = await client.listTags();
218
+ const matches = tags.filter((t) => t.name.toLowerCase() === input.toLowerCase());
219
+ if (matches.length === 0) {
220
+ console.log(pc.red(`Tag not found: ${input}. Create it first.`));
221
+ return null;
222
+ }
223
+ if (matches.length > 1) {
224
+ console.log(pc.red(`Multiple tags match "${input}". Please use the tag ID or rename duplicates.`));
225
+ return null;
226
+ }
227
+ return matches[0].id;
228
+ }
105
229
  //# sourceMappingURL=utils.js.map
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * CLI version - read from package.json at build time
3
+ */
4
+ export declare const CLI_VERSION: string;
5
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgCH,eAAO,MAAM,WAAW,QAAe,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * CLI version - read from package.json at build time
3
+ */
4
+ import { createRequire } from "node:module";
5
+ import { dirname, join } from "node:path";
6
+ import { fileURLToPath } from "node:url";
7
+ const __dirname = dirname(fileURLToPath(import.meta.url));
8
+ const require = createRequire(import.meta.url);
9
+ // Read package.json relative to dist/ or src/
10
+ function getVersion() {
11
+ try {
12
+ // Try dist/../package.json first (runtime)
13
+ const pkg = require(join(__dirname, "..", "package.json"));
14
+ return pkg.version;
15
+ }
16
+ catch {
17
+ try {
18
+ // Fall back to src/../package.json (dev)
19
+ const pkg = require(join(__dirname, "..", "..", "package.json"));
20
+ return pkg.version;
21
+ }
22
+ catch {
23
+ return "0.0.0";
24
+ }
25
+ }
26
+ }
27
+ export const CLI_VERSION = getVersion();
28
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAM/C,8CAA8C;AAC9C,SAAS,UAAU;IAClB,IAAI,CAAC;QACJ,2CAA2C;QAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAgB,CAAC;QAC1E,OAAO,GAAG,CAAC,OAAO,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACR,IAAI,CAAC;YACJ,yCAAyC;YACzC,MAAM,GAAG,GAAG,OAAO,CAClB,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAC5B,CAAC;YACjB,OAAO,GAAG,CAAC,OAAO,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,OAAO,CAAC;QAChB,CAAC;IACF,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocoo/zhe",
3
- "version": "1.11.3",
3
+ "version": "1.15.0",
4
4
  "description": "CLI for managing zhe.to short links",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",