@galaxy-tool-util/search 1.10.1 → 1.13.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.
@@ -1 +1 @@
1
- {"version":3,"file":"toolshed.d.ts","sourceRoot":"","sources":["../../src/client/toolshed.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAKjF,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAkDvC;AAED;;;GAGG;AACH,wBAAuB,sBAAsB,CAC3C,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,kBAAuB,GAC5B,cAAc,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAS1D"}
1
+ {"version":3,"file":"toolshed.d.ts","sourceRoot":"","sources":["../../src/client/toolshed.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAKjF,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CA0DvC;AAED;;;GAGG;AACH,wBAAuB,sBAAsB,CAC3C,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,kBAAuB,GAC5B,cAAc,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAS1D"}
@@ -29,14 +29,18 @@ export async function searchTools(toolshedUrl, query, opts = {}) {
29
29
  throw new ToolFetchError(`Tool Shed search request to ${url} failed: ${err.message}`, url);
30
30
  }
31
31
  if (response.status === 404) {
32
- console.debug(`Tool Shed search: ${url} returned 404 — treating as empty page`);
33
- return {
34
- total_results: 0,
35
- page: opts.page ?? 1,
36
- page_size: opts.pageSize ?? 0,
37
- hostname: toolshedUrl,
38
- hits: [],
39
- };
32
+ const body = await response.text().catch(() => "");
33
+ const page = opts.page ?? 1;
34
+ if (page > 1 && body.includes("ObjectNotFound")) {
35
+ return {
36
+ total_results: 0,
37
+ page,
38
+ page_size: opts.pageSize ?? 0,
39
+ hostname: toolshedUrl,
40
+ hits: [],
41
+ };
42
+ }
43
+ throw new ToolFetchError(`Tool Shed search request to ${url} failed: 404 ${body.slice(0, 200)}`, url, response.status);
40
44
  }
41
45
  if (!response.ok) {
42
46
  const body = await response.text().catch(() => "");
@@ -1 +1 @@
1
- {"version":3,"file":"toolshed.js","sourceRoot":"","sources":["../../src/client/toolshed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolshed.js","sourceRoot":"","sources":["../../src/client/toolshed.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ToolInfoService, ToolSource } from "@galaxy-tool-util/core";
1
+ import type { DiagnosticSink, ToolInfoService, ToolSource } from "@galaxy-tool-util/core";
2
2
  import type { ParsedTool } from "@galaxy-tool-util/schema";
3
3
  import type { ToolSearchHit } from "./models/toolshed-search.js";
4
4
  /**
@@ -32,10 +32,16 @@ export interface NormalizedToolHit {
32
32
  parsedTool?: ParsedTool;
33
33
  }
34
34
  export interface SearchToolsServiceOptions {
35
+ /** Starting result page requested from each Tool Shed. Defaults to 1. */
36
+ page?: number;
35
37
  /** Server-side page size. Defaults to 20. */
36
38
  pageSize?: number;
37
39
  /** Hard cap on hits returned (after dedup). Defaults to 50. */
38
40
  maxResults?: number;
41
+ /** Keep only hits owned by this Tool Shed user (case-insensitive). */
42
+ owner?: string;
43
+ /** Keep only hits whose tool name contains at least one complete query token. */
44
+ matchName?: boolean;
39
45
  /** When true, resolve each hit's `ParsedTool` via the info service (and cache). */
40
46
  enrich?: boolean;
41
47
  }
@@ -48,17 +54,26 @@ export interface ToolSearchServiceOptions {
48
54
  /** Shared with `ToolInfoService` so enriched hits reuse its cache. */
49
55
  info: ToolInfoService;
50
56
  fetcher?: typeof fetch;
57
+ /**
58
+ * Receives recoverable search-source and enrichment-callback diagnostics.
59
+ * Diagnostics produced inside `info` use that service's own sink.
60
+ */
61
+ onDiagnostic?: DiagnosticSink;
51
62
  }
52
63
  /**
53
64
  * High-level tool discovery service. Fans a query out across configured
54
65
  * Tool Shed sources, dedupes hits that describe the same `(owner, repo,
55
66
  * toolId)` across mirrors (first source wins), sorts by server score, and
56
- * optionally enriches each hit with a full `ParsedTool`.
67
+ * optionally enriches each hit with a full `ParsedTool`. A failed source is
68
+ * tolerated when another source completes; if every searchable source fails,
69
+ * the first source error is rethrown so callers can distinguish failure from
70
+ * an empty result set.
57
71
  */
58
72
  export declare class ToolSearchService {
59
73
  private readonly sources;
60
74
  private readonly info;
61
75
  private readonly fetcher;
76
+ private readonly onDiagnostic;
62
77
  constructor(opts: ToolSearchServiceOptions);
63
78
  searchTools(query: string, opts?: SearchToolsServiceOptions): Promise<NormalizedToolHit[]>;
64
79
  getToolVersions(toolshedUrl: string, trsToolId: string): Promise<string[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"tool-search.d.ts","sourceRoot":"","sources":["../src/tool-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGjE;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,yBAAyB;IACxC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,sEAAsE;IACtE,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkB;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;gBAE3B,IAAI,EAAE,wBAAwB;IAMpC,WAAW,CACf,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,yBAA8B,GACnC,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA+BzB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAK1E,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YAIjF,iBAAiB;YAmBjB,MAAM;CASrB;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,GAAG,iBAAiB,CAoBtF"}
1
+ {"version":3,"file":"tool-search.d.ts","sourceRoot":"","sources":["../src/tool-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAO1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGjE;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,yBAAyB;IACxC,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mFAAmF;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAcD,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,sEAAsE;IACtE,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkB;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiB;gBAElC,IAAI,EAAE,wBAAwB;IAOpC,WAAW,CACf,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,yBAA8B,GACnC,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA+CzB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAK1E,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YAIjF,iBAAiB;YAqBjB,MAAM;CASrB;AAsBD,wBAAgB,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,GAAG,iBAAiB,CAoBtF"}
@@ -1,28 +1,51 @@
1
- import { getLatestTRSToolVersion, getTRSToolVersions, toolIdFromTrs } from "@galaxy-tool-util/core";
1
+ import { getLatestTRSToolVersion, getTRSToolVersions, ignoreDiagnostic, toolIdFromTrs, } from "@galaxy-tool-util/core";
2
2
  import { iterateToolSearchPages } from "./client/toolshed.js";
3
3
  /**
4
4
  * High-level tool discovery service. Fans a query out across configured
5
5
  * Tool Shed sources, dedupes hits that describe the same `(owner, repo,
6
6
  * toolId)` across mirrors (first source wins), sorts by server score, and
7
- * optionally enriches each hit with a full `ParsedTool`.
7
+ * optionally enriches each hit with a full `ParsedTool`. A failed source is
8
+ * tolerated when another source completes; if every searchable source fails,
9
+ * the first source error is rethrown so callers can distinguish failure from
10
+ * an empty result set.
8
11
  */
9
12
  export class ToolSearchService {
10
13
  sources;
11
14
  info;
12
15
  fetcher;
16
+ onDiagnostic;
13
17
  constructor(opts) {
14
18
  this.sources = opts.sources.filter((s) => s.type === "toolshed");
15
19
  this.info = opts.info;
16
20
  this.fetcher = opts.fetcher ?? globalThis.fetch;
21
+ this.onDiagnostic = opts.onDiagnostic ?? ignoreDiagnostic;
17
22
  }
18
23
  async searchTools(query, opts = {}) {
19
- const pageSize = opts.pageSize ?? 20;
20
- const maxResults = opts.maxResults ?? 50;
21
- const perSource = await Promise.all(this.sources.map((source) => this.collectFromSource(source, query, pageSize, maxResults).catch((err) => {
22
- const msg = err instanceof Error ? err.message : String(err);
23
- console.debug(`Tool Shed search failed for ${source.url}: ${msg}`);
24
- return [];
25
- })));
24
+ const resolvedOpts = {
25
+ page: opts.page ?? 1,
26
+ pageSize: opts.pageSize ?? 20,
27
+ maxResults: opts.maxResults ?? 50,
28
+ owner: opts.owner?.toLowerCase(),
29
+ nameTokens: opts.matchName ? tokenize(query) : undefined,
30
+ };
31
+ const sourceResults = await Promise.all(this.sources.map(async (source) => {
32
+ try {
33
+ const hits = await this.collectFromSource(source, query, resolvedOpts);
34
+ return { ok: true, hits };
35
+ }
36
+ catch (error) {
37
+ return { ok: false, source, error };
38
+ }
39
+ }));
40
+ const failures = sourceResults.filter((result) => !result.ok);
41
+ if (sourceResults.length > 0 && failures.length === sourceResults.length) {
42
+ throw failures[0].error;
43
+ }
44
+ for (const failure of failures) {
45
+ const msg = failure.error instanceof Error ? failure.error.message : String(failure.error);
46
+ this.onDiagnostic(`Tool Shed search failed for ${failure.source.url}: ${msg}`);
47
+ }
48
+ const perSource = sourceResults.map((result) => (result.ok ? result.hits : []));
26
49
  const dedupKey = (h) => `${h.repoOwnerUsername}~${h.repoName}~${h.toolId}`;
27
50
  const seen = new Map();
28
51
  for (let i = 0; i < this.sources.length; i++) {
@@ -33,7 +56,7 @@ export class ToolSearchService {
33
56
  }
34
57
  }
35
58
  const merged = Array.from(seen.values()).sort((a, b) => b.score - a.score);
36
- const truncated = merged.slice(0, maxResults);
59
+ const truncated = merged.slice(0, resolvedOpts.maxResults);
37
60
  if (opts.enrich) {
38
61
  await Promise.all(truncated.map((hit) => this.enrich(hit)));
39
62
  }
@@ -46,17 +69,21 @@ export class ToolSearchService {
46
69
  async getLatestVersionForToolId(toolshedUrl, trsToolId) {
47
70
  return getLatestTRSToolVersion(toolshedUrl, trsToolId, this.fetcher);
48
71
  }
49
- async collectFromSource(source, query, pageSize, maxResults) {
72
+ async collectFromSource(source, query, opts) {
50
73
  const out = [];
51
74
  for await (const page of iterateToolSearchPages(source.url, query, {
52
- pageSize,
75
+ page: opts.page,
76
+ pageSize: opts.pageSize,
53
77
  fetcher: this.fetcher,
54
78
  })) {
55
- for (const hit of page.hits) {
56
- out.push(normalizeHit(hit, source));
79
+ for (const rawHit of page.hits) {
80
+ const hit = normalizeHit(rawHit, source);
81
+ if (!matchesFilters(hit, opts))
82
+ continue;
83
+ out.push(hit);
84
+ if (out.length >= opts.maxResults)
85
+ return out;
57
86
  }
58
- if (out.length >= maxResults)
59
- return out;
60
87
  }
61
88
  return out;
62
89
  }
@@ -68,10 +95,29 @@ export class ToolSearchService {
68
95
  }
69
96
  catch (err) {
70
97
  const msg = err instanceof Error ? err.message : String(err);
71
- console.debug(`Enrichment failed for ${hit.trsToolId}: ${msg}`);
98
+ this.onDiagnostic(`Enrichment failed for ${hit.trsToolId}: ${msg}`);
72
99
  }
73
100
  }
74
101
  }
102
+ function matchesFilters(hit, opts) {
103
+ if (opts.owner !== undefined && hit.repoOwnerUsername.toLowerCase() !== opts.owner)
104
+ return false;
105
+ if (opts.nameTokens !== undefined && !nameMatchesQuery(hit.toolName, opts.nameTokens))
106
+ return false;
107
+ return true;
108
+ }
109
+ function tokenize(value) {
110
+ return value
111
+ .toLowerCase()
112
+ .split(/[^a-z0-9+]+/)
113
+ .filter((token) => token.length > 0);
114
+ }
115
+ function nameMatchesQuery(name, queryTokens) {
116
+ if (queryTokens.length === 0)
117
+ return true;
118
+ const nameTokens = new Set(tokenize(name));
119
+ return queryTokens.some((token) => nameTokens.has(token));
120
+ }
75
121
  export function normalizeHit(hit, source) {
76
122
  const { id, name, description, repo_name, repo_owner_username, version, changeset_revision } = hit.tool;
77
123
  const trsToolId = `${repo_owner_username}~${repo_name}~${id}`;
@@ -1 +1 @@
1
- {"version":3,"file":"tool-search.js","sourceRoot":"","sources":["../src/tool-search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-search.js","sourceRoot":"","sources":["../src/tool-search.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galaxy-tool-util/search",
3
- "version": "1.10.1",
3
+ "version": "1.13.1",
4
4
  "description": "Tool discovery — Tool Shed search client, result normalization, and ranking",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -31,8 +31,8 @@
31
31
  "@types/node": "^25.5.0"
32
32
  },
33
33
  "dependencies": {
34
- "@galaxy-tool-util/core": "1.10.1",
35
- "@galaxy-tool-util/schema": "1.10.1"
34
+ "@galaxy-tool-util/schema": "1.13.1",
35
+ "@galaxy-tool-util/core": "1.13.1"
36
36
  },
37
37
  "scripts": {
38
38
  "build": "tsc",