resuml 1.7.1 → 1.7.3
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 +1 -1
- package/scripts/bundle-themes.js +104 -0
package/package.json
CHANGED
package/scripts/bundle-themes.js
CHANGED
|
@@ -410,6 +410,11 @@ async function bundleTheme(shortName, packageName, shimsDir) {
|
|
|
410
410
|
'node:events': resolve(shimsDir, 'events.js'),
|
|
411
411
|
'node:os': resolve(shimsDir, 'os.js'),
|
|
412
412
|
'node:assert': resolve(shimsDir, 'assert.js'),
|
|
413
|
+
// Glob shims for themes that use glob-based partial loading
|
|
414
|
+
'glob': resolve(shimsDir, 'glob.js'),
|
|
415
|
+
'globby': resolve(shimsDir, 'globby.js'),
|
|
416
|
+
'require-glob': resolve(shimsDir, 'require-glob.js'),
|
|
417
|
+
'fast-glob': resolve(shimsDir, 'globby.js'),
|
|
413
418
|
},
|
|
414
419
|
logLevel: 'silent',
|
|
415
420
|
});
|
|
@@ -627,6 +632,105 @@ function writeShims(shimsDir) {
|
|
|
627
632
|
'export var userInfo = function() { return { username: "browser", uid: 0, gid: 0, shell: "", homedir: "/" }; };',
|
|
628
633
|
'export default { platform: platform, tmpdir: tmpdir, homedir: homedir, hostname: hostname, type: type, arch: arch, release: release, EOL: EOL, endianness: endianness, cpus: cpus, totalmem: totalmem, freemem: freemem, networkInterfaces: networkInterfaces, userInfo: userInfo };',
|
|
629
634
|
].join('\n'));
|
|
635
|
+
|
|
636
|
+
// glob/globby/require-glob shims — these use the fs shim's embedded file list
|
|
637
|
+
writeFileSync(resolve(shimsDir, 'glob.js'), [
|
|
638
|
+
'import { readdirSync, readFileSync, existsSync } from "fs";',
|
|
639
|
+
'',
|
|
640
|
+
'// Minimal glob pattern matching against embedded file list',
|
|
641
|
+
'function minimatch(filepath, pattern) {',
|
|
642
|
+
' var re = pattern',
|
|
643
|
+
' .replace(/[.+^${}()|[\\]\\\\]/g, "\\\\$&")',
|
|
644
|
+
' .replace(/\\*\\*/g, "___GLOBSTAR___")',
|
|
645
|
+
' .replace(/\\*/g, "[^/]*")',
|
|
646
|
+
' .replace(/___GLOBSTAR___/g, ".*")',
|
|
647
|
+
' .replace(/\\?/g, "[^/]");',
|
|
648
|
+
' // Handle {a,b} alternatives',
|
|
649
|
+
' re = re.replace(/\\{([^}]+)\\}/g, function(_, alts) {',
|
|
650
|
+
' return "(" + alts.split(",").join("|") + ")";',
|
|
651
|
+
' });',
|
|
652
|
+
' return new RegExp("^" + re + "$").test(filepath);',
|
|
653
|
+
'}',
|
|
654
|
+
'',
|
|
655
|
+
'function getAllPaths(dir) {',
|
|
656
|
+
' var results = [];',
|
|
657
|
+
' try {',
|
|
658
|
+
' var entries = readdirSync(dir);',
|
|
659
|
+
' for (var i = 0; i < entries.length; i++) {',
|
|
660
|
+
' var full = dir ? dir + "/" + entries[i] : entries[i];',
|
|
661
|
+
' results.push(full);',
|
|
662
|
+
' var sub = getAllPaths(full);',
|
|
663
|
+
' for (var j = 0; j < sub.length; j++) results.push(sub[j]);',
|
|
664
|
+
' }',
|
|
665
|
+
' } catch(e) {}',
|
|
666
|
+
' return results;',
|
|
667
|
+
'}',
|
|
668
|
+
'',
|
|
669
|
+
'export function sync(pattern, opts) {',
|
|
670
|
+
' var cwd = (opts && opts.cwd) || "/";',
|
|
671
|
+
' var allPaths = getAllPaths(cwd);',
|
|
672
|
+
' return allPaths.filter(function(p) { return minimatch(p, pattern); });',
|
|
673
|
+
'}',
|
|
674
|
+
'',
|
|
675
|
+
'export function globSync(pattern, opts) { return sync(pattern, opts); }',
|
|
676
|
+
'',
|
|
677
|
+
'export default function glob(pattern, opts, cb) {',
|
|
678
|
+
' if (typeof opts === "function") { cb = opts; opts = {}; }',
|
|
679
|
+
' try { var r = sync(pattern, opts); if (cb) cb(null, r); return Promise.resolve(r); }',
|
|
680
|
+
' catch(e) { if (cb) cb(e); return Promise.reject(e); }',
|
|
681
|
+
'};',
|
|
682
|
+
'glob.sync = sync;',
|
|
683
|
+
'glob.globSync = sync;',
|
|
684
|
+
].join('\n'));
|
|
685
|
+
|
|
686
|
+
writeFileSync(resolve(shimsDir, 'globby.js'), [
|
|
687
|
+
'import { sync as globSync } from "glob";',
|
|
688
|
+
'export function globby(patterns, opts) {',
|
|
689
|
+
' var pats = Array.isArray(patterns) ? patterns : [patterns];',
|
|
690
|
+
' var results = [];',
|
|
691
|
+
' for (var i = 0; i < pats.length; i++) {',
|
|
692
|
+
' var matches = globSync(pats[i], opts);',
|
|
693
|
+
' for (var j = 0; j < matches.length; j++) {',
|
|
694
|
+
' if (results.indexOf(matches[j]) === -1) results.push(matches[j]);',
|
|
695
|
+
' }',
|
|
696
|
+
' }',
|
|
697
|
+
' return Promise.resolve(results);',
|
|
698
|
+
'}',
|
|
699
|
+
'export function globbySync(patterns, opts) {',
|
|
700
|
+
' var pats = Array.isArray(patterns) ? patterns : [patterns];',
|
|
701
|
+
' var results = [];',
|
|
702
|
+
' for (var i = 0; i < pats.length; i++) {',
|
|
703
|
+
' var matches = globSync(pats[i], opts);',
|
|
704
|
+
' for (var j = 0; j < matches.length; j++) {',
|
|
705
|
+
' if (results.indexOf(matches[j]) === -1) results.push(matches[j]);',
|
|
706
|
+
' }',
|
|
707
|
+
' }',
|
|
708
|
+
' return results;',
|
|
709
|
+
'}',
|
|
710
|
+
'export default globby;',
|
|
711
|
+
].join('\n'));
|
|
712
|
+
|
|
713
|
+
writeFileSync(resolve(shimsDir, 'require-glob.js'), [
|
|
714
|
+
'import { sync as globSync } from "glob";',
|
|
715
|
+
'import { readFileSync } from "fs";',
|
|
716
|
+
'',
|
|
717
|
+
'function requireGlob(pattern, opts) {',
|
|
718
|
+
' var cwd = (opts && opts.cwd) || "/";',
|
|
719
|
+
' var matches = globSync(pattern, { cwd: cwd });',
|
|
720
|
+
' var result = {};',
|
|
721
|
+
' for (var i = 0; i < matches.length; i++) {',
|
|
722
|
+
' var name = matches[i].replace(/.*\\//, "").replace(/\\.[^.]+$/, "");',
|
|
723
|
+
' try {',
|
|
724
|
+
' var content = readFileSync(matches[i], "utf-8");',
|
|
725
|
+
' result[name] = content;',
|
|
726
|
+
' } catch(e) {}',
|
|
727
|
+
' }',
|
|
728
|
+
' return result;',
|
|
729
|
+
'}',
|
|
730
|
+
'requireGlob.sync = requireGlob;',
|
|
731
|
+
'export default requireGlob;',
|
|
732
|
+
'export { requireGlob };',
|
|
733
|
+
].join('\n'));
|
|
630
734
|
}
|
|
631
735
|
|
|
632
736
|
// ── Main ─────────────────────────────────────────────────────────────
|