@interfere/next 0.0.0-alpha.10 → 0.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 (154) hide show
  1. package/README.md +1 -0
  2. package/dist/__tests__/build/with-interfere-coverage.test.d.ts +2 -0
  3. package/dist/__tests__/build/with-interfere-coverage.test.d.ts.map +1 -0
  4. package/dist/__tests__/build/with-interfere-coverage.test.js +338 -0
  5. package/dist/__tests__/build/with-interfere-coverage.test.js.map +1 -0
  6. package/dist/__tests__/build/with-interfere.test.d.ts +2 -0
  7. package/dist/__tests__/build/with-interfere.test.d.ts.map +1 -0
  8. package/dist/__tests__/build/with-interfere.test.js +466 -0
  9. package/dist/__tests__/build/with-interfere.test.js.map +1 -0
  10. package/dist/__tests__/core/client.test.d.ts +2 -0
  11. package/dist/__tests__/core/client.test.d.ts.map +1 -0
  12. package/dist/__tests__/core/client.test.js +373 -0
  13. package/dist/__tests__/core/client.test.js.map +1 -0
  14. package/dist/__tests__/core/debug.test.d.ts +2 -0
  15. package/dist/__tests__/core/debug.test.d.ts.map +1 -0
  16. package/dist/__tests__/core/debug.test.js +277 -0
  17. package/dist/__tests__/core/debug.test.js.map +1 -0
  18. package/dist/__tests__/core/encoders.test.d.ts +2 -0
  19. package/dist/__tests__/core/encoders.test.d.ts.map +1 -0
  20. package/dist/__tests__/core/encoders.test.js +56 -0
  21. package/dist/__tests__/core/encoders.test.js.map +1 -0
  22. package/dist/__tests__/core/persistence.test.d.ts +2 -0
  23. package/dist/__tests__/core/persistence.test.d.ts.map +1 -0
  24. package/dist/__tests__/core/persistence.test.js +129 -0
  25. package/dist/__tests__/core/persistence.test.js.map +1 -0
  26. package/dist/__tests__/core/rage-click.test.d.ts +2 -0
  27. package/dist/__tests__/core/rage-click.test.d.ts.map +1 -0
  28. package/dist/__tests__/core/rage-click.test.js +121 -0
  29. package/dist/__tests__/core/rage-click.test.js.map +1 -0
  30. package/dist/__tests__/core/session-manager.test.d.ts +2 -0
  31. package/dist/__tests__/core/session-manager.test.d.ts.map +1 -0
  32. package/dist/__tests__/core/session-manager.test.js +1132 -0
  33. package/dist/__tests__/core/session-manager.test.js.map +1 -0
  34. package/dist/__tests__/integration/release-upload.test.d.ts +2 -0
  35. package/dist/__tests__/integration/release-upload.test.d.ts.map +1 -0
  36. package/dist/__tests__/integration/release-upload.test.js +173 -0
  37. package/dist/__tests__/integration/release-upload.test.js.map +1 -0
  38. package/dist/__tests__/react/provider.test.d.ts +2 -0
  39. package/dist/__tests__/react/provider.test.d.ts.map +1 -0
  40. package/dist/__tests__/react/provider.test.jsx +166 -0
  41. package/dist/__tests__/react/provider.test.jsx.map +1 -0
  42. package/dist/__tests__/session/persistence.test.d.ts +2 -0
  43. package/dist/__tests__/session/persistence.test.d.ts.map +1 -0
  44. package/dist/__tests__/session/persistence.test.js +129 -0
  45. package/dist/__tests__/session/persistence.test.js.map +1 -0
  46. package/dist/__tests__/session/replay.test.d.ts +2 -0
  47. package/dist/__tests__/session/replay.test.d.ts.map +1 -0
  48. package/dist/__tests__/session/replay.test.js +296 -0
  49. package/dist/__tests__/session/replay.test.js.map +1 -0
  50. package/dist/__tests__/session/session-summary.test.d.ts +2 -0
  51. package/dist/__tests__/session/session-summary.test.d.ts.map +1 -0
  52. package/dist/__tests__/session/session-summary.test.js +763 -0
  53. package/dist/__tests__/session/session-summary.test.js.map +1 -0
  54. package/dist/build/index.d.ts +3 -0
  55. package/dist/build/index.d.ts.map +1 -0
  56. package/dist/build/index.js +2 -0
  57. package/dist/build/index.js.map +1 -0
  58. package/dist/build/with-interfere.d.ts +54 -0
  59. package/dist/build/with-interfere.d.ts.map +1 -0
  60. package/dist/build/with-interfere.js +267 -0
  61. package/dist/build/with-interfere.js.map +1 -0
  62. package/dist/core/client-core.d.ts +27 -0
  63. package/dist/core/client-core.d.ts.map +1 -0
  64. package/dist/core/client-core.js +164 -0
  65. package/dist/core/client-core.js.map +1 -0
  66. package/dist/core/client.d.ts +70 -18
  67. package/dist/core/client.d.ts.map +1 -1
  68. package/dist/core/client.js +112 -104
  69. package/dist/core/client.js.map +1 -1
  70. package/dist/core/client.test.js +227 -92
  71. package/dist/core/client.test.js.map +1 -1
  72. package/dist/core/constants.d.ts +12 -0
  73. package/dist/core/constants.d.ts.map +1 -0
  74. package/dist/core/constants.js +17 -0
  75. package/dist/core/constants.js.map +1 -0
  76. package/dist/core/debug.d.ts +47 -0
  77. package/dist/core/debug.d.ts.map +1 -0
  78. package/dist/core/debug.js +79 -0
  79. package/dist/core/debug.js.map +1 -0
  80. package/dist/core/encoders.test.js +20 -19
  81. package/dist/core/encoders.test.js.map +1 -1
  82. package/dist/core/error-handlers.d.ts.map +1 -1
  83. package/dist/core/error-handlers.js +42 -41
  84. package/dist/core/error-handlers.js.map +1 -1
  85. package/dist/core/runtime.d.ts +7 -0
  86. package/dist/core/runtime.d.ts.map +1 -0
  87. package/dist/core/runtime.js +16 -0
  88. package/dist/core/runtime.js.map +1 -0
  89. package/dist/index.d.ts +10 -7
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +6 -7
  92. package/dist/index.js.map +1 -1
  93. package/dist/next/error-boundary.d.ts +5 -5
  94. package/dist/next/error-boundary.d.ts.map +1 -1
  95. package/dist/next/error-boundary.jsx +5 -5
  96. package/dist/next/middleware.d.ts +1 -1
  97. package/dist/next/middleware.js +13 -13
  98. package/dist/persistence/index.d.ts +5 -0
  99. package/dist/persistence/index.d.ts.map +1 -0
  100. package/dist/persistence/index.js +67 -0
  101. package/dist/persistence/index.js.map +1 -0
  102. package/dist/persistence/storage.d.ts +5 -0
  103. package/dist/persistence/storage.d.ts.map +1 -0
  104. package/dist/persistence/storage.js +67 -0
  105. package/dist/persistence/storage.js.map +1 -0
  106. package/dist/react/provider.d.ts +9 -5
  107. package/dist/react/provider.d.ts.map +1 -1
  108. package/dist/react/provider.jsx +33 -10
  109. package/dist/react/provider.jsx.map +1 -1
  110. package/dist/session/constants.d.ts +19 -0
  111. package/dist/session/constants.d.ts.map +1 -0
  112. package/dist/session/constants.js +34 -0
  113. package/dist/session/constants.js.map +1 -0
  114. package/dist/session/persistence.d.ts +58 -0
  115. package/dist/session/persistence.d.ts.map +1 -0
  116. package/dist/session/persistence.js +180 -0
  117. package/dist/session/persistence.js.map +1 -0
  118. package/dist/session/persistence.test.d.ts +2 -0
  119. package/dist/session/persistence.test.d.ts.map +1 -0
  120. package/dist/session/persistence.test.js +129 -0
  121. package/dist/session/persistence.test.js.map +1 -0
  122. package/dist/session/rage-click.d.ts +17 -0
  123. package/dist/session/rage-click.d.ts.map +1 -0
  124. package/dist/session/rage-click.js +104 -0
  125. package/dist/session/rage-click.js.map +1 -0
  126. package/dist/session/rage-click.test.d.ts +2 -0
  127. package/dist/session/rage-click.test.d.ts.map +1 -0
  128. package/dist/session/rage-click.test.js +124 -0
  129. package/dist/session/rage-click.test.js.map +1 -0
  130. package/dist/session/replay.d.ts +2 -2
  131. package/dist/session/replay.d.ts.map +1 -1
  132. package/dist/session/replay.js +57 -24
  133. package/dist/session/replay.js.map +1 -1
  134. package/dist/session/session-manager.d.ts +126 -0
  135. package/dist/session/session-manager.d.ts.map +1 -0
  136. package/dist/session/session-manager.js +635 -0
  137. package/dist/session/session-manager.js.map +1 -0
  138. package/dist/session/session-manager.test.d.ts +2 -0
  139. package/dist/session/session-manager.test.d.ts.map +1 -0
  140. package/dist/session/session-manager.test.js +1134 -0
  141. package/dist/session/session-manager.test.js.map +1 -0
  142. package/dist/session/session-summary.d.ts +2 -2
  143. package/dist/session/session-summary.d.ts.map +1 -1
  144. package/dist/session/session-summary.js +94 -47
  145. package/dist/session/session-summary.js.map +1 -1
  146. package/dist/storage/index.d.ts +5 -0
  147. package/dist/storage/index.d.ts.map +1 -0
  148. package/dist/storage/index.js +67 -0
  149. package/dist/storage/index.js.map +1 -0
  150. package/dist/types/storage.d.ts +7 -0
  151. package/dist/types/storage.d.ts.map +1 -0
  152. package/dist/types/storage.js +2 -0
  153. package/dist/types/storage.js.map +1 -0
  154. package/package.json +24 -7
@@ -1,23 +1,75 @@
1
- import { type EventType, type InitConfig } from '@interfere/schemas';
2
- declare class InterfereClient {
3
- private surface;
4
- private config;
5
- private queue;
6
- seq: number;
7
- private sessionId;
8
- private runtime;
9
- flushTimer?: NodeJS.Timeout;
10
- constructor({ surface, options }: InitConfig);
11
- private detectRuntime;
12
- private generateSessionId;
13
- private startFlushTimer;
14
- capture(type: EventType, payload: unknown): void;
15
- flush(): void;
16
- getSessionId(): string;
17
- }
1
+ /**
2
+ * Public API for Interfere SDK
3
+ *
4
+ * This module manages the singleton instance and provides
5
+ * the public-facing functions for the SDK.
6
+ */
7
+ import type { InitConfig } from "@interfere/schemas/config";
8
+ import type { EventType } from "@interfere/schemas/envelope";
9
+ import { InterfereClient } from "./client-core.js";
10
+ /**
11
+ * Initialize the Interfere SDK
12
+ *
13
+ * @param props - Configuration including surface ID and options
14
+ * @returns The initialized client instance
15
+ * @throws Error if surface is not provided or buildId/releaseId are missing
16
+ */
18
17
  export declare const init: (props: InitConfig) => InterfereClient;
18
+ /**
19
+ * Capture an event
20
+ *
21
+ * @param type - The type of event to capture
22
+ * @param payload - The event payload
23
+ * @throws Error if SDK is not initialized
24
+ */
19
25
  export declare const capture: (type: EventType, payload: unknown) => void;
26
+ /**
27
+ * Flush any pending events immediately
28
+ */
20
29
  export declare const flush: () => void;
30
+ /**
31
+ * Get the current session ID
32
+ *
33
+ * @returns The current session ID
34
+ * @throws Error if SDK is not initialized
35
+ */
21
36
  export declare const getSessionId: () => string;
22
- export {};
37
+ /**
38
+ * Get the current window ID
39
+ *
40
+ * @returns The current window ID
41
+ * @throws Error if SDK is not initialized
42
+ */
43
+ export declare const getWindowId: () => string;
44
+ /**
45
+ * Subscribe to session ID changes
46
+ *
47
+ * @param callback - Callback to invoke when session ID changes
48
+ * @returns Unsubscribe function
49
+ * @throws Error if SDK is not initialized
50
+ */
51
+ export declare const onSessionId: (callback: (sessionId: string | null, windowId: string | null) => void) => (() => void);
52
+ /**
53
+ * Reset the current session
54
+ *
55
+ * @throws Error if SDK is not initialized
56
+ */
57
+ export declare const resetSession: () => void;
58
+ /**
59
+ * Get debug information (development only)
60
+ *
61
+ * @returns Debug information about the current SDK state
62
+ * @throws Error if SDK is not initialized
63
+ */
64
+ export declare const getDebugInfo: () => import("./debug.js").DebugInfo;
65
+ /**
66
+ * Get the current client instance
67
+ *
68
+ * @returns The current client instance or null if not initialized
69
+ */
70
+ export declare const getInstance: () => InterfereClient | null;
71
+ /**
72
+ * Destroy the SDK instance and clean up resources
73
+ */
74
+ export declare const destroy: () => void;
23
75
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,UAAU,EAEhB,MAAM,oBAAoB,CAAC;AAK5B,cAAM,eAAe;IACnB,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAkB;IAC/B,GAAG,SAAK;IACR,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;gBAEhB,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,UAAU;IAwB5C,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAoBhD,KAAK,IAAI,IAAI;IAwCb,YAAY,IAAI,MAAM;CAGvB;AAID,eAAO,MAAM,IAAI,GAAI,OAAO,UAAU,KAAG,eAQxC,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,MAAM,SAAS,EAAE,SAAS,OAAO,KAAG,IAK3D,CAAC;AAEF,eAAO,MAAM,KAAK,QAAO,IAExB,CAAC;AAEF,eAAO,MAAM,YAAY,QAAO,MAM/B,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKnD;;;;;;GAMG;AACH,eAAO,MAAM,IAAI,GAAI,OAAO,UAAU,KAAG,eA6BxC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAAI,MAAM,SAAS,EAAE,SAAS,OAAO,KAAG,IAK3D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,KAAK,QAAO,IAExB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,QAAO,MAK/B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAO,MAK9B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GACtB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,KACpE,CAAC,MAAM,IAAI,CAKb,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,QAAO,IAK/B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,sCAKxB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,QAAO,eAAe,GAAG,IAEhD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,QAAO,IAK1B,CAAC"}
@@ -1,125 +1,133 @@
1
- import { configSchema, } from '@interfere/schemas';
2
- import { nanoid } from 'nanoid';
3
- import { encode } from './encoders.js';
4
- import { setupClientErrorHandlers } from './error-handlers.js';
5
- class InterfereClient {
6
- surface;
7
- config;
8
- queue = [];
9
- seq = 0;
10
- sessionId;
11
- runtime;
12
- flushTimer;
13
- constructor({ surface, options }) {
14
- this.runtime = this.detectRuntime();
15
- this.sessionId = options?.sessionId || this.generateSessionId();
16
- this.surface = surface;
17
- const { success, data, error } = configSchema.safeParse(options ?? {});
18
- if (!success) {
19
- throw new Error(`[Interfere] invalid config: ${error.message}`);
20
- }
21
- this.config = data;
22
- if (this.runtime === 'client') {
23
- this.startFlushTimer();
24
- if (typeof window !== 'undefined') {
25
- window.addEventListener('beforeunload', () => this.flush());
26
- }
27
- // Set up client error handlers
28
- setupClientErrorHandlers();
29
- }
30
- }
31
- detectRuntime() {
32
- if (typeof window !== 'undefined') {
33
- return 'client';
34
- }
35
- if (typeof globalThis !== 'undefined' && 'EdgeRuntime' in globalThis) {
36
- return 'edge';
37
- }
38
- return 'server';
39
- }
40
- generateSessionId() {
41
- return nanoid();
42
- }
43
- startFlushTimer() {
44
- this.flushTimer = setInterval(() => this.flush(), this.config.flushInterval);
45
- }
46
- capture(type, payload) {
47
- const envelope = {
48
- v: 0,
49
- runtime: this.runtime,
50
- surface: this.surface,
51
- ...this.config,
52
- clientTs: Date.now(),
53
- sessionId: this.sessionId,
54
- seq: ++this.seq,
55
- type,
56
- payload: Array.from(encode(payload)),
57
- };
58
- this.queue.push(envelope);
59
- if (this.runtime !== 'client' || this.queue.length >= 10) {
60
- this.flush();
61
- }
62
- }
63
- flush() {
64
- if (this.queue.length === 0) {
65
- return;
66
- }
67
- const batch = [...this.queue];
68
- this.queue = [];
69
- const body = JSON.stringify(batch);
70
- const headers = new Headers({
71
- 'Content-Type': 'application/json',
72
- 'x-interfere-surface': this.surface,
73
- });
74
- if (this.runtime === 'client' &&
75
- typeof window !== 'undefined' &&
76
- typeof window.navigator?.sendBeacon === 'function') {
77
- // sendBeacon doesn't support custom headers, so we need to use fetch
78
- // with keepalive for reliability
79
- fetch(this.config.endpoint, {
80
- method: 'POST',
81
- headers,
82
- body,
83
- keepalive: true,
84
- }).catch(() => {
85
- // Silently fail - don't capture SDK's own errors to prevent loops
86
- });
87
- }
88
- else {
89
- fetch(this.config.endpoint, {
90
- method: 'POST',
91
- headers,
92
- body,
93
- }).catch(() => {
94
- // Silently fail - don't capture SDK's own errors to prevent loops
95
- });
96
- }
97
- }
98
- getSessionId() {
99
- return this.sessionId;
100
- }
101
- }
1
+ /**
2
+ * Public API for Interfere SDK
3
+ *
4
+ * This module manages the singleton instance and provides
5
+ * the public-facing functions for the SDK.
6
+ */
7
+ import { InterfereClient } from "./client-core.js";
8
+ // Singleton instance
102
9
  let instance = null;
10
+ /**
11
+ * Initialize the Interfere SDK
12
+ *
13
+ * @param props - Configuration including surface ID and options
14
+ * @returns The initialized client instance
15
+ * @throws Error if surface is not provided or buildId/releaseId are missing
16
+ */
103
17
  export const init = (props) => {
104
18
  if (!props.surface) {
105
- throw new Error('[Interfere] surface required');
19
+ throw new Error("[Interfere] surface is required");
20
+ }
21
+ // Validate required fields early
22
+ const hasBuildId = props.options?.buildId || process.env?.NEXT_PUBLIC_INTERFERE_BUILD_ID;
23
+ if (!hasBuildId) {
24
+ throw new Error("[Interfere] buildId is required. Provide it in options or set NEXT_PUBLIC_INTERFERE_BUILD_ID");
25
+ }
26
+ const hasReleaseId = props.options?.releaseId || process.env?.NEXT_PUBLIC_INTERFERE_RELEASE_ID;
27
+ if (!hasReleaseId) {
28
+ throw new Error("[Interfere] releaseId is required. Provide it in options or set NEXT_PUBLIC_INTERFERE_RELEASE_ID");
29
+ }
30
+ // Clean up existing instance if any
31
+ if (instance) {
32
+ instance.destroy();
106
33
  }
107
34
  instance = new InterfereClient(props);
108
35
  return instance;
109
36
  };
37
+ /**
38
+ * Capture an event
39
+ *
40
+ * @param type - The type of event to capture
41
+ * @param payload - The event payload
42
+ * @throws Error if SDK is not initialized
43
+ */
110
44
  export const capture = (type, payload) => {
111
45
  if (!instance) {
112
- throw new Error('[interfere] not initialized');
46
+ throw new Error("[Interfere] Not initialized. Call init() first");
113
47
  }
114
48
  instance.capture(type, payload);
115
49
  };
50
+ /**
51
+ * Flush any pending events immediately
52
+ */
116
53
  export const flush = () => {
117
54
  instance?.flush();
118
55
  };
56
+ /**
57
+ * Get the current session ID
58
+ *
59
+ * @returns The current session ID
60
+ * @throws Error if SDK is not initialized
61
+ */
119
62
  export const getSessionId = () => {
120
63
  if (!instance) {
121
- throw new Error('[interfere] not initialized');
64
+ throw new Error("[Interfere] Not initialized. Call init() first");
122
65
  }
123
66
  return instance.getSessionId();
124
67
  };
68
+ /**
69
+ * Get the current window ID
70
+ *
71
+ * @returns The current window ID
72
+ * @throws Error if SDK is not initialized
73
+ */
74
+ export const getWindowId = () => {
75
+ if (!instance) {
76
+ throw new Error("[Interfere] Not initialized. Call init() first");
77
+ }
78
+ return instance.getWindowId();
79
+ };
80
+ /**
81
+ * Subscribe to session ID changes
82
+ *
83
+ * @param callback - Callback to invoke when session ID changes
84
+ * @returns Unsubscribe function
85
+ * @throws Error if SDK is not initialized
86
+ */
87
+ export const onSessionId = (callback) => {
88
+ if (!instance) {
89
+ throw new Error("[Interfere] Not initialized. Call init() first");
90
+ }
91
+ return instance.onSessionId(callback);
92
+ };
93
+ /**
94
+ * Reset the current session
95
+ *
96
+ * @throws Error if SDK is not initialized
97
+ */
98
+ export const resetSession = () => {
99
+ if (!instance) {
100
+ throw new Error("[Interfere] Not initialized. Call init() first");
101
+ }
102
+ instance.resetSession();
103
+ };
104
+ /**
105
+ * Get debug information (development only)
106
+ *
107
+ * @returns Debug information about the current SDK state
108
+ * @throws Error if SDK is not initialized
109
+ */
110
+ export const getDebugInfo = () => {
111
+ if (!instance) {
112
+ throw new Error("[Interfere] Not initialized. Call init() first");
113
+ }
114
+ return instance.getDebugInfo();
115
+ };
116
+ /**
117
+ * Get the current client instance
118
+ *
119
+ * @returns The current client instance or null if not initialized
120
+ */
121
+ export const getInstance = () => {
122
+ return instance;
123
+ };
124
+ /**
125
+ * Destroy the SDK instance and clean up resources
126
+ */
127
+ export const destroy = () => {
128
+ if (instance) {
129
+ instance.destroy();
130
+ instance = null;
131
+ }
132
+ };
125
133
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}