@cubist-labs/cubesigner-sdk 0.3.27 → 0.3.28
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.
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/src/client.d.ts +4 -4
- package/dist/cjs/src/key.d.ts +35 -2
- package/dist/cjs/src/key.js +79 -5
- package/dist/cjs/src/schema.d.ts +41 -24
- package/dist/cjs/src/schema.js +1 -1
- package/dist/cjs/src/util.d.ts +2 -0
- package/dist/cjs/src/util.js +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/esm/src/client.d.ts +4 -4
- package/dist/esm/src/key.d.ts +35 -2
- package/dist/esm/src/key.js +79 -5
- package/dist/esm/src/schema.d.ts +41 -24
- package/dist/esm/src/schema.js +1 -1
- package/dist/esm/src/util.d.ts +2 -0
- package/dist/esm/src/util.js +1 -1
- package/package.json +1 -1
- package/src/key.ts +83 -4
- package/src/schema.ts +42 -25
- package/src/util.ts +3 -0
package/dist/esm/src/util.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export interface JsonMap {
|
|
|
4
4
|
}
|
|
5
5
|
/** JSON array type */
|
|
6
6
|
export type JsonArray = Array<string | number | boolean | null | JsonArray | JsonMap>;
|
|
7
|
+
/** Any JSON value */
|
|
8
|
+
export type JsonValue = string | number | boolean | null | JsonArray | JsonMap;
|
|
7
9
|
/**
|
|
8
10
|
* Path join
|
|
9
11
|
* @param {string} dir Parent directory
|
package/dist/esm/src/util.js
CHANGED
|
@@ -74,4 +74,4 @@ export function encodeToHex(message) {
|
|
|
74
74
|
const buff = typeof message === "string" ? Buffer.from(message, "utf8") : Buffer.from(message);
|
|
75
75
|
return "0x" + buff.toString("hex");
|
|
76
76
|
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFXLEVBQUUsSUFBWTtJQUNoRCxNQUFNLEdBQUcsR0FBRyxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ25FLE9BQU8sR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksRUFBRSxDQUFDO0FBQy9CLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBVztJQUN0QyxPQUFPLE9BQU8sTUFBTSxLQUFLLFVBQVU7UUFDakMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQztRQUM1QixDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6RCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLE1BQWM7SUFDNUMsb0dBQW9HO0lBQ3BHLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3RSxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUF3QjtJQUNyRCxNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxNQUFNLEdBQUcsR0FDUCxPQUFPLE1BQU0sS0FBSyxVQUFVO1FBQzFCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDdkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuRSxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxNQUF3QjtJQUN4RCxNQUFNLEdBQUcsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsb0dBQW9HO0lBQ3BHLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3pFLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQUMsRUFBVTtJQUM5QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUE0QjtJQUN0RCxNQUFNLElBQUksR0FBRyxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9GLE9BQU8sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBKU09OIG1hcCB0eXBlICovXG5leHBvcnQgaW50ZXJmYWNlIEpzb25NYXAge1xuICBbbWVtYmVyOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbCB8IEpzb25BcnJheSB8IEpzb25NYXA7XG59XG5cbi8qKiBKU09OIGFycmF5IHR5cGUgKi9cbmV4cG9ydCB0eXBlIEpzb25BcnJheSA9IEFycmF5PHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgSnNvbkFycmF5IHwgSnNvbk1hcD47XG5cbi8qKiBBbnkgSlNPTiB2YWx1ZSAqL1xuZXhwb3J0IHR5cGUgSnNvblZhbHVlID0gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfCBKc29uQXJyYXkgfCBKc29uTWFwO1xuXG4vKipcbiAqIFBhdGggam9pblxuICogQHBhcmFtIHtzdHJpbmd9IGRpciBQYXJlbnQgZGlyZWN0b3J5XG4gKiBAcGFyYW0ge3N0cmluZ30gZmlsZSBQYXRobmFtZVxuICogQHJldHVybiB7c3RyaW5nfSBOZXcgcGF0aG5hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhdGhKb2luKGRpcjogc3RyaW5nLCBmaWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBzZXAgPSBnbG9iYWxUaGlzPy5wcm9jZXNzPy5wbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiID8gXCJcXFxcXCIgOiBcIi9cIjtcbiAgcmV0dXJuIGAke2Rpcn0ke3NlcH0ke2ZpbGV9YDtcbn1cblxuLyoqXG4gKiBCcm93c2VyLWZyaWVuZGx5IGhlbHBlciBmb3IgZGVjb2RpbmcgYSAnYmFzZTY0Jy1lbmNvZGVkIHN0cmluZyBpbnRvIGEgYnl0ZSBhcnJheS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYjY0IFRoZSAnYmFzZTY0Jy1lbmNvZGVkIHN0cmluZyB0byBkZWNvZGVcbiAqIEByZXR1cm4ge1VpbnQ4QXJyYXl9IERlY29kZWQgYnl0ZSBhcnJheVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlQmFzZTY0KGI2NDogc3RyaW5nKTogVWludDhBcnJheSB7XG4gIHJldHVybiB0eXBlb2YgQnVmZmVyID09PSBcImZ1bmN0aW9uXCJcbiAgICA/IEJ1ZmZlci5mcm9tKGI2NCwgXCJiYXNlNjRcIilcbiAgICA6IFVpbnQ4QXJyYXkuZnJvbShhdG9iKGI2NCksIChjKSA9PiBjLmNoYXJDb2RlQXQoMCkpO1xufVxuXG4vKipcbiAqIEJyb3dzZXItZnJpZW5kbHkgaGVscGVyIGZvciBkZWNvZGluZyBhICdiYXNlNjR1cmwnLWVuY29kZWQgc3RyaW5nIGludG8gYSBieXRlIGFycmF5LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBiNjR1cmwgVGhlICdiYXNlNjR1cmwnLWVuY29kZWQgc3RyaW5nIHRvIGRlY29kZVxuICogQHJldHVybiB7VWludDhBcnJheX0gRGVjb2RlZCBieXRlIGFycmF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVCYXNlNjRVcmwoYjY0dXJsOiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgLy8gTk9URTogdGhlcmUgaXMgbm8gXCJiYXNlNjR1cmxcIiBlbmNvZGluZyBpbiB0aGUgXCJidWZmZXJcIiBtb2R1bGUgZm9yIHRoZSBicm93c2VyICh1bmxpa2UgaW4gbm9kZS5qcylcbiAgY29uc3QgYjY0ID0gYjY0dXJsLnJlcGxhY2UoLy0vZywgXCIrXCIpLnJlcGxhY2UoL18vZywgXCIvXCIpLnJlcGxhY2UoLz0qJC9nLCBcIlwiKTtcbiAgcmV0dXJuIGRlY29kZUJhc2U2NChiNjQpO1xufVxuXG4vKipcbiAqXG4gKiBCcm93c2VyLWZyaWVuZGx5IGhlbHBlciBmb3IgZW5jb2RpbmcgYSBieXRlIGFycmF5IGludG8gYSBwYWRkZWQgYGJhc2U2NGAtZW5jb2RlZCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtJdGVyYWJsZTxudW1iZXI+fSBidWZmZXIgVGhlIGJ5dGUgYXJyYXkgdG8gZW5jb2RlXG4gKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSAnYmFzZTY0JyBlbmNvZGluZyBvZiB0aGUgYnl0ZSBhcnJheS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZVRvQmFzZTY0KGJ1ZmZlcjogSXRlcmFibGU8bnVtYmVyPik6IHN0cmluZyB7XG4gIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTtcbiAgY29uc3QgYjY0ID1cbiAgICB0eXBlb2YgQnVmZmVyID09PSBcImZ1bmN0aW9uXCJcbiAgICAgID8gQnVmZmVyLmZyb20oYnl0ZXMpLnRvU3RyaW5nKFwiYmFzZTY0XCIpXG4gICAgICA6IGJ0b2EoYnl0ZXMucmVkdWNlKChzLCBiKSA9PiBzICsgU3RyaW5nLmZyb21DaGFyQ29kZShiKSwgXCJcIikpO1xuICByZXR1cm4gYjY0O1xufVxuXG4vKipcbiAqIEJyb3dzZXItZnJpZW5kbHkgaGVscGVyIGZvciBlbmNvZGluZyBhIGJ5dGUgYXJyYXkgaW50byBhICdiYXNlNjR1cmxgLWVuY29kZWQgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7SXRlcmFibGU8bnVtYmVyPn0gYnVmZmVyIFRoZSBieXRlIGFycmF5IHRvIGVuY29kZVxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgJ2Jhc2U2NHVybCcgZW5jb2Rpbmcgb2YgdGhlIGJ5dGUgYXJyYXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVUb0Jhc2U2NFVybChidWZmZXI6IEl0ZXJhYmxlPG51bWJlcj4pOiBzdHJpbmcge1xuICBjb25zdCBiNjQgPSBlbmNvZGVUb0Jhc2U2NChidWZmZXIpO1xuICAvLyBOT1RFOiB0aGVyZSBpcyBubyBcImJhc2U2NHVybFwiIGVuY29kaW5nIGluIHRoZSBcImJ1ZmZlclwiIG1vZHVsZSBmb3IgdGhlIGJyb3dzZXIgKHVubGlrZSBpbiBub2RlLmpzKVxuICByZXR1cm4gYjY0LnJlcGxhY2UoL1xcKy9nLCBcIi1cIikucmVwbGFjZSgvXFwvL2csIFwiX1wiKS5yZXBsYWNlKC89KiQvZywgXCJcIik7XG59XG5cbi8qKlxuICogU2xlZXBzIGZvciBgbXNgIG1pbGxpc2Vjb25kcy5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gbXMgTWlsbGlzZWNvbmRzIHRvIHNsZWVwXG4gKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCBpcyByZXNvbHZlZCBhZnRlciBgbXNgIG1pbGxpc2Vjb25kcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlbGF5KG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBzdHJpbmcgb3IgYSB1aW50OCBhcnJheSBpbnRvIGEgaGV4IHN0cmluZy4gU3RyaW5ncyBhcmUgZW5jb2RlZCBpbiBVVEYtOCBiZWZvcmVcbiAqIGJlaW5nIGNvbnZlcnRlZCB0byBoZXguXG4gKiBAcGFyYW0ge3N0cmluZyB8IFVpbnQ4QXJyYXl9IG1lc3NhZ2UgVGhlIGlucHV0XG4gKiBAcmV0dXJuIHtzdHJpbmd9IEhleCBzdHJpbmcgcHJlZml4ZWQgd2l0aCBcIjB4XCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZVRvSGV4KG1lc3NhZ2U6IHN0cmluZyB8IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICBjb25zdCBidWZmID0gdHlwZW9mIG1lc3NhZ2UgPT09IFwic3RyaW5nXCIgPyBCdWZmZXIuZnJvbShtZXNzYWdlLCBcInV0ZjhcIikgOiBCdWZmZXIuZnJvbShtZXNzYWdlKTtcbiAgcmV0dXJuIFwiMHhcIiArIGJ1ZmYudG9TdHJpbmcoXCJoZXhcIik7XG59XG4iXX0=
|
package/package.json
CHANGED
package/src/key.ts
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
KeyInRoleInfo,
|
|
9
9
|
} from "./schema_types";
|
|
10
10
|
import { CubeSignerClient } from "./client";
|
|
11
|
+
import { ErrResponse, JsonValue, delay } from ".";
|
|
11
12
|
|
|
12
13
|
/** Secp256k1 key type */
|
|
13
14
|
export enum Secp256k1 {
|
|
@@ -158,8 +159,8 @@ export class Key {
|
|
|
158
159
|
* Set new policy (overwriting any policies previously set for this key)
|
|
159
160
|
* @param {KeyPolicy} policy The new policy to set
|
|
160
161
|
*/
|
|
161
|
-
async setPolicy(policy: KeyPolicy) {
|
|
162
|
-
await this.update({ policy: policy as unknown as Record<string, never>[] });
|
|
162
|
+
async setPolicy(policy: KeyPolicy): Promise<KeyInfo> {
|
|
163
|
+
return await this.update({ policy: policy as unknown as Record<string, never>[] });
|
|
163
164
|
}
|
|
164
165
|
|
|
165
166
|
/**
|
|
@@ -168,8 +169,77 @@ export class Key {
|
|
|
168
169
|
*
|
|
169
170
|
* @param {string} metadata The new metadata to set.
|
|
170
171
|
*/
|
|
171
|
-
async setMetadata(metadata:
|
|
172
|
-
await this.update({ metadata });
|
|
172
|
+
async setMetadata(metadata: JsonValue): Promise<KeyInfo> {
|
|
173
|
+
return await this.update({ metadata });
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Retrieves the existing metadata, asserts that it is in object (throws if it is not),
|
|
178
|
+
* then sets the value of the {@link name} property in that object to {@link value},
|
|
179
|
+
* and finally submits the request to update the metadata.
|
|
180
|
+
*
|
|
181
|
+
* This whole process is done atomically, meaning, that if the metadata changes between the
|
|
182
|
+
* time this method first retrieves it and the time it submits a request to update it, the
|
|
183
|
+
* request will be rejected. When that happens, this method will retry a couple of times.
|
|
184
|
+
*
|
|
185
|
+
* @param {string} name The name of the property to set
|
|
186
|
+
* @param {JsonValue} value The new value of the property
|
|
187
|
+
* @return {Promise<KeyInfo>} Updated key information
|
|
188
|
+
*/
|
|
189
|
+
async setMetadataProperty(name: string, value: JsonValue): Promise<KeyInfo> {
|
|
190
|
+
return await this.#setMetadataProperty(name, value, [100, 200, 400]);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Retrieves the existing metadata, asserts that it is in object (throws if it is not),
|
|
195
|
+
* then deletes the {@link name} property in that object, and finally submits the
|
|
196
|
+
* request to update the metadata.
|
|
197
|
+
*
|
|
198
|
+
* This whole process is done atomically, meaning, that if the metadata changes between the
|
|
199
|
+
* time this method first retrieves it and the time it submits a request to update it, the
|
|
200
|
+
* request will be rejected. When that happens, this method will retry a couple of times.
|
|
201
|
+
*
|
|
202
|
+
* @param {string} name The name of the property to set
|
|
203
|
+
* @return {Promise<KeyInfo>} Updated key information
|
|
204
|
+
*/
|
|
205
|
+
async deleteMetadataProperty(name: string): Promise<KeyInfo> {
|
|
206
|
+
return await this.#setMetadataProperty(name, undefined, [100, 200, 400]);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* @param {string} name The name of the property to set
|
|
211
|
+
* @param {JsonValue} value The new value of the property
|
|
212
|
+
* @param {number[]} delaysMs Delays in milliseconds between retries
|
|
213
|
+
* @return {Promise<KeyInfo>} Updated key information
|
|
214
|
+
* @internal
|
|
215
|
+
*/
|
|
216
|
+
async #setMetadataProperty(
|
|
217
|
+
name: string,
|
|
218
|
+
value: JsonValue | undefined,
|
|
219
|
+
delaysMs: number[],
|
|
220
|
+
): Promise<KeyInfo> {
|
|
221
|
+
const data = await this.fetch();
|
|
222
|
+
const current = data.metadata ?? {};
|
|
223
|
+
if (typeof current !== "object") {
|
|
224
|
+
throw new Error("Current metadata is not a JSON object");
|
|
225
|
+
}
|
|
226
|
+
const updated = {
|
|
227
|
+
...current,
|
|
228
|
+
[name]: value,
|
|
229
|
+
};
|
|
230
|
+
try {
|
|
231
|
+
return await this.update({
|
|
232
|
+
metadata: updated,
|
|
233
|
+
version: data.version,
|
|
234
|
+
});
|
|
235
|
+
} catch (e) {
|
|
236
|
+
if ((e as ErrResponse).errorCode === "InvalidUpdate" && delaysMs.length > 0) {
|
|
237
|
+
await delay(delaysMs[0]);
|
|
238
|
+
return await this.#setMetadataProperty(name, value, delaysMs.slice(1));
|
|
239
|
+
} else {
|
|
240
|
+
throw e;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
173
243
|
}
|
|
174
244
|
|
|
175
245
|
/**
|
|
@@ -193,6 +263,15 @@ export class Key {
|
|
|
193
263
|
return (data.policy ?? []) as unknown as KeyPolicy;
|
|
194
264
|
}
|
|
195
265
|
|
|
266
|
+
/**
|
|
267
|
+
* Fetch the metadata for the key.
|
|
268
|
+
* @return {Promise<JsonValue>} The policy for the key.
|
|
269
|
+
*/
|
|
270
|
+
async metadata(): Promise<JsonValue> {
|
|
271
|
+
const data = await this.fetch();
|
|
272
|
+
return data.metadata as JsonValue;
|
|
273
|
+
}
|
|
274
|
+
|
|
196
275
|
/**
|
|
197
276
|
* @description Owner of the key
|
|
198
277
|
* @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
|
package/src/schema.ts
CHANGED
|
@@ -188,7 +188,11 @@ export interface paths {
|
|
|
188
188
|
* Update Key
|
|
189
189
|
* @description Update Key
|
|
190
190
|
*
|
|
191
|
-
* Enable or disable a key. The user must be the owner of the key or
|
|
191
|
+
* Enable or disable a key. The user must be the owner of the key or
|
|
192
|
+
* organization to perform this action.
|
|
193
|
+
*
|
|
194
|
+
* For each requested update, the session must have the corresponding 'manage:key:update:_' scope;
|
|
195
|
+
* if no updates are requested, the session must have 'manage:key:get'.
|
|
192
196
|
*/
|
|
193
197
|
patch: operations["updateKey"];
|
|
194
198
|
};
|
|
@@ -1026,8 +1030,8 @@ export interface components {
|
|
|
1026
1030
|
| "RoleNameTaken"
|
|
1027
1031
|
| "AddKeyToRoleCountTooHigh"
|
|
1028
1032
|
| "InvalidKeyId"
|
|
1029
|
-
| "
|
|
1030
|
-
| "
|
|
1033
|
+
| "InvalidUpdate"
|
|
1034
|
+
| "InvalidMetadataLength"
|
|
1031
1035
|
| "InvalidKeyMaterialId"
|
|
1032
1036
|
| "KeyNotFound"
|
|
1033
1037
|
| "UserExportDerivedKey"
|
|
@@ -1192,6 +1196,22 @@ export interface components {
|
|
|
1192
1196
|
/** @description Session ID */
|
|
1193
1197
|
session_id: string;
|
|
1194
1198
|
};
|
|
1199
|
+
/** @description Fields that are common to different types of resources such as keys */
|
|
1200
|
+
CommonFields: {
|
|
1201
|
+
created?: components["schemas"]["EpochDateTime"] | null;
|
|
1202
|
+
last_modified?: components["schemas"]["EpochDateTime"] | null;
|
|
1203
|
+
/**
|
|
1204
|
+
* @description User-defined metadata. When rendering (e.g., in the browser) you should treat
|
|
1205
|
+
* it as untrusted user data (and avoid injecting metadata into HTML directly) if
|
|
1206
|
+
* untrusted users can create/update keys (or their metadata).
|
|
1207
|
+
*/
|
|
1208
|
+
metadata?: unknown;
|
|
1209
|
+
/**
|
|
1210
|
+
* Format: int64
|
|
1211
|
+
* @description Version of this object
|
|
1212
|
+
*/
|
|
1213
|
+
version?: number;
|
|
1214
|
+
};
|
|
1195
1215
|
ConfiguredMfa:
|
|
1196
1216
|
| {
|
|
1197
1217
|
/** @enum {string} */
|
|
@@ -1207,10 +1227,10 @@ export interface components {
|
|
|
1207
1227
|
};
|
|
1208
1228
|
CreateAndUpdateKeyProperties: {
|
|
1209
1229
|
/**
|
|
1210
|
-
* @description Set this key's metadata.
|
|
1211
|
-
*
|
|
1230
|
+
* @description Set this key's metadata. If this value is `null`, the metadata is erased. If the field is
|
|
1231
|
+
* missing, the metadata remains unchanged.
|
|
1212
1232
|
*/
|
|
1213
|
-
metadata?:
|
|
1233
|
+
metadata?: unknown;
|
|
1214
1234
|
/**
|
|
1215
1235
|
* @description Specify a user other than themselves to be the (potentially new) owner of the key.
|
|
1216
1236
|
* The specified owner must be an existing user who is a member of the same org.
|
|
@@ -2090,7 +2110,7 @@ export interface components {
|
|
|
2090
2110
|
*/
|
|
2091
2111
|
role_id: string;
|
|
2092
2112
|
};
|
|
2093
|
-
KeyInfo: {
|
|
2113
|
+
KeyInfo: components["schemas"]["CommonFields"] & {
|
|
2094
2114
|
derivation_info?: components["schemas"]["KeyDerivationInfo"] | null;
|
|
2095
2115
|
/** @description Whether the key is enabled (only enabled keys may be used for signing) */
|
|
2096
2116
|
enabled: boolean;
|
|
@@ -2106,12 +2126,6 @@ export interface components {
|
|
|
2106
2126
|
* @example 0x8e3484687e66cdd26cf04c3647633ab4f3570148
|
|
2107
2127
|
*/
|
|
2108
2128
|
material_id: string;
|
|
2109
|
-
/**
|
|
2110
|
-
* @description User-defined metadata. When rendering (e.g., in the browser) you should treat
|
|
2111
|
-
* it as untrusted user data (and avoid injecting metadata into HTML directly) if
|
|
2112
|
-
* untrusted users can create/update keys (or their metadata).
|
|
2113
|
-
*/
|
|
2114
|
-
metadata?: string;
|
|
2115
2129
|
/**
|
|
2116
2130
|
* @description Owner of the key
|
|
2117
2131
|
* @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
|
|
@@ -3212,6 +3226,11 @@ export interface components {
|
|
|
3212
3226
|
* Once disabled, a key cannot be used for signing.
|
|
3213
3227
|
*/
|
|
3214
3228
|
enabled?: boolean | null;
|
|
3229
|
+
/**
|
|
3230
|
+
* Format: int64
|
|
3231
|
+
* @description If set, updating the metadata only succeeds if the version matches this value.
|
|
3232
|
+
*/
|
|
3233
|
+
version?: number | null;
|
|
3215
3234
|
};
|
|
3216
3235
|
UpdateOrgRequest: {
|
|
3217
3236
|
/** @description If set, update this org's `enabled` field to this value. */
|
|
@@ -3469,10 +3488,10 @@ export interface components {
|
|
|
3469
3488
|
};
|
|
3470
3489
|
UserInOrgInfo: {
|
|
3471
3490
|
/**
|
|
3472
|
-
* @description The user's email
|
|
3491
|
+
* @description The user's email (optional)
|
|
3473
3492
|
* @example alice@example.com
|
|
3474
3493
|
*/
|
|
3475
|
-
email
|
|
3494
|
+
email?: string | null;
|
|
3476
3495
|
/**
|
|
3477
3496
|
* @description The id of the user
|
|
3478
3497
|
* @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
|
|
@@ -3502,7 +3521,7 @@ export interface components {
|
|
|
3502
3521
|
* @description Optional email
|
|
3503
3522
|
* @example alice@example.com
|
|
3504
3523
|
*/
|
|
3505
|
-
email
|
|
3524
|
+
email?: string | null;
|
|
3506
3525
|
/** @description All multi-factor authentication methods configured for this user */
|
|
3507
3526
|
mfa: components["schemas"]["ConfiguredMfa"][];
|
|
3508
3527
|
/** @description MFA policy, applies before logging in and other sensitive operations */
|
|
@@ -3767,7 +3786,7 @@ export interface components {
|
|
|
3767
3786
|
};
|
|
3768
3787
|
KeyInfo: {
|
|
3769
3788
|
content: {
|
|
3770
|
-
"application/json": {
|
|
3789
|
+
"application/json": components["schemas"]["CommonFields"] & {
|
|
3771
3790
|
derivation_info?: components["schemas"]["KeyDerivationInfo"] | null;
|
|
3772
3791
|
/** @description Whether the key is enabled (only enabled keys may be used for signing) */
|
|
3773
3792
|
enabled: boolean;
|
|
@@ -3783,12 +3802,6 @@ export interface components {
|
|
|
3783
3802
|
* @example 0x8e3484687e66cdd26cf04c3647633ab4f3570148
|
|
3784
3803
|
*/
|
|
3785
3804
|
material_id: string;
|
|
3786
|
-
/**
|
|
3787
|
-
* @description User-defined metadata. When rendering (e.g., in the browser) you should treat
|
|
3788
|
-
* it as untrusted user data (and avoid injecting metadata into HTML directly) if
|
|
3789
|
-
* untrusted users can create/update keys (or their metadata).
|
|
3790
|
-
*/
|
|
3791
|
-
metadata?: string;
|
|
3792
3805
|
/**
|
|
3793
3806
|
* @description Owner of the key
|
|
3794
3807
|
* @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
|
|
@@ -4339,7 +4352,7 @@ export interface components {
|
|
|
4339
4352
|
* @description Optional email
|
|
4340
4353
|
* @example alice@example.com
|
|
4341
4354
|
*/
|
|
4342
|
-
email
|
|
4355
|
+
email?: string | null;
|
|
4343
4356
|
/** @description All multi-factor authentication methods configured for this user */
|
|
4344
4357
|
mfa: components["schemas"]["ConfiguredMfa"][];
|
|
4345
4358
|
/** @description MFA policy, applies before logging in and other sensitive operations */
|
|
@@ -4955,7 +4968,11 @@ export interface operations {
|
|
|
4955
4968
|
* Update Key
|
|
4956
4969
|
* @description Update Key
|
|
4957
4970
|
*
|
|
4958
|
-
* Enable or disable a key. The user must be the owner of the key or
|
|
4971
|
+
* Enable or disable a key. The user must be the owner of the key or
|
|
4972
|
+
* organization to perform this action.
|
|
4973
|
+
*
|
|
4974
|
+
* For each requested update, the session must have the corresponding 'manage:key:update:_' scope;
|
|
4975
|
+
* if no updates are requested, the session must have 'manage:key:get'.
|
|
4959
4976
|
*/
|
|
4960
4977
|
updateKey: {
|
|
4961
4978
|
parameters: {
|
package/src/util.ts
CHANGED
|
@@ -6,6 +6,9 @@ export interface JsonMap {
|
|
|
6
6
|
/** JSON array type */
|
|
7
7
|
export type JsonArray = Array<string | number | boolean | null | JsonArray | JsonMap>;
|
|
8
8
|
|
|
9
|
+
/** Any JSON value */
|
|
10
|
+
export type JsonValue = string | number | boolean | null | JsonArray | JsonMap;
|
|
11
|
+
|
|
9
12
|
/**
|
|
10
13
|
* Path join
|
|
11
14
|
* @param {string} dir Parent directory
|