@vorionsys/contracts 0.1.0 → 0.1.2
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/CHANGELOG.md +44 -0
- package/LICENSE +190 -0
- package/README.md +435 -0
- package/dist/aci/index.d.ts +6 -62
- package/dist/aci/index.d.ts.map +1 -1
- package/dist/aci/index.js +22 -152
- package/dist/aci/index.js.map +1 -1
- package/dist/canonical/agent.d.ts +2 -2
- package/dist/canonical/agent.d.ts.map +1 -1
- package/dist/canonical/agent.js +146 -130
- package/dist/canonical/agent.js.map +1 -1
- package/dist/canonical/governance.d.ts +1 -1
- package/dist/canonical/governance.js +134 -120
- package/dist/canonical/governance.js.map +1 -1
- package/dist/canonical/index.d.ts +1 -0
- package/dist/canonical/index.d.ts.map +1 -1
- package/dist/canonical/index.js +26 -8
- package/dist/canonical/index.js.map +1 -1
- package/dist/canonical/intent.d.ts +8 -15
- package/dist/canonical/intent.d.ts.map +1 -1
- package/dist/canonical/intent.js +91 -82
- package/dist/canonical/intent.js.map +1 -1
- package/dist/canonical/middleware.d.ts +513 -0
- package/dist/canonical/middleware.d.ts.map +1 -0
- package/dist/canonical/middleware.js +218 -0
- package/dist/canonical/middleware.js.map +1 -0
- package/dist/canonical/risk-level.d.ts +1 -1
- package/dist/canonical/risk-level.js +66 -46
- package/dist/canonical/risk-level.js.map +1 -1
- package/dist/canonical/trust-band.d.ts +1 -1
- package/dist/canonical/trust-band.js +39 -28
- package/dist/canonical/trust-band.js.map +1 -1
- package/dist/canonical/trust-score.d.ts +1 -1
- package/dist/canonical/trust-score.js +46 -29
- package/dist/canonical/trust-score.js.map +1 -1
- package/dist/canonical/trust-signal.d.ts +13 -13
- package/dist/canonical/trust-signal.js +91 -78
- package/dist/canonical/trust-signal.js.map +1 -1
- package/dist/canonical/validation.js +148 -102
- package/dist/canonical/validation.js.map +1 -1
- package/dist/{aci → car}/attestation.d.ts +73 -73
- package/dist/{aci → car}/attestation.d.ts.map +1 -1
- package/dist/{aci → car}/attestation.js +69 -59
- package/dist/car/attestation.js.map +1 -0
- package/dist/car/car-string.d.ts +846 -0
- package/dist/car/car-string.d.ts.map +1 -0
- package/dist/car/car-string.js +734 -0
- package/dist/car/car-string.js.map +1 -0
- package/dist/{aci → car}/domains.d.ts +3 -3
- package/dist/{aci → car}/domains.d.ts.map +1 -1
- package/dist/{aci → car}/domains.js +57 -39
- package/dist/car/domains.js.map +1 -0
- package/dist/{aci → car}/effective-permission.d.ts +8 -8
- package/dist/{aci → car}/effective-permission.d.ts.map +1 -1
- package/dist/{aci → car}/effective-permission.js +59 -46
- package/dist/car/effective-permission.js.map +1 -0
- package/dist/{aci → car}/identity.d.ts +235 -129
- package/dist/car/identity.d.ts.map +1 -0
- package/dist/{aci → car}/identity.js +125 -105
- package/dist/car/identity.js.map +1 -0
- package/dist/car/index.d.ts +104 -0
- package/dist/car/index.d.ts.map +1 -0
- package/dist/car/index.js +401 -0
- package/dist/car/index.js.map +1 -0
- package/dist/car/jwt-claims.d.ts +1364 -0
- package/dist/car/jwt-claims.d.ts.map +1 -0
- package/dist/car/jwt-claims.js +388 -0
- package/dist/car/jwt-claims.js.map +1 -0
- package/dist/{aci → car}/levels.d.ts +5 -5
- package/dist/{aci → car}/levels.d.ts.map +1 -1
- package/dist/{aci → car}/levels.js +81 -62
- package/dist/car/levels.js.map +1 -0
- package/dist/{aci → car}/mapping.d.ts +5 -5
- package/dist/{aci → car}/mapping.d.ts.map +1 -1
- package/dist/{aci → car}/mapping.js +96 -76
- package/dist/car/mapping.js.map +1 -0
- package/dist/{aci → car}/skills.d.ts +4 -4
- package/dist/{aci → car}/skills.d.ts.map +1 -1
- package/dist/{aci → car}/skills.js +72 -50
- package/dist/car/skills.js.map +1 -0
- package/dist/{aci → car}/tiers.d.ts +3 -3
- package/dist/{aci → car}/tiers.d.ts.map +1 -1
- package/dist/{aci → car}/tiers.js +140 -113
- package/dist/car/tiers.js.map +1 -0
- package/dist/common/index.d.ts +1 -0
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +18 -1
- package/dist/common/index.js.map +1 -1
- package/dist/common/primitives.d.ts +9 -7
- package/dist/common/primitives.d.ts.map +1 -1
- package/dist/common/primitives.js +30 -25
- package/dist/common/primitives.js.map +1 -1
- package/dist/common/types.d.ts +328 -0
- package/dist/common/types.d.ts.map +1 -0
- package/dist/common/types.js +61 -0
- package/dist/common/types.js.map +1 -0
- package/dist/db/agents.d.ts +1914 -0
- package/dist/db/agents.d.ts.map +1 -0
- package/dist/db/agents.js +283 -0
- package/dist/db/agents.js.map +1 -0
- package/dist/db/api-keys.d.ts +506 -0
- package/dist/db/api-keys.d.ts.map +1 -0
- package/dist/db/api-keys.js +101 -0
- package/dist/db/api-keys.js.map +1 -0
- package/dist/db/escalations.d.ts +554 -0
- package/dist/db/escalations.d.ts.map +1 -0
- package/dist/db/escalations.js +100 -0
- package/dist/db/escalations.js.map +1 -0
- package/dist/db/index.d.ts +20 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +47 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/intents.d.ts +535 -0
- package/dist/db/intents.d.ts.map +1 -0
- package/dist/db/intents.js +93 -0
- package/dist/db/intents.js.map +1 -0
- package/dist/db/merkle.d.ts +475 -0
- package/dist/db/merkle.d.ts.map +1 -0
- package/dist/db/merkle.js +103 -0
- package/dist/db/merkle.js.map +1 -0
- package/dist/db/operations.d.ts +256 -0
- package/dist/db/operations.d.ts.map +1 -0
- package/dist/db/operations.js +68 -0
- package/dist/db/operations.js.map +1 -0
- package/dist/db/policy-versions.d.ts +149 -0
- package/dist/db/policy-versions.d.ts.map +1 -0
- package/dist/db/policy-versions.js +44 -0
- package/dist/db/policy-versions.js.map +1 -0
- package/dist/db/proofs.d.ts +412 -0
- package/dist/db/proofs.d.ts.map +1 -0
- package/dist/db/proofs.js +66 -0
- package/dist/db/proofs.js.map +1 -0
- package/dist/db/rbac.d.ts +882 -0
- package/dist/db/rbac.d.ts.map +1 -0
- package/dist/db/rbac.js +189 -0
- package/dist/db/rbac.js.map +1 -0
- package/dist/db/service-accounts.d.ts +783 -0
- package/dist/db/service-accounts.d.ts.map +1 -0
- package/dist/db/service-accounts.js +179 -0
- package/dist/db/service-accounts.js.map +1 -0
- package/dist/db/trust.d.ts +603 -0
- package/dist/db/trust.d.ts.map +1 -0
- package/dist/db/trust.js +111 -0
- package/dist/db/trust.js.map +1 -0
- package/dist/db/webhooks.d.ts +382 -0
- package/dist/db/webhooks.d.ts.map +1 -0
- package/dist/db/webhooks.js +94 -0
- package/dist/db/webhooks.js.map +1 -0
- package/dist/flags.d.ts +214 -0
- package/dist/flags.d.ts.map +1 -0
- package/dist/flags.js +443 -0
- package/dist/flags.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +47 -4
- package/dist/index.js.map +1 -1
- package/dist/v2/canary-probe.js +10 -7
- package/dist/v2/canary-probe.js.map +1 -1
- package/dist/v2/component.js +2 -1
- package/dist/v2/component.js.map +1 -1
- package/dist/v2/decision.js +5 -2
- package/dist/v2/decision.js.map +1 -1
- package/dist/v2/enums.js +28 -25
- package/dist/v2/enums.js.map +1 -1
- package/dist/v2/evidence.js +75 -72
- package/dist/v2/evidence.js.map +1 -1
- package/dist/v2/execution.js +2 -1
- package/dist/v2/execution.js.map +1 -1
- package/dist/v2/index.js +29 -13
- package/dist/v2/index.js.map +1 -1
- package/dist/v2/intent.js +2 -1
- package/dist/v2/intent.js.map +1 -1
- package/dist/v2/policy-bundle.js +5 -2
- package/dist/v2/policy-bundle.js.map +1 -1
- package/dist/v2/pre-action-gate.js +10 -7
- package/dist/v2/pre-action-gate.js.map +1 -1
- package/dist/v2/proof-event.d.ts +3 -1
- package/dist/v2/proof-event.d.ts.map +1 -1
- package/dist/v2/proof-event.js +2 -1
- package/dist/v2/proof-event.js.map +1 -1
- package/dist/v2/retention.js +104 -101
- package/dist/v2/retention.js.map +1 -1
- package/dist/v2/trust-delta.js +5 -2
- package/dist/v2/trust-delta.js.map +1 -1
- package/dist/v2/trust-profile.js +12 -9
- package/dist/v2/trust-profile.js.map +1 -1
- package/dist/validators/decision.d.ts +2 -2
- package/dist/validators/decision.js +49 -46
- package/dist/validators/decision.js.map +1 -1
- package/dist/validators/enums.js +14 -11
- package/dist/validators/enums.js.map +1 -1
- package/dist/validators/index.js +30 -9
- package/dist/validators/index.js.map +1 -1
- package/dist/validators/intent.js +40 -37
- package/dist/validators/intent.js.map +1 -1
- package/dist/validators/proof-event.d.ts +3 -0
- package/dist/validators/proof-event.d.ts.map +1 -1
- package/dist/validators/proof-event.js +103 -99
- package/dist/validators/proof-event.js.map +1 -1
- package/dist/validators/trust-profile.js +40 -37
- package/dist/validators/trust-profile.js.map +1 -1
- package/package.json +81 -15
- package/dist/aci/aci-string.d.ts +0 -539
- package/dist/aci/aci-string.d.ts.map +0 -1
- package/dist/aci/aci-string.js +0 -563
- package/dist/aci/aci-string.js.map +0 -1
- package/dist/aci/attestation.js.map +0 -1
- package/dist/aci/domains.js.map +0 -1
- package/dist/aci/effective-permission.js.map +0 -1
- package/dist/aci/identity.d.ts.map +0 -1
- package/dist/aci/identity.js.map +0 -1
- package/dist/aci/jwt-claims.d.ts +0 -756
- package/dist/aci/jwt-claims.d.ts.map +0 -1
- package/dist/aci/jwt-claims.js +0 -335
- package/dist/aci/jwt-claims.js.map +0 -1
- package/dist/aci/levels.js.map +0 -1
- package/dist/aci/mapping.js.map +0 -1
- package/dist/aci/skills.js.map +0 -1
- package/dist/aci/tiers.js.map +0 -1
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Canonical Middleware type definitions for the Vorion Platform.
|
|
4
|
+
*
|
|
5
|
+
* This file provides the authoritative definitions for middleware-related types
|
|
6
|
+
* including rate limiting, CORS, error responses, and security headers.
|
|
7
|
+
* These types unify various implementations across the codebase into a single
|
|
8
|
+
* source of truth.
|
|
9
|
+
*
|
|
10
|
+
* @module @vorion/contracts/canonical/middleware
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.DEFAULT_SECURITY_HEADERS_CONFIG = exports.DEFAULT_CORS_CONFIG = exports.DEFAULT_RATE_LIMIT_CONFIG = exports.requestLoggingConfigSchema = exports.hstsConfigSchema = exports.cspConfigSchema = exports.securityHeadersConfigSchema = exports.errorCategorySchema = exports.errorResponseSchema = exports.corsConfigSchema = exports.tenantRateLimitConfigSchema = exports.rateLimitResultSchema = exports.rateLimitConfigSchema = void 0;
|
|
14
|
+
exports.isRateLimitConfig = isRateLimitConfig;
|
|
15
|
+
exports.isCorsConfig = isCorsConfig;
|
|
16
|
+
exports.isErrorResponse = isErrorResponse;
|
|
17
|
+
exports.isErrorCategory = isErrorCategory;
|
|
18
|
+
exports.createErrorResponse = createErrorResponse;
|
|
19
|
+
const zod_1 = require("zod");
|
|
20
|
+
/**
|
|
21
|
+
* Zod schema for RateLimitConfig validation.
|
|
22
|
+
*/
|
|
23
|
+
exports.rateLimitConfigSchema = zod_1.z.object({
|
|
24
|
+
limit: zod_1.z.number().int().positive(),
|
|
25
|
+
windowMs: zod_1.z.number().int().positive(),
|
|
26
|
+
keyGenerator: zod_1.z.string().optional(),
|
|
27
|
+
skipSuccessfulRequests: zod_1.z.boolean().optional(),
|
|
28
|
+
skipFailedRequests: zod_1.z.boolean().optional(),
|
|
29
|
+
message: zod_1.z.string().optional(),
|
|
30
|
+
statusCode: zod_1.z.number().int().min(400).max(599).optional(),
|
|
31
|
+
headers: zod_1.z.boolean().optional(),
|
|
32
|
+
});
|
|
33
|
+
/**
|
|
34
|
+
* Zod schema for RateLimitResult validation.
|
|
35
|
+
*/
|
|
36
|
+
exports.rateLimitResultSchema = zod_1.z.object({
|
|
37
|
+
allowed: zod_1.z.boolean(),
|
|
38
|
+
current: zod_1.z.number().int().min(0),
|
|
39
|
+
limit: zod_1.z.number().int().positive(),
|
|
40
|
+
remaining: zod_1.z.number().int().min(0),
|
|
41
|
+
resetAt: zod_1.z.number().int().positive(),
|
|
42
|
+
retryAfter: zod_1.z.number().int().min(0).optional(),
|
|
43
|
+
});
|
|
44
|
+
/**
|
|
45
|
+
* Zod schema for TenantRateLimitConfig validation.
|
|
46
|
+
*/
|
|
47
|
+
exports.tenantRateLimitConfigSchema = exports.rateLimitConfigSchema.extend({
|
|
48
|
+
tenantId: zod_1.z.string().min(1),
|
|
49
|
+
isPremium: zod_1.z.boolean().optional(),
|
|
50
|
+
premiumMultiplier: zod_1.z.number().positive().optional(),
|
|
51
|
+
});
|
|
52
|
+
/**
|
|
53
|
+
* Zod schema for CorsConfig validation.
|
|
54
|
+
*/
|
|
55
|
+
exports.corsConfigSchema = zod_1.z.object({
|
|
56
|
+
origin: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string()).readonly()]),
|
|
57
|
+
methods: zod_1.z.array(zod_1.z.string()).readonly().optional(),
|
|
58
|
+
headers: zod_1.z.array(zod_1.z.string()).readonly().optional(),
|
|
59
|
+
exposedHeaders: zod_1.z.array(zod_1.z.string()).readonly().optional(),
|
|
60
|
+
credentials: zod_1.z.boolean().optional(),
|
|
61
|
+
maxAge: zod_1.z.number().int().min(0).optional(),
|
|
62
|
+
preflightContinue: zod_1.z.boolean().optional(),
|
|
63
|
+
optionsSuccessStatus: zod_1.z.number().int().min(200).max(299).optional(),
|
|
64
|
+
});
|
|
65
|
+
/**
|
|
66
|
+
* Zod schema for ErrorResponse validation.
|
|
67
|
+
*/
|
|
68
|
+
exports.errorResponseSchema = zod_1.z.object({
|
|
69
|
+
error: zod_1.z.object({
|
|
70
|
+
code: zod_1.z.string().min(1),
|
|
71
|
+
message: zod_1.z.string().min(1),
|
|
72
|
+
details: zod_1.z.record(zod_1.z.unknown()).readonly().optional(),
|
|
73
|
+
requestId: zod_1.z.string().optional(),
|
|
74
|
+
timestamp: zod_1.z.string().optional(),
|
|
75
|
+
path: zod_1.z.string().optional(),
|
|
76
|
+
}),
|
|
77
|
+
});
|
|
78
|
+
/**
|
|
79
|
+
* Zod schema for ErrorCategory validation.
|
|
80
|
+
*/
|
|
81
|
+
exports.errorCategorySchema = zod_1.z.enum([
|
|
82
|
+
'validation',
|
|
83
|
+
'authentication',
|
|
84
|
+
'authorization',
|
|
85
|
+
'not_found',
|
|
86
|
+
'conflict',
|
|
87
|
+
'rate_limit',
|
|
88
|
+
'internal',
|
|
89
|
+
'external',
|
|
90
|
+
'timeout',
|
|
91
|
+
'unavailable',
|
|
92
|
+
]);
|
|
93
|
+
/**
|
|
94
|
+
* Zod schema for SecurityHeadersConfig validation.
|
|
95
|
+
*/
|
|
96
|
+
exports.securityHeadersConfigSchema = zod_1.z.object({
|
|
97
|
+
contentTypeOptions: zod_1.z.string().optional(),
|
|
98
|
+
frameOptions: zod_1.z.string().optional(),
|
|
99
|
+
xssProtection: zod_1.z.string().optional(),
|
|
100
|
+
referrerPolicy: zod_1.z.string().optional(),
|
|
101
|
+
permissionsPolicy: zod_1.z.string().optional(),
|
|
102
|
+
});
|
|
103
|
+
/**
|
|
104
|
+
* Zod schema for CspConfig validation.
|
|
105
|
+
*/
|
|
106
|
+
exports.cspConfigSchema = zod_1.z.object({
|
|
107
|
+
defaultSrc: zod_1.z.array(zod_1.z.string()).readonly().optional(),
|
|
108
|
+
scriptSrc: zod_1.z.array(zod_1.z.string()).readonly().optional(),
|
|
109
|
+
styleSrc: zod_1.z.array(zod_1.z.string()).readonly().optional(),
|
|
110
|
+
imgSrc: zod_1.z.array(zod_1.z.string()).readonly().optional(),
|
|
111
|
+
fontSrc: zod_1.z.array(zod_1.z.string()).readonly().optional(),
|
|
112
|
+
connectSrc: zod_1.z.array(zod_1.z.string()).readonly().optional(),
|
|
113
|
+
frameSrc: zod_1.z.array(zod_1.z.string()).readonly().optional(),
|
|
114
|
+
objectSrc: zod_1.z.array(zod_1.z.string()).readonly().optional(),
|
|
115
|
+
mediaSrc: zod_1.z.array(zod_1.z.string()).readonly().optional(),
|
|
116
|
+
reportOnly: zod_1.z.boolean().optional(),
|
|
117
|
+
reportUri: zod_1.z.string().url().optional(),
|
|
118
|
+
});
|
|
119
|
+
/**
|
|
120
|
+
* Zod schema for HstsConfig validation.
|
|
121
|
+
*/
|
|
122
|
+
exports.hstsConfigSchema = zod_1.z.object({
|
|
123
|
+
maxAge: zod_1.z.number().int().min(0),
|
|
124
|
+
includeSubDomains: zod_1.z.boolean().optional(),
|
|
125
|
+
preload: zod_1.z.boolean().optional(),
|
|
126
|
+
});
|
|
127
|
+
/**
|
|
128
|
+
* Zod schema for RequestLoggingConfig validation.
|
|
129
|
+
*/
|
|
130
|
+
exports.requestLoggingConfigSchema = zod_1.z.object({
|
|
131
|
+
logBody: zod_1.z.boolean().optional(),
|
|
132
|
+
logResponse: zod_1.z.boolean().optional(),
|
|
133
|
+
logHeaders: zod_1.z.boolean().optional(),
|
|
134
|
+
redactHeaders: zod_1.z.array(zod_1.z.string()).readonly().optional(),
|
|
135
|
+
maxBodySize: zod_1.z.number().int().positive().optional(),
|
|
136
|
+
level: zod_1.z.enum(['debug', 'info', 'warn', 'error']).optional(),
|
|
137
|
+
});
|
|
138
|
+
// ============================================================================
|
|
139
|
+
// Type Guards
|
|
140
|
+
// ============================================================================
|
|
141
|
+
/**
|
|
142
|
+
* Type guard for RateLimitConfig.
|
|
143
|
+
*/
|
|
144
|
+
function isRateLimitConfig(value) {
|
|
145
|
+
return exports.rateLimitConfigSchema.safeParse(value).success;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Type guard for CorsConfig.
|
|
149
|
+
*/
|
|
150
|
+
function isCorsConfig(value) {
|
|
151
|
+
return exports.corsConfigSchema.safeParse(value).success;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Type guard for ErrorResponse.
|
|
155
|
+
*/
|
|
156
|
+
function isErrorResponse(value) {
|
|
157
|
+
return exports.errorResponseSchema.safeParse(value).success;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Type guard for ErrorCategory.
|
|
161
|
+
*/
|
|
162
|
+
function isErrorCategory(value) {
|
|
163
|
+
return exports.errorCategorySchema.safeParse(value).success;
|
|
164
|
+
}
|
|
165
|
+
// ============================================================================
|
|
166
|
+
// Factory Functions
|
|
167
|
+
// ============================================================================
|
|
168
|
+
/**
|
|
169
|
+
* Creates a standard error response.
|
|
170
|
+
*
|
|
171
|
+
* @param code - Error code
|
|
172
|
+
* @param message - Human-readable message
|
|
173
|
+
* @param options - Additional options
|
|
174
|
+
* @returns ErrorResponse object
|
|
175
|
+
*/
|
|
176
|
+
function createErrorResponse(code, message, options) {
|
|
177
|
+
return {
|
|
178
|
+
error: {
|
|
179
|
+
code,
|
|
180
|
+
message,
|
|
181
|
+
details: options?.details,
|
|
182
|
+
requestId: options?.requestId,
|
|
183
|
+
timestamp: new Date().toISOString(),
|
|
184
|
+
path: options?.path,
|
|
185
|
+
},
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Default rate limit configuration.
|
|
190
|
+
*/
|
|
191
|
+
exports.DEFAULT_RATE_LIMIT_CONFIG = {
|
|
192
|
+
limit: 100,
|
|
193
|
+
windowMs: 60 * 1000, // 1 minute
|
|
194
|
+
headers: true,
|
|
195
|
+
statusCode: 429,
|
|
196
|
+
message: 'Too many requests, please try again later.',
|
|
197
|
+
};
|
|
198
|
+
/**
|
|
199
|
+
* Default CORS configuration.
|
|
200
|
+
*/
|
|
201
|
+
exports.DEFAULT_CORS_CONFIG = {
|
|
202
|
+
origin: '*',
|
|
203
|
+
methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
|
|
204
|
+
headers: ['Content-Type', 'Authorization', 'X-API-Key', 'X-Request-ID'],
|
|
205
|
+
credentials: false,
|
|
206
|
+
maxAge: 86400, // 24 hours
|
|
207
|
+
optionsSuccessStatus: 204,
|
|
208
|
+
};
|
|
209
|
+
/**
|
|
210
|
+
* Default security headers configuration.
|
|
211
|
+
*/
|
|
212
|
+
exports.DEFAULT_SECURITY_HEADERS_CONFIG = {
|
|
213
|
+
contentTypeOptions: 'nosniff',
|
|
214
|
+
frameOptions: 'DENY',
|
|
215
|
+
xssProtection: '1; mode=block',
|
|
216
|
+
referrerPolicy: 'strict-origin-when-cross-origin',
|
|
217
|
+
};
|
|
218
|
+
//# sourceMappingURL=middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/canonical/middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* Risk levels classify the potential impact or severity of actions, decisions,
|
|
9
9
|
* and events within the platform.
|
|
10
10
|
*
|
|
11
|
-
* @module @
|
|
11
|
+
* @module @vorionsys/contracts/canonical/risk-level
|
|
12
12
|
*/
|
|
13
13
|
import { z } from 'zod';
|
|
14
14
|
/**
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* @fileoverview Canonical RiskLevel type definitions for the Vorion Platform.
|
|
3
4
|
*
|
|
@@ -8,9 +9,28 @@
|
|
|
8
9
|
* Risk levels classify the potential impact or severity of actions, decisions,
|
|
9
10
|
* and events within the platform.
|
|
10
11
|
*
|
|
11
|
-
* @module @
|
|
12
|
+
* @module @vorionsys/contracts/canonical/risk-level
|
|
12
13
|
*/
|
|
13
|
-
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.LEGACY_RISK_LEVEL_MAP = exports.RiskLevelEnum = exports.riskLevelUnionSchema = exports.riskLevelFlexibleSchema = exports.riskLevelFromNumberSchema = exports.riskLevelSchema = exports.DEFAULT_RISK_LEVEL = exports.RISK_LEVEL_COLORS = exports.RISK_LEVEL_DESCRIPTIONS = exports.RISK_LEVEL_LABELS = exports.RISK_LEVEL_VALUES = exports.RISK_LEVELS = void 0;
|
|
16
|
+
exports.riskLevelFromNumber = riskLevelFromNumber;
|
|
17
|
+
exports.riskLevelToNumber = riskLevelToNumber;
|
|
18
|
+
exports.parseRiskLevel = parseRiskLevel;
|
|
19
|
+
exports.parseRiskLevelOrDefault = parseRiskLevelOrDefault;
|
|
20
|
+
exports.compareRiskLevels = compareRiskLevels;
|
|
21
|
+
exports.isRiskAtLeast = isRiskAtLeast;
|
|
22
|
+
exports.isRiskHigherThan = isRiskHigherThan;
|
|
23
|
+
exports.maxRiskLevel = maxRiskLevel;
|
|
24
|
+
exports.minRiskLevel = minRiskLevel;
|
|
25
|
+
exports.escalateRiskLevel = escalateRiskLevel;
|
|
26
|
+
exports.deescalateRiskLevel = deescalateRiskLevel;
|
|
27
|
+
exports.isRiskLevel = isRiskLevel;
|
|
28
|
+
exports.requiresElevatedAttention = requiresElevatedAttention;
|
|
29
|
+
exports.isCriticalRisk = isCriticalRisk;
|
|
30
|
+
exports.getRiskLevelLabel = getRiskLevelLabel;
|
|
31
|
+
exports.getRiskLevelDescription = getRiskLevelDescription;
|
|
32
|
+
exports.getRiskLevelColor = getRiskLevelColor;
|
|
33
|
+
const zod_1 = require("zod");
|
|
14
34
|
// ============================================================================
|
|
15
35
|
// Constants
|
|
16
36
|
// ============================================================================
|
|
@@ -19,7 +39,7 @@ import { z } from 'zod';
|
|
|
19
39
|
*
|
|
20
40
|
* Useful for iteration, validation, and UI components.
|
|
21
41
|
*/
|
|
22
|
-
|
|
42
|
+
exports.RISK_LEVELS = ['low', 'medium', 'high', 'critical'];
|
|
23
43
|
/**
|
|
24
44
|
* Numeric values for risk levels (0-3 scale).
|
|
25
45
|
*
|
|
@@ -32,7 +52,7 @@ export const RISK_LEVELS = ['low', 'medium', 'high', 'critical'];
|
|
|
32
52
|
* RISK_LEVEL_VALUES['low']; // 0
|
|
33
53
|
* ```
|
|
34
54
|
*/
|
|
35
|
-
|
|
55
|
+
exports.RISK_LEVEL_VALUES = {
|
|
36
56
|
low: 0,
|
|
37
57
|
medium: 1,
|
|
38
58
|
high: 2,
|
|
@@ -54,7 +74,7 @@ const NUMERIC_TO_RISK_LEVEL = {
|
|
|
54
74
|
*
|
|
55
75
|
* Useful for display in UIs and reports.
|
|
56
76
|
*/
|
|
57
|
-
|
|
77
|
+
exports.RISK_LEVEL_LABELS = {
|
|
58
78
|
low: 'Low Risk',
|
|
59
79
|
medium: 'Medium Risk',
|
|
60
80
|
high: 'High Risk',
|
|
@@ -65,7 +85,7 @@ export const RISK_LEVEL_LABELS = {
|
|
|
65
85
|
*
|
|
66
86
|
* Provides guidance on what each level means and when to use it.
|
|
67
87
|
*/
|
|
68
|
-
|
|
88
|
+
exports.RISK_LEVEL_DESCRIPTIONS = {
|
|
69
89
|
low: 'Minimal risk. Standard operation with normal monitoring.',
|
|
70
90
|
medium: 'Moderate risk. Enhanced monitoring and logging recommended.',
|
|
71
91
|
high: 'Significant risk. Additional safeguards and review required.',
|
|
@@ -77,7 +97,7 @@ export const RISK_LEVEL_DESCRIPTIONS = {
|
|
|
77
97
|
* Uses common color conventions: green for low, yellow/orange for medium,
|
|
78
98
|
* red for high, and dark red for critical.
|
|
79
99
|
*/
|
|
80
|
-
|
|
100
|
+
exports.RISK_LEVEL_COLORS = {
|
|
81
101
|
low: '#22c55e', // Green
|
|
82
102
|
medium: '#f59e0b', // Amber
|
|
83
103
|
high: '#ef4444', // Red
|
|
@@ -86,7 +106,7 @@ export const RISK_LEVEL_COLORS = {
|
|
|
86
106
|
/**
|
|
87
107
|
* Default risk level for unclassified items.
|
|
88
108
|
*/
|
|
89
|
-
|
|
109
|
+
exports.DEFAULT_RISK_LEVEL = 'low';
|
|
90
110
|
// ============================================================================
|
|
91
111
|
// Conversion Functions
|
|
92
112
|
// ============================================================================
|
|
@@ -106,7 +126,7 @@ export const DEFAULT_RISK_LEVEL = 'low';
|
|
|
106
126
|
* riskLevelFromNumber(4); // 'critical' (Council's L4 maps to critical)
|
|
107
127
|
* ```
|
|
108
128
|
*/
|
|
109
|
-
|
|
129
|
+
function riskLevelFromNumber(n) {
|
|
110
130
|
if (n <= 0)
|
|
111
131
|
return 'low';
|
|
112
132
|
if (n === 1)
|
|
@@ -127,8 +147,8 @@ export function riskLevelFromNumber(n) {
|
|
|
127
147
|
* riskLevelToNumber('critical'); // 3
|
|
128
148
|
* ```
|
|
129
149
|
*/
|
|
130
|
-
|
|
131
|
-
return RISK_LEVEL_VALUES[level];
|
|
150
|
+
function riskLevelToNumber(level) {
|
|
151
|
+
return exports.RISK_LEVEL_VALUES[level];
|
|
132
152
|
}
|
|
133
153
|
/**
|
|
134
154
|
* Safely parses a value to RiskLevel.
|
|
@@ -149,7 +169,7 @@ export function riskLevelToNumber(level) {
|
|
|
149
169
|
* parseRiskLevel('invalid'); // null
|
|
150
170
|
* ```
|
|
151
171
|
*/
|
|
152
|
-
|
|
172
|
+
function parseRiskLevel(value) {
|
|
153
173
|
if (typeof value === 'number') {
|
|
154
174
|
if (value >= 0 && value <= 4 && Number.isInteger(value)) {
|
|
155
175
|
return riskLevelFromNumber(value);
|
|
@@ -158,7 +178,7 @@ export function parseRiskLevel(value) {
|
|
|
158
178
|
}
|
|
159
179
|
if (typeof value === 'string') {
|
|
160
180
|
const normalized = value.toLowerCase().trim();
|
|
161
|
-
if (RISK_LEVELS.includes(normalized)) {
|
|
181
|
+
if (exports.RISK_LEVELS.includes(normalized)) {
|
|
162
182
|
return normalized;
|
|
163
183
|
}
|
|
164
184
|
}
|
|
@@ -177,7 +197,7 @@ export function parseRiskLevel(value) {
|
|
|
177
197
|
* parseRiskLevelOrDefault('invalid', 'low'); // 'low'
|
|
178
198
|
* ```
|
|
179
199
|
*/
|
|
180
|
-
|
|
200
|
+
function parseRiskLevelOrDefault(value, defaultLevel = exports.DEFAULT_RISK_LEVEL) {
|
|
181
201
|
return parseRiskLevel(value) ?? defaultLevel;
|
|
182
202
|
}
|
|
183
203
|
// ============================================================================
|
|
@@ -197,8 +217,8 @@ export function parseRiskLevelOrDefault(value, defaultLevel = DEFAULT_RISK_LEVEL
|
|
|
197
217
|
* compareRiskLevels('medium', 'medium'); // 0
|
|
198
218
|
* ```
|
|
199
219
|
*/
|
|
200
|
-
|
|
201
|
-
const diff = RISK_LEVEL_VALUES[a] - RISK_LEVEL_VALUES[b];
|
|
220
|
+
function compareRiskLevels(a, b) {
|
|
221
|
+
const diff = exports.RISK_LEVEL_VALUES[a] - exports.RISK_LEVEL_VALUES[b];
|
|
202
222
|
if (diff < 0)
|
|
203
223
|
return -1;
|
|
204
224
|
if (diff > 0)
|
|
@@ -219,8 +239,8 @@ export function compareRiskLevels(a, b) {
|
|
|
219
239
|
* isRiskAtLeast('medium', 'medium'); // true
|
|
220
240
|
* ```
|
|
221
241
|
*/
|
|
222
|
-
|
|
223
|
-
return RISK_LEVEL_VALUES[level] >= RISK_LEVEL_VALUES[threshold];
|
|
242
|
+
function isRiskAtLeast(level, threshold) {
|
|
243
|
+
return exports.RISK_LEVEL_VALUES[level] >= exports.RISK_LEVEL_VALUES[threshold];
|
|
224
244
|
}
|
|
225
245
|
/**
|
|
226
246
|
* Checks if a risk level is more severe than another.
|
|
@@ -236,8 +256,8 @@ export function isRiskAtLeast(level, threshold) {
|
|
|
236
256
|
* isRiskHigherThan('high', 'high'); // false
|
|
237
257
|
* ```
|
|
238
258
|
*/
|
|
239
|
-
|
|
240
|
-
return RISK_LEVEL_VALUES[level] > RISK_LEVEL_VALUES[other];
|
|
259
|
+
function isRiskHigherThan(level, other) {
|
|
260
|
+
return exports.RISK_LEVEL_VALUES[level] > exports.RISK_LEVEL_VALUES[other];
|
|
241
261
|
}
|
|
242
262
|
/**
|
|
243
263
|
* Gets the maximum (most severe) risk level from an array.
|
|
@@ -252,7 +272,7 @@ export function isRiskHigherThan(level, other) {
|
|
|
252
272
|
* maxRiskLevel([]); // 'low'
|
|
253
273
|
* ```
|
|
254
274
|
*/
|
|
255
|
-
|
|
275
|
+
function maxRiskLevel(levels) {
|
|
256
276
|
if (levels.length === 0)
|
|
257
277
|
return 'low';
|
|
258
278
|
return levels.reduce((max, level) => isRiskHigherThan(level, max) ? level : max);
|
|
@@ -269,7 +289,7 @@ export function maxRiskLevel(levels) {
|
|
|
269
289
|
* minRiskLevel(['high', 'critical']); // 'high'
|
|
270
290
|
* ```
|
|
271
291
|
*/
|
|
272
|
-
|
|
292
|
+
function minRiskLevel(levels) {
|
|
273
293
|
if (levels.length === 0)
|
|
274
294
|
return 'critical';
|
|
275
295
|
return levels.reduce((min, level) => isRiskHigherThan(min, level) ? level : min);
|
|
@@ -290,8 +310,8 @@ export function minRiskLevel(levels) {
|
|
|
290
310
|
* escalateRiskLevel('critical'); // 'critical'
|
|
291
311
|
* ```
|
|
292
312
|
*/
|
|
293
|
-
|
|
294
|
-
const currentValue = RISK_LEVEL_VALUES[level];
|
|
313
|
+
function escalateRiskLevel(level) {
|
|
314
|
+
const currentValue = exports.RISK_LEVEL_VALUES[level];
|
|
295
315
|
const escalatedValue = Math.min(currentValue + 1, 3);
|
|
296
316
|
return NUMERIC_TO_RISK_LEVEL[escalatedValue] ?? 'critical';
|
|
297
317
|
}
|
|
@@ -308,8 +328,8 @@ export function escalateRiskLevel(level) {
|
|
|
308
328
|
* deescalateRiskLevel('low'); // 'low'
|
|
309
329
|
* ```
|
|
310
330
|
*/
|
|
311
|
-
|
|
312
|
-
const currentValue = RISK_LEVEL_VALUES[level];
|
|
331
|
+
function deescalateRiskLevel(level) {
|
|
332
|
+
const currentValue = exports.RISK_LEVEL_VALUES[level];
|
|
313
333
|
const deescalatedValue = Math.max(currentValue - 1, 0);
|
|
314
334
|
return NUMERIC_TO_RISK_LEVEL[deescalatedValue] ?? 'low';
|
|
315
335
|
}
|
|
@@ -329,8 +349,8 @@ export function deescalateRiskLevel(level) {
|
|
|
329
349
|
* isRiskLevel(2); // false
|
|
330
350
|
* ```
|
|
331
351
|
*/
|
|
332
|
-
|
|
333
|
-
return typeof value === 'string' && RISK_LEVELS.includes(value);
|
|
352
|
+
function isRiskLevel(value) {
|
|
353
|
+
return typeof value === 'string' && exports.RISK_LEVELS.includes(value);
|
|
334
354
|
}
|
|
335
355
|
/**
|
|
336
356
|
* Type guard to check if a risk level requires elevated attention.
|
|
@@ -340,7 +360,7 @@ export function isRiskLevel(value) {
|
|
|
340
360
|
* @param level - Risk level to check
|
|
341
361
|
* @returns True if level requires elevated attention
|
|
342
362
|
*/
|
|
343
|
-
|
|
363
|
+
function requiresElevatedAttention(level) {
|
|
344
364
|
return level === 'high' || level === 'critical';
|
|
345
365
|
}
|
|
346
366
|
/**
|
|
@@ -349,7 +369,7 @@ export function requiresElevatedAttention(level) {
|
|
|
349
369
|
* @param level - Risk level to check
|
|
350
370
|
* @returns True if level is critical
|
|
351
371
|
*/
|
|
352
|
-
|
|
372
|
+
function isCriticalRisk(level) {
|
|
353
373
|
return level === 'critical';
|
|
354
374
|
}
|
|
355
375
|
// ============================================================================
|
|
@@ -361,8 +381,8 @@ export function isCriticalRisk(level) {
|
|
|
361
381
|
* @param level - Risk level
|
|
362
382
|
* @returns Human-readable label
|
|
363
383
|
*/
|
|
364
|
-
|
|
365
|
-
return RISK_LEVEL_LABELS[level];
|
|
384
|
+
function getRiskLevelLabel(level) {
|
|
385
|
+
return exports.RISK_LEVEL_LABELS[level];
|
|
366
386
|
}
|
|
367
387
|
/**
|
|
368
388
|
* Gets the description for a risk level.
|
|
@@ -370,8 +390,8 @@ export function getRiskLevelLabel(level) {
|
|
|
370
390
|
* @param level - Risk level
|
|
371
391
|
* @returns Description string
|
|
372
392
|
*/
|
|
373
|
-
|
|
374
|
-
return RISK_LEVEL_DESCRIPTIONS[level];
|
|
393
|
+
function getRiskLevelDescription(level) {
|
|
394
|
+
return exports.RISK_LEVEL_DESCRIPTIONS[level];
|
|
375
395
|
}
|
|
376
396
|
/**
|
|
377
397
|
* Gets the color code for a risk level.
|
|
@@ -379,8 +399,8 @@ export function getRiskLevelDescription(level) {
|
|
|
379
399
|
* @param level - Risk level
|
|
380
400
|
* @returns Hex color code
|
|
381
401
|
*/
|
|
382
|
-
|
|
383
|
-
return RISK_LEVEL_COLORS[level];
|
|
402
|
+
function getRiskLevelColor(level) {
|
|
403
|
+
return exports.RISK_LEVEL_COLORS[level];
|
|
384
404
|
}
|
|
385
405
|
// ============================================================================
|
|
386
406
|
// Zod Schemas
|
|
@@ -396,7 +416,7 @@ export function getRiskLevelColor(level) {
|
|
|
396
416
|
* riskLevelSchema.parse('severe'); // Throws ZodError
|
|
397
417
|
* ```
|
|
398
418
|
*/
|
|
399
|
-
|
|
419
|
+
exports.riskLevelSchema = zod_1.z.enum(['low', 'medium', 'high', 'critical'], {
|
|
400
420
|
errorMap: () => ({
|
|
401
421
|
message: "Invalid risk level. Must be 'low', 'medium', 'high', or 'critical'.",
|
|
402
422
|
}),
|
|
@@ -409,7 +429,7 @@ export const riskLevelSchema = z.enum(['low', 'medium', 'high', 'critical'], {
|
|
|
409
429
|
* riskLevelFromNumberSchema.parse(2); // 'high'
|
|
410
430
|
* ```
|
|
411
431
|
*/
|
|
412
|
-
|
|
432
|
+
exports.riskLevelFromNumberSchema = zod_1.z
|
|
413
433
|
.number()
|
|
414
434
|
.int()
|
|
415
435
|
.min(0)
|
|
@@ -424,19 +444,19 @@ export const riskLevelFromNumberSchema = z
|
|
|
424
444
|
* riskLevelFlexibleSchema.parse('Medium'); // 'medium'
|
|
425
445
|
* ```
|
|
426
446
|
*/
|
|
427
|
-
|
|
447
|
+
exports.riskLevelFlexibleSchema = zod_1.z
|
|
428
448
|
.string()
|
|
429
449
|
.transform((s) => s.toLowerCase().trim())
|
|
430
|
-
.pipe(riskLevelSchema);
|
|
450
|
+
.pipe(exports.riskLevelSchema);
|
|
431
451
|
/**
|
|
432
452
|
* Zod schema that accepts multiple input formats and normalizes to RiskLevel.
|
|
433
453
|
*
|
|
434
454
|
* Accepts: lowercase strings, uppercase strings, numbers (0-4).
|
|
435
455
|
*/
|
|
436
|
-
|
|
437
|
-
riskLevelSchema,
|
|
438
|
-
riskLevelFlexibleSchema,
|
|
439
|
-
riskLevelFromNumberSchema,
|
|
456
|
+
exports.riskLevelUnionSchema = zod_1.z.union([
|
|
457
|
+
exports.riskLevelSchema,
|
|
458
|
+
exports.riskLevelFlexibleSchema,
|
|
459
|
+
exports.riskLevelFromNumberSchema,
|
|
440
460
|
]);
|
|
441
461
|
// ============================================================================
|
|
442
462
|
// Legacy Compatibility
|
|
@@ -446,7 +466,7 @@ export const riskLevelUnionSchema = z.union([
|
|
|
446
466
|
*
|
|
447
467
|
* @deprecated Use RiskLevel string type directly. This is for migration only.
|
|
448
468
|
*/
|
|
449
|
-
|
|
469
|
+
exports.RiskLevelEnum = {
|
|
450
470
|
LOW: 'low',
|
|
451
471
|
MEDIUM: 'medium',
|
|
452
472
|
HIGH: 'high',
|
|
@@ -457,7 +477,7 @@ export const RiskLevelEnum = {
|
|
|
457
477
|
*
|
|
458
478
|
* @deprecated Use RiskLevel string type directly. This is for migration only.
|
|
459
479
|
*/
|
|
460
|
-
|
|
480
|
+
exports.LEGACY_RISK_LEVEL_MAP = {
|
|
461
481
|
LOW: 'low',
|
|
462
482
|
MEDIUM: 'medium',
|
|
463
483
|
HIGH: 'high',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"risk-level.js","sourceRoot":"","sources":["../../src/canonical/risk-level.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"risk-level.js","sourceRoot":"","sources":["../../src/canonical/risk-level.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* on their accumulated trust score. The system uses an 8-tier model with
|
|
9
9
|
* variable divisions on a 0-1000 scale.
|
|
10
10
|
*
|
|
11
|
-
* @module @
|
|
11
|
+
* @module @vorionsys/contracts/canonical/trust-band
|
|
12
12
|
*/
|
|
13
13
|
import { z } from 'zod';
|
|
14
14
|
/**
|