@syntrologie/runtime-sdk 2.0.1-canary.3 → 2.1.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 (43) hide show
  1. package/CAPABILITIES.md +13 -21
  2. package/dist/actions/executors/index.d.ts +2 -3
  3. package/dist/actions/executors/index.js +4 -9
  4. package/dist/actions/executors/index.js.map +1 -1
  5. package/dist/apps/AppLoader.d.ts +1 -0
  6. package/dist/apps/AppLoader.js +19 -7
  7. package/dist/apps/AppLoader.js.map +1 -1
  8. package/dist/apps/index.d.ts +2 -3
  9. package/dist/apps/index.js +2 -3
  10. package/dist/apps/index.js.map +1 -1
  11. package/dist/apps/nav/index.js +6 -6
  12. package/dist/apps/nav/index.js.map +3 -3
  13. package/dist/bootstrap.d.ts +1 -1
  14. package/dist/bootstrap.js +1 -1
  15. package/dist/bootstrap.js.map +1 -1
  16. package/dist/config-validator.d.ts +49 -0
  17. package/dist/config-validator.js +173 -0
  18. package/dist/config-validator.js.map +1 -0
  19. package/dist/configFetcher.js +9 -1
  20. package/dist/configFetcher.js.map +1 -1
  21. package/dist/events/schema.d.ts +4 -4
  22. package/dist/index.d.ts +2 -0
  23. package/dist/index.js +2 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/smart-canvas.esm.js +23 -23
  26. package/dist/smart-canvas.esm.js.map +4 -4
  27. package/dist/smart-canvas.js +393 -926
  28. package/dist/smart-canvas.js.map +4 -4
  29. package/dist/smart-canvas.min.js +23 -23
  30. package/dist/smart-canvas.min.js.map +4 -4
  31. package/dist/telemetry/adapters/noop.d.ts +1 -18
  32. package/dist/telemetry/adapters/noop.js +5 -38
  33. package/dist/telemetry/adapters/noop.js.map +1 -1
  34. package/dist/telemetry/index.d.ts +0 -1
  35. package/dist/telemetry/registry.js +1 -1
  36. package/dist/telemetry/registry.js.map +1 -1
  37. package/dist/types.d.ts +21 -0
  38. package/dist/types.js +15 -2
  39. package/dist/types.js.map +1 -1
  40. package/dist/version.d.ts +13 -0
  41. package/dist/version.js +14 -0
  42. package/dist/version.js.map +1 -0
  43. package/package.json +8 -5
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Config validation and migration for SDK versioning.
3
+ *
4
+ * This module handles:
5
+ * - Validating configs against the current SDK schema version
6
+ * - Migrating old config formats to current version
7
+ * - Providing warnings for version mismatches
8
+ */
9
+ import { SDK_SCHEMA_VERSION } from './types';
10
+ /**
11
+ * Parse a schema version string into major and minor numbers.
12
+ */
13
+ export function parseVersion(version) {
14
+ const parts = version.split('.');
15
+ return {
16
+ major: parseInt(parts[0] || '0', 10),
17
+ minor: parseInt(parts[1] || '0', 10),
18
+ };
19
+ }
20
+ /**
21
+ * Validate and normalize a config, handling version mismatches.
22
+ *
23
+ * This function:
24
+ * 1. Checks if config is valid object
25
+ * 2. Compares config schema version with SDK version
26
+ * 3. Migrates old configs to current version
27
+ * 4. Returns validation result with warnings/errors
28
+ *
29
+ * @param config - Raw config from backend or fetcher
30
+ * @returns Validation result with any migrations applied
31
+ */
32
+ export function validateConfig(config) {
33
+ const warnings = [];
34
+ const errors = [];
35
+ // Type check
36
+ if (!config || typeof config !== 'object') {
37
+ return {
38
+ valid: false,
39
+ errors: ['Config must be an object'],
40
+ warnings,
41
+ };
42
+ }
43
+ const typedConfig = config;
44
+ // Check required fields
45
+ if (!typedConfig.tiles) {
46
+ errors.push('Config missing required field: tiles');
47
+ }
48
+ if (!typedConfig.actions) {
49
+ errors.push('Config missing required field: actions');
50
+ }
51
+ if (!typedConfig.fetchedAt) {
52
+ errors.push('Config missing required field: fetchedAt');
53
+ }
54
+ if (errors.length > 0) {
55
+ return { valid: false, errors, warnings };
56
+ }
57
+ // Check schema version
58
+ const configVersion = typedConfig.schemaVersion || '1.0';
59
+ const configVer = parseVersion(configVersion);
60
+ const sdkVer = parseVersion(SDK_SCHEMA_VERSION);
61
+ // Future schema version (newer backend)
62
+ if (configVer.major > sdkVer.major) {
63
+ warnings.push(`Config schema v${configVersion} is newer than SDK v${SDK_SCHEMA_VERSION}. ` +
64
+ `Some features may not work. Update SDK to latest version.`);
65
+ }
66
+ // Old schema version (older backend or missing version)
67
+ if (configVer.major < sdkVer.major || !typedConfig.schemaVersion) {
68
+ warnings.push(`Config schema v${configVersion} is older than SDK v${SDK_SCHEMA_VERSION}. ` +
69
+ `Migrating config to current version.`);
70
+ return {
71
+ valid: true,
72
+ warnings,
73
+ errors,
74
+ migratedConfig: migrateConfig(typedConfig, configVersion),
75
+ };
76
+ }
77
+ // Compatible version (same major version)
78
+ return {
79
+ valid: true,
80
+ warnings,
81
+ errors,
82
+ };
83
+ }
84
+ /**
85
+ * Migrate old config format to current SDK version.
86
+ *
87
+ * This function applies all necessary transformations to bring
88
+ * an old config up to the current schema version.
89
+ *
90
+ * @param config - Config to migrate
91
+ * @param fromVersion - Version to migrate from
92
+ * @returns Migrated config at current SDK version
93
+ */
94
+ function migrateConfig(config, fromVersion) {
95
+ let migrated = { ...config };
96
+ const fromVer = parseVersion(fromVersion);
97
+ // v1.x -> v2.x migration
98
+ if (fromVer.major === 1) {
99
+ migrated = migrateV1ToV2(migrated);
100
+ }
101
+ // Update schema version to current
102
+ migrated.schemaVersion = SDK_SCHEMA_VERSION;
103
+ return migrated;
104
+ }
105
+ /**
106
+ * Migrate v1.x config to v2.0 format.
107
+ *
108
+ * Changes in v2.0:
109
+ * - Introduced ActivationConfig to replace experiment field
110
+ * - Unified ActionStep format
111
+ * - Added schemaVersion field
112
+ */
113
+ function migrateV1ToV2(config) {
114
+ const migrated = {
115
+ schemaVersion: '2.0',
116
+ tiles: [],
117
+ actions: config.actions || [],
118
+ fetchedAt: config.fetchedAt || new Date().toISOString(),
119
+ };
120
+ // Migrate tiles
121
+ if (config.tiles && Array.isArray(config.tiles)) {
122
+ migrated.tiles = config.tiles.map((tile) => {
123
+ const migratedTile = { ...tile };
124
+ // Migrate deprecated experiment field to activation
125
+ if (tile.experiment && !tile.activation) {
126
+ const exp = tile.experiment;
127
+ // Convert old experiment format to new activation format
128
+ if (exp.featureKey) {
129
+ migratedTile.activation = {
130
+ strategy: {
131
+ type: 'external',
132
+ provider: 'growthbook',
133
+ featureKey: exp.featureKey,
134
+ fallback: false,
135
+ },
136
+ };
137
+ }
138
+ // Remove deprecated field
139
+ delete migratedTile.experiment;
140
+ }
141
+ return migratedTile;
142
+ });
143
+ }
144
+ // Copy optional fields
145
+ if (config.configVersion)
146
+ migrated.configVersion = config.configVersion;
147
+ if (config.canvasTitle)
148
+ migrated.canvasTitle = config.canvasTitle;
149
+ if (config.theme)
150
+ migrated.theme = config.theme;
151
+ if (config.launcher)
152
+ migrated.launcher = config.launcher;
153
+ if (config.routes)
154
+ migrated.routes = config.routes;
155
+ return migrated;
156
+ }
157
+ /**
158
+ * Check if a config needs migration.
159
+ *
160
+ * @param config - Config to check
161
+ * @returns True if migration is needed
162
+ */
163
+ export function needsMigration(config) {
164
+ if (!config || typeof config !== 'object') {
165
+ return false;
166
+ }
167
+ const typedConfig = config;
168
+ const configVersion = typedConfig.schemaVersion || '1.0';
169
+ const configVer = parseVersion(configVersion);
170
+ const sdkVer = parseVersion(SDK_SCHEMA_VERSION);
171
+ return configVer.major < sdkVer.major || !typedConfig.schemaVersion;
172
+ }
173
+ //# sourceMappingURL=config-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-validator.js","sourceRoot":"","sources":["../src/config-validator.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { SDK_SCHEMA_VERSION } from './types';
2
+ import { SDK_VERSION } from './version';
1
3
  import { debug } from './logger';
2
4
  /**
3
5
  * Allowed hosts for fetching config.
@@ -82,7 +84,13 @@ export const createCanvasConfigFetcher = ({ configUri, experiments, featureKey,
82
84
  // Security: Only send credentials to same-origin requests
83
85
  // This prevents leaking cookies to third-party servers
84
86
  const effectiveCredentials = credentials !== null && credentials !== void 0 ? credentials : (isSameOrigin(uri) ? 'include' : 'omit');
85
- const response = await fetch(uri, { credentials: effectiveCredentials });
87
+ const response = await fetch(uri, {
88
+ credentials: effectiveCredentials,
89
+ headers: {
90
+ 'X-SDK-Version': SDK_VERSION,
91
+ 'X-SDK-Schema-Version': SDK_SCHEMA_VERSION,
92
+ },
93
+ });
86
94
  if (!response.ok) {
87
95
  throw new Error(`SmartCanvas: failed to fetch config (${response.status})`);
88
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"configFetcher.js","sourceRoot":"","sources":["../src/configFetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configFetcher.js","sourceRoot":"","sources":["../src/configFetcher.ts"],"names":[],"mappings":"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"}
@@ -12,14 +12,14 @@ export declare const NormalizedEventZ: z.ZodObject<{
12
12
  }, "strip", z.ZodTypeAny, {
13
13
  name: string;
14
14
  source: "posthog" | "canvas" | "derived";
15
- ts: number;
16
15
  schemaVersion: string;
16
+ ts: number;
17
17
  props?: Record<string, unknown> | undefined;
18
18
  }, {
19
19
  name: string;
20
20
  source: "posthog" | "canvas" | "derived";
21
- ts: number;
22
21
  schemaVersion: string;
22
+ ts: number;
23
23
  props?: Record<string, unknown> | undefined;
24
24
  }>;
25
25
  export declare const EventFilterZ: z.ZodObject<{
@@ -41,14 +41,14 @@ export declare const EventFilterZ: z.ZodObject<{
41
41
  export declare function validateNormalizedEvent(data: unknown): z.SafeParseReturnType<{
42
42
  name: string;
43
43
  source: "posthog" | "canvas" | "derived";
44
- ts: number;
45
44
  schemaVersion: string;
45
+ ts: number;
46
46
  props?: Record<string, unknown> | undefined;
47
47
  }, {
48
48
  name: string;
49
49
  source: "posthog" | "canvas" | "derived";
50
- ts: number;
51
50
  schemaVersion: string;
51
+ ts: number;
52
52
  props?: Record<string, unknown> | undefined;
53
53
  }>;
54
54
  /**
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
+ export * from './version';
1
2
  export * from './types';
3
+ export * from './config-validator';
2
4
  export * from './telemetry';
3
5
  export * from './experiments';
4
6
  export * from './hooks/useShadowCanvasConfig';
package/dist/index.js CHANGED
@@ -1,4 +1,6 @@
1
+ export * from './version';
1
2
  export * from './types';
3
+ export * from './config-validator';
2
4
  export * from './telemetry';
3
5
  export * from './experiments';
4
6
  export * from './hooks/useShadowCanvasConfig';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAEnC,sCAAsC;AACtC,cAAc,WAAW,CAAC;AAE1B,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,mDAAmD;AACnD,cAAc,WAAW,CAAC;AAE1B,mCAAmC;AACnC,cAAc,UAAU,CAAC;AAEzB,gDAAgD;AAChD,cAAc,SAAS,CAAC;AAExB,mDAAmD;AACnD,cAAc,aAAa,CAAC;AAE5B,sDAAsD;AACtD,cAAc,WAAW,CAAC;AAE1B,qDAAqD;AACrD,cAAc,YAAY,CAAC;AAE3B,yCAAyC;AACzC,cAAc,WAAW,CAAC;AAE1B,0BAA0B;AAC1B,cAAc,QAAQ,CAAC;AAEvB,kBAAkB;AAClB,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGtE,mCAAmC;AACnC,OAAO,EACL,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAE3B,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAEnC,sCAAsC;AACtC,cAAc,WAAW,CAAC;AAE1B,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,mDAAmD;AACnD,cAAc,WAAW,CAAC;AAE1B,mCAAmC;AACnC,cAAc,UAAU,CAAC;AAEzB,gDAAgD;AAChD,cAAc,SAAS,CAAC;AAExB,mDAAmD;AACnD,cAAc,aAAa,CAAC;AAE5B,sDAAsD;AACtD,cAAc,WAAW,CAAC;AAE1B,qDAAqD;AACrD,cAAc,YAAY,CAAC;AAE3B,yCAAyC;AACzC,cAAc,WAAW,CAAC;AAE1B,0BAA0B;AAC1B,cAAc,QAAQ,CAAC;AAEvB,kBAAkB;AAClB,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGtE,mCAAmC;AACnC,OAAO,EACL,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAE3B,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}