From d1e56b118aa0877a1f16a70f8cb7a502ecf2cce5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Julian=20B=C3=A4ume?= <julian@svg4all.de>
Date: Fri, 10 Sep 2021 18:55:39 +0200
Subject: [PATCH] resolve imports in dependency list to actual files instead of
 modules

those files are supposed to be downloaded directly
---
 spec/dependencies_test.js | 18 ++++++++++++++++--
 src/manifests.js          |  8 ++++++--
 2 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/spec/dependencies_test.js b/spec/dependencies_test.js
index 3978ba1..f89e4eb 100644
--- a/spec/dependencies_test.js
+++ b/spec/dependencies_test.js
@@ -80,6 +80,9 @@ describe('Vite manifest parsing', () => {
           '../io.ox/guidedtours/i18n',
           'io.ox/guidedtours/main.js'
         ],
+        css: [
+          'io.ox/guidedtours/assets/multifactor.91962241.css'
+        ],
         meta: {}
       },
       'io.ox/guidedtours/utils.js': {
@@ -93,10 +96,21 @@ describe('Vite manifest parsing', () => {
       },
       '_preload-helper-a7bbbf37.js': {
         file: 'io.ox/guidedtours/preload-helper-a7bbbf37.js'
+      },
+      'themes/icons/alarm.svg': {
+        file: 'assets/alarm.6d2fbb40.js',
+        src: 'themes/icons/alarm.svg',
+        isDynamicEntry: true,
+        assets: [
+          'assets/alarm.310541a0.svg'
+        ],
+        meta: {}
       }
     })
     expect(typeof deps).toBe('object')
-    expect(Object.keys(deps).length).toBe(7)
-    expect(deps['io.ox/guidedtours/main.07676e21.js']).toEqual(['_preload-helper-a7bbbf37.js', '../io.ox/guidedtours/i18n'])
+    expect(Object.keys(deps).length).toBe(8)
+    expect(deps['io.ox/guidedtours/main.07676e21.js']).toEqual(['io.ox/guidedtours/preload-helper-a7bbbf37.js', 'io.ox/guidedtours/i18n.3de05d46.js'])
+    expect(deps['io.ox/guidedtours/multifactor.22d3e17d.js']).toEqual(['io.ox/guidedtours/preload-helper-a7bbbf37.js', 'io.ox/guidedtours/i18n.3de05d46.js', 'io.ox/guidedtours/main.07676e21.js', 'io.ox/guidedtours/assets/multifactor.91962241.css'])
+    expect(deps['assets/alarm.6d2fbb40.js']).toEqual(['assets/alarm.310541a0.svg'])
   })
 })
diff --git a/src/manifests.js b/src/manifests.js
index 5a3f3ac..6564160 100644
--- a/src/manifests.js
+++ b/src/manifests.js
@@ -69,8 +69,12 @@ export const getOxManifests = (() => {
 
 export function viteManifestToDeps (viteManifest) {
   const deps = {}
-  for (const { file, imports, css } of Object.values(viteManifest)) {
-    deps[file] = [].concat(imports).concat(css).filter(Boolean)
+  for (const { file, imports, css, assets } of Object.values(viteManifest)) {
+    deps[file] = []
+      .concat(imports?.map(path => viteManifest[path].file))
+      .concat(css)
+      .concat(assets)
+      .filter(Boolean)
   }
   return deps
 }
-- 
GitLab