@mercurjs/cli 2.0.0-canary.96 → 2.0.0-canary.99

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,44 +1,46 @@
1
1
  #!/usr/bin/env node
2
- import {Command}from'commander';import*as R from'path';import R__default,{join,basename}from'path';import et from'prompts';import {z as z$1}from'zod';import $t,{promises,existsSync,readFileSync,statSync}from'fs';import {cosmiconfig}from'cosmiconfig';import {loadConfig,createMatchPath}from'tsconfig-paths';import A from'fs-extra';import'typescript';import nt from'fast-glob';import {createHash}from'crypto';import ir from'deepmerge';import*as L from'fs/promises';import L__default,{writeFile,rm}from'fs/promises';import vo,{tmpdir,homedir}from'os';import {Project,ScriptKind}from'ts-morph';import le from'kleur';import Yi from'ora';import {execa}from'execa';import {detect}from'@antfu/ni';import {diffLines}from'diff';import {exec,execSync}from'child_process';import {Readable}from'stream';import {pipeline}from'stream/promises';import Et from'pg';import gs from'open';import {x as x$1}from'tar';import hs from'terminal-link';import vs from'validate-npm-package-name';import ws from'wait-on';import {builtinModules}from'module';import {generatePluginEntryModule}from'@mercurjs/dashboard-sdk';var Ft={version:"2.0.0-canary.96"};var Ot="MISSING_DIR_OR_EMPTY_PROJECT",S="MISSING_CONFIG",z="BUILD_MISSING_REGISTRY_FILE";var ai=z$1.enum(["registry:api","registry:vendor","registry:admin"]),Nt=z$1.object({path:z$1.string(),content:z$1.string().optional(),type:ai,target:z$1.string().optional()}),At=z$1.object({$schema:z$1.string().optional(),name:z$1.string(),title:z$1.string().optional(),author:z$1.string().min(2).optional(),description:z$1.string().optional(),dependencies:z$1.array(z$1.string()).optional(),devDependencies:z$1.array(z$1.string()).optional(),registryDependencies:z$1.array(z$1.string()).optional(),meta:z$1.record(z$1.string(),z$1.any()).optional(),docs:z$1.string().optional(),categories:z$1.array(z$1.string()).optional()}),T=At.extend({files:z$1.array(Nt)}),H=z$1.object({name:z$1.string(),homepage:z$1.string(),items:z$1.array(T)}),tn=z$1.array(At),Lt=T.pick({dependencies:true,devDependencies:true,files:true,docs:true}),di=z$1.union([z$1.string(),z$1.object({url:z$1.string(),params:z$1.record(z$1.string(),z$1.string()).optional(),headers:z$1.record(z$1.string(),z$1.string()).optional()})]),Mt=z$1.record(z$1.string().refine(e=>e.startsWith("@"),{message:"Registry names must start with @ (e.g., @mercurjs)"}),di);var De="https://registry.mercurjs.com/registry.json",zt="https://registry.mercurjs.com/registry-item.json",ge=process.env.REGISTRY_URL??"https://raw.githubusercontent.com/mercurjs/mercur/new/packages/registry/r",I={"@mercurjs":`${ge}/{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);}},ie=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";}},Fe=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";}},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:$.FORBIDDEN,statusCode:403,cause:i,context:{url:r},suggestion:"Check your authentication credentials and environment variables."});this.url=r;this.name="RegistryForbiddenError";}},Ne=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";}},Y=class extends _{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 Qe from'prompts';import {z as z$1}from'zod';import Pt,{promises,existsSync,readFileSync,statSync}from'fs';import {cosmiconfig}from'cosmiconfig';import {loadConfig,createMatchPath}from'tsconfig-paths';import A from'fs-extra';import'typescript';import ot from'fast-glob';import {createHash}from'crypto';import tr from'deepmerge';import*as M from'fs/promises';import M__default,{writeFile,rm}from'fs/promises';import vo,{tmpdir,homedir}from'os';import {Project,ScriptKind}from'ts-morph';import H from'kleur';import Yi 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 kt from'pg';import ys from'open';import {x as x$1}from'tar';import vs from'terminal-link';import ws from'validate-npm-package-name';import js from'wait-on';import {builtinModules}from'module';import {generatePluginEntryModule}from'@mercurjs/dashboard-sdk';var $t={version:"2.0.0-canary.99"};var Dt="MISSING_DIR_OR_EMPTY_PROJECT",E="MISSING_CONFIG",z="BUILD_MISSING_REGISTRY_FILE";var ai=z$1.enum(["registry:api","registry:vendor","registry:admin"]),Ft=z$1.object({path:z$1.string(),content:z$1.string().optional(),type:ai,target:z$1.string().optional()}),Nt=z$1.object({$schema:z$1.string().optional(),name:z$1.string(),title:z$1.string().optional(),author:z$1.string().min(2).optional(),description:z$1.string().optional(),dependencies:z$1.array(z$1.string()).optional(),devDependencies:z$1.array(z$1.string()).optional(),registryDependencies:z$1.array(z$1.string()).optional(),meta:z$1.record(z$1.string(),z$1.any()).optional(),docs:z$1.string().optional(),categories:z$1.array(z$1.string()).optional()}),T=Nt.extend({files:z$1.array(Ft)}),Y=z$1.object({name:z$1.string(),homepage:z$1.string(),items:z$1.array(T)}),tn=z$1.array(Nt),Ot=T.pick({dependencies:true,devDependencies:true,files:true,docs:true}),di=z$1.union([z$1.string(),z$1.object({url:z$1.string(),params:z$1.record(z$1.string(),z$1.string()).optional(),headers:z$1.record(z$1.string(),z$1.string()).optional()})]),At=z$1.record(z$1.string().refine(e=>e.startsWith("@"),{message:"Registry names must start with @ (e.g., @mercurjs)"}),di);var $e="https://registry.mercurjs.com/registry.json",Mt="https://registry.mercurjs.com/registry-item.json",ge=process.env.REGISTRY_URL??"https://raw.githubusercontent.com/mercurjs/mercur/new/packages/registry/r",I={"@mercurjs":`${ge}/{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"},k=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);}},oe=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:$.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";}},De=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:$.UNAUTHORIZED,statusCode:401,cause:i,context:{url:r},suggestion:"Check your authentication credentials and environment variables."});this.url=r;this.name="RegistryUnauthorizedError";}},Fe=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:$.FORBIDDEN,statusCode:403,cause:i,context:{url:r},suggestion:"Check your authentication credentials and environment variables."});this.url=r;this.name="RegistryForbiddenError";}},Ne=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:$.FETCH_ERROR,statusCode:i,cause:s,context:{url:r,responseBody:o},suggestion:p});this.url=r;this.responseBody=o;this.name="RegistryFetchError";}},J=class extends k{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:$.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";}},J=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$1.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";}},K=class extends k{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 k{constructor(r,i){let o=`Failed to parse registry item: ${r}`;i instanceof z$1.ZodError&&(o=`Failed to parse registry item: ${r}
8
8
  ${i.issues.map(s=>` - ${s.path.join(".")}: ${s.message}`).join(`
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},Ae=class extends _{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},Oe=class extends k{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:$.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";}},Le=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 Me=class extends _{constructor(r,i){let o=`Invalid blocks.json configuration in ${r}.`;i instanceof z$1.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";}},Ae=class extends k{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 Me=class extends k{constructor(r,i){let o=`Invalid blocks.json configuration in ${r}.`;i instanceof z$1.ZodError&&(o=`Invalid blocks.json configuration in ${r}:
13
13
  ${i.issues.map(s=>` - ${s.path.join(".")}: ${s.message}`).join(`
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 U=z$1.object({$schema:z$1.string().optional(),aliases:z$1.object({api:z$1.string(),vendor:z$1.string(),admin:z$1.string()}),registries:Mt.optional()}).strict(),Bt=U.extend({resolvedPaths:z$1.object({cwd:z$1.string(),api:z$1.string(),vendor:z$1.string(),admin:z$1.string()})});async function oe(e,t){return createMatchPath(t.absoluteBaseUrl,t.paths)(e,void 0,()=>true,[".ts",".tsx"])}var ui="packages/api/src",li="apps/vendor/src",fi="apps/admin/src",gi=cosmiconfig("blocks",{searchPlaces:["blocks.json"]});async function b(e){let t=await yi(e);return t?await st(e,t):null}async function st(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 Bt.parse({...t,resolvedPaths:{cwd:e,api:await oe(t.aliases.api,r),vendor:await oe(t.aliases.vendor,r),admin:await oe(t.aliases.admin,r)}})}async function yi(e){try{let t=await gi.search(e);if(!t)return null;let r=U.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 Me(e,t)}}function B(e){let t={resolvedPaths:{cwd:process.cwd(),api:"",vendor:"",admin:""},aliases:{api:ui,vendor:li,admin:fi},registries:{...I}};return e?{...t,...e,resolvedPaths:{...t.resolvedPaths,...e.resolvedPaths||{}},aliases:{...t.aliases,...e.aliases||{}},registries:{...t.registries,...e.registries||{}}}:t}var at=["**/node_modules/**","public","dist"];async function k(e){let[t,r,i,o,s,n]=await Promise.all([A.pathExists(R__default.resolve(e,"src")),vi(e),ye(e),wi(e),ji(e),bi(e)]);return {isSrcDir:t,aliasPrefix:r,packageJson:i,medusaConfigFile:o?.file??null,medusaVersion:s,mercurVersion:n}}async function vi(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 ye(e="",t=true){let r=R__default.join(e,"package.json");return A.readJSONSync(r,{throws:t})}async function wi(e){let t=await nt.glob("medusa-config.*",{cwd:e,deep:3,ignore:at});if(!t.length)return null;let r=t[0];return {file:r,dir:R__default.resolve(e,R__default.dirname(r))}}async function ji(e){let r=ye(e,false)?.dependencies?.["@medusajs/framework"];if(r)return r;let i=await nt.glob("**/package.json",{cwd:e,deep:3,ignore:at});for(let o of i){let n=ye(R__default.join(e,R__default.dirname(o)),false)?.dependencies?.["@medusajs/framework"];if(n)return n}return null}async function bi(e){let r=ye(e,false)?.dependencies?.["@mercurjs/cli"];if(r)return r;let i=await nt.glob("**/package.json",{cwd:e,deep:3,ignore:at});for(let o of i){let n=ye(R__default.join(e,R__default.dirname(o)),false)?.dependencies?.["@mercurjs/cli"];if(n)return n}return null}z$1.object({cwd:z$1.string(),blocks:z$1.array(z$1.string()).optional(),yes:z$1.boolean(),overwrite:z$1.boolean(),silent:z$1.boolean()});async function Gt(e){let t={},r=R__default.resolve(e.cwd);if(!existsSync(r))return t[Ot]=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 ze={headers:{}};function dt(e){ze.headers={...ze.headers,...e};}function Vt(e){return ze.headers[e]||{}}function x(){ze.headers={};}function se(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 he(e){return e.replace(/\${(\w+)}/g,(t,r)=>process.env[r]||"")}function ve(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 _i=/^(@[a-zA-Z0-9](?:[a-zA-Z0-9-_]*[a-zA-Z0-9])?)\/(.+)$/;function ne(e){if(!e.startsWith("@"))return {registry:null,item:e};let t=e.match(_i);return t?{registry:t[1],item:t[2]}:{registry:null,item:e}}var qt=[".tsx",".ts"],Ht=["lib/utils.ts"],Ci=[/^(react|react-dom)(\/.*)?$/,/^(node|jsr|npm):.*$/],Pi=new Project({compilerOptions:{}});function Ti(e){if(Ci.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 pt(e,t,r,i=new Set){let o=R.resolve(t.resolvedPaths.cwd,e),s=R.relative(t.resolvedPaths.cwd,o);if(Ht.includes(s))return {dependencies:[],files:[]};let n=R.extname(e);if(!qt.includes(n))return {dependencies:[],files:[]};if(i.has(s))return {dependencies:[],files:[]};i.add(s);try{if(!(await L.stat(o)).isFile())return {dependencies:[],files:[]}}catch{return {dependencies:[],files:[]}}let p=await L.readFile(o,"utf-8"),m=await $i(R.basename(o)),a=Pi.createSourceFile(m,p,{scriptKind:ScriptKind.TSX}),c=await loadConfig(t.resolvedPaths.cwd);if(c.resultType==="failed")return {dependencies:[],files:[]};let u=[],f=new Set,y=Yt(e),v={path:s,type:y,target:"",content:""};u.push(v);let j=a.getImportDeclarations();for(let F of j){let M=F.getModuleSpecifierValue(),Pe=M.startsWith(".");if(!(r.aliasPrefix&&M.startsWith(`${r.aliasPrefix}/`))&&!Pe){let O=Ti(M);O&&f.add(O);continue}let te=await oe(M,c);if(Pe&&(te=R.resolve(R.dirname(o),M)),!te)continue;if(!R.extname(te))for(let O of qt){let Dt=`${te}${O}`;try{await L.access(Dt),te=Dt;break}catch{continue}}let Te=R.relative(t.resolvedPaths.cwd,te);if(i.has(Te)||Ht.includes(Te))continue;let oi=Yt(M),si={path:Te,type:oi,target:"",content:""};u.push(si);let $e=await pt(Te,t,r,i);if($e.files)for(let O of $e.files)i.has(O.path)||(i.add(O.path),u.push(O));$e.dependencies&&$e.dependencies.forEach(O=>f.add(O));}let E=Array.from(new Map(u.map(F=>[F.path,F])).values());return {dependencies:Array.from(f),files:E}}async function $i(e){let t=await L.mkdtemp(R.join(tmpdir(),"mercur-"));return R.join(t,e)}function Yt(e){return e.includes("/vendor")?"registry:vendor":e.includes("/admin")?"registry:admin":"registry:api"}function V(e){try{return new URL(e),!0}catch{return false}}function Z(e){return e.endsWith(".json")&&!V(e)}function Di(e){let t=new Set;if(typeof e=="string")for(let r of ve(e))t.add(r);else {for(let r of ve(e.url))t.add(r);if(e.params)for(let r of Object.values(e.params))for(let i of ve(r))t.add(i);if(e.headers)for(let r of Object.values(e.headers))for(let i of ve(r))t.add(i);}return Array.from(t)}function Jt(e,t){let i=Di(t).filter(o=>!process.env[o]);if(i.length>0)throw new Ae(e,i)}var Ue="{name}",Fi=`${Ue}.json`,Kt=/\${(\w+)}/g,Zt="?",Oi="&";function Ni(e){return e.includes(Ue)}function Qt(e){return Ni(e)?e:`${e.endsWith("/")?e:`${e}/`}${Fi}`}function we(e,t){let{registry:r,item:i}=ne(e);if(!r)return null;let s=(t?.registries||{})[r];if(!s)throw new Y(r);return Jt(r,s),{url:Ai(i,s),headers:Li(s)}}function Ai(e,t,r){if(typeof t=="string"){let n=Qt(t).replace(Ue,e);return he(n)}let o=Qt(t.url).replace(Ue,e);return o=he(o),t.params?Mi(o,t.params):o}function Li(e){if(typeof e=="string"||!e.headers)return {};let t={};for(let[r,i]of Object.entries(e.headers)){let o=he(i);zi(i,o)&&(t[r]=o);}return t}function Mi(e,t){let r=new URLSearchParams;for(let[s,n]of Object.entries(t)){let p=he(n);p&&r.append(s,p);}let i=r.toString();if(!i)return e;let o=e.includes(Zt)?Oi:Zt;return `${e}${o}${i}`}function zi(e,t){let r=t.trim();if(!r)return false;if(e.includes("${")&&e.match(Kt)){let o=e.replace(Kt,"").trim();return r!==o}return true}function Xt(e){return V(e)||Z(e)?e:`${ge}/${e}`}var Be=new Map;async function Ui(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 J(e,i):new J(e,i)}}async function Q(e){return await Promise.all(e.map(async r=>{let i=Xt(r);if(Be.has(i))return Be.get(i);if(Z(i)){let s=Ui(i);return Be.set(i,s),s}let o=(async()=>{let s=Vt(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(),a=z$1.object({detail:z$1.string().optional(),title:z$1.string().optional(),message:z$1.string().optional(),error:z$1.string().optional()}).safeParse(m);a.success&&(p=a.data.detail||a.data.message,a.data.error&&(p=`[${a.data.error}] ${p}`));}throw n.status===401?new Fe(i,p):n.status===404?new ie(i,p):n.status===403?new Oe(i,p):new Ne(i,n.status,p)}return n.json()})();return Be.set(i,o),o}))}async function rr(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 J(e,t):t instanceof C?t:new J(e,t)}}T.extend({_source:z$1.string().optional()});function mt(e,t){let r={},i=[...e];if(!t?.registries)return dt({}),i;for(let o=0;o<i.length;o++){let s=we(i[o],t);s&&(i[o]=s.url,Object.keys(s.headers).length>0&&(r[s.url]=s.headers));}return dt(r),i}async function Ge(e,t){return await Promise.all(e.map(async i=>{if(Z(i))return rr(i);if(V(i)){let[n]=await Q([i]);try{return T.parse(n)}catch(p){throw new C(i,p)}}if(i.startsWith("@")&&t?.registries){let n=mt([i],t),[p]=await Q(n);try{return T.parse(p)}catch(m){throw new C(i,m)}}let o=`${ge}/${i}.json`,[s]=await Q([o]);try{return T.parse(s)}catch(n){throw new C(i,n)}}))}async function ct(e,t){let r=[],i=[],o=Array.from(new Set(e)),s=await Ge(o,t),n=new Map;for(let a=0;a<s.length;a++)s[a]&&n.set(o[a],s[a]);for(let[a,c]of Array.from(n.entries())){let u={...c,_source:a};if(r.push(u),c.registryDependencies){let f=c.registryDependencies;if(t?.registries)f=mt(c.registryDependencies,t);else {let v=c.registryDependencies.filter(j=>j.startsWith("@"));if(v.length>0){let{registry:j}=ne(v[0]);throw new Y(j)}}let{blocks:y}=await sr(f,t,new Set(o));i.push(...y);}}r.push(...i);let p=new Map;for(let a of r){let c=a._source||a.name;p.set(a,c);}return r=Vi(r,p),Lt.parse({dependencies:ir.all(r.map(a=>a.dependencies??[])),devDependencies:ir.all(r.map(a=>a.devDependencies??[])),files:qi(r.map(a=>a.files??[])),docs:r.map(a=>a.docs).filter(Boolean).join(`
15
- `)})}async function sr(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}=ne(o);if(n&&!(n in t.registries))throw new Y(n)}let[s]=await Ge([o],t);if(s&&(i.push({...s,_source:o}),s.registryDependencies)){let n=t?.registries?mt(s.registryDependencies,t):s.registryDependencies,p=await sr(n,t,r);i.push(...p.blocks);}}return {blocks:i}}function q(e,t){let r=t||e.name,i=createHash("sha256").update(r).digest("hex").substring(0,8);return `${e.name}::${i}`}function Gi(e){if(V(e)){let i=new URL(e).pathname,o=i.match(/\/([^/]+)\.json$/),s=o?o[1]:R__default.basename(i,".json");return {name:s,hash:q({name:s},e)}}if(Z(e)){let r=e.match(/\/([^/]+)\.json$/),i=r?r[1]:R__default.basename(e,".json");return {name:i,hash:q({name:i},e)}}let{item:t}=ne(e);return {name:t,hash:q({name:t},e)}}function Vi(e,t){let r=new Map,i=new Map,o=new Map,s=new Map;for(let a of e){let c=t.get(a)||a.name,u=q(a,c);r.set(u,a),i.set(u,a),o.set(u,0),s.set(u,[]);}let n=new Map;for(let a of e){let c=t.get(a)||a.name,u=q(a,c);n.has(a.name)||n.set(a.name,[]),n.get(a.name).push(u),c!==a.name&&(n.has(c)||n.set(c,[]),n.get(c).push(u));}for(let a of e){let c=t.get(a)||a.name,u=q(a,c);if(a.registryDependencies)for(let f of a.registryDependencies){let y,v=n.get(f)||[];if(v.length===1)y=v[0];else if(v.length>1)y=v[0];else {let{name:j}=Gi(f),E=n.get(j)||[];E.length>0&&(y=E[0]);}y&&r.has(y)&&(s.get(y).push(u),o.set(u,o.get(u)+1));}}let p=[],m=[];for(let[a,c]of o)c===0&&p.push(a);for(;p.length>0;){let a=p.shift(),c=r.get(a);m.push(c);for(let u of s.get(a)){let f=o.get(u)-1;o.set(u,f),f===0&&p.push(u);}}if(m.length!==e.length){let a=Array.from(r.keys()).filter(c=>!m.some(u=>q(u,t.get(u))===c));console.warn(`Warning: Circular dependencies detected. Some items may not be sorted correctly: ${a.join(", ")}`);for(let[c,u]of r.entries())m.some(f=>q(f,t.get(f))===c)||m.push(u);}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=>le.red(e),warn:e=>le.yellow(e),info:e=>le.blue(e),success:e=>le.green(e),dim:e=>le.cyan(e)};var d={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 w(e){if(d.break(),d.error("Something went wrong. Please check the error below for more details."),d.error("If the problem persists, please open an issue on GitHub."),d.error(""),typeof e=="string"&&(d.error(e),d.break(),process.exit(1)),e instanceof _&&(e.message&&(d.error(e.cause?"Error:":"Message:"),d.error(e.message)),e.cause&&(d.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 U=z$1.object({$schema:z$1.string().optional(),aliases:z$1.object({api:z$1.string(),vendor:z$1.string(),admin:z$1.string()}),registries:At.optional()}).strict(),zt=U.extend({resolvedPaths:z$1.object({cwd:z$1.string(),api:z$1.string(),vendor:z$1.string(),admin:z$1.string()})});async function se(e,t){return createMatchPath(t.absoluteBaseUrl,t.paths)(e,void 0,()=>true,[".ts",".tsx"])}var ui="packages/api/src",li="apps/vendor/src",fi="apps/admin/src",gi=cosmiconfig("blocks",{searchPlaces:["blocks.json"]});async function b(e){let t=await yi(e);return t?await it(e,t):null}async function it(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 zt.parse({...t,resolvedPaths:{cwd:e,api:await se(t.aliases.api,r),vendor:await se(t.aliases.vendor,r),admin:await se(t.aliases.admin,r)}})}async function yi(e){try{let t=await gi.search(e);if(!t)return null;let r=U.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 Me(e,t)}}function B(e){let t={resolvedPaths:{cwd:process.cwd(),api:"",vendor:"",admin:""},aliases:{api:ui,vendor:li,admin:fi},registries:{...I}};return e?{...t,...e,resolvedPaths:{...t.resolvedPaths,...e.resolvedPaths||{}},aliases:{...t.aliases,...e.aliases||{}},registries:{...t.registries,...e.registries||{}}}:t}var st=["**/node_modules/**","public","dist"];async function _(e){let[t,r,i,o,s,n]=await Promise.all([A.pathExists(R__default.resolve(e,"src")),vi(e),ye(e),wi(e),ji(e),bi(e)]);return {isSrcDir:t,aliasPrefix:r,packageJson:i,medusaConfigFile:o?.file??null,medusaVersion:s,mercurVersion:n}}async function vi(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 ye(e="",t=true){let r=R__default.join(e,"package.json");return A.readJSONSync(r,{throws:t})}async function wi(e){let t=await ot.glob("medusa-config.*",{cwd:e,deep:3,ignore:st});if(!t.length)return null;let r=t[0];return {file:r,dir:R__default.resolve(e,R__default.dirname(r))}}async function ji(e){let r=ye(e,false)?.dependencies?.["@medusajs/framework"];if(r)return r;let i=await ot.glob("**/package.json",{cwd:e,deep:3,ignore:st});for(let o of i){let n=ye(R__default.join(e,R__default.dirname(o)),false)?.dependencies?.["@medusajs/framework"];if(n)return n}return null}async function bi(e){let r=ye(e,false)?.dependencies?.["@mercurjs/cli"];if(r)return r;let i=await ot.glob("**/package.json",{cwd:e,deep:3,ignore:st});for(let o of i){let n=ye(R__default.join(e,R__default.dirname(o)),false)?.dependencies?.["@mercurjs/cli"];if(n)return n}return null}z$1.object({cwd:z$1.string(),blocks:z$1.array(z$1.string()).optional(),yes:z$1.boolean(),overwrite:z$1.boolean(),silent:z$1.boolean()});async function Bt(e){let t={},r=R__default.resolve(e.cwd);if(!existsSync(r))return t[Dt]=true,{errors:t,config:null};let i=await b(r);if(!i)return t[E]=true,{errors:t,config:null};let o=await _(r);return {errors:t,config:i,projectInfo:o}}var Le={headers:{}};function nt(e){Le.headers={...Le.headers,...e};}function Wt(e){return Le.headers[e]||{}}function x(){Le.headers={};}function ne(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 he(e){return e.replace(/\${(\w+)}/g,(t,r)=>process.env[r]||"")}function ve(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 ki=/^(@[a-zA-Z0-9](?:[a-zA-Z0-9-_]*[a-zA-Z0-9])?)\/(.+)$/;function ae(e){if(!e.startsWith("@"))return {registry:null,item:e};let t=e.match(ki);return t?{registry:t[1],item:t[2]}:{registry:null,item:e}}var Gt=[".tsx",".ts"],Vt=["lib/utils.ts"],Ci=[/^(react|react-dom)(\/.*)?$/,/^(node|jsr|npm):.*$/],Pi=new Project({compilerOptions:{}});function Ti(e){if(Ci.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 at(e,t,r,i=new Set){let o=R.resolve(t.resolvedPaths.cwd,e),s=R.relative(t.resolvedPaths.cwd,o);if(Vt.includes(s))return {dependencies:[],files:[]};let n=R.extname(e);if(!Gt.includes(n))return {dependencies:[],files:[]};if(i.has(s))return {dependencies:[],files:[]};i.add(s);try{if(!(await M.stat(o)).isFile())return {dependencies:[],files:[]}}catch{return {dependencies:[],files:[]}}let m=await M.readFile(o,"utf-8"),p=await $i(R.basename(o)),a=Pi.createSourceFile(p,m,{scriptKind:ScriptKind.TSX}),c=await loadConfig(t.resolvedPaths.cwd);if(c.resultType==="failed")return {dependencies:[],files:[]};let u=[],f=new Set,y=qt(e),v={path:s,type:y,target:"",content:""};u.push(v);let j=a.getImportDeclarations();for(let F of j){let L=F.getModuleSpecifierValue(),Ce=L.startsWith(".");if(!(r.aliasPrefix&&L.startsWith(`${r.aliasPrefix}/`))&&!Ce){let N=Ti(L);N&&f.add(N);continue}let re=await se(L,c);if(Ce&&(re=R.resolve(R.dirname(o),L)),!re)continue;if(!R.extname(re))for(let N of Gt){let Tt=`${re}${N}`;try{await M.access(Tt),re=Tt;break}catch{continue}}let Pe=R.relative(t.resolvedPaths.cwd,re);if(i.has(Pe)||Vt.includes(Pe))continue;let oi=qt(L),si={path:Pe,type:oi,target:"",content:""};u.push(si);let Te=await at(Pe,t,r,i);if(Te.files)for(let N of Te.files)i.has(N.path)||(i.add(N.path),u.push(N));Te.dependencies&&Te.dependencies.forEach(N=>f.add(N));}let S=Array.from(new Map(u.map(F=>[F.path,F])).values());return {dependencies:Array.from(f),files:S}}async function $i(e){let t=await M.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 V(e){try{return new URL(e),!0}catch{return false}}function Q(e){return e.endsWith(".json")&&!V(e)}function Di(e){let t=new Set;if(typeof e=="string")for(let r of ve(e))t.add(r);else {for(let r of ve(e.url))t.add(r);if(e.params)for(let r of Object.values(e.params))for(let i of ve(r))t.add(i);if(e.headers)for(let r of Object.values(e.headers))for(let i of ve(r))t.add(i);}return Array.from(t)}function Ht(e,t){let i=Di(t).filter(o=>!process.env[o]);if(i.length>0)throw new Oe(e,i)}var ze="{name}",Fi=`${ze}.json`,Yt=/\${(\w+)}/g,Jt="?",Ni="&";function Oi(e){return e.includes(ze)}function Kt(e){return Oi(e)?e:`${e.endsWith("/")?e:`${e}/`}${Fi}`}function we(e,t){let{registry:r,item:i}=ae(e);if(!r)return null;let s=(t?.registries||{})[r];if(!s)throw new J(r);return Ht(r,s),{url:Ai(i,s),headers:Mi(s)}}function Ai(e,t,r){if(typeof t=="string"){let n=Kt(t).replace(ze,e);return he(n)}let o=Kt(t.url).replace(ze,e);return o=he(o),t.params?Li(o,t.params):o}function Mi(e){if(typeof e=="string"||!e.headers)return {};let t={};for(let[r,i]of Object.entries(e.headers)){let o=he(i);zi(i,o)&&(t[r]=o);}return t}function Li(e,t){let r=new URLSearchParams;for(let[s,n]of Object.entries(t)){let m=he(n);m&&r.append(s,m);}let i=r.toString();if(!i)return e;let o=e.includes(Jt)?Ni:Jt;return `${e}${o}${i}`}function zi(e,t){let r=t.trim();if(!r)return false;if(e.includes("${")&&e.match(Yt)){let o=e.replace(Yt,"").trim();return r!==o}return true}function Zt(e){return V(e)||Q(e)?e:`${ge}/${e}`}var Ue=new Map;async function Ui(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 K(e,i):new K(e,i)}}async function X(e){return await Promise.all(e.map(async r=>{let i=Zt(r);if(Ue.has(i))return Ue.get(i);if(Q(i)){let s=Ui(i);return Ue.set(i,s),s}let o=(async()=>{let s=Wt(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(),a=z$1.object({detail:z$1.string().optional(),title:z$1.string().optional(),message:z$1.string().optional(),error:z$1.string().optional()}).safeParse(p);a.success&&(m=a.data.detail||a.data.message,a.data.error&&(m=`[${a.data.error}] ${m}`));}throw n.status===401?new De(i,m):n.status===404?new oe(i,m):n.status===403?new Fe(i,m):new Ne(i,n.status,m)}return n.json()})();return Ue.set(i,o),o}))}async function er(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 K(e,t):t instanceof C?t:new K(e,t)}}T.extend({_source:z$1.string().optional()});function dt(e,t){let r={},i=[...e];if(!t?.registries)return nt({}),i;for(let o=0;o<i.length;o++){let s=we(i[o],t);s&&(i[o]=s.url,Object.keys(s.headers).length>0&&(r[s.url]=s.headers));}return nt(r),i}async function We(e,t){return await Promise.all(e.map(async i=>{if(Q(i))return er(i);if(V(i)){let[n]=await X([i]);try{return T.parse(n)}catch(m){throw new C(i,m)}}if(i.startsWith("@")&&t?.registries){let n=dt([i],t),[m]=await X(n);try{return T.parse(m)}catch(p){throw new C(i,p)}}let o=`${ge}/${i}.json`,[s]=await X([o]);try{return T.parse(s)}catch(n){throw new C(i,n)}}))}async function pt(e,t){let r=[],i=[],o=Array.from(new Set(e)),s=await We(o,t),n=new Map;for(let a=0;a<s.length;a++)s[a]&&n.set(o[a],s[a]);for(let[a,c]of Array.from(n.entries())){let u={...c,_source:a};if(r.push(u),c.registryDependencies){let f=c.registryDependencies;if(t?.registries)f=dt(c.registryDependencies,t);else {let v=c.registryDependencies.filter(j=>j.startsWith("@"));if(v.length>0){let{registry:j}=ae(v[0]);throw new J(j)}}let{blocks:y}=await ir(f,t,new Set(o));i.push(...y);}}r.push(...i);let m=new Map;for(let a of r){let c=a._source||a.name;m.set(a,c);}return r=Vi(r,m),Ot.parse({dependencies:tr.all(r.map(a=>a.dependencies??[])),devDependencies:tr.all(r.map(a=>a.devDependencies??[])),files:qi(r.map(a=>a.files??[])),docs:r.map(a=>a.docs).filter(Boolean).join(`
15
+ `)})}async function ir(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}=ae(o);if(n&&!(n in t.registries))throw new J(n)}let[s]=await We([o],t);if(s&&(i.push({...s,_source:o}),s.registryDependencies)){let n=t?.registries?dt(s.registryDependencies,t):s.registryDependencies,m=await ir(n,t,r);i.push(...m.blocks);}}return {blocks:i}}function q(e,t){let r=t||e.name,i=createHash("sha256").update(r).digest("hex").substring(0,8);return `${e.name}::${i}`}function Gi(e){if(V(e)){let i=new URL(e).pathname,o=i.match(/\/([^/]+)\.json$/),s=o?o[1]:R__default.basename(i,".json");return {name:s,hash:q({name:s},e)}}if(Q(e)){let r=e.match(/\/([^/]+)\.json$/),i=r?r[1]:R__default.basename(e,".json");return {name:i,hash:q({name:i},e)}}let{item:t}=ae(e);return {name:t,hash:q({name:t},e)}}function Vi(e,t){let r=new Map,i=new Map,o=new Map,s=new Map;for(let a of e){let c=t.get(a)||a.name,u=q(a,c);r.set(u,a),i.set(u,a),o.set(u,0),s.set(u,[]);}let n=new Map;for(let a of e){let c=t.get(a)||a.name,u=q(a,c);n.has(a.name)||n.set(a.name,[]),n.get(a.name).push(u),c!==a.name&&(n.has(c)||n.set(c,[]),n.get(c).push(u));}for(let a of e){let c=t.get(a)||a.name,u=q(a,c);if(a.registryDependencies)for(let f of a.registryDependencies){let y,v=n.get(f)||[];if(v.length===1)y=v[0];else if(v.length>1)y=v[0];else {let{name:j}=Gi(f),S=n.get(j)||[];S.length>0&&(y=S[0]);}y&&r.has(y)&&(s.get(y).push(u),o.set(u,o.get(u)+1));}}let m=[],p=[];for(let[a,c]of o)c===0&&m.push(a);for(;m.length>0;){let a=m.shift(),c=r.get(a);p.push(c);for(let u of s.get(a)){let f=o.get(u)-1;o.set(u,f),f===0&&m.push(u);}}if(p.length!==e.length){let a=Array.from(r.keys()).filter(c=>!p.some(u=>q(u,t.get(u))===c));console.warn(`Warning: Circular dependencies detected. Some items may not be sorted correctly: ${a.join(", ")}`);for(let[c,u]of r.entries())p.some(f=>q(f,t.get(f))===c)||p.push(u);}return p}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=>H.red(e),warn:e=>H.yellow(e),info:e=>H.blue(e),success:e=>H.green(e),dim:e=>H.cyan(e)};var d={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 w(e){if(d.break(),d.error("Something went wrong. Please check the error below for more details."),d.error("If the problem persists, please open an issue on GitHub."),d.error(""),typeof e=="string"&&(d.error(e),d.break(),process.exit(1)),e instanceof k&&(e.message&&(d.error(e.cause?"Error:":"Message:"),d.error(e.message)),e.cause&&(d.error(`
16
16
  Message:`),d.error(e.cause)),e.suggestion&&(d.error(`
17
- Suggestion:`),d.error(e.suggestion)),d.break(),process.exit(1)),e instanceof z$1.ZodError){d.error("Validation failed:");for(let t of e.issues){let r=t.path.join(".")||"root";d.error(`- ${l.info(r)}: ${t.message}`);}d.break(),process.exit(1);}e instanceof Error&&(d.error(e.message),d.break(),process.exit(1)),d.break(),process.exit(1);}function h(e,t){return Yi({text:e,isSilent:t?.silent??false})}async function N(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 nr(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=h("Installing dependencies.",{silent:i.silent})?.start(),s=await N(r.resolvedPaths.cwd);o?.start(),await Ki(s,e,t,r.resolvedPaths.cwd),o?.succeed();}async function Ki(e,t,r,i){if(e==="npm")return Zi(t,r,i);if(e==="deno")return Qi(t,r,i);t?.length&&await execa(e,["add",...t],{cwd:i}),r?.length&&await execa(e,["add","-D",...r],{cwd:i});}async function Zi(e,t,r){e.length&&await execa("npm",["install",...e],{cwd:r}),t.length&&await execa("npm",["install","-D",...t],{cwd:r});}async function Qi(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 ar(e,t,r={}){let{ignoreImports:i=false}=r,o=e.replace(/\r\n/g,`
17
+ Suggestion:`),d.error(e.suggestion)),d.break(),process.exit(1)),e instanceof z$1.ZodError){d.error("Validation failed:");for(let t of e.issues){let r=t.path.join(".")||"root";d.error(`- ${l.info(r)}: ${t.message}`);}d.break(),process.exit(1);}e instanceof Error&&(d.error(e.message),d.break(),process.exit(1)),d.break(),process.exit(1);}function h(e,t){return Yi({text:e,isSilent:t?.silent??false})}async function O(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 or(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=h("Installing dependencies.",{silent:i.silent})?.start(),s=await O(r.resolvedPaths.cwd);o?.start(),await Ki(s,e,t,r.resolvedPaths.cwd),o?.succeed();}async function Ki(e,t,r,i){if(e==="npm")return Zi(t,r,i);if(e==="deno")return Qi(t,r,i);t?.length&&await execa(e,["add",...t],{cwd:i}),r?.length&&await execa(e,["add","-D",...r],{cwd:i});}async function Zi(e,t,r){e.length&&await execa("npm",["install",...e],{cwd:r}),t.length&&await execa("npm",["install","-D",...t],{cwd:r});}async function Qi(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 sr(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,p=c=>c.replace(n,(u,f,y,v)=>{if(y.startsWith("."))return `${f}${y}${v}`;let j=y.split("/"),E=j[j.length-1];return `${f}@normalized/${E}${v}`}),m=p(o),a=p(s);return m===a}function Xi(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 Ve(e,t,r){let i=Xi(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=eo(e.path,i);return R__default.join(i,o)}function eo(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 oo=new Project({compilerOptions:{}});async function so(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 no(e){switch(R__default.extname(e).toLowerCase()){case ".tsx":case ".ts":return ScriptKind.TS;default:return ScriptKind.Unknown}}async function qe(e){let t=R__default.extname(e.filename).toLowerCase();if(![".tsx",".ts"].includes(t))return e.raw;let r=no(e.filename),i=await so(e.filename),o=oo.createSourceFile(i,e.raw,{scriptKind:r});for(let s of o.getImportStringLiterals()){let n=ao(s.getLiteralValue(),e.config);s.setLiteralValue(n);}return o.getText()}function ao(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 cr(e,t,r){if(!e?.length)return {filesCreated:[],filesUpdated:[],filesSkipped:[],filesDeclined:[]};r={overwrite:false,silent:false,yes:false,...r};let i=h("Updating files.",{silent:r.silent})?.start(),o=await k(t.resolvedPaths.cwd),s=[],n=[],p=[],m=[];for(let u of e){let f=Ve(u,t,{isSrcDir:o?.isSrcDir??false,path:r.path??""}),y=basename(u.path),v=R__default.dirname(f),j=existsSync(f);if(j&&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 qe({filename:u.path,raw:u.content,config:t});if(j&&!r.overwrite){let F=await promises.readFile(f,"utf-8");if(ar(F,E)){p.push(R__default.relative(t.resolvedPaths.cwd,f));continue}if(!r.yes){i.stop();let M=diffLines(F,E);d.info(`
20
- File: ${l.info(y)}`),go(M);let{overwrite:Pe}=await et({type:"confirm",name:"overwrite",message:`The file ${l.info(y)} already exists. Would you like to overwrite?`,initial:false});if(!Pe){m.push(R__default.relative(t.resolvedPaths.cwd,f));continue}}}existsSync(v)||await promises.mkdir(v,{recursive:true}),await promises.writeFile(f,E,"utf-8"),j?n.push(R__default.relative(t.resolvedPaths.cwd,f)):s.push(R__default.relative(t.resolvedPaths.cwd,f));}let a=s.length+n.length,c=p.length+m.length;if(a>0){if(i?.succeed(),c>0&&!r.silent){let u=[];a===1?u.push("1 file updated"):u.push(`${a} files updated`),c===1?u.push("1 file skipped"):u.push(`${c} files skipped`),d.info(`${u.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 lo=3;function fo(e,t=lo){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 a of m)r.push(`+ ${a}`);}else if(n.removed){let m=n.value.split(`
22
- `);m[m.length-1]===""&&m.pop();for(let a of m)r.push(`- ${a}`);}else {let m=n.value.split(`
23
- `);m[m.length-1]===""&&m.pop();let a=[];p==="full"||m.length<=t*2+1?a=m.map(c=>` ${c}`):p==="start"?(a=m.slice(0,t).map(c=>` ${c}`),m.length>t&&a.push(` ... ${m.length-t} lines hidden ...`)):p==="end"?(m.length>t&&a.push(` ... ${m.length-t} lines hidden ...`),a.push(...m.slice(-t).map(c=>` ${c}`))):p==="both"&&(m.length<=t*2+1?a=m.map(c=>` ${c}`):a=[...m.slice(0,t).map(c=>` ${c}`),` ... ${m.length-t*2} lines hidden ...`,...m.slice(-t).map(c=>` ${c}`)]),r.push(...a);}}return r}function go(e){let t=fo(e);if(t.length!==0)for(let r of t)r.startsWith("+ ")?process.stdout.write(`${l.success(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,m=c=>c.replace(n,(u,f,y,v)=>{if(y.startsWith("."))return `${f}${y}${v}`;let j=y.split("/"),S=j[j.length-1];return `${f}@normalized/${S}${v}`}),p=m(o),a=m(s);return p===a}function Xi(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 Ge(e,t,r){let i=Xi(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=eo(e.path,i);return R__default.join(i,o)}function eo(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 oo=new Project({compilerOptions:{}});async function so(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 no(e){switch(R__default.extname(e).toLowerCase()){case ".tsx":case ".ts":return ScriptKind.TS;default:return ScriptKind.Unknown}}async function Ve(e){let t=R__default.extname(e.filename).toLowerCase();if(![".tsx",".ts"].includes(t))return e.raw;let r=no(e.filename),i=await so(e.filename),o=oo.createSourceFile(i,e.raw,{scriptKind:r});for(let s of o.getImportStringLiterals()){let n=ao(s.getLiteralValue(),e.config);s.setLiteralValue(n);}return o.getText()}function ao(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 pr(e,t,r){if(!e?.length)return {filesCreated:[],filesUpdated:[],filesSkipped:[],filesDeclined:[]};r={overwrite:false,silent:false,yes:false,...r};let i=h("Updating files.",{silent:r.silent})?.start(),o=await _(t.resolvedPaths.cwd),s=[],n=[],m=[],p=[];for(let u of e){let f=Ge(u,t,{isSrcDir:o?.isSrcDir??false,path:r.path??""}),y=basename(u.path),v=R__default.dirname(f),j=existsSync(f);if(j&&statSync(f).isDirectory())throw new Error(`Cannot write to ${f}: path exists and is a directory. Please provide a file path instead.`);let S=await Ve({filename:u.path,raw:u.content,config:t});if(j&&!r.overwrite){let F=await promises.readFile(f,"utf-8");if(sr(F,S)){m.push(R__default.relative(t.resolvedPaths.cwd,f));continue}if(!r.yes){i.stop();let L=diffLines(F,S);d.info(`
20
+ File: ${l.info(y)}`),go(L);let{overwrite:Ce}=await Qe({type:"confirm",name:"overwrite",message:`The file ${l.info(y)} already exists. Would you like to overwrite?`,initial:false});if(!Ce){p.push(R__default.relative(t.resolvedPaths.cwd,f));continue}}}existsSync(v)||await promises.mkdir(v,{recursive:true}),await promises.writeFile(f,S,"utf-8"),j?n.push(R__default.relative(t.resolvedPaths.cwd,f)):s.push(R__default.relative(t.resolvedPaths.cwd,f));}let a=s.length+n.length,c=m.length+p.length;if(a>0){if(i?.succeed(),c>0&&!r.silent){let u=[];a===1?u.push("1 file updated"):u.push(`${a} files updated`),c===1?u.push("1 file skipped"):u.push(`${c} files skipped`),d.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 lo=3;function fo(e,t=lo){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 a of p)r.push(`+ ${a}`);}else if(n.removed){let p=n.value.split(`
22
+ `);p[p.length-1]===""&&p.pop();for(let a of p)r.push(`- ${a}`);}else {let p=n.value.split(`
23
+ `);p[p.length-1]===""&&p.pop();let a=[];m==="full"||p.length<=t*2+1?a=p.map(c=>` ${c}`):m==="start"?(a=p.slice(0,t).map(c=>` ${c}`),p.length>t&&a.push(` ... ${p.length-t} lines hidden ...`)):m==="end"?(p.length>t&&a.push(` ... ${p.length-t} lines hidden ...`),a.push(...p.slice(-t).map(c=>` ${c}`))):m==="both"&&(p.length<=t*2+1?a=p.map(c=>` ${c}`):a=[...p.slice(0,t).map(c=>` ${c}`),` ... ${p.length-t*2} lines hidden ...`,...p.slice(-t).map(c=>` ${c}`)]),r.push(...a);}}return r}function go(e){let t=fo(e);if(t.length!==0)for(let r of t)r.startsWith("+ ")?process.stdout.write(`${l.success(r)}
24
24
  `):r.startsWith("- ")?process.stdout.write(`${l.error(r)}
25
25
  `):r.includes("lines hidden")?process.stdout.write(`${l.info(r)}
26
26
  `):process.stdout.write(`${r}
27
- `);}async function ur(e,t,r){if(r={overwrite:false,silent:false,yes:false,...r},!e.length)return;let i=h("Checking registry.",{silent:r.silent})?.start(),o=await ct(e,se(t));if(!o)return i?.fail(),w(new Error("Failed to fetch items from registry."));i?.succeed();let{filesCreated:s,filesUpdated:n}=await cr(o.files,t,{overwrite:r.overwrite,silent:r.silent,path:r.path,yes:r.yes});(s.length||n.length)&&await nr(o.dependencies,o.devDependencies,t,{silent:r.silent}),o.docs&&d.info(o.docs);}z$1.object({cwd:z$1.string(),yes:z$1.boolean(),defaults:z$1.boolean(),silent:z$1.boolean()});async function lr(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 lt=class{config;path=join(vo.tmpdir(),"mercur");constructor(){this.config=this.createBaseConfig();}createBaseConfig(){return {telemetry_enabled:true,telemetry_email:null}}get(t){return this.config[t]}set(t,r){this.config[t]=r;}all(){return this.config}size(){return Object.keys(this.config).length}has(t){return t in this.config&&this.config[t]!==void 0}del(t){delete this.config[t];}clear(){this.config=this.createBaseConfig();}},_e=new lt;var pe=e=>Function("mm","return import(mm)")(e);function jo(){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 gr(){try{let e=await pe("os"),t=e.cpus();return {deploymentVendor:jo(),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 bo(),isDocker:await yr(),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 bo(){try{if(typeof process>"u"||process?.platform!=="linux")return !1;let e=await pe("fs");return (await pe("os")).release().toLowerCase().includes("microsoft")?!await fr():e.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft")?!await fr():!1}catch{return false}}var Ro=async()=>{try{return (await pe("fs")).statSync("/run/.containerenv"),!0}catch{return false}};async function yr(){return await xo()||await _o()}async function xo(){try{return (await pe("fs")).statSync("/.dockerenv"),!0}catch{return false}}async function _o(){try{return (await pe("fs")).readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return false}}async function fr(){return await Ro()||await yr()}var He=e=>createHash("sha256").update(e).digest("base64");var So=process.env.MERCUR_TELEMETRY_PROXY_URL||"https://telemetry.mercurjs.com/api/v1/events",hr=e=>{_e.set("telemetry_email",e);},vr=e=>{_e.set("telemetry_enabled",e);},Io=()=>_e.get("telemetry_enabled")&&process.env.MERCUR_DISABLE_TELEMETRY!=="true",P=async(e,t)=>{try{if(!Io())return;let r=await k(t.cwd),{projectId:i}=To(r.packageJson),o={nodeEnv:Co(),nodeVersion:process.version,mercurVersion:r.mercurVersion,medusaVersion:r.medusaVersion,isSrcDir:r.isSrcDir,aliasPrefix:r.aliasPrefix,config:await b(t.cwd),projectId:i,systemInfo:await gr(),packageManager:await N(t.cwd),email:$o()};await fetch(So,{body:JSON.stringify({...o,...e}),headers:{"Content-Type":"application/json"},method:"post"});}catch{}};function Co(){return process.env.NODE_ENV||"development"}var Po=()=>{try{let e=execSync("git config --local --get remote.origin.url",{stdio:"pipe",timeout:1e3});return String(e).trim()}catch{return null}},To=e=>{let t=Po();if(t)return {projectId:He(t)};let r=e.name;if(r)return {projectId:He(r)};let i=process.cwd();return {projectId:He(i)}},$o=()=>_e.get("telemetry_email")||void 0;var Oo=z$1.object({cwd:z$1.string(),yes:z$1.boolean(),defaults:z$1.boolean(),silent:z$1.boolean()}),jr=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{let t=Oo.parse({cwd:R__default.resolve(e.cwd),...e});await gt(t),d.log(`${l.success("Success!")} Project initialization completed.
28
- You may now add blocks.`),d.break(),await P({type:"init",payload:{outcome:"success"}},{cwd:t.cwd});}catch(t){d.break(),w(t);}finally{x();}});async function gt(e){await lr(e);let t=await b(e.cwd),r=t?await Ao(t,e):await No(e);if(!e.yes){let{proceed:s}=await et({type:"confirm",name:"proceed",message:`Write configuration to ${l.info("blocks.json")}. Proceed?`,initial:true});s||process.exit(0);}let i=h("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)}
29
- `,"utf8"),i.succeed(),await st(e.cwd,r)}async function No(e){if(e.defaults)return U.parse({$schema:De,aliases:{api:"packages/api/src",vendor:"apps/vendor/src",admin:"apps/admin/src"},registries:I});d.info("");let t=await et([{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 U.parse({$schema:De,aliases:{api:t.api??"packages/api/src",vendor:t.vendor??"apps/vendor/src",admin:t.admin??"apps/admin/src"},registries:I})}async function Ao(e,t){if(t.defaults)return U.parse({$schema:De,aliases:{api:"packages/api/src",vendor:"apps/vendor/src",admin:"apps/admin/src"},registries:I});let r=await et([{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 U.parse({$schema:e.$schema,aliases:{api:r.api??e.aliases.api,vendor:r.vendor??e.aliases.vendor,admin:r.admin??e.aliases.admin}})}var Uo=z$1.object({blocks:z$1.array(z$1.string()).optional(),yes:z$1.boolean(),overwrite:z$1.boolean(),cwd:z$1.string(),silent:z$1.boolean()}),br=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{let r=Uo.parse({blocks:e,cwd:R__default.resolve(t.cwd),...t}),i=await b(r.cwd);i||(i=B({resolvedPaths:{cwd:r.cwd}})),r.blocks?.length||(d.error("Please specify at least one item to add."),process.exit(1));let{errors:o}=await Gt(r);if(o[S]){let{proceed:s}=await et({type:"confirm",name:"proceed",message:`You need to create a ${l.info("blocks.json")} file to add items. Proceed?`,initial:!0});s||(d.break(),process.exit(1)),i=await gt({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 ur(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){d.break(),w(r);}finally{x();}});async function Rr(e){let t={},r={cwd:e.cwd,registryFile:R__default.resolve(e.cwd,e.registryFile),outputDir:R__default.resolve(e.cwd,e.outputDir)};if(!A.existsSync(r.registryFile))return t[z]=true,{errors:t,resolvePaths:null,config:null};if(!A.existsSync(R__default.resolve(e.cwd,"blocks.json")))return t[S]=true,{errors:t,resolvePaths:null,config:null};await A.mkdir(r.outputDir,{recursive:true});try{let i=await b(e.cwd);return {errors:t,config:i,resolvePaths:r}}catch{d.break(),d.error(`An invalid ${l.info("blocks.json")} file was found at ${l.info(e.cwd)}.
30
- Before you can build the registry, you must create a valid ${l.info("blocks.json")} file by running the ${l.info("init")} command.`),d.break(),process.exit(1);}}var Wo=z$1.object({cwd:z$1.string(),registryFile:z$1.string(),outputDir:z$1.string(),verbose:z$1.boolean().optional().default(false)}),xr=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 Go({cwd:R.resolve(t.cwd),registryFile:e,outputDir:t.output,verbose:t.verbose});});async function Go(e){try{let t=Wo.parse(e),[{errors:r,resolvePaths:i,config:o},s]=await Promise.all([Rr(t),k(t.cwd)]);(r[S]||!s)&&(d.error(`A ${l.info("blocks.json")} file is required to build the registry. Run ${l.info("mercur init")} to create one.`),d.break(),await P({type:"build",payload:{outcome:"missing_config"}},{cwd:t.cwd}),process.exit(1)),(r[z]||!i)&&(d.error(`We could not find a registry file at ${l.info(R.resolve(t.cwd,t.registryFile))}.`),d.break(),await P({type:"build",payload:{outcome:"missing_registry_file"}},{cwd:t.cwd}),process.exit(1));let n=await L.readFile(i.registryFile,"utf-8"),p=H.safeParse(JSON.parse(n));p.success||(d.error(`Invalid registry file found at ${l.info(i.registryFile)}.`),d.break(),process.exit(1));let m=h("Building registry..."),a=await Vo(p.data,o,s);for(let c of a.items)c.files=c.files?.filter((u,f,y)=>f===y.findIndex(v=>v.path===u.path)),c.dependencies&&(c.dependencies=c.dependencies.filter((u,f,y)=>f===y.findIndex(v=>v===u)));for(let c of a.items){if(!c.files)continue;m.start(`Building ${c.name}...`),c.$schema=zt;for(let f of c.files){let y=s.isSrcDir?"src":"",v=R.resolve(i.cwd,y,f.path);try{if(!(await L.stat(v)).isFile())continue;f.content=await L.readFile(v,"utf-8");}catch(j){console.error("Error reading file in registry build:",v,j);continue}}let u=T.safeParse(c);if(!u.success){d.error(`Invalid registry item found for ${l.info(c.name)}.`);continue}await L.writeFile(R.resolve(i.outputDir,`${u.data.name}.json`),JSON.stringify(u.data,null,2));}if(await L.copyFile(i.registryFile,R.resolve(i.outputDir,"registry.json")),m.succeed("Building registry."),t.verbose){h(`The registry has ${l.info(a.items.length.toString())} items:`).succeed();for(let c of a.items){d.log(` - ${c.name}`);for(let u of c.files??[])d.log(` - ${u.path}`);}}await P({type:"build",payload:{outcome:"success"}},{cwd:t.cwd});}catch(t){d.break(),w(t);}}async function Vo(e,t,r){for(let i of e.items)if(i.files?.length)for(let o of i.files){let s=await pt(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 Ye=".mercur/_generated",ee=/route\.(ts|js)$/,_r={"/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")'},kr={"/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 wt(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 a=>{let c={directories:[],pathnames:[]};try{let u=await L__default.readdir(a,{withFileTypes:!0});for(let f of u){if(o&&o(f.name))continue;let y=R__default.join(a,f.name);i&&i(y)||(f.isDirectory()?c.directories.push(y):(!r||r(y))&&c.pathnames.push(y));}}catch(u){if(u.code!=="ENOENT"||a===e)throw u;return null}return c}));p=[];for(let a of m)a&&(p.push(...a.directories),n.push(...a.pathnames));}return s&&n.sort(),n}async function Je(e){return await L__default.stat(e).catch(()=>null)!==null}async function Ke(e){await Je(e)||await L__default.mkdir(e,{recursive:true});}function ce(e){return e.replace(/\\/g,"/")}function Se(e){return e.split("/").reduce((r,i)=>{if(!i||ee.test(i))return r;if(i.startsWith("[")&&i.endsWith("]")){let o=i.slice(1,-1);return `${r}/:${o}`}return `${r}/${i}`},"")||"/"}async function jt(e){return await Je(e)?(await wt(e,{pathnameFilter:i=>ee.test(i),ignorePartFilter:i=>i.startsWith("_")||i==="node_modules"})).map(i=>{let o=R__default.relative(e,i);return {filePath:ce(o),route:Se(ce(o))}}):[]}function bt(e){return e.replace(/[-_]+(.)?/g,(t,r)=>r?r.toUpperCase():"").replace(/^[A-Z]/,t=>t.toLowerCase())}function Yo(e){return `../../src/api/${e.replace(/\.ts$/,"")}`}function Jo(e){return e.startsWith(":")?`$${bt(e.slice(1))}`:bt(e)}function Er(){return {children:new Map}}function Ko(e){let t=Er();for(let[r,i]of e){let o=r.split("/").filter(Boolean),s=t;for(let n of o){let p=Jo(n);s.children.has(p)||s.children.set(p,Er()),s=s.children.get(p);}s.importType=i;}return t}function Ir(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=Ir(s,t+" ");i.push(`${t} ${o}: ${n}`);}r.push(`{
27
+ `);}async function mr(e,t,r){if(r={overwrite:false,silent:false,yes:false,...r},!e.length)return;let i=h("Checking registry.",{silent:r.silent})?.start(),o=await pt(e,ne(t));if(!o)return i?.fail(),w(new Error("Failed to fetch items from registry."));i?.succeed();let{filesCreated:s,filesUpdated:n}=await pr(o.files,t,{overwrite:r.overwrite,silent:r.silent,path:r.path,yes:r.yes});(s.length||n.length)&&await or(o.dependencies,o.devDependencies,t,{silent:r.silent}),o.docs&&d.info(o.docs);}z$1.object({cwd:z$1.string(),yes:z$1.boolean(),defaults:z$1.boolean(),silent:z$1.boolean()});async function cr(e){let t={},r=R__default.resolve(e.cwd);existsSync(r)||(t.MISSING_DIR=true);let i=await _(r);return {errors:t,projectInfo:i}}var ct=class{config;path=join(vo.tmpdir(),"mercur");constructor(){this.config=this.createBaseConfig();}createBaseConfig(){return {telemetry_enabled:true,telemetry_email:null}}get(t){return this.config[t]}set(t,r){this.config[t]=r;}all(){return this.config}size(){return Object.keys(this.config).length}has(t){return t in this.config&&this.config[t]!==void 0}del(t){delete this.config[t];}clear(){this.config=this.createBaseConfig();}},ke=new ct;var me=e=>Function("mm","return import(mm)")(e);function jo(){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 lr(){try{let e=await me("os"),t=e.cpus();return {deploymentVendor:jo(),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 bo(),isDocker:await fr(),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 bo(){try{if(typeof process>"u"||process?.platform!=="linux")return !1;let e=await me("fs");return (await me("os")).release().toLowerCase().includes("microsoft")?!await ur():e.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft")?!await ur():!1}catch{return false}}var Ro=async()=>{try{return (await me("fs")).statSync("/run/.containerenv"),!0}catch{return false}};async function fr(){return await xo()||await ko()}async function xo(){try{return (await me("fs")).statSync("/.dockerenv"),!0}catch{return false}}async function ko(){try{return (await me("fs")).readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return false}}async function ur(){return await Ro()||await fr()}var qe=e=>createHash("sha256").update(e).digest("base64");var Eo=process.env.MERCUR_TELEMETRY_PROXY_URL||"https://telemetry.mercurjs.com/api/v1/events",gr=e=>{ke.set("telemetry_email",e);},yr=e=>{ke.set("telemetry_enabled",e);},Io=()=>ke.get("telemetry_enabled")&&process.env.MERCUR_DISABLE_TELEMETRY!=="true",P=async(e,t)=>{try{if(!Io())return;let r=await _(t.cwd),{projectId:i}=To(r.packageJson),o={nodeEnv:Co(),nodeVersion:process.version,mercurVersion:r.mercurVersion,medusaVersion:r.medusaVersion,isSrcDir:r.isSrcDir,aliasPrefix:r.aliasPrefix,config:await b(t.cwd),projectId:i,systemInfo:await lr(),packageManager:await O(t.cwd),email:$o()};await fetch(Eo,{body:JSON.stringify({...o,...e}),headers:{"Content-Type":"application/json"},method:"post"});}catch{}};function Co(){return process.env.NODE_ENV||"development"}var Po=()=>{try{let e=execSync("git config --local --get remote.origin.url",{stdio:"pipe",timeout:1e3});return String(e).trim()}catch{return null}},To=e=>{let t=Po();if(t)return {projectId:qe(t)};let r=e.name;if(r)return {projectId:qe(r)};let i=process.cwd();return {projectId:qe(i)}},$o=()=>ke.get("telemetry_email")||void 0;var No=z$1.object({cwd:z$1.string(),yes:z$1.boolean(),defaults:z$1.boolean(),silent:z$1.boolean()}),vr=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{let t=No.parse({cwd:R__default.resolve(e.cwd),...e});await lt(t),d.log(`${l.success("Success!")} Project initialization completed.
28
+ You may now add blocks.`),d.break(),await P({type:"init",payload:{outcome:"success"}},{cwd:t.cwd});}catch(t){d.break(),w(t);}finally{x();}});async function lt(e){await cr(e);let t=await b(e.cwd),r=t?await Ao(t,e):await Oo(e);if(!e.yes){let{proceed:s}=await Qe({type:"confirm",name:"proceed",message:`Write configuration to ${l.info("blocks.json")}. Proceed?`,initial:true});s||process.exit(0);}let i=h("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)}
29
+ `,"utf8"),i.succeed(),await it(e.cwd,r)}async function Oo(e){if(e.defaults)return U.parse({$schema:$e,aliases:{api:"packages/api/src",vendor:"apps/vendor/src",admin:"apps/admin/src"},registries:I});d.info("");let t=await Qe([{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 U.parse({$schema:$e,aliases:{api:t.api??"packages/api/src",vendor:t.vendor??"apps/vendor/src",admin:t.admin??"apps/admin/src"},registries:I})}async function Ao(e,t){if(t.defaults)return U.parse({$schema:$e,aliases:{api:"packages/api/src",vendor:"apps/vendor/src",admin:"apps/admin/src"},registries:I});let r=await Qe([{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 U.parse({$schema:e.$schema,aliases:{api:r.api??e.aliases.api,vendor:r.vendor??e.aliases.vendor,admin:r.admin??e.aliases.admin}})}var Uo=z$1.object({blocks:z$1.array(z$1.string()).optional(),yes:z$1.boolean(),overwrite:z$1.boolean(),cwd:z$1.string(),silent:z$1.boolean()}),wr=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{let r=Uo.parse({blocks:e,cwd:R__default.resolve(t.cwd),...t}),i=await b(r.cwd);i||(i=B({resolvedPaths:{cwd:r.cwd}})),r.blocks?.length||(d.error("Please specify at least one item to add."),process.exit(1));let{errors:o}=await Bt(r);if(o[E]){let{proceed:s}=await Qe({type:"confirm",name:"proceed",message:`You need to create a ${l.info("blocks.json")} file to add items. Proceed?`,initial:!0});s||(d.break(),process.exit(1)),i=await lt({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 mr(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){d.break(),w(r);}finally{x();}});async function jr(e){let t={},r={cwd:e.cwd,registryFile:R__default.resolve(e.cwd,e.registryFile),outputDir:R__default.resolve(e.cwd,e.outputDir)};if(!A.existsSync(r.registryFile))return t[z]=true,{errors:t,resolvePaths:null,config:null};if(!A.existsSync(R__default.resolve(e.cwd,"blocks.json")))return t[E]=true,{errors:t,resolvePaths:null,config:null};await A.mkdir(r.outputDir,{recursive:true});try{let i=await b(e.cwd);return {errors:t,config:i,resolvePaths:r}}catch{d.break(),d.error(`An invalid ${l.info("blocks.json")} file was found at ${l.info(e.cwd)}.
30
+ Before you can build the registry, you must create a valid ${l.info("blocks.json")} file by running the ${l.info("init")} command.`),d.break(),process.exit(1);}}var Wo=z$1.object({cwd:z$1.string(),registryFile:z$1.string(),outputDir:z$1.string(),verbose:z$1.boolean().optional().default(false)}),br=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 Go({cwd:R.resolve(t.cwd),registryFile:e,outputDir:t.output,verbose:t.verbose});});async function Go(e){try{let t=Wo.parse(e),[{errors:r,resolvePaths:i,config:o},s]=await Promise.all([jr(t),_(t.cwd)]);(r[E]||!s)&&(d.error(`A ${l.info("blocks.json")} file is required to build the registry. Run ${l.info("mercur init")} to create one.`),d.break(),await P({type:"build",payload:{outcome:"missing_config"}},{cwd:t.cwd}),process.exit(1)),(r[z]||!i)&&(d.error(`We could not find a registry file at ${l.info(R.resolve(t.cwd,t.registryFile))}.`),d.break(),await P({type:"build",payload:{outcome:"missing_registry_file"}},{cwd:t.cwd}),process.exit(1));let n=await M.readFile(i.registryFile,"utf-8"),m=Y.safeParse(JSON.parse(n));m.success||(d.error(`Invalid registry file found at ${l.info(i.registryFile)}.`),d.break(),process.exit(1));let p=h("Building registry..."),a=await Vo(m.data,o,s);for(let c of a.items)c.files=c.files?.filter((u,f,y)=>f===y.findIndex(v=>v.path===u.path)),c.dependencies&&(c.dependencies=c.dependencies.filter((u,f,y)=>f===y.findIndex(v=>v===u)));for(let c of a.items){if(!c.files)continue;p.start(`Building ${c.name}...`),c.$schema=Mt;for(let f of c.files){let y=s.isSrcDir?"src":"",v=R.resolve(i.cwd,y,f.path);try{if(!(await M.stat(v)).isFile())continue;f.content=await M.readFile(v,"utf-8");}catch(j){console.error("Error reading file in registry build:",v,j);continue}}let u=T.safeParse(c);if(!u.success){d.error(`Invalid registry item found for ${l.info(c.name)}.`);continue}await M.writeFile(R.resolve(i.outputDir,`${u.data.name}.json`),JSON.stringify(u.data,null,2));}if(await M.copyFile(i.registryFile,R.resolve(i.outputDir,"registry.json")),p.succeed("Building registry."),t.verbose){h(`The registry has ${l.info(a.items.length.toString())} items:`).succeed();for(let c of a.items){d.log(` - ${c.name}`);for(let u of c.files??[])d.log(` - ${u.path}`);}}await P({type:"build",payload:{outcome:"success"}},{cwd:t.cwd});}catch(t){d.break(),w(t);}}async function Vo(e,t,r){for(let i of e.items)if(i.files?.length)for(let o of i.files){let s=await at(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 He=".mercur/_generated",te=/route\.(ts|js)$/,Rr={"/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")'},xr={"/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 ht(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 a=>{let c={directories:[],pathnames:[]};try{let u=await M__default.readdir(a,{withFileTypes:!0});for(let f of u){if(o&&o(f.name))continue;let y=R__default.join(a,f.name);i&&i(y)||(f.isDirectory()?c.directories.push(y):(!r||r(y))&&c.pathnames.push(y));}}catch(u){if(u.code!=="ENOENT"||a===e)throw u;return null}return c}));m=[];for(let a of p)a&&(m.push(...a.directories),n.push(...a.pathnames));}return s&&n.sort(),n}async function Ye(e){return await M__default.stat(e).catch(()=>null)!==null}async function Je(e){await Ye(e)||await M__default.mkdir(e,{recursive:true});}function ue(e){return e.replace(/\\/g,"/")}function Ee(e){return e.split("/").reduce((r,i)=>{if(!i||te.test(i))return r;if(i.startsWith("[")&&i.endsWith("]")){let o=i.slice(1,-1);return `${r}/:${o}`}return `${r}/${i}`},"")||"/"}async function vt(e){return await Ye(e)?(await ht(e,{pathnameFilter:i=>te.test(i),ignorePartFilter:i=>i.startsWith("_")||i==="node_modules"})).map(i=>{let o=R__default.relative(e,i);return {filePath:ue(o),route:Ee(ue(o))}}):[]}function wt(e){return e.replace(/[-_]+(.)?/g,(t,r)=>r?r.toUpperCase():"").replace(/^[A-Z]/,t=>t.toLowerCase())}function Yo(e){return `../../src/api/${e.replace(/\.ts$/,"")}`}function Jo(e){return e.startsWith(":")?`$${wt(e.slice(1))}`:wt(e)}function kr(){return {children:new Map}}function Ko(e){let t=kr();for(let[r,i]of e){let o=r.split("/").filter(Boolean),s=t;for(let n of o){let m=Jo(n);s.children.has(m)||s.children.set(m,kr()),s=s.children.get(m);}s.importType=i;}return t}function Sr(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=Sr(s,t+" ");i.push(`${t} ${o}: ${n}`);}r.push(`{
31
31
  ${i.join(`;
32
32
  `)};
33
- ${t}}`);}return r.length===0?"{}":r.length===1?r[0]:r.join(" & ")}function Cr(e,t){let r=new Map;for(let[n,p]of Object.entries(_r))r.set(n,p);for(let[n,p]of Object.entries(kr))r.set(n,p);let i=t??Yo;for(let n of e){let p=i(n.filePath);r.set(n.route,`typeof import("${p}")`);}let o=Ko(r);return `// This file is generated automatically by Mercur CLI
33
+ ${t}}`);}return r.length===0?"{}":r.length===1?r[0]:r.join(" & ")}function Er(e,t){let r=new Map;for(let[n,m]of Object.entries(Rr))r.set(n,m);for(let[n,m]of Object.entries(xr))r.set(n,m);let i=t??Yo;for(let n of e){let m=i(n.filePath);r.set(n.route,`typeof import("${m}")`);}let o=Ko(r);return `// This file is generated automatically by Mercur CLI
34
34
  // Do not edit this file manually
35
35
 
36
- export type Routes = ${Ir(o,"")};
37
- `}async function Pr(e){let t=R__default.join(e,Ye,"index.ts"),r=R__default.join(e,"src","api"),i=R__default.dirname(t);await Ke(i);let o=await jt(r),s=Cr(o);await L__default.writeFile(t,s,"utf-8");}async function Tr(e,t){let r=R__default.join(e,Ye,"index.ts"),i=R__default.dirname(r);await Ke(i);let o=t.map(p=>{let m=p.indexOf("/api/"),a=m!==-1?p.slice(m+5):p;return {filePath:p,route:Se(ce(a))}}),n=Cr(o,p=>`../../src/${p.replace(/\.ts$/,"")}`);await L__default.writeFile(r,n,"utf-8");}async function Fr(e){let t={},r={cwd:e.cwd,registryFile:R__default.resolve(e.cwd,e.registryFile)};if(!A.existsSync(r.registryFile))return t[z]=true,{errors:t,resolvePaths:null,config:null};if(!A.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{d.break(),d.error(`An invalid ${l.info("blocks.json")} file was found at ${l.info(e.cwd)}.
38
- Before you can run registry:codegen, you must create a valid ${l.info("blocks.json")} file by running the ${l.info("init")} command.`),d.break(),process.exit(1);}}var Qo=z$1.object({cwd:z$1.string(),registryFile:z$1.string()}),Nr=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 Xo({cwd:R.resolve(t.cwd),registryFile:e});});async function Xo(e){try{let t=Qo.parse(e),{errors:r,resolvePaths:i}=await Fr(t);r[S]&&(d.error(`A ${l.info("blocks.json")} file is required to run registry:codegen. Run ${l.info("mercur init")} to create one.`),d.break(),process.exit(1)),(r[z]||!i)&&(d.error(`Could not find a registry file at ${l.info(R.resolve(t.cwd,t.registryFile))}.`),d.break(),process.exit(1));let o=await L.readFile(i.registryFile,"utf-8"),s=H.safeParse(JSON.parse(o));s.success||(d.error(`Invalid registry file at ${l.info(i.registryFile)}.`),d.break(),process.exit(1));let n=[];for(let m of s.data.items)if(m.files)for(let a of m.files)a.type==="registry:api"&&ee.test(a.path)&&n.push(a.path);if(n.length===0){d.warn("No API route files found in registry.");return}let p=h("Generating registry route types...");await Tr(t.cwd,n),p.succeed("Registry route types generated successfully."),d.break();}catch(t){d.break(),w(t);}}var ts=z$1.object({cwd:z$1.string()}),Mr=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 rs({cwd:R.resolve(e.cwd)});});async function rs(e){try{let t=ts.parse(e),r=h("Generating route types...");await Pr(t.cwd),r.succeed("Route types generated successfully."),d.break();}catch(t){d.break(),w(t);}}var kt=({contents:e,databaseUri:t})=>{let r=new Set,i=e;return e.includes("DATABASE_URL")||(i+=`
36
+ export type Routes = ${Sr(o,"")};
37
+ `}async function Ir(e){let t=R__default.join(e,He,"index.ts"),r=R__default.join(e,"src","api"),i=R__default.dirname(t);await Je(i);let o=await vt(r),s=Er(o);await M__default.writeFile(t,s,"utf-8");}async function Cr(e,t){let r=R__default.join(e,He,"index.ts"),i=R__default.dirname(r);await Je(i);let o=t.map(m=>{let p=m.indexOf("/api/"),a=p!==-1?m.slice(p+5):m;return {filePath:m,route:Ee(ue(a))}}),n=Er(o,m=>`../../src/${m.replace(/\.ts$/,"")}`);await M__default.writeFile(r,n,"utf-8");}async function $r(e){let t={},r={cwd:e.cwd,registryFile:R__default.resolve(e.cwd,e.registryFile)};if(!A.existsSync(r.registryFile))return t[z]=true,{errors:t,resolvePaths:null,config:null};if(!A.existsSync(R__default.resolve(e.cwd,"blocks.json")))return t[E]=true,{errors:t,resolvePaths:null,config:null};try{let i=await b(e.cwd);return {errors:t,config:i,resolvePaths:r}}catch{d.break(),d.error(`An invalid ${l.info("blocks.json")} file was found at ${l.info(e.cwd)}.
38
+ Before you can run registry:codegen, you must create a valid ${l.info("blocks.json")} file by running the ${l.info("init")} command.`),d.break(),process.exit(1);}}var Qo=z$1.object({cwd:z$1.string(),registryFile:z$1.string()}),Fr=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 Xo({cwd:R.resolve(t.cwd),registryFile:e});});async function Xo(e){try{let t=Qo.parse(e),{errors:r,resolvePaths:i}=await $r(t);r[E]&&(d.error(`A ${l.info("blocks.json")} file is required to run registry:codegen. Run ${l.info("mercur init")} to create one.`),d.break(),process.exit(1)),(r[z]||!i)&&(d.error(`Could not find a registry file at ${l.info(R.resolve(t.cwd,t.registryFile))}.`),d.break(),process.exit(1));let o=await M.readFile(i.registryFile,"utf-8"),s=Y.safeParse(JSON.parse(o));s.success||(d.error(`Invalid registry file at ${l.info(i.registryFile)}.`),d.break(),process.exit(1));let n=[];for(let p of s.data.items)if(p.files)for(let a of p.files)a.type==="registry:api"&&te.test(a.path)&&n.push(a.path);if(n.length===0){d.warn("No API route files found in registry.");return}let m=h("Generating registry route types...");await Cr(t.cwd,n),m.succeed("Registry route types generated successfully."),d.break();}catch(t){d.break(),w(t);}}var ts=z$1.object({cwd:z$1.string()}),Ar=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 rs({cwd:R.resolve(e.cwd)});});async function rs(e){try{let t=ts.parse(e),r=h("Generating route types...");await Ir(t.cwd),r.succeed("Route types generated successfully."),d.break();}catch(t){d.break(),w(t);}}var xt=({contents:e,databaseUri:t})=>{let r=new Set,i=e;return e.includes("DATABASE_URL")||(i+=`
39
39
  DATABASE_URL=your-connection-string-here`),i.split(`
40
40
  `).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(`
41
- `)},is=[{path:"packages/api"},{path:"apps/vendor"},{path:"apps/admin"}];async function Ze({projectDir:e,databaseUri:t}){try{await Promise.all(is.map(async({path:r})=>{let i=R__default.join(e,r);if(!A.existsSync(i))return;let o=R__default.join(i,".env.template"),s=R__default.join(i,".env");if(!r.includes("api")){A.existsSync(o)&&!A.existsSync(s)&&await A.copy(o,s);return}let p="";if(A.existsSync(o)){let m=await A.readFile(o,"utf8");p=kt({contents:m,databaseUri:t});}if(A.existsSync(s)){let m=await A.readFile(s,"utf8"),a=kt({contents:m,databaseUri:t});await A.writeFile(s,a);}else {let m=kt({contents:p,databaseUri:t});await A.writeFile(s,m);}}));}catch(r){d.error("Unable to manage environment files"),r instanceof Error&&d.error(r.message),process.exit(1);}}var Qe="localhost",Ce=5432,It="packages/api",ss="admin@mercur-test.com";async function Br(e){let t=e.projectName.replace(/[^a-zA-Z0-9]/g,"-"),{client:r,dbConnectionString:i}=await ns({dbConnectionString:e.dbConnectionString,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 as(r,t)?(await r.end(),zr({...e,dbName:t,connectionString:i,alreadyExists:!0})):(e.spinner&&(e.spinner.text=`Creating database "${t}"...`),await r.query(`CREATE DATABASE "${t}"`),await r.end(),zr({...e,dbName:t,connectionString:i,alreadyExists:!1}))}catch(o){return d.error(`Error creating database${o instanceof Error?`: ${o.message}`:""}.`),await r.end().catch(()=>{}),{success:false,dbName:t,connectionString:null}}}async function zr(e){let{projectDir:t,spinner:r,dbName:i,connectionString:o,alreadyExists:s}=e;if(await Ze({projectDir:t,databaseUri:o}),!await ds({projectDir:t,spinner:r}))return {success:false,dbName:i,connectionString:null};if(!await ms({projectDir:t,spinner:r}))return {success:false,dbName:i,connectionString:null};let m=await ps({projectDir:t});return {success:true,dbName:i,connectionString:o,alreadyExists:s,inviteToken:m}}async function ns({dbConnectionString:e,dbName:t,spinner:r}){if(e)try{let s=new Et.Client({connectionString:e});return await s.connect(),{client:s,dbConnectionString:e}}catch(s){return d.error(`Invalid database connection string${s instanceof Error?`: ${s.message}`:""}.`),{client:null,dbConnectionString:null}}let i="postgres",o="";try{let s=new Et.Client({user:i,password:o,host:Qe,port:Ce,database:"postgres"});return await s.connect(),{client:s,dbConnectionString:Ur({user:i,password:o,host:Qe,port:Ce,db:t})}}catch{r?.stop();let s=await et([{type:"text",name:"postgresUsername",message:"Enter your Postgres username",initial:"postgres"},{type:"password",name:"postgresPassword",message:"Enter your Postgres password"}]);if(!s.postgresUsername)return {client:null,dbConnectionString:null};i=s.postgresUsername,o=s.postgresPassword||"",r?.start("Connecting to database...");try{let n=new Et.Client({user:i,password:o,host:Qe,port:Ce,database:i});return await n.connect(),{client:n,dbConnectionString:Ur({user:i,password:o,host:Qe,port:Ce,db:t})}}catch(n){return d.error(`Couldn't connect to PostgreSQL${n instanceof Error?`: ${n.message}`:""}.`),{client:null,dbConnectionString:null}}}}async function as(e,t){return ((await e.query(`SELECT datname FROM pg_catalog.pg_database WHERE datname='${t}';`)).rowCount??0)>0}function Ur({user:e,password:t,host:r,port:i=Ce,db:o}){let s=encodeURIComponent(t);return `postgresql://${e}:${s}@${r}:${i}/${o}`}async function ds({projectDir:e,spinner:t}){let r=R__default.join(e,It),i=await N(r),o=t||h("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."),d.error(`Error running migrations${p instanceof Error?`: ${p.message}`:""}.`),false}}async function ps({projectDir:e}){let t=R__default.join(e,It),r=await N(t),i=r==="pnpm"?["pnpm","dlx"]:r==="bun"?["bunx"]:["npx"];try{return (await execa(i[0],[...i.slice(1),"medusa","user","-e",ss,"--invite"],{cwd:t})).stdout.match(/Invite token: (?<token>.+)/)?.groups?.token||null}catch(o){return d.error(`Error creating admin invite${o instanceof Error?`: ${o.message}`:""}.`),null}}async function ms({projectDir:e,spinner:t}){let r=R__default.join(e,It),i=await N(r),o=t||h("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...",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."),d.error(`Error seeding database${s instanceof Error?`: ${s.message}`:""}.`),false}}var Wr="canary",Ct=20,Vr={basic:"basic",plugin:"plugin"},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.").action(async(e,t)=>{try{Is();let r=e;if(!r){let{enteredName:a}=await et({type:"text",name:"enteredName",message:"What is your project named?",initial:t.template?`${t.template}-app`:"my-mercur",format:c=>c.trim(),validate:c=>vs(R__default.basename(R__default.resolve(c))).validForNewPackages?!0:"Invalid project name. Name should be lowercase, URL-friendly, and not start with a period or underscore."});a||process.exit(0),r=a;}let i=t.template;if(!i){let{selectedTemplate:a}=await et({type:"select",name:"selectedTemplate",message:`Which ${l.info("template")} would you like to use?`,choices:Object.entries(Vr).map(([c,u])=>({title:u,value:c}))});a||process.exit(0),i=a;}if(!t.skipEmail){let{wantsEmail:a}=await et({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(a){let{email:c}=await et({type:"text",name:"email",message:"Enter your email:",format:u=>u.trim()});c&&hr(c);}}let o=R__default.resolve(t.cwd,r);await js(o);let s=h("Downloading template...").start();await bs({projectDir:o,template:i}),s.succeed("Template downloaded successfully.");let n=await N(o);if(await ks(o,n),!t.deps)h("Dependency installation skipped.").warn();else {let a=h("Installing dependencies...").start(),c=Date.now(),u=await xs({projectDir:o,packageManager:n}),f=((Date.now()-c)/1e3).toFixed(1);u?a.succeed(`Dependencies installed successfully in ${f}s.`):(a.fail("Failed to install dependencies"),await P({type:"create",payload:{outcome:"dependency_installation_failed",packageManager:n}},{cwd:o}),process.exit(1));}let p=t.dbConnectionString,m;if(t.skipDb)h("Database setup skipped.").warn();else {let a=h("Setting up database...").start();m=await Br({projectDir:o,projectName:r,dbConnectionString:p,spinner:a}),m.success?(m.alreadyExists?a.warn(`Database ${l.info(m.dbName)} already exists. Skipping database creation.`):a.succeed(`Database ${l.info(m.dbName)} setup successfully.`),p=m.connectionString):(a.fail("Failed to setup database."),d.log(Gr()),await P({type:"create",payload:{outcome:"database_setup_failed"}},{cwd:o}),process.exit(1));}if(await Ze({projectDir:o,databaseUri:p}),await Es(o),await P({type:"create",payload:{outcome:"created"}},{cwd:o}),h("Mercur project successfully created!").succeed(),m?.success){h("Starting development server...").info();let a=m.inviteToken?`http://localhost:9000/dashboard/invite?token=${m.inviteToken}&first_run=true`:"http://localhost:9000/dashboard",c=exec(`${n==="npm"?"npm run":n} dev`,{cwd:o,env:process.env});c.stdout?.pipe(process.stdout),c.stderr?.pipe(process.stderr),ws({resources:["http://localhost:9000/health"],timeout:6e4}).then(async()=>{try{await gs(a);}catch{h("Open this URL in your browser to create your admin account:").info(),d.log(l.info(a));}}).catch(()=>{h("To create your admin account, visit:").info(),d.log(l.info(a));});}else d.log(le.bgGreen(le.black(" Next Steps "))),d.log(_s(o,n)),d.log(Gr()),d.break();}catch(r){d.break(),w(r);}finally{x();}});async function js(e){await A.pathExists(e)||await A.mkdir(e);}async function bs({projectDir:e,template:t}){let r=`https://codeload.github.com/mercurjs/mercur/tar.gz/${Wr}`,i=Vr[t],o=`mercur-${Wr.replace(/^v/,"").replaceAll("/","-")}/templates/${i}/`;await pipeline(await Rs(r),x$1({cwd:e,filter:s=>s.includes(o),strip:2+i.split("/").length}));}async function Rs(e){let t=await fetch(e);if(!t.body)throw new Error(`Failed to download: ${e}`);return Readable.from(t.body)}async function xs({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 d.error(`Error installing dependencies${o instanceof Error?`: ${o.message}`:""}.`),false}}function _s(e,t){let r=R__default.relative(process.cwd(),e),i=o=>le.bold(o);return `
41
+ `)},is=[{path:"packages/api"},{path:"apps/vendor"},{path:"apps/admin"}];async function Ke({projectDir:e,databaseUri:t}){try{await Promise.all(is.map(async({path:r})=>{let i=R__default.join(e,r);if(!A.existsSync(i))return;let o=R__default.join(i,".env.template"),s=R__default.join(i,".env");if(!r.includes("api")){A.existsSync(o)&&!A.existsSync(s)&&await A.copy(o,s);return}let m="";if(A.existsSync(o)){let p=await A.readFile(o,"utf8");m=xt({contents:p,databaseUri:t});}if(A.existsSync(s)){let p=await A.readFile(s,"utf8"),a=xt({contents:p,databaseUri:t});await A.writeFile(s,a);}else {let p=xt({contents:m,databaseUri:t});await A.writeFile(s,p);}}));}catch(r){d.error("Unable to manage environment files"),r instanceof Error&&d.error(r.message),process.exit(1);}}var ss="localhost",zr=5432,St="packages/api",ns="admin@mercur-test.com";async function Ur(e){let t=e.projectName.replace(/[^a-zA-Z0-9]/g,"-"),{client:r,dbConnectionString:i}=await as({dbConnectionString:e.dbConnectionString,dbHost:e.dbHost??ss,dbPort:e.dbPort??zr,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 ds(r,t)?(await r.end(),Mr({...e,dbName:t,connectionString:i,alreadyExists:!0})):(e.spinner&&(e.spinner.text=`Creating database "${t}"...`),await r.query(`CREATE DATABASE "${t}"`),await r.end(),Mr({...e,dbName:t,connectionString:i,alreadyExists:!1}))}catch(o){return d.error(`Error creating database${o instanceof Error?`: ${o.message}`:""}.`),await r.end().catch(()=>{}),{success:false,dbName:t,connectionString:null}}}async function Mr(e){let{projectDir:t,spinner:r,dbName:i,connectionString:o,alreadyExists:s}=e;if(await Ke({projectDir:t,databaseUri:o}),!await ps({projectDir:t,spinner:r}))return {success:false,dbName:i,connectionString:null};if(!await cs({projectDir:t,spinner:r}))return {success:false,dbName:i,connectionString:null};let p=await ms({projectDir:t});return {success:true,dbName:i,connectionString:o,alreadyExists:s,inviteToken:p}}async function as({dbConnectionString:e,dbHost:t,dbPort:r,dbName:i,spinner:o}){if(e)try{let n=new kt.Client({connectionString:e});return await n.connect(),{client:n,dbConnectionString:e}}catch(n){return d.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 kt.Client({user:"postgres",password:"",host:t,port:r,database:"postgres"});return await n.connect(),{client:n,dbConnectionString:Lr({user:"postgres",password:"",host:t,port:r,db:i})}}catch{}o?.stop(),d.break(),d.log(`PostgreSQL is required. Make sure it is installed and running on ${t}:${r}.`),d.break();let s=3;for(let n=1;n<=s;n++){let m=n>1?` (attempt ${n}/${s})`:"",p=await Qe([{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 a=p.postgresUsername,c=p.postgresPassword||"postgres";o?.start("Connecting to database...");try{let u=new kt.Client({user:a,password:c,host:t,port:r,database:"postgres"});return await u.connect(),o?.stop(),{client:u,dbConnectionString:Lr({user:a,password:c,host:t,port:r,db:i})}}catch(u){o?.stop();let f=u instanceof Error?u.message:String(u);n<s?d.warn(`Attempt ${n}/${s} failed: ${f}`):d.error(`Couldn't connect to PostgreSQL: ${f}
42
+ \u2192 Is PostgreSQL running? Try: pg_isready -h ${t} -p ${r}
43
+ \u2192 Check your username, password, and that the server is accessible.`);}}return {client:null,dbConnectionString:null}}async function ds(e,t){return ((await e.query(`SELECT datname FROM pg_catalog.pg_database WHERE datname='${t}';`)).rowCount??0)>0}function Lr({user:e,password:t,host:r,port:i=zr,db:o}){let s=encodeURIComponent(t);return `postgresql://${e}:${s}@${r}:${i}/${o}`}async function ps({projectDir:e,spinner:t}){let r=R__default.join(e,St),i=await O(r),o=t||h("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."),d.error(`Error running migrations${m instanceof Error?`: ${m.message}`:""}.`),false}}async function ms({projectDir:e}){let t=R__default.join(e,St),r=await O(t),i=r==="pnpm"?["pnpm","dlx"]:r==="bun"?["bunx"]:["npx"];try{return (await execa(i[0],[...i.slice(1),"medusa","user","-e",ns,"--invite"],{cwd:t})).stdout.match(/Invite token: (?<token>.+)/)?.groups?.token||null}catch(o){return d.error(`Error creating admin invite${o instanceof Error?`: ${o.message}`:""}.`),null}}async function cs({projectDir:e,spinner:t}){let r=R__default.join(e,St),i=await O(r),o=t||h("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...",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."),d.error(`Error seeding database${s instanceof Error?`: ${s.message}`:""}.`),false}}var Br="canary",Et=20,Gr={basic:"basic",plugin:"plugin"},Vr=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{Is();let r=e;if(!r){let{enteredName:a}=await Qe({type:"text",name:"enteredName",message:"What is your project named?",initial:t.template?`${t.template}-app`:"my-mercur",format:c=>c.trim(),validate:c=>ws(R__default.basename(R__default.resolve(c))).validForNewPackages?!0:"Invalid project name. Name should be lowercase, URL-friendly, and not start with a period or underscore."});a||process.exit(0),r=a;}let i=t.template;if(!i){let{selectedTemplate:a}=await Qe({type:"select",name:"selectedTemplate",message:`Which ${l.info("template")} would you like to use?`,choices:Object.entries(Gr).map(([c,u])=>({title:u,value:c}))});a||process.exit(0),i=a;}if(!t.skipEmail){let{wantsEmail:a}=await Qe({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(a){let{email:c}=await Qe({type:"text",name:"email",message:"Enter your email:",format:u=>u.trim()});c&&gr(c);}}let o=R__default.resolve(t.cwd,r);await bs(o);let s=h("Downloading template...").start();await Rs({projectDir:o,template:i}),s.succeed("Template downloaded successfully.");let n=await O(o);if(await _s(o,n),!t.deps)h("Dependency installation skipped.").warn();else {let a=h("Installing dependencies...").start(),c=Date.now(),u=await ks({projectDir:o,packageManager:n}),f=((Date.now()-c)/1e3).toFixed(1);u?a.succeed(`Dependencies installed successfully in ${f}s.`):(a.fail("Failed to install dependencies"),await P({type:"create",payload:{outcome:"dependency_installation_failed",packageManager:n}},{cwd:o}),process.exit(1));}let m=t.dbConnectionString,p;if(t.skipDb)h("Database setup skipped.").warn();else {let a=h("Setting up database...").start();p=await Ur({projectDir:o,projectName:r,dbConnectionString:m,dbHost:t.dbHost,dbPort:parseInt(t.dbPort,10),spinner:a}),p.success?(p.alreadyExists?a.warn(`Database ${l.info(p.dbName)} already exists. Skipping database creation.`):a.succeed(`Database ${l.info(p.dbName)} setup successfully.`),m=p.connectionString):(a.fail("Failed to setup database."),d.log(It()),await P({type:"create",payload:{outcome:"database_setup_failed"}},{cwd:o}),process.exit(1));}if(await Ke({projectDir:o,databaseUri:m}),await Ss(o),await P({type:"create",payload:{outcome:"created"}},{cwd:o}),h("Mercur project successfully created!").succeed(),p?.success){h("Starting development server...").info();let a=p.inviteToken?`http://localhost:9000/dashboard/invite?token=${p.inviteToken}&first_run=true`:"http://localhost:9000/dashboard",f=spawn(n==="npm"?"npm":n,n==="npm"?["run","dev"]:["dev"],{cwd:o,stdio:"inherit",env:process.env}),y=()=>{d.break(),d.log(H.bgGreen(H.black(" Project stopped. To start again: "))),d.log(Wr(o,n)),d.log(It()),d.break();};process.on("SIGINT",()=>{}),f.on("close",()=>{y(),process.exit(0);}),js({resources:["http://localhost:9000/health"],timeout:6e4}).then(async()=>{try{await ys(a);}catch{h("Open this URL in your browser to create your admin account:").info(),d.log(l.info(a));}}).catch(()=>{h("To create your admin account, visit:").info(),d.log(l.info(a));});}else d.log(H.bgGreen(H.black(" Next Steps "))),d.log(Wr(o,n)),d.log(It()),d.break();}catch(r){d.break(),w(r);}finally{x();}});async function bs(e){await A.pathExists(e)||await A.mkdir(e);}async function Rs({projectDir:e,template:t}){let r=`https://codeload.github.com/mercurjs/mercur/tar.gz/${Br}`,i=Gr[t],o=`mercur-${Br.replace(/^v/,"").replaceAll("/","-")}/templates/${i}/`;await pipeline(await xs(r),x$1({cwd:e,filter:s=>s.includes(o),strip:2+i.split("/").length}));}async function xs(e){let t=await fetch(e);if(!t.body)throw new Error(`Failed to download: ${e}`);return Readable.from(t.body)}async function ks({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 d.error(`Error installing dependencies${o instanceof Error?`: ${o.message}`:""}.`),false}}function Wr(e,t){let r=R__default.relative(process.cwd(),e),i=o=>H.bold(o);return `
42
44
  ${i("Launch Application:")}
43
45
 
44
46
  - cd ./${r}
@@ -46,8 +48,7 @@ ${i("Launch Application:")}
46
48
 
47
49
  ${i("Documentation:")}
48
50
 
49
- - ${Pt("Getting Started","https://mercurjs.com/docs/getting-started")}
50
- - ${Pt("Configuration","https://mercurjs.com/docs/configuration")}
51
- `}function Gr(){return `${le.bgCyan(le.black(" Have feedback? "))} Visit us on ${Pt("GitHub","https://github.com/mercurjs/mercur")}.`}function Pt(e,t){return hs(e,t,{fallback:(r,i)=>`${r}: ${le.cyan().underline(i)}`})}async function ks(e,t){let r=R__default.join(e,"package.json"),i=await A.readJSON(r),{stdout:o}=await execa(t,["--version"]);i.packageManager=`${t}@${o.trim()}`,await A.writeJSON(r,i,{spaces:2});}async function Es(e){try{await execa("git",["init"],{cwd:e}),d.info("Initialized a git repository.");}catch{throw new Error("Failed to initialize git repository.")}}function Ss(){let[e]=process.versions.node.split(".").map(Number);return e}function Is(){let e=Ss();if(e<Ct)throw new Error(`Mercur requires at least v${Ct} of Node.js. You're using v${e}. Please install at least v${Ct} and try again: https://nodejs.org/en/download`)}async function Hr(e,t){let{config:r}=t||{};if(V(e)){let[n]=await Q([e]);try{return H.parse(n)}catch(p){throw new C(e,p)}}if(!e.startsWith("@"))throw new Le(e);let i=e;i.endsWith("/registry")||(i=`${i}/registry`);let o=we(i,se(r));if(!o?.url)throw new ie(i);let[s]=await Q([o.url]);try{return H.parse(s)}catch(n){throw new C(i,n)}}async function rt(e,t){let{config:r}=t||{};return x(),Ge(e,se(r))}var Fs=z$1.object({blocks:z$1.array(z$1.string()).optional(),cwd:z$1.string()}),Yr=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=Fs.parse({blocks:e,cwd:R__default.resolve(t.cwd),type:t.type}),i=await b(r.cwd);i||(i=B({resolvedPaths:{cwd:r.cwd}})),r.blocks?.length||(d.error("Please specify at least one block to diff."),process.exit(1));let o=await rt(r.blocks,{config:i}),s=r.blocks.filter(p=>!o.some(m=>m.name===p));s.length>0&&(d.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 a=Ve(m,i,{isSrcDir:n?.isSrcDir??!1,path:r.cwd});if(!existsSync(a)){d.info(`File ${a} does not exist locally.`);continue}let c=await promises.readFile(a,"utf-8"),u=await qe({filename:m.path,raw:m.content,config:i,isRemote:!1}),f=diffLines(c,u);f.length>1&&(d.info(`
52
- File: ${l.info(m.path)}`),Os(f));}}catch(r){w(r);}finally{x();}});function Os(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 Jr=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{d.info("> project info"),console.log(await k(e.cwd)),d.break(),d.info("> blocks.json"),console.log(await b(e.cwd));}catch(t){w(t);}});var Ms=z$1.object({cwd:z$1.string(),query:z$1.string().optional(),registry:z$1.string().optional()}),Kr=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=Ms.parse({cwd:R__default.resolve(e.cwd),query:e.query,type:e.type,registry:e.registry}),r=await b(t.cwd);r||(r=B({resolvedPaths:{cwd:t.cwd}}));let o=(await Hr(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){w(t);}finally{x();}});var Zr=new Command().name("telemetry").description("enable or disable the collection of anonymous usage data. If no option is provided, the command enables the collection of anonymous usage data.").option("--enable","enable telemetry (default)").option("--disable","disable telemetry").action(async e=>{try{let t=!e.disable;vr(t),t?d.success("Telemetry enabled."):d.success("Telemetry disabled.");}catch(t){w(t);}});var Ws=z$1.object({cwd:z$1.string()}),Xr=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=Ws.parse({cwd:R__default.resolve(t.cwd),type:t.type}),i=await b(r.cwd);i||(i=B({resolvedPaths:{cwd:r.cwd}}));let o=await rt(e,{config:i});console.log(JSON.stringify(o,null,2)),process.exit(0);}catch(r){w(r);}finally{x();}});async function ti(e){let t=R__default.resolve(e.root,"src/vendor");if(!$t.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 a=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 v=f.split("/"),j=v[0]?.startsWith("@")?`${v[0]}/${v[1]}`:v[0],E=[...builtinModules,...builtinModules.map(F=>`node:${F}`)];return y?!!(j&&s.has(j)):!!(j&&s.has(j)||j&&E.includes(j))},output:{preserveModules:!1,interop:"auto",chunkFileNames:()=>"_chunks/[name]-[hash]"}}},plugins:[i()],logLevel:"silent",clearScreen:!1}),process.env.NODE_ENV=a;let c=R__default.join(n,"index.es.js"),u=R__default.join(n,"index.mjs");return $t.existsSync(c)&&$t.renameSync(c,u),!0}catch(m){return console.error(m),false}finally{try{await rm(p,{force:!0});}catch{}}}var ii=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=h("Building plugin..."),{Compiler:i}=await import('@medusajs/framework/build-tools'),o=new i(t,d),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),ti({root:t,outDir:p})])).every(a=>a===!0)?r.succeed("Plugin built successfully."):(r.fail("Plugin build failed."),process.exit(1));}catch(t){d.break(),w(t);}});process.on("SIGINT",()=>process.exit(0));process.on("SIGTERM",()=>process.exit(0));async function Ks(){let e=new Command().name("@mercurjs/cli").description("Add blocks from registries to your project").version(Ft.version,"-v, --version","display the version number");e.addCommand(br).addCommand(xr).addCommand(Nr).addCommand(Mr).addCommand(qr).addCommand(Yr).addCommand(Jr).addCommand(jr).addCommand(Kr).addCommand(Zr).addCommand(Xr).addCommand(ii),e.parse();}Ks();export{di as registryConfigItemSchema,Mt as registryConfigSchema,tn as registryIndexSchema,Nt as registryItemFileSchema,T as registryItemSchema,ai as registryItemTypeSchema,Lt as registryResolvedItemsTreeSchema,H as registrySchema};//# sourceMappingURL=index.js.map
51
+ - ${qr("Getting Started","https://docs.mercurjs.com/v2/welcome")}
52
+ `}function It(){return `${H.bgCyan(H.black(" Have feedback? "))} Visit us on ${qr("GitHub","https://github.com/mercurjs/mercur")}.`}function qr(e,t){return vs(e,t,{fallback:(r,i)=>`${r}: ${H.cyan().underline(i)}`})}async function _s(e,t){let r=R__default.join(e,"package.json"),i=await A.readJSON(r),{stdout:o}=await execa(t,["--version"]);i.packageManager=`${t}@${o.trim()}`,await A.writeJSON(r,i,{spaces:2});}async function Ss(e){try{await execa("git",["init"],{cwd:e}),d.info("Initialized a git repository.");}catch{throw new Error("Failed to initialize git repository.")}}function Es(){let[e]=process.versions.node.split(".").map(Number);return e}function Is(){let e=Es();if(e<Et)throw new Error(`Mercur requires at least v${Et} of Node.js. You're using v${e}. Please install at least v${Et} and try again: https://nodejs.org/en/download`)}async function Hr(e,t){let{config:r}=t||{};if(V(e)){let[n]=await X([e]);try{return Y.parse(n)}catch(m){throw new C(e,m)}}if(!e.startsWith("@"))throw new Ae(e);let i=e;i.endsWith("/registry")||(i=`${i}/registry`);let o=we(i,ne(r));if(!o?.url)throw new oe(i);let[s]=await X([o.url]);try{return Y.parse(s)}catch(n){throw new C(i,n)}}async function et(e,t){let{config:r}=t||{};return x(),We(e,ne(r))}var Fs=z$1.object({blocks:z$1.array(z$1.string()).optional(),cwd:z$1.string()}),Yr=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=Fs.parse({blocks:e,cwd:R__default.resolve(t.cwd),type:t.type}),i=await b(r.cwd);i||(i=B({resolvedPaths:{cwd:r.cwd}})),r.blocks?.length||(d.error("Please specify at least one block to diff."),process.exit(1));let o=await et(r.blocks,{config:i}),s=r.blocks.filter(m=>!o.some(p=>p.name===m));s.length>0&&(d.error(`Blocks ${s.join(", ")} not found in registry.`),process.exit(1));let n=await _(i.resolvedPaths.cwd);for(let m of o)for(let p of m.files){let a=Ge(p,i,{isSrcDir:n?.isSrcDir??!1,path:r.cwd});if(!existsSync(a)){d.info(`File ${a} does not exist locally.`);continue}let c=await promises.readFile(a,"utf-8"),u=await Ve({filename:p.path,raw:p.content,config:i,isRemote:!1}),f=diffLines(c,u);f.length>1&&(d.info(`
53
+ File: ${l.info(p.path)}`),Ns(f));}}catch(r){w(r);}finally{x();}});function Ns(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 Jr=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{d.info("> project info"),console.log(await _(e.cwd)),d.break(),d.info("> blocks.json"),console.log(await b(e.cwd));}catch(t){w(t);}});var Ls=z$1.object({cwd:z$1.string(),query:z$1.string().optional(),registry:z$1.string().optional()}),Kr=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=Ls.parse({cwd:R__default.resolve(e.cwd),query:e.query,type:e.type,registry:e.registry}),r=await b(t.cwd);r||(r=B({resolvedPaths:{cwd:t.cwd}}));let o=(await Hr(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){w(t);}finally{x();}});var Zr=new Command().name("telemetry").description("enable or disable the collection of anonymous usage data. If no option is provided, the command enables the collection of anonymous usage data.").option("--enable","enable telemetry (default)").option("--disable","disable telemetry").action(async e=>{try{let t=!e.disable;yr(t),t?d.success("Telemetry enabled."):d.success("Telemetry disabled.");}catch(t){w(t);}});var Ws=z$1.object({cwd:z$1.string()}),Xr=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=Ws.parse({cwd:R__default.resolve(t.cwd),type:t.type}),i=await b(r.cwd);i||(i=B({resolvedPaths:{cwd:r.cwd}}));let o=await et(e,{config:i});console.log(JSON.stringify(o,null,2)),process.exit(0);}catch(r){w(r);}finally{x();}});async function ti(e){let t=R__default.resolve(e.root,"src/vendor");if(!Pt.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 a=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:(f,y)=>{let v=f.split("/"),j=v[0]?.startsWith("@")?`${v[0]}/${v[1]}`:v[0],S=[...builtinModules,...builtinModules.map(F=>`node:${F}`)];return y?!!(j&&s.has(j)):!!(j&&s.has(j)||j&&S.includes(j))},output:{preserveModules:!1,interop:"auto",chunkFileNames:()=>"_chunks/[name]-[hash]"}}},plugins:[i()],logLevel:"silent",clearScreen:!1}),process.env.NODE_ENV=a;let c=R__default.join(n,"index.es.js"),u=R__default.join(n,"index.mjs");return Pt.existsSync(c)&&Pt.renameSync(c,u),!0}catch(p){return console.error(p),false}finally{try{await rm(m,{force:!0});}catch{}}}var ii=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=h("Building plugin..."),{Compiler:i}=await import('@medusajs/framework/build-tools'),o=new i(t,d),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),ti({root:t,outDir:m})])).every(a=>a===!0)?r.succeed("Plugin built successfully."):(r.fail("Plugin build failed."),process.exit(1));}catch(t){d.break(),w(t);}});process.on("SIGINT",()=>process.exit(0));process.on("SIGTERM",()=>process.exit(0));async function Ks(){let e=new Command().name("@mercurjs/cli").description("Add blocks from registries to your project").version($t.version,"-v, --version","display the version number");e.addCommand(wr).addCommand(br).addCommand(Fr).addCommand(Ar).addCommand(Vr).addCommand(Yr).addCommand(Jr).addCommand(vr).addCommand(Kr).addCommand(Zr).addCommand(Xr).addCommand(ii),e.parse();}Ks();export{di as registryConfigItemSchema,At as registryConfigSchema,tn as registryIndexSchema,Ft as registryItemFileSchema,T as registryItemSchema,ai as registryItemTypeSchema,Ot as registryResolvedItemsTreeSchema,Y as registrySchema};//# sourceMappingURL=index.js.map
53
54
  //# sourceMappingURL=index.js.map