@mindexec/cli 0.2.331 → 0.2.332

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": "@mindexec/cli",
3
- "version": "0.2.331",
3
+ "version": "0.2.332",
4
4
  "description": "MindExec local runtime and bridge CLI",
5
5
  "main": "server.js",
6
6
  "type": "module",
@@ -5,7 +5,7 @@
5
5
  const DEBUG = false;
6
6
  const FPS_DEBUG = false;
7
7
  const FRAME_PERF_DEBUG = false;
8
- const MINDMAP_CORE_BUILD_ID = '20260621-overlay-mid-fallback-v815';
8
+ const MINDMAP_CORE_BUILD_ID = '20260621-css3d-external-media-cors-v816';
9
9
  const CanvasPhase = Object.freeze({
10
10
  Booting: 'booting',
11
11
  BoardFileLoading: 'board-file-loading',
@@ -1372,6 +1372,42 @@
1372
1372
  || normalized.startsWith('file:');
1373
1373
  }
1374
1374
 
1375
+ function shouldApplyCssDisplayCrossOrigin(url) {
1376
+ const normalized = normalizeCssMediaUrl(url);
1377
+ if (!normalized) {
1378
+ return false;
1379
+ }
1380
+
1381
+ const lower = normalized.toLowerCase();
1382
+ if (lower.startsWith('blob:') || lower.startsWith('data:') || lower.startsWith('file:')) {
1383
+ return false;
1384
+ }
1385
+
1386
+ try {
1387
+ const target = new URL(normalized, window.location?.href || document.baseURI || undefined);
1388
+ const currentOrigin = window.location?.origin || '';
1389
+ if (currentOrigin && target.origin === currentOrigin) {
1390
+ return true;
1391
+ }
1392
+ } catch {
1393
+ return false;
1394
+ }
1395
+
1396
+ return isLoopbackCssAssetUrl(normalized);
1397
+ }
1398
+
1399
+ function syncCssDisplayCrossOrigin(mediaEl, url) {
1400
+ if (!mediaEl || typeof mediaEl.removeAttribute !== 'function') {
1401
+ return;
1402
+ }
1403
+
1404
+ if (shouldApplyCssDisplayCrossOrigin(url)) {
1405
+ mediaEl.crossOrigin = 'anonymous';
1406
+ } else {
1407
+ mediaEl.removeAttribute('crossorigin');
1408
+ }
1409
+ }
1410
+
1375
1411
  function isGeneratedCssImageNode(nodeModel) {
1376
1412
  if (!nodeModel) return false;
1377
1413
  if (window.MindMapNodes?.isGeneratedImageNodeModel) {
@@ -3906,6 +3942,7 @@
3906
3942
  const normalized = normalizeCssMediaUrl(targetUrl);
3907
3943
  if (!normalized) {
3908
3944
  mediaEl.dataset.mediaSourceUrl = '';
3945
+ syncCssDisplayCrossOrigin(mediaEl, '');
3909
3946
  if (mediaEl.tagName === 'IMG') {
3910
3947
  mediaEl.dataset.mediaReady = '0';
3911
3948
  mediaEl.style.opacity = '0';
@@ -3916,6 +3953,7 @@
3916
3953
 
3917
3954
  const previousCanonical = String(mediaEl.dataset.mediaSourceUrl || '').trim();
3918
3955
  mediaEl.dataset.mediaSourceUrl = normalized;
3956
+ syncCssDisplayCrossOrigin(mediaEl, normalized);
3919
3957
  if (previousCanonical !== normalized) {
3920
3958
  mediaEl.dataset.assetRefreshAttempted = '';
3921
3959
  mediaEl.dataset.originalResolveAttempted = '';
@@ -3952,6 +3990,7 @@
3952
3990
  if (!normalized) {
3953
3991
  mediaEl.dataset.mediaSourceUrl = '';
3954
3992
  mediaEl.dataset.resolvedMediaSourceUrl = '';
3993
+ syncCssDisplayCrossOrigin(mediaEl, '');
3955
3994
  mediaEl.removeAttribute('src');
3956
3995
  if (options.load !== false && typeof mediaEl.load === 'function') {
3957
3996
  try { mediaEl.load(); } catch { }
@@ -3961,6 +4000,7 @@
3961
4000
 
3962
4001
  const previousCanonical = String(mediaEl.dataset.mediaSourceUrl || '').trim();
3963
4002
  mediaEl.dataset.mediaSourceUrl = normalized;
4003
+ syncCssDisplayCrossOrigin(mediaEl, normalized);
3964
4004
  if (previousCanonical !== normalized) {
3965
4005
  mediaEl.dataset.assetRefreshAttempted = '';
3966
4006
  }
@@ -3974,6 +4014,7 @@
3974
4014
  const currentDisplaySource = String(mediaEl.getAttribute('src') || '').trim();
3975
4015
  if (currentDisplaySource !== resolvedDisplaySource) {
3976
4016
  delete mediaEl.dataset.videoCanvasProxyFailed;
4017
+ syncCssDisplayCrossOrigin(mediaEl, resolvedDisplaySource);
3977
4018
  mediaEl.setAttribute('src', resolvedDisplaySource);
3978
4019
  if (options.load !== false && typeof mediaEl.load === 'function') {
3979
4020
  try { mediaEl.load(); } catch { }
@@ -3988,6 +4029,7 @@
3988
4029
  }
3989
4030
 
3990
4031
  mediaEl.dataset.resolvedMediaSourceUrl = '';
4032
+ syncCssDisplayCrossOrigin(mediaEl, '');
3991
4033
  mediaEl.removeAttribute('src');
3992
4034
  if (options.load !== false && typeof mediaEl.load === 'function') {
3993
4035
  try { mediaEl.load(); } catch { }
@@ -23146,7 +23188,7 @@
23146
23188
  responseDiv.style.cssText = `width: 100%; height: 100%; display: ${hasContent ? 'block' : 'none'}; position: relative; overflow: hidden; pointer-events: none; padding: 0 !important; margin: 0 !important; background: transparent; border: 0 !important; scrollbar-width: none;`;
23147
23189
 
23148
23190
  const img = document.createElement('img');
23149
- img.crossOrigin = 'anonymous';
23191
+ syncCssDisplayCrossOrigin(img, content);
23150
23192
  img.style.cssText = `position: absolute; left: 0; top: 0; width: calc(100% + var(--mind-media-surface-bleed, 0px)); height: calc(100% + var(--mind-media-surface-bleed, 0px)); min-width: calc(100% + var(--mind-media-surface-bleed, 0px)); min-height: calc(100% + var(--mind-media-surface-bleed, 0px)); max-width: none; max-height: none; object-fit: cover; object-position: center center; pointer-events: none; display: block; background: transparent; border: 0; outline: 0; opacity: 0; transition: opacity 140ms ease-out;`;
23151
23193
  img.decoding = 'async';
23152
23194
  img.loading = 'eager';
@@ -23169,7 +23211,7 @@
23169
23211
  responseDiv.style.cssText = `width: 100%; height: 100%; display: ${hasContent ? 'block' : 'none'}; position: relative; overflow: hidden; pointer-events: none; padding: 0 !important; margin: 0 !important; background: transparent; border: 0 !important; scrollbar-width: none;`;
23170
23212
 
23171
23213
  const video = document.createElement('video');
23172
- video.crossOrigin = 'anonymous';
23214
+ syncCssDisplayCrossOrigin(video, content);
23173
23215
  if (content) {
23174
23216
  const normalizedContent = normalizeCssMediaUrl(content);
23175
23217
  video.dataset.mediaSourceUrl = normalizedContent;
@@ -24045,9 +24087,7 @@
24045
24087
  ? el.querySelector('img')
24046
24088
  : el.querySelector('video');
24047
24089
  if (mediaEl) {
24048
- if (contentTypeLower === 'image') {
24049
- mediaEl.crossOrigin = 'anonymous';
24050
- }
24090
+ syncCssDisplayCrossOrigin(mediaEl, content);
24051
24091
  bindRefreshableMediaSource(mediaEl, nodeModel, contentTypeLower);
24052
24092
  if (contentTypeLower === 'video') {
24053
24093
  ensureVideoNodePlaybackState(nodeModel, mediaEl);
@@ -51,7 +51,7 @@
51
51
  // ▲▲▲ [Usage] ▲▲▲
52
52
 
53
53
  // Procedural line rendering settings
54
- const LOD_RENDERER_BUILD_ID = '20260621-overlay-mid-fallback-v815';
54
+ const LOD_RENDERER_BUILD_ID = '20260621-css3d-external-media-cors-v816';
55
55
  const DirtyKind = Object.freeze({
56
56
  ResidentFullRebuild: 'resident-full-rebuild',
57
57
  ResidentPatch: 'resident-patch',
@@ -7,8 +7,8 @@
7
7
  <title>MindExec | Business Execution OS for solo builders</title>
8
8
  <meta name="description" content="MindExec is an AI business execution OS for solo builders who want to turn notes, research, assets, and repeatable execution Skills into revenue-producing work." />
9
9
  <base href="/" />
10
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260621-overlay-mid-fallback-v815" />
11
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260621-overlay-mid-fallback-v815" />
10
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260621-css3d-external-media-cors-v816" />
11
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260621-css3d-external-media-cors-v816" />
12
12
  <!-- ??좎뜦堉??Font Awesome (local) ??좎뜦堉??-->
13
13
  <link rel="stylesheet" href="_content/MindExecution.Shared/lib/font-awesome/css/all.min.css" />
14
14
  <!-- ??좎뜦堉??-->
@@ -579,7 +579,7 @@
579
579
  }
580
580
 
581
581
  const base = '_content/MindExecution.Shared/js/';
582
- const scriptVersion = '20260621-overlay-mid-fallback-v815';
582
+ const scriptVersion = '20260621-css3d-external-media-cors-v816';
583
583
  const scriptUrl = (script) => `${base}${script}?v=${scriptVersion}`;
584
584
  console.log(`[Script Loader] Shared JS version: ${scriptVersion}`);
585
585
  const criticalScripts = [
@@ -1,5 +1,5 @@
1
1
  self.assetsManifest = {
2
- "version": "wWWUWV1W",
2
+ "version": "XKU+Kdyr",
3
3
  "assets": [
4
4
  {
5
5
  "hash": "sha256-+CSYMcqLNTsq3VnH11jgYyOCCdxvHzL74CBmo4sCmMU=",
@@ -78,7 +78,7 @@
78
78
  "url": "_content/MindExecution.Shared/js/marked.min.js"
79
79
  },
80
80
  {
81
- "hash": "sha256-UVSiU4uZJB8Bn7SxymFZHxxTVFXTYuzJbmO6yUfCCZc=",
81
+ "hash": "sha256-kJvBszB2Gms78fh5Wt6KGcELHDW/IE6+oASm1AKQs3E=",
82
82
  "url": "_content/MindExecution.Shared/js/mind-map-core.js"
83
83
  },
84
84
  {
@@ -86,7 +86,7 @@
86
86
  "url": "_content/MindExecution.Shared/js/mind-map-core.js.backup"
87
87
  },
88
88
  {
89
- "hash": "sha256-TM2paFErX4LHoQRNnBSJ9W53HKjk+V5TersYc40QZck=",
89
+ "hash": "sha256-ThNiOIWPJNcuTCxormzHYE31Qr8s9X3Xueg31Xq/tlc=",
90
90
  "url": "_content/MindExecution.Shared/js/mind-map-css3d-manager.js"
91
91
  },
92
92
  {
@@ -114,7 +114,7 @@
114
114
  "url": "_content/MindExecution.Shared/js/mind-map-lod-plan-worker.js"
115
115
  },
116
116
  {
117
- "hash": "sha256-0EFgsXW1Wb4HT8jfTJckXw9Dlo4fSYhy/XLf1zFmbA8=",
117
+ "hash": "sha256-Nbxkotq7rMPYUTVdfbAEUeUbqO5S/xVxIgA+wK5qlwc=",
118
118
  "url": "_content/MindExecution.Shared/js/mind-map-lod-renderer.js"
119
119
  },
120
120
  {
@@ -834,7 +834,7 @@
834
834
  "url": "image-manifest.json"
835
835
  },
836
836
  {
837
- "hash": "sha256-8ZnMqBxNHNUVU1+GjrPNNsldXjKl7s6X/QEQ74Ley6g=",
837
+ "hash": "sha256-p3ZxuECZTbCd3eSWE8Wy2AoO7vQjXANWt1fp4dmfSsw=",
838
838
  "url": "index.html"
839
839
  },
840
840
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: wWWUWV1W */
1
+ /* Manifest version: XKU+Kdyr */
2
2
  // Hosted deployments should prefer the network over stale offline caches.
3
3
  // This service worker immediately clears old Blazor offline caches and unregisters itself.
4
4