@ashdev/codex-plugin-sdk 1.7.1 → 1.8.1
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/server.d.ts +5 -3
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +147 -11
- package/dist/server.js.map +1 -1
- package/dist/types/capabilities.d.ts +47 -12
- package/dist/types/capabilities.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/protocol.d.ts +156 -1
- package/dist/types/protocol.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/server.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Plugin server - handles JSON-RPC communication over stdio
|
|
3
3
|
*/
|
|
4
|
-
import type { MetadataContentType, MetadataProvider } from "./types/capabilities.js";
|
|
4
|
+
import type { BookMetadataProvider, MetadataContentType, MetadataProvider } from "./types/capabilities.js";
|
|
5
5
|
import type { PluginManifest } from "./types/manifest.js";
|
|
6
6
|
/**
|
|
7
7
|
* Initialize parameters received from Codex
|
|
@@ -22,8 +22,10 @@ export interface MetadataPluginOptions {
|
|
|
22
22
|
metadataProvider: MetadataContentType[];
|
|
23
23
|
};
|
|
24
24
|
};
|
|
25
|
-
/** MetadataProvider implementation */
|
|
26
|
-
provider
|
|
25
|
+
/** Series MetadataProvider implementation (required if "series" in metadataProvider) */
|
|
26
|
+
provider?: MetadataProvider;
|
|
27
|
+
/** Book MetadataProvider implementation (required if "book" in metadataProvider) */
|
|
28
|
+
bookProvider?: BookMetadataProvider;
|
|
27
29
|
/** Called when plugin receives initialize with credentials/config */
|
|
28
30
|
onInitialize?: (params: InitializeParams) => void | Promise<void>;
|
|
29
31
|
/** Log level (default: "info") */
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAqH1D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mFAAmF;IACnF,QAAQ,EAAE,cAAc,GAAG;QACzB,YAAY,EAAE;YAAE,gBAAgB,EAAE,mBAAmB,EAAE,CAAA;SAAE,CAAC;KAC3D,CAAC;IACF,wFAAwF;IACxF,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,oFAAoF;IACpF,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,qEAAqE;IACrE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAChD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CA0CzE;AAMD;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,2BAA2B,GAAG,IAAI,CAarF;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,4EAA4E;IAC5E,QAAQ,EAAE,cAAc,GAAG;QACzB,YAAY,EAAE;YAAE,sBAAsB,EAAE,IAAI,CAAA;SAAE,CAAC;KAChD,CAAC;IACF,4CAA4C;IAC5C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,qEAAqE;IACrE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAChD"}
|
package/dist/server.js
CHANGED
|
@@ -48,6 +48,30 @@ function validateGetParams(params) {
|
|
|
48
48
|
function validateMatchParams(params) {
|
|
49
49
|
return validateStringFields(params, ["title"]);
|
|
50
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Validate BookSearchParams - requires either isbn or query
|
|
53
|
+
*/
|
|
54
|
+
function validateBookSearchParams(params) {
|
|
55
|
+
if (params === null || params === undefined) {
|
|
56
|
+
return { field: "params", message: "params is required" };
|
|
57
|
+
}
|
|
58
|
+
if (typeof params !== "object") {
|
|
59
|
+
return { field: "params", message: "params must be an object" };
|
|
60
|
+
}
|
|
61
|
+
const obj = params;
|
|
62
|
+
const hasIsbn = obj.isbn !== undefined && obj.isbn !== null && obj.isbn !== "";
|
|
63
|
+
const hasQuery = obj.query !== undefined && obj.query !== null && obj.query !== "";
|
|
64
|
+
if (!hasIsbn && !hasQuery) {
|
|
65
|
+
return { field: "isbn/query", message: "either isbn or query is required" };
|
|
66
|
+
}
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Validate BookMatchParams
|
|
71
|
+
*/
|
|
72
|
+
function validateBookMatchParams(params) {
|
|
73
|
+
return validateStringFields(params, ["title"]);
|
|
74
|
+
}
|
|
51
75
|
/**
|
|
52
76
|
* Create an INVALID_PARAMS error response
|
|
53
77
|
*/
|
|
@@ -112,15 +136,23 @@ function invalidParamsError(id, error) {
|
|
|
112
136
|
* ```
|
|
113
137
|
*/
|
|
114
138
|
export function createMetadataPlugin(options) {
|
|
115
|
-
const { manifest, provider, onInitialize, logLevel = "info" } = options;
|
|
139
|
+
const { manifest, provider, bookProvider, onInitialize, logLevel = "info" } = options;
|
|
116
140
|
const logger = createLogger({ name: manifest.name, level: logLevel });
|
|
141
|
+
// Validate that required providers are present based on manifest
|
|
142
|
+
const contentTypes = manifest.capabilities.metadataProvider;
|
|
143
|
+
if (contentTypes.includes("series") && !provider) {
|
|
144
|
+
throw new Error("Series metadata provider is required when 'series' is in metadataProvider capabilities");
|
|
145
|
+
}
|
|
146
|
+
if (contentTypes.includes("book") && !bookProvider) {
|
|
147
|
+
throw new Error("Book metadata provider is required when 'book' is in metadataProvider capabilities");
|
|
148
|
+
}
|
|
117
149
|
logger.info(`Starting plugin: ${manifest.displayName} v${manifest.version}`);
|
|
118
150
|
const rl = createInterface({
|
|
119
151
|
input: process.stdin,
|
|
120
152
|
terminal: false,
|
|
121
153
|
});
|
|
122
154
|
rl.on("line", (line) => {
|
|
123
|
-
void handleLine(line, manifest, provider, onInitialize, logger);
|
|
155
|
+
void handleLine(line, manifest, provider, bookProvider, onInitialize, logger);
|
|
124
156
|
});
|
|
125
157
|
rl.on("close", () => {
|
|
126
158
|
logger.info("stdin closed, shutting down");
|
|
@@ -158,7 +190,7 @@ export function createSeriesMetadataPlugin(options) {
|
|
|
158
190
|
// =============================================================================
|
|
159
191
|
// Internal Implementation
|
|
160
192
|
// =============================================================================
|
|
161
|
-
async function handleLine(line, manifest, provider, onInitialize, logger) {
|
|
193
|
+
async function handleLine(line, manifest, provider, bookProvider, onInitialize, logger) {
|
|
162
194
|
const trimmed = line.trim();
|
|
163
195
|
if (!trimmed)
|
|
164
196
|
return;
|
|
@@ -167,7 +199,7 @@ async function handleLine(line, manifest, provider, onInitialize, logger) {
|
|
|
167
199
|
const request = JSON.parse(trimmed);
|
|
168
200
|
id = request.id;
|
|
169
201
|
logger.debug(`Received request: ${request.method}`, { id: request.id });
|
|
170
|
-
const response = await handleRequest(request, manifest, provider, onInitialize, logger);
|
|
202
|
+
const response = await handleRequest(request, manifest, provider, bookProvider, onInitialize, logger);
|
|
171
203
|
// Shutdown handler writes response directly and returns null
|
|
172
204
|
if (response !== null) {
|
|
173
205
|
writeResponse(response);
|
|
@@ -206,7 +238,7 @@ async function handleLine(line, manifest, provider, onInitialize, logger) {
|
|
|
206
238
|
}
|
|
207
239
|
}
|
|
208
240
|
}
|
|
209
|
-
async function handleRequest(request, manifest, provider, onInitialize, logger) {
|
|
241
|
+
async function handleRequest(request, manifest, provider, bookProvider, onInitialize, logger) {
|
|
210
242
|
const { method, params, id } = request;
|
|
211
243
|
switch (method) {
|
|
212
244
|
case "initialize":
|
|
@@ -240,8 +272,20 @@ async function handleRequest(request, manifest, provider, onInitialize, logger)
|
|
|
240
272
|
// Return a sentinel that handleLine will recognize and skip normal writeResponse
|
|
241
273
|
return null;
|
|
242
274
|
}
|
|
243
|
-
//
|
|
275
|
+
// =========================================================================
|
|
276
|
+
// Series metadata methods
|
|
277
|
+
// =========================================================================
|
|
244
278
|
case "metadata/series/search": {
|
|
279
|
+
if (!provider) {
|
|
280
|
+
return {
|
|
281
|
+
jsonrpc: "2.0",
|
|
282
|
+
id,
|
|
283
|
+
error: {
|
|
284
|
+
code: JSON_RPC_ERROR_CODES.METHOD_NOT_FOUND,
|
|
285
|
+
message: "This plugin does not support series metadata",
|
|
286
|
+
},
|
|
287
|
+
};
|
|
288
|
+
}
|
|
245
289
|
const validationError = validateSearchParams(params);
|
|
246
290
|
if (validationError) {
|
|
247
291
|
return invalidParamsError(id, validationError);
|
|
@@ -253,6 +297,16 @@ async function handleRequest(request, manifest, provider, onInitialize, logger)
|
|
|
253
297
|
};
|
|
254
298
|
}
|
|
255
299
|
case "metadata/series/get": {
|
|
300
|
+
if (!provider) {
|
|
301
|
+
return {
|
|
302
|
+
jsonrpc: "2.0",
|
|
303
|
+
id,
|
|
304
|
+
error: {
|
|
305
|
+
code: JSON_RPC_ERROR_CODES.METHOD_NOT_FOUND,
|
|
306
|
+
message: "This plugin does not support series metadata",
|
|
307
|
+
},
|
|
308
|
+
};
|
|
309
|
+
}
|
|
256
310
|
const validationError = validateGetParams(params);
|
|
257
311
|
if (validationError) {
|
|
258
312
|
return invalidParamsError(id, validationError);
|
|
@@ -264,13 +318,23 @@ async function handleRequest(request, manifest, provider, onInitialize, logger)
|
|
|
264
318
|
};
|
|
265
319
|
}
|
|
266
320
|
case "metadata/series/match": {
|
|
321
|
+
if (!provider) {
|
|
322
|
+
return {
|
|
323
|
+
jsonrpc: "2.0",
|
|
324
|
+
id,
|
|
325
|
+
error: {
|
|
326
|
+
code: JSON_RPC_ERROR_CODES.METHOD_NOT_FOUND,
|
|
327
|
+
message: "This plugin does not support series metadata",
|
|
328
|
+
},
|
|
329
|
+
};
|
|
330
|
+
}
|
|
267
331
|
if (!provider.match) {
|
|
268
332
|
return {
|
|
269
333
|
jsonrpc: "2.0",
|
|
270
334
|
id,
|
|
271
335
|
error: {
|
|
272
336
|
code: JSON_RPC_ERROR_CODES.METHOD_NOT_FOUND,
|
|
273
|
-
message: "This plugin does not support match",
|
|
337
|
+
message: "This plugin does not support series match",
|
|
274
338
|
},
|
|
275
339
|
};
|
|
276
340
|
}
|
|
@@ -284,10 +348,82 @@ async function handleRequest(request, manifest, provider, onInitialize, logger)
|
|
|
284
348
|
result: await provider.match(params),
|
|
285
349
|
};
|
|
286
350
|
}
|
|
287
|
-
//
|
|
288
|
-
//
|
|
289
|
-
//
|
|
290
|
-
|
|
351
|
+
// =========================================================================
|
|
352
|
+
// Book metadata methods
|
|
353
|
+
// =========================================================================
|
|
354
|
+
case "metadata/book/search": {
|
|
355
|
+
if (!bookProvider) {
|
|
356
|
+
return {
|
|
357
|
+
jsonrpc: "2.0",
|
|
358
|
+
id,
|
|
359
|
+
error: {
|
|
360
|
+
code: JSON_RPC_ERROR_CODES.METHOD_NOT_FOUND,
|
|
361
|
+
message: "This plugin does not support book metadata",
|
|
362
|
+
},
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
const validationError = validateBookSearchParams(params);
|
|
366
|
+
if (validationError) {
|
|
367
|
+
return invalidParamsError(id, validationError);
|
|
368
|
+
}
|
|
369
|
+
return {
|
|
370
|
+
jsonrpc: "2.0",
|
|
371
|
+
id,
|
|
372
|
+
result: await bookProvider.search(params),
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
case "metadata/book/get": {
|
|
376
|
+
if (!bookProvider) {
|
|
377
|
+
return {
|
|
378
|
+
jsonrpc: "2.0",
|
|
379
|
+
id,
|
|
380
|
+
error: {
|
|
381
|
+
code: JSON_RPC_ERROR_CODES.METHOD_NOT_FOUND,
|
|
382
|
+
message: "This plugin does not support book metadata",
|
|
383
|
+
},
|
|
384
|
+
};
|
|
385
|
+
}
|
|
386
|
+
const validationError = validateGetParams(params);
|
|
387
|
+
if (validationError) {
|
|
388
|
+
return invalidParamsError(id, validationError);
|
|
389
|
+
}
|
|
390
|
+
return {
|
|
391
|
+
jsonrpc: "2.0",
|
|
392
|
+
id,
|
|
393
|
+
result: await bookProvider.get(params),
|
|
394
|
+
};
|
|
395
|
+
}
|
|
396
|
+
case "metadata/book/match": {
|
|
397
|
+
if (!bookProvider) {
|
|
398
|
+
return {
|
|
399
|
+
jsonrpc: "2.0",
|
|
400
|
+
id,
|
|
401
|
+
error: {
|
|
402
|
+
code: JSON_RPC_ERROR_CODES.METHOD_NOT_FOUND,
|
|
403
|
+
message: "This plugin does not support book metadata",
|
|
404
|
+
},
|
|
405
|
+
};
|
|
406
|
+
}
|
|
407
|
+
if (!bookProvider.match) {
|
|
408
|
+
return {
|
|
409
|
+
jsonrpc: "2.0",
|
|
410
|
+
id,
|
|
411
|
+
error: {
|
|
412
|
+
code: JSON_RPC_ERROR_CODES.METHOD_NOT_FOUND,
|
|
413
|
+
message: "This plugin does not support book match",
|
|
414
|
+
},
|
|
415
|
+
};
|
|
416
|
+
}
|
|
417
|
+
const validationError = validateBookMatchParams(params);
|
|
418
|
+
if (validationError) {
|
|
419
|
+
return invalidParamsError(id, validationError);
|
|
420
|
+
}
|
|
421
|
+
return {
|
|
422
|
+
jsonrpc: "2.0",
|
|
423
|
+
id,
|
|
424
|
+
result: await bookProvider.match(params),
|
|
425
|
+
};
|
|
426
|
+
}
|
|
291
427
|
default:
|
|
292
428
|
return {
|
|
293
429
|
jsonrpc: "2.0",
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAe,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,28 +16,23 @@
|
|
|
16
16
|
* };
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
|
-
import type { MetadataGetParams, MetadataMatchParams, MetadataMatchResponse, MetadataSearchParams, MetadataSearchResponse, PluginSeriesMetadata } from "./protocol.js";
|
|
19
|
+
import type { BookMatchParams, BookSearchParams, MetadataGetParams, MetadataMatchParams, MetadataMatchResponse, MetadataSearchParams, MetadataSearchResponse, PluginBookMetadata, PluginSeriesMetadata } from "./protocol.js";
|
|
20
20
|
/**
|
|
21
21
|
* Content types that a metadata provider can support.
|
|
22
22
|
* Plugins declare which types they support in capabilities.metadataProvider.
|
|
23
23
|
*/
|
|
24
24
|
export type MetadataContentType = "series" | "book";
|
|
25
25
|
/**
|
|
26
|
-
* Interface for plugins that provide metadata.
|
|
26
|
+
* Interface for plugins that provide series metadata.
|
|
27
27
|
*
|
|
28
28
|
* Plugins implementing this capability can:
|
|
29
|
-
* - Search for
|
|
29
|
+
* - Search for series by query
|
|
30
30
|
* - Get full metadata by external ID
|
|
31
|
-
* - Optionally match existing
|
|
32
|
-
*
|
|
33
|
-
* The same interface is used for both series and book metadata.
|
|
34
|
-
* The content type is determined by the method being called:
|
|
35
|
-
* - metadata/series/search -> provider.search()
|
|
36
|
-
* - metadata/book/search -> provider.search() (when book support is added)
|
|
31
|
+
* - Optionally match existing series to provider entries
|
|
37
32
|
*/
|
|
38
33
|
export interface MetadataProvider {
|
|
39
34
|
/**
|
|
40
|
-
* Search for
|
|
35
|
+
* Search for series matching a query
|
|
41
36
|
*
|
|
42
37
|
* @param params - Search parameters
|
|
43
38
|
* @returns Search results with relevance scores
|
|
@@ -47,7 +42,7 @@ export interface MetadataProvider {
|
|
|
47
42
|
* Get full metadata for a specific external ID
|
|
48
43
|
*
|
|
49
44
|
* @param params - Get parameters including external ID
|
|
50
|
-
* @returns Full metadata
|
|
45
|
+
* @returns Full series metadata
|
|
51
46
|
*/
|
|
52
47
|
get(params: MetadataGetParams): Promise<PluginSeriesMetadata>;
|
|
53
48
|
/**
|
|
@@ -61,6 +56,41 @@ export interface MetadataProvider {
|
|
|
61
56
|
*/
|
|
62
57
|
match?(params: MetadataMatchParams): Promise<MetadataMatchResponse>;
|
|
63
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Interface for plugins that provide book metadata.
|
|
61
|
+
*
|
|
62
|
+
* Plugins implementing this capability can:
|
|
63
|
+
* - Search for books by ISBN or title/author
|
|
64
|
+
* - Get full metadata by external ID
|
|
65
|
+
* - Optionally match existing books to provider entries
|
|
66
|
+
*/
|
|
67
|
+
export interface BookMetadataProvider {
|
|
68
|
+
/**
|
|
69
|
+
* Search for books matching a query or ISBN
|
|
70
|
+
*
|
|
71
|
+
* @param params - Search parameters (isbn, query, author, year)
|
|
72
|
+
* @returns Search results with relevance scores
|
|
73
|
+
*/
|
|
74
|
+
search(params: BookSearchParams): Promise<MetadataSearchResponse>;
|
|
75
|
+
/**
|
|
76
|
+
* Get full book metadata for a specific external ID
|
|
77
|
+
*
|
|
78
|
+
* @param params - Get parameters including external ID
|
|
79
|
+
* @returns Full book metadata
|
|
80
|
+
*/
|
|
81
|
+
get(params: MetadataGetParams): Promise<PluginBookMetadata>;
|
|
82
|
+
/**
|
|
83
|
+
* Find the best match for an existing book (optional)
|
|
84
|
+
*
|
|
85
|
+
* This is used for auto-matching during library scans.
|
|
86
|
+
* ISBN matching is tried first if provided, then title/author fallback.
|
|
87
|
+
* If not implemented, Codex will use search() and pick the top result.
|
|
88
|
+
*
|
|
89
|
+
* @param params - Match parameters including title, authors, ISBN
|
|
90
|
+
* @returns Best match with confidence score
|
|
91
|
+
*/
|
|
92
|
+
match?(params: BookMatchParams): Promise<MetadataMatchResponse>;
|
|
93
|
+
}
|
|
64
94
|
/**
|
|
65
95
|
* Interface for plugins that sync reading progress (syncProvider: true)
|
|
66
96
|
* @future v2 - Methods will be defined when sync capability is implemented
|
|
@@ -74,10 +104,15 @@ export interface SyncProvider {
|
|
|
74
104
|
export interface RecommendationProvider {
|
|
75
105
|
}
|
|
76
106
|
/**
|
|
77
|
-
* Partial metadata provider - allows implementing only some methods
|
|
107
|
+
* Partial series metadata provider - allows implementing only some methods
|
|
78
108
|
* Use this for testing or gradual implementation
|
|
79
109
|
*/
|
|
80
110
|
export type PartialMetadataProvider = Partial<MetadataProvider>;
|
|
111
|
+
/**
|
|
112
|
+
* Partial book metadata provider - allows implementing only some methods
|
|
113
|
+
* Use this for testing or gradual implementation
|
|
114
|
+
*/
|
|
115
|
+
export type PartialBookMetadataProvider = Partial<BookMetadataProvider>;
|
|
81
116
|
/**
|
|
82
117
|
* @deprecated Use MetadataProvider instead
|
|
83
118
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/types/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,eAAe,CAAC;AAMvB;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,MAAM,CAAC;AAMpD
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/types/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,eAAe,CAAC;AAMvB;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,MAAM,CAAC;AAMpD;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAEtE;;;;;OAKG;IACH,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE9D;;;;;;;;OAQG;IACH,KAAK,CAAC,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACrE;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAElE;;;;;OAKG;IACH,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE5D;;;;;;;;;OASG;IACH,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACjE;AAMD;;;GAGG;AAEH,MAAM,WAAW,YAAY;CAAG;AAEhC;;;GAGG;AAEH,MAAM,WAAW,sBAAsB;CAAG;AAM1C;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAMxE;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,uBAAuB,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Re-export all types
|
|
3
3
|
*/
|
|
4
|
-
export type { MetadataContentType, MetadataProvider, PartialMetadataProvider, PartialSeriesMetadataProvider, RecommendationProvider, SeriesMetadataProvider, SyncProvider, } from "./capabilities.js";
|
|
4
|
+
export type { BookMetadataProvider, MetadataContentType, MetadataProvider, PartialBookMetadataProvider, PartialMetadataProvider, PartialSeriesMetadataProvider, RecommendationProvider, SeriesMetadataProvider, SyncProvider, } from "./capabilities.js";
|
|
5
5
|
export type { ConfigField, ConfigSchema, CredentialField, PluginCapabilities, PluginManifest, } from "./manifest.js";
|
|
6
6
|
export { hasBookMetadataProvider, hasSeriesMetadataProvider } from "./manifest.js";
|
|
7
|
-
export type { AlternateTitle, ExternalLink, ExternalLinkType, ExternalRating, MetadataGetParams, MetadataMatchParams, MetadataMatchResponse, MetadataSearchParams, MetadataSearchResponse, PluginSeriesMetadata, ReadingDirection, SearchResult, SearchResultPreview, SeriesStatus, } from "./protocol.js";
|
|
7
|
+
export type { AlternateTitle, BookAuthor, BookAuthorRole, BookAward, BookCover, BookCoverSize, BookMatchParams, BookSearchParams, ExternalLink, ExternalLinkType, ExternalRating, MetadataGetParams, MetadataMatchParams, MetadataMatchResponse, MetadataSearchParams, MetadataSearchResponse, PluginBookMetadata, PluginSeriesMetadata, ReadingDirection, SearchResult, SearchResultPreview, SeriesStatus, } from "./protocol.js";
|
|
8
8
|
export * from "./rpc.js";
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EAEV,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,6BAA6B,EAC7B,sBAAsB,EAEtB,sBAAsB,EACtB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAGnF,YAAY,EACV,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EAEV,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,uBAAuB,EACvB,6BAA6B,EAC7B,sBAAsB,EAEtB,sBAAsB,EACtB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAGnF,YAAY,EAEV,cAAc,EAEd,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EAEd,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,cAAc,UAAU,CAAC"}
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyBH,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AA8BnF,cAAc,UAAU,CAAC"}
|
package/dist/types/protocol.d.ts
CHANGED
|
@@ -49,7 +49,7 @@ export interface SearchResult {
|
|
|
49
49
|
* Preview data shown in search result list
|
|
50
50
|
*/
|
|
51
51
|
export interface SearchResultPreview {
|
|
52
|
-
/** Publication status */
|
|
52
|
+
/** Publication status (for series search results) */
|
|
53
53
|
status?: string;
|
|
54
54
|
/** Genres */
|
|
55
55
|
genres: string[];
|
|
@@ -59,6 +59,8 @@ export interface SearchResultPreview {
|
|
|
59
59
|
description?: string;
|
|
60
60
|
/** Number of books in the series (if known by the provider) */
|
|
61
61
|
bookCount?: number;
|
|
62
|
+
/** Author names (for book search results) */
|
|
63
|
+
authors?: string[];
|
|
62
64
|
}
|
|
63
65
|
/**
|
|
64
66
|
* Parameters for metadata/series/get method (and future metadata/book/get)
|
|
@@ -184,4 +186,157 @@ export interface MetadataMatchResponse {
|
|
|
184
186
|
/** Alternative matches if confidence is low */
|
|
185
187
|
alternatives?: SearchResult[];
|
|
186
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Parameters for metadata/book/search method
|
|
191
|
+
*
|
|
192
|
+
* Supports both ISBN lookup and title/author search:
|
|
193
|
+
* - If `isbn` is provided, direct ISBN lookup is attempted first (faster, more accurate)
|
|
194
|
+
* - If only `query` is provided, title/author search is used
|
|
195
|
+
* - If both are provided, ISBN is tried first with query as fallback
|
|
196
|
+
*/
|
|
197
|
+
export interface BookSearchParams {
|
|
198
|
+
/** ISBN-10 or ISBN-13 (if provided, takes priority over query) */
|
|
199
|
+
isbn?: string;
|
|
200
|
+
/** Search query (title, author, or combined) - used if no ISBN */
|
|
201
|
+
query?: string;
|
|
202
|
+
/** Optional: filter by author name */
|
|
203
|
+
author?: string;
|
|
204
|
+
/** Optional: filter by publication year */
|
|
205
|
+
year?: number;
|
|
206
|
+
/** Maximum number of results to return */
|
|
207
|
+
limit?: number;
|
|
208
|
+
/** Pagination cursor from previous response */
|
|
209
|
+
cursor?: string;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Parameters for metadata/book/match method (auto-matching)
|
|
213
|
+
*/
|
|
214
|
+
export interface BookMatchParams {
|
|
215
|
+
/** Book title */
|
|
216
|
+
title: string;
|
|
217
|
+
/** Authors (if known) */
|
|
218
|
+
authors: string[];
|
|
219
|
+
/** ISBN (if available - will be tried first) */
|
|
220
|
+
isbn?: string;
|
|
221
|
+
/** Publication year (if known) */
|
|
222
|
+
year?: number;
|
|
223
|
+
/** Publisher (if known) */
|
|
224
|
+
publisher?: string;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Full book metadata from a provider
|
|
228
|
+
*/
|
|
229
|
+
export interface PluginBookMetadata {
|
|
230
|
+
/** External ID from the provider */
|
|
231
|
+
externalId: string;
|
|
232
|
+
/** URL to the book on the provider's website */
|
|
233
|
+
externalUrl: string;
|
|
234
|
+
/** Primary title */
|
|
235
|
+
title?: string;
|
|
236
|
+
/** Subtitle (e.g., "A Novel") */
|
|
237
|
+
subtitle?: string;
|
|
238
|
+
/** Alternative titles with language info */
|
|
239
|
+
alternateTitles: AlternateTitle[];
|
|
240
|
+
/** Full description/summary */
|
|
241
|
+
summary?: string;
|
|
242
|
+
/** Book type (comic, manga, novel, etc.) */
|
|
243
|
+
bookType?: string;
|
|
244
|
+
/** Volume number in series */
|
|
245
|
+
volume?: number;
|
|
246
|
+
/** Chapter number (for single-chapter releases) */
|
|
247
|
+
chapter?: number;
|
|
248
|
+
/** Page count */
|
|
249
|
+
pageCount?: number;
|
|
250
|
+
/** Release date (ISO 8601 format) */
|
|
251
|
+
releaseDate?: string;
|
|
252
|
+
/** Publication year */
|
|
253
|
+
year?: number;
|
|
254
|
+
/** Primary ISBN (ISBN-13 preferred) */
|
|
255
|
+
isbn?: string;
|
|
256
|
+
/** All ISBNs (ISBN-10 and ISBN-13) */
|
|
257
|
+
isbns: string[];
|
|
258
|
+
/** Edition information (e.g., "First Edition", "Revised") */
|
|
259
|
+
edition?: string;
|
|
260
|
+
/** Original title (for translations) */
|
|
261
|
+
originalTitle?: string;
|
|
262
|
+
/** Original publication year */
|
|
263
|
+
originalYear?: number;
|
|
264
|
+
/** Translator name */
|
|
265
|
+
translator?: string;
|
|
266
|
+
/** BCP47 language code (e.g., "en", "ja", "ko") */
|
|
267
|
+
language?: string;
|
|
268
|
+
/** Position in series (e.g., 1.0, 1.5 for specials) */
|
|
269
|
+
seriesPosition?: number;
|
|
270
|
+
/** Total number of books in series (if known) */
|
|
271
|
+
seriesTotal?: number;
|
|
272
|
+
/** Genres (e.g., "Science Fiction", "Romance") */
|
|
273
|
+
genres: string[];
|
|
274
|
+
/** Tags/themes (e.g., "Time Travel", "Space Exploration") */
|
|
275
|
+
tags: string[];
|
|
276
|
+
/** Subjects/topics (library classification) */
|
|
277
|
+
subjects: string[];
|
|
278
|
+
/** Structured authors with roles */
|
|
279
|
+
authors: BookAuthor[];
|
|
280
|
+
/** Artists (for comics/manga) */
|
|
281
|
+
artists: string[];
|
|
282
|
+
/** Publisher name */
|
|
283
|
+
publisher?: string;
|
|
284
|
+
/** Primary cover URL (for backwards compatibility) */
|
|
285
|
+
coverUrl?: string;
|
|
286
|
+
/** Multiple covers with different sizes/sources */
|
|
287
|
+
covers: BookCover[];
|
|
288
|
+
/** Primary external rating */
|
|
289
|
+
rating?: ExternalRating;
|
|
290
|
+
/** Multiple external ratings from different sources */
|
|
291
|
+
externalRatings: ExternalRating[];
|
|
292
|
+
/** Awards received */
|
|
293
|
+
awards: BookAward[];
|
|
294
|
+
/** Links to other sites */
|
|
295
|
+
externalLinks: ExternalLink[];
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Structured author with role information
|
|
299
|
+
*/
|
|
300
|
+
export interface BookAuthor {
|
|
301
|
+
/** Author's display name */
|
|
302
|
+
name: string;
|
|
303
|
+
/** Author's role */
|
|
304
|
+
role: BookAuthorRole;
|
|
305
|
+
/** Author's name in sort order (e.g., "Doe, Jane") */
|
|
306
|
+
sortName?: string;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Author role in a book
|
|
310
|
+
*/
|
|
311
|
+
export type BookAuthorRole = "author" | "coauthor" | "editor" | "translator" | "illustrator" | "contributor";
|
|
312
|
+
/**
|
|
313
|
+
* Book cover with size and source information
|
|
314
|
+
*/
|
|
315
|
+
export interface BookCover {
|
|
316
|
+
/** URL to download the cover image */
|
|
317
|
+
url: string;
|
|
318
|
+
/** Image width in pixels (if known) */
|
|
319
|
+
width?: number;
|
|
320
|
+
/** Image height in pixels (if known) */
|
|
321
|
+
height?: number;
|
|
322
|
+
/** Size hint for cover */
|
|
323
|
+
size?: BookCoverSize;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Cover size hint
|
|
327
|
+
*/
|
|
328
|
+
export type BookCoverSize = "small" | "medium" | "large";
|
|
329
|
+
/**
|
|
330
|
+
* Book award information
|
|
331
|
+
*/
|
|
332
|
+
export interface BookAward {
|
|
333
|
+
/** Award name (e.g., "Hugo Award") */
|
|
334
|
+
name: string;
|
|
335
|
+
/** Year the award was given */
|
|
336
|
+
year?: number;
|
|
337
|
+
/** Award category (e.g., "Best Novel") */
|
|
338
|
+
category?: string;
|
|
339
|
+
/** Whether the book won (true) or was nominated (false) */
|
|
340
|
+
won: boolean;
|
|
341
|
+
}
|
|
187
342
|
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/types/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,qBAAqB;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/types/protocol.ts"],"names":[],"mappings":"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"}
|