graphbox 1.0.8 → 1.2.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.
package/dist/cli.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import * as a from "node:process";
3
- const i = "1.0.7", r = {
3
+ const i = "1.1.0", r = {
4
4
  version: {
5
5
  name: "version",
6
6
  description: "Show version information",
@@ -22,6 +22,12 @@ export interface BenchmarkDatasetMeta {
22
22
  delimiter: string | RegExp;
23
23
  /** Source/citation for the dataset */
24
24
  source: string;
25
+ /**
26
+ * Remote URL for downloading the dataset.
27
+ * Used for browser environments or when local files aren't available.
28
+ * Should point to a raw text file in edge list format.
29
+ */
30
+ remoteUrl?: string;
25
31
  }
26
32
  /**
27
33
  * A loaded benchmark dataset with graph and metadata.
@@ -120,6 +126,99 @@ export declare const loadBenchmarkById: (id: string, benchmarksRoot?: string) =>
120
126
  * @returns Map of dataset ID to loaded benchmark
121
127
  */
122
128
  export declare const loadAllBenchmarks: (benchmarksRoot?: string) => Promise<Map<string, LoadedBenchmark>>;
129
+ /**
130
+ * Load a benchmark dataset from a URL.
131
+ *
132
+ * This function works in both browser and Node.js environments.
133
+ * Automatically handles gzip-compressed files (.gz extension).
134
+ *
135
+ * @param url - URL to the edge list file (can be .txt or .txt.gz)
136
+ * @param meta - Dataset metadata (for parsing configuration)
137
+ * @returns Loaded benchmark with graph and metadata
138
+ * @throws Error if fetch fails or parsing fails
139
+ *
140
+ * @example
141
+ * ```typescript
142
+ * // Plain text file
143
+ * const benchmark = await loadBenchmarkFromUrl(
144
+ * 'https://raw.githubusercontent.com/user/repo/main/data/karate.edges',
145
+ * KARATE
146
+ * );
147
+ *
148
+ * // Gzip-compressed file (automatically decompressed)
149
+ * const compressed = await loadBenchmarkFromUrl(
150
+ * 'https://snap.stanford.edu/data/facebook_combined.txt.gz',
151
+ * FACEBOOK
152
+ * );
153
+ * ```
154
+ */
155
+ export declare const loadBenchmarkFromUrl: (url: string, meta: BenchmarkDatasetMeta) => Promise<LoadedBenchmark>;
156
+ /**
157
+ * Load a benchmark dataset by ID from a URL.
158
+ *
159
+ * If the dataset has a remoteUrl configured, uses that. Otherwise, you must provide a URL.
160
+ * Works in both browser and Node.js environments.
161
+ *
162
+ * @param id - Dataset identifier (e.g., 'cora', 'karate')
163
+ * @param url - Optional URL override (required if dataset has no remoteUrl)
164
+ * @returns Loaded benchmark with graph and metadata
165
+ * @throws Error if dataset ID not found or no URL available
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * // Using custom URL
170
+ * const karate = await loadBenchmarkByIdFromUrl('karate',
171
+ * 'https://example.com/datasets/karate.edges'
172
+ * );
173
+ * ```
174
+ */
175
+ export declare const loadBenchmarkByIdFromUrl: (id: string, url?: string) => Promise<LoadedBenchmark>;
176
+ /**
177
+ * Load a benchmark from edge list content string.
178
+ *
179
+ * This is the most flexible loader - works with any string content.
180
+ * Useful when you've already fetched the data or have it embedded.
181
+ *
182
+ * @param content - Edge list content as string
183
+ * @param meta - Dataset metadata (for parsing configuration)
184
+ * @returns Loaded benchmark with graph and metadata
185
+ *
186
+ * @example
187
+ * ```typescript
188
+ * const content = "1 2\n2 3\n3 1";
189
+ * const benchmark = loadBenchmarkFromContent(content, {
190
+ * ...KARATE,
191
+ * expectedNodes: 3,
192
+ * expectedEdges: 3
193
+ * });
194
+ * ```
195
+ */
196
+ export declare const loadBenchmarkFromContent: (content: string, meta: BenchmarkDatasetMeta) => LoadedBenchmark;
197
+ /**
198
+ * Create a custom benchmark metadata for ad-hoc datasets.
199
+ *
200
+ * Helper function to create metadata for datasets not in the standard list.
201
+ *
202
+ * @param options - Partial metadata (id and name are required)
203
+ * @returns Complete benchmark metadata
204
+ *
205
+ * @example
206
+ * ```typescript
207
+ * const myDataset = createBenchmarkMeta({
208
+ * id: 'my-graph',
209
+ * name: 'My Custom Graph',
210
+ * expectedNodes: 100,
211
+ * expectedEdges: 500,
212
+ * directed: false
213
+ * });
214
+ *
215
+ * const benchmark = await loadBenchmarkFromUrl(
216
+ * 'https://example.com/my-graph.edges',
217
+ * myDataset
218
+ * );
219
+ * ```
220
+ */
221
+ export declare const createBenchmarkMeta: (options: Pick<BenchmarkDatasetMeta, "id" | "name"> & Partial<Omit<BenchmarkDatasetMeta, "id" | "name">>) => BenchmarkDatasetMeta;
123
222
  /**
124
223
  * Get summary statistics for a loaded benchmark.
125
224
  *
@@ -1 +1 @@
1
- {"version":3,"file":"benchmark-datasets.d.ts","sourceRoot":"","sources":["../../../../src/experiments/evaluation/fixtures/benchmark-datasets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,EAAE,KAAK,UAAU,EAAe,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMjF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IAEb,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IAEX,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IAEpB,iCAAiC;IACjC,QAAQ,EAAE,OAAO,CAAC;IAElB,wDAAwD;IACxD,aAAa,EAAE,MAAM,CAAC;IAEtB,wDAAwD;IACxD,aAAa,EAAE,MAAM,CAAC;IAEtB,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IAErB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAE3B,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,uBAAuB;IACvB,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAErC,uBAAuB;IACvB,IAAI,EAAE,oBAAoB,CAAC;IAE3B,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAElB,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;CAClB;AAMD;;;;;GAKG;AACH,eAAO,MAAM,IAAI,EAAE,oBAUlB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,oBAUtB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,oBAUtB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,MAAM,EAAE,oBAUpB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,MAAM,EAAE,oBAUpB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,IAAI,EAAE,oBAUlB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,oBAAoB,EAAqD,CAAC;AAE3G;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAE5D,CAAC;AAMF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,MAAM,oBAAoB,EAAE,iBAAiB,MAAM,KAAG,MAU1F,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,GAAU,MAAM,oBAAoB,EAAE,iBAAiB,MAAM,KAAG,OAAO,CAAC,eAAe,CAkBhH,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAU,IAAI,MAAM,EAAE,iBAAiB,MAAM,KAAG,OAAO,CAAC,eAAe,CAOpG,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAU,iBAAiB,MAAM,KAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAarG,CAAC;AAMF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,WAAW,eAAe,KAAG,MAIhE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,eAAe,EAAE,kBAAgB,KAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAuBpH,CAAC"}
1
+ {"version":3,"file":"benchmark-datasets.d.ts","sourceRoot":"","sources":["../../../../src/experiments/evaluation/fixtures/benchmark-datasets.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,5 @@
3
3
  *
4
4
  * Provides benchmark datasets and test fixtures for evaluation experiments.
5
5
  */
6
- export { BENCHMARK_DATASETS, type BenchmarkDatasetMeta, CITESEER, CORA, DATASETS_BY_ID, DBLP, FACEBOOK, getBenchmarkSummary, KARATE, LESMIS, loadAllBenchmarks, loadBenchmark, loadBenchmarkById, type LoadedBenchmark, resolveBenchmarkPath, validateBenchmark, } from './benchmark-datasets';
6
+ export { BENCHMARK_DATASETS, type BenchmarkDatasetMeta, CITESEER, CORA, createBenchmarkMeta, DATASETS_BY_ID, DBLP, FACEBOOK, getBenchmarkSummary, KARATE, LESMIS, loadAllBenchmarks, loadBenchmark, loadBenchmarkById, loadBenchmarkByIdFromUrl, loadBenchmarkFromContent, loadBenchmarkFromUrl, type LoadedBenchmark, resolveBenchmarkPath, validateBenchmark, } from './benchmark-datasets';
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/experiments/evaluation/fixtures/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACN,kBAAkB,EAElB,KAAK,oBAAoB,EACzB,QAAQ,EAER,IAAI,EACJ,cAAc,EACd,IAAI,EACJ,QAAQ,EAER,mBAAmB,EACnB,MAAM,EACN,MAAM,EACN,iBAAiB,EAEjB,aAAa,EACb,iBAAiB,EACjB,KAAK,eAAe,EACpB,oBAAoB,EACpB,iBAAiB,GACjB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/experiments/evaluation/fixtures/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACN,kBAAkB,EAElB,KAAK,oBAAoB,EACzB,QAAQ,EAER,IAAI,EAEJ,mBAAmB,EACnB,cAAc,EACd,IAAI,EACJ,QAAQ,EAER,mBAAmB,EACnB,MAAM,EACN,MAAM,EACN,iBAAiB,EAEjB,aAAa,EACb,iBAAiB,EAEjB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,eAAe,EACpB,oBAAoB,EACpB,iBAAiB,GACjB,MAAM,sBAAsB,CAAC"}
@@ -12,8 +12,8 @@ export { addNoisePaths, type CitationPathConfig, type CitationPathType, type Het
12
12
  export { benjaminiHochberg, bonferroniCorrection, bootstrapCI, bootstrapDifferenceTest, cliffsDelta, cohensD, glassDelta, holmBonferroni, pairedTTest, rankBiserialCorrelation, storeyQValues, wilcoxonSignedRank, } from './statistics';
13
13
  export type { ExperimentConfig, FullExperimentConfig, GraphSpec, MethodConfig, MetricType, PathRanker, StatisticalTestType, } from './runner';
14
14
  export { generateHTMLReport, generateJSONSummary, generateLatexTable, generateMarkdownReport, runCrossValidation, runExperiment, } from './runner';
15
- export { type EdgeListConfig, type LoadedEdge, loadEdgeList, type LoadedNode, loadGraph, loadGraphFromUrl, type LoadResult, loadTriples, type TripleConfig, } from './loaders';
15
+ export { decompressGzip, type EdgeListConfig, fetchAndDecompressGzip, fetchWithAutoDecompress, isGzipUrl, type LoadedEdge, loadEdgeList, type LoadedNode, loadGraph, loadGraphFromUrl, type LoadResult, loadTriples, type TripleConfig, } from './loaders';
16
16
  export { type BetweenGraphOptions, type BetweenGraphResult, computeAllGroundTruths, computeEgoNetwork, computeGroundTruth, createAttributeImportance, enumerateBetweenGraph, enumerateMultiSeedBetweenGraph, type GroundTruthConfig, type GroundTruthPath, type GroundTruthType, type PrecomputedImportance, precomputeImportance, } from './ground-truth';
17
17
  export { aggregateRepresentativenessResults, compareDegreeDistributions, computeCommunityCoverage, computeDegreeDistribution, computeDegreeHistogram, computeHubCoverage, computePathDiversityMetrics, computeSetOverlap, computeStructuralRepresentativeness, degreeDistributionFromMap, type DegreeDistributionMetrics, degreeToRanking, earthMoversDistance, identifyHubNodes, jaccardDistance, jsDivergence, klDivergence, meanPairwiseEdgeJaccardDistance, meanPairwiseJaccardDistance, type PathDiversityMetrics, pathToNodeSet, spearmanRankCorrelation, type StructuralRepresentativenessResult, } from './metrics';
18
- export { BENCHMARK_DATASETS, type BenchmarkDatasetMeta, CITESEER, CORA, DATASETS_BY_ID, DBLP, FACEBOOK, getBenchmarkSummary, KARATE, LESMIS, loadAllBenchmarks, loadBenchmark, loadBenchmarkById, type LoadedBenchmark, resolveBenchmarkPath, validateBenchmark, } from './fixtures';
18
+ export { BENCHMARK_DATASETS, type BenchmarkDatasetMeta, CITESEER, CORA, createBenchmarkMeta, DATASETS_BY_ID, DBLP, FACEBOOK, getBenchmarkSummary, KARATE, LESMIS, loadAllBenchmarks, loadBenchmark, loadBenchmarkById, loadBenchmarkByIdFromUrl, loadBenchmarkFromContent, loadBenchmarkFromUrl, type LoadedBenchmark, resolveBenchmarkPath, validateBenchmark, } from './fixtures';
19
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/experiments/evaluation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACX,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACxB,qBAAqB,EAAC,MAAM,SAAS,CAAC;AAGvC,OAAO,EACN,UAAU,EACV,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EACN,oBAAoB,EACpB,kBAAkB,EAClB,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,MAAM,cAAc,CAAC;AAGtB,OAAO,EACN,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACN,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,qBAAqB,EACrB,uBAAuB,EAAC,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EACN,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,uBAAuB,EACvB,WAAW,EACX,OAAO,EACP,UAAU,EACV,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,aAAa,EACb,kBAAkB,GAClB,MAAM,cAAc,CAAC;AAGtB,YAAY,EACX,gBAAgB,EAChB,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,UAAU,EACV,UAAU,EACV,mBAAmB,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,GACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,YAAY,EACZ,KAAK,UAAU,EACf,SAAS,EACT,gBAAgB,EAChB,KAAK,UAAU,EACf,WAAW,EACX,KAAK,YAAY,GACjB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACN,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,8BAA8B,EAC9B,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,oBAAoB,GACpB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACN,kCAAkC,EAClC,0BAA0B,EAC1B,wBAAwB,EAExB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,2BAA2B,EAE3B,iBAAiB,EACjB,mCAAmC,EACnC,yBAAyB,EACzB,KAAK,yBAAyB,EAC9B,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAEhB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,+BAA+B,EAC/B,2BAA2B,EAC3B,KAAK,oBAAoB,EACzB,aAAa,EACb,uBAAuB,EACvB,KAAK,kCAAkC,GACvC,MAAM,WAAW,CAAC;AAGnB,OAAO,EACN,kBAAkB,EAElB,KAAK,oBAAoB,EACzB,QAAQ,EAER,IAAI,EACJ,cAAc,EACd,IAAI,EACJ,QAAQ,EAER,mBAAmB,EACnB,MAAM,EACN,MAAM,EACN,iBAAiB,EAEjB,aAAa,EACb,iBAAiB,EACjB,KAAK,eAAe,EACpB,oBAAoB,EACpB,iBAAiB,GACjB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/experiments/evaluation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACX,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACxB,qBAAqB,EAAC,MAAM,SAAS,CAAC;AAGvC,OAAO,EACN,UAAU,EACV,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EACN,oBAAoB,EACpB,kBAAkB,EAClB,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,MAAM,cAAc,CAAC;AAGtB,OAAO,EACN,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACN,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,qBAAqB,EACrB,uBAAuB,EAAC,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EACN,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,uBAAuB,EACvB,WAAW,EACX,OAAO,EACP,UAAU,EACV,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,aAAa,EACb,kBAAkB,GAClB,MAAM,cAAc,CAAC;AAGtB,YAAY,EACX,gBAAgB,EAChB,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,UAAU,EACV,UAAU,EACV,mBAAmB,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,GACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EAEN,cAAc,EACd,KAAK,cAAc,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,SAAS,EACT,KAAK,UAAU,EACf,YAAY,EACZ,KAAK,UAAU,EACf,SAAS,EACT,gBAAgB,EAChB,KAAK,UAAU,EACf,WAAW,EACX,KAAK,YAAY,GACjB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACN,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,8BAA8B,EAC9B,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,oBAAoB,GACpB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACN,kCAAkC,EAClC,0BAA0B,EAC1B,wBAAwB,EAExB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,2BAA2B,EAE3B,iBAAiB,EACjB,mCAAmC,EACnC,yBAAyB,EACzB,KAAK,yBAAyB,EAC9B,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAEhB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,+BAA+B,EAC/B,2BAA2B,EAC3B,KAAK,oBAAoB,EACzB,aAAa,EACb,uBAAuB,EACvB,KAAK,kCAAkC,GACvC,MAAM,WAAW,CAAC;AAGnB,OAAO,EACN,kBAAkB,EAElB,KAAK,oBAAoB,EACzB,QAAQ,EAER,IAAI,EAEJ,mBAAmB,EACnB,cAAc,EACd,IAAI,EACJ,QAAQ,EAER,mBAAmB,EACnB,MAAM,EACN,MAAM,EACN,iBAAiB,EAEjB,aAAa,EACb,iBAAiB,EAEjB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,eAAe,EACpB,oBAAoB,EACpB,iBAAiB,GACjB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Universal decompression utilities for browser and Node.js environments.
3
+ *
4
+ * Supports gzip decompression using:
5
+ * - Node.js: Built-in `zlib` module (works in all Node versions)
6
+ * - Browser: Native `DecompressionStream` API (Chrome 80+, Firefox 113+, Safari 16.4+)
7
+ *
8
+ * No external dependencies required.
9
+ */
10
+ /**
11
+ * Decompress gzip-compressed data to a string.
12
+ *
13
+ * Automatically uses the best available method for the current environment:
14
+ * - Node.js: Uses built-in zlib module
15
+ * - Browser: Uses native DecompressionStream API
16
+ *
17
+ * @param data - Gzip-compressed data as Uint8Array
18
+ * @returns Promise resolving to decompressed UTF-8 string
19
+ * @throws Error if decompression fails or no decompression method is available
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const response = await fetch('https://example.com/data.gz');
24
+ * const compressed = new Uint8Array(await response.arrayBuffer());
25
+ * const text = await decompressGzip(compressed);
26
+ * ```
27
+ */
28
+ export declare const decompressGzip: (data: Uint8Array) => Promise<string>;
29
+ /**
30
+ * Fetch and decompress gzip content from a URL.
31
+ *
32
+ * @param url - URL to fetch gzip-compressed content from
33
+ * @returns Promise resolving to decompressed UTF-8 string
34
+ * @throws Error if fetch fails or decompression fails
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * const text = await fetchAndDecompressGzip('https://snap.stanford.edu/data/facebook_combined.txt.gz');
39
+ * ```
40
+ */
41
+ export declare const fetchAndDecompressGzip: (url: string) => Promise<string>;
42
+ /**
43
+ * Detect if a URL points to a gzip-compressed file based on extension.
44
+ *
45
+ * @param url - URL to check
46
+ * @returns True if URL ends with .gz or .gzip
47
+ */
48
+ export declare const isGzipUrl: (url: string) => boolean;
49
+ /**
50
+ * Fetch content from URL, automatically decompressing if gzip.
51
+ *
52
+ * Detects compression based on:
53
+ * 1. URL extension (.gz, .gzip)
54
+ * 2. Content-Encoding header
55
+ *
56
+ * @param url - URL to fetch content from
57
+ * @returns Promise resolving to text content (decompressed if needed)
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * // Automatically handles both compressed and uncompressed URLs
62
+ * const text1 = await fetchWithAutoDecompress('https://example.com/data.txt');
63
+ * const text2 = await fetchWithAutoDecompress('https://example.com/data.txt.gz');
64
+ * ```
65
+ */
66
+ export declare const fetchWithAutoDecompress: (url: string) => Promise<string>;
67
+ //# sourceMappingURL=decompress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decompress.d.ts","sourceRoot":"","sources":["../../../../src/experiments/evaluation/loaders/decompress.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgDH;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,cAAc,GAAU,MAAM,UAAU,KAAG,OAAO,CAAC,MAAM,CAcrE,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,CAWxE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,KAAG,OAGvC,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,uBAAuB,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,CAczE,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Unit tests for decompression utilities
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=decompress.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decompress.unit.test.d.ts","sourceRoot":"","sources":["../../../../src/experiments/evaluation/loaders/decompress.unit.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -3,5 +3,6 @@
3
3
  *
4
4
  * Support for loading benchmark datasets in various formats.
5
5
  */
6
+ export { decompressGzip, fetchAndDecompressGzip, fetchWithAutoDecompress, isGzipUrl, } from './decompress';
6
7
  export { type EdgeListConfig, type LoadedEdge, loadEdgeList, type LoadedNode, loadGraph, loadGraphFromUrl, type LoadResult, loadTriples, type TripleConfig, } from './edge-list-loader';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/experiments/evaluation/loaders/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,YAAY,EACZ,KAAK,UAAU,EACf,SAAS,EACT,gBAAgB,EAChB,KAAK,UAAU,EACf,WAAW,EACX,KAAK,YAAY,GACjB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/experiments/evaluation/loaders/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACN,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,SAAS,GACT,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,YAAY,EACZ,KAAK,UAAU,EACf,SAAS,EACT,gBAAgB,EAChB,KAAK,UAAU,EACf,WAAW,EACX,KAAK,YAAY,GACjB,MAAM,oBAAoB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "graphbox",
3
- "version": "1.0.8",
3
+ "version": "1.2.0",
4
4
  "description": "Graph Sandbox + Graph Toolbox: Abstract and experimental graph algorithms for academic research",
5
5
  "packageManager": "pnpm@10.27.0",
6
6
  "type": "module",