dashnex 0.7.5 → 0.7.6

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 +1 @@
1
- var e={$schema:"https://json.schemastore.org/package",name:"@dashnex/cli",version:"0.7.5",dashnex:{minAppVersion:"1.1.0"},description:"Command-line interface for DashNex framework",homepage:"https://dashnex.io",type:"module",bin:{dashnex:"bin/dashnex"},engines:{node:">=22"},exports:{".":{types:"./dist/server.d.ts",default:"./dist/server.js"},"./client":{types:"./dist/client.d.ts",default:"./dist/client.js"}},scripts:{build:"vite build",dev:"vite build --watch --mode development",test:"vitest run"},keywords:["dashnex","cli"],author:"Dashnex Team",license:"UNLICENSED",dependencies:{"adm-zip":"^0.5.17",chalk:"^5.6.2",commander:"^14.0.3",diff:"^8.0.4",dotenv:"^17.4.2","fs-extra":"^11.3.5",ignore:"^7.0.5",inquirer:"^13.4.3",jiti:"^2.7.0",partysocket:"^1.3.0",ws:"^8.21.0"},devDependencies:{"@dashnex/types":"^1.5.1","@types/adm-zip":"^0.5.8","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","@types/node":"^25.7.0","@types/ws":"^8.18.1",eslint:"^9.39.4","rollup-plugin-preserve-directives":"^0.4.0",terser:"^5.47.1",typescript:"^5.9.3",vite:"^8.0.8","vite-plugin-dts":"5.0.0-beta.6",vitest:"^4.1.6"},publishConfig:{registry:"https://npm.dashnex.com/"},files:["dist","bin","AGENTS.md","CLAUDE.md"]},s={};export{e as n,s as t};
1
+ var e={$schema:"https://json.schemastore.org/package",name:"@dashnex/cli",version:"0.7.6",dashnex:{minAppVersion:"1.1.0"},description:"Command-line interface for DashNex framework",homepage:"https://dashnex.io",type:"module",bin:{dashnex:"bin/dashnex"},engines:{node:">=22"},exports:{".":{types:"./dist/server.d.ts",default:"./dist/server.js"},"./client":{types:"./dist/client.d.ts",default:"./dist/client.js"}},scripts:{build:"vite build",dev:"vite build --watch --mode development",test:"vitest run"},keywords:["dashnex","cli"],author:"Dashnex Team",license:"UNLICENSED",dependencies:{"adm-zip":"^0.5.17",chalk:"^5.6.2",commander:"^14.0.3",diff:"^8.0.4",dotenv:"^17.4.2","fs-extra":"^11.3.5",ignore:"^7.0.5",inquirer:"^13.4.3",jiti:"^2.7.0",partysocket:"^1.3.0",ws:"^8.21.0"},devDependencies:{"@dashnex/types":"^1.6.0","@types/adm-zip":"^0.5.8","@types/fs-extra":"^11.0.4","@types/inquirer":"^9.0.9","@types/node":"^25.7.0","@types/ws":"^8.18.1",eslint:"^9.39.4","rollup-plugin-preserve-directives":"^0.4.0",terser:"^5.47.1",typescript:"^5.9.3",vite:"^8.0.8","vite-plugin-dts":"5.0.0-beta.6",vitest:"^4.1.6"},publishConfig:{registry:"https://npm.dashnex.com/"},files:["dist","bin","AGENTS.md","CLAUDE.md"]},s={};export{e as n,s as t};
package/dist/cli.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{d as n,t as o,v as s,y as e}from"./chunks/auth-9zeRR7R-.js";import{Command as t}from"commander";import i from"chalk";import a from"fs-extra";import c from"path";import{fileURLToPath as r,pathToFileURL as d}from"url";import{execSync as l}from"child_process";import{createJiti as m}from"jiti";import p from"dotenv";var f=new t,u=c.dirname(r(import.meta.url)),{version:h,description:g}=JSON.parse(a.readFileSync(c.resolve(u,"..","package.json"),"utf8"));f.name("dashnex").description(g).version(h).option("--ci","Disable spinner and interactive prompts (CI mode)").arguments("[command...]").action(n=>{if(n&&n.length>0){const o=n[0];if(!f.commands.map(n=>n.name()).includes(o)){console.error(i.red(`Unknown command: ${o}`));const n=process.cwd(),s=a.existsSync(c.join(n,"dashnex.json")),e=a.existsSync(c.join(n,"node_modules"));["build","router","bindings","env","db"].includes(o)?s&&!e?console.log(i.yellow(`\`${o}\` is provided by installed modules. Run \`dashnex install\` first.`)):s?console.log(i.green("Run `dashnex` to see available commands.")):console.log(i.yellow(`\`${o}\` must be run inside a DashNex application folder (containing dashnex.json).`)):console.log(i.green("Run `dashnex` to see available commands.")),process.exit(1)}}!function(n){const o=[];o.push("Usage: dashnex [options] [command]"),o.push(""),o.push(n.description()),o.push(""),o.push("Options:"),n.options.forEach(n=>{const s=n.flags.padEnd(20);o.push(` ${s} ${n.description}`)}),o.push(""),o.push("Commands:"),n.commands.forEach(n=>{const s=` ${n.name().padEnd(20)} ${n.description()}`;o.push(s),n.commands.length>0&&n.commands.forEach(n=>{const s=` ${n.name().padEnd(20)} ${n.description()}`;o.push(s)})}),console.log(o.join("\n"))}(f)});var y=null;var x=null;async function j(n,o){const s=[];try{const e=function(n,o){const s=c.join(o,"package.json");if(a.existsSync(s))try{const e=JSON.parse(a.readFileSync(s,"utf8"));if(e.name===n)return o;const t={...e.dependencies,...e.devDependencies}[n];if(t&&(t.startsWith("link:")||t.startsWith("file:"))){const n=c.resolve(o,t.replace(/^(link:|file:)/,""));if(a.existsSync(n))return n}}catch{}const e=c.join(o,"node_modules",n);if(a.existsSync(e))return a.realpathSync(e);if(y){const o=c.join(y,n);if(a.existsSync(o))return o}return e}(n,o),t=[c.join(e,"src","commands","index.ts"),c.join(e,"src","commands","index.js")],i=c.join(e,"dist","commands","index.js"),r=(function(n,o){const s=c.join(o,"package.json");if(!a.existsSync(s))return!1;try{const o=JSON.parse(a.readFileSync(s,"utf8")),e={...o.dependencies,...o.devDependencies}[n];return"string"==typeof e&&(e.startsWith("link:")||e.startsWith("file:"))}catch{return!1}}(n,o)?[...t,i]:[i,...t]).find(n=>a.existsSync(n));if(r){process.env.DEBUG&&console.log(`Loading ${n} commands from: ${r}`);const o=await async function(n){return/\.(ts|mts|cts|tsx)$/.test(n)?(x??=m(import.meta.url,{interopDefault:!1}),await x.import(n)):await import(d(n).href)}(r);let e=[];Array.isArray(o)?e=o:o.default?e=Array.isArray(o.default)?o.default:[]:o.commands&&(e=Array.isArray(o.commands)?o.commands:[]),e.length>0&&s.push(...e)}}catch(e){if(process.env.DEBUG){const o=e instanceof Error?e.message:String(e);console.log(i.yellow(`Module ${n} has no commands or failed to load: ${o}`))}}return s}function S(t,a,c={}){const r=t.command(a.name).description(a.description);a.arguments&&a.arguments.forEach(n=>{const o=n.required?`<${n.name}>`:`[${n.name}]`;void 0!==n.defaultValue?r.argument(o,n.description,n.defaultValue):r.argument(o,n.description)}),r.option("--ci","Disable spinner (CI mode)"),a.options&&a.options.forEach(n=>{void 0!==n.defaultValue?"number"==typeof n.defaultValue?r.option(n.flags,n.description,String(n.defaultValue)):r.option(n.flags,n.description,n.defaultValue):r.option(n.flags,n.description)}),a.subcommands&&a.subcommands.forEach(n=>{S(r,n,{...c,...a.options})}),a.subcommands&&a.subcommands.length>0?r.action(async()=>{r.outputHelp()}):r.action(async(...t)=>{try{const s=t[t.length-1],e=s.opts(),i=s.processedArgs,r={...c,...e};a.arguments?.forEach((n,o)=>{void 0!==i[o]&&(r[n.name]=i[o])}),r.context={auth:{getSession:()=>o()},businessApiBase:n()},await a.handler.execute(r)}catch(r){if(e(r))return void console.log(i.yellow(s));console.error(i.red(`❌ Command failed in ${a.name}:`),r),process.exit(1)}})}(async function(){p.config({quiet:!0}),process.env.DASHNEX_CLI="1",function(){try{y=l("npm root -g",{encoding:"utf8"}).trim()}catch{y=null}}(),process.argv.includes("--ci")&&(process.env.DASHNEX_CI="1");let n=process.cwd();const o=c.dirname(r(import.meta.url)),s=c.resolve(o,"..");process.env.DEBUG&&(console.log(`CLI started from directory: ${n}`),console.log(`CLI package directory: ${s}`),console.log(`Global node_modules: ${y??"not found"}`));const e=await async function(n){try{const s=[],e=/* @__PURE__ */new Set,t=n=>{e.has(n)||(e.add(n),s.push(n))},i=c.join(n,"dashnex.json");if(a.existsSync(i)){const o=c.join(n,"package.json");if(a.existsSync(o)){const n=JSON.parse(a.readFileSync(o,"utf8"));n.name&&t(n.name)}}const r=c.join(n,"package.json");if(a.existsSync(r)){const o=JSON.parse(a.readFileSync(r,"utf8")),s={...o.dependencies,...o.devDependencies,...o.optionalDependencies};for(const[e,i]of Object.entries(s)){if("string"==typeof i&&(i.startsWith("link:")||i.startsWith("file:"))){const o=c.resolve(n,i.replace(/^(link:|file:)/,""));if(a.existsSync(c.join(o,"dashnex.json"))){t(e);continue}}const o=c.join(n,"node_modules",e);a.existsSync(c.join(o,"dashnex.json"))&&t(e)}}if(y&&a.existsSync(y))try{const n=a.readdirSync(y);for(const o of n)if(o.startsWith("@")){const n=c.join(y,o);try{if(a.statSync(n).isDirectory()){const s=a.readdirSync(n);for(const n of s){const s=`${o}/${n}`,e=c.join(y,s);a.existsSync(c.join(e,"dashnex.json"))&&t(s)}}}catch{}}else{const n=c.join(y,o);a.existsSync(c.join(n,"dashnex.json"))&&t(o)}}catch(o){if(process.env.DEBUG){const n=o instanceof Error?o.message:String(o);console.log("⚠ Error scanning global node_modules:",n)}}return s}catch(o){if(process.env.DEBUG){const n=o instanceof Error?o.message:String(o);console.log("⚠ Error reading app package.json:",n)}return[]}}(n);e.includes("@dashnex/cli")||e.push("@dashnex/cli"),process.env.DEBUG&&(console.log(`CLI package directory: ${s}`),console.log(`Discovered modules: ${e.join(", ")}`));for(const r of e){let o=[];if("@dashnex/cli"===r)try{const n=c.join(s,"dist","commands","index.js");if(process.env.DEBUG&&console.log(`Loading @dashnex/cli commands from: ${n}`),await a.pathExists(n)){const s=await import(d(n).href);s.default?o=Array.isArray(s.default)?s.default:[]:s.commands&&(o=Array.isArray(s.commands)?s.commands:[]),process.env.DEBUG&&console.log(`Loaded ${o.length} commands from @dashnex/cli`)}}catch(m){if(process.env.DEBUG){const n=m instanceof Error?m.message:String(m);console.log(i.yellow(`Failed to load @dashnex/cli commands: ${n}`))}}else o=await j(r,n);for(const n of o)S(f,n)}const t=c.join(n,"dist","commands","index.js");if(await a.pathExists(t))try{const{default:n}=await import(d(t).href);if(n&&Array.isArray(n))for(const o of n)S(f,o)}catch(m){if(process.env.DEBUG){const n=m instanceof Error?m.message:String(m);console.error(i.yellow(`⚠ Failed to load application commands: ${n}`))}}f.parse(process.argv)})().catch(n=>{e(n)&&(console.log(i.yellow(s)),process.exit(0)),console.error(i.red("❌ CLI failed:"),n),process.exit(1)});
2
+ import{d as n,t as o,v as e,y as s}from"./chunks/auth-9zeRR7R-.js";import{Command as t}from"commander";import i from"chalk";import a from"fs-extra";import r from"path";import{fileURLToPath as c,pathToFileURL as d}from"url";import{execSync as l}from"child_process";import{createJiti as m}from"jiti";import p from"dotenv";var f=new t,u=r.dirname(c(import.meta.url)),{version:g,description:h}=JSON.parse(a.readFileSync(r.resolve(u,"..","package.json"),"utf8"));f.name("dashnex").description(h).version(g).option("--ci","Disable spinner and interactive prompts (CI mode)").arguments("[command...]").action(n=>{if(n&&n.length>0){const o=n[0];if(!f.commands.map(n=>n.name()).includes(o)){console.error(i.red(`Unknown command: ${o}`));const n=process.cwd(),e=a.existsSync(r.join(n,"dashnex.json")),s=a.existsSync(r.join(n,"node_modules"));["build","router","bindings","env","db"].includes(o)?e&&!s?console.log(i.yellow(`\`${o}\` is provided by installed modules. Run \`dashnex install\` first.`)):e?console.log(i.green("Run `dashnex` to see available commands.")):console.log(i.yellow(`\`${o}\` must be run inside a DashNex application folder (containing dashnex.json).`)):console.log(i.green("Run `dashnex` to see available commands.")),process.exit(1)}}!function(n){const o=[];o.push("Usage: dashnex [options] [command]"),o.push(""),o.push(n.description()),o.push(""),o.push("Options:"),n.options.forEach(n=>{const e=n.flags.padEnd(20);o.push(` ${e} ${n.description}`)}),o.push(""),o.push("Commands:"),n.commands.forEach(n=>{const e=` ${n.name().padEnd(20)} ${n.description()}`;o.push(e),n.commands.length>0&&n.commands.forEach(n=>{const e=` ${n.name().padEnd(20)} ${n.description()}`;o.push(e)})}),console.log(o.join("\n"))}(f)});var y=null;var j=null;async function x(n,o){const e=[];try{const s=function(n,o){const e=r.join(o,"package.json");if(a.existsSync(e))try{const s=JSON.parse(a.readFileSync(e,"utf8"));if(s.name===n)return o;const t={...s.dependencies,...s.devDependencies}[n];if(t&&(t.startsWith("link:")||t.startsWith("file:"))){const n=r.resolve(o,t.replace(/^(link:|file:)/,""));if(a.existsSync(n))return n}}catch{}const s=r.join(o,"node_modules",n);if(a.existsSync(s))return a.realpathSync(s);if(y){const o=r.join(y,n);if(a.existsSync(o))return o}return s}(n,o),t=[r.join(s,"src","commands","index.ts"),r.join(s,"src","commands","index.js")],i=r.join(s,"dist","commands","index.js"),c=(function(n,o){const e=r.join(o,"package.json");if(!a.existsSync(e))return!1;try{const o=JSON.parse(a.readFileSync(e,"utf8")),s={...o.dependencies,...o.devDependencies}[n];return"string"==typeof s&&(s.startsWith("link:")||s.startsWith("file:"))}catch{return!1}}(n,o)?[...t,i]:[i,...t]).find(n=>a.existsSync(n));if(c){process.env.DEBUG&&console.log(`Loading ${n} commands from: ${c}`);const o=await async function(n){return/\.(ts|mts|cts|tsx)$/.test(n)?(j??=m(import.meta.url,{interopDefault:!1}),await j.import(n)):await import(d(n).href)}(c);let s=[];Array.isArray(o)?s=o:o.default?s=Array.isArray(o.default)?o.default:[]:o.commands&&(s=Array.isArray(o.commands)?o.commands:[]),s.length>0&&e.push(...s)}}catch(s){if(process.env.DEBUG){const o=s instanceof Error?s.message:String(s);console.log(i.yellow(`Module ${n} has no commands or failed to load: ${o}`))}}return e}function S(t,a,r={}){const c=t.command(a.name).description(a.description);a.arguments&&a.arguments.forEach(n=>{const o=n.required?`<${n.name}>`:`[${n.name}]`;void 0!==n.defaultValue?c.argument(o,n.description,n.defaultValue):c.argument(o,n.description)}),c.option("--ci","Disable spinner (CI mode)"),a.options&&a.options.forEach(n=>{void 0!==n.defaultValue?"number"==typeof n.defaultValue?c.option(n.flags,n.description,String(n.defaultValue)):c.option(n.flags,n.description,n.defaultValue):c.option(n.flags,n.description)}),a.subcommands&&a.subcommands.forEach(n=>{S(c,n,{...r,...a.options})}),a.subcommands&&a.subcommands.length>0?c.action(async()=>{c.outputHelp()}):c.action(async(...t)=>{try{const e=t[t.length-1],s=e.opts(),i=e.processedArgs,c={...r,...s};a.arguments?.forEach((n,o)=>{void 0!==i[o]&&(c[n.name]=i[o])}),c.context={auth:{getSession:()=>o()},businessApiBase:n()},await a.handler.execute(c)}catch(c){if(s(c))return void console.log(i.yellow(e));console.error(i.red(`❌ Command failed in ${a.name}:`),c),process.exit(1)}})}(async function(){p.config({quiet:!0}),process.env.DASHNEX_CLI="1",function(){try{y=l("npm root -g",{encoding:"utf8"}).trim()}catch{y=null}}(),process.argv.includes("--ci")&&(process.env.DASHNEX_CI="1");let n=process.cwd();const o=r.dirname(c(import.meta.url)),e=r.resolve(o,"..");let s="@dashnex/cli";try{const n=JSON.parse(await a.readFile(r.join(e,"package.json"),"utf8"));n.name&&(s=n.name)}catch{}process.env.DEBUG&&(console.log(`CLI started from directory: ${n}`),console.log(`CLI package directory: ${e}`),console.log(`Global node_modules: ${y??"not found"}`));const t=await async function(n){try{const e=[],s=/* @__PURE__ */new Set,t=n=>{s.has(n)||(s.add(n),e.push(n))},i=r.join(n,"dashnex.json");if(a.existsSync(i)){const o=r.join(n,"package.json");if(a.existsSync(o)){const n=JSON.parse(a.readFileSync(o,"utf8"));n.name&&t(n.name)}}const c=r.join(n,"package.json");if(a.existsSync(c)){const o=JSON.parse(a.readFileSync(c,"utf8")),e={...o.dependencies,...o.devDependencies,...o.optionalDependencies};for(const[s,i]of Object.entries(e)){if("string"==typeof i&&(i.startsWith("link:")||i.startsWith("file:"))){const o=r.resolve(n,i.replace(/^(link:|file:)/,""));if(a.existsSync(r.join(o,"dashnex.json"))){t(s);continue}}const o=r.join(n,"node_modules",s);a.existsSync(r.join(o,"dashnex.json"))&&t(s)}}if(y&&a.existsSync(y))try{const n=a.readdirSync(y);for(const o of n)if(o.startsWith("@")){const n=r.join(y,o);try{if(a.statSync(n).isDirectory()){const e=a.readdirSync(n);for(const n of e){const e=`${o}/${n}`,s=r.join(y,e);a.existsSync(r.join(s,"dashnex.json"))&&t(e)}}}catch{}}else{const n=r.join(y,o);a.existsSync(r.join(n,"dashnex.json"))&&t(o)}}catch(o){if(process.env.DEBUG){const n=o instanceof Error?o.message:String(o);console.log("⚠ Error scanning global node_modules:",n)}}return e}catch(o){if(process.env.DEBUG){const n=o instanceof Error?o.message:String(o);console.log("⚠ Error reading app package.json:",n)}return[]}}(n);t.includes(s)||t.push(s),process.env.DEBUG&&(console.log(`CLI package directory: ${e}`),console.log(`Discovered modules: ${t.join(", ")}`));for(const c of t){let o=[];if(c===s)try{const n=r.join(e,"dist","commands","index.js");if(process.env.DEBUG&&console.log(`Loading ${s} commands from: ${n}`),await a.pathExists(n)){const e=await import(d(n).href);e.default?o=Array.isArray(e.default)?e.default:[]:e.commands&&(o=Array.isArray(e.commands)?e.commands:[]),process.env.DEBUG&&console.log(`Loaded ${o.length} commands from ${s}`)}}catch(u){if(process.env.DEBUG){const n=u instanceof Error?u.message:String(u);console.log(i.yellow(`Failed to load ${s} commands: ${n}`))}}else o=await x(c,n);for(const n of o)S(f,n)}const m=r.join(n,"dist","commands","index.js");if(await a.pathExists(m))try{const{default:n}=await import(d(m).href);if(n&&Array.isArray(n))for(const o of n)S(f,o)}catch(u){if(process.env.DEBUG){const n=u instanceof Error?u.message:String(u);console.error(i.yellow(`⚠ Failed to load application commands: ${n}`))}}f.parse(process.argv)})().catch(n=>{s(n)&&(console.log(i.yellow(e)),process.exit(0)),console.error(i.red("❌ CLI failed:"),n),process.exit(1)});
package/dist/client.js CHANGED
@@ -1 +1 @@
1
- import{n as s,t as e}from"./chunks/dashnex-BYw25xar.js";var n={name:s.name,version:s.version,description:s.description,...e};export{n as default};
1
+ import{n as s,t as e}from"./chunks/dashnex-CFNkxHra.js";var n={name:s.name,version:s.version,description:s.description,...e};export{n as default};
package/dist/server.js CHANGED
@@ -1 +1 @@
1
- import{n as s,t as e}from"./chunks/dashnex-BYw25xar.js";var n={name:s.name,version:s.version,description:s.description,...e};export{n as default};
1
+ import{n as s,t as e}from"./chunks/dashnex-CFNkxHra.js";var n={name:s.name,version:s.version,description:s.description,...e};export{n as default};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package",
3
3
  "name": "dashnex",
4
- "version": "0.7.5",
4
+ "version": "0.7.6",
5
5
  "dashnex": {
6
6
  "minAppVersion": "1.1.0"
7
7
  },
@@ -49,7 +49,7 @@
49
49
  "ws": "^8.21.0"
50
50
  },
51
51
  "devDependencies": {
52
- "@dashnex/types": "^1.5.1",
52
+ "@dashnex/types": "^1.6.0",
53
53
  "@types/adm-zip": "^0.5.8",
54
54
  "@types/fs-extra": "^11.0.4",
55
55
  "@types/inquirer": "^9.0.9",