summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/@tufjs/models/dist/metadata.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/@tufjs/models/dist/metadata.d.ts')
-rw-r--r--deps/npm/node_modules/@tufjs/models/dist/metadata.d.ts48
1 files changed, 48 insertions, 0 deletions
diff --git a/deps/npm/node_modules/@tufjs/models/dist/metadata.d.ts b/deps/npm/node_modules/@tufjs/models/dist/metadata.d.ts
new file mode 100644
index 0000000000..55c9294a29
--- /dev/null
+++ b/deps/npm/node_modules/@tufjs/models/dist/metadata.d.ts
@@ -0,0 +1,48 @@
+/// <reference types="node" />
+import { MetadataKind, Signable } from './base';
+import { Root } from './root';
+import { Signature } from './signature';
+import { Snapshot } from './snapshot';
+import { Targets } from './targets';
+import { Timestamp } from './timestamp';
+import { JSONObject, JSONValue } from './utils';
+type MetadataType = Root | Timestamp | Snapshot | Targets;
+/***
+ * A container for signed TUF metadata.
+ *
+ * Provides methods to convert to and from json, read and write to and
+ * from JSON and to create and verify metadata signatures.
+ *
+ * ``Metadata[T]`` is a generic container type where T can be any one type of
+ * [``Root``, ``Timestamp``, ``Snapshot``, ``Targets``]. The purpose of this
+ * is to allow static type checking of the signed attribute in code using
+ * Metadata::
+ *
+ * root_md = Metadata[Root].fromJSON("root.json")
+ * # root_md type is now Metadata[Root]. This means signed and its
+ * # attributes like consistent_snapshot are now statically typed and the
+ * # types can be verified by static type checkers and shown by IDEs
+ *
+ * Using a type constraint is not required but not doing so means T is not a
+ * specific type so static typing cannot happen. Note that the type constraint
+ * ``[Root]`` is not validated at runtime (as pure annotations are not available
+ * then).
+ *
+ * Apart from ``expires`` all of the arguments to the inner constructors have
+ * reasonable default values for new metadata.
+ */
+export declare class Metadata<T extends MetadataType> implements Signable {
+ signed: T;
+ signatures: Record<string, Signature>;
+ unrecognizedFields: Record<string, JSONValue>;
+ constructor(signed: T, signatures?: Record<string, Signature>, unrecognizedFields?: Record<string, JSONValue>);
+ sign(signer: (data: Buffer) => Signature, append?: boolean): void;
+ verifyDelegate(delegatedRole: string, delegatedMetadata: Metadata<MetadataType>): void;
+ equals(other: T): boolean;
+ toJSON(): JSONObject;
+ static fromJSON(type: MetadataKind.Root, data: JSONObject): Metadata<Root>;
+ static fromJSON(type: MetadataKind.Timestamp, data: JSONObject): Metadata<Timestamp>;
+ static fromJSON(type: MetadataKind.Snapshot, data: JSONObject): Metadata<Snapshot>;
+ static fromJSON(type: MetadataKind.Targets, data: JSONObject): Metadata<Targets>;
+}
+export {};