@ibgib/vcs-gib 0.0.6
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 +94 -0
- package/VCS_CLI_USER_GUIDE.md +198 -0
- package/dist/AUTO-GENERATED-version.d.mts +6 -0
- package/dist/AUTO-GENERATED-version.d.mts.map +1 -0
- package/dist/AUTO-GENERATED-version.mjs +6 -0
- package/dist/AUTO-GENERATED-version.mjs.map +1 -0
- package/dist/assumptions.respec.d.mts +2 -0
- package/dist/assumptions.respec.d.mts.map +1 -0
- package/dist/assumptions.respec.mjs +41 -0
- package/dist/assumptions.respec.mjs.map +1 -0
- package/dist/bootstrap/node-bootstrap.d.mts +35 -0
- package/dist/bootstrap/node-bootstrap.d.mts.map +1 -0
- package/dist/bootstrap/node-bootstrap.mjs +165 -0
- package/dist/bootstrap/node-bootstrap.mjs.map +1 -0
- package/dist/bootstrap/node-bootstrap.respec.node.d.mts +7 -0
- package/dist/bootstrap/node-bootstrap.respec.node.d.mts.map +1 -0
- package/dist/bootstrap/node-bootstrap.respec.node.mjs +28 -0
- package/dist/bootstrap/node-bootstrap.respec.node.mjs.map +1 -0
- package/dist/cli/cli-arg-parser.d.mts +27 -0
- package/dist/cli/cli-arg-parser.d.mts.map +1 -0
- package/dist/cli/cli-arg-parser.mjs +96 -0
- package/dist/cli/cli-arg-parser.mjs.map +1 -0
- package/dist/cli/cli-arg-parser.respec.node.d.mts +7 -0
- package/dist/cli/cli-arg-parser.respec.node.d.mts.map +1 -0
- package/dist/cli/cli-arg-parser.respec.node.mjs +35 -0
- package/dist/cli/cli-arg-parser.respec.node.mjs.map +1 -0
- package/dist/cli/cli-constants.d.mts +26 -0
- package/dist/cli/cli-constants.d.mts.map +1 -0
- package/dist/cli/cli-constants.mjs +67 -0
- package/dist/cli/cli-constants.mjs.map +1 -0
- package/dist/cli/cli-e2e.respec.node.d.mts +8 -0
- package/dist/cli/cli-e2e.respec.node.d.mts.map +1 -0
- package/dist/cli/cli-e2e.respec.node.mjs +263 -0
- package/dist/cli/cli-e2e.respec.node.mjs.map +1 -0
- package/dist/cli/commands/add-cmd.d.mts +20 -0
- package/dist/cli/commands/add-cmd.d.mts.map +1 -0
- package/dist/cli/commands/add-cmd.mjs +333 -0
- package/dist/cli/commands/add-cmd.mjs.map +1 -0
- package/dist/cli/commands/branch-checkout-cmd.respec.node.d.mts +7 -0
- package/dist/cli/commands/branch-checkout-cmd.respec.node.d.mts.map +1 -0
- package/dist/cli/commands/branch-checkout-cmd.respec.node.mjs +288 -0
- package/dist/cli/commands/branch-checkout-cmd.respec.node.mjs.map +1 -0
- package/dist/cli/commands/branch-cmd.d.mts +25 -0
- package/dist/cli/commands/branch-cmd.d.mts.map +1 -0
- package/dist/cli/commands/branch-cmd.mjs +187 -0
- package/dist/cli/commands/branch-cmd.mjs.map +1 -0
- package/dist/cli/commands/checkout-cmd.d.mts +21 -0
- package/dist/cli/commands/checkout-cmd.d.mts.map +1 -0
- package/dist/cli/commands/checkout-cmd.mjs +154 -0
- package/dist/cli/commands/checkout-cmd.mjs.map +1 -0
- package/dist/cli/commands/commit-cmd.d.mts +23 -0
- package/dist/cli/commands/commit-cmd.d.mts.map +1 -0
- package/dist/cli/commands/commit-cmd.mjs +326 -0
- package/dist/cli/commands/commit-cmd.mjs.map +1 -0
- package/dist/cli/commands/commit-log-cmd.respec.node.d.mts +7 -0
- package/dist/cli/commands/commit-log-cmd.respec.node.d.mts.map +1 -0
- package/dist/cli/commands/commit-log-cmd.respec.node.mjs +251 -0
- package/dist/cli/commands/commit-log-cmd.respec.node.mjs.map +1 -0
- package/dist/cli/commands/init-cmd.d.mts +20 -0
- package/dist/cli/commands/init-cmd.d.mts.map +1 -0
- package/dist/cli/commands/init-cmd.mjs +119 -0
- package/dist/cli/commands/init-cmd.mjs.map +1 -0
- package/dist/cli/commands/init-cmd.respec.node.d.mts +7 -0
- package/dist/cli/commands/init-cmd.respec.node.d.mts.map +1 -0
- package/dist/cli/commands/init-cmd.respec.node.mjs +40 -0
- package/dist/cli/commands/init-cmd.respec.node.mjs.map +1 -0
- package/dist/cli/commands/log-cmd.d.mts +27 -0
- package/dist/cli/commands/log-cmd.d.mts.map +1 -0
- package/dist/cli/commands/log-cmd.mjs +146 -0
- package/dist/cli/commands/log-cmd.mjs.map +1 -0
- package/dist/cli/commands/status-add-cmd.respec.node.d.mts +7 -0
- package/dist/cli/commands/status-add-cmd.respec.node.d.mts.map +1 -0
- package/dist/cli/commands/status-add-cmd.respec.node.mjs +215 -0
- package/dist/cli/commands/status-add-cmd.respec.node.mjs.map +1 -0
- package/dist/cli/commands/status-cmd.d.mts +25 -0
- package/dist/cli/commands/status-cmd.d.mts.map +1 -0
- package/dist/cli/commands/status-cmd.mjs +286 -0
- package/dist/cli/commands/status-cmd.mjs.map +1 -0
- package/dist/cli/vcs-cli-main.d.mts +14 -0
- package/dist/cli/vcs-cli-main.d.mts.map +1 -0
- package/dist/cli/vcs-cli-main.mjs +136 -0
- package/dist/cli/vcs-cli-main.mjs.map +1 -0
- package/dist/engine/branch/branch-graph-helper.d.mts +19 -0
- package/dist/engine/branch/branch-graph-helper.d.mts.map +1 -0
- package/dist/engine/branch/branch-graph-helper.mjs +49 -0
- package/dist/engine/branch/branch-graph-helper.mjs.map +1 -0
- package/dist/engine/branch/branch-helper.d.mts +26 -0
- package/dist/engine/branch/branch-helper.d.mts.map +1 -0
- package/dist/engine/branch/branch-helper.mjs +57 -0
- package/dist/engine/branch/branch-helper.mjs.map +1 -0
- package/dist/engine/branch/branch-space-helper.d.mts +22 -0
- package/dist/engine/branch/branch-space-helper.d.mts.map +1 -0
- package/dist/engine/branch/branch-space-helper.mjs +77 -0
- package/dist/engine/branch/branch-space-helper.mjs.map +1 -0
- package/dist/engine/branch/branch-space.respec.node.d.mts +8 -0
- package/dist/engine/branch/branch-space.respec.node.d.mts.map +1 -0
- package/dist/engine/branch/branch-space.respec.node.mjs +138 -0
- package/dist/engine/branch/branch-space.respec.node.mjs.map +1 -0
- package/dist/engine/branch/branch-types.d.mts +26 -0
- package/dist/engine/branch/branch-types.d.mts.map +1 -0
- package/dist/engine/branch/branch-types.mjs +7 -0
- package/dist/engine/branch/branch-types.mjs.map +1 -0
- package/dist/engine/diff/line-diff-helper.d.mts +76 -0
- package/dist/engine/diff/line-diff-helper.d.mts.map +1 -0
- package/dist/engine/diff/line-diff-helper.mjs +144 -0
- package/dist/engine/diff/line-diff-helper.mjs.map +1 -0
- package/dist/engine/diff/line-diff-helper.respec.node.d.mts +7 -0
- package/dist/engine/diff/line-diff-helper.respec.node.d.mts.map +1 -0
- package/dist/engine/diff/line-diff-helper.respec.node.mjs +66 -0
- package/dist/engine/diff/line-diff-helper.respec.node.mjs.map +1 -0
- package/dist/engine/filter/glob-helper.d.mts +51 -0
- package/dist/engine/filter/glob-helper.d.mts.map +1 -0
- package/dist/engine/filter/glob-helper.mjs +132 -0
- package/dist/engine/filter/glob-helper.mjs.map +1 -0
- package/dist/engine/filter/glob-helper.respec.node.d.mts +7 -0
- package/dist/engine/filter/glob-helper.respec.node.d.mts.map +1 -0
- package/dist/engine/filter/glob-helper.respec.node.mjs +78 -0
- package/dist/engine/filter/glob-helper.respec.node.mjs.map +1 -0
- package/dist/engine/index/index-helper.d.mts +78 -0
- package/dist/engine/index/index-helper.d.mts.map +1 -0
- package/dist/engine/index/index-helper.mjs +289 -0
- package/dist/engine/index/index-helper.mjs.map +1 -0
- package/dist/engine/index/index-types.d.mts +63 -0
- package/dist/engine/index/index-types.d.mts.map +1 -0
- package/dist/engine/index/index-types.mjs +7 -0
- package/dist/engine/index/index-types.mjs.map +1 -0
- package/dist/engine/item/item-atom-helper.d.mts +20 -0
- package/dist/engine/item/item-atom-helper.d.mts.map +1 -0
- package/dist/engine/item/item-atom-helper.mjs +30 -0
- package/dist/engine/item/item-atom-helper.mjs.map +1 -0
- package/dist/engine/item/item-helper.d.mts +37 -0
- package/dist/engine/item/item-helper.d.mts.map +1 -0
- package/dist/engine/item/item-helper.mjs +194 -0
- package/dist/engine/item/item-helper.mjs.map +1 -0
- package/dist/engine/item/item-types.d.mts +127 -0
- package/dist/engine/item/item-types.d.mts.map +1 -0
- package/dist/engine/item/item-types.mjs +16 -0
- package/dist/engine/item/item-types.mjs.map +1 -0
- package/dist/index.d.mts +7 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +7 -0
- package/dist/index.mjs.map +1 -0
- package/dist/respec-gib.node.d.mts +7 -0
- package/dist/respec-gib.node.d.mts.map +1 -0
- package/dist/respec-gib.node.mjs +11 -0
- package/dist/respec-gib.node.mjs.map +1 -0
- package/dist/vcs-gib-constants.d.mts +7 -0
- package/dist/vcs-gib-constants.d.mts.map +1 -0
- package/dist/vcs-gib-constants.mjs +7 -0
- package/dist/vcs-gib-constants.mjs.map +1 -0
- package/dist/vcs-gib.respec.node.d.mts +8 -0
- package/dist/vcs-gib.respec.node.d.mts.map +1 -0
- package/dist/vcs-gib.respec.node.mjs +82 -0
- package/dist/vcs-gib.respec.node.mjs.map +1 -0
- package/generate-version-file.js +20 -0
- package/package.json +28 -0
- package/src/AUTO-GENERATED-version.mts +5 -0
- package/src/assumptions.respec.mts +50 -0
- package/src/bootstrap/node-bootstrap.mts +198 -0
- package/src/bootstrap/node-bootstrap.respec.node.mts +35 -0
- package/src/cli/cli-arg-parser.mts +119 -0
- package/src/cli/cli-arg-parser.respec.node.mts +45 -0
- package/src/cli/cli-constants.mts +77 -0
- package/src/cli/cli-e2e.respec.node.mts +318 -0
- package/src/cli/commands/add-cmd.mts +415 -0
- package/src/cli/commands/branch-checkout-cmd.respec.node.mts +322 -0
- package/src/cli/commands/branch-cmd.mts +243 -0
- package/src/cli/commands/checkout-cmd.mts +202 -0
- package/src/cli/commands/commit-cmd.mts +421 -0
- package/src/cli/commands/commit-log-cmd.respec.node.mts +276 -0
- package/src/cli/commands/init-cmd.mts +152 -0
- package/src/cli/commands/init-cmd.respec.node.mts +49 -0
- package/src/cli/commands/log-cmd.mts +197 -0
- package/src/cli/commands/status-add-cmd.respec.node.mts +246 -0
- package/src/cli/commands/status-cmd.mts +366 -0
- package/src/cli/vcs-cli-main.mts +153 -0
- package/src/engine/branch/branch-graph-helper.mts +69 -0
- package/src/engine/branch/branch-helper.mts +79 -0
- package/src/engine/branch/branch-space-helper.mts +104 -0
- package/src/engine/branch/branch-space.respec.node.mts +158 -0
- package/src/engine/branch/branch-types.mts +29 -0
- package/src/engine/diff/line-diff-helper.mts +210 -0
- package/src/engine/diff/line-diff-helper.respec.node.mts +84 -0
- package/src/engine/filter/glob-helper.mts +165 -0
- package/src/engine/filter/glob-helper.respec.node.mts +94 -0
- package/src/engine/index/index-helper.mts +378 -0
- package/src/engine/index/index-types.mts +66 -0
- package/src/engine/item/item-atom-helper.mts +30 -0
- package/src/engine/item/item-helper.mts +239 -0
- package/src/engine/item/item-types.mts +136 -0
- package/src/index.mts +7 -0
- package/src/respec-gib.node.mts +12 -0
- package/src/vcs-gib-constants.mts +7 -0
- package/src/vcs-gib.respec.node.mts +96 -0
- package/test_runs/001-hello-node/20260728_090100_0001-flow-core-main.md +39 -0
- package/test_runs/001-hello-node/20260728_090200_0003-flow-branching-worktree.md +54 -0
- package/test_runs/001-hello-node/20260728_090300_0002-flow-selective-add.md +45 -0
- package/test_runs/001-hello-node/20260728_142100_0007-flow-edge-cases.md +44 -0
- package/test_runs/001-hello-node/20260728_142400_0005-flow-hardcoded-ignores.md +36 -0
- package/tools/pack-for-test.mjs +73 -0
- package/tsconfig.json +18 -0
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-arg-parser.d.mts","sourceRoot":"","sources":["../../src/cli/cli-arg-parser.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACH,eAAe,EAQlB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,aAAa,GAAG,OAAO,eAAe,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAEjF,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,CAAC;CACrB;AAgBD;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CAiE1D"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cli-arg-parser
|
|
3
|
+
*
|
|
4
|
+
* Native, zero-dependency command line argument parser for vcs CLI commands.
|
|
5
|
+
* Refactored to use RCLIParamInfo constants and VCS_SUBCOMMANDS definitions.
|
|
6
|
+
*/
|
|
7
|
+
import { VCS_SUBCOMMANDS, VCS_PARAM_MESSAGE, VCS_PARAM_BRANCH, VCS_PARAM_ALL, VCS_PARAM_FORCE, VCS_PARAM_VERBOSE, VCS_PARAM_HELP, VCS_PARAM_SHARE_IGNORED, } from './cli-constants.mjs';
|
|
8
|
+
function matchesParam(arg, paramInfo) {
|
|
9
|
+
if (!arg || !arg.startsWith('-')) {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
const stripped = arg.replace(/^-+/, '');
|
|
13
|
+
if (paramInfo.name && stripped === paramInfo.name) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
if (paramInfo.synonyms && paramInfo.synonyms.includes(stripped)) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Parses raw command line argument vector (process.argv.slice(2)).
|
|
23
|
+
*/
|
|
24
|
+
export function parseVcsArgs(argv) {
|
|
25
|
+
const rawArgs = [...argv];
|
|
26
|
+
let command = VCS_SUBCOMMANDS.HELP;
|
|
27
|
+
const positionals = [];
|
|
28
|
+
const flags = {};
|
|
29
|
+
const validSubcommands = Object.values(VCS_SUBCOMMANDS);
|
|
30
|
+
let i = 0;
|
|
31
|
+
while (i < rawArgs.length) {
|
|
32
|
+
const arg = rawArgs[i];
|
|
33
|
+
if (matchesParam(arg, VCS_PARAM_HELP)) {
|
|
34
|
+
flags.help = true;
|
|
35
|
+
i++;
|
|
36
|
+
}
|
|
37
|
+
else if (arg === '--version' || (arg === '-v' && rawArgs.length === 1)) {
|
|
38
|
+
if (command === VCS_SUBCOMMANDS.HELP) {
|
|
39
|
+
command = VCS_SUBCOMMANDS.VERSION;
|
|
40
|
+
}
|
|
41
|
+
i++;
|
|
42
|
+
}
|
|
43
|
+
else if (matchesParam(arg, VCS_PARAM_MESSAGE)) {
|
|
44
|
+
flags.message = rawArgs[i + 1] || '';
|
|
45
|
+
i += 2;
|
|
46
|
+
}
|
|
47
|
+
else if (matchesParam(arg, VCS_PARAM_BRANCH)) {
|
|
48
|
+
flags.branchName = rawArgs[i + 1] || '';
|
|
49
|
+
i += 2;
|
|
50
|
+
}
|
|
51
|
+
else if (matchesParam(arg, VCS_PARAM_ALL)) {
|
|
52
|
+
flags.all = true;
|
|
53
|
+
i++;
|
|
54
|
+
}
|
|
55
|
+
else if (matchesParam(arg, VCS_PARAM_FORCE)) {
|
|
56
|
+
flags.force = true;
|
|
57
|
+
i++;
|
|
58
|
+
}
|
|
59
|
+
else if (matchesParam(arg, VCS_PARAM_VERBOSE)) {
|
|
60
|
+
flags.verbose = true;
|
|
61
|
+
i++;
|
|
62
|
+
}
|
|
63
|
+
else if (matchesParam(arg, VCS_PARAM_SHARE_IGNORED)) {
|
|
64
|
+
flags.shareIgnored = true;
|
|
65
|
+
i++;
|
|
66
|
+
}
|
|
67
|
+
else if (!arg.startsWith('-')) {
|
|
68
|
+
if (command === VCS_SUBCOMMANDS.HELP) {
|
|
69
|
+
const normalized = arg.toLowerCase();
|
|
70
|
+
if (validSubcommands.includes(normalized)) {
|
|
71
|
+
command = normalized;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
positionals.push(arg);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
positionals.push(arg);
|
|
79
|
+
}
|
|
80
|
+
i++;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
i++;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (flags.help && command !== VCS_SUBCOMMANDS.VERSION) {
|
|
87
|
+
command = VCS_SUBCOMMANDS.HELP;
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
command,
|
|
91
|
+
positionals,
|
|
92
|
+
flags,
|
|
93
|
+
rawArgs,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=cli-arg-parser.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-arg-parser.mjs","sourceRoot":"","sources":["../../src/cli/cli-arg-parser.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-arg-parser.respec.node.d.mts","sourceRoot":"","sources":["../../src/cli/cli-arg-parser.respec.node.mts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cli-arg-parser.respec
|
|
3
|
+
*
|
|
4
|
+
* Unit tests for zero-dependency vcs CLI argument parser.
|
|
5
|
+
*/
|
|
6
|
+
import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
7
|
+
import { parseVcsArgs } from './cli-arg-parser.mjs';
|
|
8
|
+
const lc = `[apps/vcs-gib/src/cli/cli-arg-parser.respec.node.mts]`;
|
|
9
|
+
await respecfully(lc, `Zero-Dependency CLI Argument Parser`, async () => {
|
|
10
|
+
await respecfully(lc, `parseVcsArgs`, async () => {
|
|
11
|
+
await ifWe(lc, `parses init command and target path positional`, async () => {
|
|
12
|
+
const parsed = parseVcsArgs(['init', 'my_repo']);
|
|
13
|
+
iReckon(lc, parsed.command).willEqual('init');
|
|
14
|
+
iReckon(lc, parsed.positionals[0]).willEqual('my_repo');
|
|
15
|
+
});
|
|
16
|
+
await ifWe(lc, `parses commit command with message flag -m`, async () => {
|
|
17
|
+
const parsed = parseVcsArgs(['commit', '-m', 'initial commit']);
|
|
18
|
+
iReckon(lc, parsed.command).willEqual('commit');
|
|
19
|
+
iReckon(lc, parsed.flags.message).willEqual('initial commit');
|
|
20
|
+
});
|
|
21
|
+
await ifWe(lc, `parses add command with --all flag and positionals`, async () => {
|
|
22
|
+
const parsed = parseVcsArgs(['add', 'src/index.mts', '--all']);
|
|
23
|
+
iReckon(lc, parsed.command).willEqual('add');
|
|
24
|
+
iReckon(lc, parsed.positionals[0]).willEqual('src/index.mts');
|
|
25
|
+
iReckon(lc, parsed.flags.all).isGonnaBeTrue();
|
|
26
|
+
});
|
|
27
|
+
await ifWe(lc, `defaults to help command when no args or --help specified`, async () => {
|
|
28
|
+
const parsed1 = parseVcsArgs([]);
|
|
29
|
+
iReckon(lc, parsed1.command).willEqual('help');
|
|
30
|
+
const parsed2 = parseVcsArgs(['status', '--help']);
|
|
31
|
+
iReckon(lc, parsed2.command).willEqual('help');
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=cli-arg-parser.respec.node.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-arg-parser.respec.node.mjs","sourceRoot":"","sources":["../../src/cli/cli-arg-parser.respec.node.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,WAAW,EAAE,IAAI,EAAE,OAAO,EAC7B,MAAM,kDAAkD,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,EAAE,GAAG,uDAAuD,CAAC;AAEnE,MAAM,WAAW,CAAC,EAAE,EAAE,qCAAqC,EAAE,KAAK,IAAI,EAAE;IAEpE,MAAM,WAAW,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,IAAI,CAAC,EAAE,EAAE,gDAAgD,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;YACjD,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,EAAE,EAAE,4CAA4C,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAChD,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,EAAE,EAAE,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;YAC/D,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC7C,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAC9D,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,EAAE,EAAE,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACnF,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;YACjC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAE/C,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;YACnD,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cli-constants
|
|
3
|
+
*
|
|
4
|
+
* Constants and RCLIParamInfo parameter definitions for vcs CLI commands.
|
|
5
|
+
*/
|
|
6
|
+
import { RCLIParamInfo } from '@ibgib/helper-gib/dist/rcli/rcli-types.mjs';
|
|
7
|
+
export declare const VCS_CMD_NAME = "vcs";
|
|
8
|
+
export declare const VCS_SUBCOMMANDS: {
|
|
9
|
+
readonly INIT: 'init';
|
|
10
|
+
readonly STATUS: 'status';
|
|
11
|
+
readonly ADD: 'add';
|
|
12
|
+
readonly COMMIT: 'commit';
|
|
13
|
+
readonly LOG: 'log';
|
|
14
|
+
readonly BRANCH: 'branch';
|
|
15
|
+
readonly CHECKOUT: 'checkout';
|
|
16
|
+
readonly HELP: 'help';
|
|
17
|
+
readonly VERSION: 'version';
|
|
18
|
+
};
|
|
19
|
+
export declare const VCS_PARAM_MESSAGE: RCLIParamInfo;
|
|
20
|
+
export declare const VCS_PARAM_BRANCH: RCLIParamInfo;
|
|
21
|
+
export declare const VCS_PARAM_ALL: RCLIParamInfo;
|
|
22
|
+
export declare const VCS_PARAM_FORCE: RCLIParamInfo;
|
|
23
|
+
export declare const VCS_PARAM_VERBOSE: RCLIParamInfo;
|
|
24
|
+
export declare const VCS_PARAM_HELP: RCLIParamInfo;
|
|
25
|
+
export declare const VCS_PARAM_SHARE_IGNORED: RCLIParamInfo;
|
|
26
|
+
//# sourceMappingURL=cli-constants.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-constants.d.mts","sourceRoot":"","sources":["../../src/cli/cli-constants.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAE3E,eAAO,MAAM,YAAY,QAAQ,CAAC;AAElC,eAAO,MAAM,eAAe;aACxB,IAAI,EAAE,MAAM;aACZ,MAAM,EAAE,QAAQ;aAChB,GAAG,EAAE,KAAK;aACV,MAAM,EAAE,QAAQ;aAChB,GAAG,EAAE,KAAK;aACV,MAAM,EAAE,QAAQ;aAChB,QAAQ,EAAE,UAAU;aACpB,IAAI,EAAE,MAAM;aACZ,OAAO,EAAE,SAAS;CACZ,CAAC;AAEX,eAAO,MAAM,iBAAiB,EAAE,aAM/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,aAM9B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,aAM3B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,aAM7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,aAM/B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,aAM5B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,aAMrC,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cli-constants
|
|
3
|
+
*
|
|
4
|
+
* Constants and RCLIParamInfo parameter definitions for vcs CLI commands.
|
|
5
|
+
*/
|
|
6
|
+
export const VCS_CMD_NAME = 'vcs';
|
|
7
|
+
export const VCS_SUBCOMMANDS = {
|
|
8
|
+
INIT: 'init',
|
|
9
|
+
STATUS: 'status',
|
|
10
|
+
ADD: 'add',
|
|
11
|
+
COMMIT: 'commit',
|
|
12
|
+
LOG: 'log',
|
|
13
|
+
BRANCH: 'branch',
|
|
14
|
+
CHECKOUT: 'checkout',
|
|
15
|
+
HELP: 'help',
|
|
16
|
+
VERSION: 'version',
|
|
17
|
+
};
|
|
18
|
+
export const VCS_PARAM_MESSAGE = {
|
|
19
|
+
name: 'message',
|
|
20
|
+
synonyms: ['m'],
|
|
21
|
+
description: 'Commit message description',
|
|
22
|
+
isFlag: false,
|
|
23
|
+
argTypeName: 'string',
|
|
24
|
+
};
|
|
25
|
+
export const VCS_PARAM_BRANCH = {
|
|
26
|
+
name: 'branch',
|
|
27
|
+
synonyms: ['b'],
|
|
28
|
+
description: 'Target branch name',
|
|
29
|
+
isFlag: false,
|
|
30
|
+
argTypeName: 'string',
|
|
31
|
+
};
|
|
32
|
+
export const VCS_PARAM_ALL = {
|
|
33
|
+
name: 'all',
|
|
34
|
+
synonyms: ['a'],
|
|
35
|
+
description: 'Stage all tracked and untracked files',
|
|
36
|
+
isFlag: true,
|
|
37
|
+
argTypeName: 'boolean',
|
|
38
|
+
};
|
|
39
|
+
export const VCS_PARAM_FORCE = {
|
|
40
|
+
name: 'force',
|
|
41
|
+
synonyms: ['f'],
|
|
42
|
+
description: 'Force operation execution',
|
|
43
|
+
isFlag: true,
|
|
44
|
+
argTypeName: 'boolean',
|
|
45
|
+
};
|
|
46
|
+
export const VCS_PARAM_VERBOSE = {
|
|
47
|
+
name: 'verbose',
|
|
48
|
+
synonyms: ['v'],
|
|
49
|
+
description: 'Enable detailed verbose console logging',
|
|
50
|
+
isFlag: true,
|
|
51
|
+
argTypeName: 'boolean',
|
|
52
|
+
};
|
|
53
|
+
export const VCS_PARAM_HELP = {
|
|
54
|
+
name: 'help',
|
|
55
|
+
synonyms: ['h'],
|
|
56
|
+
description: 'Display CLI help information',
|
|
57
|
+
isFlag: true,
|
|
58
|
+
argTypeName: 'boolean',
|
|
59
|
+
};
|
|
60
|
+
export const VCS_PARAM_SHARE_IGNORED = {
|
|
61
|
+
name: 'share-ignored',
|
|
62
|
+
synonyms: ['link-ignored'],
|
|
63
|
+
description: 'Share/symlink ignored directories across branch worktrees',
|
|
64
|
+
isFlag: true,
|
|
65
|
+
argTypeName: 'boolean',
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=cli-constants.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-constants.mjs","sourceRoot":"","sources":["../../src/cli/cli-constants.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC;AAElC,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;CACZ,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAkB;IAC5C,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,CAAC,GAAG,CAAC;IACf,WAAW,EAAE,4BAA4B;IACzC,MAAM,EAAE,KAAK;IACb,WAAW,EAAE,QAAQ;CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAkB;IAC3C,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,GAAG,CAAC;IACf,WAAW,EAAE,oBAAoB;IACjC,MAAM,EAAE,KAAK;IACb,WAAW,EAAE,QAAQ;CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAkB;IACxC,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,CAAC,GAAG,CAAC;IACf,WAAW,EAAE,uCAAuC;IACpD,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,SAAS;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAkB;IAC1C,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,CAAC,GAAG,CAAC;IACf,WAAW,EAAE,2BAA2B;IACxC,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,SAAS;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAkB;IAC5C,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,CAAC,GAAG,CAAC;IACf,WAAW,EAAE,yCAAyC;IACtD,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,SAAS;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAkB;IACzC,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,CAAC,GAAG,CAAC;IACf,WAAW,EAAE,8BAA8B;IAC3C,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,SAAS;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAkB;IAClD,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,CAAC,cAAc,CAAC;IAC1B,WAAW,EAAE,2DAA2D;IACxE,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,SAAS;CACzB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cli-e2e.respec
|
|
3
|
+
*
|
|
4
|
+
* End-to-End CLI Integration Spec for @ibgib/vcs-gib.
|
|
5
|
+
* Executes full lifecycle: vcs init -> vcs status -> vcs add -> vcs commit -> vcs log -> vcs branch -> vcs checkout.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=cli-e2e.respec.node.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-e2e.respec.node.d.mts","sourceRoot":"","sources":["../../src/cli/cli-e2e.respec.node.mts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cli-e2e.respec
|
|
3
|
+
*
|
|
4
|
+
* End-to-End CLI Integration Spec for @ibgib/vcs-gib.
|
|
5
|
+
* Executes full lifecycle: vcs init -> vcs status -> vcs add -> vcs commit -> vcs log -> vcs branch -> vcs checkout.
|
|
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 { main } from './vcs-cli-main.mjs';
|
|
11
|
+
import { executeInitCmd } from './commands/init-cmd.mjs';
|
|
12
|
+
import { executeStatusCmd } from './commands/status-cmd.mjs';
|
|
13
|
+
import { executeAddCmd } from './commands/add-cmd.mjs';
|
|
14
|
+
import { executeCommitCmd } from './commands/commit-cmd.mjs';
|
|
15
|
+
import { executeLogCmd } from './commands/log-cmd.mjs';
|
|
16
|
+
import { executeBranchCmd } from './commands/branch-cmd.mjs';
|
|
17
|
+
import { executeCheckoutCmd } from './commands/checkout-cmd.mjs';
|
|
18
|
+
import { bootstrapVcsMetaspace } from '../bootstrap/node-bootstrap.mjs';
|
|
19
|
+
import { getB2tFSIndexIbGib } from '../engine/index/index-helper.mjs';
|
|
20
|
+
const lc = `[apps/vcs-gib/src/cli/cli-e2e.respec.node.mts]`;
|
|
21
|
+
await respecfully(lc, `Full E2E CLI Integration Spec`, async () => {
|
|
22
|
+
await ifWe(lc, `runs help and version flags without error`, async () => {
|
|
23
|
+
let helpCalled = false;
|
|
24
|
+
let versionCalled = false;
|
|
25
|
+
const origLog = console.log;
|
|
26
|
+
console.log = (...args) => {
|
|
27
|
+
const msg = args.join(' ');
|
|
28
|
+
if (msg.includes('Decentralized Version Control System')) {
|
|
29
|
+
helpCalled = true;
|
|
30
|
+
}
|
|
31
|
+
if (msg.includes('@ibgib/vcs-gib v0.0.4')) {
|
|
32
|
+
versionCalled = true;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
try {
|
|
36
|
+
const helpExitCode = await main({ argv: ['--help'] });
|
|
37
|
+
iReckon(lc, helpExitCode).willEqual(0);
|
|
38
|
+
const versionExitCode = await main({ argv: ['--version'] });
|
|
39
|
+
iReckon(lc, versionExitCode).willEqual(0);
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
console.log = origLog;
|
|
43
|
+
}
|
|
44
|
+
iReckon(lc, helpCalled).isGonnaBeTrue();
|
|
45
|
+
iReckon(lc, versionCalled).isGonnaBeTrue();
|
|
46
|
+
});
|
|
47
|
+
await ifWe(lc, `executes complete lifecycle: init -> status -> add -> commit -> log -> branch -> checkout`, async () => {
|
|
48
|
+
const testDir = path.join(process.cwd(), `.test_cli_e2e_${Date.now()}`);
|
|
49
|
+
const vcsFolderName = '.vcsgib_test_e2e';
|
|
50
|
+
try {
|
|
51
|
+
// Step 1: vcs init
|
|
52
|
+
const initRes = await executeInitCmd({
|
|
53
|
+
targetDir: testDir,
|
|
54
|
+
vcsFolderName,
|
|
55
|
+
quiet: true,
|
|
56
|
+
});
|
|
57
|
+
iReckon(lc, Boolean(initRes.vcsPath)).isGonnaBeTrue();
|
|
58
|
+
iReckon(lc, initRes.branchName).willEqual('main');
|
|
59
|
+
// Verify .vcsgib_test_e2e directory exists
|
|
60
|
+
const vcsExists = await fs.stat(initRes.vcsPath).then(s => s.isDirectory()).catch(() => false);
|
|
61
|
+
iReckon(lc, vcsExists).isGonnaBeTrue();
|
|
62
|
+
// Step 2: Create files & vcs status (untracked)
|
|
63
|
+
const readmePath = path.join(testDir, 'README.md');
|
|
64
|
+
const srcDirPath = path.join(testDir, 'src');
|
|
65
|
+
const appPath = path.join(srcDirPath, 'app.ts');
|
|
66
|
+
await fs.mkdir(srcDirPath, { recursive: true });
|
|
67
|
+
await fs.writeFile(readmePath, '# Sample Project\nWelcome to vcs-gib.', 'utf8');
|
|
68
|
+
await fs.writeFile(appPath, 'console.log("Hello ibgib!");', 'utf8');
|
|
69
|
+
const status1 = await executeStatusCmd({
|
|
70
|
+
targetDir: testDir,
|
|
71
|
+
vcsFolderName,
|
|
72
|
+
quiet: true,
|
|
73
|
+
});
|
|
74
|
+
iReckon(lc, status1.branchName).willEqual('main');
|
|
75
|
+
iReckon(lc, status1.staged.length).willEqual(0);
|
|
76
|
+
iReckon(lc, status1.untracked.length >= 2).isGonnaBeTrue();
|
|
77
|
+
const untrackedPaths = status1.untracked.map(u => u.path);
|
|
78
|
+
iReckon(lc, untrackedPaths).includes('README.md');
|
|
79
|
+
iReckon(lc, untrackedPaths).includes('src/app.ts');
|
|
80
|
+
// Step 3: vcs add <all>
|
|
81
|
+
const addRes = await executeAddCmd({
|
|
82
|
+
targetDir: testDir,
|
|
83
|
+
vcsFolderName,
|
|
84
|
+
all: true,
|
|
85
|
+
quiet: true,
|
|
86
|
+
});
|
|
87
|
+
iReckon(lc, addRes.stagedCount >= 2).isGonnaBeTrue();
|
|
88
|
+
const { localSpace: e2eSpaceAdd, vcsPath: e2eVcsPathAdd } = await bootstrapVcsMetaspace({
|
|
89
|
+
repoPath: testDir,
|
|
90
|
+
vcsFolderName,
|
|
91
|
+
});
|
|
92
|
+
const e2eIndexAdd = await getB2tFSIndexIbGib({ space: e2eSpaceAdd, vcsPath: e2eVcsPathAdd });
|
|
93
|
+
iReckon(lc, Boolean(e2eIndexAdd?.data?.staged_item && e2eIndexAdd.data.staged_item.length >= 2)).isGonnaBeTrue();
|
|
94
|
+
iReckon(lc, e2eIndexAdd?.rel8ns?.staged_item).isGonnaBeFalsy();
|
|
95
|
+
const status2 = await executeStatusCmd({
|
|
96
|
+
targetDir: testDir,
|
|
97
|
+
vcsFolderName,
|
|
98
|
+
quiet: true,
|
|
99
|
+
});
|
|
100
|
+
iReckon(lc, status2.staged.length >= 2).isGonnaBeTrue();
|
|
101
|
+
// Step 4: vcs commit -m "Initial commit"
|
|
102
|
+
const commitRes = await executeCommitCmd({
|
|
103
|
+
targetDir: testDir,
|
|
104
|
+
vcsFolderName,
|
|
105
|
+
message: 'Initial commit',
|
|
106
|
+
quiet: true,
|
|
107
|
+
});
|
|
108
|
+
const { localSpace: e2eSpaceCommit, vcsPath: e2eVcsPathCommit } = await bootstrapVcsMetaspace({
|
|
109
|
+
repoPath: testDir,
|
|
110
|
+
vcsFolderName,
|
|
111
|
+
});
|
|
112
|
+
const e2eIndexCommit = await getB2tFSIndexIbGib({ space: e2eSpaceCommit, vcsPath: e2eVcsPathCommit });
|
|
113
|
+
iReckon(lc, e2eIndexCommit?.data?.staged_item).willEqual([]);
|
|
114
|
+
iReckon(lc, e2eIndexCommit?.rel8ns?.staged_item).isGonnaBeFalsy();
|
|
115
|
+
iReckon(lc, Boolean(commitRes.commitAddr)).isGonnaBeTrue();
|
|
116
|
+
iReckon(lc, Boolean(commitRes.commentAddr)).isGonnaBeTrue();
|
|
117
|
+
iReckon(lc, commitRes.branchName).willEqual('main');
|
|
118
|
+
const status3 = await executeStatusCmd({
|
|
119
|
+
targetDir: testDir,
|
|
120
|
+
vcsFolderName,
|
|
121
|
+
quiet: true,
|
|
122
|
+
});
|
|
123
|
+
iReckon(lc, status3.staged.length).willEqual(0);
|
|
124
|
+
iReckon(lc, status3.modified.length).willEqual(0);
|
|
125
|
+
iReckon(lc, status3.untracked.length).willEqual(0);
|
|
126
|
+
// Step 5: vcs log
|
|
127
|
+
const logRes = await executeLogCmd({
|
|
128
|
+
targetDir: testDir,
|
|
129
|
+
vcsFolderName,
|
|
130
|
+
quiet: true,
|
|
131
|
+
});
|
|
132
|
+
iReckon(lc, logRes.branchName).willEqual('main');
|
|
133
|
+
iReckon(lc, logRes.commits.length).willEqual(1);
|
|
134
|
+
iReckon(lc, logRes.commits[0].message).willEqual('Initial commit');
|
|
135
|
+
// Step 6: vcs branch feature-ui
|
|
136
|
+
const branchRes = await executeBranchCmd({
|
|
137
|
+
targetDir: testDir,
|
|
138
|
+
vcsFolderName,
|
|
139
|
+
branchName: 'feature-ui',
|
|
140
|
+
quiet: true,
|
|
141
|
+
});
|
|
142
|
+
iReckon(lc, branchRes.createdBranchName).willEqual('feature-ui');
|
|
143
|
+
const listBranches = await executeBranchCmd({
|
|
144
|
+
targetDir: testDir,
|
|
145
|
+
vcsFolderName,
|
|
146
|
+
quiet: true,
|
|
147
|
+
});
|
|
148
|
+
iReckon(lc, listBranches.branches.length).willEqual(2);
|
|
149
|
+
const mainBranch = listBranches.branches.find(b => b.name === 'main');
|
|
150
|
+
const featureBranch = listBranches.branches.find(b => b.name === 'feature-ui');
|
|
151
|
+
iReckon(lc, mainBranch?.isActive).isGonnaBeTrue();
|
|
152
|
+
iReckon(lc, featureBranch?.isActive).isGonnaBeFalse();
|
|
153
|
+
// Step 7: vcs checkout feature-ui
|
|
154
|
+
const checkoutRes = await executeCheckoutCmd({
|
|
155
|
+
targetDir: testDir,
|
|
156
|
+
vcsFolderName,
|
|
157
|
+
branchName: 'feature-ui',
|
|
158
|
+
quiet: true,
|
|
159
|
+
});
|
|
160
|
+
iReckon(lc, checkoutRes.previousBranch).willEqual('main');
|
|
161
|
+
iReckon(lc, checkoutRes.currentBranch).willEqual('feature-ui');
|
|
162
|
+
iReckon(lc, Boolean(checkoutRes.worktreePath)).isGonnaBeTrue();
|
|
163
|
+
// Verify feature-ui is active now and both branches are listed
|
|
164
|
+
const listBranches2 = await executeBranchCmd({
|
|
165
|
+
targetDir: checkoutRes.worktreePath,
|
|
166
|
+
vcsFolderName,
|
|
167
|
+
quiet: true,
|
|
168
|
+
});
|
|
169
|
+
iReckon(lc, listBranches2.branches.length).willEqual(2);
|
|
170
|
+
const featureBranchActive = listBranches2.branches.find(b => b.name === 'feature-ui');
|
|
171
|
+
iReckon(lc, featureBranchActive?.isActive).isGonnaBeTrue();
|
|
172
|
+
// Checkout back to main and verify all branches listed
|
|
173
|
+
const checkoutMainRes = await executeCheckoutCmd({
|
|
174
|
+
targetDir: checkoutRes.worktreePath,
|
|
175
|
+
vcsFolderName,
|
|
176
|
+
branchName: 'main',
|
|
177
|
+
quiet: true,
|
|
178
|
+
});
|
|
179
|
+
iReckon(lc, checkoutMainRes.currentBranch).willEqual('main');
|
|
180
|
+
const listBranches3 = await executeBranchCmd({
|
|
181
|
+
targetDir: testDir,
|
|
182
|
+
vcsFolderName,
|
|
183
|
+
quiet: true,
|
|
184
|
+
});
|
|
185
|
+
iReckon(lc, listBranches3.branches.length).willEqual(2);
|
|
186
|
+
// Checkout back to feature-ui
|
|
187
|
+
await executeCheckoutCmd({
|
|
188
|
+
targetDir: testDir,
|
|
189
|
+
vcsFolderName,
|
|
190
|
+
branchName: 'feature-ui',
|
|
191
|
+
quiet: true,
|
|
192
|
+
});
|
|
193
|
+
// Verify worktree folder was created and contains project files
|
|
194
|
+
const worktreeReadme = path.join(checkoutRes.worktreePath, 'README.md');
|
|
195
|
+
const worktreeReadmeContent = await fs.readFile(worktreeReadme, 'utf8');
|
|
196
|
+
iReckon(lc, worktreeReadmeContent).includes('Sample Project');
|
|
197
|
+
// Verify dedicated branch space subfolders in .vcsgib_test_e2e
|
|
198
|
+
const e2eMainSpace = path.join(initRes.vcsPath, 'ibgib', 'b2s_main');
|
|
199
|
+
const e2eFeatureSpace = path.join(initRes.vcsPath, 'ibgib', 'b2s_feature-ui');
|
|
200
|
+
const e2eMainExists = await fs.stat(e2eMainSpace).then(s => s.isDirectory()).catch(() => fs.stat(path.join(initRes.vcsPath, 'b2s_main')).then(s => s.isDirectory()).catch(() => false));
|
|
201
|
+
const e2eFeatureExists = await fs.stat(e2eFeatureSpace).then(s => s.isDirectory()).catch(() => fs.stat(path.join(initRes.vcsPath, 'b2s_feature-ui')).then(s => s.isDirectory()).catch(() => false));
|
|
202
|
+
iReckon(lc, e2eMainExists).isGonnaBeTrue();
|
|
203
|
+
iReckon(lc, e2eFeatureExists).isGonnaBeTrue();
|
|
204
|
+
// Strict Workspace Isolation Assertion:
|
|
205
|
+
// ONLY vcsFolderName, 'b', 'README.md', and 'src' are allowed in testDir root.
|
|
206
|
+
// 'ibgib' must NOT spill into root!
|
|
207
|
+
const rootEntries = await fs.readdir(testDir);
|
|
208
|
+
const unexpectedRootEntries = rootEntries.filter(e => e !== vcsFolderName && e !== 'b' && e !== 'README.md' && e !== 'src');
|
|
209
|
+
iReckon(lc, unexpectedRootEntries).willEqual([]);
|
|
210
|
+
}
|
|
211
|
+
finally {
|
|
212
|
+
await fs.rm(testDir, { recursive: true, force: true });
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
await ifWe(lc, `executes upward discovery and unmodified add check via CLI helpers`, async () => {
|
|
216
|
+
const testDir = path.join(process.cwd(), `.test_cli_e2e_fixes_${Date.now()}`);
|
|
217
|
+
const vcsFolderName = '.vcsgib_test_e2e_fixes';
|
|
218
|
+
try {
|
|
219
|
+
await executeInitCmd({
|
|
220
|
+
targetDir: testDir,
|
|
221
|
+
vcsFolderName,
|
|
222
|
+
quiet: true,
|
|
223
|
+
});
|
|
224
|
+
const srcDir = path.join(testDir, 'src');
|
|
225
|
+
await fs.mkdir(srcDir, { recursive: true });
|
|
226
|
+
await fs.writeFile(path.join(srcDir, 'index.ts'), 'console.log("e2e");', 'utf8');
|
|
227
|
+
// 1. Run add and commit
|
|
228
|
+
await executeAddCmd({
|
|
229
|
+
targetDir: testDir,
|
|
230
|
+
vcsFolderName,
|
|
231
|
+
all: true,
|
|
232
|
+
quiet: true,
|
|
233
|
+
});
|
|
234
|
+
await executeCommitCmd({
|
|
235
|
+
targetDir: testDir,
|
|
236
|
+
vcsFolderName,
|
|
237
|
+
message: 'Add index.ts',
|
|
238
|
+
quiet: true,
|
|
239
|
+
});
|
|
240
|
+
// 2. Upward discovery test: execute status from srcDir
|
|
241
|
+
const statusSub = await executeStatusCmd({
|
|
242
|
+
targetDir: srcDir,
|
|
243
|
+
vcsFolderName,
|
|
244
|
+
quiet: true,
|
|
245
|
+
});
|
|
246
|
+
iReckon(lc, statusSub.branchName).willEqual('main');
|
|
247
|
+
iReckon(lc, statusSub.untracked.length).willEqual(0);
|
|
248
|
+
iReckon(lc, statusSub.staged.length).willEqual(0);
|
|
249
|
+
// 3. Unmodified re-staging test: execute add -a on unchanged repo
|
|
250
|
+
const addAgain = await executeAddCmd({
|
|
251
|
+
targetDir: testDir,
|
|
252
|
+
vcsFolderName,
|
|
253
|
+
all: true,
|
|
254
|
+
quiet: true,
|
|
255
|
+
});
|
|
256
|
+
iReckon(lc, addAgain.stagedCount).willEqual(0);
|
|
257
|
+
}
|
|
258
|
+
finally {
|
|
259
|
+
await fs.rm(testDir, { recursive: true, force: true });
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
//# sourceMappingURL=cli-e2e.respec.node.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-e2e.respec.node.mjs","sourceRoot":"","sources":["../../src/cli/cli-e2e.respec.node.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module add-cmd
|
|
3
|
+
*
|
|
4
|
+
* Command handler for `vcs add <path...>`.
|
|
5
|
+
* Stages files and directories into candidate B2tFSItemIbGib_V1 and BinIbGib_V1 graph nodes
|
|
6
|
+
* and updates B2tFSIndexIbGib_V1 in localSpace.
|
|
7
|
+
*/
|
|
8
|
+
export interface AddCmdOpts {
|
|
9
|
+
paths?: string[];
|
|
10
|
+
targetDir?: string;
|
|
11
|
+
vcsFolderName?: string;
|
|
12
|
+
all?: boolean;
|
|
13
|
+
quiet?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface AddCmdResult {
|
|
16
|
+
stagedPaths: string[];
|
|
17
|
+
stagedCount: number;
|
|
18
|
+
}
|
|
19
|
+
export declare function executeAddCmd({ paths, targetDir, vcsFolderName, all, quiet, }?: AddCmdOpts): Promise<AddCmdResult>;
|
|
20
|
+
//# sourceMappingURL=add-cmd.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-cmd.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/add-cmd.mts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA4BH,MAAM,WAAW,UAAU;IACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,aAAa,CAAC,EAChC,KAAU,EACV,SAAyB,EACzB,aAAyB,EACzB,GAAW,EACX,KAAa,GAChB,GAAE,UAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CA2QzC"}
|