1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- "use strict";
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Targets = void 0;
- const util_1 = __importDefault(require("util"));
- const base_1 = require("./base");
- const delegations_1 = require("./delegations");
- const file_1 = require("./file");
- const utils_1 = require("./utils");
- // Container for the signed part of targets metadata.
- //
- // Targets contains verifying information about target files and also delegates
- // responsible to other Targets roles.
- class Targets extends base_1.Signed {
- constructor(options) {
- super(options);
- this.type = base_1.MetadataKind.Targets;
- this.targets = options.targets || {};
- this.delegations = options.delegations;
- }
- addTarget(target) {
- this.targets[target.path] = target;
- }
- equals(other) {
- if (!(other instanceof Targets)) {
- return false;
- }
- return (super.equals(other) &&
- util_1.default.isDeepStrictEqual(this.targets, other.targets) &&
- util_1.default.isDeepStrictEqual(this.delegations, other.delegations));
- }
- toJSON() {
- const json = {
- _type: this.type,
- spec_version: this.specVersion,
- version: this.version,
- expires: this.expires,
- targets: targetsToJSON(this.targets),
- ...this.unrecognizedFields,
- };
- if (this.delegations) {
- json.delegations = this.delegations.toJSON();
- }
- return json;
- }
- static fromJSON(data) {
- const { unrecognizedFields, ...commonFields } = base_1.Signed.commonFieldsFromJSON(data);
- const { targets, delegations, ...rest } = unrecognizedFields;
- return new Targets({
- ...commonFields,
- targets: targetsFromJSON(targets),
- delegations: delegationsFromJSON(delegations),
- unrecognizedFields: rest,
- });
- }
- }
- exports.Targets = Targets;
- function targetsToJSON(targets) {
- return Object.entries(targets).reduce((acc, [path, target]) => ({
- ...acc,
- [path]: target.toJSON(),
- }), {});
- }
- function targetsFromJSON(data) {
- let targets;
- if (utils_1.guard.isDefined(data)) {
- if (!utils_1.guard.isObjectRecord(data)) {
- throw new TypeError('targets must be an object');
- }
- else {
- targets = Object.entries(data).reduce((acc, [path, target]) => ({
- ...acc,
- [path]: file_1.TargetFile.fromJSON(path, target),
- }), {});
- }
- }
- return targets;
- }
- function delegationsFromJSON(data) {
- let delegations;
- if (utils_1.guard.isDefined(data)) {
- if (!utils_1.guard.isObject(data)) {
- throw new TypeError('delegations must be an object');
- }
- else {
- delegations = delegations_1.Delegations.fromJSON(data);
- }
- }
- return delegations;
- }
|