@syntrologie/runtime-sdk 0.2.21 → 1.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 (324) hide show
  1. package/CAPABILITIES.md +944 -440
  2. package/README.md +395 -66
  3. package/dist/RuntimeProvider.d.ts +51 -0
  4. package/dist/RuntimeProvider.js +113 -0
  5. package/dist/RuntimeProvider.js.map +1 -0
  6. package/dist/SmartCanvasApp.d.ts +16 -10
  7. package/dist/SmartCanvasApp.js +47 -51
  8. package/dist/SmartCanvasApp.js.map +1 -1
  9. package/dist/SmartCanvasElement.d.ts +5 -5
  10. package/dist/SmartCanvasElement.js +24 -14
  11. package/dist/SmartCanvasElement.js.map +1 -1
  12. package/dist/SmartCanvasPortal.d.ts +2 -2
  13. package/dist/SmartCanvasPortal.js +2 -2
  14. package/dist/SmartCanvasPortal.js.map +1 -1
  15. package/dist/actions/ActionEngine.d.ts +11 -0
  16. package/dist/actions/ActionEngine.js +272 -0
  17. package/dist/actions/ActionEngine.js.map +1 -0
  18. package/dist/actions/executors/index.d.ts +116 -0
  19. package/dist/actions/executors/index.js +240 -0
  20. package/dist/actions/executors/index.js.map +1 -0
  21. package/dist/actions/executors/tour.d.ts +18 -0
  22. package/dist/actions/executors/tour.js +332 -0
  23. package/dist/actions/executors/tour.js.map +1 -0
  24. package/dist/actions/index.d.ts +10 -0
  25. package/dist/actions/index.js +12 -0
  26. package/dist/actions/index.js.map +1 -0
  27. package/dist/actions/types.d.ts +399 -0
  28. package/dist/actions/types.js +8 -0
  29. package/dist/actions/types.js.map +1 -0
  30. package/dist/actions/validation.d.ts +14 -0
  31. package/dist/actions/validation.js +577 -0
  32. package/dist/actions/validation.js.map +1 -0
  33. package/dist/adaptives/adaptive-chatbot/index.js +9 -0
  34. package/dist/adaptives/adaptive-chatbot/index.js.map +7 -0
  35. package/dist/adaptives/adaptive-content/index.js +2 -0
  36. package/dist/adaptives/adaptive-content/index.js.map +7 -0
  37. package/dist/adaptives/adaptive-faq/index.js +11 -0
  38. package/dist/adaptives/adaptive-faq/index.js.map +7 -0
  39. package/dist/adaptives/adaptive-gamification/index.js +2 -0
  40. package/dist/adaptives/adaptive-gamification/index.js.map +7 -0
  41. package/dist/adaptives/adaptive-nav/index.js +11 -0
  42. package/dist/adaptives/adaptive-nav/index.js.map +7 -0
  43. package/dist/adaptives/adaptive-overlays/index.js +91 -0
  44. package/dist/adaptives/adaptive-overlays/index.js.map +7 -0
  45. package/dist/antiFlicker.js +1 -1
  46. package/dist/api.d.ts +40 -26
  47. package/dist/api.js +87 -60
  48. package/dist/api.js.map +1 -1
  49. package/dist/apps/AppContext.d.ts +31 -0
  50. package/dist/apps/AppContext.js +91 -0
  51. package/dist/apps/AppContext.js.map +1 -0
  52. package/dist/apps/AppLoader.d.ts +85 -0
  53. package/dist/apps/AppLoader.js +282 -0
  54. package/dist/apps/AppLoader.js.map +1 -0
  55. package/dist/apps/AppRegistry.d.ts +102 -0
  56. package/dist/apps/AppRegistry.js +317 -0
  57. package/dist/apps/AppRegistry.js.map +1 -0
  58. package/dist/apps/examples/gamification-app.example.d.ts +305 -0
  59. package/dist/apps/examples/gamification-app.example.js +329 -0
  60. package/dist/apps/examples/gamification-app.example.js.map +1 -0
  61. package/dist/apps/index.d.ts +14 -0
  62. package/dist/apps/index.js +16 -0
  63. package/dist/apps/index.js.map +1 -0
  64. package/dist/apps/types.d.ts +231 -0
  65. package/dist/apps/types.js +8 -0
  66. package/dist/apps/types.js.map +1 -0
  67. package/dist/blocks/data/ComparisonBlock.d.ts +1 -1
  68. package/dist/blocks/data/ComparisonBlock.js +40 -40
  69. package/dist/blocks/data/ComparisonBlock.js.map +1 -1
  70. package/dist/blocks/data/StatsBlock.d.ts +1 -1
  71. package/dist/blocks/data/StatsBlock.js +42 -44
  72. package/dist/blocks/data/StatsBlock.js.map +1 -1
  73. package/dist/blocks/data/index.d.ts +2 -2
  74. package/dist/blocks/data/index.js +2 -2
  75. package/dist/blocks/index.d.ts +5 -5
  76. package/dist/blocks/index.js +29 -30
  77. package/dist/blocks/index.js.map +1 -1
  78. package/dist/blocks/interactive/ChecklistBlock.d.ts +1 -1
  79. package/dist/blocks/interactive/ChecklistBlock.js +60 -60
  80. package/dist/blocks/interactive/ChecklistBlock.js.map +1 -1
  81. package/dist/blocks/interactive/RatingBlock.d.ts +1 -1
  82. package/dist/blocks/interactive/RatingBlock.js +73 -65
  83. package/dist/blocks/interactive/RatingBlock.js.map +1 -1
  84. package/dist/blocks/interactive/index.d.ts +2 -2
  85. package/dist/blocks/interactive/index.js +2 -2
  86. package/dist/blocks/notification/NotificationBlock.d.ts +2 -2
  87. package/dist/blocks/notification/NotificationBlock.js +68 -64
  88. package/dist/blocks/notification/NotificationBlock.js.map +1 -1
  89. package/dist/blocks/notification/index.d.ts +1 -1
  90. package/dist/blocks/notification/index.js +1 -1
  91. package/dist/bootstrap.d.ts +32 -8
  92. package/dist/bootstrap.js +218 -102
  93. package/dist/bootstrap.js.map +1 -1
  94. package/dist/components/ShadowCanvasOverlay.d.ts +6 -6
  95. package/dist/components/ShadowCanvasOverlay.js +156 -118
  96. package/dist/components/ShadowCanvasOverlay.js.map +1 -1
  97. package/dist/components/TileCard.d.ts +5 -5
  98. package/dist/components/TileCard.js +205 -154
  99. package/dist/components/TileCard.js.map +1 -1
  100. package/dist/components/TileWheel.d.ts +3 -3
  101. package/dist/components/TileWheel.js +29 -7
  102. package/dist/components/TileWheel.js.map +1 -1
  103. package/dist/config-validator.d.ts +49 -0
  104. package/dist/config-validator.js +173 -0
  105. package/dist/config-validator.js.map +1 -0
  106. package/dist/configFetcher.d.ts +7 -3
  107. package/dist/configFetcher.js +70 -29
  108. package/dist/configFetcher.js.map +1 -1
  109. package/dist/context/ContextManager.d.ts +3 -3
  110. package/dist/context/ContextManager.js +19 -18
  111. package/dist/context/ContextManager.js.map +1 -1
  112. package/dist/context/index.d.ts +4 -4
  113. package/dist/context/index.js +3 -3
  114. package/dist/context/schema.d.ts +9 -9
  115. package/dist/context/schema.js +2 -2
  116. package/dist/context/schema.js.map +1 -1
  117. package/dist/decisions/engine.d.ts +5 -5
  118. package/dist/decisions/engine.js +13 -13
  119. package/dist/decisions/engine.js.map +1 -1
  120. package/dist/decisions/index.d.ts +6 -6
  121. package/dist/decisions/index.js +5 -5
  122. package/dist/decisions/schema.d.ts +131 -131
  123. package/dist/decisions/schema.js +21 -21
  124. package/dist/decisions/schema.js.map +1 -1
  125. package/dist/decisions/strategies/rules.d.ts +1 -1
  126. package/dist/decisions/strategies/rules.js +24 -24
  127. package/dist/decisions/strategies/rules.js.map +1 -1
  128. package/dist/decisions/strategies/score.d.ts +1 -1
  129. package/dist/decisions/strategies/score.js +3 -3
  130. package/dist/decisions/types.d.ts +19 -19
  131. package/dist/earlyPatcher.d.ts +8 -20
  132. package/dist/earlyPatcher.js +13 -62
  133. package/dist/earlyPatcher.js.map +1 -1
  134. package/dist/editorLoader.d.ts +19 -7
  135. package/dist/editorLoader.js +154 -97
  136. package/dist/editorLoader.js.map +1 -1
  137. package/dist/events/EventBus.d.ts +3 -3
  138. package/dist/events/EventBus.js +5 -7
  139. package/dist/events/EventBus.js.map +1 -1
  140. package/dist/events/index.d.ts +6 -6
  141. package/dist/events/index.js +5 -5
  142. package/dist/events/normalizers/canvas.d.ts +2 -2
  143. package/dist/events/normalizers/canvas.js +3 -3
  144. package/dist/events/normalizers/canvas.js.map +1 -1
  145. package/dist/events/normalizers/posthog.d.ts +25 -1
  146. package/dist/events/normalizers/posthog.js +35 -27
  147. package/dist/events/normalizers/posthog.js.map +1 -1
  148. package/dist/events/schema.d.ts +13 -13
  149. package/dist/events/schema.js +3 -3
  150. package/dist/events/schema.js.map +1 -1
  151. package/dist/events/types.d.ts +7 -1
  152. package/dist/events/types.js +29 -21
  153. package/dist/events/types.js.map +1 -1
  154. package/dist/experiments/adapters/growthbook.d.ts +5 -4
  155. package/dist/experiments/adapters/growthbook.js +14 -6
  156. package/dist/experiments/adapters/growthbook.js.map +1 -1
  157. package/dist/experiments/index.d.ts +3 -3
  158. package/dist/experiments/index.js +1 -1
  159. package/dist/experiments/registry.d.ts +2 -2
  160. package/dist/experiments/registry.js +2 -2
  161. package/dist/experiments/types.d.ts +10 -1
  162. package/dist/fetchers/cdnFetcher.d.ts +1 -1
  163. package/dist/fetchers/cdnFetcher.js +4 -8
  164. package/dist/fetchers/cdnFetcher.js.map +1 -1
  165. package/dist/fetchers/experimentsFetcher.d.ts +25 -3
  166. package/dist/fetchers/experimentsFetcher.js +55 -8
  167. package/dist/fetchers/experimentsFetcher.js.map +1 -1
  168. package/dist/fetchers/index.d.ts +3 -3
  169. package/dist/fetchers/index.js +2 -2
  170. package/dist/fetchers/index.js.map +1 -1
  171. package/dist/fetchers/mergeConfigs.d.ts +29 -0
  172. package/dist/fetchers/mergeConfigs.js +38 -0
  173. package/dist/fetchers/mergeConfigs.js.map +1 -0
  174. package/dist/fetchers/registry.d.ts +1 -1
  175. package/dist/fetchers/registry.js +4 -4
  176. package/dist/fetchers/types.d.ts +1 -1
  177. package/dist/hooks/useCanvasOverlays.d.ts +8 -5
  178. package/dist/hooks/useCanvasOverlays.js +66 -17
  179. package/dist/hooks/useCanvasOverlays.js.map +1 -1
  180. package/dist/hooks/useHostPatches.d.ts +2 -2
  181. package/dist/hooks/useHostPatches.js +8 -8
  182. package/dist/hooks/useHostPatches.js.map +1 -1
  183. package/dist/hooks/useShadowCanvasConfig.d.ts +5 -9
  184. package/dist/hooks/useShadowCanvasConfig.js +7 -5
  185. package/dist/hooks/useShadowCanvasConfig.js.map +1 -1
  186. package/dist/hostPatcher/core/patcher.d.ts +1 -1
  187. package/dist/hostPatcher/core/patcher.js +18 -9
  188. package/dist/hostPatcher/core/patcher.js.map +1 -1
  189. package/dist/hostPatcher/core/sanitizer.js +24 -3
  190. package/dist/hostPatcher/core/sanitizer.js.map +1 -1
  191. package/dist/hostPatcher/policy/defaultPolicy.js +15 -5
  192. package/dist/hostPatcher/policy/defaultPolicy.js.map +1 -1
  193. package/dist/hostPatcher/utils/anchors.js +4 -6
  194. package/dist/hostPatcher/utils/anchors.js.map +1 -1
  195. package/dist/index.d.ts +34 -27
  196. package/dist/index.js +51 -24
  197. package/dist/index.js.map +1 -1
  198. package/dist/logger.d.ts +29 -0
  199. package/dist/logger.js +81 -0
  200. package/dist/logger.js.map +1 -0
  201. package/dist/metrics/index.d.ts +1 -1
  202. package/dist/metrics/index.js +1 -1
  203. package/dist/metrics/sessionMetrics.d.ts +1 -1
  204. package/dist/metrics/sessionMetrics.js +6 -6
  205. package/dist/overlays/fetcher.d.ts +2 -2
  206. package/dist/overlays/fetcher.js +13 -15
  207. package/dist/overlays/fetcher.js.map +1 -1
  208. package/dist/overlays/recipeRegistry.js +2 -2
  209. package/dist/overlays/recipeRegistry.js.map +1 -1
  210. package/dist/overlays/runtime/anchor/resolve.js +1 -1
  211. package/dist/overlays/runtime/anchor/resolve.js.map +1 -1
  212. package/dist/overlays/runtime/index.d.ts +7 -7
  213. package/dist/overlays/runtime/index.js +7 -7
  214. package/dist/overlays/runtime/overlay/highlight.js +39 -39
  215. package/dist/overlays/runtime/overlay/highlight.js.map +1 -1
  216. package/dist/overlays/runtime/overlay/modal.js +5 -5
  217. package/dist/overlays/runtime/overlay/modal.js.map +1 -1
  218. package/dist/overlays/runtime/overlay/root.js +1 -1
  219. package/dist/overlays/runtime/overlay/runner.js +88 -28
  220. package/dist/overlays/runtime/overlay/runner.js.map +1 -1
  221. package/dist/overlays/runtime/overlay/tooltip.d.ts +1 -1
  222. package/dist/overlays/runtime/overlay/tooltip.js +13 -15
  223. package/dist/overlays/runtime/overlay/tooltip.js.map +1 -1
  224. package/dist/overlays/runtime/utils/dom.js +4 -1
  225. package/dist/overlays/runtime/utils/dom.js.map +1 -1
  226. package/dist/overlays/schema.d.ts +146 -146
  227. package/dist/overlays/schema.js +12 -8
  228. package/dist/overlays/schema.js.map +1 -1
  229. package/dist/react.d.ts +7 -7
  230. package/dist/react.js +4 -4
  231. package/dist/react.js.map +1 -1
  232. package/dist/render/RenderContext.d.ts +2 -2
  233. package/dist/render/RenderContext.js +5 -5
  234. package/dist/render/RenderContext.js.map +1 -1
  235. package/dist/render/index.d.ts +3 -3
  236. package/dist/render/index.js +1 -1
  237. package/dist/render/types.d.ts +4 -4
  238. package/dist/runtime.d.ts +32 -8
  239. package/dist/runtime.js +109 -13
  240. package/dist/runtime.js.map +1 -1
  241. package/dist/smart-canvas.esm.js +144 -55
  242. package/dist/smart-canvas.esm.js.map +4 -4
  243. package/dist/smart-canvas.js +14688 -11455
  244. package/dist/smart-canvas.js.map +4 -4
  245. package/dist/smart-canvas.min.js +145 -55
  246. package/dist/smart-canvas.min.js.map +4 -4
  247. package/dist/state/StateStore.d.ts +1 -7
  248. package/dist/state/StateStore.js +15 -9
  249. package/dist/state/StateStore.js.map +1 -1
  250. package/dist/state/helpers/cooldowns.d.ts +1 -1
  251. package/dist/state/helpers/cooldowns.js +1 -1
  252. package/dist/state/helpers/dismissals.d.ts +1 -1
  253. package/dist/state/helpers/dismissals.js +1 -1
  254. package/dist/state/helpers/frequency.d.ts +1 -1
  255. package/dist/state/helpers/frequency.js +1 -1
  256. package/dist/state/index.d.ts +4 -4
  257. package/dist/state/index.js +3 -3
  258. package/dist/state/schema.d.ts +1 -1
  259. package/dist/state/schema.js +1 -1
  260. package/dist/store/example.d.ts +1 -0
  261. package/dist/store/example.js +43 -0
  262. package/dist/store/example.js.map +1 -0
  263. package/dist/store/mini-effector.d.ts +46 -0
  264. package/dist/store/mini-effector.js +88 -0
  265. package/dist/store/mini-effector.js.map +1 -0
  266. package/dist/surfaces/Surfaces.d.ts +11 -0
  267. package/dist/surfaces/Surfaces.js +361 -0
  268. package/dist/surfaces/Surfaces.js.map +1 -0
  269. package/dist/surfaces/index.d.ts +9 -0
  270. package/dist/surfaces/index.js +12 -0
  271. package/dist/surfaces/index.js.map +1 -0
  272. package/dist/surfaces/positioning.d.ts +50 -0
  273. package/dist/surfaces/positioning.js +228 -0
  274. package/dist/surfaces/positioning.js.map +1 -0
  275. package/dist/surfaces/types.d.ts +167 -0
  276. package/dist/surfaces/types.js +23 -0
  277. package/dist/surfaces/types.js.map +1 -0
  278. package/dist/telemetry/adapters/noop.d.ts +12 -0
  279. package/dist/telemetry/adapters/noop.js +42 -0
  280. package/dist/telemetry/adapters/noop.js.map +1 -0
  281. package/dist/telemetry/adapters/posthog.d.ts +8 -2
  282. package/dist/telemetry/adapters/posthog.js +36 -14
  283. package/dist/telemetry/adapters/posthog.js.map +1 -1
  284. package/dist/telemetry/index.d.ts +4 -3
  285. package/dist/telemetry/index.js +3 -2
  286. package/dist/telemetry/index.js.map +1 -1
  287. package/dist/telemetry/registry.d.ts +2 -9
  288. package/dist/telemetry/registry.js +4 -2
  289. package/dist/telemetry/registry.js.map +1 -1
  290. package/dist/telemetry/types.d.ts +1 -1
  291. package/dist/theme/ThemeProvider.d.ts +2 -2
  292. package/dist/theme/ThemeProvider.js +21 -21
  293. package/dist/theme/ThemeProvider.js.map +1 -1
  294. package/dist/theme/defaultTheme.d.ts +4 -5
  295. package/dist/theme/defaultTheme.js +127 -118
  296. package/dist/theme/defaultTheme.js.map +1 -1
  297. package/dist/theme/extractHostTheme.d.ts +1 -1
  298. package/dist/theme/extractHostTheme.js +43 -45
  299. package/dist/theme/extractHostTheme.js.map +1 -1
  300. package/dist/theme/index.d.ts +5 -5
  301. package/dist/theme/index.js +3 -3
  302. package/dist/theme/index.js.map +1 -1
  303. package/dist/theme/types.d.ts +2 -2
  304. package/dist/token.d.ts +2 -0
  305. package/dist/token.js +3 -6
  306. package/dist/token.js.map +1 -1
  307. package/dist/types-only.d.ts +32 -0
  308. package/dist/types-only.js +11 -0
  309. package/dist/types-only.js.map +1 -0
  310. package/dist/types.d.ts +89 -56
  311. package/dist/types.js +14 -2
  312. package/dist/types.js.map +1 -1
  313. package/dist/version.d.ts +13 -0
  314. package/dist/version.js +14 -0
  315. package/dist/version.js.map +1 -0
  316. package/dist/widgets/WidgetRegistry.d.ts +145 -0
  317. package/dist/widgets/WidgetRegistry.js +191 -0
  318. package/dist/widgets/WidgetRegistry.js.map +1 -0
  319. package/dist/widgets/index.d.ts +7 -0
  320. package/dist/widgets/index.js +7 -0
  321. package/dist/widgets/index.js.map +1 -0
  322. package/package.json +35 -15
  323. package/schema/canvas-config.schema.json +488 -254
  324. package/schema/runtime-context.schema.json +1 -5
@@ -1,63 +1,63 @@
1
1
  /**
2
2
  * Zod schemas for decision strategy validation.
3
3
  */
4
- import { z } from "zod";
4
+ import { z } from 'zod';
5
5
  // =============================================================================
6
6
  // CONDITION SCHEMAS
7
7
  // =============================================================================
8
8
  export const PageUrlConditionZ = z.object({
9
- type: z.literal("page_url"),
9
+ type: z.literal('page_url'),
10
10
  url: z.string(),
11
11
  });
12
12
  export const RouteConditionZ = z.object({
13
- type: z.literal("route"),
13
+ type: z.literal('route'),
14
14
  routeId: z.string(),
15
15
  });
16
16
  export const AnchorVisibleConditionZ = z.object({
17
- type: z.literal("anchor_visible"),
17
+ type: z.literal('anchor_visible'),
18
18
  anchorId: z.string(),
19
- state: z.enum(["visible", "present", "absent"]),
19
+ state: z.enum(['visible', 'present', 'absent']),
20
20
  });
21
21
  export const EventOccurredConditionZ = z.object({
22
- type: z.literal("event_occurred"),
22
+ type: z.literal('event_occurred'),
23
23
  eventName: z.string(),
24
24
  withinMs: z.number().optional(),
25
25
  });
26
26
  export const StateEqualsConditionZ = z.object({
27
- type: z.literal("state_equals"),
27
+ type: z.literal('state_equals'),
28
28
  key: z.string(),
29
29
  value: z.unknown(),
30
30
  });
31
31
  export const ViewportConditionZ = z.object({
32
- type: z.literal("viewport"),
32
+ type: z.literal('viewport'),
33
33
  minWidth: z.number().optional(),
34
34
  maxWidth: z.number().optional(),
35
35
  minHeight: z.number().optional(),
36
36
  maxHeight: z.number().optional(),
37
37
  });
38
38
  export const SessionMetricConditionZ = z.object({
39
- type: z.literal("session_metric"),
39
+ type: z.literal('session_metric'),
40
40
  key: z.string(),
41
- operator: z.enum(["gte", "lte", "eq", "gt", "lt"]),
41
+ operator: z.enum(['gte', 'lte', 'eq', 'gt', 'lt']),
42
42
  threshold: z.number(),
43
43
  });
44
44
  export const DismissedConditionZ = z.object({
45
- type: z.literal("dismissed"),
45
+ type: z.literal('dismissed'),
46
46
  key: z.string(),
47
47
  inverted: z.boolean().optional(),
48
48
  });
49
49
  export const CooldownActiveConditionZ = z.object({
50
- type: z.literal("cooldown_active"),
50
+ type: z.literal('cooldown_active'),
51
51
  key: z.string(),
52
52
  inverted: z.boolean().optional(),
53
53
  });
54
54
  export const FrequencyLimitConditionZ = z.object({
55
- type: z.literal("frequency_limit"),
55
+ type: z.literal('frequency_limit'),
56
56
  key: z.string(),
57
57
  limit: z.number(),
58
58
  inverted: z.boolean().optional(),
59
59
  });
60
- export const ConditionZ = z.discriminatedUnion("type", [
60
+ export const ConditionZ = z.discriminatedUnion('type', [
61
61
  PageUrlConditionZ,
62
62
  RouteConditionZ,
63
63
  AnchorVisibleConditionZ,
@@ -77,32 +77,32 @@ export const RuleZ = z.object({
77
77
  value: z.unknown(),
78
78
  });
79
79
  export const RuleStrategyZ = z.object({
80
- type: z.literal("rules"),
80
+ type: z.literal('rules'),
81
81
  rules: z.array(RuleZ),
82
82
  default: z.unknown(),
83
83
  });
84
84
  export const ScoreStrategyZ = z.object({
85
- type: z.literal("score"),
85
+ type: z.literal('score'),
86
86
  field: z.string(),
87
87
  threshold: z.number(),
88
88
  above: z.unknown(),
89
89
  below: z.unknown(),
90
90
  });
91
91
  export const ModelStrategyZ = z.object({
92
- type: z.literal("model"),
92
+ type: z.literal('model'),
93
93
  modelId: z.string(),
94
94
  inputs: z.array(z.string()),
95
- outputMapping: z.record(z.unknown()),
95
+ outputMapping: z.record(z.string(), z.unknown()),
96
96
  default: z.unknown(),
97
97
  });
98
98
  export const ExternalStrategyZ = z.object({
99
- type: z.literal("external"),
99
+ type: z.literal('external'),
100
100
  endpoint: z.string(),
101
- method: z.enum(["GET", "POST"]).optional(),
101
+ method: z.enum(['GET', 'POST']).optional(),
102
102
  default: z.unknown(),
103
103
  timeoutMs: z.number().optional(),
104
104
  });
105
- export const DecisionStrategyZ = z.discriminatedUnion("type", [
105
+ export const DecisionStrategyZ = z.discriminatedUnion('type', [
106
106
  RuleStrategyZ,
107
107
  ScoreStrategyZ,
108
108
  ModelStrategyZ,
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/decisions/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/decisions/schema.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Evaluates rules in order and returns the value of the first matching rule.
5
5
  */
6
- import type { RuleStrategy, Rule, Condition, DecisionResult, EvaluationContext } from "../types";
6
+ import type { RuleStrategy, Rule, Condition, DecisionResult, EvaluationContext } from '../types';
7
7
  /**
8
8
  * Evaluate a single condition against the evaluation context.
9
9
  */
@@ -5,40 +5,40 @@ export function evaluateCondition(condition, evalContext) {
5
5
  var _a, _b, _c, _d, _e;
6
6
  const { context, state, events } = evalContext;
7
7
  switch (condition.type) {
8
- case "page_url": {
8
+ case 'page_url': {
9
9
  const { url } = condition;
10
10
  const currentUrl = context.page.url;
11
11
  // Simple pattern matching with wildcards
12
12
  const pattern = url
13
- .replace(/[.+^${}()|[\]\\]/g, "\\$&") // Escape regex chars except * and ?
14
- .replace(/\*\*/g, ".*") // ** matches anything
15
- .replace(/\*/g, "[^/]*"); // * matches within path segment
13
+ .replace(/[.+^${}()|[\]\\]/g, '\\$&') // Escape regex chars except * and ?
14
+ .replace(/\*\*/g, '.*') // ** matches anything
15
+ .replace(/\*/g, '[^/]*'); // * matches within path segment
16
16
  const regex = new RegExp(`^${pattern}$`);
17
17
  return regex.test(currentUrl);
18
18
  }
19
- case "route": {
19
+ case 'route': {
20
20
  return context.page.routeId === condition.routeId;
21
21
  }
22
- case "anchor_visible": {
22
+ case 'anchor_visible': {
23
23
  const anchor = (_a = context.anchors) === null || _a === void 0 ? void 0 : _a.find((a) => a.anchorId === condition.anchorId);
24
24
  switch (condition.state) {
25
- case "visible":
25
+ case 'visible':
26
26
  return (anchor === null || anchor === void 0 ? void 0 : anchor.visible) === true;
27
- case "present":
27
+ case 'present':
28
28
  return (anchor === null || anchor === void 0 ? void 0 : anchor.present) === true;
29
- case "absent":
29
+ case 'absent':
30
30
  return !(anchor === null || anchor === void 0 ? void 0 : anchor.present);
31
31
  default:
32
32
  return false;
33
33
  }
34
34
  }
35
- case "event_occurred": {
35
+ case 'event_occurred': {
36
36
  if (!events)
37
37
  return false;
38
38
  const withinMs = (_b = condition.withinMs) !== null && _b !== void 0 ? _b : 60000; // Default 1 minute
39
39
  return events.hasRecentEvent(condition.eventName, withinMs);
40
40
  }
41
- case "state_equals": {
41
+ case 'state_equals': {
42
42
  // This checks arbitrary state values - implementation depends on
43
43
  // how the state store exposes values. For now, check session storage.
44
44
  if (!state)
@@ -47,7 +47,7 @@ export function evaluateCondition(condition, evalContext) {
47
47
  // For simplicity, we'll do a basic comparison
48
48
  return false; // TODO: Implement when state interface is clearer
49
49
  }
50
- case "viewport": {
50
+ case 'viewport': {
51
51
  const { width, height } = context.viewport;
52
52
  if (condition.minWidth !== undefined && width < condition.minWidth)
53
53
  return false;
@@ -59,39 +59,39 @@ export function evaluateCondition(condition, evalContext) {
59
59
  return false;
60
60
  return true;
61
61
  }
62
- case "session_metric": {
62
+ case 'session_metric': {
63
63
  if (!state)
64
64
  return false;
65
65
  const metricValue = state.getSessionMetric(condition.key);
66
66
  const { operator, threshold } = condition;
67
67
  switch (operator) {
68
- case "gte":
68
+ case 'gte':
69
69
  return metricValue >= threshold;
70
- case "lte":
70
+ case 'lte':
71
71
  return metricValue <= threshold;
72
- case "eq":
72
+ case 'eq':
73
73
  return metricValue === threshold;
74
- case "gt":
74
+ case 'gt':
75
75
  return metricValue > threshold;
76
- case "lt":
76
+ case 'lt':
77
77
  return metricValue < threshold;
78
78
  default:
79
79
  return false;
80
80
  }
81
81
  }
82
- case "dismissed": {
82
+ case 'dismissed': {
83
83
  if (!state)
84
84
  return (_c = condition.inverted) !== null && _c !== void 0 ? _c : false;
85
85
  const isDismissed = state.isDismissed(condition.key);
86
86
  return condition.inverted ? !isDismissed : isDismissed;
87
87
  }
88
- case "cooldown_active": {
88
+ case 'cooldown_active': {
89
89
  if (!state)
90
90
  return (_d = condition.inverted) !== null && _d !== void 0 ? _d : false;
91
91
  const isActive = state.isCooldownActive(condition.key);
92
92
  return condition.inverted ? !isActive : isActive;
93
93
  }
94
- case "frequency_limit": {
94
+ case 'frequency_limit': {
95
95
  if (!state)
96
96
  return (_e = condition.inverted) !== null && _e !== void 0 ? _e : false;
97
97
  const count = state.getFrequencyCount(condition.key);
@@ -100,7 +100,7 @@ export function evaluateCondition(condition, evalContext) {
100
100
  }
101
101
  default:
102
102
  // Unknown condition type - fail closed (return false)
103
- console.warn("[RuleStrategy] Unknown condition type:", condition.type);
103
+ console.warn('[RuleStrategy] Unknown condition type:', condition.type);
104
104
  return false;
105
105
  }
106
106
  }
@@ -133,7 +133,7 @@ export function evaluateRuleStrategy(strategy, evalContext) {
133
133
  value: rule.value,
134
134
  isFallback: false,
135
135
  matchInfo: {
136
- strategyType: "rules",
136
+ strategyType: 'rules',
137
137
  matchedRuleIndex: i,
138
138
  evaluatedConditions: conditionResults,
139
139
  },
@@ -145,7 +145,7 @@ export function evaluateRuleStrategy(strategy, evalContext) {
145
145
  value: strategy.default,
146
146
  isFallback: true,
147
147
  matchInfo: {
148
- strategyType: "rules",
148
+ strategyType: 'rules',
149
149
  },
150
150
  };
151
151
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/decisions/strategies/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/decisions/strategies/rules.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Compares an augmented field value against a threshold.
5
5
  */
6
- import type { ScoreStrategy, DecisionResult, EvaluationContext } from "../types";
6
+ import type { ScoreStrategy, DecisionResult, EvaluationContext } from '../types';
7
7
  /**
8
8
  * Evaluate a ScoreStrategy and return the result.
9
9
  */
@@ -7,12 +7,12 @@ export function evaluateScoreStrategy(strategy, evalContext) {
7
7
  // Get the score from augmented context
8
8
  const score = (_a = context.augmented) === null || _a === void 0 ? void 0 : _a[strategy.field];
9
9
  // If no score available, return below value as fallback
10
- if (score === undefined || typeof score !== "number") {
10
+ if (score === undefined || typeof score !== 'number') {
11
11
  return {
12
12
  value: strategy.below,
13
13
  isFallback: true,
14
14
  matchInfo: {
15
- strategyType: "score",
15
+ strategyType: 'score',
16
16
  },
17
17
  };
18
18
  }
@@ -22,7 +22,7 @@ export function evaluateScoreStrategy(strategy, evalContext) {
22
22
  value: isAbove ? strategy.above : strategy.below,
23
23
  isFallback: false,
24
24
  matchInfo: {
25
- strategyType: "score",
25
+ strategyType: 'score',
26
26
  },
27
27
  };
28
28
  }
@@ -5,12 +5,12 @@
5
5
  * and adaptive behavior in the v2 runtime. It replaces the experiment-based
6
6
  * filtering with a more flexible, context-aware system.
7
7
  */
8
- import type { RuntimeContext } from "../context/types";
8
+ import type { RuntimeContext } from '../context/types';
9
9
  /**
10
10
  * Condition that checks if the current page URL matches a pattern.
11
11
  */
12
12
  export interface PageUrlCondition {
13
- type: "page_url";
13
+ type: 'page_url';
14
14
  /** URL pattern (supports wildcards: * and **) */
15
15
  url: string;
16
16
  }
@@ -18,7 +18,7 @@ export interface PageUrlCondition {
18
18
  * Condition that checks if the current route matches.
19
19
  */
20
20
  export interface RouteCondition {
21
- type: "route";
21
+ type: 'route';
22
22
  /** Route ID from RoutesConfig */
23
23
  routeId: string;
24
24
  }
@@ -26,17 +26,17 @@ export interface RouteCondition {
26
26
  * Condition that checks anchor element visibility.
27
27
  */
28
28
  export interface AnchorVisibleCondition {
29
- type: "anchor_visible";
29
+ type: 'anchor_visible';
30
30
  /** Anchor element ID */
31
31
  anchorId: string;
32
32
  /** Required state */
33
- state: "visible" | "present" | "absent";
33
+ state: 'visible' | 'present' | 'absent';
34
34
  }
35
35
  /**
36
36
  * Condition that checks if an event occurred recently.
37
37
  */
38
38
  export interface EventOccurredCondition {
39
- type: "event_occurred";
39
+ type: 'event_occurred';
40
40
  /** Event name to check */
41
41
  eventName: string;
42
42
  /** Time window in milliseconds (optional) */
@@ -46,7 +46,7 @@ export interface EventOccurredCondition {
46
46
  * Condition that checks a state value.
47
47
  */
48
48
  export interface StateEqualsCondition {
49
- type: "state_equals";
49
+ type: 'state_equals';
50
50
  /** State key to check */
51
51
  key: string;
52
52
  /** Expected value */
@@ -56,7 +56,7 @@ export interface StateEqualsCondition {
56
56
  * Condition that checks viewport size.
57
57
  */
58
58
  export interface ViewportCondition {
59
- type: "viewport";
59
+ type: 'viewport';
60
60
  /** Minimum viewport width */
61
61
  minWidth?: number;
62
62
  /** Maximum viewport width */
@@ -70,11 +70,11 @@ export interface ViewportCondition {
70
70
  * Condition that checks a session metric threshold.
71
71
  */
72
72
  export interface SessionMetricCondition {
73
- type: "session_metric";
73
+ type: 'session_metric';
74
74
  /** Metric key */
75
75
  key: string;
76
76
  /** Comparison operator */
77
- operator: "gte" | "lte" | "eq" | "gt" | "lt";
77
+ operator: 'gte' | 'lte' | 'eq' | 'gt' | 'lt';
78
78
  /** Threshold value */
79
79
  threshold: number;
80
80
  }
@@ -82,7 +82,7 @@ export interface SessionMetricCondition {
82
82
  * Condition that checks if an item has been dismissed.
83
83
  */
84
84
  export interface DismissedCondition {
85
- type: "dismissed";
85
+ type: 'dismissed';
86
86
  /** Item key to check */
87
87
  key: string;
88
88
  /** Invert the condition (true if NOT dismissed) */
@@ -92,7 +92,7 @@ export interface DismissedCondition {
92
92
  * Condition that checks if a cooldown is active.
93
93
  */
94
94
  export interface CooldownActiveCondition {
95
- type: "cooldown_active";
95
+ type: 'cooldown_active';
96
96
  /** Cooldown key to check */
97
97
  key: string;
98
98
  /** Invert the condition (true if NOT active) */
@@ -102,7 +102,7 @@ export interface CooldownActiveCondition {
102
102
  * Condition that checks frequency limits.
103
103
  */
104
104
  export interface FrequencyLimitCondition {
105
- type: "frequency_limit";
105
+ type: 'frequency_limit';
106
106
  /** Frequency key to check */
107
107
  key: string;
108
108
  /** Maximum allowed count */
@@ -127,7 +127,7 @@ export interface Rule<T = unknown> {
127
127
  * Rule-based strategy: evaluates rules in order, returns first match.
128
128
  */
129
129
  export interface RuleStrategy<T = unknown> {
130
- type: "rules";
130
+ type: 'rules';
131
131
  /** Rules to evaluate in order */
132
132
  rules: Rule<T>[];
133
133
  /** Default value if no rules match */
@@ -137,7 +137,7 @@ export interface RuleStrategy<T = unknown> {
137
137
  * Score-based strategy: compares an augmented field against a threshold.
138
138
  */
139
139
  export interface ScoreStrategy<T = unknown> {
140
- type: "score";
140
+ type: 'score';
141
141
  /** Field name in augmented context */
142
142
  field: string;
143
143
  /** Threshold value */
@@ -152,7 +152,7 @@ export interface ScoreStrategy<T = unknown> {
152
152
  * (Phase 3 - placeholder)
153
153
  */
154
154
  export interface ModelStrategy<T = unknown> {
155
- type: "model";
155
+ type: 'model';
156
156
  /** Model endpoint or ID */
157
157
  modelId: string;
158
158
  /** Input fields from context */
@@ -167,11 +167,11 @@ export interface ModelStrategy<T = unknown> {
167
167
  * (Phase 3 - placeholder)
168
168
  */
169
169
  export interface ExternalStrategy<T = unknown> {
170
- type: "external";
170
+ type: 'external';
171
171
  /** Endpoint URL */
172
172
  endpoint: string;
173
173
  /** HTTP method */
174
- method?: "GET" | "POST";
174
+ method?: 'GET' | 'POST';
175
175
  /** Default value if endpoint fails */
176
176
  default: T;
177
177
  /** Timeout in milliseconds */
@@ -192,7 +192,7 @@ export interface DecisionResult<T = unknown> {
192
192
  /** Debug info about which rule/condition matched */
193
193
  matchInfo?: {
194
194
  /** Strategy type that produced the result */
195
- strategyType: DecisionStrategy<T>["type"];
195
+ strategyType: DecisionStrategy<T>['type'];
196
196
  /** Index of matched rule (for rule strategy) */
197
197
  matchedRuleIndex?: number;
198
198
  /** Conditions that were evaluated */
@@ -1,23 +1,11 @@
1
1
  /**
2
- * Early patch application - runs before React to prevent flashing
3
- */
4
- import type { Patch } from './hostPatcher/core/types';
5
- interface EarlyPatchConfig {
6
- patches?: Patch[];
7
- antiFlicker?: boolean;
8
- onComplete?: () => void;
9
- }
10
- /**
11
- * Revert all currently active patches
2
+ * Early Patcher - DEPRECATED
3
+ *
4
+ * This module is kept for backward compatibility but all functionality
5
+ * has moved to ActionEngine. Actions are now applied through the runtime.
6
+ *
7
+ * @deprecated Use ActionEngine through SmartCanvasRuntime instead.
12
8
  */
13
9
  export declare function revertAllPatches(): void;
14
- /**
15
- * Apply patches immediately (synchronously) to prevent content flash
16
- * This runs before React components are mounted
17
- */
18
- export declare function applyPatchesEarly(config: EarlyPatchConfig): void;
19
- /**
20
- * Extract patches from SDK config
21
- */
22
- export declare function extractPatchesFromConfig(config: any): Patch[];
23
- export {};
10
+ export declare function applyPatchesEarly(): void;
11
+ export declare function extractPatchesFromConfig(): [];
@@ -1,69 +1,20 @@
1
1
  /**
2
- * Early patch application - runs before React to prevent flashing
3
- */
4
- import { applyPatch, revertPatch } from './hostPatcher/core/patcher';
5
- import { defaultPolicy } from './hostPatcher/policy/defaultPolicy';
6
- // Track active patches so we can revert them
7
- let activePatchIds = new Set();
8
- /**
9
- * Revert all currently active patches
2
+ * Early Patcher - DEPRECATED
3
+ *
4
+ * This module is kept for backward compatibility but all functionality
5
+ * has moved to ActionEngine. Actions are now applied through the runtime.
6
+ *
7
+ * @deprecated Use ActionEngine through SmartCanvasRuntime instead.
10
8
  */
9
+ // Re-export empty functions for any code still importing from here
11
10
  export function revertAllPatches() {
12
- activePatchIds.forEach(id => {
13
- try {
14
- revertPatch(id);
15
- }
16
- catch (e) {
17
- console.warn(`[SmartCanvas] Failed to revert patch ${id}`, e);
18
- }
19
- });
20
- activePatchIds.clear();
21
- console.log('[SmartCanvas] Reverted all patches');
11
+ console.warn('[SmartCanvas] revertAllPatches is deprecated. Use ActionEngine instead.');
22
12
  }
23
- /**
24
- * Apply patches immediately (synchronously) to prevent content flash
25
- * This runs before React components are mounted
26
- */
27
- export function applyPatchesEarly(config) {
28
- const { patches = [], onComplete } = config;
29
- // Apply each patch synchronously
30
- let appliedCount = 0;
31
- patches.forEach(patch => {
32
- try {
33
- const result = applyPatch(patch, {
34
- policy: defaultPolicy,
35
- shadowHost: null // No shadow DOM yet, apply to main document
36
- });
37
- if (result.ok) {
38
- appliedCount++;
39
- activePatchIds.add(patch.id);
40
- console.log(`[SmartCanvas] Early patch applied: ${patch.id}`);
41
- }
42
- else {
43
- console.warn(`[SmartCanvas] Early patch failed: ${patch.id}`, result.reason);
44
- }
45
- }
46
- catch (error) {
47
- console.error(`[SmartCanvas] Error applying early patch: ${patch.id}`, error);
48
- }
49
- });
50
- console.log(`[SmartCanvas] Applied ${appliedCount}/${patches.length} patches early`);
51
- // Callback when done
52
- if (onComplete) {
53
- onComplete();
54
- }
13
+ export function applyPatchesEarly() {
14
+ console.warn('[SmartCanvas] applyPatchesEarly is deprecated. Use ActionEngine instead.');
55
15
  }
56
- /**
57
- * Extract patches from SDK config
58
- */
59
- export function extractPatchesFromConfig(config) {
60
- if (!config || !config.patches)
61
- return [];
62
- return config.patches.map((patch, index) => ({
63
- id: patch.id || `patch_${index}`,
64
- anchor: patch.anchor,
65
- operations: patch.operations || [],
66
- invariants: patch.invariants
67
- }));
16
+ export function extractPatchesFromConfig() {
17
+ console.warn('[SmartCanvas] extractPatchesFromConfig is deprecated. Config now uses actions[].');
18
+ return [];
68
19
  }
69
20
  //# sourceMappingURL=earlyPatcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"earlyPatcher.js","sourceRoot":"","sources":["../src/earlyPatcher.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAQnE,6CAA6C;AAC7C,IAAI,cAAc,GAAgB,IAAI,GAAG,EAAE,CAAC;AAE5C;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QAC1B,IAAI,CAAC;YACH,WAAW,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,wCAAwC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,CAAC,CAAC;IACH,cAAc,CAAC,KAAK,EAAE,CAAC;IACvB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAwB;IACxD,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAE5C,iCAAiC;IACjC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE;gBAC/B,MAAM,EAAE,aAAa;gBACrB,UAAU,EAAE,IAAI,CAAC,4CAA4C;aAC9D,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,YAAY,EAAE,CAAC;gBACf,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,sCAAsC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,qCAAqC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6CAA6C,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAChF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,yBAAyB,YAAY,IAAI,OAAO,CAAC,MAAM,gBAAgB,CAAC,CAAC;IAErF,qBAAqB;IACrB,IAAI,UAAU,EAAE,CAAC;QACf,UAAU,EAAE,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAW;IAClD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAE1C,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC;QACxD,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,SAAS,KAAK,EAAE;QAChC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;QAClC,UAAU,EAAE,KAAK,CAAC,UAAU;KAC7B,CAAC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"earlyPatcher.js","sourceRoot":"","sources":["../src/earlyPatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,mEAAmE;AACnE,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;IACjG,OAAO,EAAE,CAAC;AACZ,CAAC"}