@ibgib/vcs-gib 0.0.30 → 0.0.32
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.mjs +1 -1
- package/dist/bootstrap/node-bootstrap.mjs.map +1 -1
- package/dist/cli/commands/add-cmd.d.mts +2 -3
- package/dist/cli/commands/add-cmd.d.mts.map +1 -1
- package/dist/cli/commands/add-cmd.mjs +30 -283
- package/dist/cli/commands/add-cmd.mjs.map +1 -1
- package/dist/cli/commands/branch-cmd.d.mts +8 -8
- package/dist/cli/commands/branch-cmd.d.mts.map +1 -1
- package/dist/cli/commands/branch-cmd.mjs +45 -176
- package/dist/cli/commands/branch-cmd.mjs.map +1 -1
- package/dist/cli/commands/checkout-cmd.d.mts +2 -4
- package/dist/cli/commands/checkout-cmd.d.mts.map +1 -1
- package/dist/cli/commands/checkout-cmd.mjs +31 -110
- package/dist/cli/commands/checkout-cmd.mjs.map +1 -1
- package/dist/cli/commands/commit-cmd.d.mts +7 -8
- package/dist/cli/commands/commit-cmd.d.mts.map +1 -1
- package/dist/cli/commands/commit-cmd.mjs +40 -390
- package/dist/cli/commands/commit-cmd.mjs.map +1 -1
- package/dist/cli/commands/generate-comment-cmd.d.mts.map +1 -1
- package/dist/cli/commands/generate-comment-cmd.mjs +5 -2
- package/dist/cli/commands/generate-comment-cmd.mjs.map +1 -1
- package/dist/cli/commands/init-cmd.d.mts +2 -2
- package/dist/cli/commands/init-cmd.d.mts.map +1 -1
- package/dist/cli/commands/init-cmd.mjs +20 -70
- package/dist/cli/commands/init-cmd.mjs.map +1 -1
- package/dist/cli/commands/log-cmd.d.mts +2 -3
- package/dist/cli/commands/log-cmd.d.mts.map +1 -1
- package/dist/cli/commands/log-cmd.mjs +42 -271
- package/dist/cli/commands/log-cmd.mjs.map +1 -1
- package/dist/cli/commands/merge-cmd.d.mts +3 -17
- package/dist/cli/commands/merge-cmd.d.mts.map +1 -1
- package/dist/cli/commands/merge-cmd.mjs +32 -218
- package/dist/cli/commands/merge-cmd.mjs.map +1 -1
- package/dist/cli/commands/reset-cmd.d.mts +1 -1
- package/dist/cli/commands/reset-cmd.d.mts.map +1 -1
- package/dist/cli/commands/reset-cmd.mjs +17 -19
- package/dist/cli/commands/reset-cmd.mjs.map +1 -1
- package/dist/cli/commands/restore-cmd.d.mts +8 -7
- package/dist/cli/commands/restore-cmd.d.mts.map +1 -1
- package/dist/cli/commands/restore-cmd.mjs +44 -62
- package/dist/cli/commands/restore-cmd.mjs.map +1 -1
- package/dist/cli/commands/status-cmd.d.mts +2 -2
- package/dist/cli/commands/status-cmd.d.mts.map +1 -1
- package/dist/cli/commands/status-cmd.mjs +63 -62
- package/dist/cli/commands/status-cmd.mjs.map +1 -1
- package/dist/cli/vcs-projection-helper.d.mts +23 -0
- package/dist/cli/vcs-projection-helper.d.mts.map +1 -0
- package/dist/cli/vcs-projection-helper.mjs +91 -0
- package/dist/cli/vcs-projection-helper.mjs.map +1 -0
- package/dist/test/test-helpers.d.mts +2 -2
- package/dist/test/test-helpers.d.mts.map +1 -1
- package/package.json +3 -3
- package/src/AUTO-GENERATED-version.mts +1 -1
- package/src/bootstrap/node-bootstrap.mts +1 -1
- package/src/cli/cli-e2e.respec.mts +4 -4
- package/src/cli/commands/add-cmd.mts +32 -347
- package/src/cli/commands/branch-cmd.mts +56 -225
- package/src/cli/commands/checkout-cmd.mts +34 -138
- package/src/cli/commands/commit-cmd.mts +46 -473
- package/src/cli/commands/commit-log-cmd.respec.mts +11 -7
- package/src/cli/commands/generate-comment-cmd.mts +6 -2
- package/src/cli/commands/init-cmd.mts +20 -73
- package/src/cli/commands/log-cmd.mts +41 -331
- package/src/cli/commands/merge-cmd.mts +32 -252
- package/src/cli/commands/reset-cmd.mts +17 -19
- package/src/cli/commands/restore-cmd.mts +52 -72
- package/src/cli/commands/status-add-cmd.respec.mts +3 -3
- package/src/cli/commands/status-cmd.mts +68 -63
- package/src/cli/vcs-projection-helper.mts +112 -0
- package/src/engine/branch/branch-space.respec.mts +5 -5
- package/src/engine/merge/b2tfs-sync-comments.respec.mts +4 -4
- package/src/test/test-helpers.mts +2 -2
- package/src/vcs-gib.respec.mts +11 -8
- package/tsconfig.test.tsbuildinfo +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/engine/branch/branch-graph-helper.d.mts +0 -28
- package/dist/engine/branch/branch-graph-helper.d.mts.map +0 -1
- package/dist/engine/branch/branch-graph-helper.mjs +0 -81
- package/dist/engine/branch/branch-graph-helper.mjs.map +0 -1
- package/dist/engine/branch/branch-helper.d.mts +0 -40
- package/dist/engine/branch/branch-helper.d.mts.map +0 -1
- package/dist/engine/branch/branch-helper.mjs +0 -78
- package/dist/engine/branch/branch-helper.mjs.map +0 -1
- package/dist/engine/branch/branch-space-helper.d.mts +0 -23
- package/dist/engine/branch/branch-space-helper.d.mts.map +0 -1
- package/dist/engine/branch/branch-space-helper.mjs +0 -78
- package/dist/engine/branch/branch-space-helper.mjs.map +0 -1
- package/dist/engine/branch/branch-types.d.mts +0 -26
- package/dist/engine/branch/branch-types.d.mts.map +0 -1
- package/dist/engine/branch/branch-types.mjs +0 -7
- package/dist/engine/branch/branch-types.mjs.map +0 -1
- package/dist/engine/diff/line-diff-helper.d.mts +0 -76
- package/dist/engine/diff/line-diff-helper.d.mts.map +0 -1
- package/dist/engine/diff/line-diff-helper.mjs +0 -144
- package/dist/engine/diff/line-diff-helper.mjs.map +0 -1
- package/dist/engine/filter/glob-helper.d.mts +0 -51
- package/dist/engine/filter/glob-helper.d.mts.map +0 -1
- package/dist/engine/filter/glob-helper.mjs +0 -132
- package/dist/engine/filter/glob-helper.mjs.map +0 -1
- package/dist/engine/index/index-helper.d.mts +0 -113
- package/dist/engine/index/index-helper.d.mts.map +0 -1
- package/dist/engine/index/index-helper.mjs +0 -533
- package/dist/engine/index/index-helper.mjs.map +0 -1
- package/dist/engine/index/index-types.d.mts +0 -63
- package/dist/engine/index/index-types.d.mts.map +0 -1
- package/dist/engine/index/index-types.mjs +0 -7
- package/dist/engine/index/index-types.mjs.map +0 -1
- package/dist/engine/item/item-atom-helper.d.mts +0 -20
- package/dist/engine/item/item-atom-helper.d.mts.map +0 -1
- package/dist/engine/item/item-atom-helper.mjs +0 -30
- package/dist/engine/item/item-atom-helper.mjs.map +0 -1
- package/dist/engine/item/item-helper.d.mts +0 -94
- package/dist/engine/item/item-helper.d.mts.map +0 -1
- package/dist/engine/item/item-helper.mjs +0 -424
- package/dist/engine/item/item-helper.mjs.map +0 -1
- package/dist/engine/item/item-types.d.mts +0 -128
- package/dist/engine/item/item-types.d.mts.map +0 -1
- package/dist/engine/item/item-types.mjs +0 -16
- package/dist/engine/item/item-types.mjs.map +0 -1
- package/dist/engine/merge/b2tfs-3way-graft-strategy.d.mts +0 -74
- package/dist/engine/merge/b2tfs-3way-graft-strategy.d.mts.map +0 -1
- package/dist/engine/merge/b2tfs-3way-graft-strategy.mjs +0 -570
- package/dist/engine/merge/b2tfs-3way-graft-strategy.mjs.map +0 -1
- package/dist/engine/merge/b2tfs-3way-graft-types.d.mts +0 -34
- package/dist/engine/merge/b2tfs-3way-graft-types.d.mts.map +0 -1
- package/dist/engine/merge/b2tfs-3way-graft-types.mjs +0 -2
- package/dist/engine/merge/b2tfs-3way-graft-types.mjs.map +0 -1
- package/dist/engine/status/status-helper.d.mts +0 -90
- package/dist/engine/status/status-helper.d.mts.map +0 -1
- package/dist/engine/status/status-helper.mjs +0 -286
- package/dist/engine/status/status-helper.mjs.map +0 -1
- package/src/engine/branch/branch-graph-helper.mts +0 -117
- package/src/engine/branch/branch-helper.mts +0 -112
- package/src/engine/branch/branch-space-helper.mts +0 -110
- package/src/engine/branch/branch-types.mts +0 -29
- package/src/engine/diff/line-diff-helper.mts +0 -210
- package/src/engine/diff/line-diff-helper.respec.mts +0 -84
- package/src/engine/filter/glob-helper.mts +0 -165
- package/src/engine/filter/glob-helper.respec.mts +0 -94
- package/src/engine/index/index-helper.mts +0 -705
- package/src/engine/index/index-types.mts +0 -66
- package/src/engine/item/item-atom-helper.mts +0 -30
- package/src/engine/item/item-helper.mts +0 -544
- package/src/engine/item/item-types.mts +0 -137
- package/src/engine/item/item.respec.mts +0 -92
- package/src/engine/merge/b2tfs-3way-graft-strategy.mts +0 -630
- package/src/engine/merge/b2tfs-3way-graft-strategy.respec.mts +0 -346
- package/src/engine/merge/b2tfs-3way-graft-types.mts +0 -34
- package/src/engine/status/status-helper.mts +0 -383
|
@@ -1,533 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module index-helper
|
|
3
|
-
*
|
|
4
|
-
* B2tFS Index Helper functions: space-qualified address formatting and branch index tracking.
|
|
5
|
-
*/
|
|
6
|
-
import path from 'node:path';
|
|
7
|
-
import fs from 'node:fs/promises';
|
|
8
|
-
import { getUUID, extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
9
|
-
import { ROOT } from '@ibgib/ts-gib/dist/V1/constants.mjs';
|
|
10
|
-
import { Factory_V1 } from '@ibgib/ts-gib/dist/V1/factory.mjs';
|
|
11
|
-
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
12
|
-
import { getIbGibsFromCache_fallbackToSpaces } from '@ibgib/core-gib/dist/common/other/ibgib-helper.mjs';
|
|
13
|
-
import { persistTransformResult } from '@ibgib/core-gib/dist/witness/space/space-helper.mjs';
|
|
14
|
-
import { GLOBAL_LOG_A_LOT } from '../../vcs-gib-constants.mjs';
|
|
15
|
-
import { B2TFS_CHILD_ITEM_REL8N_NAME } from '../item/item-types.mjs';
|
|
16
|
-
import { getIbGibWithMetaspaceFallback, writeB2tFSItemToFS } from '../item/item-helper.mjs';
|
|
17
|
-
const lcFile = `[index-helper]`;
|
|
18
|
-
const logalot = GLOBAL_LOG_A_LOT;
|
|
19
|
-
export const SOFT_ADDR_DATA_KEY_PREFIX = '@';
|
|
20
|
-
export const SOFT_ADDR_DATA_KEY_PREFIX_SPACE_QUALIFIED = '$@';
|
|
21
|
-
/**
|
|
22
|
-
* Returns a space-qualified address string.
|
|
23
|
-
* Format: `v:1^spaceId:<spaceId>^<ibGibAddr>`
|
|
24
|
-
*/
|
|
25
|
-
export function getSpaceQualifiedIbGibAddr(optsOrSpaceId, rawIbGibAddr) {
|
|
26
|
-
if (typeof optsOrSpaceId === 'object' && optsOrSpaceId !== null) {
|
|
27
|
-
return `v:1^spaceId:${optsOrSpaceId.spaceId}^${optsOrSpaceId.ibGibAddr}`;
|
|
28
|
-
}
|
|
29
|
-
return `v:1^spaceId:${optsOrSpaceId}^${rawIbGibAddr}`;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Parses a space-qualified address string into version, spaceId, ibGibAddr, ib, and gib.
|
|
33
|
-
*/
|
|
34
|
-
export function parseSpaceQualifiedIbGibAddr(optsOrSqAddr) {
|
|
35
|
-
let sqAddr;
|
|
36
|
-
if (typeof optsOrSqAddr === 'string') {
|
|
37
|
-
sqAddr = optsOrSqAddr;
|
|
38
|
-
}
|
|
39
|
-
else if (typeof optsOrSqAddr === 'object' && optsOrSqAddr !== null) {
|
|
40
|
-
sqAddr = optsOrSqAddr.spaceQualifiedAddr || optsOrSqAddr.sqAddr;
|
|
41
|
-
}
|
|
42
|
-
if (!sqAddr || typeof sqAddr !== 'string') {
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
const match = sqAddr.match(/^v:(\d+)\^spaceId:([^\^]+)\^(.+)$/);
|
|
46
|
-
if (!match) {
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
const version = parseInt(match[1], 10);
|
|
50
|
-
const spaceId = match[2];
|
|
51
|
-
const ibGibAddr = match[3];
|
|
52
|
-
const lastCaretIndex = ibGibAddr.lastIndexOf('^');
|
|
53
|
-
if (lastCaretIndex === -1) {
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
56
|
-
const ib = ibGibAddr.substring(0, lastCaretIndex);
|
|
57
|
-
const gib = ibGibAddr.substring(lastCaretIndex + 1);
|
|
58
|
-
if (!ib || !gib) {
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
return {
|
|
62
|
-
version,
|
|
63
|
-
spaceId,
|
|
64
|
-
ibGibAddr,
|
|
65
|
-
ib,
|
|
66
|
-
gib,
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Helper to extract branch name from space-qualified address or raw atom ib string.
|
|
71
|
-
*/
|
|
72
|
-
export function extractBranchNameFromAddr(addr) {
|
|
73
|
-
if (!addr) {
|
|
74
|
-
return null;
|
|
75
|
-
}
|
|
76
|
-
const sq = parseSpaceQualifiedIbGibAddr(addr);
|
|
77
|
-
const ib = sq ? sq.ib : (addr.includes('^') ? addr.substring(0, addr.lastIndexOf('^')) : addr);
|
|
78
|
-
if (ib && ib.startsWith('b2tfs_branch ')) {
|
|
79
|
-
const parts = ib.split(' ');
|
|
80
|
-
if (parts.length >= 2 && parts[1]) {
|
|
81
|
-
return parts[1];
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
return null;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Deduplicates branch entries by branch name and merges new branch addresses into existing addresses
|
|
88
|
-
* without dropping other registered branches.
|
|
89
|
-
*/
|
|
90
|
-
export function mergeBranchAddrs(existingAddrs = [], newAddrs = []) {
|
|
91
|
-
const map = new Map();
|
|
92
|
-
for (const addr of existingAddrs) {
|
|
93
|
-
if (!addr) {
|
|
94
|
-
continue;
|
|
95
|
-
}
|
|
96
|
-
const bName = extractBranchNameFromAddr(addr) || addr;
|
|
97
|
-
map.set(bName, addr);
|
|
98
|
-
}
|
|
99
|
-
for (const addr of newAddrs) {
|
|
100
|
-
if (!addr) {
|
|
101
|
-
continue;
|
|
102
|
-
}
|
|
103
|
-
const bName = extractBranchNameFromAddr(addr) || addr;
|
|
104
|
-
map.set(bName, addr);
|
|
105
|
-
}
|
|
106
|
-
return Array.from(map.values());
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Creates a new B2tFSIndexIbGib special meta object for a space.
|
|
110
|
-
*/
|
|
111
|
-
export async function createB2tFSIndexIbGib({ spaceId, activeSpaceId, activeBranch, space, metaspace, branchAddr, }) {
|
|
112
|
-
const lc = `${lcFile}[${createB2tFSIndexIbGib.name}]`;
|
|
113
|
-
try {
|
|
114
|
-
if (logalot) {
|
|
115
|
-
console.log(`${lc} starting... (I: 3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d)`);
|
|
116
|
-
}
|
|
117
|
-
const uuid = await getUUID();
|
|
118
|
-
const data = {
|
|
119
|
-
mySpaceId: spaceId,
|
|
120
|
-
activeSpaceId,
|
|
121
|
-
activeBranch,
|
|
122
|
-
uuid,
|
|
123
|
-
classname: 'B2tFSIndexIbGib_V1',
|
|
124
|
-
'$@branch': [],
|
|
125
|
-
stagedPaths: {},
|
|
126
|
-
staged_item: [],
|
|
127
|
-
};
|
|
128
|
-
const rel8ns = {};
|
|
129
|
-
if (branchAddr) {
|
|
130
|
-
const sqBranchAddr = branchAddr.startsWith('v:1^spaceId:')
|
|
131
|
-
? branchAddr
|
|
132
|
-
: getSpaceQualifiedIbGibAddr({
|
|
133
|
-
spaceId: space.data?.spaceSubPath || space.data?.name || spaceId,
|
|
134
|
-
ibGibAddr: branchAddr,
|
|
135
|
-
});
|
|
136
|
-
rel8ns.branch = [sqBranchAddr];
|
|
137
|
-
rel8ns.branch_tjp = [sqBranchAddr];
|
|
138
|
-
}
|
|
139
|
-
const res = await Factory_V1.firstGen({
|
|
140
|
-
parentIbGib: ROOT,
|
|
141
|
-
ib: `meta special b2tfs_index ${uuid}`,
|
|
142
|
-
data,
|
|
143
|
-
rel8ns: Object.keys(rel8ns).length > 0 ? rel8ns : undefined,
|
|
144
|
-
});
|
|
145
|
-
const indexIbGib = res.newIbGib;
|
|
146
|
-
await persistTransformResult({ resTransform: res, space });
|
|
147
|
-
await metaspace.registerNewIbGib({ ibGib: indexIbGib });
|
|
148
|
-
if (logalot) {
|
|
149
|
-
console.log(`${lc} Created index IbGib: ${indexIbGib.ib} (I: 4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e)`);
|
|
150
|
-
}
|
|
151
|
-
return indexIbGib;
|
|
152
|
-
}
|
|
153
|
-
catch (error) {
|
|
154
|
-
console.error(`${lc} ${extractErrorMsg(error)} (E: 5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f)`);
|
|
155
|
-
throw error;
|
|
156
|
-
}
|
|
157
|
-
finally {
|
|
158
|
-
if (logalot) {
|
|
159
|
-
console.log(`${lc} complete. (I: 6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a)`);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Retrieves authoritative B2tFSIndexIbGib_V1 from space.
|
|
165
|
-
*/
|
|
166
|
-
export async function getB2tFSIndexIbGib({ space, vcsPath, }) {
|
|
167
|
-
const lc = `${lcFile}[${getB2tFSIndexIbGib.name}]`;
|
|
168
|
-
try {
|
|
169
|
-
if (logalot) {
|
|
170
|
-
console.log(`${lc} starting... (I: 7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b)`);
|
|
171
|
-
}
|
|
172
|
-
if (!vcsPath) {
|
|
173
|
-
return undefined;
|
|
174
|
-
}
|
|
175
|
-
const projPath = path.join(vcsPath, 'vcs_index_projection.json');
|
|
176
|
-
let indexAddr;
|
|
177
|
-
try {
|
|
178
|
-
const raw = await fs.readFile(projPath, 'utf8');
|
|
179
|
-
const parsed = JSON.parse(raw);
|
|
180
|
-
indexAddr = parsed.indexAddr;
|
|
181
|
-
}
|
|
182
|
-
catch {
|
|
183
|
-
return undefined;
|
|
184
|
-
}
|
|
185
|
-
if (!indexAddr) {
|
|
186
|
-
return undefined;
|
|
187
|
-
}
|
|
188
|
-
const ibgibs = await getIbGibsFromCache_fallbackToSpaces({
|
|
189
|
-
addrs: [indexAddr],
|
|
190
|
-
space,
|
|
191
|
-
});
|
|
192
|
-
const indexIbGib = ibgibs?.at(0);
|
|
193
|
-
return indexIbGib;
|
|
194
|
-
}
|
|
195
|
-
catch (error) {
|
|
196
|
-
console.error(`${lc} ${extractErrorMsg(error)} (E: 8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c)`);
|
|
197
|
-
throw error;
|
|
198
|
-
}
|
|
199
|
-
finally {
|
|
200
|
-
if (logalot) {
|
|
201
|
-
console.log(`${lc} complete. (I: 9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d)`);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Updates B2tFSIndexIbGib_V1 in space and updates local projection cache.
|
|
207
|
-
*/
|
|
208
|
-
export async function updateB2tFSIndexIbGib({ space, metaspace, indexIbGib, dataToUpdate, rel8nsToUpdate, vcsPath, }) {
|
|
209
|
-
const lc = `${lcFile}[${updateB2tFSIndexIbGib.name}]`;
|
|
210
|
-
try {
|
|
211
|
-
if (logalot) {
|
|
212
|
-
console.log(`${lc} starting... (I: 0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e)`);
|
|
213
|
-
}
|
|
214
|
-
const mergedData = {
|
|
215
|
-
...(indexIbGib.data || {
|
|
216
|
-
mySpaceId: space.data?.uuid || '',
|
|
217
|
-
activeSpaceId: '',
|
|
218
|
-
uuid: await getUUID(),
|
|
219
|
-
}),
|
|
220
|
-
...dataToUpdate,
|
|
221
|
-
};
|
|
222
|
-
const mergedRel8ns = {
|
|
223
|
-
...(indexIbGib.rel8ns || {}),
|
|
224
|
-
...rel8nsToUpdate,
|
|
225
|
-
};
|
|
226
|
-
if (rel8nsToUpdate?.branch || indexIbGib.rel8ns?.branch) {
|
|
227
|
-
mergedRel8ns.branch = mergeBranchAddrs(indexIbGib.rel8ns?.branch || [], rel8nsToUpdate?.branch || []);
|
|
228
|
-
}
|
|
229
|
-
if (rel8nsToUpdate?.branch_tjp || indexIbGib.rel8ns?.branch_tjp) {
|
|
230
|
-
mergedRel8ns.branch_tjp = mergeBranchAddrs(indexIbGib.rel8ns?.branch_tjp || [], rel8nsToUpdate?.branch_tjp || []);
|
|
231
|
-
}
|
|
232
|
-
delete mergedRel8ns.past;
|
|
233
|
-
const res = await Factory_V1.firstGen({
|
|
234
|
-
parentIbGib: ROOT,
|
|
235
|
-
ib: indexIbGib.ib,
|
|
236
|
-
data: mergedData,
|
|
237
|
-
rel8ns: mergedRel8ns,
|
|
238
|
-
});
|
|
239
|
-
const newIndexIbGib = res.newIbGib;
|
|
240
|
-
await persistTransformResult({ resTransform: res, space });
|
|
241
|
-
if (metaspace.zeroSpace && metaspace.zeroSpace !== space) {
|
|
242
|
-
await persistTransformResult({ resTransform: res, space: metaspace.zeroSpace });
|
|
243
|
-
}
|
|
244
|
-
await metaspace.registerNewIbGib({ ibGib: newIndexIbGib });
|
|
245
|
-
if (vcsPath) {
|
|
246
|
-
await writeVcsIndexProjection({ vcsPath, indexIbGib: newIndexIbGib });
|
|
247
|
-
}
|
|
248
|
-
return newIndexIbGib;
|
|
249
|
-
}
|
|
250
|
-
catch (error) {
|
|
251
|
-
console.error(`${lc} ${extractErrorMsg(error)} (E: 1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f)`);
|
|
252
|
-
throw error;
|
|
253
|
-
}
|
|
254
|
-
finally {
|
|
255
|
-
if (logalot) {
|
|
256
|
-
console.log(`${lc} complete. (I: 2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a)`);
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* Writes read-only JSON projection cache of repository index.
|
|
262
|
-
*/
|
|
263
|
-
export async function writeVcsIndexProjection({ vcsPath, indexIbGib, }) {
|
|
264
|
-
const lc = `${lcFile}[${writeVcsIndexProjection.name}]`;
|
|
265
|
-
try {
|
|
266
|
-
if (logalot) {
|
|
267
|
-
console.log(`${lc} starting... (I: 3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b)`);
|
|
268
|
-
}
|
|
269
|
-
await fs.mkdir(vcsPath, { recursive: true });
|
|
270
|
-
const indexAddr = getIbGibAddr({ ibGib: indexIbGib });
|
|
271
|
-
const projectionObj = {
|
|
272
|
-
_isReadOnlyProjection: true,
|
|
273
|
-
_comment: 'STRICTLY READ-ONLY PROJECTION GENERATED FROM B2TFSINDEXIBGIB_V1 IN LOCALSPACE',
|
|
274
|
-
indexAddr,
|
|
275
|
-
spaceId: indexIbGib.data?.mySpaceId,
|
|
276
|
-
activeBranch: indexIbGib.data?.activeBranch || 'main',
|
|
277
|
-
stagedCount: (indexIbGib.data?.staged_item || []).length,
|
|
278
|
-
stagedPaths: indexIbGib.data?.stagedPaths || {},
|
|
279
|
-
updatedAt: new Date().toISOString(),
|
|
280
|
-
};
|
|
281
|
-
const projFile = path.join(vcsPath, 'vcs_index_projection.json');
|
|
282
|
-
await fs.writeFile(projFile, JSON.stringify(projectionObj, null, 2), 'utf8');
|
|
283
|
-
}
|
|
284
|
-
catch (error) {
|
|
285
|
-
console.error(`${lc} ${extractErrorMsg(error)} (E: 4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c)`);
|
|
286
|
-
throw error;
|
|
287
|
-
}
|
|
288
|
-
finally {
|
|
289
|
-
if (logalot) {
|
|
290
|
-
console.log(`${lc} complete. (I: 5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d)`);
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
/**
|
|
295
|
-
* Unstages specified paths (or all paths if `all` or empty `paths`) from `indexIbGib.data.stagedPaths`
|
|
296
|
-
* and `indexIbGib.data.staged_item`.
|
|
297
|
-
*/
|
|
298
|
-
export async function unstagePathsFromIndex({ indexIbGib, paths = [], targetDir = process.cwd(), activeWorktreeDir, vcsPath, space, metaspace, all = false, }) {
|
|
299
|
-
const lc = `${lcFile}[${unstagePathsFromIndex.name}]`;
|
|
300
|
-
try {
|
|
301
|
-
if (logalot) {
|
|
302
|
-
console.log(`${lc} starting... (I: 6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d)`);
|
|
303
|
-
}
|
|
304
|
-
const currentStagedPaths = { ...(indexIbGib.data?.stagedPaths || {}) };
|
|
305
|
-
let currentStagedItems = [...(indexIbGib.data?.staged_item || [])];
|
|
306
|
-
const unstagedPaths = [];
|
|
307
|
-
const worktreeDir = activeWorktreeDir || targetDir;
|
|
308
|
-
if (all || paths.length === 0 || (paths.length === 1 && (paths[0] === '.' || paths[0] === ''))) {
|
|
309
|
-
for (const relPath of Object.keys(currentStagedPaths)) {
|
|
310
|
-
unstagedPaths.push(relPath);
|
|
311
|
-
}
|
|
312
|
-
const updatedIndex = await updateB2tFSIndexIbGib({
|
|
313
|
-
space,
|
|
314
|
-
metaspace,
|
|
315
|
-
indexIbGib,
|
|
316
|
-
dataToUpdate: {
|
|
317
|
-
stagedPaths: {},
|
|
318
|
-
staged_item: [],
|
|
319
|
-
},
|
|
320
|
-
vcsPath,
|
|
321
|
-
});
|
|
322
|
-
return { updatedIndex, unstagedPaths };
|
|
323
|
-
}
|
|
324
|
-
for (const p of paths) {
|
|
325
|
-
let relPath = p.replace(/\\/g, '/');
|
|
326
|
-
if (path.isAbsolute(p)) {
|
|
327
|
-
relPath = path.relative(worktreeDir, p).replace(/\\/g, '/');
|
|
328
|
-
}
|
|
329
|
-
else if (targetDir !== worktreeDir) {
|
|
330
|
-
const absP = path.resolve(targetDir, p);
|
|
331
|
-
relPath = path.relative(worktreeDir, absP).replace(/\\/g, '/');
|
|
332
|
-
}
|
|
333
|
-
const targetKeys = Object.keys(currentStagedPaths).filter((k) => {
|
|
334
|
-
return k === relPath || k.startsWith(relPath + '/');
|
|
335
|
-
});
|
|
336
|
-
for (const key of targetKeys) {
|
|
337
|
-
const record = currentStagedPaths[key];
|
|
338
|
-
if (record && record.itemAddr) {
|
|
339
|
-
currentStagedItems = currentStagedItems.filter((addr) => addr !== record.itemAddr);
|
|
340
|
-
}
|
|
341
|
-
delete currentStagedPaths[key];
|
|
342
|
-
if (!unstagedPaths.includes(key)) {
|
|
343
|
-
unstagedPaths.push(key);
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
const updatedIndex = await updateB2tFSIndexIbGib({
|
|
348
|
-
space,
|
|
349
|
-
metaspace,
|
|
350
|
-
indexIbGib,
|
|
351
|
-
dataToUpdate: {
|
|
352
|
-
stagedPaths: currentStagedPaths,
|
|
353
|
-
staged_item: currentStagedItems,
|
|
354
|
-
},
|
|
355
|
-
vcsPath,
|
|
356
|
-
});
|
|
357
|
-
return { updatedIndex, unstagedPaths };
|
|
358
|
-
}
|
|
359
|
-
catch (error) {
|
|
360
|
-
console.error(`${lc} ${extractErrorMsg(error)} (E: 7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e)`);
|
|
361
|
-
throw error;
|
|
362
|
-
}
|
|
363
|
-
finally {
|
|
364
|
-
if (logalot) {
|
|
365
|
-
console.log(`${lc} complete. (I: 8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f)`);
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
/**
|
|
370
|
-
* Restores working tree physical files from committed branch item snapshot.
|
|
371
|
-
*/
|
|
372
|
-
export async function restoreWorktreePathsFromSnapshot({ paths = [], targetDir = process.cwd(), activeWorktreeDir, activeBranchSpace, metaspace, indexIbGib, vcsPath, }) {
|
|
373
|
-
const lc = `${lcFile}[${restoreWorktreePathsFromSnapshot.name}]`;
|
|
374
|
-
try {
|
|
375
|
-
if (logalot) {
|
|
376
|
-
console.log(`${lc} starting... (I: 9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a)`);
|
|
377
|
-
}
|
|
378
|
-
let currIndex = indexIbGib;
|
|
379
|
-
if (!currIndex) {
|
|
380
|
-
currIndex = await getB2tFSIndexIbGib({ space: activeBranchSpace, vcsPath });
|
|
381
|
-
}
|
|
382
|
-
if (!currIndex) {
|
|
383
|
-
throw new Error(`Repository index B2tFSIndexIbGib_V1 not found (E: 0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b)`);
|
|
384
|
-
}
|
|
385
|
-
const activeBranch = currIndex.data?.activeBranch || 'main';
|
|
386
|
-
const branchAddrs = [
|
|
387
|
-
...(currIndex.rel8ns?.branch || []),
|
|
388
|
-
...(currIndex.rel8ns?.branch_tjp || []),
|
|
389
|
-
];
|
|
390
|
-
let branchIbGibs = [];
|
|
391
|
-
if (branchAddrs.length > 0) {
|
|
392
|
-
for (const bAddr of branchAddrs) {
|
|
393
|
-
const bIbGib = await getIbGibWithMetaspaceFallback({
|
|
394
|
-
addr: bAddr,
|
|
395
|
-
space: activeBranchSpace,
|
|
396
|
-
metaspace,
|
|
397
|
-
});
|
|
398
|
-
if (bIbGib) {
|
|
399
|
-
branchIbGibs.push(bIbGib);
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
const activeBranchIbGib = branchIbGibs.find((b) => b?.data?.name === activeBranch) || branchIbGibs.at(0);
|
|
404
|
-
if (!activeBranchIbGib) {
|
|
405
|
-
throw new Error(`Branch '${activeBranch}' not found (E: 1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c)`);
|
|
406
|
-
}
|
|
407
|
-
const rootItemAddr = activeBranchIbGib.rel8ns?.b2tfs_item?.at(0);
|
|
408
|
-
if (!rootItemAddr) {
|
|
409
|
-
throw new Error(`Branch '${activeBranch}' has no root item (E: 2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d)`);
|
|
410
|
-
}
|
|
411
|
-
const rootItem = await getIbGibWithMetaspaceFallback({
|
|
412
|
-
addr: rootItemAddr,
|
|
413
|
-
space: activeBranchSpace,
|
|
414
|
-
metaspace,
|
|
415
|
-
});
|
|
416
|
-
if (!rootItem) {
|
|
417
|
-
throw new Error(`Root item node '${rootItemAddr}' could not be fetched (E: 3f7e6d5c4b3a2f1e0d9c8b7a6f5e4d3c)`);
|
|
418
|
-
}
|
|
419
|
-
const committedItemMap = new Map();
|
|
420
|
-
await restoreCmd_collectCommittedItems({
|
|
421
|
-
item: rootItem,
|
|
422
|
-
parentRelPath: '',
|
|
423
|
-
space: activeBranchSpace,
|
|
424
|
-
metaspace,
|
|
425
|
-
outMap: committedItemMap,
|
|
426
|
-
});
|
|
427
|
-
const restoredPaths = [];
|
|
428
|
-
if (paths.length === 0 || (paths.length === 1 && (paths[0] === '.' || paths[0] === ''))) {
|
|
429
|
-
for (const entry of committedItemMap.values()) {
|
|
430
|
-
const destPath = path.join(activeWorktreeDir, entry.parentRelPath);
|
|
431
|
-
await writeB2tFSItemToFS({
|
|
432
|
-
item: entry.item,
|
|
433
|
-
destPath,
|
|
434
|
-
space: activeBranchSpace,
|
|
435
|
-
metaspace,
|
|
436
|
-
});
|
|
437
|
-
restoredPaths.push(entry.relPath);
|
|
438
|
-
}
|
|
439
|
-
}
|
|
440
|
-
else {
|
|
441
|
-
for (const p of paths) {
|
|
442
|
-
let relPath = p.replace(/\\/g, '/');
|
|
443
|
-
if (path.isAbsolute(p)) {
|
|
444
|
-
relPath = path.relative(activeWorktreeDir, p).replace(/\\/g, '/');
|
|
445
|
-
}
|
|
446
|
-
else if (targetDir !== activeWorktreeDir) {
|
|
447
|
-
const absP = path.resolve(targetDir, p);
|
|
448
|
-
relPath = path.relative(activeWorktreeDir, absP).replace(/\\/g, '/');
|
|
449
|
-
}
|
|
450
|
-
let matchedCount = 0;
|
|
451
|
-
for (const entry of committedItemMap.values()) {
|
|
452
|
-
if (entry.relPath === relPath || entry.relPath.startsWith(relPath + '/')) {
|
|
453
|
-
const destPath = path.join(activeWorktreeDir, entry.parentRelPath);
|
|
454
|
-
await writeB2tFSItemToFS({
|
|
455
|
-
item: entry.item,
|
|
456
|
-
destPath,
|
|
457
|
-
space: activeBranchSpace,
|
|
458
|
-
metaspace,
|
|
459
|
-
});
|
|
460
|
-
if (!restoredPaths.includes(entry.relPath)) {
|
|
461
|
-
restoredPaths.push(entry.relPath);
|
|
462
|
-
}
|
|
463
|
-
matchedCount++;
|
|
464
|
-
}
|
|
465
|
-
}
|
|
466
|
-
if (matchedCount === 0) {
|
|
467
|
-
throw new Error(`pathspec '${p}' did not match any committed file(s) in snapshot (E: 4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c)`);
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
return { restoredPaths };
|
|
472
|
-
}
|
|
473
|
-
catch (error) {
|
|
474
|
-
console.error(`${lc} ${extractErrorMsg(error)} (E: 5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b)`);
|
|
475
|
-
throw error;
|
|
476
|
-
}
|
|
477
|
-
finally {
|
|
478
|
-
if (logalot) {
|
|
479
|
-
console.log(`${lc} complete. (I: 6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b)`);
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
}
|
|
483
|
-
// #region restoreCmd_collectCommittedItems
|
|
484
|
-
async function restoreCmd_collectCommittedItems({ item, parentRelPath, space, metaspace, outMap, }) {
|
|
485
|
-
if (!item || !item.data) {
|
|
486
|
-
return;
|
|
487
|
-
}
|
|
488
|
-
const { fsType, name } = item.data;
|
|
489
|
-
if (fsType === 'folder' && !parentRelPath) {
|
|
490
|
-
const childAddrs = item.rel8ns?.[B2TFS_CHILD_ITEM_REL8N_NAME] || [];
|
|
491
|
-
for (const childAddr of childAddrs) {
|
|
492
|
-
const childItem = await getIbGibWithMetaspaceFallback({
|
|
493
|
-
addr: childAddr,
|
|
494
|
-
space,
|
|
495
|
-
metaspace,
|
|
496
|
-
});
|
|
497
|
-
if (childItem) {
|
|
498
|
-
await restoreCmd_collectCommittedItems({
|
|
499
|
-
item: childItem,
|
|
500
|
-
parentRelPath: '',
|
|
501
|
-
space,
|
|
502
|
-
metaspace,
|
|
503
|
-
outMap,
|
|
504
|
-
});
|
|
505
|
-
}
|
|
506
|
-
}
|
|
507
|
-
}
|
|
508
|
-
else {
|
|
509
|
-
const relPath = parentRelPath ? `${parentRelPath}/${name}` : name;
|
|
510
|
-
outMap.set(relPath, { relPath, parentRelPath, item });
|
|
511
|
-
if (fsType === 'folder') {
|
|
512
|
-
const childAddrs = item.rel8ns?.[B2TFS_CHILD_ITEM_REL8N_NAME] || [];
|
|
513
|
-
for (const childAddr of childAddrs) {
|
|
514
|
-
const childItem = await getIbGibWithMetaspaceFallback({
|
|
515
|
-
addr: childAddr,
|
|
516
|
-
space,
|
|
517
|
-
metaspace,
|
|
518
|
-
});
|
|
519
|
-
if (childItem) {
|
|
520
|
-
await restoreCmd_collectCommittedItems({
|
|
521
|
-
item: childItem,
|
|
522
|
-
parentRelPath: relPath,
|
|
523
|
-
space,
|
|
524
|
-
metaspace,
|
|
525
|
-
outMap,
|
|
526
|
-
});
|
|
527
|
-
}
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
}
|
|
531
|
-
}
|
|
532
|
-
// #endregion restoreCmd_collectCommittedItems
|
|
533
|
-
//# sourceMappingURL=index-helper.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-helper.mjs","sourceRoot":"","sources":["../../../src/engine/index/index-helper.mts"],"names":[],"mappings":"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"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module index-types
|
|
3
|
-
*
|
|
4
|
-
* Space-qualified address and B2tFS index type definitions.
|
|
5
|
-
*/
|
|
6
|
-
import { IbGibAddr } from '@ibgib/ts-gib/dist/types.mjs';
|
|
7
|
-
import { IbGibData_V1, IbGibRel8ns_V1, IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
|
|
8
|
-
/**
|
|
9
|
-
* Format: v:1^spaceId:<spaceId>^<ibGibAddr>
|
|
10
|
-
*/
|
|
11
|
-
export type SpaceQualifiedIbGibAddr = string;
|
|
12
|
-
export interface B2tFSStagedItemRecord {
|
|
13
|
-
itemAddr: string;
|
|
14
|
-
binAddr?: string;
|
|
15
|
-
fileHash?: string;
|
|
16
|
-
fsType: 'file' | 'folder';
|
|
17
|
-
stagedAt: string;
|
|
18
|
-
}
|
|
19
|
-
export interface B2tFSIndexData_V1 extends IbGibData_V1 {
|
|
20
|
-
/**
|
|
21
|
-
* Space UUID containing this index
|
|
22
|
-
*/
|
|
23
|
-
mySpaceId: string;
|
|
24
|
-
/**
|
|
25
|
-
* Currently active branch space UUID
|
|
26
|
-
*/
|
|
27
|
-
activeSpaceId: string;
|
|
28
|
-
/**
|
|
29
|
-
* Active branch name (e.g. 'main')
|
|
30
|
-
*/
|
|
31
|
-
activeBranch?: string;
|
|
32
|
-
/**
|
|
33
|
-
* Space UUID from which this space forked
|
|
34
|
-
*/
|
|
35
|
-
ancestorSpaceId?: string;
|
|
36
|
-
/**
|
|
37
|
-
* Soft references to branch TJPs: $@branch = [SpaceQualifiedIbGibAddr, ...]
|
|
38
|
-
*/
|
|
39
|
-
'$@branch'?: SpaceQualifiedIbGibAddr[];
|
|
40
|
-
/**
|
|
41
|
-
* Staged paths lookup table
|
|
42
|
-
*/
|
|
43
|
-
stagedPaths?: {
|
|
44
|
-
[relPath: string]: B2tFSStagedItemRecord;
|
|
45
|
-
};
|
|
46
|
-
/**
|
|
47
|
-
* Staged candidate item addresses
|
|
48
|
-
*/
|
|
49
|
-
staged_item?: IbGibAddr[];
|
|
50
|
-
}
|
|
51
|
-
export interface B2tFSIndexRel8ns_V1 extends IbGibRel8ns_V1 {
|
|
52
|
-
/**
|
|
53
|
-
* Local branch TJP address for this space
|
|
54
|
-
*/
|
|
55
|
-
branch_tjp?: IbGibAddr[];
|
|
56
|
-
/**
|
|
57
|
-
* Active or registered branch IbGib addresses
|
|
58
|
-
*/
|
|
59
|
-
branch?: IbGibAddr[];
|
|
60
|
-
}
|
|
61
|
-
export interface B2tFSIndexIbGib_V1 extends IbGib_V1<B2tFSIndexData_V1, B2tFSIndexRel8ns_V1> {
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=index-types.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-types.d.mts","sourceRoot":"","sources":["../../../src/engine/index/index-types.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAEzF;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE7C,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACnD;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,UAAU,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACvC;;OAEG;IACH,WAAW,CAAC,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,CAAA;KAAE,CAAC;IAC3D;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACvD;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,kBAAmB,SAAQ,QAAQ,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;CAC3F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-types.mjs","sourceRoot":"","sources":["../../../src/engine/index/index-types.mts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module item-atom-helper
|
|
3
|
-
*
|
|
4
|
-
* Helper functions enforcing canonical space-delimited `ib` atom formulas.
|
|
5
|
-
*
|
|
6
|
-
* Formula: `[atom] [fsType] [saferName] [saferNameVersion] [nameHash]`
|
|
7
|
-
* Example: `b2tfs_item file index_mts v1 a745323851634de188beaebdcb85cbb9`
|
|
8
|
-
*/
|
|
9
|
-
export declare const B2TFS_ITEM_ATOM = "b2tfs_item";
|
|
10
|
-
export declare const B2TFS_ITEM_SAFER_NAME_VERSION_V1 = "v1";
|
|
11
|
-
export declare function getB2tFSItemSaferName(rawName: string): string;
|
|
12
|
-
/**
|
|
13
|
-
* Returns canonical `ib` metadata string for a B2tFS item.
|
|
14
|
-
*
|
|
15
|
-
* @param fsType 'file' or 'folder'
|
|
16
|
-
* @param name raw file/folder name
|
|
17
|
-
* @param nameHash SHA-256 hash of name
|
|
18
|
-
*/
|
|
19
|
-
export declare function getB2tFSItemIb(fsType: 'file' | 'folder', name: string, nameHash: string): string;
|
|
20
|
-
//# sourceMappingURL=item-atom-helper.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"item-atom-helper.d.mts","sourceRoot":"","sources":["../../../src/engine/item/item-atom-helper.mts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,eAAO,MAAM,gCAAgC,OAAO,CAAC;AAErD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAK7D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGhG"}
|