@vibesdotdev/security 0.0.0-stage → 1.0.0-rc.5
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/LICENSE +18 -0
- package/README.md +109 -2
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/plugin.d.ts +15 -0
- package/dist/cli/plugin.d.ts.map +1 -0
- package/dist/cli/plugin.js +25 -0
- package/dist/cli/plugin.js.map +1 -0
- package/dist/cli/read-lockfile.d.ts +4 -0
- package/dist/cli/read-lockfile.d.ts.map +1 -0
- package/dist/cli/read-lockfile.js +74 -0
- package/dist/cli/read-lockfile.js.map +1 -0
- package/dist/cli/report-output.d.ts +20 -0
- package/dist/cli/report-output.d.ts.map +1 -0
- package/dist/cli/report-output.js +27 -0
- package/dist/cli/report-output.js.map +1 -0
- package/dist/cli/shield.cli-group.descriptor.d.ts +9 -0
- package/dist/cli/shield.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/shield.cli-group.descriptor.js +16 -0
- package/dist/cli/shield.cli-group.descriptor.js.map +1 -0
- package/dist/cli/shield.deps.cli-group.descriptor.d.ts +9 -0
- package/dist/cli/shield.deps.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/shield.deps.cli-group.descriptor.js +17 -0
- package/dist/cli/shield.deps.cli-group.descriptor.js.map +1 -0
- package/dist/cli/shield.deps.gate.descriptor.d.ts +10 -0
- package/dist/cli/shield.deps.gate.descriptor.d.ts.map +1 -0
- package/dist/cli/shield.deps.gate.descriptor.js +25 -0
- package/dist/cli/shield.deps.gate.descriptor.js.map +1 -0
- package/dist/cli/shield.deps.gate.impl.consumer.d.ts +18 -0
- package/dist/cli/shield.deps.gate.impl.consumer.d.ts.map +1 -0
- package/dist/cli/shield.deps.gate.impl.consumer.js +42 -0
- package/dist/cli/shield.deps.gate.impl.consumer.js.map +1 -0
- package/dist/cli/shield.deps.scan.descriptor.d.ts +10 -0
- package/dist/cli/shield.deps.scan.descriptor.d.ts.map +1 -0
- package/dist/cli/shield.deps.scan.descriptor.js +25 -0
- package/dist/cli/shield.deps.scan.descriptor.js.map +1 -0
- package/dist/cli/shield.deps.scan.impl.consumer.d.ts +16 -0
- package/dist/cli/shield.deps.scan.impl.consumer.d.ts.map +1 -0
- package/dist/cli/shield.deps.scan.impl.consumer.js +35 -0
- package/dist/cli/shield.deps.scan.impl.consumer.js.map +1 -0
- package/dist/helpers/constant-time.d.ts +18 -0
- package/dist/helpers/constant-time.d.ts.map +1 -0
- package/dist/helpers/constant-time.js +49 -0
- package/dist/helpers/constant-time.js.map +1 -0
- package/dist/helpers/filename-sanitizer.d.ts +2 -0
- package/dist/helpers/filename-sanitizer.d.ts.map +1 -0
- package/dist/helpers/filename-sanitizer.js +18 -0
- package/dist/helpers/filename-sanitizer.js.map +1 -0
- package/dist/helpers/forwardable-auth-headers.d.ts +8 -0
- package/dist/helpers/forwardable-auth-headers.d.ts.map +1 -0
- package/dist/helpers/forwardable-auth-headers.js +44 -0
- package/dist/helpers/forwardable-auth-headers.js.map +1 -0
- package/dist/helpers/index.d.ts +7 -0
- package/dist/helpers/index.d.ts.map +1 -0
- package/dist/helpers/index.js +7 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/helpers/ip-range.d.ts +3 -0
- package/dist/helpers/ip-range.d.ts.map +1 -0
- package/dist/helpers/ip-range.js +55 -0
- package/dist/helpers/ip-range.js.map +1 -0
- package/dist/helpers/mime-classifier.d.ts +3 -0
- package/dist/helpers/mime-classifier.d.ts.map +1 -0
- package/dist/helpers/mime-classifier.js +29 -0
- package/dist/helpers/mime-classifier.js.map +1 -0
- package/dist/helpers/pattern-matcher.d.ts +13 -0
- package/dist/helpers/pattern-matcher.d.ts.map +1 -0
- package/dist/helpers/pattern-matcher.js +29 -0
- package/dist/helpers/pattern-matcher.js.map +1 -0
- package/dist/implementations/cli-types.d.ts +2 -0
- package/dist/implementations/cli-types.d.ts.map +1 -0
- package/dist/implementations/cli-types.js +2 -0
- package/dist/implementations/cli-types.js.map +1 -0
- package/dist/implementations/encryption.d.ts +21 -0
- package/dist/implementations/encryption.d.ts.map +1 -0
- package/dist/implementations/encryption.js +154 -0
- package/dist/implementations/encryption.js.map +1 -0
- package/dist/implementations/errors.d.ts +17 -0
- package/dist/implementations/errors.d.ts.map +1 -0
- package/dist/implementations/errors.js +23 -0
- package/dist/implementations/errors.js.map +1 -0
- package/dist/implementations/keys.d.ts +24 -0
- package/dist/implementations/keys.d.ts.map +1 -0
- package/dist/implementations/keys.js +114 -0
- package/dist/implementations/keys.js.map +1 -0
- package/dist/implementations/redaction-admission.d.ts +24 -0
- package/dist/implementations/redaction-admission.d.ts.map +1 -0
- package/dist/implementations/redaction-admission.js +44 -0
- package/dist/implementations/redaction-admission.js.map +1 -0
- package/dist/implementations/redaction.d.ts +32 -0
- package/dist/implementations/redaction.d.ts.map +1 -0
- package/dist/implementations/redaction.js +47 -0
- package/dist/implementations/redaction.js.map +1 -0
- package/dist/implementations/redactor.inprocess.impl.d.ts +30 -0
- package/dist/implementations/redactor.inprocess.impl.d.ts.map +1 -0
- package/dist/implementations/redactor.inprocess.impl.js +26 -0
- package/dist/implementations/redactor.inprocess.impl.js.map +1 -0
- package/dist/implementations/redactor.subprocess.impl.d.ts +25 -0
- package/dist/implementations/redactor.subprocess.impl.d.ts.map +1 -0
- package/dist/implementations/redactor.subprocess.impl.js +42 -0
- package/dist/implementations/redactor.subprocess.impl.js.map +1 -0
- package/dist/implementations/scanner.impl.d.ts +7 -0
- package/dist/implementations/scanner.impl.d.ts.map +1 -0
- package/dist/implementations/scanner.impl.js +166 -0
- package/dist/implementations/scanner.impl.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/kinds/auditor.kind.d.ts +31 -0
- package/dist/kinds/auditor.kind.d.ts.map +1 -0
- package/dist/kinds/auditor.kind.js +48 -0
- package/dist/kinds/auditor.kind.js.map +1 -0
- package/dist/kinds/dep-scanner.kind.d.ts +27 -0
- package/dist/kinds/dep-scanner.kind.d.ts.map +1 -0
- package/dist/kinds/dep-scanner.kind.js +29 -0
- package/dist/kinds/dep-scanner.kind.js.map +1 -0
- package/dist/kinds/freshness-policy.kind.d.ts +34 -0
- package/dist/kinds/freshness-policy.kind.d.ts.map +1 -0
- package/dist/kinds/freshness-policy.kind.js +47 -0
- package/dist/kinds/freshness-policy.kind.js.map +1 -0
- package/dist/kinds/index.d.ts +9 -0
- package/dist/kinds/index.d.ts.map +1 -0
- package/dist/kinds/index.js +9 -0
- package/dist/kinds/index.js.map +1 -0
- package/dist/kinds/ioc-feed.kind.d.ts +35 -0
- package/dist/kinds/ioc-feed.kind.d.ts.map +1 -0
- package/dist/kinds/ioc-feed.kind.js +36 -0
- package/dist/kinds/ioc-feed.kind.js.map +1 -0
- package/dist/kinds/policy.kind.d.ts +42 -0
- package/dist/kinds/policy.kind.d.ts.map +1 -0
- package/dist/kinds/policy.kind.js +23 -0
- package/dist/kinds/policy.kind.js.map +1 -0
- package/dist/kinds/redactor.kind.d.ts +30 -0
- package/dist/kinds/redactor.kind.d.ts.map +1 -0
- package/dist/kinds/redactor.kind.js +25 -0
- package/dist/kinds/redactor.kind.js.map +1 -0
- package/dist/kinds/scanner.kind.d.ts +35 -0
- package/dist/kinds/scanner.kind.d.ts.map +1 -0
- package/dist/kinds/scanner.kind.js +26 -0
- package/dist/kinds/scanner.kind.js.map +1 -0
- package/dist/schemas/AuditEvent.d.ts +30 -0
- package/dist/schemas/AuditEvent.d.ts.map +1 -0
- package/dist/schemas/AuditEvent.js +17 -0
- package/dist/schemas/AuditEvent.js.map +1 -0
- package/dist/schemas/RedactionRule.d.ts +16 -0
- package/dist/schemas/RedactionRule.d.ts.map +1 -0
- package/dist/schemas/RedactionRule.js +10 -0
- package/dist/schemas/RedactionRule.js.map +1 -0
- package/dist/schemas/SecurityPolicy.d.ts +21 -0
- package/dist/schemas/SecurityPolicy.d.ts.map +1 -0
- package/dist/schemas/SecurityPolicy.js +9 -0
- package/dist/schemas/SecurityPolicy.js.map +1 -0
- package/dist/schemas/ThreatReport.d.ts +25 -0
- package/dist/schemas/ThreatReport.d.ts.map +1 -0
- package/dist/schemas/ThreatReport.js +14 -0
- package/dist/schemas/ThreatReport.js.map +1 -0
- package/dist/schemas/contracts/auditor.d.ts +68 -0
- package/dist/schemas/contracts/auditor.d.ts.map +1 -0
- package/dist/schemas/contracts/auditor.js +13 -0
- package/dist/schemas/contracts/auditor.js.map +1 -0
- package/dist/schemas/contracts/card.d.ts +106 -0
- package/dist/schemas/contracts/card.d.ts.map +1 -0
- package/dist/schemas/contracts/card.js +73 -0
- package/dist/schemas/contracts/card.js.map +1 -0
- package/dist/schemas/contracts/dep-scanner.d.ts +91 -0
- package/dist/schemas/contracts/dep-scanner.d.ts.map +1 -0
- package/dist/schemas/contracts/dep-scanner.js +27 -0
- package/dist/schemas/contracts/dep-scanner.js.map +1 -0
- package/dist/schemas/contracts/freshness-policy.d.ts +99 -0
- package/dist/schemas/contracts/freshness-policy.d.ts.map +1 -0
- package/dist/schemas/contracts/freshness-policy.js +31 -0
- package/dist/schemas/contracts/freshness-policy.js.map +1 -0
- package/dist/schemas/contracts/ioc-feed.d.ts +85 -0
- package/dist/schemas/contracts/ioc-feed.d.ts.map +1 -0
- package/dist/schemas/contracts/ioc-feed.js +28 -0
- package/dist/schemas/contracts/ioc-feed.js.map +1 -0
- package/dist/schemas/contracts/misc.d.ts +11 -0
- package/dist/schemas/contracts/misc.d.ts.map +1 -0
- package/dist/schemas/contracts/misc.js +4 -0
- package/dist/schemas/contracts/misc.js.map +1 -0
- package/dist/schemas/contracts/policy.d.ts +93 -0
- package/dist/schemas/contracts/policy.d.ts.map +1 -0
- package/dist/schemas/contracts/policy.js +25 -0
- package/dist/schemas/contracts/policy.js.map +1 -0
- package/dist/schemas/contracts/redactor.d.ts +99 -0
- package/dist/schemas/contracts/redactor.d.ts.map +1 -0
- package/dist/schemas/contracts/redactor.js +34 -0
- package/dist/schemas/contracts/redactor.js.map +1 -0
- package/dist/schemas/contracts/scanner.d.ts +112 -0
- package/dist/schemas/contracts/scanner.d.ts.map +1 -0
- package/dist/schemas/contracts/scanner.js +40 -0
- package/dist/schemas/contracts/scanner.js.map +1 -0
- package/dist/schemas/contracts/widget.d.ts +19 -0
- package/dist/schemas/contracts/widget.d.ts.map +1 -0
- package/dist/schemas/contracts/widget.js +10 -0
- package/dist/schemas/contracts/widget.js.map +1 -0
- package/dist/schemas/encryption.d.ts +25 -0
- package/dist/schemas/encryption.d.ts.map +1 -0
- package/dist/schemas/encryption.js +35 -0
- package/dist/schemas/encryption.js.map +1 -0
- package/dist/schemas/index.d.ts +6 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +6 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/policy.d.ts +2 -0
- package/dist/schemas/policy.d.ts.map +1 -0
- package/dist/schemas/policy.js +2 -0
- package/dist/schemas/policy.js.map +1 -0
- package/dist/schemas/redactor.d.ts +2 -0
- package/dist/schemas/redactor.d.ts.map +1 -0
- package/dist/schemas/redactor.js +2 -0
- package/dist/schemas/redactor.js.map +1 -0
- package/dist/schemas/report-event.d.ts +29 -0
- package/dist/schemas/report-event.d.ts.map +1 -0
- package/dist/schemas/report-event.js +19 -0
- package/dist/schemas/report-event.js.map +1 -0
- package/dist/schemas/scanner.d.ts +2 -0
- package/dist/schemas/scanner.d.ts.map +1 -0
- package/dist/schemas/scanner.js +2 -0
- package/dist/schemas/scanner.js.map +1 -0
- package/dist/security-client/index.d.ts +3 -0
- package/dist/security-client/index.d.ts.map +1 -0
- package/dist/security-client/index.js +2 -0
- package/dist/security-client/index.js.map +1 -0
- package/dist/security-client/security-client.d.ts +34 -0
- package/dist/security-client/security-client.d.ts.map +1 -0
- package/dist/security-client/security-client.js +54 -0
- package/dist/security-client/security-client.js.map +1 -0
- package/dist/security.consumer.plugin.d.ts +3 -0
- package/dist/security.consumer.plugin.d.ts.map +1 -0
- package/dist/security.consumer.plugin.js +28 -0
- package/dist/security.consumer.plugin.js.map +1 -0
- package/dist/security.plugin.d.ts +16 -0
- package/dist/security.plugin.d.ts.map +1 -0
- package/dist/security.plugin.js +78 -0
- package/dist/security.plugin.js.map +1 -0
- package/dist/svelte/index.d.ts +3 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +2 -0
- package/dist/svelte/security-svelte.plugin.d.ts +5 -0
- package/dist/svelte/security-svelte.plugin.d.ts.map +1 -0
- package/dist/svelte/security-svelte.plugin.js +49 -0
- package/dist/svelte/styles.css +8 -0
- package/dist/svelte/tool-widgets/SecurityToolCard.svelte +140 -0
- package/dist/svelte/tool-widgets/SecurityToolCard.svelte.d.ts +5 -0
- package/dist/svelte/tool-widgets/SecurityToolCard.svelte.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/index.d.ts +2 -0
- package/dist/svelte/tool-widgets/index.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/index.js +6 -0
- package/dist/tools/check-policy/check-policy.descriptor.d.ts +37 -0
- package/dist/tools/check-policy/check-policy.descriptor.d.ts.map +1 -0
- package/dist/tools/check-policy/check-policy.descriptor.js +21 -0
- package/dist/tools/check-policy/check-policy.descriptor.js.map +1 -0
- package/dist/tools/check-policy/check-policy.impl.consumer.d.ts +7 -0
- package/dist/tools/check-policy/check-policy.impl.consumer.d.ts.map +1 -0
- package/dist/tools/check-policy/check-policy.impl.consumer.js +21 -0
- package/dist/tools/check-policy/check-policy.impl.consumer.js.map +1 -0
- package/dist/tools/check-policy/index.d.ts +3 -0
- package/dist/tools/check-policy/index.d.ts.map +1 -0
- package/dist/tools/check-policy/index.js +2 -0
- package/dist/tools/check-policy/index.js.map +1 -0
- package/dist/tools/check-policy/schemas.d.ts +23 -0
- package/dist/tools/check-policy/schemas.d.ts.map +1 -0
- package/dist/tools/check-policy/schemas.js +13 -0
- package/dist/tools/check-policy/schemas.js.map +1 -0
- package/dist/tools/index.d.ts +10 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +6 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/redact-output/index.d.ts +3 -0
- package/dist/tools/redact-output/index.d.ts.map +1 -0
- package/dist/tools/redact-output/index.js +2 -0
- package/dist/tools/redact-output/index.js.map +1 -0
- package/dist/tools/redact-output/redact-output.descriptor.d.ts +42 -0
- package/dist/tools/redact-output/redact-output.descriptor.d.ts.map +1 -0
- package/dist/tools/redact-output/redact-output.descriptor.js +21 -0
- package/dist/tools/redact-output/redact-output.descriptor.js.map +1 -0
- package/dist/tools/redact-output/redact-output.impl.consumer.d.ts +7 -0
- package/dist/tools/redact-output/redact-output.impl.consumer.d.ts.map +1 -0
- package/dist/tools/redact-output/redact-output.impl.consumer.js +18 -0
- package/dist/tools/redact-output/redact-output.impl.consumer.js.map +1 -0
- package/dist/tools/redact-output/schemas.d.ts +28 -0
- package/dist/tools/redact-output/schemas.d.ts.map +1 -0
- package/dist/tools/redact-output/schemas.js +13 -0
- package/dist/tools/redact-output/schemas.js.map +1 -0
- package/dist/tools/report-event/index.d.ts +3 -0
- package/dist/tools/report-event/index.d.ts.map +1 -0
- package/dist/tools/report-event/index.js +2 -0
- package/dist/tools/report-event/index.js.map +1 -0
- package/dist/tools/report-event/report-event.descriptor.d.ts +43 -0
- package/dist/tools/report-event/report-event.descriptor.d.ts.map +1 -0
- package/dist/tools/report-event/report-event.descriptor.js +21 -0
- package/dist/tools/report-event/report-event.descriptor.js.map +1 -0
- package/dist/tools/report-event/report-event.impl.consumer.d.ts +24 -0
- package/dist/tools/report-event/report-event.impl.consumer.d.ts.map +1 -0
- package/dist/tools/report-event/report-event.impl.consumer.js +61 -0
- package/dist/tools/report-event/report-event.impl.consumer.js.map +1 -0
- package/dist/tools/report-event/schemas.d.ts +2 -0
- package/dist/tools/report-event/schemas.d.ts.map +1 -0
- package/dist/tools/report-event/schemas.js +3 -0
- package/dist/tools/report-event/schemas.js.map +1 -0
- package/dist/tools/scan-input/index.d.ts +3 -0
- package/dist/tools/scan-input/index.d.ts.map +1 -0
- package/dist/tools/scan-input/index.js +2 -0
- package/dist/tools/scan-input/index.js.map +1 -0
- package/dist/tools/scan-input/scan-input.descriptor.d.ts +49 -0
- package/dist/tools/scan-input/scan-input.descriptor.d.ts.map +1 -0
- package/dist/tools/scan-input/scan-input.descriptor.js +21 -0
- package/dist/tools/scan-input/scan-input.descriptor.js.map +1 -0
- package/dist/tools/scan-input/scan-input.impl.consumer.d.ts +7 -0
- package/dist/tools/scan-input/scan-input.impl.consumer.d.ts.map +1 -0
- package/dist/tools/scan-input/scan-input.impl.consumer.js +22 -0
- package/dist/tools/scan-input/scan-input.impl.consumer.js.map +1 -0
- package/dist/tools/scan-input/schemas.d.ts +36 -0
- package/dist/tools/scan-input/schemas.d.ts.map +1 -0
- package/dist/tools/scan-input/schemas.js +15 -0
- package/dist/tools/scan-input/schemas.js.map +1 -0
- package/dist/tools/security-tool-card.d.ts +13 -0
- package/dist/tools/security-tool-card.d.ts.map +1 -0
- package/dist/tools/security-tool-card.js +171 -0
- package/dist/tools/security-tool-card.js.map +1 -0
- package/dist/tools/security.docs.descriptor.d.ts +17 -0
- package/dist/tools/security.docs.descriptor.d.ts.map +1 -0
- package/dist/tools/security.docs.descriptor.js +49 -0
- package/dist/tools/security.docs.descriptor.js.map +1 -0
- package/dist/tui/index.d.ts +2 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +2 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/security-tui.plugin.d.ts +3 -0
- package/dist/tui/security-tui.plugin.d.ts.map +1 -0
- package/dist/tui/security-tui.plugin.js +31 -0
- package/dist/tui/security-tui.plugin.js.map +1 -0
- package/dist/tui/tool-widgets/SecurityToolWidget.impl.consumer.d.ts +5 -0
- package/dist/tui/tool-widgets/SecurityToolWidget.impl.consumer.d.ts.map +1 -0
- package/dist/tui/tool-widgets/SecurityToolWidget.impl.consumer.js +37 -0
- package/dist/tui/tool-widgets/SecurityToolWidget.impl.consumer.js.map +1 -0
- package/docs/host-boundary.md +186 -0
- package/docs/scanner-work.md +29 -0
- package/package.json +245 -4
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import * as z from 'zod/v4';
|
|
2
|
+
import { PolicyOutcomeSchema } from "./policy.js";
|
|
3
|
+
export const SECURITY_TOOL_IDS = [
|
|
4
|
+
'security.check-policy',
|
|
5
|
+
'security.redact-output',
|
|
6
|
+
'security.report-event',
|
|
7
|
+
'security.scan-input',
|
|
8
|
+
];
|
|
9
|
+
export const SecurityToolIdSchema = z.enum(SECURITY_TOOL_IDS);
|
|
10
|
+
export const SecurityToolCardToneSchema = z.enum(['default', 'success', 'danger', 'warning', 'muted']);
|
|
11
|
+
export const SecurityToolThreatSchema = z.object({ severity: z.string(), kind: z.string(), description: z.string() });
|
|
12
|
+
export const SecurityToolCardRowSchema = z.object({ label: z.string(), value: z.string(), tone: SecurityToolCardToneSchema });
|
|
13
|
+
export const SecurityToolCardModelSchema = z.object({
|
|
14
|
+
toolId: z.string(), title: z.string(), icon: z.string(), policyName: z.string().nullable(),
|
|
15
|
+
decision: PolicyOutcomeSchema.nullable(), decisionLabel: z.string().nullable(),
|
|
16
|
+
eventType: z.string().nullable(), recorded: z.boolean().nullable(), eventId: z.string().nullable(),
|
|
17
|
+
actor: z.string().nullable(), resource: z.string().nullable(), reason: z.string().nullable(),
|
|
18
|
+
error: z.string().nullable(), available: z.boolean().nullable(), availabilityLabel: z.string().nullable(),
|
|
19
|
+
threats: z.array(SecurityToolThreatSchema), matchCount: z.number().nullable(), redactedPreview: z.string().nullable(), defaultOpen: z.boolean()
|
|
20
|
+
});
|
|
21
|
+
const NonBlank = z.string().refine((s) => s.trim().length > 0);
|
|
22
|
+
export const StringField = NonBlank.optional().catch(undefined);
|
|
23
|
+
const DecisionField = z.enum(['allow', 'deny', 'review']).optional().catch(undefined);
|
|
24
|
+
const BooleanField = z.boolean().optional().catch(undefined);
|
|
25
|
+
const MatchesField = z.array(z.unknown()).optional().catch(undefined);
|
|
26
|
+
const SingleThreatSchema = z.object({
|
|
27
|
+
kind: NonBlank,
|
|
28
|
+
severity: NonBlank.optional().catch(undefined),
|
|
29
|
+
description: NonBlank.optional().catch(undefined),
|
|
30
|
+
}).passthrough();
|
|
31
|
+
const ThreatsField = z.array(z.unknown()).optional().catch(undefined).transform((raw) => {
|
|
32
|
+
if (!Array.isArray(raw))
|
|
33
|
+
return [];
|
|
34
|
+
const threats = [];
|
|
35
|
+
for (const entry of raw) {
|
|
36
|
+
const parsed = SingleThreatSchema.safeParse(entry);
|
|
37
|
+
if (parsed.success) {
|
|
38
|
+
const item = parsed.data;
|
|
39
|
+
threats.push({
|
|
40
|
+
severity: item.severity ?? 'low',
|
|
41
|
+
kind: item.kind,
|
|
42
|
+
description: item.description ?? item.kind,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return threats;
|
|
47
|
+
});
|
|
48
|
+
const CardEventSchema = z.object({
|
|
49
|
+
id: StringField,
|
|
50
|
+
action: StringField,
|
|
51
|
+
actor: StringField,
|
|
52
|
+
resource: StringField,
|
|
53
|
+
outcome: DecisionField,
|
|
54
|
+
}).passthrough().optional().catch(undefined);
|
|
55
|
+
export const CardArgsSchema = z.object({
|
|
56
|
+
policyId: StringField,
|
|
57
|
+
event: CardEventSchema,
|
|
58
|
+
}).passthrough().optional().catch(undefined);
|
|
59
|
+
export const CardOutputSchema = z.object({
|
|
60
|
+
policyId: StringField,
|
|
61
|
+
outcome: DecisionField,
|
|
62
|
+
recorded: BooleanField,
|
|
63
|
+
eventId: StringField,
|
|
64
|
+
reason: StringField,
|
|
65
|
+
error: StringField,
|
|
66
|
+
engineAvailable: BooleanField,
|
|
67
|
+
scannerAvailable: BooleanField,
|
|
68
|
+
redactorAvailable: BooleanField,
|
|
69
|
+
threats: ThreatsField,
|
|
70
|
+
matches: MatchesField,
|
|
71
|
+
redacted: StringField,
|
|
72
|
+
}).passthrough().optional().catch(undefined);
|
|
73
|
+
//# sourceMappingURL=card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.js","sourceRoot":"","sources":["../../../src/schemas/contracts/card.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import * as z from 'zod/v4';
|
|
2
|
+
export declare const IOCEntrySchema: z.ZodObject<{
|
|
3
|
+
packageName: z.ZodString;
|
|
4
|
+
versionRange: z.ZodString;
|
|
5
|
+
cve: z.ZodOptional<z.ZodString>;
|
|
6
|
+
severity: z.ZodEnum<{
|
|
7
|
+
low: "low";
|
|
8
|
+
medium: "medium";
|
|
9
|
+
high: "high";
|
|
10
|
+
critical: "critical";
|
|
11
|
+
}>;
|
|
12
|
+
source: z.ZodString;
|
|
13
|
+
reportedAt: z.ZodString;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
export type IOCEntry = z.infer<typeof IOCEntrySchema>;
|
|
16
|
+
export declare const DepScanReportSchema: z.ZodObject<{
|
|
17
|
+
verdict: z.ZodEnum<{
|
|
18
|
+
unknown: "unknown";
|
|
19
|
+
clean: "clean";
|
|
20
|
+
compromised: "compromised";
|
|
21
|
+
}>;
|
|
22
|
+
findings: z.ZodArray<z.ZodObject<{
|
|
23
|
+
packageName: z.ZodString;
|
|
24
|
+
versionRange: z.ZodString;
|
|
25
|
+
cve: z.ZodOptional<z.ZodString>;
|
|
26
|
+
severity: z.ZodEnum<{
|
|
27
|
+
low: "low";
|
|
28
|
+
medium: "medium";
|
|
29
|
+
high: "high";
|
|
30
|
+
critical: "critical";
|
|
31
|
+
}>;
|
|
32
|
+
source: z.ZodString;
|
|
33
|
+
reportedAt: z.ZodString;
|
|
34
|
+
}, z.core.$strip>>;
|
|
35
|
+
scannedAt: z.ZodString;
|
|
36
|
+
packagesChecked: z.ZodNumber;
|
|
37
|
+
scannerAvailable: z.ZodBoolean;
|
|
38
|
+
}, z.core.$strip>;
|
|
39
|
+
export type DepScanReport = z.infer<typeof DepScanReportSchema>;
|
|
40
|
+
export declare const DepScannerDescriptorSchema: z.ZodObject<{
|
|
41
|
+
id: z.ZodString;
|
|
42
|
+
kind: z.ZodLiteral<"security/dep-scanner">;
|
|
43
|
+
name: z.ZodString;
|
|
44
|
+
description: z.ZodOptional<z.ZodString>;
|
|
45
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
46
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
47
|
+
hardware: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
48
|
+
consumer: "consumer";
|
|
49
|
+
cloud: "cloud";
|
|
50
|
+
}>>>;
|
|
51
|
+
}, z.core.$strip>;
|
|
52
|
+
export type DepScannerDescriptor = z.output<typeof DepScannerDescriptorSchema>;
|
|
53
|
+
export declare const DepScannerServiceSchema: z.ZodObject<{
|
|
54
|
+
descriptor: z.ZodObject<{
|
|
55
|
+
id: z.ZodString;
|
|
56
|
+
kind: z.ZodLiteral<"security/dep-scanner">;
|
|
57
|
+
name: z.ZodString;
|
|
58
|
+
description: z.ZodOptional<z.ZodString>;
|
|
59
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
60
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
61
|
+
hardware: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
62
|
+
consumer: "consumer";
|
|
63
|
+
cloud: "cloud";
|
|
64
|
+
}>>>;
|
|
65
|
+
}, z.core.$strip>;
|
|
66
|
+
scan: z.ZodFunction<z.ZodTuple<readonly [z.ZodString], null>, z.ZodPromise<z.ZodObject<{
|
|
67
|
+
verdict: z.ZodEnum<{
|
|
68
|
+
unknown: "unknown";
|
|
69
|
+
clean: "clean";
|
|
70
|
+
compromised: "compromised";
|
|
71
|
+
}>;
|
|
72
|
+
findings: z.ZodArray<z.ZodObject<{
|
|
73
|
+
packageName: z.ZodString;
|
|
74
|
+
versionRange: z.ZodString;
|
|
75
|
+
cve: z.ZodOptional<z.ZodString>;
|
|
76
|
+
severity: z.ZodEnum<{
|
|
77
|
+
low: "low";
|
|
78
|
+
medium: "medium";
|
|
79
|
+
high: "high";
|
|
80
|
+
critical: "critical";
|
|
81
|
+
}>;
|
|
82
|
+
source: z.ZodString;
|
|
83
|
+
reportedAt: z.ZodString;
|
|
84
|
+
}, z.core.$strip>>;
|
|
85
|
+
scannedAt: z.ZodString;
|
|
86
|
+
packagesChecked: z.ZodNumber;
|
|
87
|
+
scannerAvailable: z.ZodBoolean;
|
|
88
|
+
}, z.core.$strip>>>;
|
|
89
|
+
}, z.core.$strip>;
|
|
90
|
+
export type DepScannerService = z.infer<typeof DepScannerServiceSchema>;
|
|
91
|
+
//# sourceMappingURL=dep-scanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dep-scanner.d.ts","sourceRoot":"","sources":["../../../src/schemas/contracts/dep-scanner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,eAAO,MAAM,cAAc;;;;;;;;;;;;iBAOzB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;iBAM9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,eAAO,MAAM,0BAA0B;;;;;;;;;;;iBAQrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC/E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA0I,CAAC;AAC/K,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as z from 'zod/v4';
|
|
2
|
+
export const IOCEntrySchema = z.object({
|
|
3
|
+
packageName: z.string(),
|
|
4
|
+
versionRange: z.string(),
|
|
5
|
+
cve: z.string().optional(),
|
|
6
|
+
severity: z.enum(['low', 'medium', 'high', 'critical']),
|
|
7
|
+
source: z.string(),
|
|
8
|
+
reportedAt: z.string().datetime(),
|
|
9
|
+
});
|
|
10
|
+
export const DepScanReportSchema = z.object({
|
|
11
|
+
verdict: z.enum(['clean', 'compromised', 'unknown']),
|
|
12
|
+
findings: z.array(IOCEntrySchema),
|
|
13
|
+
scannedAt: z.string().datetime(),
|
|
14
|
+
packagesChecked: z.number(),
|
|
15
|
+
scannerAvailable: z.boolean().describe('Whether a real scanner is registered (if false, verdict is from the default stub)'),
|
|
16
|
+
});
|
|
17
|
+
export const DepScannerDescriptorSchema = z.object({
|
|
18
|
+
id: z.string(),
|
|
19
|
+
kind: z.literal('security/dep-scanner'),
|
|
20
|
+
name: z.string(),
|
|
21
|
+
description: z.string().optional(),
|
|
22
|
+
enabled: z.boolean().optional(),
|
|
23
|
+
tags: z.array(z.string()).optional(),
|
|
24
|
+
hardware: z.array(z.enum(['consumer', 'cloud'])).optional(),
|
|
25
|
+
});
|
|
26
|
+
export const DepScannerServiceSchema = z.object({ descriptor: DepScannerDescriptorSchema, scan: z.function({ input: [z.string()], output: z.promise(DepScanReportSchema) }) });
|
|
27
|
+
//# sourceMappingURL=dep-scanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dep-scanner.js","sourceRoot":"","sources":["../../../src/schemas/contracts/dep-scanner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,mFAAmF,CAAC;CAC9H,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC9D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,0BAA0B,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import * as z from 'zod/v4';
|
|
2
|
+
export declare const FreshnessVerdictSchema: z.ZodObject<{
|
|
3
|
+
packageName: z.ZodString;
|
|
4
|
+
version: z.ZodString;
|
|
5
|
+
publishedAt: z.ZodString;
|
|
6
|
+
ageHours: z.ZodNumber;
|
|
7
|
+
verdict: z.ZodEnum<{
|
|
8
|
+
unknown: "unknown";
|
|
9
|
+
fresh: "fresh";
|
|
10
|
+
stale: "stale";
|
|
11
|
+
}>;
|
|
12
|
+
policy: z.ZodObject<{
|
|
13
|
+
minAgeHours: z.ZodNumber;
|
|
14
|
+
maxAgeDays: z.ZodOptional<z.ZodNumber>;
|
|
15
|
+
}, z.core.$strip>;
|
|
16
|
+
}, z.core.$strip>;
|
|
17
|
+
export type FreshnessVerdict = z.infer<typeof FreshnessVerdictSchema>;
|
|
18
|
+
export declare const FreshnessPolicyDescriptorSchema: z.ZodObject<{
|
|
19
|
+
id: z.ZodString;
|
|
20
|
+
kind: z.ZodLiteral<"security/freshness-policy">;
|
|
21
|
+
name: z.ZodString;
|
|
22
|
+
description: z.ZodOptional<z.ZodString>;
|
|
23
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
24
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
25
|
+
hardware: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
26
|
+
consumer: "consumer";
|
|
27
|
+
cloud: "cloud";
|
|
28
|
+
}>>>;
|
|
29
|
+
minAgeHours: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
30
|
+
maxAgeDays: z.ZodOptional<z.ZodNumber>;
|
|
31
|
+
allowlist: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
32
|
+
breakglass: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
33
|
+
}, z.core.$strip>;
|
|
34
|
+
export type FreshnessPolicyDescriptor = z.output<typeof FreshnessPolicyDescriptorSchema>;
|
|
35
|
+
export declare const FreshnessInputSchema: z.ZodObject<{
|
|
36
|
+
name: z.ZodString;
|
|
37
|
+
version: z.ZodString;
|
|
38
|
+
publishedAt: z.ZodString;
|
|
39
|
+
}, z.core.$strip>;
|
|
40
|
+
export declare const FreshnessInputsSchema: z.ZodArray<z.ZodObject<{
|
|
41
|
+
name: z.ZodString;
|
|
42
|
+
version: z.ZodString;
|
|
43
|
+
publishedAt: z.ZodString;
|
|
44
|
+
}, z.core.$strip>>;
|
|
45
|
+
export type FreshnessInput = z.infer<typeof FreshnessInputSchema>;
|
|
46
|
+
export declare const FreshnessPolicyServiceSchema: z.ZodObject<{
|
|
47
|
+
descriptor: z.ZodObject<{
|
|
48
|
+
id: z.ZodString;
|
|
49
|
+
kind: z.ZodLiteral<"security/freshness-policy">;
|
|
50
|
+
name: z.ZodString;
|
|
51
|
+
description: z.ZodOptional<z.ZodString>;
|
|
52
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
53
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
54
|
+
hardware: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
55
|
+
consumer: "consumer";
|
|
56
|
+
cloud: "cloud";
|
|
57
|
+
}>>>;
|
|
58
|
+
minAgeHours: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
59
|
+
maxAgeDays: z.ZodOptional<z.ZodNumber>;
|
|
60
|
+
allowlist: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
61
|
+
breakglass: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
62
|
+
}, z.core.$strip>;
|
|
63
|
+
evaluate: z.ZodFunction<z.ZodTuple<readonly [z.ZodString, z.ZodString, z.ZodString], null>, z.ZodPromise<z.ZodObject<{
|
|
64
|
+
packageName: z.ZodString;
|
|
65
|
+
version: z.ZodString;
|
|
66
|
+
publishedAt: z.ZodString;
|
|
67
|
+
ageHours: z.ZodNumber;
|
|
68
|
+
verdict: z.ZodEnum<{
|
|
69
|
+
unknown: "unknown";
|
|
70
|
+
fresh: "fresh";
|
|
71
|
+
stale: "stale";
|
|
72
|
+
}>;
|
|
73
|
+
policy: z.ZodObject<{
|
|
74
|
+
minAgeHours: z.ZodNumber;
|
|
75
|
+
maxAgeDays: z.ZodOptional<z.ZodNumber>;
|
|
76
|
+
}, z.core.$strip>;
|
|
77
|
+
}, z.core.$strip>>>;
|
|
78
|
+
evaluateMany: z.ZodFunction<z.ZodTuple<readonly [z.ZodArray<z.ZodObject<{
|
|
79
|
+
name: z.ZodString;
|
|
80
|
+
version: z.ZodString;
|
|
81
|
+
publishedAt: z.ZodString;
|
|
82
|
+
}, z.core.$strip>>], null>, z.ZodPromise<z.ZodArray<z.ZodObject<{
|
|
83
|
+
packageName: z.ZodString;
|
|
84
|
+
version: z.ZodString;
|
|
85
|
+
publishedAt: z.ZodString;
|
|
86
|
+
ageHours: z.ZodNumber;
|
|
87
|
+
verdict: z.ZodEnum<{
|
|
88
|
+
unknown: "unknown";
|
|
89
|
+
fresh: "fresh";
|
|
90
|
+
stale: "stale";
|
|
91
|
+
}>;
|
|
92
|
+
policy: z.ZodObject<{
|
|
93
|
+
minAgeHours: z.ZodNumber;
|
|
94
|
+
maxAgeDays: z.ZodOptional<z.ZodNumber>;
|
|
95
|
+
}, z.core.$strip>;
|
|
96
|
+
}, z.core.$strip>>>>;
|
|
97
|
+
}, z.core.$strip>;
|
|
98
|
+
export type FreshnessPolicyService = z.infer<typeof FreshnessPolicyServiceSchema>;
|
|
99
|
+
//# sourceMappingURL=freshness-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"freshness-policy.d.ts","sourceRoot":"","sources":["../../../src/schemas/contracts/freshness-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;iBAUjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;iBAY1C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACzF,eAAO,MAAM,oBAAoB;;;;iBAE/B,CAAC;AACH,eAAO,MAAM,qBAAqB;;;;kBAAgC,CAAC;AACnE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAyW,CAAC;AACnZ,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as z from 'zod/v4';
|
|
2
|
+
export const FreshnessVerdictSchema = z.object({
|
|
3
|
+
packageName: z.string(),
|
|
4
|
+
version: z.string(),
|
|
5
|
+
publishedAt: z.string().datetime(),
|
|
6
|
+
ageHours: z.number(),
|
|
7
|
+
verdict: z.enum(['fresh', 'stale', 'unknown']),
|
|
8
|
+
policy: z.object({
|
|
9
|
+
minAgeHours: z.number(),
|
|
10
|
+
maxAgeDays: z.number().optional(),
|
|
11
|
+
}),
|
|
12
|
+
});
|
|
13
|
+
export const FreshnessPolicyDescriptorSchema = z.object({
|
|
14
|
+
id: z.string(),
|
|
15
|
+
kind: z.literal('security/freshness-policy'),
|
|
16
|
+
name: z.string(),
|
|
17
|
+
description: z.string().optional(),
|
|
18
|
+
enabled: z.boolean().optional(),
|
|
19
|
+
tags: z.array(z.string()).optional(),
|
|
20
|
+
hardware: z.array(z.enum(['consumer', 'cloud'])).optional(),
|
|
21
|
+
minAgeHours: z.number().optional().default(48),
|
|
22
|
+
maxAgeDays: z.number().optional(),
|
|
23
|
+
allowlist: z.array(z.string()).optional(),
|
|
24
|
+
breakglass: z.boolean().optional().default(false),
|
|
25
|
+
});
|
|
26
|
+
export const FreshnessInputSchema = z.object({
|
|
27
|
+
name: z.string(), version: z.string(), publishedAt: z.string().datetime(),
|
|
28
|
+
});
|
|
29
|
+
export const FreshnessInputsSchema = z.array(FreshnessInputSchema);
|
|
30
|
+
export const FreshnessPolicyServiceSchema = z.object({ descriptor: FreshnessPolicyDescriptorSchema, evaluate: z.function({ input: [FreshnessInputSchema.shape.name, FreshnessInputSchema.shape.version, FreshnessInputSchema.shape.publishedAt], output: z.promise(FreshnessVerdictSchema) }), evaluateMany: z.function({ input: [FreshnessInputsSchema], output: z.promise(z.array(FreshnessVerdictSchema)) }) });
|
|
31
|
+
//# sourceMappingURL=freshness-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"freshness-policy.js","sourceRoot":"","sources":["../../../src/schemas/contracts/freshness-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACpC,CAAC;CACL,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACpD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5E,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;AAEnE,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,+BAA+B,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import * as z from 'zod/v4';
|
|
2
|
+
export declare const IOCFeedEntrySchema: z.ZodObject<{
|
|
3
|
+
packageName: z.ZodString;
|
|
4
|
+
versionRange: z.ZodString;
|
|
5
|
+
cve: z.ZodOptional<z.ZodString>;
|
|
6
|
+
severity: z.ZodEnum<{
|
|
7
|
+
low: "low";
|
|
8
|
+
medium: "medium";
|
|
9
|
+
high: "high";
|
|
10
|
+
critical: "critical";
|
|
11
|
+
}>;
|
|
12
|
+
reportedAt: z.ZodString;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
export type IOCFeedEntry = z.infer<typeof IOCFeedEntrySchema>;
|
|
15
|
+
/** Successful provider synchronization only; descriptor-only defaults refuse with UNAVAILABLE/ioc-feed-unavailable. */
|
|
16
|
+
export declare const IOCFeedSyncStatusSchema: z.ZodObject<{
|
|
17
|
+
lastSuccessfulSyncAt: z.ZodString;
|
|
18
|
+
maxStaleness: z.ZodDefault<z.ZodNumber>;
|
|
19
|
+
entryCount: z.ZodNumber;
|
|
20
|
+
}, z.core.$strip>;
|
|
21
|
+
export type IOCFeedSyncStatus = z.infer<typeof IOCFeedSyncStatusSchema>;
|
|
22
|
+
export declare const IOCFeedDescriptorSchema: z.ZodObject<{
|
|
23
|
+
id: z.ZodString;
|
|
24
|
+
kind: z.ZodLiteral<"security/ioc-feed">;
|
|
25
|
+
name: z.ZodString;
|
|
26
|
+
description: z.ZodOptional<z.ZodString>;
|
|
27
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
28
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
29
|
+
hardware: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
30
|
+
consumer: "consumer";
|
|
31
|
+
cloud: "cloud";
|
|
32
|
+
}>>>;
|
|
33
|
+
maxStaleness: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
34
|
+
trustTier: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
35
|
+
low: "low";
|
|
36
|
+
medium: "medium";
|
|
37
|
+
high: "high";
|
|
38
|
+
}>>>;
|
|
39
|
+
}, z.core.$strip>;
|
|
40
|
+
export type IOCFeedDescriptor = z.output<typeof IOCFeedDescriptorSchema>;
|
|
41
|
+
/** All three methods require an implementation; an empty query is authoritative only from a provider. */
|
|
42
|
+
export declare const IOCFeedServiceSchema: z.ZodObject<{
|
|
43
|
+
descriptor: z.ZodObject<{
|
|
44
|
+
id: z.ZodString;
|
|
45
|
+
kind: z.ZodLiteral<"security/ioc-feed">;
|
|
46
|
+
name: z.ZodString;
|
|
47
|
+
description: z.ZodOptional<z.ZodString>;
|
|
48
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
49
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
50
|
+
hardware: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
51
|
+
consumer: "consumer";
|
|
52
|
+
cloud: "cloud";
|
|
53
|
+
}>>>;
|
|
54
|
+
maxStaleness: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
55
|
+
trustTier: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
56
|
+
low: "low";
|
|
57
|
+
medium: "medium";
|
|
58
|
+
high: "high";
|
|
59
|
+
}>>>;
|
|
60
|
+
}, z.core.$strip>;
|
|
61
|
+
sync: z.ZodFunction<z.ZodTuple<readonly [], null>, z.ZodPromise<z.ZodObject<{
|
|
62
|
+
lastSuccessfulSyncAt: z.ZodString;
|
|
63
|
+
maxStaleness: z.ZodDefault<z.ZodNumber>;
|
|
64
|
+
entryCount: z.ZodNumber;
|
|
65
|
+
}, z.core.$strip>>>;
|
|
66
|
+
query: z.ZodFunction<z.ZodTuple<readonly [z.ZodString, z.ZodString], null>, z.ZodPromise<z.ZodArray<z.ZodObject<{
|
|
67
|
+
packageName: z.ZodString;
|
|
68
|
+
versionRange: z.ZodString;
|
|
69
|
+
cve: z.ZodOptional<z.ZodString>;
|
|
70
|
+
severity: z.ZodEnum<{
|
|
71
|
+
low: "low";
|
|
72
|
+
medium: "medium";
|
|
73
|
+
high: "high";
|
|
74
|
+
critical: "critical";
|
|
75
|
+
}>;
|
|
76
|
+
reportedAt: z.ZodString;
|
|
77
|
+
}, z.core.$strip>>>>;
|
|
78
|
+
getStatus: z.ZodFunction<z.ZodTuple<readonly [], null>, z.ZodPromise<z.ZodObject<{
|
|
79
|
+
lastSuccessfulSyncAt: z.ZodString;
|
|
80
|
+
maxStaleness: z.ZodDefault<z.ZodNumber>;
|
|
81
|
+
entryCount: z.ZodNumber;
|
|
82
|
+
}, z.core.$strip>>>;
|
|
83
|
+
}, z.core.$strip>;
|
|
84
|
+
export type IOCFeedService = z.infer<typeof IOCFeedServiceSchema>;
|
|
85
|
+
//# sourceMappingURL=ioc-feed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ioc-feed.d.ts","sourceRoot":"","sources":["../../../src/schemas/contracts/ioc-feed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,eAAO,MAAM,kBAAkB;;;;;;;;;;;iBAM7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,uHAAuH;AACvH,eAAO,MAAM,uBAAuB;;;;iBAIlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;iBAUlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACzE,yGAAyG;AACzG,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA2T,CAAC;AAC7V,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as z from 'zod/v4';
|
|
2
|
+
export const IOCFeedEntrySchema = z.object({
|
|
3
|
+
packageName: z.string(),
|
|
4
|
+
versionRange: z.string(),
|
|
5
|
+
cve: z.string().optional(),
|
|
6
|
+
severity: z.enum(['low', 'medium', 'high', 'critical']),
|
|
7
|
+
reportedAt: z.string().datetime(),
|
|
8
|
+
});
|
|
9
|
+
/** Successful provider synchronization only; descriptor-only defaults refuse with UNAVAILABLE/ioc-feed-unavailable. */
|
|
10
|
+
export const IOCFeedSyncStatusSchema = z.object({
|
|
11
|
+
lastSuccessfulSyncAt: z.string().datetime(),
|
|
12
|
+
maxStaleness: z.number().default(72),
|
|
13
|
+
entryCount: z.number(),
|
|
14
|
+
});
|
|
15
|
+
export const IOCFeedDescriptorSchema = z.object({
|
|
16
|
+
id: z.string(),
|
|
17
|
+
kind: z.literal('security/ioc-feed'),
|
|
18
|
+
name: z.string(),
|
|
19
|
+
description: z.string().optional(),
|
|
20
|
+
enabled: z.boolean().optional(),
|
|
21
|
+
tags: z.array(z.string()).optional(),
|
|
22
|
+
hardware: z.array(z.enum(['consumer', 'cloud'])).optional(),
|
|
23
|
+
maxStaleness: z.number().optional().default(72),
|
|
24
|
+
trustTier: z.enum(['high', 'medium', 'low']).optional().default('medium'),
|
|
25
|
+
});
|
|
26
|
+
/** All three methods require an implementation; an empty query is authoritative only from a provider. */
|
|
27
|
+
export const IOCFeedServiceSchema = z.object({ descriptor: IOCFeedDescriptorSchema, sync: z.function({ input: [], output: z.promise(IOCFeedSyncStatusSchema) }), query: z.function({ input: [z.string(), z.string()], output: z.promise(z.array(IOCFeedEntrySchema)) }), getStatus: z.function({ input: [], output: z.promise(IOCFeedSyncStatusSchema) }) });
|
|
28
|
+
//# sourceMappingURL=ioc-feed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ioc-feed.js","sourceRoot":"","sources":["../../../src/schemas/contracts/ioc-feed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACvD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAEH,uHAAuH;AACvH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CACzB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/C,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;CAC5E,CAAC,CAAC;AAEH,yGAAyG;AACzG,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as z from 'zod/v4';
|
|
2
|
+
import type { ZodIssue } from 'zod/v4';
|
|
3
|
+
export declare const ForwardableAuthHeadersSchema: z.ZodObject<{
|
|
4
|
+
cookie: z.ZodOptional<z.ZodString>;
|
|
5
|
+
jwt: z.ZodOptional<z.ZodString>;
|
|
6
|
+
}, z.core.$strip>;
|
|
7
|
+
export type ForwardableAuthHeaders = z.infer<typeof ForwardableAuthHeadersSchema>;
|
|
8
|
+
export declare const ValidationErrorDetailValueSchema: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUndefined]>;
|
|
9
|
+
export type ValidationErrorDetailValue = z.infer<typeof ValidationErrorDetailValueSchema>;
|
|
10
|
+
export type ValidationErrorDetails = ZodIssue[] | Record<string, ValidationErrorDetailValue>;
|
|
11
|
+
//# sourceMappingURL=misc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/schemas/contracts/misc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,eAAO,MAAM,4BAA4B;;;iBAA0E,CAAC;AACpH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,eAAO,MAAM,gCAAgC,0FAA0E,CAAC;AACxH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAC1F,MAAM,MAAM,sBAAsB,GAAG,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as z from 'zod/v4';
|
|
2
|
+
export const ForwardableAuthHeadersSchema = z.object({ cookie: z.string().optional(), jwt: z.string().optional() });
|
|
3
|
+
export const ValidationErrorDetailValueSchema = z.union([z.string(), z.number(), z.boolean(), z.null(), z.undefined()]);
|
|
4
|
+
//# sourceMappingURL=misc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/schemas/contracts/misc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAEpH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import * as z from 'zod/v4';
|
|
2
|
+
export declare const PolicyRuleSchema: z.ZodObject<{
|
|
3
|
+
pattern: z.ZodOptional<z.ZodString>;
|
|
4
|
+
action: z.ZodEnum<{
|
|
5
|
+
allow: "allow";
|
|
6
|
+
deny: "deny";
|
|
7
|
+
review: "review";
|
|
8
|
+
}>;
|
|
9
|
+
target: z.ZodEnum<{
|
|
10
|
+
metadata: "metadata";
|
|
11
|
+
content: "content";
|
|
12
|
+
header: "header";
|
|
13
|
+
}>;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
export type PolicyRule = z.infer<typeof PolicyRuleSchema>;
|
|
16
|
+
export declare const SecurityPolicyDescriptorSchema: z.ZodObject<{
|
|
17
|
+
id: z.ZodString;
|
|
18
|
+
kind: z.ZodLiteral<"security/policy">;
|
|
19
|
+
name: z.ZodString;
|
|
20
|
+
description: z.ZodOptional<z.ZodString>;
|
|
21
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
22
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
23
|
+
hardware: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
24
|
+
consumer: "consumer";
|
|
25
|
+
cloud: "cloud";
|
|
26
|
+
}>>>;
|
|
27
|
+
rules: z.ZodArray<z.ZodObject<{
|
|
28
|
+
pattern: z.ZodOptional<z.ZodString>;
|
|
29
|
+
action: z.ZodEnum<{
|
|
30
|
+
allow: "allow";
|
|
31
|
+
deny: "deny";
|
|
32
|
+
review: "review";
|
|
33
|
+
}>;
|
|
34
|
+
target: z.ZodEnum<{
|
|
35
|
+
metadata: "metadata";
|
|
36
|
+
content: "content";
|
|
37
|
+
header: "header";
|
|
38
|
+
}>;
|
|
39
|
+
}, z.core.$strip>>;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
export type SecurityPolicyDescriptor = z.output<typeof SecurityPolicyDescriptorSchema>;
|
|
42
|
+
export declare const PolicyOutcomeSchema: z.ZodEnum<{
|
|
43
|
+
allow: "allow";
|
|
44
|
+
deny: "deny";
|
|
45
|
+
review: "review";
|
|
46
|
+
}>;
|
|
47
|
+
export type PolicyOutcome = z.infer<typeof PolicyOutcomeSchema>;
|
|
48
|
+
export declare const PolicyEvaluationContextSchema: z.ZodObject<{
|
|
49
|
+
actor: z.ZodOptional<z.ZodString>;
|
|
50
|
+
action: z.ZodOptional<z.ZodString>;
|
|
51
|
+
resource: z.ZodOptional<z.ZodString>;
|
|
52
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
53
|
+
}, z.core.$strip>;
|
|
54
|
+
export type PolicyEvaluationContext = z.infer<typeof PolicyEvaluationContextSchema>;
|
|
55
|
+
export declare const SecurityPolicyServiceSchema: z.ZodObject<{
|
|
56
|
+
descriptor: z.ZodObject<{
|
|
57
|
+
id: z.ZodString;
|
|
58
|
+
kind: z.ZodLiteral<"security/policy">;
|
|
59
|
+
name: z.ZodString;
|
|
60
|
+
description: z.ZodOptional<z.ZodString>;
|
|
61
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
62
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
63
|
+
hardware: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
64
|
+
consumer: "consumer";
|
|
65
|
+
cloud: "cloud";
|
|
66
|
+
}>>>;
|
|
67
|
+
rules: z.ZodArray<z.ZodObject<{
|
|
68
|
+
pattern: z.ZodOptional<z.ZodString>;
|
|
69
|
+
action: z.ZodEnum<{
|
|
70
|
+
allow: "allow";
|
|
71
|
+
deny: "deny";
|
|
72
|
+
review: "review";
|
|
73
|
+
}>;
|
|
74
|
+
target: z.ZodEnum<{
|
|
75
|
+
metadata: "metadata";
|
|
76
|
+
content: "content";
|
|
77
|
+
header: "header";
|
|
78
|
+
}>;
|
|
79
|
+
}, z.core.$strip>>;
|
|
80
|
+
}, z.core.$strip>;
|
|
81
|
+
evaluate: z.ZodFunction<z.ZodTuple<readonly [z.ZodObject<{
|
|
82
|
+
actor: z.ZodOptional<z.ZodString>;
|
|
83
|
+
action: z.ZodOptional<z.ZodString>;
|
|
84
|
+
resource: z.ZodOptional<z.ZodString>;
|
|
85
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
86
|
+
}, z.core.$strip>], null>, z.ZodPromise<z.ZodEnum<{
|
|
87
|
+
allow: "allow";
|
|
88
|
+
deny: "deny";
|
|
89
|
+
review: "review";
|
|
90
|
+
}>>>;
|
|
91
|
+
}, z.core.$strip>;
|
|
92
|
+
export type SecurityPolicyService = z.infer<typeof SecurityPolicyServiceSchema>;
|
|
93
|
+
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/schemas/contracts/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,eAAO,MAAM,gBAAgB;;;;;;;;;;;;iBAI3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;iBASzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACvF,eAAO,MAAM,mBAAmB;;;;EAAsC,CAAC;AACvE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,eAAO,MAAM,6BAA6B;;;;;iBAKxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAqK,CAAC;AAC9M,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as z from 'zod/v4';
|
|
2
|
+
export const PolicyRuleSchema = z.object({
|
|
3
|
+
pattern: z.string().optional(),
|
|
4
|
+
action: z.enum(['allow', 'deny', 'review']),
|
|
5
|
+
target: z.enum(['content', 'metadata', 'header']),
|
|
6
|
+
});
|
|
7
|
+
export const SecurityPolicyDescriptorSchema = z.object({
|
|
8
|
+
id: z.string(),
|
|
9
|
+
kind: z.literal('security/policy'),
|
|
10
|
+
name: z.string(),
|
|
11
|
+
description: z.string().optional(),
|
|
12
|
+
enabled: z.boolean().optional(),
|
|
13
|
+
tags: z.array(z.string()).optional(),
|
|
14
|
+
hardware: z.array(z.enum(['consumer', 'cloud'])).optional(),
|
|
15
|
+
rules: z.array(PolicyRuleSchema),
|
|
16
|
+
});
|
|
17
|
+
export const PolicyOutcomeSchema = z.enum(['allow', 'deny', 'review']);
|
|
18
|
+
export const PolicyEvaluationContextSchema = z.object({
|
|
19
|
+
actor: z.string().optional(),
|
|
20
|
+
action: z.string().optional(),
|
|
21
|
+
resource: z.string().optional(),
|
|
22
|
+
metadata: z.record(z.string(), z.unknown()).optional(),
|
|
23
|
+
});
|
|
24
|
+
export const SecurityPolicyServiceSchema = z.object({ descriptor: SecurityPolicyDescriptorSchema, evaluate: z.function({ input: [PolicyEvaluationContextSchema], output: z.promise(PolicyOutcomeSchema) }) });
|
|
25
|
+
//# sourceMappingURL=policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../src/schemas/contracts/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;CACpD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3D,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;CACnC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACzD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,6BAA6B,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC"}
|