@crossmint/cli 1.1.2 → 1.1.4

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.
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- var ue=Object.defineProperty;var n=(t,e)=>ue(t,"name",{value:e,configurable:!0});var ge=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var fe=ge((nn,et)=>{et.exports={name:"@crossmint/cli",version:"1.1.2",description:"",keywords:[],license:"ISC",author:"",type:"module",main:"dist/bin/crossmint.js",bin:{crossmint:"dist/bin/crossmint.js"},scripts:{build:"tsup --env.NODE_ENV production","build:pkg":"node ./build-pkg.js",bump:"node ./scripts/bump.mjs",dev:"tsup --watch --env.NODE_ENV development",start:"pnpm build && node dist/bin/crossmint.js","test:vitest":"vitest run","test:vitest:watch":"vitest"},dependencies:{"@crossmint/common-consts":"workspace:*","@crossmint/common-string-utils":"workspace:*","@crossmint/common-types":"workspace:*","@crossmint/data-dbs-types":"workspace:*","@crossmint/products-console-types":"workspace:*","@inquirer/prompts":"7.4.0",chalk:"4.1.2",commander:"12.0.0",keytar:"7.9.0",nanospinner:"1.2.2",open:"9.1.0"},devDependencies:{"@crossmint/tsconfig":"workspace:*","@crossmint/tsupconfig":"workspace:*","@crossmint/vitestconfig":"workspace:*","@types/node":"20.14.8","@yao-pkg/pkg":"6.3.2",esbuild:"0.25.2",vitest:"2.1.9"},pkg:{scripts:"dist/bin/crossmint.js",assets:[],targets:["node20-macos-arm64","node20-linux-x64","node20-macos-x64"],outputPath:"build"}}});import{program as I}from"commander";var he={production:"https://www.crossmint.com",staging:"https://staging.crossmint.com",local:"http://localhost:3000"};function v(t){return he[t]}n(v,"getCrossmintUrl");import R from"keytar";var V="crossmint-cli";async function S(t,e){return R.setPassword(V,t,e)}n(S,"set");async function C(t){return R.getPassword(V,t)}n(C,"get");async function b(t){return R.deletePassword(V,t)}n(b,"del");function X(t){return S("environment",t)}n(X,"setEnvironment");async function y(){return C("environment")}n(y,"getEnvironment");async function Z(){return b("environment")}n(Z,"deleteEnvironment");function ee(t){return S("sessionToken",t)}n(ee,"setSessionToken");async function te(){return C("sessionToken")}n(te,"getSessionToken");async function oe(){return b("sessionToken")}n(oe,"deleteSessionToken");function E(t){return S("projectId",t)}n(E,"setProjectId");async function w(){return C("projectId")}n(w,"getProjectId");async function re(){return b("projectId")}n(re,"deleteProjectId");import{select as ve}from"@inquirer/prompts";import{HttpMethods as W}from"@crossmint/common-consts";async function d(t,e=W.GET,o){let r=await te(),a=await y();r||(console.error("\u274C Session not found, please run crossmint login"),process.exit(1)),a||(console.error("\u274C Environment not found, please run crossmint login"),process.exit(1));let s=`${v(a)}${t}`;return k(s,e,o,{Cookie:`sessionToken=${r}`})}n(d,"fetchAuthenticated");async function ne(t,e=W.GET,o){let r=await y();r||(console.error("\u274C Environment not found"),process.exit(1));let a=`${v(r)}${t}`;return k(a,e,o)}n(ne,"fetchUnauthenticated");async function k(t,e=W.GET,o,r){let a={method:e,headers:{"Content-Type":"application/json",...r}};o&&(a.body=JSON.stringify(o));let s=await fetch(t,a);if(s.status>=400){let i=await s.json();throw new Error(`${i.message}`)}return await s.json()}n(k,"fetchJSON");import{routes as we}from"@crossmint/common-consts";import{select as Pe}from"@inquirer/prompts";import{createSpinner as ye}from"nanospinner";function g(t){let e=ye(t),o={start:n(r=>(e.start({text:r}),o),"start"),succeed:n(r=>(e.success({text:r}),o),"succeed"),fail:n(r=>(e.error({text:r}),o),"fail")};return o}n(g,"createSpinner");async function A(){let t=g("Fetching projects...").start();try{let e=await d(we.api.projects);if(!e||e.length===0)return t.fail("No projects found. Create a new project using `crossmint project create`"),process.exit(0);if(t.succeed("Fetched projects"),e.length===1){let r=e[0];return console.log(`You only have one project: ${r.name}`),console.log("To create another project, run `crossmint project create`"),await E(r.id),console.log(`\u2705 Project ${r.name} selected`),process.exit(0)}let o=await Pe({message:"Select a project:",choices:e.map(r=>({name:r.name,value:r,description:r.description}))});await E(o.id),console.log(`\u2705 Project ${o.name} selected`),process.exit(0)}catch{t.fail("Failed to fetch projects"),process.exit(1)}}n(A,"selectProject");import Ie from"open";import ie from"crypto";async function se(){let e=ie.randomBytes(32).toString("base64url"),r=ie.createHash("sha256").update(e).digest().toString("base64url");return await S("pkceCodeVerifier",e),r}n(se,"generateCodeChallenge");async function ce(){return await C("pkceCodeVerifier")}n(ce,"getCodeVerifier");import je from"http";import{HttpMethods as ae}from"@crossmint/common-consts";import{routes as pe}from"@crossmint/common-consts";async function K(){let t=await y();return t||(console.error("\u274C Environment not found"),process.exit(1)),t==="local"?{uri:"test.stytch.com",projectId:"project-test-8eb55d3d-949f-4e0f-aea6-c9ba740f7813",clientId:"connected-app-test-4d27d6d8-3491-45c8-9bb0-b05f89cb7a1a"}:t==="staging"?{uri:"api.stytch.com",projectId:"project-live-b7c564af-0c0d-4662-bfc0-72bed1049cfe",clientId:"connected-app-live-47cd5bf1-c155-42c1-9f36-5d35853b34a7"}:{uri:"api.stytch.com",projectId:"project-live-7a1cb98d-b8b7-4471-aaf6-f8af67a0df94",clientId:"connected-app-live-a72edd7e-6ff3-4002-a13a-e7ca66354bd1"}}n(K,"getStytchConfig");async function B(t){return new Promise((e,o)=>{let r=je.createServer(async(s,i)=>{try{let c=new URL(s.url||"",`http://${s.headers.host}`).searchParams.get("code");if(!c){i.writeHead(400,{"Content-Type":"text/plain"}),i.end("No code provided");return}let h=await K(),f=await k(`https://${h.uri}/v1/public/${h.projectId}/oauth2/token`,ae.POST,{grant_type:"authorization_code",code:c,client_id:h.clientId,redirect_uri:"http://127.0.0.1:3456/callback",code_verifier:await ce()}),u=await ne(pe.authentication.exchangeAccessToken,ae.POST,{accessToken:f.access_token});await ee(u.sessionToken),i.writeHead(302,{Location:`${v(t)}${pe.console.authorizeDevice.success}`}),i.end(),r.close(),e(f)}catch(p){i.writeHead(500,{"Content-Type":"text/plain"}),i.end("Error during authentication"),r.close(),o(p)}});r.listen(3456)})}n(B,"server");import{routes as xe}from"@crossmint/common-consts";var Se=!1;async function z(){try{console.log("\u{1F510} Crossmint CLI - Login");let t=await ve({message:"Select environment:",choices:[{name:"Production",value:"production"},{name:"Staging",value:"staging"},...Se?[{name:"Local",value:"local"}]:[]]}),e=v(t);e||(console.error(`Error: No URL found for ${t} environment`),process.exit(1)),await X(t);let o=B(t),{clientId:r}=await K(),s={code_challenge:await se(),code_challenge_method:"S256",scope:"full_access",response_type:"code",grant_type:"authorization_code",redirect_uri:"http://127.0.0.1:3456/callback",client_id:r},i=`${e}${xe.console.authorizeDevice.index(s)}`;console.log("Opening browser for authentication..."),Ie(i),await o,console.log(`\u2705 Login successful! You are now authenticated in the ${t} environment.`),await A()}catch{console.error("\u274C Login failed, please try again."),process.exit(1)}}n(z,"login");import{routes as Ae}from"@crossmint/common-consts";import{routes as Ce}from"@crossmint/common-consts";async function j(t){return(await d(Ce.api.projects)).find(r=>r.id===t)}n(j,"getProject");import{capitalizeFirstLetter as Ee}from"@crossmint/common-string-utils";async function Y(){let t=await y(),e=await w(),o=await j(e||""),r=await d(Ae.authentication.getSession);console.log(`You are logged in to \u{1F340}Crossmint as: ${r.user.email} - Environment: ${Ee(t)} - ${o?`Project: ${o.name}`:"No project selected"}`),process.exit(0)}n(Y,"whoami");async function J(){await oe(),await Z(),await re(),console.log("Logged out"),process.exit(0)}n(J,"logout");import{confirm as be,input as ke}from"@inquirer/prompts";import{HttpMethods as Ke}from"@crossmint/common-consts";import{routes as $e}from"@crossmint/common-consts";async function $(t={}){let e=g();try{let o=t.name;o||(o=await ke({message:"Enter project name:",validate:n(i=>i.length>0||"Project name is required","validate")})),e.start(`\u{1F680} Creating project "${o}" with Smart Wallets...`);let r=await d($e.api.console.projects.index,Ke.POST,{name:o,walletType:"smart_wallet",storageProvider:"ipfs",projectThumbnail:""}),a=JSON.parse(r);e.succeed(`\u2705 Project created successfully!
2
+ var ue=Object.defineProperty;var n=(t,e)=>ue(t,"name",{value:e,configurable:!0});var ge=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var fe=ge((nn,et)=>{et.exports={name:"@crossmint/cli",version:"1.1.4",description:"",keywords:[],license:"ISC",author:"",type:"module",main:"dist/bin/crossmint.js",bin:{crossmint:"dist/bin/crossmint.js"},scripts:{build:"tsup --env.NODE_ENV production","build:pkg":"node ./build-pkg.js",bump:"node ./scripts/bump.mjs",dev:"tsup --watch --env.NODE_ENV development",start:"pnpm build && node dist/bin/crossmint.js","test:vitest":"vitest run","test:vitest:watch":"vitest"},dependencies:{"@crossmint/common-consts":"workspace:*","@crossmint/common-string-utils":"workspace:*","@crossmint/common-types":"workspace:*","@crossmint/data-dbs-types":"workspace:*","@crossmint/products-console-types":"workspace:*","@inquirer/prompts":"7.4.0",chalk:"4.1.2",commander:"12.0.0",keytar:"7.9.0",nanospinner:"1.2.2",open:"9.1.0"},devDependencies:{"@crossmint/tsconfig":"workspace:*","@crossmint/tsupconfig":"workspace:*","@crossmint/vitestconfig":"workspace:*","@types/node":"20.14.8","@yao-pkg/pkg":"6.3.2",esbuild:"0.25.2",vitest:"2.1.9"},pkg:{scripts:"dist/bin/crossmint.js",assets:[],targets:["node20-macos-arm64","node20-linux-x64","node20-macos-x64"],outputPath:"build"}}});import{program as I}from"commander";var he={production:"https://www.crossmint.com",staging:"https://staging.crossmint.com",local:"http://localhost:3000"};function v(t){return he[t]}n(v,"getCrossmintUrl");import R from"keytar";var V="crossmint-cli";async function S(t,e){return R.setPassword(V,t,e)}n(S,"set");async function C(t){return R.getPassword(V,t)}n(C,"get");async function b(t){return R.deletePassword(V,t)}n(b,"del");function X(t){return S("environment",t)}n(X,"setEnvironment");async function y(){return C("environment")}n(y,"getEnvironment");async function Z(){return b("environment")}n(Z,"deleteEnvironment");function ee(t){return S("sessionToken",t)}n(ee,"setSessionToken");async function te(){return C("sessionToken")}n(te,"getSessionToken");async function oe(){return b("sessionToken")}n(oe,"deleteSessionToken");function E(t){return S("projectId",t)}n(E,"setProjectId");async function w(){return C("projectId")}n(w,"getProjectId");async function re(){return b("projectId")}n(re,"deleteProjectId");import{select as ve}from"@inquirer/prompts";import{HttpMethods as W}from"@crossmint/common-consts";async function d(t,e=W.GET,o){let r=await te(),a=await y();r||(console.error("\u274C Session not found, please run crossmint login"),process.exit(1)),a||(console.error("\u274C Environment not found, please run crossmint login"),process.exit(1));let s=`${v(a)}${t}`;return k(s,e,o,{Cookie:`sessionToken=${r}`})}n(d,"fetchAuthenticated");async function ne(t,e=W.GET,o){let r=await y();r||(console.error("\u274C Environment not found"),process.exit(1));let a=`${v(r)}${t}`;return k(a,e,o)}n(ne,"fetchUnauthenticated");async function k(t,e=W.GET,o,r){let a={method:e,headers:{"Content-Type":"application/json",...r}};o&&(a.body=JSON.stringify(o));let s=await fetch(t,a);if(s.status>=400){let i=await s.json();throw new Error(`${i.message}`)}return await s.json()}n(k,"fetchJSON");import{routes as we}from"@crossmint/common-consts";import{select as Pe}from"@inquirer/prompts";import{createSpinner as ye}from"nanospinner";function g(t){let e=ye(t),o={start:n(r=>(e.start({text:r}),o),"start"),succeed:n(r=>(e.success({text:r}),o),"succeed"),fail:n(r=>(e.error({text:r}),o),"fail")};return o}n(g,"createSpinner");async function A(){let t=g("Fetching projects...").start();try{let e=await d(we.api.projects);if(!e||e.length===0)return t.fail("No projects found. Create a new project using `crossmint project create`"),process.exit(0);if(t.succeed("Fetched projects"),e.length===1){let r=e[0];return console.log(`You only have one project: ${r.name}`),console.log("To create another project, run `crossmint project create`"),await E(r.id),console.log(`\u2705 Project ${r.name} selected`),process.exit(0)}let o=await Pe({message:"Select a project:",choices:e.map(r=>({name:r.name,value:r,description:r.description}))});await E(o.id),console.log(`\u2705 Project ${o.name} selected`),process.exit(0)}catch{t.fail("Failed to fetch projects"),process.exit(1)}}n(A,"selectProject");import Ie from"open";import ie from"crypto";async function se(){let e=ie.randomBytes(32).toString("base64url"),r=ie.createHash("sha256").update(e).digest().toString("base64url");return await S("pkceCodeVerifier",e),r}n(se,"generateCodeChallenge");async function ce(){return await C("pkceCodeVerifier")}n(ce,"getCodeVerifier");import je from"http";import{HttpMethods as ae}from"@crossmint/common-consts";import{routes as pe}from"@crossmint/common-consts";async function K(){let t=await y();return t||(console.error("\u274C Environment not found"),process.exit(1)),t==="local"?{uri:"test.stytch.com",projectId:"project-test-8eb55d3d-949f-4e0f-aea6-c9ba740f7813",clientId:"connected-app-test-4d27d6d8-3491-45c8-9bb0-b05f89cb7a1a"}:t==="staging"?{uri:"api.stytch.com",projectId:"project-live-b7c564af-0c0d-4662-bfc0-72bed1049cfe",clientId:"connected-app-live-47cd5bf1-c155-42c1-9f36-5d35853b34a7"}:{uri:"api.stytch.com",projectId:"project-live-7a1cb98d-b8b7-4471-aaf6-f8af67a0df94",clientId:"connected-app-live-a72edd7e-6ff3-4002-a13a-e7ca66354bd1"}}n(K,"getStytchConfig");async function B(t){return new Promise((e,o)=>{let r=je.createServer(async(s,i)=>{try{let c=new URL(s.url||"",`http://${s.headers.host}`).searchParams.get("code");if(!c){i.writeHead(400,{"Content-Type":"text/plain"}),i.end("No code provided");return}let h=await K(),f=await k(`https://${h.uri}/v1/public/${h.projectId}/oauth2/token`,ae.POST,{grant_type:"authorization_code",code:c,client_id:h.clientId,redirect_uri:"http://127.0.0.1:3456/callback",code_verifier:await ce()}),u=await ne(pe.authentication.exchangeAccessToken,ae.POST,{accessToken:f.access_token});await ee(u.sessionToken),i.writeHead(302,{Location:`${v(t)}${pe.console.authorizeDevice.success}`}),i.end(),r.close(),e(f)}catch(p){i.writeHead(500,{"Content-Type":"text/plain"}),i.end("Error during authentication"),r.close(),o(p)}});r.listen(3456)})}n(B,"server");import{routes as xe}from"@crossmint/common-consts";var Se=!1;async function z(){try{console.log("\u{1F510} Crossmint CLI - Login");let t=await ve({message:"Select environment:",choices:[{name:"Production",value:"production"},{name:"Staging",value:"staging"},...Se?[{name:"Local",value:"local"}]:[]]}),e=v(t);e||(console.error(`Error: No URL found for ${t} environment`),process.exit(1)),await X(t);let o=B(t),{clientId:r}=await K(),s={code_challenge:await se(),code_challenge_method:"S256",scope:"full_access",response_type:"code",grant_type:"authorization_code",redirect_uri:"http://127.0.0.1:3456/callback",client_id:r},i=`${e}${xe.console.authorizeDevice.index(s)}`;console.log("Opening browser for authentication..."),Ie(i),await o,console.log(`\u2705 Login successful! You are now authenticated in the ${t} environment.`),await A()}catch{console.error("\u274C Login failed, please try again."),process.exit(1)}}n(z,"login");import{routes as Ae}from"@crossmint/common-consts";import{routes as Ce}from"@crossmint/common-consts";async function j(t){return(await d(Ce.api.projects)).find(r=>r.id===t)}n(j,"getProject");import{capitalizeFirstLetter as Ee}from"@crossmint/common-string-utils";async function Y(){let t=await y(),e=await w(),o=await j(e||""),r=await d(Ae.authentication.getSession);console.log(`You are logged in to \u{1F340}Crossmint as: ${r.user.email} - Environment: ${Ee(t)} - ${o?`Project: ${o.name}`:"No project selected"}`),process.exit(0)}n(Y,"whoami");async function J(){await oe(),await Z(),await re(),console.log("Logged out"),process.exit(0)}n(J,"logout");import{confirm as be,input as ke}from"@inquirer/prompts";import{HttpMethods as Ke}from"@crossmint/common-consts";import{routes as $e}from"@crossmint/common-consts";async function $(t={}){let e=g();try{let o=t.name;o||(o=await ke({message:"Enter project name:",validate:n(i=>i.length>0||"Project name is required","validate")})),e.start(`\u{1F680} Creating project "${o}" with Smart Wallets...`);let r=await d($e.api.console.projects.index,Ke.POST,{name:o,walletType:"smart_wallet",storageProvider:"ipfs",projectThumbnail:""}),a=JSON.parse(r);e.succeed(`\u2705 Project created successfully!
3
3
 
4
4
  `),console.log(`\u{1F4CC} Project Details:
5
5
  Name: ${o}
package/package.json CHANGED
@@ -1,50 +1,46 @@
1
1
  {
2
- "name": "@crossmint/cli",
3
- "version": "1.1.2",
4
- "description": "",
5
- "keywords": [],
6
- "license": "ISC",
7
- "author": "",
8
- "type": "module",
9
- "main": "dist/bin/crossmint.js",
10
- "bin": {
11
- "crossmint": "dist/bin/crossmint.js"
12
- },
13
- "scripts": {
14
- "build": "tsup --env.NODE_ENV production",
15
- "build:pkg": "node ./build-pkg.js",
16
- "bump": "node ./scripts/bump.mjs",
17
- "dev": "tsup --watch --env.NODE_ENV development",
18
- "start": "pnpm build && node dist/bin/crossmint.js",
19
- "test:vitest": "vitest run",
20
- "test:vitest:watch": "vitest"
21
- },
22
- "dependencies": {
23
- "@crossmint/common-consts": "workspace:*",
24
- "@crossmint/common-string-utils": "workspace:*",
25
- "@crossmint/common-types": "workspace:*",
26
- "@crossmint/data-dbs-types": "workspace:*",
27
- "@crossmint/products-console-types": "workspace:*",
28
- "@inquirer/prompts": "7.4.0",
29
- "chalk": "4.1.2",
30
- "commander": "12.0.0",
31
- "keytar": "7.9.0",
32
- "nanospinner": "1.2.2",
33
- "open": "9.1.0"
34
- },
35
- "devDependencies": {
36
- "@crossmint/tsconfig": "workspace:*",
37
- "@crossmint/tsupconfig": "workspace:*",
38
- "@crossmint/vitestconfig": "workspace:*",
39
- "@types/node": "20.14.8",
40
- "@yao-pkg/pkg": "6.3.2",
41
- "esbuild": "0.25.2",
42
- "vitest": "2.1.9"
43
- },
44
- "pkg": {
45
- "scripts": "dist/bin/crossmint.js",
46
- "assets": [],
47
- "targets": ["node20-macos-arm64", "node20-linux-x64", "node20-macos-x64"],
48
- "outputPath": "build"
49
- }
50
- }
2
+ "name": "@crossmint/cli",
3
+ "version": "1.1.4",
4
+ "description": "",
5
+ "keywords": [],
6
+ "license": "ISC",
7
+ "author": "",
8
+ "type": "module",
9
+ "main": "dist/bin/crossmint.js",
10
+ "bin": {
11
+ "crossmint": "dist/bin/crossmint.js"
12
+ },
13
+ "scripts": {
14
+ "build": "tsup --env.NODE_ENV production",
15
+ "build:pkg": "node ./build-pkg.js",
16
+ "bump": "node ./scripts/bump.mjs",
17
+ "dev": "tsup --watch --env.NODE_ENV development",
18
+ "start": "pnpm build && node dist/bin/crossmint.js",
19
+ "test:vitest": "vitest run",
20
+ "test:vitest:watch": "vitest"
21
+ },
22
+ "dependencies": {
23
+ "@inquirer/prompts": "7.4.0",
24
+ "chalk": "4.1.2",
25
+ "commander": "12.0.0",
26
+ "keytar": "7.9.0",
27
+ "nanospinner": "1.2.2",
28
+ "open": "9.1.0"
29
+ },
30
+ "devDependencies": {
31
+ "@types/node": "20.14.8",
32
+ "@yao-pkg/pkg": "6.3.2",
33
+ "esbuild": "0.25.2",
34
+ "vitest": "2.1.9"
35
+ },
36
+ "pkg": {
37
+ "scripts": "dist/bin/crossmint.js",
38
+ "assets": [],
39
+ "targets": [
40
+ "node20-macos-arm64",
41
+ "node20-linux-x64",
42
+ "node20-macos-x64"
43
+ ],
44
+ "outputPath": "build"
45
+ }
46
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "@crossmint/cli",
3
+ "version": "1.1.4",
4
+ "description": "",
5
+ "keywords": [],
6
+ "license": "ISC",
7
+ "author": "",
8
+ "type": "module",
9
+ "main": "dist/bin/crossmint.js",
10
+ "bin": {
11
+ "crossmint": "dist/bin/crossmint.js"
12
+ },
13
+ "scripts": {
14
+ "build": "tsup --env.NODE_ENV production",
15
+ "build:pkg": "node ./build-pkg.js",
16
+ "bump": "node ./scripts/bump.mjs",
17
+ "dev": "tsup --watch --env.NODE_ENV development",
18
+ "start": "pnpm build && node dist/bin/crossmint.js",
19
+ "test:vitest": "vitest run",
20
+ "test:vitest:watch": "vitest"
21
+ },
22
+ "dependencies": {
23
+ "@crossmint/common-consts": "workspace:*",
24
+ "@crossmint/common-string-utils": "workspace:*",
25
+ "@crossmint/common-types": "workspace:*",
26
+ "@crossmint/data-dbs-types": "workspace:*",
27
+ "@crossmint/products-console-types": "workspace:*",
28
+ "@inquirer/prompts": "7.4.0",
29
+ "chalk": "4.1.2",
30
+ "commander": "12.0.0",
31
+ "keytar": "7.9.0",
32
+ "nanospinner": "1.2.2",
33
+ "open": "9.1.0"
34
+ },
35
+ "devDependencies": {
36
+ "@crossmint/tsconfig": "workspace:*",
37
+ "@crossmint/tsupconfig": "workspace:*",
38
+ "@crossmint/vitestconfig": "workspace:*",
39
+ "@types/node": "20.14.8",
40
+ "@yao-pkg/pkg": "6.3.2",
41
+ "esbuild": "0.25.2",
42
+ "vitest": "2.1.9"
43
+ },
44
+ "pkg": {
45
+ "scripts": "dist/bin/crossmint.js",
46
+ "assets": [],
47
+ "targets": ["node20-macos-arm64", "node20-linux-x64", "node20-macos-x64"],
48
+ "outputPath": "build"
49
+ }
50
+ }