@syntrologie/runtime-sdk 2.8.0-canary.71 → 2.8.0-canary.73

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.
@@ -3456,14 +3456,20 @@ function getAntiFlickerSnippet(config = {}) {
3456
3456
  }
3457
3457
 
3458
3458
  // src/version.ts
3459
- var SDK_VERSION = "2.8.0-canary.71";
3459
+ var SDK_VERSION = "2.8.0-canary.73";
3460
3460
 
3461
3461
  // src/types.ts
3462
3462
  var SDK_SCHEMA_VERSION = "2.0";
3463
3463
 
3464
3464
  // src/fetchers/mergeConfigs.ts
3465
- function resolveVariantConfigs(client, keys, _strategy = "first-match") {
3466
- var _a2, _b, _c, _d;
3465
+ function resolveVariantConfigs(client, keys, strategy = "merge") {
3466
+ if (strategy === "first-match") {
3467
+ return resolveFirstMatch(client, keys);
3468
+ }
3469
+ return resolveMerge(client, keys);
3470
+ }
3471
+ function resolveFirstMatch(client, keys) {
3472
+ var _a2;
3467
3473
  for (const key of keys) {
3468
3474
  const value = (_a2 = client.getFeatureValue) == null ? void 0 : _a2.call(client, key, null);
3469
3475
  if (!value || typeof value !== "object") continue;
@@ -3471,21 +3477,60 @@ function resolveVariantConfigs(client, keys, _strategy = "first-match") {
3471
3477
  const hasTiles = variant.tiles && variant.tiles.length > 0;
3472
3478
  const hasActions = variant.actions && variant.actions.length > 0;
3473
3479
  if (hasTiles || hasActions) {
3474
- return {
3475
- tiles: (_b = variant.tiles) != null ? _b : [],
3476
- actions: (_c = variant.actions) != null ? _c : [],
3477
- fetchedAt: (_d = variant.fetchedAt) != null ? _d : (/* @__PURE__ */ new Date()).toISOString(),
3478
- ...variant.schemaVersion && { schemaVersion: variant.schemaVersion },
3479
- ...variant.configVersion && { configVersion: variant.configVersion },
3480
- ...variant.canvasTitle && { canvasTitle: variant.canvasTitle },
3481
- ...variant.theme && { theme: variant.theme },
3482
- ...variant.launcher && { launcher: variant.launcher },
3483
- ...variant.meta && { meta: variant.meta }
3484
- };
3480
+ return buildConfig([variant]);
3485
3481
  }
3486
3482
  }
3487
3483
  return null;
3488
3484
  }
3485
+ function resolveMerge(client, keys) {
3486
+ var _a2;
3487
+ const variants = [];
3488
+ for (const key of keys) {
3489
+ const value = (_a2 = client.getFeatureValue) == null ? void 0 : _a2.call(client, key, null);
3490
+ if (!value || typeof value !== "object") continue;
3491
+ const variant = value;
3492
+ const hasTiles = variant.tiles && variant.tiles.length > 0;
3493
+ const hasActions = variant.actions && variant.actions.length > 0;
3494
+ if (hasTiles || hasActions) {
3495
+ variants.push(variant);
3496
+ }
3497
+ }
3498
+ if (variants.length === 0) return null;
3499
+ return buildConfig(variants);
3500
+ }
3501
+ function buildConfig(variants) {
3502
+ const allTiles = [];
3503
+ const allActions = [];
3504
+ let fetchedAt;
3505
+ let schemaVersion;
3506
+ let configVersion;
3507
+ let canvasTitle;
3508
+ let theme;
3509
+ let launcher;
3510
+ let meta;
3511
+ for (const variant of variants) {
3512
+ if (variant.tiles) allTiles.push(...variant.tiles);
3513
+ if (variant.actions) allActions.push(...variant.actions);
3514
+ fetchedAt != null ? fetchedAt : fetchedAt = variant.fetchedAt;
3515
+ schemaVersion != null ? schemaVersion : schemaVersion = variant.schemaVersion;
3516
+ configVersion != null ? configVersion : configVersion = variant.configVersion;
3517
+ canvasTitle != null ? canvasTitle : canvasTitle = variant.canvasTitle;
3518
+ theme != null ? theme : theme = variant.theme;
3519
+ launcher != null ? launcher : launcher = variant.launcher;
3520
+ meta != null ? meta : meta = variant.meta;
3521
+ }
3522
+ return {
3523
+ tiles: allTiles,
3524
+ actions: allActions,
3525
+ fetchedAt: fetchedAt != null ? fetchedAt : (/* @__PURE__ */ new Date()).toISOString(),
3526
+ ...schemaVersion && { schemaVersion },
3527
+ ...configVersion && { configVersion },
3528
+ ...canvasTitle && { canvasTitle },
3529
+ ...theme && { theme },
3530
+ ...launcher && { launcher },
3531
+ ...meta && { meta }
3532
+ };
3533
+ }
3489
3534
 
3490
3535
  // src/logger.ts
3491
3536
  var debugEnabled = false;
@@ -9142,15 +9187,30 @@ function createActionEngine(options) {
9142
9187
  const handles = [];
9143
9188
  const appliedHandles = [];
9144
9189
  try {
9145
- for (const action of actions) {
9146
- const handle = await apply(action);
9147
- handles.push(handle);
9148
- appliedHandles.push(handle);
9190
+ const results = await Promise.allSettled(actions.map((action) => apply(action)));
9191
+ const errors = [];
9192
+ for (const result of results) {
9193
+ if (result.status === "fulfilled") {
9194
+ handles.push(result.value);
9195
+ appliedHandles.push(result.value);
9196
+ } else {
9197
+ errors.push(
9198
+ result.reason instanceof Error ? result.reason : new Error(String(result.reason))
9199
+ );
9200
+ }
9201
+ }
9202
+ if (errors.length > 0 && appliedHandles.length === 0) {
9203
+ throw errors[0];
9204
+ }
9205
+ if (errors.length > 0) {
9206
+ console.warn(
9207
+ `[ActionEngine] ${errors.length}/${actions.length} action(s) failed in batch:`,
9208
+ errors.map((e) => e.message).join("; ")
9209
+ );
9149
9210
  }
9150
9211
  } catch (error2) {
9151
9212
  console.error(
9152
- `[ActionEngine] Batch apply FAILED at action ${appliedHandles.length + 1}/${actions.length}.`,
9153
- `Successfully applied: ${appliedHandles.length}. Rolling back...`,
9213
+ `[ActionEngine] Batch apply FAILED. Successfully applied: ${appliedHandles.length}. Rolling back...`,
9154
9214
  error2
9155
9215
  );
9156
9216
  for (const handle of appliedHandles) {
@@ -12402,4 +12462,4 @@ export {
12402
12462
  encodeToken,
12403
12463
  Syntro
12404
12464
  };
12405
- //# sourceMappingURL=chunk-WX32GVSP.js.map
12465
+ //# sourceMappingURL=chunk-P3GRWZXE.js.map