@mercurjs/cli 2.0.1 → 2.0.2

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/dist/index.js CHANGED
@@ -1,48 +1,48 @@
1
1
  #!/usr/bin/env node
2
- import {Command}from'commander';import*as R from'path';import R__default,{join,basename}from'path';import Pe from'prompts';import {z}from'zod';import Ot,{promises,existsSync,readFileSync,mkdirSync,writeFileSync,statSync}from'fs';import {cosmiconfig}from'cosmiconfig';import {loadConfig,createMatchPath}from'tsconfig-paths';import L from'fs-extra';import'typescript';import st from'fast-glob';import {createHash}from'crypto';import ar from'deepmerge';import*as U from'fs/promises';import U__default,{writeFile,rm}from'fs/promises';import {homedir,tmpdir}from'os';import {Project,ScriptKind}from'ts-morph';import S from'kleur';import to from'ora';import {execa}from'execa';import {detect}from'@antfu/ni';import {diffLines}from'diff';import {spawn,execSync}from'child_process';import {Readable}from'stream';import {pipeline}from'stream/promises';import It from'pg';import Es from'open';import {x as x$1}from'tar';import Is from'terminal-link';import Cs from'validate-npm-package-name';import Ps from'wait-on';import {builtinModules}from'module';import {generatePluginEntryModule}from'@mercurjs/dashboard-sdk';var Lt={version:"2.0.1"};var Mt="MISSING_DIR_OR_EMPTY_PROJECT",I="MISSING_CONFIG",B="BUILD_MISSING_REGISTRY_FILE";var fi=z.enum(["registry:api","registry:vendor","registry:admin"]),Ut=z.object({path:z.string(),content:z.string().optional(),type:fi,target:z.string().optional()}),zt=z.object({$schema:z.string().optional(),name:z.string(),title:z.string().optional(),author:z.string().min(2).optional(),description:z.string().optional(),dependencies:z.array(z.string()).optional(),devDependencies:z.array(z.string()).optional(),registryDependencies:z.array(z.string()).optional(),meta:z.record(z.string(),z.any()).optional(),docs:z.string().optional(),categories:z.array(z.string()).optional()}),$=zt.extend({files:z.array(Ut)}),K=z.object({name:z.string(),homepage:z.string(),items:z.array($)}),ln=z.array(zt),Bt=$.pick({dependencies:true,devDependencies:true,files:true,docs:true}),gi=z.union([z.string(),z.object({url:z.string(),params:z.record(z.string(),z.string()).optional(),headers:z.record(z.string(),z.string()).optional()})]),Wt=z.record(z.string().refine(e=>e.startsWith("@"),{message:"Registry names must start with @ (e.g., @mercurjs)"}),gi);var Fe="https://registry.mercurjs.com/registry.json",Gt="https://registry.mercurjs.com/registry-item.json",he=process.env.REGISTRY_URL??"https://raw.githubusercontent.com/mercurjs/mercur/canary/packages/registry/r",C={"@mercurjs":`${he}/{name}.json`};var D={NOT_FOUND:"NOT_FOUND",UNAUTHORIZED:"UNAUTHORIZED",FORBIDDEN:"FORBIDDEN",FETCH_ERROR:"FETCH_ERROR",NOT_CONFIGURED:"NOT_CONFIGURED",INVALID_CONFIG:"INVALID_CONFIG",MISSING_ENV_VARS:"MISSING_ENV_VARS",LOCAL_FILE_ERROR:"LOCAL_FILE_ERROR",PARSE_ERROR:"PARSE_ERROR",VALIDATION_ERROR:"VALIDATION_ERROR",UNKNOWN_ERROR:"UNKNOWN_ERROR"},k=class extends Error{code;statusCode;context;suggestion;timestamp;cause;constructor(t,r={}){super(t),this.name="RegistryError",this.code=r.code||D.UNKNOWN_ERROR,this.statusCode=r.statusCode,this.cause=r.cause,this.context=r.context,this.suggestion=r.suggestion,this.timestamp=new Date,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor);}},ae=class extends k{constructor(r,i){let o=`The item at ${r} was not found. It may not exist at the registry.`;super(o,{code:D.NOT_FOUND,statusCode:404,cause:i,context:{url:r},suggestion:"Check if the item name is correct and the registry URL is accessible."});this.url=r;this.name="RegistryNotFoundError";}},Oe=class extends k{constructor(r,i){let o=`You are not authorized to access the item at ${r}. If this is a remote registry, you may need to authenticate.`;super(o,{code:D.UNAUTHORIZED,statusCode:401,cause:i,context:{url:r},suggestion:"Check your authentication credentials and environment variables."});this.url=r;this.name="RegistryUnauthorizedError";}},Ae=class extends k{constructor(r,i){let o=`You are not authorized to access the item at ${r}. If this is a remote registry, you may need to authenticate.`;super(o,{code:D.FORBIDDEN,statusCode:403,cause:i,context:{url:r},suggestion:"Check your authentication credentials and environment variables."});this.url=r;this.name="RegistryForbiddenError";}},Le=class extends k{constructor(r,i,o,s){let n=i?`Failed to fetch from registry (${i}): ${r}`:`Failed to fetch from registry: ${r}`,m=typeof s=="string"&&s?`${n} - ${s}`:n,p="Check your network connection and try again.";i===404?p="The requested resource was not found. Check the URL or item name.":i===500?p="The registry server encountered an error. Try again later.":i&&i>=400&&i<500&&(p="There was a client error. Check your request parameters.");super(m,{code:D.FETCH_ERROR,statusCode:i,cause:s,context:{url:r,responseBody:o},suggestion:p});this.url=r;this.responseBody=o;this.name="RegistryFetchError";}},Z=class extends k{constructor(r){let i=r?`Unknown registry "${r}". Make sure it is defined in agents.json as follows:
2
+ import {Command}from'commander';import*as R from'path';import R__default,{join,basename}from'path';import Pe from'prompts';import {z}from'zod';import Ft,{promises,existsSync,readFileSync,mkdirSync,writeFileSync,statSync}from'fs';import {cosmiconfig}from'cosmiconfig';import {loadConfig,createMatchPath}from'tsconfig-paths';import L from'fs-extra';import'typescript';import st from'fast-glob';import {createHash}from'crypto';import nr from'deepmerge';import*as U from'fs/promises';import U__default,{writeFile,rm}from'fs/promises';import {homedir,tmpdir}from'os';import {Project,ScriptKind}from'ts-morph';import N from'kleur';import eo from'ora';import {execa}from'execa';import {detect}from'@antfu/ni';import {diffLines}from'diff';import {spawn,execSync}from'child_process';import {Readable}from'stream';import {pipeline}from'stream/promises';import It from'pg';import ks from'open';import {x as x$1}from'tar';import Ss from'terminal-link';import Is from'validate-npm-package-name';import Cs from'wait-on';import {builtinModules}from'module';import {generatePluginEntryModule}from'@mercurjs/dashboard-sdk';var At={version:"2.0.2"};var Lt="MISSING_DIR_OR_EMPTY_PROJECT",S="MISSING_CONFIG",B="BUILD_MISSING_REGISTRY_FILE";var li=z.enum(["registry:api","registry:vendor","registry:admin"]),Mt=z.object({path:z.string(),content:z.string().optional(),type:li,target:z.string().optional()}),Ut=z.object({$schema:z.string().optional(),name:z.string(),title:z.string().optional(),author:z.string().min(2).optional(),description:z.string().optional(),dependencies:z.array(z.string()).optional(),devDependencies:z.array(z.string()).optional(),registryDependencies:z.array(z.string()).optional(),meta:z.record(z.string(),z.any()).optional(),docs:z.string().optional(),categories:z.array(z.string()).optional()}),T=Ut.extend({files:z.array(Mt)}),K=z.object({name:z.string(),homepage:z.string(),items:z.array(T)}),un=z.array(Ut),zt=T.pick({dependencies:true,devDependencies:true,files:true,docs:true}),fi=z.union([z.string(),z.object({url:z.string(),params:z.record(z.string(),z.string()).optional(),headers:z.record(z.string(),z.string()).optional()})]),Bt=z.record(z.string().refine(e=>e.startsWith("@"),{message:"Registry names must start with @ (e.g., @mercurjs)"}),fi);var Fe="https://registry.mercurjs.com/registry.json",Wt="https://registry.mercurjs.com/registry-item.json",he=process.env.REGISTRY_URL??"https://raw.githubusercontent.com/mercurjs/mercur/canary/packages/registry/r",I={"@mercurjs":`${he}/{name}.json`};var $={NOT_FOUND:"NOT_FOUND",UNAUTHORIZED:"UNAUTHORIZED",FORBIDDEN:"FORBIDDEN",FETCH_ERROR:"FETCH_ERROR",NOT_CONFIGURED:"NOT_CONFIGURED",INVALID_CONFIG:"INVALID_CONFIG",MISSING_ENV_VARS:"MISSING_ENV_VARS",LOCAL_FILE_ERROR:"LOCAL_FILE_ERROR",PARSE_ERROR:"PARSE_ERROR",VALIDATION_ERROR:"VALIDATION_ERROR",UNKNOWN_ERROR:"UNKNOWN_ERROR"},_=class extends Error{code;statusCode;context;suggestion;timestamp;cause;constructor(t,r={}){super(t),this.name="RegistryError",this.code=r.code||$.UNKNOWN_ERROR,this.statusCode=r.statusCode,this.cause=r.cause,this.context=r.context,this.suggestion=r.suggestion,this.timestamp=new Date,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor);}},ae=class extends _{constructor(r,i){let o=`The item at ${r} was not found. It may not exist at the registry.`;super(o,{code:$.NOT_FOUND,statusCode:404,cause:i,context:{url:r},suggestion:"Check if the item name is correct and the registry URL is accessible."});this.url=r;this.name="RegistryNotFoundError";}},Oe=class extends _{constructor(r,i){let o=`You are not authorized to access the item at ${r}. If this is a remote registry, you may need to authenticate.`;super(o,{code:$.UNAUTHORIZED,statusCode:401,cause:i,context:{url:r},suggestion:"Check your authentication credentials and environment variables."});this.url=r;this.name="RegistryUnauthorizedError";}},Ae=class extends _{constructor(r,i){let o=`You are not authorized to access the item at ${r}. If this is a remote registry, you may need to authenticate.`;super(o,{code:$.FORBIDDEN,statusCode:403,cause:i,context:{url:r},suggestion:"Check your authentication credentials and environment variables."});this.url=r;this.name="RegistryForbiddenError";}},Le=class extends _{constructor(r,i,o,s){let n=i?`Failed to fetch from registry (${i}): ${r}`:`Failed to fetch from registry: ${r}`,p=typeof s=="string"&&s?`${n} - ${s}`:n,m="Check your network connection and try again.";i===404?m="The requested resource was not found. Check the URL or item name.":i===500?m="The registry server encountered an error. Try again later.":i&&i>=400&&i<500&&(m="There was a client error. Check your request parameters.");super(p,{code:$.FETCH_ERROR,statusCode:i,cause:s,context:{url:r,responseBody:o},suggestion:m});this.url=r;this.responseBody=o;this.name="RegistryFetchError";}},Z=class extends _{constructor(r){let i=r?`Unknown registry "${r}". Make sure it is defined in agents.json as follows:
3
3
  {
4
4
  "registries": {
5
5
  "${r}": "[URL_TO_REGISTRY]"
6
6
  }
7
- }`:'Unknown registry. Make sure it is defined in blocks.json under "registries".';super(i,{code:D.NOT_CONFIGURED,context:{registryName:r},suggestion:"Add the registry configuration to your blocks.json file. Consult the registry documentation for the correct format."});this.registryName=r;this.name="RegistryNotConfiguredError";}},Q=class extends k{constructor(r,i){super(`Failed to read local registry file: ${r}`,{code:D.LOCAL_FILE_ERROR,cause:i,context:{filePath:r},suggestion:"Check if the file exists and you have read permissions."});this.filePath=r;this.name="RegistryLocalFileError";}},P=class extends k{constructor(r,i){let o=`Failed to parse registry item: ${r}`;i instanceof z.ZodError&&(o=`Failed to parse registry item: ${r}
7
+ }`:'Unknown registry. Make sure it is defined in blocks.json under "registries".';super(i,{code:$.NOT_CONFIGURED,context:{registryName:r},suggestion:"Add the registry configuration to your blocks.json file. Consult the registry documentation for the correct format."});this.registryName=r;this.name="RegistryNotConfiguredError";}},Q=class extends _{constructor(r,i){super(`Failed to read local registry file: ${r}`,{code:$.LOCAL_FILE_ERROR,cause:i,context:{filePath:r},suggestion:"Check if the file exists and you have read permissions."});this.filePath=r;this.name="RegistryLocalFileError";}},C=class extends _{constructor(r,i){let o=`Failed to parse registry item: ${r}`;i instanceof z.ZodError&&(o=`Failed to parse registry item: ${r}
8
8
  ${i.issues.map(s=>` - ${s.path.join(".")}: ${s.message}`).join(`
9
- `)}`);super(o,{code:D.PARSE_ERROR,cause:i,context:{item:r},suggestion:"The registry item may be corrupted or have an invalid format. Please make sure it returns a valid JSON object."});this.item=r;this.parseError=i,this.name="RegistryParseError";}parseError},Me=class extends k{constructor(r,i){let o=`Registry "${r}" requires the following environment variables:
9
+ `)}`);super(o,{code:$.PARSE_ERROR,cause:i,context:{item:r},suggestion:"The registry item may be corrupted or have an invalid format. Please make sure it returns a valid JSON object."});this.item=r;this.parseError=i,this.name="RegistryParseError";}parseError},Me=class extends _{constructor(r,i){let o=`Registry "${r}" requires the following environment variables:
10
10
 
11
11
  `+i.map(s=>` \u2022 ${s}`).join(`
12
- `);super(o,{code:D.MISSING_ENV_VARS,context:{registryName:r,missingVars:i},suggestion:"Set the required environment variables to your .env or .env.local file."});this.registryName=r;this.missingVars=i;this.name="RegistryMissingEnvironmentVariablesError";}},Ue=class extends k{constructor(r){let i=`Invalid registry namespace: "${r}". Registry names must start with @ (e.g., @mercurjs).`;super(i,{code:D.VALIDATION_ERROR,context:{name:r},suggestion:"Use a valid registry name starting with @ or provide a direct URL to the registry."});this.name=r;this.name="RegistryInvalidNamespaceError";}};var ze=class extends k{constructor(r,i){let o=`Invalid blocks.json configuration in ${r}.`;i instanceof z.ZodError&&(o=`Invalid blocks.json configuration in ${r}:
12
+ `);super(o,{code:$.MISSING_ENV_VARS,context:{registryName:r,missingVars:i},suggestion:"Set the required environment variables to your .env or .env.local file."});this.registryName=r;this.missingVars=i;this.name="RegistryMissingEnvironmentVariablesError";}},Ue=class extends _{constructor(r){let i=`Invalid registry namespace: "${r}". Registry names must start with @ (e.g., @mercurjs).`;super(i,{code:$.VALIDATION_ERROR,context:{name:r},suggestion:"Use a valid registry name starting with @ or provide a direct URL to the registry."});this.name=r;this.name="RegistryInvalidNamespaceError";}};var ze=class extends _{constructor(r,i){let o=`Invalid blocks.json configuration in ${r}.`;i instanceof z.ZodError&&(o=`Invalid blocks.json configuration in ${r}:
13
13
  ${i.issues.map(s=>` - ${s.path.join(".")}: ${s.message}`).join(`
14
- `)}`);super(o,{code:D.INVALID_CONFIG,cause:i,context:{cwd:r},suggestion:"Check your blocks.json file for syntax errors or invalid configuration. Run '@mercurjs/cli init' to regenerate a valid configuration."});this.cwd=r;this.name="ConfigParseError";}};var W=z.object({$schema:z.string().optional(),aliases:z.object({api:z.string(),vendor:z.string(),admin:z.string()}),registries:Wt.optional()}).strict(),Yt=W.extend({resolvedPaths:z.object({cwd:z.string(),api:z.string(),vendor:z.string(),admin:z.string()})});async function de(e,t){return createMatchPath(t.absoluteBaseUrl,t.paths)(e,void 0,()=>true,[".ts",".tsx"])}var wi="packages/api/src",ji="apps/vendor/src",bi="apps/admin/src",Ri=cosmiconfig("blocks",{searchPlaces:["blocks.json"]});async function b(e){let t=await xi(e);return t?await ot(e,t):null}async function ot(e,t){t.registries={...t.registries||{},...C};let r=await loadConfig(e);if(r.resultType==="failed")throw new Error(`Failed to load tsconfig.json. ${r.message??""}`.trim());return Yt.parse({...t,resolvedPaths:{cwd:e,api:await de(t.aliases.api,r),vendor:await de(t.aliases.vendor,r),admin:await de(t.aliases.admin,r)}})}async function xi(e){try{let t=await Ri.search(e);if(!t)return null;let r=W.parse(t.config);if(r.registries){for(let i of Object.keys(r.registries))if(i in C)throw new Error(`"${i}" is a built-in registry and cannot be overridden.`)}return r}catch(t){throw t instanceof Error&&t.message.includes("reserved registry")?t:new ze(e,t)}}function G(e){let t={resolvedPaths:{cwd:process.cwd(),api:"",vendor:"",admin:""},aliases:{api:wi,vendor:ji,admin:bi},registries:{...C}};return e?{...t,...e,resolvedPaths:{...t.resolvedPaths,...e.resolvedPaths||{}},aliases:{...t.aliases,...e.aliases||{}},registries:{...t.registries,...e.registries||{}}}:t}var nt=["**/node_modules/**","public","dist"];async function E(e){let[t,r,i,o,s,n]=await Promise.all([L.pathExists(R__default.resolve(e,"src")),ki(e),ve(e),Ei(e),Si(e),Ii(e)]);return {isSrcDir:t,aliasPrefix:r,packageJson:i,medusaConfigFile:o?.file??null,medusaVersion:s,mercurVersion:n}}async function ki(e){let t=loadConfig(e);if(t.resultType==="failed")return null;let r=t.paths||{},i=Object.keys(r);if(i.length===0)return null;let o=i[0];return o?.includes("*")?o.replace("/*",""):o?.replace("/","")??null}function ve(e="",t=true){let r=R__default.join(e,"package.json");return L.readJSONSync(r,{throws:t})}async function Ei(e){let t=await st.glob("medusa-config.*",{cwd:e,deep:3,ignore:nt});if(!t.length)return null;let r=t[0];return {file:r,dir:R__default.resolve(e,R__default.dirname(r))}}async function Si(e){let r=ve(e,false)?.dependencies?.["@medusajs/framework"];if(r)return r;let i=await st.glob("**/package.json",{cwd:e,deep:3,ignore:nt});for(let o of i){let n=ve(R__default.join(e,R__default.dirname(o)),false)?.dependencies?.["@medusajs/framework"];if(n)return n}return null}async function Ii(e){let r=ve(e,false)?.dependencies?.["@mercurjs/cli"];if(r)return r;let i=await st.glob("**/package.json",{cwd:e,deep:3,ignore:nt});for(let o of i){let n=ve(R__default.join(e,R__default.dirname(o)),false)?.dependencies?.["@mercurjs/cli"];if(n)return n}return null}z.object({cwd:z.string(),blocks:z.array(z.string()).optional(),yes:z.boolean(),overwrite:z.boolean(),silent:z.boolean()});async function Jt(e){let t={},r=R__default.resolve(e.cwd);if(!existsSync(r))return t[Mt]=true,{errors:t,config:null};let i=await b(r);if(!i)return t[I]=true,{errors:t,config:null};let o=await E(r);return {errors:t,config:i,projectInfo:o}}var Be={headers:{}};function at(e){Be.headers={...Be.headers,...e};}function Ht(e){return Be.headers[e]||{}}function x(){Be.headers={};}function me(e){let t={aliases:{api:"packages/api/src",vendor:"apps/vendor/src",admin:"apps/admin/src"},registries:C};return {...t,...e||{},aliases:{...t.aliases,...e?.aliases||{}},registries:{...e?.registries||{},...C}}}function we(e){return e.replace(/\${(\w+)}/g,(t,r)=>process.env[r]||"")}function je(e){let t=[],r=/\${(\w+)}/g,i=r.exec(e);for(;i!==null;){let o=i[1];o&&t.push(o),i=r.exec(e);}return t}var Ti=/^(@[a-zA-Z0-9](?:[a-zA-Z0-9-_]*[a-zA-Z0-9])?)\/(.+)$/;function pe(e){if(!e.startsWith("@"))return {registry:null,item:e};let t=e.match(Ti);return t?{registry:t[1],item:t[2]}:{registry:null,item:e}}var Kt=[".tsx",".ts"],Zt=["lib/utils.ts"],Oi=[/^(react|react-dom)(\/.*)?$/,/^(node|jsr|npm):.*$/],Ai=new Project({compilerOptions:{}});function Li(e){if(Oi.some(t=>t.test(e)))return null;if(!e.startsWith("@")&&e.includes("/")&&(e=e.split("/")[0]),e.startsWith("@")){let t=e.split("/");t.length>2&&(e=t.slice(0,2).join("/"));}return e}async function dt(e,t,r,i=new Set){let o=R.resolve(t.resolvedPaths.cwd,e),s=R.relative(t.resolvedPaths.cwd,o);if(Zt.includes(s))return {dependencies:[],files:[]};let n=R.extname(e);if(!Kt.includes(n))return {dependencies:[],files:[]};if(i.has(s))return {dependencies:[],files:[]};i.add(s);try{if(!(await U.stat(o)).isFile())return {dependencies:[],files:[]}}catch{return {dependencies:[],files:[]}}let m=await U.readFile(o,"utf-8"),p=await Mi(R.basename(o)),d=Ai.createSourceFile(p,m,{scriptKind:ScriptKind.TSX}),c=await loadConfig(t.resolvedPaths.cwd);if(c.resultType==="failed")return {dependencies:[],files:[]};let u=[],l=new Set,g=Qt(e),h={path:s,type:g,target:"",content:""};u.push(h);let w=d.getImportDeclarations();for(let F of w){let z=F.getModuleSpecifierValue(),$e=z.startsWith(".");if(!(r.aliasPrefix&&z.startsWith(`${r.aliasPrefix}/`))&&!$e){let O=Li(z);O&&l.add(O);continue}let se=await de(z,c);if($e&&(se=R.resolve(R.dirname(o),z)),!se)continue;if(!R.extname(se))for(let O of Kt){let At=`${se}${O}`;try{await U.access(At),se=At;break}catch{continue}}let De=R.relative(t.resolvedPaths.cwd,se);if(i.has(De)||Zt.includes(De))continue;let ci=Qt(z),ui={path:De,type:ci,target:"",content:""};u.push(ui);let Ne=await dt(De,t,r,i);if(Ne.files)for(let O of Ne.files)i.has(O.path)||(i.add(O.path),u.push(O));Ne.dependencies&&Ne.dependencies.forEach(O=>l.add(O));}let _=Array.from(new Map(u.map(F=>[F.path,F])).values());return {dependencies:Array.from(l),files:_}}async function Mi(e){let t=await U.mkdtemp(R.join(tmpdir(),"mercur-"));return R.join(t,e)}function Qt(e){return e.includes("/vendor")?"registry:vendor":e.includes("/admin")?"registry:admin":"registry:api"}function q(e){try{return new URL(e),!0}catch{return false}}function ee(e){return e.endsWith(".json")&&!q(e)}function Ui(e){let t=new Set;if(typeof e=="string")for(let r of je(e))t.add(r);else {for(let r of je(e.url))t.add(r);if(e.params)for(let r of Object.values(e.params))for(let i of je(r))t.add(i);if(e.headers)for(let r of Object.values(e.headers))for(let i of je(r))t.add(i);}return Array.from(t)}function Xt(e,t){let i=Ui(t).filter(o=>!process.env[o]);if(i.length>0)throw new Me(e,i)}var We="{name}",zi=`${We}.json`,er=/\${(\w+)}/g,tr="?",Bi="&";function Wi(e){return e.includes(We)}function rr(e){return Wi(e)?e:`${e.endsWith("/")?e:`${e}/`}${zi}`}function be(e,t){let{registry:r,item:i}=pe(e);if(!r)return null;let s=(t?.registries||{})[r];if(!s)throw new Z(r);return Xt(r,s),{url:Gi(i,s),headers:Vi(s)}}function Gi(e,t,r){if(typeof t=="string"){let n=rr(t).replace(We,e);return we(n)}let o=rr(t.url).replace(We,e);return o=we(o),t.params?Yi(o,t.params):o}function Vi(e){if(typeof e=="string"||!e.headers)return {};let t={};for(let[r,i]of Object.entries(e.headers)){let o=we(i);qi(i,o)&&(t[r]=o);}return t}function Yi(e,t){let r=new URLSearchParams;for(let[s,n]of Object.entries(t)){let m=we(n);m&&r.append(s,m);}let i=r.toString();if(!i)return e;let o=e.includes(tr)?Bi:tr;return `${e}${o}${i}`}function qi(e,t){let r=t.trim();if(!r)return false;if(e.includes("${")&&e.match(er)){let o=e.replace(er,"").trim();return r!==o}return true}function ir(e){return q(e)||ee(e)?e:`${he}/${e}`}var Ge=new Map;async function Ji(e){let t=e;t.startsWith("file://")&&(t=t.slice(7)),t.startsWith("~/")&&(t=R__default.join(homedir(),t.slice(2)));let r=R__default.resolve(t);try{let i=await promises.readFile(r,"utf8");return JSON.parse(i)}catch(i){throw i instanceof Error&&(i.message.includes("ENOENT")||i.message.includes("no such file"))?new Q(e,i):new Q(e,i)}}async function te(e){return await Promise.all(e.map(async r=>{let i=ir(r);if(Ge.has(i))return Ge.get(i);if(ee(i)){let s=Ji(i);return Ge.set(i,s),s}let o=(async()=>{let s=Ht(i),n=await fetch(i,{headers:{...s}});if(!n.ok){let m;if(n.headers.get("content-type")?.includes("application/json")){let p=await n.json(),d=z.object({detail:z.string().optional(),title:z.string().optional(),message:z.string().optional(),error:z.string().optional()}).safeParse(p);d.success&&(m=d.data.detail||d.data.message,d.data.error&&(m=`[${d.data.error}] ${m}`));}throw n.status===401?new Oe(i,m):n.status===404?new ae(i,m):n.status===403?new Ae(i,m):new Le(i,n.status,m)}return n.json()})();return Ge.set(i,o),o}))}async function nr(e){try{let t=e;e.startsWith("~/")&&(t=R__default.join(homedir(),e.slice(2)));let r=R__default.resolve(t),i=await promises.readFile(r,"utf8"),o=JSON.parse(i);try{return $.parse(o)}catch(s){throw new P(e,s)}}catch(t){throw t instanceof Error&&(t.message.includes("ENOENT")||t.message.includes("no such file"))?new Q(e,t):t instanceof P?t:new Q(e,t)}}$.extend({_source:z.string().optional()});function mt(e,t){let r={},i=[...e];if(!t?.registries)return at({}),i;for(let o=0;o<i.length;o++){let s=be(i[o],t);s&&(i[o]=s.url,Object.keys(s.headers).length>0&&(r[s.url]=s.headers));}return at(r),i}async function Ye(e,t){return await Promise.all(e.map(async i=>{if(ee(i))return nr(i);if(q(i)){let[n]=await te([i]);try{return $.parse(n)}catch(m){throw new P(i,m)}}if(i.startsWith("@")&&t?.registries){let n=mt([i],t),[m]=await te(n);try{return $.parse(m)}catch(p){throw new P(i,p)}}let o=`${he}/${i}.json`,[s]=await te([o]);try{return $.parse(s)}catch(n){throw new P(i,n)}}))}async function pt(e,t){let r=[],i=[],o=Array.from(new Set(e)),s=await Ye(o,t),n=new Map;for(let d=0;d<s.length;d++)s[d]&&n.set(o[d],s[d]);for(let[d,c]of Array.from(n.entries())){let u={...c,_source:d};if(r.push(u),c.registryDependencies){let l=c.registryDependencies;if(t?.registries)l=mt(c.registryDependencies,t);else {let h=c.registryDependencies.filter(w=>w.startsWith("@"));if(h.length>0){let{registry:w}=pe(h[0]);throw new Z(w)}}let{blocks:g}=await mr(l,t,new Set(o));i.push(...g);}}r.push(...i);let m=new Map;for(let d of r){let c=d._source||d.name;m.set(d,c);}return r=Qi(r,m),Bt.parse({dependencies:ar.all(r.map(d=>d.dependencies??[])),devDependencies:ar.all(r.map(d=>d.devDependencies??[])),files:Xi(r.map(d=>d.files??[])),docs:r.map(d=>d.docs).filter(Boolean).join(`
15
- `)})}async function mr(e,t,r=new Set){let i=[];for(let o of e){if(r.has(o))continue;if(r.add(o),o.startsWith("@")&&t?.registries){let{registry:n}=pe(o);if(n&&!(n in t.registries))throw new Z(n)}let[s]=await Ye([o],t);if(s&&(i.push({...s,_source:o}),s.registryDependencies)){let n=t?.registries?mt(s.registryDependencies,t):s.registryDependencies,m=await mr(n,t,r);i.push(...m.blocks);}}return {blocks:i}}function J(e,t){let r=t||e.name,i=createHash("sha256").update(r).digest("hex").substring(0,8);return `${e.name}::${i}`}function Zi(e){if(q(e)){let i=new URL(e).pathname,o=i.match(/\/([^/]+)\.json$/),s=o?o[1]:R__default.basename(i,".json");return {name:s,hash:J({name:s},e)}}if(ee(e)){let r=e.match(/\/([^/]+)\.json$/),i=r?r[1]:R__default.basename(e,".json");return {name:i,hash:J({name:i},e)}}let{item:t}=pe(e);return {name:t,hash:J({name:t},e)}}function Qi(e,t){let r=new Map,i=new Map,o=new Map,s=new Map;for(let d of e){let c=t.get(d)||d.name,u=J(d,c);r.set(u,d),i.set(u,d),o.set(u,0),s.set(u,[]);}let n=new Map;for(let d of e){let c=t.get(d)||d.name,u=J(d,c);n.has(d.name)||n.set(d.name,[]),n.get(d.name).push(u),c!==d.name&&(n.has(c)||n.set(c,[]),n.get(c).push(u));}for(let d of e){let c=t.get(d)||d.name,u=J(d,c);if(d.registryDependencies)for(let l of d.registryDependencies){let g,h=n.get(l)||[];if(h.length===1)g=h[0];else if(h.length>1)g=h[0];else {let{name:w}=Zi(l),_=n.get(w)||[];_.length>0&&(g=_[0]);}g&&r.has(g)&&(s.get(g).push(u),o.set(u,o.get(u)+1));}}let m=[],p=[];for(let[d,c]of o)c===0&&m.push(d);for(;m.length>0;){let d=m.shift(),c=r.get(d);p.push(c);for(let u of s.get(d)){let l=o.get(u)-1;o.set(u,l),l===0&&m.push(u);}}if(p.length!==e.length){let d=Array.from(r.keys()).filter(c=>!p.some(u=>J(u,t.get(u))===c));console.warn(`Warning: Circular dependencies detected. Some items may not be sorted correctly: ${d.join(", ")}`);for(let[c,u]of r.entries())p.some(l=>J(l,t.get(l))===c)||p.push(u);}return p}function Xi(e){let t=new Map,r=[];for(let i of e)if(i)for(let o of i){let s=o.target||o.path;t.has(s)||(t.set(s,o),r.push(o));}return r}var f={error:e=>S.red(e),warn:e=>S.yellow(e),info:e=>S.blue(e),success:e=>S.green(e),dim:e=>S.cyan(e)};var a={error(...e){console.log(f.error(e.join(" ")));},warn(...e){console.log(f.warn(e.join(" ")));},info(...e){console.log(f.info(e.join(" ")));},success(...e){console.log(f.success(e.join(" ")));},log(...e){console.log(e.join(" "));},break(){console.log("");}};function j(e){if(a.break(),a.error("Something went wrong. Please check the error below for more details."),a.error("If the problem persists, please open an issue on GitHub."),a.error(""),typeof e=="string"&&(a.error(e),a.break(),process.exit(1)),e instanceof k&&(e.message&&(a.error(e.cause?"Error:":"Message:"),a.error(e.message)),e.cause&&(a.error(`
14
+ `)}`);super(o,{code:$.INVALID_CONFIG,cause:i,context:{cwd:r},suggestion:"Check your blocks.json file for syntax errors or invalid configuration. Run '@mercurjs/cli init' to regenerate a valid configuration."});this.cwd=r;this.name="ConfigParseError";}};var W=z.object({$schema:z.string().optional(),aliases:z.object({api:z.string(),vendor:z.string(),admin:z.string()}),registries:Bt.optional()}).strict(),Vt=W.extend({resolvedPaths:z.object({cwd:z.string(),api:z.string(),vendor:z.string(),admin:z.string()})});async function de(e,t){return createMatchPath(t.absoluteBaseUrl,t.paths)(e,void 0,()=>true,[".ts",".tsx"])}var vi="packages/api/src",wi="apps/vendor/src",ji="apps/admin/src",bi=cosmiconfig("blocks",{searchPlaces:["blocks.json"]});async function b(e){let t=await Ri(e);return t?await ot(e,t):null}async function ot(e,t){t.registries={...t.registries||{},...I};let r=await loadConfig(e);if(r.resultType==="failed")throw new Error(`Failed to load tsconfig.json. ${r.message??""}`.trim());return Vt.parse({...t,resolvedPaths:{cwd:e,api:await de(t.aliases.api,r),vendor:await de(t.aliases.vendor,r),admin:await de(t.aliases.admin,r)}})}async function Ri(e){try{let t=await bi.search(e);if(!t)return null;let r=W.parse(t.config);if(r.registries){for(let i of Object.keys(r.registries))if(i in I)throw new Error(`"${i}" is a built-in registry and cannot be overridden.`)}return r}catch(t){throw t instanceof Error&&t.message.includes("reserved registry")?t:new ze(e,t)}}function G(e){let t={resolvedPaths:{cwd:process.cwd(),api:"",vendor:"",admin:""},aliases:{api:vi,vendor:wi,admin:ji},registries:{...I}};return e?{...t,...e,resolvedPaths:{...t.resolvedPaths,...e.resolvedPaths||{}},aliases:{...t.aliases,...e.aliases||{}},registries:{...t.registries,...e.registries||{}}}:t}var nt=["**/node_modules/**","public","dist"];async function k(e){let[t,r,i,o,s,n]=await Promise.all([L.pathExists(R__default.resolve(e,"src")),_i(e),ve(e),ki(e),Ei(e),Si(e)]);return {isSrcDir:t,aliasPrefix:r,packageJson:i,medusaConfigFile:o?.file??null,medusaVersion:s,mercurVersion:n}}async function _i(e){let t=loadConfig(e);if(t.resultType==="failed")return null;let r=t.paths||{},i=Object.keys(r);if(i.length===0)return null;let o=i[0];return o?.includes("*")?o.replace("/*",""):o?.replace("/","")??null}function ve(e="",t=true){let r=R__default.join(e,"package.json");return L.readJSONSync(r,{throws:t})}async function ki(e){let t=await st.glob("medusa-config.*",{cwd:e,deep:3,ignore:nt});if(!t.length)return null;let r=t[0];return {file:r,dir:R__default.resolve(e,R__default.dirname(r))}}async function Ei(e){let r=ve(e,false)?.dependencies?.["@medusajs/framework"];if(r)return r;let i=await st.glob("**/package.json",{cwd:e,deep:3,ignore:nt});for(let o of i){let n=ve(R__default.join(e,R__default.dirname(o)),false)?.dependencies?.["@medusajs/framework"];if(n)return n}return null}async function Si(e){let r=ve(e,false)?.dependencies?.["@mercurjs/cli"];if(r)return r;let i=await st.glob("**/package.json",{cwd:e,deep:3,ignore:nt});for(let o of i){let n=ve(R__default.join(e,R__default.dirname(o)),false)?.dependencies?.["@mercurjs/cli"];if(n)return n}return null}z.object({cwd:z.string(),blocks:z.array(z.string()).optional(),yes:z.boolean(),overwrite:z.boolean(),silent:z.boolean()});async function qt(e){let t={},r=R__default.resolve(e.cwd);if(!existsSync(r))return t[Lt]=true,{errors:t,config:null};let i=await b(r);if(!i)return t[S]=true,{errors:t,config:null};let o=await k(r);return {errors:t,config:i,projectInfo:o}}var Be={headers:{}};function at(e){Be.headers={...Be.headers,...e};}function Jt(e){return Be.headers[e]||{}}function x(){Be.headers={};}function pe(e){let t={aliases:{api:"packages/api/src",vendor:"apps/vendor/src",admin:"apps/admin/src"},registries:I};return {...t,...e||{},aliases:{...t.aliases,...e?.aliases||{}},registries:{...e?.registries||{},...I}}}function we(e){return e.replace(/\${(\w+)}/g,(t,r)=>process.env[r]||"")}function je(e){let t=[],r=/\${(\w+)}/g,i=r.exec(e);for(;i!==null;){let o=i[1];o&&t.push(o),i=r.exec(e);}return t}var Pi=/^(@[a-zA-Z0-9](?:[a-zA-Z0-9-_]*[a-zA-Z0-9])?)\/(.+)$/;function me(e){if(!e.startsWith("@"))return {registry:null,item:e};let t=e.match(Pi);return t?{registry:t[1],item:t[2]}:{registry:null,item:e}}var Ht=[".tsx",".ts"],Kt=["lib/utils.ts"],Fi=[/^(react|react-dom)(\/.*)?$/,/^(node|jsr|npm):.*$/],Oi=new Project({compilerOptions:{}});function Ai(e){if(Fi.some(t=>t.test(e)))return null;if(!e.startsWith("@")&&e.includes("/")&&(e=e.split("/")[0]),e.startsWith("@")){let t=e.split("/");t.length>2&&(e=t.slice(0,2).join("/"));}return e}async function dt(e,t,r,i=new Set){let o=R.resolve(t.resolvedPaths.cwd,e),s=R.relative(t.resolvedPaths.cwd,o);if(Kt.includes(s))return {dependencies:[],files:[]};let n=R.extname(e);if(!Ht.includes(n))return {dependencies:[],files:[]};if(i.has(s))return {dependencies:[],files:[]};i.add(s);try{if(!(await U.stat(o)).isFile())return {dependencies:[],files:[]}}catch{return {dependencies:[],files:[]}}let p=await U.readFile(o,"utf-8"),m=await Li(R.basename(o)),d=Oi.createSourceFile(m,p,{scriptKind:ScriptKind.TSX}),u=await loadConfig(t.resolvedPaths.cwd);if(u.resultType==="failed")return {dependencies:[],files:[]};let c=[],f=new Set,y=Zt(e),h={path:s,type:y,target:"",content:""};c.push(h);let w=d.getImportDeclarations();for(let F of w){let z=F.getModuleSpecifierValue(),$e=z.startsWith(".");if(!(r.aliasPrefix&&z.startsWith(`${r.aliasPrefix}/`))&&!$e){let O=Ai(z);O&&f.add(O);continue}let se=await de(z,u);if($e&&(se=R.resolve(R.dirname(o),z)),!se)continue;if(!R.extname(se))for(let O of Ht){let Ot=`${se}${O}`;try{await U.access(Ot),se=Ot;break}catch{continue}}let De=R.relative(t.resolvedPaths.cwd,se);if(i.has(De)||Kt.includes(De))continue;let mi=Zt(z),ci={path:De,type:mi,target:"",content:""};c.push(ci);let Ne=await dt(De,t,r,i);if(Ne.files)for(let O of Ne.files)i.has(O.path)||(i.add(O.path),c.push(O));Ne.dependencies&&Ne.dependencies.forEach(O=>f.add(O));}let E=Array.from(new Map(c.map(F=>[F.path,F])).values());return {dependencies:Array.from(f),files:E}}async function Li(e){let t=await U.mkdtemp(R.join(tmpdir(),"mercur-"));return R.join(t,e)}function Zt(e){return e.includes("/vendor")?"registry:vendor":e.includes("/admin")?"registry:admin":"registry:api"}function q(e){try{return new URL(e),!0}catch{return false}}function ee(e){return e.endsWith(".json")&&!q(e)}function Mi(e){let t=new Set;if(typeof e=="string")for(let r of je(e))t.add(r);else {for(let r of je(e.url))t.add(r);if(e.params)for(let r of Object.values(e.params))for(let i of je(r))t.add(i);if(e.headers)for(let r of Object.values(e.headers))for(let i of je(r))t.add(i);}return Array.from(t)}function Qt(e,t){let i=Mi(t).filter(o=>!process.env[o]);if(i.length>0)throw new Me(e,i)}var We="{name}",Ui=`${We}.json`,Xt=/\${(\w+)}/g,er="?",zi="&";function Bi(e){return e.includes(We)}function tr(e){return Bi(e)?e:`${e.endsWith("/")?e:`${e}/`}${Ui}`}function be(e,t){let{registry:r,item:i}=me(e);if(!r)return null;let s=(t?.registries||{})[r];if(!s)throw new Z(r);return Qt(r,s),{url:Wi(i,s),headers:Gi(s)}}function Wi(e,t,r){if(typeof t=="string"){let n=tr(t).replace(We,e);return we(n)}let o=tr(t.url).replace(We,e);return o=we(o),t.params?Vi(o,t.params):o}function Gi(e){if(typeof e=="string"||!e.headers)return {};let t={};for(let[r,i]of Object.entries(e.headers)){let o=we(i);Yi(i,o)&&(t[r]=o);}return t}function Vi(e,t){let r=new URLSearchParams;for(let[s,n]of Object.entries(t)){let p=we(n);p&&r.append(s,p);}let i=r.toString();if(!i)return e;let o=e.includes(er)?zi:er;return `${e}${o}${i}`}function Yi(e,t){let r=t.trim();if(!r)return false;if(e.includes("${")&&e.match(Xt)){let o=e.replace(Xt,"").trim();return r!==o}return true}function rr(e){return q(e)||ee(e)?e:`${he}/${e}`}var Ge=new Map;async function qi(e){let t=e;t.startsWith("file://")&&(t=t.slice(7)),t.startsWith("~/")&&(t=R__default.join(homedir(),t.slice(2)));let r=R__default.resolve(t);try{let i=await promises.readFile(r,"utf8");return JSON.parse(i)}catch(i){throw i instanceof Error&&(i.message.includes("ENOENT")||i.message.includes("no such file"))?new Q(e,i):new Q(e,i)}}async function te(e){return await Promise.all(e.map(async r=>{let i=rr(r);if(Ge.has(i))return Ge.get(i);if(ee(i)){let s=qi(i);return Ge.set(i,s),s}let o=(async()=>{let s=Jt(i),n=await fetch(i,{headers:{...s}});if(!n.ok){let p;if(n.headers.get("content-type")?.includes("application/json")){let m=await n.json(),d=z.object({detail:z.string().optional(),title:z.string().optional(),message:z.string().optional(),error:z.string().optional()}).safeParse(m);d.success&&(p=d.data.detail||d.data.message,d.data.error&&(p=`[${d.data.error}] ${p}`));}throw n.status===401?new Oe(i,p):n.status===404?new ae(i,p):n.status===403?new Ae(i,p):new Le(i,n.status,p)}return n.json()})();return Ge.set(i,o),o}))}async function sr(e){try{let t=e;e.startsWith("~/")&&(t=R__default.join(homedir(),e.slice(2)));let r=R__default.resolve(t),i=await promises.readFile(r,"utf8"),o=JSON.parse(i);try{return T.parse(o)}catch(s){throw new C(e,s)}}catch(t){throw t instanceof Error&&(t.message.includes("ENOENT")||t.message.includes("no such file"))?new Q(e,t):t instanceof C?t:new Q(e,t)}}T.extend({_source:z.string().optional()});function pt(e,t){let r={},i=[...e];if(!t?.registries)return at({}),i;for(let o=0;o<i.length;o++){let s=be(i[o],t);s&&(i[o]=s.url,Object.keys(s.headers).length>0&&(r[s.url]=s.headers));}return at(r),i}async function Ye(e,t){return await Promise.all(e.map(async i=>{if(ee(i))return sr(i);if(q(i)){let[n]=await te([i]);try{return T.parse(n)}catch(p){throw new C(i,p)}}if(i.startsWith("@")&&t?.registries){let n=pt([i],t),[p]=await te(n);try{return T.parse(p)}catch(m){throw new C(i,m)}}let o=`${he}/${i}.json`,[s]=await te([o]);try{return T.parse(s)}catch(n){throw new C(i,n)}}))}async function mt(e,t){let r=[],i=[],o=Array.from(new Set(e)),s=await Ye(o,t),n=new Map;for(let d=0;d<s.length;d++)s[d]&&n.set(o[d],s[d]);for(let[d,u]of Array.from(n.entries())){let c={...u,_source:d};if(r.push(c),u.registryDependencies){let f=u.registryDependencies;if(t?.registries)f=pt(u.registryDependencies,t);else {let h=u.registryDependencies.filter(w=>w.startsWith("@"));if(h.length>0){let{registry:w}=me(h[0]);throw new Z(w)}}let{blocks:y}=await dr(f,t,new Set(o));i.push(...y);}}r.push(...i);let p=new Map;for(let d of r){let u=d._source||d.name;p.set(d,u);}return r=Zi(r,p),zt.parse({dependencies:nr.all(r.map(d=>d.dependencies??[])),devDependencies:nr.all(r.map(d=>d.devDependencies??[])),files:Qi(r.map(d=>d.files??[])),docs:r.map(d=>d.docs).filter(Boolean).join(`
15
+ `)})}async function dr(e,t,r=new Set){let i=[];for(let o of e){if(r.has(o))continue;if(r.add(o),o.startsWith("@")&&t?.registries){let{registry:n}=me(o);if(n&&!(n in t.registries))throw new Z(n)}let[s]=await Ye([o],t);if(s&&(i.push({...s,_source:o}),s.registryDependencies)){let n=t?.registries?pt(s.registryDependencies,t):s.registryDependencies,p=await dr(n,t,r);i.push(...p.blocks);}}return {blocks:i}}function J(e,t){let r=t||e.name,i=createHash("sha256").update(r).digest("hex").substring(0,8);return `${e.name}::${i}`}function Ki(e){if(q(e)){let i=new URL(e).pathname,o=i.match(/\/([^/]+)\.json$/),s=o?o[1]:R__default.basename(i,".json");return {name:s,hash:J({name:s},e)}}if(ee(e)){let r=e.match(/\/([^/]+)\.json$/),i=r?r[1]:R__default.basename(e,".json");return {name:i,hash:J({name:i},e)}}let{item:t}=me(e);return {name:t,hash:J({name:t},e)}}function Zi(e,t){let r=new Map,i=new Map,o=new Map,s=new Map;for(let d of e){let u=t.get(d)||d.name,c=J(d,u);r.set(c,d),i.set(c,d),o.set(c,0),s.set(c,[]);}let n=new Map;for(let d of e){let u=t.get(d)||d.name,c=J(d,u);n.has(d.name)||n.set(d.name,[]),n.get(d.name).push(c),u!==d.name&&(n.has(u)||n.set(u,[]),n.get(u).push(c));}for(let d of e){let u=t.get(d)||d.name,c=J(d,u);if(d.registryDependencies)for(let f of d.registryDependencies){let y,h=n.get(f)||[];if(h.length===1)y=h[0];else if(h.length>1)y=h[0];else {let{name:w}=Ki(f),E=n.get(w)||[];E.length>0&&(y=E[0]);}y&&r.has(y)&&(s.get(y).push(c),o.set(c,o.get(c)+1));}}let p=[],m=[];for(let[d,u]of o)u===0&&p.push(d);for(;p.length>0;){let d=p.shift(),u=r.get(d);m.push(u);for(let c of s.get(d)){let f=o.get(c)-1;o.set(c,f),f===0&&p.push(c);}}if(m.length!==e.length){let d=Array.from(r.keys()).filter(u=>!m.some(c=>J(c,t.get(c))===u));console.warn(`Warning: Circular dependencies detected. Some items may not be sorted correctly: ${d.join(", ")}`);for(let[u,c]of r.entries())m.some(f=>J(f,t.get(f))===u)||m.push(c);}return m}function Qi(e){let t=new Map,r=[];for(let i of e)if(i)for(let o of i){let s=o.target||o.path;t.has(s)||(t.set(s,o),r.push(o));}return r}var l={error:e=>N.red(e),warn:e=>N.yellow(e),info:e=>N.blue(e),success:e=>N.green(e),dim:e=>N.cyan(e)};var a={error(...e){console.log(l.error(e.join(" ")));},warn(...e){console.log(l.warn(e.join(" ")));},info(...e){console.log(l.info(e.join(" ")));},success(...e){console.log(l.success(e.join(" ")));},log(...e){console.log(e.join(" "));},break(){console.log("");}};function j(e){if(a.break(),a.error("Something went wrong. Please check the error below for more details."),a.error("If the problem persists, please open an issue on GitHub."),a.error(""),typeof e=="string"&&(a.error(e),a.break(),process.exit(1)),e instanceof _&&(e.message&&(a.error(e.cause?"Error:":"Message:"),a.error(e.message)),e.cause&&(a.error(`
16
16
  Message:`),a.error(e.cause)),e.suggestion&&(a.error(`
17
- Suggestion:`),a.error(e.suggestion)),a.break(),process.exit(1)),e instanceof z.ZodError){a.error("Validation failed:");for(let t of e.issues){let r=t.path.join(".")||"root";a.error(`- ${f.info(r)}: ${t.message}`);}a.break(),process.exit(1);}e instanceof Error&&(a.error(e.message),a.break(),process.exit(1)),a.break(),process.exit(1);}function v(e,t){return to({text:e,isSilent:t?.silent??false})}async function A(e){let t=await detect({programmatic:true,cwd:e});if(t?.startsWith("bun"))return "bun";if(t?.startsWith("yarn"))return "yarn";if(t?.startsWith("pnpm"))return "pnpm";if(t?.startsWith("deno"))return "deno";if(t?.startsWith("npm"))return "npm";let r=process.env.npm_config_user_agent||"";return r.startsWith("bun")?"bun":r.startsWith("yarn")?"yarn":r.startsWith("pnpm")?"pnpm":r.startsWith("deno")?"deno":"npm"}async function pr(e,t,r,i={}){if(e=Array.from(new Set(e||[])),t=Array.from(new Set(t||[])),!e?.length&&!t?.length)return;i={silent:false,...i};let o=v("Installing dependencies.",{silent:i.silent})?.start(),s=await A(r.resolvedPaths.cwd);o?.start(),await io(s,e,t,r.resolvedPaths.cwd),o?.succeed();}async function io(e,t,r,i){if(e==="npm")return oo(t,r,i);if(e==="deno")return so(t,r,i);t?.length&&await execa(e,["add",...t],{cwd:i}),r?.length&&await execa(e,["add","-D",...r],{cwd:i});}async function oo(e,t,r){e.length&&await execa("npm",["install",...e],{cwd:r}),t.length&&await execa("npm",["install","-D",...t],{cwd:r});}async function so(e,t,r){e?.length&&await execa("deno",["add",...e.map(i=>`npm:${i}`)],{cwd:r}),t?.length&&await execa("deno",["add","-D",...t.map(i=>`npm:${i}`)],{cwd:r});}function cr(e,t,r={}){let{ignoreImports:i=false}=r,o=e.replace(/\r\n/g,`
17
+ Suggestion:`),a.error(e.suggestion)),a.break(),process.exit(1)),e instanceof z.ZodError){a.error("Validation failed:");for(let t of e.issues){let r=t.path.join(".")||"root";a.error(`- ${l.info(r)}: ${t.message}`);}a.break(),process.exit(1);}e instanceof Error&&(a.error(e.message),a.break(),process.exit(1)),a.break(),process.exit(1);}function v(e,t){return eo({text:e,isSilent:t?.silent??false})}async function A(e){let t=await detect({programmatic:true,cwd:e});if(t?.startsWith("bun"))return "bun";if(t?.startsWith("yarn"))return "yarn";if(t?.startsWith("pnpm"))return "pnpm";if(t?.startsWith("deno"))return "deno";if(t?.startsWith("npm"))return "npm";let r=process.env.npm_config_user_agent||"";return r.startsWith("bun")?"bun":r.startsWith("yarn")?"yarn":r.startsWith("pnpm")?"pnpm":r.startsWith("deno")?"deno":"npm"}async function pr(e,t,r,i={}){if(e=Array.from(new Set(e||[])),t=Array.from(new Set(t||[])),!e?.length&&!t?.length)return;i={silent:false,...i};let o=v("Installing dependencies.",{silent:i.silent})?.start(),s=await A(r.resolvedPaths.cwd);o?.start(),await ro(s,e,t,r.resolvedPaths.cwd),o?.succeed();}async function ro(e,t,r,i){if(e==="npm")return io(t,r,i);if(e==="deno")return oo(t,r,i);t?.length&&await execa(e,["add",...t],{cwd:i}),r?.length&&await execa(e,["add","-D",...r],{cwd:i});}async function io(e,t,r){e.length&&await execa("npm",["install",...e],{cwd:r}),t.length&&await execa("npm",["install","-D",...t],{cwd:r});}async function oo(e,t,r){e?.length&&await execa("deno",["add",...e.map(i=>`npm:${i}`)],{cwd:r}),t?.length&&await execa("deno",["add","-D",...t.map(i=>`npm:${i}`)],{cwd:r});}function mr(e,t,r={}){let{ignoreImports:i=false}=r,o=e.replace(/\r\n/g,`
18
18
  `).trim(),s=t.replace(/\r\n/g,`
19
- `).trim();if(o===s)return true;if(!i)return false;let n=/^(import\s+(?:type\s+)?(?:\*\s+as\s+\w+|\{[^}]*\}|\w+)?(?:\s*,\s*(?:\{[^}]*\}|\w+))?\s+from\s+["'])([^"']+)(["'])/gm,m=c=>c.replace(n,(u,l,g,h)=>{if(g.startsWith("."))return `${l}${g}${h}`;let w=g.split("/"),_=w[w.length-1];return `${l}@normalized/${_}${h}`}),p=m(o),d=m(s);return p===d}function no(e,t){if(e.type==="registry:api")return t.resolvedPaths.api;if(e.type==="registry:vendor")return t.resolvedPaths.vendor;if(e.type==="registry:admin")return t.resolvedPaths.admin;throw new Error(`Unknown file type: ${e.type}`)}function qe(e,t,r){let i=no(e,t);if(e.type==="registry:api"){let n=e.path.replace(/^\/|\/$/g,"").split("/").slice(1).join("/");return R__default.join(i,n)}let o=ao(e.path,i);return R__default.join(i,o)}function ao(e,t){let r=e.replace(/^\/|\/$/g,""),i=t.replace(/^\/|\/$/g,""),o=r.split("/"),s=i.split("/");for(let n=s.length-1;n>=0;n--){let m=o.findIndex(p=>p===s[n]);if(m!==-1)return o.slice(m+1).join("/")}return o[o.length-1]}var uo=new Project({compilerOptions:{}});async function lo(e){let t=await promises.mkdtemp(R__default.join(tmpdir(),"mercurjs-")),r=R__default.basename(e,R__default.extname(e));return R__default.join(t,`${r}.ts`)}function fo(e){switch(R__default.extname(e).toLowerCase()){case ".tsx":case ".ts":return ScriptKind.TS;default:return ScriptKind.Unknown}}async function Je(e){let t=R__default.extname(e.filename).toLowerCase();if(![".tsx",".ts"].includes(t))return e.raw;let r=fo(e.filename),i=await lo(e.filename),o=uo.createSourceFile(i,e.raw,{scriptKind:r});for(let s of o.getImportStringLiterals()){let n=go(s.getLiteralValue(),e.config);s.setLiteralValue(n);}return o.getText()}function go(e,t){if(e.startsWith("@/workflows/")){let r=e.replace(/^@\/workflows\//,"");return `${t.aliases.api}/workflows/${r}`}if(e==="@/workflows")return `${t.aliases.api}/workflows`;if(e.startsWith("@/api/")){let r=e.replace(/^@\/api\//,"");return `${t.aliases.api}/api/${r}`}if(e==="@/api")return `${t.aliases.api}/api`;if(e.startsWith("@/links/")){let r=e.replace(/^@\/links\//,"");return `${t.aliases.api}/links/${r}`}if(e==="@/links")return `${t.aliases.api}/links`;if(e.startsWith("@/modules/")){let r=e.replace(/^@\/modules\//,"");return `${t.aliases.api}/modules/${r}`}if(e==="@/modules")return `${t.aliases.api}/modules`;if(e.startsWith("@/lib/")){let r=e.replace(/^@\/lib\//,"");return `${t.aliases.api}/lib/${r}`}if(e==="@/lib")return `${t.aliases.api}/lib`;if(e.startsWith("@/vendor/")){let r=e.replace(/^@\/vendor\//,"");return `${t.aliases.vendor}/${r}`}if(e==="@/vendor")return t.aliases.vendor;if(e.startsWith("@/admin/")){let r=e.replace(/^@\/admin\//,"");return `${t.aliases.admin}/${r}`}return e==="@/admin"?t.aliases.admin:e}async function gr(e,t,r){if(!e?.length)return {filesCreated:[],filesUpdated:[],filesSkipped:[],filesDeclined:[]};r={overwrite:false,silent:false,yes:false,...r};let i=v("Updating files.",{silent:r.silent})?.start(),o=await E(t.resolvedPaths.cwd),s=[],n=[],m=[],p=[];for(let u of e){let l=qe(u,t,{isSrcDir:o?.isSrcDir??false,path:r.path??""}),g=basename(u.path),h=R__default.dirname(l),w=existsSync(l);if(w&&statSync(l).isDirectory())throw new Error(`Cannot write to ${l}: path exists and is a directory. Please provide a file path instead.`);let _=await Je({filename:u.path,raw:u.content,config:t});if(w&&!r.overwrite){let F=await promises.readFile(l,"utf-8");if(cr(F,_)){m.push(R__default.relative(t.resolvedPaths.cwd,l));continue}if(!r.yes){i.stop();let z=diffLines(F,_);a.info(`
20
- File: ${f.info(g)}`),Ro(z);let{overwrite:$e}=await Pe({type:"confirm",name:"overwrite",message:`The file ${f.info(g)} already exists. Would you like to overwrite?`,initial:false});if(!$e){p.push(R__default.relative(t.resolvedPaths.cwd,l));continue}}}existsSync(h)||await promises.mkdir(h,{recursive:true}),await promises.writeFile(l,_,"utf-8"),w?n.push(R__default.relative(t.resolvedPaths.cwd,l)):s.push(R__default.relative(t.resolvedPaths.cwd,l));}let d=s.length+n.length,c=m.length+p.length;if(d>0){if(i?.succeed(),c>0&&!r.silent){let u=[];d===1?u.push("1 file updated"):u.push(`${d} files updated`),c===1?u.push("1 file skipped"):u.push(`${c} files skipped`),a.info(`${u.join(", ")}.`);}}else p.length?i?.info("No files were updated."):m.length?i?.info("Already up to date."):i?.info("No files to update.");return {filesCreated:s,filesUpdated:n,filesSkipped:m,filesDeclined:p}}var jo=3;function bo(e,t=jo){let r=[],i=new Set;for(let s=0;s<e.length;s++)(e[s]?.added||e[s]?.removed)&&i.add(s);if(i.size===0)return r;let o=new Map;for(let s=0;s<e.length;s++){let n=e[s];if(n)if(n.added||n.removed)o.set(s,"full");else {let m=i.has(s-1),p=i.has(s+1);m&&p?o.set(s,"both"):m?o.set(s,"start"):p&&o.set(s,"end");}}for(let s=0;s<e.length;s++){let n=e[s],m=o.get(s);if(!(!n||!m))if(n.added){let p=n.value.split(`
21
- `);p[p.length-1]===""&&p.pop();for(let d of p)r.push(`+ ${d}`);}else if(n.removed){let p=n.value.split(`
22
- `);p[p.length-1]===""&&p.pop();for(let d of p)r.push(`- ${d}`);}else {let p=n.value.split(`
23
- `);p[p.length-1]===""&&p.pop();let d=[];m==="full"||p.length<=t*2+1?d=p.map(c=>` ${c}`):m==="start"?(d=p.slice(0,t).map(c=>` ${c}`),p.length>t&&d.push(` ... ${p.length-t} lines hidden ...`)):m==="end"?(p.length>t&&d.push(` ... ${p.length-t} lines hidden ...`),d.push(...p.slice(-t).map(c=>` ${c}`))):m==="both"&&(p.length<=t*2+1?d=p.map(c=>` ${c}`):d=[...p.slice(0,t).map(c=>` ${c}`),` ... ${p.length-t*2} lines hidden ...`,...p.slice(-t).map(c=>` ${c}`)]),r.push(...d);}}return r}function Ro(e){let t=bo(e);if(t.length!==0)for(let r of t)r.startsWith("+ ")?process.stdout.write(`${f.success(r)}
24
- `):r.startsWith("- ")?process.stdout.write(`${f.error(r)}
25
- `):r.includes("lines hidden")?process.stdout.write(`${f.info(r)}
19
+ `).trim();if(o===s)return true;if(!i)return false;let n=/^(import\s+(?:type\s+)?(?:\*\s+as\s+\w+|\{[^}]*\}|\w+)?(?:\s*,\s*(?:\{[^}]*\}|\w+))?\s+from\s+["'])([^"']+)(["'])/gm,p=u=>u.replace(n,(c,f,y,h)=>{if(y.startsWith("."))return `${f}${y}${h}`;let w=y.split("/"),E=w[w.length-1];return `${f}@normalized/${E}${h}`}),m=p(o),d=p(s);return m===d}function so(e,t){if(e.type==="registry:api")return t.resolvedPaths.api;if(e.type==="registry:vendor")return t.resolvedPaths.vendor;if(e.type==="registry:admin")return t.resolvedPaths.admin;throw new Error(`Unknown file type: ${e.type}`)}function qe(e,t,r){let i=so(e,t);if(e.type==="registry:api"){let n=e.path.replace(/^\/|\/$/g,"").split("/").slice(1).join("/");return R__default.join(i,n)}let o=no(e.path,i);return R__default.join(i,o)}function no(e,t){let r=e.replace(/^\/|\/$/g,""),i=t.replace(/^\/|\/$/g,""),o=r.split("/"),s=i.split("/");for(let n=s.length-1;n>=0;n--){let p=o.findIndex(m=>m===s[n]);if(p!==-1)return o.slice(p+1).join("/")}return o[o.length-1]}var co=new Project({compilerOptions:{}});async function uo(e){let t=await promises.mkdtemp(R__default.join(tmpdir(),"mercurjs-")),r=R__default.basename(e,R__default.extname(e));return R__default.join(t,`${r}.ts`)}function lo(e){switch(R__default.extname(e).toLowerCase()){case ".tsx":case ".ts":return ScriptKind.TS;default:return ScriptKind.Unknown}}async function Je(e){let t=R__default.extname(e.filename).toLowerCase();if(![".tsx",".ts"].includes(t))return e.raw;let r=lo(e.filename),i=await uo(e.filename),o=co.createSourceFile(i,e.raw,{scriptKind:r});for(let s of o.getImportStringLiterals()){let n=fo(s.getLiteralValue(),e.config);s.setLiteralValue(n);}return o.getText()}function fo(e,t){if(e.startsWith("@/workflows/")){let r=e.replace(/^@\/workflows\//,"");return `${t.aliases.api}/workflows/${r}`}if(e==="@/workflows")return `${t.aliases.api}/workflows`;if(e.startsWith("@/api/")){let r=e.replace(/^@\/api\//,"");return `${t.aliases.api}/api/${r}`}if(e==="@/api")return `${t.aliases.api}/api`;if(e.startsWith("@/links/")){let r=e.replace(/^@\/links\//,"");return `${t.aliases.api}/links/${r}`}if(e==="@/links")return `${t.aliases.api}/links`;if(e.startsWith("@/modules/")){let r=e.replace(/^@\/modules\//,"");return `${t.aliases.api}/modules/${r}`}if(e==="@/modules")return `${t.aliases.api}/modules`;if(e.startsWith("@/lib/")){let r=e.replace(/^@\/lib\//,"");return `${t.aliases.api}/lib/${r}`}if(e==="@/lib")return `${t.aliases.api}/lib`;if(e.startsWith("@/vendor/")){let r=e.replace(/^@\/vendor\//,"");return `${t.aliases.vendor}/${r}`}if(e==="@/vendor")return t.aliases.vendor;if(e.startsWith("@/admin/")){let r=e.replace(/^@\/admin\//,"");return `${t.aliases.admin}/${r}`}return e==="@/admin"?t.aliases.admin:e}async function fr(e,t,r){if(!e?.length)return {filesCreated:[],filesUpdated:[],filesSkipped:[],filesDeclined:[]};r={overwrite:false,silent:false,yes:false,...r};let i=v("Updating files.",{silent:r.silent})?.start(),o=await k(t.resolvedPaths.cwd),s=[],n=[],p=[],m=[];for(let c of e){let f=qe(c,t,{isSrcDir:o?.isSrcDir??false,path:r.path??""}),y=basename(c.path),h=R__default.dirname(f),w=existsSync(f);if(w&&statSync(f).isDirectory())throw new Error(`Cannot write to ${f}: path exists and is a directory. Please provide a file path instead.`);let E=await Je({filename:c.path,raw:c.content,config:t});if(w&&!r.overwrite){let F=await promises.readFile(f,"utf-8");if(mr(F,E)){p.push(R__default.relative(t.resolvedPaths.cwd,f));continue}if(!r.yes){i.stop();let z=diffLines(F,E);a.info(`
20
+ File: ${l.info(y)}`),bo(z);let{overwrite:$e}=await Pe({type:"confirm",name:"overwrite",message:`The file ${l.info(y)} already exists. Would you like to overwrite?`,initial:false});if(!$e){m.push(R__default.relative(t.resolvedPaths.cwd,f));continue}}}existsSync(h)||await promises.mkdir(h,{recursive:true}),await promises.writeFile(f,E,"utf-8"),w?n.push(R__default.relative(t.resolvedPaths.cwd,f)):s.push(R__default.relative(t.resolvedPaths.cwd,f));}let d=s.length+n.length,u=p.length+m.length;if(d>0){if(i?.succeed(),u>0&&!r.silent){let c=[];d===1?c.push("1 file updated"):c.push(`${d} files updated`),u===1?c.push("1 file skipped"):c.push(`${u} files skipped`),a.info(`${c.join(", ")}.`);}}else m.length?i?.info("No files were updated."):p.length?i?.info("Already up to date."):i?.info("No files to update.");return {filesCreated:s,filesUpdated:n,filesSkipped:p,filesDeclined:m}}var wo=3;function jo(e,t=wo){let r=[],i=new Set;for(let s=0;s<e.length;s++)(e[s]?.added||e[s]?.removed)&&i.add(s);if(i.size===0)return r;let o=new Map;for(let s=0;s<e.length;s++){let n=e[s];if(n)if(n.added||n.removed)o.set(s,"full");else {let p=i.has(s-1),m=i.has(s+1);p&&m?o.set(s,"both"):p?o.set(s,"start"):m&&o.set(s,"end");}}for(let s=0;s<e.length;s++){let n=e[s],p=o.get(s);if(!(!n||!p))if(n.added){let m=n.value.split(`
21
+ `);m[m.length-1]===""&&m.pop();for(let d of m)r.push(`+ ${d}`);}else if(n.removed){let m=n.value.split(`
22
+ `);m[m.length-1]===""&&m.pop();for(let d of m)r.push(`- ${d}`);}else {let m=n.value.split(`
23
+ `);m[m.length-1]===""&&m.pop();let d=[];p==="full"||m.length<=t*2+1?d=m.map(u=>` ${u}`):p==="start"?(d=m.slice(0,t).map(u=>` ${u}`),m.length>t&&d.push(` ... ${m.length-t} lines hidden ...`)):p==="end"?(m.length>t&&d.push(` ... ${m.length-t} lines hidden ...`),d.push(...m.slice(-t).map(u=>` ${u}`))):p==="both"&&(m.length<=t*2+1?d=m.map(u=>` ${u}`):d=[...m.slice(0,t).map(u=>` ${u}`),` ... ${m.length-t*2} lines hidden ...`,...m.slice(-t).map(u=>` ${u}`)]),r.push(...d);}}return r}function bo(e){let t=jo(e);if(t.length!==0)for(let r of t)r.startsWith("+ ")?process.stdout.write(`${l.success(r)}
24
+ `):r.startsWith("- ")?process.stdout.write(`${l.error(r)}
25
+ `):r.includes("lines hidden")?process.stdout.write(`${l.info(r)}
26
26
  `):process.stdout.write(`${r}
27
- `);}async function yr(e,t,r){if(r={overwrite:false,silent:false,yes:false,...r},!e.length)return;let i=v("Checking registry.",{silent:r.silent})?.start(),o=await pt(e,me(t));if(!o)return i?.fail(),j(new Error("Failed to fetch items from registry."));i?.succeed();let{filesCreated:s,filesUpdated:n}=await gr(o.files,t,{overwrite:r.overwrite,silent:r.silent,path:r.path,yes:r.yes});(s.length||n.length)&&await pr(o.dependencies,o.devDependencies,t,{silent:r.silent}),o.docs&&a.info(o.docs);}z.object({cwd:z.string(),yes:z.boolean(),defaults:z.boolean(),silent:z.boolean()});async function hr(e){let t={},r=R__default.resolve(e.cwd);existsSync(r)||(t.MISSING_DIR=true);let i=await E(r);return {errors:t,projectInfo:i}}var wr=join(homedir(),".mercur"),ut=join(wr,"config.json"),lt={telemetry_enabled:true,telemetry_email:null,notice_shown:false},ft=class{get(t){return this.read()[t]}set(t,r){let i=this.read();i[t]=r,this.write(i);}read(){try{if(!existsSync(ut))return {...lt};let t=readFileSync(ut,"utf-8"),r=JSON.parse(t);return {...lt,...r}}catch{return {...lt}}}write(t){try{mkdirSync(wr,{recursive:!0}),writeFileSync(ut,JSON.stringify(t,null,2)+`
28
- `,{mode:384});}catch{}}},M=new ft;var le=e=>Function("mm","return import(mm)")(e);function Po(){let e=(...t)=>t.some(r=>!!process.env[r]);return e("MEDUSA_CLOUD_ENVIRONMENT_HANDLE","MEDUSA_CLOUD_SANDBOX_HANDLE","MEDUSA_CLOUD_API_KEY")?"medusa-cloud":e("RENDER","RENDER_URL","RENDER_INTERNAL_HOSTNAME","RENDER_SERVICE_ID")?"render":e("FLY_APP_NAME","FLY_REGION","FLY_ALLOC_ID")?"fly-io":e("RAILWAY_STATIC_URL","RAILWAY_ENVIRONMENT_NAME")?"railway":e("DYNO","HEROKU_APP_NAME")?"heroku":e("DO_DEPLOYMENT_ID","DO_APP_NAME","DIGITALOCEAN")?"digitalocean":e("KOYEB","KOYEB_DEPLOYMENT_ID","KOYEB_APP_NAME")?"koyeb":null}async function br(){try{let e=await le("os"),t=e.cpus();return {deploymentVendor:Po(),systemPlatform:e.platform(),systemRelease:e.release(),systemArchitecture:e.arch(),cpuCount:t.length,cpuModel:t.length?t[0].model:null,cpuSpeed:t.length?t[0].speed:null,memory:e.totalmem(),isWSL:await To(),isDocker:await Rr(),isTTY:typeof process<"u"&&process.stdout?process.stdout.isTTY:null}}catch{return {systemPlatform:null,systemRelease:null,systemArchitecture:null,cpuCount:null,cpuModel:null,cpuSpeed:null,memory:null,isWSL:null,isDocker:null,isTTY:null}}}async function To(){try{if(typeof process>"u"||process?.platform!=="linux")return !1;let e=await le("fs");return (await le("os")).release().toLowerCase().includes("microsoft")?!await jr():e.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft")?!await jr():!1}catch{return false}}var $o=async()=>{try{return (await le("fs")).statSync("/run/.containerenv"),!0}catch{return false}};async function Rr(){return await Do()||await No()}async function Do(){try{return (await le("fs")).statSync("/.dockerenv"),!0}catch{return false}}async function No(){try{return (await le("fs")).readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return false}}async function jr(){return await $o()||await Rr()}var gt=e=>createHash("sha256").update(e).digest("base64");var Ao=process.env.MERCUR_TELEMETRY_PROXY_URL||"https://telemetry.mercurjs.com/api/v1/events",xr=e=>{M.set("telemetry_email",e);},_r=e=>{M.set("telemetry_enabled",e);},He="https://docs.mercurjs.com/v2/telemetry",H=()=>{M.get("notice_shown")||(M.set("notice_shown",true),process.env.MERCUR_DISABLE_TELEMETRY!=="true"&&console.error(["","Mercur collects anonymous usage data to improve the CLI experience.",`You can disable this at any time by running: ${f.info("mercurjs telemetry --disable")}`,`Or by setting ${f.info("MERCUR_DISABLE_TELEMETRY=true")}`,`Learn more: ${f.info(He)}`,""].join(`
29
- `)));},Lo=()=>M.get("telemetry_enabled")&&process.env.MERCUR_DISABLE_TELEMETRY!=="true",T=async(e,t)=>{try{if(!Lo())return;let r=await E(t.cwd),{projectId:i}=zo(r.packageJson),o={nodeEnv:Mo(),nodeVersion:process.version,mercurVersion:r.mercurVersion,medusaVersion:r.medusaVersion,isSrcDir:r.isSrcDir,aliasPrefix:r.aliasPrefix,config:await b(t.cwd),projectId:i,systemInfo:await br(),packageManager:await A(t.cwd),email:Bo()};await fetch(Ao,{body:JSON.stringify({...o,...e}),headers:{"Content-Type":"application/json"},method:"post"});}catch{}};function Mo(){return process.env.NODE_ENV||"development"}var Uo=()=>{try{let e=execSync("git config --local --get remote.origin.url",{stdio:"pipe",timeout:1e3});return String(e).trim()}catch{return null}},zo=e=>{let t=Uo();if(t)return {projectId:gt(t)};let r=process.cwd();return {projectId:gt(r)}},Bo=()=>M.get("telemetry_email")||void 0;var Vo=z.object({cwd:z.string(),yes:z.boolean(),defaults:z.boolean(),silent:z.boolean()}),Er=new Command().name("init").description("initialize your project and install dependencies").option("-y, --yes","skip confirmation prompt.",true).option("-d, --defaults","use default configuration.",false).option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).option("-s, --silent","mute output.",false).action(async e=>{try{H();let t=Vo.parse({cwd:R__default.resolve(e.cwd),...e});await ht(t),a.log(`${f.success("Success!")} Project initialization completed.
30
- You may now add blocks.`),a.break(),await T({type:"init",payload:{outcome:"success"}},{cwd:t.cwd});}catch(t){a.break(),j(t);}finally{x();}});async function ht(e){await hr(e);let t=await b(e.cwd),r=t?await qo(t,e):await Yo(e);if(!e.yes){let{proceed:s}=await Pe({type:"confirm",name:"proceed",message:`Write configuration to ${f.info("blocks.json")}. Proceed?`,initial:true});s||process.exit(0);}let i=v("Writing blocks.json.").start(),o=R__default.resolve(e.cwd,"blocks.json");return r.registries=Object.fromEntries(Object.entries(r.registries||{}).filter(([s])=>!Object.keys(C).includes(s))),await promises.writeFile(o,`${JSON.stringify(r,null,2)}
31
- `,"utf8"),i.succeed(),await ot(e.cwd,r)}async function Yo(e){if(e.defaults)return W.parse({$schema:Fe,aliases:{api:"packages/api/src",vendor:"apps/vendor/src",admin:"apps/admin/src"},registries:C});a.info("");let t=await Pe([{type:"text",name:"api",message:`Configure the import alias for ${f.info("api")}:`,initial:"packages/api/src"},{type:"text",name:"vendor",message:`Configure the import alias for ${f.info("vendor")}:`,initial:"apps/vendor/src"},{type:"text",name:"admin",message:`Configure the import alias for ${f.info("admin")}:`,initial:"apps/admin/src"}],{onCancel:()=>{process.exit(0);}});return W.parse({$schema:Fe,aliases:{api:t.api??"packages/api/src",vendor:t.vendor??"apps/vendor/src",admin:t.admin??"apps/admin/src"},registries:C})}async function qo(e,t){if(t.defaults)return W.parse({$schema:Fe,aliases:{api:"packages/api/src",vendor:"apps/vendor/src",admin:"apps/admin/src"},registries:C});let r=await Pe([{type:"text",name:"api",message:`Configure the import alias for ${f.info("api")}:`,initial:e.aliases.api},{type:"text",name:"vendor",message:`Configure the import alias for ${f.info("vendor")}:`,initial:e.aliases.vendor},{type:"text",name:"admin",message:`Configure the import alias for ${f.info("admin")}:`,initial:e.aliases.admin}],{onCancel:()=>{process.exit(0);}});return W.parse({$schema:e.$schema,aliases:{api:r.api??e.aliases.api,vendor:r.vendor??e.aliases.vendor,admin:r.admin??e.aliases.admin}})}var Zo=z.object({blocks:z.array(z.string()).optional(),yes:z.boolean(),overwrite:z.boolean(),cwd:z.string(),silent:z.boolean()}),Sr=new Command().name("add").description("add blocks to your project").argument("[blocks...]","names of blocks to add").option("-y, --yes","skip confirmation prompt.",false).option("-o, --overwrite","overwrite existing files.",false).option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).option("-s, --silent","mute output.",false).action(async(e,t)=>{try{H();let r=Zo.parse({blocks:e,cwd:R__default.resolve(t.cwd),...t}),i=await b(r.cwd);i||(i=G({resolvedPaths:{cwd:r.cwd}})),r.blocks?.length||(a.error("Please specify at least one item to add."),process.exit(1));let{errors:o}=await Jt(r);if(o[I]){let{proceed:s}=await Pe({type:"confirm",name:"proceed",message:`You need to create a ${f.info("blocks.json")} file to add items. Proceed?`,initial:!0});s||(a.break(),process.exit(1)),i=await ht({cwd:r.cwd,yes:!0,defaults:!1,silent:r.silent});}if(!i)throw new Error(`Failed to read config at ${f.info(r.cwd)}.`);await yr(r.blocks,i,{overwrite:r.overwrite,silent:r.silent,yes:r.yes,path:r.cwd}),await T({type:"add",payload:{outcome:"success",blocks:r.blocks}},{cwd:r.cwd});}catch(r){a.break(),j(r);}finally{x();}});async function Ir(e){let t={},r={cwd:e.cwd,registryFile:R__default.resolve(e.cwd,e.registryFile),outputDir:R__default.resolve(e.cwd,e.outputDir)};if(!L.existsSync(r.registryFile))return t[B]=true,{errors:t,resolvePaths:null,config:null};if(!L.existsSync(R__default.resolve(e.cwd,"blocks.json")))return t[I]=true,{errors:t,resolvePaths:null,config:null};await L.mkdir(r.outputDir,{recursive:true});try{let i=await b(e.cwd);return {errors:t,config:i,resolvePaths:r}}catch{a.break(),a.error(`An invalid ${f.info("blocks.json")} file was found at ${f.info(e.cwd)}.
32
- Before you can build the registry, you must create a valid ${f.info("blocks.json")} file by running the ${f.info("init")} command.`),a.break(),process.exit(1);}}var Xo=z.object({cwd:z.string(),registryFile:z.string(),outputDir:z.string(),verbose:z.boolean().optional().default(false)}),Cr=new Command().name("registry:build").description("builds the registry").argument("[registry]","path to registry.json file","./registry.json").option("-o, --output <path>","destination directory for json files","./r").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).option("-v, --verbose","verbose output").action(async(e,t)=>{await es({cwd:R.resolve(t.cwd),registryFile:e,outputDir:t.output,verbose:t.verbose});});async function es(e){try{H();let t=Xo.parse(e),[{errors:r,resolvePaths:i,config:o},s]=await Promise.all([Ir(t),E(t.cwd)]);(r[I]||!s)&&(a.error(`A ${f.info("blocks.json")} file is required to build the registry. Run ${f.info("mercur init")} to create one.`),a.break(),await T({type:"build",payload:{outcome:"missing_config"}},{cwd:t.cwd}),process.exit(1)),(r[B]||!i)&&(a.error(`We could not find a registry file at ${f.info(R.resolve(t.cwd,t.registryFile))}.`),a.break(),await T({type:"build",payload:{outcome:"missing_registry_file"}},{cwd:t.cwd}),process.exit(1));let n=await U.readFile(i.registryFile,"utf-8"),m=K.safeParse(JSON.parse(n));m.success||(a.error(`Invalid registry file found at ${f.info(i.registryFile)}.`),a.break(),process.exit(1));let p=v("Building registry..."),d=await ts(m.data,o,s);for(let c of d.items)c.files=c.files?.filter((u,l,g)=>l===g.findIndex(h=>h.path===u.path)),c.dependencies&&(c.dependencies=c.dependencies.filter((u,l,g)=>l===g.findIndex(h=>h===u)));for(let c of d.items){if(!c.files)continue;p.start(`Building ${c.name}...`),c.$schema=Gt;for(let l of c.files){let g=s.isSrcDir?"src":"",h=R.resolve(i.cwd,g,l.path);try{if(!(await U.stat(h)).isFile())continue;l.content=await U.readFile(h,"utf-8");}catch(w){console.error("Error reading file in registry build:",h,w);continue}}let u=$.safeParse(c);if(!u.success){a.error(`Invalid registry item found for ${f.info(c.name)}.`);continue}await U.writeFile(R.resolve(i.outputDir,`${u.data.name}.json`),JSON.stringify(u.data,null,2));}if(await U.copyFile(i.registryFile,R.resolve(i.outputDir,"registry.json")),p.succeed("Building registry."),t.verbose){v(`The registry has ${f.info(d.items.length.toString())} items:`).succeed();for(let c of d.items){a.log(` - ${c.name}`);for(let u of c.files??[])a.log(` - ${u.path}`);}}await T({type:"build",payload:{outcome:"success"}},{cwd:t.cwd});}catch(t){a.break(),j(t);}}async function ts(e,t,r){for(let i of e.items)if(i.files?.length)for(let o of i.files){let s=await dt(o.path,t,r);s.files=s.files?.filter(n=>n.path!==o.path),s.files&&i.files.push(...s.files),s.dependencies&&(i.dependencies=i.dependencies?i.dependencies.concat(s.dependencies):s.dependencies);}return e}var Ke=".mercur/_generated",ie=/route\.(ts|js)$/,Pr={"/admin/api-keys":'typeof import("@medusajs/medusa/api/admin/api-keys/route")',"/admin/api-keys/:id":'typeof import("@medusajs/medusa/api/admin/api-keys/[id]/route")',"/admin/api-keys/:id/revoke":'typeof import("@medusajs/medusa/api/admin/api-keys/[id]/revoke/route")',"/admin/api-keys/:id/sales-channels":'typeof import("@medusajs/medusa/api/admin/api-keys/[id]/sales-channels/route")',"/admin/campaigns":'typeof import("@medusajs/medusa/api/admin/campaigns/route")',"/admin/campaigns/:id":'typeof import("@medusajs/medusa/api/admin/campaigns/[id]/route")',"/admin/campaigns/:id/promotions":'typeof import("@medusajs/medusa/api/admin/campaigns/[id]/promotions/route")',"/admin/claims":'typeof import("@medusajs/medusa/api/admin/claims/route")',"/admin/claims/:id":'typeof import("@medusajs/medusa/api/admin/claims/[id]/route")',"/admin/claims/:id/cancel":'typeof import("@medusajs/medusa/api/admin/claims/[id]/cancel/route")',"/admin/claims/:id/claim-items":'typeof import("@medusajs/medusa/api/admin/claims/[id]/claim-items/route")',"/admin/claims/:id/claim-items/:action_id":'typeof import("@medusajs/medusa/api/admin/claims/[id]/claim-items/[action_id]/route")',"/admin/claims/:id/inbound/items":'typeof import("@medusajs/medusa/api/admin/claims/[id]/inbound/items/route")',"/admin/claims/:id/inbound/items/:action_id":'typeof import("@medusajs/medusa/api/admin/claims/[id]/inbound/items/[action_id]/route")',"/admin/claims/:id/inbound/shipping-method":'typeof import("@medusajs/medusa/api/admin/claims/[id]/inbound/shipping-method/route")',"/admin/claims/:id/inbound/shipping-method/:action_id":'typeof import("@medusajs/medusa/api/admin/claims/[id]/inbound/shipping-method/[action_id]/route")',"/admin/claims/:id/outbound/items":'typeof import("@medusajs/medusa/api/admin/claims/[id]/outbound/items/route")',"/admin/claims/:id/outbound/items/:action_id":'typeof import("@medusajs/medusa/api/admin/claims/[id]/outbound/items/[action_id]/route")',"/admin/claims/:id/outbound/shipping-method":'typeof import("@medusajs/medusa/api/admin/claims/[id]/outbound/shipping-method/route")',"/admin/claims/:id/outbound/shipping-method/:action_id":'typeof import("@medusajs/medusa/api/admin/claims/[id]/outbound/shipping-method/[action_id]/route")',"/admin/claims/:id/request":'typeof import("@medusajs/medusa/api/admin/claims/[id]/request/route")',"/admin/collections":'typeof import("@medusajs/medusa/api/admin/collections/route")',"/admin/collections/:id":'typeof import("@medusajs/medusa/api/admin/collections/[id]/route")',"/admin/collections/:id/products":'typeof import("@medusajs/medusa/api/admin/collections/[id]/products/route")',"/admin/currencies":'typeof import("@medusajs/medusa/api/admin/currencies/route")',"/admin/currencies/:code":'typeof import("@medusajs/medusa/api/admin/currencies/[code]/route")',"/admin/customer-groups":'typeof import("@medusajs/medusa/api/admin/customer-groups/route")',"/admin/customer-groups/:id":'typeof import("@medusajs/medusa/api/admin/customer-groups/[id]/route")',"/admin/customer-groups/:id/customers":'typeof import("@medusajs/medusa/api/admin/customer-groups/[id]/customers/route")',"/admin/customers":'typeof import("@medusajs/medusa/api/admin/customers/route")',"/admin/customers/:id":'typeof import("@medusajs/medusa/api/admin/customers/[id]/route")',"/admin/customers/:id/addresses":'typeof import("@medusajs/medusa/api/admin/customers/[id]/addresses/route")',"/admin/customers/:id/addresses/:address_id":'typeof import("@medusajs/medusa/api/admin/customers/[id]/addresses/[address_id]/route")',"/admin/customers/:id/customer-groups":'typeof import("@medusajs/medusa/api/admin/customers/[id]/customer-groups/route")',"/admin/draft-orders":'typeof import("@medusajs/medusa/api/admin/draft-orders/route")',"/admin/draft-orders/:id":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/route")',"/admin/draft-orders/:id/convert-to-order":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/convert-to-order/route")',"/admin/draft-orders/:id/edit":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/edit/route")',"/admin/draft-orders/:id/edit/confirm":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/edit/confirm/route")',"/admin/draft-orders/:id/edit/items":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/edit/items/route")',"/admin/draft-orders/:id/edit/items/:action_id":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/edit/items/[action_id]/route")',"/admin/draft-orders/:id/edit/items/item/:item_id":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/edit/items/item/[item_id]/route")',"/admin/draft-orders/:id/edit/promotions":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/edit/promotions/route")',"/admin/draft-orders/:id/edit/request":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/edit/request/route")',"/admin/draft-orders/:id/edit/shipping-methods":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/edit/shipping-methods/route")',"/admin/draft-orders/:id/edit/shipping-methods/:action_id":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/edit/shipping-methods/[action_id]/route")',"/admin/draft-orders/:id/edit/shipping-methods/method/:method_id":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/edit/shipping-methods/method/[method_id]/route")',"/admin/exchanges":'typeof import("@medusajs/medusa/api/admin/exchanges/route")',"/admin/exchanges/:id":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/route")',"/admin/exchanges/:id/cancel":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/cancel/route")',"/admin/exchanges/:id/inbound/items":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/inbound/items/route")',"/admin/exchanges/:id/inbound/items/:action_id":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/inbound/items/[action_id]/route")',"/admin/exchanges/:id/inbound/shipping-method":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/inbound/shipping-method/route")',"/admin/exchanges/:id/inbound/shipping-method/:action_id":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/inbound/shipping-method/[action_id]/route")',"/admin/exchanges/:id/outbound/items":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/outbound/items/route")',"/admin/exchanges/:id/outbound/items/:action_id":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/outbound/items/[action_id]/route")',"/admin/exchanges/:id/outbound/shipping-method":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/outbound/shipping-method/route")',"/admin/exchanges/:id/outbound/shipping-method/:action_id":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/outbound/shipping-method/[action_id]/route")',"/admin/exchanges/:id/request":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/request/route")',"/admin/feature-flags":'typeof import("@medusajs/medusa/api/admin/feature-flags/route")',"/admin/fulfillment-providers":'typeof import("@medusajs/medusa/api/admin/fulfillment-providers/route")',"/admin/fulfillment-providers/:id/options":'typeof import("@medusajs/medusa/api/admin/fulfillment-providers/[id]/options/route")',"/admin/fulfillment-sets/:id":'typeof import("@medusajs/medusa/api/admin/fulfillment-sets/[id]/route")',"/admin/fulfillment-sets/:id/service-zones":'typeof import("@medusajs/medusa/api/admin/fulfillment-sets/[id]/service-zones/route")',"/admin/fulfillment-sets/:id/service-zones/:zone_id":'typeof import("@medusajs/medusa/api/admin/fulfillment-sets/[id]/service-zones/[zone_id]/route")',"/admin/fulfillments":'typeof import("@medusajs/medusa/api/admin/fulfillments/route")',"/admin/fulfillments/:id/cancel":'typeof import("@medusajs/medusa/api/admin/fulfillments/[id]/cancel/route")',"/admin/fulfillments/:id/shipment":'typeof import("@medusajs/medusa/api/admin/fulfillments/[id]/shipment/route")',"/admin/index/details":'typeof import("@medusajs/medusa/api/admin/index/details/route")',"/admin/index/sync":'typeof import("@medusajs/medusa/api/admin/index/sync/route")',"/admin/inventory-items":'typeof import("@medusajs/medusa/api/admin/inventory-items/route")',"/admin/inventory-items/:id":'typeof import("@medusajs/medusa/api/admin/inventory-items/[id]/route")',"/admin/inventory-items/:id/location-levels":'typeof import("@medusajs/medusa/api/admin/inventory-items/[id]/location-levels/route")',"/admin/inventory-items/:id/location-levels/:location_id":'typeof import("@medusajs/medusa/api/admin/inventory-items/[id]/location-levels/[location_id]/route")',"/admin/inventory-items/:id/location-levels/batch":'typeof import("@medusajs/medusa/api/admin/inventory-items/[id]/location-levels/batch/route")',"/admin/inventory-items/location-levels/batch":'typeof import("@medusajs/medusa/api/admin/inventory-items/location-levels/batch/route")',"/admin/invites":'typeof import("@medusajs/medusa/api/admin/invites/route")',"/admin/invites/:id":'typeof import("@medusajs/medusa/api/admin/invites/[id]/route")',"/admin/invites/:id/resend":'typeof import("@medusajs/medusa/api/admin/invites/[id]/resend/route")',"/admin/invites/accept":'typeof import("@medusajs/medusa/api/admin/invites/accept/route")',"/admin/locales":'typeof import("@medusajs/medusa/api/admin/locales/route")',"/admin/locales/:code":'typeof import("@medusajs/medusa/api/admin/locales/[code]/route")',"/admin/notifications":'typeof import("@medusajs/medusa/api/admin/notifications/route")',"/admin/notifications/:id":'typeof import("@medusajs/medusa/api/admin/notifications/[id]/route")',"/admin/order-changes/:id":'typeof import("@medusajs/medusa/api/admin/order-changes/[id]/route")',"/admin/order-edits":'typeof import("@medusajs/medusa/api/admin/order-edits/route")',"/admin/order-edits/:id":'typeof import("@medusajs/medusa/api/admin/order-edits/[id]/route")',"/admin/order-edits/:id/confirm":'typeof import("@medusajs/medusa/api/admin/order-edits/[id]/confirm/route")',"/admin/order-edits/:id/items":'typeof import("@medusajs/medusa/api/admin/order-edits/[id]/items/route")',"/admin/order-edits/:id/items/:action_id":'typeof import("@medusajs/medusa/api/admin/order-edits/[id]/items/[action_id]/route")',"/admin/order-edits/:id/items/item/:item_id":'typeof import("@medusajs/medusa/api/admin/order-edits/[id]/items/item/[item_id]/route")',"/admin/order-edits/:id/request":'typeof import("@medusajs/medusa/api/admin/order-edits/[id]/request/route")',"/admin/order-edits/:id/shipping-method":'typeof import("@medusajs/medusa/api/admin/order-edits/[id]/shipping-method/route")',"/admin/order-edits/:id/shipping-method/:action_id":'typeof import("@medusajs/medusa/api/admin/order-edits/[id]/shipping-method/[action_id]/route")',"/admin/orders":'typeof import("@medusajs/medusa/api/admin/orders/route")',"/admin/orders/:id":'typeof import("@medusajs/medusa/api/admin/orders/[id]/route")',"/admin/orders/:id/archive":'typeof import("@medusajs/medusa/api/admin/orders/[id]/archive/route")',"/admin/orders/:id/cancel":'typeof import("@medusajs/medusa/api/admin/orders/[id]/cancel/route")',"/admin/orders/:id/changes":'typeof import("@medusajs/medusa/api/admin/orders/[id]/changes/route")',"/admin/orders/:id/complete":'typeof import("@medusajs/medusa/api/admin/orders/[id]/complete/route")',"/admin/orders/:id/credit-lines":'typeof import("@medusajs/medusa/api/admin/orders/[id]/credit-lines/route")',"/admin/orders/:id/fulfillments":'typeof import("@medusajs/medusa/api/admin/orders/[id]/fulfillments/route")',"/admin/orders/:id/fulfillments/:fulfillment_id/cancel":'typeof import("@medusajs/medusa/api/admin/orders/[id]/fulfillments/[fulfillment_id]/cancel/route")',"/admin/orders/:id/fulfillments/:fulfillment_id/mark-as-delivered":'typeof import("@medusajs/medusa/api/admin/orders/[id]/fulfillments/[fulfillment_id]/mark-as-delivered/route")',"/admin/orders/:id/fulfillments/:fulfillment_id/shipments":'typeof import("@medusajs/medusa/api/admin/orders/[id]/fulfillments/[fulfillment_id]/shipments/route")',"/admin/orders/:id/line-items":'typeof import("@medusajs/medusa/api/admin/orders/[id]/line-items/route")',"/admin/orders/:id/preview":'typeof import("@medusajs/medusa/api/admin/orders/[id]/preview/route")',"/admin/orders/:id/shipping-options":'typeof import("@medusajs/medusa/api/admin/orders/[id]/shipping-options/route")',"/admin/orders/:id/transfer":'typeof import("@medusajs/medusa/api/admin/orders/[id]/transfer/route")',"/admin/orders/:id/transfer/cancel":'typeof import("@medusajs/medusa/api/admin/orders/[id]/transfer/cancel/route")',"/admin/orders/export":'typeof import("@medusajs/medusa/api/admin/orders/export/route")',"/admin/payment-collections":'typeof import("@medusajs/medusa/api/admin/payment-collections/route")',"/admin/payment-collections/:id":'typeof import("@medusajs/medusa/api/admin/payment-collections/[id]/route")',"/admin/payment-collections/:id/mark-as-paid":'typeof import("@medusajs/medusa/api/admin/payment-collections/[id]/mark-as-paid/route")',"/admin/payments":'typeof import("@medusajs/medusa/api/admin/payments/route")',"/admin/payments/:id":'typeof import("@medusajs/medusa/api/admin/payments/[id]/route")',"/admin/payments/:id/capture":'typeof import("@medusajs/medusa/api/admin/payments/[id]/capture/route")',"/admin/payments/:id/refund":'typeof import("@medusajs/medusa/api/admin/payments/[id]/refund/route")',"/admin/payments/payment-providers":'typeof import("@medusajs/medusa/api/admin/payments/payment-providers/route")',"/admin/plugins":'typeof import("@medusajs/medusa/api/admin/plugins/route")',"/admin/price-lists":'typeof import("@medusajs/medusa/api/admin/price-lists/route")',"/admin/price-lists/:id":'typeof import("@medusajs/medusa/api/admin/price-lists/[id]/route")',"/admin/price-lists/:id/prices":'typeof import("@medusajs/medusa/api/admin/price-lists/[id]/prices/route")',"/admin/price-lists/:id/prices/batch":'typeof import("@medusajs/medusa/api/admin/price-lists/[id]/prices/batch/route")',"/admin/price-lists/:id/products":'typeof import("@medusajs/medusa/api/admin/price-lists/[id]/products/route")',"/admin/price-preferences":'typeof import("@medusajs/medusa/api/admin/price-preferences/route")',"/admin/price-preferences/:id":'typeof import("@medusajs/medusa/api/admin/price-preferences/[id]/route")',"/admin/product-categories":'typeof import("@medusajs/medusa/api/admin/product-categories/route")',"/admin/product-categories/:id":'typeof import("@medusajs/medusa/api/admin/product-categories/[id]/route")',"/admin/product-categories/:id/products":'typeof import("@medusajs/medusa/api/admin/product-categories/[id]/products/route")',"/admin/product-tags":'typeof import("@medusajs/medusa/api/admin/product-tags/route")',"/admin/product-tags/:id":'typeof import("@medusajs/medusa/api/admin/product-tags/[id]/route")',"/admin/product-types":'typeof import("@medusajs/medusa/api/admin/product-types/route")',"/admin/product-types/:id":'typeof import("@medusajs/medusa/api/admin/product-types/[id]/route")',"/admin/product-variants":'typeof import("@medusajs/medusa/api/admin/product-variants/route")',"/admin/products":'typeof import("@medusajs/medusa/api/admin/products/route")',"/admin/products/:id":'typeof import("@medusajs/medusa/api/admin/products/[id]/route")',"/admin/products/:id/images/:image_id/variants/batch":'typeof import("@medusajs/medusa/api/admin/products/[id]/images/[image_id]/variants/batch/route")',"/admin/products/:id/options":'typeof import("@medusajs/medusa/api/admin/products/[id]/options/route")',"/admin/products/:id/options/:option_id":'typeof import("@medusajs/medusa/api/admin/products/[id]/options/[option_id]/route")',"/admin/products/:id/variants":'typeof import("@medusajs/medusa/api/admin/products/[id]/variants/route")',"/admin/products/:id/variants/:variant_id":'typeof import("@medusajs/medusa/api/admin/products/[id]/variants/[variant_id]/route")',"/admin/products/:id/variants/:variant_id/images/batch":'typeof import("@medusajs/medusa/api/admin/products/[id]/variants/[variant_id]/images/batch/route")',"/admin/products/:id/variants/:variant_id/inventory-items":'typeof import("@medusajs/medusa/api/admin/products/[id]/variants/[variant_id]/inventory-items/route")',"/admin/products/:id/variants/:variant_id/inventory-items/:inventory_item_id":'typeof import("@medusajs/medusa/api/admin/products/[id]/variants/[variant_id]/inventory-items/[inventory_item_id]/route")',"/admin/products/:id/variants/batch":'typeof import("@medusajs/medusa/api/admin/products/[id]/variants/batch/route")',"/admin/products/:id/variants/inventory-items/batch":'typeof import("@medusajs/medusa/api/admin/products/[id]/variants/inventory-items/batch/route")',"/admin/products/batch":'typeof import("@medusajs/medusa/api/admin/products/batch/route")',"/admin/products/export":'typeof import("@medusajs/medusa/api/admin/products/export/route")',"/admin/products/import":'typeof import("@medusajs/medusa/api/admin/products/import/route")',"/admin/products/import/:transaction_id/confirm":'typeof import("@medusajs/medusa/api/admin/products/import/[transaction_id]/confirm/route")',"/admin/products/imports":'typeof import("@medusajs/medusa/api/admin/products/imports/route")',"/admin/products/imports/:transaction_id/confirm":'typeof import("@medusajs/medusa/api/admin/products/imports/[transaction_id]/confirm/route")',"/admin/promotions":'typeof import("@medusajs/medusa/api/admin/promotions/route")',"/admin/promotions/:id":'typeof import("@medusajs/medusa/api/admin/promotions/[id]/route")',"/admin/promotions/:id/:rule_type":'typeof import("@medusajs/medusa/api/admin/promotions/[id]/[rule_type]/route")',"/admin/promotions/:id/buy-rules/batch":'typeof import("@medusajs/medusa/api/admin/promotions/[id]/buy-rules/batch/route")',"/admin/promotions/:id/rules/batch":'typeof import("@medusajs/medusa/api/admin/promotions/[id]/rules/batch/route")',"/admin/promotions/:id/target-rules/batch":'typeof import("@medusajs/medusa/api/admin/promotions/[id]/target-rules/batch/route")',"/admin/promotions/rule-attribute-options/:rule_type":'typeof import("@medusajs/medusa/api/admin/promotions/rule-attribute-options/[rule_type]/route")',"/admin/promotions/rule-value-options/:rule_type/:rule_attribute_id":'typeof import("@medusajs/medusa/api/admin/promotions/rule-value-options/[rule_type]/[rule_attribute_id]/route")',"/admin/rbac/policies":'typeof import("@medusajs/medusa/api/admin/rbac/policies/route")',"/admin/rbac/policies/:id":'typeof import("@medusajs/medusa/api/admin/rbac/policies/[id]/route")',"/admin/rbac/roles":'typeof import("@medusajs/medusa/api/admin/rbac/roles/route")',"/admin/rbac/roles/:id":'typeof import("@medusajs/medusa/api/admin/rbac/roles/[id]/route")',"/admin/rbac/roles/:id/policies":'typeof import("@medusajs/medusa/api/admin/rbac/roles/[id]/policies/route")',"/admin/rbac/roles/:id/policies/:policy_id":'typeof import("@medusajs/medusa/api/admin/rbac/roles/[id]/policies/[policy_id]/route")',"/admin/refund-reasons":'typeof import("@medusajs/medusa/api/admin/refund-reasons/route")',"/admin/refund-reasons/:id":'typeof import("@medusajs/medusa/api/admin/refund-reasons/[id]/route")',"/admin/regions":'typeof import("@medusajs/medusa/api/admin/regions/route")',"/admin/regions/:id":'typeof import("@medusajs/medusa/api/admin/regions/[id]/route")',"/admin/reservations":'typeof import("@medusajs/medusa/api/admin/reservations/route")',"/admin/reservations/:id":'typeof import("@medusajs/medusa/api/admin/reservations/[id]/route")',"/admin/return-reasons":'typeof import("@medusajs/medusa/api/admin/return-reasons/route")',"/admin/return-reasons/:id":'typeof import("@medusajs/medusa/api/admin/return-reasons/[id]/route")',"/admin/returns":'typeof import("@medusajs/medusa/api/admin/returns/route")',"/admin/returns/:id":'typeof import("@medusajs/medusa/api/admin/returns/[id]/route")',"/admin/returns/:id/cancel":'typeof import("@medusajs/medusa/api/admin/returns/[id]/cancel/route")',"/admin/returns/:id/dismiss-items":'typeof import("@medusajs/medusa/api/admin/returns/[id]/dismiss-items/route")',"/admin/returns/:id/dismiss-items/:action_id":'typeof import("@medusajs/medusa/api/admin/returns/[id]/dismiss-items/[action_id]/route")',"/admin/returns/:id/receive":'typeof import("@medusajs/medusa/api/admin/returns/[id]/receive/route")',"/admin/returns/:id/receive-items":'typeof import("@medusajs/medusa/api/admin/returns/[id]/receive-items/route")',"/admin/returns/:id/receive-items/:action_id":'typeof import("@medusajs/medusa/api/admin/returns/[id]/receive-items/[action_id]/route")',"/admin/returns/:id/receive/confirm":'typeof import("@medusajs/medusa/api/admin/returns/[id]/receive/confirm/route")',"/admin/returns/:id/request":'typeof import("@medusajs/medusa/api/admin/returns/[id]/request/route")',"/admin/returns/:id/request-items":'typeof import("@medusajs/medusa/api/admin/returns/[id]/request-items/route")',"/admin/returns/:id/request-items/:action_id":'typeof import("@medusajs/medusa/api/admin/returns/[id]/request-items/[action_id]/route")',"/admin/returns/:id/shipping-method":'typeof import("@medusajs/medusa/api/admin/returns/[id]/shipping-method/route")',"/admin/returns/:id/shipping-method/:action_id":'typeof import("@medusajs/medusa/api/admin/returns/[id]/shipping-method/[action_id]/route")',"/admin/sales-channels":'typeof import("@medusajs/medusa/api/admin/sales-channels/route")',"/admin/sales-channels/:id":'typeof import("@medusajs/medusa/api/admin/sales-channels/[id]/route")',"/admin/sales-channels/:id/products":'typeof import("@medusajs/medusa/api/admin/sales-channels/[id]/products/route")',"/admin/shipping-option-types":'typeof import("@medusajs/medusa/api/admin/shipping-option-types/route")',"/admin/shipping-option-types/:id":'typeof import("@medusajs/medusa/api/admin/shipping-option-types/[id]/route")',"/admin/shipping-options":'typeof import("@medusajs/medusa/api/admin/shipping-options/route")',"/admin/shipping-options/:id":'typeof import("@medusajs/medusa/api/admin/shipping-options/[id]/route")',"/admin/shipping-options/:id/rules/batch":'typeof import("@medusajs/medusa/api/admin/shipping-options/[id]/rules/batch/route")',"/admin/shipping-profiles":'typeof import("@medusajs/medusa/api/admin/shipping-profiles/route")',"/admin/shipping-profiles/:id":'typeof import("@medusajs/medusa/api/admin/shipping-profiles/[id]/route")',"/admin/stock-locations":'typeof import("@medusajs/medusa/api/admin/stock-locations/route")',"/admin/stock-locations/:id":'typeof import("@medusajs/medusa/api/admin/stock-locations/[id]/route")',"/admin/stock-locations/:id/fulfillment-providers":'typeof import("@medusajs/medusa/api/admin/stock-locations/[id]/fulfillment-providers/route")',"/admin/stock-locations/:id/fulfillment-sets":'typeof import("@medusajs/medusa/api/admin/stock-locations/[id]/fulfillment-sets/route")',"/admin/stock-locations/:id/sales-channels":'typeof import("@medusajs/medusa/api/admin/stock-locations/[id]/sales-channels/route")',"/admin/stores":'typeof import("@medusajs/medusa/api/admin/stores/route")',"/admin/stores/:id":'typeof import("@medusajs/medusa/api/admin/stores/[id]/route")',"/admin/tax-providers":'typeof import("@medusajs/medusa/api/admin/tax-providers/route")',"/admin/tax-rates":'typeof import("@medusajs/medusa/api/admin/tax-rates/route")',"/admin/tax-rates/:id":'typeof import("@medusajs/medusa/api/admin/tax-rates/[id]/route")',"/admin/tax-rates/:id/rules":'typeof import("@medusajs/medusa/api/admin/tax-rates/[id]/rules/route")',"/admin/tax-rates/:id/rules/:rule_id":'typeof import("@medusajs/medusa/api/admin/tax-rates/[id]/rules/[rule_id]/route")',"/admin/tax-regions":'typeof import("@medusajs/medusa/api/admin/tax-regions/route")',"/admin/tax-regions/:id":'typeof import("@medusajs/medusa/api/admin/tax-regions/[id]/route")',"/admin/translations":'typeof import("@medusajs/medusa/api/admin/translations/route")',"/admin/translations/batch":'typeof import("@medusajs/medusa/api/admin/translations/batch/route")',"/admin/translations/entities":'typeof import("@medusajs/medusa/api/admin/translations/entities/route")',"/admin/translations/settings":'typeof import("@medusajs/medusa/api/admin/translations/settings/route")',"/admin/translations/settings/batch":'typeof import("@medusajs/medusa/api/admin/translations/settings/batch/route")',"/admin/translations/statistics":'typeof import("@medusajs/medusa/api/admin/translations/statistics/route")',"/admin/uploads":'typeof import("@medusajs/medusa/api/admin/uploads/route")',"/admin/uploads/:id":'typeof import("@medusajs/medusa/api/admin/uploads/[id]/route")',"/admin/uploads/presigned-urls":'typeof import("@medusajs/medusa/api/admin/uploads/presigned-urls/route")',"/admin/users":'typeof import("@medusajs/medusa/api/admin/users/route")',"/admin/users/:id":'typeof import("@medusajs/medusa/api/admin/users/[id]/route")',"/admin/users/me":'typeof import("@medusajs/medusa/api/admin/users/me/route")',"/admin/views/:entity/columns":'typeof import("@medusajs/medusa/api/admin/views/[entity]/columns/route")',"/admin/views/:entity/configurations":'typeof import("@medusajs/medusa/api/admin/views/[entity]/configurations/route")',"/admin/views/:entity/configurations/:id":'typeof import("@medusajs/medusa/api/admin/views/[entity]/configurations/[id]/route")',"/admin/views/:entity/configurations/active":'typeof import("@medusajs/medusa/api/admin/views/[entity]/configurations/active/route")',"/admin/workflows-executions":'typeof import("@medusajs/medusa/api/admin/workflows-executions/route")',"/admin/workflows-executions/:id":'typeof import("@medusajs/medusa/api/admin/workflows-executions/[id]/route")',"/admin/workflows-executions/:workflow_id/:transaction_id":'typeof import("@medusajs/medusa/api/admin/workflows-executions/[workflow_id]/[transaction_id]/route")',"/admin/workflows-executions/:workflow_id/:transaction_id/:step_id/subscribe":'typeof import("@medusajs/medusa/api/admin/workflows-executions/[workflow_id]/[transaction_id]/[step_id]/subscribe/route")',"/admin/workflows-executions/:workflow_id/run":'typeof import("@medusajs/medusa/api/admin/workflows-executions/[workflow_id]/run/route")',"/admin/workflows-executions/:workflow_id/steps/failure":'typeof import("@medusajs/medusa/api/admin/workflows-executions/[workflow_id]/steps/failure/route")',"/admin/workflows-executions/:workflow_id/steps/success":'typeof import("@medusajs/medusa/api/admin/workflows-executions/[workflow_id]/steps/success/route")',"/admin/workflows-executions/:workflow_id/subscribe":'typeof import("@medusajs/medusa/api/admin/workflows-executions/[workflow_id]/subscribe/route")',"/auth/:actor_type/:auth_provider":'typeof import("@medusajs/medusa/api/auth/[actor_type]/[auth_provider]/route")',"/auth/:actor_type/:auth_provider/callback":'typeof import("@medusajs/medusa/api/auth/[actor_type]/[auth_provider]/callback/route")',"/auth/:actor_type/:auth_provider/register":'typeof import("@medusajs/medusa/api/auth/[actor_type]/[auth_provider]/register/route")',"/auth/:actor_type/:auth_provider/reset-password":'typeof import("@medusajs/medusa/api/auth/[actor_type]/[auth_provider]/reset-password/route")',"/auth/:actor_type/:auth_provider/update":'typeof import("@medusajs/medusa/api/auth/[actor_type]/[auth_provider]/update/route")',"/auth/session":'typeof import("@medusajs/medusa/api/auth/session/route")',"/auth/token/refresh":'typeof import("@medusajs/medusa/api/auth/token/refresh/route")',"/store/carts":'typeof import("@medusajs/medusa/api/store/carts/route")',"/store/carts/:id":'typeof import("@medusajs/medusa/api/store/carts/[id]/route")',"/store/carts/:id/complete":'typeof import("@medusajs/medusa/api/store/carts/[id]/complete/route")',"/store/carts/:id/customer":'typeof import("@medusajs/medusa/api/store/carts/[id]/customer/route")',"/store/carts/:id/line-items":'typeof import("@medusajs/medusa/api/store/carts/[id]/line-items/route")',"/store/carts/:id/line-items/:line_id":'typeof import("@medusajs/medusa/api/store/carts/[id]/line-items/[line_id]/route")',"/store/carts/:id/promotions":'typeof import("@medusajs/medusa/api/store/carts/[id]/promotions/route")',"/store/carts/:id/shipping-methods":'typeof import("@medusajs/medusa/api/store/carts/[id]/shipping-methods/route")',"/store/carts/:id/taxes":'typeof import("@medusajs/medusa/api/store/carts/[id]/taxes/route")',"/store/collections":'typeof import("@medusajs/medusa/api/store/collections/route")',"/store/collections/:id":'typeof import("@medusajs/medusa/api/store/collections/[id]/route")',"/store/currencies":'typeof import("@medusajs/medusa/api/store/currencies/route")',"/store/currencies/:code":'typeof import("@medusajs/medusa/api/store/currencies/[code]/route")',"/store/customers":'typeof import("@medusajs/medusa/api/store/customers/route")',"/store/customers/me":'typeof import("@medusajs/medusa/api/store/customers/me/route")',"/store/customers/me/addresses":'typeof import("@medusajs/medusa/api/store/customers/me/addresses/route")',"/store/customers/me/addresses/:address_id":'typeof import("@medusajs/medusa/api/store/customers/me/addresses/[address_id]/route")',"/store/locales":'typeof import("@medusajs/medusa/api/store/locales/route")',"/store/orders":'typeof import("@medusajs/medusa/api/store/orders/route")',"/store/orders/:id":'typeof import("@medusajs/medusa/api/store/orders/[id]/route")',"/store/orders/:id/transfer/accept":'typeof import("@medusajs/medusa/api/store/orders/[id]/transfer/accept/route")',"/store/orders/:id/transfer/cancel":'typeof import("@medusajs/medusa/api/store/orders/[id]/transfer/cancel/route")',"/store/orders/:id/transfer/decline":'typeof import("@medusajs/medusa/api/store/orders/[id]/transfer/decline/route")',"/store/orders/:id/transfer/request":'typeof import("@medusajs/medusa/api/store/orders/[id]/transfer/request/route")',"/store/payment-collections":'typeof import("@medusajs/medusa/api/store/payment-collections/route")',"/store/payment-collections/:id/payment-sessions":'typeof import("@medusajs/medusa/api/store/payment-collections/[id]/payment-sessions/route")',"/store/payment-providers":'typeof import("@medusajs/medusa/api/store/payment-providers/route")',"/store/product-categories":'typeof import("@medusajs/medusa/api/store/product-categories/route")',"/store/product-categories/:id":'typeof import("@medusajs/medusa/api/store/product-categories/[id]/route")',"/store/product-tags":'typeof import("@medusajs/medusa/api/store/product-tags/route")',"/store/product-tags/:id":'typeof import("@medusajs/medusa/api/store/product-tags/[id]/route")',"/store/product-types":'typeof import("@medusajs/medusa/api/store/product-types/route")',"/store/product-types/:id":'typeof import("@medusajs/medusa/api/store/product-types/[id]/route")',"/store/product-variants":'typeof import("@medusajs/medusa/api/store/product-variants/route")',"/store/product-variants/:id":'typeof import("@medusajs/medusa/api/store/product-variants/[id]/route")',"/store/products":'typeof import("@medusajs/medusa/api/store/products/route")',"/store/products/:id":'typeof import("@medusajs/medusa/api/store/products/[id]/route")',"/store/regions":'typeof import("@medusajs/medusa/api/store/regions/route")',"/store/regions/:id":'typeof import("@medusajs/medusa/api/store/regions/[id]/route")',"/store/return-reasons":'typeof import("@medusajs/medusa/api/store/return-reasons/route")',"/store/return-reasons/:id":'typeof import("@medusajs/medusa/api/store/return-reasons/[id]/route")',"/store/returns":'typeof import("@medusajs/medusa/api/store/returns/route")',"/store/shipping-options":'typeof import("@medusajs/medusa/api/store/shipping-options/route")',"/store/shipping-options/:id/calculate":'typeof import("@medusajs/medusa/api/store/shipping-options/[id]/calculate/route")'},Tr={"/admin/commission-rates":'typeof import("@mercurjs/core-plugin/api/admin/commission-rates/route")',"/admin/commission-rates/:id":'typeof import("@mercurjs/core-plugin/api/admin/commission-rates/[id]/route")',"/admin/commission-rates/:id/rules":'typeof import("@mercurjs/core-plugin/api/admin/commission-rates/[id]/rules/route")',"/admin/order-groups":'typeof import("@mercurjs/core-plugin/api/admin/order-groups/route")',"/admin/order-groups/:id":'typeof import("@mercurjs/core-plugin/api/admin/order-groups/[id]/route")',"/admin/payouts":'typeof import("@mercurjs/core-plugin/api/admin/payouts/route")',"/admin/payouts/:id":'typeof import("@mercurjs/core-plugin/api/admin/payouts/[id]/route")',"/admin/orders":'typeof import("@mercurjs/core-plugin/api/admin/orders/route")',"/admin/products":'typeof import("@mercurjs/core-plugin/api/admin/products/route")',"/admin/invites/accept":'typeof import("@mercurjs/core-plugin/api/admin/invites/accept/route")',"/admin/sellers":'typeof import("@mercurjs/core-plugin/api/admin/sellers/route")',"/admin/sellers/invite":'typeof import("@mercurjs/core-plugin/api/admin/sellers/invite/route")',"/admin/sellers/:id":'typeof import("@mercurjs/core-plugin/api/admin/sellers/[id]/route")',"/store/carts/:id/complete":'typeof import("@mercurjs/core-plugin/api/store/carts/[id]/complete/route")',"/store/carts/:id/promotions":'typeof import("@mercurjs/core-plugin/api/store/carts/[id]/promotions/route")',"/store/carts/:id/shipping-methods":'typeof import("@mercurjs/core-plugin/api/store/carts/[id]/shipping-methods/route")',"/store/order-groups":'typeof import("@mercurjs/core-plugin/api/store/order-groups/route")',"/store/order-groups/:id":'typeof import("@mercurjs/core-plugin/api/store/order-groups/[id]/route")',"/store/sellers":'typeof import("@mercurjs/core-plugin/api/store/sellers/route")',"/store/sellers/:id":'typeof import("@mercurjs/core-plugin/api/store/sellers/[id]/route")',"/store/shipping-options":'typeof import("@mercurjs/core-plugin/api/store/shipping-options/route")',"/vendor/campaigns":'typeof import("@mercurjs/core-plugin/api/vendor/campaigns/route")',"/vendor/campaigns/:id":'typeof import("@mercurjs/core-plugin/api/vendor/campaigns/[id]/route")',"/vendor/campaigns/:id/promotions":'typeof import("@mercurjs/core-plugin/api/vendor/campaigns/[id]/promotions/route")',"/vendor/collections":'typeof import("@mercurjs/core-plugin/api/vendor/collections/route")',"/vendor/collections/:id":'typeof import("@mercurjs/core-plugin/api/vendor/collections/[id]/route")',"/vendor/collections/:id/products":'typeof import("@mercurjs/core-plugin/api/vendor/collections/[id]/products/route")',"/vendor/currencies":'typeof import("@mercurjs/core-plugin/api/vendor/currencies/route")',"/vendor/currencies/:code":'typeof import("@mercurjs/core-plugin/api/vendor/currencies/[code]/route")',"/vendor/customers":'typeof import("@mercurjs/core-plugin/api/vendor/customers/route")',"/vendor/customers/:id":'typeof import("@mercurjs/core-plugin/api/vendor/customers/[id]/route")',"/vendor/fulfillment-sets/:id":'typeof import("@mercurjs/core-plugin/api/vendor/fulfillment-sets/[id]/route")',"/vendor/fulfillment-sets/:id/service-zones":'typeof import("@mercurjs/core-plugin/api/vendor/fulfillment-sets/[id]/service-zones/route")',"/vendor/fulfillment-sets/:id/service-zones/:zone_id":'typeof import("@mercurjs/core-plugin/api/vendor/fulfillment-sets/[id]/service-zones/[zone_id]/route")',"/vendor/inventory-items":'typeof import("@mercurjs/core-plugin/api/vendor/inventory-items/route")',"/vendor/inventory-items/:id":'typeof import("@mercurjs/core-plugin/api/vendor/inventory-items/[id]/route")',"/vendor/inventory-items/:id/location-levels":'typeof import("@mercurjs/core-plugin/api/vendor/inventory-items/[id]/location-levels/route")',"/vendor/inventory-items/:id/location-levels/:location_id":'typeof import("@mercurjs/core-plugin/api/vendor/inventory-items/[id]/location-levels/[location_id]/route")',"/vendor/inventory-items/:id/location-levels/batch":'typeof import("@mercurjs/core-plugin/api/vendor/inventory-items/[id]/location-levels/batch/route")',"/vendor/orders":'typeof import("@mercurjs/core-plugin/api/vendor/orders/route")',"/vendor/orders/:id":'typeof import("@mercurjs/core-plugin/api/vendor/orders/[id]/route")',"/vendor/orders/:id/cancel":'typeof import("@mercurjs/core-plugin/api/vendor/orders/[id]/cancel/route")',"/vendor/orders/:id/changes":'typeof import("@mercurjs/core-plugin/api/vendor/orders/[id]/changes/route")',"/vendor/orders/:id/complete":'typeof import("@mercurjs/core-plugin/api/vendor/orders/[id]/complete/route")',"/vendor/orders/:id/fulfillments":'typeof import("@mercurjs/core-plugin/api/vendor/orders/[id]/fulfillments/route")',"/vendor/orders/:id/fulfillments/:fulfillment_id/cancel":'typeof import("@mercurjs/core-plugin/api/vendor/orders/[id]/fulfillments/[fulfillment_id]/cancel/route")',"/vendor/orders/:id/fulfillments/:fulfillment_id/mark-as-delivered":'typeof import("@mercurjs/core-plugin/api/vendor/orders/[id]/fulfillments/[fulfillment_id]/mark-as-delivered/route")',"/vendor/orders/:id/fulfillments/:fulfillment_id/shipments":'typeof import("@mercurjs/core-plugin/api/vendor/orders/[id]/fulfillments/[fulfillment_id]/shipments/route")',"/vendor/orders/:id/preview":'typeof import("@mercurjs/core-plugin/api/vendor/orders/[id]/preview/route")',"/vendor/payments":'typeof import("@mercurjs/core-plugin/api/vendor/payments/route")',"/vendor/payments/:id":'typeof import("@mercurjs/core-plugin/api/vendor/payments/[id]/route")',"/vendor/payments/:id/capture":'typeof import("@mercurjs/core-plugin/api/vendor/payments/[id]/capture/route")',"/vendor/payments/:id/refund":'typeof import("@mercurjs/core-plugin/api/vendor/payments/[id]/refund/route")',"/vendor/payments/payment-providers":'typeof import("@mercurjs/core-plugin/api/vendor/payments/payment-providers/route")',"/vendor/payout-accounts":'typeof import("@mercurjs/core-plugin/api/vendor/payout-accounts/route")',"/vendor/payout-accounts/:id":'typeof import("@mercurjs/core-plugin/api/vendor/payout-accounts/[id]/route")',"/vendor/payout-accounts/:id/onboarding":'typeof import("@mercurjs/core-plugin/api/vendor/payout-accounts/[id]/onboarding/route")',"/vendor/payouts":'typeof import("@mercurjs/core-plugin/api/vendor/payouts/route")',"/vendor/payouts/:id":'typeof import("@mercurjs/core-plugin/api/vendor/payouts/[id]/route")',"/vendor/price-lists":'typeof import("@mercurjs/core-plugin/api/vendor/price-lists/route")',"/vendor/price-lists/:id":'typeof import("@mercurjs/core-plugin/api/vendor/price-lists/[id]/route")',"/vendor/price-lists/:id/products":'typeof import("@mercurjs/core-plugin/api/vendor/price-lists/[id]/products/route")',"/vendor/price-preferences":'typeof import("@mercurjs/core-plugin/api/vendor/price-preferences/route")',"/vendor/price-preferences/:id":'typeof import("@mercurjs/core-plugin/api/vendor/price-preferences/[id]/route")',"/vendor/product-categories":'typeof import("@mercurjs/core-plugin/api/vendor/product-categories/route")',"/vendor/product-categories/:id":'typeof import("@mercurjs/core-plugin/api/vendor/product-categories/[id]/route")',"/vendor/product-categories/:id/products":'typeof import("@mercurjs/core-plugin/api/vendor/product-categories/[id]/products/route")',"/vendor/product-tags":'typeof import("@mercurjs/core-plugin/api/vendor/product-tags/route")',"/vendor/product-tags/:id":'typeof import("@mercurjs/core-plugin/api/vendor/product-tags/[id]/route")',"/vendor/product-types":'typeof import("@mercurjs/core-plugin/api/vendor/product-types/route")',"/vendor/product-types/:id":'typeof import("@mercurjs/core-plugin/api/vendor/product-types/[id]/route")',"/vendor/products":'typeof import("@mercurjs/core-plugin/api/vendor/products/route")',"/vendor/products/:id":'typeof import("@mercurjs/core-plugin/api/vendor/products/[id]/route")',"/vendor/products/:id/options":'typeof import("@mercurjs/core-plugin/api/vendor/products/[id]/options/route")',"/vendor/products/:id/options/:option_id":'typeof import("@mercurjs/core-plugin/api/vendor/products/[id]/options/[option_id]/route")',"/vendor/products/:id/variants":'typeof import("@mercurjs/core-plugin/api/vendor/products/[id]/variants/route")',"/vendor/products/:id/variants/:variant_id":'typeof import("@mercurjs/core-plugin/api/vendor/products/[id]/variants/[variant_id]/route")',"/vendor/promotions":'typeof import("@mercurjs/core-plugin/api/vendor/promotions/route")',"/vendor/promotions/:id":'typeof import("@mercurjs/core-plugin/api/vendor/promotions/[id]/route")',"/vendor/promotions/:id/:rule_type":'typeof import("@mercurjs/core-plugin/api/vendor/promotions/[id]/[rule_type]/route")',"/vendor/promotions/:id/buy-rules/batch":'typeof import("@mercurjs/core-plugin/api/vendor/promotions/[id]/buy-rules/batch/route")',"/vendor/promotions/:id/rules/batch":'typeof import("@mercurjs/core-plugin/api/vendor/promotions/[id]/rules/batch/route")',"/vendor/promotions/:id/target-rules/batch":'typeof import("@mercurjs/core-plugin/api/vendor/promotions/[id]/target-rules/batch/route")',"/vendor/promotions/rule-attribute-options/:rule_type":'typeof import("@mercurjs/core-plugin/api/vendor/promotions/rule-attribute-options/[rule_type]/route")',"/vendor/promotions/rule-value-options/:rule_type/:rule_attribute_id":'typeof import("@mercurjs/core-plugin/api/vendor/promotions/rule-value-options/[rule_type]/[rule_attribute_id]/route")',"/vendor/refund-reasons":'typeof import("@mercurjs/core-plugin/api/vendor/refund-reasons/route")',"/vendor/refund-reasons/:id":'typeof import("@mercurjs/core-plugin/api/vendor/refund-reasons/[id]/route")',"/vendor/regions":'typeof import("@mercurjs/core-plugin/api/vendor/regions/route")',"/vendor/regions/:id":'typeof import("@mercurjs/core-plugin/api/vendor/regions/[id]/route")',"/vendor/return-reasons":'typeof import("@mercurjs/core-plugin/api/vendor/return-reasons/route")',"/vendor/return-reasons/:id":'typeof import("@mercurjs/core-plugin/api/vendor/return-reasons/[id]/route")',"/vendor/returns":'typeof import("@mercurjs/core-plugin/api/vendor/returns/route")',"/vendor/returns/:id":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/route")',"/vendor/returns/:id/cancel":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/cancel/route")',"/vendor/returns/:id/dismiss-items":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/dismiss-items/route")',"/vendor/returns/:id/dismiss-items/:action_id":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/dismiss-items/[action_id]/route")',"/vendor/returns/:id/receive":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/receive/route")',"/vendor/returns/:id/receive-items":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/receive-items/route")',"/vendor/returns/:id/receive-items/:action_id":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/receive-items/[action_id]/route")',"/vendor/returns/:id/receive/confirm":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/receive/confirm/route")',"/vendor/returns/:id/request":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/request/route")',"/vendor/returns/:id/request-items":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/request-items/route")',"/vendor/returns/:id/request-items/:action_id":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/request-items/[action_id]/route")',"/vendor/returns/:id/shipping-method":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/shipping-method/route")',"/vendor/returns/:id/shipping-method/:action_id":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/shipping-method/[action_id]/route")',"/vendor/sales-channels":'typeof import("@mercurjs/core-plugin/api/vendor/sales-channels/route")',"/vendor/sales-channels/:id":'typeof import("@mercurjs/core-plugin/api/vendor/sales-channels/[id]/route")',"/vendor/sales-channels/:id/products":'typeof import("@mercurjs/core-plugin/api/vendor/sales-channels/[id]/products/route")',"/vendor/sellers":'typeof import("@mercurjs/core-plugin/api/vendor/sellers/route")',"/vendor/sellers/me":'typeof import("@mercurjs/core-plugin/api/vendor/sellers/me/route")',"/vendor/shipping-option-types":'typeof import("@mercurjs/core-plugin/api/vendor/shipping-option-types/route")',"/vendor/shipping-option-types/:id":'typeof import("@mercurjs/core-plugin/api/vendor/shipping-option-types/[id]/route")',"/vendor/shipping-options":'typeof import("@mercurjs/core-plugin/api/vendor/shipping-options/route")',"/vendor/shipping-options/:id":'typeof import("@mercurjs/core-plugin/api/vendor/shipping-options/[id]/route")',"/vendor/shipping-options/:id/rules/batch":'typeof import("@mercurjs/core-plugin/api/vendor/shipping-options/[id]/rules/batch/route")',"/vendor/shipping-profiles":'typeof import("@mercurjs/core-plugin/api/vendor/shipping-profiles/route")',"/vendor/shipping-profiles/:id":'typeof import("@mercurjs/core-plugin/api/vendor/shipping-profiles/[id]/route")',"/vendor/stock-locations":'typeof import("@mercurjs/core-plugin/api/vendor/stock-locations/route")',"/vendor/stock-locations/:id":'typeof import("@mercurjs/core-plugin/api/vendor/stock-locations/[id]/route")',"/vendor/stock-locations/:id/fulfillment-providers":'typeof import("@mercurjs/core-plugin/api/vendor/stock-locations/[id]/fulfillment-providers/route")',"/vendor/stock-locations/:id/fulfillment-sets":'typeof import("@mercurjs/core-plugin/api/vendor/stock-locations/[id]/fulfillment-sets/route")',"/vendor/stock-locations/:id/sales-channels":'typeof import("@mercurjs/core-plugin/api/vendor/stock-locations/[id]/sales-channels/route")',"/vendor/uploads":'typeof import("@mercurjs/core-plugin/api/vendor/uploads/route")'};async function bt(e,t={}){let{pathnameFilter:r,ignoreFilter:i,ignorePartFilter:o,sortPathnames:s=true}=t,n=[],m=[e];for(;m.length>0;){let p=await Promise.all(m.map(async d=>{let c={directories:[],pathnames:[]};try{let u=await U__default.readdir(d,{withFileTypes:!0});for(let l of u){if(o&&o(l.name))continue;let g=R__default.join(d,l.name);i&&i(g)||(l.isDirectory()?c.directories.push(g):(!r||r(g))&&c.pathnames.push(g));}}catch(u){if(u.code!=="ENOENT"||d===e)throw u;return null}return c}));m=[];for(let d of p)d&&(m.push(...d.directories),n.push(...d.pathnames));}return s&&n.sort(),n}async function Ze(e){return await U__default.stat(e).catch(()=>null)!==null}async function Qe(e){await Ze(e)||await U__default.mkdir(e,{recursive:true});}function ge(e){return e.replace(/\\/g,"/")}function Ie(e){return e.split("/").reduce((r,i)=>{if(!i||ie.test(i))return r;if(i.startsWith("[")&&i.endsWith("]")){let o=i.slice(1,-1);return `${r}/:${o}`}return `${r}/${i}`},"")||"/"}async function Rt(e){return await Ze(e)?(await bt(e,{pathnameFilter:i=>ie.test(i),ignorePartFilter:i=>i.startsWith("_")||i==="node_modules"})).map(i=>{let o=R__default.relative(e,i);return {filePath:ge(o),route:Ie(ge(o))}}):[]}function xt(e){return e.replace(/[-_]+(.)?/g,(t,r)=>r?r.toUpperCase():"").replace(/^[A-Z]/,t=>t.toLowerCase())}function os(e){return `../../src/api/${e.replace(/\.ts$/,"")}`}function ss(e){return e.startsWith(":")?`$${xt(e.slice(1))}`:xt(e)}function $r(){return {children:new Map}}function ns(e){let t=$r();for(let[r,i]of e){let o=r.split("/").filter(Boolean),s=t;for(let n of o){let m=ss(n);s.children.has(m)||s.children.set(m,$r()),s=s.children.get(m);}s.importType=i;}return t}function Nr(e,t=" "){let r=[];if(e.importType&&r.push(e.importType),e.children.size>0){let i=[];for(let[o,s]of e.children){let n=Nr(s,t+" ");i.push(`${t} ${o}: ${n}`);}r.push(`{
27
+ `);}async function gr(e,t,r){if(r={overwrite:false,silent:false,yes:false,...r},!e.length)return;let i=v("Checking registry.",{silent:r.silent})?.start(),o=await mt(e,pe(t));if(!o)return i?.fail(),j(new Error("Failed to fetch items from registry."));i?.succeed();let{filesCreated:s,filesUpdated:n}=await fr(o.files,t,{overwrite:r.overwrite,silent:r.silent,path:r.path,yes:r.yes});(s.length||n.length)&&await pr(o.dependencies,o.devDependencies,t,{silent:r.silent}),o.docs&&a.info(o.docs);}z.object({cwd:z.string(),yes:z.boolean(),defaults:z.boolean(),silent:z.boolean()});async function yr(e){let t={},r=R__default.resolve(e.cwd);existsSync(r)||(t.MISSING_DIR=true);let i=await k(r);return {errors:t,projectInfo:i}}var vr=join(homedir(),".mercur"),ut=join(vr,"config.json"),lt={telemetry_enabled:true,telemetry_email:null,notice_shown:false},ft=class{get(t){return this.read()[t]}set(t,r){let i=this.read();i[t]=r,this.write(i);}read(){try{if(!existsSync(ut))return {...lt};let t=readFileSync(ut,"utf-8"),r=JSON.parse(t);return {...lt,...r}}catch{return {...lt}}}write(t){try{mkdirSync(vr,{recursive:!0}),writeFileSync(ut,JSON.stringify(t,null,2)+`
28
+ `,{mode:384});}catch{}}},M=new ft;var le=e=>Function("mm","return import(mm)")(e);function Co(){let e=(...t)=>t.some(r=>!!process.env[r]);return e("MEDUSA_CLOUD_ENVIRONMENT_HANDLE","MEDUSA_CLOUD_SANDBOX_HANDLE","MEDUSA_CLOUD_API_KEY")?"medusa-cloud":e("RENDER","RENDER_URL","RENDER_INTERNAL_HOSTNAME","RENDER_SERVICE_ID")?"render":e("FLY_APP_NAME","FLY_REGION","FLY_ALLOC_ID")?"fly-io":e("RAILWAY_STATIC_URL","RAILWAY_ENVIRONMENT_NAME")?"railway":e("DYNO","HEROKU_APP_NAME")?"heroku":e("DO_DEPLOYMENT_ID","DO_APP_NAME","DIGITALOCEAN")?"digitalocean":e("KOYEB","KOYEB_DEPLOYMENT_ID","KOYEB_APP_NAME")?"koyeb":null}async function jr(){try{let e=await le("os"),t=e.cpus();return {deploymentVendor:Co(),systemPlatform:e.platform(),systemRelease:e.release(),systemArchitecture:e.arch(),cpuCount:t.length,cpuModel:t.length?t[0].model:null,cpuSpeed:t.length?t[0].speed:null,memory:e.totalmem(),isWSL:await Po(),isDocker:await br(),isTTY:typeof process<"u"&&process.stdout?process.stdout.isTTY:null}}catch{return {systemPlatform:null,systemRelease:null,systemArchitecture:null,cpuCount:null,cpuModel:null,cpuSpeed:null,memory:null,isWSL:null,isDocker:null,isTTY:null}}}async function Po(){try{if(typeof process>"u"||process?.platform!=="linux")return !1;let e=await le("fs");return (await le("os")).release().toLowerCase().includes("microsoft")?!await wr():e.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft")?!await wr():!1}catch{return false}}var To=async()=>{try{return (await le("fs")).statSync("/run/.containerenv"),!0}catch{return false}};async function br(){return await $o()||await Do()}async function $o(){try{return (await le("fs")).statSync("/.dockerenv"),!0}catch{return false}}async function Do(){try{return (await le("fs")).readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return false}}async function wr(){return await To()||await br()}var gt=e=>createHash("sha256").update(e).digest("base64");var Oo=process.env.MERCUR_TELEMETRY_PROXY_URL||"https://telemetry.mercurjs.com/api/v1/events",Rr=e=>{M.set("telemetry_email",e);},xr=e=>{M.set("telemetry_enabled",e);},He="https://docs.mercurjs.com/v2/telemetry",H=()=>{M.get("notice_shown")||(M.set("notice_shown",true),process.env.MERCUR_DISABLE_TELEMETRY!=="true"&&console.error(["","Mercur collects anonymous usage data to improve the CLI experience.",`You can disable this at any time by running: ${l.info("mercurjs telemetry --disable")}`,`Or by setting ${l.info("MERCUR_DISABLE_TELEMETRY=true")}`,`Learn more: ${l.info(He)}`,""].join(`
29
+ `)));},Ao=()=>M.get("telemetry_enabled")&&process.env.MERCUR_DISABLE_TELEMETRY!=="true",P=async(e,t)=>{try{if(!Ao())return;let r=await k(t.cwd),{projectId:i}=Uo(r.packageJson),o={nodeEnv:Lo(),nodeVersion:process.version,mercurVersion:r.mercurVersion,medusaVersion:r.medusaVersion,isSrcDir:r.isSrcDir,aliasPrefix:r.aliasPrefix,config:await b(t.cwd),projectId:i,systemInfo:await jr(),packageManager:await A(t.cwd),email:zo()};await fetch(Oo,{body:JSON.stringify({...o,...e}),headers:{"Content-Type":"application/json"},method:"post"});}catch{}};function Lo(){return process.env.NODE_ENV||"development"}var Mo=()=>{try{let e=execSync("git config --local --get remote.origin.url",{stdio:"pipe",timeout:1e3});return String(e).trim()}catch{return null}},Uo=e=>{let t=Mo();if(t)return {projectId:gt(t)};let r=process.cwd();return {projectId:gt(r)}},zo=()=>M.get("telemetry_email")||void 0;var Go=z.object({cwd:z.string(),yes:z.boolean(),defaults:z.boolean(),silent:z.boolean()}),kr=new Command().name("init").description("initialize your project and install dependencies").option("-y, --yes","skip confirmation prompt.",true).option("-d, --defaults","use default configuration.",false).option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).option("-s, --silent","mute output.",false).action(async e=>{try{H();let t=Go.parse({cwd:R__default.resolve(e.cwd),...e});await ht(t),a.log(`${l.success("Success!")} Project initialization completed.
30
+ You may now add blocks.`),a.break(),await P({type:"init",payload:{outcome:"success"}},{cwd:t.cwd});}catch(t){a.break(),j(t);}finally{x();}});async function ht(e){await yr(e);let t=await b(e.cwd),r=t?await Yo(t,e):await Vo(e);if(!e.yes){let{proceed:s}=await Pe({type:"confirm",name:"proceed",message:`Write configuration to ${l.info("blocks.json")}. Proceed?`,initial:true});s||process.exit(0);}let i=v("Writing blocks.json.").start(),o=R__default.resolve(e.cwd,"blocks.json");return r.registries=Object.fromEntries(Object.entries(r.registries||{}).filter(([s])=>!Object.keys(I).includes(s))),await promises.writeFile(o,`${JSON.stringify(r,null,2)}
31
+ `,"utf8"),i.succeed(),await ot(e.cwd,r)}async function Vo(e){if(e.defaults)return W.parse({$schema:Fe,aliases:{api:"packages/api/src",vendor:"apps/vendor/src",admin:"apps/admin/src"},registries:I});a.info("");let t=await Pe([{type:"text",name:"api",message:`Configure the import alias for ${l.info("api")}:`,initial:"packages/api/src"},{type:"text",name:"vendor",message:`Configure the import alias for ${l.info("vendor")}:`,initial:"apps/vendor/src"},{type:"text",name:"admin",message:`Configure the import alias for ${l.info("admin")}:`,initial:"apps/admin/src"}],{onCancel:()=>{process.exit(0);}});return W.parse({$schema:Fe,aliases:{api:t.api??"packages/api/src",vendor:t.vendor??"apps/vendor/src",admin:t.admin??"apps/admin/src"},registries:I})}async function Yo(e,t){if(t.defaults)return W.parse({$schema:Fe,aliases:{api:"packages/api/src",vendor:"apps/vendor/src",admin:"apps/admin/src"},registries:I});let r=await Pe([{type:"text",name:"api",message:`Configure the import alias for ${l.info("api")}:`,initial:e.aliases.api},{type:"text",name:"vendor",message:`Configure the import alias for ${l.info("vendor")}:`,initial:e.aliases.vendor},{type:"text",name:"admin",message:`Configure the import alias for ${l.info("admin")}:`,initial:e.aliases.admin}],{onCancel:()=>{process.exit(0);}});return W.parse({$schema:e.$schema,aliases:{api:r.api??e.aliases.api,vendor:r.vendor??e.aliases.vendor,admin:r.admin??e.aliases.admin}})}var Ko=z.object({blocks:z.array(z.string()).optional(),yes:z.boolean(),overwrite:z.boolean(),cwd:z.string(),silent:z.boolean()}),Er=new Command().name("add").description("add blocks to your project").argument("[blocks...]","names of blocks to add").option("-y, --yes","skip confirmation prompt.",false).option("-o, --overwrite","overwrite existing files.",false).option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).option("-s, --silent","mute output.",false).action(async(e,t)=>{try{H();let r=Ko.parse({blocks:e,cwd:R__default.resolve(t.cwd),...t}),i=await b(r.cwd);i||(i=G({resolvedPaths:{cwd:r.cwd}})),r.blocks?.length||(a.error("Please specify at least one item to add."),process.exit(1));let{errors:o}=await qt(r);if(o[S]){let{proceed:s}=await Pe({type:"confirm",name:"proceed",message:`You need to create a ${l.info("blocks.json")} file to add items. Proceed?`,initial:!0});s||(a.break(),process.exit(1)),i=await ht({cwd:r.cwd,yes:!0,defaults:!1,silent:r.silent});}if(!i)throw new Error(`Failed to read config at ${l.info(r.cwd)}.`);await gr(r.blocks,i,{overwrite:r.overwrite,silent:r.silent,yes:r.yes,path:r.cwd}),await P({type:"add",payload:{outcome:"success",blocks:r.blocks}},{cwd:r.cwd});}catch(r){a.break(),j(r);}finally{x();}});async function Sr(e){let t={},r={cwd:e.cwd,registryFile:R__default.resolve(e.cwd,e.registryFile),outputDir:R__default.resolve(e.cwd,e.outputDir)};if(!L.existsSync(r.registryFile))return t[B]=true,{errors:t,resolvePaths:null,config:null};if(!L.existsSync(R__default.resolve(e.cwd,"blocks.json")))return t[S]=true,{errors:t,resolvePaths:null,config:null};await L.mkdir(r.outputDir,{recursive:true});try{let i=await b(e.cwd);return {errors:t,config:i,resolvePaths:r}}catch{a.break(),a.error(`An invalid ${l.info("blocks.json")} file was found at ${l.info(e.cwd)}.
32
+ Before you can build the registry, you must create a valid ${l.info("blocks.json")} file by running the ${l.info("init")} command.`),a.break(),process.exit(1);}}var Qo=z.object({cwd:z.string(),registryFile:z.string(),outputDir:z.string(),verbose:z.boolean().optional().default(false)}),Ir=new Command().name("registry:build").description("builds the registry").argument("[registry]","path to registry.json file","./registry.json").option("-o, --output <path>","destination directory for json files","./r").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).option("-v, --verbose","verbose output").action(async(e,t)=>{await Xo({cwd:R.resolve(t.cwd),registryFile:e,outputDir:t.output,verbose:t.verbose});});async function Xo(e){try{H();let t=Qo.parse(e),[{errors:r,resolvePaths:i,config:o},s]=await Promise.all([Sr(t),k(t.cwd)]);(r[S]||!s)&&(a.error(`A ${l.info("blocks.json")} file is required to build the registry. Run ${l.info("mercur init")} to create one.`),a.break(),await P({type:"build",payload:{outcome:"missing_config"}},{cwd:t.cwd}),process.exit(1)),(r[B]||!i)&&(a.error(`We could not find a registry file at ${l.info(R.resolve(t.cwd,t.registryFile))}.`),a.break(),await P({type:"build",payload:{outcome:"missing_registry_file"}},{cwd:t.cwd}),process.exit(1));let n=await U.readFile(i.registryFile,"utf-8"),p=K.safeParse(JSON.parse(n));p.success||(a.error(`Invalid registry file found at ${l.info(i.registryFile)}.`),a.break(),process.exit(1));let m=v("Building registry..."),d=await es(p.data,o,s);for(let u of d.items)u.files=u.files?.filter((c,f,y)=>f===y.findIndex(h=>h.path===c.path)),u.dependencies&&(u.dependencies=u.dependencies.filter((c,f,y)=>f===y.findIndex(h=>h===c)));for(let u of d.items){if(!u.files)continue;m.start(`Building ${u.name}...`),u.$schema=Wt;for(let f of u.files){let y=s.isSrcDir?"src":"",h=R.resolve(i.cwd,y,f.path);try{if(!(await U.stat(h)).isFile())continue;f.content=await U.readFile(h,"utf-8");}catch(w){console.error("Error reading file in registry build:",h,w);continue}}let c=T.safeParse(u);if(!c.success){a.error(`Invalid registry item found for ${l.info(u.name)}.`);continue}await U.writeFile(R.resolve(i.outputDir,`${c.data.name}.json`),JSON.stringify(c.data,null,2));}if(await U.copyFile(i.registryFile,R.resolve(i.outputDir,"registry.json")),m.succeed("Building registry."),t.verbose){v(`The registry has ${l.info(d.items.length.toString())} items:`).succeed();for(let u of d.items){a.log(` - ${u.name}`);for(let c of u.files??[])a.log(` - ${c.path}`);}}await P({type:"build",payload:{outcome:"success"}},{cwd:t.cwd});}catch(t){a.break(),j(t);}}async function es(e,t,r){for(let i of e.items)if(i.files?.length)for(let o of i.files){let s=await dt(o.path,t,r);s.files=s.files?.filter(n=>n.path!==o.path),s.files&&i.files.push(...s.files),s.dependencies&&(i.dependencies=i.dependencies?i.dependencies.concat(s.dependencies):s.dependencies);}return e}var Ke=".mercur/_generated",ie=/route\.(ts|js)$/,Cr={"/admin/api-keys":'typeof import("@medusajs/medusa/api/admin/api-keys/route")',"/admin/api-keys/:id":'typeof import("@medusajs/medusa/api/admin/api-keys/[id]/route")',"/admin/api-keys/:id/revoke":'typeof import("@medusajs/medusa/api/admin/api-keys/[id]/revoke/route")',"/admin/api-keys/:id/sales-channels":'typeof import("@medusajs/medusa/api/admin/api-keys/[id]/sales-channels/route")',"/admin/campaigns":'typeof import("@medusajs/medusa/api/admin/campaigns/route")',"/admin/campaigns/:id":'typeof import("@medusajs/medusa/api/admin/campaigns/[id]/route")',"/admin/campaigns/:id/promotions":'typeof import("@medusajs/medusa/api/admin/campaigns/[id]/promotions/route")',"/admin/claims":'typeof import("@medusajs/medusa/api/admin/claims/route")',"/admin/claims/:id":'typeof import("@medusajs/medusa/api/admin/claims/[id]/route")',"/admin/claims/:id/cancel":'typeof import("@medusajs/medusa/api/admin/claims/[id]/cancel/route")',"/admin/claims/:id/claim-items":'typeof import("@medusajs/medusa/api/admin/claims/[id]/claim-items/route")',"/admin/claims/:id/claim-items/:action_id":'typeof import("@medusajs/medusa/api/admin/claims/[id]/claim-items/[action_id]/route")',"/admin/claims/:id/inbound/items":'typeof import("@medusajs/medusa/api/admin/claims/[id]/inbound/items/route")',"/admin/claims/:id/inbound/items/:action_id":'typeof import("@medusajs/medusa/api/admin/claims/[id]/inbound/items/[action_id]/route")',"/admin/claims/:id/inbound/shipping-method":'typeof import("@medusajs/medusa/api/admin/claims/[id]/inbound/shipping-method/route")',"/admin/claims/:id/inbound/shipping-method/:action_id":'typeof import("@medusajs/medusa/api/admin/claims/[id]/inbound/shipping-method/[action_id]/route")',"/admin/claims/:id/outbound/items":'typeof import("@medusajs/medusa/api/admin/claims/[id]/outbound/items/route")',"/admin/claims/:id/outbound/items/:action_id":'typeof import("@medusajs/medusa/api/admin/claims/[id]/outbound/items/[action_id]/route")',"/admin/claims/:id/outbound/shipping-method":'typeof import("@medusajs/medusa/api/admin/claims/[id]/outbound/shipping-method/route")',"/admin/claims/:id/outbound/shipping-method/:action_id":'typeof import("@medusajs/medusa/api/admin/claims/[id]/outbound/shipping-method/[action_id]/route")',"/admin/claims/:id/request":'typeof import("@medusajs/medusa/api/admin/claims/[id]/request/route")',"/admin/collections":'typeof import("@medusajs/medusa/api/admin/collections/route")',"/admin/collections/:id":'typeof import("@medusajs/medusa/api/admin/collections/[id]/route")',"/admin/collections/:id/products":'typeof import("@medusajs/medusa/api/admin/collections/[id]/products/route")',"/admin/currencies":'typeof import("@medusajs/medusa/api/admin/currencies/route")',"/admin/currencies/:code":'typeof import("@medusajs/medusa/api/admin/currencies/[code]/route")',"/admin/customer-groups":'typeof import("@medusajs/medusa/api/admin/customer-groups/route")',"/admin/customer-groups/:id":'typeof import("@medusajs/medusa/api/admin/customer-groups/[id]/route")',"/admin/customer-groups/:id/customers":'typeof import("@medusajs/medusa/api/admin/customer-groups/[id]/customers/route")',"/admin/customers":'typeof import("@medusajs/medusa/api/admin/customers/route")',"/admin/customers/:id":'typeof import("@medusajs/medusa/api/admin/customers/[id]/route")',"/admin/customers/:id/addresses":'typeof import("@medusajs/medusa/api/admin/customers/[id]/addresses/route")',"/admin/customers/:id/addresses/:address_id":'typeof import("@medusajs/medusa/api/admin/customers/[id]/addresses/[address_id]/route")',"/admin/customers/:id/customer-groups":'typeof import("@medusajs/medusa/api/admin/customers/[id]/customer-groups/route")',"/admin/draft-orders":'typeof import("@medusajs/medusa/api/admin/draft-orders/route")',"/admin/draft-orders/:id":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/route")',"/admin/draft-orders/:id/convert-to-order":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/convert-to-order/route")',"/admin/draft-orders/:id/edit":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/edit/route")',"/admin/draft-orders/:id/edit/confirm":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/edit/confirm/route")',"/admin/draft-orders/:id/edit/items":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/edit/items/route")',"/admin/draft-orders/:id/edit/items/:action_id":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/edit/items/[action_id]/route")',"/admin/draft-orders/:id/edit/items/item/:item_id":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/edit/items/item/[item_id]/route")',"/admin/draft-orders/:id/edit/promotions":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/edit/promotions/route")',"/admin/draft-orders/:id/edit/request":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/edit/request/route")',"/admin/draft-orders/:id/edit/shipping-methods":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/edit/shipping-methods/route")',"/admin/draft-orders/:id/edit/shipping-methods/:action_id":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/edit/shipping-methods/[action_id]/route")',"/admin/draft-orders/:id/edit/shipping-methods/method/:method_id":'typeof import("@medusajs/medusa/api/admin/draft-orders/[id]/edit/shipping-methods/method/[method_id]/route")',"/admin/exchanges":'typeof import("@medusajs/medusa/api/admin/exchanges/route")',"/admin/exchanges/:id":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/route")',"/admin/exchanges/:id/cancel":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/cancel/route")',"/admin/exchanges/:id/inbound/items":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/inbound/items/route")',"/admin/exchanges/:id/inbound/items/:action_id":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/inbound/items/[action_id]/route")',"/admin/exchanges/:id/inbound/shipping-method":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/inbound/shipping-method/route")',"/admin/exchanges/:id/inbound/shipping-method/:action_id":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/inbound/shipping-method/[action_id]/route")',"/admin/exchanges/:id/outbound/items":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/outbound/items/route")',"/admin/exchanges/:id/outbound/items/:action_id":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/outbound/items/[action_id]/route")',"/admin/exchanges/:id/outbound/shipping-method":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/outbound/shipping-method/route")',"/admin/exchanges/:id/outbound/shipping-method/:action_id":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/outbound/shipping-method/[action_id]/route")',"/admin/exchanges/:id/request":'typeof import("@medusajs/medusa/api/admin/exchanges/[id]/request/route")',"/admin/feature-flags":'typeof import("@medusajs/medusa/api/admin/feature-flags/route")',"/admin/fulfillment-providers":'typeof import("@medusajs/medusa/api/admin/fulfillment-providers/route")',"/admin/fulfillment-providers/:id/options":'typeof import("@medusajs/medusa/api/admin/fulfillment-providers/[id]/options/route")',"/admin/fulfillment-sets/:id":'typeof import("@medusajs/medusa/api/admin/fulfillment-sets/[id]/route")',"/admin/fulfillment-sets/:id/service-zones":'typeof import("@medusajs/medusa/api/admin/fulfillment-sets/[id]/service-zones/route")',"/admin/fulfillment-sets/:id/service-zones/:zone_id":'typeof import("@medusajs/medusa/api/admin/fulfillment-sets/[id]/service-zones/[zone_id]/route")',"/admin/fulfillments":'typeof import("@medusajs/medusa/api/admin/fulfillments/route")',"/admin/fulfillments/:id/cancel":'typeof import("@medusajs/medusa/api/admin/fulfillments/[id]/cancel/route")',"/admin/fulfillments/:id/shipment":'typeof import("@medusajs/medusa/api/admin/fulfillments/[id]/shipment/route")',"/admin/index/details":'typeof import("@medusajs/medusa/api/admin/index/details/route")',"/admin/index/sync":'typeof import("@medusajs/medusa/api/admin/index/sync/route")',"/admin/inventory-items":'typeof import("@medusajs/medusa/api/admin/inventory-items/route")',"/admin/inventory-items/:id":'typeof import("@medusajs/medusa/api/admin/inventory-items/[id]/route")',"/admin/inventory-items/:id/location-levels":'typeof import("@medusajs/medusa/api/admin/inventory-items/[id]/location-levels/route")',"/admin/inventory-items/:id/location-levels/:location_id":'typeof import("@medusajs/medusa/api/admin/inventory-items/[id]/location-levels/[location_id]/route")',"/admin/inventory-items/:id/location-levels/batch":'typeof import("@medusajs/medusa/api/admin/inventory-items/[id]/location-levels/batch/route")',"/admin/inventory-items/location-levels/batch":'typeof import("@medusajs/medusa/api/admin/inventory-items/location-levels/batch/route")',"/admin/invites":'typeof import("@medusajs/medusa/api/admin/invites/route")',"/admin/invites/:id":'typeof import("@medusajs/medusa/api/admin/invites/[id]/route")',"/admin/invites/:id/resend":'typeof import("@medusajs/medusa/api/admin/invites/[id]/resend/route")',"/admin/invites/accept":'typeof import("@medusajs/medusa/api/admin/invites/accept/route")',"/admin/locales":'typeof import("@medusajs/medusa/api/admin/locales/route")',"/admin/locales/:code":'typeof import("@medusajs/medusa/api/admin/locales/[code]/route")',"/admin/notifications":'typeof import("@medusajs/medusa/api/admin/notifications/route")',"/admin/notifications/:id":'typeof import("@medusajs/medusa/api/admin/notifications/[id]/route")',"/admin/order-changes/:id":'typeof import("@medusajs/medusa/api/admin/order-changes/[id]/route")',"/admin/order-edits":'typeof import("@medusajs/medusa/api/admin/order-edits/route")',"/admin/order-edits/:id":'typeof import("@medusajs/medusa/api/admin/order-edits/[id]/route")',"/admin/order-edits/:id/confirm":'typeof import("@medusajs/medusa/api/admin/order-edits/[id]/confirm/route")',"/admin/order-edits/:id/items":'typeof import("@medusajs/medusa/api/admin/order-edits/[id]/items/route")',"/admin/order-edits/:id/items/:action_id":'typeof import("@medusajs/medusa/api/admin/order-edits/[id]/items/[action_id]/route")',"/admin/order-edits/:id/items/item/:item_id":'typeof import("@medusajs/medusa/api/admin/order-edits/[id]/items/item/[item_id]/route")',"/admin/order-edits/:id/request":'typeof import("@medusajs/medusa/api/admin/order-edits/[id]/request/route")',"/admin/order-edits/:id/shipping-method":'typeof import("@medusajs/medusa/api/admin/order-edits/[id]/shipping-method/route")',"/admin/order-edits/:id/shipping-method/:action_id":'typeof import("@medusajs/medusa/api/admin/order-edits/[id]/shipping-method/[action_id]/route")',"/admin/orders":'typeof import("@medusajs/medusa/api/admin/orders/route")',"/admin/orders/:id":'typeof import("@medusajs/medusa/api/admin/orders/[id]/route")',"/admin/orders/:id/archive":'typeof import("@medusajs/medusa/api/admin/orders/[id]/archive/route")',"/admin/orders/:id/cancel":'typeof import("@medusajs/medusa/api/admin/orders/[id]/cancel/route")',"/admin/orders/:id/changes":'typeof import("@medusajs/medusa/api/admin/orders/[id]/changes/route")',"/admin/orders/:id/complete":'typeof import("@medusajs/medusa/api/admin/orders/[id]/complete/route")',"/admin/orders/:id/credit-lines":'typeof import("@medusajs/medusa/api/admin/orders/[id]/credit-lines/route")',"/admin/orders/:id/fulfillments":'typeof import("@medusajs/medusa/api/admin/orders/[id]/fulfillments/route")',"/admin/orders/:id/fulfillments/:fulfillment_id/cancel":'typeof import("@medusajs/medusa/api/admin/orders/[id]/fulfillments/[fulfillment_id]/cancel/route")',"/admin/orders/:id/fulfillments/:fulfillment_id/mark-as-delivered":'typeof import("@medusajs/medusa/api/admin/orders/[id]/fulfillments/[fulfillment_id]/mark-as-delivered/route")',"/admin/orders/:id/fulfillments/:fulfillment_id/shipments":'typeof import("@medusajs/medusa/api/admin/orders/[id]/fulfillments/[fulfillment_id]/shipments/route")',"/admin/orders/:id/line-items":'typeof import("@medusajs/medusa/api/admin/orders/[id]/line-items/route")',"/admin/orders/:id/preview":'typeof import("@medusajs/medusa/api/admin/orders/[id]/preview/route")',"/admin/orders/:id/shipping-options":'typeof import("@medusajs/medusa/api/admin/orders/[id]/shipping-options/route")',"/admin/orders/:id/transfer":'typeof import("@medusajs/medusa/api/admin/orders/[id]/transfer/route")',"/admin/orders/:id/transfer/cancel":'typeof import("@medusajs/medusa/api/admin/orders/[id]/transfer/cancel/route")',"/admin/orders/export":'typeof import("@medusajs/medusa/api/admin/orders/export/route")',"/admin/payment-collections":'typeof import("@medusajs/medusa/api/admin/payment-collections/route")',"/admin/payment-collections/:id":'typeof import("@medusajs/medusa/api/admin/payment-collections/[id]/route")',"/admin/payment-collections/:id/mark-as-paid":'typeof import("@medusajs/medusa/api/admin/payment-collections/[id]/mark-as-paid/route")',"/admin/payments":'typeof import("@medusajs/medusa/api/admin/payments/route")',"/admin/payments/:id":'typeof import("@medusajs/medusa/api/admin/payments/[id]/route")',"/admin/payments/:id/capture":'typeof import("@medusajs/medusa/api/admin/payments/[id]/capture/route")',"/admin/payments/:id/refund":'typeof import("@medusajs/medusa/api/admin/payments/[id]/refund/route")',"/admin/payments/payment-providers":'typeof import("@medusajs/medusa/api/admin/payments/payment-providers/route")',"/admin/plugins":'typeof import("@medusajs/medusa/api/admin/plugins/route")',"/admin/price-lists":'typeof import("@medusajs/medusa/api/admin/price-lists/route")',"/admin/price-lists/:id":'typeof import("@medusajs/medusa/api/admin/price-lists/[id]/route")',"/admin/price-lists/:id/prices":'typeof import("@medusajs/medusa/api/admin/price-lists/[id]/prices/route")',"/admin/price-lists/:id/prices/batch":'typeof import("@medusajs/medusa/api/admin/price-lists/[id]/prices/batch/route")',"/admin/price-lists/:id/products":'typeof import("@medusajs/medusa/api/admin/price-lists/[id]/products/route")',"/admin/price-preferences":'typeof import("@medusajs/medusa/api/admin/price-preferences/route")',"/admin/price-preferences/:id":'typeof import("@medusajs/medusa/api/admin/price-preferences/[id]/route")',"/admin/product-categories":'typeof import("@medusajs/medusa/api/admin/product-categories/route")',"/admin/product-categories/:id":'typeof import("@medusajs/medusa/api/admin/product-categories/[id]/route")',"/admin/product-categories/:id/products":'typeof import("@medusajs/medusa/api/admin/product-categories/[id]/products/route")',"/admin/product-tags":'typeof import("@medusajs/medusa/api/admin/product-tags/route")',"/admin/product-tags/:id":'typeof import("@medusajs/medusa/api/admin/product-tags/[id]/route")',"/admin/product-types":'typeof import("@medusajs/medusa/api/admin/product-types/route")',"/admin/product-types/:id":'typeof import("@medusajs/medusa/api/admin/product-types/[id]/route")',"/admin/product-variants":'typeof import("@medusajs/medusa/api/admin/product-variants/route")',"/admin/products":'typeof import("@medusajs/medusa/api/admin/products/route")',"/admin/products/:id":'typeof import("@medusajs/medusa/api/admin/products/[id]/route")',"/admin/products/:id/images/:image_id/variants/batch":'typeof import("@medusajs/medusa/api/admin/products/[id]/images/[image_id]/variants/batch/route")',"/admin/products/:id/options":'typeof import("@medusajs/medusa/api/admin/products/[id]/options/route")',"/admin/products/:id/options/:option_id":'typeof import("@medusajs/medusa/api/admin/products/[id]/options/[option_id]/route")',"/admin/products/:id/variants":'typeof import("@medusajs/medusa/api/admin/products/[id]/variants/route")',"/admin/products/:id/variants/:variant_id":'typeof import("@medusajs/medusa/api/admin/products/[id]/variants/[variant_id]/route")',"/admin/products/:id/variants/:variant_id/images/batch":'typeof import("@medusajs/medusa/api/admin/products/[id]/variants/[variant_id]/images/batch/route")',"/admin/products/:id/variants/:variant_id/inventory-items":'typeof import("@medusajs/medusa/api/admin/products/[id]/variants/[variant_id]/inventory-items/route")',"/admin/products/:id/variants/:variant_id/inventory-items/:inventory_item_id":'typeof import("@medusajs/medusa/api/admin/products/[id]/variants/[variant_id]/inventory-items/[inventory_item_id]/route")',"/admin/products/:id/variants/batch":'typeof import("@medusajs/medusa/api/admin/products/[id]/variants/batch/route")',"/admin/products/:id/variants/inventory-items/batch":'typeof import("@medusajs/medusa/api/admin/products/[id]/variants/inventory-items/batch/route")',"/admin/products/batch":'typeof import("@medusajs/medusa/api/admin/products/batch/route")',"/admin/products/export":'typeof import("@medusajs/medusa/api/admin/products/export/route")',"/admin/products/import":'typeof import("@medusajs/medusa/api/admin/products/import/route")',"/admin/products/import/:transaction_id/confirm":'typeof import("@medusajs/medusa/api/admin/products/import/[transaction_id]/confirm/route")',"/admin/products/imports":'typeof import("@medusajs/medusa/api/admin/products/imports/route")',"/admin/products/imports/:transaction_id/confirm":'typeof import("@medusajs/medusa/api/admin/products/imports/[transaction_id]/confirm/route")',"/admin/promotions":'typeof import("@medusajs/medusa/api/admin/promotions/route")',"/admin/promotions/:id":'typeof import("@medusajs/medusa/api/admin/promotions/[id]/route")',"/admin/promotions/:id/:rule_type":'typeof import("@medusajs/medusa/api/admin/promotions/[id]/[rule_type]/route")',"/admin/promotions/:id/buy-rules/batch":'typeof import("@medusajs/medusa/api/admin/promotions/[id]/buy-rules/batch/route")',"/admin/promotions/:id/rules/batch":'typeof import("@medusajs/medusa/api/admin/promotions/[id]/rules/batch/route")',"/admin/promotions/:id/target-rules/batch":'typeof import("@medusajs/medusa/api/admin/promotions/[id]/target-rules/batch/route")',"/admin/promotions/rule-attribute-options/:rule_type":'typeof import("@medusajs/medusa/api/admin/promotions/rule-attribute-options/[rule_type]/route")',"/admin/promotions/rule-value-options/:rule_type/:rule_attribute_id":'typeof import("@medusajs/medusa/api/admin/promotions/rule-value-options/[rule_type]/[rule_attribute_id]/route")',"/admin/rbac/policies":'typeof import("@medusajs/medusa/api/admin/rbac/policies/route")',"/admin/rbac/policies/:id":'typeof import("@medusajs/medusa/api/admin/rbac/policies/[id]/route")',"/admin/rbac/roles":'typeof import("@medusajs/medusa/api/admin/rbac/roles/route")',"/admin/rbac/roles/:id":'typeof import("@medusajs/medusa/api/admin/rbac/roles/[id]/route")',"/admin/rbac/roles/:id/policies":'typeof import("@medusajs/medusa/api/admin/rbac/roles/[id]/policies/route")',"/admin/rbac/roles/:id/policies/:policy_id":'typeof import("@medusajs/medusa/api/admin/rbac/roles/[id]/policies/[policy_id]/route")',"/admin/refund-reasons":'typeof import("@medusajs/medusa/api/admin/refund-reasons/route")',"/admin/refund-reasons/:id":'typeof import("@medusajs/medusa/api/admin/refund-reasons/[id]/route")',"/admin/regions":'typeof import("@medusajs/medusa/api/admin/regions/route")',"/admin/regions/:id":'typeof import("@medusajs/medusa/api/admin/regions/[id]/route")',"/admin/reservations":'typeof import("@medusajs/medusa/api/admin/reservations/route")',"/admin/reservations/:id":'typeof import("@medusajs/medusa/api/admin/reservations/[id]/route")',"/admin/return-reasons":'typeof import("@medusajs/medusa/api/admin/return-reasons/route")',"/admin/return-reasons/:id":'typeof import("@medusajs/medusa/api/admin/return-reasons/[id]/route")',"/admin/returns":'typeof import("@medusajs/medusa/api/admin/returns/route")',"/admin/returns/:id":'typeof import("@medusajs/medusa/api/admin/returns/[id]/route")',"/admin/returns/:id/cancel":'typeof import("@medusajs/medusa/api/admin/returns/[id]/cancel/route")',"/admin/returns/:id/dismiss-items":'typeof import("@medusajs/medusa/api/admin/returns/[id]/dismiss-items/route")',"/admin/returns/:id/dismiss-items/:action_id":'typeof import("@medusajs/medusa/api/admin/returns/[id]/dismiss-items/[action_id]/route")',"/admin/returns/:id/receive":'typeof import("@medusajs/medusa/api/admin/returns/[id]/receive/route")',"/admin/returns/:id/receive-items":'typeof import("@medusajs/medusa/api/admin/returns/[id]/receive-items/route")',"/admin/returns/:id/receive-items/:action_id":'typeof import("@medusajs/medusa/api/admin/returns/[id]/receive-items/[action_id]/route")',"/admin/returns/:id/receive/confirm":'typeof import("@medusajs/medusa/api/admin/returns/[id]/receive/confirm/route")',"/admin/returns/:id/request":'typeof import("@medusajs/medusa/api/admin/returns/[id]/request/route")',"/admin/returns/:id/request-items":'typeof import("@medusajs/medusa/api/admin/returns/[id]/request-items/route")',"/admin/returns/:id/request-items/:action_id":'typeof import("@medusajs/medusa/api/admin/returns/[id]/request-items/[action_id]/route")',"/admin/returns/:id/shipping-method":'typeof import("@medusajs/medusa/api/admin/returns/[id]/shipping-method/route")',"/admin/returns/:id/shipping-method/:action_id":'typeof import("@medusajs/medusa/api/admin/returns/[id]/shipping-method/[action_id]/route")',"/admin/sales-channels":'typeof import("@medusajs/medusa/api/admin/sales-channels/route")',"/admin/sales-channels/:id":'typeof import("@medusajs/medusa/api/admin/sales-channels/[id]/route")',"/admin/sales-channels/:id/products":'typeof import("@medusajs/medusa/api/admin/sales-channels/[id]/products/route")',"/admin/shipping-option-types":'typeof import("@medusajs/medusa/api/admin/shipping-option-types/route")',"/admin/shipping-option-types/:id":'typeof import("@medusajs/medusa/api/admin/shipping-option-types/[id]/route")',"/admin/shipping-options":'typeof import("@medusajs/medusa/api/admin/shipping-options/route")',"/admin/shipping-options/:id":'typeof import("@medusajs/medusa/api/admin/shipping-options/[id]/route")',"/admin/shipping-options/:id/rules/batch":'typeof import("@medusajs/medusa/api/admin/shipping-options/[id]/rules/batch/route")',"/admin/shipping-profiles":'typeof import("@medusajs/medusa/api/admin/shipping-profiles/route")',"/admin/shipping-profiles/:id":'typeof import("@medusajs/medusa/api/admin/shipping-profiles/[id]/route")',"/admin/stock-locations":'typeof import("@medusajs/medusa/api/admin/stock-locations/route")',"/admin/stock-locations/:id":'typeof import("@medusajs/medusa/api/admin/stock-locations/[id]/route")',"/admin/stock-locations/:id/fulfillment-providers":'typeof import("@medusajs/medusa/api/admin/stock-locations/[id]/fulfillment-providers/route")',"/admin/stock-locations/:id/fulfillment-sets":'typeof import("@medusajs/medusa/api/admin/stock-locations/[id]/fulfillment-sets/route")',"/admin/stock-locations/:id/sales-channels":'typeof import("@medusajs/medusa/api/admin/stock-locations/[id]/sales-channels/route")',"/admin/stores":'typeof import("@medusajs/medusa/api/admin/stores/route")',"/admin/stores/:id":'typeof import("@medusajs/medusa/api/admin/stores/[id]/route")',"/admin/tax-providers":'typeof import("@medusajs/medusa/api/admin/tax-providers/route")',"/admin/tax-rates":'typeof import("@medusajs/medusa/api/admin/tax-rates/route")',"/admin/tax-rates/:id":'typeof import("@medusajs/medusa/api/admin/tax-rates/[id]/route")',"/admin/tax-rates/:id/rules":'typeof import("@medusajs/medusa/api/admin/tax-rates/[id]/rules/route")',"/admin/tax-rates/:id/rules/:rule_id":'typeof import("@medusajs/medusa/api/admin/tax-rates/[id]/rules/[rule_id]/route")',"/admin/tax-regions":'typeof import("@medusajs/medusa/api/admin/tax-regions/route")',"/admin/tax-regions/:id":'typeof import("@medusajs/medusa/api/admin/tax-regions/[id]/route")',"/admin/translations":'typeof import("@medusajs/medusa/api/admin/translations/route")',"/admin/translations/batch":'typeof import("@medusajs/medusa/api/admin/translations/batch/route")',"/admin/translations/entities":'typeof import("@medusajs/medusa/api/admin/translations/entities/route")',"/admin/translations/settings":'typeof import("@medusajs/medusa/api/admin/translations/settings/route")',"/admin/translations/settings/batch":'typeof import("@medusajs/medusa/api/admin/translations/settings/batch/route")',"/admin/translations/statistics":'typeof import("@medusajs/medusa/api/admin/translations/statistics/route")',"/admin/uploads":'typeof import("@medusajs/medusa/api/admin/uploads/route")',"/admin/uploads/:id":'typeof import("@medusajs/medusa/api/admin/uploads/[id]/route")',"/admin/uploads/presigned-urls":'typeof import("@medusajs/medusa/api/admin/uploads/presigned-urls/route")',"/admin/users":'typeof import("@medusajs/medusa/api/admin/users/route")',"/admin/users/:id":'typeof import("@medusajs/medusa/api/admin/users/[id]/route")',"/admin/users/me":'typeof import("@medusajs/medusa/api/admin/users/me/route")',"/admin/views/:entity/columns":'typeof import("@medusajs/medusa/api/admin/views/[entity]/columns/route")',"/admin/views/:entity/configurations":'typeof import("@medusajs/medusa/api/admin/views/[entity]/configurations/route")',"/admin/views/:entity/configurations/:id":'typeof import("@medusajs/medusa/api/admin/views/[entity]/configurations/[id]/route")',"/admin/views/:entity/configurations/active":'typeof import("@medusajs/medusa/api/admin/views/[entity]/configurations/active/route")',"/admin/workflows-executions":'typeof import("@medusajs/medusa/api/admin/workflows-executions/route")',"/admin/workflows-executions/:id":'typeof import("@medusajs/medusa/api/admin/workflows-executions/[id]/route")',"/admin/workflows-executions/:workflow_id/:transaction_id":'typeof import("@medusajs/medusa/api/admin/workflows-executions/[workflow_id]/[transaction_id]/route")',"/admin/workflows-executions/:workflow_id/:transaction_id/:step_id/subscribe":'typeof import("@medusajs/medusa/api/admin/workflows-executions/[workflow_id]/[transaction_id]/[step_id]/subscribe/route")',"/admin/workflows-executions/:workflow_id/run":'typeof import("@medusajs/medusa/api/admin/workflows-executions/[workflow_id]/run/route")',"/admin/workflows-executions/:workflow_id/steps/failure":'typeof import("@medusajs/medusa/api/admin/workflows-executions/[workflow_id]/steps/failure/route")',"/admin/workflows-executions/:workflow_id/steps/success":'typeof import("@medusajs/medusa/api/admin/workflows-executions/[workflow_id]/steps/success/route")',"/admin/workflows-executions/:workflow_id/subscribe":'typeof import("@medusajs/medusa/api/admin/workflows-executions/[workflow_id]/subscribe/route")',"/auth/:actor_type/:auth_provider":'typeof import("@medusajs/medusa/api/auth/[actor_type]/[auth_provider]/route")',"/auth/:actor_type/:auth_provider/callback":'typeof import("@medusajs/medusa/api/auth/[actor_type]/[auth_provider]/callback/route")',"/auth/:actor_type/:auth_provider/register":'typeof import("@medusajs/medusa/api/auth/[actor_type]/[auth_provider]/register/route")',"/auth/:actor_type/:auth_provider/reset-password":'typeof import("@medusajs/medusa/api/auth/[actor_type]/[auth_provider]/reset-password/route")',"/auth/:actor_type/:auth_provider/update":'typeof import("@medusajs/medusa/api/auth/[actor_type]/[auth_provider]/update/route")',"/auth/session":'typeof import("@medusajs/medusa/api/auth/session/route")',"/auth/token/refresh":'typeof import("@medusajs/medusa/api/auth/token/refresh/route")',"/store/carts":'typeof import("@medusajs/medusa/api/store/carts/route")',"/store/carts/:id":'typeof import("@medusajs/medusa/api/store/carts/[id]/route")',"/store/carts/:id/complete":'typeof import("@medusajs/medusa/api/store/carts/[id]/complete/route")',"/store/carts/:id/customer":'typeof import("@medusajs/medusa/api/store/carts/[id]/customer/route")',"/store/carts/:id/line-items":'typeof import("@medusajs/medusa/api/store/carts/[id]/line-items/route")',"/store/carts/:id/line-items/:line_id":'typeof import("@medusajs/medusa/api/store/carts/[id]/line-items/[line_id]/route")',"/store/carts/:id/promotions":'typeof import("@medusajs/medusa/api/store/carts/[id]/promotions/route")',"/store/carts/:id/shipping-methods":'typeof import("@medusajs/medusa/api/store/carts/[id]/shipping-methods/route")',"/store/carts/:id/taxes":'typeof import("@medusajs/medusa/api/store/carts/[id]/taxes/route")',"/store/collections":'typeof import("@medusajs/medusa/api/store/collections/route")',"/store/collections/:id":'typeof import("@medusajs/medusa/api/store/collections/[id]/route")',"/store/currencies":'typeof import("@medusajs/medusa/api/store/currencies/route")',"/store/currencies/:code":'typeof import("@medusajs/medusa/api/store/currencies/[code]/route")',"/store/customers":'typeof import("@medusajs/medusa/api/store/customers/route")',"/store/customers/me":'typeof import("@medusajs/medusa/api/store/customers/me/route")',"/store/customers/me/addresses":'typeof import("@medusajs/medusa/api/store/customers/me/addresses/route")',"/store/customers/me/addresses/:address_id":'typeof import("@medusajs/medusa/api/store/customers/me/addresses/[address_id]/route")',"/store/locales":'typeof import("@medusajs/medusa/api/store/locales/route")',"/store/orders":'typeof import("@medusajs/medusa/api/store/orders/route")',"/store/orders/:id":'typeof import("@medusajs/medusa/api/store/orders/[id]/route")',"/store/orders/:id/transfer/accept":'typeof import("@medusajs/medusa/api/store/orders/[id]/transfer/accept/route")',"/store/orders/:id/transfer/cancel":'typeof import("@medusajs/medusa/api/store/orders/[id]/transfer/cancel/route")',"/store/orders/:id/transfer/decline":'typeof import("@medusajs/medusa/api/store/orders/[id]/transfer/decline/route")',"/store/orders/:id/transfer/request":'typeof import("@medusajs/medusa/api/store/orders/[id]/transfer/request/route")',"/store/payment-collections":'typeof import("@medusajs/medusa/api/store/payment-collections/route")',"/store/payment-collections/:id/payment-sessions":'typeof import("@medusajs/medusa/api/store/payment-collections/[id]/payment-sessions/route")',"/store/payment-providers":'typeof import("@medusajs/medusa/api/store/payment-providers/route")',"/store/product-categories":'typeof import("@medusajs/medusa/api/store/product-categories/route")',"/store/product-categories/:id":'typeof import("@medusajs/medusa/api/store/product-categories/[id]/route")',"/store/product-tags":'typeof import("@medusajs/medusa/api/store/product-tags/route")',"/store/product-tags/:id":'typeof import("@medusajs/medusa/api/store/product-tags/[id]/route")',"/store/product-types":'typeof import("@medusajs/medusa/api/store/product-types/route")',"/store/product-types/:id":'typeof import("@medusajs/medusa/api/store/product-types/[id]/route")',"/store/product-variants":'typeof import("@medusajs/medusa/api/store/product-variants/route")',"/store/product-variants/:id":'typeof import("@medusajs/medusa/api/store/product-variants/[id]/route")',"/store/products":'typeof import("@medusajs/medusa/api/store/products/route")',"/store/products/:id":'typeof import("@medusajs/medusa/api/store/products/[id]/route")',"/store/regions":'typeof import("@medusajs/medusa/api/store/regions/route")',"/store/regions/:id":'typeof import("@medusajs/medusa/api/store/regions/[id]/route")',"/store/return-reasons":'typeof import("@medusajs/medusa/api/store/return-reasons/route")',"/store/return-reasons/:id":'typeof import("@medusajs/medusa/api/store/return-reasons/[id]/route")',"/store/returns":'typeof import("@medusajs/medusa/api/store/returns/route")',"/store/shipping-options":'typeof import("@medusajs/medusa/api/store/shipping-options/route")',"/store/shipping-options/:id/calculate":'typeof import("@medusajs/medusa/api/store/shipping-options/[id]/calculate/route")'},Pr={"/admin/commission-rates":'typeof import("@mercurjs/core-plugin/api/admin/commission-rates/route")',"/admin/commission-rates/:id":'typeof import("@mercurjs/core-plugin/api/admin/commission-rates/[id]/route")',"/admin/commission-rates/:id/rules":'typeof import("@mercurjs/core-plugin/api/admin/commission-rates/[id]/rules/route")',"/admin/order-groups":'typeof import("@mercurjs/core-plugin/api/admin/order-groups/route")',"/admin/order-groups/:id":'typeof import("@mercurjs/core-plugin/api/admin/order-groups/[id]/route")',"/admin/payouts":'typeof import("@mercurjs/core-plugin/api/admin/payouts/route")',"/admin/payouts/:id":'typeof import("@mercurjs/core-plugin/api/admin/payouts/[id]/route")',"/admin/orders":'typeof import("@mercurjs/core-plugin/api/admin/orders/route")',"/admin/products":'typeof import("@mercurjs/core-plugin/api/admin/products/route")',"/admin/invites/accept":'typeof import("@mercurjs/core-plugin/api/admin/invites/accept/route")',"/admin/sellers":'typeof import("@mercurjs/core-plugin/api/admin/sellers/route")',"/admin/sellers/invite":'typeof import("@mercurjs/core-plugin/api/admin/sellers/invite/route")',"/admin/sellers/:id":'typeof import("@mercurjs/core-plugin/api/admin/sellers/[id]/route")',"/store/carts/:id/complete":'typeof import("@mercurjs/core-plugin/api/store/carts/[id]/complete/route")',"/store/carts/:id/promotions":'typeof import("@mercurjs/core-plugin/api/store/carts/[id]/promotions/route")',"/store/carts/:id/shipping-methods":'typeof import("@mercurjs/core-plugin/api/store/carts/[id]/shipping-methods/route")',"/store/order-groups":'typeof import("@mercurjs/core-plugin/api/store/order-groups/route")',"/store/order-groups/:id":'typeof import("@mercurjs/core-plugin/api/store/order-groups/[id]/route")',"/store/sellers":'typeof import("@mercurjs/core-plugin/api/store/sellers/route")',"/store/sellers/:id":'typeof import("@mercurjs/core-plugin/api/store/sellers/[id]/route")',"/store/shipping-options":'typeof import("@mercurjs/core-plugin/api/store/shipping-options/route")',"/vendor/campaigns":'typeof import("@mercurjs/core-plugin/api/vendor/campaigns/route")',"/vendor/campaigns/:id":'typeof import("@mercurjs/core-plugin/api/vendor/campaigns/[id]/route")',"/vendor/campaigns/:id/promotions":'typeof import("@mercurjs/core-plugin/api/vendor/campaigns/[id]/promotions/route")',"/vendor/collections":'typeof import("@mercurjs/core-plugin/api/vendor/collections/route")',"/vendor/collections/:id":'typeof import("@mercurjs/core-plugin/api/vendor/collections/[id]/route")',"/vendor/collections/:id/products":'typeof import("@mercurjs/core-plugin/api/vendor/collections/[id]/products/route")',"/vendor/currencies":'typeof import("@mercurjs/core-plugin/api/vendor/currencies/route")',"/vendor/currencies/:code":'typeof import("@mercurjs/core-plugin/api/vendor/currencies/[code]/route")',"/vendor/customers":'typeof import("@mercurjs/core-plugin/api/vendor/customers/route")',"/vendor/customers/:id":'typeof import("@mercurjs/core-plugin/api/vendor/customers/[id]/route")',"/vendor/fulfillment-sets/:id":'typeof import("@mercurjs/core-plugin/api/vendor/fulfillment-sets/[id]/route")',"/vendor/fulfillment-sets/:id/service-zones":'typeof import("@mercurjs/core-plugin/api/vendor/fulfillment-sets/[id]/service-zones/route")',"/vendor/fulfillment-sets/:id/service-zones/:zone_id":'typeof import("@mercurjs/core-plugin/api/vendor/fulfillment-sets/[id]/service-zones/[zone_id]/route")',"/vendor/inventory-items":'typeof import("@mercurjs/core-plugin/api/vendor/inventory-items/route")',"/vendor/inventory-items/:id":'typeof import("@mercurjs/core-plugin/api/vendor/inventory-items/[id]/route")',"/vendor/inventory-items/:id/location-levels":'typeof import("@mercurjs/core-plugin/api/vendor/inventory-items/[id]/location-levels/route")',"/vendor/inventory-items/:id/location-levels/:location_id":'typeof import("@mercurjs/core-plugin/api/vendor/inventory-items/[id]/location-levels/[location_id]/route")',"/vendor/inventory-items/:id/location-levels/batch":'typeof import("@mercurjs/core-plugin/api/vendor/inventory-items/[id]/location-levels/batch/route")',"/vendor/orders":'typeof import("@mercurjs/core-plugin/api/vendor/orders/route")',"/vendor/orders/:id":'typeof import("@mercurjs/core-plugin/api/vendor/orders/[id]/route")',"/vendor/orders/:id/cancel":'typeof import("@mercurjs/core-plugin/api/vendor/orders/[id]/cancel/route")',"/vendor/orders/:id/changes":'typeof import("@mercurjs/core-plugin/api/vendor/orders/[id]/changes/route")',"/vendor/orders/:id/complete":'typeof import("@mercurjs/core-plugin/api/vendor/orders/[id]/complete/route")',"/vendor/orders/:id/fulfillments":'typeof import("@mercurjs/core-plugin/api/vendor/orders/[id]/fulfillments/route")',"/vendor/orders/:id/fulfillments/:fulfillment_id/cancel":'typeof import("@mercurjs/core-plugin/api/vendor/orders/[id]/fulfillments/[fulfillment_id]/cancel/route")',"/vendor/orders/:id/fulfillments/:fulfillment_id/mark-as-delivered":'typeof import("@mercurjs/core-plugin/api/vendor/orders/[id]/fulfillments/[fulfillment_id]/mark-as-delivered/route")',"/vendor/orders/:id/fulfillments/:fulfillment_id/shipments":'typeof import("@mercurjs/core-plugin/api/vendor/orders/[id]/fulfillments/[fulfillment_id]/shipments/route")',"/vendor/orders/:id/preview":'typeof import("@mercurjs/core-plugin/api/vendor/orders/[id]/preview/route")',"/vendor/payments":'typeof import("@mercurjs/core-plugin/api/vendor/payments/route")',"/vendor/payments/:id":'typeof import("@mercurjs/core-plugin/api/vendor/payments/[id]/route")',"/vendor/payments/:id/capture":'typeof import("@mercurjs/core-plugin/api/vendor/payments/[id]/capture/route")',"/vendor/payments/:id/refund":'typeof import("@mercurjs/core-plugin/api/vendor/payments/[id]/refund/route")',"/vendor/payments/payment-providers":'typeof import("@mercurjs/core-plugin/api/vendor/payments/payment-providers/route")',"/vendor/payout-accounts":'typeof import("@mercurjs/core-plugin/api/vendor/payout-accounts/route")',"/vendor/payout-accounts/:id":'typeof import("@mercurjs/core-plugin/api/vendor/payout-accounts/[id]/route")',"/vendor/payout-accounts/:id/onboarding":'typeof import("@mercurjs/core-plugin/api/vendor/payout-accounts/[id]/onboarding/route")',"/vendor/payouts":'typeof import("@mercurjs/core-plugin/api/vendor/payouts/route")',"/vendor/payouts/:id":'typeof import("@mercurjs/core-plugin/api/vendor/payouts/[id]/route")',"/vendor/price-lists":'typeof import("@mercurjs/core-plugin/api/vendor/price-lists/route")',"/vendor/price-lists/:id":'typeof import("@mercurjs/core-plugin/api/vendor/price-lists/[id]/route")',"/vendor/price-lists/:id/products":'typeof import("@mercurjs/core-plugin/api/vendor/price-lists/[id]/products/route")',"/vendor/price-preferences":'typeof import("@mercurjs/core-plugin/api/vendor/price-preferences/route")',"/vendor/price-preferences/:id":'typeof import("@mercurjs/core-plugin/api/vendor/price-preferences/[id]/route")',"/vendor/product-categories":'typeof import("@mercurjs/core-plugin/api/vendor/product-categories/route")',"/vendor/product-categories/:id":'typeof import("@mercurjs/core-plugin/api/vendor/product-categories/[id]/route")',"/vendor/product-categories/:id/products":'typeof import("@mercurjs/core-plugin/api/vendor/product-categories/[id]/products/route")',"/vendor/product-tags":'typeof import("@mercurjs/core-plugin/api/vendor/product-tags/route")',"/vendor/product-tags/:id":'typeof import("@mercurjs/core-plugin/api/vendor/product-tags/[id]/route")',"/vendor/product-types":'typeof import("@mercurjs/core-plugin/api/vendor/product-types/route")',"/vendor/product-types/:id":'typeof import("@mercurjs/core-plugin/api/vendor/product-types/[id]/route")',"/vendor/products":'typeof import("@mercurjs/core-plugin/api/vendor/products/route")',"/vendor/products/:id":'typeof import("@mercurjs/core-plugin/api/vendor/products/[id]/route")',"/vendor/products/:id/options":'typeof import("@mercurjs/core-plugin/api/vendor/products/[id]/options/route")',"/vendor/products/:id/options/:option_id":'typeof import("@mercurjs/core-plugin/api/vendor/products/[id]/options/[option_id]/route")',"/vendor/products/:id/variants":'typeof import("@mercurjs/core-plugin/api/vendor/products/[id]/variants/route")',"/vendor/products/:id/variants/:variant_id":'typeof import("@mercurjs/core-plugin/api/vendor/products/[id]/variants/[variant_id]/route")',"/vendor/promotions":'typeof import("@mercurjs/core-plugin/api/vendor/promotions/route")',"/vendor/promotions/:id":'typeof import("@mercurjs/core-plugin/api/vendor/promotions/[id]/route")',"/vendor/promotions/:id/:rule_type":'typeof import("@mercurjs/core-plugin/api/vendor/promotions/[id]/[rule_type]/route")',"/vendor/promotions/:id/buy-rules/batch":'typeof import("@mercurjs/core-plugin/api/vendor/promotions/[id]/buy-rules/batch/route")',"/vendor/promotions/:id/rules/batch":'typeof import("@mercurjs/core-plugin/api/vendor/promotions/[id]/rules/batch/route")',"/vendor/promotions/:id/target-rules/batch":'typeof import("@mercurjs/core-plugin/api/vendor/promotions/[id]/target-rules/batch/route")',"/vendor/promotions/rule-attribute-options/:rule_type":'typeof import("@mercurjs/core-plugin/api/vendor/promotions/rule-attribute-options/[rule_type]/route")',"/vendor/promotions/rule-value-options/:rule_type/:rule_attribute_id":'typeof import("@mercurjs/core-plugin/api/vendor/promotions/rule-value-options/[rule_type]/[rule_attribute_id]/route")',"/vendor/refund-reasons":'typeof import("@mercurjs/core-plugin/api/vendor/refund-reasons/route")',"/vendor/refund-reasons/:id":'typeof import("@mercurjs/core-plugin/api/vendor/refund-reasons/[id]/route")',"/vendor/regions":'typeof import("@mercurjs/core-plugin/api/vendor/regions/route")',"/vendor/regions/:id":'typeof import("@mercurjs/core-plugin/api/vendor/regions/[id]/route")',"/vendor/return-reasons":'typeof import("@mercurjs/core-plugin/api/vendor/return-reasons/route")',"/vendor/return-reasons/:id":'typeof import("@mercurjs/core-plugin/api/vendor/return-reasons/[id]/route")',"/vendor/returns":'typeof import("@mercurjs/core-plugin/api/vendor/returns/route")',"/vendor/returns/:id":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/route")',"/vendor/returns/:id/cancel":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/cancel/route")',"/vendor/returns/:id/dismiss-items":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/dismiss-items/route")',"/vendor/returns/:id/dismiss-items/:action_id":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/dismiss-items/[action_id]/route")',"/vendor/returns/:id/receive":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/receive/route")',"/vendor/returns/:id/receive-items":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/receive-items/route")',"/vendor/returns/:id/receive-items/:action_id":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/receive-items/[action_id]/route")',"/vendor/returns/:id/receive/confirm":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/receive/confirm/route")',"/vendor/returns/:id/request":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/request/route")',"/vendor/returns/:id/request-items":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/request-items/route")',"/vendor/returns/:id/request-items/:action_id":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/request-items/[action_id]/route")',"/vendor/returns/:id/shipping-method":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/shipping-method/route")',"/vendor/returns/:id/shipping-method/:action_id":'typeof import("@mercurjs/core-plugin/api/vendor/returns/[id]/shipping-method/[action_id]/route")',"/vendor/sales-channels":'typeof import("@mercurjs/core-plugin/api/vendor/sales-channels/route")',"/vendor/sales-channels/:id":'typeof import("@mercurjs/core-plugin/api/vendor/sales-channels/[id]/route")',"/vendor/sales-channels/:id/products":'typeof import("@mercurjs/core-plugin/api/vendor/sales-channels/[id]/products/route")',"/vendor/sellers":'typeof import("@mercurjs/core-plugin/api/vendor/sellers/route")',"/vendor/sellers/me":'typeof import("@mercurjs/core-plugin/api/vendor/sellers/me/route")',"/vendor/shipping-option-types":'typeof import("@mercurjs/core-plugin/api/vendor/shipping-option-types/route")',"/vendor/shipping-option-types/:id":'typeof import("@mercurjs/core-plugin/api/vendor/shipping-option-types/[id]/route")',"/vendor/shipping-options":'typeof import("@mercurjs/core-plugin/api/vendor/shipping-options/route")',"/vendor/shipping-options/:id":'typeof import("@mercurjs/core-plugin/api/vendor/shipping-options/[id]/route")',"/vendor/shipping-options/:id/rules/batch":'typeof import("@mercurjs/core-plugin/api/vendor/shipping-options/[id]/rules/batch/route")',"/vendor/shipping-profiles":'typeof import("@mercurjs/core-plugin/api/vendor/shipping-profiles/route")',"/vendor/shipping-profiles/:id":'typeof import("@mercurjs/core-plugin/api/vendor/shipping-profiles/[id]/route")',"/vendor/stock-locations":'typeof import("@mercurjs/core-plugin/api/vendor/stock-locations/route")',"/vendor/stock-locations/:id":'typeof import("@mercurjs/core-plugin/api/vendor/stock-locations/[id]/route")',"/vendor/stock-locations/:id/fulfillment-providers":'typeof import("@mercurjs/core-plugin/api/vendor/stock-locations/[id]/fulfillment-providers/route")',"/vendor/stock-locations/:id/fulfillment-sets":'typeof import("@mercurjs/core-plugin/api/vendor/stock-locations/[id]/fulfillment-sets/route")',"/vendor/stock-locations/:id/sales-channels":'typeof import("@mercurjs/core-plugin/api/vendor/stock-locations/[id]/sales-channels/route")',"/vendor/uploads":'typeof import("@mercurjs/core-plugin/api/vendor/uploads/route")'};async function bt(e,t={}){let{pathnameFilter:r,ignoreFilter:i,ignorePartFilter:o,sortPathnames:s=true}=t,n=[],p=[e];for(;p.length>0;){let m=await Promise.all(p.map(async d=>{let u={directories:[],pathnames:[]};try{let c=await U__default.readdir(d,{withFileTypes:!0});for(let f of c){if(o&&o(f.name))continue;let y=R__default.join(d,f.name);i&&i(y)||(f.isDirectory()?u.directories.push(y):(!r||r(y))&&u.pathnames.push(y));}}catch(c){if(c.code!=="ENOENT"||d===e)throw c;return null}return u}));p=[];for(let d of m)d&&(p.push(...d.directories),n.push(...d.pathnames));}return s&&n.sort(),n}async function Ze(e){return await U__default.stat(e).catch(()=>null)!==null}async function Qe(e){await Ze(e)||await U__default.mkdir(e,{recursive:true});}function ge(e){return e.replace(/\\/g,"/")}function Ie(e){return e.split("/").reduce((r,i)=>{if(!i||ie.test(i))return r;if(i.startsWith("[")&&i.endsWith("]")){let o=i.slice(1,-1);return `${r}/:${o}`}return `${r}/${i}`},"")||"/"}async function Rt(e){return await Ze(e)?(await bt(e,{pathnameFilter:i=>ie.test(i),ignorePartFilter:i=>i.startsWith("_")||i==="node_modules"})).map(i=>{let o=R__default.relative(e,i);return {filePath:ge(o),route:Ie(ge(o))}}):[]}function xt(e){return e.replace(/[-_]+(.)?/g,(t,r)=>r?r.toUpperCase():"").replace(/^[A-Z]/,t=>t.toLowerCase())}function is(e){return `../../src/api/${e.replace(/\.ts$/,"")}`}function os(e){return e.startsWith(":")?`$${xt(e.slice(1))}`:xt(e)}function Tr(){return {children:new Map}}function ss(e){let t=Tr();for(let[r,i]of e){let o=r.split("/").filter(Boolean),s=t;for(let n of o){let p=os(n);s.children.has(p)||s.children.set(p,Tr()),s=s.children.get(p);}s.importType=i;}return t}function Dr(e,t=" "){let r=[];if(e.importType&&r.push(e.importType),e.children.size>0){let i=[];for(let[o,s]of e.children){let n=Dr(s,t+" ");i.push(`${t} ${o}: ${n}`);}r.push(`{
33
33
  ${i.join(`;
34
34
  `)};
35
- ${t}}`);}return r.length===0?"{}":r.length===1?r[0]:r.join(" & ")}function Fr(e,t){let r=new Map;for(let[n,m]of Object.entries(Pr))r.set(n,m);for(let[n,m]of Object.entries(Tr))r.set(n,m);let i=t??os;for(let n of e){let m=i(n.filePath);r.set(n.route,`typeof import("${m}")`);}let o=ns(r);return `// This file is generated automatically by Mercur CLI
35
+ ${t}}`);}return r.length===0?"{}":r.length===1?r[0]:r.join(" & ")}function Nr(e,t){let r=new Map;for(let[n,p]of Object.entries(Cr))r.set(n,p);for(let[n,p]of Object.entries(Pr))r.set(n,p);let i=t??is;for(let n of e){let p=i(n.filePath);r.set(n.route,`typeof import("${p}")`);}let o=ss(r);return `// This file is generated automatically by Mercur CLI
36
36
  // Do not edit this file manually
37
37
 
38
- export type Routes = ${Nr(o,"")};
39
- `}async function Or(e){let t=R__default.join(e,Ke,"index.ts"),r=R__default.join(e,"src","api"),i=R__default.dirname(t);await Qe(i);let o=await Rt(r),s=Fr(o);await U__default.writeFile(t,s,"utf-8");}async function Ar(e,t){let r=R__default.join(e,Ke,"index.ts"),i=R__default.dirname(r);await Qe(i);let o=t.map(m=>{let p=m.indexOf("/api/"),d=p!==-1?m.slice(p+5):m;return {filePath:m,route:Ie(ge(d))}}),n=Fr(o,m=>`../../src/${m.replace(/\.ts$/,"")}`);await U__default.writeFile(r,n,"utf-8");}async function Ur(e){let t={},r={cwd:e.cwd,registryFile:R__default.resolve(e.cwd,e.registryFile)};if(!L.existsSync(r.registryFile))return t[B]=true,{errors:t,resolvePaths:null,config:null};if(!L.existsSync(R__default.resolve(e.cwd,"blocks.json")))return t[I]=true,{errors:t,resolvePaths:null,config:null};try{let i=await b(e.cwd);return {errors:t,config:i,resolvePaths:r}}catch{a.break(),a.error(`An invalid ${f.info("blocks.json")} file was found at ${f.info(e.cwd)}.
40
- Before you can run registry:codegen, you must create a valid ${f.info("blocks.json")} file by running the ${f.info("init")} command.`),a.break(),process.exit(1);}}var ds=z.object({cwd:z.string(),registryFile:z.string()}),Br=new Command().name("registry:codegen").description("generate type definitions for registry block API routes").argument("[registry]","path to registry.json file","./registry.json").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).action(async(e,t)=>{await ms({cwd:R.resolve(t.cwd),registryFile:e});});async function ms(e){try{let t=ds.parse(e),{errors:r,resolvePaths:i}=await Ur(t);r[I]&&(a.error(`A ${f.info("blocks.json")} file is required to run registry:codegen. Run ${f.info("mercur init")} to create one.`),a.break(),process.exit(1)),(r[B]||!i)&&(a.error(`Could not find a registry file at ${f.info(R.resolve(t.cwd,t.registryFile))}.`),a.break(),process.exit(1));let o=await U.readFile(i.registryFile,"utf-8"),s=K.safeParse(JSON.parse(o));s.success||(a.error(`Invalid registry file at ${f.info(i.registryFile)}.`),a.break(),process.exit(1));let n=[];for(let p of s.data.items)if(p.files)for(let d of p.files)d.type==="registry:api"&&ie.test(d.path)&&n.push(d.path);if(n.length===0){a.warn("No API route files found in registry.");return}let m=v("Generating registry route types...");await Ar(t.cwd,n),m.succeed("Registry route types generated successfully."),a.break();}catch(t){a.break(),j(t);}}var cs=z.object({cwd:z.string()}),Vr=new Command().name("codegen").description("generate type definitions for API routes").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).action(async e=>{await us({cwd:R.resolve(e.cwd)});});async function us(e){try{let t=cs.parse(e),r=v("Generating route types...");await Or(t.cwd),r.succeed("Route types generated successfully."),a.break();}catch(t){a.break(),j(t);}}var St=({contents:e,databaseUri:t})=>{let r=new Set,i=e;return e.includes("DATABASE_URL")||(i+=`
38
+ export type Routes = ${Dr(o,"")};
39
+ `}async function Fr(e){let t=R__default.join(e,Ke,"index.ts"),r=R__default.join(e,"src","api"),i=R__default.dirname(t);await Qe(i);let o=await Rt(r),s=Nr(o);await U__default.writeFile(t,s,"utf-8");}async function Or(e,t){let r=R__default.join(e,Ke,"index.ts"),i=R__default.dirname(r);await Qe(i);let o=t.map(p=>{let m=p.indexOf("/api/"),d=m!==-1?p.slice(m+5):p;return {filePath:p,route:Ie(ge(d))}}),n=Nr(o,p=>`../../src/${p.replace(/\.ts$/,"")}`);await U__default.writeFile(r,n,"utf-8");}async function Mr(e){let t={},r={cwd:e.cwd,registryFile:R__default.resolve(e.cwd,e.registryFile)};if(!L.existsSync(r.registryFile))return t[B]=true,{errors:t,resolvePaths:null,config:null};if(!L.existsSync(R__default.resolve(e.cwd,"blocks.json")))return t[S]=true,{errors:t,resolvePaths:null,config:null};try{let i=await b(e.cwd);return {errors:t,config:i,resolvePaths:r}}catch{a.break(),a.error(`An invalid ${l.info("blocks.json")} file was found at ${l.info(e.cwd)}.
40
+ Before you can run registry:codegen, you must create a valid ${l.info("blocks.json")} file by running the ${l.info("init")} command.`),a.break(),process.exit(1);}}var as=z.object({cwd:z.string(),registryFile:z.string()}),zr=new Command().name("registry:codegen").description("generate type definitions for registry block API routes").argument("[registry]","path to registry.json file","./registry.json").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).action(async(e,t)=>{await ds({cwd:R.resolve(t.cwd),registryFile:e});});async function ds(e){try{let t=as.parse(e),{errors:r,resolvePaths:i}=await Mr(t);r[S]&&(a.error(`A ${l.info("blocks.json")} file is required to run registry:codegen. Run ${l.info("mercur init")} to create one.`),a.break(),process.exit(1)),(r[B]||!i)&&(a.error(`Could not find a registry file at ${l.info(R.resolve(t.cwd,t.registryFile))}.`),a.break(),process.exit(1));let o=await U.readFile(i.registryFile,"utf-8"),s=K.safeParse(JSON.parse(o));s.success||(a.error(`Invalid registry file at ${l.info(i.registryFile)}.`),a.break(),process.exit(1));let n=[];for(let m of s.data.items)if(m.files)for(let d of m.files)d.type==="registry:api"&&ie.test(d.path)&&n.push(d.path);if(n.length===0){a.warn("No API route files found in registry.");return}let p=v("Generating registry route types...");await Or(t.cwd,n),p.succeed("Registry route types generated successfully."),a.break();}catch(t){a.break(),j(t);}}var ms=z.object({cwd:z.string()}),Gr=new Command().name("codegen").description("generate type definitions for API routes").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).action(async e=>{await cs({cwd:R.resolve(e.cwd)});});async function cs(e){try{let t=ms.parse(e),r=v("Generating route types...");await Fr(t.cwd),r.succeed("Route types generated successfully."),a.break();}catch(t){a.break(),j(t);}}var St=({contents:e,databaseUri:t})=>{let r=new Set,i=e;return e.includes("DATABASE_URL")||(i+=`
41
41
  DATABASE_URL=your-connection-string-here`),i.split(`
42
42
  `).map(s=>{if(s.startsWith("#")||!s.includes("="))return s;let[n]=s.split("=");if(n)return n==="DATABASE_URL"&&(s=`DATABASE_URL=${t||"postgresql://localhost:5432/your-database-name"}`),r.has(n)?null:(r.add(n),s)}).filter(Boolean).join(`
43
- `)},ls=[{path:"packages/api"},{path:"apps/vendor"},{path:"apps/admin"}];async function Xe({projectDir:e,databaseUri:t}){try{await Promise.all(ls.map(async({path:r})=>{let i=R__default.join(e,r);if(!L.existsSync(i))return;let o=R__default.join(i,".env.template"),s=R__default.join(i,".env");if(!r.includes("api")){L.existsSync(o)&&!L.existsSync(s)&&await L.copy(o,s);return}let m="";if(L.existsSync(o)){let p=await L.readFile(o,"utf8");m=St({contents:p,databaseUri:t});}if(L.existsSync(s)){let p=await L.readFile(s,"utf8"),d=St({contents:p,databaseUri:t});await L.writeFile(s,d);}else {let p=St({contents:m,databaseUri:t});await L.writeFile(s,p);}}));}catch(r){a.error("Unable to manage environment files"),r instanceof Error&&a.error(r.message),process.exit(1);}}var gs="localhost",Jr=5432,Pt="packages/api",ys="admin@mercur-test.com";async function Hr(e){let t=e.projectName.replace(/[^a-zA-Z0-9]/g,"-"),{client:r,dbConnectionString:i}=await hs({dbConnectionString:e.dbConnectionString,dbHost:e.dbHost??gs,dbPort:e.dbPort??Jr,dbName:t,spinner:e.spinner});if(!r||!i)return {success:false,dbName:t,connectionString:null};try{return e.spinner&&(e.spinner.text="Checking if database exists..."),await vs(r,t)?(await r.end(),Yr({...e,dbName:t,connectionString:i,alreadyExists:!0})):(e.spinner&&(e.spinner.text=`Creating database "${t}"...`),await r.query(`CREATE DATABASE "${t}"`),await r.end(),Yr({...e,dbName:t,connectionString:i,alreadyExists:!1}))}catch(o){return a.error(`Error creating database${o instanceof Error?`: ${o.message}`:""}.`),await r.end().catch(()=>{}),{success:false,dbName:t,connectionString:null}}}async function Yr(e){let{projectDir:t,spinner:r,dbName:i,connectionString:o,alreadyExists:s}=e;if(await Xe({projectDir:t,databaseUri:o}),!await ws({projectDir:t,spinner:r}))return {success:false,dbName:i,connectionString:null};if(!await bs({projectDir:t,spinner:r}))return {success:false,dbName:i,connectionString:null};let p=await js({projectDir:t});return {success:true,dbName:i,connectionString:o,alreadyExists:s,inviteToken:p}}async function hs({dbConnectionString:e,dbHost:t,dbPort:r,dbName:i,spinner:o}){if(e)try{let n=new It.Client({connectionString:e});return await n.connect(),{client:n,dbConnectionString:e}}catch(n){return a.error(`Invalid database connection string${n instanceof Error?`: ${n.message}`:""}.`),{client:null,dbConnectionString:null}}o&&(o.text=`Trying default connection (postgres@${t}:${r})...`);try{let n=new It.Client({user:"postgres",password:"",host:t,port:r,database:"postgres",connectionTimeoutMillis:5e3});return await n.connect(),{client:n,dbConnectionString:qr({user:"postgres",password:"",host:t,port:r,db:i})}}catch{}o?.stop(),a.break(),a.log(`PostgreSQL is required. Make sure it is installed and running on ${t}:${r}.`),a.break();let s=3;for(let n=1;n<=s;n++){let m=n>1?` (attempt ${n}/${s})`:"",p=await Pe([{type:"text",name:"postgresUsername",message:`Enter your Postgres username${m}`,initial:"postgres"},{type:"password",name:"postgresPassword",message:'Enter your Postgres password (press Enter for "postgres")'}]);if(!p.postgresUsername)return {client:null,dbConnectionString:null};let d=p.postgresUsername,c=p.postgresPassword||"postgres";o?.start("Connecting to database...");try{let u=new It.Client({user:d,password:c,host:t,port:r,database:"postgres",connectionTimeoutMillis:5e3});return await u.connect(),{client:u,dbConnectionString:qr({user:d,password:c,host:t,port:r,db:i})}}catch(u){o?.stop();let l=u instanceof Error?u.message:String(u);n<s?a.warn(`Attempt ${n}/${s} failed: ${l}`):a.error(`Couldn't connect to PostgreSQL: ${l}
43
+ `)},us=[{path:"packages/api"},{path:"apps/vendor"},{path:"apps/admin"}];async function Xe({projectDir:e,databaseUri:t}){try{await Promise.all(us.map(async({path:r})=>{let i=R__default.join(e,r);if(!L.existsSync(i))return;let o=R__default.join(i,".env.template"),s=R__default.join(i,".env");if(!r.includes("api")){L.existsSync(o)&&!L.existsSync(s)&&await L.copy(o,s);return}let p="";if(L.existsSync(o)){let m=await L.readFile(o,"utf8");p=St({contents:m,databaseUri:t});}if(L.existsSync(s)){let m=await L.readFile(s,"utf8"),d=St({contents:m,databaseUri:t});await L.writeFile(s,d);}else {let m=St({contents:p,databaseUri:t});await L.writeFile(s,m);}}));}catch(r){a.error("Unable to manage environment files"),r instanceof Error&&a.error(r.message),process.exit(1);}}var fs="localhost",qr=5432,Pt="packages/api",gs="admin@mercur-test.com";async function Jr(e){let t=e.projectName.replace(/[^a-zA-Z0-9]/g,"-"),{client:r,dbConnectionString:i}=await ys({dbConnectionString:e.dbConnectionString,dbHost:e.dbHost??fs,dbPort:e.dbPort??qr,dbName:t,spinner:e.spinner});if(!r||!i)return {success:false,dbName:t,connectionString:null};try{return e.spinner&&(e.spinner.text="Checking if database exists..."),await hs(r,t)?(await r.end(),Vr({...e,dbName:t,connectionString:i,alreadyExists:!0})):(e.spinner&&(e.spinner.text=`Creating database "${t}"...`),await r.query(`CREATE DATABASE "${t}"`),await r.end(),Vr({...e,dbName:t,connectionString:i,alreadyExists:!1}))}catch(o){return a.error(`Error creating database${o instanceof Error?`: ${o.message}`:""}.`),await r.end().catch(()=>{}),{success:false,dbName:t,connectionString:null}}}async function Vr(e){let{projectDir:t,spinner:r,dbName:i,connectionString:o,alreadyExists:s}=e;if(await Xe({projectDir:t,databaseUri:o}),!await vs({projectDir:t,spinner:r}))return {success:false,dbName:i,connectionString:null};if(!await js({projectDir:t,spinner:r}))return {success:false,dbName:i,connectionString:null};let m=await ws({projectDir:t});return {success:true,dbName:i,connectionString:o,alreadyExists:s,inviteToken:m}}async function ys({dbConnectionString:e,dbHost:t,dbPort:r,dbName:i,spinner:o}){if(e)try{let n=new It.Client({connectionString:e});return await n.connect(),{client:n,dbConnectionString:e}}catch(n){return a.error(`Invalid database connection string${n instanceof Error?`: ${n.message}`:""}.`),{client:null,dbConnectionString:null}}o&&(o.text=`Trying default connection (postgres@${t}:${r})...`);try{let n=new It.Client({user:"postgres",password:"",host:t,port:r,database:"postgres",connectionTimeoutMillis:5e3});return await n.connect(),{client:n,dbConnectionString:Yr({user:"postgres",password:"",host:t,port:r,db:i})}}catch{}o?.stop(),a.break(),a.log(`PostgreSQL is required. Make sure it is installed and running on ${t}:${r}.`),a.break();let s=3;for(let n=1;n<=s;n++){let p=n>1?` (attempt ${n}/${s})`:"",m=await Pe([{type:"text",name:"postgresUsername",message:`Enter your Postgres username${p}`,initial:"postgres"},{type:"password",name:"postgresPassword",message:'Enter your Postgres password (press Enter for "postgres")'}]);if(!m.postgresUsername)return {client:null,dbConnectionString:null};let d=m.postgresUsername,u=m.postgresPassword||"postgres";o?.start("Connecting to database...");try{let c=new It.Client({user:d,password:u,host:t,port:r,database:"postgres",connectionTimeoutMillis:5e3});return await c.connect(),{client:c,dbConnectionString:Yr({user:d,password:u,host:t,port:r,db:i})}}catch(c){o?.stop();let f=c instanceof Error?c.message:String(c);n<s?a.warn(`Attempt ${n}/${s} failed: ${f}`):a.error(`Couldn't connect to PostgreSQL: ${f}
44
44
  \u2192 Is PostgreSQL running? Try: pg_isready -h ${t} -p ${r}
45
- \u2192 Check your username, password, and that the server is accessible.`);}}return {client:null,dbConnectionString:null}}async function vs(e,t){return ((await e.query(`SELECT datname FROM pg_catalog.pg_database WHERE datname='${t}';`)).rowCount??0)>0}function qr({user:e,password:t,host:r,port:i=Jr,db:o}){let s=encodeURIComponent(t);return `postgresql://${e}:${s}@${r}:${i}/${o}`}async function ws({projectDir:e,spinner:t}){let r=R__default.join(e,Pt),i=await A(r),o=t||v("Running migrations...").start(),s=i==="yarn"?["yarn","run","build"]:i==="pnpm"?["pnpm","run","build"]:i==="bun"?["bun","run","build"]:["npm","run","build"],n=i==="pnpm"?["pnpm","dlx"]:i==="bun"?["bunx"]:["npx"];try{return o.text="Building project...",await execa(s[0],s.slice(1),{cwd:r}),o.text="Running database migrations...",await execa(n[0],[...n.slice(1),"medusa","db:migrate"],{cwd:r}),t||o.succeed("Migrations completed successfully."),!0}catch(m){return o.fail("Failed to run migrations."),a.error(`Error running migrations${m instanceof Error?`: ${m.message}`:""}.`),false}}async function js({projectDir:e}){let t=R__default.join(e,Pt),r=await A(t),i=r==="pnpm"?["pnpm","dlx"]:r==="bun"?["bunx"]:["npx"];try{return (await execa(i[0],[...i.slice(1),"medusa","user","-e",ys,"--invite"],{cwd:t})).stdout.match(/Invite token: (?<token>.+)/)?.groups?.token||null}catch(o){return a.error(`Error creating admin invite${o instanceof Error?`: ${o.message}`:""}.`),null}}async function bs({projectDir:e,spinner:t}){let r=R__default.join(e,Pt),i=await A(r),o=t||v("Seeding database...").start();try{let s=i==="yarn"?["yarn","seed"]:i==="pnpm"?["pnpm","run","seed"]:i==="bun"?["bun","run","seed"]:["npm","run","seed"];return o.text="Seeding database with demo data...",await execa(s[0],s.slice(1),{cwd:r}),t||o.succeed("Database seeded successfully."),!0}catch(s){return o.fail("Failed to seed database."),a.error(`Error seeding database${s instanceof Error?`: ${s.message}`:""}.`),false}}var Kr="main",Tt=20,Qr={basic:{path:"basic",description:"Full marketplace starter \u2014 sellers, products, orders, admin & vendor panels"},plugin:{path:"plugin",description:"MedusaJS plugin template \u2014 for building reusable marketplace extensions"}},Xr=new Command().name("create").description("create a new Mercur project").argument("[name]","the name of your project").option("-t, --template <template>","the template to use. e.g. basic, registry, or plugin").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).option("--no-deps","skip installing dependencies.").option("--skip-db","skip database configuration.",false).option("--skip-email","skip email prompt.",false).option("--db-connection-string <string>","PostgreSQL connection string.").option("--db-host <host>","PostgreSQL host.","localhost").option("--db-port <port>","PostgreSQL port.","5432").action(async(e,t)=>{try{let r=Date.now();Ms(),H();let i=e;if(!i){let{enteredName:l}=await Pe({type:"text",name:"enteredName",message:"What is your project named?",initial:t.template?`${t.template}-app`:"my-mercur",format:g=>g.trim(),validate:g=>Cs(R__default.basename(R__default.resolve(g))).validForNewPackages?!0:"Invalid project name. Name should be lowercase, URL-friendly, and not start with a period or underscore."});l||process.exit(0),i=l;}let o=t.template;if(!o){let{selectedTemplate:l}=await Pe({type:"select",name:"selectedTemplate",message:`Which ${f.info("template")} would you like to use?`,choices:Object.entries(Qr).map(([g,h])=>({title:g,value:g,description:h.description}))});l||process.exit(0),o=l;}if(!t.skipEmail){let{wantsEmail:l}=await Pe({type:"confirm",name:"wantsEmail",message:"Mind sharing your email? We reach out for priority support, community events, and invite-only meetups. We never spam.",initial:!1});if(l){let{email:g}=await Pe({type:"text",name:"email",message:"Enter your email:",format:h=>h.trim()});g&&xr(g);}}let s=R__default.resolve(t.cwd,i);await Ts(s);let n=v("Downloading template...").start();await $s({projectDir:s,template:o}),n.succeed("Template downloaded successfully.");let m=await A(s);if(await Os(s,m),!t.deps)v("Dependency installation skipped.").warn();else {let l=v("Installing dependencies...").start(),g=Date.now(),h=await Ns({projectDir:s,packageManager:m}),w=((Date.now()-g)/1e3).toFixed(1);h?l.succeed(`Dependencies installed successfully in ${w}s.`):(l.fail("Failed to install dependencies"),await T({type:"create",payload:{outcome:"dependency_installation_failed",packageManager:m}},{cwd:s}),process.exit(1));}let p=t.dbConnectionString,d;if(t.skipDb)v("Database setup skipped.").warn();else {let l=v("Setting up database...").start();d=await Hr({projectDir:s,projectName:i,dbConnectionString:p,dbHost:t.dbHost,dbPort:parseInt(t.dbPort,10),spinner:l}),d.success?(d.alreadyExists?l.warn(`Database ${f.info(d.dbName)} already exists. Skipping database creation.`):l.succeed(`Database ${f.info(d.dbName)} setup successfully.`),p=d.connectionString):(l.fail("Failed to setup database."),a.log(Dt()),await T({type:"create",payload:{outcome:"database_setup_failed"}},{cwd:s}),process.exit(1));}await Xe({projectDir:s,databaseUri:p}),await As(s),await T({type:"create",payload:{outcome:"created"}},{cwd:s});let c=((Date.now()-r)/1e3).toFixed(1);v(`Mercur project successfully created! (${c}s)`).succeed();let u=d?.success&&!d.alreadyExists;if(u&&a.log($t()),d?.success){v("Starting development server...").info();let l=d.inviteToken?`http://localhost:9000/dashboard/invite?token=${d.inviteToken}&first_run=true`:"http://localhost:9000/dashboard",w=spawn(m==="npm"?"npm":m,m==="npm"?["run","dev"]:["dev"],{cwd:s,stdio:"inherit",env:process.env}),_=()=>{a.break(),u&&a.log($t()),a.log(S.bgGreen(S.black(" Project stopped. To start again: "))),a.log(Zr(s,m)),a.log(Dt()),a.break();};process.on("SIGINT",()=>{}),w.on("close",()=>{_(),process.exit(0);}),Ps({resources:["http://localhost:9000/health"],timeout:6e4}).then(async()=>{a.break(),a.log(Fs()),u&&a.log($t());try{await Es(l),v("Admin panel opened in your browser.").succeed();}catch{v("Open this URL in your browser to create your admin account:").info(),a.log(f.info(l));}}).catch(()=>{v("To create your admin account, visit:").info(),a.log(f.info(l));});}else a.log(S.bgGreen(S.black(" Next Steps "))),a.log(Zr(s,m)),a.log(Dt()),a.break();}catch(r){a.break(),j(r);}finally{x();}});async function Ts(e){if(!await L.pathExists(e)){await L.mkdir(e);return}let i=(await L.readdir(e)).filter(o=>!o.startsWith("."));if(i.length>0){let{proceed:o}=await Pe({type:"confirm",name:"proceed",message:`Directory ${f.info(R__default.basename(e))} already exists and contains ${i.length} file(s). Continue and overwrite?`,initial:false});o||process.exit(0);}}async function $s({projectDir:e,template:t}){let r=`https://codeload.github.com/mercurjs/mercur/tar.gz/${Kr}`,i=Qr[t].path,o=`mercur-${Kr.replace(/^v/,"").replaceAll("/","-")}/templates/${i}/`;await pipeline(await Ds(r),x$1({cwd:e,filter:s=>s.includes(o),strip:2+i.split("/").length}));}async function Ds(e){let t=await fetch(e);if(!t.body)throw new Error(`Failed to download: ${e}`);return Readable.from(t.body)}async function Ns({projectDir:e,packageManager:t}){let r="npm",i=["install"];t==="yarn"?(r="yarn",i=[]):t==="pnpm"?(r="pnpm",i=["install"]):t==="bun"&&(r="bun",i=["install"]);try{return await execa(r,i,{cwd:R__default.resolve(e),stdin:"inherit",stdout:"inherit",stderr:"inherit",env:{...process.env,npm_config_yes:"true"}}),!0}catch(o){return a.error(`Error installing dependencies${o instanceof Error?`: ${o.message}`:""}.`),false}}function Zr(e,t){let r=R__default.relative(process.cwd(),e),i=o=>S.bold(o);return `
45
+ \u2192 Check your username, password, and that the server is accessible.`);}}return {client:null,dbConnectionString:null}}async function hs(e,t){return ((await e.query(`SELECT datname FROM pg_catalog.pg_database WHERE datname='${t}';`)).rowCount??0)>0}function Yr({user:e,password:t,host:r,port:i=qr,db:o}){let s=encodeURIComponent(t);return `postgresql://${e}:${s}@${r}:${i}/${o}`}async function vs({projectDir:e,spinner:t}){let r=R__default.join(e,Pt),i=await A(r),o=t||v("Running migrations...").start(),s=i==="yarn"?["yarn","run","build"]:i==="pnpm"?["pnpm","run","build"]:i==="bun"?["bun","run","build"]:["npm","run","build"],n=i==="pnpm"?["pnpm","dlx"]:i==="bun"?["bunx"]:["npx"];try{return o.text="Building project...",await execa(s[0],s.slice(1),{cwd:r}),o.text="Running database migrations...",await execa(n[0],[...n.slice(1),"medusa","db:migrate"],{cwd:r}),t||o.succeed("Migrations completed successfully."),!0}catch(p){return o.fail("Failed to run migrations."),a.error(`Error running migrations${p instanceof Error?`: ${p.message}`:""}.`),false}}async function ws({projectDir:e}){let t=R__default.join(e,Pt),r=await A(t),i=r==="pnpm"?["pnpm","dlx"]:r==="bun"?["bunx"]:["npx"];try{return (await execa(i[0],[...i.slice(1),"medusa","user","-e",gs,"--invite"],{cwd:t})).stdout.match(/Invite token: (?<token>.+)/)?.groups?.token||null}catch(o){return a.error(`Error creating admin invite${o instanceof Error?`: ${o.message}`:""}.`),null}}async function js({projectDir:e,spinner:t}){let r=R__default.join(e,Pt),i=await A(r),o=t||v("Seeding database...").start();try{let s=i==="yarn"?["yarn","seed"]:i==="pnpm"?["pnpm","run","seed"]:i==="bun"?["bun","run","seed"]:["npm","run","seed"];return o.text="Seeding database with demo data...",await execa(s[0],s.slice(1),{cwd:r}),t||o.succeed("Database seeded successfully."),!0}catch(s){return o.fail("Failed to seed database."),a.error(`Error seeding database${s instanceof Error?`: ${s.message}`:""}.`),false}}var Hr="main",Tt=20,Zr={basic:{path:"basic",description:"Full marketplace starter \u2014 sellers, products, orders, admin & vendor panels"},plugin:{path:"plugin",description:"MedusaJS plugin template \u2014 for building reusable marketplace extensions"}},Qr=new Command().name("create").description("create a new Mercur project").argument("[name]","the name of your project").option("-t, --template <template>","the template to use. e.g. basic, registry, or plugin").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).option("--no-deps","skip installing dependencies.").option("--skip-db","skip database configuration.",false).option("--skip-email","skip email prompt.",false).option("--db-connection-string <string>","PostgreSQL connection string.").option("--db-host <host>","PostgreSQL host.","localhost").option("--db-port <port>","PostgreSQL port.","5432").action(async(e,t)=>{try{let r=Date.now();Ls(),H();let i=e;if(!i){let{enteredName:c}=await Pe({type:"text",name:"enteredName",message:"What is your project named?",initial:t.template?`${t.template}-app`:"my-mercur",format:f=>f.trim(),validate:f=>Is(R__default.basename(R__default.resolve(f))).validForNewPackages?!0:"Invalid project name. Name should be lowercase, URL-friendly, and not start with a period or underscore."});c||process.exit(0),i=c;}let o=t.template;if(!o){let{selectedTemplate:c}=await Pe({type:"select",name:"selectedTemplate",message:`Which ${l.info("template")} would you like to use?`,choices:Object.entries(Zr).map(([f,y])=>({title:f,value:f,description:y.description}))});c||process.exit(0),o=c;}if(!t.skipEmail){let{wantsEmail:c}=await Pe({type:"confirm",name:"wantsEmail",message:"Mind sharing your email? We reach out for priority support, community events, and invite-only meetups. We never spam.",initial:!1});if(c){let{email:f}=await Pe({type:"text",name:"email",message:"Enter your email:",format:y=>y.trim()});f&&Rr(f);}}let s=R__default.resolve(t.cwd,i);await Ps(s);let n=v("Downloading template...").start();await Ts({projectDir:s,template:o}),n.succeed("Template downloaded successfully.");let p=await A(s);if(await Fs(s,p),!t.deps)v("Dependency installation skipped.").warn();else {let c=v("Installing dependencies...").start(),f=Date.now(),y=await Ds({projectDir:s,packageManager:p}),h=((Date.now()-f)/1e3).toFixed(1);y?c.succeed(`Dependencies installed successfully in ${h}s.`):(c.fail("Failed to install dependencies"),await P({type:"create",payload:{outcome:"dependency_installation_failed",packageManager:p}},{cwd:s}),process.exit(1));}let m=t.dbConnectionString,d;if(t.skipDb)v("Database setup skipped.").warn();else {let c=v("Setting up database...").start();d=await Jr({projectDir:s,projectName:i,dbConnectionString:m,dbHost:t.dbHost,dbPort:parseInt(t.dbPort,10),spinner:c}),d.success?(d.alreadyExists?c.warn(`Database ${l.info(d.dbName)} already exists. Skipping database creation.`):c.succeed(`Database ${l.info(d.dbName)} setup successfully.`),m=d.connectionString):(c.fail("Failed to setup database."),a.log($t()),await P({type:"create",payload:{outcome:"database_setup_failed"}},{cwd:s}),process.exit(1));}await Xe({projectDir:s,databaseUri:m}),await Os(s),await P({type:"create",payload:{outcome:"created"}},{cwd:s});let u=((Date.now()-r)/1e3).toFixed(1);if(v(`Mercur project successfully created! (${u}s)`).succeed(),d?.success){v("Starting development server...").info();let c=d.inviteToken?`http://localhost:9000/dashboard/invite?token=${d.inviteToken}&first_run=true`:"http://localhost:9000/dashboard",h=spawn(p==="npm"?"npm":p,p==="npm"?["run","dev"]:["dev"],{cwd:s,stdio:"inherit",env:process.env}),w=()=>{a.break(),a.log(N.bgGreen(N.black(" Project stopped. To start again: "))),a.log(Kr(s,p)),a.log($t()),a.break();};process.on("SIGINT",()=>{}),h.on("close",()=>{w(),process.exit(0);}),Cs({resources:["http://localhost:9000/health"],timeout:6e4}).then(async()=>{a.break(),a.log(Ns());try{await ks(c),v("Admin panel opened in your browser.").succeed();}catch{v("Open this URL in your browser to create your admin account:").info(),a.log(l.info(c));}}).catch(()=>{v("To create your admin account, visit:").info(),a.log(l.info(c));});}else a.log(N.bgGreen(N.black(" Next Steps "))),a.log(Kr(s,p)),a.log($t()),a.break();}catch(r){a.break(),j(r);}finally{x();}});async function Ps(e){if(!await L.pathExists(e)){await L.mkdir(e);return}let i=(await L.readdir(e)).filter(o=>!o.startsWith("."));if(i.length>0){let{proceed:o}=await Pe({type:"confirm",name:"proceed",message:`Directory ${l.info(R__default.basename(e))} already exists and contains ${i.length} file(s). Continue and overwrite?`,initial:false});o||process.exit(0);}}async function Ts({projectDir:e,template:t}){let r=`https://codeload.github.com/mercurjs/mercur/tar.gz/${Hr}`,i=Zr[t].path,o=`mercur-${Hr.replace(/^v/,"").replaceAll("/","-")}/templates/${i}/`;await pipeline(await $s(r),x$1({cwd:e,filter:s=>s.includes(o),strip:2+i.split("/").length}));}async function $s(e){let t=await fetch(e);if(!t.body)throw new Error(`Failed to download: ${e}`);return Readable.from(t.body)}async function Ds({projectDir:e,packageManager:t}){let r="npm",i=["install"];t==="yarn"?(r="yarn",i=[]):t==="pnpm"?(r="pnpm",i=["install"]):t==="bun"&&(r="bun",i=["install"]);try{return await execa(r,i,{cwd:R__default.resolve(e),stdin:"inherit",stdout:"inherit",stderr:"inherit",env:{...process.env,npm_config_yes:"true"}}),!0}catch(o){return a.error(`Error installing dependencies${o instanceof Error?`: ${o.message}`:""}.`),false}}function Kr(e,t){let r=R__default.relative(process.cwd(),e),i=o=>N.bold(o);return `
46
46
  ${i("Launch Application:")}
47
47
 
48
48
  - cd ./${r}
@@ -50,20 +50,14 @@ ${i("Launch Application:")}
50
50
 
51
51
  ${i("Documentation:")}
52
52
 
53
- - ${Nt("Getting Started","https://docs.mercurjs.com/v2/welcome")}
54
- `}function $t(){return `
55
- ${S.bgCyan(S.black(" Demo Seller Credentials "))}
53
+ - ${Dt("Getting Started","https://docs.mercurjs.com/v2/welcome")}
54
+ `}function Ns(){return `
55
+ ${(t=>N.bold(t))("Your marketplace is running:")}
56
56
 
57
- Email: ${f.info("seller@medusa-test.com")}
58
- Password: ${f.info("supersecret")}
59
- Login at: ${f.info("http://localhost:9000/seller")}
60
- `}function Fs(){return `
61
- ${(t=>S.bold(t))("Your marketplace is running:")}
62
-
63
- API: ${f.info("http://localhost:9000")}
64
- Admin Panel: ${f.info("http://localhost:9000/dashboard")}
65
- Vendor Panel: ${f.info("http://localhost:9000/seller")}
66
- `}function Dt(){return `${S.bgCyan(S.black(" Have feedback? "))} Visit us on ${Nt("GitHub","https://github.com/mercurjs/mercur")}.
67
- ${S.bgMagenta(S.black(" Join the community! "))} Chat with us on ${Nt("Discord","https://discord.gg/hnZBzc4NJU")}.`}function Nt(e,t){return Is(e,t,{fallback:(r,i)=>`${r}: ${S.cyan().underline(i)}`})}async function Os(e,t){let r=R__default.join(e,"package.json"),i=await L.readJSON(r),{stdout:o}=await execa(t,["--version"]);i.packageManager=`${t}@${o.trim()}`,await L.writeJSON(r,i,{spaces:2});}async function As(e){try{await execa("git",["init"],{cwd:e}),a.info("Initialized a git repository.");}catch{throw new Error("Failed to initialize git repository.")}}function Ls(){let[e]=process.versions.node.split(".").map(Number);return e}function Ms(){let e=Ls();if(e<Tt)throw new Error(`Mercur requires at least v${Tt} of Node.js. You're using v${e}. Please install at least v${Tt} and try again: https://nodejs.org/en/download`)}async function ei(e,t){let{config:r}=t||{};if(q(e)){let[n]=await te([e]);try{return K.parse(n)}catch(m){throw new P(e,m)}}if(!e.startsWith("@"))throw new Ue(e);let i=e;i.endsWith("/registry")||(i=`${i}/registry`);let o=be(i,me(r));if(!o?.url)throw new ae(i);let[s]=await te([o.url]);try{return K.parse(s)}catch(n){throw new P(i,n)}}async function tt(e,t){let{config:r}=t||{};return x(),Ye(e,me(r))}var Vs=z.object({blocks:z.array(z.string()).optional(),cwd:z.string()}),ti=new Command().name("diff").description("check for updates against the registry").argument("[blocks...]","the block names to diff").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).action(async(e,t)=>{try{let r=Vs.parse({blocks:e,cwd:R__default.resolve(t.cwd),type:t.type}),i=await b(r.cwd);i||(i=G({resolvedPaths:{cwd:r.cwd}})),r.blocks?.length||(a.error("Please specify at least one block to diff."),process.exit(1));let o=await tt(r.blocks,{config:i}),s=r.blocks.filter(m=>!o.some(p=>p.name===m));s.length>0&&(a.error(`Blocks ${s.join(", ")} not found in registry.`),process.exit(1));let n=await E(i.resolvedPaths.cwd);for(let m of o)for(let p of m.files){let d=qe(p,i,{isSrcDir:n?.isSrcDir??!1,path:r.cwd});if(!existsSync(d)){a.info(`File ${d} does not exist locally.`);continue}let c=await promises.readFile(d,"utf-8"),u=await Je({filename:p.path,raw:p.content,config:i,isRemote:!1}),l=diffLines(c,u);l.length>1&&(a.info(`
68
- File: ${f.info(p.path)}`),Ys(l));}}catch(r){j(r);}finally{x();}});function Ys(e){for(let t of e)t&&(t.added?process.stdout.write(f.success(t.value)):t.removed?process.stdout.write(f.error(t.value)):process.stdout.write(t.value));}var ri=new Command().name("info").description("get information about your project").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).action(async e=>{try{a.info("> project info"),console.log(await E(e.cwd)),a.break(),a.info("> blocks.json"),console.log(await b(e.cwd));}catch(t){j(t);}});var Ks=z.object({cwd:z.string(),query:z.string().optional(),registry:z.string().optional()}),ii=new Command().name("search").description("search blocks from registries").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).option("-q, --query <query>","query string").option("-r, --registry <registry>","the registry to search from (default: @mercurjs)","@mercurjs").action(async e=>{try{let t=Ks.parse({cwd:R__default.resolve(e.cwd),query:e.query,type:e.type,registry:e.registry}),r=await b(t.cwd);r||(r=G({resolvedPaths:{cwd:t.cwd}}));let o=(await ei(t.registry??"@mercurjs",{config:r})).items;if(t.query){let s=t.query.toLowerCase();o=o.filter(n=>n.name.toLowerCase().includes(s)||n.description?.toLowerCase().includes(s));}console.log(JSON.stringify(o,null,2)),process.exit(0);}catch(t){j(t);}finally{x();}});var oi=new Command().name("telemetry").description("manage the collection of anonymous usage data").option("--enable","enable telemetry").option("--disable","disable telemetry").action(async e=>{try{if(e.enable&&e.disable){a.error("Cannot use --enable and --disable together.");return}if(!e.enable&&!e.disable){let r=M.get("telemetry_enabled"),i=process.env.MERCUR_DISABLE_TELEMETRY==="true",o=r&&!i,s=o?"enabled":"disabled";a.log(`Telemetry is currently ${s}.`),i&&r&&a.log("(Disabled via MERCUR_DISABLE_TELEMETRY environment variable)"),a.log(o?'Run "mercurjs telemetry --disable" to opt out.':'Run "mercurjs telemetry --enable" to opt in.'),a.log(`Learn more: ${He}`);return}let t=!!e.enable;_r(t),t?a.success(`Telemetry enabled. Learn more: ${He}`):a.success("Telemetry disabled. No data will be collected.");}catch(t){j(t);}});var en=z.object({cwd:z.string()}),ni=new Command().name("view").description("view block details from the registry").argument("<blocks...>","the block names to view").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).action(async(e,t)=>{try{let r=en.parse({cwd:R__default.resolve(t.cwd),type:t.type}),i=await b(r.cwd);i||(i=G({resolvedPaths:{cwd:r.cwd}}));let o=await tt(e,{config:i});console.log(JSON.stringify(o,null,2)),process.exit(0);}catch(r){j(r);}finally{x();}});async function di(e){let t=R__default.resolve(e.root,"src/vendor");if(!Ot.existsSync(t))return true;let r=await import('vite'),i=(await import('@vitejs/plugin-react')).default,o=JSON.parse(readFileSync(R__default.resolve(e.root,"package.json"),"utf-8")),s=new Set([...Object.keys(o.dependencies||{}),...Object.keys(o.peerDependencies||{}),...Object.keys(o.devDependencies||{}),"react","react/jsx-runtime","react-router-dom","react-i18next","@medusajs/js-sdk","@medusajs/admin-sdk","@mercurjs/client","@tanstack/react-query"]),n=R__default.resolve(e.outDir,"src/vendor"),m=R__default.resolve(e.root,"src/vendor/__vendor-extensions__.js");try{let p=generatePluginEntryModule(t);await writeFile(m,p,"utf-8");let d=process.env.NODE_ENV;process.env.NODE_ENV="production",await r.build({build:{lib:{entry:m,formats:["es","cjs"],fileName:"index"},emptyOutDir:!1,minify:!1,outDir:n,rollupOptions:{external:(l,g)=>{let h=l.split("/"),w=h[0]?.startsWith("@")?`${h[0]}/${h[1]}`:h[0],_=[...builtinModules,...builtinModules.map(F=>`node:${F}`)];return g?!!(w&&s.has(w)):!!(w&&s.has(w)||w&&_.includes(w))},output:{preserveModules:!1,interop:"auto",chunkFileNames:()=>"_chunks/[name]-[hash]"}}},plugins:[i()],logLevel:"silent",clearScreen:!1}),process.env.NODE_ENV=d;let c=R__default.join(n,"index.es.js"),u=R__default.join(n,"index.mjs");return Ot.existsSync(c)&&Ot.renameSync(c,u),!0}catch(p){return console.error(p),false}finally{try{await rm(m,{force:!0});}catch{}}}var pi=new Command().name("plugin:build").description("build a Medusa plugin").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).action(async e=>{try{let t=R__default.resolve(e.cwd),r=v("Building plugin..."),{Compiler:i}=await import('@medusajs/framework/build-tools'),o=new i(t,a),s=await o.loadTSConfigFile();s||(r.fail("Unable to compile plugin \u2014 tsconfig not found."),process.exit(1));let n=await import('@medusajs/admin-bundler'),m=R__default.resolve(t,".medusa/server");(await Promise.all([o.buildPluginBackend(s),o.buildPluginAdminExtensions(n),di({root:t,outDir:m})])).every(d=>d===!0)?r.succeed("Plugin built successfully."):(r.fail("Plugin build failed."),process.exit(1));}catch(t){a.break(),j(t);}});process.on("SIGINT",()=>process.exit(0));process.on("SIGTERM",()=>process.exit(0));async function dn(){let e=new Command().name("@mercurjs/cli").description("Add blocks from registries to your project").version(Lt.version,"-v, --version","display the version number");e.addCommand(Sr).addCommand(Cr).addCommand(Br).addCommand(Vr).addCommand(Xr).addCommand(ti).addCommand(ri).addCommand(Er).addCommand(ii).addCommand(oi).addCommand(ni).addCommand(pi),e.parse();}dn();export{gi as registryConfigItemSchema,Wt as registryConfigSchema,ln as registryIndexSchema,Ut as registryItemFileSchema,$ as registryItemSchema,fi as registryItemTypeSchema,Bt as registryResolvedItemsTreeSchema,K as registrySchema};//# sourceMappingURL=index.js.map
57
+ API: ${l.info("http://localhost:9000")}
58
+ Admin Panel: ${l.info("http://localhost:9000/dashboard")}
59
+ Vendor Panel: ${l.info("http://localhost:9000/seller")}
60
+ `}function $t(){return `${N.bgCyan(N.black(" Have feedback? "))} Visit us on ${Dt("GitHub","https://github.com/mercurjs/mercur")}.
61
+ ${N.bgMagenta(N.black(" Join the community! "))} Chat with us on ${Dt("Discord","https://discord.gg/hnZBzc4NJU")}.`}function Dt(e,t){return Ss(e,t,{fallback:(r,i)=>`${r}: ${N.cyan().underline(i)}`})}async function Fs(e,t){let r=R__default.join(e,"package.json"),i=await L.readJSON(r),{stdout:o}=await execa(t,["--version"]);i.packageManager=`${t}@${o.trim()}`,await L.writeJSON(r,i,{spaces:2});}async function Os(e){try{await execa("git",["init"],{cwd:e}),a.info("Initialized a git repository.");}catch{throw new Error("Failed to initialize git repository.")}}function As(){let[e]=process.versions.node.split(".").map(Number);return e}function Ls(){let e=As();if(e<Tt)throw new Error(`Mercur requires at least v${Tt} of Node.js. You're using v${e}. Please install at least v${Tt} and try again: https://nodejs.org/en/download`)}async function Xr(e,t){let{config:r}=t||{};if(q(e)){let[n]=await te([e]);try{return K.parse(n)}catch(p){throw new C(e,p)}}if(!e.startsWith("@"))throw new Ue(e);let i=e;i.endsWith("/registry")||(i=`${i}/registry`);let o=be(i,pe(r));if(!o?.url)throw new ae(i);let[s]=await te([o.url]);try{return K.parse(s)}catch(n){throw new C(i,n)}}async function tt(e,t){let{config:r}=t||{};return x(),Ye(e,pe(r))}var Gs=z.object({blocks:z.array(z.string()).optional(),cwd:z.string()}),ei=new Command().name("diff").description("check for updates against the registry").argument("[blocks...]","the block names to diff").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).action(async(e,t)=>{try{let r=Gs.parse({blocks:e,cwd:R__default.resolve(t.cwd),type:t.type}),i=await b(r.cwd);i||(i=G({resolvedPaths:{cwd:r.cwd}})),r.blocks?.length||(a.error("Please specify at least one block to diff."),process.exit(1));let o=await tt(r.blocks,{config:i}),s=r.blocks.filter(p=>!o.some(m=>m.name===p));s.length>0&&(a.error(`Blocks ${s.join(", ")} not found in registry.`),process.exit(1));let n=await k(i.resolvedPaths.cwd);for(let p of o)for(let m of p.files){let d=qe(m,i,{isSrcDir:n?.isSrcDir??!1,path:r.cwd});if(!existsSync(d)){a.info(`File ${d} does not exist locally.`);continue}let u=await promises.readFile(d,"utf-8"),c=await Je({filename:m.path,raw:m.content,config:i,isRemote:!1}),f=diffLines(u,c);f.length>1&&(a.info(`
62
+ File: ${l.info(m.path)}`),Vs(f));}}catch(r){j(r);}finally{x();}});function Vs(e){for(let t of e)t&&(t.added?process.stdout.write(l.success(t.value)):t.removed?process.stdout.write(l.error(t.value)):process.stdout.write(t.value));}var ti=new Command().name("info").description("get information about your project").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).action(async e=>{try{a.info("> project info"),console.log(await k(e.cwd)),a.break(),a.info("> blocks.json"),console.log(await b(e.cwd));}catch(t){j(t);}});var Hs=z.object({cwd:z.string(),query:z.string().optional(),registry:z.string().optional()}),ri=new Command().name("search").description("search blocks from registries").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).option("-q, --query <query>","query string").option("-r, --registry <registry>","the registry to search from (default: @mercurjs)","@mercurjs").action(async e=>{try{let t=Hs.parse({cwd:R__default.resolve(e.cwd),query:e.query,type:e.type,registry:e.registry}),r=await b(t.cwd);r||(r=G({resolvedPaths:{cwd:t.cwd}}));let o=(await Xr(t.registry??"@mercurjs",{config:r})).items;if(t.query){let s=t.query.toLowerCase();o=o.filter(n=>n.name.toLowerCase().includes(s)||n.description?.toLowerCase().includes(s));}console.log(JSON.stringify(o,null,2)),process.exit(0);}catch(t){j(t);}finally{x();}});var ii=new Command().name("telemetry").description("manage the collection of anonymous usage data").option("--enable","enable telemetry").option("--disable","disable telemetry").action(async e=>{try{if(e.enable&&e.disable){a.error("Cannot use --enable and --disable together.");return}if(!e.enable&&!e.disable){let r=M.get("telemetry_enabled"),i=process.env.MERCUR_DISABLE_TELEMETRY==="true",o=r&&!i,s=o?"enabled":"disabled";a.log(`Telemetry is currently ${s}.`),i&&r&&a.log("(Disabled via MERCUR_DISABLE_TELEMETRY environment variable)"),a.log(o?'Run "mercurjs telemetry --disable" to opt out.':'Run "mercurjs telemetry --enable" to opt in.'),a.log(`Learn more: ${He}`);return}let t=!!e.enable;xr(t),t?a.success(`Telemetry enabled. Learn more: ${He}`):a.success("Telemetry disabled. No data will be collected.");}catch(t){j(t);}});var Xs=z.object({cwd:z.string()}),si=new Command().name("view").description("view block details from the registry").argument("<blocks...>","the block names to view").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).action(async(e,t)=>{try{let r=Xs.parse({cwd:R__default.resolve(t.cwd),type:t.type}),i=await b(r.cwd);i||(i=G({resolvedPaths:{cwd:r.cwd}}));let o=await tt(e,{config:i});console.log(JSON.stringify(o,null,2)),process.exit(0);}catch(r){j(r);}finally{x();}});async function ai(e){let t=R__default.resolve(e.root,"src/vendor");if(!Ft.existsSync(t))return true;let r=await import('vite'),i=(await import('@vitejs/plugin-react')).default,o=JSON.parse(readFileSync(R__default.resolve(e.root,"package.json"),"utf-8")),s=new Set([...Object.keys(o.dependencies||{}),...Object.keys(o.peerDependencies||{}),...Object.keys(o.devDependencies||{}),"react","react/jsx-runtime","react-router-dom","react-i18next","@medusajs/js-sdk","@medusajs/admin-sdk","@mercurjs/client","@tanstack/react-query"]),n=R__default.resolve(e.outDir,"src/vendor"),p=R__default.resolve(e.root,"src/vendor/__vendor-extensions__.js");try{let m=generatePluginEntryModule(t);await writeFile(p,m,"utf-8");let d=process.env.NODE_ENV;process.env.NODE_ENV="production",await r.build({build:{lib:{entry:p,formats:["es","cjs"],fileName:"index"},emptyOutDir:!1,minify:!1,outDir:n,rollupOptions:{external:(f,y)=>{let h=f.split("/"),w=h[0]?.startsWith("@")?`${h[0]}/${h[1]}`:h[0],E=[...builtinModules,...builtinModules.map(F=>`node:${F}`)];return y?!!(w&&s.has(w)):!!(w&&s.has(w)||w&&E.includes(w))},output:{preserveModules:!1,interop:"auto",chunkFileNames:()=>"_chunks/[name]-[hash]"}}},plugins:[i()],logLevel:"silent",clearScreen:!1}),process.env.NODE_ENV=d;let u=R__default.join(n,"index.es.js"),c=R__default.join(n,"index.mjs");return Ft.existsSync(u)&&Ft.renameSync(u,c),!0}catch(m){return console.error(m),false}finally{try{await rm(p,{force:!0});}catch{}}}var pi=new Command().name("plugin:build").description("build a Medusa plugin").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).action(async e=>{try{let t=R__default.resolve(e.cwd),r=v("Building plugin..."),{Compiler:i}=await import('@medusajs/framework/build-tools'),o=new i(t,a),s=await o.loadTSConfigFile();s||(r.fail("Unable to compile plugin \u2014 tsconfig not found."),process.exit(1));let n=await import('@medusajs/admin-bundler'),p=R__default.resolve(t,".medusa/server");(await Promise.all([o.buildPluginBackend(s),o.buildPluginAdminExtensions(n),ai({root:t,outDir:p})])).every(d=>d===!0)?r.succeed("Plugin built successfully."):(r.fail("Plugin build failed."),process.exit(1));}catch(t){a.break(),j(t);}});process.on("SIGINT",()=>process.exit(0));process.on("SIGTERM",()=>process.exit(0));async function an(){let e=new Command().name("@mercurjs/cli").description("Add blocks from registries to your project").version(At.version,"-v, --version","display the version number");e.addCommand(Er).addCommand(Ir).addCommand(zr).addCommand(Gr).addCommand(Qr).addCommand(ei).addCommand(ti).addCommand(kr).addCommand(ri).addCommand(ii).addCommand(si).addCommand(pi),e.parse();}an();export{fi as registryConfigItemSchema,Bt as registryConfigSchema,un as registryIndexSchema,Mt as registryItemFileSchema,T as registryItemSchema,li as registryItemTypeSchema,zt as registryResolvedItemsTreeSchema,K as registrySchema};//# sourceMappingURL=index.js.map
69
63
  //# sourceMappingURL=index.js.map