@mercurjs/dashboard-sdk 2.2.0-canary.9 → 2.2.0-rc.0

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/dist/index.cjs +39 -4
  2. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -650,6 +650,24 @@ function isRouteFile(file) {
650
650
  return basename === "page";
651
651
  }
652
652
  var UI_MODULE_KEYS = ["admin_ui", "vendor_ui"];
653
+ var MEDUSA_VIRTUAL_MODULES = [
654
+ "virtual:medusa/displays",
655
+ "virtual:medusa/forms",
656
+ "virtual:medusa/i18n",
657
+ "virtual:medusa/menu-items",
658
+ "virtual:medusa/routes",
659
+ "virtual:medusa/widgets",
660
+ "virtual:medusa/links"
661
+ ];
662
+ function isMedusaVirtualModule(id) {
663
+ return MEDUSA_VIRTUAL_MODULES.includes(id);
664
+ }
665
+ function resolveMedusaVirtualModule(id) {
666
+ return "\0" + id;
667
+ }
668
+ function isResolvedMedusaVirtualModule(id) {
669
+ return id.startsWith("\0virtual:medusa/");
670
+ }
653
671
  function findNodeModulesRoot(configDir) {
654
672
  let dir = configDir;
655
673
  while (dir !== import_path5.default.dirname(dir)) {
@@ -707,11 +725,18 @@ function trimTrailingSlashes(value) {
707
725
  return end === value.length ? value : value.slice(0, end);
708
726
  }
709
727
  async function loadMedusaConfig(medusaConfigPath, root, options) {
728
+ const configDir = import_path5.default.dirname(medusaConfigPath);
710
729
  try {
711
- const mod = await getFileExports(medusaConfigPath);
730
+ const previousCwd = process.cwd();
731
+ let mod;
732
+ process.chdir(configDir);
733
+ try {
734
+ mod = await getFileExports(medusaConfigPath);
735
+ } finally {
736
+ process.chdir(previousCwd);
737
+ }
712
738
  const medusaConfig = mod.default ?? mod;
713
739
  const modules = medusaConfig?.modules ?? {};
714
- const configDir = import_path5.default.dirname(medusaConfigPath);
715
740
  let base;
716
741
  let appType = "admin";
717
742
  let vendorAppUrl;
@@ -742,7 +767,10 @@ async function loadMedusaConfig(medusaConfigPath, root, options) {
742
767
  ) ?? [];
743
768
  const pluginExtensions = resolvePluginExtensions(plugins, configDir, appType);
744
769
  return { base, pluginExtensions, vendorAppUrl };
745
- } catch {
770
+ } catch (error) {
771
+ console.warn(
772
+ `[@mercurjs/dashboard-sdk] Could not load the Medusa config from "${medusaConfigPath}": ${error instanceof Error ? error.message : String(error)}. Building with base "/" and no plugin extensions \u2014 if this panel is served under a sub-path (e.g. /dashboard), its assets will not resolve.`
773
+ );
746
774
  return { pluginExtensions: [] };
747
775
  }
748
776
  }
@@ -794,7 +822,8 @@ function mercurDashboardPlugin(pluginConfig) {
794
822
  "virtual:mercur/routes",
795
823
  "virtual:mercur/components",
796
824
  "virtual:mercur/menu-items",
797
- "virtual:mercur/i18n"
825
+ "virtual:mercur/i18n",
826
+ ...MEDUSA_VIRTUAL_MODULES
798
827
  ],
799
828
  include: [
800
829
  "react",
@@ -818,9 +847,15 @@ function mercurDashboardPlugin(pluginConfig) {
818
847
  if (isVirtualModule(id)) {
819
848
  return resolveVirtualModule(id);
820
849
  }
850
+ if (isMedusaVirtualModule(id)) {
851
+ return resolveMedusaVirtualModule(id);
852
+ }
821
853
  return null;
822
854
  },
823
855
  load(id) {
856
+ if (isResolvedMedusaVirtualModule(id)) {
857
+ return "export default {}";
858
+ }
824
859
  return loadVirtualModule({ cwd: root, id, mercurConfig: config });
825
860
  },
826
861
  configureServer(server) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mercurjs/dashboard-sdk",
3
- "version": "2.2.0-canary.9",
3
+ "version": "2.2.0-rc.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/mercurjs/mercur",