@ncukondo/reference-manager 0.5.3 → 0.7.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/README.md +93 -0
- package/dist/chunks/action-menu-CTtINmWd.js +118 -0
- package/dist/chunks/action-menu-CTtINmWd.js.map +1 -0
- package/dist/chunks/{file-watcher-CBAbblss.js → file-watcher-D7oyc-9z.js} +55 -11
- package/dist/chunks/file-watcher-D7oyc-9z.js.map +1 -0
- package/dist/chunks/{index-Bl_mOQRe.js → index-_7NEUoS7.js} +271 -136
- package/dist/chunks/index-_7NEUoS7.js.map +1 -0
- package/dist/chunks/{loader-DuzyKV70.js → loader-BItrdVWG.js} +149 -26
- package/dist/chunks/loader-BItrdVWG.js.map +1 -0
- package/dist/chunks/search-prompt-D67WyKrY.js +179 -0
- package/dist/chunks/search-prompt-D67WyKrY.js.map +1 -0
- package/dist/chunks/tty-CDBIQraQ.js +17 -0
- package/dist/chunks/tty-CDBIQraQ.js.map +1 -0
- package/dist/cli/commands/list.d.ts +7 -1
- package/dist/cli/commands/list.d.ts.map +1 -1
- package/dist/cli/commands/search.d.ts +26 -1
- package/dist/cli/commands/search.d.ts.map +1 -1
- package/dist/cli/completion.d.ts +65 -0
- package/dist/cli/completion.d.ts.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli.js +535 -119
- package/dist/cli.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/schema.d.ts +97 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/features/import/importer.d.ts.map +1 -1
- package/dist/features/interactive/action-menu.d.ts +56 -0
- package/dist/features/interactive/action-menu.d.ts.map +1 -0
- package/dist/features/interactive/debounce.d.ts +22 -0
- package/dist/features/interactive/debounce.d.ts.map +1 -0
- package/dist/features/interactive/format.d.ts +52 -0
- package/dist/features/interactive/format.d.ts.map +1 -0
- package/dist/features/interactive/search-prompt.d.ts +47 -0
- package/dist/features/interactive/search-prompt.d.ts.map +1 -0
- package/dist/features/interactive/tty.d.ts +20 -0
- package/dist/features/interactive/tty.d.ts.map +1 -0
- package/dist/features/operations/add.d.ts.map +1 -1
- package/dist/features/operations/list.d.ts +12 -3
- package/dist/features/operations/list.d.ts.map +1 -1
- package/dist/features/operations/search.d.ts +19 -3
- package/dist/features/operations/search.d.ts.map +1 -1
- package/dist/features/pagination/aliases.d.ts +14 -0
- package/dist/features/pagination/aliases.d.ts.map +1 -0
- package/dist/features/pagination/index.d.ts +8 -0
- package/dist/features/pagination/index.d.ts.map +1 -0
- package/dist/features/pagination/paginate.d.ts +20 -0
- package/dist/features/pagination/paginate.d.ts.map +1 -0
- package/dist/features/pagination/sorter.d.ts +16 -0
- package/dist/features/pagination/sorter.d.ts.map +1 -0
- package/dist/features/pagination/types.d.ts +74 -0
- package/dist/features/pagination/types.d.ts.map +1 -0
- package/dist/index.js +13 -12
- package/dist/index.js.map +1 -1
- package/dist/mcp/context.d.ts +4 -4
- package/dist/mcp/context.d.ts.map +1 -1
- package/dist/mcp/resources/index.d.ts +3 -3
- package/dist/mcp/resources/index.d.ts.map +1 -1
- package/dist/mcp/resources/library.d.ts +5 -5
- package/dist/mcp/resources/library.d.ts.map +1 -1
- package/dist/mcp/tools/add.d.ts +3 -3
- package/dist/mcp/tools/add.d.ts.map +1 -1
- package/dist/mcp/tools/cite.d.ts +3 -3
- package/dist/mcp/tools/cite.d.ts.map +1 -1
- package/dist/mcp/tools/fulltext.d.ts +7 -7
- package/dist/mcp/tools/fulltext.d.ts.map +1 -1
- package/dist/mcp/tools/index.d.ts +3 -3
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/list.d.ts +10 -3
- package/dist/mcp/tools/list.d.ts.map +1 -1
- package/dist/mcp/tools/remove.d.ts +3 -3
- package/dist/mcp/tools/remove.d.ts.map +1 -1
- package/dist/mcp/tools/search.d.ts +10 -3
- package/dist/mcp/tools/search.d.ts.map +1 -1
- package/dist/server/routes/list.d.ts +13 -0
- package/dist/server/routes/list.d.ts.map +1 -1
- package/dist/server/routes/search.d.ts +14 -0
- package/dist/server/routes/search.d.ts.map +1 -1
- package/dist/server.js +4 -4
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/object.d.ts +16 -0
- package/dist/utils/object.d.ts.map +1 -0
- package/package.json +4 -1
- package/dist/chunks/file-watcher-CBAbblss.js.map +0 -1
- package/dist/chunks/index-Bl_mOQRe.js.map +0 -1
- package/dist/chunks/loader-DuzyKV70.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,IAAI,MAAM,CAE3D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,IAAI,MAAM,CAE3D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MA2C3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,OAAO,EACL,KAAK,MAAM,EAMZ,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,OAAO,EACL,KAAK,MAAM,EAMZ,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7B;AA6ND;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAwClE"}
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -10,6 +10,40 @@ export declare const logLevelSchema: z.ZodEnum<{
|
|
|
10
10
|
info: "info";
|
|
11
11
|
debug: "debug";
|
|
12
12
|
}>;
|
|
13
|
+
/**
|
|
14
|
+
* Interactive search configuration schema
|
|
15
|
+
*/
|
|
16
|
+
export declare const interactiveConfigSchema: z.ZodObject<{
|
|
17
|
+
limit: z.ZodNumber;
|
|
18
|
+
debounceMs: z.ZodNumber;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
/**
|
|
21
|
+
* CLI configuration schema
|
|
22
|
+
*/
|
|
23
|
+
export declare const cliConfigSchema: z.ZodObject<{
|
|
24
|
+
defaultLimit: z.ZodNumber;
|
|
25
|
+
defaultSort: z.ZodEnum<{
|
|
26
|
+
title: "title";
|
|
27
|
+
author: "author";
|
|
28
|
+
updated: "updated";
|
|
29
|
+
created: "created";
|
|
30
|
+
published: "published";
|
|
31
|
+
}>;
|
|
32
|
+
defaultOrder: z.ZodEnum<{
|
|
33
|
+
asc: "asc";
|
|
34
|
+
desc: "desc";
|
|
35
|
+
}>;
|
|
36
|
+
interactive: z.ZodObject<{
|
|
37
|
+
limit: z.ZodNumber;
|
|
38
|
+
debounceMs: z.ZodNumber;
|
|
39
|
+
}, z.core.$strip>;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
/**
|
|
42
|
+
* MCP configuration schema
|
|
43
|
+
*/
|
|
44
|
+
export declare const mcpConfigSchema: z.ZodObject<{
|
|
45
|
+
defaultLimit: z.ZodNumber;
|
|
46
|
+
}, z.core.$strip>;
|
|
13
47
|
/**
|
|
14
48
|
* Backup configuration schema
|
|
15
49
|
*/
|
|
@@ -112,6 +146,27 @@ export declare const configSchema: z.ZodObject<{
|
|
|
112
146
|
fulltext: z.ZodObject<{
|
|
113
147
|
directory: z.ZodString;
|
|
114
148
|
}, z.core.$strip>;
|
|
149
|
+
cli: z.ZodObject<{
|
|
150
|
+
defaultLimit: z.ZodNumber;
|
|
151
|
+
defaultSort: z.ZodEnum<{
|
|
152
|
+
title: "title";
|
|
153
|
+
author: "author";
|
|
154
|
+
updated: "updated";
|
|
155
|
+
created: "created";
|
|
156
|
+
published: "published";
|
|
157
|
+
}>;
|
|
158
|
+
defaultOrder: z.ZodEnum<{
|
|
159
|
+
asc: "asc";
|
|
160
|
+
desc: "desc";
|
|
161
|
+
}>;
|
|
162
|
+
interactive: z.ZodObject<{
|
|
163
|
+
limit: z.ZodNumber;
|
|
164
|
+
debounceMs: z.ZodNumber;
|
|
165
|
+
}, z.core.$strip>;
|
|
166
|
+
}, z.core.$strip>;
|
|
167
|
+
mcp: z.ZodObject<{
|
|
168
|
+
defaultLimit: z.ZodNumber;
|
|
169
|
+
}, z.core.$strip>;
|
|
115
170
|
}, z.core.$strip>;
|
|
116
171
|
/**
|
|
117
172
|
* Partial configuration schema (for TOML files)
|
|
@@ -178,6 +233,41 @@ export declare const partialConfigSchema: z.ZodObject<{
|
|
|
178
233
|
fulltext: z.ZodOptional<z.ZodObject<{
|
|
179
234
|
directory: z.ZodOptional<z.ZodString>;
|
|
180
235
|
}, z.core.$strip>>;
|
|
236
|
+
cli: z.ZodOptional<z.ZodObject<{
|
|
237
|
+
defaultLimit: z.ZodOptional<z.ZodNumber>;
|
|
238
|
+
default_limit: z.ZodOptional<z.ZodNumber>;
|
|
239
|
+
defaultSort: z.ZodOptional<z.ZodEnum<{
|
|
240
|
+
title: "title";
|
|
241
|
+
author: "author";
|
|
242
|
+
updated: "updated";
|
|
243
|
+
created: "created";
|
|
244
|
+
published: "published";
|
|
245
|
+
}>>;
|
|
246
|
+
default_sort: z.ZodOptional<z.ZodEnum<{
|
|
247
|
+
title: "title";
|
|
248
|
+
author: "author";
|
|
249
|
+
updated: "updated";
|
|
250
|
+
created: "created";
|
|
251
|
+
published: "published";
|
|
252
|
+
}>>;
|
|
253
|
+
defaultOrder: z.ZodOptional<z.ZodEnum<{
|
|
254
|
+
asc: "asc";
|
|
255
|
+
desc: "desc";
|
|
256
|
+
}>>;
|
|
257
|
+
default_order: z.ZodOptional<z.ZodEnum<{
|
|
258
|
+
asc: "asc";
|
|
259
|
+
desc: "desc";
|
|
260
|
+
}>>;
|
|
261
|
+
interactive: z.ZodOptional<z.ZodObject<{
|
|
262
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
263
|
+
debounceMs: z.ZodOptional<z.ZodNumber>;
|
|
264
|
+
debounce_ms: z.ZodOptional<z.ZodNumber>;
|
|
265
|
+
}, z.core.$strip>>;
|
|
266
|
+
}, z.core.$strip>>;
|
|
267
|
+
mcp: z.ZodOptional<z.ZodObject<{
|
|
268
|
+
defaultLimit: z.ZodOptional<z.ZodNumber>;
|
|
269
|
+
default_limit: z.ZodOptional<z.ZodNumber>;
|
|
270
|
+
}, z.core.$strip>>;
|
|
181
271
|
}, z.core.$loose>;
|
|
182
272
|
/**
|
|
183
273
|
* Inferred types from schemas
|
|
@@ -190,6 +280,9 @@ export type CitationFormat = z.infer<typeof citationFormatSchema>;
|
|
|
190
280
|
export type CitationConfig = z.infer<typeof citationConfigSchema>;
|
|
191
281
|
export type PubmedConfig = z.infer<typeof pubmedConfigSchema>;
|
|
192
282
|
export type FulltextConfig = z.infer<typeof fulltextConfigSchema>;
|
|
283
|
+
export type InteractiveConfig = z.infer<typeof interactiveConfigSchema>;
|
|
284
|
+
export type CliConfig = z.infer<typeof cliConfigSchema>;
|
|
285
|
+
export type McpConfig = z.infer<typeof mcpConfigSchema>;
|
|
193
286
|
export type Config = z.infer<typeof configSchema>;
|
|
194
287
|
export type PartialConfig = z.infer<typeof partialConfigSchema>;
|
|
195
288
|
/**
|
|
@@ -204,6 +297,10 @@ export type DeepPartialConfig = {
|
|
|
204
297
|
citation?: Partial<CitationConfig>;
|
|
205
298
|
pubmed?: Partial<PubmedConfig>;
|
|
206
299
|
fulltext?: Partial<FulltextConfig>;
|
|
300
|
+
cli?: Partial<Omit<CliConfig, "interactive">> & {
|
|
301
|
+
interactive?: Partial<InteractiveConfig>;
|
|
302
|
+
};
|
|
303
|
+
mcp?: Partial<McpConfig>;
|
|
207
304
|
};
|
|
208
305
|
/**
|
|
209
306
|
* Normalize snake_case fields to camelCase
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../../../src/features/import/importer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAW5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAqOD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAAG,MAAM,EAC5B,QAAQ,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,CAAC,CAuCvB;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CA2BvB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,oDAAoD;IACpD,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC9B,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../../../src/features/import/importer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAW5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAqOD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAAG,MAAM,EAC5B,QAAQ,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,CAAC,CAuCvB;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CA2BvB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,oDAAoD;IACpD,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC9B,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAuGD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,YAAY,CAAC,CAiCvB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Action menu for interactive search mode.
|
|
3
|
+
* Allows users to perform actions on selected references.
|
|
4
|
+
*/
|
|
5
|
+
import type { CslItem } from "../../core/csl-json/types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Action types available in the action menu.
|
|
8
|
+
*/
|
|
9
|
+
export type ActionType = "output-ids" | "output-csl-json" | "output-bibtex" | "cite-apa" | "cite-choose" | "cancel";
|
|
10
|
+
/**
|
|
11
|
+
* Result from action menu selection.
|
|
12
|
+
*/
|
|
13
|
+
export interface ActionMenuResult {
|
|
14
|
+
/** Selected action type */
|
|
15
|
+
action: ActionType;
|
|
16
|
+
/** Generated output (empty for cancel) */
|
|
17
|
+
output: string;
|
|
18
|
+
/** Whether the prompt was cancelled */
|
|
19
|
+
cancelled: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Result from style selection prompt.
|
|
23
|
+
*/
|
|
24
|
+
export interface StyleSelectResult {
|
|
25
|
+
/** Selected style (undefined if cancelled) */
|
|
26
|
+
style?: string;
|
|
27
|
+
/** Whether the prompt was cancelled */
|
|
28
|
+
cancelled: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Choice definition for Enquirer Select prompt.
|
|
32
|
+
*/
|
|
33
|
+
interface SelectChoice {
|
|
34
|
+
name: string;
|
|
35
|
+
message: string;
|
|
36
|
+
value: ActionType | string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Available action choices for the action menu.
|
|
40
|
+
*/
|
|
41
|
+
export declare const ACTION_CHOICES: SelectChoice[];
|
|
42
|
+
/**
|
|
43
|
+
* Available style choices for citation style selection.
|
|
44
|
+
* Uses BUILTIN_STYLES from config/csl-styles.ts
|
|
45
|
+
*/
|
|
46
|
+
export declare const STYLE_CHOICES: SelectChoice[];
|
|
47
|
+
export declare function runStyleSelectPrompt(): Promise<StyleSelectResult>;
|
|
48
|
+
/**
|
|
49
|
+
* Run the action menu for selected references.
|
|
50
|
+
*
|
|
51
|
+
* @param items - Selected references
|
|
52
|
+
* @returns Action result with output
|
|
53
|
+
*/
|
|
54
|
+
export declare function runActionMenu(items: CslItem[]): Promise<ActionMenuResult>;
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=action-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-menu.d.ts","sourceRoot":"","sources":["../../../src/features/interactive/action-menu.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAG5D;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ,iBAAiB,GACjB,eAAe,GACf,UAAU,GACV,aAAa,GACb,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,YAAY,EAOxC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,YAAY,EAIvC,CAAC;AAwEF,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CA+BvE;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkC/E"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debounce utility for interactive search
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Debounced function with cancel capability
|
|
6
|
+
*/
|
|
7
|
+
export interface DebouncedFunction<T extends (...args: never[]) => void> {
|
|
8
|
+
(...args: Parameters<T>): void;
|
|
9
|
+
cancel: () => void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Create a debounced version of a function
|
|
13
|
+
*
|
|
14
|
+
* The debounced function will only execute after the specified delay
|
|
15
|
+
* has passed without any new calls. Each call resets the delay timer.
|
|
16
|
+
*
|
|
17
|
+
* @param fn - Function to debounce
|
|
18
|
+
* @param delayMs - Delay in milliseconds
|
|
19
|
+
* @returns Debounced function with cancel method
|
|
20
|
+
*/
|
|
21
|
+
export declare function debounce<T extends (...args: never[]) => void>(fn: T, delayMs: number): DebouncedFunction<T>;
|
|
22
|
+
//# sourceMappingURL=debounce.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["../../../src/features/interactive/debounce.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI;IACrE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,EAC3D,EAAE,EAAE,CAAC,EACL,OAAO,EAAE,MAAM,GACd,iBAAiB,CAAC,CAAC,CAAC,CAwBtB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Display format functions for interactive search
|
|
3
|
+
*/
|
|
4
|
+
import type { CslItem } from "../../core/csl-json/types.js";
|
|
5
|
+
/**
|
|
6
|
+
* CSL name type (author structure)
|
|
7
|
+
*/
|
|
8
|
+
type CslName = NonNullable<CslItem["author"]>[number];
|
|
9
|
+
/**
|
|
10
|
+
* Format author list for display
|
|
11
|
+
* - Single author: "Smith, J."
|
|
12
|
+
* - Two authors: "Smith, J., & Doe, A."
|
|
13
|
+
* - Three authors: "Smith, J., Doe, A., & Johnson, B."
|
|
14
|
+
* - More than three: "Smith, J., et al."
|
|
15
|
+
*
|
|
16
|
+
* @param authors - Array of CSL author objects
|
|
17
|
+
* @returns Formatted author string
|
|
18
|
+
*/
|
|
19
|
+
export declare function formatAuthors(authors: CslName[] | undefined): string;
|
|
20
|
+
/**
|
|
21
|
+
* Truncate title to fit terminal width
|
|
22
|
+
*
|
|
23
|
+
* @param title - Title string
|
|
24
|
+
* @param maxWidth - Maximum display width
|
|
25
|
+
* @returns Truncated title with ellipsis if needed
|
|
26
|
+
*/
|
|
27
|
+
export declare function formatTitle(title: string | undefined, maxWidth: number): string;
|
|
28
|
+
/**
|
|
29
|
+
* Format identifiers (DOI, PMID, PMCID, ISBN) for display
|
|
30
|
+
*
|
|
31
|
+
* @param item - CSL item
|
|
32
|
+
* @returns Formatted identifier string (e.g., "DOI: 10.1000/example | PMID: 12345678")
|
|
33
|
+
*/
|
|
34
|
+
export declare function formatIdentifiers(item: CslItem): string;
|
|
35
|
+
/**
|
|
36
|
+
* Compose a complete search result line
|
|
37
|
+
*
|
|
38
|
+
* Format:
|
|
39
|
+
* ```
|
|
40
|
+
* [1] Smith, J., & Doe, A. (2020)
|
|
41
|
+
* Machine learning in medicine: A comprehensive review
|
|
42
|
+
* DOI: 10.1000/example | PMID: 12345678
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @param item - CSL item
|
|
46
|
+
* @param index - Display index (1-based)
|
|
47
|
+
* @param terminalWidth - Terminal width for title truncation
|
|
48
|
+
* @returns Multi-line formatted string
|
|
49
|
+
*/
|
|
50
|
+
export declare function formatSearchResult(item: CslItem, index: number, terminalWidth: number): string;
|
|
51
|
+
export {};
|
|
52
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/features/interactive/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAE5D;;GAEG;AACH,KAAK,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAqBtD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,SAAS,GAAG,MAAM,CAsBpE;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAW/E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAiBvD;AAiBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAyB9F"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive search prompt using Enquirer's AutoComplete
|
|
3
|
+
*
|
|
4
|
+
* Provides real-time incremental search with multiple selection support.
|
|
5
|
+
*/
|
|
6
|
+
import type { CslItem } from "../../core/csl-json/types.js";
|
|
7
|
+
import type { SearchResult } from "../search/types.js";
|
|
8
|
+
import type { AutoCompleteChoice } from "./enquirer.js";
|
|
9
|
+
/**
|
|
10
|
+
* Configuration for the search prompt
|
|
11
|
+
*/
|
|
12
|
+
export interface SearchPromptConfig {
|
|
13
|
+
/** Maximum number of results to display */
|
|
14
|
+
limit: number;
|
|
15
|
+
/** Debounce delay in milliseconds */
|
|
16
|
+
debounceMs: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Search function type for filtering references
|
|
20
|
+
*/
|
|
21
|
+
export type SearchFunction = (query: string) => SearchResult[];
|
|
22
|
+
/**
|
|
23
|
+
* Result from the search prompt
|
|
24
|
+
*/
|
|
25
|
+
export interface SearchPromptResult {
|
|
26
|
+
/** Selected references */
|
|
27
|
+
selected: CslItem[];
|
|
28
|
+
/** Whether the prompt was cancelled */
|
|
29
|
+
cancelled: boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Creates choices from search results
|
|
33
|
+
*/
|
|
34
|
+
export declare function createChoices(results: SearchResult[], terminalWidth: number): AutoCompleteChoice[];
|
|
35
|
+
/**
|
|
36
|
+
* Parses selected values back to CslItems
|
|
37
|
+
*/
|
|
38
|
+
export declare function parseSelectedValues(values: string | string[]): CslItem[];
|
|
39
|
+
/**
|
|
40
|
+
* Gets terminal width, falling back to 80 if not available
|
|
41
|
+
*/
|
|
42
|
+
export declare function getTerminalWidth(): number;
|
|
43
|
+
/**
|
|
44
|
+
* Creates and runs an interactive search prompt
|
|
45
|
+
*/
|
|
46
|
+
export declare function runSearchPrompt(allReferences: CslItem[], searchFn: SearchFunction, config: SearchPromptConfig, initialQuery?: string): Promise<SearchPromptResult>;
|
|
47
|
+
//# sourceMappingURL=search-prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-prompt.d.ts","sourceRoot":"","sources":["../../../src/features/interactive/search-prompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGxD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAC;CACpB;AAUD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,YAAY,EAAE,EACvB,aAAa,EAAE,MAAM,GACpB,kBAAkB,EAAE,CAgBtB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,CAiBxE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,OAAO,EAAE,EACxB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,kBAAkB,EAC1B,YAAY,SAAK,GAChB,OAAO,CAAC,kBAAkB,CAAC,CAgF7B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TTY detection for interactive mode
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Error thrown when TTY is required but not available
|
|
6
|
+
*/
|
|
7
|
+
export declare class TTYError extends Error {
|
|
8
|
+
readonly exitCode = 1;
|
|
9
|
+
constructor(message: string);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Check if the current environment is a TTY
|
|
13
|
+
*
|
|
14
|
+
* Throws TTYError if stdin or stdout is not a TTY,
|
|
15
|
+
* which means interactive mode cannot be used.
|
|
16
|
+
*
|
|
17
|
+
* @throws {TTYError} If not running in a TTY
|
|
18
|
+
*/
|
|
19
|
+
export declare function checkTTY(): void;
|
|
20
|
+
//# sourceMappingURL=tty.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tty.d.ts","sourceRoot":"","sources":["../../../src/features/interactive/tty.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,QAAQ,KAAK;gBAEV,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CAI/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/features/operations/add.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/features/operations/add.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAOzD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,+BAA+B;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC9B,+BAA+B;IAC/B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAwC9B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ILibrary } from "../../core/library-interface.js";
|
|
2
|
+
import { type PaginationOptions, type SortOptions } from "../pagination/index.js";
|
|
2
3
|
/**
|
|
3
4
|
* Output format options for list operation
|
|
4
5
|
*/
|
|
@@ -6,7 +7,7 @@ export type ListFormat = "pretty" | "json" | "bibtex" | "ids-only" | "uuid";
|
|
|
6
7
|
/**
|
|
7
8
|
* Options for listReferences operation
|
|
8
9
|
*/
|
|
9
|
-
export interface ListOptions {
|
|
10
|
+
export interface ListOptions extends PaginationOptions, SortOptions {
|
|
10
11
|
/** Output format (default: "pretty") */
|
|
11
12
|
format?: ListFormat;
|
|
12
13
|
}
|
|
@@ -16,13 +17,21 @@ export interface ListOptions {
|
|
|
16
17
|
export interface ListResult {
|
|
17
18
|
/** Formatted strings for each reference */
|
|
18
19
|
items: string[];
|
|
20
|
+
/** Total count before pagination */
|
|
21
|
+
total: number;
|
|
22
|
+
/** Applied limit (0 if unlimited) */
|
|
23
|
+
limit: number;
|
|
24
|
+
/** Applied offset */
|
|
25
|
+
offset: number;
|
|
26
|
+
/** Next page offset, null if no more results */
|
|
27
|
+
nextOffset: number | null;
|
|
19
28
|
}
|
|
20
29
|
/**
|
|
21
30
|
* List all references from the library with specified format.
|
|
22
31
|
*
|
|
23
32
|
* @param library - The library to list references from
|
|
24
|
-
* @param options - Formatting options
|
|
25
|
-
* @returns Formatted strings for each reference
|
|
33
|
+
* @param options - Formatting and pagination options
|
|
34
|
+
* @returns Formatted strings for each reference with pagination metadata
|
|
26
35
|
*/
|
|
27
36
|
export declare function listReferences(library: ILibrary, options: ListOptions): Promise<ListResult>;
|
|
28
37
|
//# sourceMappingURL=list.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/features/operations/list.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/features/operations/list.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,WAAW,EAIjB,MAAM,wBAAwB,CAAC;AAEhC;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,iBAAiB,EAAE,WAAW;IACjE,wCAAwC;IACxC,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AA4BD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA2BjG"}
|
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
import type { ILibrary } from "../../core/library-interface.js";
|
|
2
|
+
import { type PaginationOptions, type SearchSortField, type SortOrder } from "../pagination/index.js";
|
|
2
3
|
/**
|
|
3
4
|
* Output format options for search operation
|
|
4
5
|
*/
|
|
5
6
|
export type SearchFormat = "pretty" | "json" | "bibtex" | "ids-only" | "uuid";
|
|
7
|
+
/**
|
|
8
|
+
* Sort options for search (includes relevance)
|
|
9
|
+
*/
|
|
10
|
+
export interface SearchSortOptions {
|
|
11
|
+
sort?: SearchSortField;
|
|
12
|
+
order?: SortOrder;
|
|
13
|
+
}
|
|
6
14
|
/**
|
|
7
15
|
* Options for searchReferences operation
|
|
8
16
|
*/
|
|
9
|
-
export interface SearchOperationOptions {
|
|
17
|
+
export interface SearchOperationOptions extends PaginationOptions, SearchSortOptions {
|
|
10
18
|
/** Search query string */
|
|
11
19
|
query: string;
|
|
12
20
|
/** Output format (default: "pretty") */
|
|
@@ -18,13 +26,21 @@ export interface SearchOperationOptions {
|
|
|
18
26
|
export interface SearchResult {
|
|
19
27
|
/** Formatted strings for each matching reference */
|
|
20
28
|
items: string[];
|
|
29
|
+
/** Total count before pagination */
|
|
30
|
+
total: number;
|
|
31
|
+
/** Applied limit (0 if unlimited) */
|
|
32
|
+
limit: number;
|
|
33
|
+
/** Applied offset */
|
|
34
|
+
offset: number;
|
|
35
|
+
/** Next page offset, null if no more results */
|
|
36
|
+
nextOffset: number | null;
|
|
21
37
|
}
|
|
22
38
|
/**
|
|
23
39
|
* Search references in the library and return formatted results.
|
|
24
40
|
*
|
|
25
41
|
* @param library - The library to search in
|
|
26
|
-
* @param options - Search query and
|
|
27
|
-
* @returns Formatted strings for each matching reference
|
|
42
|
+
* @param options - Search query, formatting, and pagination options
|
|
43
|
+
* @returns Formatted strings for each matching reference with pagination metadata
|
|
28
44
|
*/
|
|
29
45
|
export declare function searchReferences(library: ILibrary, options: SearchOperationOptions): Promise<SearchResult>;
|
|
30
46
|
//# sourceMappingURL=search.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/features/operations/search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/features/operations/search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAEpB,KAAK,SAAS,EAGf,MAAM,wBAAwB,CAAC;AAKhC;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB,EAAE,iBAAiB;IAClF,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AA4BD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,YAAY,CAAC,CAuDvB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sort field alias resolver
|
|
3
|
+
*/
|
|
4
|
+
import type { SearchSortField } from "./types.js";
|
|
5
|
+
/**
|
|
6
|
+
* Resolves a sort field alias to its full name.
|
|
7
|
+
* Passes through valid sort fields unchanged.
|
|
8
|
+
*
|
|
9
|
+
* @param alias - The alias or sort field name
|
|
10
|
+
* @returns The resolved sort field
|
|
11
|
+
* @throws Error if the alias is unknown
|
|
12
|
+
*/
|
|
13
|
+
export declare function resolveSortAlias(alias: string): SearchSortField;
|
|
14
|
+
//# sourceMappingURL=aliases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aliases.d.ts","sourceRoot":"","sources":["../../../src/features/pagination/aliases.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAkBlD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAW/D"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pagination feature exports
|
|
3
|
+
*/
|
|
4
|
+
export * from "./types.js";
|
|
5
|
+
export { resolveSortAlias } from "./aliases.js";
|
|
6
|
+
export { sortReferences } from "./sorter.js";
|
|
7
|
+
export { paginate, type PaginateOptions, type PaginateResult } from "./paginate.js";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/pagination/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pagination applier
|
|
3
|
+
*/
|
|
4
|
+
export interface PaginateOptions {
|
|
5
|
+
limit?: number;
|
|
6
|
+
offset?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface PaginateResult<T> {
|
|
9
|
+
items: T[];
|
|
10
|
+
nextOffset: number | null;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Apply pagination to an array of items.
|
|
14
|
+
*
|
|
15
|
+
* @param items - Items to paginate
|
|
16
|
+
* @param options - Pagination options (limit=0 or undefined means unlimited)
|
|
17
|
+
* @returns Paginated items with nextOffset (null if no more items)
|
|
18
|
+
*/
|
|
19
|
+
export declare function paginate<T>(items: T[], options: PaginateOptions): PaginateResult<T>;
|
|
20
|
+
//# sourceMappingURL=paginate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paginate.d.ts","sourceRoot":"","sources":["../../../src/features/pagination/paginate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC,CAiCnF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reference sorter
|
|
3
|
+
*/
|
|
4
|
+
import type { CslItem } from "../../core/csl-json/types.js";
|
|
5
|
+
import type { SortField, SortOrder } from "./types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Sort references by the specified field and order.
|
|
8
|
+
* Uses secondary sort: created (desc), then id (asc) for stability.
|
|
9
|
+
*
|
|
10
|
+
* @param items - References to sort
|
|
11
|
+
* @param sort - Sort field
|
|
12
|
+
* @param order - Sort order
|
|
13
|
+
* @returns Sorted references (new array, does not mutate input)
|
|
14
|
+
*/
|
|
15
|
+
export declare function sortReferences(items: CslItem[], sort: SortField, order: SortOrder): CslItem[];
|
|
16
|
+
//# sourceMappingURL=sorter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sorter.d.ts","sourceRoot":"","sources":["../../../src/features/pagination/sorter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAsFvD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,EAAE,CAmB7F"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pagination and sorting type definitions
|
|
3
|
+
*/
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
/**
|
|
6
|
+
* Sort field for list/search commands
|
|
7
|
+
*/
|
|
8
|
+
export declare const sortFieldSchema: z.ZodEnum<{
|
|
9
|
+
title: "title";
|
|
10
|
+
author: "author";
|
|
11
|
+
updated: "updated";
|
|
12
|
+
created: "created";
|
|
13
|
+
published: "published";
|
|
14
|
+
}>;
|
|
15
|
+
export type SortField = z.infer<typeof sortFieldSchema>;
|
|
16
|
+
/**
|
|
17
|
+
* Sort field for search command (includes relevance)
|
|
18
|
+
*/
|
|
19
|
+
export declare const searchSortFieldSchema: z.ZodEnum<{
|
|
20
|
+
title: "title";
|
|
21
|
+
author: "author";
|
|
22
|
+
updated: "updated";
|
|
23
|
+
created: "created";
|
|
24
|
+
published: "published";
|
|
25
|
+
relevance: "relevance";
|
|
26
|
+
}>;
|
|
27
|
+
export type SearchSortField = z.infer<typeof searchSortFieldSchema>;
|
|
28
|
+
/**
|
|
29
|
+
* Sort order
|
|
30
|
+
*/
|
|
31
|
+
export declare const sortOrderSchema: z.ZodEnum<{
|
|
32
|
+
asc: "asc";
|
|
33
|
+
desc: "desc";
|
|
34
|
+
}>;
|
|
35
|
+
export type SortOrder = z.infer<typeof sortOrderSchema>;
|
|
36
|
+
/**
|
|
37
|
+
* Pagination options
|
|
38
|
+
*/
|
|
39
|
+
export declare const paginationOptionsSchema: z.ZodObject<{
|
|
40
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
41
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
42
|
+
}, z.core.$strip>;
|
|
43
|
+
export type PaginationOptions = z.infer<typeof paginationOptionsSchema>;
|
|
44
|
+
/**
|
|
45
|
+
* Sort options
|
|
46
|
+
*/
|
|
47
|
+
export declare const sortOptionsSchema: z.ZodObject<{
|
|
48
|
+
sort: z.ZodOptional<z.ZodEnum<{
|
|
49
|
+
title: "title";
|
|
50
|
+
author: "author";
|
|
51
|
+
updated: "updated";
|
|
52
|
+
created: "created";
|
|
53
|
+
published: "published";
|
|
54
|
+
}>>;
|
|
55
|
+
order: z.ZodOptional<z.ZodEnum<{
|
|
56
|
+
asc: "asc";
|
|
57
|
+
desc: "desc";
|
|
58
|
+
}>>;
|
|
59
|
+
}, z.core.$strip>;
|
|
60
|
+
export type SortOptions<T extends string = SortField> = {
|
|
61
|
+
sort?: T;
|
|
62
|
+
order?: SortOrder;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Paginated result
|
|
66
|
+
*/
|
|
67
|
+
export interface PaginatedResult<T> {
|
|
68
|
+
items: T[];
|
|
69
|
+
total: number;
|
|
70
|
+
limit: number;
|
|
71
|
+
offset: number;
|
|
72
|
+
nextOffset: number | null;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=types.d.ts.map
|