loom-browser 0.0.15 → 0.0.17

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.
@@ -375,6 +375,8 @@ export declare class HeadlessGenomeBrowser {
375
375
  removeTracks(selector: TrackSelector): number;
376
376
  /** Merge metadata into all tracks matching a selector. Returns the number of tracks updated. */
377
377
  updateTrackMetadata(selector: TrackSelector, metadata: Record<string, string>): number;
378
+ /** Merge partial render config into all tracks matching a selector. Returns the number of tracks updated. */
379
+ updateTrackConfig(selector: TrackSelector, config: Record<string, unknown>): number;
378
380
  /** Update the locus and re-render all tracks. Clamped to chromosome bounds. Operates on primary frame. */
379
381
  setLocus(locus: Locus): void;
380
382
  /** Navigate a specific frame by ID. */
@@ -64,6 +64,10 @@ export type ModifyTrackAction = {
64
64
  action: 'update_metadata';
65
65
  selector: WireTrackSelector;
66
66
  metadata: Record<string, string>;
67
+ } | {
68
+ action: 'update_config';
69
+ selector: WireTrackSelector;
70
+ config: Record<string, unknown>;
67
71
  };
68
72
  export interface QueryFeaturesArgs {
69
73
  command: 'query_features';
@@ -35,10 +35,14 @@ export declare function createGenomeSync(config: GenomeConfig & {
35
35
  */
36
36
  export declare function createGenome(config: GenomeConfig): Promise<Genome>;
37
37
  /**
38
- * Pre-built hg38 genome with 2-bit sequence (UCSC API fallback).
38
+ * Pre-built hg38 genome with triple-fallback sequence chain.
39
39
  *
40
40
  * This is the default genome used by HeadlessGenomeBrowser when no genome
41
- * is specified. Matches igv.js's default behavior: 2-bit file as primary
42
- * sequence source, with UCSC REST API as automatic fallback for resilience.
41
+ * is specified. Sequence sources are tried in order:
42
+ * 1. 2-bit from hgdownload.soe.ucsc.edu (most efficient, binary range requests)
43
+ * 2. Indexed FASTA from igv.org (reliable CDN, reachable on restricted networks)
44
+ * 3. UCSC REST API from api.genome.ucsc.edu (last resort)
45
+ *
46
+ * URLs match igv.js genomes3.json configuration for hg38.
43
47
  */
44
48
  export declare const hg38Genome: Genome;
@@ -145,6 +145,8 @@ export interface Track {
145
145
  resetPixelShift(): void;
146
146
  /** Apply a new render theme and re-render. Replaces all theme-derived config values. */
147
147
  setTheme(theme: import('./themes/renderTheme').RenderTheme): void;
148
+ /** Merge partial config into the track's render config and re-render. */
149
+ setConfig(config: Record<string, unknown>): void;
148
150
  /**
149
151
  * Callback invoked just before config changes (e.g. setConfig()).
150
152
  * The browser registers this to snapshot state for undo (capturing pre-mutation state).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "loom-browser",
3
- "version": "0.0.15",
3
+ "version": "0.0.17",
4
4
  "main": "dist/loom.esm.js",
5
5
  "module": "dist/loom.esm.js",
6
6
  "types": "dist/types/index.d.ts",