@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.
Files changed (87) hide show
  1. package/README.md +93 -0
  2. package/dist/chunks/action-menu-CTtINmWd.js +118 -0
  3. package/dist/chunks/action-menu-CTtINmWd.js.map +1 -0
  4. package/dist/chunks/{file-watcher-CBAbblss.js → file-watcher-D7oyc-9z.js} +55 -11
  5. package/dist/chunks/file-watcher-D7oyc-9z.js.map +1 -0
  6. package/dist/chunks/{index-Bl_mOQRe.js → index-_7NEUoS7.js} +271 -136
  7. package/dist/chunks/index-_7NEUoS7.js.map +1 -0
  8. package/dist/chunks/{loader-DuzyKV70.js → loader-BItrdVWG.js} +149 -26
  9. package/dist/chunks/loader-BItrdVWG.js.map +1 -0
  10. package/dist/chunks/search-prompt-D67WyKrY.js +179 -0
  11. package/dist/chunks/search-prompt-D67WyKrY.js.map +1 -0
  12. package/dist/chunks/tty-CDBIQraQ.js +17 -0
  13. package/dist/chunks/tty-CDBIQraQ.js.map +1 -0
  14. package/dist/cli/commands/list.d.ts +7 -1
  15. package/dist/cli/commands/list.d.ts.map +1 -1
  16. package/dist/cli/commands/search.d.ts +26 -1
  17. package/dist/cli/commands/search.d.ts.map +1 -1
  18. package/dist/cli/completion.d.ts +65 -0
  19. package/dist/cli/completion.d.ts.map +1 -0
  20. package/dist/cli/index.d.ts.map +1 -1
  21. package/dist/cli.js +535 -119
  22. package/dist/cli.js.map +1 -1
  23. package/dist/config/defaults.d.ts.map +1 -1
  24. package/dist/config/loader.d.ts.map +1 -1
  25. package/dist/config/schema.d.ts +97 -0
  26. package/dist/config/schema.d.ts.map +1 -1
  27. package/dist/features/import/importer.d.ts.map +1 -1
  28. package/dist/features/interactive/action-menu.d.ts +56 -0
  29. package/dist/features/interactive/action-menu.d.ts.map +1 -0
  30. package/dist/features/interactive/debounce.d.ts +22 -0
  31. package/dist/features/interactive/debounce.d.ts.map +1 -0
  32. package/dist/features/interactive/format.d.ts +52 -0
  33. package/dist/features/interactive/format.d.ts.map +1 -0
  34. package/dist/features/interactive/search-prompt.d.ts +47 -0
  35. package/dist/features/interactive/search-prompt.d.ts.map +1 -0
  36. package/dist/features/interactive/tty.d.ts +20 -0
  37. package/dist/features/interactive/tty.d.ts.map +1 -0
  38. package/dist/features/operations/add.d.ts.map +1 -1
  39. package/dist/features/operations/list.d.ts +12 -3
  40. package/dist/features/operations/list.d.ts.map +1 -1
  41. package/dist/features/operations/search.d.ts +19 -3
  42. package/dist/features/operations/search.d.ts.map +1 -1
  43. package/dist/features/pagination/aliases.d.ts +14 -0
  44. package/dist/features/pagination/aliases.d.ts.map +1 -0
  45. package/dist/features/pagination/index.d.ts +8 -0
  46. package/dist/features/pagination/index.d.ts.map +1 -0
  47. package/dist/features/pagination/paginate.d.ts +20 -0
  48. package/dist/features/pagination/paginate.d.ts.map +1 -0
  49. package/dist/features/pagination/sorter.d.ts +16 -0
  50. package/dist/features/pagination/sorter.d.ts.map +1 -0
  51. package/dist/features/pagination/types.d.ts +74 -0
  52. package/dist/features/pagination/types.d.ts.map +1 -0
  53. package/dist/index.js +13 -12
  54. package/dist/index.js.map +1 -1
  55. package/dist/mcp/context.d.ts +4 -4
  56. package/dist/mcp/context.d.ts.map +1 -1
  57. package/dist/mcp/resources/index.d.ts +3 -3
  58. package/dist/mcp/resources/index.d.ts.map +1 -1
  59. package/dist/mcp/resources/library.d.ts +5 -5
  60. package/dist/mcp/resources/library.d.ts.map +1 -1
  61. package/dist/mcp/tools/add.d.ts +3 -3
  62. package/dist/mcp/tools/add.d.ts.map +1 -1
  63. package/dist/mcp/tools/cite.d.ts +3 -3
  64. package/dist/mcp/tools/cite.d.ts.map +1 -1
  65. package/dist/mcp/tools/fulltext.d.ts +7 -7
  66. package/dist/mcp/tools/fulltext.d.ts.map +1 -1
  67. package/dist/mcp/tools/index.d.ts +3 -3
  68. package/dist/mcp/tools/index.d.ts.map +1 -1
  69. package/dist/mcp/tools/list.d.ts +10 -3
  70. package/dist/mcp/tools/list.d.ts.map +1 -1
  71. package/dist/mcp/tools/remove.d.ts +3 -3
  72. package/dist/mcp/tools/remove.d.ts.map +1 -1
  73. package/dist/mcp/tools/search.d.ts +10 -3
  74. package/dist/mcp/tools/search.d.ts.map +1 -1
  75. package/dist/server/routes/list.d.ts +13 -0
  76. package/dist/server/routes/list.d.ts.map +1 -1
  77. package/dist/server/routes/search.d.ts +14 -0
  78. package/dist/server/routes/search.d.ts.map +1 -1
  79. package/dist/server.js +4 -4
  80. package/dist/utils/index.d.ts +1 -0
  81. package/dist/utils/index.d.ts.map +1 -1
  82. package/dist/utils/object.d.ts +16 -0
  83. package/dist/utils/object.d.ts.map +1 -0
  84. package/package.json +4 -1
  85. package/dist/chunks/file-watcher-CBAbblss.js.map +0 -1
  86. package/dist/chunks/index-Bl_mOQRe.js.map +0 -1
  87. 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,MA+B3B,CAAC"}
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;AA8ID;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAwClE"}
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"}
@@ -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;AAExB;;GAEG;AACH,eAAO,MAAM,cAAc;;;;EAAsC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;iBAI7B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;iBAK5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;EAAkC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;iBAK/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBASvB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2DhB,CAAC;AAEjB;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CACpC,CAAC;AAoKF;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,GAAG,iBAAiB,CAmEhF"}
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;AAsGD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,YAAY,CAAC,CAiCvB"}
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":"AACA,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
+ {"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;AAGhE;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA4BjG"}
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 formatting options
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;AAMhE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,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;CACjB;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,YAAY,CAAC,CA0CvB"}
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