gitx.do 0.1.0 → 0.1.2
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/README.md +40 -353
- package/dist/do/logger.d.ts +50 -0
- package/dist/do/logger.d.ts.map +1 -0
- package/dist/do/logger.js +122 -0
- package/dist/do/logger.js.map +1 -0
- package/dist/{durable-object → do}/schema.d.ts +3 -3
- package/dist/do/schema.d.ts.map +1 -0
- package/dist/{durable-object → do}/schema.js +4 -3
- package/dist/do/schema.js.map +1 -0
- package/dist/do/types.d.ts +267 -0
- package/dist/do/types.d.ts.map +1 -0
- package/dist/do/types.js +62 -0
- package/dist/do/types.js.map +1 -0
- package/dist/index.d.ts +15 -415
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -483
- package/dist/index.js.map +1 -1
- package/package.json +13 -21
- package/dist/cli/commands/add.d.ts +0 -174
- package/dist/cli/commands/add.d.ts.map +0 -1
- package/dist/cli/commands/add.js +0 -131
- package/dist/cli/commands/add.js.map +0 -1
- package/dist/cli/commands/blame.d.ts +0 -259
- package/dist/cli/commands/blame.d.ts.map +0 -1
- package/dist/cli/commands/blame.js +0 -609
- package/dist/cli/commands/blame.js.map +0 -1
- package/dist/cli/commands/branch.d.ts +0 -249
- package/dist/cli/commands/branch.d.ts.map +0 -1
- package/dist/cli/commands/branch.js +0 -693
- package/dist/cli/commands/branch.js.map +0 -1
- package/dist/cli/commands/commit.d.ts +0 -182
- package/dist/cli/commands/commit.d.ts.map +0 -1
- package/dist/cli/commands/commit.js +0 -437
- package/dist/cli/commands/commit.js.map +0 -1
- package/dist/cli/commands/diff.d.ts +0 -464
- package/dist/cli/commands/diff.d.ts.map +0 -1
- package/dist/cli/commands/diff.js +0 -958
- package/dist/cli/commands/diff.js.map +0 -1
- package/dist/cli/commands/log.d.ts +0 -239
- package/dist/cli/commands/log.d.ts.map +0 -1
- package/dist/cli/commands/log.js +0 -535
- package/dist/cli/commands/log.js.map +0 -1
- package/dist/cli/commands/merge.d.ts +0 -106
- package/dist/cli/commands/merge.d.ts.map +0 -1
- package/dist/cli/commands/merge.js +0 -55
- package/dist/cli/commands/merge.js.map +0 -1
- package/dist/cli/commands/review.d.ts +0 -457
- package/dist/cli/commands/review.d.ts.map +0 -1
- package/dist/cli/commands/review.js +0 -533
- package/dist/cli/commands/review.js.map +0 -1
- package/dist/cli/commands/status.d.ts +0 -269
- package/dist/cli/commands/status.d.ts.map +0 -1
- package/dist/cli/commands/status.js +0 -493
- package/dist/cli/commands/status.js.map +0 -1
- package/dist/cli/commands/web.d.ts +0 -199
- package/dist/cli/commands/web.d.ts.map +0 -1
- package/dist/cli/commands/web.js +0 -696
- package/dist/cli/commands/web.js.map +0 -1
- package/dist/cli/fs-adapter.d.ts +0 -656
- package/dist/cli/fs-adapter.d.ts.map +0 -1
- package/dist/cli/fs-adapter.js +0 -1179
- package/dist/cli/fs-adapter.js.map +0 -1
- package/dist/cli/fsx-cli-adapter.d.ts +0 -359
- package/dist/cli/fsx-cli-adapter.d.ts.map +0 -1
- package/dist/cli/fsx-cli-adapter.js +0 -619
- package/dist/cli/fsx-cli-adapter.js.map +0 -1
- package/dist/cli/index.d.ts +0 -387
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -523
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/ui/components/DiffView.d.ts +0 -7
- package/dist/cli/ui/components/DiffView.d.ts.map +0 -1
- package/dist/cli/ui/components/DiffView.js +0 -11
- package/dist/cli/ui/components/DiffView.js.map +0 -1
- package/dist/cli/ui/components/ErrorDisplay.d.ts +0 -6
- package/dist/cli/ui/components/ErrorDisplay.d.ts.map +0 -1
- package/dist/cli/ui/components/ErrorDisplay.js +0 -11
- package/dist/cli/ui/components/ErrorDisplay.js.map +0 -1
- package/dist/cli/ui/components/FuzzySearch.d.ts +0 -9
- package/dist/cli/ui/components/FuzzySearch.d.ts.map +0 -1
- package/dist/cli/ui/components/FuzzySearch.js +0 -12
- package/dist/cli/ui/components/FuzzySearch.js.map +0 -1
- package/dist/cli/ui/components/LoadingSpinner.d.ts +0 -6
- package/dist/cli/ui/components/LoadingSpinner.d.ts.map +0 -1
- package/dist/cli/ui/components/LoadingSpinner.js +0 -10
- package/dist/cli/ui/components/LoadingSpinner.js.map +0 -1
- package/dist/cli/ui/components/NavigationList.d.ts +0 -9
- package/dist/cli/ui/components/NavigationList.d.ts.map +0 -1
- package/dist/cli/ui/components/NavigationList.js +0 -11
- package/dist/cli/ui/components/NavigationList.js.map +0 -1
- package/dist/cli/ui/components/ScrollableContent.d.ts +0 -8
- package/dist/cli/ui/components/ScrollableContent.d.ts.map +0 -1
- package/dist/cli/ui/components/ScrollableContent.js +0 -11
- package/dist/cli/ui/components/ScrollableContent.js.map +0 -1
- package/dist/cli/ui/components/index.d.ts +0 -7
- package/dist/cli/ui/components/index.d.ts.map +0 -1
- package/dist/cli/ui/components/index.js +0 -9
- package/dist/cli/ui/components/index.js.map +0 -1
- package/dist/cli/ui/terminal-ui.d.ts +0 -52
- package/dist/cli/ui/terminal-ui.d.ts.map +0 -1
- package/dist/cli/ui/terminal-ui.js +0 -121
- package/dist/cli/ui/terminal-ui.js.map +0 -1
- package/dist/do/BashModule.d.ts +0 -871
- package/dist/do/BashModule.d.ts.map +0 -1
- package/dist/do/BashModule.js +0 -1143
- package/dist/do/BashModule.js.map +0 -1
- package/dist/do/FsModule.d.ts +0 -601
- package/dist/do/FsModule.d.ts.map +0 -1
- package/dist/do/FsModule.js +0 -1120
- package/dist/do/FsModule.js.map +0 -1
- package/dist/do/GitModule.d.ts +0 -635
- package/dist/do/GitModule.d.ts.map +0 -1
- package/dist/do/GitModule.js +0 -781
- package/dist/do/GitModule.js.map +0 -1
- package/dist/do/GitRepoDO.d.ts +0 -281
- package/dist/do/GitRepoDO.d.ts.map +0 -1
- package/dist/do/GitRepoDO.js +0 -479
- package/dist/do/GitRepoDO.js.map +0 -1
- package/dist/do/bash-ast.d.ts +0 -246
- package/dist/do/bash-ast.d.ts.map +0 -1
- package/dist/do/bash-ast.js +0 -888
- package/dist/do/bash-ast.js.map +0 -1
- package/dist/do/container-executor.d.ts +0 -491
- package/dist/do/container-executor.d.ts.map +0 -1
- package/dist/do/container-executor.js +0 -730
- package/dist/do/container-executor.js.map +0 -1
- package/dist/do/index.d.ts +0 -53
- package/dist/do/index.d.ts.map +0 -1
- package/dist/do/index.js +0 -91
- package/dist/do/index.js.map +0 -1
- package/dist/do/tiered-storage.d.ts +0 -403
- package/dist/do/tiered-storage.d.ts.map +0 -1
- package/dist/do/tiered-storage.js +0 -689
- package/dist/do/tiered-storage.js.map +0 -1
- package/dist/do/withBash.d.ts +0 -231
- package/dist/do/withBash.d.ts.map +0 -1
- package/dist/do/withBash.js +0 -244
- package/dist/do/withBash.js.map +0 -1
- package/dist/do/withFs.d.ts +0 -237
- package/dist/do/withFs.d.ts.map +0 -1
- package/dist/do/withFs.js +0 -387
- package/dist/do/withFs.js.map +0 -1
- package/dist/do/withGit.d.ts +0 -180
- package/dist/do/withGit.d.ts.map +0 -1
- package/dist/do/withGit.js +0 -271
- package/dist/do/withGit.js.map +0 -1
- package/dist/durable-object/object-store.d.ts +0 -633
- package/dist/durable-object/object-store.d.ts.map +0 -1
- package/dist/durable-object/object-store.js +0 -1161
- package/dist/durable-object/object-store.js.map +0 -1
- package/dist/durable-object/schema.d.ts.map +0 -1
- package/dist/durable-object/schema.js.map +0 -1
- package/dist/durable-object/wal.d.ts +0 -416
- package/dist/durable-object/wal.d.ts.map +0 -1
- package/dist/durable-object/wal.js +0 -445
- package/dist/durable-object/wal.js.map +0 -1
- package/dist/mcp/adapter.d.ts +0 -772
- package/dist/mcp/adapter.d.ts.map +0 -1
- package/dist/mcp/adapter.js +0 -895
- package/dist/mcp/adapter.js.map +0 -1
- package/dist/mcp/sandbox/miniflare-evaluator.d.ts +0 -22
- package/dist/mcp/sandbox/miniflare-evaluator.d.ts.map +0 -1
- package/dist/mcp/sandbox/miniflare-evaluator.js +0 -140
- package/dist/mcp/sandbox/miniflare-evaluator.js.map +0 -1
- package/dist/mcp/sandbox/object-store-proxy.d.ts +0 -32
- package/dist/mcp/sandbox/object-store-proxy.d.ts.map +0 -1
- package/dist/mcp/sandbox/object-store-proxy.js +0 -30
- package/dist/mcp/sandbox/object-store-proxy.js.map +0 -1
- package/dist/mcp/sandbox/template.d.ts +0 -17
- package/dist/mcp/sandbox/template.d.ts.map +0 -1
- package/dist/mcp/sandbox/template.js +0 -71
- package/dist/mcp/sandbox/template.js.map +0 -1
- package/dist/mcp/sandbox.d.ts +0 -764
- package/dist/mcp/sandbox.d.ts.map +0 -1
- package/dist/mcp/sandbox.js +0 -1362
- package/dist/mcp/sandbox.js.map +0 -1
- package/dist/mcp/sdk-adapter.d.ts +0 -835
- package/dist/mcp/sdk-adapter.d.ts.map +0 -1
- package/dist/mcp/sdk-adapter.js +0 -974
- package/dist/mcp/sdk-adapter.js.map +0 -1
- package/dist/mcp/tools/do.d.ts +0 -32
- package/dist/mcp/tools/do.d.ts.map +0 -1
- package/dist/mcp/tools/do.js +0 -115
- package/dist/mcp/tools/do.js.map +0 -1
- package/dist/mcp/tools.d.ts +0 -548
- package/dist/mcp/tools.d.ts.map +0 -1
- package/dist/mcp/tools.js +0 -1934
- package/dist/mcp/tools.js.map +0 -1
- package/dist/ops/blame.d.ts +0 -551
- package/dist/ops/blame.d.ts.map +0 -1
- package/dist/ops/blame.js +0 -1037
- package/dist/ops/blame.js.map +0 -1
- package/dist/ops/branch.d.ts +0 -766
- package/dist/ops/branch.d.ts.map +0 -1
- package/dist/ops/branch.js +0 -950
- package/dist/ops/branch.js.map +0 -1
- package/dist/ops/commit-traversal.d.ts +0 -349
- package/dist/ops/commit-traversal.d.ts.map +0 -1
- package/dist/ops/commit-traversal.js +0 -821
- package/dist/ops/commit-traversal.js.map +0 -1
- package/dist/ops/commit.d.ts +0 -555
- package/dist/ops/commit.d.ts.map +0 -1
- package/dist/ops/commit.js +0 -826
- package/dist/ops/commit.js.map +0 -1
- package/dist/ops/merge-base.d.ts +0 -397
- package/dist/ops/merge-base.d.ts.map +0 -1
- package/dist/ops/merge-base.js +0 -691
- package/dist/ops/merge-base.js.map +0 -1
- package/dist/ops/merge.d.ts +0 -855
- package/dist/ops/merge.d.ts.map +0 -1
- package/dist/ops/merge.js +0 -1551
- package/dist/ops/merge.js.map +0 -1
- package/dist/ops/tag.d.ts +0 -247
- package/dist/ops/tag.d.ts.map +0 -1
- package/dist/ops/tag.js +0 -649
- package/dist/ops/tag.js.map +0 -1
- package/dist/ops/tree-builder.d.ts +0 -178
- package/dist/ops/tree-builder.d.ts.map +0 -1
- package/dist/ops/tree-builder.js +0 -271
- package/dist/ops/tree-builder.js.map +0 -1
- package/dist/ops/tree-diff.d.ts +0 -291
- package/dist/ops/tree-diff.d.ts.map +0 -1
- package/dist/ops/tree-diff.js +0 -705
- package/dist/ops/tree-diff.js.map +0 -1
- package/dist/pack/delta.d.ts +0 -248
- package/dist/pack/delta.d.ts.map +0 -1
- package/dist/pack/delta.js +0 -736
- package/dist/pack/delta.js.map +0 -1
- package/dist/pack/format.d.ts +0 -446
- package/dist/pack/format.d.ts.map +0 -1
- package/dist/pack/format.js +0 -572
- package/dist/pack/format.js.map +0 -1
- package/dist/pack/full-generation.d.ts +0 -612
- package/dist/pack/full-generation.d.ts.map +0 -1
- package/dist/pack/full-generation.js +0 -1378
- package/dist/pack/full-generation.js.map +0 -1
- package/dist/pack/generation.d.ts +0 -441
- package/dist/pack/generation.d.ts.map +0 -1
- package/dist/pack/generation.js +0 -707
- package/dist/pack/generation.js.map +0 -1
- package/dist/pack/index.d.ts +0 -502
- package/dist/pack/index.d.ts.map +0 -1
- package/dist/pack/index.js +0 -833
- package/dist/pack/index.js.map +0 -1
- package/dist/refs/branch.d.ts +0 -668
- package/dist/refs/branch.d.ts.map +0 -1
- package/dist/refs/branch.js +0 -897
- package/dist/refs/branch.js.map +0 -1
- package/dist/refs/storage.d.ts +0 -833
- package/dist/refs/storage.d.ts.map +0 -1
- package/dist/refs/storage.js +0 -1023
- package/dist/refs/storage.js.map +0 -1
- package/dist/refs/tag.d.ts +0 -860
- package/dist/refs/tag.d.ts.map +0 -1
- package/dist/refs/tag.js +0 -996
- package/dist/refs/tag.js.map +0 -1
- package/dist/storage/backend.d.ts +0 -425
- package/dist/storage/backend.d.ts.map +0 -1
- package/dist/storage/backend.js +0 -41
- package/dist/storage/backend.js.map +0 -1
- package/dist/storage/fsx-adapter.d.ts +0 -204
- package/dist/storage/fsx-adapter.d.ts.map +0 -1
- package/dist/storage/fsx-adapter.js +0 -470
- package/dist/storage/fsx-adapter.js.map +0 -1
- package/dist/storage/lru-cache.d.ts +0 -691
- package/dist/storage/lru-cache.d.ts.map +0 -1
- package/dist/storage/lru-cache.js +0 -813
- package/dist/storage/lru-cache.js.map +0 -1
- package/dist/storage/object-index.d.ts +0 -585
- package/dist/storage/object-index.d.ts.map +0 -1
- package/dist/storage/object-index.js +0 -532
- package/dist/storage/object-index.js.map +0 -1
- package/dist/storage/r2-pack.d.ts +0 -1257
- package/dist/storage/r2-pack.d.ts.map +0 -1
- package/dist/storage/r2-pack.js +0 -1770
- package/dist/storage/r2-pack.js.map +0 -1
- package/dist/tiered/cdc-pipeline.d.ts +0 -1888
- package/dist/tiered/cdc-pipeline.d.ts.map +0 -1
- package/dist/tiered/cdc-pipeline.js +0 -1880
- package/dist/tiered/cdc-pipeline.js.map +0 -1
- package/dist/tiered/migration.d.ts +0 -1104
- package/dist/tiered/migration.d.ts.map +0 -1
- package/dist/tiered/migration.js +0 -1214
- package/dist/tiered/migration.js.map +0 -1
- package/dist/tiered/parquet-writer.d.ts +0 -1145
- package/dist/tiered/parquet-writer.d.ts.map +0 -1
- package/dist/tiered/parquet-writer.js +0 -1183
- package/dist/tiered/parquet-writer.js.map +0 -1
- package/dist/tiered/read-path.d.ts +0 -835
- package/dist/tiered/read-path.d.ts.map +0 -1
- package/dist/tiered/read-path.js +0 -487
- package/dist/tiered/read-path.js.map +0 -1
- package/dist/types/capability.d.ts +0 -1385
- package/dist/types/capability.d.ts.map +0 -1
- package/dist/types/capability.js +0 -36
- package/dist/types/capability.js.map +0 -1
- package/dist/types/index.d.ts +0 -13
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -18
- package/dist/types/index.js.map +0 -1
- package/dist/types/objects.d.ts +0 -692
- package/dist/types/objects.d.ts.map +0 -1
- package/dist/types/objects.js +0 -837
- package/dist/types/objects.js.map +0 -1
- package/dist/types/storage.d.ts +0 -603
- package/dist/types/storage.d.ts.map +0 -1
- package/dist/types/storage.js +0 -191
- package/dist/types/storage.js.map +0 -1
- package/dist/types/worker-loader.d.ts +0 -60
- package/dist/types/worker-loader.d.ts.map +0 -1
- package/dist/types/worker-loader.js +0 -62
- package/dist/types/worker-loader.js.map +0 -1
- package/dist/utils/hash.d.ts +0 -197
- package/dist/utils/hash.d.ts.map +0 -1
- package/dist/utils/hash.js +0 -268
- package/dist/utils/hash.js.map +0 -1
- package/dist/utils/sha1.d.ts +0 -290
- package/dist/utils/sha1.d.ts.map +0 -1
- package/dist/utils/sha1.js +0 -582
- package/dist/utils/sha1.js.map +0 -1
- package/dist/wire/capabilities.d.ts +0 -1044
- package/dist/wire/capabilities.d.ts.map +0 -1
- package/dist/wire/capabilities.js +0 -941
- package/dist/wire/capabilities.js.map +0 -1
- package/dist/wire/path-security.d.ts +0 -157
- package/dist/wire/path-security.d.ts.map +0 -1
- package/dist/wire/path-security.js +0 -307
- package/dist/wire/path-security.js.map +0 -1
- package/dist/wire/pkt-line.d.ts +0 -345
- package/dist/wire/pkt-line.d.ts.map +0 -1
- package/dist/wire/pkt-line.js +0 -381
- package/dist/wire/pkt-line.js.map +0 -1
- package/dist/wire/receive-pack.d.ts +0 -1059
- package/dist/wire/receive-pack.d.ts.map +0 -1
- package/dist/wire/receive-pack.js +0 -1414
- package/dist/wire/receive-pack.js.map +0 -1
- package/dist/wire/smart-http.d.ts +0 -799
- package/dist/wire/smart-http.d.ts.map +0 -1
- package/dist/wire/smart-http.js +0 -945
- package/dist/wire/smart-http.js.map +0 -1
- package/dist/wire/upload-pack.d.ts +0 -727
- package/dist/wire/upload-pack.d.ts.map +0 -1
- package/dist/wire/upload-pack.js +0 -1138
- package/dist/wire/upload-pack.js.map +0 -1
|
@@ -1,612 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Full Packfile Generation Module
|
|
3
|
-
*
|
|
4
|
-
* This module provides advanced packfile generation capabilities designed for
|
|
5
|
-
* production use with large repositories. It extends the basic generation module
|
|
6
|
-
* with additional features for optimization, streaming, and incremental updates.
|
|
7
|
-
*
|
|
8
|
-
* ## Key Features
|
|
9
|
-
*
|
|
10
|
-
* - **Delta Chain Optimization**: Intelligent selection of delta bases
|
|
11
|
-
* - **Ordering Strategies**: Multiple object ordering algorithms for optimal compression
|
|
12
|
-
* - **Progress Reporting**: Real-time progress callbacks during generation
|
|
13
|
-
* - **Large Repository Support**: Memory-efficient handling via chunking and streaming
|
|
14
|
-
* - **Incremental Updates**: Efficiently update existing packs with new objects
|
|
15
|
-
* - **Pack Validation**: Verify integrity of generated packfiles
|
|
16
|
-
*
|
|
17
|
-
* ## Main Classes
|
|
18
|
-
*
|
|
19
|
-
* - {@link FullPackGenerator} - Full-featured pack generator with progress support
|
|
20
|
-
* - {@link DeltaChainOptimizer} - Optimizes delta base selection
|
|
21
|
-
* - {@link LargeRepositoryHandler} - Handles large repos with memory limits
|
|
22
|
-
* - {@link StreamingPackWriter} - Writes packs incrementally
|
|
23
|
-
* - {@link IncrementalPackUpdater} - Updates packs with new objects
|
|
24
|
-
*
|
|
25
|
-
* ## Ordering Strategies
|
|
26
|
-
*
|
|
27
|
-
* The module supports multiple object ordering strategies:
|
|
28
|
-
* - TYPE_FIRST: Groups objects by type (commits, trees, blobs, tags)
|
|
29
|
-
* - SIZE_DESCENDING: Largest objects first (good bases for deltas)
|
|
30
|
-
* - RECENCY: Most recently modified objects first
|
|
31
|
-
* - PATH_BASED: Groups objects by file path
|
|
32
|
-
* - DELTA_OPTIMIZED: Orders based on delta chain dependencies
|
|
33
|
-
*
|
|
34
|
-
* @module pack/full-generation
|
|
35
|
-
* @see {@link module:pack/generation} Basic pack generation
|
|
36
|
-
*
|
|
37
|
-
* @example
|
|
38
|
-
* // Generate a pack with progress reporting
|
|
39
|
-
* const generator = new FullPackGenerator({
|
|
40
|
-
* enableDeltaCompression: true,
|
|
41
|
-
* orderingStrategy: PackOrderingStrategy.TYPE_FIRST
|
|
42
|
-
* });
|
|
43
|
-
*
|
|
44
|
-
* generator.onProgress((progress) => {
|
|
45
|
-
* console.log(`${progress.phase}: ${progress.objectsProcessed}/${progress.totalObjects}`);
|
|
46
|
-
* });
|
|
47
|
-
*
|
|
48
|
-
* for (const obj of objects) {
|
|
49
|
-
* generator.addObject(obj);
|
|
50
|
-
* }
|
|
51
|
-
*
|
|
52
|
-
* const result = generator.generate();
|
|
53
|
-
* console.log(`Generated pack with ${result.stats.deltaObjects} deltas`);
|
|
54
|
-
*/
|
|
55
|
-
import { PackObjectType } from './format';
|
|
56
|
-
/**
|
|
57
|
-
* Represents an object that can be packed into a packfile.
|
|
58
|
-
*
|
|
59
|
-
* @description Extended version with optional timestamp and path for
|
|
60
|
-
* advanced ordering strategies.
|
|
61
|
-
*
|
|
62
|
-
* @interface PackableObject
|
|
63
|
-
*/
|
|
64
|
-
export interface PackableObject {
|
|
65
|
-
/** 40-character hexadecimal SHA-1 hash */
|
|
66
|
-
sha: string;
|
|
67
|
-
/** Git object type */
|
|
68
|
-
type: PackObjectType;
|
|
69
|
-
/** Raw (uncompressed) object data */
|
|
70
|
-
data: Uint8Array;
|
|
71
|
-
/** Optional file path for path-based ordering */
|
|
72
|
-
path?: string;
|
|
73
|
-
/** Optional timestamp for recency-based ordering */
|
|
74
|
-
timestamp?: number;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* A collection of objects to be packed together.
|
|
78
|
-
*
|
|
79
|
-
* @description Represents a set of objects with optional root references
|
|
80
|
-
* for determining which objects are entry points.
|
|
81
|
-
*
|
|
82
|
-
* @interface PackableObjectSet
|
|
83
|
-
*/
|
|
84
|
-
export interface PackableObjectSet {
|
|
85
|
-
/** Array of objects to pack */
|
|
86
|
-
objects: PackableObject[];
|
|
87
|
-
/** Optional root object SHAs (e.g., commit heads) */
|
|
88
|
-
roots?: string[];
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Configuration options for full pack generation.
|
|
92
|
-
*
|
|
93
|
-
* @interface FullPackOptions
|
|
94
|
-
*/
|
|
95
|
-
export interface FullPackOptions {
|
|
96
|
-
/** Enable delta compression (default: false) */
|
|
97
|
-
enableDeltaCompression?: boolean;
|
|
98
|
-
/** Maximum delta chain depth (default: 50) */
|
|
99
|
-
maxDeltaDepth?: number;
|
|
100
|
-
/** Number of objects to consider as delta bases (default: 10) */
|
|
101
|
-
windowSize?: number;
|
|
102
|
-
/** Zlib compression level 0-9 (default: 6) */
|
|
103
|
-
compressionLevel?: number;
|
|
104
|
-
/** Object ordering strategy to use */
|
|
105
|
-
orderingStrategy?: PackOrderingStrategy;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Result of full pack generation.
|
|
109
|
-
*
|
|
110
|
-
* @interface GeneratedFullPack
|
|
111
|
-
*/
|
|
112
|
-
export interface GeneratedFullPack {
|
|
113
|
-
/** Complete packfile data including checksum trailer */
|
|
114
|
-
packData: Uint8Array;
|
|
115
|
-
/** 20-byte SHA-1 checksum */
|
|
116
|
-
checksum: Uint8Array;
|
|
117
|
-
/** Generation statistics */
|
|
118
|
-
stats: FullPackStats;
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Statistics from pack generation.
|
|
122
|
-
*
|
|
123
|
-
* @interface FullPackStats
|
|
124
|
-
*/
|
|
125
|
-
export interface FullPackStats {
|
|
126
|
-
/** Total number of objects in the pack */
|
|
127
|
-
totalObjects: number;
|
|
128
|
-
/** Number of objects stored as deltas */
|
|
129
|
-
deltaObjects: number;
|
|
130
|
-
/** Total uncompressed size in bytes */
|
|
131
|
-
totalSize: number;
|
|
132
|
-
/** Total compressed size in bytes */
|
|
133
|
-
compressedSize: number;
|
|
134
|
-
/** Ratio of compressed to uncompressed size */
|
|
135
|
-
compressionRatio: number;
|
|
136
|
-
/** Maximum depth of delta chains */
|
|
137
|
-
maxDeltaDepth: number;
|
|
138
|
-
/** Time taken to generate in milliseconds */
|
|
139
|
-
generationTimeMs: number;
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Progress information during pack generation.
|
|
143
|
-
*
|
|
144
|
-
* @description Reported via callback during generation to track progress.
|
|
145
|
-
*
|
|
146
|
-
* @interface PackGenerationProgress
|
|
147
|
-
*/
|
|
148
|
-
export interface PackGenerationProgress {
|
|
149
|
-
/** Current generation phase */
|
|
150
|
-
phase: 'scanning' | 'sorting' | 'compressing' | 'writing' | 'complete';
|
|
151
|
-
/** Number of objects processed so far */
|
|
152
|
-
objectsProcessed: number;
|
|
153
|
-
/** Total number of objects to process */
|
|
154
|
-
totalObjects: number;
|
|
155
|
-
/** Bytes written to output so far */
|
|
156
|
-
bytesWritten: number;
|
|
157
|
-
/** SHA of currently processing object (if applicable) */
|
|
158
|
-
currentObject?: string;
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Configuration for delta chain optimization.
|
|
162
|
-
*
|
|
163
|
-
* @interface DeltaChainConfig
|
|
164
|
-
*/
|
|
165
|
-
export interface DeltaChainConfig {
|
|
166
|
-
/** Maximum allowed delta chain depth (default: 50) */
|
|
167
|
-
maxDepth?: number;
|
|
168
|
-
/** Minimum savings ratio to accept a delta (default: 0.1) */
|
|
169
|
-
minSavingsThreshold?: number;
|
|
170
|
-
/** Number of objects to consider as bases (default: 10) */
|
|
171
|
-
windowSize?: number;
|
|
172
|
-
/** Minimum match length for delta matching (default: 4) */
|
|
173
|
-
minMatchLength?: number;
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Result of delta chain optimization.
|
|
177
|
-
*
|
|
178
|
-
* @interface OptimizedDeltaChain
|
|
179
|
-
*/
|
|
180
|
-
export interface OptimizedDeltaChain {
|
|
181
|
-
/** Information about each chain in the optimization */
|
|
182
|
-
chains: DeltaChainInfo[];
|
|
183
|
-
/** Total bytes saved by delta compression */
|
|
184
|
-
totalSavings: number;
|
|
185
|
-
/** Map of object SHA to base SHA for delta relationships */
|
|
186
|
-
baseSelections: Map<string, string>;
|
|
187
|
-
}
|
|
188
|
-
/**
|
|
189
|
-
* Information about a single delta chain.
|
|
190
|
-
*
|
|
191
|
-
* @interface DeltaChainInfo
|
|
192
|
-
*/
|
|
193
|
-
export interface DeltaChainInfo {
|
|
194
|
-
/** SHA of the base object */
|
|
195
|
-
baseSha: string;
|
|
196
|
-
/** Type of the base object */
|
|
197
|
-
baseType: PackObjectType;
|
|
198
|
-
/** SHA of the delta object */
|
|
199
|
-
objectSha: string;
|
|
200
|
-
/** Type of the delta object */
|
|
201
|
-
objectType: PackObjectType;
|
|
202
|
-
/** Depth in the chain (0 = base, 1+ = delta) */
|
|
203
|
-
depth: number;
|
|
204
|
-
/** Bytes saved by using delta */
|
|
205
|
-
savings: number;
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Available pack ordering strategies.
|
|
209
|
-
*
|
|
210
|
-
* @description Different ordering strategies affect delta compression efficiency
|
|
211
|
-
* and pack structure. Choose based on your use case:
|
|
212
|
-
* - TYPE_FIRST: Standard Git ordering, good for general use
|
|
213
|
-
* - SIZE_DESCENDING: Optimizes for delta compression
|
|
214
|
-
* - RECENCY: Useful for fetch operations
|
|
215
|
-
* - PATH_BASED: Groups related files together
|
|
216
|
-
* - DELTA_OPTIMIZED: Respects delta chain dependencies
|
|
217
|
-
*
|
|
218
|
-
* @enum {string}
|
|
219
|
-
*/
|
|
220
|
-
export declare enum PackOrderingStrategy {
|
|
221
|
-
/** Groups objects by type (commits, trees, blobs, tags) */
|
|
222
|
-
TYPE_FIRST = "type_first",
|
|
223
|
-
/** Orders by size, largest first (better delta bases) */
|
|
224
|
-
SIZE_DESCENDING = "size_descending",
|
|
225
|
-
/** Orders by timestamp, newest first */
|
|
226
|
-
RECENCY = "recency",
|
|
227
|
-
/** Groups objects by file path */
|
|
228
|
-
PATH_BASED = "path_based",
|
|
229
|
-
/** Orders based on delta chain structure */
|
|
230
|
-
DELTA_OPTIMIZED = "delta_optimized"
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* Configuration for ordering strategy
|
|
234
|
-
*/
|
|
235
|
-
export interface OrderingStrategyConfig {
|
|
236
|
-
primaryStrategy?: PackOrderingStrategy;
|
|
237
|
-
secondaryStrategy?: PackOrderingStrategy;
|
|
238
|
-
deltaChains?: Map<string, string>;
|
|
239
|
-
preferSamePath?: boolean;
|
|
240
|
-
}
|
|
241
|
-
/**
|
|
242
|
-
* Result of applying ordering strategy
|
|
243
|
-
*/
|
|
244
|
-
export interface OrderedObjectSet {
|
|
245
|
-
objects: PackableObject[];
|
|
246
|
-
orderingApplied: PackOrderingStrategy;
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* Configuration for large repository handling
|
|
250
|
-
*/
|
|
251
|
-
export interface LargeRepoConfig {
|
|
252
|
-
maxMemoryUsage?: number;
|
|
253
|
-
chunkSize?: number;
|
|
254
|
-
enableStreaming?: boolean;
|
|
255
|
-
parallelDeltaComputation?: boolean;
|
|
256
|
-
workerCount?: number;
|
|
257
|
-
}
|
|
258
|
-
/**
|
|
259
|
-
* Options for incremental pack updates
|
|
260
|
-
*/
|
|
261
|
-
export interface IncrementalUpdateOptions {
|
|
262
|
-
generateThinPack?: boolean;
|
|
263
|
-
externalBases?: Set<string>;
|
|
264
|
-
reuseDeltas?: boolean;
|
|
265
|
-
reoptimizeDeltas?: boolean;
|
|
266
|
-
}
|
|
267
|
-
/**
|
|
268
|
-
* Result of incremental pack update
|
|
269
|
-
*/
|
|
270
|
-
export interface IncrementalPackResult {
|
|
271
|
-
packData: Uint8Array;
|
|
272
|
-
addedObjects: number;
|
|
273
|
-
skippedObjects: number;
|
|
274
|
-
reusedDeltas: number;
|
|
275
|
-
deltaReferences: string[];
|
|
276
|
-
isThin: boolean;
|
|
277
|
-
missingBases: string[];
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Result of pack diff computation
|
|
281
|
-
*/
|
|
282
|
-
export interface PackDiff {
|
|
283
|
-
added: string[];
|
|
284
|
-
removed: string[];
|
|
285
|
-
unchanged: string[];
|
|
286
|
-
}
|
|
287
|
-
/**
|
|
288
|
-
* Result of pack merge
|
|
289
|
-
*/
|
|
290
|
-
export interface MergedPack {
|
|
291
|
-
objects: PackableObject[];
|
|
292
|
-
stats: FullPackStats;
|
|
293
|
-
}
|
|
294
|
-
/**
|
|
295
|
-
* Result of base selection
|
|
296
|
-
*/
|
|
297
|
-
export interface BaseSelectionResult {
|
|
298
|
-
selections: Map<string, string>;
|
|
299
|
-
savings: Map<string, number>;
|
|
300
|
-
}
|
|
301
|
-
/**
|
|
302
|
-
* Object dependency graph
|
|
303
|
-
*/
|
|
304
|
-
export interface ObjectDependencyGraph {
|
|
305
|
-
getDependencies(sha: string): string[];
|
|
306
|
-
getDependents(sha: string): string[];
|
|
307
|
-
hasCycles(): boolean;
|
|
308
|
-
topologicalSort(): string[];
|
|
309
|
-
nodes: string[];
|
|
310
|
-
edges: Array<{
|
|
311
|
-
from: string;
|
|
312
|
-
to: string;
|
|
313
|
-
}>;
|
|
314
|
-
}
|
|
315
|
-
/**
|
|
316
|
-
* Result of pack validation
|
|
317
|
-
*/
|
|
318
|
-
export interface PackValidationResult {
|
|
319
|
-
valid: boolean;
|
|
320
|
-
errors: string[];
|
|
321
|
-
stats?: PackValidationStats;
|
|
322
|
-
deltaChainStats?: DeltaChainStats;
|
|
323
|
-
}
|
|
324
|
-
/**
|
|
325
|
-
* Pack validation statistics
|
|
326
|
-
*/
|
|
327
|
-
export interface PackValidationStats {
|
|
328
|
-
objectCount: number;
|
|
329
|
-
headerValid: boolean;
|
|
330
|
-
checksumValid: boolean;
|
|
331
|
-
}
|
|
332
|
-
/**
|
|
333
|
-
* Delta chain statistics
|
|
334
|
-
*/
|
|
335
|
-
export interface DeltaChainStats {
|
|
336
|
-
maxDepth: number;
|
|
337
|
-
averageDepth: number;
|
|
338
|
-
totalChains: number;
|
|
339
|
-
}
|
|
340
|
-
/**
|
|
341
|
-
* Generates a complete packfile from an object set.
|
|
342
|
-
*
|
|
343
|
-
* @description Convenience function that creates a FullPackGenerator, adds
|
|
344
|
-
* all objects from the set, and returns the complete packfile with checksum.
|
|
345
|
-
*
|
|
346
|
-
* @param {PackableObjectSet} objectSet - The set of objects to pack
|
|
347
|
-
* @returns {Uint8Array} Complete packfile data including checksum
|
|
348
|
-
*
|
|
349
|
-
* @example
|
|
350
|
-
* const objectSet = {
|
|
351
|
-
* objects: [blob1, blob2, tree, commit],
|
|
352
|
-
* roots: [commit.sha]
|
|
353
|
-
* };
|
|
354
|
-
* const packfile = generateFullPackfile(objectSet);
|
|
355
|
-
*/
|
|
356
|
-
export declare function generateFullPackfile(objectSet: PackableObjectSet): Uint8Array;
|
|
357
|
-
/**
|
|
358
|
-
* Optimizes delta chains for a set of objects.
|
|
359
|
-
*
|
|
360
|
-
* @description Analyzes objects to find optimal delta base selections that
|
|
361
|
-
* minimize total pack size while respecting chain depth limits.
|
|
362
|
-
*
|
|
363
|
-
* @param {PackableObject[]} objects - Objects to optimize
|
|
364
|
-
* @param {DeltaChainConfig} [config] - Optimization configuration
|
|
365
|
-
* @returns {OptimizedDeltaChain} Optimized chain information and selections
|
|
366
|
-
*
|
|
367
|
-
* @example
|
|
368
|
-
* const result = optimizeDeltaChains(objects, { maxDepth: 50 });
|
|
369
|
-
* console.log(`Saved ${result.totalSavings} bytes`);
|
|
370
|
-
*/
|
|
371
|
-
export declare function optimizeDeltaChains(objects: PackableObject[], config?: DeltaChainConfig): OptimizedDeltaChain;
|
|
372
|
-
/**
|
|
373
|
-
* Applies an ordering strategy to objects for optimal packing.
|
|
374
|
-
*
|
|
375
|
-
* @description Reorders objects according to the specified strategy to
|
|
376
|
-
* improve compression efficiency or access patterns.
|
|
377
|
-
*
|
|
378
|
-
* @param {PackableObject[]} objects - Objects to reorder
|
|
379
|
-
* @param {PackOrderingStrategy} strategy - Ordering strategy to apply
|
|
380
|
-
* @param {OrderingStrategyConfig} [config] - Additional configuration
|
|
381
|
-
* @returns {OrderedObjectSet} Ordered objects with applied strategy info
|
|
382
|
-
*
|
|
383
|
-
* @example
|
|
384
|
-
* const ordered = applyOrderingStrategy(
|
|
385
|
-
* objects,
|
|
386
|
-
* PackOrderingStrategy.TYPE_FIRST,
|
|
387
|
-
* { secondaryStrategy: PackOrderingStrategy.SIZE_DESCENDING }
|
|
388
|
-
* );
|
|
389
|
-
*/
|
|
390
|
-
export declare function applyOrderingStrategy(objects: PackableObject[], strategy: PackOrderingStrategy, config?: OrderingStrategyConfig): OrderedObjectSet;
|
|
391
|
-
/**
|
|
392
|
-
* Computes object dependencies from commit and tree references.
|
|
393
|
-
*
|
|
394
|
-
* @description Parses commit and tree objects to extract references,
|
|
395
|
-
* building a dependency graph useful for ordering and validation.
|
|
396
|
-
*
|
|
397
|
-
* @param {PackableObject[]} objects - Objects to analyze
|
|
398
|
-
* @returns {ObjectDependencyGraph} Dependency graph with traversal methods
|
|
399
|
-
*
|
|
400
|
-
* @example
|
|
401
|
-
* const graph = computeObjectDependencies(objects);
|
|
402
|
-
* const sorted = graph.topologicalSort();
|
|
403
|
-
* if (graph.hasCycles()) {
|
|
404
|
-
* throw new Error('Circular dependencies detected');
|
|
405
|
-
* }
|
|
406
|
-
*/
|
|
407
|
-
export declare function computeObjectDependencies(objects: PackableObject[]): ObjectDependencyGraph;
|
|
408
|
-
/**
|
|
409
|
-
* Selects optimal base objects for delta compression.
|
|
410
|
-
*
|
|
411
|
-
* @description Analyzes all objects to find the best delta base for each,
|
|
412
|
-
* computing actual delta savings to make informed selections.
|
|
413
|
-
*
|
|
414
|
-
* @param {PackableObject[]} objects - Objects to analyze
|
|
415
|
-
* @param {{ preferSamePath?: boolean }} [options] - Selection options
|
|
416
|
-
* @returns {BaseSelectionResult} Map of selections and savings
|
|
417
|
-
*
|
|
418
|
-
* @example
|
|
419
|
-
* const result = selectOptimalBases(objects, { preferSamePath: true });
|
|
420
|
-
* for (const [target, base] of result.selections) {
|
|
421
|
-
* console.log(`${target} -> ${base}: saves ${result.savings.get(target)} bytes`);
|
|
422
|
-
* }
|
|
423
|
-
*/
|
|
424
|
-
export declare function selectOptimalBases(objects: PackableObject[], options?: {
|
|
425
|
-
preferSamePath?: boolean;
|
|
426
|
-
}): BaseSelectionResult;
|
|
427
|
-
/**
|
|
428
|
-
* Validates pack file integrity.
|
|
429
|
-
*
|
|
430
|
-
* @description Performs comprehensive validation of a packfile including:
|
|
431
|
-
* - Header signature and version
|
|
432
|
-
* - Object count verification
|
|
433
|
-
* - Checksum validation
|
|
434
|
-
* - Optional delta chain validation
|
|
435
|
-
*
|
|
436
|
-
* @param {Uint8Array} packData - Complete packfile data to validate
|
|
437
|
-
* @param {{ validateDeltas?: boolean; collectStats?: boolean }} [options] - Validation options
|
|
438
|
-
* @returns {PackValidationResult} Validation result with errors and optional stats
|
|
439
|
-
* @throws {Error} Never throws; errors are returned in the result
|
|
440
|
-
*
|
|
441
|
-
* @example
|
|
442
|
-
* const result = validatePackIntegrity(packData, { collectStats: true });
|
|
443
|
-
* if (!result.valid) {
|
|
444
|
-
* console.error('Pack errors:', result.errors);
|
|
445
|
-
* } else {
|
|
446
|
-
* console.log(`Valid pack with ${result.stats?.objectCount} objects`);
|
|
447
|
-
* }
|
|
448
|
-
*/
|
|
449
|
-
export declare function validatePackIntegrity(packData: Uint8Array, options?: {
|
|
450
|
-
validateDeltas?: boolean;
|
|
451
|
-
collectStats?: boolean;
|
|
452
|
-
}): PackValidationResult;
|
|
453
|
-
/**
|
|
454
|
-
* Full-featured pack generator with streaming and progress support.
|
|
455
|
-
*
|
|
456
|
-
* @description Advanced packfile generator that extends basic functionality with:
|
|
457
|
-
* - Progress callbacks during generation
|
|
458
|
-
* - Configurable ordering strategies
|
|
459
|
-
* - Delta compression with chain optimization
|
|
460
|
-
* - Validation of input objects
|
|
461
|
-
*
|
|
462
|
-
* @class FullPackGenerator
|
|
463
|
-
*
|
|
464
|
-
* @example
|
|
465
|
-
* const generator = new FullPackGenerator({
|
|
466
|
-
* enableDeltaCompression: true,
|
|
467
|
-
* orderingStrategy: PackOrderingStrategy.TYPE_FIRST
|
|
468
|
-
* });
|
|
469
|
-
*
|
|
470
|
-
* generator.onProgress((p) => {
|
|
471
|
-
* console.log(`Phase: ${p.phase}, Progress: ${p.objectsProcessed}/${p.totalObjects}`);
|
|
472
|
-
* });
|
|
473
|
-
*
|
|
474
|
-
* for (const obj of objects) {
|
|
475
|
-
* generator.addObject(obj);
|
|
476
|
-
* }
|
|
477
|
-
*
|
|
478
|
-
* const result = generator.generate();
|
|
479
|
-
*/
|
|
480
|
-
export declare class FullPackGenerator {
|
|
481
|
-
private objects;
|
|
482
|
-
private options;
|
|
483
|
-
private progressCallback?;
|
|
484
|
-
constructor(options?: FullPackOptions);
|
|
485
|
-
get objectCount(): number;
|
|
486
|
-
addObject(object: PackableObject): void;
|
|
487
|
-
addObjectSet(objectSet: PackableObjectSet): void;
|
|
488
|
-
onProgress(callback: (progress: PackGenerationProgress) => void): void;
|
|
489
|
-
generate(): GeneratedFullPack;
|
|
490
|
-
reset(): void;
|
|
491
|
-
private reportProgress;
|
|
492
|
-
}
|
|
493
|
-
/**
|
|
494
|
-
* Delta chain optimizer for finding optimal base selections.
|
|
495
|
-
*
|
|
496
|
-
* @description Analyzes a set of objects to determine the best delta base
|
|
497
|
-
* for each, considering chain depth limits, similarity, and savings.
|
|
498
|
-
*
|
|
499
|
-
* @class DeltaChainOptimizer
|
|
500
|
-
*
|
|
501
|
-
* @example
|
|
502
|
-
* const optimizer = new DeltaChainOptimizer({ maxDepth: 50 });
|
|
503
|
-
* for (const obj of objects) {
|
|
504
|
-
* optimizer.addObject(obj);
|
|
505
|
-
* }
|
|
506
|
-
* const result = optimizer.optimize();
|
|
507
|
-
*/
|
|
508
|
-
export declare class DeltaChainOptimizer {
|
|
509
|
-
private objects;
|
|
510
|
-
private config;
|
|
511
|
-
constructor(config?: DeltaChainConfig);
|
|
512
|
-
addObject(object: PackableObject): void;
|
|
513
|
-
buildGraph(): {
|
|
514
|
-
nodes: PackableObject[];
|
|
515
|
-
edges: Array<{
|
|
516
|
-
from: string;
|
|
517
|
-
to: string;
|
|
518
|
-
}>;
|
|
519
|
-
};
|
|
520
|
-
computeSavings(): Map<string, number>;
|
|
521
|
-
optimize(): OptimizedDeltaChain;
|
|
522
|
-
}
|
|
523
|
-
/**
|
|
524
|
-
* Handler for large repositories with memory management.
|
|
525
|
-
*
|
|
526
|
-
* @description Provides memory-efficient pack generation for large repositories
|
|
527
|
-
* by partitioning objects into chunks and optionally streaming output.
|
|
528
|
-
*
|
|
529
|
-
* @class LargeRepositoryHandler
|
|
530
|
-
*
|
|
531
|
-
* @example
|
|
532
|
-
* const handler = new LargeRepositoryHandler({
|
|
533
|
-
* maxMemoryUsage: 500 * 1024 * 1024, // 500MB
|
|
534
|
-
* chunkSize: 1000,
|
|
535
|
-
* enableStreaming: true
|
|
536
|
-
* });
|
|
537
|
-
* handler.setObjects(largeObjectSet);
|
|
538
|
-
* handler.onProgress((p) => console.log(p.phase));
|
|
539
|
-
* const result = handler.generatePack();
|
|
540
|
-
*/
|
|
541
|
-
export declare class LargeRepositoryHandler {
|
|
542
|
-
private objects;
|
|
543
|
-
private config;
|
|
544
|
-
private progressCallback?;
|
|
545
|
-
private memoryCallback?;
|
|
546
|
-
constructor(config?: LargeRepoConfig);
|
|
547
|
-
setObjects(objects: PackableObject[]): void;
|
|
548
|
-
onProgress(callback: (progress: PackGenerationProgress) => void): void;
|
|
549
|
-
onMemoryUsage(callback: (usage: number) => void): void;
|
|
550
|
-
partitionObjects(objects: PackableObject[]): PackableObject[][];
|
|
551
|
-
generatePack(): GeneratedFullPack;
|
|
552
|
-
}
|
|
553
|
-
/**
|
|
554
|
-
* Streaming pack writer for incremental output.
|
|
555
|
-
*
|
|
556
|
-
* @description Writes packfile data incrementally, suitable for streaming
|
|
557
|
-
* to network or disk without holding entire pack in memory.
|
|
558
|
-
*
|
|
559
|
-
* @class StreamingPackWriter
|
|
560
|
-
*
|
|
561
|
-
* @example
|
|
562
|
-
* const writer = new StreamingPackWriter();
|
|
563
|
-
* writer.onChunk((chunk) => socket.write(chunk));
|
|
564
|
-
* writer.writeHeader(objects.length);
|
|
565
|
-
* for (const obj of objects) {
|
|
566
|
-
* writer.writeObject(obj);
|
|
567
|
-
* }
|
|
568
|
-
* await writer.finalize();
|
|
569
|
-
*/
|
|
570
|
-
export declare class StreamingPackWriter {
|
|
571
|
-
private chunkCallback?;
|
|
572
|
-
private outputStream?;
|
|
573
|
-
private chunks;
|
|
574
|
-
private objectCount;
|
|
575
|
-
private expectedCount;
|
|
576
|
-
constructor(options?: {
|
|
577
|
-
outputStream?: {
|
|
578
|
-
write: (chunk: Uint8Array) => Promise<void>;
|
|
579
|
-
};
|
|
580
|
-
highWaterMark?: number;
|
|
581
|
-
});
|
|
582
|
-
onChunk(callback: (chunk: Uint8Array) => void): void;
|
|
583
|
-
writeHeader(objectCount: number): void;
|
|
584
|
-
writeObject(object: PackableObject): void;
|
|
585
|
-
finalize(): Promise<void>;
|
|
586
|
-
private emitChunk;
|
|
587
|
-
}
|
|
588
|
-
/**
|
|
589
|
-
* Incremental pack updater for adding new objects to existing packs.
|
|
590
|
-
*
|
|
591
|
-
* @description Efficiently creates packs containing only new objects while
|
|
592
|
-
* optionally reusing delta relationships with existing objects.
|
|
593
|
-
*
|
|
594
|
-
* @class IncrementalPackUpdater
|
|
595
|
-
*
|
|
596
|
-
* @example
|
|
597
|
-
* const updater = new IncrementalPackUpdater({ reuseDeltas: true });
|
|
598
|
-
* updater.setExistingObjects(existingPack);
|
|
599
|
-
* const result = updater.addObjects(newObjects);
|
|
600
|
-
* console.log(`Added ${result.addedObjects}, skipped ${result.skippedObjects}`);
|
|
601
|
-
*/
|
|
602
|
-
export declare class IncrementalPackUpdater {
|
|
603
|
-
private existingObjects;
|
|
604
|
-
private existingShas;
|
|
605
|
-
private options;
|
|
606
|
-
constructor(options?: IncrementalUpdateOptions);
|
|
607
|
-
setExistingObjects(objects: PackableObject[]): void;
|
|
608
|
-
addObjects(newObjects: PackableObject[]): IncrementalPackResult;
|
|
609
|
-
computeDiff(oldObjects: PackableObject[], newObjects: PackableObject[]): PackDiff;
|
|
610
|
-
mergePacks(packs: PackableObject[][]): MergedPack;
|
|
611
|
-
}
|
|
612
|
-
//# sourceMappingURL=full-generation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"full-generation.d.ts","sourceRoot":"","sources":["../../src/pack/full-generation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAGH,OAAO,EAAE,cAAc,EAAqB,MAAM,UAAU,CAAA;AAQ5D;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAA;IACX,sBAAsB;IACtB,IAAI,EAAE,cAAc,CAAA;IACpB,qCAAqC;IACrC,IAAI,EAAE,UAAU,CAAA;IAChB,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,sCAAsC;IACtC,gBAAgB,CAAC,EAAE,oBAAoB,CAAA;CACxC;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,QAAQ,EAAE,UAAU,CAAA;IACpB,6BAA6B;IAC7B,QAAQ,EAAE,UAAU,CAAA;IACpB,4BAA4B;IAC5B,KAAK,EAAE,aAAa,CAAA;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAA;IACpB,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAA;IACpB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAA;IACjB,qCAAqC;IACrC,cAAc,EAAE,MAAM,CAAA;IACtB,+CAA+C;IAC/C,gBAAgB,EAAE,MAAM,CAAA;IACxB,oCAAoC;IACpC,aAAa,EAAE,MAAM,CAAA;IACrB,6CAA6C;IAC7C,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,+BAA+B;IAC/B,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,CAAA;IACtE,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAA;IACxB,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAA;IACpB,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAA;IACpB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6DAA6D;IAC7D,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAA;IACpB,4DAA4D;IAC5D,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,8BAA8B;IAC9B,QAAQ,EAAE,cAAc,CAAA;IACxB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,+BAA+B;IAC/B,UAAU,EAAE,cAAc,CAAA;IAC1B,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAA;IACb,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,oBAAY,oBAAoB;IAC9B,2DAA2D;IAC3D,UAAU,eAAe;IACzB,yDAAyD;IACzD,eAAe,oBAAoB;IACnC,wCAAwC;IACxC,OAAO,YAAY;IACnB,kCAAkC;IAClC,UAAU,eAAe;IACzB,4CAA4C;IAC5C,eAAe,oBAAoB;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,eAAe,CAAC,EAAE,oBAAoB,CAAA;IACtC,iBAAiB,CAAC,EAAE,oBAAoB,CAAA;IACxC,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,eAAe,EAAE,oBAAoB,CAAA;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,UAAU,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,MAAM,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,KAAK,EAAE,aAAa,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACtC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACpC,SAAS,IAAI,OAAO,CAAA;IACpB,eAAe,IAAI,MAAM,EAAE,CAAA;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,CAAC,EAAE,mBAAmB,CAAA;IAC3B,eAAe,CAAC,EAAE,eAAe,CAAA;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,OAAO,CAAA;IACpB,aAAa,EAAE,OAAO,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;CACpB;AAgHD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,iBAAiB,GAAG,UAAU,CAO7E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,cAAc,EAAE,EACzB,MAAM,CAAC,EAAE,gBAAgB,GACxB,mBAAmB,CAMrB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,cAAc,EAAE,EACzB,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,CAAC,EAAE,sBAAsB,GAC9B,gBAAgB,CAoFlB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,qBAAqB,CAwJ1F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,cAAc,EAAE,EACzB,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GACrC,mBAAmB,CAiDrB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,UAAU,EACpB,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7D,oBAAoB,CAiJtB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,gBAAgB,CAAC,CAA4C;gBAEzD,OAAO,CAAC,EAAE,eAAe;IAUrC,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAcvC,YAAY,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAMhD,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,IAAI,GAAG,IAAI;IAItE,QAAQ,IAAI,iBAAiB;IAiK7B,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,cAAc;CAiBvB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,CAAC,EAAE,gBAAgB;IASrC,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAIvC,UAAU,IAAI;QAAE,KAAK,EAAE,cAAc,EAAE,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE;IAoBrF,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAmCrC,QAAQ,IAAI,mBAAmB;CAuHhC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,gBAAgB,CAAC,CAA4C;IACrE,OAAO,CAAC,cAAc,CAAC,CAAyB;gBAEpC,MAAM,CAAC,EAAE,eAAe;IAUpC,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI;IAI3C,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,IAAI,GAAG,IAAI;IAItE,aAAa,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAItD,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,EAAE;IAW/D,YAAY,IAAI,iBAAiB;CAsClC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,aAAa,CAAC,CAA6B;IACnD,OAAO,CAAC,YAAY,CAAC,CAAiD;IACtE,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,WAAW,CAAI;IACvB,OAAO,CAAC,aAAa,CAAI;gBAEb,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE;YAAE,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;SAAE,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE;IAKhH,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAIpD,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAMtC,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IASnC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB/B,OAAO,CAAC,SAAS;CASlB;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,OAAO,CAA0B;gBAE7B,OAAO,CAAC,EAAE,wBAAwB;IAS9C,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI;IAKnD,UAAU,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,qBAAqB;IAwD/D,WAAW,CAAC,UAAU,EAAE,cAAc,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,QAAQ;IAyBjF,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,GAAG,UAAU;CA+ClD"}
|