@interfere/types 1.0.3 → 5.0.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.
Files changed (46) hide show
  1. package/dist/data/source-maps.d.mts +2 -2
  2. package/dist/data/source-maps.mjs +1 -1
  3. package/dist/data/source-maps.mjs.map +1 -1
  4. package/dist/events/error.d.mts +2 -1
  5. package/dist/events/error.d.mts.map +1 -1
  6. package/dist/events/error.mjs +3 -2
  7. package/dist/events/error.mjs.map +1 -1
  8. package/dist/events/index.d.mts +14 -10
  9. package/dist/events/index.d.mts.map +1 -1
  10. package/dist/events/replay-chunk.d.mts +1 -0
  11. package/dist/events/replay-chunk.d.mts.map +1 -1
  12. package/dist/events/replay-chunk.mjs +2 -1
  13. package/dist/events/replay-chunk.mjs.map +1 -1
  14. package/dist/integrations/index.d.mts +3 -2
  15. package/dist/integrations/index.d.mts.map +1 -1
  16. package/dist/integrations/index.mjs +19 -7
  17. package/dist/integrations/index.mjs.map +1 -1
  18. package/dist/integrations/platforms/github.d.mts +1 -5
  19. package/dist/integrations/platforms/github.mjs +1 -5
  20. package/dist/integrations/platforms/github.mjs.map +1 -1
  21. package/dist/integrations/platforms/vercel.d.mts +55 -15
  22. package/dist/integrations/platforms/vercel.d.mts.map +1 -1
  23. package/dist/integrations/platforms/vercel.mjs +20 -16
  24. package/dist/integrations/platforms/vercel.mjs.map +1 -1
  25. package/dist/releases/definition.d.mts +4 -2
  26. package/dist/releases/definition.d.mts.map +1 -1
  27. package/dist/releases/definition.mjs +2 -1
  28. package/dist/releases/definition.mjs.map +1 -1
  29. package/dist/sdk/config.d.mts +22 -17
  30. package/dist/sdk/config.d.mts.map +1 -1
  31. package/dist/sdk/config.mjs +7 -3
  32. package/dist/sdk/config.mjs.map +1 -1
  33. package/dist/sdk/envelope.d.mts +7 -5
  34. package/dist/sdk/envelope.d.mts.map +1 -1
  35. package/dist/sdk/envelope.mjs +1 -0
  36. package/dist/sdk/envelope.mjs.map +1 -1
  37. package/dist/sdk/plugins/manifest.d.mts +1 -1
  38. package/dist/sdk/plugins/manifest.mjs +1 -1
  39. package/dist/sdk/plugins/manifest.mjs.map +1 -1
  40. package/dist/sdk/plugins/payload/errors.d.mts +1 -1
  41. package/dist/sdk/remote-config.d.mts +11 -0
  42. package/dist/sdk/remote-config.d.mts.map +1 -0
  43. package/dist/sdk/remote-config.mjs +5 -0
  44. package/dist/sdk/remote-config.mjs.map +1 -0
  45. package/dist/sdk/runtime.d.mts +1 -1
  46. package/package.json +5 -5
@@ -16,7 +16,7 @@ declare const sourceMapManifestEntrySchema: z.ZodObject<{
16
16
  relativePath: z.ZodString;
17
17
  generatedFile: z.ZodString;
18
18
  hash: z.ZodString;
19
- blobUrl: z.ZodString;
19
+ objectKey: z.ZodString;
20
20
  }, z.core.$strip>;
21
21
  type SourceMapManifestEntry = z.infer<typeof sourceMapManifestEntrySchema>;
22
22
  declare const sourceMapManifestSchema: z.ZodObject<{
@@ -29,7 +29,7 @@ declare const sourceMapManifestSchema: z.ZodObject<{
29
29
  relativePath: z.ZodString;
30
30
  generatedFile: z.ZodString;
31
31
  hash: z.ZodString;
32
- blobUrl: z.ZodString;
32
+ objectKey: z.ZodString;
33
33
  }, z.core.$strip>>;
34
34
  }, z.core.$strip>;
35
35
  type SourceMapManifest = z.infer<typeof sourceMapManifestSchema>;
@@ -5,7 +5,7 @@ const sourceMapManifestEntrySchema = z.object({
5
5
  relativePath: z.string(),
6
6
  generatedFile: z.string(),
7
7
  hash: z.string(),
8
- blobUrl: z.string()
8
+ objectKey: z.string()
9
9
  });
10
10
  const sourceMapManifestSchema = z.object({
11
11
  buildId: z.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"source-maps.mjs","names":[],"sources":["../../src/data/source-maps.ts"],"sourcesContent":["import { z } from \"zod/v4\";\n\nexport const getSourceMapPath = ({\n organizationId,\n surfaceId,\n buildId,\n relativePath,\n}: {\n organizationId: string;\n surfaceId: string;\n buildId: string;\n relativePath: string;\n}) =>\n `source-maps/orgs/${organizationId}/surfaces/${surfaceId}/builds/${buildId}/${relativePath}`;\n\nexport const sourceMapManifestEntrySchema = z.object({\n relativePath: z.string(),\n generatedFile: z.string(),\n hash: z.string(),\n blobUrl: z.string(),\n});\n\nexport type SourceMapManifestEntry = z.infer<\n typeof sourceMapManifestEntrySchema\n>;\n\nexport const sourceMapManifestSchema = z.object({\n buildId: z.string(),\n releaseId: z.string().optional(),\n surfaceId: z.string(),\n organizationId: z.string(),\n createdAt: z.number(),\n files: z.array(sourceMapManifestEntrySchema),\n});\n\nexport type SourceMapManifest = z.infer<typeof sourceMapManifestSchema>;\n\nexport const getManifestPath = ({\n organizationId,\n surfaceId,\n buildId,\n}: {\n organizationId: string;\n surfaceId: string;\n buildId: string;\n}) =>\n `source-maps/orgs/${organizationId}/surfaces/${surfaceId}/builds/${buildId}/_manifest.json`;\n"],"mappings":";;AAEA,MAAa,oBAAoB,EAC/B,gBACA,WACA,SACA,mBAOA,oBAAoB,eAAe,YAAY,UAAU,UAAU,QAAQ,GAAG;AAEhF,MAAa,+BAA+B,EAAE,OAAO;CACnD,cAAc,EAAE,QAAQ;CACxB,eAAe,EAAE,QAAQ;CACzB,MAAM,EAAE,QAAQ;CAChB,SAAS,EAAE,QAAQ;CACpB,CAAC;AAMF,MAAa,0BAA0B,EAAE,OAAO;CAC9C,SAAS,EAAE,QAAQ;CACnB,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,WAAW,EAAE,QAAQ;CACrB,gBAAgB,EAAE,QAAQ;CAC1B,WAAW,EAAE,QAAQ;CACrB,OAAO,EAAE,MAAM,6BAA6B;CAC7C,CAAC;AAIF,MAAa,mBAAmB,EAC9B,gBACA,WACA,cAMA,oBAAoB,eAAe,YAAY,UAAU,UAAU,QAAQ"}
1
+ {"version":3,"file":"source-maps.mjs","names":[],"sources":["../../src/data/source-maps.ts"],"sourcesContent":["import { z } from \"zod/v4\";\n\nexport const getSourceMapPath = ({\n organizationId,\n surfaceId,\n buildId,\n relativePath,\n}: {\n organizationId: string;\n surfaceId: string;\n buildId: string;\n relativePath: string;\n}) =>\n `source-maps/orgs/${organizationId}/surfaces/${surfaceId}/builds/${buildId}/${relativePath}`;\n\nexport const sourceMapManifestEntrySchema = z.object({\n relativePath: z.string(),\n generatedFile: z.string(),\n hash: z.string(),\n objectKey: z.string(),\n});\n\nexport type SourceMapManifestEntry = z.infer<\n typeof sourceMapManifestEntrySchema\n>;\n\nexport const sourceMapManifestSchema = z.object({\n buildId: z.string(),\n releaseId: z.string().optional(),\n surfaceId: z.string(),\n organizationId: z.string(),\n createdAt: z.number(),\n files: z.array(sourceMapManifestEntrySchema),\n});\n\nexport type SourceMapManifest = z.infer<typeof sourceMapManifestSchema>;\n\nexport const getManifestPath = ({\n organizationId,\n surfaceId,\n buildId,\n}: {\n organizationId: string;\n surfaceId: string;\n buildId: string;\n}) =>\n `source-maps/orgs/${organizationId}/surfaces/${surfaceId}/builds/${buildId}/_manifest.json`;\n"],"mappings":";;AAEA,MAAa,oBAAoB,EAC/B,gBACA,WACA,SACA,mBAOA,oBAAoB,eAAe,YAAY,UAAU,UAAU,QAAQ,GAAG;AAEhF,MAAa,+BAA+B,EAAE,OAAO;CACnD,cAAc,EAAE,QAAQ;CACxB,eAAe,EAAE,QAAQ;CACzB,MAAM,EAAE,QAAQ;CAChB,WAAW,EAAE,QAAQ;CACtB,CAAC;AAMF,MAAa,0BAA0B,EAAE,OAAO;CAC9C,SAAS,EAAE,QAAQ;CACnB,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,WAAW,EAAE,QAAQ;CACrB,gBAAgB,EAAE,QAAQ;CAC1B,WAAW,EAAE,QAAQ;CACrB,OAAO,EAAE,MAAM,6BAA6B;CAC7C,CAAC;AAIF,MAAa,mBAAmB,EAC9B,gBACA,WACA,cAMA,oBAAoB,eAAe,YAAY,UAAU,UAAU,QAAQ"}
@@ -46,7 +46,8 @@ declare const errorFactsPayloadSchema: z.ZodObject<{
46
46
  handled: z.ZodBoolean;
47
47
  synthetic: z.ZodOptional<z.ZodBoolean>;
48
48
  }, z.core.$strip>>;
49
- nextjs: z.ZodOptional<z.ZodObject<{
49
+ context: z.ZodOptional<z.ZodObject<{
50
+ framework: z.ZodOptional<z.ZodString>;
50
51
  routerKind: z.ZodOptional<z.ZodEnum<{
51
52
  "Pages Router": "Pages Router";
52
53
  "App Router": "App Router";
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.mts","names":[],"sources":["../../src/events/error.ts"],"mappings":";;;cAIM,mBAAA,EAAmB,CAAA,CAAA,SAAA;;;;;;;;;;;;;KAcb,aAAA,GAAgB,CAAA,CAAE,KAAA,QAAa,mBAAA;AAAA,cAiC9B,uBAAA,EAAuB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgBxB,iBAAA,GAAoB,CAAA,CAAE,KAAA,QAAa,uBAAA"}
1
+ {"version":3,"file":"error.d.mts","names":[],"sources":["../../src/events/error.ts"],"mappings":";;;cAIM,mBAAA,EAAmB,CAAA,CAAA,SAAA;;;;;;;;;;;;;KAcb,aAAA,GAAgB,CAAA,CAAE,KAAA,QAAa,mBAAA;AAAA,cAkC9B,uBAAA,EAAuB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgBxB,iBAAA,GAAoB,CAAA,CAAE,KAAA,QAAa,uBAAA"}
@@ -19,7 +19,8 @@ const errorMechanismSchema = z.object({
19
19
  handled: z.boolean(),
20
20
  synthetic: z.boolean().optional()
21
21
  });
22
- const nextjsErrorContextSchema = z.object({
22
+ const errorContextSchema = z.object({
23
+ framework: z.string().optional(),
23
24
  routerKind: z.enum(["Pages Router", "App Router"]).optional(),
24
25
  routePath: z.string().optional(),
25
26
  routeType: z.enum([
@@ -53,7 +54,7 @@ const errorFactsPayloadSchema = z.object({
53
54
  name: z.string().nullable(),
54
55
  stack: z.string().nullable(),
55
56
  mechanism: errorMechanismSchema.optional(),
56
- nextjs: nextjsErrorContextSchema.optional(),
57
+ context: errorContextSchema.optional(),
57
58
  captureSource: z.string().optional(),
58
59
  fingerprintComponents: fingerprintSchema.optional(),
59
60
  runtime: z.string().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"error.mjs","names":[],"sources":["../../src/events/error.ts"],"sourcesContent":["import { z } from \"zod/v4\";\n\nimport { ingestedFrame } from \"#data/frame\";\n\nconst enrichedFrameSchema = z.object({\n file: z.string().nullable(),\n line: z.number().nullable(),\n column: z.number().nullable(),\n fn: z.string().nullable(),\n originalFile: z.string().nullable(),\n originalLine: z.number().nullable(),\n originalColumn: z.number().nullable(),\n originalName: z.string().nullable(),\n sourceMapFound: z.boolean(),\n inApp: z.boolean(),\n rawId: z.string(),\n});\n\nexport type EnrichedFrame = z.infer<typeof enrichedFrameSchema>;\n\nconst errorMechanismSchema = z.object({\n type: z.string(),\n handled: z.boolean(),\n synthetic: z.boolean().optional(),\n});\n\nconst nextjsErrorContextSchema = z.object({\n routerKind: z.enum([\"Pages Router\", \"App Router\"]).optional(),\n routePath: z.string().optional(),\n routeType: z\n .enum([\"render\", \"route\", \"action\", \"middleware\", \"proxy\"])\n .optional(),\n renderSource: z\n .enum([\n \"react-server-components\",\n \"react-server-components-payload\",\n \"server-rendering\",\n ])\n .optional(),\n revalidateReason: z.enum([\"on-demand\", \"stale\"]).optional(),\n renderType: z.enum([\"dynamic\", \"dynamic-resume\"]).optional(),\n requestPath: z.string().optional(),\n requestMethod: z.string().optional(),\n errorDigest: z.string().optional(),\n});\n\nconst fingerprintSchema = z.object({\n hash: z.string(),\n components: z.array(z.string()),\n});\n\nexport const errorFactsPayloadSchema = z.object({\n frames: z.array(ingestedFrame),\n enrichedFrames: z.array(enrichedFrameSchema).optional(),\n frameCount: z.number().optional(),\n enrichedFrameCount: z.number().optional(),\n message: z.string().nullable(),\n name: z.string().nullable(),\n stack: z.string().nullable(),\n mechanism: errorMechanismSchema.optional(),\n nextjs: nextjsErrorContextSchema.optional(),\n captureSource: z.string().optional(),\n fingerprintComponents: fingerprintSchema.optional(),\n runtime: z.string().optional(),\n releaseId: z.string().nullable().optional(),\n});\n\nexport type ErrorFactsPayload = z.infer<typeof errorFactsPayloadSchema>;\n"],"mappings":";;;AAIA,MAAM,sBAAsB,EAAE,OAAO;CACnC,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,QAAQ,EAAE,QAAQ,CAAC,UAAU;CAC7B,IAAI,EAAE,QAAQ,CAAC,UAAU;CACzB,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,gBAAgB,EAAE,QAAQ,CAAC,UAAU;CACrC,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,gBAAgB,EAAE,SAAS;CAC3B,OAAO,EAAE,SAAS;CAClB,OAAO,EAAE,QAAQ;CAClB,CAAC;AAIF,MAAM,uBAAuB,EAAE,OAAO;CACpC,MAAM,EAAE,QAAQ;CAChB,SAAS,EAAE,SAAS;CACpB,WAAW,EAAE,SAAS,CAAC,UAAU;CAClC,CAAC;AAEF,MAAM,2BAA2B,EAAE,OAAO;CACxC,YAAY,EAAE,KAAK,CAAC,gBAAgB,aAAa,CAAC,CAAC,UAAU;CAC7D,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,WAAW,EACR,KAAK;EAAC;EAAU;EAAS;EAAU;EAAc;EAAQ,CAAC,CAC1D,UAAU;CACb,cAAc,EACX,KAAK;EACJ;EACA;EACA;EACD,CAAC,CACD,UAAU;CACb,kBAAkB,EAAE,KAAK,CAAC,aAAa,QAAQ,CAAC,CAAC,UAAU;CAC3D,YAAY,EAAE,KAAK,CAAC,WAAW,iBAAiB,CAAC,CAAC,UAAU;CAC5D,aAAa,EAAE,QAAQ,CAAC,UAAU;CAClC,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,aAAa,EAAE,QAAQ,CAAC,UAAU;CACnC,CAAC;AAEF,MAAM,oBAAoB,EAAE,OAAO;CACjC,MAAM,EAAE,QAAQ;CAChB,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC;CAChC,CAAC;AAEF,MAAa,0BAA0B,EAAE,OAAO;CAC9C,QAAQ,EAAE,MAAM,cAAc;CAC9B,gBAAgB,EAAE,MAAM,oBAAoB,CAAC,UAAU;CACvD,YAAY,EAAE,QAAQ,CAAC,UAAU;CACjC,oBAAoB,EAAE,QAAQ,CAAC,UAAU;CACzC,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,OAAO,EAAE,QAAQ,CAAC,UAAU;CAC5B,WAAW,qBAAqB,UAAU;CAC1C,QAAQ,yBAAyB,UAAU;CAC3C,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,uBAAuB,kBAAkB,UAAU;CACnD,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC5C,CAAC"}
1
+ {"version":3,"file":"error.mjs","names":[],"sources":["../../src/events/error.ts"],"sourcesContent":["import { z } from \"zod/v4\";\n\nimport { ingestedFrame } from \"#data/frame\";\n\nconst enrichedFrameSchema = z.object({\n file: z.string().nullable(),\n line: z.number().nullable(),\n column: z.number().nullable(),\n fn: z.string().nullable(),\n originalFile: z.string().nullable(),\n originalLine: z.number().nullable(),\n originalColumn: z.number().nullable(),\n originalName: z.string().nullable(),\n sourceMapFound: z.boolean(),\n inApp: z.boolean(),\n rawId: z.string(),\n});\n\nexport type EnrichedFrame = z.infer<typeof enrichedFrameSchema>;\n\nconst errorMechanismSchema = z.object({\n type: z.string(),\n handled: z.boolean(),\n synthetic: z.boolean().optional(),\n});\n\nconst errorContextSchema = z.object({\n framework: z.string().optional(),\n routerKind: z.enum([\"Pages Router\", \"App Router\"]).optional(),\n routePath: z.string().optional(),\n routeType: z\n .enum([\"render\", \"route\", \"action\", \"middleware\", \"proxy\"])\n .optional(),\n renderSource: z\n .enum([\n \"react-server-components\",\n \"react-server-components-payload\",\n \"server-rendering\",\n ])\n .optional(),\n revalidateReason: z.enum([\"on-demand\", \"stale\"]).optional(),\n renderType: z.enum([\"dynamic\", \"dynamic-resume\"]).optional(),\n requestPath: z.string().optional(),\n requestMethod: z.string().optional(),\n errorDigest: z.string().optional(),\n});\n\nconst fingerprintSchema = z.object({\n hash: z.string(),\n components: z.array(z.string()),\n});\n\nexport const errorFactsPayloadSchema = z.object({\n frames: z.array(ingestedFrame),\n enrichedFrames: z.array(enrichedFrameSchema).optional(),\n frameCount: z.number().optional(),\n enrichedFrameCount: z.number().optional(),\n message: z.string().nullable(),\n name: z.string().nullable(),\n stack: z.string().nullable(),\n mechanism: errorMechanismSchema.optional(),\n context: errorContextSchema.optional(),\n captureSource: z.string().optional(),\n fingerprintComponents: fingerprintSchema.optional(),\n runtime: z.string().optional(),\n releaseId: z.string().nullable().optional(),\n});\n\nexport type ErrorFactsPayload = z.infer<typeof errorFactsPayloadSchema>;\n"],"mappings":";;;AAIA,MAAM,sBAAsB,EAAE,OAAO;CACnC,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,QAAQ,EAAE,QAAQ,CAAC,UAAU;CAC7B,IAAI,EAAE,QAAQ,CAAC,UAAU;CACzB,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,gBAAgB,EAAE,QAAQ,CAAC,UAAU;CACrC,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,gBAAgB,EAAE,SAAS;CAC3B,OAAO,EAAE,SAAS;CAClB,OAAO,EAAE,QAAQ;CAClB,CAAC;AAIF,MAAM,uBAAuB,EAAE,OAAO;CACpC,MAAM,EAAE,QAAQ;CAChB,SAAS,EAAE,SAAS;CACpB,WAAW,EAAE,SAAS,CAAC,UAAU;CAClC,CAAC;AAEF,MAAM,qBAAqB,EAAE,OAAO;CAClC,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,YAAY,EAAE,KAAK,CAAC,gBAAgB,aAAa,CAAC,CAAC,UAAU;CAC7D,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,WAAW,EACR,KAAK;EAAC;EAAU;EAAS;EAAU;EAAc;EAAQ,CAAC,CAC1D,UAAU;CACb,cAAc,EACX,KAAK;EACJ;EACA;EACA;EACD,CAAC,CACD,UAAU;CACb,kBAAkB,EAAE,KAAK,CAAC,aAAa,QAAQ,CAAC,CAAC,UAAU;CAC3D,YAAY,EAAE,KAAK,CAAC,WAAW,iBAAiB,CAAC,CAAC,UAAU;CAC5D,aAAa,EAAE,QAAQ,CAAC,UAAU;CAClC,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,aAAa,EAAE,QAAQ,CAAC,UAAU;CACnC,CAAC;AAEF,MAAM,oBAAoB,EAAE,OAAO;CACjC,MAAM,EAAE,QAAQ;CAChB,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC;CAChC,CAAC;AAEF,MAAa,0BAA0B,EAAE,OAAO;CAC9C,QAAQ,EAAE,MAAM,cAAc;CAC9B,gBAAgB,EAAE,MAAM,oBAAoB,CAAC,UAAU;CACvD,YAAY,EAAE,QAAQ,CAAC,UAAU;CACjC,oBAAoB,EAAE,QAAQ,CAAC,UAAU;CACzC,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,OAAO,EAAE,QAAQ,CAAC,UAAU;CAC5B,WAAW,qBAAqB,UAAU;CAC1C,SAAS,mBAAmB,UAAU;CACtC,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,uBAAuB,kBAAkB,UAAU;CACnD,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC5C,CAAC"}
@@ -33,7 +33,8 @@ declare const factsPayloadSchemas: {
33
33
  handled: z.ZodBoolean;
34
34
  synthetic: z.ZodOptional<z.ZodBoolean>;
35
35
  }, z.core.$strip>>;
36
- nextjs: z.ZodOptional<z.ZodObject<{
36
+ context: z.ZodOptional<z.ZodObject<{
37
+ framework: z.ZodOptional<z.ZodString>;
37
38
  routerKind: z.ZodOptional<z.ZodEnum<{
38
39
  "Pages Router": "Pages Router";
39
40
  "App Router": "App Router";
@@ -97,6 +98,7 @@ declare const factsPayloadSchemas: {
97
98
  chunk_count: z.ZodOptional<z.ZodNumber>;
98
99
  runtime: z.ZodOptional<z.ZodString>;
99
100
  releaseId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
101
+ objectKey: z.ZodOptional<z.ZodString>;
100
102
  }, z.core.$strip>;
101
103
  readonly session_summary: z.ZodObject<{
102
104
  summary: z.ZodString;
@@ -135,9 +137,9 @@ declare const factsEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
135
137
  sessionId: z.ZodNullable<z.ZodString>;
136
138
  fingerprint: z.ZodNullable<z.ZodString>;
137
139
  errorSource: z.ZodNullable<z.ZodEnum<{
140
+ edge: "edge";
138
141
  client: "client";
139
142
  server: "server";
140
- edge: "edge";
141
143
  }>>;
142
144
  buildId: z.ZodNullable<z.ZodString>;
143
145
  timestamp: z.ZodDate;
@@ -175,7 +177,8 @@ declare const factsEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
175
177
  handled: z.ZodBoolean;
176
178
  synthetic: z.ZodOptional<z.ZodBoolean>;
177
179
  }, z.core.$strip>>;
178
- nextjs: z.ZodOptional<z.ZodObject<{
180
+ context: z.ZodOptional<z.ZodObject<{
181
+ framework: z.ZodOptional<z.ZodString>;
179
182
  routerKind: z.ZodOptional<z.ZodEnum<{
180
183
  "Pages Router": "Pages Router";
181
184
  "App Router": "App Router";
@@ -221,9 +224,9 @@ declare const factsEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
221
224
  sessionId: z.ZodNullable<z.ZodString>;
222
225
  fingerprint: z.ZodNullable<z.ZodString>;
223
226
  errorSource: z.ZodNullable<z.ZodEnum<{
227
+ edge: "edge";
224
228
  client: "client";
225
229
  server: "server";
226
- edge: "edge";
227
230
  }>>;
228
231
  buildId: z.ZodNullable<z.ZodString>;
229
232
  timestamp: z.ZodDate;
@@ -245,9 +248,9 @@ declare const factsEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
245
248
  sessionId: z.ZodNullable<z.ZodString>;
246
249
  fingerprint: z.ZodNullable<z.ZodString>;
247
250
  errorSource: z.ZodNullable<z.ZodEnum<{
251
+ edge: "edge";
248
252
  client: "client";
249
253
  server: "server";
250
- edge: "edge";
251
254
  }>>;
252
255
  buildId: z.ZodNullable<z.ZodString>;
253
256
  timestamp: z.ZodDate;
@@ -268,9 +271,9 @@ declare const factsEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
268
271
  sessionId: z.ZodNullable<z.ZodString>;
269
272
  fingerprint: z.ZodNullable<z.ZodString>;
270
273
  errorSource: z.ZodNullable<z.ZodEnum<{
274
+ edge: "edge";
271
275
  client: "client";
272
276
  server: "server";
273
- edge: "edge";
274
277
  }>>;
275
278
  buildId: z.ZodNullable<z.ZodString>;
276
279
  timestamp: z.ZodDate;
@@ -290,9 +293,9 @@ declare const factsEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
290
293
  sessionId: z.ZodNullable<z.ZodString>;
291
294
  fingerprint: z.ZodNullable<z.ZodString>;
292
295
  errorSource: z.ZodNullable<z.ZodEnum<{
296
+ edge: "edge";
293
297
  client: "client";
294
298
  server: "server";
295
- edge: "edge";
296
299
  }>>;
297
300
  buildId: z.ZodNullable<z.ZodString>;
298
301
  timestamp: z.ZodDate;
@@ -307,6 +310,7 @@ declare const factsEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
307
310
  chunk_count: z.ZodOptional<z.ZodNumber>;
308
311
  runtime: z.ZodOptional<z.ZodString>;
309
312
  releaseId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
313
+ objectKey: z.ZodOptional<z.ZodString>;
310
314
  }, z.core.$strip>;
311
315
  }, z.core.$strip>, z.ZodObject<{
312
316
  uuid: z.ZodString;
@@ -316,9 +320,9 @@ declare const factsEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
316
320
  sessionId: z.ZodNullable<z.ZodString>;
317
321
  fingerprint: z.ZodNullable<z.ZodString>;
318
322
  errorSource: z.ZodNullable<z.ZodEnum<{
323
+ edge: "edge";
319
324
  client: "client";
320
325
  server: "server";
321
- edge: "edge";
322
326
  }>>;
323
327
  buildId: z.ZodNullable<z.ZodString>;
324
328
  timestamp: z.ZodDate;
@@ -342,9 +346,9 @@ declare const factsEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
342
346
  sessionId: z.ZodNullable<z.ZodString>;
343
347
  fingerprint: z.ZodNullable<z.ZodString>;
344
348
  errorSource: z.ZodNullable<z.ZodEnum<{
349
+ edge: "edge";
345
350
  client: "client";
346
351
  server: "server";
347
- edge: "edge";
348
352
  }>>;
349
353
  buildId: z.ZodNullable<z.ZodString>;
350
354
  timestamp: z.ZodDate;
@@ -370,9 +374,9 @@ declare const factsEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
370
374
  sessionId: z.ZodNullable<z.ZodString>;
371
375
  fingerprint: z.ZodNullable<z.ZodString>;
372
376
  errorSource: z.ZodNullable<z.ZodEnum<{
377
+ edge: "edge";
373
378
  client: "client";
374
379
  server: "server";
375
- edge: "edge";
376
380
  }>>;
377
381
  buildId: z.ZodNullable<z.ZodString>;
378
382
  timestamp: z.ZodDate;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/events/index.ts"],"mappings":";;;cAWa,mBAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAWD,cAAA,gBAA8B,mBAAA;AAAA,cAkB7B,gBAAA,EAAgB,CAAA,CAAA,qBAAA,EAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2CjB,UAAA,GAAa,CAAA,CAAE,KAAA,QAAa,gBAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/events/index.ts"],"mappings":";;;cAWa,mBAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAWD,cAAA,gBAA8B,mBAAA;AAAA,cAkB7B,gBAAA,EAAgB,CAAA,CAAA,qBAAA,EAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2CjB,UAAA,GAAa,CAAA,CAAE,KAAA,QAAa,gBAAA"}
@@ -9,6 +9,7 @@ declare const replayChunkFactsPayloadSchema: z.ZodObject<{
9
9
  chunk_count: z.ZodOptional<z.ZodNumber>;
10
10
  runtime: z.ZodOptional<z.ZodString>;
11
11
  releaseId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
12
+ objectKey: z.ZodOptional<z.ZodString>;
12
13
  }, z.core.$strip>;
13
14
  type ReplayChunkFactsPayload = z.infer<typeof replayChunkFactsPayloadSchema>;
14
15
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"replay-chunk.d.mts","names":[],"sources":["../../src/events/replay-chunk.ts"],"mappings":";;;cAEa,6BAAA,EAA6B,CAAA,CAAA,SAAA;;;;;;;;;KAU9B,uBAAA,GAA0B,CAAA,CAAE,KAAA,QAC/B,6BAAA"}
1
+ {"version":3,"file":"replay-chunk.d.mts","names":[],"sources":["../../src/events/replay-chunk.ts"],"mappings":";;;cAEa,6BAAA,EAA6B,CAAA,CAAA,SAAA;;;;;;;;;;KAW9B,uBAAA,GAA0B,CAAA,CAAE,KAAA,QAC/B,6BAAA"}
@@ -7,7 +7,8 @@ const replayChunkFactsPayloadSchema = z.object({
7
7
  last_event_ts: z.number().optional(),
8
8
  chunk_count: z.number().optional(),
9
9
  runtime: z.string().optional(),
10
- releaseId: z.string().nullable().optional()
10
+ releaseId: z.string().nullable().optional(),
11
+ objectKey: z.string().optional()
11
12
  });
12
13
  //#endregion
13
14
  export { replayChunkFactsPayloadSchema };
@@ -1 +1 @@
1
- {"version":3,"file":"replay-chunk.mjs","names":[],"sources":["../../src/events/replay-chunk.ts"],"sourcesContent":["import { z } from \"zod/v4\";\n\nexport const replayChunkFactsPayloadSchema = z.object({\n ts: z.number(),\n count: z.number(),\n first_event_ts: z.number().optional(),\n last_event_ts: z.number().optional(),\n chunk_count: z.number().optional(),\n runtime: z.string().optional(),\n releaseId: z.string().nullable().optional(),\n});\n\nexport type ReplayChunkFactsPayload = z.infer<\n typeof replayChunkFactsPayloadSchema\n>;\n"],"mappings":";;AAEA,MAAa,gCAAgC,EAAE,OAAO;CACpD,IAAI,EAAE,QAAQ;CACd,OAAO,EAAE,QAAQ;CACjB,gBAAgB,EAAE,QAAQ,CAAC,UAAU;CACrC,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,aAAa,EAAE,QAAQ,CAAC,UAAU;CAClC,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC5C,CAAC"}
1
+ {"version":3,"file":"replay-chunk.mjs","names":[],"sources":["../../src/events/replay-chunk.ts"],"sourcesContent":["import { z } from \"zod/v4\";\n\nexport const replayChunkFactsPayloadSchema = z.object({\n ts: z.number(),\n count: z.number(),\n first_event_ts: z.number().optional(),\n last_event_ts: z.number().optional(),\n chunk_count: z.number().optional(),\n runtime: z.string().optional(),\n releaseId: z.string().nullable().optional(),\n objectKey: z.string().optional(),\n});\n\nexport type ReplayChunkFactsPayload = z.infer<\n typeof replayChunkFactsPayloadSchema\n>;\n"],"mappings":";;AAEA,MAAa,gCAAgC,EAAE,OAAO;CACpD,IAAI,EAAE,QAAQ;CACd,OAAO,EAAE,QAAQ;CACjB,gBAAgB,EAAE,QAAQ,CAAC,UAAU;CACrC,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,aAAa,EAAE,QAAQ,CAAC,UAAU;CAClC,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC3C,WAAW,EAAE,QAAQ,CAAC,UAAU;CACjC,CAAC"}
@@ -2,19 +2,20 @@ import { z } from "zod/v4";
2
2
 
3
3
  //#region src/integrations/index.d.ts
4
4
  declare const releaseSourceMetadataSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
5
+ provider: z.ZodLiteral<"github">;
5
6
  commitMessage: z.ZodString;
6
7
  branch: z.ZodString;
7
8
  commitSha: z.ZodNullable<z.ZodString>;
8
- provider: z.ZodLiteral<"github">;
9
9
  }, z.core.$strip>], "provider">;
10
10
  type ReleaseSourceMetadata = z.infer<typeof releaseSourceMetadataSchema>;
11
11
  declare const releaseDestinationMetadataSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
12
+ provider: z.ZodLiteral<"vercel">;
13
+ destinationReleaseId: z.ZodNullable<z.ZodString>;
12
14
  environment: z.ZodNullable<z.ZodString>;
13
15
  deploymentId: z.ZodNullable<z.ZodString>;
14
16
  deploymentUrl: z.ZodNullable<z.ZodString>;
15
17
  environmentName: z.ZodNullable<z.ZodString>;
16
18
  environmentTarget: z.ZodNullable<z.ZodString>;
17
- provider: z.ZodLiteral<"vercel">;
18
19
  }, z.core.$strip>], "provider">;
19
20
  type ReleaseDestinationMetadata = z.infer<typeof releaseDestinationMetadataSchema>;
20
21
  declare const sourceProviderSchema: z.ZodEnum<{
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/integrations/index.ts"],"mappings":";;;cAWa,2BAAA,EAA2B,CAAA,CAAA,qBAAA,EAAA,CAAA,CAAA,SAAA;;;;;;KAM5B,qBAAA,GAAwB,CAAA,CAAE,KAAA,QAAa,2BAAA;AAAA,cAMtC,gCAAA,EAAgC,CAAA,CAAA,qBAAA,EAAA,CAAA,CAAA,SAAA;;;;;;;;KAWjC,0BAAA,GAA6B,CAAA,CAAE,KAAA,QAClC,gCAAA;AAAA,cAGI,oBAAA,EAAoB,CAAA,CAAA,OAAA;;;KAGrB,cAAA,GAAiB,CAAA,CAAE,KAAA,QAAa,oBAAA;AAAA,cAE/B,yBAAA,EAAyB,CAAA,CAAA,OAAA;;;KAG1B,mBAAA,GAAsB,CAAA,CAAE,KAAA,QAAa,yBAAA;AAAA,cAEpC,2BAAA,EAA2B,CAAA,CAAA,OAAA;;;;;;;KAM5B,qBAAA,GAAwB,CAAA,CAAE,KAAA,QAAa,2BAAA;AAAA,cACtC,sBAAA;AAAA,cAEA,gCAAA,EAAgC,CAAA,CAAA,OAAA;;;;;;;KAMjC,0BAAA,GAA6B,CAAA,CAAE,KAAA,QAClC,gCAAA;AAAA,cAEI,2BAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/integrations/index.ts"],"mappings":";;;cAKa,2BAAA,EAA2B,CAAA,CAAA,qBAAA,EAAA,CAAA,CAAA,SAAA;;;;;;KAS5B,qBAAA,GAAwB,CAAA,CAAE,KAAA,QAAa,2BAAA;AAAA,cAEtC,gCAAA,EAAgC,CAAA,CAAA,qBAAA,EAAA,CAAA,CAAA,SAAA;;;;;;;;;KAejC,0BAAA,GAA6B,CAAA,CAAE,KAAA,QAClC,gCAAA;AAAA,cAGI,oBAAA,EAAoB,CAAA,CAAA,OAAA;;;KACrB,cAAA,GAAiB,CAAA,CAAE,KAAA,QAAa,oBAAA;AAAA,cAE/B,yBAAA,EAAyB,CAAA,CAAA,OAAA;;;KAC1B,mBAAA,GAAsB,CAAA,CAAE,KAAA,QAAa,yBAAA;AAAA,cAEpC,2BAAA,EAA2B,CAAA,CAAA,OAAA;;;;;;;KAM5B,qBAAA,GAAwB,CAAA,CAAE,KAAA,QAAa,2BAAA;AAAA,cACtC,sBAAA;AAAA,cAEA,gCAAA,EAAgC,CAAA,CAAA,OAAA;;;;;;;KAMjC,0BAAA,GAA6B,CAAA,CAAE,KAAA,QAClC,gCAAA;AAAA,cAEI,2BAAA"}
@@ -1,12 +1,24 @@
1
- import { githubIntegration, githubSourceIdEnvKeys } from "./platforms/github.mjs";
2
- import { vercelDestinationIdEnvKeys, vercelIntegration } from "./platforms/vercel.mjs";
1
+ import { githubSourceIdEnvKeys } from "./platforms/github.mjs";
2
+ import { vercelDestinationIdEnvKeys } from "./platforms/vercel.mjs";
3
3
  import { z } from "zod/v4";
4
4
  //#region src/integrations/index.ts
5
- const releaseSourceMetadataSchema = z.discriminatedUnion("provider", [githubIntegration.shape.source.extend({ provider: githubIntegration.shape.name })]);
6
- const baseDestinationMetadataSchema = z.object({ environment: z.string().nullable() });
7
- const releaseDestinationMetadataSchema = z.discriminatedUnion("provider", [baseDestinationMetadataSchema.extend(vercelIntegration.shape.destination.shape).extend({ provider: vercelIntegration.shape.name })]);
8
- const sourceProviderSchema = z.enum([githubIntegration.shape.name.value]);
9
- const destinationProviderSchema = z.enum([vercelIntegration.shape.name.value]);
5
+ const releaseSourceMetadataSchema = z.discriminatedUnion("provider", [z.object({
6
+ provider: z.literal("github"),
7
+ commitMessage: z.string(),
8
+ branch: z.string(),
9
+ commitSha: z.string().nullable()
10
+ })]);
11
+ const releaseDestinationMetadataSchema = z.discriminatedUnion("provider", [z.object({
12
+ provider: z.literal("vercel"),
13
+ destinationReleaseId: z.string().nullable(),
14
+ environment: z.string().nullable(),
15
+ deploymentId: z.string().nullable(),
16
+ deploymentUrl: z.string().nullable(),
17
+ environmentName: z.string().nullable(),
18
+ environmentTarget: z.string().nullable()
19
+ })]);
20
+ const sourceProviderSchema = z.enum(["github"]);
21
+ const destinationProviderSchema = z.enum(["vercel"]);
10
22
  const releaseSourceIdEnvKeySchema = z.enum([
11
23
  "NEXT_PUBLIC_INTERFERE_BUILD_ID",
12
24
  "INTERFERE_SOURCE_ID",
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/integrations/index.ts"],"sourcesContent":["import { z } from \"zod/v4\";\n\nimport {\n githubIntegration,\n githubSourceIdEnvKeys,\n} from \"./platforms/github.js\";\nimport {\n vercelDestinationIdEnvKeys,\n vercelIntegration,\n} from \"./platforms/vercel.js\";\n\nexport const releaseSourceMetadataSchema = z.discriminatedUnion(\"provider\", [\n githubIntegration.shape.source.extend({\n provider: githubIntegration.shape.name,\n }),\n]);\n\nexport type ReleaseSourceMetadata = z.infer<typeof releaseSourceMetadataSchema>;\n\nconst baseDestinationMetadataSchema = z.object({\n environment: z.string().nullable(),\n});\n\nexport const releaseDestinationMetadataSchema = z.discriminatedUnion(\n \"provider\",\n [\n baseDestinationMetadataSchema\n .extend(vercelIntegration.shape.destination.shape)\n .extend({\n provider: vercelIntegration.shape.name,\n }),\n ]\n);\n\nexport type ReleaseDestinationMetadata = z.infer<\n typeof releaseDestinationMetadataSchema\n>;\n\nexport const sourceProviderSchema = z.enum([\n githubIntegration.shape.name.value,\n]);\nexport type SourceProvider = z.infer<typeof sourceProviderSchema>;\n\nexport const destinationProviderSchema = z.enum([\n vercelIntegration.shape.name.value,\n]);\nexport type DestinationProvider = z.infer<typeof destinationProviderSchema>;\n\nexport const releaseSourceIdEnvKeySchema = z.enum([\n \"NEXT_PUBLIC_INTERFERE_BUILD_ID\",\n \"INTERFERE_SOURCE_ID\",\n \"NEXT_BUILD_ID\",\n ...githubSourceIdEnvKeys,\n]);\nexport type ReleaseSourceIdEnvKey = z.infer<typeof releaseSourceIdEnvKeySchema>;\nexport const releaseSourceIdEnvKeys = releaseSourceIdEnvKeySchema.options;\n\nexport const releaseDestinationIdEnvKeySchema = z.enum([\n \"NEXT_PUBLIC_INTERFERE_RELEASE_ID\",\n \"INTERFERE_DESTINATION_ID\",\n ...vercelDestinationIdEnvKeys,\n ...githubSourceIdEnvKeys,\n]);\nexport type ReleaseDestinationIdEnvKey = z.infer<\n typeof releaseDestinationIdEnvKeySchema\n>;\nexport const releaseDestinationIdEnvKeys =\n releaseDestinationIdEnvKeySchema.options;\n"],"mappings":";;;;AAWA,MAAa,8BAA8B,EAAE,mBAAmB,YAAY,CAC1E,kBAAkB,MAAM,OAAO,OAAO,EACpC,UAAU,kBAAkB,MAAM,MACnC,CAAC,CACH,CAAC;AAIF,MAAM,gCAAgC,EAAE,OAAO,EAC7C,aAAa,EAAE,QAAQ,CAAC,UAAU,EACnC,CAAC;AAEF,MAAa,mCAAmC,EAAE,mBAChD,YACA,CACE,8BACG,OAAO,kBAAkB,MAAM,YAAY,MAAM,CACjD,OAAO,EACN,UAAU,kBAAkB,MAAM,MACnC,CAAC,CACL,CACF;AAMD,MAAa,uBAAuB,EAAE,KAAK,CACzC,kBAAkB,MAAM,KAAK,MAC9B,CAAC;AAGF,MAAa,4BAA4B,EAAE,KAAK,CAC9C,kBAAkB,MAAM,KAAK,MAC9B,CAAC;AAGF,MAAa,8BAA8B,EAAE,KAAK;CAChD;CACA;CACA;CACA,GAAG;CACJ,CAAC;AAEF,MAAa,yBAAyB,4BAA4B;AAElE,MAAa,mCAAmC,EAAE,KAAK;CACrD;CACA;CACA,GAAG;CACH,GAAG;CACJ,CAAC;AAIF,MAAa,8BACX,iCAAiC"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/integrations/index.ts"],"sourcesContent":["import { z } from \"zod/v4\";\n\nimport { githubSourceIdEnvKeys } from \"./platforms/github.js\";\nimport { vercelDestinationIdEnvKeys } from \"./platforms/vercel.js\";\n\nexport const releaseSourceMetadataSchema = z.discriminatedUnion(\"provider\", [\n z.object({\n provider: z.literal(\"github\"),\n commitMessage: z.string(),\n branch: z.string(),\n commitSha: z.string().nullable(),\n }),\n]);\n\nexport type ReleaseSourceMetadata = z.infer<typeof releaseSourceMetadataSchema>;\n\nexport const releaseDestinationMetadataSchema = z.discriminatedUnion(\n \"provider\",\n [\n z.object({\n provider: z.literal(\"vercel\"),\n destinationReleaseId: z.string().nullable(),\n environment: z.string().nullable(),\n deploymentId: z.string().nullable(),\n deploymentUrl: z.string().nullable(),\n environmentName: z.string().nullable(),\n environmentTarget: z.string().nullable(),\n }),\n ]\n);\n\nexport type ReleaseDestinationMetadata = z.infer<\n typeof releaseDestinationMetadataSchema\n>;\n\nexport const sourceProviderSchema = z.enum([\"github\"]);\nexport type SourceProvider = z.infer<typeof sourceProviderSchema>;\n\nexport const destinationProviderSchema = z.enum([\"vercel\"]);\nexport type DestinationProvider = z.infer<typeof destinationProviderSchema>;\n\nexport const releaseSourceIdEnvKeySchema = z.enum([\n \"NEXT_PUBLIC_INTERFERE_BUILD_ID\",\n \"INTERFERE_SOURCE_ID\",\n \"NEXT_BUILD_ID\",\n ...githubSourceIdEnvKeys,\n]);\nexport type ReleaseSourceIdEnvKey = z.infer<typeof releaseSourceIdEnvKeySchema>;\nexport const releaseSourceIdEnvKeys = releaseSourceIdEnvKeySchema.options;\n\nexport const releaseDestinationIdEnvKeySchema = z.enum([\n \"NEXT_PUBLIC_INTERFERE_RELEASE_ID\",\n \"INTERFERE_DESTINATION_ID\",\n ...vercelDestinationIdEnvKeys,\n ...githubSourceIdEnvKeys,\n]);\nexport type ReleaseDestinationIdEnvKey = z.infer<\n typeof releaseDestinationIdEnvKeySchema\n>;\nexport const releaseDestinationIdEnvKeys =\n releaseDestinationIdEnvKeySchema.options;\n"],"mappings":";;;;AAKA,MAAa,8BAA8B,EAAE,mBAAmB,YAAY,CAC1E,EAAE,OAAO;CACP,UAAU,EAAE,QAAQ,SAAS;CAC7B,eAAe,EAAE,QAAQ;CACzB,QAAQ,EAAE,QAAQ;CAClB,WAAW,EAAE,QAAQ,CAAC,UAAU;CACjC,CAAC,CACH,CAAC;AAIF,MAAa,mCAAmC,EAAE,mBAChD,YACA,CACE,EAAE,OAAO;CACP,UAAU,EAAE,QAAQ,SAAS;CAC7B,sBAAsB,EAAE,QAAQ,CAAC,UAAU;CAC3C,aAAa,EAAE,QAAQ,CAAC,UAAU;CAClC,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,iBAAiB,EAAE,QAAQ,CAAC,UAAU;CACtC,mBAAmB,EAAE,QAAQ,CAAC,UAAU;CACzC,CAAC,CACH,CACF;AAMD,MAAa,uBAAuB,EAAE,KAAK,CAAC,SAAS,CAAC;AAGtD,MAAa,4BAA4B,EAAE,KAAK,CAAC,SAAS,CAAC;AAG3D,MAAa,8BAA8B,EAAE,KAAK;CAChD;CACA;CACA;CACA,GAAG;CACJ,CAAC;AAEF,MAAa,yBAAyB,4BAA4B;AAElE,MAAa,mCAAmC,EAAE,KAAK;CACrD;CACA;CACA,GAAG;CACH,GAAG;CACJ,CAAC;AAIF,MAAa,8BACX,iCAAiC"}
@@ -11,14 +11,10 @@ declare const githubIntegration: z.ZodObject<{
11
11
  name: z.ZodLiteral<"github">;
12
12
  metadata: z.ZodObject<{
13
13
  accountType: z.ZodString;
14
+ avatarUrl: z.ZodDefault<z.ZodNullable<z.ZodString>>;
14
15
  repositories: z.ZodRecord<z.ZodString, z.ZodString>;
15
16
  installationUrl: z.ZodNullable<z.ZodString>;
16
17
  }, z.core.$strip>;
17
- source: z.ZodObject<{
18
- commitMessage: z.ZodString;
19
- branch: z.ZodString;
20
- commitSha: z.ZodNullable<z.ZodString>;
21
- }, z.core.$strip>;
22
18
  }, z.core.$strip>;
23
19
  //#endregion
24
20
  export { GithubSourceIdEnvKey, githubIntegration, githubSourceIdEnvKeySchema, githubSourceIdEnvKeys };
@@ -6,13 +6,9 @@ const githubIntegration = z.object({
6
6
  name: z.literal("github"),
7
7
  metadata: z.object({
8
8
  accountType: z.string(),
9
+ avatarUrl: z.string().nullable().default(null),
9
10
  repositories: z.record(z.string(), z.string()),
10
11
  installationUrl: z.string().nullable()
11
- }),
12
- source: z.object({
13
- commitMessage: z.string(),
14
- branch: z.string(),
15
- commitSha: z.string().nullable()
16
12
  })
17
13
  });
18
14
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"github.mjs","names":[],"sources":["../../../src/integrations/platforms/github.ts"],"sourcesContent":["import { z } from \"zod/v4\";\n\nexport const githubSourceIdEnvKeySchema = z.enum([\n \"VERCEL_GIT_COMMIT_SHA\",\n \"GITHUB_SHA\",\n]);\nexport type GithubSourceIdEnvKey = z.infer<typeof githubSourceIdEnvKeySchema>;\nexport const githubSourceIdEnvKeys = githubSourceIdEnvKeySchema.options;\n\nexport const githubIntegration = z.object({\n name: z.literal(\"github\"),\n metadata: z.object({\n accountType: z.string(),\n repositories: z.record(z.string(), z.string()),\n installationUrl: z.string().nullable(),\n }),\n source: z.object({\n commitMessage: z.string(),\n branch: z.string(),\n commitSha: z.string().nullable(),\n }),\n});\n"],"mappings":";;AAEA,MAAa,6BAA6B,EAAE,KAAK,CAC/C,yBACA,aACD,CAAC;AAEF,MAAa,wBAAwB,2BAA2B;AAEhE,MAAa,oBAAoB,EAAE,OAAO;CACxC,MAAM,EAAE,QAAQ,SAAS;CACzB,UAAU,EAAE,OAAO;EACjB,aAAa,EAAE,QAAQ;EACvB,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC;EAC9C,iBAAiB,EAAE,QAAQ,CAAC,UAAU;EACvC,CAAC;CACF,QAAQ,EAAE,OAAO;EACf,eAAe,EAAE,QAAQ;EACzB,QAAQ,EAAE,QAAQ;EAClB,WAAW,EAAE,QAAQ,CAAC,UAAU;EACjC,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"github.mjs","names":[],"sources":["../../../src/integrations/platforms/github.ts"],"sourcesContent":["import { z } from \"zod/v4\";\n\nexport const githubSourceIdEnvKeySchema = z.enum([\n \"VERCEL_GIT_COMMIT_SHA\",\n \"GITHUB_SHA\",\n]);\nexport type GithubSourceIdEnvKey = z.infer<typeof githubSourceIdEnvKeySchema>;\nexport const githubSourceIdEnvKeys = githubSourceIdEnvKeySchema.options;\n\nexport const githubIntegration = z.object({\n name: z.literal(\"github\"),\n metadata: z.object({\n accountType: z.string(),\n avatarUrl: z.string().nullable().default(null),\n repositories: z.record(z.string(), z.string()),\n installationUrl: z.string().nullable(),\n }),\n});\n"],"mappings":";;AAEA,MAAa,6BAA6B,EAAE,KAAK,CAC/C,yBACA,aACD,CAAC;AAEF,MAAa,wBAAwB,2BAA2B;AAEhE,MAAa,oBAAoB,EAAE,OAAO;CACxC,MAAM,EAAE,QAAQ,SAAS;CACzB,UAAU,EAAE,OAAO;EACjB,aAAa,EAAE,QAAQ;EACvB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,KAAK;EAC9C,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC;EAC9C,iBAAiB,EAAE,QAAQ,CAAC,UAAU;EACvC,CAAC;CACH,CAAC"}
@@ -6,23 +6,63 @@ declare const vercelDestinationIdEnvKeySchema: z.ZodEnum<{
6
6
  }>;
7
7
  type VercelDestinationIdEnvKey = z.infer<typeof vercelDestinationIdEnvKeySchema>;
8
8
  declare const vercelDestinationIdEnvKeys: "VERCEL_DEPLOYMENT_ID"[];
9
+ declare const vercelTeamMetadata: z.ZodObject<{
10
+ avatar: z.ZodDefault<z.ZodNullable<z.ZodString>>;
11
+ name: z.ZodDefault<z.ZodNullable<z.ZodString>>;
12
+ installationUrl: z.ZodNullable<z.ZodString>;
13
+ projects: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
14
+ accountType: z.ZodLiteral<"team">;
15
+ id: z.ZodString;
16
+ slug: z.ZodString;
17
+ }, z.core.$strip>;
18
+ declare const vercelUserMetadata: z.ZodObject<{
19
+ avatar: z.ZodDefault<z.ZodNullable<z.ZodString>>;
20
+ name: z.ZodDefault<z.ZodNullable<z.ZodString>>;
21
+ installationUrl: z.ZodNullable<z.ZodString>;
22
+ projects: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
23
+ accountType: z.ZodLiteral<"user">;
24
+ id: z.ZodString;
25
+ username: z.ZodString;
26
+ email: z.ZodString;
27
+ }, z.core.$strip>;
28
+ declare const vercelMetadataSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
29
+ avatar: z.ZodDefault<z.ZodNullable<z.ZodString>>;
30
+ name: z.ZodDefault<z.ZodNullable<z.ZodString>>;
31
+ installationUrl: z.ZodNullable<z.ZodString>;
32
+ projects: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
33
+ accountType: z.ZodLiteral<"team">;
34
+ id: z.ZodString;
35
+ slug: z.ZodString;
36
+ }, z.core.$strip>, z.ZodObject<{
37
+ avatar: z.ZodDefault<z.ZodNullable<z.ZodString>>;
38
+ name: z.ZodDefault<z.ZodNullable<z.ZodString>>;
39
+ installationUrl: z.ZodNullable<z.ZodString>;
40
+ projects: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
41
+ accountType: z.ZodLiteral<"user">;
42
+ id: z.ZodString;
43
+ username: z.ZodString;
44
+ email: z.ZodString;
45
+ }, z.core.$strip>], "accountType">;
9
46
  declare const vercelIntegration: z.ZodObject<{
10
47
  name: z.ZodLiteral<"vercel">;
11
- metadata: z.ZodObject<{
12
- teamId: z.ZodNullable<z.ZodString>;
13
- teamSlug: z.ZodNullable<z.ZodString>;
48
+ metadata: z.ZodDiscriminatedUnion<[z.ZodObject<{
49
+ avatar: z.ZodDefault<z.ZodNullable<z.ZodString>>;
50
+ name: z.ZodDefault<z.ZodNullable<z.ZodString>>;
51
+ installationUrl: z.ZodNullable<z.ZodString>;
52
+ projects: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
53
+ accountType: z.ZodLiteral<"team">;
54
+ id: z.ZodString;
55
+ slug: z.ZodString;
56
+ }, z.core.$strip>, z.ZodObject<{
57
+ avatar: z.ZodDefault<z.ZodNullable<z.ZodString>>;
58
+ name: z.ZodDefault<z.ZodNullable<z.ZodString>>;
14
59
  installationUrl: z.ZodNullable<z.ZodString>;
15
- projectId: z.ZodNullable<z.ZodString>;
16
- productionUrl: z.ZodNullable<z.ZodString>;
17
- region: z.ZodNullable<z.ZodString>;
18
- skewProtectionEnabled: z.ZodNullable<z.ZodBoolean>;
19
- }, z.core.$strip>;
20
- destination: z.ZodObject<{
21
- deploymentId: z.ZodNullable<z.ZodString>;
22
- deploymentUrl: z.ZodNullable<z.ZodString>;
23
- environmentName: z.ZodNullable<z.ZodString>;
24
- environmentTarget: z.ZodNullable<z.ZodString>;
25
- }, z.core.$strip>;
60
+ projects: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
61
+ accountType: z.ZodLiteral<"user">;
62
+ id: z.ZodString;
63
+ username: z.ZodString;
64
+ email: z.ZodString;
65
+ }, z.core.$strip>], "accountType">;
26
66
  }, z.core.$strip>;
27
67
  //#endregion
28
- export { VercelDestinationIdEnvKey, vercelDestinationIdEnvKeySchema, vercelDestinationIdEnvKeys, vercelIntegration };
68
+ export { VercelDestinationIdEnvKey, vercelDestinationIdEnvKeySchema, vercelDestinationIdEnvKeys, vercelIntegration, vercelMetadataSchema, vercelTeamMetadata, vercelUserMetadata };
@@ -1 +1 @@
1
- {"version":3,"file":"vercel.d.mts","names":[],"sources":["../../../src/integrations/platforms/vercel.ts"],"mappings":";;;cAEa,+BAAA,EAA+B,CAAA,CAAA,OAAA;;;KAChC,yBAAA,GAA4B,CAAA,CAAE,KAAA,QACjC,+BAAA;AAAA,cAEI,0BAAA;AAAA,cAGA,iBAAA,EAAiB,CAAA,CAAA,SAAA"}
1
+ {"version":3,"file":"vercel.d.mts","names":[],"sources":["../../../src/integrations/platforms/vercel.ts"],"mappings":";;;cAEa,+BAAA,EAA+B,CAAA,CAAA,OAAA;;;KAChC,yBAAA,GAA4B,CAAA,CAAE,KAAA,QACjC,+BAAA;AAAA,cAEI,0BAAA;AAAA,cAUA,kBAAA,EAAkB,CAAA,CAAA,SAAA;;;;;;;;;cAMlB,kBAAA,EAAkB,CAAA,CAAA,SAAA;;;;;;;;;;cAOlB,oBAAA,EAAoB,CAAA,CAAA,qBAAA,EAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;cAKpB,iBAAA,EAAiB,CAAA,CAAA,SAAA"}
@@ -2,23 +2,27 @@ import { z } from "zod/v4";
2
2
  //#region src/integrations/platforms/vercel.ts
3
3
  const vercelDestinationIdEnvKeySchema = z.enum(["VERCEL_DEPLOYMENT_ID"]);
4
4
  const vercelDestinationIdEnvKeys = vercelDestinationIdEnvKeySchema.options;
5
+ const vercelMetadataBase = z.object({
6
+ avatar: z.string().nullable().default(null),
7
+ name: z.string().nullable().default(null),
8
+ installationUrl: z.string().nullable(),
9
+ projects: z.record(z.string(), z.string()).default({})
10
+ });
11
+ const vercelTeamMetadata = vercelMetadataBase.extend({
12
+ accountType: z.literal("team"),
13
+ id: z.string(),
14
+ slug: z.string()
15
+ });
16
+ const vercelUserMetadata = vercelMetadataBase.extend({
17
+ accountType: z.literal("user"),
18
+ id: z.string(),
19
+ username: z.string(),
20
+ email: z.string()
21
+ });
22
+ const vercelMetadataSchema = z.discriminatedUnion("accountType", [vercelTeamMetadata, vercelUserMetadata]);
5
23
  const vercelIntegration = z.object({
6
24
  name: z.literal("vercel"),
7
- metadata: z.object({
8
- teamId: z.string().nullable(),
9
- teamSlug: z.string().nullable(),
10
- installationUrl: z.string().nullable(),
11
- projectId: z.string().nullable(),
12
- productionUrl: z.string().nullable(),
13
- region: z.string().nullable(),
14
- skewProtectionEnabled: z.boolean().nullable()
15
- }),
16
- destination: z.object({
17
- deploymentId: z.string().nullable(),
18
- deploymentUrl: z.string().nullable(),
19
- environmentName: z.string().nullable(),
20
- environmentTarget: z.string().nullable()
21
- })
25
+ metadata: vercelMetadataSchema
22
26
  });
23
27
  //#endregion
24
- export { vercelDestinationIdEnvKeySchema, vercelDestinationIdEnvKeys, vercelIntegration };
28
+ export { vercelDestinationIdEnvKeySchema, vercelDestinationIdEnvKeys, vercelIntegration, vercelMetadataSchema, vercelTeamMetadata, vercelUserMetadata };
@@ -1 +1 @@
1
- {"version":3,"file":"vercel.mjs","names":[],"sources":["../../../src/integrations/platforms/vercel.ts"],"sourcesContent":["import { z } from \"zod/v4\";\n\nexport const vercelDestinationIdEnvKeySchema = z.enum([\"VERCEL_DEPLOYMENT_ID\"]);\nexport type VercelDestinationIdEnvKey = z.infer<\n typeof vercelDestinationIdEnvKeySchema\n>;\nexport const vercelDestinationIdEnvKeys =\n vercelDestinationIdEnvKeySchema.options;\n\nexport const vercelIntegration = z.object({\n name: z.literal(\"vercel\"),\n metadata: z.object({\n teamId: z.string().nullable(),\n teamSlug: z.string().nullable(),\n installationUrl: z.string().nullable(),\n projectId: z.string().nullable(),\n productionUrl: z.string().nullable(),\n region: z.string().nullable(),\n skewProtectionEnabled: z.boolean().nullable(),\n }),\n destination: z.object({\n deploymentId: z.string().nullable(),\n deploymentUrl: z.string().nullable(),\n environmentName: z.string().nullable(),\n environmentTarget: z.string().nullable(),\n }),\n});\n"],"mappings":";;AAEA,MAAa,kCAAkC,EAAE,KAAK,CAAC,uBAAuB,CAAC;AAI/E,MAAa,6BACX,gCAAgC;AAElC,MAAa,oBAAoB,EAAE,OAAO;CACxC,MAAM,EAAE,QAAQ,SAAS;CACzB,UAAU,EAAE,OAAO;EACjB,QAAQ,EAAE,QAAQ,CAAC,UAAU;EAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;EAC/B,iBAAiB,EAAE,QAAQ,CAAC,UAAU;EACtC,WAAW,EAAE,QAAQ,CAAC,UAAU;EAChC,eAAe,EAAE,QAAQ,CAAC,UAAU;EACpC,QAAQ,EAAE,QAAQ,CAAC,UAAU;EAC7B,uBAAuB,EAAE,SAAS,CAAC,UAAU;EAC9C,CAAC;CACF,aAAa,EAAE,OAAO;EACpB,cAAc,EAAE,QAAQ,CAAC,UAAU;EACnC,eAAe,EAAE,QAAQ,CAAC,UAAU;EACpC,iBAAiB,EAAE,QAAQ,CAAC,UAAU;EACtC,mBAAmB,EAAE,QAAQ,CAAC,UAAU;EACzC,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"vercel.mjs","names":[],"sources":["../../../src/integrations/platforms/vercel.ts"],"sourcesContent":["import { z } from \"zod/v4\";\n\nexport const vercelDestinationIdEnvKeySchema = z.enum([\"VERCEL_DEPLOYMENT_ID\"]);\nexport type VercelDestinationIdEnvKey = z.infer<\n typeof vercelDestinationIdEnvKeySchema\n>;\nexport const vercelDestinationIdEnvKeys =\n vercelDestinationIdEnvKeySchema.options;\n\nconst vercelMetadataBase = z.object({\n avatar: z.string().nullable().default(null),\n name: z.string().nullable().default(null),\n installationUrl: z.string().nullable(),\n projects: z.record(z.string(), z.string()).default({}),\n});\n\nexport const vercelTeamMetadata = vercelMetadataBase.extend({\n accountType: z.literal(\"team\"),\n id: z.string(),\n slug: z.string(),\n});\n\nexport const vercelUserMetadata = vercelMetadataBase.extend({\n accountType: z.literal(\"user\"),\n id: z.string(),\n username: z.string(),\n email: z.string(),\n});\n\nexport const vercelMetadataSchema = z.discriminatedUnion(\"accountType\", [\n vercelTeamMetadata,\n vercelUserMetadata,\n]);\n\nexport const vercelIntegration = z.object({\n name: z.literal(\"vercel\"),\n metadata: vercelMetadataSchema,\n});\n"],"mappings":";;AAEA,MAAa,kCAAkC,EAAE,KAAK,CAAC,uBAAuB,CAAC;AAI/E,MAAa,6BACX,gCAAgC;AAElC,MAAM,qBAAqB,EAAE,OAAO;CAClC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,KAAK;CAC3C,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,KAAK;CACzC,iBAAiB,EAAE,QAAQ,CAAC,UAAU;CACtC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;CACvD,CAAC;AAEF,MAAa,qBAAqB,mBAAmB,OAAO;CAC1D,aAAa,EAAE,QAAQ,OAAO;CAC9B,IAAI,EAAE,QAAQ;CACd,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAa,qBAAqB,mBAAmB,OAAO;CAC1D,aAAa,EAAE,QAAQ,OAAO;CAC9B,IAAI,EAAE,QAAQ;CACd,UAAU,EAAE,QAAQ;CACpB,OAAO,EAAE,QAAQ;CAClB,CAAC;AAEF,MAAa,uBAAuB,EAAE,mBAAmB,eAAe,CACtE,oBACA,mBACD,CAAC;AAEF,MAAa,oBAAoB,EAAE,OAAO;CACxC,MAAM,EAAE,QAAQ,SAAS;CACzB,UAAU;CACX,CAAC"}
@@ -10,20 +10,22 @@ declare const releaseStatusSchema: z.ZodEnum<{
10
10
  }>;
11
11
  declare const createReleaseRequest: z.ZodObject<{
12
12
  source: z.ZodDiscriminatedUnion<[z.ZodObject<{
13
+ provider: z.ZodLiteral<"github">;
13
14
  commitMessage: z.ZodString;
14
15
  branch: z.ZodString;
15
16
  commitSha: z.ZodNullable<z.ZodString>;
16
- provider: z.ZodLiteral<"github">;
17
17
  }, z.core.$strip>], "provider">;
18
18
  destination: z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
19
+ provider: z.ZodLiteral<"vercel">;
20
+ destinationReleaseId: z.ZodNullable<z.ZodString>;
19
21
  environment: z.ZodNullable<z.ZodString>;
20
22
  deploymentId: z.ZodNullable<z.ZodString>;
21
23
  deploymentUrl: z.ZodNullable<z.ZodString>;
22
24
  environmentName: z.ZodNullable<z.ZodString>;
23
25
  environmentTarget: z.ZodNullable<z.ZodString>;
24
- provider: z.ZodLiteral<"vercel">;
25
26
  }, z.core.$strip>], "provider">>;
26
27
  buildId: z.ZodString;
28
+ producerVersion: z.ZodOptional<z.ZodString>;
27
29
  }, z.core.$strip>;
28
30
  type CreateReleaseRequest = z.infer<typeof createReleaseRequest>;
29
31
  declare const createReleaseResponse: z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"definition.d.mts","names":[],"sources":["../../src/releases/definition.ts"],"mappings":";;;cAOa,mBAAA,EAAmB,CAAA,CAAA,OAAA;;;;;;;cAQnB,oBAAA,EAAoB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;KAMrB,oBAAA,GAAuB,CAAA,CAAE,KAAA,QAAa,oBAAA;AAAA,cAErC,qBAAA,EAAqB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;KAsBtB,qBAAA,GAAwB,CAAA,CAAE,KAAA,QAAa,qBAAA"}
1
+ {"version":3,"file":"definition.d.mts","names":[],"sources":["../../src/releases/definition.ts"],"mappings":";;;cAOa,mBAAA,EAAmB,CAAA,CAAA,OAAA;;;;;;;cAQnB,oBAAA,EAAoB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;KAOrB,oBAAA,GAAuB,CAAA,CAAE,KAAA,QAAa,oBAAA;AAAA,cAErC,qBAAA,EAAqB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;KAsBtB,qBAAA,GAAwB,CAAA,CAAE,KAAA,QAAa,qBAAA"}
@@ -11,7 +11,8 @@ const releaseStatusSchema = z.enum([
11
11
  const createReleaseRequest = z.object({
12
12
  source: releaseSourceMetadataSchema,
13
13
  destination: releaseDestinationMetadataSchema.nullable(),
14
- buildId: z.string()
14
+ buildId: z.string(),
15
+ producerVersion: z.string().optional()
15
16
  });
16
17
  const createReleaseResponse = z.object({
17
18
  org: z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"definition.mjs","names":[],"sources":["../../src/releases/definition.ts"],"sourcesContent":["import { z } from \"zod/v4\";\n\nimport {\n releaseDestinationMetadataSchema,\n releaseSourceMetadataSchema,\n} from \"../integrations\";\n\nexport const releaseStatusSchema = z.enum([\n \"pending\",\n \"uploading\",\n \"processing\",\n \"ready\",\n \"failed\",\n]);\n\nexport const createReleaseRequest = z.object({\n source: releaseSourceMetadataSchema,\n destination: releaseDestinationMetadataSchema.nullable(),\n buildId: z.string(),\n});\n\nexport type CreateReleaseRequest = z.infer<typeof createReleaseRequest>;\n\nexport const createReleaseResponse = z.object({\n org: z.object({\n id: z.string(),\n slug: z.string(),\n }),\n surface: z.object({\n id: z.string(),\n slug: z.string(),\n }),\n source: z.object({\n id: z.string(),\n }),\n destination: z.object({\n id: z.string(),\n slug: z.string(),\n environment: z.string().nullable(),\n }),\n build: z.object({\n hash: z.string(),\n }),\n});\n\nexport type CreateReleaseResponse = z.infer<typeof createReleaseResponse>;\n"],"mappings":";;;AAOA,MAAa,sBAAsB,EAAE,KAAK;CACxC;CACA;CACA;CACA;CACA;CACD,CAAC;AAEF,MAAa,uBAAuB,EAAE,OAAO;CAC3C,QAAQ;CACR,aAAa,iCAAiC,UAAU;CACxD,SAAS,EAAE,QAAQ;CACpB,CAAC;AAIF,MAAa,wBAAwB,EAAE,OAAO;CAC5C,KAAK,EAAE,OAAO;EACZ,IAAI,EAAE,QAAQ;EACd,MAAM,EAAE,QAAQ;EACjB,CAAC;CACF,SAAS,EAAE,OAAO;EAChB,IAAI,EAAE,QAAQ;EACd,MAAM,EAAE,QAAQ;EACjB,CAAC;CACF,QAAQ,EAAE,OAAO,EACf,IAAI,EAAE,QAAQ,EACf,CAAC;CACF,aAAa,EAAE,OAAO;EACpB,IAAI,EAAE,QAAQ;EACd,MAAM,EAAE,QAAQ;EAChB,aAAa,EAAE,QAAQ,CAAC,UAAU;EACnC,CAAC;CACF,OAAO,EAAE,OAAO,EACd,MAAM,EAAE,QAAQ,EACjB,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"definition.mjs","names":[],"sources":["../../src/releases/definition.ts"],"sourcesContent":["import { z } from \"zod/v4\";\n\nimport {\n releaseDestinationMetadataSchema,\n releaseSourceMetadataSchema,\n} from \"../integrations\";\n\nexport const releaseStatusSchema = z.enum([\n \"pending\",\n \"uploading\",\n \"processing\",\n \"ready\",\n \"failed\",\n]);\n\nexport const createReleaseRequest = z.object({\n source: releaseSourceMetadataSchema,\n destination: releaseDestinationMetadataSchema.nullable(),\n buildId: z.string(),\n producerVersion: z.string().optional(),\n});\n\nexport type CreateReleaseRequest = z.infer<typeof createReleaseRequest>;\n\nexport const createReleaseResponse = z.object({\n org: z.object({\n id: z.string(),\n slug: z.string(),\n }),\n surface: z.object({\n id: z.string(),\n slug: z.string(),\n }),\n source: z.object({\n id: z.string(),\n }),\n destination: z.object({\n id: z.string(),\n slug: z.string(),\n environment: z.string().nullable(),\n }),\n build: z.object({\n hash: z.string(),\n }),\n});\n\nexport type CreateReleaseResponse = z.infer<typeof createReleaseResponse>;\n"],"mappings":";;;AAOA,MAAa,sBAAsB,EAAE,KAAK;CACxC;CACA;CACA;CACA;CACA;CACD,CAAC;AAEF,MAAa,uBAAuB,EAAE,OAAO;CAC3C,QAAQ;CACR,aAAa,iCAAiC,UAAU;CACxD,SAAS,EAAE,QAAQ;CACnB,iBAAiB,EAAE,QAAQ,CAAC,UAAU;CACvC,CAAC;AAIF,MAAa,wBAAwB,EAAE,OAAO;CAC5C,KAAK,EAAE,OAAO;EACZ,IAAI,EAAE,QAAQ;EACd,MAAM,EAAE,QAAQ;EACjB,CAAC;CACF,SAAS,EAAE,OAAO;EAChB,IAAI,EAAE,QAAQ;EACd,MAAM,EAAE,QAAQ;EACjB,CAAC;CACF,QAAQ,EAAE,OAAO,EACf,IAAI,EAAE,QAAQ,EACf,CAAC;CACF,aAAa,EAAE,OAAO;EACpB,IAAI,EAAE,QAAQ;EACd,MAAM,EAAE,QAAQ;EAChB,aAAa,EAAE,QAAQ,CAAC,UAAU;EACnC,CAAC;CACF,OAAO,EAAE,OAAO,EACd,MAAM,EAAE,QAAQ,EACjB,CAAC;CACH,CAAC"}
@@ -11,20 +11,20 @@ declare const apiBaseUrlSchema: z.ZodUnion<readonly [z.ZodString, z.ZodEnum<{
11
11
  "http://localhost:3001": "http://localhost:3001";
12
12
  }>]>;
13
13
  declare const featuresSchema: z.ZodDefault<z.ZodObject<{
14
- fingerprint: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
14
+ device: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
15
+ replay: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
15
16
  errors: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
16
17
  pageEvents: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
17
18
  rageClick: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
18
- replay: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
19
19
  }, z.core.$strip>>;
20
20
  type Features = z.infer<typeof featuresSchema>;
21
21
  declare const configSchema: z.ZodPipe<z.ZodIntersection<z.ZodObject<{
22
22
  features: z.ZodDefault<z.ZodObject<{
23
- fingerprint: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
23
+ device: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
24
+ replay: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
24
25
  errors: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
25
26
  pageEvents: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
26
27
  rageClick: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
27
- replay: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
28
28
  }, z.core.$strip>>;
29
29
  metadata: z.ZodObject<{
30
30
  buildId: z.ZodNullable<z.ZodString>;
@@ -35,14 +35,15 @@ declare const configSchema: z.ZodPipe<z.ZodIntersection<z.ZodObject<{
35
35
  production: "production";
36
36
  }>>;
37
37
  runtime: z.ZodNullable<z.ZodEnum<{
38
- edge: "edge";
39
38
  browser: "browser";
39
+ edge: "edge";
40
40
  node: "node";
41
41
  }>>;
42
42
  }, z.core.$strip>;
43
43
  batch: z.ZodDefault<z.ZodObject<{
44
44
  size: z.ZodDefault<z.ZodNumber>;
45
45
  ms: z.ZodDefault<z.ZodNumber>;
46
+ maxBufferSize: z.ZodDefault<z.ZodNumber>;
46
47
  }, z.core.$strip>>;
47
48
  offline: z.ZodDefault<z.ZodObject<{
48
49
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -55,21 +56,22 @@ declare const configSchema: z.ZodPipe<z.ZodIntersection<z.ZodObject<{
55
56
  surfaceToken: z.ZodString;
56
57
  }, z.core.$strip>]>>, z.ZodTransform<({
57
58
  features: {
58
- fingerprint?: boolean | undefined;
59
+ device?: boolean | undefined;
60
+ replay?: boolean | undefined;
59
61
  errors?: boolean | undefined;
60
62
  pageEvents?: boolean | undefined;
61
63
  rageClick?: boolean | undefined;
62
- replay?: boolean | undefined;
63
64
  };
64
65
  metadata: {
65
66
  buildId: string | null;
66
67
  releaseId: string | null;
67
68
  environment: "development" | "preview" | "production" | null;
68
- runtime: "edge" | "browser" | "node" | null;
69
+ runtime: "browser" | "edge" | "node" | null;
69
70
  };
70
71
  batch: {
71
72
  size: number;
72
73
  ms: number;
74
+ maxBufferSize: number;
73
75
  };
74
76
  offline: {
75
77
  enabled: boolean;
@@ -79,21 +81,22 @@ declare const configSchema: z.ZodPipe<z.ZodIntersection<z.ZodObject<{
79
81
  proxyUrl: string;
80
82
  }) | ({
81
83
  features: {
82
- fingerprint?: boolean | undefined;
84
+ device?: boolean | undefined;
85
+ replay?: boolean | undefined;
83
86
  errors?: boolean | undefined;
84
87
  pageEvents?: boolean | undefined;
85
88
  rageClick?: boolean | undefined;
86
- replay?: boolean | undefined;
87
89
  };
88
90
  metadata: {
89
91
  buildId: string | null;
90
92
  releaseId: string | null;
91
93
  environment: "development" | "preview" | "production" | null;
92
- runtime: "edge" | "browser" | "node" | null;
94
+ runtime: "browser" | "edge" | "node" | null;
93
95
  };
94
96
  batch: {
95
97
  size: number;
96
98
  ms: number;
99
+ maxBufferSize: number;
97
100
  };
98
101
  offline: {
99
102
  enabled: boolean;
@@ -104,21 +107,22 @@ declare const configSchema: z.ZodPipe<z.ZodIntersection<z.ZodObject<{
104
107
  surfaceToken: string;
105
108
  }), {
106
109
  features: {
107
- fingerprint?: boolean | undefined;
110
+ device?: boolean | undefined;
111
+ replay?: boolean | undefined;
108
112
  errors?: boolean | undefined;
109
113
  pageEvents?: boolean | undefined;
110
114
  rageClick?: boolean | undefined;
111
- replay?: boolean | undefined;
112
115
  };
113
116
  metadata: {
114
117
  buildId: string | null;
115
118
  releaseId: string | null;
116
119
  environment: "development" | "preview" | "production" | null;
117
- runtime: "edge" | "browser" | "node" | null;
120
+ runtime: "browser" | "edge" | "node" | null;
118
121
  };
119
122
  batch: {
120
123
  size: number;
121
124
  ms: number;
125
+ maxBufferSize: number;
122
126
  };
123
127
  offline: {
124
128
  enabled: boolean;
@@ -133,11 +137,11 @@ declare const configSchema: z.ZodPipe<z.ZodIntersection<z.ZodObject<{
133
137
  type Config = z.output<typeof configSchema>;
134
138
  declare const configInputSchema: z.ZodIntersection<z.ZodObject<{
135
139
  features: z.ZodOptional<z.ZodDefault<z.ZodObject<{
136
- fingerprint: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
140
+ device: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
141
+ replay: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
137
142
  errors: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
138
143
  pageEvents: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
139
144
  rageClick: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
140
- replay: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
141
145
  }, z.core.$strip>>>;
142
146
  metadata: z.ZodOptional<z.ZodObject<{
143
147
  buildId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -148,14 +152,15 @@ declare const configInputSchema: z.ZodIntersection<z.ZodObject<{
148
152
  production: "production";
149
153
  }>>>;
150
154
  runtime: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
151
- edge: "edge";
152
155
  browser: "browser";
156
+ edge: "edge";
153
157
  node: "node";
154
158
  }>>>;
155
159
  }, z.core.$strip>>;
156
160
  batch: z.ZodOptional<z.ZodObject<{
157
161
  size: z.ZodOptional<z.ZodNumber>;
158
162
  ms: z.ZodOptional<z.ZodNumber>;
163
+ maxBufferSize: z.ZodOptional<z.ZodNumber>;
159
164
  }, z.core.$strip>>;
160
165
  offline: z.ZodOptional<z.ZodDefault<z.ZodObject<{
161
166
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.mts","names":[],"sources":["../../src/sdk/config.ts"],"mappings":";;;cAWa,oBAAA,EAAoB,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,SAAA;;;;KAgBrB,cAAA,GAAiB,CAAA,CAAE,KAAA,QAAa,oBAAA;AAAA,cAE/B,gBAAA,EAAgB,CAAA,CAAA,QAAA,WAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,OAAA;;;;cAKhB,cAAA,EAAc,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,SAAA;;;;;;;KAgBf,QAAA,GAAW,CAAA,CAAE,KAAA,QAAa,cAAA;AAAA,cAgCzB,YAAA,EAAY,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAeb,MAAA,GAAS,CAAA,CAAE,MAAA,QAAc,YAAA;AAAA,cAExB,iBAAA,EAAiB,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuBlB,WAAA,GAAc,CAAA,CAAE,KAAA,QAAa,iBAAA;AAAA,cAE5B,qBAAA,EAAqB,CAAA,CAAA,OAAA;;;;;KAMtB,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,qBAAA"}
1
+ {"version":3,"file":"config.d.mts","names":[],"sources":["../../src/sdk/config.ts"],"mappings":";;;cAYa,oBAAA,EAAoB,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,SAAA;;;;KAgBrB,cAAA,GAAiB,CAAA,CAAE,KAAA,QAAa,oBAAA;AAAA,cAE/B,gBAAA,EAAgB,CAAA,CAAA,QAAA,WAAA,CAAA,CAAA,SAAA,EAAA,CAAA,CAAA,OAAA;;;;cAKhB,cAAA,EAAc,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,SAAA;;;;;;;KAgBf,QAAA,GAAW,CAAA,CAAE,KAAA,QAAa,cAAA;AAAA,cAqCzB,YAAA,EAAY,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAeb,MAAA,GAAS,CAAA,CAAE,MAAA,QAAc,YAAA;AAAA,cAExB,iBAAA,EAAiB,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwBlB,WAAA,GAAc,CAAA,CAAE,KAAA,QAAa,iBAAA;AAAA,cAE5B,qBAAA,EAAqB,CAAA,CAAA,OAAA;;;;;KAMtB,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,qBAAA"}
@@ -5,6 +5,7 @@ import { envSchema, runtimeSchema } from "#sdk/runtime";
5
5
  //#region src/sdk/config.ts
6
6
  const DEFAULT_BATCH_SIZE = 10;
7
7
  const DEFAULT_BATCH_MS = 250;
8
+ const DEFAULT_MAX_BUFFER_SIZE = 1e3;
8
9
  const offlineStorageSchema = z.object({
9
10
  enabled: z.boolean().default(false),
10
11
  maxQueueSize: z.number().default(100)
@@ -24,10 +25,12 @@ const baseSdkConfigSchema = z.object({
24
25
  }),
25
26
  batch: z.object({
26
27
  size: z.number().default(DEFAULT_BATCH_SIZE),
27
- ms: z.number().default(DEFAULT_BATCH_MS)
28
+ ms: z.number().default(DEFAULT_BATCH_MS),
29
+ maxBufferSize: z.number().default(DEFAULT_MAX_BUFFER_SIZE)
28
30
  }).default(() => ({
29
31
  size: DEFAULT_BATCH_SIZE,
30
- ms: DEFAULT_BATCH_MS
32
+ ms: DEFAULT_BATCH_MS,
33
+ maxBufferSize: DEFAULT_MAX_BUFFER_SIZE
31
34
  })),
32
35
  offline: offlineStorageSchema
33
36
  });
@@ -54,7 +57,8 @@ const configInputSchema = z.object({
54
57
  }).partial().optional(),
55
58
  batch: z.object({
56
59
  size: z.number(),
57
- ms: z.number()
60
+ ms: z.number(),
61
+ maxBufferSize: z.number()
58
62
  }).partial().optional(),
59
63
  offline: offlineStorageSchema.optional()
60
64
  }).and(z.union([proxyConfigSchema, directConfigSchema]));
@@ -1 +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 { PLUGIN_MANIFEST, type PluginKey } 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":";;;;;AAQA,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,KAAA,EAC1B,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"}
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 { PLUGIN_MANIFEST, type PluginKey } from \"./plugins/manifest.js\";\n\nconst DEFAULT_BATCH_SIZE = 10;\nconst DEFAULT_BATCH_MS = 250;\nconst DEFAULT_MAX_BUFFER_SIZE = 1000;\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 maxBufferSize: z.number().default(DEFAULT_MAX_BUFFER_SIZE),\n })\n .default(() => ({\n size: DEFAULT_BATCH_SIZE,\n ms: DEFAULT_BATCH_MS,\n maxBufferSize: DEFAULT_MAX_BUFFER_SIZE,\n })),\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 maxBufferSize: 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":";;;;;AAQA,MAAM,qBAAqB;AAC3B,MAAM,mBAAmB;AACzB,MAAM,0BAA0B;AAEhC,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;EACxC,eAAe,EAAE,QAAQ,CAAC,QAAQ,wBAAwB;EAC3D,CAAC,CACD,eAAe;EACd,MAAM;EACN,IAAI;EACJ,eAAe;EAChB,EAAE;CAOL,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,KAAA,EAC1B,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;EACd,eAAe,EAAE,QAAQ;EAC1B,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"}
@@ -12,10 +12,10 @@ type EnvelopeVersion = z.infer<typeof envelopeVersion>;
12
12
  * - "client": Session ID was set on the client (browser SDK)
13
13
  */
14
14
  declare const sessionSourceSchema: z.ZodOptional<z.ZodEnum<{
15
- client: "client";
16
15
  header: "header";
17
16
  async_context: "async_context";
18
17
  fallback: "fallback";
18
+ client: "client";
19
19
  }>>;
20
20
  type SessionSource = z.infer<typeof sessionSourceSchema>;
21
21
  declare const envelopeContextSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -169,18 +169,19 @@ declare const envelopeSchema: z.ZodIntersection<z.ZodObject<{
169
169
  preview: "preview";
170
170
  production: "production";
171
171
  }>>;
172
+ producerVersion: z.ZodOptional<z.ZodString>;
172
173
  releaseId: z.ZodNullable<z.ZodString>;
173
174
  runtime: z.ZodNullable<z.ZodEnum<{
174
- edge: "edge";
175
175
  browser: "browser";
176
+ edge: "edge";
176
177
  node: "node";
177
178
  }>>;
178
179
  sessionId: z.ZodNullable<z.ZodUnion<readonly [z.ZodUUID, z.ZodTemplateLiteral<`server_${string}`>]>>;
179
180
  sessionSource: z.ZodOptional<z.ZodEnum<{
180
- client: "client";
181
181
  header: "header";
182
182
  async_context: "async_context";
183
183
  fallback: "fallback";
184
+ client: "client";
184
185
  }>>;
185
186
  uuid: z.ZodUUID;
186
187
  v: z.ZodUnion<readonly [z.ZodLiteral<0>]>;
@@ -327,18 +328,19 @@ declare const stampedEnvelopeSchema: z.ZodIntersection<z.ZodIntersection<z.ZodOb
327
328
  preview: "preview";
328
329
  production: "production";
329
330
  }>>;
331
+ producerVersion: z.ZodOptional<z.ZodString>;
330
332
  releaseId: z.ZodNullable<z.ZodString>;
331
333
  runtime: z.ZodNullable<z.ZodEnum<{
332
- edge: "edge";
333
334
  browser: "browser";
335
+ edge: "edge";
334
336
  node: "node";
335
337
  }>>;
336
338
  sessionId: z.ZodNullable<z.ZodUnion<readonly [z.ZodUUID, z.ZodTemplateLiteral<`server_${string}`>]>>;
337
339
  sessionSource: z.ZodOptional<z.ZodEnum<{
338
- client: "client";
339
340
  header: "header";
340
341
  async_context: "async_context";
341
342
  fallback: "fallback";
343
+ client: "client";
342
344
  }>>;
343
345
  uuid: z.ZodUUID;
344
346
  v: z.ZodUnion<readonly [z.ZodLiteral<0>]>;
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.d.mts","names":[],"sources":["../../src/sdk/envelope.ts"],"mappings":";;;cAiBM,eAAA,EAAe,CAAA,CAAA,QAAA,WAAA,CAAA,CAAA,UAAA;AAAA,KAET,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,eAAA;AAnBlB;;;;;;;;AAAA,cA6Bd,mBAAA,EAAmB,CAAA,CAAA,WAAA,CAAA,CAAA,CAAA,OAAA;;;;;;KAIpB,aAAA,GAAgB,CAAA,CAAE,KAAA,QAAa,mBAAA;AAAA,cAE9B,qBAAA,EAAqB,CAAA,CAAA,qBAAA,EAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAMtB,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,qBAAA;AAAA,cAehC,cAAA,EAAc,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6BtB,YAAA,GAAe,CAAA,CAAE,KAAA,QAAa,cAAA;AAAA,KAEvB,SAAA,GAAY,YAAA;AAAA,KAEZ,QAAA,WAAmB,SAAA,4BAC7B,CAAA,SAAU,SAAA,GAAY,OAAA,CAAQ,YAAA;EAAgB,IAAA,EAAM,CAAA;AAAA,KAAO,YAAA;AAAA,KAEjD,eAAA,WAA0B,SAAA,IAAa,QAAA,CAAS,CAAA;AAAA,cAE/C,qBAAA,EAAqB,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAOtB,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,qBAAA"}
1
+ {"version":3,"file":"envelope.d.mts","names":[],"sources":["../../src/sdk/envelope.ts"],"mappings":";;;cAiBM,eAAA,EAAe,CAAA,CAAA,QAAA,WAAA,CAAA,CAAA,UAAA;AAAA,KAET,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,eAAA;AAnBlB;;;;;;;;AAAA,cA6Bd,mBAAA,EAAmB,CAAA,CAAA,WAAA,CAAA,CAAA,CAAA,OAAA;;;;;;KAIpB,aAAA,GAAgB,CAAA,CAAE,KAAA,QAAa,mBAAA;AAAA,cAE9B,qBAAA,EAAqB,CAAA,CAAA,qBAAA,EAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAMtB,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,qBAAA;AAAA,cAgBhC,cAAA,EAAc,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6BtB,YAAA,GAAe,CAAA,CAAE,KAAA,QAAa,cAAA;AAAA,KAEvB,SAAA,GAAY,YAAA;AAAA,KAEZ,QAAA,WAAmB,SAAA,4BAC7B,CAAA,SAAU,SAAA,GAAY,OAAA,CAAQ,YAAA;EAAgB,IAAA,EAAM,CAAA;AAAA,KAAO,YAAA;AAAA,KAEjD,eAAA,WAA0B,SAAA,IAAa,QAAA,CAAS,CAAA;AAAA,cAE/C,qBAAA,EAAqB,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAOtB,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,qBAAA"}
@@ -35,6 +35,7 @@ const envelopeSchema = z.object({
35
35
  clientTs: z.int(),
36
36
  context: envelopeContextSchema.optional(),
37
37
  environment: envSchema,
38
+ producerVersion: z.string().optional(),
38
39
  releaseId: z.string().nullable(),
39
40
  runtime: runtimeSchema,
40
41
  sessionId: sessionIdSchema.nullable(),
@@ -1 +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 { browserContextSchema } from \"#sdk/plugins/context/browser\";\nimport { edgeContextSchema } from \"#sdk/plugins/context/edge\";\nimport { nextjsContextSchema } from \"#sdk/plugins/context/next\";\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\nconst envelopeVersion = z.union([z.literal(0)]);\n\nexport type EnvelopeVersion = z.infer<typeof envelopeVersion>;\n\n/**\n * Indicates how the sessionId was resolved on the server.\n *\n * - \"header\": Extracted from x-interfere-request header (ideal case)\n * - \"async_context\": Retrieved from AsyncLocalStorage context\n * - \"fallback\": Generated as server-side fallback (breaks session continuity)\n * - \"client\": Session ID was set on the client (browser SDK)\n */\nexport const sessionSourceSchema = z\n .enum([\"header\", \"async_context\", \"fallback\", \"client\"])\n .optional();\n\nexport type SessionSource = z.infer<typeof sessionSourceSchema>;\n\nexport const envelopeContextSchema = z.discriminatedUnion(\"runtime\", [\n browserContextSchema,\n nextjsContextSchema,\n edgeContextSchema,\n]);\n\nexport type EnvelopeContext = z.infer<typeof envelopeContextSchema>;\n\nconst envelopeHeadersSchema = z.object({\n buildId: z.string(),\n clientTs: z.int(),\n context: envelopeContextSchema.optional(),\n environment: envSchema,\n releaseId: z.string().nullable(),\n runtime: runtimeSchema,\n sessionId: sessionIdSchema.nullable(),\n sessionSource: sessionSourceSchema,\n uuid: z.uuidv7(),\n v: envelopeVersion,\n});\n\nexport const envelopeSchema = envelopeHeadersSchema.and(\n z.discriminatedUnion(\"type\", [\n z.object({\n payload: errorEnvelopePayloadSchema,\n type: z.literal(\"error\"),\n }),\n z.object({\n payload: pageviewPayloadSchema,\n type: z.literal(\"pageview\"),\n }),\n z.object({\n payload: pageleavePayloadSchema,\n type: z.literal(\"pageleave\"),\n }),\n z.object({\n payload: uiEventPayloadSchema,\n type: z.literal(\"ui_event\"),\n }),\n z.object({\n payload: replayChunkPayloadSchema,\n type: z.literal(\"replay_chunk\"),\n }),\n z.object({\n payload: rageClickPayloadSchema,\n type: z.literal(\"rage_click\"),\n }),\n ])\n);\n\ntype EnvelopeBase = z.infer<typeof envelopeSchema>;\n\nexport type EventType = EnvelopeBase[\"type\"];\n\nexport type Envelope<T extends EventType | undefined = undefined> =\n T extends EventType ? Extract<EnvelopeBase, { type: T }> : EnvelopeBase;\n\nexport type EnvelopePayload<T extends EventType> = Envelope<T>[\"payload\"];\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;;;;;;;;;AAY/C,MAAa,sBAAsB,EAChC,KAAK;CAAC;CAAU;CAAiB;CAAY;CAAS,CAAC,CACvD,UAAU;AAIb,MAAa,wBAAwB,EAAE,mBAAmB,WAAW;CACnE;CACA;CACA;CACD,CAAC;AAiBF,MAAa,iBAbiB,EAAE,OAAO;CACrC,SAAS,EAAE,QAAQ;CACnB,UAAU,EAAE,KAAK;CACjB,SAAS,sBAAsB,UAAU;CACzC,aAAa;CACb,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,SAAS;CACT,WAAW,gBAAgB,UAAU;CACrC,eAAe;CACf,MAAM,EAAE,QAAQ;CAChB,GAAG;CACJ,CAAC,CAEkD,IAClD,EAAE,mBAAmB,QAAQ;CAC3B,EAAE,OAAO;EACP,SAAS;EACT,MAAM,EAAE,QAAQ,QAAQ;EACzB,CAAC;CACF,EAAE,OAAO;EACP,SAAS;EACT,MAAM,EAAE,QAAQ,WAAW;EAC5B,CAAC;CACF,EAAE,OAAO;EACP,SAAS;EACT,MAAM,EAAE,QAAQ,YAAY;EAC7B,CAAC;CACF,EAAE,OAAO;EACP,SAAS;EACT,MAAM,EAAE,QAAQ,WAAW;EAC5B,CAAC;CACF,EAAE,OAAO;EACP,SAAS;EACT,MAAM,EAAE,QAAQ,eAAe;EAChC,CAAC;CACF,EAAE,OAAO;EACP,SAAS;EACT,MAAM,EAAE,QAAQ,aAAa;EAC9B,CAAC;CACH,CAAC,CACH;AAWD,MAAa,wBAAwB,EAAE,aACrC,gBACA,EAAE,OAAO,EACP,aAAa,mBACd,CAAC,CACH"}
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 { browserContextSchema } from \"#sdk/plugins/context/browser\";\nimport { edgeContextSchema } from \"#sdk/plugins/context/edge\";\nimport { nextjsContextSchema } from \"#sdk/plugins/context/next\";\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\nconst envelopeVersion = z.union([z.literal(0)]);\n\nexport type EnvelopeVersion = z.infer<typeof envelopeVersion>;\n\n/**\n * Indicates how the sessionId was resolved on the server.\n *\n * - \"header\": Extracted from x-interfere-request header (ideal case)\n * - \"async_context\": Retrieved from AsyncLocalStorage context\n * - \"fallback\": Generated as server-side fallback (breaks session continuity)\n * - \"client\": Session ID was set on the client (browser SDK)\n */\nexport const sessionSourceSchema = z\n .enum([\"header\", \"async_context\", \"fallback\", \"client\"])\n .optional();\n\nexport type SessionSource = z.infer<typeof sessionSourceSchema>;\n\nexport const envelopeContextSchema = z.discriminatedUnion(\"runtime\", [\n browserContextSchema,\n nextjsContextSchema,\n edgeContextSchema,\n]);\n\nexport type EnvelopeContext = z.infer<typeof envelopeContextSchema>;\n\nconst envelopeHeadersSchema = z.object({\n buildId: z.string(),\n clientTs: z.int(),\n context: envelopeContextSchema.optional(),\n environment: envSchema,\n producerVersion: z.string().optional(),\n releaseId: z.string().nullable(),\n runtime: runtimeSchema,\n sessionId: sessionIdSchema.nullable(),\n sessionSource: sessionSourceSchema,\n uuid: z.uuidv7(),\n v: envelopeVersion,\n});\n\nexport const envelopeSchema = envelopeHeadersSchema.and(\n z.discriminatedUnion(\"type\", [\n z.object({\n payload: errorEnvelopePayloadSchema,\n type: z.literal(\"error\"),\n }),\n z.object({\n payload: pageviewPayloadSchema,\n type: z.literal(\"pageview\"),\n }),\n z.object({\n payload: pageleavePayloadSchema,\n type: z.literal(\"pageleave\"),\n }),\n z.object({\n payload: uiEventPayloadSchema,\n type: z.literal(\"ui_event\"),\n }),\n z.object({\n payload: replayChunkPayloadSchema,\n type: z.literal(\"replay_chunk\"),\n }),\n z.object({\n payload: rageClickPayloadSchema,\n type: z.literal(\"rage_click\"),\n }),\n ])\n);\n\ntype EnvelopeBase = z.infer<typeof envelopeSchema>;\n\nexport type EventType = EnvelopeBase[\"type\"];\n\nexport type Envelope<T extends EventType | undefined = undefined> =\n T extends EventType ? Extract<EnvelopeBase, { type: T }> : EnvelopeBase;\n\nexport type EnvelopePayload<T extends EventType> = Envelope<T>[\"payload\"];\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;;;;;;;;;AAY/C,MAAa,sBAAsB,EAChC,KAAK;CAAC;CAAU;CAAiB;CAAY;CAAS,CAAC,CACvD,UAAU;AAIb,MAAa,wBAAwB,EAAE,mBAAmB,WAAW;CACnE;CACA;CACA;CACD,CAAC;AAkBF,MAAa,iBAdiB,EAAE,OAAO;CACrC,SAAS,EAAE,QAAQ;CACnB,UAAU,EAAE,KAAK;CACjB,SAAS,sBAAsB,UAAU;CACzC,aAAa;CACb,iBAAiB,EAAE,QAAQ,CAAC,UAAU;CACtC,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,SAAS;CACT,WAAW,gBAAgB,UAAU;CACrC,eAAe;CACf,MAAM,EAAE,QAAQ;CAChB,GAAG;CACJ,CAAC,CAEkD,IAClD,EAAE,mBAAmB,QAAQ;CAC3B,EAAE,OAAO;EACP,SAAS;EACT,MAAM,EAAE,QAAQ,QAAQ;EACzB,CAAC;CACF,EAAE,OAAO;EACP,SAAS;EACT,MAAM,EAAE,QAAQ,WAAW;EAC5B,CAAC;CACF,EAAE,OAAO;EACP,SAAS;EACT,MAAM,EAAE,QAAQ,YAAY;EAC7B,CAAC;CACF,EAAE,OAAO;EACP,SAAS;EACT,MAAM,EAAE,QAAQ,WAAW;EAC5B,CAAC;CACF,EAAE,OAAO;EACP,SAAS;EACT,MAAM,EAAE,QAAQ,eAAe;EAChC,CAAC;CACF,EAAE,OAAO;EACP,SAAS;EACT,MAAM,EAAE,QAAQ,aAAa;EAC9B,CAAC;CACH,CAAC,CACH;AAWD,MAAa,wBAAwB,EAAE,aACrC,gBACA,EAAE,OAAO,EACP,aAAa,mBACd,CAAC,CACH"}
@@ -13,7 +13,7 @@ declare const PLUGIN_MANIFEST: readonly [{
13
13
  readonly consentCategory: "analytics";
14
14
  readonly defaultEnabled: true;
15
15
  readonly events: readonly [];
16
- readonly name: "fingerprint";
16
+ readonly name: "device";
17
17
  }, {
18
18
  readonly consentCategory: "analytics";
19
19
  readonly defaultEnabled: true;
@@ -18,7 +18,7 @@ const PLUGIN_MANIFEST = [
18
18
  consentCategory: "analytics",
19
19
  defaultEnabled: true,
20
20
  events: [],
21
- name: "fingerprint"
21
+ name: "device"
22
22
  },
23
23
  {
24
24
  consentCategory: "analytics",
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.mjs","names":[],"sources":["../../../src/sdk/plugins/manifest.ts"],"sourcesContent":["export const CONSENT_CATEGORIES = [\"necessary\", \"analytics\", \"replay\"] as const;\n\ntype AtLeastOne<T> = {\n [K in keyof T]-?: Required<Pick<T, K>> & Partial<T>;\n}[keyof T];\n\nexport const PLUGIN_MANIFEST = [\n {\n consentCategory: \"necessary\",\n defaultEnabled: true,\n events: [{ enrich: true, name: \"error\" }],\n name: \"errors\",\n },\n {\n consentCategory: \"analytics\",\n defaultEnabled: true,\n events: [],\n name: \"fingerprint\",\n },\n {\n consentCategory: \"analytics\",\n defaultEnabled: true,\n events: [\n { enrich: true, name: \"pageview\" },\n { enrich: true, name: \"pageleave\" },\n { enrich: true, name: \"ui_event\" },\n ],\n name: \"pageEvents\",\n },\n {\n consentCategory: \"analytics\",\n defaultEnabled: true,\n events: [{ enrich: true, name: \"rage_click\" }],\n name: \"rageClick\",\n },\n {\n consentCategory: \"replay\",\n defaultEnabled: true,\n events: [{ enrich: false, name: \"replay_chunk\" }],\n name: \"replay\",\n },\n] as const;\n\nexport type PluginManifest = typeof PLUGIN_MANIFEST;\n\nexport type ConsentCategory = (typeof CONSENT_CATEGORIES)[number];\nexport type PluginKey = PluginManifest[number][\"name\"];\nexport type GateableCategory = Exclude<ConsentCategory, \"necessary\">;\nexport type ConsentState = AtLeastOne<Record<GateableCategory, boolean>>;\n"],"mappings":";AAAA,MAAa,qBAAqB;CAAC;CAAa;CAAa;CAAS;AAMtE,MAAa,kBAAkB;CAC7B;EACE,iBAAiB;EACjB,gBAAgB;EAChB,QAAQ,CAAC;GAAE,QAAQ;GAAM,MAAM;GAAS,CAAC;EACzC,MAAM;EACP;CACD;EACE,iBAAiB;EACjB,gBAAgB;EAChB,QAAQ,EAAE;EACV,MAAM;EACP;CACD;EACE,iBAAiB;EACjB,gBAAgB;EAChB,QAAQ;GACN;IAAE,QAAQ;IAAM,MAAM;IAAY;GAClC;IAAE,QAAQ;IAAM,MAAM;IAAa;GACnC;IAAE,QAAQ;IAAM,MAAM;IAAY;GACnC;EACD,MAAM;EACP;CACD;EACE,iBAAiB;EACjB,gBAAgB;EAChB,QAAQ,CAAC;GAAE,QAAQ;GAAM,MAAM;GAAc,CAAC;EAC9C,MAAM;EACP;CACD;EACE,iBAAiB;EACjB,gBAAgB;EAChB,QAAQ,CAAC;GAAE,QAAQ;GAAO,MAAM;GAAgB,CAAC;EACjD,MAAM;EACP;CACF"}
1
+ {"version":3,"file":"manifest.mjs","names":[],"sources":["../../../src/sdk/plugins/manifest.ts"],"sourcesContent":["export const CONSENT_CATEGORIES = [\"necessary\", \"analytics\", \"replay\"] as const;\n\ntype AtLeastOne<T> = {\n [K in keyof T]-?: Required<Pick<T, K>> & Partial<T>;\n}[keyof T];\n\nexport const PLUGIN_MANIFEST = [\n {\n consentCategory: \"necessary\",\n defaultEnabled: true,\n events: [{ enrich: true, name: \"error\" }],\n name: \"errors\",\n },\n {\n consentCategory: \"analytics\",\n defaultEnabled: true,\n events: [],\n name: \"device\",\n },\n {\n consentCategory: \"analytics\",\n defaultEnabled: true,\n events: [\n { enrich: true, name: \"pageview\" },\n { enrich: true, name: \"pageleave\" },\n { enrich: true, name: \"ui_event\" },\n ],\n name: \"pageEvents\",\n },\n {\n consentCategory: \"analytics\",\n defaultEnabled: true,\n events: [{ enrich: true, name: \"rage_click\" }],\n name: \"rageClick\",\n },\n {\n consentCategory: \"replay\",\n defaultEnabled: true,\n events: [{ enrich: false, name: \"replay_chunk\" }],\n name: \"replay\",\n },\n] as const;\n\nexport type PluginManifest = typeof PLUGIN_MANIFEST;\n\nexport type ConsentCategory = (typeof CONSENT_CATEGORIES)[number];\nexport type PluginKey = PluginManifest[number][\"name\"];\nexport type GateableCategory = Exclude<ConsentCategory, \"necessary\">;\nexport type ConsentState = AtLeastOne<Record<GateableCategory, boolean>>;\n"],"mappings":";AAAA,MAAa,qBAAqB;CAAC;CAAa;CAAa;CAAS;AAMtE,MAAa,kBAAkB;CAC7B;EACE,iBAAiB;EACjB,gBAAgB;EAChB,QAAQ,CAAC;GAAE,QAAQ;GAAM,MAAM;GAAS,CAAC;EACzC,MAAM;EACP;CACD;EACE,iBAAiB;EACjB,gBAAgB;EAChB,QAAQ,EAAE;EACV,MAAM;EACP;CACD;EACE,iBAAiB;EACjB,gBAAgB;EAChB,QAAQ;GACN;IAAE,QAAQ;IAAM,MAAM;IAAY;GAClC;IAAE,QAAQ;IAAM,MAAM;IAAa;GACnC;IAAE,QAAQ;IAAM,MAAM;IAAY;GACnC;EACD,MAAM;EACP;CACD;EACE,iBAAiB;EACjB,gBAAgB;EAChB,QAAQ,CAAC;GAAE,QAAQ;GAAM,MAAM;GAAc,CAAC;EAC9C,MAAM;EACP;CACD;EACE,iBAAiB;EACjB,gBAAgB;EAChB,QAAQ,CAAC;GAAE,QAAQ;GAAO,MAAM;GAAgB,CAAC;EACjD,MAAM;EACP;CACF"}
@@ -2,9 +2,9 @@ import { z } from "zod/v4";
2
2
 
3
3
  //#region src/sdk/plugins/payload/errors.d.ts
4
4
  declare const errorSourceSchema: z.ZodEnum<{
5
+ edge: "edge";
5
6
  client: "client";
6
7
  server: "server";
7
- edge: "edge";
8
8
  }>;
9
9
  type ErrorSource = z.infer<typeof errorSourceSchema>;
10
10
  declare const errorMechanismSchema: z.ZodObject<{
@@ -0,0 +1,11 @@
1
+ import { EventType } from "./envelope.mjs";
2
+ import { PluginKey } from "./plugins/manifest.mjs";
3
+
4
+ //#region src/sdk/remote-config.d.ts
5
+ type RemotePluginConfig = Partial<Record<PluginKey, boolean>>;
6
+ interface RemoteConfig {
7
+ plugins: Record<PluginKey, boolean>;
8
+ }
9
+ declare const EVENT_TYPE_TO_PLUGIN: Record<EventType, PluginKey>;
10
+ //#endregion
11
+ export { EVENT_TYPE_TO_PLUGIN, RemoteConfig, RemotePluginConfig };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-config.d.mts","names":[],"sources":["../../src/sdk/remote-config.ts"],"mappings":";;;;KAGY,kBAAA,GAAqB,OAAA,CAAQ,MAAA,CAAO,SAAA;AAAA,UAE/B,YAAA;EACf,OAAA,EAAS,MAAA,CAAO,SAAA;AAAA;AAAA,cAGL,oBAAA,EAAsB,MAAA,CAAO,SAAA,EAAW,SAAA"}
@@ -0,0 +1,5 @@
1
+ import { PLUGIN_MANIFEST } from "./plugins/manifest.mjs";
2
+ //#region src/sdk/remote-config.ts
3
+ const EVENT_TYPE_TO_PLUGIN = Object.fromEntries(PLUGIN_MANIFEST.flatMap((plugin) => plugin.events.map((event) => [event.name, plugin.name])));
4
+ //#endregion
5
+ export { EVENT_TYPE_TO_PLUGIN };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-config.mjs","names":[],"sources":["../../src/sdk/remote-config.ts"],"sourcesContent":["import type { EventType } from \"./envelope.js\";\nimport { PLUGIN_MANIFEST, type PluginKey } from \"./plugins/manifest.js\";\n\nexport type RemotePluginConfig = Partial<Record<PluginKey, boolean>>;\n\nexport interface RemoteConfig {\n plugins: Record<PluginKey, boolean>;\n}\n\nexport const EVENT_TYPE_TO_PLUGIN: Record<EventType, PluginKey> =\n Object.fromEntries(\n PLUGIN_MANIFEST.flatMap((plugin) =>\n plugin.events.map((event) => [event.name, plugin.name])\n )\n ) as Record<EventType, PluginKey>;\n"],"mappings":";;AASA,MAAa,uBACX,OAAO,YACL,gBAAgB,SAAS,WACvB,OAAO,OAAO,KAAK,UAAU,CAAC,MAAM,MAAM,OAAO,KAAK,CAAC,CACxD,CACF"}
@@ -8,8 +8,8 @@ declare const envSchema: z.ZodNullable<z.ZodEnum<{
8
8
  }>>;
9
9
  type Env = z.infer<typeof envSchema>;
10
10
  declare const runtimeSchema: z.ZodNullable<z.ZodEnum<{
11
- edge: "edge";
12
11
  browser: "browser";
12
+ edge: "edge";
13
13
  node: "node";
14
14
  }>>;
15
15
  type Runtime = z.infer<typeof runtimeSchema>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@interfere/types",
3
- "version": "1.0.3",
3
+ "version": "5.0.0",
4
4
  "license": "MIT",
5
5
  "description": "TypeScript & Zod types for Interfere",
6
6
  "keywords": [
@@ -106,16 +106,16 @@
106
106
  "typecheck": "tsc --noEmit --incremental"
107
107
  },
108
108
  "dependencies": {
109
- "@interfere/constants": "^1.0.3",
109
+ "@interfere/constants": "^5.0.0",
110
110
  "error-stack-parser-es": "^1.0.5",
111
111
  "zod": "^4.3.6"
112
112
  },
113
113
  "devDependencies": {
114
- "@interfere/typescript-config": "^2.0.3",
115
- "@interfere/vitest-config": "^2.0.3",
114
+ "@interfere/typescript-config": "^5.0.0",
115
+ "@interfere/vitest-config": "^5.0.0",
116
116
  "@types/node": "^24.12.0",
117
117
  "@vitest/coverage-v8": "^4.0.18",
118
- "tsdown": "^0.21.2",
118
+ "tsdown": "^0.21.3",
119
119
  "typescript": "5.9.3",
120
120
  "vitest": "^4.0.18"
121
121
  }