@interfere/types 0.0.2 → 0.1.0-alpha.1
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/dist/auth/public-token.d.mts +9 -0
- package/dist/auth/public-token.d.mts.map +1 -0
- package/dist/auth/public-token.mjs +9 -0
- package/dist/auth/public-token.mjs.map +1 -0
- package/dist/auth/secret-key.d.mts +5 -0
- package/dist/auth/secret-key.d.mts.map +1 -0
- package/dist/auth/secret-key.mjs +6 -0
- package/dist/auth/secret-key.mjs.map +1 -0
- package/dist/data/frame.d.mts +20 -0
- package/dist/data/frame.d.mts.map +1 -0
- package/dist/data/frame.mjs +12 -0
- package/dist/data/frame.mjs.map +1 -0
- package/dist/data/session.d.mts +7 -0
- package/dist/data/session.d.mts.map +1 -0
- package/dist/data/session.mjs +7 -0
- package/dist/data/session.mjs.map +1 -0
- package/dist/data/source-maps.d.mts +95 -0
- package/dist/data/source-maps.d.mts.map +1 -0
- package/dist/data/source-maps.mjs +45 -0
- package/dist/data/source-maps.mjs.map +1 -0
- package/dist/data/surface.d.mts +7 -0
- package/dist/data/surface.d.mts.map +1 -0
- package/dist/data/surface.mjs +8 -0
- package/dist/data/surface.mjs.map +1 -0
- package/dist/releases/definition.d.mts +89 -0
- package/dist/releases/definition.d.mts.map +1 -0
- package/dist/releases/definition.mjs +36 -0
- package/dist/releases/definition.mjs.map +1 -0
- package/dist/releases/sources/version-control.d.mts +16 -0
- package/dist/releases/sources/version-control.d.mts.map +1 -0
- package/dist/releases/sources/version-control.mjs +13 -0
- package/dist/releases/sources/version-control.mjs.map +1 -0
- package/dist/releases/targets/cloud-platform.d.mts +27 -0
- package/dist/releases/targets/cloud-platform.d.mts.map +1 -0
- package/dist/releases/targets/cloud-platform.mjs +24 -0
- package/dist/releases/targets/cloud-platform.mjs.map +1 -0
- package/dist/sdk/capture.d.mts +8 -0
- package/dist/sdk/capture.d.mts.map +1 -0
- package/dist/sdk/capture.mjs +16 -0
- package/dist/sdk/capture.mjs.map +1 -0
- package/dist/sdk/config.d.mts +184 -0
- package/dist/sdk/config.d.mts.map +1 -0
- package/dist/sdk/config.mjs +69 -0
- package/dist/sdk/config.mjs.map +1 -0
- package/dist/sdk/envelope.d.mts +190 -0
- package/dist/sdk/envelope.d.mts.map +1 -0
- package/dist/sdk/envelope.mjs +57 -0
- package/dist/sdk/envelope.mjs.map +1 -0
- package/dist/sdk/packages.d.mts +7 -0
- package/dist/sdk/packages.d.mts.map +1 -0
- package/dist/sdk/packages.mjs +11 -0
- package/dist/sdk/packages.mjs.map +1 -0
- package/dist/sdk/plugins/lib/schemas.d.mts +23 -0
- package/dist/sdk/plugins/lib/schemas.d.mts.map +1 -0
- package/dist/sdk/plugins/lib/schemas.mjs +1 -0
- package/dist/sdk/plugins/lib/types.d.mts +19 -0
- package/dist/sdk/plugins/lib/types.d.mts.map +1 -0
- package/dist/sdk/plugins/lib/types.mjs +8 -0
- package/dist/sdk/plugins/lib/types.mjs.map +1 -0
- package/dist/sdk/plugins/manifest.d.mts +110 -0
- package/dist/sdk/plugins/manifest.d.mts.map +1 -0
- package/dist/sdk/plugins/manifest.mjs +75 -0
- package/dist/sdk/plugins/manifest.mjs.map +1 -0
- package/dist/sdk/plugins/payload/ai-summary.d.mts +13 -0
- package/dist/sdk/plugins/payload/ai-summary.d.mts.map +1 -0
- package/dist/sdk/plugins/payload/ai-summary.mjs +13 -0
- package/dist/sdk/plugins/payload/ai-summary.mjs.map +1 -0
- package/dist/sdk/plugins/payload/errors.d.mts +36 -0
- package/dist/sdk/plugins/payload/errors.d.mts.map +1 -0
- package/dist/sdk/plugins/payload/errors.mjs +19 -0
- package/dist/sdk/plugins/payload/errors.mjs.map +1 -0
- package/dist/sdk/plugins/payload/page-events.d.mts +19 -0
- package/dist/sdk/plugins/payload/page-events.d.mts.map +1 -0
- package/dist/sdk/plugins/payload/page-events.mjs +15 -0
- package/dist/sdk/plugins/payload/page-events.mjs.map +1 -0
- package/dist/sdk/plugins/payload/rage-click.d.mts +15 -0
- package/dist/sdk/plugins/payload/rage-click.d.mts.map +1 -0
- package/dist/sdk/plugins/payload/rage-click.mjs +15 -0
- package/dist/sdk/plugins/payload/rage-click.mjs.map +1 -0
- package/dist/sdk/plugins/payload/replay.d.mts +11 -0
- package/dist/sdk/plugins/payload/replay.d.mts.map +1 -0
- package/dist/sdk/plugins/payload/replay.mjs +11 -0
- package/dist/sdk/plugins/payload/replay.mjs.map +1 -0
- package/dist/sdk/runtime.d.mts +19 -0
- package/dist/sdk/runtime.d.mts.map +1 -0
- package/dist/sdk/runtime.mjs +26 -0
- package/dist/sdk/runtime.mjs.map +1 -0
- package/package.json +68 -9
- package/dist/index.d.mts +0 -3
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -7
- package/dist/utils.d.ts +0 -2
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -2
- package/dist/utils.js.map +0 -1
- package/dist/utils.test.d.ts +0 -2
- package/dist/utils.test.d.ts.map +0 -1
- package/dist/utils.test.js +0 -6
- package/dist/utils.test.js.map +0 -1
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
|
|
3
|
+
//#region src/sdk/config.d.ts
|
|
4
|
+
declare const offlineStorageSchema: z.ZodDefault<z.ZodObject<{
|
|
5
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
6
|
+
maxQueueSize: z.ZodDefault<z.ZodNumber>;
|
|
7
|
+
}, z.core.$strip>>;
|
|
8
|
+
type OfflineStorage = z.infer<typeof offlineStorageSchema>;
|
|
9
|
+
declare const apiBaseUrlSchema: z.ZodUnion<readonly [z.ZodString, z.ZodEnum<{
|
|
10
|
+
"https://api.interfere.com": "https://api.interfere.com";
|
|
11
|
+
"http://localhost:3001": "http://localhost:3001";
|
|
12
|
+
}>]>;
|
|
13
|
+
declare const featuresSchema: z.ZodDefault<z.ZodObject<{
|
|
14
|
+
errors: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
15
|
+
replay: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
16
|
+
rageClick: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
17
|
+
aiSummary: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
18
|
+
pageEvents: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
19
|
+
serverTracing: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
20
|
+
}, z.core.$strip>>;
|
|
21
|
+
type Features = z.infer<typeof featuresSchema>;
|
|
22
|
+
declare const configSchema: z.ZodPipe<z.ZodIntersection<z.ZodObject<{
|
|
23
|
+
features: z.ZodDefault<z.ZodObject<{
|
|
24
|
+
errors: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
25
|
+
replay: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
26
|
+
rageClick: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
27
|
+
aiSummary: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
28
|
+
pageEvents: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
29
|
+
serverTracing: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
30
|
+
}, z.core.$strip>>;
|
|
31
|
+
metadata: z.ZodObject<{
|
|
32
|
+
buildId: z.ZodNullable<z.ZodString>;
|
|
33
|
+
releaseId: z.ZodNullable<z.ZodString>;
|
|
34
|
+
environment: z.ZodNullable<z.ZodEnum<{
|
|
35
|
+
development: "development";
|
|
36
|
+
preview: "preview";
|
|
37
|
+
production: "production";
|
|
38
|
+
}>>;
|
|
39
|
+
runtime: z.ZodNullable<z.ZodEnum<{
|
|
40
|
+
edge: "edge";
|
|
41
|
+
browser: "browser";
|
|
42
|
+
node: "node";
|
|
43
|
+
}>>;
|
|
44
|
+
}, z.core.$strip>;
|
|
45
|
+
batch: z.ZodDefault<z.ZodObject<{
|
|
46
|
+
size: z.ZodDefault<z.ZodNumber>;
|
|
47
|
+
ms: z.ZodDefault<z.ZodNumber>;
|
|
48
|
+
}, z.core.$strip>>;
|
|
49
|
+
offline: z.ZodDefault<z.ZodObject<{
|
|
50
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
51
|
+
maxQueueSize: z.ZodDefault<z.ZodNumber>;
|
|
52
|
+
}, z.core.$strip>>;
|
|
53
|
+
}, z.core.$strip>, z.ZodUnion<readonly [z.ZodObject<{
|
|
54
|
+
proxyUrl: z.ZodString;
|
|
55
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
56
|
+
ingestUrl: z.ZodString;
|
|
57
|
+
surfaceToken: z.ZodString;
|
|
58
|
+
}, z.core.$strip>]>>, z.ZodTransform<({
|
|
59
|
+
features: {
|
|
60
|
+
errors?: boolean | undefined;
|
|
61
|
+
replay?: boolean | undefined;
|
|
62
|
+
rageClick?: boolean | undefined;
|
|
63
|
+
aiSummary?: boolean | undefined;
|
|
64
|
+
pageEvents?: boolean | undefined;
|
|
65
|
+
serverTracing?: boolean | undefined;
|
|
66
|
+
};
|
|
67
|
+
metadata: {
|
|
68
|
+
buildId: string | null;
|
|
69
|
+
releaseId: string | null;
|
|
70
|
+
environment: "development" | "preview" | "production" | null;
|
|
71
|
+
runtime: "edge" | "browser" | "node" | null;
|
|
72
|
+
};
|
|
73
|
+
batch: {
|
|
74
|
+
size: number;
|
|
75
|
+
ms: number;
|
|
76
|
+
};
|
|
77
|
+
offline: {
|
|
78
|
+
enabled: boolean;
|
|
79
|
+
maxQueueSize: number;
|
|
80
|
+
};
|
|
81
|
+
} & {
|
|
82
|
+
proxyUrl: string;
|
|
83
|
+
}) | ({
|
|
84
|
+
features: {
|
|
85
|
+
errors?: boolean | undefined;
|
|
86
|
+
replay?: boolean | undefined;
|
|
87
|
+
rageClick?: boolean | undefined;
|
|
88
|
+
aiSummary?: boolean | undefined;
|
|
89
|
+
pageEvents?: boolean | undefined;
|
|
90
|
+
serverTracing?: boolean | undefined;
|
|
91
|
+
};
|
|
92
|
+
metadata: {
|
|
93
|
+
buildId: string | null;
|
|
94
|
+
releaseId: string | null;
|
|
95
|
+
environment: "development" | "preview" | "production" | null;
|
|
96
|
+
runtime: "edge" | "browser" | "node" | null;
|
|
97
|
+
};
|
|
98
|
+
batch: {
|
|
99
|
+
size: number;
|
|
100
|
+
ms: number;
|
|
101
|
+
};
|
|
102
|
+
offline: {
|
|
103
|
+
enabled: boolean;
|
|
104
|
+
maxQueueSize: number;
|
|
105
|
+
};
|
|
106
|
+
} & {
|
|
107
|
+
ingestUrl: string;
|
|
108
|
+
surfaceToken: string;
|
|
109
|
+
}), {
|
|
110
|
+
features: {
|
|
111
|
+
errors?: boolean | undefined;
|
|
112
|
+
replay?: boolean | undefined;
|
|
113
|
+
rageClick?: boolean | undefined;
|
|
114
|
+
aiSummary?: boolean | undefined;
|
|
115
|
+
pageEvents?: boolean | undefined;
|
|
116
|
+
serverTracing?: boolean | undefined;
|
|
117
|
+
};
|
|
118
|
+
metadata: {
|
|
119
|
+
buildId: string | null;
|
|
120
|
+
releaseId: string | null;
|
|
121
|
+
environment: "development" | "preview" | "production" | null;
|
|
122
|
+
runtime: "edge" | "browser" | "node" | null;
|
|
123
|
+
};
|
|
124
|
+
batch: {
|
|
125
|
+
size: number;
|
|
126
|
+
ms: number;
|
|
127
|
+
};
|
|
128
|
+
offline: {
|
|
129
|
+
enabled: boolean;
|
|
130
|
+
maxQueueSize: number;
|
|
131
|
+
};
|
|
132
|
+
} & ({
|
|
133
|
+
proxyUrl: string;
|
|
134
|
+
} | {
|
|
135
|
+
ingestUrl: string;
|
|
136
|
+
surfaceToken: string;
|
|
137
|
+
})>>;
|
|
138
|
+
type Config = z.output<typeof configSchema>;
|
|
139
|
+
declare const configInputSchema: z.ZodIntersection<z.ZodObject<{
|
|
140
|
+
features: z.ZodOptional<z.ZodDefault<z.ZodObject<{
|
|
141
|
+
errors: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
142
|
+
replay: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
143
|
+
rageClick: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
144
|
+
aiSummary: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
145
|
+
pageEvents: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
146
|
+
serverTracing: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
147
|
+
}, z.core.$strip>>>;
|
|
148
|
+
metadata: z.ZodOptional<z.ZodObject<{
|
|
149
|
+
buildId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
150
|
+
releaseId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
151
|
+
environment: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
152
|
+
development: "development";
|
|
153
|
+
preview: "preview";
|
|
154
|
+
production: "production";
|
|
155
|
+
}>>>;
|
|
156
|
+
runtime: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
157
|
+
edge: "edge";
|
|
158
|
+
browser: "browser";
|
|
159
|
+
node: "node";
|
|
160
|
+
}>>>;
|
|
161
|
+
}, z.core.$strip>>;
|
|
162
|
+
batch: z.ZodOptional<z.ZodObject<{
|
|
163
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
164
|
+
ms: z.ZodOptional<z.ZodNumber>;
|
|
165
|
+
}, z.core.$strip>>;
|
|
166
|
+
offline: z.ZodOptional<z.ZodDefault<z.ZodObject<{
|
|
167
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
168
|
+
maxQueueSize: z.ZodDefault<z.ZodNumber>;
|
|
169
|
+
}, z.core.$strip>>>;
|
|
170
|
+
}, z.core.$strip>, z.ZodUnion<readonly [z.ZodObject<{
|
|
171
|
+
proxyUrl: z.ZodString;
|
|
172
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
173
|
+
ingestUrl: z.ZodString;
|
|
174
|
+
surfaceToken: z.ZodString;
|
|
175
|
+
}, z.core.$strip>]>>;
|
|
176
|
+
type ConfigInput = z.infer<typeof configInputSchema>;
|
|
177
|
+
declare const persistenceTypeSchema: z.ZodEnum<{
|
|
178
|
+
localStorage: "localStorage";
|
|
179
|
+
sessionStorage: "sessionStorage";
|
|
180
|
+
memory: "memory";
|
|
181
|
+
}>;
|
|
182
|
+
type PersistenceType = z.infer<typeof persistenceTypeSchema>;
|
|
183
|
+
//#endregion
|
|
184
|
+
export { Config, ConfigInput, Features, OfflineStorage, PersistenceType, apiBaseUrlSchema, configInputSchema, configSchema, featuresSchema, offlineStorageSchema, persistenceTypeSchema };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.mts","names":[],"sources":["../../src/sdk/config.ts"],"sourcesContent":[],"mappings":";;;cAYa,sBAAoB,CAAA,CAAA,WAAA,CAAA,CAAA;;EAApB,YAAA,cAcoC,YAAA,CAAA;;KAErC,cAAA,GAAiB,CAAA,CAAE,aAAa;cAE/B,kBAAgB,CAAA,CAAA,mBAAA,CAAA,CAAA,WAAA,CAAA,CAAA;;;CAlBI,CAAA,CAAA,CAAA;AAAA,cAuBpB,cAvBoB,EAuBN,CAAA,CAAA,UAvBM,CAuBN,CAAA,CAAA,SAvBM,CAAA;EAAA,MAAA,eAAA,aAAA,aAAA,CAAA,CAAA;EAgBrB,MAAA,eAAc,aAAkB,aAAA,CAAA,CAAA;EAE/B,SAAA,eAGX,aAAA,aAAA,CAAA,CAAA;EAH2B,SAAA,eAAA,aAAA,aAAA,CAAA,CAAA;EAAA,UAAA,eAAA,aAAA,aAAA,CAAA,CAAA;EAAA,aAAA,eAAA,aAAA,aAAA,CAAA,CAAA;CAAA,eAAA,CAAA,CAAA;AAKhB,KAgBD,QAAA,GAAW,CAAA,CAAE,KAFtB,CAAA,OAEmC,cAFnC,CAAA;cAkCU,cAAY,CAAA,CAAA,QAAA,CAAA,CAAA,gBAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;MAhDE,OAAA,EAAA,SAAA;MAAA,IAAA,EAAA,MAAA;IAAA,CAAA,CAAA,CAAA;EAgBf,CAAA,eAAQ,CAAA;EAgCP,KAAA,cAaT,YAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAbqB,QAAA,EAAA;;;;;;;;;EAAA,CAAA;;IAAA,OAAA,EAAA,OAAA;IAAA,YAAA,EAAA,MAAA;EAeb,CAAA;AAEZ,CAAA,GAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAFD,MAAA,GAAS,CAAA,CAAE,cAAc;cAExB,mBAAiB,CAAA,CAAA,gBAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;IAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;EAAA,CAAA,eAAA,CAAA,CAAA,CAAA;CAAA,eAAA,CAAA,YAAA,CAAA,SAAA,YAAA,CAAA;EAuBlB,QAAA,aAAW;AAEvB,CAAA,eAAa,CAAA,aAIX,CAAA;EAEU,SAAA,aAAe;;;KARf,WAAA,GAAc,CAAA,CAAE,aAAa;cAE5B,uBAAqB,CAAA,CAAA;;;;;KAMtB,eAAA,GAAkB,CAAA,CAAE,aAAa"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { PLUGIN_MANIFEST } from "./plugins/manifest.mjs";
|
|
2
|
+
import { API_URL } from "@interfere/constants/api";
|
|
3
|
+
import { z } from "zod/v4";
|
|
4
|
+
import { envSchema, runtimeSchema } from "#sdk/runtime";
|
|
5
|
+
|
|
6
|
+
//#region src/sdk/config.ts
|
|
7
|
+
const DEFAULT_BATCH_SIZE = 10;
|
|
8
|
+
const DEFAULT_BATCH_MS = 250;
|
|
9
|
+
const offlineStorageSchema = z.object({
|
|
10
|
+
enabled: z.boolean().default(false),
|
|
11
|
+
maxQueueSize: z.number().default(100)
|
|
12
|
+
}).default({
|
|
13
|
+
enabled: false,
|
|
14
|
+
maxQueueSize: 100
|
|
15
|
+
});
|
|
16
|
+
const apiBaseUrlSchema = z.union([z.string(), z.enum([API_URL, "http://localhost:3001"])]);
|
|
17
|
+
const featuresSchema = z.object(Object.fromEntries(PLUGIN_MANIFEST.map((plugin) => [plugin.name, z.boolean().default(plugin.defaultEnabled)]))).partial().default(Object.fromEntries(PLUGIN_MANIFEST.map((plugin) => [plugin.name, plugin.defaultEnabled])));
|
|
18
|
+
const baseSdkConfigSchema = z.object({
|
|
19
|
+
features: featuresSchema,
|
|
20
|
+
metadata: z.object({
|
|
21
|
+
buildId: z.string().nullable(),
|
|
22
|
+
releaseId: z.string().nullable(),
|
|
23
|
+
environment: envSchema,
|
|
24
|
+
runtime: runtimeSchema
|
|
25
|
+
}),
|
|
26
|
+
batch: z.object({
|
|
27
|
+
size: z.number().default(DEFAULT_BATCH_SIZE),
|
|
28
|
+
ms: z.number().default(DEFAULT_BATCH_MS)
|
|
29
|
+
}).default(() => ({
|
|
30
|
+
size: DEFAULT_BATCH_SIZE,
|
|
31
|
+
ms: DEFAULT_BATCH_MS
|
|
32
|
+
})),
|
|
33
|
+
offline: offlineStorageSchema
|
|
34
|
+
});
|
|
35
|
+
const proxyConfigSchema = z.object({ proxyUrl: z.string() });
|
|
36
|
+
const directConfigSchema = z.object({
|
|
37
|
+
ingestUrl: z.string(),
|
|
38
|
+
surfaceToken: z.string()
|
|
39
|
+
});
|
|
40
|
+
const configSchema = baseSdkConfigSchema.and(z.union([proxyConfigSchema, directConfigSchema])).transform((cfg) => {
|
|
41
|
+
const replayDefault = cfg.metadata.environment !== "development";
|
|
42
|
+
if (cfg.features.replay === void 0) cfg.features = {
|
|
43
|
+
...cfg.features,
|
|
44
|
+
replay: replayDefault
|
|
45
|
+
};
|
|
46
|
+
return cfg;
|
|
47
|
+
});
|
|
48
|
+
const configInputSchema = z.object({
|
|
49
|
+
features: featuresSchema.optional(),
|
|
50
|
+
metadata: z.object({
|
|
51
|
+
buildId: z.string().nullable(),
|
|
52
|
+
releaseId: z.string().nullable(),
|
|
53
|
+
environment: envSchema,
|
|
54
|
+
runtime: runtimeSchema
|
|
55
|
+
}).partial().optional(),
|
|
56
|
+
batch: z.object({
|
|
57
|
+
size: z.number(),
|
|
58
|
+
ms: z.number()
|
|
59
|
+
}).partial().optional(),
|
|
60
|
+
offline: offlineStorageSchema.optional()
|
|
61
|
+
}).and(z.union([proxyConfigSchema, directConfigSchema]));
|
|
62
|
+
const persistenceTypeSchema = z.enum([
|
|
63
|
+
"localStorage",
|
|
64
|
+
"sessionStorage",
|
|
65
|
+
"memory"
|
|
66
|
+
]);
|
|
67
|
+
|
|
68
|
+
//#endregion
|
|
69
|
+
export { apiBaseUrlSchema, configInputSchema, configSchema, featuresSchema, offlineStorageSchema, persistenceTypeSchema };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.mjs","names":[],"sources":["../../src/sdk/config.ts"],"sourcesContent":["import { API_URL } from \"@interfere/constants/api\";\n\nimport { z } from \"zod/v4\";\n\nimport { envSchema, runtimeSchema } from \"#sdk/runtime\";\n\nimport type { PluginKey } from \"./plugins/lib/types.js\";\nimport { PLUGIN_MANIFEST } from \"./plugins/manifest.js\";\n\nconst DEFAULT_BATCH_SIZE = 10;\nconst DEFAULT_BATCH_MS = 250;\n\nexport const offlineStorageSchema = z\n .object({\n /**\n * Whether to enable offline storage (IndexedDB persistence).\n * When enabled, envelopes that fail to send are stored and retried when connectivity returns.\n * @default false\n */\n enabled: z.boolean().default(false),\n /**\n * Maximum number of envelopes to store offline.\n * @default 100\n */\n maxQueueSize: z.number().default(100),\n })\n .default({ enabled: false, maxQueueSize: 100 });\n\nexport type OfflineStorage = z.infer<typeof offlineStorageSchema>;\n\nexport const apiBaseUrlSchema = z.union([\n z.string(),\n z.enum([API_URL, \"http://localhost:3001\"]),\n]);\n\nexport const featuresSchema = z\n .object(\n Object.fromEntries(\n PLUGIN_MANIFEST.map((plugin) => [\n plugin.name,\n z.boolean().default(plugin.defaultEnabled),\n ])\n ) as Record<PluginKey, z.ZodDefault<z.ZodBoolean>>\n )\n .partial()\n .default(\n Object.fromEntries(\n PLUGIN_MANIFEST.map((plugin) => [plugin.name, plugin.defaultEnabled])\n )\n );\n\nexport type Features = z.infer<typeof featuresSchema>;\n\nconst baseSdkConfigSchema = z.object({\n features: featuresSchema,\n metadata: z.object({\n buildId: z.string().nullable(),\n releaseId: z.string().nullable(),\n environment: envSchema,\n runtime: runtimeSchema,\n }),\n batch: z\n .object({\n size: z.number().default(DEFAULT_BATCH_SIZE),\n ms: z.number().default(DEFAULT_BATCH_MS),\n })\n .default(() => ({ size: DEFAULT_BATCH_SIZE, ms: DEFAULT_BATCH_MS })),\n /**\n * Offline storage configuration.\n * When enabled, envelopes that fail to send are persisted to IndexedDB and\n * retried when connectivity returns.\n * @default { enabled: false }\n */\n offline: offlineStorageSchema,\n});\n\nconst proxyConfigSchema = z.object({ proxyUrl: z.string() });\n\nconst directConfigSchema = z.object({\n ingestUrl: z.string(),\n surfaceToken: z.string(),\n});\n\nexport const configSchema = baseSdkConfigSchema\n .and(z.union([proxyConfigSchema, directConfigSchema]))\n .transform((cfg) => {\n const env = cfg.metadata.environment;\n const replayDefault = env !== \"development\";\n\n if (cfg.features.replay === undefined) {\n cfg.features = {\n ...cfg.features,\n replay: replayDefault,\n };\n }\n return cfg;\n });\n\nexport type Config = z.output<typeof configSchema>;\n\nexport const configInputSchema = z\n .object({\n features: featuresSchema.optional(),\n metadata: z\n .object({\n buildId: z.string().nullable(),\n releaseId: z.string().nullable(),\n environment: envSchema,\n runtime: runtimeSchema,\n })\n .partial()\n .optional(),\n batch: z\n .object({\n size: z.number(),\n ms: z.number(),\n })\n .partial()\n .optional(),\n offline: offlineStorageSchema.optional(),\n })\n .and(z.union([proxyConfigSchema, directConfigSchema]));\n\nexport type ConfigInput = z.infer<typeof configInputSchema>;\n\nexport const persistenceTypeSchema = z.enum([\n \"localStorage\",\n \"sessionStorage\",\n \"memory\",\n]);\n\nexport type PersistenceType = z.infer<typeof persistenceTypeSchema>;\n"],"mappings":";;;;;;AASA,MAAM,qBAAqB;AAC3B,MAAM,mBAAmB;AAEzB,MAAa,uBAAuB,EACjC,OAAO;CAMN,SAAS,EAAE,SAAS,CAAC,QAAQ,MAAM;CAKnC,cAAc,EAAE,QAAQ,CAAC,QAAQ,IAAI;CACtC,CAAC,CACD,QAAQ;CAAE,SAAS;CAAO,cAAc;CAAK,CAAC;AAIjD,MAAa,mBAAmB,EAAE,MAAM,CACtC,EAAE,QAAQ,EACV,EAAE,KAAK,CAAC,SAAS,wBAAwB,CAAC,CAC3C,CAAC;AAEF,MAAa,iBAAiB,EAC3B,OACC,OAAO,YACL,gBAAgB,KAAK,WAAW,CAC9B,OAAO,MACP,EAAE,SAAS,CAAC,QAAQ,OAAO,eAAe,CAC3C,CAAC,CACH,CACF,CACA,SAAS,CACT,QACC,OAAO,YACL,gBAAgB,KAAK,WAAW,CAAC,OAAO,MAAM,OAAO,eAAe,CAAC,CACtE,CACF;AAIH,MAAM,sBAAsB,EAAE,OAAO;CACnC,UAAU;CACV,UAAU,EAAE,OAAO;EACjB,SAAS,EAAE,QAAQ,CAAC,UAAU;EAC9B,WAAW,EAAE,QAAQ,CAAC,UAAU;EAChC,aAAa;EACb,SAAS;EACV,CAAC;CACF,OAAO,EACJ,OAAO;EACN,MAAM,EAAE,QAAQ,CAAC,QAAQ,mBAAmB;EAC5C,IAAI,EAAE,QAAQ,CAAC,QAAQ,iBAAiB;EACzC,CAAC,CACD,eAAe;EAAE,MAAM;EAAoB,IAAI;EAAkB,EAAE;CAOtE,SAAS;CACV,CAAC;AAEF,MAAM,oBAAoB,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAE5D,MAAM,qBAAqB,EAAE,OAAO;CAClC,WAAW,EAAE,QAAQ;CACrB,cAAc,EAAE,QAAQ;CACzB,CAAC;AAEF,MAAa,eAAe,oBACzB,IAAI,EAAE,MAAM,CAAC,mBAAmB,mBAAmB,CAAC,CAAC,CACrD,WAAW,QAAQ;CAElB,MAAM,gBADM,IAAI,SAAS,gBACK;AAE9B,KAAI,IAAI,SAAS,WAAW,OAC1B,KAAI,WAAW;EACb,GAAG,IAAI;EACP,QAAQ;EACT;AAEH,QAAO;EACP;AAIJ,MAAa,oBAAoB,EAC9B,OAAO;CACN,UAAU,eAAe,UAAU;CACnC,UAAU,EACP,OAAO;EACN,SAAS,EAAE,QAAQ,CAAC,UAAU;EAC9B,WAAW,EAAE,QAAQ,CAAC,UAAU;EAChC,aAAa;EACb,SAAS;EACV,CAAC,CACD,SAAS,CACT,UAAU;CACb,OAAO,EACJ,OAAO;EACN,MAAM,EAAE,QAAQ;EAChB,IAAI,EAAE,QAAQ;EACf,CAAC,CACD,SAAS,CACT,UAAU;CACb,SAAS,qBAAqB,UAAU;CACzC,CAAC,CACD,IAAI,EAAE,MAAM,CAAC,mBAAmB,mBAAmB,CAAC,CAAC;AAIxD,MAAa,wBAAwB,EAAE,KAAK;CAC1C;CACA;CACA;CACD,CAAC"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { EventType } from "./plugins/lib/types.mjs";
|
|
2
|
+
import { z } from "zod/v4";
|
|
3
|
+
|
|
4
|
+
//#region src/sdk/envelope.d.ts
|
|
5
|
+
declare const envelopeVersion: z.ZodUnion<readonly [z.ZodLiteral<0>]>;
|
|
6
|
+
type EnvelopeVersion = z.infer<typeof envelopeVersion>;
|
|
7
|
+
declare const envelopeSchema: z.ZodIntersection<z.ZodObject<{
|
|
8
|
+
uuid: z.ZodUUID;
|
|
9
|
+
v: z.ZodUnion<readonly [z.ZodLiteral<0>]>;
|
|
10
|
+
runtime: z.ZodNullable<z.ZodEnum<{
|
|
11
|
+
edge: "edge";
|
|
12
|
+
browser: "browser";
|
|
13
|
+
node: "node";
|
|
14
|
+
}>>;
|
|
15
|
+
environment: z.ZodNullable<z.ZodEnum<{
|
|
16
|
+
development: "development";
|
|
17
|
+
preview: "preview";
|
|
18
|
+
production: "production";
|
|
19
|
+
}>>;
|
|
20
|
+
buildId: z.ZodNullable<z.ZodString>;
|
|
21
|
+
releaseId: z.ZodNullable<z.ZodString>;
|
|
22
|
+
clientTs: z.ZodInt;
|
|
23
|
+
sessionId: z.ZodNullable<z.ZodUUID>;
|
|
24
|
+
}, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
25
|
+
type: z.ZodLiteral<"error">;
|
|
26
|
+
payload: z.ZodObject<{
|
|
27
|
+
frames: z.ZodArray<z.ZodObject<{
|
|
28
|
+
file: z.ZodObject<{
|
|
29
|
+
reported: z.ZodNullable<z.ZodString>;
|
|
30
|
+
}, z.core.$strip>;
|
|
31
|
+
line: z.ZodObject<{
|
|
32
|
+
reported: z.ZodNullable<z.ZodNumber>;
|
|
33
|
+
}, z.core.$strip>;
|
|
34
|
+
column: z.ZodObject<{
|
|
35
|
+
reported: z.ZodNullable<z.ZodNumber>;
|
|
36
|
+
}, z.core.$strip>;
|
|
37
|
+
fn: z.ZodObject<{
|
|
38
|
+
reported: z.ZodNullable<z.ZodString>;
|
|
39
|
+
}, z.core.$strip>;
|
|
40
|
+
}, z.core.$strip>>;
|
|
41
|
+
message: z.ZodNullable<z.ZodString>;
|
|
42
|
+
name: z.ZodNullable<z.ZodString>;
|
|
43
|
+
stack: z.ZodNullable<z.ZodString>;
|
|
44
|
+
errorSource: z.ZodEnum<{
|
|
45
|
+
client: "client";
|
|
46
|
+
server: "server";
|
|
47
|
+
edge: "edge";
|
|
48
|
+
}>;
|
|
49
|
+
}, z.core.$strip>;
|
|
50
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
51
|
+
type: z.ZodLiteral<"session_summary">;
|
|
52
|
+
payload: z.ZodObject<{
|
|
53
|
+
summary: z.ZodString;
|
|
54
|
+
pageTitle: z.ZodString;
|
|
55
|
+
pageUrl: z.ZodURL;
|
|
56
|
+
contentLength: z.ZodNumber;
|
|
57
|
+
timestamp: z.ZodNumber;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
60
|
+
type: z.ZodLiteral<"pageview">;
|
|
61
|
+
payload: z.ZodObject<{
|
|
62
|
+
url: z.ZodString;
|
|
63
|
+
title: z.ZodOptional<z.ZodString>;
|
|
64
|
+
}, z.core.$strip>;
|
|
65
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
66
|
+
type: z.ZodLiteral<"pageleave">;
|
|
67
|
+
payload: z.ZodObject<{
|
|
68
|
+
url: z.ZodString;
|
|
69
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
70
|
+
}, z.core.$strip>;
|
|
71
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
72
|
+
type: z.ZodLiteral<"ui_event">;
|
|
73
|
+
payload: z.ZodObject<{
|
|
74
|
+
event: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
75
|
+
}, z.core.$strip>;
|
|
76
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
77
|
+
type: z.ZodLiteral<"replay_chunk">;
|
|
78
|
+
payload: z.ZodObject<{
|
|
79
|
+
ts: z.ZodNumber;
|
|
80
|
+
count: z.ZodNumber;
|
|
81
|
+
events: z.ZodArray<z.ZodString>;
|
|
82
|
+
}, z.core.$strip>;
|
|
83
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
84
|
+
type: z.ZodLiteral<"rage_click">;
|
|
85
|
+
payload: z.ZodObject<{
|
|
86
|
+
count: z.ZodNumber;
|
|
87
|
+
timeWindow: z.ZodNumber;
|
|
88
|
+
selector: z.ZodString;
|
|
89
|
+
text: z.ZodString;
|
|
90
|
+
x: z.ZodNumber;
|
|
91
|
+
y: z.ZodNumber;
|
|
92
|
+
timestamp: z.ZodNumber;
|
|
93
|
+
}, z.core.$strip>;
|
|
94
|
+
}, z.core.$strip>], "type">>;
|
|
95
|
+
type Envelope<Type extends EventType | undefined = undefined> = Type extends EventType ? Extract<z.infer<typeof envelopeSchema>, {
|
|
96
|
+
type: Type;
|
|
97
|
+
}> : z.infer<typeof envelopeSchema>;
|
|
98
|
+
declare const stampedEnvelopeSchema: z.ZodIntersection<z.ZodIntersection<z.ZodObject<{
|
|
99
|
+
uuid: z.ZodUUID;
|
|
100
|
+
v: z.ZodUnion<readonly [z.ZodLiteral<0>]>;
|
|
101
|
+
runtime: z.ZodNullable<z.ZodEnum<{
|
|
102
|
+
edge: "edge";
|
|
103
|
+
browser: "browser";
|
|
104
|
+
node: "node";
|
|
105
|
+
}>>;
|
|
106
|
+
environment: z.ZodNullable<z.ZodEnum<{
|
|
107
|
+
development: "development";
|
|
108
|
+
preview: "preview";
|
|
109
|
+
production: "production";
|
|
110
|
+
}>>;
|
|
111
|
+
buildId: z.ZodNullable<z.ZodString>;
|
|
112
|
+
releaseId: z.ZodNullable<z.ZodString>;
|
|
113
|
+
clientTs: z.ZodInt;
|
|
114
|
+
sessionId: z.ZodNullable<z.ZodUUID>;
|
|
115
|
+
}, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
116
|
+
type: z.ZodLiteral<"error">;
|
|
117
|
+
payload: z.ZodObject<{
|
|
118
|
+
frames: z.ZodArray<z.ZodObject<{
|
|
119
|
+
file: z.ZodObject<{
|
|
120
|
+
reported: z.ZodNullable<z.ZodString>;
|
|
121
|
+
}, z.core.$strip>;
|
|
122
|
+
line: z.ZodObject<{
|
|
123
|
+
reported: z.ZodNullable<z.ZodNumber>;
|
|
124
|
+
}, z.core.$strip>;
|
|
125
|
+
column: z.ZodObject<{
|
|
126
|
+
reported: z.ZodNullable<z.ZodNumber>;
|
|
127
|
+
}, z.core.$strip>;
|
|
128
|
+
fn: z.ZodObject<{
|
|
129
|
+
reported: z.ZodNullable<z.ZodString>;
|
|
130
|
+
}, z.core.$strip>;
|
|
131
|
+
}, z.core.$strip>>;
|
|
132
|
+
message: z.ZodNullable<z.ZodString>;
|
|
133
|
+
name: z.ZodNullable<z.ZodString>;
|
|
134
|
+
stack: z.ZodNullable<z.ZodString>;
|
|
135
|
+
errorSource: z.ZodEnum<{
|
|
136
|
+
client: "client";
|
|
137
|
+
server: "server";
|
|
138
|
+
edge: "edge";
|
|
139
|
+
}>;
|
|
140
|
+
}, z.core.$strip>;
|
|
141
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
142
|
+
type: z.ZodLiteral<"session_summary">;
|
|
143
|
+
payload: z.ZodObject<{
|
|
144
|
+
summary: z.ZodString;
|
|
145
|
+
pageTitle: z.ZodString;
|
|
146
|
+
pageUrl: z.ZodURL;
|
|
147
|
+
contentLength: z.ZodNumber;
|
|
148
|
+
timestamp: z.ZodNumber;
|
|
149
|
+
}, z.core.$strip>;
|
|
150
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
151
|
+
type: z.ZodLiteral<"pageview">;
|
|
152
|
+
payload: z.ZodObject<{
|
|
153
|
+
url: z.ZodString;
|
|
154
|
+
title: z.ZodOptional<z.ZodString>;
|
|
155
|
+
}, z.core.$strip>;
|
|
156
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
157
|
+
type: z.ZodLiteral<"pageleave">;
|
|
158
|
+
payload: z.ZodObject<{
|
|
159
|
+
url: z.ZodString;
|
|
160
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
161
|
+
}, z.core.$strip>;
|
|
162
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
163
|
+
type: z.ZodLiteral<"ui_event">;
|
|
164
|
+
payload: z.ZodObject<{
|
|
165
|
+
event: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
166
|
+
}, z.core.$strip>;
|
|
167
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
168
|
+
type: z.ZodLiteral<"replay_chunk">;
|
|
169
|
+
payload: z.ZodObject<{
|
|
170
|
+
ts: z.ZodNumber;
|
|
171
|
+
count: z.ZodNumber;
|
|
172
|
+
events: z.ZodArray<z.ZodString>;
|
|
173
|
+
}, z.core.$strip>;
|
|
174
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
175
|
+
type: z.ZodLiteral<"rage_click">;
|
|
176
|
+
payload: z.ZodObject<{
|
|
177
|
+
count: z.ZodNumber;
|
|
178
|
+
timeWindow: z.ZodNumber;
|
|
179
|
+
selector: z.ZodString;
|
|
180
|
+
text: z.ZodString;
|
|
181
|
+
x: z.ZodNumber;
|
|
182
|
+
y: z.ZodNumber;
|
|
183
|
+
timestamp: z.ZodNumber;
|
|
184
|
+
}, z.core.$strip>;
|
|
185
|
+
}, z.core.$strip>], "type">>, z.ZodObject<{
|
|
186
|
+
surfaceSlug: z.ZodString;
|
|
187
|
+
}, z.core.$strip>>;
|
|
188
|
+
type StampedEnvelope = z.infer<typeof stampedEnvelopeSchema>;
|
|
189
|
+
//#endregion
|
|
190
|
+
export { Envelope, EnvelopeVersion, StampedEnvelope, envelopeSchema, stampedEnvelopeSchema };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envelope.d.mts","names":[],"sources":["../../src/sdk/envelope.ts"],"sourcesContent":[],"mappings":";;;;cAiBM,iBAAe,CAAA,CAAA,mBAAA,CAAA,CAAA;KAET,eAAA,GAAkB,CAAA,CAAE,aAAa;AAFvC,cAiBO,cAjBQ,EAiBM,CAAA,CAAA,eAjBN,CAiBM,CAAA,CAAA,SAjBN,CAAA;EAET,IAAA,WAAA;EAeC,CAAA,YAAA,CAAA,SAqCZ,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;EArC0B,IAAA,cAAA,CAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuCf,sBAAsB,qCAChC,aAAa,YACT,QAAQ,CAAA,CAAE,aAAa;QAAyB;KAChD,CAAA,CAAE,aAAa;cAER,uBAAqB,CAAA,CAAA,gBAAA,CAAA,CAAA,gBAAA,CAAA,CAAA;;;;;;;;;;;;;;;EA5CP,QAAA,UAAA;EAAA,SAAA,eAAA,UAAA,CAAA;AAuC3B,CAAA,eAAoB,CAAA,yBAAA,CAAA,YAAA,CAAA;EAAc,IAAA,cAAA,CAAA,OAAA,CAAA;EAChC,OAAA,aAAA,CAAA;IAAa,MAAA,YAAA,YAAA,CAAA;MACc,IAAA,aAAA,CAAA;QAAb,QAAA,eAAA,YAAA,CAAA;MAAsC,CAAA,eAAA,CAAA;MAAhD,IAAA,aAAA,CAAA;QACe,QAAA,eAAA,YAAA,CAAA;MAAb,CAAA,eAAA,CAAA;MAAK,MAAA,aAAA,CAAA;QAEA,QAAA,eAKZ,YAAA,CAAA;;;;;;;;;;;;;;;;EALiC,IAAA,cAAA,CAAA,iBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAOtB,eAAA,GAAkB,CAAA,CAAE,aAAa"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { eventTypeSchema } from "./plugins/lib/types.mjs";
|
|
2
|
+
import { sessionSummaryPayloadSchema } from "#sdk/plugins/payload/ai-summary";
|
|
3
|
+
import { errorEnvelopePayloadSchema } from "#sdk/plugins/payload/errors";
|
|
4
|
+
import { pageleavePayloadSchema, pageviewPayloadSchema, uiEventPayloadSchema } from "#sdk/plugins/payload/page-events";
|
|
5
|
+
import { rageClickPayloadSchema } from "#sdk/plugins/payload/rage-click";
|
|
6
|
+
import { z } from "zod/v4";
|
|
7
|
+
import { envSchema, runtimeSchema } from "#sdk/runtime";
|
|
8
|
+
import { sessionIdSchema } from "#data/session";
|
|
9
|
+
import { surfaceSlugSchema } from "#data/surface";
|
|
10
|
+
import { replayChunkPayloadSchema } from "#sdk/plugins/payload/replay";
|
|
11
|
+
|
|
12
|
+
//#region src/sdk/envelope.ts
|
|
13
|
+
const envelopeVersion = z.union([z.literal(0)]);
|
|
14
|
+
const envelopeHeadersSchema = z.object({
|
|
15
|
+
uuid: z.uuidv7(),
|
|
16
|
+
v: envelopeVersion,
|
|
17
|
+
runtime: runtimeSchema,
|
|
18
|
+
environment: envSchema,
|
|
19
|
+
buildId: z.string().nullable(),
|
|
20
|
+
releaseId: z.string().nullable(),
|
|
21
|
+
clientTs: z.int(),
|
|
22
|
+
sessionId: sessionIdSchema.nullable()
|
|
23
|
+
});
|
|
24
|
+
const envelopeSchema = envelopeHeadersSchema.and(z.discriminatedUnion("type", [
|
|
25
|
+
z.object({
|
|
26
|
+
type: z.literal(eventTypeSchema.enum.error),
|
|
27
|
+
payload: errorEnvelopePayloadSchema
|
|
28
|
+
}),
|
|
29
|
+
z.object({
|
|
30
|
+
type: z.literal(eventTypeSchema.enum.session_summary),
|
|
31
|
+
payload: sessionSummaryPayloadSchema
|
|
32
|
+
}),
|
|
33
|
+
z.object({
|
|
34
|
+
type: z.literal(eventTypeSchema.enum.pageview),
|
|
35
|
+
payload: pageviewPayloadSchema
|
|
36
|
+
}),
|
|
37
|
+
z.object({
|
|
38
|
+
type: z.literal(eventTypeSchema.enum.pageleave),
|
|
39
|
+
payload: pageleavePayloadSchema
|
|
40
|
+
}),
|
|
41
|
+
z.object({
|
|
42
|
+
type: z.literal(eventTypeSchema.enum.ui_event),
|
|
43
|
+
payload: uiEventPayloadSchema
|
|
44
|
+
}),
|
|
45
|
+
z.object({
|
|
46
|
+
type: z.literal(eventTypeSchema.enum.replay_chunk),
|
|
47
|
+
payload: replayChunkPayloadSchema
|
|
48
|
+
}),
|
|
49
|
+
z.object({
|
|
50
|
+
type: z.literal(eventTypeSchema.enum.rage_click),
|
|
51
|
+
payload: rageClickPayloadSchema
|
|
52
|
+
})
|
|
53
|
+
]));
|
|
54
|
+
const stampedEnvelopeSchema = z.intersection(envelopeSchema, z.object({ surfaceSlug: surfaceSlugSchema }));
|
|
55
|
+
|
|
56
|
+
//#endregion
|
|
57
|
+
export { envelopeSchema, stampedEnvelopeSchema };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envelope.mjs","names":[],"sources":["../../src/sdk/envelope.ts"],"sourcesContent":["import { z } from \"zod/v4\";\n\nimport { sessionIdSchema } from \"#data/session\";\nimport { surfaceSlugSchema } from \"#data/surface\";\nimport { sessionSummaryPayloadSchema } from \"#sdk/plugins/payload/ai-summary\";\nimport { errorEnvelopePayloadSchema } from \"#sdk/plugins/payload/errors\";\nimport {\n pageleavePayloadSchema,\n pageviewPayloadSchema,\n uiEventPayloadSchema,\n} from \"#sdk/plugins/payload/page-events\";\nimport { rageClickPayloadSchema } from \"#sdk/plugins/payload/rage-click\";\nimport { replayChunkPayloadSchema } from \"#sdk/plugins/payload/replay\";\nimport { envSchema, runtimeSchema } from \"#sdk/runtime\";\n\nimport { type EventType, eventTypeSchema } from \"./plugins/lib/types.js\";\n\nconst envelopeVersion = z.union([z.literal(0)]);\n\nexport type EnvelopeVersion = z.infer<typeof envelopeVersion>;\n\nconst envelopeHeadersSchema = z.object({\n uuid: z.uuidv7(),\n v: envelopeVersion,\n\n runtime: runtimeSchema,\n environment: envSchema,\n buildId: z.string().nullable(),\n releaseId: z.string().nullable(),\n\n clientTs: z.int(),\n sessionId: sessionIdSchema.nullable(),\n});\n\nexport const envelopeSchema = envelopeHeadersSchema.and(\n z.discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(eventTypeSchema.enum.error),\n payload: errorEnvelopePayloadSchema,\n }),\n\n z.object({\n type: z.literal(eventTypeSchema.enum.session_summary),\n payload: sessionSummaryPayloadSchema,\n }),\n\n z.object({\n type: z.literal(eventTypeSchema.enum.pageview),\n payload: pageviewPayloadSchema,\n }),\n\n z.object({\n type: z.literal(eventTypeSchema.enum.pageleave),\n payload: pageleavePayloadSchema,\n }),\n\n z.object({\n type: z.literal(eventTypeSchema.enum.ui_event),\n payload: uiEventPayloadSchema,\n }),\n\n z.object({\n type: z.literal(eventTypeSchema.enum.replay_chunk),\n payload: replayChunkPayloadSchema,\n }),\n\n z.object({\n type: z.literal(eventTypeSchema.enum.rage_click),\n payload: rageClickPayloadSchema,\n }),\n ])\n);\n\nexport type Envelope<Type extends EventType | undefined = undefined> =\n Type extends EventType\n ? Extract<z.infer<typeof envelopeSchema>, { type: Type }>\n : z.infer<typeof envelopeSchema>;\n\nexport const stampedEnvelopeSchema = z.intersection(\n envelopeSchema,\n z.object({\n surfaceSlug: surfaceSlugSchema,\n })\n);\n\nexport type StampedEnvelope = z.infer<typeof stampedEnvelopeSchema>;\n"],"mappings":";;;;;;;;;;;;AAiBA,MAAM,kBAAkB,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;AAI/C,MAAM,wBAAwB,EAAE,OAAO;CACrC,MAAM,EAAE,QAAQ;CAChB,GAAG;CAEH,SAAS;CACT,aAAa;CACb,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,WAAW,EAAE,QAAQ,CAAC,UAAU;CAEhC,UAAU,EAAE,KAAK;CACjB,WAAW,gBAAgB,UAAU;CACtC,CAAC;AAEF,MAAa,iBAAiB,sBAAsB,IAClD,EAAE,mBAAmB,QAAQ;CAC3B,EAAE,OAAO;EACP,MAAM,EAAE,QAAQ,gBAAgB,KAAK,MAAM;EAC3C,SAAS;EACV,CAAC;CAEF,EAAE,OAAO;EACP,MAAM,EAAE,QAAQ,gBAAgB,KAAK,gBAAgB;EACrD,SAAS;EACV,CAAC;CAEF,EAAE,OAAO;EACP,MAAM,EAAE,QAAQ,gBAAgB,KAAK,SAAS;EAC9C,SAAS;EACV,CAAC;CAEF,EAAE,OAAO;EACP,MAAM,EAAE,QAAQ,gBAAgB,KAAK,UAAU;EAC/C,SAAS;EACV,CAAC;CAEF,EAAE,OAAO;EACP,MAAM,EAAE,QAAQ,gBAAgB,KAAK,SAAS;EAC9C,SAAS;EACV,CAAC;CAEF,EAAE,OAAO;EACP,MAAM,EAAE,QAAQ,gBAAgB,KAAK,aAAa;EAClD,SAAS;EACV,CAAC;CAEF,EAAE,OAAO;EACP,MAAM,EAAE,QAAQ,gBAAgB,KAAK,WAAW;EAChD,SAAS;EACV,CAAC;CACH,CAAC,CACH;AAOD,MAAa,wBAAwB,EAAE,aACrC,gBACA,EAAE,OAAO,EACP,aAAa,mBACd,CAAC,CACH"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/sdk/packages.d.ts
|
|
4
|
+
declare const interferePackageSchema: z.ZodUnion<readonly [z.ZodLiteral<"react">, z.ZodLiteral<"next">, z.ZodString]>;
|
|
5
|
+
type InterferePackage = z.infer<typeof interferePackageSchema>;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { InterferePackage, interferePackageSchema };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packages.d.mts","names":[],"sources":["../../src/sdk/packages.ts"],"sourcesContent":[],"mappings":";;;cAEa,wBAAsB,CAAA,CAAA,mBAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,oBAAA,CAAA,CAAA;KAMvB,gBAAA,GAAmB,CAAA,CAAE,aAAa"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packages.mjs","names":[],"sources":["../../src/sdk/packages.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const interferePackageSchema = z.union([\n z.literal(\"react\"),\n z.literal(\"next\"),\n z.string(),\n]);\n\nexport type InterferePackage = z.infer<typeof interferePackageSchema>;\n"],"mappings":";;;AAEA,MAAa,yBAAyB,EAAE,MAAM;CAC5C,EAAE,QAAQ,QAAQ;CAClB,EAAE,QAAQ,OAAO;CACjB,EAAE,QAAQ;CACX,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import z$1 from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/sdk/plugins/lib/schemas.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Shape of a single event registration within a plugin.
|
|
7
|
+
* The `payloadSchema` is optional and can be any Zod schema.
|
|
8
|
+
*/
|
|
9
|
+
interface PluginEventRegistration {
|
|
10
|
+
readonly name: string;
|
|
11
|
+
readonly enrich: boolean;
|
|
12
|
+
readonly payloadSchema?: z$1.ZodTypeAny;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Shape of a single plugin registration.
|
|
16
|
+
*/
|
|
17
|
+
interface PluginRegistration {
|
|
18
|
+
readonly name: string;
|
|
19
|
+
readonly defaultEnabled: boolean;
|
|
20
|
+
readonly events: readonly PluginEventRegistration[];
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { PluginEventRegistration, PluginRegistration };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.mts","names":[],"sources":["../../../../src/sdk/plugins/lib/schemas.ts"],"sourcesContent":[],"mappings":";;;;;;AAMA;AASA;UATiB,uBAAA;;;2BAGU,GAAA,CAAE;;;;;UAMZ,kBAAA;;;4BAGW"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { PLUGIN_MANIFEST } from "../manifest.mjs";
|
|
2
|
+
import z$1 from "zod";
|
|
3
|
+
|
|
4
|
+
//#region src/sdk/plugins/lib/types.d.ts
|
|
5
|
+
type PluginManifestType = typeof PLUGIN_MANIFEST;
|
|
6
|
+
type PluginRegistrationInManifest = PluginManifestType[number];
|
|
7
|
+
type PluginKey = PluginRegistrationInManifest["name"];
|
|
8
|
+
declare const eventTypeSchema: z$1.ZodEnum<{
|
|
9
|
+
error: "error";
|
|
10
|
+
replay_chunk: "replay_chunk";
|
|
11
|
+
rage_click: "rage_click";
|
|
12
|
+
session_summary: "session_summary";
|
|
13
|
+
pageview: "pageview";
|
|
14
|
+
pageleave: "pageleave";
|
|
15
|
+
ui_event: "ui_event";
|
|
16
|
+
}>;
|
|
17
|
+
type EventType = z$1.infer<typeof eventTypeSchema>;
|
|
18
|
+
//#endregion
|
|
19
|
+
export { EventType, PluginKey, eventTypeSchema };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../../../../src/sdk/plugins/lib/types.ts"],"sourcesContent":[],"mappings":";;;;KAIK,kBAAA,UAA4B;KAE5B,4BAAA,GAA+B;AAF/B,KAIO,SAAA,GAAY,4BAJwB,CAAA,MAAA,CAAA;AAE3C,cAIQ,eAJoB,EAIL,GAAA,CAAA,OAJQ,CAAA;EAExB,KAAA,EAAA,OAAS;EAER,YAAA,EAAA,cAEZ;EAEW,UAAA,EAAS,YAAkB;;;;;;KAA3B,SAAA,GAAY,GAAA,CAAE,aAAa"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PLUGIN_MANIFEST } from "../manifest.mjs";
|
|
2
|
+
import z$1 from "zod";
|
|
3
|
+
|
|
4
|
+
//#region src/sdk/plugins/lib/types.ts
|
|
5
|
+
const eventTypeSchema = z$1.enum(PLUGIN_MANIFEST.flatMap(({ events }) => events.map(({ name }) => name)));
|
|
6
|
+
|
|
7
|
+
//#endregion
|
|
8
|
+
export { eventTypeSchema };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.mjs","names":["z"],"sources":["../../../../src/sdk/plugins/lib/types.ts"],"sourcesContent":["import z from \"zod\";\n\nimport { PLUGIN_MANIFEST } from \"../manifest.js\";\n\ntype PluginManifestType = typeof PLUGIN_MANIFEST;\n\ntype PluginRegistrationInManifest = PluginManifestType[number];\n\nexport type PluginKey = PluginRegistrationInManifest[\"name\"];\n\nexport const eventTypeSchema = z.enum(\n PLUGIN_MANIFEST.flatMap(({ events }) => events.map(({ name }) => name))\n);\n\nexport type EventType = z.infer<typeof eventTypeSchema>;\n"],"mappings":";;;;AAUA,MAAa,kBAAkBA,IAAE,KAC/B,gBAAgB,SAAS,EAAE,aAAa,OAAO,KAAK,EAAE,WAAW,KAAK,CAAC,CACxE"}
|