@interfere/next 0.0.14 → 0.0.15-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/README.md +1 -6
  2. package/dist/build/env-config.d.mts +7 -0
  3. package/dist/build/env-config.d.mts.map +1 -0
  4. package/dist/build/env-config.mjs +17 -0
  5. package/dist/build/env-config.mjs.map +1 -0
  6. package/dist/build/logger.d.mts +11 -0
  7. package/dist/build/logger.d.mts.map +1 -0
  8. package/dist/build/logger.mjs +155 -0
  9. package/dist/build/logger.mjs.map +1 -0
  10. package/dist/build/release-program.d.mts +19 -0
  11. package/dist/build/release-program.d.mts.map +1 -0
  12. package/dist/build/release-program.mjs +92 -0
  13. package/dist/build/release-program.mjs.map +1 -0
  14. package/dist/build/secret-key.d.mts +10 -0
  15. package/dist/build/secret-key.d.mts.map +1 -0
  16. package/dist/build/secret-key.mjs +16 -0
  17. package/dist/build/secret-key.mjs.map +1 -0
  18. package/dist/build/services/config.service.d.mts +9 -0
  19. package/dist/build/services/config.service.d.mts.map +1 -0
  20. package/dist/build/services/config.service.mjs +8 -0
  21. package/dist/build/services/config.service.mjs.map +1 -0
  22. package/dist/build/services/preflight.service.d.mts +19 -0
  23. package/dist/build/services/preflight.service.d.mts.map +1 -0
  24. package/dist/build/services/preflight.service.mjs +76 -0
  25. package/dist/build/services/preflight.service.mjs.map +1 -0
  26. package/dist/build/services/release-identity.service.d.mts +22 -0
  27. package/dist/build/services/release-identity.service.d.mts.map +1 -0
  28. package/dist/build/services/release-identity.service.mjs +48 -0
  29. package/dist/build/services/release-identity.service.mjs.map +1 -0
  30. package/dist/build/services/source-map.service.d.mts +24 -0
  31. package/dist/build/services/source-map.service.d.mts.map +1 -0
  32. package/dist/build/services/source-map.service.mjs +58 -0
  33. package/dist/build/services/source-map.service.mjs.map +1 -0
  34. package/dist/build/source-maps/api.d.mts +35 -0
  35. package/dist/build/source-maps/api.d.mts.map +1 -0
  36. package/dist/build/source-maps/api.mjs +61 -0
  37. package/dist/build/source-maps/api.mjs.map +1 -0
  38. package/dist/build/source-maps/client.d.mts +73 -0
  39. package/dist/build/source-maps/client.d.mts.map +1 -0
  40. package/dist/build/source-maps/client.mjs +228 -0
  41. package/dist/build/source-maps/client.mjs.map +1 -0
  42. package/dist/build/source-maps/errors.d.mts +109 -0
  43. package/dist/build/source-maps/errors.d.mts.map +1 -0
  44. package/dist/build/source-maps/errors.mjs +22 -0
  45. package/dist/build/source-maps/errors.mjs.map +1 -0
  46. package/dist/build/source-maps/files.d.mts +35 -0
  47. package/dist/build/source-maps/files.d.mts.map +1 -0
  48. package/dist/build/source-maps/files.mjs +222 -0
  49. package/dist/build/source-maps/files.mjs.map +1 -0
  50. package/dist/build/source-maps/providers/deployment/detector.d.mts +26 -0
  51. package/dist/build/source-maps/providers/deployment/detector.d.mts.map +1 -0
  52. package/dist/build/source-maps/providers/deployment/detector.mjs +22 -0
  53. package/dist/build/source-maps/providers/deployment/detector.mjs.map +1 -0
  54. package/dist/build/source-maps/providers/deployment/types.d.mts +12 -0
  55. package/dist/build/source-maps/providers/deployment/types.d.mts.map +1 -0
  56. package/dist/build/source-maps/providers/deployment/types.mjs +3 -0
  57. package/dist/build/source-maps/providers/deployment/vercel.d.mts +6 -0
  58. package/dist/build/source-maps/providers/deployment/vercel.d.mts.map +1 -0
  59. package/dist/build/source-maps/providers/deployment/vercel.mjs +44 -0
  60. package/dist/build/source-maps/providers/deployment/vercel.mjs.map +1 -0
  61. package/dist/build/source-maps/providers/source-control/detector.d.mts +15 -0
  62. package/dist/build/source-maps/providers/source-control/detector.d.mts.map +1 -0
  63. package/dist/build/source-maps/providers/source-control/detector.mjs +22 -0
  64. package/dist/build/source-maps/providers/source-control/detector.mjs.map +1 -0
  65. package/dist/build/source-maps/providers/source-control/git.d.mts +6 -0
  66. package/dist/build/source-maps/providers/source-control/git.d.mts.map +1 -0
  67. package/dist/build/source-maps/providers/source-control/git.mjs +50 -0
  68. package/dist/build/source-maps/providers/source-control/git.mjs.map +1 -0
  69. package/dist/build/source-maps/providers/source-control/types.d.mts +12 -0
  70. package/dist/build/source-maps/providers/source-control/types.d.mts.map +1 -0
  71. package/dist/build/source-maps/providers/source-control/types.mjs +3 -0
  72. package/dist/build/with-interfere.d.mts +48 -0
  73. package/dist/build/with-interfere.d.mts.map +1 -0
  74. package/dist/build/with-interfere.mjs +75 -0
  75. package/dist/build/with-interfere.mjs.map +1 -0
  76. package/dist/client/client.d.mts +3 -0
  77. package/dist/client/client.mjs +5 -0
  78. package/dist/client/provider.d.mts +22 -0
  79. package/dist/client/provider.d.mts.map +1 -0
  80. package/dist/client/provider.mjs +33 -0
  81. package/dist/client/provider.mjs.map +1 -0
  82. package/dist/lib/env.d.mts +12 -0
  83. package/dist/lib/env.d.mts.map +1 -0
  84. package/dist/lib/env.mjs +17 -0
  85. package/dist/lib/env.mjs.map +1 -0
  86. package/dist/lib/test-utils/make-next-request.d.mts +6 -0
  87. package/dist/lib/test-utils/make-next-request.d.mts.map +1 -0
  88. package/dist/lib/test-utils/make-next-request.mjs +12 -0
  89. package/dist/lib/test-utils/make-next-request.mjs.map +1 -0
  90. package/dist/lib/types.d.mts +22 -0
  91. package/dist/lib/types.d.mts.map +1 -0
  92. package/dist/lib/types.mjs +7 -0
  93. package/dist/lib/types.mjs.map +1 -0
  94. package/dist/server/middleware.d.mts +11 -0
  95. package/dist/server/middleware.d.mts.map +1 -0
  96. package/dist/server/middleware.mjs +84 -0
  97. package/dist/server/middleware.mjs.map +1 -0
  98. package/dist/server/proxy.d.mts +6 -0
  99. package/dist/server/proxy.d.mts.map +1 -0
  100. package/dist/server/proxy.mjs +29 -0
  101. package/dist/server/proxy.mjs.map +1 -0
  102. package/dist/server/route-handler.d.mts +9 -0
  103. package/dist/server/route-handler.d.mts.map +1 -0
  104. package/dist/server/route-handler.mjs +172 -0
  105. package/dist/server/route-handler.mjs.map +1 -0
  106. package/dist/server/services/config.service.d.mts +21 -0
  107. package/dist/server/services/config.service.d.mts.map +1 -0
  108. package/dist/server/services/config.service.mjs +43 -0
  109. package/dist/server/services/config.service.mjs.map +1 -0
  110. package/dist/server/services/error-tracking.service.d.mts +19 -0
  111. package/dist/server/services/error-tracking.service.d.mts.map +1 -0
  112. package/dist/server/services/error-tracking.service.mjs +31 -0
  113. package/dist/server/services/error-tracking.service.mjs.map +1 -0
  114. package/package.json +73 -36
  115. package/dist/__tests__/build/with-interfere-coverage.test.d.ts +0 -2
  116. package/dist/__tests__/build/with-interfere-coverage.test.d.ts.map +0 -1
  117. package/dist/__tests__/build/with-interfere-coverage.test.js +0 -295
  118. package/dist/__tests__/build/with-interfere-coverage.test.js.map +0 -1
  119. package/dist/__tests__/build/with-interfere.test.d.ts +0 -2
  120. package/dist/__tests__/build/with-interfere.test.d.ts.map +0 -1
  121. package/dist/__tests__/build/with-interfere.test.js +0 -363
  122. package/dist/__tests__/build/with-interfere.test.js.map +0 -1
  123. package/dist/__tests__/core/client.test.d.ts +0 -2
  124. package/dist/__tests__/core/client.test.d.ts.map +0 -1
  125. package/dist/__tests__/core/client.test.js +0 -373
  126. package/dist/__tests__/core/client.test.js.map +0 -1
  127. package/dist/__tests__/core/encoders.test.d.ts +0 -2
  128. package/dist/__tests__/core/encoders.test.d.ts.map +0 -1
  129. package/dist/__tests__/core/encoders.test.js +0 -56
  130. package/dist/__tests__/core/encoders.test.js.map +0 -1
  131. package/dist/__tests__/core/rage-click.test.d.ts +0 -2
  132. package/dist/__tests__/core/rage-click.test.d.ts.map +0 -1
  133. package/dist/__tests__/core/rage-click.test.js +0 -121
  134. package/dist/__tests__/core/rage-click.test.js.map +0 -1
  135. package/dist/__tests__/core/session-manager.test.d.ts +0 -2
  136. package/dist/__tests__/core/session-manager.test.d.ts.map +0 -1
  137. package/dist/__tests__/core/session-manager.test.js +0 -1168
  138. package/dist/__tests__/core/session-manager.test.js.map +0 -1
  139. package/dist/__tests__/integration/release-upload.test.d.ts +0 -2
  140. package/dist/__tests__/integration/release-upload.test.d.ts.map +0 -1
  141. package/dist/__tests__/integration/release-upload.test.js +0 -153
  142. package/dist/__tests__/integration/release-upload.test.js.map +0 -1
  143. package/dist/__tests__/provider.test.d.ts +0 -2
  144. package/dist/__tests__/provider.test.d.ts.map +0 -1
  145. package/dist/__tests__/provider.test.js +0 -84
  146. package/dist/__tests__/provider.test.js.map +0 -1
  147. package/dist/__tests__/session/persistence.test.d.ts +0 -2
  148. package/dist/__tests__/session/persistence.test.d.ts.map +0 -1
  149. package/dist/__tests__/session/persistence.test.js +0 -129
  150. package/dist/__tests__/session/persistence.test.js.map +0 -1
  151. package/dist/__tests__/session/session-summary.test.d.ts +0 -2
  152. package/dist/__tests__/session/session-summary.test.d.ts.map +0 -1
  153. package/dist/__tests__/session/session-summary.test.js +0 -763
  154. package/dist/__tests__/session/session-summary.test.js.map +0 -1
  155. package/dist/client.d.ts +0 -75
  156. package/dist/client.d.ts.map +0 -1
  157. package/dist/client.js +0 -123
  158. package/dist/client.js.map +0 -1
  159. package/dist/config.d.ts +0 -40
  160. package/dist/config.d.ts.map +0 -1
  161. package/dist/config.js +0 -340
  162. package/dist/config.js.map +0 -1
  163. package/dist/index.d.ts +0 -37
  164. package/dist/index.d.ts.map +0 -1
  165. package/dist/index.js +0 -49
  166. package/dist/index.js.map +0 -1
  167. package/dist/index.jsx +0 -87
  168. package/dist/index.jsx.map +0 -1
  169. package/dist/lib/core/client-core.d.ts +0 -27
  170. package/dist/lib/core/client-core.d.ts.map +0 -1
  171. package/dist/lib/core/client-core.js +0 -152
  172. package/dist/lib/core/client-core.js.map +0 -1
  173. package/dist/lib/core/constants.d.ts +0 -12
  174. package/dist/lib/core/constants.d.ts.map +0 -1
  175. package/dist/lib/core/constants.js +0 -17
  176. package/dist/lib/core/constants.js.map +0 -1
  177. package/dist/lib/core/debug.d.ts +0 -47
  178. package/dist/lib/core/debug.d.ts.map +0 -1
  179. package/dist/lib/core/debug.js +0 -79
  180. package/dist/lib/core/debug.js.map +0 -1
  181. package/dist/lib/core/encoders.d.ts +0 -3
  182. package/dist/lib/core/encoders.d.ts.map +0 -1
  183. package/dist/lib/core/encoders.js +0 -5
  184. package/dist/lib/core/encoders.js.map +0 -1
  185. package/dist/lib/core/error-handlers.d.ts +0 -14
  186. package/dist/lib/core/error-handlers.d.ts.map +0 -1
  187. package/dist/lib/core/error-handlers.js +0 -191
  188. package/dist/lib/core/error-handlers.js.map +0 -1
  189. package/dist/lib/core/runtime.d.ts +0 -7
  190. package/dist/lib/core/runtime.d.ts.map +0 -1
  191. package/dist/lib/core/runtime.js +0 -16
  192. package/dist/lib/core/runtime.js.map +0 -1
  193. package/dist/lib/persistence/storage.d.ts +0 -5
  194. package/dist/lib/persistence/storage.d.ts.map +0 -1
  195. package/dist/lib/persistence/storage.js +0 -67
  196. package/dist/lib/persistence/storage.js.map +0 -1
  197. package/dist/lib/session/constants.d.ts +0 -19
  198. package/dist/lib/session/constants.d.ts.map +0 -1
  199. package/dist/lib/session/constants.js +0 -34
  200. package/dist/lib/session/constants.js.map +0 -1
  201. package/dist/lib/session/persistence.d.ts +0 -58
  202. package/dist/lib/session/persistence.d.ts.map +0 -1
  203. package/dist/lib/session/persistence.js +0 -179
  204. package/dist/lib/session/persistence.js.map +0 -1
  205. package/dist/lib/session/rage-click.d.ts +0 -17
  206. package/dist/lib/session/rage-click.d.ts.map +0 -1
  207. package/dist/lib/session/rage-click.js +0 -104
  208. package/dist/lib/session/rage-click.js.map +0 -1
  209. package/dist/lib/session/replay.d.ts +0 -3
  210. package/dist/lib/session/replay.d.ts.map +0 -1
  211. package/dist/lib/session/replay.js +0 -109
  212. package/dist/lib/session/replay.js.map +0 -1
  213. package/dist/lib/session/session-manager.d.ts +0 -126
  214. package/dist/lib/session/session-manager.d.ts.map +0 -1
  215. package/dist/lib/session/session-manager.js +0 -635
  216. package/dist/lib/session/session-manager.js.map +0 -1
  217. package/dist/lib/session/session-summary.d.ts +0 -3
  218. package/dist/lib/session/session-summary.d.ts.map +0 -1
  219. package/dist/lib/session/session-summary.js +0 -214
  220. package/dist/lib/session/session-summary.js.map +0 -1
  221. package/dist/middleware.d.ts +0 -8
  222. package/dist/middleware.d.ts.map +0 -1
  223. package/dist/middleware.js +0 -139
  224. package/dist/middleware.js.map +0 -1
  225. package/dist/types/storage.d.ts +0 -7
  226. package/dist/types/storage.d.ts.map +0 -1
  227. package/dist/types/storage.js +0 -2
  228. package/dist/types/storage.js.map +0 -1
  229. package/dist/types.d.ts +0 -6
  230. package/dist/types.d.ts.map +0 -1
  231. package/dist/types.js +0 -4
  232. package/dist/types.js.map +0 -1
package/dist/index.d.ts DELETED
@@ -1,37 +0,0 @@
1
- import { type ReactNode } from "react";
2
- import { capture, flush, getDebugInfo, getSessionId, getWindowId, resetSession } from "./client.js";
3
- export * from "./lib/core/error-handlers.js";
4
- type InterfereProviderProps = {
5
- children: ReactNode;
6
- };
7
- /**
8
- * InterfereProvider automatically configures the SDK using environment variables
9
- * set by withInterfere in your next.config.js
10
- *
11
- * @example
12
- * ```tsx
13
- * // app/layout.tsx
14
- * export default function RootLayout({ children }) {
15
- * return (
16
- * <html>
17
- * <body>
18
- * <InterfereProvider>
19
- * {children}
20
- * </InterfereProvider>
21
- * </body>
22
- * </html>
23
- * );
24
- * }
25
- * ```
26
- */
27
- export declare function InterfereProvider(props: InterfereProviderProps): import("react").JSX.Element;
28
- export declare function useInterfere(): {
29
- capture: typeof capture;
30
- flush: typeof flush;
31
- getSessionId: typeof getSessionId;
32
- getWindowId: typeof getWindowId;
33
- getDebugInfo: typeof getDebugInfo;
34
- resetSession: typeof resetSession;
35
- };
36
- export type { EventType } from "@interfere/schemas/envelope";
37
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,SAAS,EAAyB,MAAM,OAAO,CAAC;AAC7E,OAAO,EACL,OAAO,EACP,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EAEX,YAAY,EACb,MAAM,aAAa,CAAC;AASrB,cAAc,8BAA8B,CAAC;AAW7C,KAAK,sBAAsB,GAAG;IAC5B,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,+BAwD9D;AAED,wBAAgB,YAAY;aA1FjB,OAAO,OAAO;WAChB,OAAO,KAAK;kBACL,OAAO,YAAY;iBACpB,OAAO,WAAW;kBACjB,OAAO,YAAY;kBACnB,OAAO,YAAY;EA2FlC;AAGD,YAAY,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC"}
package/dist/index.js DELETED
@@ -1,49 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import { createContext, useContext, useEffect } from "react";
4
- import { capture, flush, getDebugInfo, getSessionId, getWindowId, init, resetSession, } from "./client.js";
5
- import { setupRageClick } from "./lib/session/rage-click.js";
6
- import { setupReplay, stopReplay } from "./lib/session/replay.js";
7
- import { setupSessionSummary, stopSessionSummary, } from "./lib/session/session-summary.js";
8
- // biome-ignore lint/performance/noBarrelFile: There is a better way to do this
9
- export * from "./lib/core/error-handlers.js";
10
- const InterfereContext = createContext(null);
11
- export function InterfereProvider(props) {
12
- useEffect(() => {
13
- init(props);
14
- setupSessionSummary();
15
- setupReplay();
16
- setupRageClick();
17
- return () => {
18
- try {
19
- stopSessionSummary();
20
- }
21
- catch {
22
- /* no-op */
23
- }
24
- try {
25
- stopReplay();
26
- }
27
- catch {
28
- /* no-op */
29
- }
30
- flush();
31
- };
32
- }, [props]);
33
- return (_jsx(InterfereContext.Provider, { value: {
34
- capture,
35
- flush,
36
- getSessionId,
37
- getWindowId,
38
- getDebugInfo,
39
- resetSession,
40
- }, children: props.children }));
41
- }
42
- export function useInterfere() {
43
- const context = useContext(InterfereContext);
44
- if (!context) {
45
- throw new Error("useInterfere() must be used within InterfereProvider");
46
- }
47
- return context;
48
- }
49
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAKb,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7E,OAAO,EACL,OAAO,EACP,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,IAAI,EACJ,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kCAAkC,CAAC;AAE1C,+EAA+E;AAC/E,cAAc,8BAA8B,CAAC;AAE7C,MAAM,gBAAgB,GAAG,aAAa,CAO5B,IAAI,CAAC,CAAC;AAQhB,MAAM,UAAU,iBAAiB,CAAC,KAA6B;IAC7D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,KAAK,CAAC,CAAC;QACZ,mBAAmB,EAAE,CAAC;QACtB,WAAW,EAAE,CAAC;QACd,cAAc,EAAE,CAAC;QAEjB,OAAO,GAAG,EAAE;YACV,IAAI,CAAC;gBACH,kBAAkB,EAAE,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW;YACb,CAAC;YACD,IAAI,CAAC;gBACH,UAAU,EAAE,CAAC;YACf,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW;YACb,CAAC;YACD,KAAK,EAAE,CAAC;QACV,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,CACL,KAAC,gBAAgB,CAAC,QAAQ,IACxB,KAAK,EAAE;YACL,OAAO;YACP,KAAK;YACL,YAAY;YACZ,WAAW;YACX,YAAY;YACZ,YAAY;SACb,YAEA,KAAK,CAAC,QAAQ,GACW,CAC7B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/dist/index.jsx DELETED
@@ -1,87 +0,0 @@
1
- "use client";
2
- import { createContext, useContext, useEffect } from "react";
3
- import { capture, flush, getDebugInfo, getSessionId, getWindowId, init, resetSession, } from "./client.js";
4
- import { setupRageClick } from "./lib/session/rage-click.js";
5
- import { setupReplay, stopReplay } from "./lib/session/replay.js";
6
- import { setupSessionSummary, stopSessionSummary, } from "./lib/session/session-summary.js";
7
- // biome-ignore lint/performance/noBarrelFile: There is a better way to do this
8
- export * from "./lib/core/error-handlers.js";
9
- const InterfereContext = createContext(null);
10
- /**
11
- * InterfereProvider automatically configures the SDK using environment variables
12
- * set by withInterfere in your next.config.js
13
- *
14
- * @example
15
- * ```tsx
16
- * // app/layout.tsx
17
- * export default function RootLayout({ children }) {
18
- * return (
19
- * <html>
20
- * <body>
21
- * <InterfereProvider>
22
- * {children}
23
- * </InterfereProvider>
24
- * </body>
25
- * </html>
26
- * );
27
- * }
28
- * ```
29
- */
30
- export function InterfereProvider(props) {
31
- useEffect(() => {
32
- // Read configuration from environment variables set by withInterfere
33
- const surface = process.env.NEXT_PUBLIC_INTERFERE_SURFACE_ID;
34
- if (!surface) {
35
- // Silently skip initialization if no surface ID is configured
36
- // This happens when withInterfere is not set up in next.config.js
37
- return;
38
- }
39
- const config = {
40
- surface,
41
- options: {
42
- env: (process.env.NEXT_PUBLIC_INTERFERE_ENVIRONMENT ||
43
- "production"),
44
- debug: process.env.NEXT_PUBLIC_INTERFERE_DEBUG === "true",
45
- releaseId: process.env.NEXT_PUBLIC_INTERFERE_RELEASE_ID || undefined,
46
- buildId: process.env.NEXT_PUBLIC_INTERFERE_BUILD_ID || undefined,
47
- },
48
- };
49
- init(config);
50
- setupSessionSummary();
51
- setupReplay();
52
- setupRageClick();
53
- return () => {
54
- try {
55
- stopSessionSummary();
56
- }
57
- catch {
58
- /* no-op */
59
- }
60
- try {
61
- stopReplay();
62
- }
63
- catch {
64
- /* no-op */
65
- }
66
- flush();
67
- };
68
- }, []);
69
- return (<InterfereContext.Provider value={{
70
- capture,
71
- flush,
72
- getSessionId,
73
- getWindowId,
74
- getDebugInfo,
75
- resetSession,
76
- }}>
77
- {props.children}
78
- </InterfereContext.Provider>);
79
- }
80
- export function useInterfere() {
81
- const context = useContext(InterfereContext);
82
- if (!context) {
83
- throw new Error("useInterfere() must be used within InterfereProvider");
84
- }
85
- return context;
86
- }
87
- //# sourceMappingURL=index.jsx.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.jsx","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7E,OAAO,EACL,OAAO,EACP,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,IAAI,EACJ,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kCAAkC,CAAC;AAE1C,+EAA+E;AAC/E,cAAc,8BAA8B,CAAC;AAE7C,MAAM,gBAAgB,GAAG,aAAa,CAO5B,IAAI,CAAC,CAAC;AAMhB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA6B;IAC7D,SAAS,CAAC,GAAG,EAAE;QACb,qEAAqE;QACrE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC;QAE7D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,8DAA8D;YAC9D,kEAAkE;YAClE,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG;YACb,OAAO;YACP,OAAO,EAAE;gBACP,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC;oBACjD,YAAY,CAAQ;gBACtB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,KAAK,MAAM;gBACzD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,SAAS;gBACpE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,SAAS;aACjE;SACF,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,CAAC;QACb,mBAAmB,EAAE,CAAC;QACtB,WAAW,EAAE,CAAC;QACd,cAAc,EAAE,CAAC;QAEjB,OAAO,GAAG,EAAE;YACV,IAAI,CAAC;gBACH,kBAAkB,EAAE,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW;YACb,CAAC;YACD,IAAI,CAAC;gBACH,UAAU,EAAE,CAAC;YACf,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW;YACb,CAAC;YACD,KAAK,EAAE,CAAC;QACV,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,CAAC,gBAAgB,CAAC,QAAQ,CACxB,KAAK,CAAC,CAAC;YACL,OAAO;YACP,KAAK;YACL,YAAY;YACZ,WAAW;YACX,YAAY;YACZ,YAAY;SACb,CAAC,CAEF;MAAA,CAAC,KAAK,CAAC,QAAQ,CACjB;IAAA,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAC7B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,27 +0,0 @@
1
- /**
2
- * Core InterfereClient implementation
3
- */
4
- import { type InitConfig } from "@interfere/schemas/config";
5
- import type { EventType } from "@interfere/schemas/envelope";
6
- export declare class InterfereClient {
7
- private readonly surface;
8
- private readonly config;
9
- private readonly runtime;
10
- private readonly persistence;
11
- private readonly sessionManager;
12
- private readonly debugUtils;
13
- private queue;
14
- private seq;
15
- private flushTimer?;
16
- constructor({ surface, options }: InitConfig);
17
- private startFlushTimer;
18
- capture(type: EventType, payload: unknown): void;
19
- flush(): void;
20
- getSessionId(): string;
21
- getWindowId(): string;
22
- onSessionId(callback: (sessionId: string | null, windowId: string | null) => void): () => void;
23
- resetSession(): void;
24
- getDebugInfo(): import("./debug.js").DebugInfo;
25
- destroy(): void;
26
- }
27
- //# sourceMappingURL=client-core.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client-core.d.ts","sourceRoot":"","sources":["../../../src/lib/core/client-core.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAY,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAgBvE,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,UAAU,CAAC,CAAiB;gBAExB,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,UAAU;IA8C5C,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAgChD,KAAK,IAAI,IAAI;IAyCb,YAAY,IAAI,MAAM;IAMtB,WAAW,IAAI,MAAM;IAMrB,WAAW,CACT,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GACpE,MAAM,IAAI;IAIb,YAAY,IAAI,IAAI;IAKpB,YAAY;IAKZ,OAAO,IAAI,IAAI;CAOhB"}
@@ -1,152 +0,0 @@
1
- /**
2
- * Core InterfereClient implementation
3
- */
4
- import { configSchema, } from "@interfere/schemas/config";
5
- import { InterferePersistence } from "../session/persistence.js";
6
- import { SessionIdManager } from "../session/session-manager.js";
7
- import { API_PATHS, BACKGROUND_EVENT_TYPES, DEFAULT_FLUSH_INTERVAL, MAX_QUEUE_SIZE, } from "./constants.js";
8
- import { DebugUtils } from "./debug.js";
9
- import { encode } from "./encoders.js";
10
- import { setupClientErrorHandlers } from "./error-handlers.js";
11
- import { detectRuntime, isClient } from "./runtime.js";
12
- export class InterfereClient {
13
- surface;
14
- config;
15
- runtime;
16
- persistence;
17
- sessionManager;
18
- debugUtils;
19
- queue = [];
20
- seq = 0;
21
- flushTimer;
22
- constructor({ surface, options }) {
23
- this.runtime = detectRuntime();
24
- this.surface = surface;
25
- // Parse and validate config
26
- const { success, data, error } = configSchema.safeParse(options ?? {});
27
- if (!success) {
28
- throw new Error(`[Interfere] Invalid config: ${error.message}`);
29
- }
30
- // Normalize build/release with environment fallbacks and defaults
31
- if (!data.buildId) {
32
- const envBuildId = process?.env?.NEXT_PUBLIC_INTERFERE_BUILD_ID;
33
- data.buildId = envBuildId ?? "development";
34
- }
35
- if (!data.releaseId) {
36
- const envReleaseId = process?.env?.NEXT_PUBLIC_INTERFERE_RELEASE_ID;
37
- data.releaseId = envReleaseId ?? "development";
38
- }
39
- this.config = data;
40
- // Initialize subsystems
41
- this.persistence = new InterferePersistence(this.config, surface);
42
- this.sessionManager = new SessionIdManager(surface, this.config, this.persistence);
43
- this.debugUtils = new DebugUtils({
44
- config: this.config,
45
- sessionManager: this.sessionManager,
46
- persistence: this.persistence,
47
- surface: this.surface,
48
- runtime: this.runtime,
49
- });
50
- // Setup client-specific features
51
- if (isClient()) {
52
- this.startFlushTimer();
53
- window.addEventListener("beforeunload", () => this.flush());
54
- setupClientErrorHandlers();
55
- }
56
- }
57
- startFlushTimer() {
58
- const interval = this.config.flushInterval || DEFAULT_FLUSH_INTERVAL;
59
- this.flushTimer = setInterval(() => this.flush(), interval);
60
- }
61
- capture(type, payload) {
62
- // Determine if this is a background event
63
- const isBackgroundEvent = BACKGROUND_EVENT_TYPES.includes(type);
64
- const readOnly = isBackgroundEvent;
65
- // Get current session info
66
- const { sessionId } = this.sessionManager.checkAndGetSessionAndWindowId(readOnly);
67
- // Create envelope with required release tracking
68
- const envelope = {
69
- v: 0,
70
- runtime: this.runtime,
71
- surface: this.surface,
72
- env: this.config.env,
73
- clientTs: Date.now(),
74
- sessionId,
75
- seq: ++this.seq,
76
- type,
77
- payload: Array.from(encode(payload)),
78
- buildId: this.config.buildId, // Now required
79
- releaseId: this.config.releaseId, // Now required
80
- };
81
- this.queue.push(envelope);
82
- // Auto-flush if queue is getting large or we're not in client
83
- if (this.runtime !== "client" || this.queue.length >= MAX_QUEUE_SIZE) {
84
- this.flush();
85
- }
86
- }
87
- flush() {
88
- if (this.queue.length === 0) {
89
- return;
90
- }
91
- // Get batch and clear queue
92
- const batch = [...this.queue];
93
- this.queue = [];
94
- // Prepare request
95
- const body = JSON.stringify(batch);
96
- const headers = new Headers({
97
- "Content-Type": "application/json",
98
- "x-interfere-surface": this.surface,
99
- });
100
- const base = this.config.endpointUrl ?? "https://api.interfere.com";
101
- const url = `${base}${API_PATHS.INGEST_V0}`;
102
- // Send with appropriate method
103
- if (isClient() && typeof window.navigator?.sendBeacon === "function") {
104
- // Use fetch with keepalive for reliability (sendBeacon doesn't support custom headers)
105
- fetch(url, {
106
- method: "POST",
107
- headers,
108
- body,
109
- keepalive: true,
110
- }).catch(() => {
111
- // Silently fail - don't capture SDK's own errors to prevent loops
112
- });
113
- }
114
- else {
115
- fetch(url, {
116
- method: "POST",
117
- headers,
118
- body,
119
- }).catch(() => {
120
- // Silently fail
121
- });
122
- }
123
- }
124
- // Session management delegation
125
- getSessionId() {
126
- const { sessionId } = this.sessionManager.checkAndGetSessionAndWindowId(true);
127
- return sessionId || "";
128
- }
129
- getWindowId() {
130
- const { windowId } = this.sessionManager.checkAndGetSessionAndWindowId(true);
131
- return windowId || "";
132
- }
133
- onSessionId(callback) {
134
- return this.sessionManager.onSessionId(callback);
135
- }
136
- resetSession() {
137
- this.sessionManager.resetSessionId();
138
- }
139
- // Debug functionality
140
- getDebugInfo() {
141
- return this.debugUtils.getDebugInfo(this.queue.length);
142
- }
143
- // Cleanup
144
- destroy() {
145
- if (this.flushTimer) {
146
- clearInterval(this.flushTimer);
147
- this.flushTimer = undefined;
148
- }
149
- this.flush(); // Final flush
150
- }
151
- }
152
- //# sourceMappingURL=client-core.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client-core.js","sourceRoot":"","sources":["../../../src/lib/core/client-core.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Core constants and configuration defaults
3
- */
4
- import type { EventType } from "@interfere/schemas/envelope";
5
- export declare const BACKGROUND_EVENT_TYPES: EventType[];
6
- export declare const MAX_QUEUE_SIZE = 10;
7
- export declare const DEFAULT_FLUSH_INTERVAL = 10000;
8
- export declare const API_PATHS: {
9
- readonly INGEST_V0: "/ingest/v0";
10
- readonly RELEASES: "/internal/releases";
11
- };
12
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/core/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAG7D,eAAO,MAAM,sBAAsB,EAAE,SAAS,EAG7C,CAAC;AAGF,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAG7C,eAAO,MAAM,SAAS;;;CAGZ,CAAC"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Core constants and configuration defaults
3
- */
4
- // Background event types that don't count as user activity for session timeout
5
- export const BACKGROUND_EVENT_TYPES = [
6
- "replay_chunk",
7
- "session_summary",
8
- ];
9
- // Queue thresholds
10
- export const MAX_QUEUE_SIZE = 10;
11
- export const DEFAULT_FLUSH_INTERVAL = 10_000; // 10 seconds
12
- // API paths
13
- export const API_PATHS = {
14
- INGEST_V0: "/ingest/v0",
15
- RELEASES: "/internal/releases",
16
- };
17
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/core/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,sBAAsB,GAAgB;IACjD,cAAc;IACd,iBAAiB;CAClB,CAAC;AAEF,mBAAmB;AACnB,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,CAAC,aAAa;AAE3D,YAAY;AACZ,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,oBAAoB;CACtB,CAAC"}
@@ -1,47 +0,0 @@
1
- /**
2
- * Debug utilities for development
3
- */
4
- import type { Config } from "@interfere/schemas/config";
5
- import type { InterferePersistence } from "../session/persistence";
6
- import type { SessionIdManager } from "../session/session-manager";
7
- import type { Runtime } from "./runtime";
8
- export type DebugInfo = {
9
- sessionId: string | null;
10
- windowId: string | null;
11
- sessionStartTimestamp: number | null;
12
- lastActivityTimestamp: number | null;
13
- sessionTimeoutMs: number;
14
- sessionAge: number;
15
- timeSinceLastActivity: number;
16
- isSessionActive: boolean;
17
- config: Config;
18
- storageInfo: StorageInfo;
19
- queueLength: number;
20
- surface: string;
21
- runtime: Runtime;
22
- buildId: string;
23
- releaseId: string;
24
- };
25
- export type StorageInfo = {
26
- canUseLocalStorage: boolean;
27
- canUseSessionStorage: boolean;
28
- storageKeys: string[];
29
- };
30
- export declare class DebugUtils {
31
- private readonly config;
32
- private readonly sessionManager;
33
- private readonly persistence;
34
- private readonly surface;
35
- private readonly runtime;
36
- constructor(params: {
37
- config: Config;
38
- sessionManager: SessionIdManager;
39
- persistence: InterferePersistence;
40
- surface: string;
41
- runtime: Runtime;
42
- });
43
- getDebugInfo(queueLength: number): DebugInfo;
44
- private getStorageInfo;
45
- private getStorageKeys;
46
- }
47
- //# sourceMappingURL=debug.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../../src/lib/core/debug.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAEtB,MAAM,EAAE;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,gBAAgB,CAAC;QACjC,WAAW,EAAE,oBAAoB,CAAC;QAClC,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;KAClB;IAQD,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS;IAkC5C,OAAO,CAAC,cAAc;IA+BtB,OAAO,CAAC,cAAc;CAcvB"}
@@ -1,79 +0,0 @@
1
- /**
2
- * Debug utilities for development
3
- */
4
- export class DebugUtils {
5
- config;
6
- sessionManager;
7
- persistence;
8
- surface;
9
- runtime;
10
- constructor(params) {
11
- this.config = params.config;
12
- this.sessionManager = params.sessionManager;
13
- this.persistence = params.persistence;
14
- this.surface = params.surface;
15
- this.runtime = params.runtime;
16
- }
17
- getDebugInfo(queueLength) {
18
- const { sessionId, windowId, sessionStartTimestamp, lastActivityTimestamp, } = this.sessionManager.checkAndGetSessionAndWindowId(true);
19
- const now = Date.now();
20
- const sessionAge = sessionStartTimestamp ? now - sessionStartTimestamp : 0;
21
- const timeSinceLastActivity = lastActivityTimestamp
22
- ? now - lastActivityTimestamp
23
- : 0;
24
- return {
25
- sessionId,
26
- windowId,
27
- sessionStartTimestamp,
28
- lastActivityTimestamp,
29
- sessionTimeoutMs: this.sessionManager.sessionTimeoutMs,
30
- sessionAge,
31
- timeSinceLastActivity,
32
- isSessionActive: timeSinceLastActivity < this.sessionManager.sessionTimeoutMs,
33
- config: this.config,
34
- storageInfo: this.getStorageInfo(),
35
- queueLength,
36
- surface: this.surface,
37
- runtime: this.runtime,
38
- buildId: this.config.buildId,
39
- releaseId: this.config.releaseId,
40
- };
41
- }
42
- getStorageInfo() {
43
- const persistenceType = this.config.persistence || "localStorage";
44
- const isDisabled = this.persistence.isDisabled();
45
- const canUseLocalStorage = !isDisabled && persistenceType === "localStorage";
46
- const canUseSessionStorage = !isDisabled && persistenceType === "sessionStorage";
47
- let storageKeys = [];
48
- if (!isDisabled && typeof window !== "undefined") {
49
- if (persistenceType === "localStorage" && window.localStorage) {
50
- storageKeys = this.getStorageKeys(window.localStorage, "localStorage");
51
- }
52
- else if (persistenceType === "sessionStorage" &&
53
- window.sessionStorage) {
54
- storageKeys = this.getStorageKeys(window.sessionStorage, "sessionStorage");
55
- }
56
- }
57
- return {
58
- canUseLocalStorage,
59
- canUseSessionStorage,
60
- storageKeys,
61
- };
62
- }
63
- getStorageKeys(storage, prefix) {
64
- const keys = [];
65
- try {
66
- for (let i = 0; i < storage.length; i++) {
67
- const key = storage.key(i);
68
- if (key?.startsWith("interfere_")) {
69
- keys.push(`${prefix}: ${key}`);
70
- }
71
- }
72
- }
73
- catch {
74
- // Storage access might be blocked
75
- }
76
- return keys;
77
- }
78
- }
79
- //# sourceMappingURL=debug.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/lib/core/debug.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export declare const encode: (data: unknown) => Uint8Array;
2
- export declare const decode: (data: Uint8Array) => unknown;
3
- //# sourceMappingURL=encoders.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encoders.d.ts","sourceRoot":"","sources":["../../../src/lib/core/encoders.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,GAAI,MAAM,OAAO,KAAG,UACD,CAAC;AAEvC,eAAO,MAAM,MAAM,GAAI,MAAM,UAAU,KAAG,OACR,CAAC"}
@@ -1,5 +0,0 @@
1
- const encoder = new TextEncoder();
2
- const decoder = new TextDecoder();
3
- export const encode = (data) => encoder.encode(JSON.stringify(data));
4
- export const decode = (data) => JSON.parse(decoder.decode(data));
5
- //# sourceMappingURL=encoders.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encoders.js","sourceRoot":"","sources":["../../../src/lib/core/encoders.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAClC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAElC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAa,EAAc,EAAE,CAClD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAEvC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAgB,EAAW,EAAE,CAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC"}
@@ -1,14 +0,0 @@
1
- export declare function setupClientErrorHandlers(): void;
2
- export declare function captureServerError(error: unknown, request?: Request, context?: {
3
- pathname?: string;
4
- renderingError?: boolean;
5
- [key: string]: unknown;
6
- }): void;
7
- export declare function captureErrorBoundaryError(error: Error, errorInfo: {
8
- componentStack: string;
9
- }): void;
10
- export declare function captureApiRouteError(error: unknown, req: Request, pathname: string): void;
11
- type AsyncFunction = (...args: unknown[]) => Promise<unknown>;
12
- export declare function withErrorCapture<T extends AsyncFunction>(fn: T, context?: Record<string, unknown>): T;
13
- export {};
14
- //# sourceMappingURL=error-handlers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-handlers.d.ts","sourceRoot":"","sources":["../../../src/lib/core/error-handlers.ts"],"names":[],"mappings":"AA4DA,wBAAgB,wBAAwB,IAAI,IAAI,CAiE/C;AAGD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,GACA,IAAI,CAoBN;AAGD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,GACpC,IAAI,CAQN;AAGD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,GACf,IAAI,CAcN;AA+BD,KAAK,aAAa,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE9D,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,aAAa,EACtD,EAAE,EAAE,CAAC,EACL,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,CAAC,CAkBH"}