gitx.do 0.0.2 → 0.0.3
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/commands/blame.d.ts +259 -0
- package/dist/cli/commands/blame.d.ts.map +1 -0
- package/dist/cli/commands/blame.js +609 -0
- package/dist/cli/commands/blame.js.map +1 -0
- package/dist/cli/commands/branch.d.ts +249 -0
- package/dist/cli/commands/branch.d.ts.map +1 -0
- package/dist/cli/commands/branch.js +693 -0
- package/dist/cli/commands/branch.js.map +1 -0
- package/dist/cli/commands/commit.d.ts +182 -0
- package/dist/cli/commands/commit.d.ts.map +1 -0
- package/dist/cli/commands/commit.js +437 -0
- package/dist/cli/commands/commit.js.map +1 -0
- package/dist/cli/commands/diff.d.ts +464 -0
- package/dist/cli/commands/diff.d.ts.map +1 -0
- package/dist/cli/commands/diff.js +958 -0
- package/dist/cli/commands/diff.js.map +1 -0
- package/dist/cli/commands/log.d.ts +239 -0
- package/dist/cli/commands/log.d.ts.map +1 -0
- package/dist/cli/commands/log.js +535 -0
- package/dist/cli/commands/log.js.map +1 -0
- package/dist/cli/commands/review.d.ts +457 -0
- package/dist/cli/commands/review.d.ts.map +1 -0
- package/dist/cli/commands/review.js +533 -0
- package/dist/cli/commands/review.js.map +1 -0
- package/dist/cli/commands/status.d.ts +269 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +493 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/web.d.ts +199 -0
- package/dist/cli/commands/web.d.ts.map +1 -0
- package/dist/cli/commands/web.js +696 -0
- package/dist/cli/commands/web.js.map +1 -0
- package/dist/cli/fs-adapter.d.ts +656 -0
- package/dist/cli/fs-adapter.d.ts.map +1 -0
- package/dist/cli/fs-adapter.js +1179 -0
- package/dist/cli/fs-adapter.js.map +1 -0
- package/dist/cli/index.d.ts +387 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +523 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/ui/components/DiffView.d.ts +7 -0
- package/dist/cli/ui/components/DiffView.d.ts.map +1 -0
- package/dist/cli/ui/components/DiffView.js +11 -0
- package/dist/cli/ui/components/DiffView.js.map +1 -0
- package/dist/cli/ui/components/ErrorDisplay.d.ts +6 -0
- package/dist/cli/ui/components/ErrorDisplay.d.ts.map +1 -0
- package/dist/cli/ui/components/ErrorDisplay.js +11 -0
- package/dist/cli/ui/components/ErrorDisplay.js.map +1 -0
- package/dist/cli/ui/components/FuzzySearch.d.ts +9 -0
- package/dist/cli/ui/components/FuzzySearch.d.ts.map +1 -0
- package/dist/cli/ui/components/FuzzySearch.js +12 -0
- package/dist/cli/ui/components/FuzzySearch.js.map +1 -0
- package/dist/cli/ui/components/LoadingSpinner.d.ts +6 -0
- package/dist/cli/ui/components/LoadingSpinner.d.ts.map +1 -0
- package/dist/cli/ui/components/LoadingSpinner.js +10 -0
- package/dist/cli/ui/components/LoadingSpinner.js.map +1 -0
- package/dist/cli/ui/components/NavigationList.d.ts +9 -0
- package/dist/cli/ui/components/NavigationList.d.ts.map +1 -0
- package/dist/cli/ui/components/NavigationList.js +11 -0
- package/dist/cli/ui/components/NavigationList.js.map +1 -0
- package/dist/cli/ui/components/ScrollableContent.d.ts +8 -0
- package/dist/cli/ui/components/ScrollableContent.d.ts.map +1 -0
- package/dist/cli/ui/components/ScrollableContent.js +11 -0
- package/dist/cli/ui/components/ScrollableContent.js.map +1 -0
- package/dist/cli/ui/components/index.d.ts +7 -0
- package/dist/cli/ui/components/index.d.ts.map +1 -0
- package/dist/cli/ui/components/index.js +9 -0
- package/dist/cli/ui/components/index.js.map +1 -0
- package/dist/cli/ui/terminal-ui.d.ts +52 -0
- package/dist/cli/ui/terminal-ui.d.ts.map +1 -0
- package/dist/cli/ui/terminal-ui.js +121 -0
- package/dist/cli/ui/terminal-ui.js.map +1 -0
- package/dist/durable-object/object-store.d.ts +401 -23
- package/dist/durable-object/object-store.d.ts.map +1 -1
- package/dist/durable-object/object-store.js +414 -25
- package/dist/durable-object/object-store.js.map +1 -1
- package/dist/durable-object/schema.d.ts +188 -0
- package/dist/durable-object/schema.d.ts.map +1 -1
- package/dist/durable-object/schema.js +160 -0
- package/dist/durable-object/schema.js.map +1 -1
- package/dist/durable-object/wal.d.ts +336 -31
- package/dist/durable-object/wal.d.ts.map +1 -1
- package/dist/durable-object/wal.js +272 -27
- package/dist/durable-object/wal.js.map +1 -1
- package/dist/index.d.ts +379 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +379 -7
- package/dist/index.js.map +1 -1
- package/dist/mcp/adapter.d.ts +579 -38
- package/dist/mcp/adapter.d.ts.map +1 -1
- package/dist/mcp/adapter.js +426 -33
- package/dist/mcp/adapter.js.map +1 -1
- package/dist/mcp/sandbox.d.ts +532 -29
- package/dist/mcp/sandbox.d.ts.map +1 -1
- package/dist/mcp/sandbox.js +389 -22
- package/dist/mcp/sandbox.js.map +1 -1
- package/dist/mcp/sdk-adapter.d.ts +478 -56
- package/dist/mcp/sdk-adapter.d.ts.map +1 -1
- package/dist/mcp/sdk-adapter.js +346 -44
- package/dist/mcp/sdk-adapter.js.map +1 -1
- package/dist/mcp/tools.d.ts +445 -30
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +363 -33
- package/dist/mcp/tools.js.map +1 -1
- package/dist/ops/blame.d.ts +424 -21
- package/dist/ops/blame.d.ts.map +1 -1
- package/dist/ops/blame.js +303 -20
- package/dist/ops/blame.js.map +1 -1
- package/dist/ops/branch.d.ts +583 -32
- package/dist/ops/branch.d.ts.map +1 -1
- package/dist/ops/branch.js +365 -23
- package/dist/ops/branch.js.map +1 -1
- package/dist/ops/commit-traversal.d.ts +164 -24
- package/dist/ops/commit-traversal.d.ts.map +1 -1
- package/dist/ops/commit-traversal.js +68 -2
- package/dist/ops/commit-traversal.js.map +1 -1
- package/dist/ops/commit.d.ts +387 -53
- package/dist/ops/commit.d.ts.map +1 -1
- package/dist/ops/commit.js +249 -29
- package/dist/ops/commit.js.map +1 -1
- package/dist/ops/merge-base.d.ts +195 -21
- package/dist/ops/merge-base.d.ts.map +1 -1
- package/dist/ops/merge-base.js +122 -12
- package/dist/ops/merge-base.js.map +1 -1
- package/dist/ops/merge.d.ts +600 -130
- package/dist/ops/merge.d.ts.map +1 -1
- package/dist/ops/merge.js +408 -60
- package/dist/ops/merge.js.map +1 -1
- package/dist/ops/tag.d.ts +67 -2
- package/dist/ops/tag.d.ts.map +1 -1
- package/dist/ops/tag.js +42 -1
- package/dist/ops/tag.js.map +1 -1
- package/dist/ops/tree-builder.d.ts +102 -6
- package/dist/ops/tree-builder.d.ts.map +1 -1
- package/dist/ops/tree-builder.js +30 -5
- package/dist/ops/tree-builder.js.map +1 -1
- package/dist/ops/tree-diff.d.ts +50 -2
- package/dist/ops/tree-diff.d.ts.map +1 -1
- package/dist/ops/tree-diff.js +50 -2
- package/dist/ops/tree-diff.js.map +1 -1
- package/dist/pack/delta.d.ts +211 -39
- package/dist/pack/delta.d.ts.map +1 -1
- package/dist/pack/delta.js +232 -46
- package/dist/pack/delta.js.map +1 -1
- package/dist/pack/format.d.ts +390 -28
- package/dist/pack/format.d.ts.map +1 -1
- package/dist/pack/format.js +344 -33
- package/dist/pack/format.js.map +1 -1
- package/dist/pack/full-generation.d.ts +313 -28
- package/dist/pack/full-generation.d.ts.map +1 -1
- package/dist/pack/full-generation.js +238 -19
- package/dist/pack/full-generation.js.map +1 -1
- package/dist/pack/generation.d.ts +346 -23
- package/dist/pack/generation.d.ts.map +1 -1
- package/dist/pack/generation.js +269 -21
- package/dist/pack/generation.js.map +1 -1
- package/dist/pack/index.d.ts +407 -86
- package/dist/pack/index.d.ts.map +1 -1
- package/dist/pack/index.js +351 -70
- package/dist/pack/index.js.map +1 -1
- package/dist/refs/branch.d.ts +517 -71
- package/dist/refs/branch.d.ts.map +1 -1
- package/dist/refs/branch.js +410 -26
- package/dist/refs/branch.js.map +1 -1
- package/dist/refs/storage.d.ts +610 -57
- package/dist/refs/storage.d.ts.map +1 -1
- package/dist/refs/storage.js +481 -29
- package/dist/refs/storage.js.map +1 -1
- package/dist/refs/tag.d.ts +677 -67
- package/dist/refs/tag.d.ts.map +1 -1
- package/dist/refs/tag.js +497 -30
- package/dist/refs/tag.js.map +1 -1
- package/dist/storage/lru-cache.d.ts +556 -53
- package/dist/storage/lru-cache.d.ts.map +1 -1
- package/dist/storage/lru-cache.js +439 -36
- package/dist/storage/lru-cache.js.map +1 -1
- package/dist/storage/object-index.d.ts +483 -38
- package/dist/storage/object-index.d.ts.map +1 -1
- package/dist/storage/object-index.js +388 -22
- package/dist/storage/object-index.js.map +1 -1
- package/dist/storage/r2-pack.d.ts +957 -94
- package/dist/storage/r2-pack.d.ts.map +1 -1
- package/dist/storage/r2-pack.js +756 -48
- package/dist/storage/r2-pack.js.map +1 -1
- package/dist/tiered/cdc-pipeline.d.ts +1610 -38
- package/dist/tiered/cdc-pipeline.d.ts.map +1 -1
- package/dist/tiered/cdc-pipeline.js +1131 -22
- package/dist/tiered/cdc-pipeline.js.map +1 -1
- package/dist/tiered/migration.d.ts +903 -41
- package/dist/tiered/migration.d.ts.map +1 -1
- package/dist/tiered/migration.js +646 -24
- package/dist/tiered/migration.js.map +1 -1
- package/dist/tiered/parquet-writer.d.ts +944 -47
- package/dist/tiered/parquet-writer.d.ts.map +1 -1
- package/dist/tiered/parquet-writer.js +667 -39
- package/dist/tiered/parquet-writer.js.map +1 -1
- package/dist/tiered/read-path.d.ts +728 -34
- package/dist/tiered/read-path.d.ts.map +1 -1
- package/dist/tiered/read-path.js +310 -27
- package/dist/tiered/read-path.js.map +1 -1
- package/dist/types/objects.d.ts +457 -0
- package/dist/types/objects.d.ts.map +1 -1
- package/dist/types/objects.js +305 -4
- package/dist/types/objects.js.map +1 -1
- package/dist/types/storage.d.ts +407 -35
- package/dist/types/storage.d.ts.map +1 -1
- package/dist/types/storage.js +27 -3
- package/dist/types/storage.js.map +1 -1
- package/dist/utils/hash.d.ts +133 -12
- package/dist/utils/hash.d.ts.map +1 -1
- package/dist/utils/hash.js +133 -12
- package/dist/utils/hash.js.map +1 -1
- package/dist/utils/sha1.d.ts +102 -9
- package/dist/utils/sha1.d.ts.map +1 -1
- package/dist/utils/sha1.js +114 -11
- package/dist/utils/sha1.js.map +1 -1
- package/dist/wire/capabilities.d.ts +896 -88
- package/dist/wire/capabilities.d.ts.map +1 -1
- package/dist/wire/capabilities.js +566 -62
- package/dist/wire/capabilities.js.map +1 -1
- package/dist/wire/pkt-line.d.ts +293 -15
- package/dist/wire/pkt-line.d.ts.map +1 -1
- package/dist/wire/pkt-line.js +251 -15
- package/dist/wire/pkt-line.js.map +1 -1
- package/dist/wire/receive-pack.d.ts +814 -64
- package/dist/wire/receive-pack.d.ts.map +1 -1
- package/dist/wire/receive-pack.js +542 -41
- package/dist/wire/receive-pack.js.map +1 -1
- package/dist/wire/smart-http.d.ts +575 -97
- package/dist/wire/smart-http.d.ts.map +1 -1
- package/dist/wire/smart-http.js +337 -46
- package/dist/wire/smart-http.js.map +1 -1
- package/dist/wire/upload-pack.d.ts +492 -98
- package/dist/wire/upload-pack.d.ts.map +1 -1
- package/dist/wire/upload-pack.js +347 -59
- package/dist/wire/upload-pack.js.map +1 -1
- package/package.json +1 -1
package/dist/pack/index.js
CHANGED
|
@@ -1,39 +1,115 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Git Pack Index (.idx) File Format Implementation
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* within a packfile
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
2
|
+
* @fileoverview Git Pack Index (.idx) File Format Implementation
|
|
3
|
+
*
|
|
4
|
+
* This module implements the Git pack index (version 2) format, which provides
|
|
5
|
+
* efficient random access to objects within a packfile. Without an index, finding
|
|
6
|
+
* an object in a packfile would require scanning the entire file.
|
|
7
|
+
*
|
|
8
|
+
* ## Pack Index Version 2 Structure
|
|
9
|
+
*
|
|
10
|
+
* | Section | Size | Description |
|
|
11
|
+
* |------------------------|-------------------------|--------------------------------------------|
|
|
12
|
+
* | Magic number | 4 bytes | 0xff744f63 ("\377tOc") |
|
|
13
|
+
* | Version | 4 bytes | Version number (2) |
|
|
14
|
+
* | Fanout table | 256 * 4 bytes | Cumulative object counts by first SHA byte |
|
|
15
|
+
* | Object IDs | N * 20 bytes | Sorted SHA-1 hashes |
|
|
16
|
+
* | CRC32 checksums | N * 4 bytes | CRC32 of each packed object |
|
|
17
|
+
* | 4-byte offsets | N * 4 bytes | Pack file offsets (or large offset index) |
|
|
18
|
+
* | 8-byte large offsets | M * 8 bytes | For objects beyond 2GB |
|
|
19
|
+
* | Packfile checksum | 20 bytes | SHA-1 of the corresponding packfile |
|
|
20
|
+
* | Index checksum | 20 bytes | SHA-1 of this index file |
|
|
21
|
+
*
|
|
22
|
+
* ## Fanout Table
|
|
23
|
+
*
|
|
24
|
+
* The fanout table enables O(1) lookup of the range of objects starting with a given
|
|
25
|
+
* byte value. `fanout[i]` contains the cumulative count of objects whose SHA-1 hash
|
|
26
|
+
* starts with a byte <= i. This enables binary search within a narrow range.
|
|
27
|
+
*
|
|
28
|
+
* ## Large Offset Handling
|
|
29
|
+
*
|
|
30
|
+
* For packfiles larger than 2GB, offsets that don't fit in 4 bytes are stored in
|
|
31
|
+
* a separate 8-byte table. The 4-byte offset slot contains an index into this table
|
|
32
|
+
* with the MSB set to indicate it's an indirect reference.
|
|
33
|
+
*
|
|
34
|
+
* @module pack/index
|
|
35
|
+
* @see {@link https://git-scm.com/docs/pack-format} Git Pack Format Documentation
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* // Parse an existing pack index
|
|
39
|
+
* import { parsePackIndex, lookupObject } from './index';
|
|
40
|
+
*
|
|
41
|
+
* const indexData = await readFile('objects/pack/pack-abc123.idx');
|
|
42
|
+
* const index = parsePackIndex(indexData);
|
|
43
|
+
*
|
|
44
|
+
* const entry = lookupObject(index, 'a94a8fe5ccb19ba61c4c0873d391e987982fbbd3');
|
|
45
|
+
* if (entry) {
|
|
46
|
+
* console.log(`Object at offset ${entry.offset}`);
|
|
47
|
+
* }
|
|
17
48
|
*/
|
|
18
49
|
import { sha1, sha1Verify } from '../utils/sha1';
|
|
19
|
-
|
|
50
|
+
/**
|
|
51
|
+
* The 4-byte signature that identifies a version 2 pack index file.
|
|
52
|
+
* The bytes are: 0xff 0x74 0x4f 0x63 (representing "\377tOc").
|
|
53
|
+
*
|
|
54
|
+
* Version 1 index files don't have this signature and start directly
|
|
55
|
+
* with the fanout table.
|
|
56
|
+
*
|
|
57
|
+
* @constant {Uint8Array}
|
|
58
|
+
*/
|
|
20
59
|
export const PACK_INDEX_SIGNATURE = new Uint8Array([0xff, 0x74, 0x4f, 0x63]);
|
|
21
|
-
|
|
60
|
+
/**
|
|
61
|
+
* The magic number as a 32-bit integer for easy comparison.
|
|
62
|
+
* Equivalent to reading the first 4 bytes as big-endian uint32.
|
|
63
|
+
*
|
|
64
|
+
* @constant {number}
|
|
65
|
+
*/
|
|
22
66
|
export const PACK_INDEX_MAGIC = 0xff744f63;
|
|
67
|
+
/**
|
|
68
|
+
* The pack index version number supported by this implementation.
|
|
69
|
+
* Version 2 is the current standard and supports large packfiles (>2GB).
|
|
70
|
+
*
|
|
71
|
+
* @constant {number}
|
|
72
|
+
*/
|
|
23
73
|
export const PACK_INDEX_VERSION = 2;
|
|
24
|
-
|
|
74
|
+
/**
|
|
75
|
+
* The byte threshold for using large offset encoding.
|
|
76
|
+
* Offsets >= 2GB (0x80000000) require 8-byte storage.
|
|
77
|
+
* In the 4-byte offset table, values with MSB set are indices
|
|
78
|
+
* into the large offset table instead of direct offsets.
|
|
79
|
+
*
|
|
80
|
+
* @constant {number}
|
|
81
|
+
*/
|
|
25
82
|
export const LARGE_OFFSET_THRESHOLD = 0x80000000;
|
|
26
83
|
/**
|
|
27
|
-
*
|
|
84
|
+
* Gets the object ID from a PackIndexEntry, supporting both property names.
|
|
85
|
+
*
|
|
86
|
+
* @description Helper function that handles the legacy 'sha' property as well as
|
|
87
|
+
* the current 'objectId' property for backward compatibility.
|
|
88
|
+
*
|
|
89
|
+
* @param {PackIndexEntry} entry - The pack index entry
|
|
90
|
+
* @returns {string} The 40-character hex object ID, or empty string if neither is set
|
|
91
|
+
* @internal
|
|
28
92
|
*/
|
|
29
93
|
function getEntryObjectId(entry) {
|
|
30
94
|
return entry.objectId || entry.sha || '';
|
|
31
95
|
}
|
|
32
|
-
|
|
96
|
+
/**
|
|
97
|
+
* Converts a byte array to a hexadecimal string.
|
|
98
|
+
*
|
|
99
|
+
* @param {Uint8Array} bytes - The bytes to convert
|
|
100
|
+
* @returns {string} Lowercase hexadecimal string representation
|
|
101
|
+
* @internal
|
|
102
|
+
*/
|
|
33
103
|
function bytesToHex(bytes) {
|
|
34
104
|
return Array.from(bytes).map(b => b.toString(16).padStart(2, '0')).join('');
|
|
35
105
|
}
|
|
36
|
-
|
|
106
|
+
/**
|
|
107
|
+
* Converts a hexadecimal string to a byte array.
|
|
108
|
+
*
|
|
109
|
+
* @param {string} hex - The hex string to convert (must be even length)
|
|
110
|
+
* @returns {Uint8Array} The decoded bytes
|
|
111
|
+
* @internal
|
|
112
|
+
*/
|
|
37
113
|
function hexToBytes(hex) {
|
|
38
114
|
const bytes = new Uint8Array(hex.length / 2);
|
|
39
115
|
for (let i = 0; i < hex.length; i += 2) {
|
|
@@ -42,11 +118,38 @@ function hexToBytes(hex) {
|
|
|
42
118
|
return bytes;
|
|
43
119
|
}
|
|
44
120
|
/**
|
|
45
|
-
*
|
|
121
|
+
* Parses a pack index file (version 2 format).
|
|
122
|
+
*
|
|
123
|
+
* @description Parses the binary .idx file format and returns a structured
|
|
124
|
+
* representation of the pack index. The function validates:
|
|
125
|
+
* - Magic number and version
|
|
126
|
+
* - Fanout table monotonicity
|
|
127
|
+
* - Index checksum integrity
|
|
128
|
+
*
|
|
129
|
+
* **Performance:** This function parses the entire index into memory,
|
|
130
|
+
* which is suitable for most use cases. For very large indexes,
|
|
131
|
+
* consider streaming approaches.
|
|
46
132
|
*
|
|
47
|
-
* @param data - Raw bytes of the .idx file
|
|
48
|
-
* @returns
|
|
49
|
-
* @throws Error
|
|
133
|
+
* @param {Uint8Array} data - Raw bytes of the .idx file
|
|
134
|
+
* @returns {PackIndex} Fully parsed pack index structure
|
|
135
|
+
* @throws {Error} If the index data is too short
|
|
136
|
+
* @throws {Error} If the magic signature is invalid
|
|
137
|
+
* @throws {Error} If the version is not 2
|
|
138
|
+
* @throws {Error} If the fanout table is not monotonically non-decreasing
|
|
139
|
+
* @throws {Error} If the checksum verification fails
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* // Parse an index file
|
|
143
|
+
* const indexData = await fs.readFile('pack-abc123.idx');
|
|
144
|
+
* const index = parsePackIndex(indexData);
|
|
145
|
+
*
|
|
146
|
+
* console.log(`Version: ${index.version}`);
|
|
147
|
+
* console.log(`Objects: ${index.objectCount}`);
|
|
148
|
+
*
|
|
149
|
+
* // Access entries
|
|
150
|
+
* for (const entry of index.entries) {
|
|
151
|
+
* console.log(`${entry.objectId} at offset ${entry.offset}`);
|
|
152
|
+
* }
|
|
50
153
|
*/
|
|
51
154
|
export function parsePackIndex(data) {
|
|
52
155
|
// Need at least 4 bytes for signature
|
|
@@ -154,13 +257,41 @@ export function parsePackIndex(data) {
|
|
|
154
257
|
};
|
|
155
258
|
}
|
|
156
259
|
/**
|
|
157
|
-
*
|
|
260
|
+
* Creates a pack index file from packfile data or pre-computed entries.
|
|
261
|
+
*
|
|
262
|
+
* @description Generates a valid .idx file that can be used to efficiently
|
|
263
|
+
* locate objects within the corresponding packfile. Supports two calling conventions
|
|
264
|
+
* for backward compatibility.
|
|
265
|
+
*
|
|
266
|
+
* **Generated Index Structure:**
|
|
267
|
+
* - Version 2 header with magic number
|
|
268
|
+
* - Fanout table computed from entry SHA prefixes
|
|
269
|
+
* - Sorted object IDs (binary SHA-1)
|
|
270
|
+
* - CRC32 checksums from entries
|
|
271
|
+
* - Pack file offsets (4-byte or 8-byte for large files)
|
|
272
|
+
* - Pack checksum (from pack trailer)
|
|
273
|
+
* - Self-checksum (SHA-1 of entire index)
|
|
158
274
|
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
275
|
+
* @param {CreatePackIndexOptions | Uint8Array} optionsOrPackData - Either options object or packfile data (legacy)
|
|
276
|
+
* @param {PackIndexEntry[]} [legacyEntries] - Pre-computed entries when using legacy calling convention
|
|
277
|
+
* @returns {Uint8Array} Complete .idx file as binary data
|
|
162
278
|
*
|
|
163
|
-
* @
|
|
279
|
+
* @example
|
|
280
|
+
* // New style: from options
|
|
281
|
+
* const indexData = createPackIndex({ packData: myPackfile });
|
|
282
|
+
*
|
|
283
|
+
* @example
|
|
284
|
+
* // Legacy style: with pre-computed entries
|
|
285
|
+
* const entries = [
|
|
286
|
+
* { objectId: 'abc123...', crc32: 0x12345678, offset: 100 }
|
|
287
|
+
* ];
|
|
288
|
+
* const indexData = createPackIndex(packData, entries);
|
|
289
|
+
*
|
|
290
|
+
* @example
|
|
291
|
+
* // Write index to disk alongside packfile
|
|
292
|
+
* const packName = 'pack-abc123';
|
|
293
|
+
* await fs.writeFile(`${packName}.pack`, packData);
|
|
294
|
+
* await fs.writeFile(`${packName}.idx`, createPackIndex({ packData }));
|
|
164
295
|
*/
|
|
165
296
|
export function createPackIndex(optionsOrPackData, legacyEntries) {
|
|
166
297
|
// Handle legacy calling convention: createPackIndex(packData, entries)
|
|
@@ -230,13 +361,42 @@ export function createPackIndex(optionsOrPackData, legacyEntries) {
|
|
|
230
361
|
return serializePackIndex(index);
|
|
231
362
|
}
|
|
232
363
|
/**
|
|
233
|
-
*
|
|
364
|
+
* Looks up an object in the pack index by its SHA-1 hash.
|
|
365
|
+
*
|
|
366
|
+
* @description Performs an efficient O(log n) lookup using the fanout table
|
|
367
|
+
* to narrow the search range, followed by binary search within that range.
|
|
368
|
+
*
|
|
369
|
+
* **Algorithm:**
|
|
370
|
+
* 1. Use the first byte of the SHA to find the range via fanout table - O(1)
|
|
371
|
+
* 2. Binary search within the range for exact match - O(log n)
|
|
234
372
|
*
|
|
235
|
-
*
|
|
373
|
+
* **Validation:**
|
|
374
|
+
* - SHA must be exactly 40 characters
|
|
375
|
+
* - SHA must contain valid hexadecimal characters
|
|
376
|
+
* - Comparison is case-insensitive
|
|
236
377
|
*
|
|
237
|
-
* @param index - The parsed pack index
|
|
238
|
-
* @param sha - The 40-character
|
|
239
|
-
* @returns The entry if found, or null if not
|
|
378
|
+
* @param {PackIndex} index - The parsed pack index to search
|
|
379
|
+
* @param {string} sha - The 40-character hexadecimal SHA-1 to find
|
|
380
|
+
* @returns {PackIndexEntry | null} The entry if found, or null if not present
|
|
381
|
+
* @throws {Error} If SHA is not exactly 40 characters
|
|
382
|
+
* @throws {Error} If SHA contains no valid hex characters
|
|
383
|
+
*
|
|
384
|
+
* @example
|
|
385
|
+
* // Look up an object
|
|
386
|
+
* const entry = lookupObject(index, 'a94a8fe5ccb19ba61c4c0873d391e987982fbbd3');
|
|
387
|
+
* if (entry) {
|
|
388
|
+
* console.log(`Found at offset ${entry.offset}`);
|
|
389
|
+
* } else {
|
|
390
|
+
* console.log('Object not in this pack');
|
|
391
|
+
* }
|
|
392
|
+
*
|
|
393
|
+
* @example
|
|
394
|
+
* // With error handling
|
|
395
|
+
* try {
|
|
396
|
+
* const entry = lookupObject(index, userInputSha);
|
|
397
|
+
* } catch (e) {
|
|
398
|
+
* console.error('Invalid SHA format:', e.message);
|
|
399
|
+
* }
|
|
240
400
|
*/
|
|
241
401
|
export function lookupObject(index, sha) {
|
|
242
402
|
// Validate SHA format
|
|
@@ -264,17 +424,45 @@ export function lookupObject(index, sha) {
|
|
|
264
424
|
return index.entries[position];
|
|
265
425
|
}
|
|
266
426
|
/**
|
|
267
|
-
*
|
|
427
|
+
* Verifies the integrity of a pack index file.
|
|
268
428
|
*
|
|
269
|
-
*
|
|
270
|
-
* - Magic number
|
|
271
|
-
* -
|
|
272
|
-
* -
|
|
273
|
-
* -
|
|
429
|
+
* @description Performs comprehensive validation of a .idx file including:
|
|
430
|
+
* - Magic number verification (0xff744f63)
|
|
431
|
+
* - Version validation (must be 2)
|
|
432
|
+
* - Fanout table monotonicity check
|
|
433
|
+
* - Object ID sort order verification
|
|
434
|
+
* - SHA-1 checksum validation
|
|
435
|
+
*
|
|
436
|
+
* **Validation Order:**
|
|
437
|
+
* The function validates structural integrity before checking the checksum,
|
|
438
|
+
* allowing it to report more specific errors for corrupted data.
|
|
439
|
+
*
|
|
440
|
+
* @param {Uint8Array} data - Raw bytes of the .idx file
|
|
441
|
+
* @returns {boolean} True if all validation checks pass
|
|
442
|
+
* @throws {Error} If the index is too short
|
|
443
|
+
* @throws {Error} If the magic signature is invalid
|
|
444
|
+
* @throws {Error} If the version is not 2
|
|
445
|
+
* @throws {Error} If the fanout table is not monotonically non-decreasing
|
|
446
|
+
* @throws {Error} If object IDs are not in sorted order
|
|
447
|
+
* @throws {Error} If the checksum doesn't match
|
|
274
448
|
*
|
|
275
|
-
* @
|
|
276
|
-
*
|
|
277
|
-
*
|
|
449
|
+
* @example
|
|
450
|
+
* // Verify before using an index
|
|
451
|
+
* try {
|
|
452
|
+
* if (verifyPackIndex(indexData)) {
|
|
453
|
+
* const index = parsePackIndex(indexData);
|
|
454
|
+
* // Safe to use index
|
|
455
|
+
* }
|
|
456
|
+
* } catch (e) {
|
|
457
|
+
* console.error('Corrupted index:', e.message);
|
|
458
|
+
* }
|
|
459
|
+
*
|
|
460
|
+
* @example
|
|
461
|
+
* // Quick validation check
|
|
462
|
+
* const isValid = (() => {
|
|
463
|
+
* try { return verifyPackIndex(data); }
|
|
464
|
+
* catch { return false; }
|
|
465
|
+
* })();
|
|
278
466
|
*/
|
|
279
467
|
export function verifyPackIndex(data) {
|
|
280
468
|
// Check minimum size for header + fanout table + checksums
|
|
@@ -352,18 +540,36 @@ export function verifyPackIndex(data) {
|
|
|
352
540
|
return true;
|
|
353
541
|
}
|
|
354
542
|
/**
|
|
355
|
-
*
|
|
543
|
+
* Gets the range of entries that could match a given first byte.
|
|
544
|
+
*
|
|
545
|
+
* @description Uses the fanout table to find the start and end indices
|
|
546
|
+
* for objects whose SHA-1 begins with the specified byte value. This
|
|
547
|
+
* is used to narrow the search space before binary searching.
|
|
548
|
+
*
|
|
549
|
+
* The fanout table stores cumulative counts, so:
|
|
550
|
+
* - `fanout[i]` = count of all objects with first byte <= i
|
|
551
|
+
* - Range for byte `b` is [fanout[b-1], fanout[b])
|
|
552
|
+
* - For byte 0, range is [0, fanout[0])
|
|
553
|
+
*
|
|
554
|
+
* @param {Uint32Array} fanout - The 256-entry fanout table
|
|
555
|
+
* @param {number} firstByte - The first byte of the object ID (0-255)
|
|
556
|
+
* @returns {{ start: number; end: number }} Start (inclusive) and end (exclusive) indices
|
|
356
557
|
*
|
|
357
|
-
* @
|
|
358
|
-
*
|
|
359
|
-
*
|
|
558
|
+
* @example
|
|
559
|
+
* // Find range for objects starting with 0xab
|
|
560
|
+
* const { start, end } = getFanoutRange(index.fanout, 0xab);
|
|
561
|
+
* // Now binary search entries[start..end)
|
|
360
562
|
*/
|
|
361
563
|
export function getFanoutRange(fanout, firstByte) {
|
|
362
564
|
const end = fanout[firstByte];
|
|
363
565
|
const start = firstByte === 0 ? 0 : fanout[firstByte - 1];
|
|
364
566
|
return { start, end };
|
|
365
567
|
}
|
|
366
|
-
|
|
568
|
+
/**
|
|
569
|
+
* Pre-computed CRC32 lookup table using IEEE 802.3 polynomial.
|
|
570
|
+
* Uses the standard CRC-32 polynomial 0xEDB88320 (bit-reversed 0x04C11DB7).
|
|
571
|
+
* @internal
|
|
572
|
+
*/
|
|
367
573
|
const CRC32_TABLE = (() => {
|
|
368
574
|
const table = new Uint32Array(256);
|
|
369
575
|
for (let i = 0; i < 256; i++) {
|
|
@@ -376,10 +582,21 @@ const CRC32_TABLE = (() => {
|
|
|
376
582
|
return table;
|
|
377
583
|
})();
|
|
378
584
|
/**
|
|
379
|
-
*
|
|
585
|
+
* Calculates the CRC32 checksum of data.
|
|
586
|
+
*
|
|
587
|
+
* @description Computes a CRC32 checksum using the IEEE 802.3 polynomial,
|
|
588
|
+
* which is the same algorithm used by Git for pack index verification.
|
|
589
|
+
* This checksum is stored in the pack index to verify object integrity
|
|
590
|
+
* without full decompression.
|
|
380
591
|
*
|
|
381
|
-
* @param data - The compressed object data
|
|
382
|
-
* @returns CRC32 checksum
|
|
592
|
+
* @param {Uint8Array} data - The data to checksum (typically compressed object data)
|
|
593
|
+
* @returns {number} 32-bit unsigned CRC32 checksum
|
|
594
|
+
*
|
|
595
|
+
* @example
|
|
596
|
+
* // Calculate CRC32 of compressed data
|
|
597
|
+
* const compressed = pako.deflate(objectData);
|
|
598
|
+
* const crc = calculateCRC32(compressed);
|
|
599
|
+
* // Store crc in pack index entry
|
|
383
600
|
*/
|
|
384
601
|
export function calculateCRC32(data) {
|
|
385
602
|
let crc = 0xffffffff;
|
|
@@ -389,13 +606,27 @@ export function calculateCRC32(data) {
|
|
|
389
606
|
return (crc ^ 0xffffffff) >>> 0;
|
|
390
607
|
}
|
|
391
608
|
/**
|
|
392
|
-
*
|
|
609
|
+
* Performs binary search for an object ID within a range of entries.
|
|
610
|
+
*
|
|
611
|
+
* @description Searches for an exact match of the object ID within the
|
|
612
|
+
* specified range of the sorted entries array. Uses string comparison
|
|
613
|
+
* which works correctly for hexadecimal SHA-1 hashes.
|
|
393
614
|
*
|
|
394
|
-
*
|
|
395
|
-
*
|
|
396
|
-
* @param
|
|
397
|
-
* @param
|
|
398
|
-
* @
|
|
615
|
+
* **Time Complexity:** O(log n) where n = end - start
|
|
616
|
+
*
|
|
617
|
+
* @param {PackIndexEntry[]} entries - Sorted array of pack index entries
|
|
618
|
+
* @param {string} objectId - 40-character hex object ID (SHA) to search for
|
|
619
|
+
* @param {number} start - Start index (inclusive)
|
|
620
|
+
* @param {number} end - End index (exclusive)
|
|
621
|
+
* @returns {number} Index of the entry if found, or -1 if not found
|
|
622
|
+
*
|
|
623
|
+
* @example
|
|
624
|
+
* // Search within a specific range (from fanout lookup)
|
|
625
|
+
* const { start, end } = getFanoutRange(index.fanout, 0xab);
|
|
626
|
+
* const position = binarySearchObjectId(index.entries, targetSha, start, end);
|
|
627
|
+
* if (position !== -1) {
|
|
628
|
+
* const entry = index.entries[position];
|
|
629
|
+
* }
|
|
399
630
|
*/
|
|
400
631
|
export function binarySearchObjectId(entries, objectId, start, end) {
|
|
401
632
|
let lo = start;
|
|
@@ -415,13 +646,36 @@ export function binarySearchObjectId(entries, objectId, start, end) {
|
|
|
415
646
|
}
|
|
416
647
|
return -1;
|
|
417
648
|
}
|
|
418
|
-
|
|
649
|
+
/**
|
|
650
|
+
* Alias for {@link binarySearchObjectId} for backward compatibility.
|
|
651
|
+
* @deprecated Use binarySearchObjectId instead
|
|
652
|
+
*/
|
|
419
653
|
export const binarySearchSha = binarySearchObjectId;
|
|
420
654
|
/**
|
|
421
|
-
*
|
|
655
|
+
* Serializes a PackIndex structure to binary .idx format.
|
|
422
656
|
*
|
|
423
|
-
* @
|
|
424
|
-
*
|
|
657
|
+
* @description Converts a structured PackIndex object into the binary format
|
|
658
|
+
* used by Git for .idx files. This is the inverse of {@link parsePackIndex}.
|
|
659
|
+
*
|
|
660
|
+
* **Output Structure:**
|
|
661
|
+
* 1. Magic number (4 bytes)
|
|
662
|
+
* 2. Version (4 bytes)
|
|
663
|
+
* 3. Fanout table (1024 bytes)
|
|
664
|
+
* 4. Object IDs sorted (N * 20 bytes)
|
|
665
|
+
* 5. CRC32 values (N * 4 bytes)
|
|
666
|
+
* 6. 4-byte offsets (N * 4 bytes)
|
|
667
|
+
* 7. 8-byte large offsets if needed
|
|
668
|
+
* 8. Pack checksum (20 bytes)
|
|
669
|
+
* 9. Index checksum (20 bytes) - computed during serialization
|
|
670
|
+
*
|
|
671
|
+
* @param {PackIndex} index - The pack index to serialize
|
|
672
|
+
* @returns {Uint8Array} Complete .idx file as binary data
|
|
673
|
+
*
|
|
674
|
+
* @example
|
|
675
|
+
* // Serialize an index after modifications
|
|
676
|
+
* const index = parsePackIndex(originalData);
|
|
677
|
+
* // ... modify index ...
|
|
678
|
+
* const newData = serializePackIndex(index);
|
|
425
679
|
*/
|
|
426
680
|
export function serializePackIndex(index) {
|
|
427
681
|
const { fanout, entries, packChecksum } = index;
|
|
@@ -504,10 +758,26 @@ export function serializePackIndex(index) {
|
|
|
504
758
|
return data;
|
|
505
759
|
}
|
|
506
760
|
/**
|
|
507
|
-
*
|
|
761
|
+
* Parses the 256-entry fanout table from pack index data.
|
|
762
|
+
*
|
|
763
|
+
* @description The fanout table is a core data structure that enables O(1)
|
|
764
|
+
* range lookup for binary search. Each entry stores the cumulative count
|
|
765
|
+
* of objects whose first SHA byte is <= the entry index.
|
|
508
766
|
*
|
|
509
|
-
*
|
|
510
|
-
*
|
|
767
|
+
* **Table Properties:**
|
|
768
|
+
* - 256 entries (one per possible first byte value)
|
|
769
|
+
* - Each entry is 4 bytes, big-endian
|
|
770
|
+
* - Values must be monotonically non-decreasing
|
|
771
|
+
* - fanout[255] = total object count
|
|
772
|
+
*
|
|
773
|
+
* @param {Uint8Array} data - Raw bytes starting at the fanout table (1024 bytes minimum)
|
|
774
|
+
* @returns {Uint32Array} 256-entry fanout table
|
|
775
|
+
*
|
|
776
|
+
* @example
|
|
777
|
+
* // Parse fanout from index data
|
|
778
|
+
* const fanoutData = indexData.subarray(8, 8 + 256 * 4);
|
|
779
|
+
* const fanout = parseFanoutTable(fanoutData);
|
|
780
|
+
* const totalObjects = fanout[255];
|
|
511
781
|
*/
|
|
512
782
|
export function parseFanoutTable(data) {
|
|
513
783
|
const fanout = new Uint32Array(256);
|
|
@@ -518,13 +788,24 @@ export function parseFanoutTable(data) {
|
|
|
518
788
|
return fanout;
|
|
519
789
|
}
|
|
520
790
|
/**
|
|
521
|
-
*
|
|
791
|
+
* Reads a pack file offset from the index, handling both small and large offsets.
|
|
792
|
+
*
|
|
793
|
+
* @description Pack index offsets use a special encoding to support files > 2GB:
|
|
794
|
+
* - If MSB is clear: the 4-byte value is the direct offset
|
|
795
|
+
* - If MSB is set: the lower 31 bits are an index into the large offset table
|
|
796
|
+
*
|
|
797
|
+
* The large offset table stores 8-byte offsets for objects beyond the 2GB boundary.
|
|
522
798
|
*
|
|
523
|
-
*
|
|
799
|
+
* @param {Uint8Array} data - 4 bytes containing the offset or large offset index
|
|
800
|
+
* @param {Uint8Array} [largeOffsets] - The 8-byte large offset table (required for offsets > 2GB)
|
|
801
|
+
* @returns {number} The actual byte offset in the packfile
|
|
802
|
+
* @throws {Error} If a large offset is indicated but largeOffsets is not provided
|
|
803
|
+
* @throws {Error} If the large offset index is out of bounds
|
|
524
804
|
*
|
|
525
|
-
* @
|
|
526
|
-
*
|
|
527
|
-
*
|
|
805
|
+
* @example
|
|
806
|
+
* // Read offset for an entry
|
|
807
|
+
* const offsetData = indexData.subarray(offsetsStart + i * 4, offsetsStart + (i + 1) * 4);
|
|
808
|
+
* const offset = readPackOffset(offsetData, largeOffsetsTable);
|
|
528
809
|
*/
|
|
529
810
|
export function readPackOffset(data, largeOffsets) {
|
|
530
811
|
const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
|
package/dist/pack/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pack/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAEhD,2DAA2D;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;AAC5E,6DAA6D;AAC7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAA;AAC1C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAEnC,oCAAoC;AACpC,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAA;AAgBhD;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAqB;IAC7C,OAAO,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,CAAA;AAC1C,CAAC;AAwDD,wCAAwC;AACxC,SAAS,UAAU,CAAC,KAAiB;IACnC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC7E,CAAC;AAED,wCAAwC;AACxC,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAClD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAgB;IAC7C,sCAAsC;IACtC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;IAExE,4BAA4B;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACtC,IAAI,KAAK,KAAK,gBAAgB,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACjD,CAAC;IAED,gDAAgD;IAChD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACrD,CAAC;IAED,iBAAiB;IACjB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACxC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mCAAmC,OAAO,EAAE,CAAC,CAAA;IAC/D,CAAC;IAED,2DAA2D;IAC3D,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAA,CAAC,mDAAmD;IACpF,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACzC,CAAC;IAED,gDAAgD;IAChD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IACtD,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IACtD,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,CAAA;IAE1C,IAAI,aAAa,GAAG,IAAI,CAAA;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,aAAa,GAAG,KAAK,CAAA;YACrB,MAAK;QACP,CAAC;IACH,CAAC;IACD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;IACxE,CAAC;IAED,qBAAqB;IACrB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;IAE3C,gDAAgD;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAA;QACtF,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IAE/B,0BAA0B;IAC1B,MAAM,aAAa,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAA;IACjC,MAAM,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,EAAE,CAAA;IAClD,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,CAAC,CAAA;IACjD,MAAM,kBAAkB,GAAG,aAAa,GAAG,WAAW,GAAG,CAAC,CAAA;IAC1D,gCAAgC;IAChC,qDAAqD;IACrD,iDAAiD;IACjD,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA,CAAC,qDAAqD;IAC7E,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA,CAAC,sDAAsD;IAE9E,gCAAgC;IAChC,MAAM,eAAe,GAAG,kBAAkB,GAAG,EAAE,CAAA;IAC/C,IAAI,IAAI,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;IACxE,CAAC;IAED,uDAAuD;IACvD,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QAChE,IAAI,WAAW,GAAG,UAAU,EAAE,CAAC;YAC7B,gBAAgB,EAAE,CAAA;QACpB,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,MAAM,YAAY,GAAG,gBAAgB,GAAG,CAAC;QACvC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,gBAAgB,GAAG,CAAC,CAAC;QAC9E,CAAC,CAAC,SAAS,CAAA;IAEb,2DAA2D;IAC3D,MAAM,wBAAwB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,CAAC,CAAA;IAC1E,MAAM,yBAAyB,GAAG,wBAAwB,GAAG,EAAE,CAAA;IAE/D,gBAAgB;IAChB,MAAM,OAAO,GAAqB,EAAE,CAAA;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,aAAa;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,CAAC,GAAG,EAAE,EAAE,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;QACpF,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;QAErC,aAAa;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QAEtD,cAAc;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,CAAC,GAAG,CAAC,EAAE,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACpF,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;QAEvD,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,oBAAoB;IACpB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE,wBAAwB,GAAG,EAAE,CAAC,CAAA;IAC3F,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,yBAAyB,EAAE,yBAAyB,GAAG,EAAE,CAAC,CAAA;IAE9F,OAAO;QACL,OAAO;QACP,WAAW;QACX,MAAM;QACN,OAAO;QACP,YAAY,EAAE,IAAI,UAAU,CAAC,YAAY,CAAC;QAC1C,aAAa,EAAE,IAAI,UAAU,CAAC,aAAa,CAAC;KAC7C,CAAA;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,iBAAsD,EACtD,aAAgC;IAEhC,uEAAuE;IACvE,IAAI,QAAoB,CAAA;IACxB,IAAI,eAA6C,CAAA;IAEjD,IAAI,iBAAiB,YAAY,UAAU,EAAE,CAAC;QAC5C,kDAAkD;QAClD,QAAQ,GAAG,iBAAiB,CAAA;QAC5B,eAAe,GAAG,aAAa,CAAA;IACjC,CAAC;SAAM,CAAC;QACN,qCAAqC;QACrC,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAA;QACrC,eAAe,GAAG,SAAS,CAAA;IAC7B,CAAC;IAED,8CAA8C;IAC9C,IAAI,OAAyB,CAAA;IAC7B,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,GAAG,eAAe,CAAA;IAC3B,CAAC;SAAM,CAAC;QACN,4EAA4E;QAC5E,MAAM,UAAU,GAAI,QAAgB,EAAE,YAIxB,CAAA;QAEd,kDAAkD;QAClD,OAAO,GAAG,EAAE,CAAA;QACZ,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE;oBAC9B,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC;iBAC1C,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,MAAM,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC/C,gBAAgB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CACvD,CAAA;IAED,qBAAqB;IACrB,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAA;IACnC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,QAAQ,GAAG,CAAC,CAAA;IAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,OAAO,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACrF,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;gBACnB,KAAK,EAAE,CAAA;gBACP,QAAQ,EAAE,CAAA;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAK;YACP,CAAC;QACH,CAAC;QACD,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;IACnB,CAAC;IAED,yEAAyE;IACzE,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,EAAE;QACxC,CAAC,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QACzD,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;IAEtB,MAAM,KAAK,GAAc;QACvB,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,aAAa,CAAC,MAAM;QACjC,MAAM;QACN,OAAO,EAAE,aAAa;QACtB,YAAY;QACZ,aAAa,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,yCAAyC;KAC5E,CAAA;IAED,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAA;AAClC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,KAAgB,EAAE,GAAW;IACxD,sBAAsB;IACtB,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;IACvE,CAAC;IACD,sDAAsD;IACtD,uEAAuE;IACvE,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAClE,CAAC;IAED,wCAAwC;IACxC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAEvB,0CAA0C;IAC1C,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC/C,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAE9D,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,iCAAiC;IACjC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAErE,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAChC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAAC,IAAgB;IAC9C,2DAA2D;IAC3D,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAA;IAChC,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;IAExE,sBAAsB;IACtB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACtC,IAAI,KAAK,KAAK,gBAAgB,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACvD,CAAC;IAED,iBAAiB;IACjB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACxC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mCAAmC,OAAO,EAAE,CAAC,CAAA;IAC/D,CAAC;IAED,6CAA6C;IAC7C,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAA;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QAC5C,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAA;QAC3G,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IAE/B,+BAA+B;IAC/B,MAAM,aAAa,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAA;IACjC,MAAM,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,EAAE,CAAA;IAClD,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,CAAC,CAAA;IAEjD,sBAAsB;IACtB,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QAChE,IAAI,WAAW,GAAG,UAAU,EAAE,CAAC;YAC7B,gBAAgB,EAAE,CAAA;QACpB,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,CAAC,CAAA;IAC7C,MAAM,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,CAAC,GAAG,gBAAgB,CAAA;IAEzE,yDAAyD;IACzD,MAAM,YAAY,GAAG,cAAc,GAAG,EAAE,CAAA;IACxC,IAAI,IAAI,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,wDAAwD;IACxD,4DAA4D;IAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,aAAa,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;QAChF,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,CAAC,GAAG,EAAE,EAAE,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;QAEhF,sBAAsB;QACtB,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtB,GAAG,GAAG,CAAC,CAAC,CAAA;gBACR,MAAK;YACP,CAAC;iBAAM,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7B,GAAG,GAAG,CAAC,CAAA;gBACP,MAAK;YACP,CAAC;QACH,CAAC;QAED,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,cAAc,GAAG,EAAE,CAAC,CAAA;IACxD,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,EAAE,EAAE,cAAc,GAAG,EAAE,CAAC,CAAA;IAE9E,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACjD,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,MAAmB,EAAE,SAAiB;IACnE,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;IAC7B,MAAM,KAAK,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;IACzD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;AACvB,CAAC;AAED,wDAAwD;AACxD,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE;IACxB,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAA;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;QACpD,CAAC;QACD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAC,EAAE,CAAA;AAEJ;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAgB;IAC7C,IAAI,GAAG,GAAG,UAAU,CAAA;IAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,GAAG,GAAG,WAAW,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;AACjC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAyB,EACzB,QAAgB,EAChB,KAAa,EACb,GAAW;IAEX,IAAI,EAAE,GAAG,KAAK,CAAA;IACd,IAAI,EAAE,GAAG,GAAG,CAAA;IAEZ,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;QAC3B,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAElE,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,EAAE,GAAG,GAAG,GAAG,CAAC,CAAA;QACd,CAAC;aAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACnB,EAAE,GAAG,GAAG,CAAA;QACV,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,CAAA;QACZ,CAAC;IACH,CAAC;IAED,OAAO,CAAC,CAAC,CAAA;AACX,CAAC;AAED,oCAAoC;AACpC,MAAM,CAAC,MAAM,eAAe,GAAG,oBAAoB,CAAA;AAEnD;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAgB;IACjD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,KAAK,CAAA;IAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAA;IAElC,kDAAkD;IAClD,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,MAAM,IAAI,sBAAsB,EAAE,CAAC;YAC3C,gBAAgB,EAAE,CAAA;QACpB,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,oCAAoC;IACpC,+BAA+B;IAC/B,mCAAmC;IACnC,oCAAoC;IACpC,qCAAqC;IACrC,4CAA4C;IAC5C,0BAA0B;IAC1B,2BAA2B;IAC3B,MAAM,SAAS,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,WAAW,GAAG,EAAE,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,gBAAgB,GAAG,CAAC,GAAG,EAAE,CAAA;IAEhH,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAA;IACtC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEtC,IAAI,MAAM,GAAG,CAAC,CAAA;IAEd,kCAAkC;IAClC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAA;IAC/C,MAAM,IAAI,CAAC,CAAA;IAEX,6BAA6B;IAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAA;IACjD,MAAM,IAAI,CAAC,CAAA;IAEX,kCAAkC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACxC,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IAED,kCAAkC;IAClC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAA;QACpD,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC1B,MAAM,IAAI,EAAE,CAAA;IACd,CAAC;IAED,kCAAkC;IAClC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC1C,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IAED,oCAAoC;IACpC,mEAAmE;IACnE,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,MAAM,iBAAiB,GAAa,EAAE,CAAA;IAEtC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,MAAM,IAAI,sBAAsB,EAAE,CAAC;YAC3C,wDAAwD;YACxD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,gBAAgB,EAAE,KAAK,CAAC,CAAA;YAC5D,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACpC,gBAAgB,EAAE,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,sCAAsC;YACtC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAC7C,CAAC;QACD,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IAED,0CAA0C;IAC1C,KAAK,MAAM,WAAW,IAAI,iBAAiB,EAAE,CAAC;QAC5C,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC,CAAA;QACtD,MAAM,OAAO,GAAG,WAAW,GAAG,WAAW,CAAA;QACzC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;QAC1C,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IAED,sBAAsB;IACtB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IAC9B,MAAM,IAAI,EAAE,CAAA;IAEZ,mEAAmE;IACnE,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,CAAA;IACtC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IAE/B,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAgB;IAC/C,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAA;IACnC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;IAExE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA,CAAC,aAAa;IACxD,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,IAAgB,EAAE,YAAyB;IACxE,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;IACxE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA,CAAC,aAAa;IAEpD,+CAA+C;IAC/C,IAAI,KAAK,GAAG,UAAU,EAAE,CAAC;QACvB,0DAA0D;QAC1D,MAAM,KAAK,GAAG,KAAK,GAAG,UAAU,CAAA;QAEhC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;QAC5D,CAAC;QAED,+BAA+B;QAC/B,MAAM,oBAAoB,GAAG,KAAK,GAAG,CAAC,CAAA;QACtC,IAAI,oBAAoB,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,gBAAgB,CAAC,CAAA;QAC9D,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;QACrG,uDAAuD;QACvD,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAA;QACjE,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,oBAAoB,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QACpE,OAAO,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAA;IACzC,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pack/index.ts"],"names":[],"mappings":"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"}
|