@xiboplayer/renderer 0.3.6 → 0.4.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xiboplayer/renderer",
3
- "version": "0.3.6",
3
+ "version": "0.4.0",
4
4
  "description": "RendererLite - Fast, efficient XLF layout rendering engine",
5
5
  "type": "module",
6
6
  "main": "./src/index.js",
@@ -12,8 +12,8 @@
12
12
  "dependencies": {
13
13
  "nanoevents": "^9.1.0",
14
14
  "pdfjs-dist": "^4.10.38",
15
- "@xiboplayer/cache": "0.3.6",
16
- "@xiboplayer/utils": "0.3.6"
15
+ "@xiboplayer/cache": "0.4.0",
16
+ "@xiboplayer/utils": "0.4.0"
17
17
  },
18
18
  "devDependencies": {
19
19
  "vitest": "^2.0.0",
package/src/layout.js CHANGED
@@ -4,6 +4,9 @@
4
4
  */
5
5
 
6
6
  import { cacheWidgetHtml } from '@xiboplayer/cache';
7
+ import { createLogger } from '@xiboplayer/utils';
8
+
9
+ const log = createLogger('Layout');
7
10
 
8
11
  export class LayoutTranslator {
9
12
  constructor(xmds) {
@@ -124,9 +127,9 @@ export class LayoutTranslator {
124
127
 
125
128
  for (let attempt = 1; attempt <= retries; attempt++) {
126
129
  try {
127
- console.log(`[Layout] Fetching resource for ${type} widget (layout=${layoutId}, region=${regionId}, media=${id}) - attempt ${attempt}/${retries}`);
130
+ log.info(`Fetching resource for ${type} widget (layout=${layoutId}, region=${regionId}, media=${id}) - attempt ${attempt}/${retries}`);
128
131
  raw = await this.xmds.getResource(layoutId, regionId, id);
129
- console.log(`[Layout] Got resource HTML (${raw.length} chars)`);
132
+ log.info(`Got resource HTML (${raw.length} chars)`);
130
133
 
131
134
  // Store widget HTML in cache and save cache key for iframe src generation
132
135
  const widgetCacheKey = await cacheWidgetHtml(layoutId, regionId, id, raw);
@@ -137,12 +140,12 @@ export class LayoutTranslator {
137
140
 
138
141
  } catch (error) {
139
142
  lastError = error;
140
- console.warn(`[Layout] Failed to get resource (attempt ${attempt}/${retries}):`, error.message);
143
+ log.warn(`Failed to get resource (attempt ${attempt}/${retries}):`, error.message);
141
144
 
142
145
  // If not last attempt, wait before retry
143
146
  if (attempt < retries) {
144
147
  const delay = attempt * 2000; // 2s, 4s backoff
145
- console.log(`[Layout] Retrying in ${delay}ms...`);
148
+ log.info(`Retrying in ${delay}ms...`);
146
149
  await new Promise(resolve => setTimeout(resolve, delay));
147
150
  }
148
151
  }
@@ -150,7 +153,7 @@ export class LayoutTranslator {
150
153
 
151
154
  // If all retries failed, try to use cached version as fallback
152
155
  if (!raw && lastError) {
153
- console.warn(`[Layout] All retries failed, checking for cached widget HTML...`);
156
+ log.warn('All retries failed, checking for cached widget HTML...');
154
157
 
155
158
  // Try to get cached widget HTML directly from Cache API
156
159
  try {
@@ -161,14 +164,14 @@ export class LayoutTranslator {
161
164
  if (cached) {
162
165
  raw = await cached.text();
163
166
  options.widgetCacheKey = cachedKey;
164
- console.log(`[Layout] Using cached widget HTML (${raw.length} chars) - CMS update pending`);
167
+ log.info(`Using cached widget HTML (${raw.length} chars) - CMS update pending`);
165
168
  } else {
166
- console.error(`[Layout] No cached version available for widget ${id}`);
169
+ log.error(`No cached version available for widget ${id}`);
167
170
  // Show minimal placeholder that doesn't look like an error
168
171
  raw = `<div style="display:flex;align-items:center;justify-content:center;height:100%;color:#999;font-size:18px;">Content updating...</div>`;
169
172
  }
170
173
  } catch (cacheError) {
171
- console.error(`[Layout] Cache fallback failed:`, cacheError);
174
+ log.error('Cache fallback failed:', cacheError);
172
175
  raw = `<div style="display:flex;align-items:center;justify-content:center;height:100%;color:#999;font-size:18px;">Content updating...</div>`;
173
176
  }
174
177
  }
@@ -894,7 +897,7 @@ ${mediaJS}
894
897
  startFn = iframe.startFn;
895
898
  stopFn = iframe.stopFn;
896
899
  } else {
897
- console.warn(`[Layout] Unsupported media type: ${media.type}`);
900
+ log.warn(`Unsupported media type: ${media.type}`);
898
901
  startFn = `() => console.log('Unsupported media type: ${media.type}')`;
899
902
  }
900
903
  }