@expo/event-log 0.0.1-init
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 +5 -0
- package/LICENSE.md +22 -0
- package/README.md +74 -0
- package/bin/cli.js +19 -0
- package/cli/package.json +17 -0
- package/dist/chunks/tap-chunk.js +536 -0
- package/dist/chunks/tap-chunk.js.map +1 -0
- package/dist/chunks/tap-chunk.mjs +522 -0
- package/dist/chunks/tap-chunk.mjs.map +1 -0
- package/dist/event-log.d.ts +142 -0
- package/dist/event-log.js +983 -0
- package/dist/event-log.js.map +1 -0
- package/dist/event-log.mjs +977 -0
- package/dist/event-log.mjs.map +1 -0
- package/dist/expo-event-log-cli.d.ts +4 -0
- package/dist/expo-event-log-cli.js +1412 -0
- package/dist/expo-event-log-cli.js.map +1 -0
- package/dist/expo-event-log-cli.mjs +1406 -0
- package/dist/expo-event-log-cli.mjs.map +1 -0
- package/package.json +95 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
type Prettify<T> =
|
|
2
|
+
T extends Record<string, unknown>
|
|
3
|
+
? {
|
|
4
|
+
[K in keyof T]: T[K];
|
|
5
|
+
}
|
|
6
|
+
: T;
|
|
7
|
+
type ReservedPayloadKeys = '_e' | '_t' | '_d' | '_w';
|
|
8
|
+
type ValidPayload<Payload> =
|
|
9
|
+
Extract<keyof Payload, ReservedPayloadKeys> extends never ? Prettify<Payload> : never;
|
|
10
|
+
interface EventRegistry {
|
|
11
|
+
'root:init': {
|
|
12
|
+
format: 'v0-jsonl' | (string & {});
|
|
13
|
+
formatVersion: number;
|
|
14
|
+
version: string;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
type EventKeys = Extract<keyof EventRegistry, string>;
|
|
18
|
+
type EventByKey<Key extends EventKeys> = Prettify<
|
|
19
|
+
{
|
|
20
|
+
key: Key;
|
|
21
|
+
} & EventRegistry[Key]
|
|
22
|
+
>;
|
|
23
|
+
type AllEvents = {
|
|
24
|
+
[K in EventKeys]: EventByKey<K>;
|
|
25
|
+
}[EventKeys];
|
|
26
|
+
type EventNamesFor<Category extends string> = EventKeys extends infer K
|
|
27
|
+
? K extends `${Category}:${infer Name}`
|
|
28
|
+
? Name
|
|
29
|
+
: never
|
|
30
|
+
: never;
|
|
31
|
+
type EventPayload<
|
|
32
|
+
Category extends string,
|
|
33
|
+
Name extends string,
|
|
34
|
+
> = `${Category}:${Name}` extends EventKeys
|
|
35
|
+
? ValidPayload<EventRegistry[`${Category}:${Name}`]>
|
|
36
|
+
: never;
|
|
37
|
+
interface SpanEnd<Category extends string> {
|
|
38
|
+
<Name extends EventNamesFor<Category>>(event: Name, data: EventPayload<Category, Name>): void;
|
|
39
|
+
}
|
|
40
|
+
interface EventLogger<Category extends string> {
|
|
41
|
+
<Name extends EventNamesFor<Category>>(event: Name, data: EventPayload<Category, Name>): void;
|
|
42
|
+
span<Name extends EventNamesFor<Category>>(
|
|
43
|
+
event: Name,
|
|
44
|
+
data: EventPayload<Category, Name>
|
|
45
|
+
): SpanEnd<Category>;
|
|
46
|
+
path(target: string): string;
|
|
47
|
+
path(target: string | null | undefined): string | null;
|
|
48
|
+
readonly category: Category;
|
|
49
|
+
}
|
|
50
|
+
interface ParsedEvent {
|
|
51
|
+
_e: string;
|
|
52
|
+
_t: number;
|
|
53
|
+
_d?: number;
|
|
54
|
+
_w?: string;
|
|
55
|
+
[key: string]: unknown;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
declare function events<const Category extends string>(category: Category): EventLogger<Category>;
|
|
59
|
+
|
|
60
|
+
interface EventLoggerInfo {
|
|
61
|
+
destination: 'file' | 'stdout' | 'stderr' | 'fd' | 'session' | 'ipc';
|
|
62
|
+
isUserVisibleOutput: boolean;
|
|
63
|
+
file?: string;
|
|
64
|
+
fd?: number;
|
|
65
|
+
sessionDir?: string;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
interface SessionOptions {
|
|
69
|
+
command?: string;
|
|
70
|
+
version?: string;
|
|
71
|
+
maxSegments?: number;
|
|
72
|
+
maxSegmentSize?: number;
|
|
73
|
+
}
|
|
74
|
+
interface SessionMeta {
|
|
75
|
+
pid: number;
|
|
76
|
+
formatVersion: number;
|
|
77
|
+
startedAt: number;
|
|
78
|
+
command: string;
|
|
79
|
+
cwd: string;
|
|
80
|
+
maxSegments: number;
|
|
81
|
+
version?: string;
|
|
82
|
+
socket: string;
|
|
83
|
+
ipcSocket: string;
|
|
84
|
+
origin: {
|
|
85
|
+
argv: string[];
|
|
86
|
+
execPath: string;
|
|
87
|
+
cwd: string;
|
|
88
|
+
ppid?: number;
|
|
89
|
+
env?: {
|
|
90
|
+
npmLifecycleEvent?: string;
|
|
91
|
+
npmExecPath?: string;
|
|
92
|
+
npmPackageName?: string;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
interface InstallEventLoggerOptions extends SessionOptions {}
|
|
97
|
+
declare function installEventLogger(
|
|
98
|
+
targetOrOptions?: string | number | InstallEventLoggerOptions
|
|
99
|
+
): void;
|
|
100
|
+
declare const isEventLoggerActive: () => EventLoggerInfo | null;
|
|
101
|
+
|
|
102
|
+
interface ListedSession {
|
|
103
|
+
id: string;
|
|
104
|
+
pid: number;
|
|
105
|
+
formatVersion: number;
|
|
106
|
+
alive: boolean;
|
|
107
|
+
startedAt: number;
|
|
108
|
+
command: string;
|
|
109
|
+
cwd: string;
|
|
110
|
+
version?: string;
|
|
111
|
+
origin?: SessionMeta['origin'];
|
|
112
|
+
sessionDir: string;
|
|
113
|
+
}
|
|
114
|
+
interface ListSessionsOptions {
|
|
115
|
+
selector?: string;
|
|
116
|
+
}
|
|
117
|
+
interface TapOptions {
|
|
118
|
+
since?: number | string | Date;
|
|
119
|
+
follow?: boolean;
|
|
120
|
+
filter?: string | string[];
|
|
121
|
+
signal?: AbortSignal;
|
|
122
|
+
timeout?: number;
|
|
123
|
+
idleTimeout?: number;
|
|
124
|
+
}
|
|
125
|
+
declare function listSessions(options?: ListSessionsOptions): Promise<ListedSession[]>;
|
|
126
|
+
declare function tap(sessionDir: string, options?: TapOptions): AsyncIterable<ParsedEvent>;
|
|
127
|
+
|
|
128
|
+
export { events, installEventLogger, isEventLoggerActive, listSessions as list, tap };
|
|
129
|
+
export type {
|
|
130
|
+
AllEvents,
|
|
131
|
+
EventByKey,
|
|
132
|
+
EventKeys,
|
|
133
|
+
EventLogger,
|
|
134
|
+
EventLoggerInfo,
|
|
135
|
+
EventRegistry,
|
|
136
|
+
InstallEventLoggerOptions,
|
|
137
|
+
ListSessionsOptions,
|
|
138
|
+
ListedSession,
|
|
139
|
+
ParsedEvent,
|
|
140
|
+
SpanEnd,
|
|
141
|
+
TapOptions,
|
|
142
|
+
};
|