@debugbundle/shared-types 1.0.2 → 1.2.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-rule-schemas.d.ts","sourceRoot":"","sources":["../src/capture-rule-schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,385 @@
1
+ import { z } from "zod";
2
+ const CAPTURE_RULE_EVENT_TYPES = [
3
+ "backend_exception",
4
+ "request_event",
5
+ "log_event",
6
+ "frontend_breadcrumb",
7
+ "frontend_exception",
8
+ "deploy_metadata",
9
+ "error_suppressed",
10
+ "probe_event",
11
+ ];
12
+ const CAPTURE_RULE_RUNTIME_VALUES = [
13
+ "browser",
14
+ "node",
15
+ "python",
16
+ "php",
17
+ "java",
18
+ "go",
19
+ "ruby",
20
+ "unknown",
21
+ ];
22
+ export const CaptureRuleActionValues = ["demote", "sample", "drop"];
23
+ export const CaptureRuleActionSchema = z.enum(CaptureRuleActionValues);
24
+ export const CaptureRuleSampleEventClassValues = ["preserve", "context"];
25
+ export const CaptureRuleSampleEventClassSchema = z.enum(CaptureRuleSampleEventClassValues);
26
+ export const CaptureRuleRuntimeSchema = z.enum(CAPTURE_RULE_RUNTIME_VALUES);
27
+ export const CaptureRuleEventTypeSchema = z.enum(CAPTURE_RULE_EVENT_TYPES);
28
+ export const BrowserEventKindSchema = z.enum(["window_error", "resource_error"]);
29
+ export const CaptureRuleClientKindSchema = z.enum(["human", "bot", "unknown"]);
30
+ function normalizeOptionalTrimmedString(value) {
31
+ const trimmed = value?.trim();
32
+ return trimmed && trimmed.length > 0 ? trimmed : undefined;
33
+ }
34
+ function normalizeOptionalLowercaseHost(value) {
35
+ const trimmed = normalizeOptionalTrimmedString(value);
36
+ return trimmed?.toLowerCase();
37
+ }
38
+ function normalizeOptionalPath(value) {
39
+ const trimmed = normalizeOptionalTrimmedString(value);
40
+ if (trimmed === undefined) {
41
+ return undefined;
42
+ }
43
+ return trimmed.startsWith("/") ? trimmed : `/${trimmed}`;
44
+ }
45
+ function hasValue(value) {
46
+ return value !== undefined && value !== null;
47
+ }
48
+ const UrlMatcherSchema = z
49
+ .object({
50
+ host: z.string().min(1).max(255).optional(),
51
+ host_suffix: z.string().min(1).max(255).optional(),
52
+ path_prefix: z.string().min(1).max(1024).optional(),
53
+ path_equals: z.string().min(1).max(1024).optional(),
54
+ })
55
+ .transform((value) => {
56
+ const normalized = {};
57
+ const host = normalizeOptionalLowercaseHost(value.host);
58
+ const hostSuffix = normalizeOptionalLowercaseHost(value.host_suffix);
59
+ const pathPrefix = normalizeOptionalPath(value.path_prefix);
60
+ const pathEquals = normalizeOptionalPath(value.path_equals);
61
+ if (host !== undefined) {
62
+ normalized.host = host;
63
+ }
64
+ if (hostSuffix !== undefined) {
65
+ normalized.host_suffix = hostSuffix;
66
+ }
67
+ if (pathPrefix !== undefined) {
68
+ normalized.path_prefix = pathPrefix;
69
+ }
70
+ if (pathEquals !== undefined) {
71
+ normalized.path_equals = pathEquals;
72
+ }
73
+ return normalized;
74
+ })
75
+ .refine((value) => hasValue(value.host) || hasValue(value.host_suffix) || hasValue(value.path_prefix) || hasValue(value.path_equals), {
76
+ message: "URL matchers must include at least one host or path constraint.",
77
+ });
78
+ const StatusRangeSchema = z
79
+ .object({
80
+ start: z.number().int().min(100).max(599),
81
+ end: z.number().int().min(100).max(599),
82
+ })
83
+ .refine((value) => value.start <= value.end, {
84
+ message: "Status range start must be less than or equal to end.",
85
+ });
86
+ export const CaptureRuleFingerprintSchema = z.object({
87
+ version: z.string().min(1).max(32),
88
+ value: z.string().min(1).max(256),
89
+ });
90
+ function normalizeStringArray(values) {
91
+ if (values === undefined) {
92
+ return undefined;
93
+ }
94
+ return Array.from(new Set(values.map((value) => value.trim()).filter((value) => value.length > 0)));
95
+ }
96
+ function normalizeNumberArray(values) {
97
+ if (values === undefined) {
98
+ return undefined;
99
+ }
100
+ return Array.from(new Set(values)).sort((left, right) => left - right);
101
+ }
102
+ export const CaptureRuleMatcherSchema = z
103
+ .object({
104
+ event_types: z.array(CaptureRuleEventTypeSchema).min(1).optional(),
105
+ services: z.array(z.string().min(1).max(120)).min(1).optional(),
106
+ environments: z.array(z.string().min(1).max(120)).min(1).optional(),
107
+ runtime: z.array(CaptureRuleRuntimeSchema).min(1).optional(),
108
+ first_party: z.boolean().optional(),
109
+ error_name: z.string().min(1).max(120).optional(),
110
+ message_contains: z.string().min(1).max(500).optional(),
111
+ message_equals: z.string().min(1).max(500).optional(),
112
+ browser_event_kind: BrowserEventKindSchema.optional(),
113
+ browser_event_opaque: z.boolean().optional(),
114
+ client_kind: CaptureRuleClientKindSchema.optional(),
115
+ bot_family: z.string().min(1).max(120).optional(),
116
+ resource_url: UrlMatcherSchema.optional(),
117
+ request_url: UrlMatcherSchema.optional(),
118
+ status_codes: z.array(z.number().int().min(100).max(599)).min(1).optional(),
119
+ status_ranges: z.array(StatusRangeSchema).min(1).optional(),
120
+ fingerprint: CaptureRuleFingerprintSchema.optional(),
121
+ })
122
+ .transform((value) => {
123
+ const normalized = {};
124
+ const eventTypes = normalizeStringArray(value.event_types);
125
+ const services = normalizeStringArray(value.services);
126
+ const environments = normalizeStringArray(value.environments);
127
+ const runtime = normalizeStringArray(value.runtime);
128
+ const errorName = normalizeOptionalTrimmedString(value.error_name);
129
+ const messageContains = normalizeOptionalTrimmedString(value.message_contains);
130
+ const messageEquals = normalizeOptionalTrimmedString(value.message_equals);
131
+ const botFamily = normalizeOptionalTrimmedString(value.bot_family);
132
+ const statusCodes = normalizeNumberArray(value.status_codes);
133
+ if (eventTypes !== undefined) {
134
+ normalized.event_types = eventTypes;
135
+ }
136
+ if (services !== undefined) {
137
+ normalized.services = services;
138
+ }
139
+ if (environments !== undefined) {
140
+ normalized.environments = environments;
141
+ }
142
+ if (runtime !== undefined) {
143
+ normalized.runtime = runtime;
144
+ }
145
+ if (value.first_party !== undefined) {
146
+ normalized.first_party = value.first_party;
147
+ }
148
+ if (errorName !== undefined) {
149
+ normalized.error_name = errorName;
150
+ }
151
+ if (messageContains !== undefined) {
152
+ normalized.message_contains = messageContains;
153
+ }
154
+ if (messageEquals !== undefined) {
155
+ normalized.message_equals = messageEquals;
156
+ }
157
+ if (value.browser_event_kind !== undefined) {
158
+ normalized.browser_event_kind = value.browser_event_kind;
159
+ }
160
+ if (value.browser_event_opaque !== undefined) {
161
+ normalized.browser_event_opaque = value.browser_event_opaque;
162
+ }
163
+ if (value.client_kind !== undefined) {
164
+ normalized.client_kind = value.client_kind;
165
+ }
166
+ if (botFamily !== undefined) {
167
+ normalized.bot_family = botFamily;
168
+ }
169
+ if (value.resource_url !== undefined) {
170
+ normalized.resource_url = value.resource_url;
171
+ }
172
+ if (value.request_url !== undefined) {
173
+ normalized.request_url = value.request_url;
174
+ }
175
+ if (statusCodes !== undefined) {
176
+ normalized.status_codes = statusCodes;
177
+ }
178
+ if (value.status_ranges !== undefined) {
179
+ normalized.status_ranges = value.status_ranges;
180
+ }
181
+ if (value.fingerprint !== undefined) {
182
+ normalized.fingerprint = value.fingerprint;
183
+ }
184
+ return normalized;
185
+ })
186
+ .superRefine((value, context) => {
187
+ const narrowingKeys = [
188
+ "services",
189
+ "environments",
190
+ "runtime",
191
+ "first_party",
192
+ "error_name",
193
+ "message_contains",
194
+ "message_equals",
195
+ "browser_event_kind",
196
+ "browser_event_opaque",
197
+ "client_kind",
198
+ "bot_family",
199
+ "resource_url",
200
+ "request_url",
201
+ "status_codes",
202
+ "status_ranges",
203
+ "fingerprint",
204
+ ];
205
+ if (!narrowingKeys.some((key) => hasValue(value[key]))) {
206
+ context.addIssue({
207
+ code: z.ZodIssueCode.custom,
208
+ message: "Capture rules must include at least one narrowing field beyond event_types.",
209
+ });
210
+ }
211
+ if (value.browser_event_kind === "resource_error") {
212
+ const hasResourceConstraint = hasValue(value.resource_url) || hasValue(value.fingerprint);
213
+ if (!hasResourceConstraint) {
214
+ context.addIssue({
215
+ code: z.ZodIssueCode.custom,
216
+ message: "Resource-error rules require a resource URL constraint or an exact fingerprint.",
217
+ });
218
+ }
219
+ }
220
+ });
221
+ const CaptureRuleCoreObjectSchema = z
222
+ .object({
223
+ name: z.string().trim().min(1).max(120),
224
+ description: z.string().trim().max(500).nullable(),
225
+ enabled: z.boolean(),
226
+ action: CaptureRuleActionSchema,
227
+ matcher: CaptureRuleMatcherSchema,
228
+ sample_rate: z.number().min(0).max(1).nullable(),
229
+ sample_event_class: CaptureRuleSampleEventClassSchema.nullable(),
230
+ created_by_user_id: z.string().min(1).max(120).nullable(),
231
+ created_from_incident_id: z.string().min(1).max(120).nullable(),
232
+ created_from_event_id: z.string().min(1).max(120).nullable(),
233
+ expires_at: z.string().datetime().nullable(),
234
+ });
235
+ function addCaptureRuleActionValidation(schema) {
236
+ return schema.superRefine((value, context) => {
237
+ if (value["action"] === "sample") {
238
+ if (value["sample_rate"] === null) {
239
+ context.addIssue({
240
+ code: z.ZodIssueCode.custom,
241
+ path: ["sample_rate"],
242
+ message: "Sample rules require sample_rate.",
243
+ });
244
+ }
245
+ if (value["sample_event_class"] === null) {
246
+ context.addIssue({
247
+ code: z.ZodIssueCode.custom,
248
+ path: ["sample_event_class"],
249
+ message: "Sample rules require sample_event_class.",
250
+ });
251
+ }
252
+ return;
253
+ }
254
+ if (value["sample_rate"] !== null) {
255
+ context.addIssue({
256
+ code: z.ZodIssueCode.custom,
257
+ path: ["sample_rate"],
258
+ message: "Only sample rules can set sample_rate.",
259
+ });
260
+ }
261
+ if (value["sample_event_class"] !== null) {
262
+ context.addIssue({
263
+ code: z.ZodIssueCode.custom,
264
+ path: ["sample_event_class"],
265
+ message: "Only sample rules can set sample_event_class.",
266
+ });
267
+ }
268
+ });
269
+ }
270
+ export const CaptureRuleSchema = addCaptureRuleActionValidation(CaptureRuleCoreObjectSchema.extend({
271
+ id: z.string().uuid(),
272
+ project_id: z.string().min(1).max(120),
273
+ hit_count: z.number().int().nonnegative(),
274
+ last_matched_at: z.string().datetime().nullable(),
275
+ created_at: z.string().datetime(),
276
+ updated_at: z.string().datetime(),
277
+ }));
278
+ export const CaptureRuleCreateSchema = z
279
+ .object({
280
+ name: z.string().trim().min(1).max(120),
281
+ description: z.string().trim().max(500).nullable().default(null),
282
+ enabled: z.boolean().default(true),
283
+ action: CaptureRuleActionSchema,
284
+ matcher: CaptureRuleMatcherSchema,
285
+ sample_rate: z.number().min(0).max(1).nullable().optional(),
286
+ sample_event_class: CaptureRuleSampleEventClassSchema.nullable().optional(),
287
+ created_by_user_id: z.string().min(1).max(120).nullable().default(null),
288
+ created_from_incident_id: z.string().min(1).max(120).nullable().default(null),
289
+ created_from_event_id: z.string().min(1).max(120).nullable().default(null),
290
+ expires_at: z.string().datetime().nullable().default(null),
291
+ })
292
+ .superRefine((value, context) => {
293
+ if (value.action === "sample") {
294
+ if (value.sample_rate === undefined || value.sample_rate === null) {
295
+ context.addIssue({
296
+ code: z.ZodIssueCode.custom,
297
+ path: ["sample_rate"],
298
+ message: "Sample rules require sample_rate.",
299
+ });
300
+ }
301
+ return;
302
+ }
303
+ if (value.sample_rate !== undefined && value.sample_rate !== null) {
304
+ context.addIssue({
305
+ code: z.ZodIssueCode.custom,
306
+ path: ["sample_rate"],
307
+ message: "Only sample rules can set sample_rate.",
308
+ });
309
+ }
310
+ if (value.sample_event_class !== undefined && value.sample_event_class !== null) {
311
+ context.addIssue({
312
+ code: z.ZodIssueCode.custom,
313
+ path: ["sample_event_class"],
314
+ message: "Only sample rules can set sample_event_class.",
315
+ });
316
+ }
317
+ })
318
+ .transform((value) => ({
319
+ ...value,
320
+ sample_rate: value.action === "sample" ? value.sample_rate : null,
321
+ sample_event_class: value.action === "sample" ? (value.sample_event_class ?? "preserve") : null,
322
+ }));
323
+ export const CaptureRuleUpdateSchema = z
324
+ .object({
325
+ name: z.string().trim().min(1).max(120).optional(),
326
+ description: z.string().trim().max(500).nullable().optional(),
327
+ enabled: z.boolean().optional(),
328
+ action: CaptureRuleActionSchema.optional(),
329
+ matcher: CaptureRuleMatcherSchema.optional(),
330
+ sample_rate: z.number().min(0).max(1).nullable().optional(),
331
+ sample_event_class: CaptureRuleSampleEventClassSchema.nullable().optional(),
332
+ expires_at: z.string().datetime().nullable().optional(),
333
+ })
334
+ .superRefine((value, context) => {
335
+ if (Object.keys(value).length === 0) {
336
+ context.addIssue({
337
+ code: z.ZodIssueCode.custom,
338
+ message: "At least one capture rule field must be provided.",
339
+ });
340
+ }
341
+ const resolvedAction = value.action;
342
+ if (resolvedAction === "sample") {
343
+ if (!("sample_rate" in value)) {
344
+ context.addIssue({
345
+ code: z.ZodIssueCode.custom,
346
+ path: ["sample_rate"],
347
+ message: "Sample rule updates must include sample_rate when changing action to sample.",
348
+ });
349
+ }
350
+ if (!("sample_event_class" in value)) {
351
+ context.addIssue({
352
+ code: z.ZodIssueCode.custom,
353
+ path: ["sample_event_class"],
354
+ message: "Sample rule updates must include sample_event_class when changing action to sample.",
355
+ });
356
+ }
357
+ return;
358
+ }
359
+ if ("sample_rate" in value) {
360
+ context.addIssue({
361
+ code: z.ZodIssueCode.custom,
362
+ path: ["sample_rate"],
363
+ message: "Sample rule fields can only be updated while setting action to sample.",
364
+ });
365
+ }
366
+ if ("sample_event_class" in value) {
367
+ context.addIssue({
368
+ code: z.ZodIssueCode.custom,
369
+ path: ["sample_event_class"],
370
+ message: "Sample rule fields can only be updated while setting action to sample.",
371
+ });
372
+ }
373
+ });
374
+ export const CaptureRuleResponseSchema = z.object({
375
+ rule: CaptureRuleSchema,
376
+ });
377
+ export const CaptureRulesResponseSchema = z.object({
378
+ access_mode: z.enum(["manage", "preview"]),
379
+ rules: z.array(CaptureRuleSchema),
380
+ });
381
+ export const CaptureRulesFileSchema = z.object({
382
+ version: z.literal(1),
383
+ rules: z.array(CaptureRuleSchema),
384
+ });
385
+ //# sourceMappingURL=capture-rule-schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-rule-schemas.js","sourceRoot":"","sources":["../src/capture-rule-schemas.ts"],"names":[],"mappings":"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"}