@xiboplayer/schedule 0.7.2 → 0.7.3

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xiboplayer/schedule",
3
- "version": "0.7.2",
3
+ "version": "0.7.3",
4
4
  "description": "Complete scheduling solution: campaigns, dayparting, interrupts, and overlays",
5
5
  "type": "module",
6
6
  "main": "./src/index.js",
@@ -12,10 +12,10 @@
12
12
  "./overlays": "./src/overlays.js"
13
13
  },
14
14
  "dependencies": {
15
- "@xiboplayer/utils": "0.7.2"
15
+ "@xiboplayer/utils": "0.7.3"
16
16
  },
17
17
  "devDependencies": {
18
- "vitest": "^2.0.0"
18
+ "vitest": "^2.1.9"
19
19
  },
20
20
  "keywords": [
21
21
  "xibo",
package/src/overlays.js CHANGED
@@ -159,18 +159,6 @@ export class OverlayScheduler {
159
159
  logger.debug('Cleared all overlays');
160
160
  }
161
161
 
162
- /**
163
- * Process overlay layouts (compatibility method for interrupt scheduler pattern)
164
- * @param {Array} layouts - Base layouts
165
- * @param {Array} overlays - Overlay layouts
166
- * @returns {Array} Layouts (unchanged, overlays are separate)
167
- */
168
- processOverlays(layouts, overlays) {
169
- // Overlays don't modify the main layout loop
170
- // They are rendered separately on top
171
- this.setOverlays(overlays);
172
- return layouts;
173
- }
174
162
  }
175
163
 
176
164
  export const overlayScheduler = new OverlayScheduler();
@@ -219,7 +219,7 @@ describe('OverlayScheduler', () => {
219
219
  });
220
220
  });
221
221
 
222
- // ── clear / processOverlays ───────────────────────────────────
222
+ // ── clear ───────────────────────────────────
223
223
 
224
224
  describe('clear', () => {
225
225
  it('removes all overlays', () => {
@@ -228,14 +228,4 @@ describe('OverlayScheduler', () => {
228
228
  expect(scheduler.overlays).toHaveLength(0);
229
229
  });
230
230
  });
231
-
232
- describe('processOverlays', () => {
233
- it('sets overlays and returns layouts unchanged', () => {
234
- const layouts = [{ id: 1 }, { id: 2 }];
235
- const overlays = [makeOverlay({ file: 10 })];
236
- const result = scheduler.processOverlays(layouts, overlays);
237
- expect(result).toBe(layouts);
238
- expect(scheduler.overlays).toHaveLength(1);
239
- });
240
- });
241
231
  });
package/src/schedule.js CHANGED
@@ -588,15 +588,6 @@ export class ScheduleManager {
588
588
  log.info(`Recorded play for layout ${layoutId} (${cleaned.length} plays in last hour)`);
589
589
  }
590
590
 
591
- /**
592
- * Get the max priority of any time-active layout (ignoring rate-limit filtering).
593
- * Returns 0 if no layouts are active or if getCurrentLayouts() hasn't been called.
594
- * @returns {number}
595
- */
596
- getMaxActivePriority() {
597
- return this._maxActivePriority || 0;
598
- }
599
-
600
591
  /**
601
592
  * Check if a layout file is a sync event (part of multi-display sync group)
602
593
  * @param {string} layoutFile - Layout file identifier (e.g., '123')
@@ -736,6 +727,14 @@ export class ScheduleManager {
736
727
  return queue[(this._queuePosition + 1) % queue.length];
737
728
  }
738
729
 
730
+ /**
731
+ * Public API to invalidate the cached schedule queue.
732
+ * Called by PlayerCore when layout durations are corrected at runtime.
733
+ */
734
+ invalidateQueue() {
735
+ this._invalidateQueue();
736
+ }
737
+
739
738
  /**
740
739
  * Invalidate the cached queue (called on schedule change, time boundaries, etc.)
741
740
  */