@absolutejs/vulnerabilities-witness 0.2.1 → 0.4.0
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/index.js +4 -3
- package/dist/server.js +4 -3
- package/dist/service.d.ts +3 -2
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -115,7 +115,7 @@ var verifyEvidenceWitnessKeyRegistry = (input) => {
|
|
|
115
115
|
// src/service.ts
|
|
116
116
|
var EVIDENCE_WITNESS_REQUEST_CONTRACT = "absolutejs.vulnerability-evidence-witness-request/v1";
|
|
117
117
|
var EVIDENCE_WITNESS_BACKUP_VERIFICATION_CONTRACT = "absolutejs.vulnerability-evidence-witness-backup-verification/v1";
|
|
118
|
-
var EVIDENCE_WITNESS_STATUS_CONTRACT = "absolutejs.vulnerability-evidence-witness-status/
|
|
118
|
+
var EVIDENCE_WITNESS_STATUS_CONTRACT = "absolutejs.vulnerability-evidence-witness-status/v2";
|
|
119
119
|
var timestamp = (value, label) => {
|
|
120
120
|
if (!Number.isFinite(Date.parse(value)))
|
|
121
121
|
throw new Error(`${label} is invalid`);
|
|
@@ -155,10 +155,11 @@ var createEvidenceWitnessService = (options) => {
|
|
|
155
155
|
await refresh();
|
|
156
156
|
return evidenceWitnessKeyRegistryFrom(state);
|
|
157
157
|
};
|
|
158
|
-
const status = async () => ({
|
|
158
|
+
const status = async (subject) => ({
|
|
159
159
|
backup: options.loadBackupVerification ? await options.loadBackupVerification().then((value) => value === null ? null : parseEvidenceWitnessBackupVerification(value)) : null,
|
|
160
160
|
checkedAt: new Date().toISOString(),
|
|
161
161
|
contract: EVIDENCE_WITNESS_STATUS_CONTRACT,
|
|
162
|
+
latestCheckpoint: await options.store.latest(subject).then((observation) => observation?.checkpoint ?? null),
|
|
162
163
|
registry: await registry()
|
|
163
164
|
});
|
|
164
165
|
const checkpoint = async (subject, request) => {
|
|
@@ -306,7 +307,7 @@ var createEvidenceWitnessHttpHandler = (options) => async (request) => {
|
|
|
306
307
|
const subject2 = await options.authenticate(bearer(request));
|
|
307
308
|
if (!subject2)
|
|
308
309
|
return json({ error: "unauthorized" }, 401);
|
|
309
|
-
return json(await options.service.status());
|
|
310
|
+
return json(await options.service.status(subject2));
|
|
310
311
|
}
|
|
311
312
|
if (request.method !== "POST" || url.pathname !== "/v1/checkpoints")
|
|
312
313
|
return json({ error: "not_found" }, 404);
|
package/dist/server.js
CHANGED
|
@@ -117,7 +117,7 @@ var verifyEvidenceWitnessKeyRegistry = (input) => {
|
|
|
117
117
|
// src/service.ts
|
|
118
118
|
var EVIDENCE_WITNESS_REQUEST_CONTRACT = "absolutejs.vulnerability-evidence-witness-request/v1";
|
|
119
119
|
var EVIDENCE_WITNESS_BACKUP_VERIFICATION_CONTRACT = "absolutejs.vulnerability-evidence-witness-backup-verification/v1";
|
|
120
|
-
var EVIDENCE_WITNESS_STATUS_CONTRACT = "absolutejs.vulnerability-evidence-witness-status/
|
|
120
|
+
var EVIDENCE_WITNESS_STATUS_CONTRACT = "absolutejs.vulnerability-evidence-witness-status/v2";
|
|
121
121
|
var timestamp = (value, label) => {
|
|
122
122
|
if (!Number.isFinite(Date.parse(value)))
|
|
123
123
|
throw new Error(`${label} is invalid`);
|
|
@@ -157,10 +157,11 @@ var createEvidenceWitnessService = (options) => {
|
|
|
157
157
|
await refresh();
|
|
158
158
|
return evidenceWitnessKeyRegistryFrom(state);
|
|
159
159
|
};
|
|
160
|
-
const status = async () => ({
|
|
160
|
+
const status = async (subject) => ({
|
|
161
161
|
backup: options.loadBackupVerification ? await options.loadBackupVerification().then((value) => value === null ? null : parseEvidenceWitnessBackupVerification(value)) : null,
|
|
162
162
|
checkedAt: new Date().toISOString(),
|
|
163
163
|
contract: EVIDENCE_WITNESS_STATUS_CONTRACT,
|
|
164
|
+
latestCheckpoint: await options.store.latest(subject).then((observation) => observation?.checkpoint ?? null),
|
|
164
165
|
registry: await registry()
|
|
165
166
|
});
|
|
166
167
|
const checkpoint = async (subject, request) => {
|
|
@@ -308,7 +309,7 @@ var createEvidenceWitnessHttpHandler = (options) => async (request) => {
|
|
|
308
309
|
const subject2 = await options.authenticate(bearer(request));
|
|
309
310
|
if (!subject2)
|
|
310
311
|
return json({ error: "unauthorized" }, 401);
|
|
311
|
-
return json(await options.service.status());
|
|
312
|
+
return json(await options.service.status(subject2));
|
|
312
313
|
}
|
|
313
314
|
if (request.method !== "POST" || url.pathname !== "/v1/checkpoints")
|
|
314
315
|
return json({ error: "not_found" }, 404);
|
package/dist/service.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export type EvidenceWitnessResponse = {
|
|
|
11
11
|
registry: EvidenceWitnessKeyRegistry;
|
|
12
12
|
};
|
|
13
13
|
export declare const EVIDENCE_WITNESS_BACKUP_VERIFICATION_CONTRACT: "absolutejs.vulnerability-evidence-witness-backup-verification/v1";
|
|
14
|
-
export declare const EVIDENCE_WITNESS_STATUS_CONTRACT: "absolutejs.vulnerability-evidence-witness-status/
|
|
14
|
+
export declare const EVIDENCE_WITNESS_STATUS_CONTRACT: "absolutejs.vulnerability-evidence-witness-status/v2";
|
|
15
15
|
export type EvidenceWitnessBackupVerification = {
|
|
16
16
|
contract: typeof EVIDENCE_WITNESS_BACKUP_VERIFICATION_CONTRACT;
|
|
17
17
|
databaseArtifactDigest: `sha256:${string}`;
|
|
@@ -24,6 +24,7 @@ export type EvidenceWitnessStatus = {
|
|
|
24
24
|
backup: EvidenceWitnessBackupVerification | null;
|
|
25
25
|
checkedAt: string;
|
|
26
26
|
contract: typeof EVIDENCE_WITNESS_STATUS_CONTRACT;
|
|
27
|
+
latestCheckpoint: EvidenceWitnessResponse["checkpoint"] | null;
|
|
27
28
|
registry: EvidenceWitnessKeyRegistry;
|
|
28
29
|
};
|
|
29
30
|
export declare const parseEvidenceWitnessBackupVerification: (value: unknown) => EvidenceWitnessBackupVerification;
|
|
@@ -42,5 +43,5 @@ export declare const createEvidenceWitnessService: (options: {
|
|
|
42
43
|
}) => Promise<EvidenceWitnessKeyRegistry>;
|
|
43
44
|
registry: () => Promise<EvidenceWitnessKeyRegistry>;
|
|
44
45
|
rotate: (rotatedAt?: string) => Promise<EvidenceWitnessKeyRegistry>;
|
|
45
|
-
status: () => Promise<EvidenceWitnessStatus>;
|
|
46
|
+
status: (subject: string) => Promise<EvidenceWitnessStatus>;
|
|
46
47
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@absolutejs/vulnerabilities-witness",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Independent durable transparency witness with rollback, equivocation, key-rotation, and HTTP service primitives for AbsoluteJS vulnerability evidence.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "BSL-1.1",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
],
|
|
62
62
|
"dependencies": {
|
|
63
63
|
"@absolutejs/manifest": "0.3.0",
|
|
64
|
-
"@absolutejs/secrets": "0.
|
|
64
|
+
"@absolutejs/secrets": "0.8.0",
|
|
65
65
|
"@absolutejs/vulnerabilities": "0.14.0",
|
|
66
66
|
"@sinclair/typebox": "0.34.52"
|
|
67
67
|
},
|