@raycast/api 1.104.11 → 1.104.13

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.
@@ -878,7 +878,7 @@ You can try running 'cargo clean' and then 'cargo build --target ${ZS}' manually
878
878
  Make sure the tool name in the package.json corresponds to a file in the src/tools directory`)})||[],ie=["@raycast/api","react","react-devtools-raycast","@parcel/source-map"].concat(S.external||[]),ke=f.environment==="dist"?"external":"inline",He=[];function bt(Zt){He.push(Zt)}if(zm("info",`entry points ${JSON.stringify(O.concat(z))}`),await HQe({entryPoints:O,entryNames:"[name]",external:ie,environment:f.environment,sourceMap:ke,outputDir:f.outputDir},d,bt),await HQe({entryPoints:z,entryNames:"[name]",external:ie,environment:f.environment,sourceMap:ke,outputDir:Wd.join(f.outputDir,"tools")},d,bt),zm("info","compiled entry points"),k&&(AGe(S,He),zm("info","generated extension's TypeScript definitions")),f.skipTypeDeclarations?zm("info","skipping types generation"):f.environment==="dist"&&k&&(await e9t(),zm("info","checked TypeScript")),S.tools){let[Zt,ve]=WQe(".",S.tools);if(ve.length){let Vr=[];throw ve.forEach(wt=>{let Xe="";Xe=`${Wd.resolve(wt.filePath)}
879
879
  ${wt.level} ${wt.message}`,Vr.push(Xe)}),new Error(`extracting tool schemas failed
880
880
  ${(0,XQe.red)(Vr.join(`
881
- `))}`)}f.printExtractedSchemas&&(zm("info","extracted tool schemas:"),console.log(g3.ux.colorizeJson(Zt,{theme:{null:"red",string:"green",number:"magenta",boolean:"cyan",key:"white",comma:"yellow",brace:"yellow",bracket:"yellow"},pretty:!0}))),S.tools=Zt;try{let Vr=FQe();Vr&&(S.ai={...S.ai||{},...Vr})}catch(Vr){throw Vr instanceof Error&&(Vr.message=`reading AI file failed (${Vr.message})`),Vr}}delete S.type,Wm.writeFileSync(Wd.join(f.outputDir,"package.json"),JSON.stringify(S,null," ")),Wm.rmSync(Wd.join(f.outputDir,"assets"),{recursive:!0,force:!0}),Wm.existsSync("assets")&&Wm.cpSync("assets",Wd.join(f.outputDir,"assets"),{recursive:!0});let Rt=Wm.readdirSync(".",{withFileTypes:!0}).filter(Zt=>Zt.name.toLowerCase()==="help.md"&&Zt.isFile())[0];Rt&&Wm.cpSync(Rt.name,Wd.join(f.outputDir,"HELP.md")),YQe(f.outputDir,O),YQe(Wd.join(f.outputDir,"tools"),z),zm("success","built extension successfully")}async function HQe(f,d,S){let k=f.environment=="dist",O=await QQe.build({entryPoints:f.entryPoints,entryNames:f.entryNames,sourcemap:f.sourceMap,outdir:f.outputDir,platform:"node",external:f.external,target:"node22.14.0",jsxFactory:"_jsx",jsxFragment:"_jsxFragment",bundle:!0,minifyWhitespace:k,minifyIdentifiers:k,minifySyntax:k,write:!0,logLevel:"silent",metafile:f.metaOutputDir!="",banner:f.banner,alias:f.alias,loader:{".wasm":"binary"},plugins:[PGe,FGe(k,d,S),$Qe(k,d,S)]});if(O.errors.length>0){let z=O.errors[0];throw new Error(`build failed (${z.location?.file}:${z.location?.line}:${z.location?.column} ${z.location?.lineText}): ${z.text}`)}f.metaOutputDir&&O.metafile&&Wm.writeFileSync(Wd.join(f.metaOutputDir,"meta.json"),JSON.stringify(O.metafile,null," "),"utf-8")}function YQe(f,d){try{Wm.readdirSync(f).forEach(k=>{Wd.extname(k)===".js"&&(d.find(O=>Wd.basename(O,Wd.extname(O))===Wd.basename(k,Wd.extname(k)))||Wm.unlinkSync(Wd.join(f,k)))})}catch{}}async function e9t(){let f="./node_modules/.bin/tsc";if(!Wm.existsSync(f))throw new Error("please install the TypeScript compiler (npm install typescript)");try{await hw(f,["-p","tsconfig.json","--noEmit"],{preferLocal:!0,stderr:"inherit",stdout:"inherit"})}catch(d){throw new Error(`TypeScript check failed (${d.message})`)}}0&&(module.exports={build});
881
+ `))}`)}f.printExtractedSchemas&&(zm("info","extracted tool schemas:"),console.log(g3.ux.colorizeJson(Zt,{theme:{null:"red",string:"green",number:"magenta",boolean:"cyan",key:"white",comma:"yellow",brace:"yellow",bracket:"yellow"},pretty:!0}))),S.tools=Zt;try{let Vr=FQe();Vr&&(S.ai={...S.ai||{},...Vr})}catch(Vr){throw Vr instanceof Error&&(Vr.message=`reading AI file failed (${Vr.message})`),Vr}}delete S.type,Wm.writeFileSync(Wd.join(f.outputDir,"package.json"),JSON.stringify(S,null," ")),Wm.rmSync(Wd.join(f.outputDir,"assets"),{recursive:!0,force:!0}),Wm.existsSync("assets")&&Wm.cpSync("assets",Wd.join(f.outputDir,"assets"),{recursive:!0});let Rt=Wm.readdirSync(".",{withFileTypes:!0}).filter(Zt=>Zt.name.toLowerCase()==="help.md"&&Zt.isFile())[0];Rt&&Wm.cpSync(Rt.name,Wd.join(f.outputDir,"HELP.md")),YQe(f.outputDir,O),YQe(Wd.join(f.outputDir,"tools"),z),zm("success","built extension successfully")}async function HQe(f,d,S){let k=f.environment=="dist",O=await QQe.build({entryPoints:f.entryPoints,entryNames:f.entryNames,sourcemap:f.sourceMap,outdir:f.outputDir,platform:"node",external:f.external,target:"node22.22.2",jsxFactory:"_jsx",jsxFragment:"_jsxFragment",bundle:!0,minifyWhitespace:k,minifyIdentifiers:k,minifySyntax:k,write:!0,logLevel:"silent",metafile:f.metaOutputDir!="",banner:f.banner,alias:f.alias,loader:{".wasm":"binary"},plugins:[PGe,FGe(k,d,S),$Qe(k,d,S)]});if(O.errors.length>0){let z=O.errors[0];throw new Error(`build failed (${z.location?.file}:${z.location?.line}:${z.location?.column} ${z.location?.lineText}): ${z.text}`)}f.metaOutputDir&&O.metafile&&Wm.writeFileSync(Wd.join(f.metaOutputDir,"meta.json"),JSON.stringify(O.metafile,null," "),"utf-8")}function YQe(f,d){try{Wm.readdirSync(f).forEach(k=>{Wd.extname(k)===".js"&&(d.find(O=>Wd.basename(O,Wd.extname(O))===Wd.basename(k,Wd.extname(k)))||Wm.unlinkSync(Wd.join(f,k)))})}catch{}}async function e9t(){let f="./node_modules/.bin/tsc";if(!Wm.existsSync(f))throw new Error("please install the TypeScript compiler (npm install typescript)");try{await hw(f,["-p","tsconfig.json","--noEmit"],{preferLocal:!0,stderr:"inherit",stdout:"inherit"})}catch(d){throw new Error(`TypeScript check failed (${d.message})`)}}0&&(module.exports={build});
882
882
  /*! Bundled license information:
883
883
 
884
884
  typescript/lib/typescript.js:
@@ -879,7 +879,7 @@ You can try running 'cargo clean' and then 'cargo build --target ${oT}' manually
879
879
  Make sure the tool name in the package.json corresponds to a file in the src/tools directory`)})||[],Z=["@raycast/api","react","react-devtools-raycast","@parcel/source-map"].concat(v.external||[]),ge=u.environment==="dist"?"external":"inline",Le=[];function at(Lt){Le.push(Lt)}if(b_("info",`entry points ${JSON.stringify(P.concat(j))}`),await HKe({entryPoints:P,entryNames:"[name]",external:Z,environment:u.environment,sourceMap:ge,outputDir:u.outputDir},d,at),await HKe({entryPoints:j,entryNames:"[name]",external:Z,environment:u.environment,sourceMap:ge,outputDir:Gd.join(u.outputDir,"tools")},d,at),b_("info","compiled entry points"),x&&(AYe(v,Le),b_("info","generated extension's TypeScript definitions")),u.skipTypeDeclarations?b_("info","skipping types generation"):u.environment==="dist"&&x&&(await XMt(),b_("info","checked TypeScript")),v.tools){let[Lt,ye]=UKe(".",v.tools);if(ye.length){let Cr=[];throw ye.forEach(kt=>{let Ye="";Ye=`${Gd.resolve(kt.filePath)}
880
880
  ${kt.level} ${kt.message}`,Cr.push(Ye)}),new Error(`extracting tool schemas failed
881
881
  ${(0,XKe.red)(Cr.join(`
882
- `))}`)}u.printExtractedSchemas&&(b_("info","extracted tool schemas:"),console.log(I3.ux.colorizeJson(Lt,{theme:{null:"red",string:"green",number:"magenta",boolean:"cyan",key:"white",comma:"yellow",brace:"yellow",bracket:"yellow"},pretty:!0}))),v.tools=Lt;try{let Cr=FKe();Cr&&(v.ai={...v.ai||{},...Cr})}catch(Cr){throw Cr instanceof Error&&(Cr.message=`reading AI file failed (${Cr.message})`),Cr}}delete v.type,$m.writeFileSync(Gd.join(u.outputDir,"package.json"),JSON.stringify(v,null," ")),$m.rmSync(Gd.join(u.outputDir,"assets"),{recursive:!0,force:!0}),$m.existsSync("assets")&&$m.cpSync("assets",Gd.join(u.outputDir,"assets"),{recursive:!0});let Ct=$m.readdirSync(".",{withFileTypes:!0}).filter(Lt=>Lt.name.toLowerCase()==="help.md"&&Lt.isFile())[0];Ct&&$m.cpSync(Ct.name,Gd.join(u.outputDir,"HELP.md")),YKe(u.outputDir,P),YKe(Gd.join(u.outputDir,"tools"),j),b_("success","built extension successfully")}async function HKe(u,d,v){let x=u.environment=="dist",P=await QKe.build({entryPoints:u.entryPoints,entryNames:u.entryNames,sourcemap:u.sourceMap,outdir:u.outputDir,platform:"node",external:u.external,target:"node22.14.0",jsxFactory:"_jsx",jsxFragment:"_jsxFragment",bundle:!0,minifyWhitespace:x,minifyIdentifiers:x,minifySyntax:x,write:!0,logLevel:"silent",metafile:u.metaOutputDir!="",banner:u.banner,alias:u.alias,loader:{".wasm":"binary"},plugins:[PYe,FYe(x,d,v),$Ke(x,d,v)]});if(P.errors.length>0){let j=P.errors[0];throw new Error(`build failed (${j.location?.file}:${j.location?.line}:${j.location?.column} ${j.location?.lineText}): ${j.text}`)}u.metaOutputDir&&P.metafile&&$m.writeFileSync(Gd.join(u.metaOutputDir,"meta.json"),JSON.stringify(P.metafile,null," "),"utf-8")}function YKe(u,d){try{$m.readdirSync(u).forEach(x=>{Gd.extname(x)===".js"&&(d.find(P=>Gd.basename(P,Gd.extname(P))===Gd.basename(x,Gd.extname(x)))||$m.unlinkSync(Gd.join(u,x)))})}catch{}}async function XMt(){let u="./node_modules/.bin/tsc";if(!$m.existsSync(u))throw new Error("please install the TypeScript compiler (npm install typescript)");try{await N6(u,["-p","tsconfig.json","--noEmit"],{preferLocal:!0,stderr:"inherit",stdout:"inherit"})}catch(d){throw new Error(`TypeScript check failed (${d.message})`)}}var O3=null,Fz=null,F3=null,Fre=class u extends Q7{static aliases=["dev"];static description="Start the extension in development mode and watches for changes";static flags={"print-tool-schemas":AO.Flags.boolean({description:"Indicates whether to print the schema tools "+h3,default:!1,hidden:!0}),"print-instructions":AO.Flags.boolean({description:"Indicates whether to print the extension's instructions "+h3,default:!1,hidden:!0}),"print-tool-calls":AO.Flags.boolean({description:"Indicates whether to print the inputs and outputs of tools when they are called from Raycast "+h3,default:!0,hidden:!0})};async run(){let{flags:d}=await this.parse(u);await K7("start"),KMt(),eRt();let v=Kx();await tZe(!0,async x=>{let P=Kx();v!==P&&(KKe.rmSync(v,{recursive:!0,force:!0}),T2e(),v=P);try{await rDe({environment:"dev",outputDir:P,skipTypeDeclarations:!1,printExtractedSchemas:d["print-tool-schemas"]},x),K7("build-success")}catch(j){throw K7("build-failure",j.message),j}})}};function KMt(){["SIGINT","SIGTERM","SIGQUIT","SIGHUP"].forEach(d=>{process.prependListener(d,()=>{O3&&O3.close(),F3&&F3.kill(),Fz&&Fz.unwatch(),K7("stop").catch(()=>{}).finally(()=>{Ore.clearLine(process.stdout,0),b_("event","stopped development mode"),process.exit(0)})})})}function cT(u){try{O3?.add(u)}catch(d){throw new Error(`failed configuring file watcher (${d.message})`)}}async function tZe(u,d){let v=/^(\\.|~).*/;try{O3=DWe([],{ignored:v,persistent:!0,atomic:!0,ignoreInitial:!0})}catch(x){throw new Error(`failed creating file watcher (${x.message})`)}await ZMt(O3,d,async()=>{u&&await d(cT),O3?.on("all",async(x,P)=>{b_("event",`changed file ${P}`);try{await d(cT)}catch(j){j.stack?b_("error",j.stack):b_("error",j.message)}}),O3?.on("error",x=>{console.error(x),K7("build-failure",x.message)})}),cT("package.json"),cT("HELP.md"),cT("Help.md"),cT("help.md"),cT("ai.json"),cT("ai.yml"),cT("ai.yaml"),cT("src"),cT("assets")}async function ZMt(u,d,v){try{await v()}catch(x){x.stack?b_("error",x.stack):b_("error",x.message),u.close(),tZe(!1,d)}}function eRt(){tRt(),rRt()}function tRt(){try{Fz=new eZe.Tail(mee("log"))}catch{console.error("failed getting log file tail")}Fz?.on("line",u=>{rZe(u)}),Fz?.on("error",u=>{console.error("failed streaming file logs",u)})}function rRt(){let u="";try{u=x6().name}catch(x){console.error("could not read the manifest",x);return}F3=(0,ZKe.exec)(`log stream --level debug --predicate 'subsystem CONTAINS "com.raycast.extensions.${u}"' --style ndjson --color always`),F3.stderr=process.stderr;let d=F3.stdout;if(!d){console.error("failed getting os log (No stdout)");return}let v=Ore.createInterface({input:d});v.on("line",x=>{rZe(x)}),F3.on("error",x=>{console.error("failed streaming logs",x)}),F3.on("close",()=>{v.close()})}function rZe(u){try{let d=JSON.parse(u);Array.isArray(d)&&(d={messageType:d[0],eventMessage:d[1]});let v=new Date().toISOString().split("T")[1].split(".")[0],x;switch(d.messageType){case"Error":x=(0,f1.dim)((0,f1.yellow)(v))+" "+(0,f1.yellow)(d.eventMessage);break;case"Fault":x=(0,f1.dim)((0,f1.red)(v))+" "+(0,f1.red)(d.eventMessage);break;case"Info":if(d.eventMessage.startsWith("__tool_input__")||d.eventMessage.startsWith("__tool_output__")){let P=d.eventMessage.startsWith("__tool_input__");try{let j=JSON.parse(d.eventMessage.replace(/__tool_(input|output)__/g,""));x=(0,f1.dim)(v)+" "+(0,f1.blue)(j.tool.replace(/^tools\//,""))+" "+(j.namedExport==="confirmation"?"confirmation":"tool")+" "+(P?"called":"returned")+` with:
882
+ `))}`)}u.printExtractedSchemas&&(b_("info","extracted tool schemas:"),console.log(I3.ux.colorizeJson(Lt,{theme:{null:"red",string:"green",number:"magenta",boolean:"cyan",key:"white",comma:"yellow",brace:"yellow",bracket:"yellow"},pretty:!0}))),v.tools=Lt;try{let Cr=FKe();Cr&&(v.ai={...v.ai||{},...Cr})}catch(Cr){throw Cr instanceof Error&&(Cr.message=`reading AI file failed (${Cr.message})`),Cr}}delete v.type,$m.writeFileSync(Gd.join(u.outputDir,"package.json"),JSON.stringify(v,null," ")),$m.rmSync(Gd.join(u.outputDir,"assets"),{recursive:!0,force:!0}),$m.existsSync("assets")&&$m.cpSync("assets",Gd.join(u.outputDir,"assets"),{recursive:!0});let Ct=$m.readdirSync(".",{withFileTypes:!0}).filter(Lt=>Lt.name.toLowerCase()==="help.md"&&Lt.isFile())[0];Ct&&$m.cpSync(Ct.name,Gd.join(u.outputDir,"HELP.md")),YKe(u.outputDir,P),YKe(Gd.join(u.outputDir,"tools"),j),b_("success","built extension successfully")}async function HKe(u,d,v){let x=u.environment=="dist",P=await QKe.build({entryPoints:u.entryPoints,entryNames:u.entryNames,sourcemap:u.sourceMap,outdir:u.outputDir,platform:"node",external:u.external,target:"node22.22.2",jsxFactory:"_jsx",jsxFragment:"_jsxFragment",bundle:!0,minifyWhitespace:x,minifyIdentifiers:x,minifySyntax:x,write:!0,logLevel:"silent",metafile:u.metaOutputDir!="",banner:u.banner,alias:u.alias,loader:{".wasm":"binary"},plugins:[PYe,FYe(x,d,v),$Ke(x,d,v)]});if(P.errors.length>0){let j=P.errors[0];throw new Error(`build failed (${j.location?.file}:${j.location?.line}:${j.location?.column} ${j.location?.lineText}): ${j.text}`)}u.metaOutputDir&&P.metafile&&$m.writeFileSync(Gd.join(u.metaOutputDir,"meta.json"),JSON.stringify(P.metafile,null," "),"utf-8")}function YKe(u,d){try{$m.readdirSync(u).forEach(x=>{Gd.extname(x)===".js"&&(d.find(P=>Gd.basename(P,Gd.extname(P))===Gd.basename(x,Gd.extname(x)))||$m.unlinkSync(Gd.join(u,x)))})}catch{}}async function XMt(){let u="./node_modules/.bin/tsc";if(!$m.existsSync(u))throw new Error("please install the TypeScript compiler (npm install typescript)");try{await N6(u,["-p","tsconfig.json","--noEmit"],{preferLocal:!0,stderr:"inherit",stdout:"inherit"})}catch(d){throw new Error(`TypeScript check failed (${d.message})`)}}var O3=null,Fz=null,F3=null,Fre=class u extends Q7{static aliases=["dev"];static description="Start the extension in development mode and watches for changes";static flags={"print-tool-schemas":AO.Flags.boolean({description:"Indicates whether to print the schema tools "+h3,default:!1,hidden:!0}),"print-instructions":AO.Flags.boolean({description:"Indicates whether to print the extension's instructions "+h3,default:!1,hidden:!0}),"print-tool-calls":AO.Flags.boolean({description:"Indicates whether to print the inputs and outputs of tools when they are called from Raycast "+h3,default:!0,hidden:!0})};async run(){let{flags:d}=await this.parse(u);await K7("start"),KMt(),eRt();let v=Kx();await tZe(!0,async x=>{let P=Kx();v!==P&&(KKe.rmSync(v,{recursive:!0,force:!0}),T2e(),v=P);try{await rDe({environment:"dev",outputDir:P,skipTypeDeclarations:!1,printExtractedSchemas:d["print-tool-schemas"]},x),K7("build-success")}catch(j){throw K7("build-failure",j.message),j}})}};function KMt(){["SIGINT","SIGTERM","SIGQUIT","SIGHUP"].forEach(d=>{process.prependListener(d,()=>{O3&&O3.close(),F3&&F3.kill(),Fz&&Fz.unwatch(),K7("stop").catch(()=>{}).finally(()=>{Ore.clearLine(process.stdout,0),b_("event","stopped development mode"),process.exit(0)})})})}function cT(u){try{O3?.add(u)}catch(d){throw new Error(`failed configuring file watcher (${d.message})`)}}async function tZe(u,d){let v=/^(\\.|~).*/;try{O3=DWe([],{ignored:v,persistent:!0,atomic:!0,ignoreInitial:!0})}catch(x){throw new Error(`failed creating file watcher (${x.message})`)}await ZMt(O3,d,async()=>{u&&await d(cT),O3?.on("all",async(x,P)=>{b_("event",`changed file ${P}`);try{await d(cT)}catch(j){j.stack?b_("error",j.stack):b_("error",j.message)}}),O3?.on("error",x=>{console.error(x),K7("build-failure",x.message)})}),cT("package.json"),cT("HELP.md"),cT("Help.md"),cT("help.md"),cT("ai.json"),cT("ai.yml"),cT("ai.yaml"),cT("src"),cT("assets")}async function ZMt(u,d,v){try{await v()}catch(x){x.stack?b_("error",x.stack):b_("error",x.message),u.close(),tZe(!1,d)}}function eRt(){tRt(),rRt()}function tRt(){try{Fz=new eZe.Tail(mee("log"))}catch{console.error("failed getting log file tail")}Fz?.on("line",u=>{rZe(u)}),Fz?.on("error",u=>{console.error("failed streaming file logs",u)})}function rRt(){let u="";try{u=x6().name}catch(x){console.error("could not read the manifest",x);return}F3=(0,ZKe.exec)(`log stream --level debug --predicate 'subsystem CONTAINS "com.raycast.extensions.${u}"' --style ndjson --color always`),F3.stderr=process.stderr;let d=F3.stdout;if(!d){console.error("failed getting os log (No stdout)");return}let v=Ore.createInterface({input:d});v.on("line",x=>{rZe(x)}),F3.on("error",x=>{console.error("failed streaming logs",x)}),F3.on("close",()=>{v.close()})}function rZe(u){try{let d=JSON.parse(u);Array.isArray(d)&&(d={messageType:d[0],eventMessage:d[1]});let v=new Date().toISOString().split("T")[1].split(".")[0],x;switch(d.messageType){case"Error":x=(0,f1.dim)((0,f1.yellow)(v))+" "+(0,f1.yellow)(d.eventMessage);break;case"Fault":x=(0,f1.dim)((0,f1.red)(v))+" "+(0,f1.red)(d.eventMessage);break;case"Info":if(d.eventMessage.startsWith("__tool_input__")||d.eventMessage.startsWith("__tool_output__")){let P=d.eventMessage.startsWith("__tool_input__");try{let j=JSON.parse(d.eventMessage.replace(/__tool_(input|output)__/g,""));x=(0,f1.dim)(v)+" "+(0,f1.blue)(j.tool.replace(/^tools\//,""))+" "+(j.namedExport==="confirmation"?"confirmation":"tool")+" "+(P?"called":"returned")+` with:
883
883
  `+AO.ux.colorizeJson(j.log,{theme:{null:"red",string:"green",number:"magenta",boolean:"cyan",key:"white",comma:"yellow",brace:"yellow",bracket:"yellow"},pretty:!0})}catch{return}}else x=(0,f1.dim)(v)+" "+d.eventMessage;break;default:x=(0,f1.dim)(v)+" "+d.eventMessage}console.log(x)}catch{}}
884
884
  /*! Bundled license information:
885
885
 
@@ -934,7 +934,7 @@ You can try running 'cargo clean' and then 'cargo build --target ${DE}' manually
934
934
  Make sure the tool name in the package.json corresponds to a file in the src/tools directory`)})||[],E=["@raycast/api","react","react-devtools-raycast","@parcel/source-map"].concat(c.external||[]),L=i.environment==="dist"?"external":"inline",W=[];function re(ye){W.push(ye)}if(cu("info",`entry points ${JSON.stringify(g.concat(T))}`),await qPt({entryPoints:g,entryNames:"[name]",external:E,environment:i.environment,sourceMap:L,outputDir:i.outputDir},s,re),await qPt({entryPoints:T,entryNames:"[name]",external:E,environment:i.environment,sourceMap:L,outputDir:$h.join(i.outputDir,"tools")},s,re),cu("info","compiled entry points"),f&&(Twt(c,W),cu("info","generated extension's TypeScript definitions")),i.skipTypeDeclarations?cu("info","skipping types generation"):i.environment==="dist"&&f&&(await J7r(),cu("info","checked TypeScript")),c.tools){let[ye,G]=RPt(".",c.tools);if(G.length){let Be=[];throw G.forEach(Ae=>{let pe="";pe=`${$h.resolve(Ae.filePath)}
935
935
  ${Ae.level} ${Ae.message}`,Be.push(pe)}),new Error(`extracting tool schemas failed
936
936
  ${(0,WPt.red)(Be.join(`
937
- `))}`)}i.printExtractedSchemas&&(cu("info","extracted tool schemas:"),console.log(F5.ux.colorizeJson(ye,{theme:{null:"red",string:"green",number:"magenta",boolean:"cyan",key:"white",comma:"yellow",brace:"yellow",bracket:"yellow"},pretty:!0}))),c.tools=ye;try{let Be=rhe();Be&&(c.ai={...c.ai||{},...Be})}catch(Be){throw Be instanceof Error&&(Be.message=`reading AI file failed (${Be.message})`),Be}}delete c.type,Zg.writeFileSync($h.join(i.outputDir,"package.json"),JSON.stringify(c,null," ")),Zg.rmSync($h.join(i.outputDir,"assets"),{recursive:!0,force:!0}),Zg.existsSync("assets")&&Zg.cpSync("assets",$h.join(i.outputDir,"assets"),{recursive:!0});let fe=Zg.readdirSync(".",{withFileTypes:!0}).filter(ye=>ye.name.toLowerCase()==="help.md"&&ye.isFile())[0];fe&&Zg.cpSync(fe.name,$h.join(i.outputDir,"HELP.md")),JPt(i.outputDir,g),JPt($h.join(i.outputDir,"tools"),T),cu("success","built extension successfully")}async function qPt(i,s,c){let f=i.environment=="dist",g=await $Pt.build({entryPoints:i.entryPoints,entryNames:i.entryNames,sourcemap:i.sourceMap,outdir:i.outputDir,platform:"node",external:i.external,target:"node22.14.0",jsxFactory:"_jsx",jsxFragment:"_jsxFragment",bundle:!0,minifyWhitespace:f,minifyIdentifiers:f,minifySyntax:f,write:!0,logLevel:"silent",metafile:i.metaOutputDir!="",banner:i.banner,alias:i.alias,loader:{".wasm":"binary"},plugins:[xwt,Ewt(f,s,c),jPt(f,s,c)]});if(g.errors.length>0){let T=g.errors[0];throw new Error(`build failed (${T.location?.file}:${T.location?.line}:${T.location?.column} ${T.location?.lineText}): ${T.text}`)}i.metaOutputDir&&g.metafile&&Zg.writeFileSync($h.join(i.metaOutputDir,"meta.json"),JSON.stringify(g.metafile,null," "),"utf-8")}function JPt(i,s){try{Zg.readdirSync(i).forEach(f=>{$h.extname(f)===".js"&&(s.find(g=>$h.basename(g,$h.extname(g))===$h.basename(f,$h.extname(f)))||Zg.unlinkSync($h.join(i,f)))})}catch{}}async function J7r(){let i="./node_modules/.bin/tsc";if(!Zg.existsSync(i))throw new Error("please install the TypeScript compiler (npm install typescript)");try{await bS(i,["-p","tsconfig.json","--noEmit"],{preferLocal:!0,stderr:"inherit",stdout:"inherit"})}catch(s){throw new Error(`TypeScript check failed (${s.message})`)}}var N9e=require("child_process");var UPt=la(require("path")),zPt=".",VPt="-",SX;function iT(i){SX=i}function Kf(i,s){return new Promise((c,f)=>{s.verbose&&console.log(`Running git command${SX?` in ${SX}`:" in current directory"}: ${i}`),(0,N9e.exec)(i,{cwd:SX},(g,T,E)=>{if(s.throwOnError&&g){f(new Error(`failed running git ${g.message.replace(/oauth2:gho_[a-zA-Z0-9]+@/g,"oauth2:gho_xxxxx")}
937
+ `))}`)}i.printExtractedSchemas&&(cu("info","extracted tool schemas:"),console.log(F5.ux.colorizeJson(ye,{theme:{null:"red",string:"green",number:"magenta",boolean:"cyan",key:"white",comma:"yellow",brace:"yellow",bracket:"yellow"},pretty:!0}))),c.tools=ye;try{let Be=rhe();Be&&(c.ai={...c.ai||{},...Be})}catch(Be){throw Be instanceof Error&&(Be.message=`reading AI file failed (${Be.message})`),Be}}delete c.type,Zg.writeFileSync($h.join(i.outputDir,"package.json"),JSON.stringify(c,null," ")),Zg.rmSync($h.join(i.outputDir,"assets"),{recursive:!0,force:!0}),Zg.existsSync("assets")&&Zg.cpSync("assets",$h.join(i.outputDir,"assets"),{recursive:!0});let fe=Zg.readdirSync(".",{withFileTypes:!0}).filter(ye=>ye.name.toLowerCase()==="help.md"&&ye.isFile())[0];fe&&Zg.cpSync(fe.name,$h.join(i.outputDir,"HELP.md")),JPt(i.outputDir,g),JPt($h.join(i.outputDir,"tools"),T),cu("success","built extension successfully")}async function qPt(i,s,c){let f=i.environment=="dist",g=await $Pt.build({entryPoints:i.entryPoints,entryNames:i.entryNames,sourcemap:i.sourceMap,outdir:i.outputDir,platform:"node",external:i.external,target:"node22.22.2",jsxFactory:"_jsx",jsxFragment:"_jsxFragment",bundle:!0,minifyWhitespace:f,minifyIdentifiers:f,minifySyntax:f,write:!0,logLevel:"silent",metafile:i.metaOutputDir!="",banner:i.banner,alias:i.alias,loader:{".wasm":"binary"},plugins:[xwt,Ewt(f,s,c),jPt(f,s,c)]});if(g.errors.length>0){let T=g.errors[0];throw new Error(`build failed (${T.location?.file}:${T.location?.line}:${T.location?.column} ${T.location?.lineText}): ${T.text}`)}i.metaOutputDir&&g.metafile&&Zg.writeFileSync($h.join(i.metaOutputDir,"meta.json"),JSON.stringify(g.metafile,null," "),"utf-8")}function JPt(i,s){try{Zg.readdirSync(i).forEach(f=>{$h.extname(f)===".js"&&(s.find(g=>$h.basename(g,$h.extname(g))===$h.basename(f,$h.extname(f)))||Zg.unlinkSync($h.join(i,f)))})}catch{}}async function J7r(){let i="./node_modules/.bin/tsc";if(!Zg.existsSync(i))throw new Error("please install the TypeScript compiler (npm install typescript)");try{await bS(i,["-p","tsconfig.json","--noEmit"],{preferLocal:!0,stderr:"inherit",stdout:"inherit"})}catch(s){throw new Error(`TypeScript check failed (${s.message})`)}}var N9e=require("child_process");var UPt=la(require("path")),zPt=".",VPt="-",SX;function iT(i){SX=i}function Kf(i,s){return new Promise((c,f)=>{s.verbose&&console.log(`Running git command${SX?` in ${SX}`:" in current directory"}: ${i}`),(0,N9e.exec)(i,{cwd:SX},(g,T,E)=>{if(s.throwOnError&&g){f(new Error(`failed running git ${g.message.replace(/oauth2:gho_[a-zA-Z0-9]+@/g,"oauth2:gho_xxxxx")}
938
938
  ${T.trim()}
939
939
  ${E.trim()}`));return}s.verbose&&console.log(`${T.trim()}
940
940
  ${E.trim()}`),c(T.trim())})})}async function GPt(i){let c=(await Kf("git rev-list --max-parents=0 HEAD",{...i,throwOnError:!0})).split(/\r?\n/).filter(Boolean);return c[c.length-1]}function $7r(){return new Promise(i=>{(0,N9e.exec)("git --version",s=>{i(s===null)})})}async function ahe(i){return await $7r()?await Kf("git rev-parse --is-inside-work-tree",{...i,throwOnError:!1})==="true":(cu("info","git is not installed"),!1)}async function TX(i){return(await Kf("git status --porcelain=2",{...i,throwOnError:!0})).split(`
@@ -1 +1 @@
1
- "use strict";var G=Object.create;var m=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var L=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var A=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),S=(n,t)=>{for(var i in t)m(n,i,{get:t[i],enumerable:!0})},I=(n,t,i,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of O(t))!R.call(n,a)&&a!==i&&m(n,a,{get:()=>t[a],enumerable:!(o=D(t,a))||o.enumerable});return n};var h=(n,t,i)=>(i=n!=null?G(L(n)):{},I(t||!n||!n.__esModule?m(i,"default",{value:n,enumerable:!0}):i,n)),F=n=>I(m({},"__esModule",{value:!0}),n);var B=A((re,k)=>{var J=require("node:tty"),q=J?.WriteStream?.prototype?.hasColors?.()??!1,r=(n,t)=>{if(!q)return a=>a;let i=`\x1B[${n}m`,o=`\x1B[${t}m`;return a=>{let u=a+"",d=u.indexOf(o);if(d===-1)return i+u+o;let x=i,g=0,P=(t===22?o:"")+i;for(;d!==-1;)x+=u.slice(g,d)+P,g=d+o.length,d=u.indexOf(o,g);return x+=u.slice(g)+o,x}},e={};e.reset=r(0,0);e.bold=r(1,22);e.dim=r(2,22);e.italic=r(3,23);e.underline=r(4,24);e.overline=r(53,55);e.inverse=r(7,27);e.hidden=r(8,28);e.strikethrough=r(9,29);e.black=r(30,39);e.red=r(31,39);e.green=r(32,39);e.yellow=r(33,39);e.blue=r(34,39);e.magenta=r(35,39);e.cyan=r(36,39);e.white=r(37,39);e.gray=r(90,39);e.bgBlack=r(40,49);e.bgRed=r(41,49);e.bgGreen=r(42,49);e.bgYellow=r(43,49);e.bgBlue=r(44,49);e.bgMagenta=r(45,49);e.bgCyan=r(46,49);e.bgWhite=r(47,49);e.bgGray=r(100,49);e.redBright=r(91,39);e.greenBright=r(92,39);e.yellowBright=r(93,39);e.blueBright=r(94,39);e.magentaBright=r(95,39);e.cyanBright=r(96,39);e.whiteBright=r(97,39);e.bgRedBright=r(101,49);e.bgGreenBright=r(102,49);e.bgYellowBright=r(103,49);e.bgBlueBright=r(104,49);e.bgMagentaBright=r(105,49);e.bgCyanBright=r(106,49);e.bgWhiteBright=r(107,49);k.exports=e});var $=A((ce,K)=>{K.exports={name:"ray",description:"Build extensions for Raycast with React and Node.js.",version:"1.104.11",author:"mathieudutour",private:!0,bin:{ray:"./bin/run.js"},dependencies:{"@oclif/core":"^4.8.4","@oclif/plugin-autocomplete":"^3.2.40","@oclif/plugin-help":"^6.2.37","@oclif/plugin-not-found":"^3.2.74","@raycast/eslint-plugin":"^2.1.1",ajv:"^8.18.0",archiver:"^7.0.1",camelcase:"^8.0.0",chokidar:"^4.0.3","cli-progress":"^3.12.0",clipboardy:"^2.3.0",execa:"^9.6.1","json-source-map":"^0.6.1",json5:"^2.2.3","node-fetch-cjs":"^3.3.2",open:"^8.4.2",ora:"^8.2.0",tail:"^2.2.6","terminal-link":"^3.0.0",yaml:"^2.8.2","yoctocolors-cjs":"^2.1.3"},devDependencies:{"@raycast/eslint-config":"^2.1.1","@types/archiver":"^7.0.0","@types/cli-progress":"^3.11.6","@types/node":"22.10.10","@types/tail":"^2.2.3",esbuild:"^0.27.3",eslint:"^9","json-schema-to-typescript":"^15.0.4",oclif:"^4.22.87",typescript:"^5.6.3"},files:["/bin","/dist","/oclif.manifest.json"],license:"MIT",main:"dist/index.js",oclif:{bin:"ray",dirname:"ray",commands:"./dist/commands",plugins:["@oclif/plugin-autocomplete","@oclif/plugin-help","@oclif/plugin-not-found"]},scripts:{"json-schema-to-ts":"json2ts ../../api/schema.json -y > src/types/manifest-schema.d.ts","build-scripts":'tsc "./scripts/build.ts" "./scripts/build-command.ts" "./scripts/dev-command.ts" --outDir ./scripts/dist --esModuleInterop',prebuild:"npm run json-schema-to-ts && npm run build-scripts",build:"node ./scripts/dist/build-command.js",predev:"npm run json-schema-to-ts && npm run build-scripts",dev:"node ./scripts/dist/dev-command.js",lint:"eslint . --ext .ts"},types:"dist/index.d.ts"}});var V={};S(V,{default:()=>b});module.exports=F(V);var l=require("@oclif/core");var f=h(require("node:fs")),v=h(require("node:path")),C=h(require("node:os"));var T={production:{url:"https://www.raycast.com",clientID:"KqAdcGhNfBKiUpfjD3nU3VNgh1t0iMPoX2hYEkN9d4I"},staging:{url:"https://www.rayca.st",clientID:"KqAdcGhNfBKiUpfjD3nU3VNgh1t0iMPoX2hYEkN9d4I"},development:{url:"http://localhost:3000",clientID:"rOCD_LhnXFObSLu9v7788qOGu25FZDqEzGjet4Q45ZY"}}[process.env.API_ENV||"production"],U="e69bae0ec90f5e838555",c={},E;function N(n){E=n;try{c=JSON.parse(f.readFileSync(v.join(Y(),"config.json"),"utf8"))}catch(t){if(t instanceof Error&&t.code==="ENOENT")return;throw new Error(`Failed to read config file: ${t}`)}}function _(n){switch(n){case"raycastApiURL":return process.env.RAY_APIURL||c.APIURL||T.url;case"raycastAccessToken":return process.env.RAY_TOKEN||c.Token||c.AccessToken||"";case"raycastClientId":return process.env.RAY_CLIENT_ID||c.ClientID||T.clientID;case"githubClientId":return process.env.RAY_GithubClientID||c.GithubClientID||U;case"githubAccessToken":return process.env.GITHUB_ACCESS_TOKEN||c.GithubAccessToken||"";case"flavorName":return process.env.RAY_Target?process.env.RAY_Target:typeof c.Target<"u"?c.Target:w(process.platform==="win32"?"x":"release")}}function w(n){switch(n){case"debug":return"debug";case"internal":return"internal";case"release":return"";case"x":return"x";case"x-internal":return"x-internal";case"x-development":return"x-development";case void 0:return _("flavorName")}}function M(){let n=w(E);return n==""?"raycast":`raycast-${n}`}function Y(){let n=v.join(C.default.homedir(),".config",M());return f.mkdirSync(n,{recursive:!0}),n}var s=h(B());var te=(0,s.blue)((0,s.dim)("internal only"));var p={wait:`\u{1F550}${(0,s.blue)("wait")} - `,info:`${process.env.GITHUB_ACTIONS==="true"?"\u2139\uFE0F":"\u2139\uFE0F "}${(0,s.cyan)("info")} - `,success:`\u2705${(0,s.green)("ready")} - `,warn:`${process.env.GITHUB_ACTIONS==="true"?"\u26A0\uFE0F":"\u26A0\uFE0F "}${(0,s.yellow)("warn")} - `,error:`\u{1F4A5}${(0,s.red)("error")} - `,event:`\u26A1\uFE0F${(0,s.magenta)("event")} - `,paymentPrompt:`\u{1F4B0}${(0,s.yellowBright)("plan")} - `},H=!0;function j(n,t){n||(p.wait=`${(0,s.blue)("wait")} - `,p.info=`${(0,s.cyan)("info")} - `,p.success=`${(0,s.green)("ready")} - `,p.warn=`${(0,s.yellow)("warn")} - `,p.error=`${(0,s.red)("error")} - `,p.event=`${(0,s.magenta)("event")} - `,p.paymentPrompt=`${(0,s.yellowBright)("plan")} - `),t&&(H=!1)}var y=class extends l.Command{static baseFlags={"exit-on-error":l.Flags.boolean({default:!0,helpGroup:"GLOBAL",aliases:["exitOnError"],deprecateAliases:!0,summary:"Always exit with non-zero code on error",allowNo:!0}),emoji:l.Flags.boolean({default:!1,helpGroup:"GLOBAL",summary:"Prefix output with emojis \u{1F308}"}),help:l.Flags.boolean({default:!1,helpGroup:"GLOBAL",summary:"Show the help message for the command"}),"non-interactive":l.Flags.boolean({char:"I",default:!1,helpGroup:"GLOBAL",summary:"Disable interactive outputs, useful for CI"}),target:l.Flags.option({char:"t",description:"Raycast app target",helpGroup:"GLOBAL",multiple:!1,options:["debug","internal","release","x","x-development","x-internal"],hidden:!0})()};flags;args;async init(){await super.init(),process.on("SIGINT",()=>process.exit(1));let{args:t,flags:i}=await this.parse({flags:this.ctor.flags,baseFlags:super.ctor.baseFlags,enableJsonFlag:this.ctor.enableJsonFlag,args:this.ctor.args,strict:this.ctor.strict});this.flags=i,this.args=t,N(this.flags.target),j(this.flags.emoji,this.flags["non-interactive"])}error(t,i){return i?.message&&t instanceof Error&&(t.message=`${i.message} (${t.message})`,delete i.message),super.error(t,i)}async catch(t){return super.catch(t)}async finally(t){return super.finally(t)}};var b=class n extends y{static description="Print the version number";async run(){await this.parse(n),this.log(`${$().version}`)}};
1
+ "use strict";var G=Object.create;var m=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var L=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var A=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),S=(n,t)=>{for(var i in t)m(n,i,{get:t[i],enumerable:!0})},I=(n,t,i,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of O(t))!R.call(n,a)&&a!==i&&m(n,a,{get:()=>t[a],enumerable:!(o=D(t,a))||o.enumerable});return n};var h=(n,t,i)=>(i=n!=null?G(L(n)):{},I(t||!n||!n.__esModule?m(i,"default",{value:n,enumerable:!0}):i,n)),F=n=>I(m({},"__esModule",{value:!0}),n);var B=A((re,k)=>{var J=require("node:tty"),q=J?.WriteStream?.prototype?.hasColors?.()??!1,r=(n,t)=>{if(!q)return a=>a;let i=`\x1B[${n}m`,o=`\x1B[${t}m`;return a=>{let u=a+"",d=u.indexOf(o);if(d===-1)return i+u+o;let x=i,g=0,P=(t===22?o:"")+i;for(;d!==-1;)x+=u.slice(g,d)+P,g=d+o.length,d=u.indexOf(o,g);return x+=u.slice(g)+o,x}},e={};e.reset=r(0,0);e.bold=r(1,22);e.dim=r(2,22);e.italic=r(3,23);e.underline=r(4,24);e.overline=r(53,55);e.inverse=r(7,27);e.hidden=r(8,28);e.strikethrough=r(9,29);e.black=r(30,39);e.red=r(31,39);e.green=r(32,39);e.yellow=r(33,39);e.blue=r(34,39);e.magenta=r(35,39);e.cyan=r(36,39);e.white=r(37,39);e.gray=r(90,39);e.bgBlack=r(40,49);e.bgRed=r(41,49);e.bgGreen=r(42,49);e.bgYellow=r(43,49);e.bgBlue=r(44,49);e.bgMagenta=r(45,49);e.bgCyan=r(46,49);e.bgWhite=r(47,49);e.bgGray=r(100,49);e.redBright=r(91,39);e.greenBright=r(92,39);e.yellowBright=r(93,39);e.blueBright=r(94,39);e.magentaBright=r(95,39);e.cyanBright=r(96,39);e.whiteBright=r(97,39);e.bgRedBright=r(101,49);e.bgGreenBright=r(102,49);e.bgYellowBright=r(103,49);e.bgBlueBright=r(104,49);e.bgMagentaBright=r(105,49);e.bgCyanBright=r(106,49);e.bgWhiteBright=r(107,49);k.exports=e});var $=A((ce,K)=>{K.exports={name:"ray",description:"Build extensions for Raycast with React and Node.js.",version:"1.104.13",author:"mathieudutour",private:!0,bin:{ray:"./bin/run.js"},dependencies:{"@oclif/core":"^4.8.4","@oclif/plugin-autocomplete":"^3.2.40","@oclif/plugin-help":"^6.2.37","@oclif/plugin-not-found":"^3.2.74","@raycast/eslint-plugin":"^2.1.1",ajv:"^8.18.0",archiver:"^7.0.1",camelcase:"^8.0.0",chokidar:"^4.0.3","cli-progress":"^3.12.0",clipboardy:"^2.3.0",execa:"^9.6.1","json-source-map":"^0.6.1",json5:"^2.2.3","node-fetch-cjs":"^3.3.2",open:"^8.4.2",ora:"^8.2.0",tail:"^2.2.6","terminal-link":"^3.0.0",yaml:"^2.8.2","yoctocolors-cjs":"^2.1.3"},devDependencies:{"@raycast/eslint-config":"^2.1.1","@types/archiver":"^7.0.0","@types/cli-progress":"^3.11.6","@types/node":"22.19.17","@types/tail":"^2.2.3",esbuild:"^0.27.3",eslint:"^9","json-schema-to-typescript":"^15.0.4",oclif:"^4.22.87",typescript:"^5.6.3"},files:["/bin","/dist","/oclif.manifest.json"],license:"MIT",main:"dist/index.js",oclif:{bin:"ray",dirname:"ray",commands:"./dist/commands",plugins:["@oclif/plugin-autocomplete","@oclif/plugin-help","@oclif/plugin-not-found"]},scripts:{"json-schema-to-ts":"json2ts ../../api/schema.json -y > src/types/manifest-schema.d.ts","build-scripts":'tsc "./scripts/build.ts" "./scripts/build-command.ts" "./scripts/dev-command.ts" --outDir ./scripts/dist --esModuleInterop',prebuild:"npm run json-schema-to-ts && npm run build-scripts",build:"node ./scripts/dist/build-command.js",predev:"npm run json-schema-to-ts && npm run build-scripts",dev:"node ./scripts/dist/dev-command.js",lint:"eslint . --ext .ts"},types:"dist/index.d.ts"}});var V={};S(V,{default:()=>b});module.exports=F(V);var l=require("@oclif/core");var f=h(require("node:fs")),v=h(require("node:path")),C=h(require("node:os"));var T={production:{url:"https://www.raycast.com",clientID:"KqAdcGhNfBKiUpfjD3nU3VNgh1t0iMPoX2hYEkN9d4I"},staging:{url:"https://www.rayca.st",clientID:"KqAdcGhNfBKiUpfjD3nU3VNgh1t0iMPoX2hYEkN9d4I"},development:{url:"http://localhost:3000",clientID:"rOCD_LhnXFObSLu9v7788qOGu25FZDqEzGjet4Q45ZY"}}[process.env.API_ENV||"production"],U="e69bae0ec90f5e838555",c={},E;function N(n){E=n;try{c=JSON.parse(f.readFileSync(v.join(Y(),"config.json"),"utf8"))}catch(t){if(t instanceof Error&&t.code==="ENOENT")return;throw new Error(`Failed to read config file: ${t}`)}}function _(n){switch(n){case"raycastApiURL":return process.env.RAY_APIURL||c.APIURL||T.url;case"raycastAccessToken":return process.env.RAY_TOKEN||c.Token||c.AccessToken||"";case"raycastClientId":return process.env.RAY_CLIENT_ID||c.ClientID||T.clientID;case"githubClientId":return process.env.RAY_GithubClientID||c.GithubClientID||U;case"githubAccessToken":return process.env.GITHUB_ACCESS_TOKEN||c.GithubAccessToken||"";case"flavorName":return process.env.RAY_Target?process.env.RAY_Target:typeof c.Target<"u"?c.Target:w(process.platform==="win32"?"x":"release")}}function w(n){switch(n){case"debug":return"debug";case"internal":return"internal";case"release":return"";case"x":return"x";case"x-internal":return"x-internal";case"x-development":return"x-development";case void 0:return _("flavorName")}}function M(){let n=w(E);return n==""?"raycast":`raycast-${n}`}function Y(){let n=v.join(C.default.homedir(),".config",M());return f.mkdirSync(n,{recursive:!0}),n}var s=h(B());var te=(0,s.blue)((0,s.dim)("internal only"));var p={wait:`\u{1F550}${(0,s.blue)("wait")} - `,info:`${process.env.GITHUB_ACTIONS==="true"?"\u2139\uFE0F":"\u2139\uFE0F "}${(0,s.cyan)("info")} - `,success:`\u2705${(0,s.green)("ready")} - `,warn:`${process.env.GITHUB_ACTIONS==="true"?"\u26A0\uFE0F":"\u26A0\uFE0F "}${(0,s.yellow)("warn")} - `,error:`\u{1F4A5}${(0,s.red)("error")} - `,event:`\u26A1\uFE0F${(0,s.magenta)("event")} - `,paymentPrompt:`\u{1F4B0}${(0,s.yellowBright)("plan")} - `},H=!0;function j(n,t){n||(p.wait=`${(0,s.blue)("wait")} - `,p.info=`${(0,s.cyan)("info")} - `,p.success=`${(0,s.green)("ready")} - `,p.warn=`${(0,s.yellow)("warn")} - `,p.error=`${(0,s.red)("error")} - `,p.event=`${(0,s.magenta)("event")} - `,p.paymentPrompt=`${(0,s.yellowBright)("plan")} - `),t&&(H=!1)}var y=class extends l.Command{static baseFlags={"exit-on-error":l.Flags.boolean({default:!0,helpGroup:"GLOBAL",aliases:["exitOnError"],deprecateAliases:!0,summary:"Always exit with non-zero code on error",allowNo:!0}),emoji:l.Flags.boolean({default:!1,helpGroup:"GLOBAL",summary:"Prefix output with emojis \u{1F308}"}),help:l.Flags.boolean({default:!1,helpGroup:"GLOBAL",summary:"Show the help message for the command"}),"non-interactive":l.Flags.boolean({char:"I",default:!1,helpGroup:"GLOBAL",summary:"Disable interactive outputs, useful for CI"}),target:l.Flags.option({char:"t",description:"Raycast app target",helpGroup:"GLOBAL",multiple:!1,options:["debug","internal","release","x","x-development","x-internal"],hidden:!0})()};flags;args;async init(){await super.init(),process.on("SIGINT",()=>process.exit(1));let{args:t,flags:i}=await this.parse({flags:this.ctor.flags,baseFlags:super.ctor.baseFlags,enableJsonFlag:this.ctor.enableJsonFlag,args:this.ctor.args,strict:this.ctor.strict});this.flags=i,this.args=t,N(this.flags.target),j(this.flags.emoji,this.flags["non-interactive"])}error(t,i){return i?.message&&t instanceof Error&&(t.message=`${i.message} (${t.message})`,delete i.message),super.error(t,i)}async catch(t){return super.catch(t)}async finally(t){return super.finally(t)}};var b=class n extends y{static description="Print the version number";async run(){await this.parse(n),this.log(`${$().version}`)}};
@@ -900,7 +900,7 @@ You can try running 'cargo clean' and then 'cargo build --target ${mC}' manually
900
900
  Make sure the tool name in the package.json corresponds to a file in the src/tools directory`)})||[],O=["@raycast/api","react","react-devtools-raycast","@parcel/source-map"].concat(u.external||[]),U=s.environment==="dist"?"external":"inline",oe=[];function de(Me){oe.push(Me)}if(lp("info",`entry points ${JSON.stringify(v.concat(C))}`),await b1t({entryPoints:v,entryNames:"[name]",external:O,environment:s.environment,sourceMap:U,outputDir:s.outputDir},a,de),await b1t({entryPoints:C,entryNames:"[name]",external:O,environment:s.environment,sourceMap:U,outputDir:dh.join(s.outputDir,"tools")},a,de),lp("info","compiled entry points"),m&&(rgt(u,oe),lp("info","generated extension's TypeScript definitions")),s.skipTypeDeclarations?lp("info","skipping types generation"):s.environment==="dist"&&m&&(await fvr(),lp("info","checked TypeScript")),u.tools){let[Me,te]=m1t(".",u.tools);if(te.length){let Ze=[];throw te.forEach(Ue=>{let De="";De=`${dh.resolve(Ue.filePath)}
901
901
  ${Ue.level} ${Ue.message}`,Ze.push(De)}),new Error(`extracting tool schemas failed
902
902
  ${(0,x1t.red)(Ze.join(`
903
- `))}`)}s.printExtractedSchemas&&(lp("info","extracted tool schemas:"),console.log(j7.ux.colorizeJson(Me,{theme:{null:"red",string:"green",number:"magenta",boolean:"cyan",key:"white",comma:"yellow",brace:"yellow",bracket:"yellow"},pretty:!0}))),u.tools=Me;try{let Ze=_fe();Ze&&(u.ai={...u.ai||{},...Ze})}catch(Ze){throw Ze instanceof Error&&(Ze.message=`reading AI file failed (${Ze.message})`),Ze}}delete u.type,xg.writeFileSync(dh.join(s.outputDir,"package.json"),JSON.stringify(u,null," ")),xg.rmSync(dh.join(s.outputDir,"assets"),{recursive:!0,force:!0}),xg.existsSync("assets")&&xg.cpSync("assets",dh.join(s.outputDir,"assets"),{recursive:!0});let ke=xg.readdirSync(".",{withFileTypes:!0}).filter(Me=>Me.name.toLowerCase()==="help.md"&&Me.isFile())[0];ke&&xg.cpSync(ke.name,dh.join(s.outputDir,"HELP.md")),S1t(s.outputDir,v),S1t(dh.join(s.outputDir,"tools"),C),lp("success","built extension successfully")}async function b1t(s,a,u){let m=s.environment=="dist",v=await T1t.build({entryPoints:s.entryPoints,entryNames:s.entryNames,sourcemap:s.sourceMap,outdir:s.outputDir,platform:"node",external:s.external,target:"node22.14.0",jsxFactory:"_jsx",jsxFragment:"_jsxFragment",bundle:!0,minifyWhitespace:m,minifyIdentifiers:m,minifySyntax:m,write:!0,logLevel:"silent",metafile:s.metaOutputDir!="",banner:s.banner,alias:s.alias,loader:{".wasm":"binary"},plugins:[ngt,agt(m,a,u),y1t(m,a,u)]});if(v.errors.length>0){let C=v.errors[0];throw new Error(`build failed (${C.location?.file}:${C.location?.line}:${C.location?.column} ${C.location?.lineText}): ${C.text}`)}s.metaOutputDir&&v.metafile&&xg.writeFileSync(dh.join(s.metaOutputDir,"meta.json"),JSON.stringify(v.metafile,null," "),"utf-8")}function S1t(s,a){try{xg.readdirSync(s).forEach(m=>{dh.extname(m)===".js"&&(a.find(v=>dh.basename(v,dh.extname(v))===dh.basename(m,dh.extname(m)))||xg.unlinkSync(dh.join(s,m)))})}catch{}}async function fvr(){let s="./node_modules/.bin/tsc";if(!xg.existsSync(s))throw new Error("please install the TypeScript compiler (npm install typescript)");try{await pN(s,["-p","tsconfig.json","--noEmit"],{preferLocal:!0,stderr:"inherit",stdout:"inherit"})}catch(a){throw new Error(`TypeScript check failed (${a.message})`)}}var TIe=To(require("crypto")),mvt=To(require("path")),cY=To(require("fs")),hvt=To(pIe()),fbr=require("@oclif/core");var lbr=require("@oclif/core"),dvt=To(pIe()),ubr=To(pvt());async function SIe(s,a){let u;try{u=await(0,dvt.default)(s,{method:a.method||"GET",headers:{"Content-Type":"application/json",Accept:"application/json",...a.token?{Authorization:`Bearer ${a.token}`}:void 0},body:a.body})}catch(m){throw new Error(`HTTP request: ${m.message}`)}if(!u.ok){switch(u.status){case 401:throw new zk(u,"not authorized - please log in first using `npx ray login`");case 403:throw new zk(u,"forbidden - you don't have permissions to perform the request");case 402:throw new zk(u,"the limit of free commands has been reached")}let m=await u.text(),v;try{v=JSON.parse(m)}catch{throw new zk(u,`HTTP error: ${u.status} - ${m}`)}throw Array.isArray(v.errors)&&v.errors.length>0?new zk(u,`error: ${v.errors[0].status} - ${v.errors[0].title}`):new zk(u,`HTTP error: ${u.status} - ${m}`)}return await u.json()}var zk=class extends Error{constructor(a,u){let m=a.headers.get("X-Request-Id");m?super(`${u} (${a.url} RequestID: ${m})`):super(u),this.name="HTTPError"}};var sFr=`${gH.url}/sessions/success`,aFr=`${gH.url}/sessions/failure`;function gvt(s){return Promise.all(s.map(async a=>{try{return await xIe(a,"image/png")}catch(u){throw new Error(`upload: ${u.message}`)}}))}async function xIe(s,a){let u=bB("raycastApiURL"),m=bB("raycastAccessToken"),v=cY.statSync(s),C=await SIe(`${u}/api/v1/direct_uploads`,{token:m,method:"POST",body:JSON.stringify({blob:{content_type:a,filename:mvt.basename(s),byte_size:v.size,checksum:TIe.createHash("md5").update(cY.readFileSync(s)).digest("base64")}})}),O=cY.readFileSync(s),U=await(0,hvt.default)(C.direct_upload.url,{method:"PUT",body:O,headers:C.direct_upload.headers});if(!U.ok)throw new zk(U,U.statusText);return C.signed_id}function yvt(s){let a=bB("raycastApiURL"),u=bB("raycastAccessToken");return SIe(`${a}/api/v1/versions`,{token:u,method:"POST",body:JSON.stringify(s)})}var CIe=require("child_process");var DIe;function lY(s,a){return new Promise((u,m)=>{a.verbose&&console.log(`Running git command${DIe?` in ${DIe}`:" in current directory"}: ${s}`),(0,CIe.exec)(s,{cwd:DIe},(v,C,O)=>{if(a.throwOnError&&v){m(new Error(`failed running git ${v.message.replace(/oauth2:gho_[a-zA-Z0-9]+@/g,"oauth2:gho_xxxxx")}
903
+ `))}`)}s.printExtractedSchemas&&(lp("info","extracted tool schemas:"),console.log(j7.ux.colorizeJson(Me,{theme:{null:"red",string:"green",number:"magenta",boolean:"cyan",key:"white",comma:"yellow",brace:"yellow",bracket:"yellow"},pretty:!0}))),u.tools=Me;try{let Ze=_fe();Ze&&(u.ai={...u.ai||{},...Ze})}catch(Ze){throw Ze instanceof Error&&(Ze.message=`reading AI file failed (${Ze.message})`),Ze}}delete u.type,xg.writeFileSync(dh.join(s.outputDir,"package.json"),JSON.stringify(u,null," ")),xg.rmSync(dh.join(s.outputDir,"assets"),{recursive:!0,force:!0}),xg.existsSync("assets")&&xg.cpSync("assets",dh.join(s.outputDir,"assets"),{recursive:!0});let ke=xg.readdirSync(".",{withFileTypes:!0}).filter(Me=>Me.name.toLowerCase()==="help.md"&&Me.isFile())[0];ke&&xg.cpSync(ke.name,dh.join(s.outputDir,"HELP.md")),S1t(s.outputDir,v),S1t(dh.join(s.outputDir,"tools"),C),lp("success","built extension successfully")}async function b1t(s,a,u){let m=s.environment=="dist",v=await T1t.build({entryPoints:s.entryPoints,entryNames:s.entryNames,sourcemap:s.sourceMap,outdir:s.outputDir,platform:"node",external:s.external,target:"node22.22.2",jsxFactory:"_jsx",jsxFragment:"_jsxFragment",bundle:!0,minifyWhitespace:m,minifyIdentifiers:m,minifySyntax:m,write:!0,logLevel:"silent",metafile:s.metaOutputDir!="",banner:s.banner,alias:s.alias,loader:{".wasm":"binary"},plugins:[ngt,agt(m,a,u),y1t(m,a,u)]});if(v.errors.length>0){let C=v.errors[0];throw new Error(`build failed (${C.location?.file}:${C.location?.line}:${C.location?.column} ${C.location?.lineText}): ${C.text}`)}s.metaOutputDir&&v.metafile&&xg.writeFileSync(dh.join(s.metaOutputDir,"meta.json"),JSON.stringify(v.metafile,null," "),"utf-8")}function S1t(s,a){try{xg.readdirSync(s).forEach(m=>{dh.extname(m)===".js"&&(a.find(v=>dh.basename(v,dh.extname(v))===dh.basename(m,dh.extname(m)))||xg.unlinkSync(dh.join(s,m)))})}catch{}}async function fvr(){let s="./node_modules/.bin/tsc";if(!xg.existsSync(s))throw new Error("please install the TypeScript compiler (npm install typescript)");try{await pN(s,["-p","tsconfig.json","--noEmit"],{preferLocal:!0,stderr:"inherit",stdout:"inherit"})}catch(a){throw new Error(`TypeScript check failed (${a.message})`)}}var TIe=To(require("crypto")),mvt=To(require("path")),cY=To(require("fs")),hvt=To(pIe()),fbr=require("@oclif/core");var lbr=require("@oclif/core"),dvt=To(pIe()),ubr=To(pvt());async function SIe(s,a){let u;try{u=await(0,dvt.default)(s,{method:a.method||"GET",headers:{"Content-Type":"application/json",Accept:"application/json",...a.token?{Authorization:`Bearer ${a.token}`}:void 0},body:a.body})}catch(m){throw new Error(`HTTP request: ${m.message}`)}if(!u.ok){switch(u.status){case 401:throw new zk(u,"not authorized - please log in first using `npx ray login`");case 403:throw new zk(u,"forbidden - you don't have permissions to perform the request");case 402:throw new zk(u,"the limit of free commands has been reached")}let m=await u.text(),v;try{v=JSON.parse(m)}catch{throw new zk(u,`HTTP error: ${u.status} - ${m}`)}throw Array.isArray(v.errors)&&v.errors.length>0?new zk(u,`error: ${v.errors[0].status} - ${v.errors[0].title}`):new zk(u,`HTTP error: ${u.status} - ${m}`)}return await u.json()}var zk=class extends Error{constructor(a,u){let m=a.headers.get("X-Request-Id");m?super(`${u} (${a.url} RequestID: ${m})`):super(u),this.name="HTTPError"}};var sFr=`${gH.url}/sessions/success`,aFr=`${gH.url}/sessions/failure`;function gvt(s){return Promise.all(s.map(async a=>{try{return await xIe(a,"image/png")}catch(u){throw new Error(`upload: ${u.message}`)}}))}async function xIe(s,a){let u=bB("raycastApiURL"),m=bB("raycastAccessToken"),v=cY.statSync(s),C=await SIe(`${u}/api/v1/direct_uploads`,{token:m,method:"POST",body:JSON.stringify({blob:{content_type:a,filename:mvt.basename(s),byte_size:v.size,checksum:TIe.createHash("md5").update(cY.readFileSync(s)).digest("base64")}})}),O=cY.readFileSync(s),U=await(0,hvt.default)(C.direct_upload.url,{method:"PUT",body:O,headers:C.direct_upload.headers});if(!U.ok)throw new zk(U,U.statusText);return C.signed_id}function yvt(s){let a=bB("raycastApiURL"),u=bB("raycastAccessToken");return SIe(`${a}/api/v1/versions`,{token:u,method:"POST",body:JSON.stringify(s)})}var CIe=require("child_process");var DIe;function lY(s,a){return new Promise((u,m)=>{a.verbose&&console.log(`Running git command${DIe?` in ${DIe}`:" in current directory"}: ${s}`),(0,CIe.exec)(s,{cwd:DIe},(v,C,O)=>{if(a.throwOnError&&v){m(new Error(`failed running git ${v.message.replace(/oauth2:gho_[a-zA-Z0-9]+@/g,"oauth2:gho_xxxxx")}
904
904
  ${C.trim()}
905
905
  ${O.trim()}`));return}a.verbose&&console.log(`${C.trim()}
906
906
  ${O.trim()}`),u(C.trim())})})}function _br(){return new Promise(s=>{(0,CIe.exec)("git --version",a=>{s(a===null)})})}async function vvt(s){return await _br()?await lY("git rev-parse --is-inside-work-tree",{...s,throwOnError:!1})==="true":(lp("info","git is not installed"),!1)}async function bvt(s){return await xvt(s)?(await lY("git remote get-url origin",{...s,throwOnError:!1})).replace(/\.[^./]+$/,""):""}function Svt(s){return lY("git rev-parse --show-prefix",{...s,throwOnError:!0})}async function Tvt(s){return await xvt(s)?lY("git rev-parse HEAD",{...s,throwOnError:!0}):""}async function xvt(s){try{return await lY("git remote get-url origin",{...s,throwOnError:!0}),!0}catch{return!1}}async function dbr(s,a={}){let u=await mbr(s);lp("info","archived extension");try{let m=await gbr(s,a),v=w0.existsSync("metadata")?w0.readdirSync("metadata").filter(O=>O.endsWith(".png")).map(O=>PN.resolve(PN.join("metadata",O))):[];v.length&&(m.metadata=await gvt(v),lp("info","uploaded metadata")),m.archive=await xIe(u,"application/zip"),lp("info","uploaded extension");let C=await yvt(m);return lp("info","created new version"),C}finally{w0.rmSync(u,{force:!0})}}async function mbr(s){let a=PN.join(".",s.name+".zip"),u=PN.join(".",s.name);try{return await XNe({environment:"dist",outputDir:u,skipTypeDeclarations:!1,printExtractedSchemas:!1},()=>{}),await hbr(u,a),a}finally{w0.rmSync(u,{recursive:!0,force:!0})}}function hbr(s,a){let u=w0.createWriteStream(a),m=(0,Dvt.default)("zip");return new Promise((v,C)=>{u.on("close",()=>{v(void 0)}),m.on("error",U=>{C(U),w0.rmSync(a,{force:!0})}),m.pipe(u);let O=PN.basename(s);m.directory(s,O),m.finalize()})}async function gbr(s,a={}){let u=s.commands.map(C=>({name:C.name,title:C.title,subtitle:C.subtitle,description:C.description,icon:C.icon,keywords:C.keywords,mode:C.mode,disabled_by_default:C.disabledByDefault})),m=s.tools?.map(C=>({name:C.name,title:C.title,description:C.description,icon:C.icon,keywords:C.keywords,...C.functionalities?{functionalities:C.functionalities}:{}}))||[],v=_fe();return v&&(s.ai={...s.ai||{},...v}),{name:s.name,title:s.title,description:s.description,icon:s.icon,keywords:s.keywords,categories:s.categories,license:s.license,author:s.author,owner:s.owner,access:s.access,native_id:s.native_id,contributors:s.contributors,past_contributors:s.pastContributors,commands:u,tools:m,platforms:s.platforms,...s.ai&&Array.isArray(s.ai.evals)?{prompt_examples:s.ai.evals.filter(C=>C.usedAsExample!==!1&&C.input).map(C=>C.input)}:{},...ybr(),...vbr(),...await Sbr(a),api_version:bbr(),archive:"",metadata:[]}}function ybr(){let a=w0.readdirSync(".",{withFileTypes:!0}).filter(v=>v.isFile()&&v.name.toLowerCase().startsWith("readme.")&&v.name.endsWith(".md"));if(!a.length)return;if(a.length===1){let v=a[0];return{readme_filename:v.name,readme:w0.readFileSync(v.name,"base64")}}let u=a.find(v=>v.name.toLowerCase()==="readme.md")?.name;if(u)return{readme_filename:u,readme:w0.readFileSync(u,"base64")};let m=a[0].name;return console.warn(`Multiple README files found (${a.join(", ")}). Using ${m}.`),{readme_filename:m,readme:w0.readFileSync(m,"base64")}}function vbr(){let s=w0.readdirSync(".",{withFileTypes:!0});for(let a of s)if(a.name.toLowerCase()==="changelog.md"&&a.isFile())return{changelog:w0.readFileSync(a.name,"base64")}}function bbr(){try{return JSON.parse(w0.readFileSync("./node_modules/@raycast/api/package.json","utf-8")).version}catch(s){throw new Error(`failed to read API version from @raycast/api package.json (${s.message})`)}}async function Sbr(s={}){if(await vvt(s))return{source_url:await bvt(s),relative_path:await Svt(s),commit_sha:await Tvt(s)};console.log("not inside git work tree")}0&&(module.exports={publishToStore});
@@ -482,10 +482,10 @@
482
482
  "index.js"
483
483
  ]
484
484
  },
485
- "migrate": {
485
+ "logout": {
486
486
  "aliases": [],
487
487
  "args": {},
488
- "description": "Migrate the extension to a newer version of the Raycast API\nInternally, the command makes use of https://www.npmjs.com/package/@raycast/migration",
488
+ "description": "Log out of your Raycast account",
489
489
  "flags": {
490
490
  "exit-on-error": {
491
491
  "aliases": [
@@ -537,38 +537,28 @@
537
537
  "x-internal"
538
538
  ],
539
539
  "type": "option"
540
- },
541
- "path": {
542
- "char": "p",
543
- "description": "Path to extension root",
544
- "name": "path",
545
- "default": ".",
546
- "hasDynamicHelp": false,
547
- "multiple": false,
548
- "type": "option"
549
540
  }
550
541
  },
551
542
  "hasDynamicHelp": false,
552
543
  "hiddenAliases": [],
553
- "id": "migrate",
544
+ "id": "logout",
554
545
  "pluginAlias": "ray",
555
546
  "pluginName": "ray",
556
547
  "pluginType": "core",
557
548
  "strict": true,
558
- "summary": "Migrate the extension to a newer version of the Raycast API",
559
549
  "enableJsonFlag": false,
560
550
  "isESM": false,
561
551
  "relativePath": [
562
552
  "dist",
563
553
  "commands",
564
- "migrate",
554
+ "logout",
565
555
  "index.js"
566
556
  ]
567
557
  },
568
- "logout": {
558
+ "migrate": {
569
559
  "aliases": [],
570
560
  "args": {},
571
- "description": "Log out of your Raycast account",
561
+ "description": "Migrate the extension to a newer version of the Raycast API\nInternally, the command makes use of https://www.npmjs.com/package/@raycast/migration",
572
562
  "flags": {
573
563
  "exit-on-error": {
574
564
  "aliases": [
@@ -620,21 +610,31 @@
620
610
  "x-internal"
621
611
  ],
622
612
  "type": "option"
613
+ },
614
+ "path": {
615
+ "char": "p",
616
+ "description": "Path to extension root",
617
+ "name": "path",
618
+ "default": ".",
619
+ "hasDynamicHelp": false,
620
+ "multiple": false,
621
+ "type": "option"
623
622
  }
624
623
  },
625
624
  "hasDynamicHelp": false,
626
625
  "hiddenAliases": [],
627
- "id": "logout",
626
+ "id": "migrate",
628
627
  "pluginAlias": "ray",
629
628
  "pluginName": "ray",
630
629
  "pluginType": "core",
631
630
  "strict": true,
631
+ "summary": "Migrate the extension to a newer version of the Raycast API",
632
632
  "enableJsonFlag": false,
633
633
  "isESM": false,
634
634
  "relativePath": [
635
635
  "dist",
636
636
  "commands",
637
- "logout",
637
+ "migrate",
638
638
  "index.js"
639
639
  ]
640
640
  },
@@ -1144,5 +1144,5 @@
1144
1144
  ]
1145
1145
  }
1146
1146
  },
1147
- "version": "1.104.11"
1147
+ "version": "1.104.13"
1148
1148
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raycast/api",
3
- "version": "1.104.11",
3
+ "version": "1.104.13",
4
4
  "description": "Build extensions for Raycast with React and Node.js.",
5
5
  "author": "Raycast Technologies Ltd.",
6
6
  "homepage": "https://developers.raycast.com",
@@ -10,20 +10,20 @@
10
10
  "license": "MIT",
11
11
  "types": "types/index.d.ts",
12
12
  "engines": {
13
- "node": ">=22.14.0"
13
+ "node": ">=22.22.2"
14
14
  },
15
15
  "dependencies": {
16
16
  "@oclif/core": "^4.8.4",
17
17
  "@oclif/plugin-autocomplete": "^3.2.40",
18
18
  "@oclif/plugin-help": "^6.2.37",
19
19
  "@oclif/plugin-not-found": "^3.2.74",
20
- "@types/node": "22.13.10",
20
+ "@types/node": "22.19.17",
21
21
  "@types/react": "19.0.10",
22
22
  "esbuild": "^0.27.3",
23
23
  "react": "19.0.0"
24
24
  },
25
25
  "peerDependencies": {
26
- "@types/node": "22.13.10",
26
+ "@types/node": "22.19.17",
27
27
  "@types/react": "19.0.10",
28
28
  "react-devtools": "6.1.1"
29
29
  },