@kya-os/mcp 1.10.1 → 1.12.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/AUDITABILITY.md +441 -0
- package/CHANGELOG.md +108 -0
- package/CONFORMANCE.md +600 -0
- package/README.md +69 -6
- package/SPEC.md +1820 -0
- package/dist/audit/adapters/legacy-audit-log.d.ts +20 -0
- package/dist/audit/adapters/legacy-audit-log.d.ts.map +1 -0
- package/dist/audit/adapters/legacy-audit-log.js +56 -0
- package/dist/audit/adapters/legacy-audit-log.js.map +1 -0
- package/dist/audit/adapters/mcp.d.ts +105 -0
- package/dist/audit/adapters/mcp.d.ts.map +1 -0
- package/dist/audit/adapters/mcp.js +213 -0
- package/dist/audit/adapters/mcp.js.map +1 -0
- package/dist/audit/assurance.d.ts +22 -0
- package/dist/audit/assurance.d.ts.map +1 -0
- package/dist/audit/assurance.js +39 -0
- package/dist/audit/assurance.js.map +1 -0
- package/dist/audit/checkpoint-coordinator.d.ts +51 -0
- package/dist/audit/checkpoint-coordinator.d.ts.map +1 -0
- package/dist/audit/checkpoint-coordinator.js +112 -0
- package/dist/audit/checkpoint-coordinator.js.map +1 -0
- package/dist/audit/checkpoint.d.ts +59 -0
- package/dist/audit/checkpoint.d.ts.map +1 -0
- package/dist/audit/checkpoint.js +219 -0
- package/dist/audit/checkpoint.js.map +1 -0
- package/dist/audit/cli.d.ts +8 -0
- package/dist/audit/cli.d.ts.map +1 -0
- package/dist/audit/cli.js +85 -0
- package/dist/audit/cli.js.map +1 -0
- package/dist/audit/crypto.d.ts +37 -0
- package/dist/audit/crypto.d.ts.map +1 -0
- package/dist/audit/crypto.js +68 -0
- package/dist/audit/crypto.js.map +1 -0
- package/dist/audit/errors.d.ts +29 -0
- package/dist/audit/errors.d.ts.map +1 -0
- package/dist/audit/errors.js +33 -0
- package/dist/audit/errors.js.map +1 -0
- package/dist/audit/evidence.d.ts +45 -0
- package/dist/audit/evidence.d.ts.map +1 -0
- package/dist/audit/evidence.js +151 -0
- package/dist/audit/evidence.js.map +1 -0
- package/dist/audit/index.d.ts +30 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +30 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/audit/integrity.d.ts +19 -0
- package/dist/audit/integrity.d.ts.map +1 -0
- package/dist/audit/integrity.js +64 -0
- package/dist/audit/integrity.js.map +1 -0
- package/dist/audit/merkle.d.ts +31 -0
- package/dist/audit/merkle.d.ts.map +1 -0
- package/dist/audit/merkle.js +195 -0
- package/dist/audit/merkle.js.map +1 -0
- package/dist/audit/mirror-service.d.ts +19 -0
- package/dist/audit/mirror-service.d.ts.map +1 -0
- package/dist/audit/mirror-service.js +54 -0
- package/dist/audit/mirror-service.js.map +1 -0
- package/dist/audit/projection.d.ts +90 -0
- package/dist/audit/projection.d.ts.map +1 -0
- package/dist/audit/projection.js +142 -0
- package/dist/audit/projection.js.map +1 -0
- package/dist/audit/providers/anchor.d.ts +23 -0
- package/dist/audit/providers/anchor.d.ts.map +1 -0
- package/dist/audit/providers/anchor.js +25 -0
- package/dist/audit/providers/anchor.js.map +1 -0
- package/dist/audit/providers/evidence.d.ts +36 -0
- package/dist/audit/providers/evidence.d.ts.map +1 -0
- package/dist/audit/providers/evidence.js +2 -0
- package/dist/audit/providers/evidence.js.map +1 -0
- package/dist/audit/providers/journal.d.ts +35 -0
- package/dist/audit/providers/journal.d.ts.map +1 -0
- package/dist/audit/providers/journal.js +2 -0
- package/dist/audit/providers/journal.js.map +1 -0
- package/dist/audit/providers/memory-journal.d.ts +24 -0
- package/dist/audit/providers/memory-journal.d.ts.map +1 -0
- package/dist/audit/providers/memory-journal.js +73 -0
- package/dist/audit/providers/memory-journal.js.map +1 -0
- package/dist/audit/providers/observer.d.ts +30 -0
- package/dist/audit/providers/observer.d.ts.map +1 -0
- package/dist/audit/providers/observer.js +100 -0
- package/dist/audit/providers/observer.js.map +1 -0
- package/dist/audit/providers/outbox.d.ts +37 -0
- package/dist/audit/providers/outbox.d.ts.map +1 -0
- package/dist/audit/providers/outbox.js +52 -0
- package/dist/audit/providers/outbox.js.map +1 -0
- package/dist/audit/providers/recorder-client.d.ts +22 -0
- package/dist/audit/providers/recorder-client.d.ts.map +1 -0
- package/dist/audit/providers/recorder-client.js +17 -0
- package/dist/audit/providers/recorder-client.js.map +1 -0
- package/dist/audit/providers/source-state.d.ts +37 -0
- package/dist/audit/providers/source-state.d.ts.map +1 -0
- package/dist/audit/providers/source-state.js +94 -0
- package/dist/audit/providers/source-state.js.map +1 -0
- package/dist/audit/read-contract.d.ts +445 -0
- package/dist/audit/read-contract.d.ts.map +1 -0
- package/dist/audit/read-contract.js +126 -0
- package/dist/audit/read-contract.js.map +1 -0
- package/dist/audit/read-service.d.ts +99 -0
- package/dist/audit/read-service.d.ts.map +1 -0
- package/dist/audit/read-service.js +124 -0
- package/dist/audit/read-service.js.map +1 -0
- package/dist/audit/recorder-service.d.ts +78 -0
- package/dist/audit/recorder-service.d.ts.map +1 -0
- package/dist/audit/recorder-service.js +331 -0
- package/dist/audit/recorder-service.js.map +1 -0
- package/dist/audit/reference-recorder.d.ts +43 -0
- package/dist/audit/reference-recorder.d.ts.map +1 -0
- package/dist/audit/reference-recorder.js +131 -0
- package/dist/audit/reference-recorder.js.map +1 -0
- package/dist/audit/replay-bundle.d.ts +52 -0
- package/dist/audit/replay-bundle.d.ts.map +1 -0
- package/dist/audit/replay-bundle.js +551 -0
- package/dist/audit/replay-bundle.js.map +1 -0
- package/dist/audit/schemas.d.ts +1145 -0
- package/dist/audit/schemas.d.ts.map +1 -0
- package/dist/audit/schemas.js +483 -0
- package/dist/audit/schemas.js.map +1 -0
- package/dist/audit/service.d.ts +91 -0
- package/dist/audit/service.d.ts.map +1 -0
- package/dist/audit/service.js +222 -0
- package/dist/audit/service.js.map +1 -0
- package/dist/audit/testing/index.d.ts +2 -0
- package/dist/audit/testing/index.d.ts.map +1 -0
- package/dist/audit/testing/index.js +2 -0
- package/dist/audit/testing/index.js.map +1 -0
- package/dist/audit/testing/provider-contracts.d.ts +51 -0
- package/dist/audit/testing/provider-contracts.d.ts.map +1 -0
- package/dist/audit/testing/provider-contracts.js +391 -0
- package/dist/audit/testing/provider-contracts.js.map +1 -0
- package/dist/audit/types.d.ts +356 -0
- package/dist/audit/types.d.ts.map +1 -0
- package/dist/audit/types.js +49 -0
- package/dist/audit/types.js.map +1 -0
- package/dist/audit/verifier.d.ts +73 -0
- package/dist/audit/verifier.d.ts.map +1 -0
- package/dist/audit/verifier.js +322 -0
- package/dist/audit/verifier.js.map +1 -0
- package/dist/card/builder.d.ts +1 -1
- package/dist/card/builder.js +1 -1
- package/dist/card/emit.d.ts +3 -3
- package/dist/card/emit.d.ts.map +1 -1
- package/dist/card/emit.js.map +1 -1
- package/dist/card/index.d.ts +1 -1
- package/dist/card/index.js +1 -1
- package/dist/card/middleware.d.ts +6 -4
- package/dist/card/middleware.d.ts.map +1 -1
- package/dist/card/middleware.js +11 -7
- package/dist/card/middleware.js.map +1 -1
- package/dist/card/proof/build.d.ts +3 -3
- package/dist/card/proof/build.js +3 -3
- package/dist/card/proof/canonical.d.ts.map +1 -1
- package/dist/card/proof/canonical.js +19 -1
- package/dist/card/proof/canonical.js.map +1 -1
- package/dist/card/proof/http-sig.d.ts +1 -1
- package/dist/card/proof/http-sig.js +1 -1
- package/dist/card/proof/index.d.ts +2 -2
- package/dist/card/proof/index.js +2 -2
- package/dist/card/proof/nonce-cache.d.ts +1 -1
- package/dist/card/proof/nonce-cache.js +1 -1
- package/dist/card/proof/types.d.ts +16 -7
- package/dist/card/proof/types.d.ts.map +1 -1
- package/dist/card/proof/types.js +16 -7
- package/dist/card/proof/types.js.map +1 -1
- package/dist/card/proof/verify.d.ts +2 -2
- package/dist/card/proof/verify.js +2 -2
- package/dist/card/schema.d.ts +14 -6
- package/dist/card/schema.d.ts.map +1 -1
- package/dist/card/schema.js +14 -3
- package/dist/card/schema.js.map +1 -1
- package/dist/card/verify.d.ts +1 -1
- package/dist/card/verify.d.ts.map +1 -1
- package/dist/delegation/delegation-graph.d.ts +4 -0
- package/dist/delegation/delegation-graph.d.ts.map +1 -1
- package/dist/delegation/delegation-graph.js +28 -2
- package/dist/delegation/delegation-graph.js.map +1 -1
- package/dist/delegation/statuslist-manager.d.ts +5 -0
- package/dist/delegation/statuslist-manager.d.ts.map +1 -1
- package/dist/delegation/statuslist-manager.js.map +1 -1
- package/dist/delegation/storage/memory-graph-storage.d.ts +4 -2
- package/dist/delegation/storage/memory-graph-storage.d.ts.map +1 -1
- package/dist/delegation/storage/memory-graph-storage.js +18 -0
- package/dist/delegation/storage/memory-graph-storage.js.map +1 -1
- package/dist/delegation/storage/memory-statuslist-storage.d.ts +5 -2
- package/dist/delegation/storage/memory-statuslist-storage.d.ts.map +1 -1
- package/dist/delegation/storage/memory-statuslist-storage.js +21 -2
- package/dist/delegation/storage/memory-statuslist-storage.js.map +1 -1
- package/dist/delegation/utils.d.ts.map +1 -1
- package/dist/delegation/utils.js +2 -42
- package/dist/delegation/utils.js.map +1 -1
- package/dist/delegation/vc-verification-checks.d.ts.map +1 -1
- package/dist/delegation/vc-verification-checks.js +16 -1
- package/dist/delegation/vc-verification-checks.js.map +1 -1
- package/dist/delegation/vc-verifier.d.ts +4 -0
- package/dist/delegation/vc-verifier.d.ts.map +1 -1
- package/dist/delegation/vc-verifier.js +44 -13
- package/dist/delegation/vc-verifier.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.js +1 -1
- package/dist/extension/declaration.d.ts +60 -0
- package/dist/extension/declaration.d.ts.map +1 -0
- package/dist/extension/declaration.js +75 -0
- package/dist/extension/declaration.js.map +1 -0
- package/dist/extension/gate.d.ts +110 -0
- package/dist/extension/gate.d.ts.map +1 -0
- package/dist/extension/gate.js +133 -0
- package/dist/extension/gate.js.map +1 -0
- package/dist/extension/index.d.ts +14 -0
- package/dist/extension/index.d.ts.map +1 -0
- package/dist/extension/index.js +14 -0
- package/dist/extension/index.js.map +1 -0
- package/dist/extension/settings.d.ts +70 -0
- package/dist/extension/settings.d.ts.map +1 -0
- package/dist/extension/settings.js +96 -0
- package/dist/extension/settings.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/middleware/kya-os-transport.d.ts +1 -1
- package/dist/middleware/kya-os-transport.d.ts.map +1 -1
- package/dist/middleware/kya-os-transport.js +11 -4
- package/dist/middleware/kya-os-transport.js.map +1 -1
- package/dist/middleware/with-kya-os-server.d.ts +6 -0
- package/dist/middleware/with-kya-os-server.d.ts.map +1 -1
- package/dist/middleware/with-kya-os-server.js +2 -0
- package/dist/middleware/with-kya-os-server.js.map +1 -1
- package/dist/middleware/with-kya-os.config-types.d.ts +15 -0
- package/dist/middleware/with-kya-os.config-types.d.ts.map +1 -1
- package/dist/middleware/with-kya-os.config-types.js.map +1 -1
- package/dist/middleware/with-kya-os.d.ts.map +1 -1
- package/dist/middleware/with-kya-os.delegation-gate.d.ts.map +1 -1
- package/dist/middleware/with-kya-os.delegation-gate.js +96 -3
- package/dist/middleware/with-kya-os.delegation-gate.js.map +1 -1
- package/dist/middleware/with-kya-os.delegation-verify.d.ts.map +1 -1
- package/dist/middleware/with-kya-os.delegation-verify.js +2 -2
- package/dist/middleware/with-kya-os.delegation-verify.js.map +1 -1
- package/dist/middleware/with-kya-os.deps.d.ts +2 -0
- package/dist/middleware/with-kya-os.deps.d.ts.map +1 -1
- package/dist/middleware/with-kya-os.js +23 -0
- package/dist/middleware/with-kya-os.js.map +1 -1
- package/dist/middleware/with-kya-os.policy-gate.d.ts.map +1 -1
- package/dist/middleware/with-kya-os.policy-gate.js +29 -4
- package/dist/middleware/with-kya-os.policy-gate.js.map +1 -1
- package/dist/middleware/with-kya-os.protocol.d.ts.map +1 -1
- package/dist/middleware/with-kya-os.protocol.js +10 -0
- package/dist/middleware/with-kya-os.protocol.js.map +1 -1
- package/dist/middleware/with-kya-os.session.d.ts.map +1 -1
- package/dist/middleware/with-kya-os.session.js +208 -2
- package/dist/middleware/with-kya-os.session.js.map +1 -1
- package/dist/middleware/with-kya-os.types.d.ts +6 -0
- package/dist/middleware/with-kya-os.types.d.ts.map +1 -1
- package/dist/middleware/with-kya-os.types.js.map +1 -1
- package/dist/proof/generator.d.ts +14 -2
- package/dist/proof/generator.d.ts.map +1 -1
- package/dist/proof/generator.js +20 -7
- package/dist/proof/generator.js.map +1 -1
- package/dist/proof/index.d.ts +1 -1
- package/dist/proof/index.d.ts.map +1 -1
- package/dist/proof/index.js +1 -1
- package/dist/proof/index.js.map +1 -1
- package/dist/proof/verifier.d.ts +15 -2
- package/dist/proof/verifier.d.ts.map +1 -1
- package/dist/proof/verifier.js +48 -12
- package/dist/proof/verifier.js.map +1 -1
- package/dist/session/manager.js +1 -1
- package/dist/session/manager.js.map +1 -1
- package/dist/types/protocol.d.ts +22 -0
- package/dist/types/protocol.d.ts.map +1 -1
- package/dist/types/protocol.js +31 -5
- package/dist/types/protocol.js.map +1 -1
- package/dist/utils/canonical-json.d.ts +15 -0
- package/dist/utils/canonical-json.d.ts.map +1 -0
- package/dist/utils/canonical-json.js +109 -0
- package/dist/utils/canonical-json.js.map +1 -0
- package/dist/utils/crypto-service.d.ts.map +1 -1
- package/dist/utils/crypto-service.js +5 -0
- package/dist/utils/crypto-service.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/package.json +29 -11
- package/schemas/README.md +28 -1
- package/schemas/audit-anchor-receipt.schema.json +16 -0
- package/schemas/audit-bundle-manifest.schema.json +71 -0
- package/schemas/audit-checkpoint.schema.json +37 -0
- package/schemas/audit-consistency-proof.schema.json +17 -0
- package/schemas/audit-entry.schema.json +33 -0
- package/schemas/audit-event.schema.json +168 -0
- package/schemas/audit-inclusion-proof.schema.json +17 -0
- package/schemas/audit-observation.schema.json +40 -0
- package/schemas/audit-receipt.schema.json +32 -0
- package/schemas/audit-verification-policy.schema.json +71 -0
- package/schemas/audit-verification-report.schema.json +29 -0
- package/schemas/kya-os-card.schema.json +6 -6
- package/schemas/mcp-extension-settings.json +37 -0
- package/schemas/well-known-mcpi.json +17 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/audit/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,483 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { AUDIT_EVENT_TYPES } from './types.js';
|
|
3
|
+
import { assertCanonicalJsonValue } from '../utils/canonical-json.js';
|
|
4
|
+
export const AUDIT_EVENT_SCHEMA_ID = 'https://schema.kya-os.org/v1/protocol/audit/event/v1.0.0';
|
|
5
|
+
export const AUDIT_ENTRY_SCHEMA_ID = 'https://schema.kya-os.org/v1/protocol/audit/entry/v1.0.0';
|
|
6
|
+
export const AUDIT_RECEIPT_SCHEMA_ID = 'https://schema.kya-os.org/v1/protocol/audit/receipt/v1.0.0';
|
|
7
|
+
export const AUDIT_INTEGRITY_SUITE = 'KYA-AUDIT-JCS-SHA256-JWS-2026';
|
|
8
|
+
export const AUDIT_CHECKPOINT_SCHEMA_ID = 'https://schema.kya-os.org/v1/protocol/audit/checkpoint/v1.0.0';
|
|
9
|
+
export const AUDIT_CHECKPOINT_INTEGRITY_SUITE = 'KYA-AUDIT-RFC9162-SHA256-JWS-2026';
|
|
10
|
+
export const AUDIT_BUNDLE_MANIFEST_SCHEMA_ID = 'https://schema.kya-os.org/v1/protocol/audit/bundle-manifest/v1.0.0';
|
|
11
|
+
export const AUDIT_BUNDLE_INTEGRITY_SUITE = 'KYA-AUDIT-BUNDLE-JCS-SHA256-JWS-2026';
|
|
12
|
+
const MAX_DECIMAL_LENGTH = 20;
|
|
13
|
+
const MAX_REFERENCE_LENGTH = 256;
|
|
14
|
+
const MAX_DID_LENGTH = 2048;
|
|
15
|
+
const MAX_JWS_LENGTH = 4096;
|
|
16
|
+
const MAX_RECEIPT_DATA_LENGTH = 65_536;
|
|
17
|
+
export const decimalStringSchema = z.string().max(MAX_DECIMAL_LENGTH).regex(/^(0|[1-9][0-9]*)$/);
|
|
18
|
+
export const digestSchema = z.string().regex(/^sha256:[a-f0-9]{64}$/);
|
|
19
|
+
const didSchema = z.string()
|
|
20
|
+
.min(5)
|
|
21
|
+
.max(MAX_DID_LENGTH)
|
|
22
|
+
.regex(/^did:[^\r\n]+$/);
|
|
23
|
+
export const signerRefSchema = z.object({
|
|
24
|
+
did: didSchema,
|
|
25
|
+
kid: z.string().min(1).max(MAX_DID_LENGTH + MAX_REFERENCE_LENGTH),
|
|
26
|
+
alg: z.enum(['EdDSA', 'ES256']),
|
|
27
|
+
}).strict();
|
|
28
|
+
export const evidenceRefSchema = z.object({
|
|
29
|
+
objectId: z.string().min(1).max(MAX_REFERENCE_LENGTH),
|
|
30
|
+
ciphertextDigest: digestSchema,
|
|
31
|
+
plaintextCommitment: digestSchema.optional(),
|
|
32
|
+
mediaType: z.string().min(1).max(MAX_REFERENCE_LENGTH),
|
|
33
|
+
size: decimalStringSchema,
|
|
34
|
+
encryption: z.object({
|
|
35
|
+
suite: z.literal('A256GCM'),
|
|
36
|
+
keyId: z.string().min(1).max(MAX_REFERENCE_LENGTH),
|
|
37
|
+
nonce: z.string().min(1).max(MAX_REFERENCE_LENGTH),
|
|
38
|
+
aadDigest: digestSchema,
|
|
39
|
+
}).strict(),
|
|
40
|
+
}).strict();
|
|
41
|
+
export const partyRefSchema = z.discriminatedUnion('kind', [
|
|
42
|
+
z.object({ kind: z.literal('public_did'), did: didSchema }).strict(),
|
|
43
|
+
z.object({ kind: z.literal('pairwise_did'), did: didSchema }).strict(),
|
|
44
|
+
z.object({
|
|
45
|
+
kind: z.literal('keyed_commitment'),
|
|
46
|
+
value: digestSchema,
|
|
47
|
+
keyId: z.string().min(1).max(MAX_REFERENCE_LENGTH),
|
|
48
|
+
}).strict(),
|
|
49
|
+
z.object({ kind: z.literal('evidence_ref'), ref: evidenceRefSchema }).strict(),
|
|
50
|
+
]);
|
|
51
|
+
const detailsSchemas = [
|
|
52
|
+
z.object({
|
|
53
|
+
family: z.literal('session'),
|
|
54
|
+
phase: z.enum(['established', 'rejected', 'expired', 'replay_rejected']),
|
|
55
|
+
reasonCode: z.string().min(1).max(128).optional(),
|
|
56
|
+
}).strict(),
|
|
57
|
+
z.object({
|
|
58
|
+
family: z.literal('tool'),
|
|
59
|
+
phase: z.enum(['started', 'completed', 'failed', 'denied', 'challenged']),
|
|
60
|
+
attempt: decimalStringSchema,
|
|
61
|
+
idempotencyRef: z.string().min(1).max(MAX_REFERENCE_LENGTH).optional(),
|
|
62
|
+
}).strict(),
|
|
63
|
+
z.object({
|
|
64
|
+
family: z.literal('proof'),
|
|
65
|
+
phase: z.enum(['generated', 'verified', 'rejected']),
|
|
66
|
+
proofDigest: digestSchema.optional(),
|
|
67
|
+
verificationCode: z.string().min(1).max(128).optional(),
|
|
68
|
+
}).strict(),
|
|
69
|
+
z.object({
|
|
70
|
+
family: z.literal('delegation'),
|
|
71
|
+
phase: z.enum(['issued', 'verified', 'rejected', 'revoked', 'cascade_revoked', 'outbound_attached']),
|
|
72
|
+
delegationRef: z.string().min(1).max(MAX_REFERENCE_LENGTH),
|
|
73
|
+
parentRef: z.string().min(1).max(MAX_REFERENCE_LENGTH).optional(),
|
|
74
|
+
statusEvidence: z.array(evidenceRefSchema).max(256).optional(),
|
|
75
|
+
}).strict(),
|
|
76
|
+
z.object({
|
|
77
|
+
family: z.literal('authorization'),
|
|
78
|
+
phase: z.enum(['evaluated', 'approved', 'denied', 'step_up_required', 'grant_used']),
|
|
79
|
+
policyDigest: digestSchema.optional(),
|
|
80
|
+
grantRef: z.string().min(1).max(MAX_REFERENCE_LENGTH).optional(),
|
|
81
|
+
}).strict(),
|
|
82
|
+
z.object({
|
|
83
|
+
family: z.literal('consent'),
|
|
84
|
+
phase: z.enum(['requested', 'approved', 'denied', 'credential_required', 'credential_verified', 'credential_failed']),
|
|
85
|
+
consentRef: z.string().min(1).max(MAX_REFERENCE_LENGTH).optional(),
|
|
86
|
+
}).strict(),
|
|
87
|
+
z.object({
|
|
88
|
+
family: z.literal('key'),
|
|
89
|
+
phase: z.enum(['rotated', 'policy_changed', 'configuration_changed', 'integrity_suite_transitioned']),
|
|
90
|
+
previousSigner: signerRefSchema.optional(),
|
|
91
|
+
nextSigner: signerRefSchema.optional(),
|
|
92
|
+
configurationDigest: digestSchema.optional(),
|
|
93
|
+
}).strict(),
|
|
94
|
+
z.object({
|
|
95
|
+
family: z.literal('ledger'),
|
|
96
|
+
phase: z.enum(['epoch_started', 'epoch_transitioned', 'checkpoint_created', 'checkpoint_anchored', 'checkpoint_anchor_failed', 'evidence_disposed', 'projection_reconciled']),
|
|
97
|
+
checkpointDigest: digestSchema.optional(),
|
|
98
|
+
previousEpochId: z.string().min(1).max(MAX_REFERENCE_LENGTH).optional(),
|
|
99
|
+
previousTerminalCheckpointDigest: digestSchema.optional(),
|
|
100
|
+
successorEpochIds: z.array(z.string().min(1).max(MAX_REFERENCE_LENGTH)).max(256).optional(),
|
|
101
|
+
targetEvidenceRef: evidenceRefSchema.optional(),
|
|
102
|
+
}).strict(),
|
|
103
|
+
z.object({
|
|
104
|
+
family: z.literal('administration'),
|
|
105
|
+
phase: z.enum(['source_high_water', 'accessed', 'exported', 'legal_hold_applied', 'retention_executed']),
|
|
106
|
+
purpose: z.string().min(1).max(MAX_REFERENCE_LENGTH).optional(),
|
|
107
|
+
sourceSequence: decimalStringSchema.optional(),
|
|
108
|
+
selectionDigest: digestSchema.optional(),
|
|
109
|
+
}).strict(),
|
|
110
|
+
];
|
|
111
|
+
const auditEventDetailsSchema = z.discriminatedUnion('family', detailsSchemas);
|
|
112
|
+
const authorizationEvidenceSchema = z.object({
|
|
113
|
+
source: z.enum(['delegation', 'grant', 'anonymous', 'policy']),
|
|
114
|
+
decision: z.enum(['allowed', 'denied', 'step_up_required', 'needs_authorization']),
|
|
115
|
+
scopeId: z.string().min(1).max(MAX_REFERENCE_LENGTH).optional(),
|
|
116
|
+
delegationRef: z.string().min(1).max(MAX_REFERENCE_LENGTH).optional(),
|
|
117
|
+
delegationCredentialDigest: digestSchema.optional(),
|
|
118
|
+
delegationChainDigests: z.array(digestSchema).max(256).optional(),
|
|
119
|
+
statusEvidence: z.array(evidenceRefSchema).max(256).optional(),
|
|
120
|
+
grantRef: z.string().min(1).max(MAX_REFERENCE_LENGTH).optional(),
|
|
121
|
+
policyId: z.string().min(1).max(MAX_REFERENCE_LENGTH).optional(),
|
|
122
|
+
policyVersion: z.string().min(1).max(MAX_REFERENCE_LENGTH).optional(),
|
|
123
|
+
policyDigest: digestSchema.optional(),
|
|
124
|
+
verificationCode: z.string().min(1).max(128).optional(),
|
|
125
|
+
}).strict();
|
|
126
|
+
function expectedFamily(eventType) {
|
|
127
|
+
if (eventType.startsWith('session.'))
|
|
128
|
+
return 'session';
|
|
129
|
+
if (eventType.startsWith('tool.'))
|
|
130
|
+
return 'tool';
|
|
131
|
+
if (eventType.startsWith('proof.'))
|
|
132
|
+
return 'proof';
|
|
133
|
+
if (eventType.startsWith('delegation.'))
|
|
134
|
+
return 'delegation';
|
|
135
|
+
if (eventType.startsWith('authorization.') || eventType === 'grant.used')
|
|
136
|
+
return 'authorization';
|
|
137
|
+
if (eventType.startsWith('consent.') || eventType.startsWith('credential.'))
|
|
138
|
+
return 'consent';
|
|
139
|
+
if (eventType.startsWith('key.') ||
|
|
140
|
+
eventType.startsWith('policy.') ||
|
|
141
|
+
eventType.startsWith('configuration.') ||
|
|
142
|
+
eventType.startsWith('integrity_suite.'))
|
|
143
|
+
return 'key';
|
|
144
|
+
if (eventType.startsWith('ledger.') ||
|
|
145
|
+
eventType.startsWith('checkpoint.') ||
|
|
146
|
+
eventType.startsWith('evidence.') ||
|
|
147
|
+
eventType.startsWith('projection.'))
|
|
148
|
+
return 'ledger';
|
|
149
|
+
return 'administration';
|
|
150
|
+
}
|
|
151
|
+
export const auditProducerEventSchema = z.object({
|
|
152
|
+
schema: z.literal(AUDIT_EVENT_SCHEMA_ID),
|
|
153
|
+
eventId: z.string().min(1).max(256),
|
|
154
|
+
eventType: z.enum(AUDIT_EVENT_TYPES),
|
|
155
|
+
eventVersion: z.literal('1.0.0'),
|
|
156
|
+
binding: z.string().max(MAX_REFERENCE_LENGTH)
|
|
157
|
+
.regex(/^urn:kya-os:audit-binding:[a-z0-9][a-z0-9._:-]*$/),
|
|
158
|
+
occurredAt: z.number().int().nonnegative(),
|
|
159
|
+
tenantRef: partyRefSchema,
|
|
160
|
+
source: z.object({
|
|
161
|
+
producer: partyRefSchema,
|
|
162
|
+
sourceId: z.string().min(1).max(256),
|
|
163
|
+
sourceSequence: decimalStringSchema.optional(),
|
|
164
|
+
previousSourceEventDigest: digestSchema.optional(),
|
|
165
|
+
}).strict(),
|
|
166
|
+
correlationId: z.string().min(1).max(256).optional(),
|
|
167
|
+
causationId: z.string().min(1).max(256).optional(),
|
|
168
|
+
trace: z.object({
|
|
169
|
+
traceId: z.string().regex(/^[a-f0-9]{32}$/).optional(),
|
|
170
|
+
spanId: z.string().regex(/^[a-f0-9]{16}$/).optional(),
|
|
171
|
+
}).strict().optional(),
|
|
172
|
+
session: z.object({
|
|
173
|
+
ref: partyRefSchema,
|
|
174
|
+
handshakeNonceCommitment: digestSchema.optional(),
|
|
175
|
+
}).strict().optional(),
|
|
176
|
+
actor: partyRefSchema.optional(),
|
|
177
|
+
responsibleParty: partyRefSchema.optional(),
|
|
178
|
+
resource: partyRefSchema.optional(),
|
|
179
|
+
action: z.object({
|
|
180
|
+
category: z.string().min(1).max(128),
|
|
181
|
+
name: z.string().min(1).max(256).optional(),
|
|
182
|
+
detailRef: evidenceRefSchema.optional(),
|
|
183
|
+
}).strict(),
|
|
184
|
+
outcome: z.enum(['succeeded', 'failed', 'denied', 'challenged', 'unknown']),
|
|
185
|
+
reason: z.object({
|
|
186
|
+
code: z.string().min(1).max(128),
|
|
187
|
+
detailRef: evidenceRefSchema.optional(),
|
|
188
|
+
}).strict().optional(),
|
|
189
|
+
authorization: authorizationEvidenceSchema.optional(),
|
|
190
|
+
proof: evidenceRefSchema.optional(),
|
|
191
|
+
evidence: z.array(evidenceRefSchema).max(256),
|
|
192
|
+
details: auditEventDetailsSchema,
|
|
193
|
+
privacy: z.object({
|
|
194
|
+
classification: z.enum(['public', 'internal', 'confidential', 'restricted']),
|
|
195
|
+
retentionClass: z.string().min(1).max(128),
|
|
196
|
+
legalHold: z.string().min(1).max(256).optional(),
|
|
197
|
+
}).strict(),
|
|
198
|
+
}).strict().superRefine((event, context) => {
|
|
199
|
+
if (event.details.family !== expectedFamily(event.eventType)) {
|
|
200
|
+
context.addIssue({
|
|
201
|
+
code: 'custom',
|
|
202
|
+
path: ['details', 'family'],
|
|
203
|
+
message: `Event detail family ${event.details.family} does not match ${event.eventType}`,
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
export const auditEntryCoreSchema = z.object({
|
|
208
|
+
schema: z.literal(AUDIT_ENTRY_SCHEMA_ID),
|
|
209
|
+
ledgerId: z.string().min(1).max(256),
|
|
210
|
+
ledgerEpochId: z.string().min(1).max(256),
|
|
211
|
+
sequence: decimalStringSchema,
|
|
212
|
+
previousEntryDigest: digestSchema.nullable(),
|
|
213
|
+
recordedAt: z.number().int().nonnegative(),
|
|
214
|
+
recorder: signerRefSchema,
|
|
215
|
+
eventDigest: digestSchema,
|
|
216
|
+
event: auditProducerEventSchema,
|
|
217
|
+
evidenceManifestDigest: digestSchema,
|
|
218
|
+
integritySuite: z.literal(AUDIT_INTEGRITY_SUITE),
|
|
219
|
+
}).strict();
|
|
220
|
+
export const auditRecorderReceiptCoreSchema = z.object({
|
|
221
|
+
schema: z.literal(AUDIT_RECEIPT_SCHEMA_ID),
|
|
222
|
+
ledgerId: z.string().min(1).max(256),
|
|
223
|
+
ledgerEpochId: z.string().min(1).max(256),
|
|
224
|
+
sequence: decimalStringSchema,
|
|
225
|
+
eventId: z.string().min(1).max(256),
|
|
226
|
+
entryDigest: digestSchema,
|
|
227
|
+
previousEntryDigest: digestSchema.nullable(),
|
|
228
|
+
recordedAt: z.number().int().nonnegative(),
|
|
229
|
+
recorder: signerRefSchema,
|
|
230
|
+
integritySuite: z.literal(AUDIT_INTEGRITY_SUITE),
|
|
231
|
+
}).strict();
|
|
232
|
+
export const auditCheckpointCoreSchema = z.object({
|
|
233
|
+
schema: z.literal(AUDIT_CHECKPOINT_SCHEMA_ID),
|
|
234
|
+
checkpointId: z.string().min(1).max(512),
|
|
235
|
+
ledgerId: z.string().min(1).max(256),
|
|
236
|
+
ledgerEpochId: z.string().min(1).max(256),
|
|
237
|
+
treeSize: decimalStringSchema,
|
|
238
|
+
firstSequence: decimalStringSchema,
|
|
239
|
+
lastSequence: decimalStringSchema,
|
|
240
|
+
rootDigest: digestSchema,
|
|
241
|
+
headEntryDigest: digestSchema,
|
|
242
|
+
previousCheckpointDigest: digestSchema.nullable(),
|
|
243
|
+
createdAt: z.number().int().nonnegative(),
|
|
244
|
+
issuer: signerRefSchema,
|
|
245
|
+
integritySuite: z.literal(AUDIT_CHECKPOINT_INTEGRITY_SUITE),
|
|
246
|
+
}).strict().superRefine((checkpoint, context) => {
|
|
247
|
+
if (BigInt(checkpoint.treeSize) === 0n ||
|
|
248
|
+
BigInt(checkpoint.lastSequence) < BigInt(checkpoint.firstSequence)) {
|
|
249
|
+
context.addIssue({ code: 'custom', message: 'Checkpoint range must be non-empty and ordered' });
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
export const signedAuditCheckpointSchema = z.object({
|
|
253
|
+
core: auditCheckpointCoreSchema,
|
|
254
|
+
checkpointDigest: digestSchema,
|
|
255
|
+
jws: z.string().min(1).max(MAX_JWS_LENGTH),
|
|
256
|
+
}).strict();
|
|
257
|
+
export const signedAuditEntrySchema = z.object({
|
|
258
|
+
core: auditEntryCoreSchema,
|
|
259
|
+
eventDigest: digestSchema,
|
|
260
|
+
entryDigest: digestSchema,
|
|
261
|
+
recorderReceipt: z.object({
|
|
262
|
+
core: auditRecorderReceiptCoreSchema,
|
|
263
|
+
jws: z.string().min(1).max(MAX_JWS_LENGTH),
|
|
264
|
+
}).strict(),
|
|
265
|
+
}).strict();
|
|
266
|
+
export const auditObservationReceiptSchema = z.object({
|
|
267
|
+
core: z.object({
|
|
268
|
+
schema: z.literal('https://schema.kya-os.org/v1/protocol/audit/observation/v1.0.0'),
|
|
269
|
+
observerId: z.string().min(1).max(256),
|
|
270
|
+
observer: signerRefSchema,
|
|
271
|
+
ledgerId: z.string().min(1).max(256),
|
|
272
|
+
ledgerEpochId: z.string().min(1).max(256),
|
|
273
|
+
checkpointDigest: digestSchema,
|
|
274
|
+
treeSize: decimalStringSchema,
|
|
275
|
+
observedAt: z.number().int().nonnegative(),
|
|
276
|
+
previousObservationDigest: digestSchema.nullable(),
|
|
277
|
+
}).strict(),
|
|
278
|
+
observationDigest: digestSchema,
|
|
279
|
+
jws: z.string().min(1).max(MAX_JWS_LENGTH),
|
|
280
|
+
}).strict();
|
|
281
|
+
export const auditAnchorReceiptSchema = z.object({
|
|
282
|
+
schema: z.literal('https://schema.kya-os.org/v1/protocol/audit/anchor-receipt/v1.0.0'),
|
|
283
|
+
kind: z.enum(['worm', 'rfc3161', 'scitt']),
|
|
284
|
+
providerId: z.string().min(1).max(256),
|
|
285
|
+
checkpointDigest: digestSchema,
|
|
286
|
+
issuedAt: z.number().int().nonnegative(),
|
|
287
|
+
receiptData: z.string().min(1).max(MAX_RECEIPT_DATA_LENGTH).optional(),
|
|
288
|
+
}).strict();
|
|
289
|
+
export const auditMerkleInclusionProofSchema = z.object({
|
|
290
|
+
leafIndex: decimalStringSchema,
|
|
291
|
+
treeSize: decimalStringSchema,
|
|
292
|
+
auditPath: z.array(digestSchema),
|
|
293
|
+
}).strict();
|
|
294
|
+
export const auditMerkleConsistencyProofSchema = z.object({
|
|
295
|
+
oldTreeSize: decimalStringSchema,
|
|
296
|
+
newTreeSize: decimalStringSchema,
|
|
297
|
+
auditPath: z.array(digestSchema),
|
|
298
|
+
}).strict();
|
|
299
|
+
export const auditBundleInclusionProofSchema = z.object({
|
|
300
|
+
ledgerId: z.string().min(1).max(256),
|
|
301
|
+
ledgerEpochId: z.string().min(1).max(256),
|
|
302
|
+
sequence: decimalStringSchema,
|
|
303
|
+
entryDigest: digestSchema,
|
|
304
|
+
checkpointDigest: digestSchema,
|
|
305
|
+
proof: auditMerkleInclusionProofSchema,
|
|
306
|
+
}).strict();
|
|
307
|
+
export const auditBundleConsistencyProofSchema = z.object({
|
|
308
|
+
ledgerId: z.string().min(1).max(256),
|
|
309
|
+
ledgerEpochId: z.string().min(1).max(256),
|
|
310
|
+
oldCheckpointDigest: digestSchema,
|
|
311
|
+
newCheckpointDigest: digestSchema,
|
|
312
|
+
proof: auditMerkleConsistencyProofSchema,
|
|
313
|
+
}).strict();
|
|
314
|
+
const auditBundleSelectionSchema = z.object({
|
|
315
|
+
ledgerId: z.string().min(1).max(256),
|
|
316
|
+
ledgerEpochId: z.string().min(1).max(256),
|
|
317
|
+
firstSequence: decimalStringSchema,
|
|
318
|
+
lastSequence: decimalStringSchema,
|
|
319
|
+
expectedHeadDigest: digestSchema,
|
|
320
|
+
checkpointTreeSizes: z.array(decimalStringSchema).max(256),
|
|
321
|
+
}).strict().superRefine((selection, context) => {
|
|
322
|
+
if (BigInt(selection.lastSequence) < BigInt(selection.firstSequence)) {
|
|
323
|
+
context.addIssue({ code: 'custom', message: 'Bundle selection range is reversed' });
|
|
324
|
+
}
|
|
325
|
+
});
|
|
326
|
+
const auditBundleInventoryItemSchema = z.object({
|
|
327
|
+
path: z.string().min(1).max(1024),
|
|
328
|
+
mediaType: z.string().min(1).max(256),
|
|
329
|
+
disposition: z.enum(['included', 'redacted', 'disposed', 'unavailable', 'policy_excluded']),
|
|
330
|
+
digest: digestSchema.optional(),
|
|
331
|
+
size: decimalStringSchema.optional(),
|
|
332
|
+
reasonCode: z.string().min(1).max(128).optional(),
|
|
333
|
+
}).strict().superRefine((item, context) => {
|
|
334
|
+
if (item.disposition === 'included') {
|
|
335
|
+
if (item.digest === undefined || item.size === undefined || item.reasonCode !== undefined) {
|
|
336
|
+
context.addIssue({ code: 'custom', message: 'Included inventory requires digest/size only' });
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
else if (item.reasonCode === undefined || item.digest !== undefined || item.size !== undefined) {
|
|
340
|
+
context.addIssue({ code: 'custom', message: 'Excluded inventory requires only a reason code' });
|
|
341
|
+
}
|
|
342
|
+
});
|
|
343
|
+
export const auditBundleManifestCoreSchema = z.object({
|
|
344
|
+
schema: z.literal(AUDIT_BUNDLE_MANIFEST_SCHEMA_ID),
|
|
345
|
+
bundleId: z.string().min(1).max(256),
|
|
346
|
+
formatVersion: z.literal('1.0.0'),
|
|
347
|
+
selections: z.array(auditBundleSelectionSchema).min(1),
|
|
348
|
+
exporter: signerRefSchema,
|
|
349
|
+
purpose: z.string().min(1).max(256),
|
|
350
|
+
exportedAt: z.number().int().nonnegative(),
|
|
351
|
+
verificationPolicyDigest: digestSchema,
|
|
352
|
+
inventory: z.array(auditBundleInventoryItemSchema).max(10_000),
|
|
353
|
+
integritySuite: z.literal(AUDIT_BUNDLE_INTEGRITY_SUITE),
|
|
354
|
+
}).strict().superRefine((manifest, context) => {
|
|
355
|
+
const paths = manifest.inventory.map((item) => item.path);
|
|
356
|
+
if (new Set(paths).size !== paths.length) {
|
|
357
|
+
context.addIssue({ code: 'custom', path: ['inventory'], message: 'Inventory paths must be unique' });
|
|
358
|
+
}
|
|
359
|
+
});
|
|
360
|
+
const auditBundleComponentSchema = auditBundleInventoryItemSchema.extend({
|
|
361
|
+
content: z.unknown().optional(),
|
|
362
|
+
}).strict().superRefine((component, context) => {
|
|
363
|
+
const hasContent = Object.prototype.hasOwnProperty.call(component, 'content');
|
|
364
|
+
if (component.disposition === 'included' ? !hasContent : hasContent) {
|
|
365
|
+
context.addIssue({
|
|
366
|
+
code: 'custom',
|
|
367
|
+
path: ['content'],
|
|
368
|
+
message: component.disposition === 'included'
|
|
369
|
+
? 'Included component content is required'
|
|
370
|
+
: 'Excluded component content is forbidden',
|
|
371
|
+
});
|
|
372
|
+
}
|
|
373
|
+
if (hasContent) {
|
|
374
|
+
try {
|
|
375
|
+
assertCanonicalJsonValue(component.content);
|
|
376
|
+
}
|
|
377
|
+
catch (error) {
|
|
378
|
+
context.addIssue({
|
|
379
|
+
code: 'custom',
|
|
380
|
+
path: ['content'],
|
|
381
|
+
message: error instanceof Error ? error.message : 'Content is not canonical JSON',
|
|
382
|
+
});
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
});
|
|
386
|
+
export const auditReplayBundleSchema = z.object({
|
|
387
|
+
manifest: z.object({
|
|
388
|
+
core: auditBundleManifestCoreSchema,
|
|
389
|
+
manifestDigest: digestSchema,
|
|
390
|
+
jws: z.string().min(1).max(MAX_JWS_LENGTH),
|
|
391
|
+
}).strict(),
|
|
392
|
+
components: z.array(auditBundleComponentSchema),
|
|
393
|
+
}).strict();
|
|
394
|
+
function uniqueArrayItems(values) {
|
|
395
|
+
return new Set(values).size === values.length;
|
|
396
|
+
}
|
|
397
|
+
const historicalAuditKeyPolicySchema = z.object({
|
|
398
|
+
signer: signerRefSchema,
|
|
399
|
+
validFrom: z.number().int().nonnegative().optional(),
|
|
400
|
+
validUntil: z.number().int().nonnegative().optional(),
|
|
401
|
+
validFromCheckpoint: digestSchema.optional(),
|
|
402
|
+
validUntilCheckpoint: digestSchema.optional(),
|
|
403
|
+
}).strict().superRefine((value, context) => {
|
|
404
|
+
if (value.validFrom !== undefined && value.validUntil !== undefined &&
|
|
405
|
+
value.validFrom > value.validUntil) {
|
|
406
|
+
context.addIssue({ code: 'custom', message: 'Key validity interval is reversed' });
|
|
407
|
+
}
|
|
408
|
+
});
|
|
409
|
+
export const auditVerificationPolicySchema = z.object({
|
|
410
|
+
policyId: z.string().min(1).max(256),
|
|
411
|
+
trustedLedgerEpochs: z.array(z.object({
|
|
412
|
+
ledgerId: z.string().min(1).max(256),
|
|
413
|
+
ledgerEpochId: z.string().min(1).max(256),
|
|
414
|
+
recorderKeys: z.array(historicalAuditKeyPolicySchema).min(1),
|
|
415
|
+
validFromCheckpoint: digestSchema.optional(),
|
|
416
|
+
validUntilCheckpoint: digestSchema.optional(),
|
|
417
|
+
}).strict()),
|
|
418
|
+
trustedObservers: z.array(historicalAuditKeyPolicySchema),
|
|
419
|
+
trustedSupportingAnchors: z.array(z.object({
|
|
420
|
+
kind: z.enum(['worm', 'rfc3161', 'scitt']),
|
|
421
|
+
providerId: z.string().min(1).max(256),
|
|
422
|
+
validFrom: z.number().int().nonnegative().optional(),
|
|
423
|
+
validUntil: z.number().int().nonnegative().optional(),
|
|
424
|
+
}).strict()).optional(),
|
|
425
|
+
authorizedExporters: z.array(z.object({
|
|
426
|
+
signerKeys: z.array(historicalAuditKeyPolicySchema).min(1),
|
|
427
|
+
allowedLedgerIds: z.array(z.string().min(1).max(256)).min(1)
|
|
428
|
+
.refine(uniqueArrayItems, 'Allowed ledger IDs must be unique'),
|
|
429
|
+
allowedPurposes: z.array(z.string().min(1).max(256)).min(1)
|
|
430
|
+
.refine(uniqueArrayItems, 'Allowed purposes must be unique'),
|
|
431
|
+
}).strict()),
|
|
432
|
+
acceptedIntegritySuites: z.array(z.string().min(1).max(128)).min(1)
|
|
433
|
+
.refine(uniqueArrayItems, 'Accepted integrity suites must be unique'),
|
|
434
|
+
acceptedAlgorithms: z.array(z.enum(['EdDSA', 'ES256'])).min(1)
|
|
435
|
+
.refine(uniqueArrayItems, 'Accepted algorithms must be unique'),
|
|
436
|
+
keyRevocationMode: z.enum(['as_observed', 'current', 'both']),
|
|
437
|
+
requiredCheckpointFreshnessMs: z.number().int().nonnegative().optional(),
|
|
438
|
+
requiredAuditProfile: z.enum(['AAP-0', 'AAP-1', 'AAP-2', 'AAP-3', 'AAP-4']).optional(),
|
|
439
|
+
}).strict();
|
|
440
|
+
function deepFreeze(value, seen = new WeakSet()) {
|
|
441
|
+
if (typeof value !== 'object' || value === null || Object.isFrozen(value))
|
|
442
|
+
return value;
|
|
443
|
+
if (seen.has(value))
|
|
444
|
+
return value;
|
|
445
|
+
seen.add(value);
|
|
446
|
+
for (const child of Object.values(value))
|
|
447
|
+
deepFreeze(child, seen);
|
|
448
|
+
return Object.freeze(value);
|
|
449
|
+
}
|
|
450
|
+
function cloneAndFreeze(value) {
|
|
451
|
+
return deepFreeze(structuredClone(value));
|
|
452
|
+
}
|
|
453
|
+
export function parseAuditProducerEvent(input) {
|
|
454
|
+
return cloneAndFreeze(auditProducerEventSchema.parse(input));
|
|
455
|
+
}
|
|
456
|
+
export function parseAuditEntryCore(input) {
|
|
457
|
+
return cloneAndFreeze(auditEntryCoreSchema.parse(input));
|
|
458
|
+
}
|
|
459
|
+
export function parseSignedAuditEntry(input) {
|
|
460
|
+
return cloneAndFreeze(signedAuditEntrySchema.parse(input));
|
|
461
|
+
}
|
|
462
|
+
export function parseAuditRecorderReceiptCore(input) {
|
|
463
|
+
return cloneAndFreeze(auditRecorderReceiptCoreSchema.parse(input));
|
|
464
|
+
}
|
|
465
|
+
export function parseAuditCheckpointCore(input) {
|
|
466
|
+
return cloneAndFreeze(auditCheckpointCoreSchema.parse(input));
|
|
467
|
+
}
|
|
468
|
+
export function parseSignedAuditCheckpoint(input) {
|
|
469
|
+
return cloneAndFreeze(signedAuditCheckpointSchema.parse(input));
|
|
470
|
+
}
|
|
471
|
+
export function parseAuditObservationReceipt(input) {
|
|
472
|
+
return cloneAndFreeze(auditObservationReceiptSchema.parse(input));
|
|
473
|
+
}
|
|
474
|
+
export function parseAuditBundleManifestCore(input) {
|
|
475
|
+
return cloneAndFreeze(auditBundleManifestCoreSchema.parse(input));
|
|
476
|
+
}
|
|
477
|
+
export function parseAuditReplayBundle(input) {
|
|
478
|
+
return cloneAndFreeze(auditReplayBundleSchema.parse(input));
|
|
479
|
+
}
|
|
480
|
+
export function parseAuditVerificationPolicy(input) {
|
|
481
|
+
return cloneAndFreeze(auditVerificationPolicySchema.parse(input));
|
|
482
|
+
}
|
|
483
|
+
//# sourceMappingURL=schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/audit/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,MAAM,CAAC,MAAM,qBAAqB,GAChC,0DAAmE,CAAC;AACtE,MAAM,CAAC,MAAM,qBAAqB,GAChC,0DAAmE,CAAC;AACtE,MAAM,CAAC,MAAM,uBAAuB,GAClC,4DAAqE,CAAC;AACxE,MAAM,CAAC,MAAM,qBAAqB,GAAG,+BAAwC,CAAC;AAC9E,MAAM,CAAC,MAAM,0BAA0B,GACrC,+DAAwE,CAAC;AAC3E,MAAM,CAAC,MAAM,gCAAgC,GAC3C,mCAA4C,CAAC;AAC/C,MAAM,CAAC,MAAM,+BAA+B,GAC1C,oEAA6E,CAAC;AAChF,MAAM,CAAC,MAAM,4BAA4B,GACvC,sCAA+C,CAAC;AAElD,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,cAAc,GAAG,IAAI,CAAC;AAC5B,MAAM,cAAc,GAAG,IAAI,CAAC;AAC5B,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAEvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACjG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACtE,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE;KACzB,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,cAAc,CAAC;KACnB,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAE3B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,GAAG,oBAAoB,CAAC;IACjE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAChC,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,iBAAiB,GAAc,CAAC,CAAC,MAAM,CAAC;IACnD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACrD,gBAAgB,EAAE,YAAY;IAC9B,mBAAmB,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC5C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACtD,IAAI,EAAE,mBAAmB;IACzB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAClD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAClD,SAAS,EAAE,YAAY;KACxB,CAAC,CAAC,MAAM,EAAE;CACZ,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,cAAc,GAAc,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACpE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACpE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACtE,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;QACnC,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC;KACnD,CAAC,CAAC,MAAM,EAAE;IACX,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;CAC/E,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG;IACrB,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC5B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;QACxE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;KAClD,CAAC,CAAC,MAAM,EAAE;IACX,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACzB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QACzE,OAAO,EAAE,mBAAmB;QAC5B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;KACvE,CAAC,CAAC,MAAM,EAAE;IACX,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QAC1B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QACpD,WAAW,EAAE,YAAY,CAAC,QAAQ,EAAE;QACpC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;KACxD,CAAC,CAAC,MAAM,EAAE;IACX,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;QAC/B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;QACpG,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAC1D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;QACjE,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;KAC/D,CAAC,CAAC,MAAM,EAAE;IACX,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,CAAC,CAAC;QACpF,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE;QACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;KACjE,CAAC,CAAC,MAAM,EAAE;IACX,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC5B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,mBAAmB,CAAC,CAAC;QACrH,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;KACnE,CAAC,CAAC,MAAM,EAAE;IACX,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QACxB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,8BAA8B,CAAC,CAAC;QACrG,cAAc,EAAE,eAAe,CAAC,QAAQ,EAAE;QAC1C,UAAU,EAAE,eAAe,CAAC,QAAQ,EAAE;QACtC,mBAAmB,EAAE,YAAY,CAAC,QAAQ,EAAE;KAC7C,CAAC,CAAC,MAAM,EAAE;IACX,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC3B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,uBAAuB,CAAC,CAAC;QAC7K,gBAAgB,EAAE,YAAY,CAAC,QAAQ,EAAE;QACzC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;QACvE,gCAAgC,EAAE,YAAY,CAAC,QAAQ,EAAE;QACzD,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;QAC3F,iBAAiB,EAAE,iBAAiB,CAAC,QAAQ,EAAE;KAChD,CAAC,CAAC,MAAM,EAAE;IACX,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACnC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;QACxG,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;QAC/D,cAAc,EAAE,mBAAmB,CAAC,QAAQ,EAAE;QAC9C,eAAe,EAAE,YAAY,CAAC,QAAQ,EAAE;KACzC,CAAC,CAAC,MAAM,EAAE;CACH,CAAC;AAEX,MAAM,uBAAuB,GAAG,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AAE/E,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC9D,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;IAClF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;IAC/D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;IACrE,0BAA0B,EAAE,YAAY,CAAC,QAAQ,EAAE;IACnD,sBAAsB,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACjE,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC9D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;IAChE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;IAChE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;IACrE,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE;IACrC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CACxD,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,SAAS,cAAc,CAAC,SAAiB;IACvC,IAAI,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAC;IACvD,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IACjD,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC;IACnD,IAAI,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,YAAY,CAAC;IAC7D,IAAI,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,SAAS,KAAK,YAAY;QAAE,OAAO,eAAe,CAAC;IACjG,IAAI,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9F,IACE,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;QAC5B,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC;QAC/B,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC;QACtC,SAAS,CAAC,UAAU,CAAC,kBAAkB,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,IACE,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC;QAC/B,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC;QACnC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC;QACjC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC;QACnC,OAAO,QAAQ,CAAC;IAClB,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACnC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;IACpC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC;SAC1C,KAAK,CAAC,kDAAkD,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC1C,SAAS,EAAE,cAAc;IACzB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACpC,cAAc,EAAE,mBAAmB,CAAC,QAAQ,EAAE;QAC9C,yBAAyB,EAAE,YAAY,CAAC,QAAQ,EAAE;KACnD,CAAC,CAAC,MAAM,EAAE;IACX,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACpD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAClD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;QACtD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;KACtD,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,GAAG,EAAE,cAAc;QACnB,wBAAwB,EAAE,YAAY,CAAC,QAAQ,EAAE;KAClD,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtB,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE;IAChC,gBAAgB,EAAE,cAAc,CAAC,QAAQ,EAAE;IAC3C,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;IACnC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;QAC3C,SAAS,EAAE,iBAAiB,CAAC,QAAQ,EAAE;KACxC,CAAC,CAAC,MAAM,EAAE;IACX,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAC3E,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QAChC,SAAS,EAAE,iBAAiB,CAAC,QAAQ,EAAE;KACxC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtB,aAAa,EAAE,2BAA2B,CAAC,QAAQ,EAAE;IACrD,KAAK,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC7C,OAAO,EAAE,uBAAuB;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QAC5E,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;KACjD,CAAC,CAAC,MAAM,EAAE;CACZ,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACzC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7D,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;YAC3B,OAAO,EAAE,uBAAuB,KAAK,CAAC,OAAO,CAAC,MAAM,mBAAmB,KAAK,CAAC,SAAS,EAAE;SACzF,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACpC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACzC,QAAQ,EAAE,mBAAmB;IAC7B,mBAAmB,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC5C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC1C,QAAQ,EAAE,eAAe;IACzB,WAAW,EAAE,YAAY;IACzB,KAAK,EAAE,wBAAwB;IAC/B,sBAAsB,EAAE,YAAY;IACpC,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC;CACjD,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC;IAC1C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACpC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACzC,QAAQ,EAAE,mBAAmB;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACnC,WAAW,EAAE,YAAY;IACzB,mBAAmB,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC5C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC1C,QAAQ,EAAE,eAAe;IACzB,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC;CACjD,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC;IAC7C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACpC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACzC,QAAQ,EAAE,mBAAmB;IAC7B,aAAa,EAAE,mBAAmB;IAClC,YAAY,EAAE,mBAAmB;IACjC,UAAU,EAAE,YAAY;IACxB,eAAe,EAAE,YAAY;IAC7B,wBAAwB,EAAE,YAAY,CAAC,QAAQ,EAAE;IACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACzC,MAAM,EAAE,eAAe;IACvB,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC;CAC5D,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE;IAC9C,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE;QACpC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACrE,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAAC,CAAC;IAClG,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,IAAI,EAAE,yBAAyB;IAC/B,gBAAgB,EAAE,YAAY;IAC9B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC;CAC3C,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,YAAY;IACzB,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC;QACxB,IAAI,EAAE,8BAA8B;QACpC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC;KAC3C,CAAC,CAAC,MAAM,EAAE;CACZ,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,gEAAgE,CAAC;QACnF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACtC,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACpC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACzC,gBAAgB,EAAE,YAAY;QAC9B,QAAQ,EAAE,mBAAmB;QAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;QAC1C,yBAAyB,EAAE,YAAY,CAAC,QAAQ,EAAE;KACnD,CAAC,CAAC,MAAM,EAAE;IACX,iBAAiB,EAAE,YAAY;IAC/B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC;CAC3C,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,mEAAmE,CAAC;IACtF,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACtC,gBAAgB,EAAE,YAAY;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACxC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE;CACvE,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,mBAAmB;IAC7B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;CACjC,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE,mBAAmB;IAChC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;CACjC,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACpC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACzC,QAAQ,EAAE,mBAAmB;IAC7B,WAAW,EAAE,YAAY;IACzB,gBAAgB,EAAE,YAAY;IAC9B,KAAK,EAAE,+BAA+B;CACvC,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACpC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACzC,mBAAmB,EAAE,YAAY;IACjC,mBAAmB,EAAE,YAAY;IACjC,KAAK,EAAE,iCAAiC;CACzC,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACpC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACzC,aAAa,EAAE,mBAAmB;IAClC,YAAY,EAAE,mBAAmB;IACjC,kBAAkB,EAAE,YAAY;IAChC,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CAC3D,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;IAC7C,IAAI,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;QACrE,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAC;IACtF,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACrC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC;IAC3F,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACxC,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAC1F,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC,CAAC;QAChG,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACjG,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAAC,CAAC;IAClG,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC;IAClD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACpC,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACjC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,QAAQ,EAAE,eAAe;IACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACnC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC1C,wBAAwB,EAAE,YAAY;IACtC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;IAC9D,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC;CACxD,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;IAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QACzC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC,CAAC;IACvG,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAG,8BAA8B,CAAC,MAAM,CAAC;IACvE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;IAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9E,IAAI,SAAS,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QACpE,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,SAAS,CAAC;YACjB,OAAO,EAAE,SAAS,CAAC,WAAW,KAAK,UAAU;gBAC3C,CAAC,CAAC,wCAAwC;gBAC1C,CAAC,CAAC,yCAAyC;SAC9C,CAAC,CAAC;IACL,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC;YACH,wBAAwB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,QAAQ,CAAC;gBACf,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,SAAS,CAAC;gBACjB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B;aAClF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,6BAA6B;QACnC,cAAc,EAAE,YAAY;QAC5B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC;KAC3C,CAAC,CAAC,MAAM,EAAE;IACX,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC;CAChD,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,SAAS,gBAAgB,CAAC,MAA0B;IAClD,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC;AAChD,CAAC;AAED,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,MAAM,EAAE,eAAe;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACpD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACrD,mBAAmB,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC5C,oBAAoB,EAAE,YAAY,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACzC,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;QACjE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;QACrC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC,CAAC;IACrF,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACpC,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACpC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACzC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5D,mBAAmB,EAAE,YAAY,CAAC,QAAQ,EAAE;QAC5C,oBAAoB,EAAE,YAAY,CAAC,QAAQ,EAAE;KAC9C,CAAC,CAAC,MAAM,EAAE,CAAC;IACZ,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC;IACzD,wBAAwB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACzC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QACpD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;KACtD,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvB,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACpC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aACzD,MAAM,CAAC,gBAAgB,EAAE,mCAAmC,CAAC;QAChE,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aACxD,MAAM,CAAC,gBAAgB,EAAE,iCAAiC,CAAC;KAC/D,CAAC,CAAC,MAAM,EAAE,CAAC;IACZ,uBAAuB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAChE,MAAM,CAAC,gBAAgB,EAAE,0CAA0C,CAAC;IACvE,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC3D,MAAM,CAAC,gBAAgB,EAAE,oCAAoC,CAAC;IACjE,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC7D,6BAA6B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACxE,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;CACvF,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,SAAS,UAAU,CAAI,KAAQ,EAAE,OAAO,IAAI,OAAO,EAAU;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxF,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAClE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,cAAc,CAAI,KAAQ;IACjC,OAAO,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,OAAO,cAAc,CAAC,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAA6B,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,cAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAqB,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,OAAO,cAAc,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAuB,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAAc;IAC1D,OAAO,cAAc,CAAC,8BAA8B,CAAC,KAAK,CAAC,KAAK,CAA+B,CAAC,CAAC;AACnG,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,OAAO,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC,KAAK,CAA0B,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,OAAO,cAAc,CAAC,2BAA2B,CAAC,KAAK,CAAC,KAAK,CAA4B,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAc;IACzD,OAAO,cAAc,CACnB,6BAA6B,CAAC,KAAK,CAAC,KAAK,CAA8B,CACxE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAc;IACzD,OAAO,cAAc,CACnB,6BAA6B,CAAC,KAAK,CAAC,KAAK,CAA8B,CACxE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,OAAO,cAAc,CAAC,uBAAuB,CAAC,KAAK,CAAC,KAAK,CAAwB,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAc;IACzD,OAAO,cAAc,CACnB,6BAA6B,CAAC,KAAK,CAAC,KAAK,CAA8B,CACxE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { AuditDeliveryMode } from './assurance.js';
|
|
2
|
+
import { type AuditCapabilities } from './assurance.js';
|
|
3
|
+
import type { AuditHasher } from './crypto.js';
|
|
4
|
+
import type { EncryptedEvidenceInput } from './providers/evidence.js';
|
|
5
|
+
import type { AuditOutboxProvider } from './providers/outbox.js';
|
|
6
|
+
import type { AuditRecorderClient } from './providers/recorder-client.js';
|
|
7
|
+
import { type AuditSourceState, type AuditSourceStateProvider } from './providers/source-state.js';
|
|
8
|
+
import type { AuditProducerEventCoreV1, PartyRef, ProtocolBindingId, SignedAuditEntryV1 } from './types.js';
|
|
9
|
+
type ServiceControlledEventFields = 'schema' | 'eventId' | 'eventVersion' | 'binding' | 'occurredAt' | 'tenantRef' | 'source' | 'privacy';
|
|
10
|
+
export type AuditTrailEventInput = Omit<AuditProducerEventCoreV1, ServiceControlledEventFields> & {
|
|
11
|
+
eventId?: string;
|
|
12
|
+
occurredAt?: number;
|
|
13
|
+
privacy?: AuditProducerEventCoreV1['privacy'];
|
|
14
|
+
};
|
|
15
|
+
export interface AuditTrailConfiguration {
|
|
16
|
+
recorder: AuditRecorderClient;
|
|
17
|
+
delivery: AuditDeliveryMode;
|
|
18
|
+
hasher: AuditHasher;
|
|
19
|
+
ledgerId: string;
|
|
20
|
+
expectedLedgerEpochId?: string;
|
|
21
|
+
tenantRef: PartyRef;
|
|
22
|
+
producer: PartyRef;
|
|
23
|
+
sourceId: string;
|
|
24
|
+
binding: ProtocolBindingId;
|
|
25
|
+
privacy: AuditProducerEventCoreV1['privacy'];
|
|
26
|
+
clock: {
|
|
27
|
+
now(): number;
|
|
28
|
+
};
|
|
29
|
+
outbox?: AuditOutboxProvider;
|
|
30
|
+
eventIdFactory?: () => string;
|
|
31
|
+
onDeliveryFailure?: (error: unknown, event: AuditProducerEventCoreV1) => void;
|
|
32
|
+
/** Called when an event is committed but the local source watermark cannot advance. */
|
|
33
|
+
onSourceStateFailure?: (error: unknown, event: AuditProducerEventCoreV1) => void;
|
|
34
|
+
/** Optional deployment claim; validated against configured delivery at startup. */
|
|
35
|
+
capabilities?: AuditCapabilities;
|
|
36
|
+
/**
|
|
37
|
+
* Durable in production. It is explicit because silently resetting source
|
|
38
|
+
* sequence/linkage state on process restart makes high-water claims ambiguous.
|
|
39
|
+
*/
|
|
40
|
+
sourceState: AuditSourceStateProvider;
|
|
41
|
+
}
|
|
42
|
+
export type AuditEmitResult = {
|
|
43
|
+
status: 'recorded';
|
|
44
|
+
event: AuditProducerEventCoreV1;
|
|
45
|
+
entry: SignedAuditEntryV1;
|
|
46
|
+
} | {
|
|
47
|
+
status: 'pending';
|
|
48
|
+
event: AuditProducerEventCoreV1;
|
|
49
|
+
} | {
|
|
50
|
+
status: 'failed';
|
|
51
|
+
event: AuditProducerEventCoreV1;
|
|
52
|
+
error: unknown;
|
|
53
|
+
};
|
|
54
|
+
export interface AuditRecordOptions {
|
|
55
|
+
encryptedEvidence?: readonly EncryptedEvidenceInput[];
|
|
56
|
+
}
|
|
57
|
+
/** Producer-side service: creates frozen events and applies declared delivery semantics. */
|
|
58
|
+
export declare class AuditTrailService {
|
|
59
|
+
readonly configuration: Readonly<AuditTrailConfiguration>;
|
|
60
|
+
private idCounter;
|
|
61
|
+
private readonly sourceState;
|
|
62
|
+
private sourceConstructionTail;
|
|
63
|
+
get auditProfile(): AuditCapabilities['profile'];
|
|
64
|
+
get capabilities(): AuditCapabilities | undefined;
|
|
65
|
+
constructor(configuration: AuditTrailConfiguration);
|
|
66
|
+
/**
|
|
67
|
+
* A direct-mode retry is idempotent only when it rebuilds the identical frozen
|
|
68
|
+
* event: callers retrying with a stable `eventId` must also pin `occurredAt`,
|
|
69
|
+
* otherwise the recorder correctly rejects the divergent content as an
|
|
70
|
+
* event-identity conflict. Buffered redelivery is always byte-stable.
|
|
71
|
+
*/
|
|
72
|
+
record(input: AuditTrailEventInput, options?: AuditRecordOptions): Promise<AuditEmitResult>;
|
|
73
|
+
flush(limit?: number): Promise<{
|
|
74
|
+
delivered: number;
|
|
75
|
+
failed: number;
|
|
76
|
+
}>;
|
|
77
|
+
getSourceState(): Promise<AuditSourceState>;
|
|
78
|
+
/** Emits the producer's declared high-water mark as an ordinary chained event. */
|
|
79
|
+
recordSourceHighWater(input?: {
|
|
80
|
+
eventId?: string;
|
|
81
|
+
}): Promise<AuditEmitResult>;
|
|
82
|
+
private withSourceConstruction;
|
|
83
|
+
private buildAndLinkEvent;
|
|
84
|
+
private buildEvent;
|
|
85
|
+
private nextEventId;
|
|
86
|
+
private assertEvidenceIsReferenced;
|
|
87
|
+
private submitAndValidate;
|
|
88
|
+
}
|
|
89
|
+
export declare function createAuditTrail(configuration: AuditTrailConfiguration): AuditTrailService;
|
|
90
|
+
export {};
|
|
91
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/audit/service.ts"],"names":[],"mappings":"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"}
|