@git-stunts/git-warp 10.8.0 → 11.3.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/README.md +53 -32
- package/SECURITY.md +64 -0
- package/bin/cli/commands/check.js +168 -0
- package/bin/cli/commands/doctor/checks.js +422 -0
- package/bin/cli/commands/doctor/codes.js +46 -0
- package/bin/cli/commands/doctor/index.js +239 -0
- package/bin/cli/commands/doctor/types.js +89 -0
- package/bin/cli/commands/history.js +80 -0
- package/bin/cli/commands/info.js +139 -0
- package/bin/cli/commands/install-hooks.js +128 -0
- package/bin/cli/commands/materialize.js +99 -0
- package/bin/cli/commands/patch.js +142 -0
- package/bin/cli/commands/path.js +88 -0
- package/bin/cli/commands/query.js +235 -0
- package/bin/cli/commands/registry.js +32 -0
- package/bin/cli/commands/seek.js +598 -0
- package/bin/cli/commands/tree.js +230 -0
- package/bin/cli/commands/trust.js +154 -0
- package/bin/cli/commands/verify-audit.js +114 -0
- package/bin/cli/commands/view.js +46 -0
- package/bin/cli/infrastructure.js +350 -0
- package/bin/cli/schemas.js +177 -0
- package/bin/cli/shared.js +244 -0
- package/bin/cli/types.js +96 -0
- package/bin/presenters/index.js +41 -9
- package/bin/presenters/json.js +14 -12
- package/bin/presenters/text.js +286 -28
- package/bin/warp-graph.js +5 -2346
- package/index.d.ts +111 -21
- package/index.js +2 -0
- package/package.json +10 -8
- package/src/domain/WarpGraph.js +109 -3252
- package/src/domain/crdt/ORSet.js +8 -8
- package/src/domain/errors/EmptyMessageError.js +2 -2
- package/src/domain/errors/ForkError.js +1 -1
- package/src/domain/errors/IndexError.js +1 -1
- package/src/domain/errors/OperationAbortedError.js +1 -1
- package/src/domain/errors/QueryError.js +3 -3
- package/src/domain/errors/SchemaUnsupportedError.js +1 -1
- package/src/domain/errors/ShardCorruptionError.js +2 -2
- package/src/domain/errors/ShardLoadError.js +2 -2
- package/src/domain/errors/ShardValidationError.js +4 -4
- package/src/domain/errors/StorageError.js +2 -2
- package/src/domain/errors/SyncError.js +1 -1
- package/src/domain/errors/TraversalError.js +1 -1
- package/src/domain/errors/TrustError.js +29 -0
- package/src/domain/errors/WarpError.js +2 -2
- package/src/domain/errors/WormholeError.js +1 -1
- package/src/domain/errors/index.js +1 -0
- package/src/domain/services/AuditMessageCodec.js +137 -0
- package/src/domain/services/AuditReceiptService.js +471 -0
- package/src/domain/services/AuditVerifierService.js +707 -0
- package/src/domain/services/BitmapIndexBuilder.js +3 -3
- package/src/domain/services/BitmapIndexReader.js +28 -19
- package/src/domain/services/BoundaryTransitionRecord.js +18 -17
- package/src/domain/services/CheckpointSerializerV5.js +17 -16
- package/src/domain/services/CheckpointService.js +2 -2
- package/src/domain/services/CommitDagTraversalService.js +13 -13
- package/src/domain/services/DagPathFinding.js +7 -7
- package/src/domain/services/DagTopology.js +1 -1
- package/src/domain/services/DagTraversal.js +1 -1
- package/src/domain/services/HealthCheckService.js +1 -1
- package/src/domain/services/HookInstaller.js +1 -1
- package/src/domain/services/HttpSyncServer.js +120 -55
- package/src/domain/services/IndexRebuildService.js +7 -7
- package/src/domain/services/IndexStalenessChecker.js +4 -3
- package/src/domain/services/JoinReducer.js +11 -11
- package/src/domain/services/LogicalTraversal.js +1 -1
- package/src/domain/services/MessageCodecInternal.js +4 -1
- package/src/domain/services/MessageSchemaDetector.js +2 -2
- package/src/domain/services/MigrationService.js +1 -1
- package/src/domain/services/ObserverView.js +8 -8
- package/src/domain/services/PatchBuilderV2.js +42 -26
- package/src/domain/services/ProvenanceIndex.js +1 -1
- package/src/domain/services/ProvenancePayload.js +1 -1
- package/src/domain/services/QueryBuilder.js +3 -3
- package/src/domain/services/StateDiff.js +14 -11
- package/src/domain/services/StateSerializerV5.js +2 -2
- package/src/domain/services/StreamingBitmapIndexBuilder.js +26 -24
- package/src/domain/services/SyncAuthService.js +71 -4
- package/src/domain/services/SyncProtocol.js +25 -11
- package/src/domain/services/TemporalQuery.js +9 -6
- package/src/domain/services/TranslationCost.js +7 -5
- package/src/domain/services/WarpMessageCodec.js +4 -1
- package/src/domain/services/WormholeService.js +16 -7
- package/src/domain/trust/TrustCanonical.js +42 -0
- package/src/domain/trust/TrustCrypto.js +111 -0
- package/src/domain/trust/TrustEvaluator.js +195 -0
- package/src/domain/trust/TrustRecordService.js +281 -0
- package/src/domain/trust/TrustStateBuilder.js +222 -0
- package/src/domain/trust/canonical.js +68 -0
- package/src/domain/trust/reasonCodes.js +64 -0
- package/src/domain/trust/schemas.js +160 -0
- package/src/domain/trust/verdict.js +42 -0
- package/src/domain/types/TickReceipt.js +1 -1
- package/src/domain/types/WarpErrors.js +45 -0
- package/src/domain/types/WarpOptions.js +29 -0
- package/src/domain/types/WarpPersistence.js +41 -0
- package/src/domain/types/WarpTypes.js +2 -2
- package/src/domain/types/WarpTypesV2.js +2 -2
- package/src/domain/types/git-cas.d.ts +20 -0
- package/src/domain/utils/MinHeap.js +6 -5
- package/src/domain/utils/RefLayout.js +59 -0
- package/src/domain/utils/canonicalStringify.js +5 -4
- package/src/domain/utils/roaring.js +31 -5
- package/src/domain/warp/PatchSession.js +26 -17
- package/src/domain/warp/Writer.js +18 -3
- package/src/domain/warp/_internal.js +26 -0
- package/src/domain/warp/_wire.js +58 -0
- package/src/domain/warp/_wiredMethods.d.ts +254 -0
- package/src/domain/warp/checkpoint.methods.js +401 -0
- package/src/domain/warp/fork.methods.js +323 -0
- package/src/domain/warp/materialize.methods.js +238 -0
- package/src/domain/warp/materializeAdvanced.methods.js +350 -0
- package/src/domain/warp/patch.methods.js +554 -0
- package/src/domain/warp/provenance.methods.js +286 -0
- package/src/domain/warp/query.methods.js +280 -0
- package/src/domain/warp/subscribe.methods.js +272 -0
- package/src/domain/warp/sync.methods.js +554 -0
- package/src/globals.d.ts +64 -0
- package/src/infrastructure/adapters/BunHttpAdapter.js +14 -9
- package/src/infrastructure/adapters/CasSeekCacheAdapter.js +9 -4
- package/src/infrastructure/adapters/DenoHttpAdapter.js +5 -6
- package/src/infrastructure/adapters/GitGraphAdapter.js +79 -11
- package/src/infrastructure/adapters/InMemoryGraphAdapter.js +36 -0
- package/src/infrastructure/adapters/NodeHttpAdapter.js +2 -2
- package/src/infrastructure/adapters/WebCryptoAdapter.js +2 -2
- package/src/ports/CommitPort.js +10 -0
- package/src/ports/RefPort.js +17 -0
- package/src/visualization/layouts/converters.js +2 -2
- package/src/visualization/layouts/elkAdapter.js +1 -1
- package/src/visualization/layouts/elkLayout.js +10 -7
- package/src/visualization/layouts/index.js +1 -1
- package/src/visualization/renderers/ascii/seek.js +16 -6
- package/src/visualization/renderers/svg/index.js +1 -1
- package/src/hooks/post-merge.sh +0 -60
package/index.d.ts
CHANGED
|
@@ -558,6 +558,25 @@ export interface GitPlumbing {
|
|
|
558
558
|
executeStream(options: { args: string[] }): Promise<AsyncIterable<Uint8Array> & { collect(opts?: { asString?: boolean }): Promise<Buffer | string> }>;
|
|
559
559
|
}
|
|
560
560
|
|
|
561
|
+
/**
|
|
562
|
+
* In-memory persistence adapter for fast unit/integration tests.
|
|
563
|
+
*
|
|
564
|
+
* Implements the same GraphPersistencePort contract as GitGraphAdapter
|
|
565
|
+
* but stores all data in Maps — no real Git I/O required.
|
|
566
|
+
*/
|
|
567
|
+
export class InMemoryGraphAdapter extends GraphPersistencePort {
|
|
568
|
+
constructor();
|
|
569
|
+
|
|
570
|
+
get emptyTree(): string;
|
|
571
|
+
commitNode(options: CreateNodeOptions): Promise<string>;
|
|
572
|
+
showNode(sha: string): Promise<string>;
|
|
573
|
+
getNodeInfo(sha: string): Promise<NodeInfo>;
|
|
574
|
+
logNodesStream(options: ListNodesOptions & { format: string }): Promise<AsyncIterable<Uint8Array | string>>;
|
|
575
|
+
logNodes(options: ListNodesOptions & { format: string }): Promise<string>;
|
|
576
|
+
ping(): Promise<PingResult>;
|
|
577
|
+
countNodes(ref: string): Promise<number>;
|
|
578
|
+
}
|
|
579
|
+
|
|
561
580
|
/**
|
|
562
581
|
* Implementation of GraphPersistencePort and IndexStoragePort using GitPlumbing.
|
|
563
582
|
*/
|
|
@@ -1022,7 +1041,7 @@ export class SyncError extends Error {
|
|
|
1022
1041
|
* Base error class for bitmap index operations.
|
|
1023
1042
|
*/
|
|
1024
1043
|
export class IndexError extends Error {
|
|
1025
|
-
readonly name:
|
|
1044
|
+
readonly name: string;
|
|
1026
1045
|
readonly code: string;
|
|
1027
1046
|
readonly context: Record<string, unknown>;
|
|
1028
1047
|
|
|
@@ -1283,12 +1302,65 @@ export interface TemporalQuery {
|
|
|
1283
1302
|
): Promise<boolean>;
|
|
1284
1303
|
}
|
|
1285
1304
|
|
|
1305
|
+
// ============================================================================
|
|
1306
|
+
// PatchV2 & PatchBuilderV2
|
|
1307
|
+
// ============================================================================
|
|
1308
|
+
|
|
1309
|
+
/**
|
|
1310
|
+
* WARP V5 patch object (schema 2 or 3).
|
|
1311
|
+
*/
|
|
1312
|
+
export interface PatchV2 {
|
|
1313
|
+
/** Schema version (2 for node/edge ops, 3 if edge properties present) */
|
|
1314
|
+
schema: 2 | 3;
|
|
1315
|
+
/** Writer ID */
|
|
1316
|
+
writer: string;
|
|
1317
|
+
/** Lamport timestamp for ordering */
|
|
1318
|
+
lamport: number;
|
|
1319
|
+
/** Writer's observed frontier (version vector) */
|
|
1320
|
+
context: Record<string, number>;
|
|
1321
|
+
/** Ordered array of operations */
|
|
1322
|
+
ops: unknown[];
|
|
1323
|
+
/** Node/edge IDs read by this patch (provenance tracking) */
|
|
1324
|
+
reads?: string[];
|
|
1325
|
+
/** Node/edge IDs written by this patch (provenance tracking) */
|
|
1326
|
+
writes?: string[];
|
|
1327
|
+
}
|
|
1328
|
+
|
|
1329
|
+
/**
|
|
1330
|
+
* Fluent builder for creating WARP v5 patches with OR-Set semantics.
|
|
1331
|
+
*
|
|
1332
|
+
* Returned by WarpGraph.createPatch(). Chain mutation methods then call
|
|
1333
|
+
* commit() to persist the patch atomically.
|
|
1334
|
+
*/
|
|
1335
|
+
export class PatchBuilderV2 {
|
|
1336
|
+
/** Adds a node to the graph. */
|
|
1337
|
+
addNode(nodeId: string): PatchBuilderV2;
|
|
1338
|
+
/** Removes a node from the graph. */
|
|
1339
|
+
removeNode(nodeId: string): PatchBuilderV2;
|
|
1340
|
+
/** Adds an edge between two nodes. */
|
|
1341
|
+
addEdge(from: string, to: string, label: string): PatchBuilderV2;
|
|
1342
|
+
/** Removes an edge between two nodes. */
|
|
1343
|
+
removeEdge(from: string, to: string, label: string): PatchBuilderV2;
|
|
1344
|
+
/** Sets a property on a node. */
|
|
1345
|
+
setProperty(nodeId: string, key: string, value: unknown): PatchBuilderV2;
|
|
1346
|
+
/** Sets a property on an edge. */
|
|
1347
|
+
setEdgeProperty(from: string, to: string, label: string, key: string, value: unknown): PatchBuilderV2;
|
|
1348
|
+
/** Builds the PatchV2 object without committing. */
|
|
1349
|
+
build(): PatchV2;
|
|
1350
|
+
/** Commits the patch to the graph and returns the commit SHA. */
|
|
1351
|
+
commit(): Promise<string>;
|
|
1352
|
+
/** Number of operations in this patch. */
|
|
1353
|
+
readonly opCount: number;
|
|
1354
|
+
}
|
|
1355
|
+
|
|
1286
1356
|
// ============================================================================
|
|
1287
1357
|
// Writer & PatchSession
|
|
1288
1358
|
// ============================================================================
|
|
1289
1359
|
|
|
1290
1360
|
/**
|
|
1291
1361
|
* Fluent patch session for building and committing graph mutations.
|
|
1362
|
+
*
|
|
1363
|
+
* Created by Writer.beginPatch(). Wraps a PatchBuilderV2 with CAS protection.
|
|
1292
1364
|
*/
|
|
1293
1365
|
export class PatchSession {
|
|
1294
1366
|
/** Adds a node to the graph. */
|
|
@@ -1301,8 +1373,10 @@ export class PatchSession {
|
|
|
1301
1373
|
removeEdge(from: string, to: string, label: string): this;
|
|
1302
1374
|
/** Sets a property on a node. */
|
|
1303
1375
|
setProperty(nodeId: string, key: string, value: unknown): this;
|
|
1304
|
-
/**
|
|
1305
|
-
|
|
1376
|
+
/** Sets a property on an edge. */
|
|
1377
|
+
setEdgeProperty(from: string, to: string, label: string, key: string, value: unknown): this;
|
|
1378
|
+
/** Builds the PatchV2 object without committing. */
|
|
1379
|
+
build(): PatchV2;
|
|
1306
1380
|
/** Commits the patch with CAS protection. */
|
|
1307
1381
|
commit(): Promise<string>;
|
|
1308
1382
|
/** Number of operations in this patch. */
|
|
@@ -1321,7 +1395,10 @@ export class Writer {
|
|
|
1321
1395
|
head(): Promise<string | null>;
|
|
1322
1396
|
/** Begins a new patch session. */
|
|
1323
1397
|
beginPatch(): Promise<PatchSession>;
|
|
1324
|
-
/**
|
|
1398
|
+
/**
|
|
1399
|
+
* Builds and commits a patch in one call.
|
|
1400
|
+
* @throws {WriterError} COMMIT_IN_PROGRESS if called while another commitPatch() is in progress (not reentrant)
|
|
1401
|
+
*/
|
|
1325
1402
|
commitPatch(build: (p: PatchSession) => void | Promise<void>): Promise<string>;
|
|
1326
1403
|
}
|
|
1327
1404
|
|
|
@@ -1419,6 +1496,7 @@ export interface ApplySyncResult {
|
|
|
1419
1496
|
export interface SyncAuthServerOptions {
|
|
1420
1497
|
keys: Record<string, string>;
|
|
1421
1498
|
mode?: 'enforce' | 'log-only';
|
|
1499
|
+
allowedWriters?: string[];
|
|
1422
1500
|
}
|
|
1423
1501
|
|
|
1424
1502
|
/**
|
|
@@ -1485,6 +1563,7 @@ export default class WarpGraph {
|
|
|
1485
1563
|
compactOnCheckpoint?: boolean;
|
|
1486
1564
|
};
|
|
1487
1565
|
checkpointPolicy?: { every: number };
|
|
1566
|
+
/** If true (default), query methods auto-materialize when no cached state exists. */
|
|
1488
1567
|
autoMaterialize?: boolean;
|
|
1489
1568
|
onDeleteWithData?: 'reject' | 'cascade' | 'warn';
|
|
1490
1569
|
clock?: ClockPort;
|
|
@@ -1510,9 +1589,21 @@ export default class WarpGraph {
|
|
|
1510
1589
|
setSeekCache(cache: SeekCachePort | null): void;
|
|
1511
1590
|
|
|
1512
1591
|
/**
|
|
1513
|
-
* Creates a new
|
|
1592
|
+
* Creates a new PatchBuilderV2 for adding operations.
|
|
1593
|
+
*/
|
|
1594
|
+
createPatch(): Promise<PatchBuilderV2>;
|
|
1595
|
+
|
|
1596
|
+
/**
|
|
1597
|
+
* Convenience wrapper: creates a patch, runs the callback, and commits.
|
|
1598
|
+
*
|
|
1599
|
+
* The callback receives a PatchBuilderV2 and may be synchronous or
|
|
1600
|
+
* asynchronous. The commit happens only after the callback resolves.
|
|
1601
|
+
* If the callback throws or rejects, no commit is attempted.
|
|
1602
|
+
*
|
|
1603
|
+
* Not reentrant: calling `graph.patch()` inside a callback throws.
|
|
1604
|
+
* Use `createPatch()` directly for nested or concurrent patches.
|
|
1514
1605
|
*/
|
|
1515
|
-
|
|
1606
|
+
patch(build: (patch: PatchBuilderV2) => void | Promise<void>): Promise<string>;
|
|
1516
1607
|
|
|
1517
1608
|
/**
|
|
1518
1609
|
* Returns patches from a writer's ref chain.
|
|
@@ -1520,7 +1611,7 @@ export default class WarpGraph {
|
|
|
1520
1611
|
getWriterPatches(
|
|
1521
1612
|
writerId: string,
|
|
1522
1613
|
stopAtSha?: string | null
|
|
1523
|
-
): Promise<Array<{ patch:
|
|
1614
|
+
): Promise<Array<{ patch: PatchV2; sha: string }>>;
|
|
1524
1615
|
|
|
1525
1616
|
/**
|
|
1526
1617
|
* Gets all visible nodes in the materialized state.
|
|
@@ -1592,7 +1683,7 @@ export default class WarpGraph {
|
|
|
1592
1683
|
/**
|
|
1593
1684
|
* Materializes graph state from a checkpoint, applying incremental patches.
|
|
1594
1685
|
*/
|
|
1595
|
-
materializeAt(checkpointSha: string): Promise<
|
|
1686
|
+
materializeAt(checkpointSha: string): Promise<WarpStateV5>;
|
|
1596
1687
|
|
|
1597
1688
|
/**
|
|
1598
1689
|
* Logical graph traversal helpers.
|
|
@@ -1625,8 +1716,12 @@ export default class WarpGraph {
|
|
|
1625
1716
|
|
|
1626
1717
|
/**
|
|
1627
1718
|
* Materializes the current graph state from all patches.
|
|
1719
|
+
*
|
|
1720
|
+
* When `options.receipts` is true, returns `{ state, receipts }`.
|
|
1721
|
+
* Otherwise returns the WarpStateV5 directly.
|
|
1628
1722
|
*/
|
|
1629
|
-
materialize(): Promise<
|
|
1723
|
+
materialize(options: { receipts: true; ceiling?: number | null }): Promise<{ state: WarpStateV5; receipts: TickReceipt[] }>;
|
|
1724
|
+
materialize(options?: { receipts?: false; ceiling?: number | null }): Promise<WarpStateV5>;
|
|
1630
1725
|
|
|
1631
1726
|
/**
|
|
1632
1727
|
* Starts a built-in sync server for this graph.
|
|
@@ -1638,10 +1733,13 @@ export default class WarpGraph {
|
|
|
1638
1733
|
maxRequestBytes?: number;
|
|
1639
1734
|
httpPort: HttpServerPort;
|
|
1640
1735
|
auth?: SyncAuthServerOptions;
|
|
1736
|
+
allowedWriters?: string[];
|
|
1641
1737
|
}): Promise<{ close(): Promise<void>; url: string }>;
|
|
1642
1738
|
|
|
1643
1739
|
/**
|
|
1644
1740
|
* Syncs with a remote peer (HTTP URL or another WarpGraph instance).
|
|
1741
|
+
*
|
|
1742
|
+
* When `options.materialize` is true, the returned object also contains a `state` property.
|
|
1645
1743
|
*/
|
|
1646
1744
|
syncWith(remote: string | WarpGraph, options?: {
|
|
1647
1745
|
path?: string;
|
|
@@ -1658,7 +1756,9 @@ export default class WarpGraph {
|
|
|
1658
1756
|
error?: Error;
|
|
1659
1757
|
}) => void;
|
|
1660
1758
|
auth?: SyncAuthClientOptions;
|
|
1661
|
-
|
|
1759
|
+
/** Auto-materialize after sync; when true, result includes `state` */
|
|
1760
|
+
materialize?: boolean;
|
|
1761
|
+
}): Promise<{ applied: number; attempts: number; state?: WarpStateV5 }>;
|
|
1662
1762
|
|
|
1663
1763
|
/**
|
|
1664
1764
|
* Creates a fork of this graph at a specific point in a writer's history.
|
|
@@ -2083,17 +2183,7 @@ export function migrateV4toV5(v4State: {
|
|
|
2083
2183
|
*/
|
|
2084
2184
|
export interface PatchEntry {
|
|
2085
2185
|
/** The decoded patch object */
|
|
2086
|
-
patch:
|
|
2087
|
-
schema: 2 | 3;
|
|
2088
|
-
writer: string;
|
|
2089
|
-
lamport: number;
|
|
2090
|
-
context: Record<string, number> | Map<string, number>;
|
|
2091
|
-
ops: unknown[];
|
|
2092
|
-
/** Node/edge IDs read by this patch (V2 provenance) */
|
|
2093
|
-
reads?: string[];
|
|
2094
|
-
/** Node/edge IDs written by this patch (V2 provenance) */
|
|
2095
|
-
writes?: string[];
|
|
2096
|
-
};
|
|
2186
|
+
patch: PatchV2;
|
|
2097
2187
|
/** The Git SHA of the patch commit */
|
|
2098
2188
|
sha: string;
|
|
2099
2189
|
}
|
package/index.js
CHANGED
|
@@ -33,6 +33,7 @@ import IndexStoragePort from './src/ports/IndexStoragePort.js';
|
|
|
33
33
|
import LoggerPort from './src/ports/LoggerPort.js';
|
|
34
34
|
import ClockPort from './src/ports/ClockPort.js';
|
|
35
35
|
import SeekCachePort from './src/ports/SeekCachePort.js';
|
|
36
|
+
import InMemoryGraphAdapter from './src/infrastructure/adapters/InMemoryGraphAdapter.js';
|
|
36
37
|
import NoOpLogger from './src/infrastructure/adapters/NoOpLogger.js';
|
|
37
38
|
import ConsoleLogger, { LogLevel } from './src/infrastructure/adapters/ConsoleLogger.js';
|
|
38
39
|
import ClockAdapter from './src/infrastructure/adapters/ClockAdapter.js';
|
|
@@ -107,6 +108,7 @@ const TraversalService = CommitDagTraversalService;
|
|
|
107
108
|
|
|
108
109
|
export {
|
|
109
110
|
GitGraphAdapter,
|
|
111
|
+
InMemoryGraphAdapter,
|
|
110
112
|
GraphNode,
|
|
111
113
|
BitmapIndexBuilder,
|
|
112
114
|
BitmapIndexReader,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@git-stunts/git-warp",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "11.3.3",
|
|
4
4
|
"description": "Deterministic WARP graph over Git: graph-native storage, traversal, and tooling.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
"files": [
|
|
44
44
|
"bin/warp-graph.js",
|
|
45
45
|
"bin/presenters",
|
|
46
|
+
"bin/cli",
|
|
46
47
|
"bin/git-warp",
|
|
47
48
|
"src",
|
|
48
49
|
"index.js",
|
|
@@ -68,16 +69,16 @@
|
|
|
68
69
|
"benchmark": "sh -c 'if [ \"$GIT_STUNTS_DOCKER\" = \"1\" ]; then vitest bench --run test/benchmark \"$@\"; else docker compose run --build --rm test npm run benchmark:local -- \"$@\"; fi' --",
|
|
69
70
|
"benchmark:local": "vitest bench --run test/benchmark",
|
|
70
71
|
"demo": "cd examples && docker compose up -d && docker compose exec demo bash",
|
|
71
|
-
"demo:setup": "cd examples && docker compose up -d && docker compose exec demo sh -c 'cd /app && npm install --silent && cd /demo && node /app/examples/setup.js'",
|
|
72
|
-
"demo:explore": "cd examples && docker compose exec demo node /app/examples/explore.js",
|
|
73
|
-
"demo:inspect": "cd examples && docker compose exec demo node /app/examples/inspect-index.js",
|
|
74
|
-
"demo:lagrangian": "cd examples && docker compose exec demo node /app/examples/lagrangian-path.js",
|
|
75
|
-
"demo:bench-streaming": "cd examples && docker compose up -d && docker compose exec demo node /app/examples/streaming-benchmark.js",
|
|
76
|
-
"demo:bench-traversal": "cd examples && docker compose up -d && docker compose exec demo node /app/examples/traversal-benchmark.js",
|
|
72
|
+
"demo:setup": "cd examples && docker compose up -d && docker compose exec demo sh -c 'cd /app && npm install --silent && cd /demo && node /app/examples/scripts/setup.js'",
|
|
73
|
+
"demo:explore": "cd examples && docker compose exec demo node /app/examples/scripts/explore.js",
|
|
74
|
+
"demo:inspect": "cd examples && docker compose exec demo node /app/examples/scripts/inspect-index.js",
|
|
75
|
+
"demo:lagrangian": "cd examples && docker compose exec demo node /app/examples/scripts/lagrangian-path.js",
|
|
76
|
+
"demo:bench-streaming": "cd examples && docker compose up -d && docker compose exec demo node /app/examples/scripts/streaming-benchmark.js",
|
|
77
|
+
"demo:bench-traversal": "cd examples && docker compose up -d && docker compose exec demo node /app/examples/scripts/traversal-benchmark.js",
|
|
77
78
|
"demo:down": "cd examples && docker compose down -v",
|
|
78
79
|
"setup:hooks": "node scripts/setup-hooks.js",
|
|
79
80
|
"prepare": "patch-package && node scripts/setup-hooks.js",
|
|
80
|
-
"prepack": "npm run lint && npm run test:local",
|
|
81
|
+
"prepack": "npm run lint && npm run test:local && npm run typecheck:consumer",
|
|
81
82
|
"install:git-warp": "bash scripts/install-git-warp.sh",
|
|
82
83
|
"uninstall:git-warp": "bash scripts/uninstall-git-warp.sh",
|
|
83
84
|
"test:node20": "docker compose -f docker-compose.test.yml --profile node20 run --build --rm test-node20",
|
|
@@ -88,6 +89,7 @@
|
|
|
88
89
|
"typecheck": "tsc --noEmit",
|
|
89
90
|
"typecheck:src": "tsc --noEmit -p tsconfig.src.json",
|
|
90
91
|
"typecheck:test": "tsc --noEmit -p tsconfig.test.json",
|
|
92
|
+
"typecheck:consumer": "tsc --noEmit -p test/type-check/tsconfig.json",
|
|
91
93
|
"typecheck:policy": "node scripts/ts-policy-check.js"
|
|
92
94
|
},
|
|
93
95
|
"dependencies": {
|