@interfere/react 0.1.0-alpha.6 → 0.2.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. package/README.md +90 -0
  2. package/dist/error-boundary.d.mts +27 -0
  3. package/dist/error-boundary.d.mts.map +1 -0
  4. package/dist/error-boundary.mjs +42 -0
  5. package/dist/error-boundary.mjs.map +1 -0
  6. package/dist/internal/client.d.mts +13 -0
  7. package/dist/internal/client.d.mts.map +1 -0
  8. package/dist/internal/client.mjs +80 -0
  9. package/dist/internal/client.mjs.map +1 -0
  10. package/dist/internal/config.d.mts +9 -0
  11. package/dist/internal/config.d.mts.map +1 -0
  12. package/dist/internal/config.mjs +27 -0
  13. package/dist/internal/config.mjs.map +1 -0
  14. package/dist/internal/context.d.mts +6 -0
  15. package/dist/internal/context.d.mts.map +1 -0
  16. package/dist/internal/context.mjs +32 -0
  17. package/dist/internal/context.mjs.map +1 -0
  18. package/dist/internal/envelope.d.mts +14 -0
  19. package/dist/internal/envelope.d.mts.map +1 -0
  20. package/dist/internal/envelope.mjs +20 -0
  21. package/dist/internal/envelope.mjs.map +1 -0
  22. package/dist/internal/errors.d.mts +4 -0
  23. package/dist/internal/errors.d.mts.map +1 -0
  24. package/dist/internal/errors.mjs +4 -0
  25. package/dist/internal/errors.mjs.map +1 -0
  26. package/dist/internal/sw.d.mts +4 -0
  27. package/dist/internal/sw.d.mts.map +1 -0
  28. package/dist/internal/sw.mjs +10 -0
  29. package/dist/internal/sw.mjs.map +1 -0
  30. package/dist/plugins/errors.d.mts +6 -0
  31. package/dist/plugins/errors.d.mts.map +1 -0
  32. package/dist/plugins/errors.mjs +59 -0
  33. package/dist/plugins/errors.mjs.map +1 -0
  34. package/dist/plugins/lib/loader.d.mts +9 -0
  35. package/dist/plugins/lib/loader.d.mts.map +1 -0
  36. package/dist/plugins/lib/loader.mjs +47 -0
  37. package/dist/plugins/lib/loader.mjs.map +1 -0
  38. package/dist/plugins/lib/types.d.mts +14 -0
  39. package/dist/plugins/lib/types.d.mts.map +1 -0
  40. package/dist/plugins/lib/types.mjs +1 -0
  41. package/dist/plugins/pages.d.mts +6 -0
  42. package/dist/plugins/pages.d.mts.map +1 -0
  43. package/dist/plugins/pages.mjs +102 -0
  44. package/dist/plugins/pages.mjs.map +1 -0
  45. package/dist/plugins/rage-clicks.d.mts +6 -0
  46. package/dist/plugins/rage-clicks.d.mts.map +1 -0
  47. package/dist/plugins/rage-clicks.mjs +53 -0
  48. package/dist/plugins/rage-clicks.mjs.map +1 -0
  49. package/dist/plugins/replay.d.mts +6 -0
  50. package/dist/plugins/replay.d.mts.map +1 -0
  51. package/dist/plugins/replay.mjs +62 -0
  52. package/dist/plugins/replay.mjs.map +1 -0
  53. package/dist/provider.d.mts +17 -11
  54. package/dist/provider.d.mts.map +1 -1
  55. package/dist/provider.mjs +18 -17
  56. package/dist/provider.mjs.map +1 -1
  57. package/dist/tracking/api.d.mts +22 -0
  58. package/dist/tracking/api.d.mts.map +1 -0
  59. package/dist/tracking/api.mjs +88 -0
  60. package/dist/tracking/api.mjs.map +1 -0
  61. package/dist/tracking/session.d.mts +19 -0
  62. package/dist/tracking/session.d.mts.map +1 -0
  63. package/dist/tracking/session.mjs +92 -0
  64. package/dist/tracking/session.mjs.map +1 -0
  65. package/dist/tracking/visitor.d.mts +6 -0
  66. package/dist/tracking/visitor.d.mts.map +1 -0
  67. package/dist/tracking/visitor.mjs +35 -0
  68. package/dist/tracking/visitor.mjs.map +1 -0
  69. package/dist/transport/http.d.mts +15 -0
  70. package/dist/transport/http.d.mts.map +1 -0
  71. package/dist/transport/http.mjs +56 -0
  72. package/dist/transport/http.mjs.map +1 -0
  73. package/dist/transport/queue.d.mts +25 -0
  74. package/dist/transport/queue.d.mts.map +1 -0
  75. package/dist/transport/queue.mjs +60 -0
  76. package/dist/transport/queue.mjs.map +1 -0
  77. package/dist/util/log.d.mts +13 -0
  78. package/dist/util/log.d.mts.map +1 -0
  79. package/dist/util/log.mjs +37 -0
  80. package/dist/util/log.mjs.map +1 -0
  81. package/package.json +38 -64
  82. package/dist/client.d.mts +0 -8
  83. package/dist/client.d.mts.map +0 -1
  84. package/dist/client.mjs +0 -14
  85. package/dist/client.mjs.map +0 -1
  86. package/dist/core/events/define-event.d.mts +0 -12
  87. package/dist/core/events/define-event.d.mts.map +0 -1
  88. package/dist/core/events/define-event.mjs +0 -39
  89. package/dist/core/events/define-event.mjs.map +0 -1
  90. package/dist/core/events/event-registry.d.mts +0 -23
  91. package/dist/core/events/event-registry.d.mts.map +0 -1
  92. package/dist/core/events/event-registry.mjs +0 -32
  93. package/dist/core/events/event-registry.mjs.map +0 -1
  94. package/dist/core/events/plugin-event-types.d.mts +0 -130
  95. package/dist/core/events/plugin-event-types.d.mts.map +0 -1
  96. package/dist/core/events/plugin-event-types.mjs +0 -25
  97. package/dist/core/events/plugin-event-types.mjs.map +0 -1
  98. package/dist/core/plugins/define-plugin.d.mts +0 -43
  99. package/dist/core/plugins/define-plugin.d.mts.map +0 -1
  100. package/dist/core/plugins/define-plugin.mjs +0 -23
  101. package/dist/core/plugins/define-plugin.mjs.map +0 -1
  102. package/dist/core/plugins/dom-utils.d.mts +0 -9
  103. package/dist/core/plugins/dom-utils.d.mts.map +0 -1
  104. package/dist/core/plugins/dom-utils.mjs +0 -25
  105. package/dist/core/plugins/dom-utils.mjs.map +0 -1
  106. package/dist/core/plugins/impl/ai-summary/ai-summary-plugin-api.d.mts +0 -18
  107. package/dist/core/plugins/impl/ai-summary/ai-summary-plugin-api.d.mts.map +0 -1
  108. package/dist/core/plugins/impl/ai-summary/ai-summary-plugin-api.mjs +0 -17
  109. package/dist/core/plugins/impl/ai-summary/ai-summary-plugin-api.mjs.map +0 -1
  110. package/dist/core/plugins/impl/ai-summary/plugin.d.mts +0 -6
  111. package/dist/core/plugins/impl/ai-summary/plugin.d.mts.map +0 -1
  112. package/dist/core/plugins/impl/ai-summary/plugin.mjs +0 -151
  113. package/dist/core/plugins/impl/ai-summary/plugin.mjs.map +0 -1
  114. package/dist/core/plugins/impl/errors/errors-plugin-api.d.mts +0 -17
  115. package/dist/core/plugins/impl/errors/errors-plugin-api.d.mts.map +0 -1
  116. package/dist/core/plugins/impl/errors/errors-plugin-api.mjs +0 -58
  117. package/dist/core/plugins/impl/errors/errors-plugin-api.mjs.map +0 -1
  118. package/dist/core/plugins/impl/errors/logic.d.mts +0 -15
  119. package/dist/core/plugins/impl/errors/logic.d.mts.map +0 -1
  120. package/dist/core/plugins/impl/errors/logic.mjs +0 -48
  121. package/dist/core/plugins/impl/errors/logic.mjs.map +0 -1
  122. package/dist/core/plugins/impl/errors/patches.d.mts +0 -13
  123. package/dist/core/plugins/impl/errors/patches.d.mts.map +0 -1
  124. package/dist/core/plugins/impl/errors/patches.mjs +0 -43
  125. package/dist/core/plugins/impl/errors/patches.mjs.map +0 -1
  126. package/dist/core/plugins/impl/errors/plugin.d.mts +0 -9
  127. package/dist/core/plugins/impl/errors/plugin.d.mts.map +0 -1
  128. package/dist/core/plugins/impl/errors/plugin.mjs +0 -91
  129. package/dist/core/plugins/impl/errors/plugin.mjs.map +0 -1
  130. package/dist/core/plugins/impl/page-events/page-events-plugin-api.d.mts +0 -19
  131. package/dist/core/plugins/impl/page-events/page-events-plugin-api.d.mts.map +0 -1
  132. package/dist/core/plugins/impl/page-events/page-events-plugin-api.mjs +0 -38
  133. package/dist/core/plugins/impl/page-events/page-events-plugin-api.mjs.map +0 -1
  134. package/dist/core/plugins/impl/page-events/plugin.d.mts +0 -6
  135. package/dist/core/plugins/impl/page-events/plugin.d.mts.map +0 -1
  136. package/dist/core/plugins/impl/page-events/plugin.mjs +0 -95
  137. package/dist/core/plugins/impl/page-events/plugin.mjs.map +0 -1
  138. package/dist/core/plugins/impl/rage-click/plugin.d.mts +0 -6
  139. package/dist/core/plugins/impl/rage-click/plugin.d.mts.map +0 -1
  140. package/dist/core/plugins/impl/rage-click/plugin.mjs +0 -38
  141. package/dist/core/plugins/impl/rage-click/plugin.mjs.map +0 -1
  142. package/dist/core/plugins/impl/rage-click/rage-click.layer.d.mts +0 -9
  143. package/dist/core/plugins/impl/rage-click/rage-click.layer.d.mts.map +0 -1
  144. package/dist/core/plugins/impl/rage-click/rage-click.layer.mjs +0 -35
  145. package/dist/core/plugins/impl/rage-click/rage-click.layer.mjs.map +0 -1
  146. package/dist/core/plugins/impl/rage-click/rage-click.service.d.mts +0 -16
  147. package/dist/core/plugins/impl/rage-click/rage-click.service.d.mts.map +0 -1
  148. package/dist/core/plugins/impl/rage-click/rage-click.service.mjs +0 -7
  149. package/dist/core/plugins/impl/rage-click/rage-click.service.mjs.map +0 -1
  150. package/dist/core/plugins/impl/rage-click/rage-click.test-layer.d.mts +0 -16
  151. package/dist/core/plugins/impl/rage-click/rage-click.test-layer.d.mts.map +0 -1
  152. package/dist/core/plugins/impl/rage-click/rage-click.test-layer.mjs +0 -18
  153. package/dist/core/plugins/impl/rage-click/rage-click.test-layer.mjs.map +0 -1
  154. package/dist/core/plugins/impl/replay/plugin.d.mts +0 -9
  155. package/dist/core/plugins/impl/replay/plugin.d.mts.map +0 -1
  156. package/dist/core/plugins/impl/replay/plugin.mjs +0 -83
  157. package/dist/core/plugins/impl/replay/plugin.mjs.map +0 -1
  158. package/dist/core/plugins/impl/replay/replay-plugin-api.d.mts +0 -18
  159. package/dist/core/plugins/impl/replay/replay-plugin-api.d.mts.map +0 -1
  160. package/dist/core/plugins/impl/replay/replay-plugin-api.mjs +0 -50
  161. package/dist/core/plugins/impl/replay/replay-plugin-api.mjs.map +0 -1
  162. package/dist/core/plugins/impl/server-tracing/plugin.d.mts +0 -13
  163. package/dist/core/plugins/impl/server-tracing/plugin.d.mts.map +0 -1
  164. package/dist/core/plugins/impl/server-tracing/plugin.mjs +0 -75
  165. package/dist/core/plugins/impl/server-tracing/plugin.mjs.map +0 -1
  166. package/dist/core/plugins/impl/server-tracing/server-tracing-plugin-api.d.mts +0 -16
  167. package/dist/core/plugins/impl/server-tracing/server-tracing-plugin-api.d.mts.map +0 -1
  168. package/dist/core/plugins/impl/server-tracing/server-tracing-plugin-api.mjs +0 -17
  169. package/dist/core/plugins/impl/server-tracing/server-tracing-plugin-api.mjs.map +0 -1
  170. package/dist/core/plugins/impl/server-tracing/tracing-logic.d.mts +0 -29
  171. package/dist/core/plugins/impl/server-tracing/tracing-logic.d.mts.map +0 -1
  172. package/dist/core/plugins/impl/server-tracing/tracing-logic.mjs +0 -55
  173. package/dist/core/plugins/impl/server-tracing/tracing-logic.mjs.map +0 -1
  174. package/dist/core/plugins/plugin-loader.d.mts +0 -75
  175. package/dist/core/plugins/plugin-loader.d.mts.map +0 -1
  176. package/dist/core/plugins/plugin-loader.mjs +0 -79
  177. package/dist/core/plugins/plugin-loader.mjs.map +0 -1
  178. package/dist/core/plugins/services/event-capture.d.mts +0 -12
  179. package/dist/core/plugins/services/event-capture.d.mts.map +0 -1
  180. package/dist/core/plugins/services/event-capture.layer.d.mts +0 -11
  181. package/dist/core/plugins/services/event-capture.layer.d.mts.map +0 -1
  182. package/dist/core/plugins/services/event-capture.layer.mjs +0 -79
  183. package/dist/core/plugins/services/event-capture.layer.mjs.map +0 -1
  184. package/dist/core/plugins/services/event-capture.mjs +0 -7
  185. package/dist/core/plugins/services/event-capture.mjs.map +0 -1
  186. package/dist/core/plugins/services/event-capture.test-layer.d.mts +0 -17
  187. package/dist/core/plugins/services/event-capture.test-layer.d.mts.map +0 -1
  188. package/dist/core/plugins/services/event-capture.test-layer.mjs +0 -21
  189. package/dist/core/plugins/services/event-capture.test-layer.mjs.map +0 -1
  190. package/dist/core/plugins/services/plugin-config.d.mts +0 -11
  191. package/dist/core/plugins/services/plugin-config.d.mts.map +0 -1
  192. package/dist/core/plugins/services/plugin-config.mjs +0 -7
  193. package/dist/core/plugins/services/plugin-config.mjs.map +0 -1
  194. package/dist/core/plugins/services/plugin-config.test-layer.d.mts +0 -60
  195. package/dist/core/plugins/services/plugin-config.test-layer.d.mts.map +0 -1
  196. package/dist/core/plugins/services/plugin-config.test-layer.mjs +0 -8
  197. package/dist/core/plugins/services/plugin-config.test-layer.mjs.map +0 -1
  198. package/dist/core/plugins/services/plugin-logger.d.mts +0 -14
  199. package/dist/core/plugins/services/plugin-logger.d.mts.map +0 -1
  200. package/dist/core/plugins/services/plugin-logger.mjs +0 -7
  201. package/dist/core/plugins/services/plugin-logger.mjs.map +0 -1
  202. package/dist/core/plugins/services/plugin-logger.test-layer.d.mts +0 -18
  203. package/dist/core/plugins/services/plugin-logger.test-layer.d.mts.map +0 -1
  204. package/dist/core/plugins/services/plugin-logger.test-layer.mjs +0 -28
  205. package/dist/core/plugins/services/plugin-logger.test-layer.mjs.map +0 -1
  206. package/dist/core/plugins/services/plugin-runtime.d.mts +0 -10
  207. package/dist/core/plugins/services/plugin-runtime.d.mts.map +0 -1
  208. package/dist/core/plugins/services/plugin-runtime.mjs +0 -7
  209. package/dist/core/plugins/services/plugin-runtime.mjs.map +0 -1
  210. package/dist/core/plugins/services/plugin-runtime.test-layer.d.mts +0 -16
  211. package/dist/core/plugins/services/plugin-runtime.test-layer.d.mts.map +0 -1
  212. package/dist/core/plugins/services/plugin-runtime.test-layer.mjs +0 -21
  213. package/dist/core/plugins/services/plugin-runtime.test-layer.mjs.map +0 -1
  214. package/dist/core/plugins/services/session-info.d.mts +0 -11
  215. package/dist/core/plugins/services/session-info.d.mts.map +0 -1
  216. package/dist/core/plugins/services/session-info.mjs +0 -7
  217. package/dist/core/plugins/services/session-info.mjs.map +0 -1
  218. package/dist/core/plugins/services/session-info.test-layer.d.mts +0 -18
  219. package/dist/core/plugins/services/session-info.test-layer.d.mts.map +0 -1
  220. package/dist/core/plugins/services/session-info.test-layer.mjs +0 -20
  221. package/dist/core/plugins/services/session-info.test-layer.mjs.map +0 -1
  222. package/dist/core/runtime/config.d.mts +0 -14
  223. package/dist/core/runtime/config.d.mts.map +0 -1
  224. package/dist/core/runtime/config.mjs +0 -33
  225. package/dist/core/runtime/config.mjs.map +0 -1
  226. package/dist/core/runtime/context.d.mts +0 -50
  227. package/dist/core/runtime/context.d.mts.map +0 -1
  228. package/dist/core/runtime/context.mjs +0 -46
  229. package/dist/core/runtime/context.mjs.map +0 -1
  230. package/dist/core/runtime/ingest-target.d.mts +0 -10
  231. package/dist/core/runtime/ingest-target.d.mts.map +0 -1
  232. package/dist/core/runtime/ingest-target.mjs +0 -15
  233. package/dist/core/runtime/ingest-target.mjs.map +0 -1
  234. package/dist/core/runtime/native-fetch.d.mts +0 -32
  235. package/dist/core/runtime/native-fetch.d.mts.map +0 -1
  236. package/dist/core/runtime/native-fetch.mjs +0 -49
  237. package/dist/core/runtime/native-fetch.mjs.map +0 -1
  238. package/dist/core/schemas.d.mts +0 -26
  239. package/dist/core/schemas.d.mts.map +0 -1
  240. package/dist/core/schemas.mjs +0 -1
  241. package/dist/effect/errors.d.mts +0 -22
  242. package/dist/effect/errors.d.mts.map +0 -1
  243. package/dist/effect/errors.mjs +0 -17
  244. package/dist/effect/errors.mjs.map +0 -1
  245. package/dist/effect/layers/circuit-breaker.layer.d.mts +0 -9
  246. package/dist/effect/layers/circuit-breaker.layer.d.mts.map +0 -1
  247. package/dist/effect/layers/circuit-breaker.layer.mjs +0 -9
  248. package/dist/effect/layers/circuit-breaker.layer.mjs.map +0 -1
  249. package/dist/effect/layers/circuit-breaker.layer.test-layer.d.mts +0 -18
  250. package/dist/effect/layers/circuit-breaker.layer.test-layer.d.mts.map +0 -1
  251. package/dist/effect/layers/circuit-breaker.layer.test-layer.mjs +0 -43
  252. package/dist/effect/layers/circuit-breaker.layer.test-layer.mjs.map +0 -1
  253. package/dist/effect/layers/config.layer.d.mts +0 -13
  254. package/dist/effect/layers/config.layer.d.mts.map +0 -1
  255. package/dist/effect/layers/config.layer.mjs +0 -21
  256. package/dist/effect/layers/config.layer.mjs.map +0 -1
  257. package/dist/effect/layers/context.layer.d.mts +0 -12
  258. package/dist/effect/layers/context.layer.d.mts.map +0 -1
  259. package/dist/effect/layers/context.layer.mjs +0 -14
  260. package/dist/effect/layers/context.layer.mjs.map +0 -1
  261. package/dist/effect/layers/http.layer.d.mts +0 -21
  262. package/dist/effect/layers/http.layer.d.mts.map +0 -1
  263. package/dist/effect/layers/http.layer.mjs +0 -118
  264. package/dist/effect/layers/http.layer.mjs.map +0 -1
  265. package/dist/effect/layers/queue.layer.d.mts +0 -31
  266. package/dist/effect/layers/queue.layer.d.mts.map +0 -1
  267. package/dist/effect/layers/queue.layer.mjs +0 -257
  268. package/dist/effect/layers/queue.layer.mjs.map +0 -1
  269. package/dist/effect/layers/queue.layer.test-layer.d.mts +0 -19
  270. package/dist/effect/layers/queue.layer.test-layer.d.mts.map +0 -1
  271. package/dist/effect/layers/queue.layer.test-layer.mjs +0 -44
  272. package/dist/effect/layers/queue.layer.test-layer.mjs.map +0 -1
  273. package/dist/effect/layers/session.layer.d.mts +0 -34
  274. package/dist/effect/layers/session.layer.d.mts.map +0 -1
  275. package/dist/effect/layers/session.layer.mjs +0 -127
  276. package/dist/effect/layers/session.layer.mjs.map +0 -1
  277. package/dist/effect/layers/storage.layer.d.mts +0 -50
  278. package/dist/effect/layers/storage.layer.d.mts.map +0 -1
  279. package/dist/effect/layers/storage.layer.mjs +0 -180
  280. package/dist/effect/layers/storage.layer.mjs.map +0 -1
  281. package/dist/effect/layers/test-utils.d.mts +0 -19
  282. package/dist/effect/layers/test-utils.d.mts.map +0 -1
  283. package/dist/effect/layers/test-utils.mjs +0 -32
  284. package/dist/effect/layers/test-utils.mjs.map +0 -1
  285. package/dist/effect/runtime-services.d.mts +0 -23
  286. package/dist/effect/runtime-services.d.mts.map +0 -1
  287. package/dist/effect/runtime-services.mjs +0 -79
  288. package/dist/effect/runtime-services.mjs.map +0 -1
  289. package/dist/effect/tags.d.mts +0 -58
  290. package/dist/effect/tags.d.mts.map +0 -1
  291. package/dist/effect/tags.mjs +0 -7
  292. package/dist/effect/tags.mjs.map +0 -1
  293. package/dist/hooks/use-runtime-and-plugins.d.mts +0 -7
  294. package/dist/hooks/use-runtime-and-plugins.d.mts.map +0 -1
  295. package/dist/hooks/use-runtime-and-plugins.mjs +0 -121
  296. package/dist/hooks/use-runtime-and-plugins.mjs.map +0 -1
  297. package/dist/hooks/use-session.d.mts +0 -40
  298. package/dist/hooks/use-session.d.mts.map +0 -1
  299. package/dist/hooks/use-session.mjs +0 -96
  300. package/dist/hooks/use-session.mjs.map +0 -1
  301. package/dist/package.mjs +0 -103
  302. package/dist/package.mjs.map +0 -1
  303. package/dist/server/auth.d.mts +0 -15
  304. package/dist/server/auth.d.mts.map +0 -1
  305. package/dist/server/auth.mjs +0 -45
  306. package/dist/server/auth.mjs.map +0 -1
  307. package/dist/server/capture.d.mts +0 -34
  308. package/dist/server/capture.d.mts.map +0 -1
  309. package/dist/server/capture.mjs +0 -172
  310. package/dist/server/capture.mjs.map +0 -1
@@ -1,79 +0,0 @@
1
- import { dynamicRegistry } from "../events/event-registry.mjs";
2
- import { EventCaptureLive } from "./services/event-capture.layer.mjs";
3
- import { forkWithSDK } from "../../effect/runtime-services.mjs";
4
- import { PluginConfig } from "./services/plugin-config.mjs";
5
- import { PluginLogger } from "./services/plugin-logger.mjs";
6
- import { PluginRuntime } from "./services/plugin-runtime.mjs";
7
- import { SessionInfo } from "./services/session-info.mjs";
8
- import { Effect, Layer } from "effect";
9
- import { PLUGIN_MANIFEST } from "@interfere/types/sdk/plugins/manifest";
10
-
11
- //#region src/core/plugins/plugin-loader.ts
12
- const SESSION_ID_STORAGE_KEY = "__interfere_session_id__";
13
- const getSessionIdSync = () => {
14
- if (typeof window === "undefined") return null;
15
- try {
16
- return window.localStorage?.getItem(SESSION_ID_STORAGE_KEY) ?? null;
17
- } catch {
18
- return null;
19
- }
20
- };
21
- const baseServicesLayerFor = (config) => Layer.mergeAll(Layer.succeed(PluginRuntime, PluginRuntime.of({ fork: (eff) => {
22
- forkWithSDK(eff);
23
- } })), Layer.succeed(SessionInfo, SessionInfo.of({
24
- getSessionId: Effect.sync(getSessionIdSync),
25
- getSessionIdSync
26
- })), Layer.succeed(PluginConfig, PluginConfig.of({ config })), Layer.succeed(PluginLogger, PluginLogger.of({
27
- trace: (message) => Effect.logTrace(message),
28
- debug: (message) => Effect.logDebug(message),
29
- info: (message) => Effect.logInfo(message),
30
- warn: (message) => Effect.logWarning(message),
31
- error: (message) => Effect.logError(message)
32
- })), EventCaptureLive);
33
- const builtinPluginImports = {
34
- errors: () => import("./impl/errors/plugin.mjs"),
35
- replay: () => import("./impl/replay/plugin.mjs"),
36
- rageClick: () => import("./impl/rage-click/plugin.mjs"),
37
- aiSummary: () => import("./impl/ai-summary/plugin.mjs"),
38
- pageEvents: () => import("./impl/page-events/plugin.mjs"),
39
- serverTracing: () => import("./impl/server-tracing/plugin.mjs")
40
- };
41
- const isPluginKey = (key) => PLUGIN_MANIFEST.some(({ name }) => name === key);
42
- const loadAndSetupPluginsEffect = Effect.fn("loadAndSetupPluginsEffect")(function* (config, userPlugins) {
43
- const baseLayer = baseServicesLayerFor(config);
44
- const cleanups = [];
45
- const apis = {};
46
- const keys = /* @__PURE__ */ new Set();
47
- const registerEvents = (name, events) => Effect.gen(function* () {
48
- if (!(events && events.length > 0)) return;
49
- yield* Effect.logTrace(`Registering ${events.length} events for plugin '${name}'`).pipe(Effect.annotateLogs({
50
- plugin: name,
51
- eventCount: events.length
52
- }));
53
- for (const eventDef of events) dynamicRegistry.registerDefinition(eventDef);
54
- });
55
- const setupPlugin = Effect.fn("setupPlugin")(function* (plugin) {
56
- yield* registerEvents(plugin.name, plugin.events);
57
- const result = yield* plugin.load(baseLayer);
58
- if (result.cleanup) cleanups.push(result.cleanup);
59
- if (result.api) apis[plugin.key] = result.api;
60
- if (isPluginKey(plugin.key)) keys.add(plugin.key);
61
- });
62
- const enabledBuiltinKeys = Object.entries(config.features).filter(([_, enabled]) => enabled).map(([key]) => key).filter(isPluginKey);
63
- const loadBuiltin = Effect.fn("loadBuiltin")(function* (key) {
64
- yield* setupPlugin((yield* Effect.promise(() => builtinPluginImports[key]())).default);
65
- });
66
- const loadUser = Effect.fn("loadUser")(function* () {
67
- if (!userPlugins) return;
68
- yield* Effect.all(userPlugins.map((p) => setupPlugin(p)), { concurrency: "unbounded" });
69
- });
70
- yield* Effect.all([Effect.all(enabledBuiltinKeys.map((k) => loadBuiltin(k)), { concurrency: "unbounded" }), loadUser()], { concurrency: "unbounded" });
71
- return {
72
- cleanups: Object.freeze([...cleanups]),
73
- apis: Object.freeze({ ...apis }),
74
- keys
75
- };
76
- });
77
-
78
- //#endregion
79
- export { loadAndSetupPluginsEffect };
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-loader.mjs","names":[],"sources":["../../../src/core/plugins/plugin-loader.ts"],"sourcesContent":["import type { Config } from \"@interfere/types/sdk/config\";\nimport type { PluginKey } from \"@interfere/types/sdk/plugins/lib/types\";\nimport { PLUGIN_MANIFEST } from \"@interfere/types/sdk/plugins/manifest\";\n\nimport { Effect, Layer } from \"effect\";\n\nimport { forkWithSDK } from \"../../effect/runtime-services.js\";\nimport { dynamicRegistry } from \"../events/event-registry.js\";\nimport type { AnyEventDefinition } from \"../events/plugin-event-types.js\";\nimport type { PluginDef } from \"./define-plugin.js\";\nimport { EventCaptureLive } from \"./services/event-capture.layer.js\";\nimport { PluginConfig } from \"./services/plugin-config.js\";\nimport { PluginLogger } from \"./services/plugin-logger.js\";\nimport { PluginRuntime } from \"./services/plugin-runtime.js\";\nimport { SessionInfo } from \"./services/session-info.js\";\n\nexport type PluginCleanup = () => void;\n\nexport interface LoadedPlugins {\n readonly apis: Readonly<Record<string, unknown>>;\n readonly cleanups: readonly PluginCleanup[];\n readonly keys: ReadonlySet<PluginKey>;\n}\n\nconst SESSION_ID_STORAGE_KEY = \"__interfere_session_id__\";\n\nconst getSessionIdSync = (): string | null => {\n if (typeof window === \"undefined\") {\n return null;\n }\n\n try {\n return window.localStorage?.getItem(SESSION_ID_STORAGE_KEY) ?? null;\n } catch {\n return null;\n }\n};\n\nconst baseServicesLayerFor = (config: Config) =>\n Layer.mergeAll(\n Layer.succeed(\n PluginRuntime,\n PluginRuntime.of({\n fork: (eff) => {\n forkWithSDK(eff);\n },\n })\n ),\n Layer.succeed(\n SessionInfo,\n SessionInfo.of({\n getSessionId: Effect.sync(getSessionIdSync),\n getSessionIdSync,\n })\n ),\n Layer.succeed(PluginConfig, PluginConfig.of({ config })),\n Layer.succeed(\n PluginLogger,\n PluginLogger.of({\n trace: (message) => Effect.logTrace(message),\n debug: (message) => Effect.logDebug(message),\n info: (message) => Effect.logInfo(message),\n warn: (message) => Effect.logWarning(message),\n error: (message) => Effect.logError(message),\n })\n ),\n EventCaptureLive\n );\n\nconst builtinPluginImports: Record<\n PluginKey,\n () => Promise<{ default: PluginDef<PluginKey> }>\n> = {\n errors: () => import(\"./impl/errors/plugin.js\"),\n replay: () => import(\"./impl/replay/plugin.js\"),\n rageClick: () => import(\"./impl/rage-click/plugin.js\"),\n aiSummary: () => import(\"./impl/ai-summary/plugin.js\"),\n pageEvents: () => import(\"./impl/page-events/plugin.js\"),\n serverTracing: () => import(\"./impl/server-tracing/plugin.js\"),\n};\n\nconst isPluginKey = (key: string): key is PluginKey =>\n PLUGIN_MANIFEST.some(({ name }) => name === key);\n\nexport const loadAndSetupPluginsEffect = Effect.fn(\"loadAndSetupPluginsEffect\")(\n function* (config: Config, userPlugins?: readonly PluginDef[]) {\n const baseLayer = baseServicesLayerFor(config);\n\n const cleanups: PluginCleanup[] = [];\n const apis: Record<string, unknown> = {};\n const keys = new Set<PluginKey>();\n\n const registerEvents = (\n name: string,\n events?: readonly AnyEventDefinition[]\n ) =>\n Effect.gen(function* () {\n if (!(events && events.length > 0)) {\n return;\n }\n\n yield* Effect.logTrace(\n `Registering ${events.length} events for plugin '${name}'`\n ).pipe(\n Effect.annotateLogs({ plugin: name, eventCount: events.length })\n );\n\n for (const eventDef of events) {\n dynamicRegistry.registerDefinition(eventDef);\n }\n });\n\n const setupPlugin = Effect.fn(\"setupPlugin\")(function* (plugin: PluginDef) {\n yield* registerEvents(plugin.name, plugin.events);\n\n const result = yield* plugin.load(baseLayer);\n\n if (result.cleanup) {\n cleanups.push(result.cleanup);\n }\n\n if (result.api) {\n apis[plugin.key] = result.api;\n }\n\n if (isPluginKey(plugin.key)) {\n keys.add(plugin.key);\n }\n });\n\n const enabledBuiltinKeys = Object.entries(config.features)\n .filter(([_, enabled]) => enabled)\n .map(([key]) => key)\n .filter(isPluginKey);\n\n const loadBuiltin = Effect.fn(\"loadBuiltin\")(function* (key: PluginKey) {\n const mod = yield* Effect.promise(() => builtinPluginImports[key]());\n yield* setupPlugin(mod.default);\n });\n\n const loadUser = Effect.fn(\"loadUser\")(function* () {\n if (!userPlugins) {\n return;\n }\n\n yield* Effect.all(\n userPlugins.map((p) => setupPlugin(p)),\n {\n concurrency: \"unbounded\",\n }\n );\n });\n\n yield* Effect.all(\n [\n Effect.all(\n enabledBuiltinKeys.map((k) => loadBuiltin(k)),\n {\n concurrency: \"unbounded\",\n }\n ),\n loadUser(),\n ],\n { concurrency: \"unbounded\" }\n );\n\n return {\n cleanups: Object.freeze([...cleanups]),\n apis: Object.freeze({ ...apis }),\n keys,\n };\n }\n);\n"],"mappings":";;;;;;;;;;;AAwBA,MAAM,yBAAyB;AAE/B,MAAM,yBAAwC;AAC5C,KAAI,OAAO,WAAW,YACpB,QAAO;AAGT,KAAI;AACF,SAAO,OAAO,cAAc,QAAQ,uBAAuB,IAAI;SACzD;AACN,SAAO;;;AAIX,MAAM,wBAAwB,WAC5B,MAAM,SACJ,MAAM,QACJ,eACA,cAAc,GAAG,EACf,OAAO,QAAQ;AACb,aAAY,IAAI;GAEnB,CAAC,CACH,EACD,MAAM,QACJ,aACA,YAAY,GAAG;CACb,cAAc,OAAO,KAAK,iBAAiB;CAC3C;CACD,CAAC,CACH,EACD,MAAM,QAAQ,cAAc,aAAa,GAAG,EAAE,QAAQ,CAAC,CAAC,EACxD,MAAM,QACJ,cACA,aAAa,GAAG;CACd,QAAQ,YAAY,OAAO,SAAS,QAAQ;CAC5C,QAAQ,YAAY,OAAO,SAAS,QAAQ;CAC5C,OAAO,YAAY,OAAO,QAAQ,QAAQ;CAC1C,OAAO,YAAY,OAAO,WAAW,QAAQ;CAC7C,QAAQ,YAAY,OAAO,SAAS,QAAQ;CAC7C,CAAC,CACH,EACD,iBACD;AAEH,MAAM,uBAGF;CACF,cAAc,OAAO;CACrB,cAAc,OAAO;CACrB,iBAAiB,OAAO;CACxB,iBAAiB,OAAO;CACxB,kBAAkB,OAAO;CACzB,qBAAqB,OAAO;CAC7B;AAED,MAAM,eAAe,QACnB,gBAAgB,MAAM,EAAE,WAAW,SAAS,IAAI;AAElD,MAAa,4BAA4B,OAAO,GAAG,4BAA4B,CAC7E,WAAW,QAAgB,aAAoC;CAC7D,MAAM,YAAY,qBAAqB,OAAO;CAE9C,MAAM,WAA4B,EAAE;CACpC,MAAM,OAAgC,EAAE;CACxC,MAAM,uBAAO,IAAI,KAAgB;CAEjC,MAAM,kBACJ,MACA,WAEA,OAAO,IAAI,aAAa;AACtB,MAAI,EAAE,UAAU,OAAO,SAAS,GAC9B;AAGF,SAAO,OAAO,SACZ,eAAe,OAAO,OAAO,sBAAsB,KAAK,GACzD,CAAC,KACA,OAAO,aAAa;GAAE,QAAQ;GAAM,YAAY,OAAO;GAAQ,CAAC,CACjE;AAED,OAAK,MAAM,YAAY,OACrB,iBAAgB,mBAAmB,SAAS;GAE9C;CAEJ,MAAM,cAAc,OAAO,GAAG,cAAc,CAAC,WAAW,QAAmB;AACzE,SAAO,eAAe,OAAO,MAAM,OAAO,OAAO;EAEjD,MAAM,SAAS,OAAO,OAAO,KAAK,UAAU;AAE5C,MAAI,OAAO,QACT,UAAS,KAAK,OAAO,QAAQ;AAG/B,MAAI,OAAO,IACT,MAAK,OAAO,OAAO,OAAO;AAG5B,MAAI,YAAY,OAAO,IAAI,CACzB,MAAK,IAAI,OAAO,IAAI;GAEtB;CAEF,MAAM,qBAAqB,OAAO,QAAQ,OAAO,SAAS,CACvD,QAAQ,CAAC,GAAG,aAAa,QAAQ,CACjC,KAAK,CAAC,SAAS,IAAI,CACnB,OAAO,YAAY;CAEtB,MAAM,cAAc,OAAO,GAAG,cAAc,CAAC,WAAW,KAAgB;AAEtE,SAAO,aADK,OAAO,OAAO,cAAc,qBAAqB,MAAM,CAAC,EAC7C,QAAQ;GAC/B;CAEF,MAAM,WAAW,OAAO,GAAG,WAAW,CAAC,aAAa;AAClD,MAAI,CAAC,YACH;AAGF,SAAO,OAAO,IACZ,YAAY,KAAK,MAAM,YAAY,EAAE,CAAC,EACtC,EACE,aAAa,aACd,CACF;GACD;AAEF,QAAO,OAAO,IACZ,CACE,OAAO,IACL,mBAAmB,KAAK,MAAM,YAAY,EAAE,CAAC,EAC7C,EACE,aAAa,aACd,CACF,EACD,UAAU,CACX,EACD,EAAE,aAAa,aAAa,CAC7B;AAED,QAAO;EACL,UAAU,OAAO,OAAO,CAAC,GAAG,SAAS,CAAC;EACtC,MAAM,OAAO,OAAO,EAAE,GAAG,MAAM,CAAC;EAChC;EACD;EAEJ"}
@@ -1,12 +0,0 @@
1
- import { EventPayload } from "../../events/event-registry.mjs";
2
- import { Context, Effect } from "effect";
3
- import { EventType } from "@interfere/types/sdk/plugins/lib/types";
4
-
5
- //#region src/core/plugins/services/event-capture.d.ts
6
- interface EventCaptureService {
7
- readonly capture: <T extends EventType>(type: T, payload: EventPayload<T>) => Effect.Effect<void>;
8
- }
9
- declare const EventCapture_base: Context.TagClass<EventCapture, "@interfere/plugins/EventCapture", EventCaptureService>;
10
- declare class EventCapture extends EventCapture_base {}
11
- //#endregion
12
- export { EventCapture };
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-capture.d.mts","names":[],"sources":["../../../../src/core/plugins/services/event-capture.ts"],"mappings":";;;;;UAMU,mBAAA;EAAA,SACC,OAAA,aAAoB,SAAA,EAC3B,IAAA,EAAM,CAAA,EACN,OAAA,EAAS,YAAA,CAAa,CAAA,MACnB,MAAA,CAAO,MAAA;AAAA;AAAA,cAAM,iBAAA;cAGP,YAAA,SAAqB,iBAAA"}
@@ -1,11 +0,0 @@
1
- import { EventCapture } from "./event-capture.mjs";
2
- import { ConfigTag } from "../../../effect/tags.mjs";
3
- import { QueueServiceTag } from "../../../effect/layers/queue.layer.mjs";
4
- import { ContextServiceTag } from "../../../effect/layers/context.layer.mjs";
5
- import { SessionServiceTag } from "../../../effect/layers/session.layer.mjs";
6
- import { Layer } from "effect";
7
-
8
- //#region src/core/plugins/services/event-capture.layer.d.ts
9
- declare const EventCaptureLive: Layer.Layer<EventCapture, never, QueueServiceTag | ConfigTag | ContextServiceTag | SessionServiceTag>;
10
- //#endregion
11
- export { EventCaptureLive };
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-capture.layer.d.mts","names":[],"sources":["../../../../src/core/plugins/services/event-capture.layer.ts"],"mappings":";;;;;;;;cAmCa,gBAAA,EAAgB,KAAA,CAAA,KAAA,CAAA,YAAA,SAAA,eAAA,GAAA,SAAA,GAAA,iBAAA,GAAA,iBAAA"}
@@ -1,79 +0,0 @@
1
- import { EventCapture } from "./event-capture.mjs";
2
- import { ValidationError } from "../../../effect/errors.mjs";
3
- import { ContextServiceTag } from "../../../effect/layers/context.layer.mjs";
4
- import { ConfigTag } from "../../../effect/tags.mjs";
5
- import { QueueServiceTag } from "../../../effect/layers/queue.layer.mjs";
6
- import { SessionServiceTag } from "../../../effect/layers/session.layer.mjs";
7
- import { dynamicRegistry } from "../../events/event-registry.mjs";
8
- import { Effect, Layer } from "effect";
9
- import { v7 } from "uuid";
10
-
11
- //#region src/core/plugins/services/event-capture.layer.ts
12
- function enrichPayload(basePayload, properties) {
13
- if (typeof basePayload === "object" && basePayload !== null) {
14
- const merged = {
15
- ...basePayload.properties ?? {},
16
- ...properties
17
- };
18
- return {
19
- ...basePayload,
20
- properties: merged
21
- };
22
- }
23
- return { properties };
24
- }
25
- const EventCaptureLive = Layer.effect(EventCapture, Effect.gen(function* () {
26
- const queue = yield* QueueServiceTag;
27
- const context = yield* ContextServiceTag;
28
- const config = yield* ConfigTag;
29
- const session = yield* SessionServiceTag;
30
- const buildEnvelope = (type, payload) => Effect.gen(function* () {
31
- yield* session.ensureWindowId();
32
- yield* session.updateActivity();
33
- const sessionIdOpt = yield* session.getSessionId();
34
- const sessionId = sessionIdOpt._tag === "Some" ? sessionIdOpt.value : null;
35
- return {
36
- v: 0,
37
- ...config.metadata,
38
- clientTs: Date.now(),
39
- sessionId,
40
- uuid: v7(),
41
- type,
42
- payload
43
- };
44
- });
45
- const capture = (type, payload) => Effect.gen(function* () {
46
- const handler = dynamicRegistry.get(type);
47
- if (!handler) {
48
- const env = yield* buildEnvelope(type, payload);
49
- yield* queue.add(env);
50
- yield* Effect.logTrace("Captured event with no handler", {
51
- type,
52
- envelopeId: env.uuid,
53
- path: "fast"
54
- });
55
- return;
56
- }
57
- const validated = yield* Effect.sync(() => handler.schema.safeParse(payload)).pipe(Effect.flatMap((result) => result.success === true ? Effect.succeed(result.data) : Effect.fail(new ValidationError({
58
- message: "Invalid payload",
59
- payload,
60
- issues: result.error?.issues
61
- }))), Effect.withSpan("capture.validate", { attributes: { type } }));
62
- const transformed = "transform" in handler && typeof handler.transform === "function" ? handler.transform(validated) : validated;
63
- const env = yield* buildEnvelope(type, handler.enrich === true ? yield* context.getOnce().pipe(Effect.map((properties) => enrichPayload(transformed, properties)), Effect.withSpan("capture.enrich", { attributes: { type } })) : transformed);
64
- yield* queue.add(env);
65
- yield* Effect.logTrace("Captured event with handler", {
66
- type,
67
- envelopeId: env.uuid,
68
- path: "full"
69
- });
70
- }).pipe(Effect.withSpan("capture.full", { attributes: { type } }), Effect.catchTag("ValidationError", (err) => Effect.logError("Invalid event payload", {
71
- type,
72
- payload,
73
- issues: err.issues
74
- }).pipe(Effect.asVoid)), Effect.catchAllCause((cause) => Effect.logError("Event capture failed", cause).pipe(Effect.asVoid)));
75
- return EventCapture.of({ capture });
76
- }));
77
-
78
- //#endregion
79
- export { EventCaptureLive };
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-capture.layer.mjs","names":["uuidv7"],"sources":["../../../../src/core/plugins/services/event-capture.layer.ts"],"sourcesContent":["import type { Envelope } from \"@interfere/types/sdk/envelope\";\nimport type { EventType } from \"@interfere/types/sdk/plugins/lib/types\";\n\nimport { Effect, Layer } from \"effect\";\nimport { v7 as uuidv7 } from \"uuid\";\n\nimport { ValidationError } from \"../../../effect/errors.js\";\nimport { ContextServiceTag } from \"../../../effect/layers/context.layer.js\";\nimport { QueueServiceTag } from \"../../../effect/layers/queue.layer.js\";\nimport { SessionServiceTag } from \"../../../effect/layers/session.layer.js\";\nimport { ConfigTag } from \"../../../effect/tags.js\";\nimport {\n dynamicRegistry,\n type EventPayload,\n} from \"../../events/event-registry.js\";\nimport { EventCapture } from \"./event-capture.js\";\n\ntype EnrichedPayload<T> =\n T extends Record<string, unknown>\n ? T & { properties?: Record<string, unknown> }\n : { properties: Record<string, unknown> };\n\nfunction enrichPayload<T>(\n basePayload: T,\n properties: Record<string, unknown>\n): EnrichedPayload<T> {\n if (typeof basePayload === \"object\" && basePayload !== null) {\n const existing = (basePayload as EnrichedPayload<T>).properties;\n const merged = { ...(existing ?? {}), ...properties };\n return { ...basePayload, properties: merged } as EnrichedPayload<T>;\n }\n\n return { properties } as EnrichedPayload<T>;\n}\n\nexport const EventCaptureLive = Layer.effect(\n EventCapture,\n Effect.gen(function* () {\n const queue = yield* QueueServiceTag;\n const context = yield* ContextServiceTag;\n const config = yield* ConfigTag;\n const session = yield* SessionServiceTag;\n\n const buildEnvelope = <T extends EventType>(\n type: T,\n payload: EventPayload<T>\n ): Effect.Effect<Envelope> =>\n Effect.gen(function* () {\n yield* session.ensureWindowId();\n yield* session.updateActivity();\n\n const sessionIdOpt = yield* session.getSessionId();\n const sessionId =\n sessionIdOpt._tag === \"Some\" ? sessionIdOpt.value : null;\n\n return {\n v: 0 as const,\n ...config.metadata,\n clientTs: Date.now(),\n sessionId,\n uuid: uuidv7(),\n type,\n payload,\n } as Envelope;\n });\n\n const capture = <T extends EventType>(type: T, payload: EventPayload<T>) =>\n Effect.gen(function* () {\n const handler = dynamicRegistry.get(type);\n\n if (!handler) {\n const env = yield* buildEnvelope(type, payload);\n yield* queue.add(env);\n yield* Effect.logTrace(\"Captured event with no handler\", {\n type,\n envelopeId: env.uuid,\n path: \"fast\",\n });\n return;\n }\n\n const validated = yield* Effect.sync(() =>\n handler.schema.safeParse(payload)\n ).pipe(\n Effect.flatMap((result) =>\n result.success === true\n ? Effect.succeed((result as { data: unknown }).data)\n : Effect.fail(\n new ValidationError({\n message: \"Invalid payload\",\n payload,\n issues: (result as { error?: { issues?: unknown } }).error\n ?.issues,\n })\n )\n ),\n Effect.withSpan(\"capture.validate\", { attributes: { type } })\n );\n\n const transformed =\n \"transform\" in handler && typeof handler.transform === \"function\"\n ? (handler.transform as (input: unknown) => unknown)(validated)\n : validated;\n\n const finalPayload =\n handler.enrich === true\n ? yield* context.getOnce().pipe(\n Effect.map((properties) =>\n enrichPayload(transformed, properties)\n ),\n Effect.withSpan(\"capture.enrich\", { attributes: { type } })\n )\n : transformed;\n\n const env = yield* buildEnvelope(type, finalPayload as EventPayload<T>);\n yield* queue.add(env);\n\n yield* Effect.logTrace(\"Captured event with handler\", {\n type,\n envelopeId: env.uuid,\n path: \"full\",\n });\n }).pipe(\n Effect.withSpan(\"capture.full\", { attributes: { type } }),\n Effect.catchTag(\"ValidationError\", (err) =>\n Effect.logError(\"Invalid event payload\", {\n type,\n payload,\n issues: err.issues,\n }).pipe(Effect.asVoid)\n ),\n Effect.catchAllCause((cause) =>\n Effect.logError(\"Event capture failed\", cause).pipe(Effect.asVoid)\n )\n );\n\n return EventCapture.of({ capture });\n })\n);\n"],"mappings":";;;;;;;;;;;AAsBA,SAAS,cACP,aACA,YACoB;AACpB,KAAI,OAAO,gBAAgB,YAAY,gBAAgB,MAAM;EAE3D,MAAM,SAAS;GAAE,GADC,YAAmC,cACpB,EAAE;GAAG,GAAG;GAAY;AACrD,SAAO;GAAE,GAAG;GAAa,YAAY;GAAQ;;AAG/C,QAAO,EAAE,YAAY;;AAGvB,MAAa,mBAAmB,MAAM,OACpC,cACA,OAAO,IAAI,aAAa;CACtB,MAAM,QAAQ,OAAO;CACrB,MAAM,UAAU,OAAO;CACvB,MAAM,SAAS,OAAO;CACtB,MAAM,UAAU,OAAO;CAEvB,MAAM,iBACJ,MACA,YAEA,OAAO,IAAI,aAAa;AACtB,SAAO,QAAQ,gBAAgB;AAC/B,SAAO,QAAQ,gBAAgB;EAE/B,MAAM,eAAe,OAAO,QAAQ,cAAc;EAClD,MAAM,YACJ,aAAa,SAAS,SAAS,aAAa,QAAQ;AAEtD,SAAO;GACL,GAAG;GACH,GAAG,OAAO;GACV,UAAU,KAAK,KAAK;GACpB;GACA,MAAMA,IAAQ;GACd;GACA;GACD;GACD;CAEJ,MAAM,WAAgC,MAAS,YAC7C,OAAO,IAAI,aAAa;EACtB,MAAM,UAAU,gBAAgB,IAAI,KAAK;AAEzC,MAAI,CAAC,SAAS;GACZ,MAAM,MAAM,OAAO,cAAc,MAAM,QAAQ;AAC/C,UAAO,MAAM,IAAI,IAAI;AACrB,UAAO,OAAO,SAAS,kCAAkC;IACvD;IACA,YAAY,IAAI;IAChB,MAAM;IACP,CAAC;AACF;;EAGF,MAAM,YAAY,OAAO,OAAO,WAC9B,QAAQ,OAAO,UAAU,QAAQ,CAClC,CAAC,KACA,OAAO,SAAS,WACd,OAAO,YAAY,OACf,OAAO,QAAS,OAA6B,KAAK,GAClD,OAAO,KACL,IAAI,gBAAgB;GAClB,SAAS;GACT;GACA,QAAS,OAA4C,OACjD;GACL,CAAC,CACH,CACN,EACD,OAAO,SAAS,oBAAoB,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAC9D;EAED,MAAM,cACJ,eAAe,WAAW,OAAO,QAAQ,cAAc,aAClD,QAAQ,UAA0C,UAAU,GAC7D;EAYN,MAAM,MAAM,OAAO,cAAc,MAT/B,QAAQ,WAAW,OACf,OAAO,QAAQ,SAAS,CAAC,KACvB,OAAO,KAAK,eACV,cAAc,aAAa,WAAW,CACvC,EACD,OAAO,SAAS,kBAAkB,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAC5D,GACD,YAEiE;AACvE,SAAO,MAAM,IAAI,IAAI;AAErB,SAAO,OAAO,SAAS,+BAA+B;GACpD;GACA,YAAY,IAAI;GAChB,MAAM;GACP,CAAC;GACF,CAAC,KACD,OAAO,SAAS,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,EACzD,OAAO,SAAS,oBAAoB,QAClC,OAAO,SAAS,yBAAyB;EACvC;EACA;EACA,QAAQ,IAAI;EACb,CAAC,CAAC,KAAK,OAAO,OAAO,CACvB,EACD,OAAO,eAAe,UACpB,OAAO,SAAS,wBAAwB,MAAM,CAAC,KAAK,OAAO,OAAO,CACnE,CACF;AAEH,QAAO,aAAa,GAAG,EAAE,SAAS,CAAC;EACnC,CACH"}
@@ -1,7 +0,0 @@
1
- import { Context } from "effect";
2
-
3
- //#region src/core/plugins/services/event-capture.ts
4
- var EventCapture = class extends Context.Tag("@interfere/plugins/EventCapture")() {};
5
-
6
- //#endregion
7
- export { EventCapture };
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-capture.mjs","names":[],"sources":["../../../../src/core/plugins/services/event-capture.ts"],"sourcesContent":["import type { EventType } from \"@interfere/types/sdk/plugins/lib/types\";\n\nimport { Context, type Effect } from \"effect\";\n\nimport type { EventPayload } from \"../../events/event-registry.js\";\n\ninterface EventCaptureService {\n readonly capture: <T extends EventType>(\n type: T,\n payload: EventPayload<T>\n ) => Effect.Effect<void>;\n}\n\nexport class EventCapture extends Context.Tag(\n \"@interfere/plugins/EventCapture\"\n)<EventCapture, EventCaptureService>() {}\n"],"mappings":";;;AAaA,IAAa,eAAb,cAAkC,QAAQ,IACxC,kCACD,EAAqC,CAAC"}
@@ -1,17 +0,0 @@
1
- import { EventCapture } from "./event-capture.mjs";
2
- import { Effect, Layer, Ref } from "effect";
3
-
4
- //#region src/core/plugins/services/event-capture.test-layer.d.ts
5
- interface EventCaptureCaptured {
6
- readonly payload: unknown;
7
- readonly type: string;
8
- }
9
- interface EventCaptureTestState {
10
- readonly captured: readonly EventCaptureCaptured[];
11
- }
12
- declare const makeEventCaptureTestLayer: () => Effect.Effect<{
13
- stateRef: Ref.Ref<EventCaptureTestState>;
14
- layer: Layer.Layer<EventCapture, never, never>;
15
- }, never, never>;
16
- //#endregion
17
- export { EventCaptureCaptured, EventCaptureTestState, makeEventCaptureTestLayer };
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-capture.test-layer.d.mts","names":[],"sources":["../../../../src/core/plugins/services/event-capture.test-layer.ts"],"mappings":";;;;UAIiB,oBAAA;EAAA,SACN,OAAA;EAAA,SACA,IAAA;AAAA;AAAA,UAGM,qBAAA;EAAA,SACN,QAAA,WAAmB,oBAAA;AAAA;AAAA,cAOjB,yBAAA,QAAyB,MAAA,CAAA,MAAA"}
@@ -1,21 +0,0 @@
1
- import { EventCapture } from "./event-capture.mjs";
2
- import { Effect, Layer, Ref } from "effect";
3
-
4
- //#region src/core/plugins/services/event-capture.test-layer.ts
5
- const TestState = { make: () => Ref.make({ captured: [] }) };
6
- const makeEventCaptureTestLayer = Effect.fn("makeEventCaptureTestLayer")(function* () {
7
- const stateRef = yield* TestState.make();
8
- return {
9
- stateRef,
10
- layer: Layer.succeed(EventCapture, EventCapture.of({ capture: (type, payload) => Ref.update(stateRef, (s) => ({
11
- ...s,
12
- captured: [...s.captured, {
13
- type,
14
- payload
15
- }]
16
- })) }))
17
- };
18
- });
19
-
20
- //#endregion
21
- export { makeEventCaptureTestLayer };
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-capture.test-layer.mjs","names":[],"sources":["../../../../src/core/plugins/services/event-capture.test-layer.ts"],"sourcesContent":["import { Effect, Layer, Ref } from \"effect\";\n\nimport { EventCapture } from \"./event-capture.js\";\n\nexport interface EventCaptureCaptured {\n readonly payload: unknown;\n readonly type: string;\n}\n\nexport interface EventCaptureTestState {\n readonly captured: readonly EventCaptureCaptured[];\n}\n\nconst TestState = {\n make: () => Ref.make<EventCaptureTestState>({ captured: [] }),\n} as const;\n\nexport const makeEventCaptureTestLayer = Effect.fn(\"makeEventCaptureTestLayer\")(\n function* () {\n const stateRef = yield* TestState.make();\n\n const layer = Layer.succeed(\n EventCapture,\n EventCapture.of({\n capture: (type, payload) =>\n Ref.update(stateRef, (s) => ({\n ...s,\n captured: [...s.captured, { type, payload }],\n })),\n })\n );\n\n return { stateRef, layer };\n }\n);\n"],"mappings":";;;;AAaA,MAAM,YAAY,EAChB,YAAY,IAAI,KAA4B,EAAE,UAAU,EAAE,EAAE,CAAC,EAC9D;AAED,MAAa,4BAA4B,OAAO,GAAG,4BAA4B,CAC7E,aAAa;CACX,MAAM,WAAW,OAAO,UAAU,MAAM;AAaxC,QAAO;EAAE;EAAU,OAXL,MAAM,QAClB,cACA,aAAa,GAAG,EACd,UAAU,MAAM,YACd,IAAI,OAAO,WAAW,OAAO;GAC3B,GAAG;GACH,UAAU,CAAC,GAAG,EAAE,UAAU;IAAE;IAAM;IAAS,CAAC;GAC7C,EAAE,EACN,CAAC,CACH;EAEyB;EAE7B"}
@@ -1,11 +0,0 @@
1
- import { Context } from "effect";
2
- import { Config } from "@interfere/types/sdk/config";
3
-
4
- //#region src/core/plugins/services/plugin-config.d.ts
5
- interface PluginConfigService {
6
- readonly config: Config;
7
- }
8
- declare const PluginConfig_base: Context.TagClass<PluginConfig, "@interfere/plugins/PluginConfig", PluginConfigService>;
9
- declare class PluginConfig extends PluginConfig_base {}
10
- //#endregion
11
- export { PluginConfig };
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-config.d.mts","names":[],"sources":["../../../../src/core/plugins/services/plugin-config.ts"],"mappings":";;;;UAIU,mBAAA;EAAA,SACC,MAAA,EAAQ,MAAA;AAAA;AAAA,cAAM,iBAAA;cAGZ,YAAA,SAAqB,iBAAA"}
@@ -1,7 +0,0 @@
1
- import { Context } from "effect";
2
-
3
- //#region src/core/plugins/services/plugin-config.ts
4
- var PluginConfig = class extends Context.Tag("@interfere/plugins/PluginConfig")() {};
5
-
6
- //#endregion
7
- export { PluginConfig };
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-config.mjs","names":[],"sources":["../../../../src/core/plugins/services/plugin-config.ts"],"sourcesContent":["import type { Config } from \"@interfere/types/sdk/config\";\n\nimport { Context } from \"effect\";\n\ninterface PluginConfigService {\n readonly config: Config;\n}\n\nexport class PluginConfig extends Context.Tag(\n \"@interfere/plugins/PluginConfig\"\n)<PluginConfig, PluginConfigService>() {}\n"],"mappings":";;;AAQA,IAAa,eAAb,cAAkC,QAAQ,IACxC,kCACD,EAAqC,CAAC"}
@@ -1,60 +0,0 @@
1
- import { PluginConfig } from "./plugin-config.mjs";
2
- import { Effect, Layer } from "effect";
3
-
4
- //#region src/core/plugins/services/plugin-config.test-layer.d.ts
5
- declare const makePluginConfigTestLayer: (config: ({
6
- features: {
7
- errors?: boolean | undefined;
8
- replay?: boolean | undefined;
9
- rageClick?: boolean | undefined;
10
- aiSummary?: boolean | undefined;
11
- pageEvents?: boolean | undefined;
12
- serverTracing?: boolean | undefined;
13
- };
14
- metadata: {
15
- buildId: string | null;
16
- releaseId: string | null;
17
- environment: "development" | "preview" | "production" | null;
18
- runtime: "edge" | "browser" | "node" | null;
19
- };
20
- batch: {
21
- size: number;
22
- ms: number;
23
- };
24
- offline: {
25
- enabled: boolean;
26
- maxQueueSize: number;
27
- };
28
- } & {
29
- proxyUrl: string;
30
- }) | ({
31
- features: {
32
- errors?: boolean | undefined;
33
- replay?: boolean | undefined;
34
- rageClick?: boolean | undefined;
35
- aiSummary?: boolean | undefined;
36
- pageEvents?: boolean | undefined;
37
- serverTracing?: boolean | undefined;
38
- };
39
- metadata: {
40
- buildId: string | null;
41
- releaseId: string | null;
42
- environment: "development" | "preview" | "production" | null;
43
- runtime: "edge" | "browser" | "node" | null;
44
- };
45
- batch: {
46
- size: number;
47
- ms: number;
48
- };
49
- offline: {
50
- enabled: boolean;
51
- maxQueueSize: number;
52
- };
53
- } & {
54
- ingestUrl: string;
55
- surfaceToken: string;
56
- })) => Effect.Effect<{
57
- layer: Layer.Layer<PluginConfig, never, never>;
58
- }, never, never>;
59
- //#endregion
60
- export { makePluginConfigTestLayer };
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-config.test-layer.d.mts","names":[],"sources":["../../../../src/core/plugins/services/plugin-config.test-layer.ts"],"mappings":";;;;cAMa,yBAAA,GAAyB,MAAA"}
@@ -1,8 +0,0 @@
1
- import { PluginConfig } from "./plugin-config.mjs";
2
- import { Effect, Layer } from "effect";
3
-
4
- //#region src/core/plugins/services/plugin-config.test-layer.ts
5
- const makePluginConfigTestLayer = Effect.fn("makePluginConfigTestLayer")((config) => Effect.succeed({ layer: Layer.succeed(PluginConfig, PluginConfig.of({ config })) }));
6
-
7
- //#endregion
8
- export { makePluginConfigTestLayer };
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-config.test-layer.mjs","names":[],"sources":["../../../../src/core/plugins/services/plugin-config.test-layer.ts"],"sourcesContent":["import type { Config } from \"@interfere/types/sdk/config\";\n\nimport { Effect, Layer } from \"effect\";\n\nimport { PluginConfig } from \"./plugin-config.js\";\n\nexport const makePluginConfigTestLayer = Effect.fn(\"makePluginConfigTestLayer\")(\n (config: Config) =>\n Effect.succeed({\n layer: Layer.succeed(PluginConfig, PluginConfig.of({ config })),\n })\n);\n"],"mappings":";;;;AAMA,MAAa,4BAA4B,OAAO,GAAG,4BAA4B,EAC5E,WACC,OAAO,QAAQ,EACb,OAAO,MAAM,QAAQ,cAAc,aAAa,GAAG,EAAE,QAAQ,CAAC,CAAC,EAChE,CAAC,CACL"}
@@ -1,14 +0,0 @@
1
- import { Context, Effect } from "effect";
2
-
3
- //#region src/core/plugins/services/plugin-logger.d.ts
4
- interface PluginLoggerService {
5
- readonly debug: (message: string) => Effect.Effect<void>;
6
- readonly error: (message: string) => Effect.Effect<void>;
7
- readonly info: (message: string) => Effect.Effect<void>;
8
- readonly trace: (message: string) => Effect.Effect<void>;
9
- readonly warn: (message: string) => Effect.Effect<void>;
10
- }
11
- declare const PluginLogger_base: Context.TagClass<PluginLogger, "@interfere/plugins/PluginLogger", PluginLoggerService>;
12
- declare class PluginLogger extends PluginLogger_base {}
13
- //#endregion
14
- export { PluginLogger };
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-logger.d.mts","names":[],"sources":["../../../../src/core/plugins/services/plugin-logger.ts"],"mappings":";;;UAEU,mBAAA;EAAA,SACC,KAAA,GAAQ,OAAA,aAAoB,MAAA,CAAO,MAAA;EAAA,SACnC,KAAA,GAAQ,OAAA,aAAoB,MAAA,CAAO,MAAA;EAAA,SACnC,IAAA,GAAO,OAAA,aAAoB,MAAA,CAAO,MAAA;EAAA,SAClC,KAAA,GAAQ,OAAA,aAAoB,MAAA,CAAO,MAAA;EAAA,SACnC,IAAA,GAAO,OAAA,aAAoB,MAAA,CAAO,MAAA;AAAA;AAAA,cAAM,iBAAA;cAGtC,YAAA,SAAqB,iBAAA"}
@@ -1,7 +0,0 @@
1
- import { Context } from "effect";
2
-
3
- //#region src/core/plugins/services/plugin-logger.ts
4
- var PluginLogger = class extends Context.Tag("@interfere/plugins/PluginLogger")() {};
5
-
6
- //#endregion
7
- export { PluginLogger };
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-logger.mjs","names":[],"sources":["../../../../src/core/plugins/services/plugin-logger.ts"],"sourcesContent":["import { Context, type Effect } from \"effect\";\n\ninterface PluginLoggerService {\n readonly debug: (message: string) => Effect.Effect<void>;\n readonly error: (message: string) => Effect.Effect<void>;\n readonly info: (message: string) => Effect.Effect<void>;\n readonly trace: (message: string) => Effect.Effect<void>;\n readonly warn: (message: string) => Effect.Effect<void>;\n}\n\nexport class PluginLogger extends Context.Tag(\n \"@interfere/plugins/PluginLogger\"\n)<PluginLogger, PluginLoggerService>() {}\n"],"mappings":";;;AAUA,IAAa,eAAb,cAAkC,QAAQ,IACxC,kCACD,EAAqC,CAAC"}
@@ -1,18 +0,0 @@
1
- import { PluginLogger } from "./plugin-logger.mjs";
2
- import { Effect, Layer, Ref } from "effect";
3
-
4
- //#region src/core/plugins/services/plugin-logger.test-layer.d.ts
5
- type Level = "trace" | "debug" | "info" | "warn" | "error";
6
- interface PluginLoggerLogEntry {
7
- readonly level: Level;
8
- readonly message: string;
9
- }
10
- interface PluginLoggerTestState {
11
- readonly logs: readonly PluginLoggerLogEntry[];
12
- }
13
- declare const makePluginLoggerTestLayer: () => Effect.Effect<{
14
- stateRef: Ref.Ref<PluginLoggerTestState>;
15
- layer: Layer.Layer<PluginLogger, never, never>;
16
- }, never, never>;
17
- //#endregion
18
- export { PluginLoggerLogEntry, PluginLoggerTestState, makePluginLoggerTestLayer };
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-logger.test-layer.d.mts","names":[],"sources":["../../../../src/core/plugins/services/plugin-logger.test-layer.ts"],"mappings":";;;;KAIK,KAAA;AAAA,UAEY,oBAAA;EAAA,SACN,KAAA,EAAO,KAAA;EAAA,SACP,OAAA;AAAA;AAAA,UAGM,qBAAA;EAAA,SACN,IAAA,WAAe,oBAAA;AAAA;AAAA,cAOb,yBAAA,QAAyB,MAAA,CAAA,MAAA"}
@@ -1,28 +0,0 @@
1
- import { PluginLogger } from "./plugin-logger.mjs";
2
- import { Effect, Layer, Ref } from "effect";
3
-
4
- //#region src/core/plugins/services/plugin-logger.test-layer.ts
5
- const TestState = { make: () => Ref.make({ logs: [] }) };
6
- const makePluginLoggerTestLayer = Effect.fn("makePluginLoggerTestLayer")(function* () {
7
- const stateRef = yield* TestState.make();
8
- const push = (level) => (message) => Ref.update(stateRef, (s) => ({
9
- ...s,
10
- logs: [...s.logs, {
11
- level,
12
- message
13
- }]
14
- }));
15
- return {
16
- stateRef,
17
- layer: Layer.succeed(PluginLogger, PluginLogger.of({
18
- trace: (message) => push("trace")(message),
19
- debug: (message) => push("debug")(message),
20
- info: (message) => push("info")(message),
21
- warn: (message) => push("warn")(message),
22
- error: (message) => push("error")(message)
23
- }))
24
- };
25
- });
26
-
27
- //#endregion
28
- export { makePluginLoggerTestLayer };
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-logger.test-layer.mjs","names":[],"sources":["../../../../src/core/plugins/services/plugin-logger.test-layer.ts"],"sourcesContent":["import { Effect, Layer, Ref } from \"effect\";\n\nimport { PluginLogger } from \"./plugin-logger.js\";\n\ntype Level = \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\";\n\nexport interface PluginLoggerLogEntry {\n readonly level: Level;\n readonly message: string;\n}\n\nexport interface PluginLoggerTestState {\n readonly logs: readonly PluginLoggerLogEntry[];\n}\n\nconst TestState = {\n make: () => Ref.make<PluginLoggerTestState>({ logs: [] }),\n} as const;\n\nexport const makePluginLoggerTestLayer = Effect.fn(\"makePluginLoggerTestLayer\")(\n function* () {\n const stateRef = yield* TestState.make();\n\n const push = (level: Level) => (message: string) =>\n Ref.update(stateRef, (s) => ({\n ...s,\n logs: [...s.logs, { level, message }],\n }));\n\n const layer = Layer.succeed(\n PluginLogger,\n PluginLogger.of({\n trace: (message) => push(\"trace\")(message),\n debug: (message) => push(\"debug\")(message),\n info: (message) => push(\"info\")(message),\n warn: (message) => push(\"warn\")(message),\n error: (message) => push(\"error\")(message),\n })\n );\n\n return { stateRef, layer };\n }\n);\n"],"mappings":";;;;AAeA,MAAM,YAAY,EAChB,YAAY,IAAI,KAA4B,EAAE,MAAM,EAAE,EAAE,CAAC,EAC1D;AAED,MAAa,4BAA4B,OAAO,GAAG,4BAA4B,CAC7E,aAAa;CACX,MAAM,WAAW,OAAO,UAAU,MAAM;CAExC,MAAM,QAAQ,WAAkB,YAC9B,IAAI,OAAO,WAAW,OAAO;EAC3B,GAAG;EACH,MAAM,CAAC,GAAG,EAAE,MAAM;GAAE;GAAO;GAAS,CAAC;EACtC,EAAE;AAaL,QAAO;EAAE;EAAU,OAXL,MAAM,QAClB,cACA,aAAa,GAAG;GACd,QAAQ,YAAY,KAAK,QAAQ,CAAC,QAAQ;GAC1C,QAAQ,YAAY,KAAK,QAAQ,CAAC,QAAQ;GAC1C,OAAO,YAAY,KAAK,OAAO,CAAC,QAAQ;GACxC,OAAO,YAAY,KAAK,OAAO,CAAC,QAAQ;GACxC,QAAQ,YAAY,KAAK,QAAQ,CAAC,QAAQ;GAC3C,CAAC,CACH;EAEyB;EAE7B"}
@@ -1,10 +0,0 @@
1
- import { Context, Effect } from "effect";
2
-
3
- //#region src/core/plugins/services/plugin-runtime.d.ts
4
- interface PluginRuntimeService {
5
- readonly fork: <A, E, R>(eff: Effect.Effect<A, E, R>) => void;
6
- }
7
- declare const PluginRuntime_base: Context.TagClass<PluginRuntime, "@interfere/plugins/PluginRuntime", PluginRuntimeService>;
8
- declare class PluginRuntime extends PluginRuntime_base {}
9
- //#endregion
10
- export { PluginRuntime };
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-runtime.d.mts","names":[],"sources":["../../../../src/core/plugins/services/plugin-runtime.ts"],"mappings":";;;UAEU,oBAAA;EAAA,SACC,IAAA,YAAgB,GAAA,EAAK,MAAA,CAAO,MAAA,CAAO,CAAA,EAAG,CAAA,EAAG,CAAA;AAAA;AAAA,cAAE,kBAAA;cAGzC,aAAA,SAAsB,kBAAA"}
@@ -1,7 +0,0 @@
1
- import { Context } from "effect";
2
-
3
- //#region src/core/plugins/services/plugin-runtime.ts
4
- var PluginRuntime = class extends Context.Tag("@interfere/plugins/PluginRuntime")() {};
5
-
6
- //#endregion
7
- export { PluginRuntime };
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-runtime.mjs","names":[],"sources":["../../../../src/core/plugins/services/plugin-runtime.ts"],"sourcesContent":["import { Context, type Effect } from \"effect\";\n\ninterface PluginRuntimeService {\n readonly fork: <A, E, R>(eff: Effect.Effect<A, E, R>) => void;\n}\n\nexport class PluginRuntime extends Context.Tag(\n \"@interfere/plugins/PluginRuntime\"\n)<PluginRuntime, PluginRuntimeService>() {}\n"],"mappings":";;;AAMA,IAAa,gBAAb,cAAmC,QAAQ,IACzC,mCACD,EAAuC,CAAC"}
@@ -1,16 +0,0 @@
1
- import { PluginRuntime } from "./plugin-runtime.mjs";
2
- import { Effect, Layer, Ref } from "effect";
3
-
4
- //#region src/core/plugins/services/plugin-runtime.test-layer.d.ts
5
- interface TestState {
6
- readonly forked: number;
7
- }
8
- declare const TestState: {
9
- readonly make: () => Effect.Effect<Ref.Ref<TestState>, never, never>;
10
- };
11
- declare const makePluginRuntimeTestLayer: () => Effect.Effect<{
12
- stateRef: Ref.Ref<TestState>;
13
- layer: Layer.Layer<PluginRuntime, never, never>;
14
- }, never, never>;
15
- //#endregion
16
- export { makePluginRuntimeTestLayer };
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-runtime.test-layer.d.mts","names":[],"sources":["../../../../src/core/plugins/services/plugin-runtime.test-layer.ts"],"mappings":";;;;UAIU,SAAA;EAAA,SACC,MAAA;AAAA;AAAA,cAGL,SAAA;EAAA;;cAIO,0BAAA,QAA0B,MAAA,CAAA,MAAA"}
@@ -1,21 +0,0 @@
1
- import { PluginRuntime } from "./plugin-runtime.mjs";
2
- import { Effect, Layer, Ref, Runtime } from "effect";
3
-
4
- //#region src/core/plugins/services/plugin-runtime.test-layer.ts
5
- const TestState = { make: () => Ref.make({ forked: 0 }) };
6
- const makePluginRuntimeTestLayer = Effect.fn("makePluginRuntimeTestLayer")(function* () {
7
- const runtime = yield* Effect.runtime();
8
- const stateRef = yield* TestState.make();
9
- return {
10
- stateRef,
11
- layer: Layer.succeed(PluginRuntime, PluginRuntime.of({ fork: (_eff) => {
12
- Runtime.runSync(runtime)(Ref.update(stateRef, (s) => ({
13
- ...s,
14
- forked: s.forked + 1
15
- })));
16
- } }))
17
- };
18
- });
19
-
20
- //#endregion
21
- export { makePluginRuntimeTestLayer };
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-runtime.test-layer.mjs","names":[],"sources":["../../../../src/core/plugins/services/plugin-runtime.test-layer.ts"],"sourcesContent":["import { Effect, Layer, Ref, Runtime } from \"effect\";\n\nimport { PluginRuntime } from \"./plugin-runtime.js\";\n\ninterface TestState {\n readonly forked: number;\n}\n\nconst TestState = {\n make: () => Ref.make<TestState>({ forked: 0 }),\n} as const;\n\nexport const makePluginRuntimeTestLayer = Effect.fn(\n \"makePluginRuntimeTestLayer\"\n)(function* () {\n const runtime = yield* Effect.runtime();\n const stateRef = yield* TestState.make();\n\n const layer = Layer.succeed(\n PluginRuntime,\n PluginRuntime.of({\n fork: (_eff) => {\n Runtime.runSync(runtime)(\n Ref.update(stateRef, (s) => ({ ...s, forked: s.forked + 1 }))\n );\n },\n })\n );\n\n return { stateRef, layer };\n});\n"],"mappings":";;;;AAQA,MAAM,YAAY,EAChB,YAAY,IAAI,KAAgB,EAAE,QAAQ,GAAG,CAAC,EAC/C;AAED,MAAa,6BAA6B,OAAO,GAC/C,6BACD,CAAC,aAAa;CACb,MAAM,UAAU,OAAO,OAAO,SAAS;CACvC,MAAM,WAAW,OAAO,UAAU,MAAM;AAaxC,QAAO;EAAE;EAAU,OAXL,MAAM,QAClB,eACA,cAAc,GAAG,EACf,OAAO,SAAS;AACd,WAAQ,QAAQ,QAAQ,CACtB,IAAI,OAAO,WAAW,OAAO;IAAE,GAAG;IAAG,QAAQ,EAAE,SAAS;IAAG,EAAE,CAC9D;KAEJ,CAAC,CACH;EAEyB;EAC1B"}
@@ -1,11 +0,0 @@
1
- import { Context, Effect } from "effect";
2
-
3
- //#region src/core/plugins/services/session-info.d.ts
4
- interface SessionInfoService {
5
- readonly getSessionId: Effect.Effect<string | null>;
6
- readonly getSessionIdSync: () => string | null;
7
- }
8
- declare const SessionInfo_base: Context.TagClass<SessionInfo, "@interfere/plugins/SessionInfo", SessionInfoService>;
9
- declare class SessionInfo extends SessionInfo_base {}
10
- //#endregion
11
- export { SessionInfo };
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-info.d.mts","names":[],"sources":["../../../../src/core/plugins/services/session-info.ts"],"mappings":";;;UAEU,kBAAA;EAAA,SACC,YAAA,EAAc,MAAA,CAAO,MAAA;EAAA,SACrB,gBAAA;AAAA;AAAA,cAAgB,gBAAA;cAGd,WAAA,SAAoB,gBAAA"}
@@ -1,7 +0,0 @@
1
- import { Context } from "effect";
2
-
3
- //#region src/core/plugins/services/session-info.ts
4
- var SessionInfo = class extends Context.Tag("@interfere/plugins/SessionInfo")() {};
5
-
6
- //#endregion
7
- export { SessionInfo };
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-info.mjs","names":[],"sources":["../../../../src/core/plugins/services/session-info.ts"],"sourcesContent":["import { Context, type Effect } from \"effect\";\n\ninterface SessionInfoService {\n readonly getSessionId: Effect.Effect<string | null>;\n readonly getSessionIdSync: () => string | null;\n}\n\nexport class SessionInfo extends Context.Tag(\"@interfere/plugins/SessionInfo\")<\n SessionInfo,\n SessionInfoService\n>() {}\n"],"mappings":";;;AAOA,IAAa,cAAb,cAAiC,QAAQ,IAAI,iCAAiC,EAG3E,CAAC"}
@@ -1,18 +0,0 @@
1
- import { SessionInfo } from "./session-info.mjs";
2
- import { Effect, Layer, Ref } from "effect";
3
-
4
- //#region src/core/plugins/services/session-info.test-layer.d.ts
5
- interface TestState {
6
- readonly sessionId: string | null;
7
- }
8
- declare const TestState: {
9
- readonly make: () => Effect.Effect<Ref.Ref<TestState>, never, never>;
10
- };
11
- declare const makeSessionInfoTestLayer: (initial?: {
12
- readonly sessionId?: string | null;
13
- } | undefined) => Effect.Effect<{
14
- stateRef: Ref.Ref<TestState>;
15
- layer: Layer.Layer<SessionInfo, never, never>;
16
- }, never, never>;
17
- //#endregion
18
- export { makeSessionInfoTestLayer };