update
This commit is contained in:
83
package/node_modules/@tufjs/models/dist/base.js
generated
vendored
Normal file
83
package/node_modules/@tufjs/models/dist/base.js
generated
vendored
Normal file
@@ -0,0 +1,83 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Signed = exports.isMetadataKind = exports.MetadataKind = void 0;
|
||||
const util_1 = __importDefault(require("util"));
|
||||
const error_1 = require("./error");
|
||||
const utils_1 = require("./utils");
|
||||
const SPECIFICATION_VERSION = ['1', '0', '31'];
|
||||
var MetadataKind;
|
||||
(function (MetadataKind) {
|
||||
MetadataKind["Root"] = "root";
|
||||
MetadataKind["Timestamp"] = "timestamp";
|
||||
MetadataKind["Snapshot"] = "snapshot";
|
||||
MetadataKind["Targets"] = "targets";
|
||||
})(MetadataKind || (exports.MetadataKind = MetadataKind = {}));
|
||||
function isMetadataKind(value) {
|
||||
return (typeof value === 'string' &&
|
||||
Object.values(MetadataKind).includes(value));
|
||||
}
|
||||
exports.isMetadataKind = isMetadataKind;
|
||||
/***
|
||||
* A base class for the signed part of TUF metadata.
|
||||
*
|
||||
* Objects with base class Signed are usually included in a ``Metadata`` object
|
||||
* on the signed attribute. This class provides attributes and methods that
|
||||
* are common for all TUF metadata types (roles).
|
||||
*/
|
||||
class Signed {
|
||||
constructor(options) {
|
||||
this.specVersion = options.specVersion || SPECIFICATION_VERSION.join('.');
|
||||
const specList = this.specVersion.split('.');
|
||||
if (!(specList.length === 2 || specList.length === 3) ||
|
||||
!specList.every((item) => isNumeric(item))) {
|
||||
throw new error_1.ValueError('Failed to parse specVersion');
|
||||
}
|
||||
// major version must match
|
||||
if (specList[0] != SPECIFICATION_VERSION[0]) {
|
||||
throw new error_1.ValueError('Unsupported specVersion');
|
||||
}
|
||||
this.expires = options.expires || new Date().toISOString();
|
||||
this.version = options.version || 1;
|
||||
this.unrecognizedFields = options.unrecognizedFields || {};
|
||||
}
|
||||
equals(other) {
|
||||
if (!(other instanceof Signed)) {
|
||||
return false;
|
||||
}
|
||||
return (this.specVersion === other.specVersion &&
|
||||
this.expires === other.expires &&
|
||||
this.version === other.version &&
|
||||
util_1.default.isDeepStrictEqual(this.unrecognizedFields, other.unrecognizedFields));
|
||||
}
|
||||
isExpired(referenceTime) {
|
||||
if (!referenceTime) {
|
||||
referenceTime = new Date();
|
||||
}
|
||||
return referenceTime >= new Date(this.expires);
|
||||
}
|
||||
static commonFieldsFromJSON(data) {
|
||||
const { spec_version, expires, version, ...rest } = data;
|
||||
if (utils_1.guard.isDefined(spec_version) && !(typeof spec_version === 'string')) {
|
||||
throw new TypeError('spec_version must be a string');
|
||||
}
|
||||
if (utils_1.guard.isDefined(expires) && !(typeof expires === 'string')) {
|
||||
throw new TypeError('expires must be a string');
|
||||
}
|
||||
if (utils_1.guard.isDefined(version) && !(typeof version === 'number')) {
|
||||
throw new TypeError('version must be a number');
|
||||
}
|
||||
return {
|
||||
specVersion: spec_version,
|
||||
expires,
|
||||
version,
|
||||
unrecognizedFields: rest,
|
||||
};
|
||||
}
|
||||
}
|
||||
exports.Signed = Signed;
|
||||
function isNumeric(str) {
|
||||
return !isNaN(Number(str));
|
||||
}
|
Reference in New Issue
Block a user