qtex 1.1.16 → 1.1.17

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/compiler.js +11 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qtex",
3
- "version": "1.1.16",
3
+ "version": "1.1.17",
4
4
  "description": "Ultra-fast cloud LaTeX compiler. Compile .tex documents in milliseconds without installing TeXLive or MikTeX. Zero config, sub-second builds, live watch mode.",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/src/compiler.js CHANGED
@@ -15,9 +15,10 @@ async function getFiles(dir, baseDir = dir) {
15
15
  files.push(...(await getFiles(res, baseDir)));
16
16
  }
17
17
  } else {
18
+ const rel = join(dir.replace(baseDir, ''), entry.name).replace(/^[\\\/]/, '').replace(/\\/g, '/');
18
19
  files.push({
19
20
  path: res,
20
- relative: join(dir.replace(baseDir, ''), entry.name).replace(/^[\\\/]/, '').replace(/\\/g, '/')
21
+ relative: rel
21
22
  });
22
23
  }
23
24
  }
@@ -32,6 +33,15 @@ export async function compile(dir, options) {
32
33
  const absoluteDir = resolve(dir);
33
34
  const allFiles = await getFiles(absoluteDir);
34
35
 
36
+ // Sort files to prioritize .tex files (upladed first)
37
+ allFiles.sort((a, b) => {
38
+ const extA = extname(a.path).toLowerCase();
39
+ const extB = extname(b.path).toLowerCase();
40
+ if (extA === '.tex' && extB !== '.tex') return -1;
41
+ if (extA !== '.tex' && extB === '.tex') return 1;
42
+ return a.relative.localeCompare(b.relative);
43
+ });
44
+
35
45
  const form = new FormData();
36
46
  const validateForm = new FormData();
37
47
  let hasLatex = false;