graphwise 1.7.0 → 1.8.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 (76) hide show
  1. package/README.md +81 -30
  2. package/dist/async/index.cjs +243 -0
  3. package/dist/async/index.cjs.map +1 -0
  4. package/dist/async/index.js +230 -0
  5. package/dist/async/index.js.map +1 -0
  6. package/dist/expansion/dfs-priority.d.ts +11 -0
  7. package/dist/expansion/dfs-priority.d.ts.map +1 -1
  8. package/dist/expansion/dome.d.ts +20 -0
  9. package/dist/expansion/dome.d.ts.map +1 -1
  10. package/dist/expansion/edge.d.ts +18 -0
  11. package/dist/expansion/edge.d.ts.map +1 -1
  12. package/dist/expansion/flux.d.ts +16 -0
  13. package/dist/expansion/flux.d.ts.map +1 -1
  14. package/dist/expansion/frontier-balanced.d.ts +11 -0
  15. package/dist/expansion/frontier-balanced.d.ts.map +1 -1
  16. package/dist/expansion/fuse.d.ts +16 -0
  17. package/dist/expansion/fuse.d.ts.map +1 -1
  18. package/dist/expansion/hae.d.ts +16 -0
  19. package/dist/expansion/hae.d.ts.map +1 -1
  20. package/dist/expansion/lace.d.ts +16 -0
  21. package/dist/expansion/lace.d.ts.map +1 -1
  22. package/dist/expansion/maze.d.ts +17 -0
  23. package/dist/expansion/maze.d.ts.map +1 -1
  24. package/dist/expansion/pipe.d.ts +16 -0
  25. package/dist/expansion/pipe.d.ts.map +1 -1
  26. package/dist/expansion/random-priority.d.ts +18 -0
  27. package/dist/expansion/random-priority.d.ts.map +1 -1
  28. package/dist/expansion/reach.d.ts +17 -0
  29. package/dist/expansion/reach.d.ts.map +1 -1
  30. package/dist/expansion/sage.d.ts +15 -0
  31. package/dist/expansion/sage.d.ts.map +1 -1
  32. package/dist/expansion/sift.d.ts +16 -0
  33. package/dist/expansion/sift.d.ts.map +1 -1
  34. package/dist/expansion/standard-bfs.d.ts +11 -0
  35. package/dist/expansion/standard-bfs.d.ts.map +1 -1
  36. package/dist/expansion/tide.d.ts +16 -0
  37. package/dist/expansion/tide.d.ts.map +1 -1
  38. package/dist/expansion/warp.d.ts +16 -0
  39. package/dist/expansion/warp.d.ts.map +1 -1
  40. package/dist/index/index.cjs +842 -215
  41. package/dist/index/index.cjs.map +1 -1
  42. package/dist/index/index.js +793 -211
  43. package/dist/index/index.js.map +1 -1
  44. package/dist/index.d.ts +1 -0
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/ranking/mi/adamic-adar.d.ts +8 -0
  47. package/dist/ranking/mi/adamic-adar.d.ts.map +1 -1
  48. package/dist/ranking/mi/adaptive.d.ts +8 -0
  49. package/dist/ranking/mi/adaptive.d.ts.map +1 -1
  50. package/dist/ranking/mi/cosine.d.ts +7 -0
  51. package/dist/ranking/mi/cosine.d.ts.map +1 -1
  52. package/dist/ranking/mi/etch.d.ts +8 -0
  53. package/dist/ranking/mi/etch.d.ts.map +1 -1
  54. package/dist/ranking/mi/hub-promoted.d.ts +7 -0
  55. package/dist/ranking/mi/hub-promoted.d.ts.map +1 -1
  56. package/dist/ranking/mi/jaccard.d.ts +7 -0
  57. package/dist/ranking/mi/jaccard.d.ts.map +1 -1
  58. package/dist/ranking/mi/notch.d.ts +8 -0
  59. package/dist/ranking/mi/notch.d.ts.map +1 -1
  60. package/dist/ranking/mi/overlap-coefficient.d.ts +7 -0
  61. package/dist/ranking/mi/overlap-coefficient.d.ts.map +1 -1
  62. package/dist/ranking/mi/resource-allocation.d.ts +8 -0
  63. package/dist/ranking/mi/resource-allocation.d.ts.map +1 -1
  64. package/dist/ranking/mi/scale.d.ts +7 -0
  65. package/dist/ranking/mi/scale.d.ts.map +1 -1
  66. package/dist/ranking/mi/skew.d.ts +7 -0
  67. package/dist/ranking/mi/skew.d.ts.map +1 -1
  68. package/dist/ranking/mi/sorensen.d.ts +7 -0
  69. package/dist/ranking/mi/sorensen.d.ts.map +1 -1
  70. package/dist/ranking/mi/span.d.ts +8 -0
  71. package/dist/ranking/mi/span.d.ts.map +1 -1
  72. package/dist/ranking/mi/types.d.ts +12 -0
  73. package/dist/ranking/mi/types.d.ts.map +1 -1
  74. package/dist/ranking/parse.d.ts +24 -1
  75. package/dist/ranking/parse.d.ts.map +1 -1
  76. package/package.json +6 -1
package/dist/index.d.ts CHANGED
@@ -12,4 +12,5 @@ export * from './seeds';
12
12
  export * from './extraction';
13
13
  export * from './utils';
14
14
  export * from './gpu';
15
+ export * from './async';
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAG5B,cAAc,cAAc,CAAC;AAG7B,cAAc,aAAa,CAAC;AAG5B,cAAc,WAAW,CAAC;AAG1B,cAAc,SAAS,CAAC;AAGxB,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAG5B,cAAc,cAAc,CAAC;AAG7B,cAAc,aAAa,CAAC;AAG5B,cAAc,WAAW,CAAC;AAG1B,cAAc,SAAS,CAAC;AAGxB,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,OAAO,CAAC;AAGtB,cAAc,SAAS,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { NodeId, NodeData, EdgeData, ReadableGraph } from '../../graph';
2
+ import { AsyncReadableGraph } from '../../graph/async-interfaces';
2
3
  import { MIConfig } from './types';
3
4
  /**
4
5
  * Compute Adamic-Adar index between neighbourhoods of two nodes.
@@ -10,4 +11,11 @@ import { MIConfig } from './types';
10
11
  * @returns Adamic-Adar index (normalised to [0, 1] if configured)
11
12
  */
12
13
  export declare function adamicAdar<N extends NodeData, E extends EdgeData>(graph: ReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): number;
14
+ /**
15
+ * Async variant of Adamic-Adar index for use with async graph data sources.
16
+ *
17
+ * Fetches both neighbourhoods concurrently, then fetches degree for each common
18
+ * neighbour to compute the inverse-log-degree weighted sum.
19
+ */
20
+ export declare function adamicAdarAsync<N extends NodeData, E extends EdgeData>(graph: AsyncReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): Promise<number>;
13
21
  //# sourceMappingURL=adamic-adar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adamic-adar.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/adamic-adar.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAChE,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CA8BR"}
1
+ {"version":3,"file":"adamic-adar.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/adamic-adar.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAChE,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CA8BR;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC3E,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,OAAO,CAAC,MAAM,CAAC,CA0CjB"}
@@ -1,4 +1,5 @@
1
1
  import { NodeId, NodeData, EdgeData, ReadableGraph } from '../../graph';
2
+ import { AsyncReadableGraph } from '../../graph/async-interfaces';
2
3
  import { AdaptiveMIConfig } from './types';
3
4
  /**
4
5
  * Compute unified adaptive MI between two connected nodes.
@@ -13,4 +14,11 @@ import { AdaptiveMIConfig } from './types';
13
14
  * @returns Adaptive MI score in [0, 1]
14
15
  */
15
16
  export declare function adaptive<N extends NodeData, E extends EdgeData>(graph: ReadableGraph<N, E>, source: NodeId, target: NodeId, config?: AdaptiveMIConfig): number;
17
+ /**
18
+ * Async variant of Adaptive MI for use with async graph data sources.
19
+ *
20
+ * Fetches both neighbourhoods concurrently, then delegates degree-weighted
21
+ * component to the async Adamic-Adar variant.
22
+ */
23
+ export declare function adaptiveAsync<N extends NodeData, E extends EdgeData>(graph: AsyncReadableGraph<N, E>, source: NodeId, target: NodeId, config?: AdaptiveMIConfig): Promise<number>;
16
24
  //# sourceMappingURL=adaptive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adaptive.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/adaptive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGhD;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC9D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,gBAAgB,GACvB,MAAM,CAoDR"}
1
+ {"version":3,"file":"adaptive.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/adaptive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAIhD;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC9D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,gBAAgB,GACvB,MAAM,CAoDR;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EACzE,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,gBAAgB,GACvB,OAAO,CAAC,MAAM,CAAC,CAoDjB"}
@@ -1,4 +1,5 @@
1
1
  import { NodeId, NodeData, EdgeData, ReadableGraph } from '../../graph';
2
+ import { AsyncReadableGraph } from '../../graph/async-interfaces';
2
3
  import { MIConfig } from './types';
3
4
  /**
4
5
  * Compute cosine similarity between neighbourhoods of two nodes.
@@ -10,4 +11,10 @@ import { MIConfig } from './types';
10
11
  * @returns Cosine similarity in [0, 1]
11
12
  */
12
13
  export declare function cosine<N extends NodeData, E extends EdgeData>(graph: ReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): number;
14
+ /**
15
+ * Async variant of cosine similarity for use with async graph data sources.
16
+ *
17
+ * Fetches both neighbourhoods concurrently, then applies the same formula.
18
+ */
19
+ export declare function cosineAsync<N extends NodeData, E extends EdgeData>(graph: AsyncReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): Promise<number>;
13
20
  //# sourceMappingURL=cosine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cosine.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/cosine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC5D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CAuBR"}
1
+ {"version":3,"file":"cosine.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/cosine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC5D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CAuBR;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EACvE,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,OAAO,CAAC,MAAM,CAAC,CA6BjB"}
@@ -1,7 +1,15 @@
1
1
  import { NodeId, NodeData, EdgeData, ReadableGraph } from '../../graph';
2
+ import { AsyncReadableGraph } from '../../graph/async-interfaces';
2
3
  import { MIConfig } from './types';
3
4
  /**
4
5
  * Compute ETCH MI between two nodes.
5
6
  */
6
7
  export declare function etch<N extends NodeData, E extends EdgeData>(graph: ReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): number;
8
+ /**
9
+ * Async variant of ETCH MI for use with async graph data sources.
10
+ *
11
+ * Fetches both neighbourhoods and edge data concurrently, then counts
12
+ * edges of the same type by iterating the async edge stream.
13
+ */
14
+ export declare function etchAsync<N extends NodeData, E extends EdgeData>(graph: AsyncReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): Promise<number>;
7
15
  //# sourceMappingURL=etch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"etch.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/etch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC1D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CA0BR"}
1
+ {"version":3,"file":"etch.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/etch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC1D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CA0BR;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EACrE,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,OAAO,CAAC,MAAM,CAAC,CA6CjB"}
@@ -1,4 +1,5 @@
1
1
  import { NodeId, NodeData, EdgeData, ReadableGraph } from '../../graph';
2
+ import { AsyncReadableGraph } from '../../graph/async-interfaces';
2
3
  import { MIConfig } from './types';
3
4
  /**
4
5
  * Compute Hub Promoted index between neighbourhoods of two nodes.
@@ -10,4 +11,10 @@ import { MIConfig } from './types';
10
11
  * @returns Hub Promoted index in [0, 1]
11
12
  */
12
13
  export declare function hubPromoted<N extends NodeData, E extends EdgeData>(graph: ReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): number;
14
+ /**
15
+ * Async variant of Hub Promoted index for use with async graph data sources.
16
+ *
17
+ * Fetches both neighbourhoods and degrees concurrently, then applies the same formula.
18
+ */
19
+ export declare function hubPromotedAsync<N extends NodeData, E extends EdgeData>(graph: AsyncReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): Promise<number>;
13
20
  //# sourceMappingURL=hub-promoted.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hub-promoted.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/hub-promoted.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EACjE,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CAwBR"}
1
+ {"version":3,"file":"hub-promoted.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/hub-promoted.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EACjE,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CAwBR;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC5E,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,OAAO,CAAC,MAAM,CAAC,CA+BjB"}
@@ -1,4 +1,5 @@
1
1
  import { NodeId, NodeData, EdgeData, ReadableGraph } from '../../graph';
2
+ import { AsyncReadableGraph } from '../../graph/async-interfaces';
2
3
  import { MIConfig } from './types';
3
4
  /**
4
5
  * Compute Jaccard similarity between neighbourhoods of two nodes.
@@ -10,4 +11,10 @@ import { MIConfig } from './types';
10
11
  * @returns Jaccard coefficient in [0, 1]
11
12
  */
12
13
  export declare function jaccard<N extends NodeData, E extends EdgeData>(graph: ReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): number;
14
+ /**
15
+ * Async variant of Jaccard similarity for use with async graph data sources.
16
+ *
17
+ * Fetches both neighbourhoods concurrently, then applies the same formula.
18
+ */
19
+ export declare function jaccardAsync<N extends NodeData, E extends EdgeData>(graph: AsyncReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): Promise<number>;
13
20
  //# sourceMappingURL=jaccard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jaccard.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/jaccard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC7D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CAgBR"}
1
+ {"version":3,"file":"jaccard.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/jaccard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC7D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CAgBR;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EACxE,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,OAAO,CAAC,MAAM,CAAC,CA2BjB"}
@@ -1,7 +1,15 @@
1
1
  import { NodeId, NodeData, EdgeData, ReadableGraph } from '../../graph';
2
+ import { AsyncReadableGraph } from '../../graph/async-interfaces';
2
3
  import { MIConfig } from './types';
3
4
  /**
4
5
  * Compute NOTCH MI between two nodes.
5
6
  */
6
7
  export declare function notch<N extends NodeData, E extends EdgeData>(graph: ReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): number;
8
+ /**
9
+ * Async variant of NOTCH MI for use with async graph data sources.
10
+ *
11
+ * Fetches both neighbourhoods and node data concurrently, then counts
12
+ * nodes of each type by iterating the async node stream.
13
+ */
14
+ export declare function notchAsync<N extends NodeData, E extends EdgeData>(graph: AsyncReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): Promise<number>;
7
15
  //# sourceMappingURL=notch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"notch.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/notch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC3D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CA8BR"}
1
+ {"version":3,"file":"notch.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/notch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC3D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CA8BR;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EACtE,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,OAAO,CAAC,MAAM,CAAC,CAoDjB"}
@@ -1,4 +1,5 @@
1
1
  import { NodeId, NodeData, EdgeData, ReadableGraph } from '../../graph';
2
+ import { AsyncReadableGraph } from '../../graph/async-interfaces';
2
3
  import { MIConfig } from './types';
3
4
  /**
4
5
  * Compute Overlap Coefficient between neighbourhoods of two nodes.
@@ -10,4 +11,10 @@ import { MIConfig } from './types';
10
11
  * @returns Overlap Coefficient in [0, 1]
11
12
  */
12
13
  export declare function overlapCoefficient<N extends NodeData, E extends EdgeData>(graph: ReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): number;
14
+ /**
15
+ * Async variant of Overlap Coefficient for use with async graph data sources.
16
+ *
17
+ * Fetches both neighbourhoods concurrently, then applies the same formula.
18
+ */
19
+ export declare function overlapCoefficientAsync<N extends NodeData, E extends EdgeData>(graph: AsyncReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): Promise<number>;
13
20
  //# sourceMappingURL=overlap-coefficient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"overlap-coefficient.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/overlap-coefficient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EACxE,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CAsBR"}
1
+ {"version":3,"file":"overlap-coefficient.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/overlap-coefficient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EACxE,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CAsBR;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC5C,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,QAAQ,EAElB,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,OAAO,CAAC,MAAM,CAAC,CA6BjB"}
@@ -1,4 +1,5 @@
1
1
  import { NodeId, NodeData, EdgeData, ReadableGraph } from '../../graph';
2
+ import { AsyncReadableGraph } from '../../graph/async-interfaces';
2
3
  import { MIConfig } from './types';
3
4
  /**
4
5
  * Compute Resource Allocation index between neighbourhoods of two nodes.
@@ -10,4 +11,11 @@ import { MIConfig } from './types';
10
11
  * @returns Resource Allocation index (normalised to [0, 1] if configured)
11
12
  */
12
13
  export declare function resourceAllocation<N extends NodeData, E extends EdgeData>(graph: ReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): number;
14
+ /**
15
+ * Async variant of Resource Allocation index for use with async graph data sources.
16
+ *
17
+ * Fetches both neighbourhoods concurrently, then fetches degree for each common
18
+ * neighbour to compute the inverse-degree weighted sum.
19
+ */
20
+ export declare function resourceAllocationAsync<N extends NodeData, E extends EdgeData>(graph: AsyncReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): Promise<number>;
13
21
  //# sourceMappingURL=resource-allocation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-allocation.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/resource-allocation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EACxE,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CA+BR"}
1
+ {"version":3,"file":"resource-allocation.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/resource-allocation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EACxE,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CA+BR;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC5C,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,QAAQ,EAElB,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,OAAO,CAAC,MAAM,CAAC,CA2CjB"}
@@ -1,7 +1,14 @@
1
1
  import { NodeId, NodeData, EdgeData, ReadableGraph } from '../../graph';
2
+ import { AsyncReadableGraph } from '../../graph/async-interfaces';
2
3
  import { MIConfig } from './types';
3
4
  /**
4
5
  * Compute SCALE MI between two nodes.
5
6
  */
6
7
  export declare function scale<N extends NodeData, E extends EdgeData>(graph: ReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): number;
8
+ /**
9
+ * Async variant of SCALE MI for use with async graph data sources.
10
+ *
11
+ * Fetches both neighbourhoods, node count, and edge count concurrently.
12
+ */
13
+ export declare function scaleAsync<N extends NodeData, E extends EdgeData>(graph: AsyncReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): Promise<number>;
7
14
  //# sourceMappingURL=scale.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scale.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/scale.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC3D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CAuBR"}
1
+ {"version":3,"file":"scale.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/scale.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC3D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CAuBR;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EACtE,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,OAAO,CAAC,MAAM,CAAC,CAoCjB"}
@@ -1,7 +1,14 @@
1
1
  import { NodeId, NodeData, EdgeData, ReadableGraph } from '../../graph';
2
+ import { AsyncReadableGraph } from '../../graph/async-interfaces';
2
3
  import { MIConfig } from './types';
3
4
  /**
4
5
  * Compute SKEW MI between two nodes.
5
6
  */
6
7
  export declare function skew<N extends NodeData, E extends EdgeData>(graph: ReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): number;
8
+ /**
9
+ * Async variant of SKEW MI for use with async graph data sources.
10
+ *
11
+ * Fetches both neighbourhoods, degrees, and node count concurrently.
12
+ */
13
+ export declare function skewAsync<N extends NodeData, E extends EdgeData>(graph: AsyncReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): Promise<number>;
7
14
  //# sourceMappingURL=skew.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skew.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/skew.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC1D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CAiBR"}
1
+ {"version":3,"file":"skew.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/skew.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC1D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CAiBR;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EACrE,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,OAAO,CAAC,MAAM,CAAC,CA+BjB"}
@@ -1,4 +1,5 @@
1
1
  import { NodeId, NodeData, EdgeData, ReadableGraph } from '../../graph';
2
+ import { AsyncReadableGraph } from '../../graph/async-interfaces';
2
3
  import { MIConfig } from './types';
3
4
  /**
4
5
  * Compute Sorensen-Dice similarity between neighbourhoods of two nodes.
@@ -10,4 +11,10 @@ import { MIConfig } from './types';
10
11
  * @returns Sorensen-Dice coefficient in [0, 1]
11
12
  */
12
13
  export declare function sorensen<N extends NodeData, E extends EdgeData>(graph: ReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): number;
14
+ /**
15
+ * Async variant of Sorensen-Dice coefficient for use with async graph data sources.
16
+ *
17
+ * Fetches both neighbourhoods concurrently, then applies the same formula.
18
+ */
19
+ export declare function sorensenAsync<N extends NodeData, E extends EdgeData>(graph: AsyncReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): Promise<number>;
13
20
  //# sourceMappingURL=sorensen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sorensen.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/sorensen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC9D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CAsBR"}
1
+ {"version":3,"file":"sorensen.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/sorensen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC9D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CAsBR;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EACzE,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,OAAO,CAAC,MAAM,CAAC,CA6BjB"}
@@ -1,7 +1,15 @@
1
1
  import { NodeId, NodeData, EdgeData, ReadableGraph } from '../../graph';
2
+ import { AsyncReadableGraph } from '../../graph/async-interfaces';
2
3
  import { MIConfig } from './types';
3
4
  /**
4
5
  * Compute SPAN MI between two nodes.
5
6
  */
6
7
  export declare function span<N extends NodeData, E extends EdgeData>(graph: ReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): number;
8
+ /**
9
+ * Async variant of SPAN MI for use with async graph data sources.
10
+ *
11
+ * Fetches both neighbourhoods concurrently, then computes the clustering
12
+ * coefficient for each endpoint from the collected neighbour arrays.
13
+ */
14
+ export declare function spanAsync<N extends NodeData, E extends EdgeData>(graph: AsyncReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig): Promise<number>;
7
15
  //# sourceMappingURL=span.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"span.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/span.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC1D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CAgBR"}
1
+ {"version":3,"file":"span.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/span.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAIvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC1D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,MAAM,CAgBR;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EACrE,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,GACf,OAAO,CAAC,MAAM,CAAC,CAwEjB"}
@@ -1,4 +1,5 @@
1
1
  import { NodeId, NodeData, EdgeData, ReadableGraph } from '../../graph';
2
+ import { AsyncReadableGraph } from '../../graph/async-interfaces';
2
3
  /**
3
4
  * MI function computes association strength between connected nodes.
4
5
  *
@@ -8,6 +9,17 @@ import { NodeId, NodeData, EdgeData, ReadableGraph } from '../../graph';
8
9
  * @returns MI score in [0, 1] range (0 = no association, 1 = perfect)
9
10
  */
10
11
  export type MIFunction<N extends NodeData = NodeData, E extends EdgeData = EdgeData> = (graph: ReadableGraph<N, E>, source: NodeId, target: NodeId) => number;
12
+ /**
13
+ * Async MI function computes association strength between connected nodes
14
+ * on an async graph data source.
15
+ *
16
+ * @param graph - Async source graph
17
+ * @param source - Source node ID
18
+ * @param target - Target node ID
19
+ * @param config - Optional configuration
20
+ * @returns Promise of MI score in [0, 1] range (0 = no association, 1 = perfect)
21
+ */
22
+ export type AsyncMIFunction<N extends NodeData = NodeData, E extends EdgeData = EdgeData> = (graph: AsyncReadableGraph<N, E>, source: NodeId, target: NodeId, config?: MIConfig) => Promise<number>;
11
23
  /**
12
24
  * Names of available MI variants.
13
25
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7E;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,CACrB,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAC7B,CAAC,SAAS,QAAQ,GAAG,QAAQ,IAC1B,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;AAE3E;;GAEG;AACH,MAAM,MAAM,aAAa,GACtB,SAAS,GACT,aAAa,GACb,QAAQ,GACR,UAAU,GACV,qBAAqB,GACrB,qBAAqB,GACrB,cAAc,GACd,OAAO,GACP,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,UAAU,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,sCAAsC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IACjD,mDAAmD;IACnD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,4DAA4D;IAC5D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,+CAA+C;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CAChC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ranking/mi/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,CACrB,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAC7B,CAAC,SAAS,QAAQ,GAAG,QAAQ,IAC1B,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;AAE3E;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,CAC1B,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAC7B,CAAC,SAAS,QAAQ,GAAG,QAAQ,IAC1B,CACH,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,QAAQ,KACb,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB;;GAEG;AACH,MAAM,MAAM,aAAa,GACtB,SAAS,GACT,aAAa,GACb,QAAQ,GACR,UAAU,GACV,qBAAqB,GACrB,qBAAqB,GACrB,cAAc,GACd,OAAO,GACP,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,UAAU,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,sCAAsC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IACjD,mDAAmD;IACnD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,4DAA4D;IAC5D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,+CAA+C;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CAChC"}
@@ -1,6 +1,7 @@
1
1
  import { NodeData, EdgeData, ReadableGraph } from '../graph';
2
+ import { AsyncReadableGraph } from '../graph/async-interfaces';
2
3
  import { ExpansionPath } from '../expansion/types';
3
- import { MIFunction } from './mi/types';
4
+ import { MIFunction, AsyncMIFunction } from './mi/types';
4
5
  /**
5
6
  * Configuration for PARSE ranking.
6
7
  */
@@ -53,4 +54,26 @@ export interface PARSEResult {
53
54
  * @returns Ranked paths with statistics
54
55
  */
55
56
  export declare function parse<N extends NodeData, E extends EdgeData>(graph: ReadableGraph<N, E>, paths: readonly ExpansionPath[], config?: PARSEConfig<N, E>): PARSEResult;
57
+ /**
58
+ * Configuration for async PARSE ranking.
59
+ */
60
+ export interface AsyncPARSEConfig<N extends NodeData = NodeData, E extends EdgeData = EdgeData> {
61
+ /** Async MI function to use (default: jaccardAsync) */
62
+ readonly mi?: AsyncMIFunction<N, E>;
63
+ /** Minimum epsilon for MI (default: 1e-10) */
64
+ readonly epsilon?: number;
65
+ }
66
+ /**
67
+ * Rank paths using async PARSE (Path-Aware Ranking via Salience Estimation).
68
+ *
69
+ * Async variant suitable for use with remote or lazy graph data sources.
70
+ * Computes geometric mean of edge MI scores for each path using Promise.all
71
+ * for parallelism, then sorts by salience (highest first).
72
+ *
73
+ * @param graph - Async source graph
74
+ * @param paths - Paths to rank
75
+ * @param config - Configuration options
76
+ * @returns Ranked paths with statistics
77
+ */
78
+ export declare function parseAsync<N extends NodeData, E extends EdgeData>(graph: AsyncReadableGraph<N, E>, paths: readonly ExpansionPath[], config?: AsyncPARSEConfig<N, E>): Promise<PARSEResult>;
56
79
  //# sourceMappingURL=parse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/ranking/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C;;GAEG;AACH,MAAM,WAAW,WAAW,CAC3B,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAC7B,CAAC,SAAS,QAAQ,GAAG,QAAQ;IAE7B,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,mEAAmE;IACnE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,aAAa;IAChD,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,yBAAyB;IACzB,QAAQ,CAAC,KAAK,EAAE;QACf,yBAAyB;QACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,oBAAoB;QACpB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,sBAAsB;QACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,uBAAuB;QACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,uBAAuB;QACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,uCAAuC;QACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC5B,CAAC;CACF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC3D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GACxB,WAAW,CAoDb"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/ranking/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAI9D;;GAEG;AACH,MAAM,WAAW,WAAW,CAC3B,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAC7B,CAAC,SAAS,QAAQ,GAAG,QAAQ;IAE7B,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,mEAAmE;IACnE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,aAAa;IAChD,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,yBAAyB;IACzB,QAAQ,CAAC,KAAK,EAAE;QACf,yBAAyB;QACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,oBAAoB;QACpB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,sBAAsB;QACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,uBAAuB;QACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,uBAAuB;QACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,uCAAuC;QACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC5B,CAAC;CACF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAC3D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GACxB,WAAW,CAoDb;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAChC,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAC7B,CAAC,SAAS,QAAQ,GAAG,QAAQ;IAE7B,uDAAuD;IACvD,QAAQ,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,UAAU,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EACtE,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7B,OAAO,CAAC,WAAW,CAAC,CAoDtB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "graphwise",
3
- "version": "1.7.0",
3
+ "version": "1.8.0",
4
4
  "description": "Graph algorithms for citation network analysis - novel expansion, MI variants, and path ranking",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -67,6 +67,11 @@
67
67
  "types": "./dist/schemas/index.d.ts",
68
68
  "import": "./dist/schemas/index.js",
69
69
  "require": "./dist/schemas/index.cjs"
70
+ },
71
+ "./async": {
72
+ "types": "./dist/async/index.d.ts",
73
+ "import": "./dist/async/index.js",
74
+ "require": "./dist/async/index.cjs"
70
75
  }
71
76
  },
72
77
  "files": [