spec-3nweb-server 1.6.2 → 1.6.3

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.
@@ -403,7 +403,7 @@ class Store extends user_files_1.UserFiles {
403
403
  throw exports.SC.OBJ_UNKNOWN;
404
404
  }
405
405
  if (status.currentVersion !== version) {
406
- throw exports.SC.OBJ_VER_UNKNOWN;
406
+ throw makeMismatchedObjVerException(status.currentVersion);
407
407
  }
408
408
  const arch = status.archivedVersions;
409
409
  if (Array.isArray(arch)) {
@@ -38,10 +38,17 @@ function archiveCurrentObjVersion(root, archiveObjVerFunc) {
38
38
  }
39
39
  catch (err) {
40
40
  if ("string" !== typeof err) {
41
- next(err);
42
- }
43
- else if (err === users_1.SC.OBJ_VER_UNKNOWN) {
44
- res.status(SC.unknownObjVer).send(`Object ${objId} version ${version} is not current.`);
41
+ if (err.type === 'mismatched-obj-ver') {
42
+ const rep = {
43
+ error: "Current object version doesn't match assumed one.",
44
+ current_version: err.current_version
45
+ };
46
+ res.set(owner_1.HTTP_HEADER.objVersion, `${err.current_version}`);
47
+ res.status(owner_1.archiveObj.SC.mismatchedObjVer).json(rep);
48
+ }
49
+ else {
50
+ next(err);
51
+ }
45
52
  }
46
53
  else if (err === users_1.SC.OBJ_UNKNOWN) {
47
54
  res.status(SC.unknownObj).send(root ?
@@ -128,9 +128,10 @@ export declare namespace currentObj {
128
128
  mismatchedObjVer: number;
129
129
  objIncomplete: number;
130
130
  };
131
- interface MismatchedObjVerReply extends ErrorReply {
132
- current_version: number;
133
- }
131
+ type MismatchedObjVerReply = MismatchedObjVerErrReply;
132
+ }
133
+ export interface MismatchedObjVerErrReply extends ErrorReply {
134
+ current_version: number;
134
135
  }
135
136
  export declare namespace currentRootObj {
136
137
  const EXPRESS_URL_END = "root/current";
@@ -236,23 +237,25 @@ export declare namespace rootStatus {
236
237
  export declare namespace archiveObj {
237
238
  const EXPRESS_URL_END = "obj/:objId/archive";
238
239
  function postAndDelReqUrlEnd(objId: string, version: number): string;
239
- type VersionsList = number[];
240
+ type MismatchedObjVerReply = MismatchedObjVerErrReply;
240
241
  const SC: {
241
242
  okPost: number;
242
243
  okDelete: number;
243
244
  unknownObj: number;
244
245
  unknownObjVer: number;
246
+ mismatchedObjVer: number;
245
247
  };
246
248
  }
247
249
  export declare namespace archiveRoot {
248
250
  const EXPRESS_URL_END = "root/archive";
249
251
  function postAndDelReqUrlEnd(version: number): string;
250
- type VersionsList = archiveObj.VersionsList;
252
+ type MismatchedObjVerReply = archiveObj.MismatchedObjVerReply;
251
253
  const SC: {
252
254
  okPost: number;
253
255
  okDelete: number;
254
256
  unknownObj: number;
255
257
  unknownObjVer: number;
258
+ mismatchedObjVer: number;
256
259
  };
257
260
  }
258
261
  export interface ErrorReply {
@@ -258,7 +258,8 @@ var archiveObj;
258
258
  okPost: 200,
259
259
  okDelete: 200,
260
260
  unknownObj: 474,
261
- unknownObjVer: 494
261
+ unknownObjVer: 494,
262
+ mismatchedObjVer: 495
262
263
  };
263
264
  })(archiveObj = exports.archiveObj || (exports.archiveObj = {}));
264
265
  Object.freeze(archiveObj);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spec-3nweb-server",
3
- "version": "1.6.2",
3
+ "version": "1.6.3",
4
4
  "description": "3NWeb spec server.",
5
5
  "main": "build/lib.js",
6
6
  "types": "build/lib.d.ts",