core-3nweb-client-lib 0.44.8 → 0.44.10

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.
@@ -41,7 +41,6 @@ export declare function rmNonArchVersionsIn(versions: VersionsInfo, ver: number)
41
41
  export declare function rmArchVersionFrom(versions: VersionsInfo, ver: number): boolean;
42
42
  export declare function setCurrentVersionIn(versions: VersionsInfo, version: number, baseVer: number | undefined): void;
43
43
  export declare function rmCurrentVersionIn(versions: VersionsInfo): number | undefined;
44
- export declare function rmVersionIn(version: number, vers: VersionsInfo): void;
45
44
  export declare function nonGarbageVersionsIn(versions: VersionsInfo): Set<number>;
46
45
  export interface NonGarbageVersions {
47
46
  gcMaxVer?: number;
@@ -23,7 +23,6 @@ exports.rmNonArchVersionsIn = rmNonArchVersionsIn;
23
23
  exports.rmArchVersionFrom = rmArchVersionFrom;
24
24
  exports.setCurrentVersionIn = setCurrentVersionIn;
25
25
  exports.rmCurrentVersionIn = rmCurrentVersionIn;
26
- exports.rmVersionIn = rmVersionIn;
27
26
  exports.nonGarbageVersionsIn = nonGarbageVersionsIn;
28
27
  exports.addWithBasesTo = addWithBasesTo;
29
28
  exports.addArchived = addArchived;
@@ -131,15 +130,6 @@ function rmCurrentVersionIn(versions) {
131
130
  }
132
131
  return current;
133
132
  }
134
- function rmVersionIn(version, vers) {
135
- if (vers.current === version) {
136
- vers.current = undefined;
137
- rmNonArchVersionsIn(vers, version);
138
- }
139
- if (isVersionIn(version, vers)) {
140
- rmArchVersionFrom(vers, version);
141
- }
142
- }
143
133
  function nonGarbageVersionsIn(versions) {
144
134
  const nonGarbage = new Set();
145
135
  addWithBasesTo(nonGarbage, versions.current, versions);
@@ -307,7 +307,7 @@ class SyncedObj {
307
307
  const objVer = await this.instanceOfLocalObjVer(version);
308
308
  for (const localBase of localBases) {
309
309
  await objVer.absorbImmediateBaseVersion(localBase, this.localVerPath(localBase));
310
- this.status.absorbLocalVersionBase(version, localBase);
310
+ await this.status.absorbLocalVersionBase(version, localBase);
311
311
  }
312
312
  }
313
313
  return syncedBase;
@@ -474,15 +474,11 @@ class ObjStatus {
474
474
  const local = this.status.local;
475
475
  (0, assert_1.assert)(local.diffToBase[version] === localBase);
476
476
  const lowerBase = local.diffToBase[localBase];
477
- if (localBase) {
478
- local.diffToBase[version] = lowerBase;
479
- local.baseToDiff[lowerBase] = version;
477
+ if (lowerBase) {
478
+ // flip version's base to be new value before removing
479
+ (0, obj_info_file_1.addBaseToDiffLinkInVersInfo)(local, version, lowerBase);
480
480
  }
481
- else {
482
- delete local.diffToBase[version];
483
- }
484
- delete local.diffToBase[localBase];
485
- delete local.baseToDiff[localBase];
481
+ (0, obj_info_file_1.rmNonArchVersionsIn)(local, localBase);
486
482
  return this.triggerSaveProc();
487
483
  }
488
484
  latestSyncedVersion() {
@@ -35,7 +35,7 @@ export declare class ObjOnDisk {
35
35
  private readBaseBytesFromOtherFilesOnDisk;
36
36
  getSrc(): ObjSource;
37
37
  getBaseVersion(): number | undefined;
38
- absorbImmediateBaseVersion(baseVer: number, path: string): Promise<void>;
38
+ absorbImmediateBaseVersion(baseVer: number, basePath: string): Promise<void>;
39
39
  diffFromBase(): {
40
40
  diff: DiffInfo;
41
41
  newSegsPackOrder: FiniteChunk[];
@@ -195,8 +195,8 @@ class ObjOnDisk {
195
195
  getBaseVersion() {
196
196
  return this.objFile.getBaseVersion();
197
197
  }
198
- absorbImmediateBaseVersion(baseVer, path) {
199
- return this.objFile.absorbImmediateBaseVersion(baseVer, path);
198
+ absorbImmediateBaseVersion(baseVer, basePath) {
199
+ return this.objFile.absorbImmediateBaseVersion(baseVer, basePath);
200
200
  }
201
201
  diffFromBase() {
202
202
  return this.objFile.diffFromBase();
@@ -34,7 +34,7 @@ export declare class ObjVersionFile {
34
34
  setSegsLayout(layout: Layout, saveLayout: boolean): Promise<void>;
35
35
  truncateEndlessLayout(): void;
36
36
  isFileComplete(): boolean;
37
- absorbImmediateBaseVersion(baseVer: number, path: string): Promise<void>;
37
+ absorbImmediateBaseVersion(baseVer: number, basePath: string): Promise<void>;
38
38
  diffFromBase(): {
39
39
  diff: DiffInfo;
40
40
  newSegsPackOrder: FiniteChunk[];
@@ -251,11 +251,11 @@ class ObjVersionFile {
251
251
  isFileComplete() {
252
252
  return this.layout.isFileComplete();
253
253
  }
254
- async absorbImmediateBaseVersion(baseVer, path) {
254
+ async absorbImmediateBaseVersion(baseVer, basePath) {
255
255
  (0, assert_1.assert)(Number.isInteger(baseVer) && (baseVer === this.layout.getBaseVersion()));
256
- const baseLayout = await readLayoutFrom(path);
256
+ const baseLayout = await readLayoutFrom(basePath);
257
257
  const absorptionParams = this.layout.calcBaseAbsorptionParams(baseLayout);
258
- const src = await fs.open(path, 'r');
258
+ const src = await fs.open(basePath, 'r');
259
259
  await this.withRWFile(async (fh) => {
260
260
  if (absorptionParams.copyOps.length > 0) {
261
261
  await this.recordLayout(fh, absorptionParams.newBytesEnd);
@@ -264,8 +264,7 @@ class ObjVersionFile {
264
264
  if (buf.length < op.len) {
265
265
  buf = Buffer.allocUnsafe(op.len);
266
266
  }
267
- const chunk = ((op.len < buf.length) ?
268
- buf.slice(0, op.len) : buf);
267
+ const chunk = ((op.len < buf.length) ? buf.subarray(0, op.len) : buf);
269
268
  await fs.readToBuf(src, op.ofsInSrcFile, chunk);
270
269
  await fs.writeFromBuf(fh, op.ofsInDstFile, chunk);
271
270
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "core-3nweb-client-lib",
3
- "version": "0.44.8",
3
+ "version": "0.44.10",
4
4
  "description": "3NWeb client core library, embeddable into different environments",
5
5
  "main": "build/lib-index.js",
6
6
  "types": "build/lib-index.d.ts",
@@ -41,7 +41,7 @@
41
41
  "@types/ws": "^8.18.1",
42
42
  "jasmine": "^5.13.0",
43
43
  "protobufjs-cli": "^1.0.2",
44
- "spec-3nweb-server": "^1.8.0",
44
+ "spec-3nweb-server": "^1.8.5",
45
45
  "tsuml2": "^0.17.1",
46
46
  "typescript": "^5.5.3"
47
47
  }