@syntrologie/runtime-sdk 2.1.0 → 2.2.0-canary.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 (356) hide show
  1. package/CAPABILITIES.md +50 -43
  2. package/README.md +7 -7
  3. package/dist/RuntimeProvider.d.ts +1 -1
  4. package/dist/ShadowRootContext.d.ts +19 -0
  5. package/dist/SmartCanvasApp.d.ts +3 -3
  6. package/dist/SmartCanvasElement.d.ts +7 -2
  7. package/dist/SmartCanvasPortal.d.ts +1 -1
  8. package/dist/actions/executors/index.d.ts +3 -3
  9. package/dist/actions/executors/tour.d.ts +1 -1
  10. package/dist/actions/index.d.ts +4 -3
  11. package/dist/actions/schema.d.ts +1229 -0
  12. package/dist/actions/schema.js +67 -0
  13. package/dist/actions/schema.js.map +7 -0
  14. package/dist/adaptives/adaptive-chatbot/index.js +4 -4
  15. package/dist/adaptives/adaptive-chatbot/index.js.map +4 -4
  16. package/dist/adaptives/adaptive-content/index.js +2 -2
  17. package/dist/adaptives/adaptive-content/index.js.map +4 -4
  18. package/dist/adaptives/adaptive-faq/index.js +23 -6
  19. package/dist/adaptives/adaptive-faq/index.js.map +4 -4
  20. package/dist/adaptives/adaptive-gamification/index.js.map +1 -1
  21. package/dist/adaptives/adaptive-nav/index.js +22 -7
  22. package/dist/adaptives/adaptive-nav/index.js.map +4 -4
  23. package/dist/adaptives/adaptive-overlays/index.js +13 -13
  24. package/dist/adaptives/adaptive-overlays/index.js.map +4 -4
  25. package/dist/api.d.ts +2 -2
  26. package/dist/apps/examples/gamification-app.example.d.ts +4 -4
  27. package/dist/apps/index.d.ts +7 -7
  28. package/dist/blocks/data/index.d.ts +1 -1
  29. package/dist/blocks/index.d.ts +2 -2
  30. package/dist/blocks/interactive/index.d.ts +1 -1
  31. package/dist/blocks/notification/NotificationBlock.d.ts +1 -1
  32. package/dist/blocks/notification/index.d.ts +1 -1
  33. package/dist/bootstrap.d.ts +4 -4
  34. package/dist/chunk-AYTRRBR5.js +251 -0
  35. package/dist/chunk-AYTRRBR5.js.map +7 -0
  36. package/dist/chunk-HJKAXD5S.js +7921 -0
  37. package/dist/chunk-HJKAXD5S.js.map +7 -0
  38. package/dist/components/ShadowCanvasOverlay.d.ts +2 -2
  39. package/dist/components/TileCard.d.ts +1 -1
  40. package/dist/context/ContextManager.d.ts +1 -1
  41. package/dist/context/index.d.ts +3 -3
  42. package/dist/decisions/engine.d.ts +1 -1
  43. package/dist/decisions/index.d.ts +3 -3
  44. package/dist/decisions/schema.d.ts +24 -24
  45. package/dist/decisions/strategies/rules.d.ts +1 -1
  46. package/dist/decisions/strategies/score.d.ts +1 -1
  47. package/dist/editorLoader.d.ts +4 -4
  48. package/dist/events/EventAccumulator.d.ts +1 -1
  49. package/dist/events/EventBus.d.ts +1 -1
  50. package/dist/events/index.d.ts +7 -6
  51. package/dist/events/registerConfigPredicates.d.ts +19 -0
  52. package/dist/experiments/adapters/growthbook.d.ts +1 -1
  53. package/dist/experiments/index.d.ts +2 -2
  54. package/dist/experiments/registry.d.ts +1 -1
  55. package/dist/fetchers/index.d.ts +2 -2
  56. package/dist/hooks/useShadowCanvasConfig.d.ts +1 -1
  57. package/dist/hostPatcher/index.d.ts +2 -2
  58. package/dist/index.d.ts +24 -21
  59. package/dist/index.js +816 -75
  60. package/dist/index.js.map +7 -1
  61. package/dist/metrics/index.d.ts +1 -1
  62. package/dist/notifications/index.d.ts +6 -6
  63. package/dist/overlays/runtime/index.d.ts +3 -3
  64. package/dist/overlays/runtime/overlay/root.d.ts +17 -1
  65. package/dist/overlays/runtime/overlay/tooltip.d.ts +1 -1
  66. package/dist/react.js +90 -134
  67. package/dist/react.js.map +7 -1
  68. package/dist/render/RenderContext.d.ts +2 -2
  69. package/dist/render/index.d.ts +2 -2
  70. package/dist/render/types.d.ts +2 -2
  71. package/dist/runtime.d.ts +8 -8
  72. package/dist/smart-canvas.esm.js +127 -124
  73. package/dist/smart-canvas.esm.js.map +4 -4
  74. package/dist/smart-canvas.js +17160 -16782
  75. package/dist/smart-canvas.js.map +4 -4
  76. package/dist/smart-canvas.min.js +127 -124
  77. package/dist/smart-canvas.min.js.map +4 -4
  78. package/dist/state/StateStore.d.ts +1 -1
  79. package/dist/state/helpers/cooldowns.d.ts +1 -1
  80. package/dist/state/helpers/dismissals.d.ts +1 -1
  81. package/dist/state/helpers/frequency.d.ts +1 -1
  82. package/dist/state/index.d.ts +3 -3
  83. package/dist/surfaces/index.d.ts +3 -3
  84. package/dist/surfaces/positioning.d.ts +1 -1
  85. package/dist/telemetry/adapters/posthog.d.ts +2 -2
  86. package/dist/telemetry/index.d.ts +3 -3
  87. package/dist/telemetry/registry.d.ts +1 -1
  88. package/dist/theme/ThemeProvider.d.ts +1 -1
  89. package/dist/theme/extractHostTheme.d.ts +1 -1
  90. package/dist/theme/index.d.ts +4 -4
  91. package/dist/types-only.d.ts +1 -1
  92. package/dist/types-only.js +1 -11
  93. package/dist/types-only.js.map +7 -1
  94. package/dist/types.d.ts +1 -1
  95. package/dist/version.d.ts +1 -1
  96. package/dist/widgets/index.d.ts +1 -1
  97. package/package.json +24 -17
  98. package/schema/canvas-config.base.schema.json +351 -0
  99. package/schema/canvas-config.schema.json +3202 -440
  100. package/scripts/validate-config.mjs +54 -58
  101. package/dist/RuntimeProvider.js +0 -113
  102. package/dist/RuntimeProvider.js.map +0 -1
  103. package/dist/SmartCanvasApp.js +0 -143
  104. package/dist/SmartCanvasApp.js.map +0 -1
  105. package/dist/SmartCanvasElement.js +0 -138
  106. package/dist/SmartCanvasElement.js.map +0 -1
  107. package/dist/SmartCanvasPortal.js +0 -17
  108. package/dist/SmartCanvasPortal.js.map +0 -1
  109. package/dist/actions/ActionEngine.js +0 -272
  110. package/dist/actions/ActionEngine.js.map +0 -1
  111. package/dist/actions/executors/index.js +0 -240
  112. package/dist/actions/executors/index.js.map +0 -1
  113. package/dist/actions/executors/tour.js +0 -332
  114. package/dist/actions/executors/tour.js.map +0 -1
  115. package/dist/actions/index.js +0 -12
  116. package/dist/actions/index.js.map +0 -1
  117. package/dist/actions/types.js +0 -8
  118. package/dist/actions/types.js.map +0 -1
  119. package/dist/actions/validation.js +0 -577
  120. package/dist/actions/validation.js.map +0 -1
  121. package/dist/antiFlicker.js +0 -39
  122. package/dist/antiFlicker.js.map +0 -1
  123. package/dist/api.js +0 -205
  124. package/dist/api.js.map +0 -1
  125. package/dist/apps/AppContext.js +0 -91
  126. package/dist/apps/AppContext.js.map +0 -1
  127. package/dist/apps/AppLoader.js +0 -293
  128. package/dist/apps/AppLoader.js.map +0 -1
  129. package/dist/apps/AppRegistry.js +0 -317
  130. package/dist/apps/AppRegistry.js.map +0 -1
  131. package/dist/apps/examples/gamification-app.example.js +0 -329
  132. package/dist/apps/examples/gamification-app.example.js.map +0 -1
  133. package/dist/apps/index.js +0 -16
  134. package/dist/apps/index.js.map +0 -1
  135. package/dist/apps/types.js +0 -8
  136. package/dist/apps/types.js.map +0 -1
  137. package/dist/blocks/data/ComparisonBlock.js +0 -95
  138. package/dist/blocks/data/ComparisonBlock.js.map +0 -1
  139. package/dist/blocks/data/StatsBlock.js +0 -102
  140. package/dist/blocks/data/StatsBlock.js.map +0 -1
  141. package/dist/blocks/data/index.js +0 -3
  142. package/dist/blocks/data/index.js.map +0 -1
  143. package/dist/blocks/index.js +0 -93
  144. package/dist/blocks/index.js.map +0 -1
  145. package/dist/blocks/interactive/ChecklistBlock.js +0 -111
  146. package/dist/blocks/interactive/ChecklistBlock.js.map +0 -1
  147. package/dist/blocks/interactive/RatingBlock.js +0 -147
  148. package/dist/blocks/interactive/RatingBlock.js.map +0 -1
  149. package/dist/blocks/interactive/index.js +0 -3
  150. package/dist/blocks/interactive/index.js.map +0 -1
  151. package/dist/blocks/notification/NotificationBlock.js +0 -171
  152. package/dist/blocks/notification/NotificationBlock.js.map +0 -1
  153. package/dist/blocks/notification/index.js +0 -2
  154. package/dist/blocks/notification/index.js.map +0 -1
  155. package/dist/blocks/theme-tokens.js +0 -25
  156. package/dist/blocks/theme-tokens.js.map +0 -1
  157. package/dist/bootstrap.js +0 -448
  158. package/dist/bootstrap.js.map +0 -1
  159. package/dist/bundle-entry.js +0 -9
  160. package/dist/bundle-entry.js.map +0 -1
  161. package/dist/components/ShadowCanvasOverlay.js +0 -327
  162. package/dist/components/ShadowCanvasOverlay.js.map +0 -1
  163. package/dist/components/TileCard.js +0 -103
  164. package/dist/components/TileCard.js.map +0 -1
  165. package/dist/components/TileWheel.js +0 -50
  166. package/dist/components/TileWheel.js.map +0 -1
  167. package/dist/config-validator.js +0 -173
  168. package/dist/config-validator.js.map +0 -1
  169. package/dist/configFetcher.js +0 -131
  170. package/dist/configFetcher.js.map +0 -1
  171. package/dist/context/ContextManager.js +0 -269
  172. package/dist/context/ContextManager.js.map +0 -1
  173. package/dist/context/index.js +0 -7
  174. package/dist/context/index.js.map +0 -1
  175. package/dist/context/schema.js +0 -50
  176. package/dist/context/schema.js.map +0 -1
  177. package/dist/context/types.js +0 -8
  178. package/dist/context/types.js.map +0 -1
  179. package/dist/controller.js +0 -34
  180. package/dist/controller.js.map +0 -1
  181. package/dist/decisions/engine.js +0 -117
  182. package/dist/decisions/engine.js.map +0 -1
  183. package/dist/decisions/index.js +0 -10
  184. package/dist/decisions/index.js.map +0 -1
  185. package/dist/decisions/schema.js +0 -151
  186. package/dist/decisions/schema.js.map +0 -1
  187. package/dist/decisions/strategies/rules.js +0 -166
  188. package/dist/decisions/strategies/rules.js.map +0 -1
  189. package/dist/decisions/strategies/score.js +0 -29
  190. package/dist/decisions/strategies/score.js.map +0 -1
  191. package/dist/decisions/types.js +0 -2
  192. package/dist/decisions/types.js.map +0 -1
  193. package/dist/earlyPatcher.js +0 -20
  194. package/dist/earlyPatcher.js.map +0 -1
  195. package/dist/editorLoader.js +0 -254
  196. package/dist/editorLoader.js.map +0 -1
  197. package/dist/events/EventAccumulator.js +0 -101
  198. package/dist/events/EventAccumulator.js.map +0 -1
  199. package/dist/events/EventBus.js +0 -152
  200. package/dist/events/EventBus.js.map +0 -1
  201. package/dist/events/index.js +0 -11
  202. package/dist/events/index.js.map +0 -1
  203. package/dist/events/normalizers/canvas.js +0 -116
  204. package/dist/events/normalizers/canvas.js.map +0 -1
  205. package/dist/events/normalizers/posthog.js +0 -171
  206. package/dist/events/normalizers/posthog.js.map +0 -1
  207. package/dist/events/schema.js +0 -30
  208. package/dist/events/schema.js.map +0 -1
  209. package/dist/events/types.js +0 -54
  210. package/dist/events/types.js.map +0 -1
  211. package/dist/experiments/adapters/growthbook.js +0 -81
  212. package/dist/experiments/adapters/growthbook.js.map +0 -1
  213. package/dist/experiments/index.js +0 -4
  214. package/dist/experiments/index.js.map +0 -1
  215. package/dist/experiments/registry.js +0 -30
  216. package/dist/experiments/registry.js.map +0 -1
  217. package/dist/experiments/types.js +0 -2
  218. package/dist/experiments/types.js.map +0 -1
  219. package/dist/fetchers/cdnFetcher.js +0 -96
  220. package/dist/fetchers/cdnFetcher.js.map +0 -1
  221. package/dist/fetchers/experimentsFetcher.js +0 -109
  222. package/dist/fetchers/experimentsFetcher.js.map +0 -1
  223. package/dist/fetchers/index.js +0 -5
  224. package/dist/fetchers/index.js.map +0 -1
  225. package/dist/fetchers/mergeConfigs.js +0 -38
  226. package/dist/fetchers/mergeConfigs.js.map +0 -1
  227. package/dist/fetchers/registry.js +0 -58
  228. package/dist/fetchers/registry.js.map +0 -1
  229. package/dist/fetchers/types.js +0 -2
  230. package/dist/fetchers/types.js.map +0 -1
  231. package/dist/hooks/useCanvasOverlays.js +0 -128
  232. package/dist/hooks/useCanvasOverlays.js.map +0 -1
  233. package/dist/hooks/useHostPatches.js +0 -40
  234. package/dist/hooks/useHostPatches.js.map +0 -1
  235. package/dist/hooks/useShadowCanvasConfig.js +0 -63
  236. package/dist/hooks/useShadowCanvasConfig.js.map +0 -1
  237. package/dist/hostPatcher/core/patcher.js +0 -181
  238. package/dist/hostPatcher/core/patcher.js.map +0 -1
  239. package/dist/hostPatcher/core/sanitizer.js +0 -66
  240. package/dist/hostPatcher/core/sanitizer.js.map +0 -1
  241. package/dist/hostPatcher/core/types.js +0 -2
  242. package/dist/hostPatcher/core/types.js.map +0 -1
  243. package/dist/hostPatcher/index.js +0 -7
  244. package/dist/hostPatcher/index.js.map +0 -1
  245. package/dist/hostPatcher/policy/defaultPolicy.js +0 -23
  246. package/dist/hostPatcher/policy/defaultPolicy.js.map +0 -1
  247. package/dist/hostPatcher/utils/anchors.js +0 -105
  248. package/dist/hostPatcher/utils/anchors.js.map +0 -1
  249. package/dist/hostPatcher/utils/observer.js +0 -11
  250. package/dist/hostPatcher/utils/observer.js.map +0 -1
  251. package/dist/logger.js +0 -81
  252. package/dist/logger.js.map +0 -1
  253. package/dist/metrics/index.js +0 -5
  254. package/dist/metrics/index.js.map +0 -1
  255. package/dist/metrics/sessionMetrics.js +0 -178
  256. package/dist/metrics/sessionMetrics.js.map +0 -1
  257. package/dist/notifications/NotificationToastStack.js +0 -118
  258. package/dist/notifications/NotificationToastStack.js.map +0 -1
  259. package/dist/notifications/index.js +0 -6
  260. package/dist/notifications/index.js.map +0 -1
  261. package/dist/notifications/matcher.js +0 -66
  262. package/dist/notifications/matcher.js.map +0 -1
  263. package/dist/notifications/types.js +0 -13
  264. package/dist/notifications/types.js.map +0 -1
  265. package/dist/notifications/useNotifications.js +0 -104
  266. package/dist/notifications/useNotifications.js.map +0 -1
  267. package/dist/notifications/useNotifyWatcher.js +0 -62
  268. package/dist/notifications/useNotifyWatcher.js.map +0 -1
  269. package/dist/overlays/fetcher.js +0 -15
  270. package/dist/overlays/fetcher.js.map +0 -1
  271. package/dist/overlays/recipeRegistry.js +0 -32
  272. package/dist/overlays/recipeRegistry.js.map +0 -1
  273. package/dist/overlays/runtime/anchor/resolve.js +0 -87
  274. package/dist/overlays/runtime/anchor/resolve.js.map +0 -1
  275. package/dist/overlays/runtime/index.js +0 -8
  276. package/dist/overlays/runtime/index.js.map +0 -1
  277. package/dist/overlays/runtime/overlay/highlight.js +0 -160
  278. package/dist/overlays/runtime/overlay/highlight.js.map +0 -1
  279. package/dist/overlays/runtime/overlay/modal.js +0 -78
  280. package/dist/overlays/runtime/overlay/modal.js.map +0 -1
  281. package/dist/overlays/runtime/overlay/root.js +0 -297
  282. package/dist/overlays/runtime/overlay/root.js.map +0 -1
  283. package/dist/overlays/runtime/overlay/runner.js +0 -602
  284. package/dist/overlays/runtime/overlay/runner.js.map +0 -1
  285. package/dist/overlays/runtime/overlay/tooltip.js +0 -232
  286. package/dist/overlays/runtime/overlay/tooltip.js.map +0 -1
  287. package/dist/overlays/runtime/utils/dom.js +0 -12
  288. package/dist/overlays/runtime/utils/dom.js.map +0 -1
  289. package/dist/overlays/schema.js +0 -52
  290. package/dist/overlays/schema.js.map +0 -1
  291. package/dist/overlays/types.js +0 -2
  292. package/dist/overlays/types.js.map +0 -1
  293. package/dist/render/RenderContext.js +0 -69
  294. package/dist/render/RenderContext.js.map +0 -1
  295. package/dist/render/index.js +0 -3
  296. package/dist/render/index.js.map +0 -1
  297. package/dist/render/types.js +0 -2
  298. package/dist/render/types.js.map +0 -1
  299. package/dist/runtime.js +0 -237
  300. package/dist/runtime.js.map +0 -1
  301. package/dist/state/StateStore.js +0 -176
  302. package/dist/state/StateStore.js.map +0 -1
  303. package/dist/state/helpers/cooldowns.js +0 -31
  304. package/dist/state/helpers/cooldowns.js.map +0 -1
  305. package/dist/state/helpers/dismissals.js +0 -34
  306. package/dist/state/helpers/dismissals.js.map +0 -1
  307. package/dist/state/helpers/frequency.js +0 -43
  308. package/dist/state/helpers/frequency.js.map +0 -1
  309. package/dist/state/index.js +0 -7
  310. package/dist/state/index.js.map +0 -1
  311. package/dist/state/schema.js +0 -25
  312. package/dist/state/schema.js.map +0 -1
  313. package/dist/state/types.js +0 -9
  314. package/dist/state/types.js.map +0 -1
  315. package/dist/store/example.js +0 -43
  316. package/dist/store/example.js.map +0 -1
  317. package/dist/store/mini-effector.js +0 -88
  318. package/dist/store/mini-effector.js.map +0 -1
  319. package/dist/surfaces/Surfaces.js +0 -361
  320. package/dist/surfaces/Surfaces.js.map +0 -1
  321. package/dist/surfaces/index.js +0 -12
  322. package/dist/surfaces/index.js.map +0 -1
  323. package/dist/surfaces/positioning.js +0 -228
  324. package/dist/surfaces/positioning.js.map +0 -1
  325. package/dist/surfaces/types.js +0 -23
  326. package/dist/surfaces/types.js.map +0 -1
  327. package/dist/telemetry/adapters/noop.js +0 -42
  328. package/dist/telemetry/adapters/noop.js.map +0 -1
  329. package/dist/telemetry/adapters/posthog.js +0 -180
  330. package/dist/telemetry/adapters/posthog.js.map +0 -1
  331. package/dist/telemetry/index.js +0 -4
  332. package/dist/telemetry/index.js.map +0 -1
  333. package/dist/telemetry/registry.js +0 -29
  334. package/dist/telemetry/registry.js.map +0 -1
  335. package/dist/telemetry/types.js +0 -2
  336. package/dist/telemetry/types.js.map +0 -1
  337. package/dist/theme/ThemeProvider.js +0 -109
  338. package/dist/theme/ThemeProvider.js.map +0 -1
  339. package/dist/theme/defaultTheme.js +0 -190
  340. package/dist/theme/defaultTheme.js.map +0 -1
  341. package/dist/theme/extractHostTheme.js +0 -259
  342. package/dist/theme/extractHostTheme.js.map +0 -1
  343. package/dist/theme/index.js +0 -7
  344. package/dist/theme/index.js.map +0 -1
  345. package/dist/theme/types.js +0 -6
  346. package/dist/theme/types.js.map +0 -1
  347. package/dist/token.js +0 -44
  348. package/dist/token.js.map +0 -1
  349. package/dist/types.js +0 -17
  350. package/dist/types.js.map +0 -1
  351. package/dist/version.js +0 -14
  352. package/dist/version.js.map +0 -1
  353. package/dist/widgets/WidgetRegistry.js +0 -190
  354. package/dist/widgets/WidgetRegistry.js.map +0 -1
  355. package/dist/widgets/index.js +0 -7
  356. package/dist/widgets/index.js.map +0 -1
package/dist/bootstrap.js DELETED
@@ -1,448 +0,0 @@
1
- /**
2
- * Bootstrap module for single-token SDK initialization.
3
- *
4
- * Usage:
5
- * ```typescript
6
- * import { Syntro } from '@syntrologie/runtime-sdk';
7
- *
8
- * const { canvas, runtime } = await Syntro.init({
9
- * token: "syn_eyJ2IjoxLCJleHAiOnsiayI6InNkay14eHgiLCJwIjoiZ3Jvd3RoYm9vayJ9fQ"
10
- * });
11
- *
12
- * // Access runtime providers
13
- * runtime.telemetry?.trackAction(...);
14
- * runtime.context.subscribe((ctx, prev) => { ... });
15
- * runtime.events.subscribe({ names: ['ui.click'] }, (event) => { ... });
16
- * runtime.state.dismissals.mark('my-tile');
17
- * ```
18
- */
19
- import { createSmartCanvas } from './api';
20
- import { createAppLoader } from './apps/AppLoader';
21
- import { createCanvasConfigFetcher } from './configFetcher';
22
- import { getEditorConf, getEditorSource } from './editorLoader';
23
- import { createEventBus } from './events/EventBus';
24
- import { createPostHogNormalizer } from './events/normalizers/posthog';
25
- import { createExperimentClient } from './experiments/registry';
26
- import { createConfigFetcher } from './fetchers/registry';
27
- import { initLogger, debug, warn, error as logError } from './logger';
28
- import { createSessionMetricTracker } from './metrics';
29
- import { createSmartCanvasRuntime } from './runtime';
30
- import { createTelemetryClient } from './telemetry/registry';
31
- import { decodeToken, encodeToken } from './token';
32
- /**
33
- * Get environment variable, supporting both Vite and Next.js patterns.
34
- */
35
- function getEnvVar(name) {
36
- if (typeof process !== 'undefined' && process.env) {
37
- // Next.js / Node.js
38
- return process.env[name];
39
- }
40
- // Vite uses import.meta.env - use try/catch to avoid esbuild IIFE warning
41
- try {
42
- // eslint-disable-next-line no-eval -- Required for Vite compatibility; import.meta cannot be accessed statically in IIFE bundles
43
- const meta = (0, eval)('import.meta');
44
- if (meta === null || meta === void 0 ? void 0 : meta.env) {
45
- return meta.env[name];
46
- }
47
- }
48
- catch {
49
- // import.meta not available (IIFE bundle)
50
- }
51
- return undefined;
52
- }
53
- /**
54
- * Check if we're in editor mode (editor_conf.mode === 'editor').
55
- */
56
- function isEditorMode() {
57
- if (typeof window === 'undefined') {
58
- debug('Syntro Bootstrap', 'isEditorMode: not in browser');
59
- return false;
60
- }
61
- const conf = getEditorConf();
62
- const source = getEditorSource();
63
- const isEditor = !!((source === null || source === void 0 ? void 0 : source.token) && (conf === null || conf === void 0 ? void 0 : conf.mode) === 'editor');
64
- debug('Syntro Bootstrap', 'isEditorMode:', isEditor);
65
- return isEditor;
66
- }
67
- /**
68
- * Check if we're in audit mode (editor_conf.mode === 'audit').
69
- */
70
- function isAuditMode() {
71
- if (typeof window === 'undefined') {
72
- debug('Syntro Bootstrap', 'isAuditMode: not in browser');
73
- return false;
74
- }
75
- const conf = getEditorConf();
76
- const source = getEditorSource();
77
- const isAudit = !!((source === null || source === void 0 ? void 0 : source.token) && (conf === null || conf === void 0 ? void 0 : conf.mode) === 'audit');
78
- debug('Syntro Bootstrap', 'isAuditMode:', isAudit);
79
- return isAudit;
80
- }
81
- // ============================================================================
82
- // Segment Attribute Caching (localStorage)
83
- // ============================================================================
84
- const SEGMENT_CACHE_KEY = 'syntro_segment_attributes';
85
- /**
86
- * Load cached segment attributes from localStorage.
87
- * Returns cached values for instant Phase 1 evaluation.
88
- */
89
- function loadCachedSegmentAttributes() {
90
- if (typeof window === 'undefined')
91
- return {};
92
- try {
93
- const cached = localStorage.getItem(SEGMENT_CACHE_KEY);
94
- if (cached) {
95
- const attrs = JSON.parse(cached);
96
- debug('Syntro Bootstrap', 'Loaded cached segment attributes:', attrs);
97
- return attrs;
98
- }
99
- }
100
- catch (err) {
101
- warn('Syntro Bootstrap', 'Failed to load cached segment attributes:', err);
102
- }
103
- return {};
104
- }
105
- /**
106
- * Save segment attributes to localStorage for faster future loads.
107
- */
108
- function cacheSegmentAttributes(attrs) {
109
- if (typeof window === 'undefined')
110
- return;
111
- try {
112
- localStorage.setItem(SEGMENT_CACHE_KEY, JSON.stringify(attrs));
113
- debug('Syntro Bootstrap', 'Cached segment attributes:', attrs);
114
- }
115
- catch (err) {
116
- warn('Syntro Bootstrap', 'Failed to cache segment attributes:', err);
117
- }
118
- }
119
- /**
120
- * Extract segment flags (in_segment_*) from PostHog feature flags.
121
- */
122
- function extractSegmentFlags(allFlags) {
123
- if (!allFlags)
124
- return {};
125
- const segmentFlags = {};
126
- for (const [key, value] of Object.entries(allFlags)) {
127
- if (key.startsWith('in_segment_')) {
128
- segmentFlags[key] = value === true;
129
- }
130
- }
131
- return segmentFlags;
132
- }
133
- /**
134
- * Initialize the Syntro SDK with a single token.
135
- *
136
- * Environment variable overrides (for dev):
137
- * SYNTRO_EXPERIMENT_HOST - Override experiment server URL
138
- * SYNTRO_TELEMETRY_HOST - Override telemetry server URL
139
- *
140
- * In editor mode (when editor_token is in URL), the token is optional.
141
- * The editor SDK handles its own authentication.
142
- *
143
- * @param options - Initialization options
144
- * @returns The initialized SDK components
145
- */
146
- async function init(options) {
147
- var _a, _b, _c;
148
- // Initialize logger early (URL param works without token)
149
- initLogger();
150
- debug('Syntro Bootstrap', '====== INIT ======');
151
- debug('Syntro Bootstrap', 'Options:', {
152
- hasToken: !!options.token,
153
- tokenPrefix: `${(_a = options.token) === null || _a === void 0 ? void 0 : _a.slice(0, 15)}...`,
154
- hasCanvasOptions: !!options.canvas,
155
- });
156
- // In editor or audit mode, token is optional - SDK handles auth differently
157
- const editorMode = isEditorMode();
158
- const auditMode = isAuditMode();
159
- const sdkMode = editorMode ? 'editor' : auditMode ? 'audit' : null;
160
- debug('Syntro Bootstrap', 'SDK mode:', sdkMode !== null && sdkMode !== void 0 ? sdkMode : 'normal');
161
- let payload;
162
- if (options.token) {
163
- // If token is provided and starts with syn_, decode it
164
- if (options.token.startsWith('syn_')) {
165
- debug('Syntro Bootstrap', 'Token starts with syn_, decoding...');
166
- payload = decodeToken(options.token);
167
- // Re-init logger with token's debug flag
168
- initLogger(payload.d);
169
- }
170
- else if (!sdkMode) {
171
- // Not a syn_ token and not in special mode - error
172
- logError('Syntro Bootstrap', '❌ Token does not start with syn_ and NOT in editor/audit mode!');
173
- logError('Syntro Bootstrap', 'Token received:', options.token);
174
- throw new Error("Invalid Syntro token: must start with 'syn_'");
175
- }
176
- else {
177
- debug('Syntro Bootstrap', `✓ Non-syn_ token allowed (${sdkMode} mode)`);
178
- }
179
- // If in editor/audit mode with non-syn_ token, skip token decoding
180
- }
181
- else if (!sdkMode) {
182
- // No token and not in special mode - error
183
- logError('Syntro Bootstrap', '❌ No token provided and NOT in editor/audit mode!');
184
- throw new Error('Syntro token is required (unless in editor or audit mode)');
185
- }
186
- else {
187
- debug('Syntro Bootstrap', `✓ No token, but ${sdkMode} mode - proceeding`);
188
- }
189
- // Host resolution priority: env var > token > default
190
- // Env vars are checked at build time by bundlers (Next.js/Vite)
191
- const experimentHost = getEnvVar('NEXT_PUBLIC_SYNTRO_EXPERIMENT_HOST') ||
192
- getEnvVar('VITE_SYNTRO_EXPERIMENT_HOST') ||
193
- (payload === null || payload === void 0 ? void 0 : payload.eh); // from token
194
- const telemetryHost = getEnvVar('NEXT_PUBLIC_SYNTRO_TELEMETRY_HOST') ||
195
- getEnvVar('VITE_SYNTRO_TELEMETRY_HOST') ||
196
- (payload === null || payload === void 0 ? void 0 : payload.th); // from token
197
- // Editor SDK URL (for loading editor in edit mode)
198
- const editorUrl = getEnvVar('NEXT_PUBLIC_SYNTRO_EDITOR_URL') ||
199
- getEnvVar('VITE_SYNTRO_EDITOR_URL') ||
200
- ((_b = options.canvas) === null || _b === void 0 ? void 0 : _b.editorUrl);
201
- // ============================================================================
202
- // PHASE 1: Load cached segment attributes for instant evaluation
203
- // ============================================================================
204
- const cachedSegmentAttrs = loadCachedSegmentAttributes();
205
- debug('Syntro Bootstrap', 'Phase 1: Using cached segment attributes:', cachedSegmentAttrs);
206
- // Will be set when experiments client is created
207
- let experiments;
208
- // ============================================================================
209
- // Create EventBus early so we can wire PostHog events into it
210
- // ============================================================================
211
- const events = createEventBus();
212
- console.log('[Syntro Bootstrap] EventBus created');
213
- // Create PostHog normalizer that feeds events into the EventBus
214
- const postHogNormalizer = createPostHogNormalizer((event) => {
215
- events.publishEvent(event);
216
- });
217
- // Callback for when PostHog feature flags are loaded (Phase 2)
218
- const onFeatureFlagsLoaded = (allFlags) => {
219
- var _a, _b, _c;
220
- debug('Syntro Bootstrap', 'Phase 2: PostHog feature flags loaded');
221
- // Extract segment flags (in_segment_*)
222
- const segmentFlags = extractSegmentFlags(allFlags);
223
- debug('Syntro Bootstrap', 'Segment flags from PostHog:', segmentFlags);
224
- // Cache for next page load
225
- cacheSegmentAttributes(segmentFlags);
226
- // Update GrowthBook with fresh segment attributes
227
- if (experiments) {
228
- // Get current session metrics if available
229
- const sessionAttrs = (_b = (_a = sessionMetrics === null || sessionMetrics === void 0 ? void 0 : sessionMetrics.getAll) === null || _a === void 0 ? void 0 : _a.call(sessionMetrics)) !== null && _b !== void 0 ? _b : {};
230
- // Merge session metrics + segment flags and update GrowthBook
231
- const updatedAttrs = { ...sessionAttrs, ...segmentFlags };
232
- debug('Syntro Bootstrap', 'Updating GrowthBook with attributes:', updatedAttrs);
233
- (_c = experiments.setAttributes) === null || _c === void 0 ? void 0 : _c.call(experiments, updatedAttrs);
234
- }
235
- };
236
- // Initialize telemetry client with feature flags callback and event capture
237
- let telemetry;
238
- if (payload === null || payload === void 0 ? void 0 : payload.t) {
239
- const provider = payload.t === 'noop' ? 'noop' : 'posthog';
240
- telemetry = createTelemetryClient(provider, {
241
- apiKey: payload.t,
242
- apiHost: telemetryHost, // undefined falls back to adapter default
243
- // Enable PostHog feature flags for segment membership
244
- enableFeatureFlags: true,
245
- // Wire up callback for when flags are loaded (Phase 2)
246
- onFeatureFlagsLoaded,
247
- // Wire up event capture to feed into EventBus
248
- onCapture: postHogNormalizer,
249
- });
250
- console.log(`[Syntro Bootstrap] Telemetry client created (${provider}) with EventBus wiring`);
251
- }
252
- // ============================================================================
253
- // Initialize experiment client with CACHED attributes (Phase 1)
254
- // PostHog will update these when /decide returns (Phase 2)
255
- // ============================================================================
256
- let sessionMetrics;
257
- if (payload === null || payload === void 0 ? void 0 : payload.e) {
258
- experiments = createExperimentClient('growthbook', {
259
- clientKey: payload.e,
260
- apiHost: experimentHost, // undefined falls back to adapter default
261
- // Phase 1: Use cached segment attributes for instant evaluation
262
- attributes: cachedSegmentAttrs,
263
- // Wire experiment tracking to telemetry provider
264
- onExperimentViewed: (telemetry === null || telemetry === void 0 ? void 0 : telemetry.trackExperiment)
265
- ? (key, variationId, variationName) => {
266
- telemetry.trackExperiment(key, variationId, variationName);
267
- }
268
- : undefined,
269
- });
270
- }
271
- // Create session metric tracker if enabled
272
- if (options.enableSessionMetrics) {
273
- sessionMetrics = createSessionMetricTracker({
274
- experiments,
275
- onMetricChange: (key, value) => {
276
- debug('Syntro Bootstrap', `Session metric changed: ${key} = ${value}`);
277
- },
278
- });
279
- debug('Syntro Bootstrap', 'SessionMetricTracker created');
280
- }
281
- // Determine runtime mode
282
- let runtimeMode = 'production';
283
- if (editorMode)
284
- runtimeMode = 'editor';
285
- else if (auditMode)
286
- runtimeMode = 'audit';
287
- else if (getEnvVar('NODE_ENV') === 'development')
288
- runtimeMode = 'development';
289
- // ============================================================================
290
- // Create runtime FIRST (before canvas, so we can wire up app loading)
291
- // ============================================================================
292
- const runtime = createSmartCanvasRuntime({
293
- telemetry,
294
- sessionMetrics,
295
- mode: runtimeMode,
296
- events, // Use the EventBus we created earlier (already wired to PostHog)
297
- });
298
- debug('Syntro Bootstrap', 'Runtime created:', {
299
- version: runtime.version,
300
- mode: runtime.mode,
301
- hasContext: !!runtime.context,
302
- hasEvents: !!runtime.events,
303
- hasState: !!runtime.state,
304
- });
305
- // ============================================================================
306
- // Core app executors are registered synchronously in ExecutorRegistry
307
- // No async registration needed - they're available immediately
308
- // ============================================================================
309
- debug('Syntro Bootstrap', 'Core app executors already registered');
310
- // ============================================================================
311
- // Create app loader for external apps from CDN
312
- // ============================================================================
313
- const cdnBase = options.cdnBase ||
314
- getEnvVar('NEXT_PUBLIC_SYNTRO_CDN_BASE') ||
315
- getEnvVar('VITE_SYNTRO_CDN_BASE') ||
316
- 'https://cdn.syntrologie.com';
317
- const appLoader = createAppLoader({
318
- cdnBase,
319
- registry: runtime.apps,
320
- onLoadStart: (appId) => {
321
- debug('Syntro Bootstrap', `Loading app from CDN: ${appId}`);
322
- },
323
- onLoadEnd: (appId, success, error) => {
324
- if (success) {
325
- debug('Syntro Bootstrap', `App loaded successfully: ${appId}`);
326
- }
327
- else {
328
- warn('Syntro Bootstrap', `Failed to load app: ${appId}`, error);
329
- }
330
- },
331
- });
332
- // ============================================================================
333
- // Expose global SynOS object for UMD app self-registration
334
- // ============================================================================
335
- if (typeof window !== 'undefined') {
336
- window.SynOS = {
337
- ...window.SynOS,
338
- appRegistry: runtime.apps,
339
- runtime,
340
- version: runtime.version,
341
- };
342
- debug('Syntro Bootstrap', 'Global SynOS object exposed');
343
- }
344
- // ============================================================================
345
- // Ensure experiment features are loaded before config resolution
346
- // gb.init({ streaming: true }) is fire-and-forget in the adapter constructor,
347
- // so features may not be ready yet. Await them now.
348
- // ============================================================================
349
- if (experiments === null || experiments === void 0 ? void 0 : experiments.refreshFeatures) {
350
- try {
351
- await experiments.refreshFeatures();
352
- debug('Syntro Bootstrap', 'GrowthBook features loaded');
353
- }
354
- catch (err) {
355
- warn('Syntro Bootstrap', 'Failed to load GrowthBook features:', err);
356
- }
357
- }
358
- // ============================================================================
359
- // Create base config fetcher
360
- // Priority: custom fetcher > token-specified fetcher > experiments-based
361
- // ============================================================================
362
- let baseFetcher;
363
- if (options.fetcher) {
364
- // Custom fetcher provided - use it directly (for local dev / bypassing experiments)
365
- baseFetcher = options.fetcher;
366
- }
367
- else if (payload === null || payload === void 0 ? void 0 : payload.f) {
368
- // Explicit fetcher type specified in token
369
- const configFetcher = createConfigFetcher(payload.f, (_c = payload.o) !== null && _c !== void 0 ? _c : {});
370
- baseFetcher = async () => {
371
- var _a;
372
- const result = await configFetcher.fetch();
373
- return {
374
- ...result.config,
375
- tiles: (_a = result.config.tiles) !== null && _a !== void 0 ? _a : [],
376
- };
377
- };
378
- }
379
- else if (experiments) {
380
- // Default: use experiments-based fetcher (GrowthBook config or URI)
381
- baseFetcher = createCanvasConfigFetcher({ experiments });
382
- }
383
- // ============================================================================
384
- // Wrap fetcher to automatically load required apps when config is fetched
385
- // ============================================================================
386
- // Track which app load failures we've already warned about
387
- const warnedAppFailures = new Set();
388
- const appLoadingFetcher = baseFetcher
389
- ? async () => {
390
- const config = await baseFetcher();
391
- // Analyze config for required apps
392
- // Cast to CanvasConfigForLoader - the loader only looks at action kinds
393
- const configForLoader = config;
394
- const requiredApps = appLoader.getRequiredApps(configForLoader);
395
- debug('Syntro Bootstrap', 'Config fetched, required apps:', requiredApps);
396
- if (requiredApps.length > 0) {
397
- // Load external apps from CDN (built-in apps are already registered)
398
- // This runs in parallel - we don't block on it
399
- const loadPromise = appLoader.loadAppsForConfig(configForLoader).then(async (results) => {
400
- // Only warn about new failures (not previously warned)
401
- const newFailures = results.filter((r) => !r.success && !warnedAppFailures.has(r.appId));
402
- if (newFailures.length > 0) {
403
- warn('Syntro Bootstrap', 'Some apps failed to load:', newFailures);
404
- newFailures.forEach((r) => warnedAppFailures.add(r.appId));
405
- }
406
- // Activate required apps after loading
407
- for (const appId of requiredApps) {
408
- if (runtime.apps.has(appId)) {
409
- try {
410
- await runtime.apps.activate(appId);
411
- }
412
- catch (err) {
413
- warn('Syntro Bootstrap', `Failed to activate app: ${appId}`, err);
414
- }
415
- }
416
- }
417
- });
418
- // For actions that need external apps, we need to wait
419
- // But for core app actions, they can execute immediately
420
- await loadPromise;
421
- }
422
- return config;
423
- }
424
- : undefined;
425
- // ============================================================================
426
- // Create canvas with runtime and app-loading fetcher
427
- // ============================================================================
428
- const canvas = await createSmartCanvas({
429
- ...options.canvas,
430
- fetcher: appLoadingFetcher,
431
- integrations: { experiments, telemetry },
432
- editorUrl,
433
- runtime, // Pass runtime so actions can be applied
434
- });
435
- return { canvas, runtime, experiments, telemetry, sessionMetrics, appLoader };
436
- }
437
- /**
438
- * The Syntro namespace for single-token initialization.
439
- */
440
- export const Syntro = {
441
- init,
442
- encodeToken,
443
- decodeToken,
444
- };
445
- if (typeof window !== 'undefined') {
446
- window.Syntro = Syntro;
447
- }
448
- //# sourceMappingURL=bootstrap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Bundle entry point - exports public SDK API
3
- */
4
- // Export the main SDK creation function
5
- export { createSmartCanvas } from './api';
6
- // Ready to export additional functionality in the future:
7
- // export { applyPatchesEarly, extractPatchesFromConfig } from './earlyPatcher';
8
- // export type { Patch } from './hostPatcher/core/types';
9
- //# sourceMappingURL=bundle-entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle-entry.js","sourceRoot":"","sources":["../src/bundle-entry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wCAAwC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,0DAA0D;AAC1D,gFAAgF;AAChF,yDAAyD"}