@ibgib/vcs-gib 0.0.17 → 0.0.20
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/AUTO-GENERATED-version.d.mts +1 -1
- package/dist/AUTO-GENERATED-version.mjs +1 -1
- package/dist/bootstrap/node-bootstrap.d.mts.map +1 -1
- package/dist/bootstrap/node-bootstrap.mjs +3 -0
- package/dist/bootstrap/node-bootstrap.mjs.map +1 -1
- package/dist/cli/cli-constants.d.mts +1 -0
- package/dist/cli/cli-constants.d.mts.map +1 -1
- package/dist/cli/cli-constants.mjs +1 -0
- package/dist/cli/cli-constants.mjs.map +1 -1
- package/dist/cli/commands/add-cmd.d.mts.map +1 -1
- package/dist/cli/commands/add-cmd.mjs +2 -2
- package/dist/cli/commands/add-cmd.mjs.map +1 -1
- package/dist/cli/commands/branch-cmd.d.mts.map +1 -1
- package/dist/cli/commands/branch-cmd.mjs +2 -2
- package/dist/cli/commands/branch-cmd.mjs.map +1 -1
- package/dist/cli/commands/checkout-cmd.d.mts.map +1 -1
- package/dist/cli/commands/checkout-cmd.mjs +15 -7
- package/dist/cli/commands/checkout-cmd.mjs.map +1 -1
- package/dist/cli/commands/commit-cmd.d.mts.map +1 -1
- package/dist/cli/commands/commit-cmd.mjs +2 -2
- package/dist/cli/commands/commit-cmd.mjs.map +1 -1
- package/dist/cli/commands/merge-cmd.d.mts +23 -0
- package/dist/cli/commands/merge-cmd.d.mts.map +1 -0
- package/dist/cli/commands/merge-cmd.mjs +224 -0
- package/dist/cli/commands/merge-cmd.mjs.map +1 -0
- package/dist/cli/vcs-cli-main.d.mts.map +1 -1
- package/dist/cli/vcs-cli-main.mjs +7 -0
- package/dist/cli/vcs-cli-main.mjs.map +1 -1
- package/dist/engine/item/item-helper.d.mts +1 -0
- package/dist/engine/item/item-helper.d.mts.map +1 -1
- package/dist/engine/item/item-helper.mjs +13 -3
- package/dist/engine/item/item-helper.mjs.map +1 -1
- package/dist/engine/item/item-types.d.mts +1 -0
- package/dist/engine/item/item-types.d.mts.map +1 -1
- package/dist/engine/merge/b2tfs-3way-merge-strategy.d.mts +48 -0
- package/dist/engine/merge/b2tfs-3way-merge-strategy.d.mts.map +1 -0
- package/dist/engine/merge/b2tfs-3way-merge-strategy.mjs +741 -0
- package/dist/engine/merge/b2tfs-3way-merge-strategy.mjs.map +1 -0
- package/dist/engine/merge/b2tfs-3way-merge-types.d.mts +41 -0
- package/dist/engine/merge/b2tfs-3way-merge-types.d.mts.map +1 -0
- package/dist/engine/merge/b2tfs-3way-merge-types.mjs +2 -0
- package/dist/engine/merge/b2tfs-3way-merge-types.mjs.map +1 -0
- package/dist/respec-gib.node.mjs +1 -1
- package/dist/respec-gib.node.mjs.map +1 -1
- package/package.json +6 -6
- package/src/AUTO-GENERATED-version.mts +1 -1
- package/src/bootstrap/node-bootstrap.mts +6 -1
- package/src/cli/cli-constants.mts +1 -0
- package/src/cli/commands/add-cmd.mts +5 -3
- package/src/cli/commands/branch-checkout-cmd.respec.log +111 -0
- package/src/cli/commands/{branch-checkout-cmd.respec.node.mts → branch-checkout-cmd.respec.mts} +112 -9
- package/src/cli/commands/branch-cmd.mts +5 -6
- package/src/cli/commands/checkout-cmd.mts +23 -9
- package/src/cli/commands/commit-cmd.mts +5 -3
- package/src/cli/commands/merge-cmd.mts +285 -0
- package/src/cli/vcs-cli-main.mts +7 -0
- package/src/engine/item/item-helper.mts +15 -9
- package/src/engine/item/item-types.mts +2 -1
- package/src/engine/merge/b2tfs-3way-merge-strategy.mts +852 -0
- package/src/engine/merge/b2tfs-3way-merge-strategy.respec.log +39 -0
- package/src/engine/merge/b2tfs-3way-merge-strategy.respec.mts +441 -0
- package/src/engine/merge/b2tfs-3way-merge-types.mts +42 -0
- package/src/respec-gib.node.mts +2 -2
- package/tsconfig.json +3 -2
- package/tsconfig.test.json +10 -0
- package/tsconfig.test.tsbuildinfo +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/assumptions.respec.d.mts +0 -2
- package/dist/assumptions.respec.d.mts.map +0 -1
- package/dist/assumptions.respec.mjs +0 -41
- package/dist/assumptions.respec.mjs.map +0 -1
- package/dist/bootstrap/node-bootstrap.respec.node.d.mts +0 -7
- package/dist/bootstrap/node-bootstrap.respec.node.d.mts.map +0 -1
- package/dist/bootstrap/node-bootstrap.respec.node.mjs +0 -28
- package/dist/bootstrap/node-bootstrap.respec.node.mjs.map +0 -1
- package/dist/cli/cli-arg-parser.respec.node.d.mts +0 -7
- package/dist/cli/cli-arg-parser.respec.node.d.mts.map +0 -1
- package/dist/cli/cli-arg-parser.respec.node.mjs +0 -35
- package/dist/cli/cli-arg-parser.respec.node.mjs.map +0 -1
- package/dist/cli/cli-e2e.respec.node.d.mts +0 -8
- package/dist/cli/cli-e2e.respec.node.d.mts.map +0 -1
- package/dist/cli/cli-e2e.respec.node.mjs +0 -263
- package/dist/cli/cli-e2e.respec.node.mjs.map +0 -1
- package/dist/cli/commands/branch-checkout-cmd.respec.node.d.mts +0 -7
- package/dist/cli/commands/branch-checkout-cmd.respec.node.d.mts.map +0 -1
- package/dist/cli/commands/branch-checkout-cmd.respec.node.mjs +0 -358
- package/dist/cli/commands/branch-checkout-cmd.respec.node.mjs.map +0 -1
- package/dist/cli/commands/commit-log-cmd.respec.node.d.mts +0 -7
- package/dist/cli/commands/commit-log-cmd.respec.node.d.mts.map +0 -1
- package/dist/cli/commands/commit-log-cmd.respec.node.mjs +0 -251
- package/dist/cli/commands/commit-log-cmd.respec.node.mjs.map +0 -1
- package/dist/cli/commands/init-cmd.respec.node.d.mts +0 -7
- package/dist/cli/commands/init-cmd.respec.node.d.mts.map +0 -1
- package/dist/cli/commands/init-cmd.respec.node.mjs +0 -40
- package/dist/cli/commands/init-cmd.respec.node.mjs.map +0 -1
- package/dist/cli/commands/reset-restore-cmd.respec.node.d.mts +0 -7
- package/dist/cli/commands/reset-restore-cmd.respec.node.d.mts.map +0 -1
- package/dist/cli/commands/reset-restore-cmd.respec.node.mjs +0 -185
- package/dist/cli/commands/reset-restore-cmd.respec.node.mjs.map +0 -1
- package/dist/cli/commands/status-add-cmd.respec.node.d.mts +0 -7
- package/dist/cli/commands/status-add-cmd.respec.node.d.mts.map +0 -1
- package/dist/cli/commands/status-add-cmd.respec.node.mjs +0 -239
- package/dist/cli/commands/status-add-cmd.respec.node.mjs.map +0 -1
- package/dist/engine/branch/branch-space.respec.node.d.mts +0 -8
- package/dist/engine/branch/branch-space.respec.node.d.mts.map +0 -1
- package/dist/engine/branch/branch-space.respec.node.mjs +0 -143
- package/dist/engine/branch/branch-space.respec.node.mjs.map +0 -1
- package/dist/engine/diff/line-diff-helper.respec.node.d.mts +0 -7
- package/dist/engine/diff/line-diff-helper.respec.node.d.mts.map +0 -1
- package/dist/engine/diff/line-diff-helper.respec.node.mjs +0 -66
- package/dist/engine/diff/line-diff-helper.respec.node.mjs.map +0 -1
- package/dist/engine/filter/glob-helper.respec.node.d.mts +0 -7
- package/dist/engine/filter/glob-helper.respec.node.d.mts.map +0 -1
- package/dist/engine/filter/glob-helper.respec.node.mjs +0 -78
- package/dist/engine/filter/glob-helper.respec.node.mjs.map +0 -1
- package/dist/engine/item/item.respec.node.d.mts +0 -7
- package/dist/engine/item/item.respec.node.d.mts.map +0 -1
- package/dist/engine/item/item.respec.node.mjs +0 -75
- package/dist/engine/item/item.respec.node.mjs.map +0 -1
- package/dist/vcs-gib.respec.node.d.mts +0 -8
- package/dist/vcs-gib.respec.node.d.mts.map +0 -1
- package/dist/vcs-gib.respec.node.mjs +0 -82
- package/dist/vcs-gib.respec.node.mjs.map +0 -1
- /package/src/bootstrap/{node-bootstrap.respec.node.mts → node-bootstrap.respec.mts} +0 -0
- /package/src/cli/{cli-arg-parser.respec.node.mts → cli-arg-parser.respec.mts} +0 -0
- /package/src/cli/{cli-e2e.respec.node.mts → cli-e2e.respec.mts} +0 -0
- /package/src/cli/commands/{commit-log-cmd.respec.node.mts → commit-log-cmd.respec.mts} +0 -0
- /package/src/cli/commands/{init-cmd.respec.node.mts → init-cmd.respec.mts} +0 -0
- /package/src/cli/commands/{reset-restore-cmd.respec.node.mts → reset-restore-cmd.respec.mts} +0 -0
- /package/src/cli/commands/{status-add-cmd.respec.node.mts → status-add-cmd.respec.mts} +0 -0
- /package/src/engine/branch/{branch-space.respec.node.mts → branch-space.respec.mts} +0 -0
- /package/src/engine/diff/{line-diff-helper.respec.node.mts → line-diff-helper.respec.mts} +0 -0
- /package/src/engine/filter/{glob-helper.respec.node.mts → glob-helper.respec.mts} +0 -0
- /package/src/engine/item/{item.respec.node.mts → item.respec.mts} +0 -0
- /package/src/{vcs-gib.respec.node.mts → vcs-gib.respec.mts} +0 -0
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module branch-space.respec.node
|
|
3
|
-
*
|
|
4
|
-
* Unit tests for branch space helper, space-qualified address formatting/parsing,
|
|
5
|
-
* and graph population into branch spaces.
|
|
6
|
-
*/
|
|
7
|
-
import path from 'node:path';
|
|
8
|
-
import fs from 'node:fs/promises';
|
|
9
|
-
import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
10
|
-
import { ROOT } from '@ibgib/ts-gib/dist/V1/constants.mjs';
|
|
11
|
-
import { Factory_V1 } from '@ibgib/ts-gib/dist/V1/factory.mjs';
|
|
12
|
-
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
13
|
-
import { getFromSpace, persistTransformResult } from '@ibgib/core-gib/dist/witness/space/space-helper.mjs';
|
|
14
|
-
import { bootstrapVcsMetaspace } from '../../bootstrap/node-bootstrap.mjs';
|
|
15
|
-
import { getB2tFSItemIb } from '../item/item-atom-helper.mjs';
|
|
16
|
-
import { getOrCreateBranchSpace } from './branch-space-helper.mjs';
|
|
17
|
-
import { populateBranchSpaceFromGraph } from './branch-graph-helper.mjs';
|
|
18
|
-
import { getSpaceQualifiedIbGibAddr, parseSpaceQualifiedIbGibAddr } from '../index/index-helper.mjs';
|
|
19
|
-
const lc = `[apps/vcs-gib/src/engine/branch/branch-space.respec.node.mts]`;
|
|
20
|
-
await respecfully(lc, `Branch Space & Graph Helper Respecs`, async () => {
|
|
21
|
-
await respecfully(lc, `Space-Qualified Address Parsing & Formatting`, async () => {
|
|
22
|
-
await ifWe(lc, `formats space-qualified address using options object`, async () => {
|
|
23
|
-
const sq = getSpaceQualifiedIbGibAddr({ spaceId: 'sp_alpha', ibGibAddr: 'item_a^gib123' });
|
|
24
|
-
iReckon(lc, sq).willEqual('v:1^spaceId:sp_alpha^item_a^gib123');
|
|
25
|
-
});
|
|
26
|
-
await ifWe(lc, `parses space-qualified address using options object`, async () => {
|
|
27
|
-
const parsed = parseSpaceQualifiedIbGibAddr({ spaceQualifiedAddr: 'v:1^spaceId:sp_alpha^item_a^gib123' });
|
|
28
|
-
iReckon(lc, parsed).isGonnaBeTruthy();
|
|
29
|
-
iReckon(lc, parsed.version).willEqual(1);
|
|
30
|
-
iReckon(lc, parsed.spaceId).willEqual('sp_alpha');
|
|
31
|
-
iReckon(lc, parsed.ibGibAddr).willEqual('item_a^gib123');
|
|
32
|
-
iReckon(lc, parsed.ib).willEqual('item_a');
|
|
33
|
-
iReckon(lc, parsed.gib).willEqual('gib123');
|
|
34
|
-
});
|
|
35
|
-
await ifWe(lc, `returns null for invalid space-qualified address string`, async () => {
|
|
36
|
-
const parsed = parseSpaceQualifiedIbGibAddr({ spaceQualifiedAddr: 'invalid_address_string' });
|
|
37
|
-
iReckon(lc, parsed).isGonnaBeFalsy();
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
await respecfully(lc, `Branch Space Lifecycle (getOrCreateBranchSpace)`, async () => {
|
|
41
|
-
await ifWe(lc, `creates a new dedicated branch space and retrieves existing space on second call`, async () => {
|
|
42
|
-
const testDir = path.join(process.cwd(), '.test_branch_space_repo');
|
|
43
|
-
try {
|
|
44
|
-
const { metaspace, vcsPath } = await bootstrapVcsMetaspace({
|
|
45
|
-
repoPath: testDir,
|
|
46
|
-
vcsFolderName: '.vcsgib_branch_test',
|
|
47
|
-
defaultSpaceName: 'test_space',
|
|
48
|
-
});
|
|
49
|
-
const branchName = 'feature_alpha';
|
|
50
|
-
const result1 = await getOrCreateBranchSpace({
|
|
51
|
-
metaspace,
|
|
52
|
-
vcsPath,
|
|
53
|
-
branchName,
|
|
54
|
-
});
|
|
55
|
-
iReckon(lc, result1.spaceName).willEqual('b2s_feature_alpha');
|
|
56
|
-
iReckon(lc, result1.spaceId).isGonnaBeTruthy();
|
|
57
|
-
iReckon(lc, result1.space).isGonnaBeTruthy();
|
|
58
|
-
const result2 = await getOrCreateBranchSpace({
|
|
59
|
-
metaspace,
|
|
60
|
-
vcsPath,
|
|
61
|
-
branchName,
|
|
62
|
-
});
|
|
63
|
-
iReckon(lc, result2.spaceName).willEqual('b2s_feature_alpha');
|
|
64
|
-
iReckon(lc, result2.spaceId).willEqual(result1.spaceId);
|
|
65
|
-
}
|
|
66
|
-
finally {
|
|
67
|
-
await fs.rm(testDir, { recursive: true, force: true });
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
await respecfully(lc, `Graph Population (populateBranchSpaceFromGraph)`, async () => {
|
|
72
|
-
await ifWe(lc, `populates target branch space with full dependency graph of root item`, async () => {
|
|
73
|
-
const testDir = path.join(process.cwd(), '.test_populate_graph_repo');
|
|
74
|
-
try {
|
|
75
|
-
const { metaspace, localSpace, vcsPath } = await bootstrapVcsMetaspace({
|
|
76
|
-
repoPath: testDir,
|
|
77
|
-
vcsFolderName: '.vcsgib_populate_test',
|
|
78
|
-
defaultSpaceName: 'test_space',
|
|
79
|
-
});
|
|
80
|
-
// Create child file item
|
|
81
|
-
const childRes = await Factory_V1.firstGen({
|
|
82
|
-
parentIbGib: ROOT,
|
|
83
|
-
ib: getB2tFSItemIb('file', 'file.txt', 'file_hash'),
|
|
84
|
-
data: {
|
|
85
|
-
name: 'file.txt',
|
|
86
|
-
nameHash: 'file_hash',
|
|
87
|
-
fsType: 'file',
|
|
88
|
-
diffTransactionId: 'tx_child',
|
|
89
|
-
},
|
|
90
|
-
});
|
|
91
|
-
const childItem = childRes.newIbGib;
|
|
92
|
-
const childAddr = getIbGibAddr({ ibGib: childItem });
|
|
93
|
-
await persistTransformResult({ resTransform: childRes, space: localSpace });
|
|
94
|
-
await metaspace.registerNewIbGib({ ibGib: childItem });
|
|
95
|
-
// Create root folder item referencing child
|
|
96
|
-
const rootRes = await Factory_V1.firstGen({
|
|
97
|
-
parentIbGib: ROOT,
|
|
98
|
-
ib: getB2tFSItemIb('folder', 'root', 'root_hash'),
|
|
99
|
-
data: {
|
|
100
|
-
name: 'root',
|
|
101
|
-
nameHash: 'root_hash',
|
|
102
|
-
fsType: 'folder',
|
|
103
|
-
diffTransactionId: 'tx_root',
|
|
104
|
-
},
|
|
105
|
-
rel8ns: {
|
|
106
|
-
b2tfs_item: [childAddr],
|
|
107
|
-
},
|
|
108
|
-
});
|
|
109
|
-
const rootItem = rootRes.newIbGib;
|
|
110
|
-
const rootAddr = getIbGibAddr({ ibGib: rootItem });
|
|
111
|
-
await persistTransformResult({ resTransform: rootRes, space: localSpace });
|
|
112
|
-
await metaspace.registerNewIbGib({ ibGib: rootItem });
|
|
113
|
-
// Create target branch space
|
|
114
|
-
const { space: targetBranchSpace } = await getOrCreateBranchSpace({
|
|
115
|
-
metaspace,
|
|
116
|
-
vcsPath,
|
|
117
|
-
branchName: 'main',
|
|
118
|
-
});
|
|
119
|
-
// Populate target branch space from source localSpace graph and create branch metadata node (SSM)
|
|
120
|
-
const popResult = await populateBranchSpaceFromGraph({
|
|
121
|
-
sourceSpace: localSpace,
|
|
122
|
-
targetBranchSpace,
|
|
123
|
-
rootItemIbGib: rootItem,
|
|
124
|
-
branchName: 'main',
|
|
125
|
-
metaspace,
|
|
126
|
-
});
|
|
127
|
-
iReckon(lc, popResult.syncedCount > 0).isGonnaBeTrue();
|
|
128
|
-
iReckon(lc, popResult.branchIbGib).isGonnaBeTruthy();
|
|
129
|
-
iReckon(lc, popResult.branchIbGib?.data?.name).willEqual('main');
|
|
130
|
-
iReckon(lc, popResult.branchIbGib?.rel8ns?.b2tfs_item).includes(rootAddr);
|
|
131
|
-
// Verify items exist in targetBranchSpace
|
|
132
|
-
const rootGet = await getFromSpace({ space: targetBranchSpace, addrs: [rootAddr] });
|
|
133
|
-
iReckon(lc, rootGet?.ibGibs?.length === 1).isGonnaBeTrue();
|
|
134
|
-
const childGet = await getFromSpace({ space: targetBranchSpace, addrs: [childAddr] });
|
|
135
|
-
iReckon(lc, childGet?.ibGibs?.length === 1).isGonnaBeTrue();
|
|
136
|
-
}
|
|
137
|
-
finally {
|
|
138
|
-
await fs.rm(testDir, { recursive: true, force: true });
|
|
139
|
-
}
|
|
140
|
-
});
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
|
-
//# sourceMappingURL=branch-space.respec.node.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"branch-space.respec.node.mjs","sourceRoot":"","sources":["../../../src/engine/branch/branch-space.respec.node.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"line-diff-helper.respec.node.d.mts","sourceRoot":"","sources":["../../../src/engine/diff/line-diff-helper.respec.node.mts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module line-diff-helper.respec
|
|
3
|
-
*
|
|
4
|
-
* Unit tests for native zero-dependency Myers / LCS line-diffing engine.
|
|
5
|
-
*/
|
|
6
|
-
import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
7
|
-
import { isBinaryBuffer, computeLineLcsDiff, getLineDiffChunks } from './line-diff-helper.mjs';
|
|
8
|
-
const lc = `[apps/vcs-gib/src/engine/diff/line-diff-helper.respec.node.mts]`;
|
|
9
|
-
const encoder = new TextEncoder();
|
|
10
|
-
await respecfully(lc, `Native Line Diff Engine (Zero-Dependency)`, async () => {
|
|
11
|
-
await respecfully(lc, `isBinaryBuffer`, async () => {
|
|
12
|
-
await ifWe(lc, `detects text buffer as non-binary`, async () => {
|
|
13
|
-
const buf = encoder.encode('Hello World\nLine 2');
|
|
14
|
-
iReckon(lc, isBinaryBuffer(buf)).isGonnaBeFalse();
|
|
15
|
-
});
|
|
16
|
-
await ifWe(lc, `detects null byte buffer as binary`, async () => {
|
|
17
|
-
const buf = new Uint8Array([0x48, 0x65, 0x00, 0x6c, 0x6f]);
|
|
18
|
-
iReckon(lc, isBinaryBuffer(buf)).isGonnaBeTrue();
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
await respecfully(lc, `computeLineLcsDiff`, async () => {
|
|
22
|
-
await ifWe(lc, `returns empty chunks for identical lines`, async () => {
|
|
23
|
-
const lines = ['line 1', 'line 2', 'line 3'];
|
|
24
|
-
const chunks = computeLineLcsDiff(lines, lines);
|
|
25
|
-
iReckon(lc, chunks.length).willEqual(0);
|
|
26
|
-
});
|
|
27
|
-
await ifWe(lc, `computes single line insertion chunk`, async () => {
|
|
28
|
-
const oldLines = ['line 1', 'line 3'];
|
|
29
|
-
const newLines = ['line 1', 'line 2', 'line 3'];
|
|
30
|
-
const chunks = computeLineLcsDiff(oldLines, newLines);
|
|
31
|
-
iReckon(lc, chunks.length).willEqual(1);
|
|
32
|
-
iReckon(lc, chunks[0].old_i).willEqual(1);
|
|
33
|
-
iReckon(lc, chunks[0].oldLines.length).willEqual(0);
|
|
34
|
-
iReckon(lc, chunks[0].newLines.length).willEqual(1);
|
|
35
|
-
iReckon(lc, chunks[0].newLines[0]).willEqual('line 2');
|
|
36
|
-
});
|
|
37
|
-
await ifWe(lc, `computes line replacement chunk`, async () => {
|
|
38
|
-
const oldLines = ['const x = 1;', 'const y = 2;'];
|
|
39
|
-
const newLines = ['const x = 1;', 'const y = 20;'];
|
|
40
|
-
const chunks = computeLineLcsDiff(oldLines, newLines);
|
|
41
|
-
iReckon(lc, chunks.length).willEqual(1);
|
|
42
|
-
iReckon(lc, chunks[0].old_i).willEqual(1);
|
|
43
|
-
iReckon(lc, chunks[0].oldLines[0]).willEqual('const y = 2;');
|
|
44
|
-
iReckon(lc, chunks[0].newLines[0]).willEqual('const y = 20;');
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
await respecfully(lc, `getLineDiffChunks`, async () => {
|
|
48
|
-
await ifWe(lc, `computes line diff for text buffers`, async () => {
|
|
49
|
-
const oldData = encoder.encode('alpha\nbeta\ngamma');
|
|
50
|
-
const newData = encoder.encode('alpha\nbeta_updated\ngamma');
|
|
51
|
-
const result = getLineDiffChunks({ oldData, newData });
|
|
52
|
-
iReckon(lc, result.treatedAsBinary).isGonnaBeUndefined();
|
|
53
|
-
iReckon(lc, result.chunks.length).willEqual(1);
|
|
54
|
-
iReckon(lc, result.chunks[0].oldLines[0]).willEqual('beta');
|
|
55
|
-
iReckon(lc, result.chunks[0].newLines[0]).willEqual('beta_updated');
|
|
56
|
-
});
|
|
57
|
-
await ifWe(lc, `flags binary data without force`, async () => {
|
|
58
|
-
const oldData = new Uint8Array([0x00, 0x01, 0x02]);
|
|
59
|
-
const newData = encoder.encode('hello');
|
|
60
|
-
const result = getLineDiffChunks({ oldData, newData });
|
|
61
|
-
iReckon(lc, result.treatedAsBinary).isGonnaBeTrue();
|
|
62
|
-
iReckon(lc, result.chunks.length).willEqual(0);
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
//# sourceMappingURL=line-diff-helper.respec.node.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"line-diff-helper.respec.node.mjs","sourceRoot":"","sources":["../../../src/engine/diff/line-diff-helper.respec.node.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"glob-helper.respec.node.d.mts","sourceRoot":"","sources":["../../../src/engine/filter/glob-helper.respec.node.mts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module glob-helper.respec
|
|
3
|
-
*
|
|
4
|
-
* Unit tests for native zero-dependency glob pattern matching engine.
|
|
5
|
-
*/
|
|
6
|
-
import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
7
|
-
import { globToRegExp, parseFilterFileContent, isPathFiltered } from './glob-helper.mjs';
|
|
8
|
-
const lc = `[apps/vcs-gib/src/engine/filter/glob-helper.respec.node.mts]`;
|
|
9
|
-
await respecfully(lc, `Native Glob Engine (Zero-Dependency)`, async () => {
|
|
10
|
-
await respecfully(lc, `parseFilterFileContent`, async () => {
|
|
11
|
-
await ifWe(lc, `parses filter file and strips comments & blank lines`, async () => {
|
|
12
|
-
const raw = `
|
|
13
|
-
# This is a comment
|
|
14
|
-
node_modules/
|
|
15
|
-
*.log
|
|
16
|
-
|
|
17
|
-
# Another comment
|
|
18
|
-
!important.log
|
|
19
|
-
`;
|
|
20
|
-
const patterns = parseFilterFileContent(raw);
|
|
21
|
-
iReckon(lc, patterns.length).willEqual(3);
|
|
22
|
-
iReckon(lc, patterns[0]).willEqual('node_modules/');
|
|
23
|
-
iReckon(lc, patterns[1]).willEqual('*.log');
|
|
24
|
-
iReckon(lc, patterns[2]).willEqual('!important.log');
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
await respecfully(lc, `globToRegExp`, async () => {
|
|
28
|
-
await ifWe(lc, `converts wildcard pattern to RegExp`, async () => {
|
|
29
|
-
const rx = globToRegExp('*.ts');
|
|
30
|
-
iReckon(lc, rx.test('index.ts')).isGonnaBeTrue();
|
|
31
|
-
iReckon(lc, rx.test('index.js')).isGonnaBeFalse();
|
|
32
|
-
});
|
|
33
|
-
await ifWe(lc, `handles recursive double asterisk **`, async () => {
|
|
34
|
-
const rx = globToRegExp('src/**/*.ts');
|
|
35
|
-
iReckon(lc, rx.test('src/index.ts')).isGonnaBeTrue();
|
|
36
|
-
iReckon(lc, rx.test('src/engine/item/item.ts')).isGonnaBeTrue();
|
|
37
|
-
iReckon(lc, rx.test('test/index.ts')).isGonnaBeFalse();
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
await respecfully(lc, `isPathFiltered`, async () => {
|
|
41
|
-
await ifWe(lc, `filters node_modules directory`, async () => {
|
|
42
|
-
const patterns = ['node_modules/', '*.log'];
|
|
43
|
-
iReckon(lc, isPathFiltered({
|
|
44
|
-
relativePath: 'node_modules',
|
|
45
|
-
isDirectory: true,
|
|
46
|
-
filterPatterns: patterns
|
|
47
|
-
})).isGonnaBeTrue();
|
|
48
|
-
iReckon(lc, isPathFiltered({
|
|
49
|
-
relativePath: 'src/node_modules/pkg',
|
|
50
|
-
isDirectory: true,
|
|
51
|
-
filterPatterns: patterns
|
|
52
|
-
})).isGonnaBeTrue();
|
|
53
|
-
});
|
|
54
|
-
await ifWe(lc, `honors negation rule ! prefix (last match wins)`, async () => {
|
|
55
|
-
const patterns = ['*.log', '!important.log'];
|
|
56
|
-
iReckon(lc, isPathFiltered({
|
|
57
|
-
relativePath: 'debug.log',
|
|
58
|
-
filterPatterns: patterns
|
|
59
|
-
})).isGonnaBeTrue();
|
|
60
|
-
iReckon(lc, isPathFiltered({
|
|
61
|
-
relativePath: 'important.log',
|
|
62
|
-
filterPatterns: patterns
|
|
63
|
-
})).isGonnaBeFalse();
|
|
64
|
-
});
|
|
65
|
-
await ifWe(lc, `handles JS regex pattern fallback`, async () => {
|
|
66
|
-
const patterns = ['regexp js ^test_.*\\.json$'];
|
|
67
|
-
iReckon(lc, isPathFiltered({
|
|
68
|
-
relativePath: 'test_data.json',
|
|
69
|
-
filterPatterns: patterns
|
|
70
|
-
})).isGonnaBeTrue();
|
|
71
|
-
iReckon(lc, isPathFiltered({
|
|
72
|
-
relativePath: 'prod_data.json',
|
|
73
|
-
filterPatterns: patterns
|
|
74
|
-
})).isGonnaBeFalse();
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
//# sourceMappingURL=glob-helper.respec.node.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"glob-helper.respec.node.mjs","sourceRoot":"","sources":["../../../src/engine/filter/glob-helper.respec.node.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"item.respec.node.d.mts","sourceRoot":"","sources":["../../../src/engine/item/item.respec.node.mts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module item.respec.node
|
|
3
|
-
*
|
|
4
|
-
* Unit tests for createB2tFSItemIbGib and evolveB2tFSItemIbGib timeline transforms.
|
|
5
|
-
*/
|
|
6
|
-
import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
7
|
-
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
8
|
-
import { getGibInfo } from '@ibgib/ts-gib/dist/V1/transforms/transform-helper.mjs';
|
|
9
|
-
import { createB2tFSItemIbGib, evolveB2tFSItemIbGib } from './item-helper.mjs';
|
|
10
|
-
const lc = `[apps/vcs-gib/src/engine/item/item.respec.node.mts]`;
|
|
11
|
-
await respecfully(lc, `B2tFS Item Timeline Transforms`, async () => {
|
|
12
|
-
await respecfully(lc, `createB2tFSItemIbGib`, async () => {
|
|
13
|
-
await ifWe(lc, `creates brand-new file item with TJP and DNA`, async () => {
|
|
14
|
-
const res = await createB2tFSItemIbGib({
|
|
15
|
-
fsType: 'file',
|
|
16
|
-
name: 'test.txt',
|
|
17
|
-
data: {
|
|
18
|
-
fileHash: 'hash_abc_123',
|
|
19
|
-
},
|
|
20
|
-
});
|
|
21
|
-
const item = res.newIbGib;
|
|
22
|
-
iReckon(lc, item).isGonnaBeTruthy();
|
|
23
|
-
iReckon(lc, item.data?.name).willEqual('test.txt');
|
|
24
|
-
iReckon(lc, item.data?.fileHash).willEqual('hash_abc_123');
|
|
25
|
-
iReckon(lc, item.rel8ns?.ancestor).isGonnaBeTruthy();
|
|
26
|
-
iReckon(lc, item.rel8ns?.tjp).isGonnaBeTruthy();
|
|
27
|
-
const gibInfo = getGibInfo({ gib: item.gib });
|
|
28
|
-
iReckon(lc, gibInfo.tjpGib).isGonnaBeTruthy();
|
|
29
|
-
iReckon(lc, gibInfo.punctiliarHash).isGonnaBeTruthy();
|
|
30
|
-
});
|
|
31
|
-
await ifWe(lc, `creates brand-new folder item`, async () => {
|
|
32
|
-
const res = await createB2tFSItemIbGib({
|
|
33
|
-
fsType: 'folder',
|
|
34
|
-
name: 'src',
|
|
35
|
-
});
|
|
36
|
-
const item = res.newIbGib;
|
|
37
|
-
iReckon(lc, item).isGonnaBeTruthy();
|
|
38
|
-
iReckon(lc, item.data?.fsType).willEqual('folder');
|
|
39
|
-
iReckon(lc, item.data?.name).willEqual('src');
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
await respecfully(lc, `evolveB2tFSItemIbGib`, async () => {
|
|
43
|
-
await ifWe(lc, `evolves existing item via mut8/rel8, generating two-part timeline gib and rel8ns.past`, async () => {
|
|
44
|
-
const createRes = await createB2tFSItemIbGib({
|
|
45
|
-
fsType: 'file',
|
|
46
|
-
name: 'config.json',
|
|
47
|
-
data: {
|
|
48
|
-
fileHash: 'hash_v1',
|
|
49
|
-
},
|
|
50
|
-
});
|
|
51
|
-
const initialItem = createRes.newIbGib;
|
|
52
|
-
const initialAddr = getIbGibAddr({ ibGib: initialItem });
|
|
53
|
-
const initialGibInfo = getGibInfo({ gib: initialItem.gib });
|
|
54
|
-
// Evolve item with updated fileHash
|
|
55
|
-
const evolveRes = await evolveB2tFSItemIbGib({
|
|
56
|
-
existingItem: initialItem,
|
|
57
|
-
dataToUpdate: {
|
|
58
|
-
fileHash: 'hash_v2',
|
|
59
|
-
},
|
|
60
|
-
});
|
|
61
|
-
const evolvedItem = evolveRes.newIbGib;
|
|
62
|
-
const evolvedAddr = getIbGibAddr({ ibGib: evolvedItem });
|
|
63
|
-
const evolvedGibInfo = getGibInfo({ gib: evolvedItem.gib });
|
|
64
|
-
iReckon(lc, evolvedItem.data?.fileHash).willEqual('hash_v2');
|
|
65
|
-
iReckon(lc, evolvedItem.rel8ns?.past).includes(initialAddr);
|
|
66
|
-
iReckon(lc, evolvedItem.rel8ns?.ancestor).isGonnaBeTruthy();
|
|
67
|
-
iReckon(lc, evolvedItem.rel8ns?.tjp).willEqual(initialItem.rel8ns?.tjp);
|
|
68
|
-
// Verify two-part composite timeline gib address
|
|
69
|
-
iReckon(lc, evolvedGibInfo.tjpGib).willEqual(initialGibInfo.tjpGib);
|
|
70
|
-
iReckon(lc, evolvedGibInfo.punctiliarHash).isGonnaBeTruthy();
|
|
71
|
-
iReckon(lc, evolvedGibInfo.punctiliarHash !== initialGibInfo.punctiliarHash).isGonnaBeTrue();
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
//# sourceMappingURL=item.respec.node.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"item.respec.node.mjs","sourceRoot":"","sources":["../../../src/engine/item/item.respec.node.mts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module vcs-gib.respec.node
|
|
3
|
-
*
|
|
4
|
-
* Full Engine Cycle Integration Tests for @ibgib/vcs-gib.
|
|
5
|
-
* Tests Metaspace bootstrap, canonical ib atoms, item creation, branch spaces, and index tracking.
|
|
6
|
-
*/
|
|
7
|
-
export {};
|
|
8
|
-
//# sourceMappingURL=vcs-gib.respec.node.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vcs-gib.respec.node.d.mts","sourceRoot":"","sources":["../src/vcs-gib.respec.node.mts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module vcs-gib.respec.node
|
|
3
|
-
*
|
|
4
|
-
* Full Engine Cycle Integration Tests for @ibgib/vcs-gib.
|
|
5
|
-
* Tests Metaspace bootstrap, canonical ib atoms, item creation, branch spaces, and index tracking.
|
|
6
|
-
*/
|
|
7
|
-
import path from 'node:path';
|
|
8
|
-
import fs from 'node:fs/promises';
|
|
9
|
-
import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
10
|
-
import { ROOT } from '@ibgib/ts-gib/dist/V1/constants.mjs';
|
|
11
|
-
import { Factory_V1 } from '@ibgib/ts-gib/dist/V1/factory.mjs';
|
|
12
|
-
import { bootstrapVcsMetaspace } from './bootstrap/node-bootstrap.mjs';
|
|
13
|
-
import { getB2tFSItemIb } from './engine/item/item-atom-helper.mjs';
|
|
14
|
-
import { createB2tFSBranchIbGib, getB2tFSBranchSpaceName } from './engine/branch/branch-helper.mjs';
|
|
15
|
-
import { createB2tFSIndexIbGib, getSpaceQualifiedIbGibAddr, parseSpaceQualifiedIbGibAddr } from './engine/index/index-helper.mjs';
|
|
16
|
-
const lc = `[apps/vcs-gib/src/vcs-gib.respec.node.mts]`;
|
|
17
|
-
await respecfully(lc, `vcs-gib Full Engine Cycle`, async () => {
|
|
18
|
-
await respecfully(lc, `Canonical ib Atoms`, async () => {
|
|
19
|
-
await ifWe(lc, `formats canonical space-delimited ib atom strings`, async () => {
|
|
20
|
-
const ib = getB2tFSItemIb('file', 'index.mts', 'hash123');
|
|
21
|
-
iReckon(lc, ib).includes('b2tfs_item file index.mts v1 hash123');
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
await respecfully(lc, `Space-Qualified Addresses`, async () => {
|
|
25
|
-
await ifWe(lc, `formats and parses space-qualified addresses`, async () => {
|
|
26
|
-
const sq = getSpaceQualifiedIbGibAddr('space_a', 'item^gib123');
|
|
27
|
-
iReckon(lc, sq).willEqual('v:1^spaceId:space_a^item^gib123');
|
|
28
|
-
const parsed = parseSpaceQualifiedIbGibAddr(sq);
|
|
29
|
-
iReckon(lc, parsed?.spaceId).willEqual('space_a');
|
|
30
|
-
iReckon(lc, parsed?.ibGibAddr).willEqual('item^gib123');
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
await respecfully(lc, `Branch Spaces & Index Tracking`, async () => {
|
|
34
|
-
await ifWe(lc, `initializes metaspace, creates branch, and registers index`, async () => {
|
|
35
|
-
const testDir = path.join(process.cwd(), '.test_cycle_repo');
|
|
36
|
-
try {
|
|
37
|
-
const { metaspace, localSpace } = await bootstrapVcsMetaspace({
|
|
38
|
-
repoPath: testDir,
|
|
39
|
-
vcsFolderName: '.vcsgib_cycle_test',
|
|
40
|
-
defaultSpaceName: 'test_space',
|
|
41
|
-
});
|
|
42
|
-
// Create root folder item
|
|
43
|
-
const itemRes = await Factory_V1.firstGen({
|
|
44
|
-
parentIbGib: ROOT,
|
|
45
|
-
ib: getB2tFSItemIb('folder', 'root', 'root_hash'),
|
|
46
|
-
data: {
|
|
47
|
-
name: 'root',
|
|
48
|
-
nameHash: 'root_hash',
|
|
49
|
-
fsType: 'folder',
|
|
50
|
-
diffTransactionId: 'tx_123',
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
const rootItem = itemRes.newIbGib;
|
|
54
|
-
// Create Branch IbGib
|
|
55
|
-
const branchName = 'main';
|
|
56
|
-
const branchSpaceName = getB2tFSBranchSpaceName(branchName);
|
|
57
|
-
iReckon(lc, branchSpaceName).willEqual('b2s_main');
|
|
58
|
-
const branchIbGib = await createB2tFSBranchIbGib({
|
|
59
|
-
branchName,
|
|
60
|
-
rootItem,
|
|
61
|
-
space: localSpace,
|
|
62
|
-
metaspace,
|
|
63
|
-
});
|
|
64
|
-
iReckon(lc, branchIbGib.data?.name).willEqual('main');
|
|
65
|
-
// Create Index IbGib
|
|
66
|
-
const indexIbGib = await createB2tFSIndexIbGib({
|
|
67
|
-
spaceId: 'local_space_uuid',
|
|
68
|
-
activeSpaceId: 'local_space_uuid',
|
|
69
|
-
space: localSpace,
|
|
70
|
-
metaspace,
|
|
71
|
-
});
|
|
72
|
-
iReckon(lc, indexIbGib.data?.mySpaceId).willEqual('local_space_uuid');
|
|
73
|
-
iReckon(lc, indexIbGib.data?.staged_item).willEqual([]);
|
|
74
|
-
iReckon(lc, indexIbGib.rel8ns?.staged_item).isGonnaBeFalsy();
|
|
75
|
-
}
|
|
76
|
-
finally {
|
|
77
|
-
await fs.rm(testDir, { recursive: true, force: true });
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
//# sourceMappingURL=vcs-gib.respec.node.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vcs-gib.respec.node.mjs","sourceRoot":"","sources":["../src/vcs-gib.respec.node.mts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/src/cli/commands/{reset-restore-cmd.respec.node.mts → reset-restore-cmd.respec.mts}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|