@open-xchange/vite-plugin-ox-manifests 1.0.2 → 1.0.4

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/CHANGELOG.md CHANGED
@@ -4,6 +4,34 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [1.0.4] - 2026-04-09
8
+
9
+ ### Fixed
10
+
11
+ - Preserve virtual module raw URLs for i18n manifests in dev mode
12
+
13
+ ## [1.0.3] - 2026-03-25
14
+
15
+ ### Fixed
16
+
17
+ - Preserve original file extension in dev-mode manifest URLs to prevent duplicate module instances for non-.js files
18
+
19
+ ### Changed
20
+
21
+ - Update dependency typescript to v6
22
+
23
+ ## [1.0.2] - 2026-03-17
24
+
25
+ ### Fixed
26
+
27
+ - Remap imports in manifest from filenames to manifest keys
28
+
29
+ ## [1.0.1] - 2026-03-17
30
+
31
+ ### Fixed
32
+
33
+ - Use path.relative for manifest keys to avoid absolute paths
34
+
7
35
  ## [1.0.0] - 2026-03-13
8
36
 
9
37
  ### Changed
@@ -160,7 +160,7 @@ export default definePlugin(({ supportedEntryExtensions, entryPoints, manifestsA
160
160
  },
161
161
  // specific call to collect all manifests
162
162
  getManifests() {
163
- return Array.from(manifestModules, ([path, manifests]) => manifests.map(m => ({ ...m, path: basepath(path.slice(resolvedConfig.root.length + 1)) }))).flat(1);
163
+ return Array.from(manifestModules, ([filePath, manifests]) => manifests.map(m => ({ ...m, path: basepath(filePath.slice(resolvedConfig.root.length + 1)), ext: path.extname(filePath) }))).flat(1);
164
164
  },
165
165
  transform(_code, id) {
166
166
  if (resolvedConfig.mode !== 'production')
@@ -1 +1 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/plugins/serve.ts"],"names":[],"mappings":";AAiBA,wBA8DE"}
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/plugins/serve.ts"],"names":[],"mappings":";AAiBA,wBAgEE"}
@@ -25,14 +25,16 @@ export default definePlugin(({ watch }) => {
25
25
  depsRegex = new RegExp(`^${config.base}(api/deps.json|dependencies)$`);
26
26
  },
27
27
  configureServer({ ws, middlewares, moduleGraph }) {
28
- function addTimestamp(manifests) {
28
+ function addRawUrls(manifests) {
29
29
  for (const manifest of manifests) {
30
- // TODO what about other file types?
31
- const id = `${resolvedConfig.root}/${manifest.path}.js`;
30
+ if (manifest.raw)
31
+ continue;
32
+ const ext = manifest.ext || '.js';
33
+ const id = `${resolvedConfig.root}/${manifest.path}${ext}`;
32
34
  const moduleNode = moduleGraph.idToModuleMap.get(id);
33
35
  const hmrTS = moduleNode?.lastHMRTimestamp;
34
- if (hmrTS)
35
- manifest.raw = posix.join(resolvedConfig.base, `/${manifest.path}.js?t=${hmrTS}`);
36
+ const suffix = hmrTS ? `?t=${hmrTS}` : '';
37
+ manifest.raw = posix.join(resolvedConfig.base, `/${manifest.path}${ext}${suffix}`);
36
38
  }
37
39
  }
38
40
  middlewares.use((req, res, next) => {
@@ -43,7 +45,7 @@ export default definePlugin(({ watch }) => {
43
45
  return next();
44
46
  if (manifestRegex.test(url.path)) {
45
47
  resolvedPlugin.getManifests().then(manifests => {
46
- addTimestamp(manifests);
48
+ addRawUrls(manifests);
47
49
  sendJSON(res, manifests);
48
50
  }, next);
49
51
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/plugins/settings.ts"],"names":[],"mappings":";AA4DA,wBA6FE"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/plugins/settings.ts"],"names":[],"mappings":";AA4DA,wBA8FE"}
@@ -98,11 +98,12 @@ export default definePlugin(({ autoloadSettings }) => {
98
98
  },
99
99
  // specific call to collect all manifests
100
100
  getManifests() {
101
- return Array.from(settingsModules, ([path, manifest]) => {
102
- manifest.path = basepath(path.slice(resolvedConfig.root.length + 1));
103
- const moduleNode = moduleGraph?.idToModuleMap.get(path);
101
+ return Array.from(settingsModules, ([filePath, manifest]) => {
102
+ manifest.path = basepath(filePath.slice(resolvedConfig.root.length + 1));
103
+ manifest.ext = path.extname(filePath);
104
+ const moduleNode = moduleGraph?.idToModuleMap.get(filePath);
104
105
  if (moduleNode?.lastHMRTimestamp) {
105
- manifest.raw = posix.join(resolvedConfig.base, `/${manifest.path}.js?t=${moduleNode.lastHMRTimestamp}`);
106
+ manifest.raw = posix.join(resolvedConfig.base, `/${manifest.path}${manifest.ext}?t=${moduleNode.lastHMRTimestamp}`);
106
107
  }
107
108
  return manifest;
108
109
  });
package/dist/util.d.ts CHANGED
@@ -3,6 +3,7 @@ export type Dict<T = unknown> = Record<string, T>;
3
3
  export interface OxManifest {
4
4
  namespace: string;
5
5
  path: string;
6
+ ext?: string;
6
7
  requires?: string;
7
8
  raw?: string;
8
9
  generator?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAc,QAAQ,EAAE,MAAM,MAAM,CAAA;AAG/E,MAAM,MAAM,IAAI,CAAC,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;AAEjD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,wBAAyB,SAAQ,QAAQ,CAAC,WAAW;IACpE,YAAY,CAAC,EAAE,UAAU,EAAE,CAAA;CAC5B;AAED,eAAO,MAAM,YAAY,2CAA2C,CAAA;AAEpE,wBAAgB,mBAAmB,CAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,GAAG,IAAI,CAe9F;AAED,wBAAgB,YAAY,CAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAExD;AAED,wBAAgB,QAAQ,CAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED,wBAAgB,eAAe,CAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAevD;AAED,wBAAgB,cAAc,CAAE,SAAS,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAQrE;AAED,wBAAgB,aAAa,CAAE,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAE/E;AAED,wBAAgB,aAAa,CAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAWnE;AAED,wBAAsB,IAAI,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzD"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAc,QAAQ,EAAE,MAAM,MAAM,CAAA;AAG/E,MAAM,MAAM,IAAI,CAAC,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;AAEjD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,wBAAyB,SAAQ,QAAQ,CAAC,WAAW;IACpE,YAAY,CAAC,EAAE,UAAU,EAAE,CAAA;CAC5B;AAED,eAAO,MAAM,YAAY,2CAA2C,CAAA;AAEpE,wBAAgB,mBAAmB,CAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,GAAG,IAAI,CAe9F;AAED,wBAAgB,YAAY,CAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAExD;AAED,wBAAgB,QAAQ,CAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED,wBAAgB,eAAe,CAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAevD;AAED,wBAAgB,cAAc,CAAE,SAAS,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAQrE;AAED,wBAAgB,aAAa,CAAE,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAE/E;AAED,wBAAgB,aAAa,CAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAWnE;AAED,wBAAsB,IAAI,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzD"}
package/output/junit.xml CHANGED
@@ -1,201 +1,223 @@
1
1
  <?xml version="1.0" encoding="UTF-8" ?>
2
- <testsuites name="vitest tests" tests="42" failures="0" errors="0" time="2.115401235">
3
- <testsuite name="test/deps/main.test.js" timestamp="2026-03-17T13:44:49.630Z" hostname="archon" tests="3" failures="0" errors="0" skipped="0" time="0.130455401">
4
- <testcase classname="test/deps/main.test.js" name="deps &gt; should deliver empty deps in dev mode via /api/deps.json" time="0.083724081">
2
+ <testsuites name="vitest tests" tests="47" failures="0" errors="0" time="2.822493082">
3
+ <testsuite name="test/deps/main.test.js" timestamp="2026-04-07T14:03:14.486Z" hostname="MacBook-Pro-3.fritz.box" tests="3" failures="0" errors="0" skipped="0" time="0.143276375">
4
+ <testcase classname="test/deps/main.test.js" name="deps &gt; should deliver empty deps in dev mode via /api/deps.json" time="0.080104833">
5
5
  </testcase>
6
- <testcase classname="test/deps/main.test.js" name="deps &gt; should deliver empty deps in dev mode via /dependencies" time="0.021832628">
6
+ <testcase classname="test/deps/main.test.js" name="deps &gt; should deliver empty deps in dev mode via /dependencies" time="0.027277625">
7
7
  </testcase>
8
- <testcase classname="test/deps/main.test.js" name="deps &gt; should deliver empty deps with custom base path" time="0.023479659">
8
+ <testcase classname="test/deps/main.test.js" name="deps &gt; should deliver empty deps with custom base path" time="0.03509425">
9
9
  </testcase>
10
10
  </testsuite>
11
- <testsuite name="test/ejs/main.test.js" timestamp="2026-03-17T13:44:49.631Z" hostname="archon" tests="1" failures="0" errors="0" skipped="0" time="0.071080946">
12
- <testcase classname="test/ejs/main.test.js" name="EJS template emission &gt; emits index.ejs as a bundle asset" time="0.069527121">
11
+ <testsuite name="test/ejs/main.test.js" timestamp="2026-04-07T14:03:14.486Z" hostname="MacBook-Pro-3.fritz.box" tests="1" failures="0" errors="0" skipped="0" time="0.030999792">
12
+ <testcase classname="test/ejs/main.test.js" name="EJS template emission &gt; emits index.ejs as a bundle asset" time="0.030380625">
13
13
  <system-out>
14
14
  [vite-plugin-ox-manifests/ejs] Added index.ejs to bundle
15
15
 
16
16
  </system-out>
17
17
  </testcase>
18
18
  </testsuite>
19
- <testsuite name="test/gettext-chunked/main.test.js" timestamp="2026-03-17T13:44:49.631Z" hostname="archon" tests="2" failures="0" errors="0" skipped="0" time="0.129955619">
20
- <testcase classname="test/gettext-chunked/main.test.js" name="Dictionary in modules with dynamic imports &gt; works" time="0.082805121">
19
+ <testsuite name="test/gettext-multiple/main.test.js" timestamp="2026-04-07T14:03:14.487Z" hostname="MacBook-Pro-3.fritz.box" tests="2" failures="0" errors="0" skipped="0" time="0.200197791">
20
+ <testcase classname="test/gettext-multiple/main.test.js" name="Multiple dictionaries gettext scenario &gt; works" time="0.133630125">
21
21
  <system-out>
22
- [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /home/db/Repositories/gitlab.com/openxchange/appsuite/web-foundation/tools/packages/vite-plugin-ox-manifests/test/gettext-chunked/index.ejs )
22
+ [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /Users/maik.schaefer/repos/tools/packages/vite-plugin-ox-manifests/test/gettext-multiple/index.ejs )
23
23
 
24
24
  </system-out>
25
25
  </testcase>
26
- <testcase classname="test/gettext-chunked/main.test.js" name="Dictionary in modules with dynamic imports &gt; works in dev mode" time="0.045817369">
26
+ <testcase classname="test/gettext-multiple/main.test.js" name="Multiple dictionaries gettext scenario &gt; works in dev mode" time="0.065783792">
27
27
  </testcase>
28
28
  </testsuite>
29
- <testsuite name="test/gettext-simple/main.test.js" timestamp="2026-03-17T13:44:49.631Z" hostname="archon" tests="2" failures="0" errors="0" skipped="0" time="0.124192999">
30
- <testcase classname="test/gettext-simple/main.test.js" name="Simple gettext scenario &gt; works" time="0.069743568">
29
+ <testsuite name="test/gettext-chunked/main.test.js" timestamp="2026-04-07T14:03:14.487Z" hostname="MacBook-Pro-3.fritz.box" tests="2" failures="0" errors="0" skipped="0" time="0.174774833">
30
+ <testcase classname="test/gettext-chunked/main.test.js" name="Dictionary in modules with dynamic imports &gt; works" time="0.116113542">
31
31
  <system-out>
32
- [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /home/db/Repositories/gitlab.com/openxchange/appsuite/web-foundation/tools/packages/vite-plugin-ox-manifests/test/gettext-simple/index.ejs )
32
+ [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /Users/maik.schaefer/repos/tools/packages/vite-plugin-ox-manifests/test/gettext-chunked/index.ejs )
33
33
 
34
34
  </system-out>
35
35
  </testcase>
36
- <testcase classname="test/gettext-simple/main.test.js" name="Simple gettext scenario &gt; works in dev mode" time="0.052827297">
36
+ <testcase classname="test/gettext-chunked/main.test.js" name="Dictionary in modules with dynamic imports &gt; works in dev mode" time="0.057832208">
37
37
  </testcase>
38
38
  </testsuite>
39
- <testsuite name="test/gettext-multiple/main.test.js" timestamp="2026-03-17T13:44:49.631Z" hostname="archon" tests="2" failures="0" errors="0" skipped="0" time="0.153567377">
40
- <testcase classname="test/gettext-multiple/main.test.js" name="Multiple dictionaries gettext scenario &gt; works" time="0.094829081">
39
+ <testsuite name="test/gettext-simple/main.test.js" timestamp="2026-04-07T14:03:14.487Z" hostname="MacBook-Pro-3.fritz.box" tests="3" failures="0" errors="0" skipped="0" time="0.239969959">
40
+ <testcase classname="test/gettext-simple/main.test.js" name="Simple gettext scenario &gt; works" time="0.114001583">
41
41
  <system-out>
42
- [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /home/db/Repositories/gitlab.com/openxchange/appsuite/web-foundation/tools/packages/vite-plugin-ox-manifests/test/gettext-multiple/index.ejs )
42
+ [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /Users/maik.schaefer/repos/tools/packages/vite-plugin-ox-manifests/test/gettext-simple/index.ejs )
43
43
 
44
44
  </system-out>
45
45
  </testcase>
46
- <testcase classname="test/gettext-multiple/main.test.js" name="Multiple dictionaries gettext scenario &gt; works in dev mode" time="0.05749765">
46
+ <testcase classname="test/gettext-simple/main.test.js" name="Simple gettext scenario &gt; works in dev mode" time="0.070583125">
47
47
  </testcase>
48
- </testsuite>
49
- <testsuite name="test/hmr/main.test.js" timestamp="2026-03-17T13:44:49.631Z" hostname="archon" tests="3" failures="0" errors="0" skipped="0" time="0.140226117">
50
- <testcase classname="test/hmr/main.test.js" name="HMR &gt; adds timestamps to manifest files" time="0.084553052">
48
+ <testcase classname="test/gettext-simple/main.test.js" name="Simple gettext scenario &gt; preserves virtual module raw URL for i18n manifests in dev mode" time="0.054536042">
51
49
  </testcase>
52
- <testcase classname="test/hmr/main.test.js" name="HMR &gt; adds timestamps to settings manifest files" time="0.032267566">
50
+ </testsuite>
51
+ <testsuite name="test/html-relative-paths/main.test.js" timestamp="2026-04-07T14:03:14.487Z" hostname="MacBook-Pro-3.fritz.box" tests="2" failures="0" errors="0" skipped="0" time="0.112723708">
52
+ <testcase classname="test/html-relative-paths/main.test.js" name="HTML relative paths &gt; transforms paths" time="0.086152833">
53
53
  </testcase>
54
- <testcase classname="test/hmr/main.test.js" name="HMR &gt; includes base-path in manifests" time="0.022082719">
54
+ <testcase classname="test/html-relative-paths/main.test.js" name="HTML relative paths &gt; warns about deprecated transformAbsolutePaths option" time="0.02553575">
55
55
  </testcase>
56
56
  </testsuite>
57
- <testsuite name="test/html-relative-paths/main.test.js" timestamp="2026-03-17T13:44:49.632Z" hostname="archon" tests="2" failures="0" errors="0" skipped="0" time="0.111474602">
58
- <testcase classname="test/html-relative-paths/main.test.js" name="HTML relative paths &gt; transforms paths" time="0.082291094">
57
+ <testsuite name="test/manifest-css-recovery/main.test.js" timestamp="2026-04-07T14:03:14.488Z" hostname="MacBook-Pro-3.fritz.box" tests="2" failures="0" errors="0" skipped="0" time="0.122207">
58
+ <testcase classname="test/manifest-css-recovery/main.test.js" name="Manifest CSS recovery &gt; includes CSS in manifest entry when register.js imports a CSS file" time="0.080696042">
59
+ <system-out>
60
+ [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /Users/maik.schaefer/repos/tools/packages/vite-plugin-ox-manifests/test/manifest-css-recovery/index.ejs )
61
+
62
+ </system-out>
59
63
  </testcase>
60
- <testcase classname="test/html-relative-paths/main.test.js" name="HTML relative paths &gt; warns about deprecated transformAbsolutePaths option" time="0.027641726">
64
+ <testcase classname="test/manifest-css-recovery/main.test.js" name="Manifest CSS recovery &gt; CSS filename in manifest matches an actual asset in the bundle" time="0.03979375">
65
+ <system-out>
66
+ [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /Users/maik.schaefer/repos/tools/packages/vite-plugin-ox-manifests/test/manifest-css-recovery/index.ejs )
67
+
68
+ </system-out>
61
69
  </testcase>
62
70
  </testsuite>
63
- <testsuite name="test/manifest-dependencies/main.test.js" timestamp="2026-03-17T13:44:49.632Z" hostname="archon" tests="1" failures="0" errors="0" skipped="0" time="0.137175013">
64
- <testcase classname="test/manifest-dependencies/main.test.js" name="Manifest with dependencies &gt; works" time="0.135769095">
71
+ <testsuite name="test/manifest-dynamic-deps/main.test.js" timestamp="2026-04-07T14:03:14.488Z" hostname="MacBook-Pro-3.fritz.box" tests="1" failures="0" errors="0" skipped="0" time="0.0868535">
72
+ <testcase classname="test/manifest-dynamic-deps/main.test.js" name="Manifest with dynamic dependencies &gt; works" time="0.086263875">
65
73
  <system-out>
66
- [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /home/db/Repositories/gitlab.com/openxchange/appsuite/web-foundation/tools/packages/vite-plugin-ox-manifests/test/manifest-dependencies/index.ejs )
74
+ [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /Users/maik.schaefer/repos/tools/packages/vite-plugin-ox-manifests/test/manifest-dynamic-deps/index.ejs )
67
75
 
68
76
  </system-out>
69
77
  </testcase>
70
78
  </testsuite>
71
- <testsuite name="test/manifest-dynamic-deps/main.test.js" timestamp="2026-03-17T13:44:49.632Z" hostname="archon" tests="1" failures="0" errors="0" skipped="0" time="0.163036456">
72
- <testcase classname="test/manifest-dynamic-deps/main.test.js" name="Manifest with dynamic dependencies &gt; works" time="0.161872354">
79
+ <testsuite name="test/manifest-dependencies/main.test.js" timestamp="2026-04-07T14:03:14.488Z" hostname="MacBook-Pro-3.fritz.box" tests="1" failures="0" errors="0" skipped="0" time="0.109267458">
80
+ <testcase classname="test/manifest-dependencies/main.test.js" name="Manifest with dependencies &gt; works" time="0.108479375">
73
81
  <system-out>
74
- [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /home/db/Repositories/gitlab.com/openxchange/appsuite/web-foundation/tools/packages/vite-plugin-ox-manifests/test/manifest-dynamic-deps/index.ejs )
82
+ [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /Users/maik.schaefer/repos/tools/packages/vite-plugin-ox-manifests/test/manifest-dependencies/index.ejs )
75
83
 
76
84
  </system-out>
77
85
  </testcase>
78
86
  </testsuite>
79
- <testsuite name="test/manifest-multiple/main.test.js" timestamp="2026-03-17T13:44:49.632Z" hostname="archon" tests="2" failures="0" errors="0" skipped="0" time="0.123014009">
80
- <testcase classname="test/manifest-multiple/main.test.js" name="Multiple manifest scenario &gt; works" time="0.060549958">
87
+ <testsuite name="test/manifest-multiple/main.test.js" timestamp="2026-04-07T14:03:14.488Z" hostname="MacBook-Pro-3.fritz.box" tests="2" failures="0" errors="0" skipped="0" time="0.1363925">
88
+ <testcase classname="test/manifest-multiple/main.test.js" name="Multiple manifest scenario &gt; works" time="0.067865667">
81
89
  <system-out>
82
- [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /home/db/Repositories/gitlab.com/openxchange/appsuite/web-foundation/tools/packages/vite-plugin-ox-manifests/test/manifest-multiple/index.ejs )
90
+ [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /Users/maik.schaefer/repos/tools/packages/vite-plugin-ox-manifests/test/manifest-multiple/index.ejs )
83
91
 
84
92
  </system-out>
85
93
  </testcase>
86
- <testcase classname="test/manifest-multiple/main.test.js" name="Multiple manifest scenario &gt; works in dev mode" time="0.06099757">
94
+ <testcase classname="test/manifest-multiple/main.test.js" name="Multiple manifest scenario &gt; works in dev mode" time="0.067737583">
87
95
  </testcase>
88
96
  </testsuite>
89
- <testsuite name="test/manifest-simple/main.test.js" timestamp="2026-03-17T13:44:49.632Z" hostname="archon" tests="5" failures="0" errors="0" skipped="0" time="0.171397469">
90
- <testcase classname="test/manifest-simple/main.test.js" name="Simple manifest scenario &gt; works" time="0.063688016">
97
+ <testsuite name="test/manifest-simple/main.test.js" timestamp="2026-04-07T14:03:14.489Z" hostname="MacBook-Pro-3.fritz.box" tests="5" failures="0" errors="0" skipped="0" time="0.231112708">
98
+ <testcase classname="test/manifest-simple/main.test.js" name="Simple manifest scenario &gt; works" time="0.049625125">
91
99
  <system-out>
92
- [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /home/db/Repositories/gitlab.com/openxchange/appsuite/web-foundation/tools/packages/vite-plugin-ox-manifests/test/manifest-simple/index.ejs )
100
+ [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /Users/maik.schaefer/repos/tools/packages/vite-plugin-ox-manifests/test/manifest-simple/index.ejs )
93
101
 
94
102
  </system-out>
95
103
  </testcase>
96
- <testcase classname="test/manifest-simple/main.test.js" name="Simple manifest scenario &gt; works in dev mode" time="0.040429824">
104
+ <testcase classname="test/manifest-simple/main.test.js" name="Simple manifest scenario &gt; works in dev mode" time="0.050424459">
105
+ </testcase>
106
+ <testcase classname="test/manifest-simple/main.test.js" name="Simple manifest scenario &gt; works in dev mode with base set" time="0.051169">
97
107
  </testcase>
98
- <testcase classname="test/manifest-simple/main.test.js" name="Simple manifest scenario &gt; works in dev mode with base set" time="0.018407568">
108
+ <testcase classname="test/manifest-simple/main.test.js" name="Simple manifest scenario &gt; works in dev mode with base set (new endpoint)" time="0.045963">
99
109
  </testcase>
100
- <testcase classname="test/manifest-simple/main.test.js" name="Simple manifest scenario &gt; works in dev mode with base set (new endpoint)" time="0.024096931">
110
+ <testcase classname="test/manifest-simple/main.test.js" name="Simple manifest scenario &gt; does not empty files on transform" time="0.032450833">
111
+ </testcase>
112
+ </testsuite>
113
+ <testsuite name="test/manifest-ts/main.test.js" timestamp="2026-04-07T14:03:14.489Z" hostname="MacBook-Pro-3.fritz.box" tests="2" failures="0" errors="0" skipped="0" time="0.218847375">
114
+ <testcase classname="test/manifest-ts/main.test.js" name="TypeScript manifest entry in dev mode &gt; sets raw with .ts extension on first request (before HMR)" time="0.083663666">
101
115
  </testcase>
102
- <testcase classname="test/manifest-simple/main.test.js" name="Simple manifest scenario &gt; does not empty files on transform" time="0.023362088">
116
+ <testcase classname="test/manifest-ts/main.test.js" name="TypeScript manifest entry in dev mode &gt; sets raw with .ts extension and HMR timestamp after file change" time="0.132073458">
103
117
  </testcase>
104
118
  </testsuite>
105
- <testsuite name="test/meta/main.test.js" timestamp="2026-03-17T13:44:49.632Z" hostname="archon" tests="1" failures="0" errors="0" skipped="0" time="0.07822091">
106
- <testcase classname="test/meta/main.test.js" name="Meta option &gt; works" time="0.07715883">
119
+ <testsuite name="test/meta/main.test.js" timestamp="2026-04-07T14:03:14.489Z" hostname="MacBook-Pro-3.fritz.box" tests="1" failures="0" errors="0" skipped="0" time="0.031414625">
120
+ <testcase classname="test/meta/main.test.js" name="Meta option &gt; works" time="0.030664375">
107
121
  <system-out>
108
- [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /home/db/Repositories/gitlab.com/openxchange/appsuite/web-foundation/tools/packages/vite-plugin-ox-manifests/test/meta/index.ejs )
122
+ [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /Users/maik.schaefer/repos/tools/packages/vite-plugin-ox-manifests/test/meta/index.ejs )
109
123
 
110
124
  </system-out>
111
125
  </testcase>
112
126
  </testsuite>
113
- <testsuite name="test/preload-helper-bundled/main.test.js" timestamp="2026-03-17T13:44:49.632Z" hostname="archon" tests="1" failures="0" errors="0" skipped="0" time="0.063814886">
114
- <testcase classname="test/preload-helper-bundled/main.test.js" name="Preload helper bundled &gt; works" time="0.062572345">
127
+ <testsuite name="test/preload-helper-bundled/main.test.js" timestamp="2026-04-07T14:03:14.489Z" hostname="MacBook-Pro-3.fritz.box" tests="1" failures="0" errors="0" skipped="0" time="0.033400542">
128
+ <testcase classname="test/preload-helper-bundled/main.test.js" name="Preload helper bundled &gt; works" time="0.032850292">
115
129
  <system-out>
116
- [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /home/db/Repositories/gitlab.com/openxchange/appsuite/web-foundation/tools/packages/vite-plugin-ox-manifests/test/preload-helper-bundled/index.ejs )
130
+ [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /Users/maik.schaefer/repos/tools/packages/vite-plugin-ox-manifests/test/preload-helper-bundled/index.ejs )
117
131
 
118
132
  </system-out>
119
133
  </testcase>
120
134
  </testsuite>
121
- <testsuite name="test/preload-helper-separate/main.test.js" timestamp="2026-03-17T13:44:49.632Z" hostname="archon" tests="1" failures="0" errors="0" skipped="0" time="0.069557177">
122
- <testcase classname="test/preload-helper-separate/main.test.js" name="Preload helper separate &gt; replaces code for relative path loading" time="0.068353069">
135
+ <testsuite name="test/preload-helper-separate/main.test.js" timestamp="2026-04-07T14:03:14.489Z" hostname="MacBook-Pro-3.fritz.box" tests="1" failures="0" errors="0" skipped="0" time="0.036921416">
136
+ <testcase classname="test/preload-helper-separate/main.test.js" name="Preload helper separate &gt; replaces code for relative path loading" time="0.036276584">
123
137
  <system-out>
124
- [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /home/db/Repositories/gitlab.com/openxchange/appsuite/web-foundation/tools/packages/vite-plugin-ox-manifests/test/preload-helper-separate/index.ejs )
138
+ [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /Users/maik.schaefer/repos/tools/packages/vite-plugin-ox-manifests/test/preload-helper-separate/index.ejs )
125
139
 
126
140
  </system-out>
127
141
  </testcase>
128
142
  </testsuite>
129
- <testsuite name="test/settings-core/main.test.js" timestamp="2026-03-17T13:44:49.633Z" hostname="archon" tests="3" failures="0" errors="0" skipped="0" time="0.125256702">
130
- <testcase classname="test/settings-core/main.test.js" name="Settings like in core &gt; works" time="0.055676111">
143
+ <testsuite name="test/hmr/main.test.js" timestamp="2026-04-07T14:03:14.489Z" hostname="MacBook-Pro-3.fritz.box" tests="3" failures="0" errors="0" skipped="0" time="0.412873375">
144
+ <testcase classname="test/hmr/main.test.js" name="HMR &gt; adds timestamps to manifest files" time="0.170893875">
145
+ </testcase>
146
+ <testcase classname="test/hmr/main.test.js" name="HMR &gt; adds timestamps to settings manifest files" time="0.126451291">
147
+ </testcase>
148
+ <testcase classname="test/hmr/main.test.js" name="HMR &gt; includes base-path in manifests" time="0.114840541">
149
+ </testcase>
150
+ </testsuite>
151
+ <testsuite name="test/settings-core/main.test.js" timestamp="2026-04-07T14:03:14.490Z" hostname="MacBook-Pro-3.fritz.box" tests="3" failures="0" errors="0" skipped="0" time="0.146671875">
152
+ <testcase classname="test/settings-core/main.test.js" name="Settings like in core &gt; works" time="0.061365292">
131
153
  <system-out>
132
- [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /home/db/Repositories/gitlab.com/openxchange/appsuite/web-foundation/tools/packages/vite-plugin-ox-manifests/test/settings-core/index.ejs )
154
+ [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /Users/maik.schaefer/repos/tools/packages/vite-plugin-ox-manifests/test/settings-core/index.ejs )
133
155
 
134
156
  </system-out>
135
157
  </testcase>
136
- <testcase classname="test/settings-core/main.test.js" name="Settings like in core &gt; skips settings detection when autoloadSettings is false" time="0.013806897">
158
+ <testcase classname="test/settings-core/main.test.js" name="Settings like in core &gt; skips settings detection when autoloadSettings is false" time="0.023755916">
137
159
  <system-out>
138
- [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /home/db/Repositories/gitlab.com/openxchange/appsuite/web-foundation/tools/packages/vite-plugin-ox-manifests/test/settings-core/index.ejs )
160
+ [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /Users/maik.schaefer/repos/tools/packages/vite-plugin-ox-manifests/test/settings-core/index.ejs )
139
161
 
140
162
  </system-out>
141
163
  </testcase>
142
- <testcase classname="test/settings-core/main.test.js" name="Settings like in core &gt; works in dev mode" time="0.054655149">
164
+ <testcase classname="test/settings-core/main.test.js" name="Settings like in core &gt; works in dev mode" time="0.060228958">
143
165
  </testcase>
144
166
  </testsuite>
145
- <testsuite name="test/settings-external/main.test.js" timestamp="2026-03-17T13:44:49.633Z" hostname="archon" tests="2" failures="0" errors="0" skipped="0" time="0.118430289">
146
- <testcase classname="test/settings-external/main.test.js" name="Settings external &gt; works" time="0.055395783">
167
+ <testsuite name="test/settings-external/main.test.js" timestamp="2026-04-07T14:03:14.490Z" hostname="MacBook-Pro-3.fritz.box" tests="2" failures="0" errors="0" skipped="0" time="0.121796208">
168
+ <testcase classname="test/settings-external/main.test.js" name="Settings external &gt; works" time="0.062268958">
147
169
  <system-out>
148
- [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /home/db/Repositories/gitlab.com/openxchange/appsuite/web-foundation/tools/packages/vite-plugin-ox-manifests/test/settings-external/index.ejs )
170
+ [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /Users/maik.schaefer/repos/tools/packages/vite-plugin-ox-manifests/test/settings-external/index.ejs )
149
171
 
150
172
  </system-out>
151
173
  </testcase>
152
- <testcase classname="test/settings-external/main.test.js" name="Settings external &gt; works in dev mode" time="0.0616295">
174
+ <testcase classname="test/settings-external/main.test.js" name="Settings external &gt; works in dev mode" time="0.05877425">
153
175
  </testcase>
154
176
  </testsuite>
155
- <testsuite name="test/settings-ts/main.test.js" timestamp="2026-03-17T13:44:49.633Z" hostname="archon" tests="1" failures="0" errors="0" skipped="0" time="0.065416521">
156
- <testcase classname="test/settings-ts/main.test.js" name="Settings typescript &gt; works" time="0.064225568">
177
+ <testsuite name="test/settings-ts/main.test.js" timestamp="2026-04-07T14:03:14.490Z" hostname="MacBook-Pro-3.fritz.box" tests="1" failures="0" errors="0" skipped="0" time="0.03365275">
178
+ <testcase classname="test/settings-ts/main.test.js" name="Settings typescript &gt; works" time="0.033078625">
157
179
  <system-out>
158
- [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /home/db/Repositories/gitlab.com/openxchange/appsuite/web-foundation/tools/packages/vite-plugin-ox-manifests/test/settings-ts/index.ejs )
180
+ [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /Users/maik.schaefer/repos/tools/packages/vite-plugin-ox-manifests/test/settings-ts/index.ejs )
159
181
 
160
182
  </system-out>
161
183
  </testcase>
162
184
  </testsuite>
163
- <testsuite name="test/settings-with-requirements/main.test.js" timestamp="2026-03-17T13:44:49.633Z" hostname="archon" tests="4" failures="0" errors="0" skipped="0" time="0.133615711">
164
- <testcase classname="test/settings-with-requirements/main.test.js" name="Settings like in core, with requirements &gt; works" time="0.065885815">
185
+ <testsuite name="test/util/deep-merge.test.js" timestamp="2026-04-07T14:03:14.490Z" hostname="MacBook-Pro-3.fritz.box" tests="5" failures="0" errors="0" skipped="0" time="0.002360625">
186
+ <testcase classname="test/util/deep-merge.test.js" name="Deep merge &gt; with objects" time="0.001061875">
187
+ </testcase>
188
+ <testcase classname="test/util/deep-merge.test.js" name="Deep merge &gt; with arrays" time="0.000106042">
189
+ </testcase>
190
+ <testcase classname="test/util/deep-merge.test.js" name="Deep merge &gt; with strings" time="0.000087125">
191
+ </testcase>
192
+ <testcase classname="test/util/deep-merge.test.js" name="Deep merge &gt; with different types - arrays / object" time="0.00036075">
193
+ </testcase>
194
+ <testcase classname="test/util/deep-merge.test.js" name="Deep merge &gt; with different types - object / string" time="0.000090167">
195
+ </testcase>
196
+ </testsuite>
197
+ <testsuite name="test/settings-with-requirements/main.test.js" timestamp="2026-04-07T14:03:14.490Z" hostname="MacBook-Pro-3.fritz.box" tests="4" failures="0" errors="0" skipped="0" time="0.196778667">
198
+ <testcase classname="test/settings-with-requirements/main.test.js" name="Settings like in core, with requirements &gt; works" time="0.056767125">
165
199
  <system-out>
166
- [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /home/db/Repositories/gitlab.com/openxchange/appsuite/web-foundation/tools/packages/vite-plugin-ox-manifests/test/settings-with-requirements/index.ejs )
200
+ [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /Users/maik.schaefer/repos/tools/packages/vite-plugin-ox-manifests/test/settings-with-requirements/index.ejs )
167
201
 
168
202
  </system-out>
169
203
  </testcase>
170
- <testcase classname="test/settings-with-requirements/main.test.js" name="Settings like in core, with requirements &gt; merges requirements for manifests" time="0.021340611">
204
+ <testcase classname="test/settings-with-requirements/main.test.js" name="Settings like in core, with requirements &gt; merges requirements for manifests" time="0.048739042">
171
205
  <system-out>
172
- [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /home/db/Repositories/gitlab.com/openxchange/appsuite/web-foundation/tools/packages/vite-plugin-ox-manifests/test/settings-with-requirements/index.ejs )
206
+ [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /Users/maik.schaefer/repos/tools/packages/vite-plugin-ox-manifests/test/settings-with-requirements/index.ejs )
173
207
 
174
208
  </system-out>
175
209
  </testcase>
176
- <testcase classname="test/settings-with-requirements/main.test.js" name="Settings like in core, with requirements &gt; merges single requirement for manifests" time="0.022928562">
210
+ <testcase classname="test/settings-with-requirements/main.test.js" name="Settings like in core, with requirements &gt; merges single requirement for manifests" time="0.032867709">
177
211
  <system-out>
178
- [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /home/db/Repositories/gitlab.com/openxchange/appsuite/web-foundation/tools/packages/vite-plugin-ox-manifests/test/settings-with-requirements/index.ejs )
212
+ [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /Users/maik.schaefer/repos/tools/packages/vite-plugin-ox-manifests/test/settings-with-requirements/index.ejs )
179
213
 
180
214
  </system-out>
181
215
  </testcase>
182
- <testcase classname="test/settings-with-requirements/main.test.js" name="Settings like in core, with requirements &gt; merges multiple requirement for manifests" time="0.022103157">
216
+ <testcase classname="test/settings-with-requirements/main.test.js" name="Settings like in core, with requirements &gt; merges multiple requirement for manifests" time="0.0576485">
183
217
  <system-out>
184
- [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /home/db/Repositories/gitlab.com/openxchange/appsuite/web-foundation/tools/packages/vite-plugin-ox-manifests/test/settings-with-requirements/index.ejs )
218
+ [vite-plugin-ox-manifests/ejs] Skipped (no index.ejs found at /Users/maik.schaefer/repos/tools/packages/vite-plugin-ox-manifests/test/settings-with-requirements/index.ejs )
185
219
 
186
220
  </system-out>
187
221
  </testcase>
188
222
  </testsuite>
189
- <testsuite name="test/util/deep-merge.test.js" timestamp="2026-03-17T13:44:49.633Z" hostname="archon" tests="5" failures="0" errors="0" skipped="0" time="0.005513031">
190
- <testcase classname="test/util/deep-merge.test.js" name="Deep merge &gt; with objects" time="0.001627405">
191
- </testcase>
192
- <testcase classname="test/util/deep-merge.test.js" name="Deep merge &gt; with arrays" time="0.000250902">
193
- </testcase>
194
- <testcase classname="test/util/deep-merge.test.js" name="Deep merge &gt; with strings" time="0.000104858">
195
- </testcase>
196
- <testcase classname="test/util/deep-merge.test.js" name="Deep merge &gt; with different types - arrays / object" time="0.000698695">
197
- </testcase>
198
- <testcase classname="test/util/deep-merge.test.js" name="Deep merge &gt; with different types - object / string" time="0.001106243">
199
- </testcase>
200
- </testsuite>
201
223
  </testsuites>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-xchange/vite-plugin-ox-manifests",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "A vite plugin to concat and serve ox manifests",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -25,8 +25,8 @@
25
25
  "chokidar": "^5.0.0",
26
26
  "fast-glob": "^3.3.3",
27
27
  "parseurl": "^1.3.3",
28
- "@open-xchange/vite-plugin-po2json": "1.0.0",
29
- "@open-xchange/vite-plugin-ox-externals": "1.0.0"
28
+ "@open-xchange/vite-plugin-ox-externals": "1.0.0",
29
+ "@open-xchange/vite-plugin-po2json": "1.1.1"
30
30
  },
31
31
  "peerDependencies": {
32
32
  "vite": "^8.0.0"
@@ -36,7 +36,7 @@
36
36
  "@types/parseurl": "^1.3.3",
37
37
  "less": "^4.6.4",
38
38
  "rollup": "^4.59.0",
39
- "typescript": "^5.9.3",
39
+ "typescript": "^6.0.0",
40
40
  "vite": "^8.0.0",
41
41
  "vitest": "^4.1.0",
42
42
  "@open-xchange/lint": "0.3.0"