@syntrologie/runtime-sdk 1.0.0-canary.1 → 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 (169) hide show
  1. package/CAPABILITIES.md +274 -31
  2. package/README.md +87 -0
  3. package/dist/RuntimeProvider.d.ts +1 -1
  4. package/dist/RuntimeProvider.js.map +1 -1
  5. package/dist/SmartCanvasApp.d.ts +4 -4
  6. package/dist/SmartCanvasApp.js +4 -4
  7. package/dist/SmartCanvasApp.js.map +1 -1
  8. package/dist/SmartCanvasElement.d.ts +2 -2
  9. package/dist/SmartCanvasElement.js +1 -1
  10. package/dist/SmartCanvasElement.js.map +1 -1
  11. package/dist/SmartCanvasPortal.js.map +1 -1
  12. package/dist/actions/ActionEngine.js +2 -4
  13. package/dist/actions/ActionEngine.js.map +1 -1
  14. package/dist/actions/executors/index.d.ts +1 -2
  15. package/dist/actions/executors/index.js +5 -7
  16. package/dist/actions/executors/index.js.map +1 -1
  17. package/dist/actions/executors/tour.js +3 -3
  18. package/dist/actions/executors/tour.js.map +1 -1
  19. package/dist/actions/validation.js +6 -31
  20. package/dist/actions/validation.js.map +1 -1
  21. package/dist/adaptives/adaptive-chatbot/index.js +9 -0
  22. package/dist/adaptives/adaptive-chatbot/index.js.map +7 -0
  23. package/dist/adaptives/adaptive-content/index.js +2 -0
  24. package/dist/adaptives/adaptive-content/index.js.map +7 -0
  25. package/dist/adaptives/adaptive-faq/index.js +11 -0
  26. package/dist/adaptives/adaptive-faq/index.js.map +7 -0
  27. package/dist/adaptives/adaptive-gamification/index.js +2 -0
  28. package/dist/adaptives/adaptive-gamification/index.js.map +7 -0
  29. package/dist/adaptives/adaptive-nav/index.js +11 -0
  30. package/dist/adaptives/adaptive-nav/index.js.map +7 -0
  31. package/dist/adaptives/adaptive-overlays/index.js +91 -0
  32. package/dist/adaptives/adaptive-overlays/index.js.map +7 -0
  33. package/dist/api.d.ts +5 -5
  34. package/dist/api.js +4 -7
  35. package/dist/api.js.map +1 -1
  36. package/dist/apps/AppContext.js +3 -5
  37. package/dist/apps/AppContext.js.map +1 -1
  38. package/dist/apps/AppLoader.d.ts +2 -1
  39. package/dist/apps/AppLoader.js +35 -9
  40. package/dist/apps/AppLoader.js.map +1 -1
  41. package/dist/apps/AppRegistry.js.map +1 -1
  42. package/dist/apps/examples/gamification-app.example.d.ts +8 -8
  43. package/dist/apps/examples/gamification-app.example.js.map +1 -1
  44. package/dist/apps/index.d.ts +0 -1
  45. package/dist/apps/index.js +0 -1
  46. package/dist/apps/index.js.map +1 -1
  47. package/dist/apps/types.d.ts +1 -1
  48. package/dist/blocks/data/ComparisonBlock.js +9 -9
  49. package/dist/blocks/data/ComparisonBlock.js.map +1 -1
  50. package/dist/blocks/data/StatsBlock.js +12 -14
  51. package/dist/blocks/data/StatsBlock.js.map +1 -1
  52. package/dist/blocks/index.d.ts +2 -2
  53. package/dist/blocks/index.js +3 -4
  54. package/dist/blocks/index.js.map +1 -1
  55. package/dist/blocks/interactive/ChecklistBlock.js +12 -12
  56. package/dist/blocks/interactive/ChecklistBlock.js.map +1 -1
  57. package/dist/blocks/interactive/RatingBlock.js +12 -14
  58. package/dist/blocks/interactive/RatingBlock.js.map +1 -1
  59. package/dist/blocks/notification/NotificationBlock.js +24 -24
  60. package/dist/blocks/notification/NotificationBlock.js.map +1 -1
  61. package/dist/bootstrap.d.ts +5 -5
  62. package/dist/bootstrap.js +30 -33
  63. package/dist/bootstrap.js.map +1 -1
  64. package/dist/components/ShadowCanvasOverlay.d.ts +2 -2
  65. package/dist/components/ShadowCanvasOverlay.js +25 -24
  66. package/dist/components/ShadowCanvasOverlay.js.map +1 -1
  67. package/dist/components/TileCard.d.ts +2 -2
  68. package/dist/components/TileCard.js +24 -23
  69. package/dist/components/TileCard.js.map +1 -1
  70. package/dist/components/TileWheel.d.ts +1 -1
  71. package/dist/components/TileWheel.js +23 -1
  72. package/dist/components/TileWheel.js.map +1 -1
  73. package/dist/configFetcher.d.ts +6 -2
  74. package/dist/configFetcher.js +65 -36
  75. package/dist/configFetcher.js.map +1 -1
  76. package/dist/context/ContextManager.d.ts +1 -1
  77. package/dist/context/ContextManager.js +4 -3
  78. package/dist/context/ContextManager.js.map +1 -1
  79. package/dist/context/schema.d.ts +8 -8
  80. package/dist/context/schema.js +1 -1
  81. package/dist/context/schema.js.map +1 -1
  82. package/dist/decisions/engine.d.ts +2 -2
  83. package/dist/decisions/engine.js.map +1 -1
  84. package/dist/decisions/schema.d.ts +34 -34
  85. package/dist/decisions/schema.js +1 -1
  86. package/dist/decisions/schema.js.map +1 -1
  87. package/dist/editorLoader.d.ts +19 -9
  88. package/dist/editorLoader.js +107 -96
  89. package/dist/editorLoader.js.map +1 -1
  90. package/dist/events/normalizers/canvas.d.ts +1 -1
  91. package/dist/events/normalizers/canvas.js.map +1 -1
  92. package/dist/events/schema.d.ts +4 -4
  93. package/dist/events/schema.js +1 -1
  94. package/dist/events/schema.js.map +1 -1
  95. package/dist/experiments/adapters/growthbook.d.ts +2 -1
  96. package/dist/experiments/adapters/growthbook.js +9 -1
  97. package/dist/experiments/adapters/growthbook.js.map +1 -1
  98. package/dist/experiments/types.d.ts +5 -0
  99. package/dist/fetchers/cdnFetcher.js.map +1 -1
  100. package/dist/fetchers/experimentsFetcher.d.ts +24 -2
  101. package/dist/fetchers/experimentsFetcher.js +48 -1
  102. package/dist/fetchers/experimentsFetcher.js.map +1 -1
  103. package/dist/fetchers/mergeConfigs.d.ts +29 -0
  104. package/dist/fetchers/mergeConfigs.js +38 -0
  105. package/dist/fetchers/mergeConfigs.js.map +1 -0
  106. package/dist/hooks/useCanvasOverlays.d.ts +1 -1
  107. package/dist/hooks/useCanvasOverlays.js +2 -2
  108. package/dist/hooks/useCanvasOverlays.js.map +1 -1
  109. package/dist/hooks/useHostPatches.js.map +1 -1
  110. package/dist/hooks/useShadowCanvasConfig.d.ts +1 -1
  111. package/dist/hooks/useShadowCanvasConfig.js.map +1 -1
  112. package/dist/hostPatcher/core/patcher.js.map +1 -1
  113. package/dist/hostPatcher/policy/defaultPolicy.js.map +1 -1
  114. package/dist/index.js +15 -0
  115. package/dist/index.js.map +1 -1
  116. package/dist/overlays/fetcher.d.ts +1 -1
  117. package/dist/overlays/fetcher.js +12 -14
  118. package/dist/overlays/fetcher.js.map +1 -1
  119. package/dist/overlays/runtime/overlay/runner.js +18 -5
  120. package/dist/overlays/runtime/overlay/runner.js.map +1 -1
  121. package/dist/overlays/runtime/overlay/tooltip.js +3 -5
  122. package/dist/overlays/runtime/overlay/tooltip.js.map +1 -1
  123. package/dist/react.d.ts +1 -1
  124. package/dist/react.js.map +1 -1
  125. package/dist/render/RenderContext.js.map +1 -1
  126. package/dist/runtime.d.ts +6 -6
  127. package/dist/runtime.js +38 -16
  128. package/dist/runtime.js.map +1 -1
  129. package/dist/smart-canvas.esm.js +97 -85
  130. package/dist/smart-canvas.esm.js.map +4 -4
  131. package/dist/smart-canvas.js +41814 -44141
  132. package/dist/smart-canvas.js.map +4 -4
  133. package/dist/smart-canvas.min.js +97 -85
  134. package/dist/smart-canvas.min.js.map +4 -4
  135. package/dist/state/StateStore.d.ts +0 -6
  136. package/dist/state/StateStore.js +7 -1
  137. package/dist/state/StateStore.js.map +1 -1
  138. package/dist/surfaces/Surfaces.js +1 -1
  139. package/dist/surfaces/Surfaces.js.map +1 -1
  140. package/dist/surfaces/positioning.js.map +1 -1
  141. package/dist/telemetry/adapters/posthog.js +1 -1
  142. package/dist/telemetry/adapters/posthog.js.map +1 -1
  143. package/dist/telemetry/registry.d.ts +0 -7
  144. package/dist/telemetry/registry.js +1 -1
  145. package/dist/telemetry/registry.js.map +1 -1
  146. package/dist/theme/ThemeProvider.js.map +1 -1
  147. package/dist/theme/defaultTheme.d.ts +2 -3
  148. package/dist/theme/defaultTheme.js +60 -51
  149. package/dist/theme/defaultTheme.js.map +1 -1
  150. package/dist/theme/extractHostTheme.js +1 -1
  151. package/dist/theme/extractHostTheme.js.map +1 -1
  152. package/dist/types.d.ts +1 -1
  153. package/dist/types.js +0 -1
  154. package/dist/types.js.map +1 -1
  155. package/dist/version.d.ts +1 -1
  156. package/dist/version.js +1 -1
  157. package/dist/version.js.map +1 -1
  158. package/dist/widgets/WidgetRegistry.d.ts +6 -0
  159. package/dist/widgets/WidgetRegistry.js +12 -3
  160. package/dist/widgets/WidgetRegistry.js.map +1 -1
  161. package/package.json +20 -16
  162. package/dist/apps/adaptive-chatbot/index.js +0 -7
  163. package/dist/apps/adaptive-chatbot/index.js.map +0 -7
  164. package/dist/apps/faq/index.js +0 -11
  165. package/dist/apps/faq/index.js.map +0 -7
  166. package/dist/apps/gamification/index.js +0 -2
  167. package/dist/apps/gamification/index.js.map +0 -7
  168. package/dist/apps/nav/index.js +0 -11
  169. package/dist/apps/nav/index.js.map +0 -7
@@ -1,5 +1,4 @@
1
1
  import { debug, warn } from './logger';
2
- export const DEFAULT_EDITOR_URL = 'https://cdn.syntrologie.com/editor-sdk/latest/editor-sdk.js';
3
2
  /**
4
3
  * Allowed hosts for loading the editor SDK.
5
4
  * Only scripts from these hosts will be loaded.
@@ -13,6 +12,59 @@ const ALLOWED_EDITOR_HOSTS = [
13
12
  // Allow any .syntrologie.com subdomain for dev/staging
14
13
  '.syntrologie.com',
15
14
  ];
15
+ /**
16
+ * Decode a base64url-encoded JSON param from the URL.
17
+ * Returns null if param missing or malformed.
18
+ */
19
+ function decodeParam(paramName) {
20
+ if (typeof window === 'undefined')
21
+ return null;
22
+ const params = new URLSearchParams(window.location.search);
23
+ const raw = params.get(paramName);
24
+ if (!raw)
25
+ return null;
26
+ try {
27
+ const b64 = raw.replace(/-/g, '+').replace(/_/g, '/');
28
+ return JSON.parse(atob(b64));
29
+ }
30
+ catch (e) {
31
+ warn('Syntro Runtime', `Failed to decode ${paramName}:`, e);
32
+ return null;
33
+ }
34
+ }
35
+ let _cachedSource;
36
+ let _cachedConf;
37
+ /** Get decoded editor_source from URL or global (cached). */
38
+ export function getEditorSource() {
39
+ if (_cachedSource === undefined) {
40
+ // Check global variable first (set by Chrome extension)
41
+ const globalParams = typeof window !== 'undefined' ? window.__SYNTRO_EDITOR_PARAMS__ : null;
42
+ if (globalParams === null || globalParams === void 0 ? void 0 : globalParams.token) {
43
+ _cachedSource = { token: globalParams.token, api_base: globalParams.apiBase || '' };
44
+ }
45
+ else {
46
+ _cachedSource = decodeParam('editor_source');
47
+ }
48
+ }
49
+ return _cachedSource;
50
+ }
51
+ /** Get decoded editor_conf from URL or global (cached). */
52
+ export function getEditorConf() {
53
+ if (_cachedConf === undefined) {
54
+ // Check global variable first (set by Chrome extension)
55
+ const globalParams = typeof window !== 'undefined' ? window.__SYNTRO_EDITOR_PARAMS__ : null;
56
+ if (globalParams === null || globalParams === void 0 ? void 0 : globalParams.mode) {
57
+ _cachedConf = { mode: globalParams.mode, audit_session_id: globalParams.auditSessionId };
58
+ }
59
+ else {
60
+ _cachedConf = decodeParam('editor_conf');
61
+ }
62
+ }
63
+ return _cachedConf;
64
+ }
65
+ // =============================================================================
66
+ // URL validation
67
+ // =============================================================================
16
68
  /**
17
69
  * Validates that an editor URL is from an allowed host.
18
70
  * Requires HTTPS for non-localhost URLs.
@@ -21,36 +73,22 @@ const ALLOWED_EDITOR_HOSTS = [
21
73
  function validateEditorUrl(url) {
22
74
  debug('Syntro Runtime', 'Validating editor URL:', url);
23
75
  try {
24
- // Allow relative URLs (same-origin) - they start with /
25
76
  if (url.startsWith('/')) {
26
77
  debug('Syntro Runtime', '✓ Relative URL allowed (same-origin):', url);
27
78
  return true;
28
79
  }
29
80
  const parsed = new URL(url);
30
81
  const isLocalhost = /^(localhost|127\.0\.0\.1)$/.test(parsed.hostname);
31
- debug('Syntro Runtime', 'Parsed URL:', {
32
- hostname: parsed.hostname,
33
- protocol: parsed.protocol,
34
- isLocalhost,
35
- });
36
- // Require HTTPS for non-localhost
37
82
  if (parsed.protocol !== 'https:' && !isLocalhost) {
38
83
  warn('Syntro Runtime', '❌ Editor URL must use HTTPS:', url);
39
84
  return false;
40
85
  }
41
- // Check against allowlist - handle both exact match and suffix match
42
86
  const isAllowed = ALLOWED_EDITOR_HOSTS.some((host) => {
43
87
  if (host.startsWith('.')) {
44
- // Suffix match for wildcards like '.syntrologie.com'
45
88
  return parsed.hostname.endsWith(host) || parsed.hostname === host.slice(1);
46
89
  }
47
90
  return parsed.hostname === host;
48
91
  });
49
- debug('Syntro Runtime', 'Host allowlist check:', {
50
- hostname: parsed.hostname,
51
- allowedHosts: ALLOWED_EDITOR_HOSTS,
52
- isAllowed,
53
- });
54
92
  if (!isAllowed) {
55
93
  warn('Syntro Runtime', '❌ Editor URL host not in allowlist:', parsed.hostname);
56
94
  return false;
@@ -59,107 +97,83 @@ function validateEditorUrl(url) {
59
97
  return true;
60
98
  }
61
99
  catch (e) {
62
- warn('Syntro Runtime', '❌ Invalid editor URL: ' + url, e);
100
+ warn('Syntro Runtime', `❌ Invalid editor URL: ${url}`, e);
63
101
  return false;
64
102
  }
65
103
  }
104
+ // =============================================================================
105
+ // Mode detection
106
+ // =============================================================================
66
107
  /**
67
- * Checks if the editor should be loaded based on URL query parameters.
68
- * Requires editor_token parameter for security (not just syntro_editor flag).
108
+ * Checks if the editor should be loaded.
109
+ * Requires editor_source + editor_conf encoded params with mode === 'editor'.
69
110
  */
70
111
  export const shouldLoadEditor = () => {
71
- var _a;
72
112
  debug('Syntro Runtime', '====== EDITOR LOAD CHECK ======');
73
- if (typeof window === 'undefined') {
74
- debug('Syntro Runtime', 'Not in browser - skipping editor');
113
+ if (typeof window === 'undefined')
75
114
  return false;
76
- }
77
- const params = new URLSearchParams(window.location.search);
78
- debug('Syntro Runtime', 'URL:', window.location.href);
79
- debug('Syntro Runtime', 'Search params:', window.location.search);
80
- // Require editor_token for security - prevents arbitrary editor activation
81
- const hasEditorFlag = params.has('syntro_editor') || params.has('syntro-editor');
82
- const hasEditorToken = params.has('editor_token');
83
- debug('Syntro Runtime', 'Editor flags:', {
84
- hasEditorFlag,
85
- hasEditorToken,
86
- syntro_editor: params.get('syntro_editor'),
87
- 'syntro-editor': params.get('syntro-editor'),
88
- editor_token: hasEditorToken ? `${(_a = params.get('editor_token')) === null || _a === void 0 ? void 0 : _a.slice(0, 10)}...` : 'none',
89
- });
90
- if (hasEditorFlag && !hasEditorToken) {
91
- warn('Syntro Runtime', '❌ Editor activation requires editor_token parameter');
115
+ const source = getEditorSource();
116
+ const conf = getEditorConf();
117
+ if (!(source === null || source === void 0 ? void 0 : source.token) || !conf) {
118
+ debug('Syntro Runtime', 'No encoded params found');
92
119
  debug('Syntro Runtime', '================================');
93
120
  return false;
94
121
  }
95
- const shouldLoad = hasEditorFlag && hasEditorToken;
96
- debug('Syntro Runtime', 'Should load editor:', shouldLoad);
122
+ const should = conf.mode === 'editor';
123
+ debug('Syntro Runtime', `mode: ${conf.mode}, shouldLoad: ${should}`);
97
124
  debug('Syntro Runtime', '================================');
98
- return shouldLoad;
125
+ return should;
99
126
  };
100
127
  /**
101
- * Checks if audit mode should be activated based on URL query parameters.
102
- * Audit mode enables element marking for product touring.
103
- * Requires audit_token parameter for security.
128
+ * Checks if audit mode should be activated.
129
+ * Requires editor_source + editor_conf encoded params with mode === 'audit'.
104
130
  */
105
131
  export const isAuditMode = () => {
106
- var _a;
107
132
  debug('Syntro Runtime', '====== AUDIT MODE CHECK ======');
108
- if (typeof window === 'undefined') {
109
- debug('Syntro Runtime', 'Not in browser - skipping audit');
110
- return false;
111
- }
112
- const params = new URLSearchParams(window.location.search);
113
- const hasAuditFlag = params.has('syntro_audit');
114
- const hasAuditToken = params.has('audit_token');
115
- const auditSessionId = params.get('audit_session_id');
116
- debug('Syntro Runtime', 'Audit flags:', {
117
- hasAuditFlag,
118
- hasAuditToken,
119
- auditSessionId: auditSessionId ? `${auditSessionId.slice(0, 8)}...` : 'none',
120
- audit_token: hasAuditToken ? `${(_a = params.get('audit_token')) === null || _a === void 0 ? void 0 : _a.slice(0, 10)}...` : 'none',
121
- });
122
- // Require syntro_audit flag to activate audit mode
123
- if (!hasAuditFlag) {
124
- debug('Syntro Runtime', 'No syntro_audit param - not in audit mode');
125
- debug('Syntro Runtime', '================================');
133
+ if (typeof window === 'undefined')
126
134
  return false;
127
- }
128
- // Require audit_token for security - prevents arbitrary audit activation
129
- if (!hasAuditToken) {
130
- warn('Syntro Runtime', ' Audit activation requires audit_token parameter');
135
+ const source = getEditorSource();
136
+ const conf = getEditorConf();
137
+ if (!(source === null || source === void 0 ? void 0 : source.token) || !conf) {
138
+ debug('Syntro Runtime', 'No encoded params found');
131
139
  debug('Syntro Runtime', '================================');
132
140
  return false;
133
141
  }
134
- debug('Syntro Runtime', '✓ Audit mode active');
142
+ const isAudit = conf.mode === 'audit';
143
+ debug('Syntro Runtime', `mode: ${conf.mode}, isAudit: ${isAudit}`);
135
144
  debug('Syntro Runtime', '================================');
136
- return true;
145
+ return isAudit;
137
146
  };
138
147
  /**
139
148
  * Checks if any SDK mode (editor or audit) should be loaded.
140
149
  * Returns the mode type if active, or null if neither.
141
150
  */
142
151
  export const getActiveSdkMode = () => {
143
- if (shouldLoadEditor())
144
- return 'editor';
145
- if (isAuditMode())
146
- return 'audit';
152
+ const conf = getEditorConf();
153
+ const source = getEditorSource();
154
+ if (!(source === null || source === void 0 ? void 0 : source.token) || !conf)
155
+ return null;
156
+ if (conf.mode === 'editor' || conf.mode === 'audit')
157
+ return conf.mode;
147
158
  return null;
148
159
  };
149
160
  /**
150
- * Gets the token from URL params (editor_token or audit_token).
151
- * Returns the token value or null if not found.
161
+ * Gets the auth token from editor_source encoded param.
152
162
  */
153
- function getTokenFromUrl() {
154
- if (typeof window === 'undefined')
155
- return null;
156
- const params = new URLSearchParams(window.location.search);
157
- return params.get('editor_token') || params.get('audit_token');
163
+ function getToken() {
164
+ var _a, _b;
165
+ return (_b = (_a = getEditorSource()) === null || _a === void 0 ? void 0 : _a.token) !== null && _b !== void 0 ? _b : null;
166
+ }
167
+ /**
168
+ * Gets the api_base from editor_source encoded param.
169
+ */
170
+ function getApiBase() {
171
+ var _a, _b;
172
+ return (_b = (_a = getEditorSource()) === null || _a === void 0 ? void 0 : _a.api_base) !== null && _b !== void 0 ? _b : null;
158
173
  }
159
174
  /**
160
175
  * Dynamically loads the Editor SDK script.
161
176
  * Validates URL against allowlist and supports SRI integrity checking.
162
- * Requires a valid token (editor_token or audit_token) in URL params.
163
177
  */
164
178
  export const loadEditorSdk = async (editorUrlOrOptions) => {
165
179
  debug('Syntro Runtime', '====== LOAD EDITOR SDK ======');
@@ -171,22 +185,22 @@ export const loadEditorSdk = async (editorUrlOrOptions) => {
171
185
  debug('Syntro Runtime', 'Editor SDK already loaded (window.SyntroEditor exists)');
172
186
  return;
173
187
  }
174
- // Handle both legacy string arg and new options object
175
188
  const options = typeof editorUrlOrOptions === 'string'
176
189
  ? { editorUrl: editorUrlOrOptions }
177
190
  : (editorUrlOrOptions !== null && editorUrlOrOptions !== void 0 ? editorUrlOrOptions : {});
178
- // Check for editor SDK URL override in query params
179
- const params = new URLSearchParams(window.location.search);
180
- const urlParamEditorSdk = params.get('syntro_editor_sdk_url');
181
- // If api_base is provided, derive editor SDK URL from it
182
- const apiBase = params.get('api_base');
191
+ // Derive editor SDK URL from api_base in editor_source
192
+ const apiBase = getApiBase();
183
193
  const derivedEditorSdk = apiBase ? `${apiBase}/api/editor/sdk/editor-sdk.js` : null;
184
- // Priority: URL param > api_base derived > options > CDN default
185
- const baseEditorUrl = urlParamEditorSdk || derivedEditorSdk || options.editorUrl || DEFAULT_EDITOR_URL;
186
- // Get token from URL params (required for SDK access)
187
- const token = getTokenFromUrl();
194
+ // Priority: api_base derived > options
195
+ const baseEditorUrl = derivedEditorSdk || options.editorUrl;
196
+ if (!baseEditorUrl) {
197
+ warn('Syntro Runtime', '❌ No editor SDK URL available (no api_base, no editorUrl option)');
198
+ debug('Syntro Runtime', '================================');
199
+ return;
200
+ }
201
+ const token = getToken();
188
202
  if (!token) {
189
- warn('Syntro Runtime', '❌ No token found in URL params. SDK requires editor_token or audit_token.');
203
+ warn('Syntro Runtime', '❌ No token found in editor_source.');
190
204
  debug('Syntro Runtime', '================================');
191
205
  return;
192
206
  }
@@ -195,9 +209,9 @@ export const loadEditorSdk = async (editorUrlOrOptions) => {
195
209
  debug('Syntro Runtime', 'Editor URL:', editorUrl);
196
210
  debug('Syntro Runtime', 'Options:', {
197
211
  hasIntegrity: !!options.integrity,
198
- isDefault: baseEditorUrl === DEFAULT_EDITOR_URL,
212
+ hasEditorUrl: !!baseEditorUrl,
199
213
  hasApiBase: !!apiBase,
200
- tokenPrefix: token.slice(0, 10) + '...',
214
+ tokenPrefix: `${token.slice(0, 10)}...`,
201
215
  });
202
216
  // Security: Validate URL against allowlist (check base URL without token)
203
217
  if (!validateEditorUrl(baseEditorUrl)) {
@@ -210,7 +224,6 @@ export const loadEditorSdk = async (editorUrlOrOptions) => {
210
224
  const script = document.createElement('script');
211
225
  script.src = editorUrl;
212
226
  script.async = true;
213
- // Add SRI integrity check if provided
214
227
  if (options.integrity) {
215
228
  script.integrity = options.integrity;
216
229
  script.crossOrigin = 'anonymous';
@@ -218,14 +231,12 @@ export const loadEditorSdk = async (editorUrlOrOptions) => {
218
231
  }
219
232
  script.onload = () => {
220
233
  debug('Syntro Runtime', '✓ Editor SDK script loaded successfully');
221
- debug('Syntro Runtime', 'window.SyntroEditor:', !!window.SyntroEditor);
222
234
  debug('Syntro Runtime', '================================');
223
235
  resolve();
224
236
  };
225
237
  script.onerror = (err) => {
226
238
  console.error('[Syntro Runtime] ❌ Failed to load Editor SDK:', err);
227
239
  console.error('[Syntro Runtime] URL attempted:', editorUrl);
228
- console.error('[Syntro Runtime] Check: Is the URL accessible? CORS? Network? Token valid?');
229
240
  debug('Syntro Runtime', '================================');
230
241
  reject(err);
231
242
  };
@@ -1 +1 @@
1
- {"version":3,"file":"editorLoader.js","sourceRoot":"","sources":["../src/editorLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editorLoader.js","sourceRoot":"","sources":["../src/editorLoader.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * Transforms Smart Canvas events into normalized events for the EventBus.
5
5
  */
6
- import type { NormalizedEvent } from '../types';
7
6
  import type { CanvasSurface } from '../../telemetry/types';
7
+ import type { NormalizedEvent } from '../types';
8
8
  /**
9
9
  * Canvas opened event.
10
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../../src/events/normalizers/canvas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../../src/events/normalizers/canvas.ts"],"names":[],"mappings":"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"}
@@ -10,14 +10,14 @@ export declare const NormalizedEventZ: z.ZodObject<{
10
10
  props: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
11
11
  schemaVersion: z.ZodString;
12
12
  }, "strip", z.ZodTypeAny, {
13
- name: string;
14
13
  source: "posthog" | "canvas" | "derived";
14
+ name: string;
15
15
  schemaVersion: string;
16
16
  ts: number;
17
17
  props?: Record<string, unknown> | undefined;
18
18
  }, {
19
- name: string;
20
19
  source: "posthog" | "canvas" | "derived";
20
+ name: string;
21
21
  schemaVersion: string;
22
22
  ts: number;
23
23
  props?: Record<string, unknown> | undefined;
@@ -39,14 +39,14 @@ export declare const EventFilterZ: z.ZodObject<{
39
39
  * Validate a NormalizedEvent object.
40
40
  */
41
41
  export declare function validateNormalizedEvent(data: unknown): z.SafeParseReturnType<{
42
- name: string;
43
42
  source: "posthog" | "canvas" | "derived";
43
+ name: string;
44
44
  schemaVersion: string;
45
45
  ts: number;
46
46
  props?: Record<string, unknown> | undefined;
47
47
  }, {
48
- name: string;
49
48
  source: "posthog" | "canvas" | "derived";
49
+ name: string;
50
50
  schemaVersion: string;
51
51
  ts: number;
52
52
  props?: Record<string, unknown> | undefined;
@@ -7,7 +7,7 @@ export const NormalizedEventZ = z.object({
7
7
  ts: z.number(),
8
8
  name: z.string(),
9
9
  source: EventSourceZ,
10
- props: z.record(z.unknown()).optional(),
10
+ props: z.record(z.string(), z.unknown()).optional(),
11
11
  schemaVersion: z.string(),
12
12
  });
13
13
  export const EventFilterZ = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/events/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;CAC1B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAa;IACnD,OAAO,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAa;IAC/C,OAAO,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/events/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;CAC1B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAa;IACnD,OAAO,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAa;IAC/C,OAAO,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"}
@@ -6,8 +6,8 @@
6
6
  */
7
7
  import { GrowthBook } from '@growthbook/growthbook';
8
8
  import type { Context as GrowthBookInitOptions } from '@growthbook/growthbook';
9
- import type { ExperimentClient } from '../types';
10
9
  import type { TileConfig } from '../../types';
10
+ import type { ExperimentClient } from '../types';
11
11
  /**
12
12
  * Callback fired when a user is assigned to an experiment.
13
13
  */
@@ -53,6 +53,7 @@ export declare class GrowthBookAdapter implements ExperimentClient {
53
53
  setAttributes(attrs: Record<string, unknown>): void;
54
54
  setForcedVariations(variations: Record<string, number>): void;
55
55
  getFeatureValue<T>(key: string, fallback: T): T;
56
+ getAllFeatures(): Record<string, unknown>;
56
57
  shouldRenderRectangle(tile: TileConfig): boolean;
57
58
  }
58
59
  /**
@@ -58,8 +58,16 @@ export class GrowthBookAdapter {
58
58
  getFeatureValue(key, fallback) {
59
59
  return this.gb.getFeatureValue(key, fallback);
60
60
  }
61
+ getAllFeatures() {
62
+ const features = this.gb.getFeatures();
63
+ const result = {};
64
+ for (const key of Object.keys(features)) {
65
+ result[key] = this.gb.getFeatureValue(key, null);
66
+ }
67
+ return result;
68
+ }
61
69
  shouldRenderRectangle(tile) {
62
- const experiment = tile.experiment;
70
+ const { experiment } = tile;
63
71
  if (!experiment)
64
72
  return true;
65
73
  if (!experiment.featureKey)
@@ -1 +1 @@
1
- {"version":3,"file":"growthbook.js","sourceRoot":"","sources":["../../../src/experiments/adapters/growthbook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"growthbook.js","sourceRoot":"","sources":["../../../src/experiments/adapters/growthbook.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,11 @@ export interface ExperimentClient {
27
27
  * Refresh/load feature flags from the server.
28
28
  */
29
29
  refreshFeatures?(): Promise<void>;
30
+ /**
31
+ * Get all loaded features (for prefix-based discovery).
32
+ * Returns a map of feature key -> feature value.
33
+ */
34
+ getAllFeatures?(): Record<string, unknown>;
30
35
  }
31
36
  /**
32
37
  * @deprecated Use ExperimentClient instead
@@ -1 +1 @@
1
- {"version":3,"file":"cdnFetcher.js","sourceRoot":"","sources":["../../src/fetchers/cdnFetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cdnFetcher.js","sourceRoot":"","sources":["../../src/fetchers/cdnFetcher.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,26 @@
1
- import type { ConfigFetcher, FetchResult } from './types';
2
1
  import type { ExperimentClient } from '../experiments/types';
2
+ import type { ConfigFetcher, FetchResult } from './types';
3
3
  export interface ExperimentsFetcherOptions {
4
4
  /**
5
5
  * Experiment client instance (e.g., from createGrowthBookClient).
6
6
  */
7
7
  client: ExperimentClient;
8
8
  /**
9
- * Feature key that contains the config object.
9
+ * Single feature key for the monolithic config (legacy mode).
10
10
  * @default "smart-canvas-config"
11
11
  */
12
12
  featureKey?: string;
13
+ /**
14
+ * Feature key for the variant manifest (lists active variant flag keys).
15
+ * When set, enables multi-flag mode.
16
+ */
17
+ manifestKey?: string;
18
+ /**
19
+ * Prefix for convention-based variant flag discovery.
20
+ * All GrowthBook features matching this prefix will be evaluated.
21
+ * Used as fallback when manifestKey is not set or returns empty.
22
+ */
23
+ variantFlagPrefix?: string;
13
24
  }
14
25
  /**
15
26
  * Fetches config from an experiment/feature flag system.
@@ -24,8 +35,19 @@ export declare class ExperimentsFetcher implements ConfigFetcher {
24
35
  readonly name = "experiments";
25
36
  private client;
26
37
  private featureKey;
38
+ private manifestKey?;
39
+ private variantFlagPrefix?;
27
40
  constructor(options: ExperimentsFetcherOptions);
28
41
  fetch(): Promise<FetchResult>;
42
+ /**
43
+ * Resolve config from multiple variant feature flags.
44
+ * Returns the first active variant config, or null if none match.
45
+ */
46
+ private fetchMultiFlag;
47
+ /**
48
+ * Get variant flag keys from manifest or prefix discovery.
49
+ */
50
+ private getVariantFlagKeys;
29
51
  }
30
52
  /**
31
53
  * Factory function for creating an experiments-based fetcher.