@git-stunts/git-warp 12.3.0 → 12.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/README.md +5 -6
  2. package/bin/cli/commands/info.js +1 -5
  3. package/bin/cli/infrastructure.js +6 -9
  4. package/bin/cli/shared.js +8 -0
  5. package/bin/warp-graph.js +6 -6
  6. package/package.json +1 -1
  7. package/src/domain/WarpGraph.js +5 -35
  8. package/src/domain/crdt/VersionVector.js +1 -1
  9. package/src/domain/entities/GraphNode.js +1 -6
  10. package/src/domain/errors/ForkError.js +1 -1
  11. package/src/domain/errors/IndexError.js +1 -1
  12. package/src/domain/errors/OperationAbortedError.js +1 -1
  13. package/src/domain/errors/PatchError.js +1 -1
  14. package/src/domain/errors/PersistenceError.js +45 -0
  15. package/src/domain/errors/QueryError.js +1 -1
  16. package/src/domain/errors/SchemaUnsupportedError.js +1 -1
  17. package/src/domain/errors/SyncError.js +1 -1
  18. package/src/domain/errors/TraversalError.js +1 -1
  19. package/src/domain/errors/TrustError.js +1 -1
  20. package/src/domain/errors/WormholeError.js +1 -1
  21. package/src/domain/errors/index.js +1 -0
  22. package/src/domain/services/AdjacencyNeighborProvider.js +1 -4
  23. package/src/domain/services/AnchorMessageCodec.js +1 -3
  24. package/src/domain/services/AuditMessageCodec.js +1 -5
  25. package/src/domain/services/AuditReceiptService.js +2 -17
  26. package/src/domain/services/AuditVerifierService.js +2 -7
  27. package/src/domain/services/BitmapIndexBuilder.js +6 -12
  28. package/src/domain/services/BitmapIndexReader.js +7 -20
  29. package/src/domain/services/BitmapNeighborProvider.js +1 -3
  30. package/src/domain/services/BoundaryTransitionRecord.js +6 -23
  31. package/src/domain/services/CheckpointMessageCodec.js +1 -6
  32. package/src/domain/services/CheckpointSerializerV5.js +8 -12
  33. package/src/domain/services/CheckpointService.js +9 -39
  34. package/src/domain/services/CommitDagTraversalService.js +1 -3
  35. package/src/domain/services/DagPathFinding.js +9 -59
  36. package/src/domain/services/DagTopology.js +4 -16
  37. package/src/domain/services/DagTraversal.js +7 -31
  38. package/src/domain/services/Frontier.js +4 -6
  39. package/src/domain/services/GitLogParser.js +1 -2
  40. package/src/domain/services/GraphTraversal.js +14 -114
  41. package/src/domain/services/HealthCheckService.js +3 -9
  42. package/src/domain/services/HookInstaller.js +2 -8
  43. package/src/domain/services/HttpSyncServer.js +24 -25
  44. package/src/domain/services/IncrementalIndexUpdater.js +4 -6
  45. package/src/domain/services/IndexRebuildService.js +6 -52
  46. package/src/domain/services/IndexStalenessChecker.js +2 -3
  47. package/src/domain/services/JoinReducer.js +39 -65
  48. package/src/domain/services/LogicalBitmapIndexBuilder.js +1 -2
  49. package/src/domain/services/LogicalIndexBuildService.js +2 -6
  50. package/src/domain/services/LogicalIndexReader.js +1 -2
  51. package/src/domain/services/LogicalTraversal.js +13 -64
  52. package/src/domain/services/MaterializedViewService.js +4 -18
  53. package/src/domain/services/MigrationService.js +1 -4
  54. package/src/domain/services/ObserverView.js +1 -7
  55. package/src/domain/services/PatchBuilderV2.js +6 -18
  56. package/src/domain/services/PatchMessageCodec.js +1 -6
  57. package/src/domain/services/PropertyIndexBuilder.js +1 -2
  58. package/src/domain/services/PropertyIndexReader.js +1 -4
  59. package/src/domain/services/ProvenanceIndex.js +5 -7
  60. package/src/domain/services/ProvenancePayload.js +1 -1
  61. package/src/domain/services/QueryBuilder.js +3 -16
  62. package/src/domain/services/StateDiff.js +3 -9
  63. package/src/domain/services/StateSerializerV5.js +10 -10
  64. package/src/domain/services/StreamingBitmapIndexBuilder.js +13 -41
  65. package/src/domain/services/SyncAuthService.js +5 -32
  66. package/src/domain/services/SyncController.js +5 -25
  67. package/src/domain/services/SyncProtocol.js +4 -8
  68. package/src/domain/services/SyncTrustGate.js +4 -9
  69. package/src/domain/services/TemporalQuery.js +9 -27
  70. package/src/domain/services/TranslationCost.js +2 -8
  71. package/src/domain/services/WarpStateIndexBuilder.js +2 -4
  72. package/src/domain/services/WormholeService.js +9 -25
  73. package/src/domain/trust/TrustCrypto.js +1 -5
  74. package/src/domain/trust/TrustEvaluator.js +1 -8
  75. package/src/domain/trust/TrustRecordService.js +5 -10
  76. package/src/domain/types/TickReceipt.js +3 -7
  77. package/src/domain/types/WarpTypes.js +1 -5
  78. package/src/domain/types/WarpTypesV2.js +1 -8
  79. package/src/domain/utils/CachedValue.js +1 -4
  80. package/src/domain/utils/MinHeap.js +3 -3
  81. package/src/domain/utils/RefLayout.js +26 -0
  82. package/src/domain/utils/WriterId.js +2 -7
  83. package/src/domain/utils/canonicalCbor.js +1 -1
  84. package/src/domain/utils/defaultCodec.js +1 -1
  85. package/src/domain/utils/parseCursorBlob.js +4 -4
  86. package/src/domain/warp/PatchSession.js +3 -8
  87. package/src/domain/warp/Writer.js +3 -12
  88. package/src/domain/warp/_wire.js +2 -2
  89. package/src/domain/warp/_wiredMethods.d.ts +5 -7
  90. package/src/domain/warp/checkpoint.methods.js +1 -1
  91. package/src/domain/warp/fork.methods.js +1 -5
  92. package/src/domain/warp/materializeAdvanced.methods.js +3 -3
  93. package/src/domain/warp/patch.methods.js +6 -8
  94. package/src/domain/warp/provenance.methods.js +5 -5
  95. package/src/domain/warp/query.methods.js +9 -18
  96. package/src/domain/warp/subscribe.methods.js +2 -8
  97. package/src/globals.d.ts +7 -0
  98. package/src/infrastructure/adapters/BunHttpAdapter.js +14 -18
  99. package/src/infrastructure/adapters/ConsoleLogger.js +2 -9
  100. package/src/infrastructure/adapters/DenoHttpAdapter.js +15 -15
  101. package/src/infrastructure/adapters/GitGraphAdapter.js +234 -58
  102. package/src/infrastructure/adapters/InMemoryGraphAdapter.js +9 -2
  103. package/src/infrastructure/adapters/NodeHttpAdapter.js +14 -14
  104. package/src/infrastructure/adapters/WebCryptoAdapter.js +1 -2
  105. package/src/ports/BlobPort.js +2 -2
  106. package/src/ports/HttpServerPort.js +24 -2
  107. package/src/ports/RefPort.js +2 -1
  108. package/src/visualization/renderers/ascii/box.js +1 -1
  109. package/src/visualization/renderers/ascii/check.js +1 -5
  110. package/src/visualization/renderers/ascii/history.js +1 -6
  111. package/src/visualization/renderers/ascii/path.js +4 -22
  112. package/src/visualization/renderers/ascii/progress.js +1 -4
  113. package/src/visualization/renderers/ascii/seek.js +1 -5
  114. package/src/visualization/renderers/ascii/table.js +1 -3
@@ -55,11 +55,7 @@ function segmentFits(currentWidth, segmentWidth, maxWidth) {
55
55
 
56
56
  /**
57
57
  * Creates a path segment with node and optional arrow.
58
- * @param {Object} opts - Segment options
59
- * @param {string} opts.nodeId - Node ID
60
- * @param {number} opts.index - Position in path
61
- * @param {number} opts.pathLength - Total path length
62
- * @param {string[]} [opts.edges] - Optional edge labels
58
+ * @param {{ nodeId: string, index: number, pathLength: number, edges?: string[] }} opts - Segment options
63
59
  * @returns {{segment: string, width: number}} Segment string and its width
64
60
  */
65
61
  function createPathSegment({ nodeId, index, pathLength, edges }) {
@@ -164,13 +160,7 @@ function renderSameNode(nodeId) {
164
160
 
165
161
  /**
166
162
  * Renders a found path.
167
- * @param {Object} payload - Path payload
168
- * @param {string} payload.graph - Graph name
169
- * @param {string} payload.from - Source node ID
170
- * @param {string} payload.to - Target node ID
171
- * @param {string[]} payload.path - Array of node IDs in the path
172
- * @param {number} payload.length - Path length (number of edges)
173
- * @param {string[]} [payload.edges] - Optional array of edge labels
163
+ * @param {{ graph: string, from: string, to: string, path: string[], length: number, edges?: string[] }} payload - Path payload
174
164
  * @param {number} [terminalWidth] - Terminal width for wrapping
175
165
  * @returns {string} Formatted ASCII output
176
166
  */
@@ -203,16 +193,8 @@ function renderFoundPath(payload, terminalWidth = DEFAULT_TERMINAL_WIDTH) {
203
193
 
204
194
  /**
205
195
  * Renders the path view.
206
- * @param {Object} payload - The path command payload
207
- * @param {string} payload.graph - Graph name
208
- * @param {string} payload.from - Source node ID
209
- * @param {string} payload.to - Target node ID
210
- * @param {boolean} payload.found - Whether a path was found
211
- * @param {string[]} payload.path - Array of node IDs in the path
212
- * @param {number} payload.length - Path length (number of edges)
213
- * @param {string[]} [payload.edges] - Optional array of edge labels
214
- * @param {Object} [options] - Rendering options
215
- * @param {number} [options.terminalWidth] - Terminal width for wrapping
196
+ * @param {{ graph: string, from: string, to: string, found: boolean, path: string[], length: number, edges?: string[] }} payload - The path command payload
197
+ * @param {{ terminalWidth?: number }} [options] - Rendering options
216
198
  * @returns {string} Formatted ASCII output
217
199
  */
218
200
  export function renderPathView(payload, options = {}) {
@@ -7,10 +7,7 @@ import chalk from 'chalk';
7
7
  *
8
8
  * @param {number} percent - Percentage value (clamped to 0-100)
9
9
  * @param {number} [width=20] - Character width of the bar
10
- * @param {Object} [options] - Display options
11
- * @param {string} [options.filled='█'] - Character for filled segments
12
- * @param {string} [options.empty='░'] - Character for empty segments
13
- * @param {boolean} [options.showPercent=true] - Whether to append the percentage value
10
+ * @param {{ filled?: string, empty?: string, showPercent?: boolean }} [options] - Display options
14
11
  * @returns {string} The rendered progress bar with ANSI colors
15
12
  */
16
13
  export function progressBar(percent, width = 20, options = {}) {
@@ -234,11 +234,7 @@ function buildLane(patchSet, points, currentTick) {
234
234
  * Between consecutive columns, connector characters of the appropriate style
235
235
  * fill the gap (COL_W − 1 chars).
236
236
  *
237
- * @param {Object} opts
238
- * @param {string} opts.writerId
239
- * @param {WriterInfo} opts.writerInfo - `{ ticks, tipSha, tickShas }`
240
- * @param {{ points: number[] }} opts.win - Computed window
241
- * @param {number} opts.currentTick - Active seek cursor tick
237
+ * @param {{ writerId: string, writerInfo: WriterInfo, win: { points: number[] }, currentTick: number }} opts
242
238
  * @returns {string} Formatted, indented swimlane line
243
239
  */
244
240
  function buildWriterSwimRow({ writerId, writerInfo, win, currentTick }) {
@@ -3,9 +3,7 @@ import Table from 'cli-table3';
3
3
  /**
4
4
  * Creates a cli-table3 instance with default WARP styling.
5
5
  *
6
- * @param {Object} [options] - Options forwarded to cli-table3 constructor
7
- * @param {string[]} [options.head] - Column headers
8
- * @param {Object} [options.style] - Style overrides (defaults: head=cyan, border=gray)
6
+ * @param {{ head?: string[], style?: Record<string, unknown>, [key: string]: unknown }} [options] - Options forwarded to cli-table3 constructor
9
7
  * @returns {InstanceType<typeof Table>} A cli-table3 instance
10
8
  */
11
9
  export function createTable(options = {}) {