1+ import { ErrorInfo } from "./data/ErrorInfo.js" ;
2+ import { EnvironmentInfo } from "./data/EnvironmentInfo.js" ;
3+ import { RequestInfo } from "./data/RequestInfo.js" ;
4+ import { UserInfo } from "./data/UserInfo.js" ;
5+ import { UserDescription } from "./data/UserDescription.js" ;
6+ import { ManualStackingInfo } from "./data/ManualStackingInfo.js" ;
7+
18export interface Event {
29 /** The event type (ie. error, log message, feature usage). */
310 type ?: string ;
@@ -18,7 +25,7 @@ export interface Event {
1825 /** An optional identifier to be used for referencing this event instance at a later time. */
1926 reference_id ?: string ;
2027 /** Optional data entries that contain additional information about this event. */
21- data ?: Record < string , any > ; // TODO: Add typing for known keys.
28+ data ?: IData ;
2229}
2330
2431export const enum KnownEventDataKeys {
@@ -32,5 +39,18 @@ export const enum KnownEventDataKeys {
3239 Version = "@version" ,
3340 Level = "@level" ,
3441 SubmissionMethod = "@submission_method" ,
35- ManualStackingInfo = "@stack"
42+ ManualStackingInfo = "@stack" ,
43+ }
44+
45+ interface IData extends Record < string , any > {
46+ "@error" : ErrorInfo ;
47+ "@simple_error" : any ; // TODO: Need a model for simple error
48+ "@request" : RequestInfo ;
49+ "@environment" : EnvironmentInfo ;
50+ "@user" : UserInfo ;
51+ "@user_description" : UserDescription ;
52+ "@version" : string ;
53+ "@level" : string ;
54+ "@submission_method" : string ;
55+ "@stack" : ManualStackingInfo ;
3656}
0 commit comments