@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.
Files changed (202) hide show
  1. package/README.md +94 -0
  2. package/VCS_CLI_USER_GUIDE.md +198 -0
  3. package/dist/AUTO-GENERATED-version.d.mts +6 -0
  4. package/dist/AUTO-GENERATED-version.d.mts.map +1 -0
  5. package/dist/AUTO-GENERATED-version.mjs +6 -0
  6. package/dist/AUTO-GENERATED-version.mjs.map +1 -0
  7. package/dist/assumptions.respec.d.mts +2 -0
  8. package/dist/assumptions.respec.d.mts.map +1 -0
  9. package/dist/assumptions.respec.mjs +41 -0
  10. package/dist/assumptions.respec.mjs.map +1 -0
  11. package/dist/bootstrap/node-bootstrap.d.mts +35 -0
  12. package/dist/bootstrap/node-bootstrap.d.mts.map +1 -0
  13. package/dist/bootstrap/node-bootstrap.mjs +165 -0
  14. package/dist/bootstrap/node-bootstrap.mjs.map +1 -0
  15. package/dist/bootstrap/node-bootstrap.respec.node.d.mts +7 -0
  16. package/dist/bootstrap/node-bootstrap.respec.node.d.mts.map +1 -0
  17. package/dist/bootstrap/node-bootstrap.respec.node.mjs +28 -0
  18. package/dist/bootstrap/node-bootstrap.respec.node.mjs.map +1 -0
  19. package/dist/cli/cli-arg-parser.d.mts +27 -0
  20. package/dist/cli/cli-arg-parser.d.mts.map +1 -0
  21. package/dist/cli/cli-arg-parser.mjs +96 -0
  22. package/dist/cli/cli-arg-parser.mjs.map +1 -0
  23. package/dist/cli/cli-arg-parser.respec.node.d.mts +7 -0
  24. package/dist/cli/cli-arg-parser.respec.node.d.mts.map +1 -0
  25. package/dist/cli/cli-arg-parser.respec.node.mjs +35 -0
  26. package/dist/cli/cli-arg-parser.respec.node.mjs.map +1 -0
  27. package/dist/cli/cli-constants.d.mts +26 -0
  28. package/dist/cli/cli-constants.d.mts.map +1 -0
  29. package/dist/cli/cli-constants.mjs +67 -0
  30. package/dist/cli/cli-constants.mjs.map +1 -0
  31. package/dist/cli/cli-e2e.respec.node.d.mts +8 -0
  32. package/dist/cli/cli-e2e.respec.node.d.mts.map +1 -0
  33. package/dist/cli/cli-e2e.respec.node.mjs +263 -0
  34. package/dist/cli/cli-e2e.respec.node.mjs.map +1 -0
  35. package/dist/cli/commands/add-cmd.d.mts +20 -0
  36. package/dist/cli/commands/add-cmd.d.mts.map +1 -0
  37. package/dist/cli/commands/add-cmd.mjs +333 -0
  38. package/dist/cli/commands/add-cmd.mjs.map +1 -0
  39. package/dist/cli/commands/branch-checkout-cmd.respec.node.d.mts +7 -0
  40. package/dist/cli/commands/branch-checkout-cmd.respec.node.d.mts.map +1 -0
  41. package/dist/cli/commands/branch-checkout-cmd.respec.node.mjs +288 -0
  42. package/dist/cli/commands/branch-checkout-cmd.respec.node.mjs.map +1 -0
  43. package/dist/cli/commands/branch-cmd.d.mts +25 -0
  44. package/dist/cli/commands/branch-cmd.d.mts.map +1 -0
  45. package/dist/cli/commands/branch-cmd.mjs +187 -0
  46. package/dist/cli/commands/branch-cmd.mjs.map +1 -0
  47. package/dist/cli/commands/checkout-cmd.d.mts +21 -0
  48. package/dist/cli/commands/checkout-cmd.d.mts.map +1 -0
  49. package/dist/cli/commands/checkout-cmd.mjs +154 -0
  50. package/dist/cli/commands/checkout-cmd.mjs.map +1 -0
  51. package/dist/cli/commands/commit-cmd.d.mts +23 -0
  52. package/dist/cli/commands/commit-cmd.d.mts.map +1 -0
  53. package/dist/cli/commands/commit-cmd.mjs +326 -0
  54. package/dist/cli/commands/commit-cmd.mjs.map +1 -0
  55. package/dist/cli/commands/commit-log-cmd.respec.node.d.mts +7 -0
  56. package/dist/cli/commands/commit-log-cmd.respec.node.d.mts.map +1 -0
  57. package/dist/cli/commands/commit-log-cmd.respec.node.mjs +251 -0
  58. package/dist/cli/commands/commit-log-cmd.respec.node.mjs.map +1 -0
  59. package/dist/cli/commands/init-cmd.d.mts +20 -0
  60. package/dist/cli/commands/init-cmd.d.mts.map +1 -0
  61. package/dist/cli/commands/init-cmd.mjs +119 -0
  62. package/dist/cli/commands/init-cmd.mjs.map +1 -0
  63. package/dist/cli/commands/init-cmd.respec.node.d.mts +7 -0
  64. package/dist/cli/commands/init-cmd.respec.node.d.mts.map +1 -0
  65. package/dist/cli/commands/init-cmd.respec.node.mjs +40 -0
  66. package/dist/cli/commands/init-cmd.respec.node.mjs.map +1 -0
  67. package/dist/cli/commands/log-cmd.d.mts +27 -0
  68. package/dist/cli/commands/log-cmd.d.mts.map +1 -0
  69. package/dist/cli/commands/log-cmd.mjs +146 -0
  70. package/dist/cli/commands/log-cmd.mjs.map +1 -0
  71. package/dist/cli/commands/status-add-cmd.respec.node.d.mts +7 -0
  72. package/dist/cli/commands/status-add-cmd.respec.node.d.mts.map +1 -0
  73. package/dist/cli/commands/status-add-cmd.respec.node.mjs +215 -0
  74. package/dist/cli/commands/status-add-cmd.respec.node.mjs.map +1 -0
  75. package/dist/cli/commands/status-cmd.d.mts +25 -0
  76. package/dist/cli/commands/status-cmd.d.mts.map +1 -0
  77. package/dist/cli/commands/status-cmd.mjs +286 -0
  78. package/dist/cli/commands/status-cmd.mjs.map +1 -0
  79. package/dist/cli/vcs-cli-main.d.mts +14 -0
  80. package/dist/cli/vcs-cli-main.d.mts.map +1 -0
  81. package/dist/cli/vcs-cli-main.mjs +136 -0
  82. package/dist/cli/vcs-cli-main.mjs.map +1 -0
  83. package/dist/engine/branch/branch-graph-helper.d.mts +19 -0
  84. package/dist/engine/branch/branch-graph-helper.d.mts.map +1 -0
  85. package/dist/engine/branch/branch-graph-helper.mjs +49 -0
  86. package/dist/engine/branch/branch-graph-helper.mjs.map +1 -0
  87. package/dist/engine/branch/branch-helper.d.mts +26 -0
  88. package/dist/engine/branch/branch-helper.d.mts.map +1 -0
  89. package/dist/engine/branch/branch-helper.mjs +57 -0
  90. package/dist/engine/branch/branch-helper.mjs.map +1 -0
  91. package/dist/engine/branch/branch-space-helper.d.mts +22 -0
  92. package/dist/engine/branch/branch-space-helper.d.mts.map +1 -0
  93. package/dist/engine/branch/branch-space-helper.mjs +77 -0
  94. package/dist/engine/branch/branch-space-helper.mjs.map +1 -0
  95. package/dist/engine/branch/branch-space.respec.node.d.mts +8 -0
  96. package/dist/engine/branch/branch-space.respec.node.d.mts.map +1 -0
  97. package/dist/engine/branch/branch-space.respec.node.mjs +138 -0
  98. package/dist/engine/branch/branch-space.respec.node.mjs.map +1 -0
  99. package/dist/engine/branch/branch-types.d.mts +26 -0
  100. package/dist/engine/branch/branch-types.d.mts.map +1 -0
  101. package/dist/engine/branch/branch-types.mjs +7 -0
  102. package/dist/engine/branch/branch-types.mjs.map +1 -0
  103. package/dist/engine/diff/line-diff-helper.d.mts +76 -0
  104. package/dist/engine/diff/line-diff-helper.d.mts.map +1 -0
  105. package/dist/engine/diff/line-diff-helper.mjs +144 -0
  106. package/dist/engine/diff/line-diff-helper.mjs.map +1 -0
  107. package/dist/engine/diff/line-diff-helper.respec.node.d.mts +7 -0
  108. package/dist/engine/diff/line-diff-helper.respec.node.d.mts.map +1 -0
  109. package/dist/engine/diff/line-diff-helper.respec.node.mjs +66 -0
  110. package/dist/engine/diff/line-diff-helper.respec.node.mjs.map +1 -0
  111. package/dist/engine/filter/glob-helper.d.mts +51 -0
  112. package/dist/engine/filter/glob-helper.d.mts.map +1 -0
  113. package/dist/engine/filter/glob-helper.mjs +132 -0
  114. package/dist/engine/filter/glob-helper.mjs.map +1 -0
  115. package/dist/engine/filter/glob-helper.respec.node.d.mts +7 -0
  116. package/dist/engine/filter/glob-helper.respec.node.d.mts.map +1 -0
  117. package/dist/engine/filter/glob-helper.respec.node.mjs +78 -0
  118. package/dist/engine/filter/glob-helper.respec.node.mjs.map +1 -0
  119. package/dist/engine/index/index-helper.d.mts +78 -0
  120. package/dist/engine/index/index-helper.d.mts.map +1 -0
  121. package/dist/engine/index/index-helper.mjs +289 -0
  122. package/dist/engine/index/index-helper.mjs.map +1 -0
  123. package/dist/engine/index/index-types.d.mts +63 -0
  124. package/dist/engine/index/index-types.d.mts.map +1 -0
  125. package/dist/engine/index/index-types.mjs +7 -0
  126. package/dist/engine/index/index-types.mjs.map +1 -0
  127. package/dist/engine/item/item-atom-helper.d.mts +20 -0
  128. package/dist/engine/item/item-atom-helper.d.mts.map +1 -0
  129. package/dist/engine/item/item-atom-helper.mjs +30 -0
  130. package/dist/engine/item/item-atom-helper.mjs.map +1 -0
  131. package/dist/engine/item/item-helper.d.mts +37 -0
  132. package/dist/engine/item/item-helper.d.mts.map +1 -0
  133. package/dist/engine/item/item-helper.mjs +194 -0
  134. package/dist/engine/item/item-helper.mjs.map +1 -0
  135. package/dist/engine/item/item-types.d.mts +127 -0
  136. package/dist/engine/item/item-types.d.mts.map +1 -0
  137. package/dist/engine/item/item-types.mjs +16 -0
  138. package/dist/engine/item/item-types.mjs.map +1 -0
  139. package/dist/index.d.mts +7 -0
  140. package/dist/index.d.mts.map +1 -0
  141. package/dist/index.mjs +7 -0
  142. package/dist/index.mjs.map +1 -0
  143. package/dist/respec-gib.node.d.mts +7 -0
  144. package/dist/respec-gib.node.d.mts.map +1 -0
  145. package/dist/respec-gib.node.mjs +11 -0
  146. package/dist/respec-gib.node.mjs.map +1 -0
  147. package/dist/vcs-gib-constants.d.mts +7 -0
  148. package/dist/vcs-gib-constants.d.mts.map +1 -0
  149. package/dist/vcs-gib-constants.mjs +7 -0
  150. package/dist/vcs-gib-constants.mjs.map +1 -0
  151. package/dist/vcs-gib.respec.node.d.mts +8 -0
  152. package/dist/vcs-gib.respec.node.d.mts.map +1 -0
  153. package/dist/vcs-gib.respec.node.mjs +82 -0
  154. package/dist/vcs-gib.respec.node.mjs.map +1 -0
  155. package/generate-version-file.js +20 -0
  156. package/package.json +28 -0
  157. package/src/AUTO-GENERATED-version.mts +5 -0
  158. package/src/assumptions.respec.mts +50 -0
  159. package/src/bootstrap/node-bootstrap.mts +198 -0
  160. package/src/bootstrap/node-bootstrap.respec.node.mts +35 -0
  161. package/src/cli/cli-arg-parser.mts +119 -0
  162. package/src/cli/cli-arg-parser.respec.node.mts +45 -0
  163. package/src/cli/cli-constants.mts +77 -0
  164. package/src/cli/cli-e2e.respec.node.mts +318 -0
  165. package/src/cli/commands/add-cmd.mts +415 -0
  166. package/src/cli/commands/branch-checkout-cmd.respec.node.mts +322 -0
  167. package/src/cli/commands/branch-cmd.mts +243 -0
  168. package/src/cli/commands/checkout-cmd.mts +202 -0
  169. package/src/cli/commands/commit-cmd.mts +421 -0
  170. package/src/cli/commands/commit-log-cmd.respec.node.mts +276 -0
  171. package/src/cli/commands/init-cmd.mts +152 -0
  172. package/src/cli/commands/init-cmd.respec.node.mts +49 -0
  173. package/src/cli/commands/log-cmd.mts +197 -0
  174. package/src/cli/commands/status-add-cmd.respec.node.mts +246 -0
  175. package/src/cli/commands/status-cmd.mts +366 -0
  176. package/src/cli/vcs-cli-main.mts +153 -0
  177. package/src/engine/branch/branch-graph-helper.mts +69 -0
  178. package/src/engine/branch/branch-helper.mts +79 -0
  179. package/src/engine/branch/branch-space-helper.mts +104 -0
  180. package/src/engine/branch/branch-space.respec.node.mts +158 -0
  181. package/src/engine/branch/branch-types.mts +29 -0
  182. package/src/engine/diff/line-diff-helper.mts +210 -0
  183. package/src/engine/diff/line-diff-helper.respec.node.mts +84 -0
  184. package/src/engine/filter/glob-helper.mts +165 -0
  185. package/src/engine/filter/glob-helper.respec.node.mts +94 -0
  186. package/src/engine/index/index-helper.mts +378 -0
  187. package/src/engine/index/index-types.mts +66 -0
  188. package/src/engine/item/item-atom-helper.mts +30 -0
  189. package/src/engine/item/item-helper.mts +239 -0
  190. package/src/engine/item/item-types.mts +136 -0
  191. package/src/index.mts +7 -0
  192. package/src/respec-gib.node.mts +12 -0
  193. package/src/vcs-gib-constants.mts +7 -0
  194. package/src/vcs-gib.respec.node.mts +96 -0
  195. package/test_runs/001-hello-node/20260728_090100_0001-flow-core-main.md +39 -0
  196. package/test_runs/001-hello-node/20260728_090200_0003-flow-branching-worktree.md +54 -0
  197. package/test_runs/001-hello-node/20260728_090300_0002-flow-selective-add.md +45 -0
  198. package/test_runs/001-hello-node/20260728_142100_0007-flow-edge-cases.md +44 -0
  199. package/test_runs/001-hello-node/20260728_142400_0005-flow-hardcoded-ignores.md +36 -0
  200. package/tools/pack-for-test.mjs +73 -0
  201. package/tsconfig.json +18 -0
  202. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,326 @@
1
+ /**
2
+ * @module commit-cmd
3
+ *
4
+ * Command handler for `vcs commit -m "message"`.
5
+ * Validates staged items, evolves the B2tFS root folder item graph in localSpace,
6
+ * creates a CommentIbGib_V1 commit comment node, advances active B2tFSBranchIbGib_V1 pointer,
7
+ * clears staged items in B2tFSIndexIbGib_V1, and updates read-only index projection cache.
8
+ */
9
+ import path from 'node:path';
10
+ import fs from 'node:fs/promises';
11
+ import crypto from 'node:crypto';
12
+ import { getUUID, extractErrorMsg, delay } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
13
+ import { Factory_V1 } from '@ibgib/ts-gib/dist/V1/factory.mjs';
14
+ import { ROOT } from '@ibgib/ts-gib/dist/V1/constants.mjs';
15
+ import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
16
+ import { putInSpace, persistTransformResult } from '@ibgib/core-gib/dist/witness/space/space-helper.mjs';
17
+ import { createCommentIbGib } from '@ibgib/core-gib/dist/common/comment/comment-helper.mjs';
18
+ import { bootstrapVcsMetaspace } from '../../bootstrap/node-bootstrap.mjs';
19
+ import { getOrCreateBranchSpace } from '../../engine/branch/branch-space-helper.mjs';
20
+ import { getB2tFSItemIb } from '../../engine/item/item-atom-helper.mjs';
21
+ import { B2TFS_CHILD_ITEM_REL8N_NAME } from '../../engine/item/item-types.mjs';
22
+ import { getIbGibWithMetaspaceFallback } from '../../engine/item/item-helper.mjs';
23
+ import { getB2tFSBranchSpaceName } from '../../engine/branch/branch-helper.mjs';
24
+ import { getB2tFSIndexIbGib, updateB2tFSIndexIbGib, getSpaceQualifiedIbGibAddr } from '../../engine/index/index-helper.mjs';
25
+ import { GLOBAL_LOG_A_LOT } from '../../vcs-gib-constants.mjs';
26
+ const lcFile = `[commit-cmd]`;
27
+ const logalot = GLOBAL_LOG_A_LOT;
28
+ export async function executeCommitCmd({ message = '', targetDir = process.cwd(), vcsFolderName = '.vcsgib', quiet = false, } = {}) {
29
+ const lc = `${lcFile}[${executeCommitCmd.name}]`;
30
+ try {
31
+ if (logalot) {
32
+ console.log(`${lc} starting executeCommitCmd (I: 9a8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d)`);
33
+ }
34
+ const absTargetDir = path.resolve(targetDir);
35
+ const { metaspace, localSpace, vcsPath, repoRoot } = await bootstrapVcsMetaspace({
36
+ repoPath: absTargetDir,
37
+ vcsFolderName,
38
+ });
39
+ // Verify repo exists
40
+ try {
41
+ await fs.access(vcsPath);
42
+ }
43
+ catch {
44
+ throw new Error(`Not an ibgib repository (directory ${vcsPath} does not exist) (E: 1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d)`);
45
+ }
46
+ // Validate message
47
+ if (!message || message.trim().length === 0) {
48
+ throw new Error(`Commit message is required (E: 2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e)`);
49
+ }
50
+ // Fetch authoritative repository index from localSpace
51
+ const indexIbGib = await getB2tFSIndexIbGib({ space: localSpace, vcsPath });
52
+ if (!indexIbGib) {
53
+ throw new Error(`Repository index B2tFSIndexIbGib_V1 not found in localSpace (E: 3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f)`);
54
+ }
55
+ const branchName = indexIbGib.data?.activeBranch || 'main';
56
+ // Target active branch space b2s_<activeBranch>
57
+ const { space: activeSpace } = await getOrCreateBranchSpace({
58
+ metaspace,
59
+ vcsPath,
60
+ branchName,
61
+ });
62
+ // Validate staged items
63
+ const stagedPathsMap = indexIbGib.data?.stagedPaths || {};
64
+ const stagedAddrs = indexIbGib.data?.staged_item || [];
65
+ const committedPaths = Object.keys(stagedPathsMap);
66
+ if (committedPaths.length === 0 || stagedAddrs.length === 0) {
67
+ throw new Error(`Nothing to commit (no staged items) (E: 4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a)`);
68
+ }
69
+ // Fetch active branch node from activeSpace
70
+ const branchAddrs = [
71
+ ...(indexIbGib.rel8ns?.branch || []),
72
+ ...(indexIbGib.rel8ns?.branch_tjp || []),
73
+ ];
74
+ let currentBranchIbGib;
75
+ let currentBranchAddr;
76
+ if (branchAddrs.length > 0) {
77
+ let branchIbGibs = [];
78
+ for (const bAddr of branchAddrs) {
79
+ const bIbGib = await getIbGibWithMetaspaceFallback({
80
+ addr: bAddr,
81
+ space: activeSpace,
82
+ metaspace,
83
+ });
84
+ if (bIbGib) {
85
+ branchIbGibs.push(bIbGib);
86
+ }
87
+ }
88
+ currentBranchIbGib = branchIbGibs.find((b) => b?.data?.name === branchName) || branchIbGibs.at(0);
89
+ if (currentBranchIbGib) {
90
+ currentBranchAddr = getIbGibAddr({ ibGib: currentBranchIbGib });
91
+ }
92
+ }
93
+ const currentRootAddr = currentBranchIbGib?.rel8ns?.b2tfs_item?.at(0);
94
+ // 1. Create CommentIbGib_V1 commit comment node in activeSpace
95
+ const commentRes = await createCommentIbGib({
96
+ text: message.trim(),
97
+ saveInSpace: true,
98
+ space: activeSpace,
99
+ });
100
+ const commentIbGib = commentRes.newIbGib;
101
+ const commentAddr = getIbGibAddr({ ibGib: commentIbGib });
102
+ await metaspace.registerNewIbGib({ ibGib: commentIbGib, space: activeSpace });
103
+ // 2. Evolve root folder item graph with staged items in activeSpace
104
+ const repoName = path.basename(repoRoot) || 'root';
105
+ const { newRootAddr } = await commitCmd_buildEvolvedRootItem({
106
+ currentRootAddr,
107
+ stagedPathsMap,
108
+ space: activeSpace,
109
+ metaspace,
110
+ repoName,
111
+ });
112
+ // 3. Advance B2tFSBranchIbGib_V1 node inside activeSpace
113
+ const branchUuid = currentBranchIbGib?.data?.uuid || (await getUUID());
114
+ const newBranchRes = await Factory_V1.firstGen({
115
+ parentIbGib: currentBranchIbGib || ROOT,
116
+ ib: `b2tfs_branch ${branchName} v1 ${branchUuid}`,
117
+ data: {
118
+ ...(currentBranchIbGib?.data || {}),
119
+ name: branchName,
120
+ uuid: branchUuid,
121
+ classname: 'B2tFSBranchIbGib_V1',
122
+ committedAt: new Date().toISOString(),
123
+ },
124
+ rel8ns: {
125
+ b2tfs_item: [newRootAddr],
126
+ comment: [commentAddr],
127
+ },
128
+ });
129
+ const newBranchIbGib = newBranchRes.newIbGib;
130
+ const newBranchAddr = getIbGibAddr({ ibGib: newBranchIbGib });
131
+ await persistTransformResult({ resTransform: newBranchRes, space: activeSpace });
132
+ await metaspace.registerNewIbGib({ ibGib: newBranchIbGib, space: activeSpace });
133
+ const sqBranchAddr = getSpaceQualifiedIbGibAddr({
134
+ spaceId: activeSpace.data?.spaceSubPath || activeSpace.data?.name || getB2tFSBranchSpaceName(branchName),
135
+ ibGibAddr: newBranchAddr,
136
+ });
137
+ // 4. Update B2tFSIndexIbGib_V1 in activeSpace & localSpace
138
+ const updatedIndex = await updateB2tFSIndexIbGib({
139
+ space: activeSpace,
140
+ metaspace,
141
+ indexIbGib,
142
+ dataToUpdate: {
143
+ stagedPaths: {},
144
+ staged_item: [],
145
+ },
146
+ rel8nsToUpdate: {
147
+ branch: [sqBranchAddr],
148
+ branch_tjp: [sqBranchAddr],
149
+ },
150
+ vcsPath,
151
+ });
152
+ if (localSpace !== activeSpace) {
153
+ await putInSpace({ space: localSpace, ibGib: updatedIndex });
154
+ }
155
+ if (!quiet) {
156
+ const shortGib = newBranchIbGib.gib ? newBranchIbGib.gib.slice(0, 7) : 'commit';
157
+ console.log(`[${branchName} ${shortGib}] ${message.trim()} (I: 5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b)`);
158
+ console.log(` ${committedPaths.length} file(s) changed`);
159
+ }
160
+ return {
161
+ commitAddr: newBranchAddr,
162
+ commentAddr,
163
+ branchName,
164
+ committedPaths,
165
+ rootItemAddr: newRootAddr,
166
+ };
167
+ }
168
+ catch (error) {
169
+ console.error(`${lc} ${extractErrorMsg(error)} (E: 6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c)`);
170
+ throw error;
171
+ }
172
+ finally {
173
+ await delay(50);
174
+ if (logalot) {
175
+ console.log(`${lc} complete. (I: 7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d)`);
176
+ }
177
+ }
178
+ }
179
+ // #region commitCmd_buildEvolvedRootItem
180
+ async function commitCmd_buildEvolvedRootItem({ currentRootAddr, stagedPathsMap, space, metaspace, repoName, }) {
181
+ const itemsByRelPath = new Map();
182
+ if (currentRootAddr) {
183
+ const currentRootItem = await getIbGibWithMetaspaceFallback({
184
+ addr: currentRootAddr,
185
+ space,
186
+ metaspace,
187
+ });
188
+ if (currentRootItem) {
189
+ await commitCmd_walkBranchGraph({
190
+ item: currentRootItem,
191
+ space,
192
+ metaspace,
193
+ currentRelPath: '',
194
+ outMap: itemsByRelPath,
195
+ });
196
+ }
197
+ }
198
+ // Overlay staged items
199
+ for (const [relPath, stagedRec] of Object.entries(stagedPathsMap)) {
200
+ itemsByRelPath.set(relPath, {
201
+ itemAddr: stagedRec.itemAddr,
202
+ fsType: stagedRec.fsType || 'file',
203
+ });
204
+ }
205
+ // Ensure parent folder entries exist for all items
206
+ const allRelPaths = Array.from(itemsByRelPath.keys());
207
+ for (const relPath of allRelPaths) {
208
+ const parts = relPath.split('/');
209
+ parts.pop(); // Remove file/folder name to get parent path
210
+ let currentFolderRel = '';
211
+ for (const part of parts) {
212
+ currentFolderRel = currentFolderRel ? `${currentFolderRel}/${part}` : part;
213
+ if (!itemsByRelPath.has(currentFolderRel)) {
214
+ itemsByRelPath.set(currentFolderRel, { itemAddr: '', fsType: 'folder' });
215
+ }
216
+ }
217
+ }
218
+ // Collect all folder paths (including root '')
219
+ const folderPathsSet = new Set();
220
+ folderPathsSet.add('');
221
+ for (const [relPath, itemRec] of itemsByRelPath.entries()) {
222
+ if (itemRec.fsType === 'folder' || relPath === '') {
223
+ folderPathsSet.add(relPath);
224
+ }
225
+ }
226
+ // Sort folders deepest path first so children folders are built before parents
227
+ const sortedFolders = Array.from(folderPathsSet).sort((a, b) => {
228
+ const depthA = a ? a.split('/').length : 0;
229
+ const depthB = b ? b.split('/').length : 0;
230
+ return depthB - depthA;
231
+ });
232
+ const createdFolderAddrs = new Map();
233
+ let rootFolderItem;
234
+ let rootFolderAddr = '';
235
+ for (const folderRelPath of sortedFolders) {
236
+ const childAddrs = [];
237
+ for (const [itemRelPath, itemRec] of itemsByRelPath.entries()) {
238
+ if (!itemRelPath || itemRelPath === folderRelPath) {
239
+ continue;
240
+ }
241
+ const parentRelPath = commitCmd_getParentRelPath(itemRelPath);
242
+ if (parentRelPath === folderRelPath) {
243
+ if (itemRec.fsType === 'folder') {
244
+ const folderAddr = createdFolderAddrs.get(itemRelPath);
245
+ if (folderAddr && !childAddrs.includes(folderAddr)) {
246
+ childAddrs.push(folderAddr);
247
+ }
248
+ }
249
+ else {
250
+ if (itemRec.itemAddr && !childAddrs.includes(itemRec.itemAddr)) {
251
+ childAddrs.push(itemRec.itemAddr);
252
+ }
253
+ }
254
+ }
255
+ }
256
+ const folderName = folderRelPath ? path.basename(folderRelPath) : repoName;
257
+ const diffTxId = await getUUID();
258
+ const nameHash = crypto.createHash('sha256').update(folderName).digest('hex');
259
+ const rel8ns = {};
260
+ if (childAddrs.length > 0) {
261
+ rel8ns[B2TFS_CHILD_ITEM_REL8N_NAME] = childAddrs;
262
+ }
263
+ const folderRes = await Factory_V1.firstGen({
264
+ parentIbGib: ROOT,
265
+ ib: getB2tFSItemIb('folder', folderName, nameHash),
266
+ data: {
267
+ name: folderName,
268
+ nameHash,
269
+ fsType: 'folder',
270
+ diffTransactionId: diffTxId,
271
+ uuid: await getUUID(),
272
+ classname: 'B2tFSItemIbGib_V1',
273
+ },
274
+ rel8ns,
275
+ });
276
+ const folderItem = folderRes.newIbGib;
277
+ const folderAddr = getIbGibAddr({ ibGib: folderItem });
278
+ await persistTransformResult({ resTransform: folderRes, space });
279
+ await metaspace.registerNewIbGib({ ibGib: folderItem, space });
280
+ createdFolderAddrs.set(folderRelPath, folderAddr);
281
+ if (folderRelPath === '') {
282
+ rootFolderItem = folderItem;
283
+ rootFolderAddr = folderAddr;
284
+ }
285
+ }
286
+ return { newRootItem: rootFolderItem, newRootAddr: rootFolderAddr };
287
+ }
288
+ function commitCmd_getParentRelPath(relPath) {
289
+ const parts = relPath.split('/');
290
+ parts.pop();
291
+ return parts.join('/');
292
+ }
293
+ async function commitCmd_walkBranchGraph({ item, space, metaspace, currentRelPath, outMap, }) {
294
+ if (!item || !item.data) {
295
+ return;
296
+ }
297
+ const { fsType } = item.data;
298
+ const itemAddr = getIbGibAddr({ ibGib: item });
299
+ if (currentRelPath) {
300
+ outMap.set(currentRelPath, { itemAddr, fsType });
301
+ }
302
+ if (fsType === 'folder') {
303
+ const childAddrs = item.rel8ns?.[B2TFS_CHILD_ITEM_REL8N_NAME] || [];
304
+ for (const childAddr of childAddrs) {
305
+ const childItem = await getIbGibWithMetaspaceFallback({
306
+ addr: childAddr,
307
+ space,
308
+ metaspace,
309
+ });
310
+ if (childItem && childItem.data) {
311
+ const childRelPath = currentRelPath
312
+ ? `${currentRelPath}/${childItem.data.name}`
313
+ : childItem.data.name;
314
+ await commitCmd_walkBranchGraph({
315
+ item: childItem,
316
+ space,
317
+ metaspace,
318
+ currentRelPath: childRelPath,
319
+ outMap,
320
+ });
321
+ }
322
+ }
323
+ }
324
+ }
325
+ // #endregion commitCmd_buildEvolvedRootItem
326
+ //# sourceMappingURL=commit-cmd.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit-cmd.mjs","sourceRoot":"","sources":["../../../src/cli/commands/commit-cmd.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @module commit-log-cmd.respec
3
+ *
4
+ * Unit tests for `vcs commit` and `vcs log` command handlers.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=commit-log-cmd.respec.node.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit-log-cmd.respec.node.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/commit-log-cmd.respec.node.mts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,251 @@
1
+ /**
2
+ * @module commit-log-cmd.respec
3
+ *
4
+ * Unit tests for `vcs commit` and `vcs log` command handlers.
5
+ */
6
+ import path from 'node:path';
7
+ import fs from 'node:fs/promises';
8
+ import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
9
+ import { executeInitCmd } from './init-cmd.mjs';
10
+ import { executeAddCmd } from './add-cmd.mjs';
11
+ import { executeStatusCmd } from './status-cmd.mjs';
12
+ import { executeCommitCmd } from './commit-cmd.mjs';
13
+ import { executeLogCmd } from './log-cmd.mjs';
14
+ import { executeBranchCmd } from './branch-cmd.mjs';
15
+ import { executeCheckoutCmd } from './checkout-cmd.mjs';
16
+ import { bootstrapVcsMetaspace } from '../../bootstrap/node-bootstrap.mjs';
17
+ import { getB2tFSIndexIbGib } from '../../engine/index/index-helper.mjs';
18
+ const lc = `[apps/vcs-gib/src/cli/commands/commit-log-cmd.respec.node.mts]`;
19
+ await respecfully(lc, `vcs commit and vcs log Command Handlers`, async () => {
20
+ await ifWe(lc, `rejects commit when no message is provided`, async () => {
21
+ const testDir = path.join(process.cwd(), '.test_commit_log_1');
22
+ const vcsFolderName = '.vcsgib_test_commit_1';
23
+ try {
24
+ await executeInitCmd({
25
+ targetDir: testDir,
26
+ vcsFolderName,
27
+ quiet: true,
28
+ });
29
+ await fs.writeFile(path.join(testDir, 'file1.txt'), 'Hello Commit', 'utf8');
30
+ await executeAddCmd({
31
+ paths: ['file1.txt'],
32
+ targetDir: testDir,
33
+ vcsFolderName,
34
+ quiet: true,
35
+ });
36
+ let errorThrown = false;
37
+ try {
38
+ await executeCommitCmd({
39
+ message: '',
40
+ targetDir: testDir,
41
+ vcsFolderName,
42
+ quiet: true,
43
+ });
44
+ }
45
+ catch (err) {
46
+ errorThrown = true;
47
+ iReckon(lc, err.message).includes('Commit message is required');
48
+ }
49
+ iReckon(lc, errorThrown).isGonnaBeTrue();
50
+ }
51
+ finally {
52
+ await fs.rm(testDir, { recursive: true, force: true });
53
+ }
54
+ });
55
+ await ifWe(lc, `rejects commit when no items are staged`, async () => {
56
+ const testDir = path.join(process.cwd(), '.test_commit_log_2');
57
+ const vcsFolderName = '.vcsgib_test_commit_2';
58
+ try {
59
+ await executeInitCmd({
60
+ targetDir: testDir,
61
+ vcsFolderName,
62
+ quiet: true,
63
+ });
64
+ let errorThrown = false;
65
+ try {
66
+ await executeCommitCmd({
67
+ message: 'Empty commit',
68
+ targetDir: testDir,
69
+ vcsFolderName,
70
+ quiet: true,
71
+ });
72
+ }
73
+ catch (err) {
74
+ errorThrown = true;
75
+ iReckon(lc, err.message).includes('Nothing to commit');
76
+ }
77
+ iReckon(lc, errorThrown).isGonnaBeTrue();
78
+ }
79
+ finally {
80
+ await fs.rm(testDir, { recursive: true, force: true });
81
+ }
82
+ });
83
+ await ifWe(lc, `commits staged files and advances active branch tip`, async () => {
84
+ const testDir = path.join(process.cwd(), '.test_commit_log_3');
85
+ const vcsFolderName = '.vcsgib_test_commit_3';
86
+ try {
87
+ await executeInitCmd({
88
+ targetDir: testDir,
89
+ vcsFolderName,
90
+ quiet: true,
91
+ });
92
+ await fs.writeFile(path.join(testDir, 'hello.txt'), 'Hello ibgib repository!', 'utf8');
93
+ await executeAddCmd({
94
+ paths: ['hello.txt'],
95
+ targetDir: testDir,
96
+ vcsFolderName,
97
+ quiet: true,
98
+ });
99
+ const { localSpace: spaceAdd, vcsPath: vcsPathAdd } = await bootstrapVcsMetaspace({
100
+ repoPath: testDir,
101
+ vcsFolderName,
102
+ });
103
+ const indexAdd = await getB2tFSIndexIbGib({ space: spaceAdd, vcsPath: vcsPathAdd });
104
+ iReckon(lc, Boolean(indexAdd?.data?.staged_item && indexAdd.data.staged_item.length > 0)).isGonnaBeTrue();
105
+ iReckon(lc, indexAdd?.rel8ns?.staged_item).isGonnaBeFalsy();
106
+ const commitRes = await executeCommitCmd({
107
+ message: 'Initial repository commit',
108
+ targetDir: testDir,
109
+ vcsFolderName,
110
+ quiet: true,
111
+ });
112
+ const { localSpace: spaceCommit, vcsPath: vcsPathCommit } = await bootstrapVcsMetaspace({
113
+ repoPath: testDir,
114
+ vcsFolderName,
115
+ });
116
+ const indexCommit = await getB2tFSIndexIbGib({ space: spaceCommit, vcsPath: vcsPathCommit });
117
+ iReckon(lc, indexCommit?.data?.staged_item).willEqual([]);
118
+ iReckon(lc, indexCommit?.rel8ns?.staged_item).isGonnaBeFalsy();
119
+ iReckon(lc, commitRes.branchName).willEqual('main');
120
+ iReckon(lc, commitRes.committedPaths).includes('hello.txt');
121
+ iReckon(lc, Boolean(commitRes.commitAddr)).isGonnaBeTrue();
122
+ iReckon(lc, Boolean(commitRes.commentAddr)).isGonnaBeTrue();
123
+ const statusRes = await executeStatusCmd({
124
+ targetDir: testDir,
125
+ vcsFolderName,
126
+ quiet: true,
127
+ });
128
+ iReckon(lc, statusRes.staged.length).willEqual(0);
129
+ iReckon(lc, statusRes.modified.length).willEqual(0);
130
+ iReckon(lc, statusRes.untracked.length).willEqual(0);
131
+ }
132
+ finally {
133
+ await fs.rm(testDir, { recursive: true, force: true });
134
+ }
135
+ });
136
+ await ifWe(lc, `displays formatted commit history with executeLogCmd across multiple commits`, async () => {
137
+ const testDir = path.join(process.cwd(), '.test_commit_log_4');
138
+ const vcsFolderName = '.vcsgib_test_commit_4';
139
+ try {
140
+ await executeInitCmd({
141
+ targetDir: testDir,
142
+ vcsFolderName,
143
+ quiet: true,
144
+ });
145
+ // Commit 1
146
+ await fs.writeFile(path.join(testDir, 'file1.txt'), 'Version 1', 'utf8');
147
+ await executeAddCmd({
148
+ paths: ['file1.txt'],
149
+ targetDir: testDir,
150
+ vcsFolderName,
151
+ quiet: true,
152
+ });
153
+ await executeCommitCmd({
154
+ message: 'First commit message',
155
+ targetDir: testDir,
156
+ vcsFolderName,
157
+ quiet: true,
158
+ });
159
+ // Commit 2
160
+ await fs.writeFile(path.join(testDir, 'file2.txt'), 'Version 2', 'utf8');
161
+ await executeAddCmd({
162
+ paths: ['file2.txt'],
163
+ targetDir: testDir,
164
+ vcsFolderName,
165
+ quiet: true,
166
+ });
167
+ await executeCommitCmd({
168
+ message: 'Second commit message',
169
+ targetDir: testDir,
170
+ vcsFolderName,
171
+ quiet: true,
172
+ });
173
+ const logRes = await executeLogCmd({
174
+ targetDir: testDir,
175
+ vcsFolderName,
176
+ quiet: true,
177
+ });
178
+ iReckon(lc, logRes.branchName).willEqual('main');
179
+ iReckon(lc, logRes.commits.length).willEqual(2);
180
+ iReckon(lc, logRes.commits[0].message).willEqual('Second commit message');
181
+ iReckon(lc, logRes.commits[1].message).willEqual('First commit message');
182
+ }
183
+ finally {
184
+ await fs.rm(testDir, { recursive: true, force: true });
185
+ }
186
+ });
187
+ await ifWe(lc, `walks feature branch commits with executeLogCmd on active feature branch`, async () => {
188
+ const testDir = path.join(process.cwd(), '.test_commit_log_feature');
189
+ const vcsFolderName = '.vcsgib_test_commit_feature';
190
+ try {
191
+ await executeInitCmd({
192
+ targetDir: testDir,
193
+ vcsFolderName,
194
+ quiet: true,
195
+ });
196
+ // Commit on main
197
+ await fs.writeFile(path.join(testDir, 'main.txt'), 'Main branch content', 'utf8');
198
+ await executeAddCmd({
199
+ paths: ['main.txt'],
200
+ targetDir: testDir,
201
+ vcsFolderName,
202
+ quiet: true,
203
+ });
204
+ await executeCommitCmd({
205
+ message: 'Main branch commit',
206
+ targetDir: testDir,
207
+ vcsFolderName,
208
+ quiet: true,
209
+ });
210
+ // Create and checkout feature branch
211
+ await executeBranchCmd({
212
+ branchName: 'feature-log',
213
+ targetDir: testDir,
214
+ vcsFolderName,
215
+ quiet: true,
216
+ });
217
+ const checkoutRes = await executeCheckoutCmd({
218
+ branchName: 'feature-log',
219
+ targetDir: testDir,
220
+ vcsFolderName,
221
+ quiet: true,
222
+ });
223
+ // Commit on feature branch
224
+ await fs.writeFile(path.join(checkoutRes.worktreePath, 'feature.txt'), 'Feature branch content', 'utf8');
225
+ await executeAddCmd({
226
+ paths: ['feature.txt'],
227
+ targetDir: checkoutRes.worktreePath,
228
+ vcsFolderName,
229
+ quiet: true,
230
+ });
231
+ await executeCommitCmd({
232
+ message: 'Feature branch commit',
233
+ targetDir: checkoutRes.worktreePath,
234
+ vcsFolderName,
235
+ quiet: true,
236
+ });
237
+ const logRes = await executeLogCmd({
238
+ targetDir: checkoutRes.worktreePath,
239
+ vcsFolderName,
240
+ quiet: true,
241
+ });
242
+ iReckon(lc, logRes.branchName).willEqual('feature-log');
243
+ iReckon(lc, logRes.commits.length).willEqual(1);
244
+ iReckon(lc, logRes.commits[0].message).willEqual('Feature branch commit');
245
+ }
246
+ finally {
247
+ await fs.rm(testDir, { recursive: true, force: true });
248
+ }
249
+ });
250
+ });
251
+ //# sourceMappingURL=commit-log-cmd.respec.node.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit-log-cmd.respec.node.mjs","sourceRoot":"","sources":["../../../src/cli/commands/commit-log-cmd.respec.node.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @module init-cmd
3
+ *
4
+ * Command handler for `vcs init [targetDir]`.
5
+ * Initializes local repository space, root B2tFS folder item, default branch, and in-band space index.
6
+ */
7
+ export interface InitCmdOpts {
8
+ targetDir?: string;
9
+ vcsFolderName?: string;
10
+ defaultBranchName?: string;
11
+ quiet?: boolean;
12
+ }
13
+ export interface InitCmdResult {
14
+ vcsPath: string;
15
+ spaceId: string;
16
+ branchName: string;
17
+ rootItemIb: string;
18
+ }
19
+ export declare function executeInitCmd({ targetDir, vcsFolderName, defaultBranchName, quiet, }?: InitCmdOpts): Promise<InitCmdResult>;
20
+ //# sourceMappingURL=init-cmd.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-cmd.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/init-cmd.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsBH,MAAM,WAAW,WAAW;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,cAAc,CAAC,EACjC,SAAyB,EACzB,aAAyB,EACzB,iBAA0B,EAC1B,KAAa,GAChB,GAAE,WAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAyG3C"}