@mercurjs/cli 2.0.0-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js ADDED
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env node
2
+ import {Command}from'commander';import*as k from'path';import k__default,{join,basename}from'path';import Xe from'prompts';import {z as z$1}from'zod';import {promises,existsSync,statSync}from'fs';import {cosmiconfig}from'cosmiconfig';import {loadConfig,createMatchPath}from'tsconfig-paths';import N from'fs-extra';import'typescript';import ot from'fast-glob';import {createHash}from'crypto';import rr from'deepmerge';import*as A from'fs/promises';import A__default from'fs/promises';import yo,{tmpdir,homedir}from'os';import {Project,ScriptKind}from'ts-morph';import le from'kleur';import Vi from'ora';import {execa}from'execa';import {detect}from'@antfu/ni';import {diffLines}from'diff';import {exec,execSync}from'child_process';import Xo from'chokidar';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 ws from'validate-npm-package-name';import vs from'wait-on';var Dt={version:"2.0.0-canary.0"};var Ft="MISSING_DIR_OR_EMPTY_PROJECT",S="MISSING_CONFIG",U="BUILD_MISSING_REGISTRY_FILE";var ei=z$1.enum(["registry:workflow","registry:api","registry:link","registry:module","registry:vendor","registry:admin","registry:lib"]),Ot=z$1.object({path:z$1.string(),content:z$1.string().optional(),type:ei,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(Ot)}),Y=z$1.object({name:z$1.string(),homepage:z$1.string(),items:z$1.array(T)}),Js=z$1.array(Nt),At=T.pick({dependencies:true,devDependencies:true,files:true,docs:true}),ti=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()})]),Lt=z$1.record(z$1.string().refine(e=>e.startsWith("@"),{message:"Registry names must start with @ (e.g., @mercurjs)"}),ti);var Te="https://registry.mercurjs.com/registry.json",Mt="https://registry.mercurjs.com/registry-item.json",fe=process.env.REGISTRY_URL??"https://raw.githubusercontent.com/mercurjs/mercur/new/packages/registry/r",I={"@mercurjs":`${fe}/{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);}},oe=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";}},$e=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";}},De=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";}},Fe=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";}},J=class extends _{constructor(r){let i=r?`Unknown registry "${r}". Make sure it is defined in agents.json as follows:
3
+ {
4
+ "registries": {
5
+ "${r}": "[URL_TO_REGISTRY]"
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";}},K=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}
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},Oe=class extends _{constructor(r,i){let o=`Registry "${r}" requires the following environment variables:
10
+
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";}},Ne=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 Ae=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}:
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 z=z$1.object({$schema:z$1.string().optional(),aliases:z$1.object({workflows:z$1.string(),api:z$1.string(),links:z$1.string(),modules:z$1.string(),vendor:z$1.string(),admin:z$1.string(),lib:z$1.string()}),registries:Lt.optional()}).strict(),zt=z.extend({resolvedPaths:z$1.object({cwd:z$1.string(),workflows:z$1.string(),api:z$1.string(),links:z$1.string(),modules:z$1.string(),vendor:z$1.string(),admin:z$1.string(),lib:z$1.string()})});async function O(e,t){return createMatchPath(t.absoluteBaseUrl,t.paths)(e,void 0,()=>true,[".ts",".tsx"])}var si="packages/api/src/workflows",ni="packages/api/src/api",ai="packages/api/src/links",di="packages/api/src/modules",pi="apps/vendor/src",mi="apps/admin/src",ci="packages/api/src/lib",ui=cosmiconfig("blocks",{searchPlaces:["blocks.json"]});async function j(e){let t=await li(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,workflows:await O(t.aliases.workflows,r),api:await O(t.aliases.api,r),links:await O(t.aliases.links,r),modules:await O(t.aliases.modules,r),vendor:await O(t.aliases.vendor,r),admin:await O(t.aliases.admin,r),lib:await O(t.aliases.lib,r)}})}async function li(e){try{let t=await ui.search(e);if(!t)return null;let r=z.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 Ae(e,t)}}function W(e){let t={resolvedPaths:{cwd:process.cwd(),admin:"",lib:"",links:"",modules:"",vendor:"",workflows:"",api:""},aliases:{workflows:si,api:ni,links:ai,modules:di,vendor:pi,admin:mi,lib:ci},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(e){let[t,r,i,o,s,n]=await Promise.all([N.pathExists(k__default.resolve(e,"src")),gi(e),ge(e),yi(e),hi(e),wi(e)]);return {isSrcDir:t,aliasPrefix:r,packageJson:i,medusaConfigFile:o?.file??null,medusaVersion:s,mercurVersion:n}}async function gi(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 ge(e="",t=true){let r=k__default.join(e,"package.json");return N.readJSONSync(r,{throws:t})}async function yi(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:k__default.resolve(e,k__default.dirname(r))}}async function hi(e){let r=ge(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=ge(k__default.join(e,k__default.dirname(o)),false)?.dependencies?.["@medusajs/framework"];if(n)return n}return null}async function wi(e){let r=ge(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=ge(k__default.join(e,k__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=k__default.resolve(e.cwd);if(!existsSync(r))return t[Ft]=true,{errors:t,config:null};let i=await j(r);if(!i)return t[S]=true,{errors:t,config:null};let o=await E(r);return {errors:t,config:i,projectInfo:o}}var Le={headers:{}};function nt(e){Le.headers={...Le.headers,...e};}function Gt(e){return Le.headers[e]||{}}function x(){Le.headers={};}function se(e){let t={aliases:{workflows:"packages/api/src/workflows",api:"packages/api/src/api",links:"packages/api/src/links",modules:"packages/api/src/modules",vendor:"apps/vendor/src",admin:"apps/admin/src",lib:"packages/api/src/lib"},registries:I};return {...t,...e||{},aliases:{...t.aliases,...e?.aliases||{}},registries:{...e?.registries||{},...I}}}function ye(e){return e.replace(/\${(\w+)}/g,(t,r)=>process.env[r]||"")}function he(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 bi=/^(@[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(bi);return t?{registry:t[1],item:t[2]}:{registry:null,item:e}}var Vt=[".tsx",".ts"],qt=["lib/utils.ts"],Ei=[/^(react|react-dom)(\/.*)?$/,/^(node|jsr|npm):.*$/],Si=new Project({compilerOptions:{}});function Ii(e){if(Ei.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=k.resolve(t.resolvedPaths.cwd,e),s=k.relative(t.resolvedPaths.cwd,o);if(qt.includes(s))return {dependencies:[],files:[]};let n=k.extname(e);if(!Vt.includes(n))return {dependencies:[],files:[]};if(i.has(s))return {dependencies:[],files:[]};i.add(s);try{if(!(await A.stat(o)).isFile())return {dependencies:[],files:[]}}catch{return {dependencies:[],files:[]}}let p=await A.readFile(o,"utf-8"),m=await Ci(k.basename(o)),a=Si.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=Ht(e),v={path:s,type:y,target:"",content:""};u.push(v);let R=a.getImportDeclarations();for(let L of R){let M=L.getModuleSpecifierValue(),Ie=M.startsWith(".");if(!(r.aliasPrefix&&M.startsWith(`${r.aliasPrefix}/`))&&!Ie){let F=Ii(M);F&&f.add(F);continue}let re=await O(M,c);if(Ie&&(re=k.resolve(k.dirname(o),M)),!re)continue;if(!k.extname(re))for(let F of Vt){let $t=`${re}${F}`;try{await A.access($t),re=$t;break}catch{continue}}let Ce=k.relative(t.resolvedPaths.cwd,re);if(i.has(Ce)||qt.includes(Ce))continue;let Zr=Ht(M),Qr={path:Ce,type:Zr,target:"",content:""};u.push(Qr);let Pe=await at(Ce,t,r,i);if(Pe.files)for(let F of Pe.files)i.has(F.path)||(i.add(F.path),u.push(F));Pe.dependencies&&Pe.dependencies.forEach(F=>f.add(F));}let D=Array.from(new Map(u.map(L=>[L.path,L])).values());return {dependencies:Array.from(f),files:D}}async function Ci(e){let t=await A.mkdtemp(k.join(tmpdir(),"mercur-"));return k.join(t,e)}function Ht(e){return e.includes("/workflows/")?"registry:workflow":e.includes("/api/")?"registry:api":e.includes("/links/")?"registry:link":e.includes("/modules/")?"registry:module":e.includes("/vendor")?"registry:vendor":e.includes("/admin")?"registry:admin":(e.includes("/lib/"),"registry:lib")}function V(e){try{return new URL(e),!0}catch{return false}}function Q(e){return e.endsWith(".json")&&!V(e)}function Pi(e){let t=new Set;if(typeof e=="string")for(let r of he(e))t.add(r);else {for(let r of he(e.url))t.add(r);if(e.params)for(let r of Object.values(e.params))for(let i of he(r))t.add(i);if(e.headers)for(let r of Object.values(e.headers))for(let i of he(r))t.add(i);}return Array.from(t)}function Yt(e,t){let i=Pi(t).filter(o=>!process.env[o]);if(i.length>0)throw new Oe(e,i)}var Me="{name}",Ti=`${Me}.json`,Jt=/\${(\w+)}/g,Kt="?",$i="&";function Di(e){return e.includes(Me)}function Zt(e){return Di(e)?e:`${e.endsWith("/")?e:`${e}/`}${Ti}`}function we(e,t){let{registry:r,item:i}=ne(e);if(!r)return null;let s=(t?.registries||{})[r];if(!s)throw new J(r);return Yt(r,s),{url:Fi(i,s),headers:Oi(s)}}function Fi(e,t,r){if(typeof t=="string"){let n=Zt(t).replace(Me,e);return ye(n)}let o=Zt(t.url).replace(Me,e);return o=ye(o),t.params?Ni(o,t.params):o}function Oi(e){if(typeof e=="string"||!e.headers)return {};let t={};for(let[r,i]of Object.entries(e.headers)){let o=ye(i);Ai(i,o)&&(t[r]=o);}return t}function Ni(e,t){let r=new URLSearchParams;for(let[s,n]of Object.entries(t)){let p=ye(n);p&&r.append(s,p);}let i=r.toString();if(!i)return e;let o=e.includes(Kt)?$i:Kt;return `${e}${o}${i}`}function Ai(e,t){let r=t.trim();if(!r)return false;if(e.includes("${")&&e.match(Jt)){let o=e.replace(Jt,"").trim();return r!==o}return true}function Qt(e){return V(e)||Q(e)?e:`${fe}/${e}`}var Ue=new Map;async function Li(e){let t=e;t.startsWith("file://")&&(t=t.slice(7)),t.startsWith("~/")&&(t=k__default.join(homedir(),t.slice(2)));let r=k__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=Qt(r);if(Ue.has(i))return Ue.get(i);if(Q(i)){let s=Li(i);return Ue.set(i,s),s}let o=(async()=>{let s=Gt(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 $e(i,p):n.status===404?new oe(i,p):n.status===403?new De(i,p):new Fe(i,n.status,p)}return n.json()})();return Ue.set(i,o),o}))}async function tr(e){try{let t=e;e.startsWith("~/")&&(t=k__default.join(homedir(),e.slice(2)));let r=k__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 tr(i);if(V(i)){let[n]=await X([i]);try{return T.parse(n)}catch(p){throw new C(i,p)}}if(i.startsWith("@")&&t?.registries){let n=dt([i],t),[p]=await X(n);try{return T.parse(p)}catch(m){throw new C(i,m)}}let o=`${fe}/${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(R=>R.startsWith("@"));if(v.length>0){let{registry:R}=ne(v[0]);throw new J(R)}}let{blocks:y}=await or(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=Wi(r,p),At.parse({dependencies:rr.all(r.map(a=>a.dependencies??[])),devDependencies:rr.all(r.map(a=>a.devDependencies??[])),files:Bi(r.map(a=>a.files??[])),docs:r.map(a=>a.docs).filter(Boolean).join(`
15
+ `)})}async function or(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 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,p=await or(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 zi(e){if(V(e)){let i=new URL(e).pathname,o=i.match(/\/([^/]+)\.json$/),s=o?o[1]:k__default.basename(i,".json");return {name:s,hash:q({name:s},e)}}if(Q(e)){let r=e.match(/\/([^/]+)\.json$/),i=r?r[1]:k__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 Wi(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:R}=zi(f),D=n.get(R)||[];D.length>0&&(y=D[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 Bi(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(`
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 Vi({text:e,isSilent:t?.silent??false})}async function H(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 sr(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 H(r.resolvedPaths.cwd);o?.start(),await Hi(s,e,t,r.resolvedPaths.cwd),o?.succeed();}async function Hi(e,t,r,i){if(e==="npm")return Yi(t,r,i);if(e==="deno")return Ji(t,r,i);t?.length&&await execa(e,["add",...t],{cwd:i}),r?.length&&await execa(e,["add","-D",...r],{cwd:i});}async function Yi(e,t,r){e.length&&await execa("npm",["install",...e],{cwd:r}),t.length&&await execa("npm",["install","-D",...t],{cwd:r});}async function Ji(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 nr(e,t,r={}){let{ignoreImports:i=false}=r,o=e.replace(/\r\n/g,`
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 R=y.split("/"),D=R[R.length-1];return `${f}@normalized/${D}${v}`}),m=p(o),a=p(s);return m===a}function Zi(e,t){if(e.type==="registry:workflow")return t.resolvedPaths.workflows;if(e.type==="registry:api")return t.resolvedPaths.api;if(e.type==="registry:link")return t.resolvedPaths.links;if(e.type==="registry:module")return t.resolvedPaths.modules;if(e.type==="registry:vendor")return t.resolvedPaths.vendor;if(e.type==="registry:admin")return t.resolvedPaths.admin;if(e.type==="registry:lib")return t.resolvedPaths.lib;throw new Error(`Unknown file type: ${e.type}`)}function Be(e,t,r){let i=Zi(e,t),o=Qi(e.path,i);return k__default.join(i,o)}function Qi(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 ro=new Project({compilerOptions:{}});async function io(e){let t=await promises.mkdtemp(k__default.join(tmpdir(),"mercurjs-")),r=k__default.basename(e,k__default.extname(e));return k__default.join(t,`${r}.ts`)}function oo(e){switch(k__default.extname(e).toLowerCase()){case ".tsx":case ".ts":return ScriptKind.TS;default:return ScriptKind.Unknown}}async function Ge(e){let t=k__default.extname(e.filename).toLowerCase();if(![".tsx",".ts"].includes(t))return e.raw;let r=oo(e.filename),i=await io(e.filename),o=ro.createSourceFile(i,e.raw,{scriptKind:r});for(let s of o.getImportStringLiterals()){let n=so(s.getLiteralValue(),e.config);s.setLiteralValue(n);}return o.getText()}function so(e,t){if(e.startsWith("@/workflows/")){let r=e.replace(/^@\/workflows\//,"");return `${t.aliases.workflows}/${r}`}if(e==="@/workflows")return t.aliases.workflows;if(e.startsWith("@/api/")){let r=e.replace(/^@\/api\//,"");return `${t.aliases.api}/${r}`}if(e==="@/api")return t.aliases.api;if(e.startsWith("@/links/")){let r=e.replace(/^@\/links\//,"");return `${t.aliases.links}/${r}`}if(e==="@/links")return t.aliases.links;if(e.startsWith("@/modules/")){let r=e.replace(/^@\/modules\//,"");return `${t.aliases.modules}/${r}`}if(e==="@/modules")return t.aliases.modules;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}`}if(e==="@/admin")return t.aliases.admin;if(e.startsWith("@/lib/")){let r=e.replace(/^@\/lib\//,"");return `${t.aliases.lib}/${r}`}return e==="@/lib"?t.aliases.lib: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 E(t.resolvedPaths.cwd),s=[],n=[],p=[],m=[];for(let u of e){let f=Be(u,t,{isSrcDir:o?.isSrcDir??false,path:r.path??""}),y=basename(u.path),v=k__default.dirname(f),R=existsSync(f);if(R&&statSync(f).isDirectory())throw new Error(`Cannot write to ${f}: path exists and is a directory. Please provide a file path instead.`);let D=await Ge({filename:u.path,raw:u.content,config:t});if(R&&!r.overwrite){let L=await promises.readFile(f,"utf-8");if(nr(L,D)){p.push(k__default.relative(t.resolvedPaths.cwd,f));continue}if(!r.yes){i.stop();let M=diffLines(L,D);d.info(`
20
+ File: ${l.info(y)}`),lo(M);let{overwrite:Ie}=await Xe({type:"confirm",name:"overwrite",message:`The file ${l.info(y)} already exists. Would you like to overwrite?`,initial:false});if(!Ie){m.push(k__default.relative(t.resolvedPaths.cwd,f));continue}}}existsSync(v)||await promises.mkdir(v,{recursive:true}),await promises.writeFile(f,D,"utf-8"),R?n.push(k__default.relative(t.resolvedPaths.cwd,f)):s.push(k__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 co=3;function uo(e,t=co){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 lo(e){let t=uo(e);if(t.length!==0)for(let r of t)r.startsWith("+ ")?process.stdout.write(`${l.success(r)}
24
+ `):r.startsWith("- ")?process.stdout.write(`${l.error(r)}
25
+ `):r.includes("lines hidden")?process.stdout.write(`${l.info(r)}
26
+ `):process.stdout.write(`${r}
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,se(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 sr(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=k__default.resolve(e.cwd);existsSync(r)||(t.MISSING_DIR=true);let i=await E(r);return {errors:t,projectInfo:i}}var ct=class{config;path=join(yo.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 pe=e=>Function("mm","return import(mm)")(e);function wo(){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 pe("os"),t=e.cpus();return {deploymentVendor:wo(),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 vo(),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 vo(){try{if(typeof process>"u"||process?.platform!=="linux")return !1;let e=await pe("fs");return (await pe("os")).release().toLowerCase().includes("microsoft")?!await ur():e.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft")?!await ur():!1}catch{return false}}var jo=async()=>{try{return (await pe("fs")).statSync("/run/.containerenv"),!0}catch{return false}};async function fr(){return await bo()||await Ro()}async function bo(){try{return (await pe("fs")).statSync("/.dockerenv"),!0}catch{return false}}async function Ro(){try{return (await pe("fs")).readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return false}}async function ur(){return await jo()||await fr()}var Ve=e=>createHash("sha256").update(e).digest("base64");var _o=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);},Eo=()=>ke.get("telemetry_enabled")&&process.env.MERCUR_DISABLE_TELEMETRY!=="true",P=async(e,t)=>{try{if(!Eo())return;let r=await E(t.cwd),{projectId:i}=Co(r.packageJson),o={nodeEnv:So(),nodeVersion:process.version,mercurVersion:r.mercurVersion,medusaVersion:r.medusaVersion,isSrcDir:r.isSrcDir,aliasPrefix:r.aliasPrefix,config:await j(t.cwd),projectId:i,systemInfo:await lr(),packageManager:await H(t.cwd),email:Po()};await fetch(_o,{body:JSON.stringify({...o,...e}),headers:{"Content-Type":"application/json"},method:"post"});}catch{}};function So(){return process.env.NODE_ENV||"development"}var Io=()=>{try{let e=execSync("git config --local --get remote.origin.url",{stdio:"pipe",timeout:1e3});return String(e).trim()}catch{return null}},Co=e=>{let t=Io();if(t)return {projectId:Ve(t)};let r=e.name;if(r)return {projectId:Ve(r)};let i=process.cwd();return {projectId:Ve(i)}},Po=()=>ke.get("telemetry_email")||void 0;var Do=z$1.object({cwd:z$1.string(),yes:z$1.boolean(),defaults:z$1.boolean(),silent:z$1.boolean()}),wr=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=Do.parse({cwd:k__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 j(e.cwd),r=t?await Oo(t,e):await Fo(e);if(!e.yes){let{proceed:s}=await Xe({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=k__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 Fo(e){if(e.defaults)return z.parse({$schema:Te,aliases:{workflows:"packages/api/src/workflows",api:"packages/api/src/api",links:"packages/api/src/links",modules:"packages/api/src/modules",vendor:"apps/vendor/src",admin:"apps/admin/src",lib:"packages/api/src/lib"},registries:I});d.info("");let t=await Xe([{type:"text",name:"workflows",message:`Configure the import alias for ${l.info("workflows")}:`,initial:"packages/api/src/workflows"},{type:"text",name:"api",message:`Configure the import alias for ${l.info("api")}:`,initial:"packages/api/src/api"},{type:"text",name:"links",message:`Configure the import alias for ${l.info("links")}:`,initial:"packages/api/src/links"},{type:"text",name:"modules",message:`Configure the import alias for ${l.info("modules")}:`,initial:"packages/api/src/modules"},{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"},{type:"text",name:"lib",message:`Configure the import alias for ${l.info("lib")}:`,initial:"packages/api/src/lib"}],{onCancel:()=>{process.exit(0);}});return z.parse({$schema:Te,aliases:{workflows:t.workflows??"packages/api/src/workflows",api:t.api??"packages/api/src/api",links:t.links??"packages/api/src/links",modules:t.modules??"packages/api/src/modules",vendor:t.vendor??"apps/vendor/src",admin:t.admin??"apps/admin/src",lib:t.lib??"packages/api/src/lib"},registries:I})}async function Oo(e,t){if(t.defaults)return z.parse({$schema:Te,aliases:{workflows:"packages/api/src/workflows",api:"packages/api/src/api",links:"packages/api/src/links",modules:"packages/api/src/modules",vendor:"apps/vendor/src",admin:"apps/admin/src",lib:"packages/api/src/lib"},registries:I});let r=await Xe([{type:"text",name:"workflows",message:`Configure the import alias for ${l.info("workflows")}:`,initial:e.aliases.workflows},{type:"text",name:"api",message:`Configure the import alias for ${l.info("api")}:`,initial:e.aliases.api},{type:"text",name:"links",message:`Configure the import alias for ${l.info("links")}:`,initial:e.aliases.links},{type:"text",name:"modules",message:`Configure the import alias for ${l.info("modules")}:`,initial:e.aliases.modules},{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},{type:"text",name:"lib",message:`Configure the import alias for ${l.info("lib")}:`,initial:e.aliases.lib}],{onCancel:()=>{process.exit(0);}});return z.parse({$schema:e.$schema,aliases:{workflows:r.workflows??e.aliases.workflows,api:r.api??e.aliases.api,links:r.links??e.aliases.links,modules:r.modules??e.aliases.modules,vendor:r.vendor??e.aliases.vendor,admin:r.admin??e.aliases.admin,lib:r.lib??e.aliases.lib}})}var Mo=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()}),vr=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=Mo.parse({blocks:e,cwd:k__default.resolve(t.cwd),...t}),i=await j(r.cwd);i||(i=W({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[S]){let{proceed:s}=await Xe({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:k__default.resolve(e.cwd,e.registryFile),outputDir:k__default.resolve(e.cwd,e.outputDir)};if(!N.existsSync(r.registryFile))return t[U]=true,{errors:t,resolvePaths:null,config:null};if(!N.existsSync(k__default.resolve(e.cwd,"blocks.json")))return t[S]=true,{errors:t,resolvePaths:null,config:null};await N.mkdir(r.outputDir,{recursive:true});try{let i=await j(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 zo=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 Wo({cwd:k.resolve(t.cwd),registryFile:e,outputDir:t.output,verbose:t.verbose});});async function Wo(e){try{let t=zo.parse(e),[{errors:r,resolvePaths:i,config:o},s]=await Promise.all([jr(t),E(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[U]||!i)&&(d.error(`We could not find a registry file at ${l.info(k.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 A.readFile(i.registryFile,"utf-8"),p=Y.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 Bo(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=Mt;for(let f of c.files){let y=s.isSrcDir?"src":"",v=k.resolve(i.cwd,y,f.path);try{if(!(await A.stat(v)).isFile())continue;f.content=await A.readFile(v,"utf-8");}catch(R){console.error("Error reading file in registry build:",v,R);continue}}let u=T.safeParse(c);if(!u.success){d.error(`Invalid registry item found for ${l.info(c.name)}.`);continue}await A.writeFile(k.resolve(i.outputDir,`${u.data.name}.json`),JSON.stringify(u.data,null,2));}if(await A.copyFile(i.registryFile,k.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 Bo(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 qe=".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")'},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/sellers":'typeof import("@mercurjs/core-plugin/api/admin/sellers/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=[],p=[e];for(;p.length>0;){let m=await Promise.all(p.map(async a=>{let c={directories:[],pathnames:[]};try{let u=await A__default.readdir(a,{withFileTypes:!0});for(let f of u){if(o&&o(f.name))continue;let y=k__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 He(e){return await A__default.stat(e).catch(()=>null)!==null}async function Ye(e){await He(e)||await A__default.mkdir(e,{recursive:true});}function ce(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 wt(e){return await He(e)?(await ht(e,{pathnameFilter:i=>te.test(i),ignorePartFilter:i=>i.startsWith("_")||i==="node_modules"})).map(i=>{let o=k__default.relative(e,i);return {filePath:ce(o),route:Ee(ce(o))}}):[]}function vt(e){return e.replace(/[-_]+(.)?/g,(t,r)=>r?r.toUpperCase():"").replace(/^[A-Z]/,t=>t.toLowerCase())}function qo(e){return `../../src/api/${e.replace(/\.ts$/,"")}`}function Ho(e){return e.startsWith(":")?`$${vt(e.slice(1))}`:vt(e)}function xr(){return {children:new Map}}function Yo(e){let t=xr();for(let[r,i]of e){let o=r.split("/").filter(Boolean),s=t;for(let n of o){let p=Ho(n);s.children.has(p)||s.children.set(p,xr()),s=s.children.get(p);}s.importType=i;}return t}function Er(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=Er(s,t+" ");i.push(`${t} ${o}: ${n}`);}r.push(`{
31
+ ${i.join(`;
32
+ `)};
33
+ ${t}}`);}return r.length===0?"{}":r.length===1?r[0]:r.join(" & ")}function Sr(e,t){let r=new Map;for(let[n,p]of Object.entries(Rr))r.set(n,p);for(let[n,p]of Object.entries(kr))r.set(n,p);let i=t??qo;for(let n of e){let p=i(n.filePath);r.set(n.route,`typeof import("${p}")`);}let o=Yo(r);return `// This file is generated automatically by Mercur CLI
34
+ // Do not edit this file manually
35
+
36
+ export type Routes = ${Er(o,"")};
37
+ `}async function jt(e){let t=k__default.join(e,qe,"index.ts"),r=k__default.join(e,"src","api"),i=k__default.dirname(t);await Ye(i);let o=await wt(r),s=Sr(o);await A__default.writeFile(t,s,"utf-8");}async function Ir(e,t){let r=k__default.join(e,qe,"index.ts"),i=k__default.dirname(r);await Ye(i);let o=t.map(p=>{let m=p.indexOf("/api/"),a=m!==-1?p.slice(m+5):p;return {filePath:p,route:Ee(ce(a))}}),n=Sr(o,p=>`../../src/${p.replace(/\.ts$/,"")}`);await A__default.writeFile(r,n,"utf-8");}async function Tr(e){let t={},r={cwd:e.cwd,registryFile:k__default.resolve(e.cwd,e.registryFile)};if(!N.existsSync(r.registryFile))return t[U]=true,{errors:t,resolvePaths:null,config:null};if(!N.existsSync(k__default.resolve(e.cwd,"blocks.json")))return t[S]=true,{errors:t,resolvePaths:null,config:null};try{let i=await j(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 Ko=z$1.object({cwd:z$1.string(),registryFile:z$1.string()}),Dr=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 Zo({cwd:k.resolve(t.cwd),registryFile:e});});async function Zo(e){try{let t=Ko.parse(e),{errors:r,resolvePaths:i}=await Tr(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[U]||!i)&&(d.error(`Could not find a registry file at ${l.info(k.resolve(t.cwd,t.registryFile))}.`),d.break(),process.exit(1));let o=await A.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 m of s.data.items)if(m.files)for(let a of m.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 p=h("Generating registry route types...");await Ir(t.cwd,n),p.succeed("Registry route types generated successfully."),d.break();}catch(t){d.break(),w(t);}}var es=z$1.object({cwd:z$1.string(),watch:z$1.boolean().default(false)}),Fr=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()).option("-w, --watch","watch for changes and regenerate types",false).action(async e=>{await ts({cwd:k.resolve(e.cwd),watch:e.watch});});async function ts(e){try{let t=es.parse(e),r=h("Generating route types...");await jt(t.cwd),r.succeed("Route types generated successfully."),t.watch?await rs(t.cwd):d.break();}catch(t){d.break(),w(t);}}async function rs(e){let t=k.join(e,"src","api"),r=Xo.watch(".",{cwd:t,persistent:true,ignoreInitial:true}),i=null,o=async()=>{i&&(clearTimeout(i),i=null),await r.close(),d.break(),d.info("Watcher stopped.");},s=async p=>{d.info(`Change detected in ${l.info(p)}. Regenerating...`);try{await jt(e);}catch(m){d.error("Failed to regenerate route types:",m),d.break();}},n=p=>{i&&clearTimeout(i),i=setTimeout(()=>s(p),100);};r.on("add",n).on("change",n).on("unlink",n).on("ready",()=>{d.info("Watching for changes... (Press Ctrl+C to stop)");}).on("error",p=>{d.error("Watcher error:",p),d.break();}),await new Promise(p=>{let m=()=>{o().then(p);};process.once("SIGINT",m),process.once("SIGTERM",m);});}var _t=({contents:e,databaseUri:t})=>{let r=new Set,i=e;return e.includes("DATABASE_URL")||(i+=`
39
+ DATABASE_URL=your-connection-string-here`),i.split(`
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 Ke({projectDir:e,databaseUri:t}){try{await Promise.all(is.map(async({path:r})=>{let i=k__default.join(e,r);if(!N.existsSync(i))return;let o=k__default.join(i,".env.template"),s=k__default.join(i,".env");if(!r.includes("api")){N.existsSync(o)&&!N.existsSync(s)&&await N.copy(o,s);return}let p="";if(N.existsSync(o)){let m=await N.readFile(o,"utf8");p=_t({contents:m,databaseUri:t});}if(N.existsSync(s)){let m=await N.readFile(s,"utf8"),a=_t({contents:m,databaseUri:t});await N.writeFile(s,a);}else {let m=_t({contents:p,databaseUri:t});await N.writeFile(s,m);}}));}catch(r){d.error("Unable to manage environment files"),r instanceof Error&&d.error(r.message),process.exit(1);}}var St="localhost",Ze=5432,Ct="packages/api",ss="admin@mercur-test.com";async function Ar(e){let t=e.projectName.replace(/[^a-zA-Z0-9]/g,"-"),{client:r,dbConnectionString:i}=await ns({dbConnectionString:e.dbConnectionString,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(),Or({...e,dbName:t,connectionString:i,alreadyExists:!0})):(e.spinner&&(e.spinner.text=`Creating database "${t}"...`),await r.query(`CREATE DATABASE "${t}"`),await r.end(),Or({...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 Or(e){let{projectDir:t,spinner:r,dbName:i,connectionString:o,alreadyExists:s}=e;if(await Ke({projectDir:t,databaseUri:o}),!await ds({projectDir:t,spinner:r}))return {success:false,dbName:i,connectionString:null};if(!await ms({projectDir:t}))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,spinner:t}){if(e)try{let o=new Et.Client({connectionString:e});return await o.connect(),{client:o,dbConnectionString:e}}catch(o){return d.error(`Invalid database connection string${o instanceof Error?`: ${o.message}`:""}.`),{client:null,dbConnectionString:null}}let r="postgres",i="";try{let o={user:r,password:i,host:St,port:Ze,db:"postgres"},s=new Et.Client(o);return await s.connect(),{client:s,dbConnectionString:Nr(o)}}catch{t?.stop();let o=await Xe([{type:"text",name:"postgresUsername",message:"Enter your Postgres username",initial:"postgres"},{type:"password",name:"postgresPassword",message:"Enter your Postgres password"}]);if(!o.postgresUsername)return {client:null,dbConnectionString:null};r=o.postgresUsername,i=o.postgresPassword||"",t?.start("Connecting to database...");try{let s=new Et.Client({user:r,password:i,host:St,port:Ze,database:r});return await s.connect(),{client:s,dbConnectionString:Nr({user:r,password:i,host:St,port:Ze,db:r})}}catch(s){return d.error(`Couldn't connect to PostgreSQL${s instanceof Error?`: ${s.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 Nr({user:e,password:t,host:r,port:i=Ze,db:o}){let s=encodeURIComponent(t);return `postgresql://${e}:${s}@${r}:${i}/${o}`}async function ds({projectDir:e,spinner:t}){let r=k__default.join(e,Ct),i=t||h("Running migrations...").start();try{return i.text="Building project...",await execa("npm",["run","build"],{cwd:r}),i.text="Running database migrations...",await execa("npx",["medusa","db:migrate"],{cwd:r}),t||i.succeed("Migrations completed successfully."),!0}catch(o){return i.fail("Failed to run migrations."),d.error(`Error running migrations${o instanceof Error?`: ${o.message}`:""}.`),false}}async function ps({projectDir:e}){let t=k__default.join(e,Ct);try{return (await execa("npx",["medusa","user","-e",ss,"--invite"],{cwd:t})).stdout.match(/Invite token: (?<token>.+)/)?.groups?.token||null}catch(r){return d.error(`Error creating admin invite${r instanceof Error?`: ${r.message}`:""}.`),null}}async function ms({projectDir:e}){let t=k__default.join(e,Ct),r=await H(t),i=h("Seeding database...").start();try{let o=r==="yarn"?["yarn","seed"]:r==="pnpm"?["pnpm","run","seed"]:r==="bun"?["bun","run","seed"]:["npm","run","seed"];return await execa(o[0],o.slice(1),{cwd:t}),i.succeed("Database seeded successfully."),!0}catch(o){return i.fail("Failed to seed database."),d.error(`Error seeding database${o instanceof Error?`: ${o.message}`:""}.`),false}}var Mr="new",Pt=20,Wr={basic:"basic",registry:"registry"},Br=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 or registry").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{Ss();let r=e;if(!r){let{enteredName:i}=await Xe({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(k__default.basename(k__default.resolve(c))).validForNewPackages?!0:"Invalid project name. Name should be lowercase, URL-friendly, and not start with a period or underscore."});i||process.exit(0),r=i;let o=t.template;if(!o){let{selectedTemplate:c}=await Xe({type:"select",name:"selectedTemplate",message:`Which ${l.info("template")} would you like to use?`,choices:Object.entries(Wr).map(([u,f])=>({title:f,value:u}))});c||process.exit(0),o=c;}let s=k__default.resolve(t.cwd,r);await js(s);let n=h("Downloading template...").start();await bs({projectDir:s,template:o}),n.succeed("Template downloaded successfully.");let p=await H(s);if(!t.deps)h("Dependency installation skipped.").warn();else {let c=h("Installing dependencies...").start(),u=Date.now(),f=await ks({projectDir:s,packageManager:p}),y=((Date.now()-u)/1e3).toFixed(1);f?c.succeed(`Dependencies installed successfully in ${y}s.`):(c.fail("Failed to install dependencies"),await P({type:"create",payload:{outcome:"dependency_installation_failed",packageManager:p}},{cwd:s}),process.exit(1));}let m=t.dbConnectionString,a;if(t.skipDb)h("Database setup skipped.").warn();else {let c=h("Setting up database...").start();a=await Ar({projectDir:s,projectName:r,dbConnectionString:m,spinner:c}),a.success?(a.alreadyExists?c.warn(`Database ${l.info(a.dbName)} already exists. Skipping database creation.`):c.succeed(`Database ${l.info(a.dbName)} setup successfully.`),m=a.connectionString):(c.fail("Failed to setup database."),d.log(Ur()),await P({type:"create",payload:{outcome:"database_setup_failed"}},{cwd:s}),process.exit(1));}if(!t.skipEmail){let{wantsEmail:c}=await Xe({type:"confirm",name:"wantsEmail",message:"Mind sharing your email? We reach out for priority support, community events, and invite-only meetups. We never spam.",initial:!1});if(c){let{email:u}=await Xe({type:"text",name:"email",message:"Enter your email:",format:f=>f.trim()});u&&gr(u);}}if(await Ke({projectDir:s,databaseUri:m}),await _s(s),await P({type:"create",payload:{outcome:"created"}},{cwd:s}),h("Mercur project successfully created!").succeed(),a?.success){h("Starting development server...").info();let c=k__default.join(s,"packages","api"),u=a.inviteToken?`http://localhost:9000/app/invite?token=${a.inviteToken}&first_run=true`:"http://localhost:9000/app",f=exec(`${p==="npm"?"npm run":p} dev`,{cwd:c,env:process.env});f.stdout?.pipe(process.stdout),f.stderr?.pipe(process.stderr),vs({resources:["http://localhost:9000/health"],timeout:6e4}).then(async()=>{try{await gs(u);}catch{h("Open this URL in your browser to create your admin account:").info(),d.log(l.info(u));}}).catch(()=>{h("To create your admin account, visit:").info(),d.log(l.info(u));});}else d.log(le.bgGreen(le.black(" Next Steps "))),d.log(xs(s,p)),d.log(Ur()),d.break();}}catch(r){d.break(),w(r);}finally{x();}});async function js(e){await N.pathExists(e)||await N.mkdir(e);}async function bs({projectDir:e,template:t}){let r=`https://codeload.github.com/mercurjs/mercur/tar.gz/${Mr}`,i=Wr[t],o=`mercur-${Mr.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 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:k__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 xs(e,t){let r=k__default.relative(process.cwd(),e),i=o=>le.bold(o);return `
42
+ ${i("Launch Application:")}
43
+
44
+ - cd ./${r}
45
+ - ${t==="npm"?"npm run":t} dev
46
+
47
+ ${i("Documentation:")}
48
+
49
+ - ${Tt("Getting Started","https://mercurjs.com/docs/getting-started")}
50
+ - ${Tt("Configuration","https://mercurjs.com/docs/configuration")}
51
+ `}function Ur(){return `${le.bgCyan(le.black(" Have feedback? "))} Visit us on ${Tt("GitHub","https://github.com/mercurjs/mercur")}.`}function Tt(e,t){return hs(e,t,{fallback:(r,i)=>`${r}: ${le.cyan().underline(i)}`})}async function _s(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 Ss(){let e=Es();if(e<Pt)throw new Error(`Mercur requires at least v${Pt} of Node.js. You're using v${e}. Please install at least v${Pt} and try again: https://nodejs.org/en/download`)}async function Gr(e,t){let{config:r}=t||{};if(V(e)){let[n]=await X([e]);try{return Y.parse(n)}catch(p){throw new C(e,p)}}if(!e.startsWith("@"))throw new Ne(e);let i=e;i.endsWith("/registry")||(i=`${i}/registry`);let o=we(i,se(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,se(r))}var Ds=z$1.object({blocks:z$1.array(z$1.string()).optional(),cwd:z$1.string()}),Vr=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=Ds.parse({blocks:e,cwd:k__default.resolve(t.cwd),type:t.type}),i=await j(r.cwd);i||(i=W({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(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 E(i.resolvedPaths.cwd);for(let p of o)for(let m of p.files){let a=Be(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 Ge({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)}`),Fs(f));}}catch(r){w(r);}finally{x();}});function Fs(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 qr=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(e.cwd)),d.break(),d.info("> blocks.json"),console.log(await j(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()}),Hr=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:k__default.resolve(e.cwd),query:e.query,type:e.type,registry:e.registry}),r=await j(t.cwd);r||(r=W({resolvedPaths:{cwd:t.cwd}}));let o=(await Gr(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 Yr=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()}),Kr=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:k__default.resolve(t.cwd),type:t.type}),i=await j(r.cwd);i||(i=W({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();}});process.on("SIGINT",()=>process.exit(0));process.on("SIGTERM",()=>process.exit(0));async function Gs(){let e=new Command().name("@mercurjs/cli").description("Add blocks from registries to your project").version(Dt.version,"-v, --version","display the version number");e.addCommand(vr).addCommand(br).addCommand(Dr).addCommand(Fr).addCommand(Br).addCommand(Vr).addCommand(qr).addCommand(wr).addCommand(Hr).addCommand(Yr).addCommand(Kr),e.parse();}Gs();export{ti as registryConfigItemSchema,Lt as registryConfigSchema,Js as registryIndexSchema,Ot as registryItemFileSchema,T as registryItemSchema,ei as registryItemTypeSchema,At as registryResolvedItemsTreeSchema,Y as registrySchema};//# sourceMappingURL=index.js.map
53
+ //# sourceMappingURL=index.js.map