gitx.do 0.0.1 → 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 +10 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/wire/capabilities.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/wire/capabilities.ts"],"names":[],"mappings":"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"}
|
package/dist/wire/pkt-line.d.ts
CHANGED
|
@@ -1,66 +1,344 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Git pkt-line
|
|
2
|
+
* @fileoverview Git pkt-line Protocol Implementation
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* This module implements the pkt-line format used in Git's wire protocol for
|
|
5
|
+
* client-server communication. The pkt-line format provides a simple framing
|
|
6
|
+
* mechanism for variable-length data.
|
|
6
7
|
*
|
|
7
|
-
*
|
|
8
|
-
* - flush-pkt (0000): Indicates end of a message section
|
|
9
|
-
* - delim-pkt (0001): Delimiter used in protocol v2
|
|
8
|
+
* @module wire/pkt-line
|
|
10
9
|
*
|
|
11
|
-
*
|
|
10
|
+
* ## Format Overview
|
|
11
|
+
*
|
|
12
|
+
* Each packet consists of a 4-byte hex length prefix followed by the data:
|
|
13
|
+
* - Length includes the 4-byte prefix itself
|
|
14
|
+
* - Maximum packet size is 65520 bytes (65516 data + 4 prefix)
|
|
15
|
+
*
|
|
16
|
+
* ## Special Packets
|
|
17
|
+
*
|
|
18
|
+
* - **flush-pkt** (`0000`): Indicates end of a message section
|
|
19
|
+
* - **delim-pkt** (`0001`): Delimiter used in protocol v2
|
|
20
|
+
*
|
|
21
|
+
* @see {@link https://git-scm.com/docs/protocol-common#_pkt_line_format} Git pkt-line Format
|
|
22
|
+
*
|
|
23
|
+
* @example Basic encoding and decoding
|
|
24
|
+
* ```typescript
|
|
25
|
+
* import { encodePktLine, decodePktLine, FLUSH_PKT } from './wire/pkt-line'
|
|
26
|
+
*
|
|
27
|
+
* // Encode a message
|
|
28
|
+
* const encoded = encodePktLine('hello\n')
|
|
29
|
+
* // Result: '000ahello\n'
|
|
30
|
+
*
|
|
31
|
+
* // Decode a message
|
|
32
|
+
* const decoded = decodePktLine('000ahello\n')
|
|
33
|
+
* // Result: { data: 'hello\n', bytesRead: 10 }
|
|
34
|
+
*
|
|
35
|
+
* // Use flush packet to end a section
|
|
36
|
+
* const message = encodePktLine('line1\n') + encodePktLine('line2\n') + FLUSH_PKT
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* @example Streaming multiple packets
|
|
40
|
+
* ```typescript
|
|
41
|
+
* import { pktLineStream } from './wire/pkt-line'
|
|
42
|
+
*
|
|
43
|
+
* const stream = '0009line1\n0009line2\n0000'
|
|
44
|
+
* const { packets, remaining } = pktLineStream(stream)
|
|
45
|
+
*
|
|
46
|
+
* for (const packet of packets) {
|
|
47
|
+
* if (packet.type === 'flush') {
|
|
48
|
+
* console.log('End of section')
|
|
49
|
+
* } else {
|
|
50
|
+
* console.log('Data:', packet.data)
|
|
51
|
+
* }
|
|
52
|
+
* }
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
/**
|
|
56
|
+
* Flush packet - indicates end of a message section.
|
|
57
|
+
*
|
|
58
|
+
* @description
|
|
59
|
+
* The flush packet is a special 4-byte sequence `0000` that signals
|
|
60
|
+
* the end of a logical section in the protocol. It's used to:
|
|
61
|
+
* - End ref advertisements
|
|
62
|
+
* - Separate negotiation phases
|
|
63
|
+
* - Signal end of packfile transmission
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```typescript
|
|
67
|
+
* // Build a complete ref advertisement
|
|
68
|
+
* let response = encodePktLine('# service=git-upload-pack\n')
|
|
69
|
+
* response += FLUSH_PKT // End service announcement
|
|
70
|
+
* response += encodePktLine('abc123 refs/heads/main\n')
|
|
71
|
+
* response += FLUSH_PKT // End ref list
|
|
72
|
+
* ```
|
|
12
73
|
*/
|
|
13
|
-
/** Flush packet - indicates end of section */
|
|
14
74
|
export declare const FLUSH_PKT = "0000";
|
|
15
|
-
/**
|
|
75
|
+
/**
|
|
76
|
+
* Delimiter packet - used in protocol v2.
|
|
77
|
+
*
|
|
78
|
+
* @description
|
|
79
|
+
* The delimiter packet `0001` is used in Git protocol v2 to separate
|
|
80
|
+
* sections within a single message, such as between command parameters
|
|
81
|
+
* and command arguments.
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* // Protocol v2 command format
|
|
86
|
+
* let request = encodePktLine('command=fetch')
|
|
87
|
+
* request += encodePktLine('agent=git/2.30.0')
|
|
88
|
+
* request += DELIM_PKT // Separate metadata from arguments
|
|
89
|
+
* request += encodePktLine('want abc123...')
|
|
90
|
+
* request += FLUSH_PKT // End of request
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
16
93
|
export declare const DELIM_PKT = "0001";
|
|
17
|
-
/**
|
|
94
|
+
/**
|
|
95
|
+
* Maximum pkt-line data size in bytes.
|
|
96
|
+
*
|
|
97
|
+
* @description
|
|
98
|
+
* The maximum data that can be included in a single pkt-line is 65516 bytes.
|
|
99
|
+
* This is calculated as: 65520 (max packet) - 4 (length prefix) = 65516.
|
|
100
|
+
*
|
|
101
|
+
* Attempting to encode data larger than this will result in an error
|
|
102
|
+
* or require splitting into multiple packets.
|
|
103
|
+
*/
|
|
18
104
|
export declare const MAX_PKT_LINE_DATA = 65516;
|
|
105
|
+
/**
|
|
106
|
+
* Input type for pkt-line encoding/decoding functions.
|
|
107
|
+
*
|
|
108
|
+
* @description
|
|
109
|
+
* Pkt-line functions accept both string and binary data:
|
|
110
|
+
* - `string`: Used for text-based protocol messages
|
|
111
|
+
* - `Uint8Array`: Used for binary data like packfiles
|
|
112
|
+
*/
|
|
19
113
|
type PktLineInput = string | Uint8Array;
|
|
114
|
+
/**
|
|
115
|
+
* Result of decoding a single pkt-line.
|
|
116
|
+
*
|
|
117
|
+
* @description
|
|
118
|
+
* Contains the decoded data and metadata about the packet:
|
|
119
|
+
* - For data packets: `data` contains the payload, `bytesRead` is the packet size
|
|
120
|
+
* - For flush packets: `data` is null, `type` is 'flush', `bytesRead` is 4
|
|
121
|
+
* - For delimiter packets: `data` is null, `type` is 'delim', `bytesRead` is 4
|
|
122
|
+
* - For incomplete data: `data` is null, `type` is 'incomplete', `bytesRead` is 0
|
|
123
|
+
*/
|
|
20
124
|
interface DecodedPktLine {
|
|
125
|
+
/** The decoded data payload, or null for special/incomplete packets */
|
|
21
126
|
data: string | null;
|
|
127
|
+
/** Packet type for special packets: 'flush', 'delim', or 'incomplete' */
|
|
22
128
|
type?: 'flush' | 'delim' | 'incomplete';
|
|
129
|
+
/** Number of bytes consumed from the input */
|
|
23
130
|
bytesRead: number;
|
|
24
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* A single packet in a pkt-line stream.
|
|
134
|
+
*
|
|
135
|
+
* @description
|
|
136
|
+
* Represents one packet parsed from a stream:
|
|
137
|
+
* - `data`: Packets with payload have `type: 'data'` and non-null `data`
|
|
138
|
+
* - `flush`: Special packet with `type: 'flush'` and null `data`
|
|
139
|
+
* - `delim`: Special packet with `type: 'delim'` and null `data`
|
|
140
|
+
*/
|
|
25
141
|
interface StreamPacket {
|
|
142
|
+
/** The packet data, or null for special packets */
|
|
26
143
|
data: string | null;
|
|
144
|
+
/** The packet type */
|
|
27
145
|
type: 'data' | 'flush' | 'delim';
|
|
28
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Result of parsing a pkt-line stream.
|
|
149
|
+
*
|
|
150
|
+
* @description
|
|
151
|
+
* Contains all successfully parsed packets and any remaining unparsed data.
|
|
152
|
+
* The `remaining` field is useful for streaming scenarios where data arrives
|
|
153
|
+
* in chunks and a packet might be split across chunks.
|
|
154
|
+
*/
|
|
29
155
|
interface PktLineStreamResult {
|
|
156
|
+
/** Array of parsed packets */
|
|
30
157
|
packets: StreamPacket[];
|
|
158
|
+
/** Any remaining unparsed data (incomplete packet) */
|
|
31
159
|
remaining: string;
|
|
32
160
|
}
|
|
33
161
|
/**
|
|
34
162
|
* Encode data into pkt-line format.
|
|
35
163
|
*
|
|
36
|
-
*
|
|
164
|
+
* @description
|
|
165
|
+
* Encodes the given data with a 4-character hex length prefix. The length
|
|
166
|
+
* includes the 4-byte prefix itself, so a 6-byte payload results in a
|
|
167
|
+
* 10-byte packet with prefix "000a".
|
|
168
|
+
*
|
|
169
|
+
* For binary data containing non-printable characters, returns a Uint8Array.
|
|
170
|
+
* For text data, returns a string for easier concatenation.
|
|
37
171
|
*
|
|
38
172
|
* @param data - The data to encode (string or Uint8Array)
|
|
39
|
-
* @returns Encoded pkt-line as string (for text) or Uint8Array (for binary
|
|
173
|
+
* @returns Encoded pkt-line as string (for text) or Uint8Array (for binary)
|
|
174
|
+
*
|
|
175
|
+
* @throws {Error} If data exceeds MAX_PKT_LINE_DATA bytes
|
|
176
|
+
*
|
|
177
|
+
* @example Encoding text data
|
|
178
|
+
* ```typescript
|
|
179
|
+
* const line = encodePktLine('hello\n')
|
|
180
|
+
* // Result: '000ahello\n'
|
|
181
|
+
* // Length: 4 (prefix) + 6 (data) = 10 = 0x000a
|
|
182
|
+
* ```
|
|
183
|
+
*
|
|
184
|
+
* @example Encoding binary data
|
|
185
|
+
* ```typescript
|
|
186
|
+
* const binaryData = new Uint8Array([0x01, 0x02, 0x03])
|
|
187
|
+
* const encoded = encodePktLine(binaryData)
|
|
188
|
+
* // Result: Uint8Array with hex prefix + data
|
|
189
|
+
* ```
|
|
190
|
+
*
|
|
191
|
+
* @example Building a multi-line message
|
|
192
|
+
* ```typescript
|
|
193
|
+
* let message = ''
|
|
194
|
+
* message += encodePktLine('want abc123...\n') as string
|
|
195
|
+
* message += encodePktLine('have def456...\n') as string
|
|
196
|
+
* message += FLUSH_PKT
|
|
197
|
+
* ```
|
|
40
198
|
*/
|
|
41
199
|
export declare function encodePktLine(data: PktLineInput): string | Uint8Array;
|
|
42
200
|
/**
|
|
43
201
|
* Decode a pkt-line format message.
|
|
44
202
|
*
|
|
203
|
+
* @description
|
|
204
|
+
* Parses a single pkt-line from the input and returns the decoded data
|
|
205
|
+
* along with metadata about the packet. Handles special packets (flush,
|
|
206
|
+
* delim) and incomplete data gracefully.
|
|
207
|
+
*
|
|
208
|
+
* The function validates packet size to prevent denial-of-service attacks
|
|
209
|
+
* from maliciously large length values.
|
|
210
|
+
*
|
|
45
211
|
* @param input - The input to decode (string or Uint8Array)
|
|
46
212
|
* @returns Object with decoded data, packet type (if special), and bytes consumed
|
|
213
|
+
*
|
|
214
|
+
* @throws {Error} If packet size exceeds MAX_PKT_LINE_DATA + 4
|
|
215
|
+
*
|
|
216
|
+
* @example Decoding a data packet
|
|
217
|
+
* ```typescript
|
|
218
|
+
* const result = decodePktLine('000ahello\n')
|
|
219
|
+
* // result.data === 'hello\n'
|
|
220
|
+
* // result.bytesRead === 10
|
|
221
|
+
* // result.type === undefined (data packet)
|
|
222
|
+
* ```
|
|
223
|
+
*
|
|
224
|
+
* @example Decoding a flush packet
|
|
225
|
+
* ```typescript
|
|
226
|
+
* const result = decodePktLine('0000remaining...')
|
|
227
|
+
* // result.data === null
|
|
228
|
+
* // result.type === 'flush'
|
|
229
|
+
* // result.bytesRead === 4
|
|
230
|
+
* ```
|
|
231
|
+
*
|
|
232
|
+
* @example Handling incomplete data
|
|
233
|
+
* ```typescript
|
|
234
|
+
* const result = decodePktLine('00') // Not enough for length prefix
|
|
235
|
+
* // result.data === null
|
|
236
|
+
* // result.type === 'incomplete'
|
|
237
|
+
* // result.bytesRead === 0
|
|
238
|
+
* ```
|
|
47
239
|
*/
|
|
48
240
|
export declare function decodePktLine(input: PktLineInput): DecodedPktLine;
|
|
49
241
|
/**
|
|
50
242
|
* Create a flush-pkt (0000).
|
|
51
|
-
*
|
|
243
|
+
*
|
|
244
|
+
* @description
|
|
245
|
+
* Returns the flush packet constant. Primarily useful for explicit intent
|
|
246
|
+
* in code, as you can also use FLUSH_PKT directly.
|
|
247
|
+
*
|
|
248
|
+
* The flush packet signals the end of a logical section in the protocol.
|
|
249
|
+
*
|
|
250
|
+
* @returns The flush packet string '0000'
|
|
251
|
+
*
|
|
252
|
+
* @example
|
|
253
|
+
* ```typescript
|
|
254
|
+
* // These are equivalent:
|
|
255
|
+
* const flush1 = encodeFlushPkt()
|
|
256
|
+
* const flush2 = FLUSH_PKT
|
|
257
|
+
*
|
|
258
|
+
* // Using in a message
|
|
259
|
+
* const message = encodePktLine('data\n') + encodeFlushPkt()
|
|
260
|
+
* ```
|
|
52
261
|
*/
|
|
53
262
|
export declare function encodeFlushPkt(): string;
|
|
54
263
|
/**
|
|
55
264
|
* Create a delim-pkt (0001).
|
|
56
|
-
*
|
|
265
|
+
*
|
|
266
|
+
* @description
|
|
267
|
+
* Returns the delimiter packet constant. The delimiter packet is used
|
|
268
|
+
* in Git protocol v2 to separate sections within a command.
|
|
269
|
+
*
|
|
270
|
+
* @returns The delimiter packet string '0001'
|
|
271
|
+
*
|
|
272
|
+
* @example
|
|
273
|
+
* ```typescript
|
|
274
|
+
* // Protocol v2 ls-refs command
|
|
275
|
+
* let request = encodePktLine('command=ls-refs')
|
|
276
|
+
* request += encodeDelimPkt() // Separator
|
|
277
|
+
* request += encodePktLine('ref-prefix refs/heads/')
|
|
278
|
+
* request += encodeFlushPkt() // End
|
|
279
|
+
* ```
|
|
57
280
|
*/
|
|
58
281
|
export declare function encodeDelimPkt(): string;
|
|
59
282
|
/**
|
|
60
283
|
* Parse a stream of pkt-lines.
|
|
61
284
|
*
|
|
62
|
-
* @
|
|
285
|
+
* @description
|
|
286
|
+
* Parses multiple pkt-lines from an input stream, returning all complete
|
|
287
|
+
* packets and any remaining unparsed data. This is useful for:
|
|
288
|
+
* - Processing multi-packet messages
|
|
289
|
+
* - Handling streaming data that arrives in chunks
|
|
290
|
+
* - Parsing complete protocol exchanges
|
|
291
|
+
*
|
|
292
|
+
* The function continues parsing until it encounters incomplete data
|
|
293
|
+
* or reaches the end of input.
|
|
294
|
+
*
|
|
295
|
+
* @param input - The input stream to parse (string or Uint8Array)
|
|
63
296
|
* @returns Object with parsed packets and any remaining unparsed data
|
|
297
|
+
*
|
|
298
|
+
* @example Parsing a complete message
|
|
299
|
+
* ```typescript
|
|
300
|
+
* const stream = '0009line1\n0009line2\n0000'
|
|
301
|
+
* const { packets, remaining } = pktLineStream(stream)
|
|
302
|
+
*
|
|
303
|
+
* // packets = [
|
|
304
|
+
* // { data: 'line1\n', type: 'data' },
|
|
305
|
+
* // { data: 'line2\n', type: 'data' },
|
|
306
|
+
* // { data: null, type: 'flush' }
|
|
307
|
+
* // ]
|
|
308
|
+
* // remaining = ''
|
|
309
|
+
* ```
|
|
310
|
+
*
|
|
311
|
+
* @example Handling chunked data
|
|
312
|
+
* ```typescript
|
|
313
|
+
* // First chunk arrives
|
|
314
|
+
* let buffer = '0009line1\n00' // Incomplete second packet
|
|
315
|
+
* let result = pktLineStream(buffer)
|
|
316
|
+
* // result.packets = [{ data: 'line1\n', type: 'data' }]
|
|
317
|
+
* // result.remaining = '00'
|
|
318
|
+
*
|
|
319
|
+
* // Second chunk arrives
|
|
320
|
+
* buffer = result.remaining + '09line2\n0000'
|
|
321
|
+
* result = pktLineStream(buffer)
|
|
322
|
+
* // result.packets = [
|
|
323
|
+
* // { data: 'line2\n', type: 'data' },
|
|
324
|
+
* // { data: null, type: 'flush' }
|
|
325
|
+
* // ]
|
|
326
|
+
* ```
|
|
327
|
+
*
|
|
328
|
+
* @example Processing ref advertisement
|
|
329
|
+
* ```typescript
|
|
330
|
+
* const refAdvert = '001e# service=git-upload-pack\n0000' +
|
|
331
|
+
* '003fabc123... refs/heads/main\x00side-band-64k\n0000'
|
|
332
|
+
*
|
|
333
|
+
* const { packets } = pktLineStream(refAdvert)
|
|
334
|
+
* for (const pkt of packets) {
|
|
335
|
+
* if (pkt.type === 'flush') {
|
|
336
|
+
* console.log('--- Section end ---')
|
|
337
|
+
* } else if (pkt.data) {
|
|
338
|
+
* console.log('Line:', pkt.data.trim())
|
|
339
|
+
* }
|
|
340
|
+
* }
|
|
341
|
+
* ```
|
|
64
342
|
*/
|
|
65
343
|
export declare function pktLineStream(input: PktLineInput): PktLineStreamResult;
|
|
66
344
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pkt-line.d.ts","sourceRoot":"","sources":["../../src/wire/pkt-line.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"pkt-line.d.ts","sourceRoot":"","sources":["../../src/wire/pkt-line.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,SAAS,SAAS,CAAA;AAE/B;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,SAAS,SAAS,CAAA;AAE/B;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,QAAQ,CAAA;AAEtC;;;;;;;GAOG;AACH,KAAK,YAAY,GAAG,MAAM,GAAG,UAAU,CAAA;AAEvC;;;;;;;;;GASG;AACH,UAAU,cAAc;IACtB,uEAAuE;IACvE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,yEAAyE;IACzE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,YAAY,CAAA;IACvC,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;;;GAQG;AACH,UAAU,YAAY;IACpB,mDAAmD;IACnD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,sBAAsB;IACtB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;CACjC;AAED;;;;;;;GAOG;AACH,UAAU,mBAAmB;IAC3B,8BAA8B;IAC9B,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,UAAU,CA0BrE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,cAAc,CA8CjE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,mBAAmB,CAkCtE"}
|