reporting-api
Version:
Roll your own Reporting API collector. Supports CSP, COEP, COOP, Document-Policy, Crash reports, Deprecation reports, Intervention reports and Network Error Logging
758 lines (757 loc) • 28.2 kB
TypeScript
import { z } from 'zod';
export declare const ContentSecurityPolicyReport: z.ZodObject<{
blockedURL: z.ZodString;
columnNumber: z.ZodOptional<z.ZodNumber>;
disposition: z.ZodEnum<["enforce", "report"]>;
documentURL: z.ZodString;
effectiveDirective: z.ZodString;
lineNumber: z.ZodOptional<z.ZodNumber>;
originalPolicy: z.ZodString;
referrer: z.ZodOptional<z.ZodString>;
sample: z.ZodOptional<z.ZodString>;
sourceFile: z.ZodOptional<z.ZodString>;
statusCode: z.ZodOptional<z.ZodNumber>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
blockedURL: z.ZodString;
columnNumber: z.ZodOptional<z.ZodNumber>;
disposition: z.ZodEnum<["enforce", "report"]>;
documentURL: z.ZodString;
effectiveDirective: z.ZodString;
lineNumber: z.ZodOptional<z.ZodNumber>;
originalPolicy: z.ZodString;
referrer: z.ZodOptional<z.ZodString>;
sample: z.ZodOptional<z.ZodString>;
sourceFile: z.ZodOptional<z.ZodString>;
statusCode: z.ZodOptional<z.ZodNumber>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
blockedURL: z.ZodString;
columnNumber: z.ZodOptional<z.ZodNumber>;
disposition: z.ZodEnum<["enforce", "report"]>;
documentURL: z.ZodString;
effectiveDirective: z.ZodString;
lineNumber: z.ZodOptional<z.ZodNumber>;
originalPolicy: z.ZodString;
referrer: z.ZodOptional<z.ZodString>;
sample: z.ZodOptional<z.ZodString>;
sourceFile: z.ZodOptional<z.ZodString>;
statusCode: z.ZodOptional<z.ZodNumber>;
}, z.ZodTypeAny, "passthrough">>;
export type ContentSecurityPolicyReport = z.infer<typeof ContentSecurityPolicyReport>;
export declare const CrossOriginOpenerPolicyReport: z.ZodObject<{
disposition: z.ZodEnum<["reporting", "enforce"]>;
effectivePolicy: z.ZodEnum<["unsafe-none", "same-origin", "same-origin-allow-popups", "same-origin-plus-coep"]>;
type: z.ZodEnum<["navigate-to-document", "navigate-from-document", "navigation-from-response", "navigation-to-response", "access-to-coop-page-from-opener", "access-from-coop-page-to-opener", "access-from-coop-page-to-other", "access-from-coop-page-to-openee", "access-to-coop-page-from-opener", "access-to-coop-page-from-openee", "access-to-coop-page-from-other"]>;
columnNumber: z.ZodOptional<z.ZodNumber>;
initialPopupURL: z.ZodOptional<z.ZodString>;
lineNumber: z.ZodOptional<z.ZodNumber>;
openeeURL: z.ZodOptional<z.ZodString>;
property: z.ZodOptional<z.ZodString>;
sourceFile: z.ZodOptional<z.ZodString>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
disposition: z.ZodEnum<["reporting", "enforce"]>;
effectivePolicy: z.ZodEnum<["unsafe-none", "same-origin", "same-origin-allow-popups", "same-origin-plus-coep"]>;
type: z.ZodEnum<["navigate-to-document", "navigate-from-document", "navigation-from-response", "navigation-to-response", "access-to-coop-page-from-opener", "access-from-coop-page-to-opener", "access-from-coop-page-to-other", "access-from-coop-page-to-openee", "access-to-coop-page-from-opener", "access-to-coop-page-from-openee", "access-to-coop-page-from-other"]>;
columnNumber: z.ZodOptional<z.ZodNumber>;
initialPopupURL: z.ZodOptional<z.ZodString>;
lineNumber: z.ZodOptional<z.ZodNumber>;
openeeURL: z.ZodOptional<z.ZodString>;
property: z.ZodOptional<z.ZodString>;
sourceFile: z.ZodOptional<z.ZodString>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
disposition: z.ZodEnum<["reporting", "enforce"]>;
effectivePolicy: z.ZodEnum<["unsafe-none", "same-origin", "same-origin-allow-popups", "same-origin-plus-coep"]>;
type: z.ZodEnum<["navigate-to-document", "navigate-from-document", "navigation-from-response", "navigation-to-response", "access-to-coop-page-from-opener", "access-from-coop-page-to-opener", "access-from-coop-page-to-other", "access-from-coop-page-to-openee", "access-to-coop-page-from-opener", "access-to-coop-page-from-openee", "access-to-coop-page-from-other"]>;
columnNumber: z.ZodOptional<z.ZodNumber>;
initialPopupURL: z.ZodOptional<z.ZodString>;
lineNumber: z.ZodOptional<z.ZodNumber>;
openeeURL: z.ZodOptional<z.ZodString>;
property: z.ZodOptional<z.ZodString>;
sourceFile: z.ZodOptional<z.ZodString>;
}, z.ZodTypeAny, "passthrough">>;
export type CrossOriginOpenerPolicyReport = z.infer<typeof CrossOriginOpenerPolicyReport>;
export declare const CrossOriginEmbedderPolicyReport: z.ZodObject<{
disposition: z.ZodEnum<["reporting", "enforce"]>;
blockedURL: z.ZodOptional<z.ZodString>;
/**
* - navigation
* - worker initialization
* - corp
*/
type: z.ZodString;
/**
* Set on `type: 'corp'`
*/
destination: z.ZodOptional<z.ZodString>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
disposition: z.ZodEnum<["reporting", "enforce"]>;
blockedURL: z.ZodOptional<z.ZodString>;
/**
* - navigation
* - worker initialization
* - corp
*/
type: z.ZodString;
/**
* Set on `type: 'corp'`
*/
destination: z.ZodOptional<z.ZodString>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
disposition: z.ZodEnum<["reporting", "enforce"]>;
blockedURL: z.ZodOptional<z.ZodString>;
/**
* - navigation
* - worker initialization
* - corp
*/
type: z.ZodString;
/**
* Set on `type: 'corp'`
*/
destination: z.ZodOptional<z.ZodString>;
}, z.ZodTypeAny, "passthrough">>;
/**
* https://github.com/camillelamy/explainers/blob/main/coop_reporting.md
*/
export type CrossOriginEmbedderPolicyReport = z.infer<typeof CrossOriginEmbedderPolicyReport>;
export declare const NetworkErrorLogging: z.ZodObject<{
elapsed_time: z.ZodNumber;
method: z.ZodString;
phase: z.ZodString;
protocol: z.ZodString;
referrer: z.ZodString;
sampling_fraction: z.ZodNumber;
server_ip: z.ZodString;
status_code: z.ZodNumber;
type: z.ZodString;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
elapsed_time: z.ZodNumber;
method: z.ZodString;
phase: z.ZodString;
protocol: z.ZodString;
referrer: z.ZodString;
sampling_fraction: z.ZodNumber;
server_ip: z.ZodString;
status_code: z.ZodNumber;
type: z.ZodString;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
elapsed_time: z.ZodNumber;
method: z.ZodString;
phase: z.ZodString;
protocol: z.ZodString;
referrer: z.ZodString;
sampling_fraction: z.ZodNumber;
server_ip: z.ZodString;
status_code: z.ZodNumber;
type: z.ZodString;
}, z.ZodTypeAny, "passthrough">>;
export type NetworkErrorLogging = z.infer<typeof NetworkErrorLogging>;
export declare const PermissionsPolicyViolation: z.ZodObject<{
message: z.ZodString;
disposition: z.ZodEnum<["report", "enforce"]>;
/**
* The voilated policy
* `accelerometer`, `autoplay`, ...
*/
policyId: z.ZodString;
columnNumber: z.ZodOptional<z.ZodNumber>;
lineNumber: z.ZodOptional<z.ZodNumber>;
sourceFile: z.ZodString;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
message: z.ZodString;
disposition: z.ZodEnum<["report", "enforce"]>;
/**
* The voilated policy
* `accelerometer`, `autoplay`, ...
*/
policyId: z.ZodString;
columnNumber: z.ZodOptional<z.ZodNumber>;
lineNumber: z.ZodOptional<z.ZodNumber>;
sourceFile: z.ZodString;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
message: z.ZodString;
disposition: z.ZodEnum<["report", "enforce"]>;
/**
* The voilated policy
* `accelerometer`, `autoplay`, ...
*/
policyId: z.ZodString;
columnNumber: z.ZodOptional<z.ZodNumber>;
lineNumber: z.ZodOptional<z.ZodNumber>;
sourceFile: z.ZodString;
}, z.ZodTypeAny, "passthrough">>;
export type PermissionsPolicyViolation = z.infer<typeof PermissionsPolicyViolation>;
export declare const PotentialPermissionsPolicyViolation: z.ZodObject<{
allowAttribute: z.ZodString;
disposition: z.ZodEnum<["report", "enforce"]>;
message: z.ZodString;
policyId: z.ZodString;
srcAttribute: z.ZodString;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
allowAttribute: z.ZodString;
disposition: z.ZodEnum<["report", "enforce"]>;
message: z.ZodString;
policyId: z.ZodString;
srcAttribute: z.ZodString;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
allowAttribute: z.ZodString;
disposition: z.ZodEnum<["report", "enforce"]>;
message: z.ZodString;
policyId: z.ZodString;
srcAttribute: z.ZodString;
}, z.ZodTypeAny, "passthrough">>;
export type PotentialPermissionsPolicyViolation = z.infer<typeof PotentialPermissionsPolicyViolation>;
export declare const InterventionReport: z.ZodObject<{
id: z.ZodString;
message: z.ZodString;
columnNumber: z.ZodOptional<z.ZodNumber>;
lineNumber: z.ZodOptional<z.ZodNumber>;
sourceFile: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
message: string;
id: string;
columnNumber?: number | undefined;
lineNumber?: number | undefined;
sourceFile?: string | undefined;
}, {
message: string;
id: string;
columnNumber?: number | undefined;
lineNumber?: number | undefined;
sourceFile?: string | undefined;
}>;
export type InterventionReport = z.infer<typeof InterventionReport>;
export declare const CrashReport: z.ZodObject<{
/**
* Crash reason
*
* - `oom` Out of memory
*/
reason: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
reason?: string | undefined;
}, {
reason?: string | undefined;
}>;
export type CrashReport = z.infer<typeof CrashReport>;
export declare const DeprecationReport: z.ZodObject<{
id: z.ZodString;
message: z.ZodString;
columnNumber: z.ZodOptional<z.ZodNumber>;
lineNumber: z.ZodOptional<z.ZodNumber>;
sourceFile: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
message: string;
id: string;
columnNumber?: number | undefined;
lineNumber?: number | undefined;
sourceFile?: string | undefined;
}, {
message: string;
id: string;
columnNumber?: number | undefined;
lineNumber?: number | undefined;
sourceFile?: string | undefined;
}>;
export type DeprecationReport = z.infer<typeof DeprecationReport>;
export declare const Report: z.ZodIntersection<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
type: z.ZodLiteral<"csp-violation">;
body: z.ZodObject<{
blockedURL: z.ZodString;
columnNumber: z.ZodOptional<z.ZodNumber>;
disposition: z.ZodEnum<["enforce", "report"]>;
documentURL: z.ZodString;
effectiveDirective: z.ZodString;
lineNumber: z.ZodOptional<z.ZodNumber>;
originalPolicy: z.ZodString;
referrer: z.ZodOptional<z.ZodString>;
sample: z.ZodOptional<z.ZodString>;
sourceFile: z.ZodOptional<z.ZodString>;
statusCode: z.ZodOptional<z.ZodNumber>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
blockedURL: z.ZodString;
columnNumber: z.ZodOptional<z.ZodNumber>;
disposition: z.ZodEnum<["enforce", "report"]>;
documentURL: z.ZodString;
effectiveDirective: z.ZodString;
lineNumber: z.ZodOptional<z.ZodNumber>;
originalPolicy: z.ZodString;
referrer: z.ZodOptional<z.ZodString>;
sample: z.ZodOptional<z.ZodString>;
sourceFile: z.ZodOptional<z.ZodString>;
statusCode: z.ZodOptional<z.ZodNumber>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
blockedURL: z.ZodString;
columnNumber: z.ZodOptional<z.ZodNumber>;
disposition: z.ZodEnum<["enforce", "report"]>;
documentURL: z.ZodString;
effectiveDirective: z.ZodString;
lineNumber: z.ZodOptional<z.ZodNumber>;
originalPolicy: z.ZodString;
referrer: z.ZodOptional<z.ZodString>;
sample: z.ZodOptional<z.ZodString>;
sourceFile: z.ZodOptional<z.ZodString>;
statusCode: z.ZodOptional<z.ZodNumber>;
}, z.ZodTypeAny, "passthrough">>;
}, "strip", z.ZodTypeAny, {
type: "csp-violation";
body: {
blockedURL: string;
disposition: "enforce" | "report";
documentURL: string;
effectiveDirective: string;
originalPolicy: string;
columnNumber?: number | undefined;
lineNumber?: number | undefined;
referrer?: string | undefined;
sample?: string | undefined;
sourceFile?: string | undefined;
statusCode?: number | undefined;
} & {
[k: string]: unknown;
};
}, {
type: "csp-violation";
body: {
blockedURL: string;
disposition: "enforce" | "report";
documentURL: string;
effectiveDirective: string;
originalPolicy: string;
columnNumber?: number | undefined;
lineNumber?: number | undefined;
referrer?: string | undefined;
sample?: string | undefined;
sourceFile?: string | undefined;
statusCode?: number | undefined;
} & {
[k: string]: unknown;
};
}>, z.ZodObject<{
type: z.ZodLiteral<"coop">;
body: z.ZodObject<{
disposition: z.ZodEnum<["reporting", "enforce"]>;
effectivePolicy: z.ZodEnum<["unsafe-none", "same-origin", "same-origin-allow-popups", "same-origin-plus-coep"]>;
type: z.ZodEnum<["navigate-to-document", "navigate-from-document", "navigation-from-response", "navigation-to-response", "access-to-coop-page-from-opener", "access-from-coop-page-to-opener", "access-from-coop-page-to-other", "access-from-coop-page-to-openee", "access-to-coop-page-from-opener", "access-to-coop-page-from-openee", "access-to-coop-page-from-other"]>;
columnNumber: z.ZodOptional<z.ZodNumber>;
initialPopupURL: z.ZodOptional<z.ZodString>;
lineNumber: z.ZodOptional<z.ZodNumber>;
openeeURL: z.ZodOptional<z.ZodString>;
property: z.ZodOptional<z.ZodString>;
sourceFile: z.ZodOptional<z.ZodString>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
disposition: z.ZodEnum<["reporting", "enforce"]>;
effectivePolicy: z.ZodEnum<["unsafe-none", "same-origin", "same-origin-allow-popups", "same-origin-plus-coep"]>;
type: z.ZodEnum<["navigate-to-document", "navigate-from-document", "navigation-from-response", "navigation-to-response", "access-to-coop-page-from-opener", "access-from-coop-page-to-opener", "access-from-coop-page-to-other", "access-from-coop-page-to-openee", "access-to-coop-page-from-opener", "access-to-coop-page-from-openee", "access-to-coop-page-from-other"]>;
columnNumber: z.ZodOptional<z.ZodNumber>;
initialPopupURL: z.ZodOptional<z.ZodString>;
lineNumber: z.ZodOptional<z.ZodNumber>;
openeeURL: z.ZodOptional<z.ZodString>;
property: z.ZodOptional<z.ZodString>;
sourceFile: z.ZodOptional<z.ZodString>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
disposition: z.ZodEnum<["reporting", "enforce"]>;
effectivePolicy: z.ZodEnum<["unsafe-none", "same-origin", "same-origin-allow-popups", "same-origin-plus-coep"]>;
type: z.ZodEnum<["navigate-to-document", "navigate-from-document", "navigation-from-response", "navigation-to-response", "access-to-coop-page-from-opener", "access-from-coop-page-to-opener", "access-from-coop-page-to-other", "access-from-coop-page-to-openee", "access-to-coop-page-from-opener", "access-to-coop-page-from-openee", "access-to-coop-page-from-other"]>;
columnNumber: z.ZodOptional<z.ZodNumber>;
initialPopupURL: z.ZodOptional<z.ZodString>;
lineNumber: z.ZodOptional<z.ZodNumber>;
openeeURL: z.ZodOptional<z.ZodString>;
property: z.ZodOptional<z.ZodString>;
sourceFile: z.ZodOptional<z.ZodString>;
}, z.ZodTypeAny, "passthrough">>;
}, "strip", z.ZodTypeAny, {
type: "coop";
body: {
disposition: "enforce" | "reporting";
type: "navigate-to-document" | "navigate-from-document" | "navigation-from-response" | "navigation-to-response" | "access-to-coop-page-from-opener" | "access-from-coop-page-to-opener" | "access-from-coop-page-to-other" | "access-from-coop-page-to-openee" | "access-to-coop-page-from-openee" | "access-to-coop-page-from-other";
effectivePolicy: "unsafe-none" | "same-origin" | "same-origin-allow-popups" | "same-origin-plus-coep";
columnNumber?: number | undefined;
lineNumber?: number | undefined;
sourceFile?: string | undefined;
initialPopupURL?: string | undefined;
openeeURL?: string | undefined;
property?: string | undefined;
} & {
[k: string]: unknown;
};
}, {
type: "coop";
body: {
disposition: "enforce" | "reporting";
type: "navigate-to-document" | "navigate-from-document" | "navigation-from-response" | "navigation-to-response" | "access-to-coop-page-from-opener" | "access-from-coop-page-to-opener" | "access-from-coop-page-to-other" | "access-from-coop-page-to-openee" | "access-to-coop-page-from-openee" | "access-to-coop-page-from-other";
effectivePolicy: "unsafe-none" | "same-origin" | "same-origin-allow-popups" | "same-origin-plus-coep";
columnNumber?: number | undefined;
lineNumber?: number | undefined;
sourceFile?: string | undefined;
initialPopupURL?: string | undefined;
openeeURL?: string | undefined;
property?: string | undefined;
} & {
[k: string]: unknown;
};
}>, z.ZodObject<{
type: z.ZodLiteral<"coep">;
body: z.ZodObject<{
disposition: z.ZodEnum<["reporting", "enforce"]>;
blockedURL: z.ZodOptional<z.ZodString>;
/**
* - navigation
* - worker initialization
* - corp
*/
type: z.ZodString;
/**
* Set on `type: 'corp'`
*/
destination: z.ZodOptional<z.ZodString>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
disposition: z.ZodEnum<["reporting", "enforce"]>;
blockedURL: z.ZodOptional<z.ZodString>;
/**
* - navigation
* - worker initialization
* - corp
*/
type: z.ZodString;
/**
* Set on `type: 'corp'`
*/
destination: z.ZodOptional<z.ZodString>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
disposition: z.ZodEnum<["reporting", "enforce"]>;
blockedURL: z.ZodOptional<z.ZodString>;
/**
* - navigation
* - worker initialization
* - corp
*/
type: z.ZodString;
/**
* Set on `type: 'corp'`
*/
destination: z.ZodOptional<z.ZodString>;
}, z.ZodTypeAny, "passthrough">>;
}, "strip", z.ZodTypeAny, {
type: "coep";
body: {
disposition: "enforce" | "reporting";
type: string;
blockedURL?: string | undefined;
destination?: string | undefined;
} & {
[k: string]: unknown;
};
}, {
type: "coep";
body: {
disposition: "enforce" | "reporting";
type: string;
blockedURL?: string | undefined;
destination?: string | undefined;
} & {
[k: string]: unknown;
};
}>, z.ZodObject<{
type: z.ZodLiteral<"deprecation">;
body: z.ZodObject<{
id: z.ZodString;
message: z.ZodString;
columnNumber: z.ZodOptional<z.ZodNumber>;
lineNumber: z.ZodOptional<z.ZodNumber>;
sourceFile: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
message: string;
id: string;
columnNumber?: number | undefined;
lineNumber?: number | undefined;
sourceFile?: string | undefined;
}, {
message: string;
id: string;
columnNumber?: number | undefined;
lineNumber?: number | undefined;
sourceFile?: string | undefined;
}>;
}, "strip", z.ZodTypeAny, {
type: "deprecation";
body: {
message: string;
id: string;
columnNumber?: number | undefined;
lineNumber?: number | undefined;
sourceFile?: string | undefined;
};
}, {
type: "deprecation";
body: {
message: string;
id: string;
columnNumber?: number | undefined;
lineNumber?: number | undefined;
sourceFile?: string | undefined;
};
}>, z.ZodObject<{
type: z.ZodLiteral<"crash">;
body: z.ZodObject<{
/**
* Crash reason
*
* - `oom` Out of memory
*/
reason: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
reason?: string | undefined;
}, {
reason?: string | undefined;
}>;
}, "strip", z.ZodTypeAny, {
type: "crash";
body: {
reason?: string | undefined;
};
}, {
type: "crash";
body: {
reason?: string | undefined;
};
}>, z.ZodObject<{
type: z.ZodLiteral<"intervention">;
body: z.ZodObject<{
id: z.ZodString;
message: z.ZodString;
columnNumber: z.ZodOptional<z.ZodNumber>;
lineNumber: z.ZodOptional<z.ZodNumber>;
sourceFile: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
message: string;
id: string;
columnNumber?: number | undefined;
lineNumber?: number | undefined;
sourceFile?: string | undefined;
}, {
message: string;
id: string;
columnNumber?: number | undefined;
lineNumber?: number | undefined;
sourceFile?: string | undefined;
}>;
}, "strip", z.ZodTypeAny, {
type: "intervention";
body: {
message: string;
id: string;
columnNumber?: number | undefined;
lineNumber?: number | undefined;
sourceFile?: string | undefined;
};
}, {
type: "intervention";
body: {
message: string;
id: string;
columnNumber?: number | undefined;
lineNumber?: number | undefined;
sourceFile?: string | undefined;
};
}>, z.ZodObject<{
type: z.ZodLiteral<"network-error">;
body: z.ZodObject<{
elapsed_time: z.ZodNumber;
method: z.ZodString;
phase: z.ZodString;
protocol: z.ZodString;
referrer: z.ZodString;
sampling_fraction: z.ZodNumber;
server_ip: z.ZodString;
status_code: z.ZodNumber;
type: z.ZodString;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
elapsed_time: z.ZodNumber;
method: z.ZodString;
phase: z.ZodString;
protocol: z.ZodString;
referrer: z.ZodString;
sampling_fraction: z.ZodNumber;
server_ip: z.ZodString;
status_code: z.ZodNumber;
type: z.ZodString;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
elapsed_time: z.ZodNumber;
method: z.ZodString;
phase: z.ZodString;
protocol: z.ZodString;
referrer: z.ZodString;
sampling_fraction: z.ZodNumber;
server_ip: z.ZodString;
status_code: z.ZodNumber;
type: z.ZodString;
}, z.ZodTypeAny, "passthrough">>;
}, "strip", z.ZodTypeAny, {
type: "network-error";
body: {
type: string;
referrer: string;
elapsed_time: number;
method: string;
phase: string;
protocol: string;
sampling_fraction: number;
server_ip: string;
status_code: number;
} & {
[k: string]: unknown;
};
}, {
type: "network-error";
body: {
type: string;
referrer: string;
elapsed_time: number;
method: string;
phase: string;
protocol: string;
sampling_fraction: number;
server_ip: string;
status_code: number;
} & {
[k: string]: unknown;
};
}>, z.ZodObject<{
type: z.ZodLiteral<"permissions-policy-violation">;
body: z.ZodObject<{
message: z.ZodString;
disposition: z.ZodEnum<["report", "enforce"]>;
/**
* The voilated policy
* `accelerometer`, `autoplay`, ...
*/
policyId: z.ZodString;
columnNumber: z.ZodOptional<z.ZodNumber>;
lineNumber: z.ZodOptional<z.ZodNumber>;
sourceFile: z.ZodString;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
message: z.ZodString;
disposition: z.ZodEnum<["report", "enforce"]>;
/**
* The voilated policy
* `accelerometer`, `autoplay`, ...
*/
policyId: z.ZodString;
columnNumber: z.ZodOptional<z.ZodNumber>;
lineNumber: z.ZodOptional<z.ZodNumber>;
sourceFile: z.ZodString;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
message: z.ZodString;
disposition: z.ZodEnum<["report", "enforce"]>;
/**
* The voilated policy
* `accelerometer`, `autoplay`, ...
*/
policyId: z.ZodString;
columnNumber: z.ZodOptional<z.ZodNumber>;
lineNumber: z.ZodOptional<z.ZodNumber>;
sourceFile: z.ZodString;
}, z.ZodTypeAny, "passthrough">>;
}, "strip", z.ZodTypeAny, {
type: "permissions-policy-violation";
body: {
disposition: "enforce" | "report";
message: string;
sourceFile: string;
policyId: string;
columnNumber?: number | undefined;
lineNumber?: number | undefined;
} & {
[k: string]: unknown;
};
}, {
type: "permissions-policy-violation";
body: {
disposition: "enforce" | "report";
message: string;
sourceFile: string;
policyId: string;
columnNumber?: number | undefined;
lineNumber?: number | undefined;
} & {
[k: string]: unknown;
};
}>, z.ZodObject<{
type: z.ZodLiteral<"potential-permissions-policy-violation">;
body: z.ZodObject<{
allowAttribute: z.ZodString;
disposition: z.ZodEnum<["report", "enforce"]>;
message: z.ZodString;
policyId: z.ZodString;
srcAttribute: z.ZodString;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
allowAttribute: z.ZodString;
disposition: z.ZodEnum<["report", "enforce"]>;
message: z.ZodString;
policyId: z.ZodString;
srcAttribute: z.ZodString;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
allowAttribute: z.ZodString;
disposition: z.ZodEnum<["report", "enforce"]>;
message: z.ZodString;
policyId: z.ZodString;
srcAttribute: z.ZodString;
}, z.ZodTypeAny, "passthrough">>;
}, "strip", z.ZodTypeAny, {
type: "potential-permissions-policy-violation";
body: {
disposition: "enforce" | "report";
message: string;
policyId: string;
allowAttribute: string;
srcAttribute: string;
} & {
[k: string]: unknown;
};
}, {
type: "potential-permissions-policy-violation";
body: {
disposition: "enforce" | "report";
message: string;
policyId: string;
allowAttribute: string;
srcAttribute: string;
} & {
[k: string]: unknown;
};
}>]>, z.ZodObject<{
/**
* URL of the page where the violation occured
*/
url: z.ZodString;
/**
* Age of the report in milliseconds
*/
age: z.ZodNumber;
user_agent: z.ZodString;
/**
* Your policy version
*/
version: z.ZodOptional<z.ZodString>;
/**
* The format the report was received in
*
* - `report-uri` legacy csp report-uri attribute
* - `report-to` Reporting API report
* - `report-to-safari` Safari is not sending buffered reports, fields in camelCase, body in `body` instead of `csp-report` etc
*/
report_format: z.ZodEnum<["report-uri", "report-to", "report-to-safari"]>;
}, "strip", z.ZodTypeAny, {
url: string;
age: number;
user_agent: string;
report_format: "report-uri" | "report-to" | "report-to-safari";
version?: string | undefined;
}, {
url: string;
age: number;
user_agent: string;
report_format: "report-uri" | "report-to" | "report-to-safari";
version?: string | undefined;
}>>;
export type Report = z.infer<typeof Report>;