knarr 0.0.2 → 0.0.3

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,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {a}from'./chunk-6QHABEBL.mjs';import'./chunk-OPLSUHCD.mjs';import'./chunk-CTJF2EWO.mjs';import'./chunk-SN4TOUQW.mjs';import'./chunk-37AAX47E.mjs';import'./chunk-TEFMLGCB.mjs';import'./chunk-LXGALE74.mjs';import'./chunk-7SDPRKFT.mjs';import'./chunk-EE2UYGFD.mjs';import {a as a$1}from'./chunk-MBKCCWSD.mjs';import {b}from'./chunk-BS4VKVYH.mjs';import'./chunk-7HVPEBK5.mjs';import'./chunk-KOHUNKHP.mjs';import'./chunk-GO6F6AGH.mjs';import'./chunk-3KNUBUPH.mjs';import'./chunk-GQYG5FCW.mjs';import'./chunk-NBSJGM2X.mjs';import'./chunk-B3DZ5HVQ.mjs';import'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';import {a}from'./chunk-HEDVIVEO.mjs';import'./chunk-OPLSUHCD.mjs';import'./chunk-CTJF2EWO.mjs';import'./chunk-SN4TOUQW.mjs';import'./chunk-37AAX47E.mjs';import'./chunk-TEFMLGCB.mjs';import'./chunk-LXGALE74.mjs';import'./chunk-7SDPRKFT.mjs';import'./chunk-EE2UYGFD.mjs';import {a as a$1}from'./chunk-MBKCCWSD.mjs';import {b}from'./chunk-BS4VKVYH.mjs';import'./chunk-7HVPEBK5.mjs';import'./chunk-KOHUNKHP.mjs';import'./chunk-GO6F6AGH.mjs';import'./chunk-3KNUBUPH.mjs';import'./chunk-GQYG5FCW.mjs';import'./chunk-NBSJGM2X.mjs';import'./chunk-B3DZ5HVQ.mjs';import'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
3
3
  var s={meta:{name:"add",description:"Link a package from the Knarr store into this project"},args:{package:{type:"positional",description:"Package name to add",required:true},from:{type:"string",description:"Path to package source (will publish first)"},yes:{type:"boolean",alias:"y",description:"Auto-accept prompts (install missing deps, etc.)",default:false}},async run({args:e}){b(),await a({packageArg:e.package,from:e.from,yes:e.yes,timer:new a$1});}};export{s as default};
@@ -8,7 +8,7 @@ node_modules/ entirely. To use knarr with Yarn Berry, add this to
8
8
 
9
9
  nodeLinker: node-modules
10
10
 
11
- Then run: yarn install`),process.exit(1));}let p=await f(e,n);p&&(p.version===o.version?b$1.info(`Updating ${n}@${o.version} (already linked)`):b$1.info(`Updating ${n}: ${p.version} -> ${o.version}`));let g=await b$4(e,n,s);g&&b$1.info(`Backed up existing ${n} installation`);let d$2=await a$5(o,e,s);b$1.success(`Linked ${n}@${o.version} -> node_modules/${n} (${d$2.copied} files copied, ${d$2.skipped} unchanged)`),d$2.binLinks>0&&b$1.info(`Created ${d$2.binLinks} bin link(s)`);let z={version:o.version,contentHash:o.meta.contentHash,linkedAt:new Date().toISOString(),sourcePath:o.meta.sourcePath,backupExists:g,packageManager:s,buildId:o.meta.buildId??""};await d$1(e,n,z),await h$1(n,e),await f$1(e,n,o.version),await Z(o,e,s,i.yes??false),await nn(e,n,s),b$1.info(`Done in ${a.elapsed()}`),a$6({package:n,version:o.version,copied:d$2.copied,skipped:d$2.skipped,binLinks:d$2.binLinks,elapsed:a.elapsedMs()}),b$5()&&y();}a(In,"addPackageToConsumer");async function An(i){let a=resolve(i);await H(a)||(a$2(`Source path not found: ${a}`),process.exit(1));let e=join(a,"package.json");await H(e)||(a$2(`No package.json found at ${e}. Pass a package directory to 'knarr use'.`),process.exit(1));let n;try{n=JSON.parse(await readFile(e,"utf-8"));}catch(o){a$2(`Could not read package.json at ${e}: ${o instanceof Error?o.message:String(o)}`),process.exit(1);}(!n||typeof n!="object"||typeof n.name!="string")&&(a$2(`package.json at ${e} must include a package name for 'knarr use'.`),process.exit(1));let r=n.name.trim();return J(r,r),r}a(An,"readPackageNameFromSource");function X(i){if(i.startsWith("@")){let e=i.indexOf("/");if(e>0){let n=i.indexOf("@",e);if(n>e)return {name:i.slice(0,n),version:i.slice(n+1)}}return {name:i,version:null}}let a=i.lastIndexOf("@");return a>0?{name:i.slice(0,a),version:i.slice(a+1)}:{name:i,version:null}}a(X,"parsePackageArg");function J(i,a){try{a$7(i);}catch{a$2(`Invalid package name "${a}". Use format: package-name or @scope/package-name.`),process.exit(1);}}a(J,"validatePackageNameArg");async function Z(i,a,e$1,n){let r=await e(i,a);if(r.length===0)return;if(c$2()){d$2(`[add] Missing transitive deps (json mode): ${r.join(", ")}`);return}if(n){let c=$(e$1,r);b$1.info(b$5()?`[dry-run] Would install missing dependencies: ${r.join(", ")}`:`Installing missing dependencies: ${r.join(", ")}`);let s=await h(c,a);s&&!b$5()?b$1.success("Installed missing dependencies"):s||b$1.warn(`Install failed. Run manually: ${c}`);return}if(await b$1.prompt(`Install ${r.length} missing dependencies? (${r.join(", ")})`,{type:"confirm",initial:true})){let c=$(e$1,r),s=await h(c,a);s&&!b$5()?b$1.success("Installed missing dependencies"):s||b$1.warn(`Install failed. Run manually: ${c}`);}else b$1.warn(`Missing transitive dependencies: ${r.join(", ")}
11
+ Then run: yarn install`),process.exit(1));}let p=await f(e,n);p&&(p.version===o.version?b$1.info(`Updating ${n}@${o.version} (already linked)`):b$1.info(`Updating ${n}: ${p.version} -> ${o.version}`));let g=await b$4(e,n,s);g&&b$1.info(`Backed up existing ${n} installation`),await f$1(e,n,o.version),await nn(e,n,s),await Z(o,e,s,i.yes??false);let d$2=await a$5(o,e,s);b$1.success(`Linked ${n}@${o.version} -> node_modules/${n} (${d$2.copied} files copied, ${d$2.skipped} unchanged)`),d$2.binLinks>0&&b$1.info(`Created ${d$2.binLinks} bin link(s)`);let z={version:o.version,contentHash:o.meta.contentHash,linkedAt:new Date().toISOString(),sourcePath:o.meta.sourcePath,backupExists:g,packageManager:s,buildId:o.meta.buildId??""};await d$1(e,n,z),await h$1(n,e),b$1.info(`Done in ${a.elapsed()}`),a$6({package:n,version:o.version,copied:d$2.copied,skipped:d$2.skipped,binLinks:d$2.binLinks,elapsed:a.elapsedMs()}),b$5()&&y();}a(In,"addPackageToConsumer");async function An(i){let a=resolve(i);await H(a)||(a$2(`Source path not found: ${a}`),process.exit(1));let e=join(a,"package.json");await H(e)||(a$2(`No package.json found at ${e}. Pass a package directory to 'knarr use'.`),process.exit(1));let n;try{n=JSON.parse(await readFile(e,"utf-8"));}catch(o){a$2(`Could not read package.json at ${e}: ${o instanceof Error?o.message:String(o)}`),process.exit(1);}(!n||typeof n!="object"||typeof n.name!="string")&&(a$2(`package.json at ${e} must include a package name for 'knarr use'.`),process.exit(1));let r=n.name.trim();return J(r,r),r}a(An,"readPackageNameFromSource");function X(i){if(i.startsWith("@")){let e=i.indexOf("/");if(e>0){let n=i.indexOf("@",e);if(n>e)return {name:i.slice(0,n),version:i.slice(n+1)}}return {name:i,version:null}}let a=i.lastIndexOf("@");return a>0?{name:i.slice(0,a),version:i.slice(a+1)}:{name:i,version:null}}a(X,"parsePackageArg");function J(i,a){try{a$7(i);}catch{a$2(`Invalid package name "${a}". Use format: package-name or @scope/package-name.`),process.exit(1);}}a(J,"validatePackageNameArg");async function Z(i,a,e$1,n){let r=await e(i,a);if(r.length===0)return;if(c$2()){d$2(`[add] Missing transitive deps (json mode): ${r.join(", ")}`);return}if(n){let c=$(e$1,r);b$1.info(b$5()?`[dry-run] Would install missing dependencies: ${r.join(", ")}`:`Installing missing dependencies: ${r.join(", ")}`);let s=await h(c,a);s&&!b$5()?b$1.success("Installed missing dependencies"):s||b$1.warn(`Install failed. Run manually: ${c}`);return}if(await b$1.prompt(`Install ${r.length} missing dependencies? (${r.join(", ")})`,{type:"confirm",initial:true})){let c=$(e$1,r),s=await h(c,a);s&&!b$5()?b$1.success("Installed missing dependencies"):s||b$1.warn(`Install failed. Run manually: ${c}`);}else b$1.warn(`Missing transitive dependencies: ${r.join(", ")}
12
12
  Run: ${$(e$1,r)}`);}a(Z,"handleMissingDeps");async function nn(i,a,e){let n=await d$3(i);if(n.type==="next"&&n.configFile){let s=await a$8(n.configFile,a);s.modified?b$1.success(`Added ${a} to transpilePackages in ${basename(n.configFile)}`):s.error&&b$1.info(`Add to next.config manually: transpilePackages: ['${a}']`);}else if(n.type==="vite"&&n.configFile){let{addKnarrVitePlugin:s}=await import('./vite-config-UWCLPTOZ.mjs'),p=await s(n.configFile);if(p.modified){b$1.success(`Added knarr plugin to ${basename(n.configFile)}`);let g=en(e,"knarr");b$1.info(b$5()?"[dry-run] Would install knarr as devDependency":"Installing knarr as devDependency...");let d=await h(g,i);d&&!b$5()?b$1.success("Installed knarr"):d||b$1.warn(`Install failed. Run manually: ${g}`);}else p.error&&b$1.info(`Add manually:
13
13
  import knarr from "knarr/vite"
14
14
  plugins: [knarr()]`);}let{findTailwindCss:r,addTailwindSource:o}=await import('./tailwind-source-RIWWXW2Y.mjs'),c=await r(i);if(c){let s=await o(c,a,i);s.modified?b$1.success(`Added @source for ${a} to ${basename(c)}`):s.error&&b$1.info(`Add to your CSS manually: @source "../node_modules/${a}";`);}}a(nn,"configureBundler");function $(i,a){for(let n of a)a$7(n);let e=a.join(" ");switch(i){case "pnpm":return `pnpm add ${e}`;case "yarn":return `yarn add ${e}`;case "bun":return `bun add ${e}`;default:return `npm install ${e}`}}a($,"buildInstallCommand");function en(i,a){switch(i){case "pnpm":return `pnpm add -D ${a}`;case "yarn":return `yarn add -D ${a}`;case "bun":return `bun add -d ${a}`;default:return `npm install -D ${a}`}}a(en,"buildDevInstallCommand");function h(i,a){return b$5()?(x({type:"command-skip",path:a,detail:i}),Promise.resolve(true)):new Promise(e=>{let n=platform()==="win32",c=spawn(n?"cmd":"sh",[n?"/c":"-c",i],{cwd:a,stdio:"inherit"});c.on("close",s=>e(s===0)),c.on("error",()=>e(false));})}a(h,"runInstallCommand");export{In as a,An as b};
package/dist/cli.mjs CHANGED
@@ -7,4 +7,4 @@ var o=c(a$1(),1);var _=`
7
7
  | . \\| | | | (_| | | | |
8
8
  |_|\\_\\_| |_|\\__,_|_| |_|
9
9
  `;function s(){console.log(o.default.yellow(_)),console.log(o.default.cyan(" Local npm package development without symlinks")),console.log(o.default.dim(` Copies built files into consumer node_modules with incremental sync
10
- `));}a$2(s,"showBanner");process.env.UV_THREADPOOL_SIZE??=String(Math.max(availableParallelism(),8));a$3();var a=process.argv.slice(2),b=["init","publish","add","use","remove","push","dev","restore","list","status","update","clean","gc","doctor","migrate","reset","rollback","check"],u=a.some(e=>!e.startsWith("-")&&b.includes(e)),v=a.includes("--help")||a.includes("-h")||a.includes("--version");if(!u&&!v&&process.stdin.isTTY){s();let e=await g();e&&process.argv.splice(2,0,e);}else u||s();async function g(){try{let{readConsumerStateSafe:c}=await import('./tracker-JJEYXX45.mjs'),{resolve:p}=await import('path'),{state:d}=await c(p(".")),n=Object.keys(d.links).length;n>0&&b$1.info(`${n} package(s) linked in this project`);}catch{}return await b$1.prompt("What would you like to do?",{type:"select",options:[{label:"init - Set up knarr in this project",value:"init"},{label:"publish - Publish package to the knarr store",value:"publish"},{label:"add - Link a package from the store",value:"add"},{label:"use - Link a local package path",value:"use"},{label:"push - Publish and push to all consumers",value:"push"},{label:"dev - Watch, rebuild, and push continuously",value:"dev"},{label:"list - Show linked packages",value:"list"},{label:"status - Show project status",value:"status"},{label:"help - Show help",value:"--help"}]})||null}a$2(g,"showInteractiveMenu");var k={meta:{name:"knarr",version:"0.0.2",description:"Local npm package development - copies built files into consumer node_modules"},args:{verbose:{type:"boolean",alias:"v",description:"Enable verbose debug logging",default:false},"dry-run":{type:"boolean",description:"Preview changes without writing files",default:false},json:{type:"boolean",description:"Output machine-readable JSON",default:false}},subCommands:{init:a$2(()=>import('./init-XK4B7XYG.mjs').then(e=>e.default),"init"),publish:a$2(()=>import('./publish-TAWTHPSD.mjs').then(e=>e.default),"publish"),add:a$2(()=>import('./add-S4U56IVA.mjs').then(e=>e.default),"add"),use:a$2(()=>import('./use-DUZYEUVU.mjs').then(e=>e.default),"use"),remove:a$2(()=>import('./remove-LOBXHBMC.mjs').then(e=>e.default),"remove"),push:a$2(()=>import('./push-65ZZFZJY.mjs').then(e=>e.default),"push"),dev:a$2(()=>import('./dev-TMWMIT7W.mjs').then(e=>e.default),"dev"),restore:a$2(()=>import('./restore-YHZYT54B.mjs').then(e=>e.default),"restore"),list:a$2(()=>import('./list-GLSA6I67.mjs').then(e=>e.default),"list"),status:a$2(()=>import('./status-FA6UEHEF.mjs').then(e=>e.default),"status"),update:a$2(()=>import('./update-VOUKMOLK.mjs').then(e=>e.default),"update"),clean:a$2(()=>import('./clean-ZD5GPGXQ.mjs').then(e=>e.default),"clean"),gc:a$2(()=>import('./clean-ZD5GPGXQ.mjs').then(e=>e.default),"gc"),doctor:a$2(()=>import('./doctor-AXP7GVBM.mjs').then(e=>e.default),"doctor"),migrate:a$2(()=>import('./migrate-MW4BVLL2.mjs').then(e=>e.default),"migrate"),reset:a$2(()=>import('./reset-EAN5NVGM.mjs').then(e=>e.default),"reset"),rollback:a$2(()=>import('./rollback-U3LQTWH5.mjs').then(e=>e.default),"rollback"),check:a$2(()=>import('./check-YVEJEI2G.mjs').then(e=>e.default),"check")}};a$4(k);
10
+ `));}a$2(s,"showBanner");process.env.UV_THREADPOOL_SIZE??=String(Math.max(availableParallelism(),8));a$3();var a=process.argv.slice(2),b=["init","publish","add","use","remove","push","dev","restore","list","status","update","clean","gc","doctor","migrate","reset","rollback","check"],u=a.some(e=>!e.startsWith("-")&&b.includes(e)),v=a.includes("--help")||a.includes("-h")||a.includes("--version");if(!u&&!v&&process.stdin.isTTY){s();let e=await g();e&&process.argv.splice(2,0,e);}else u||s();async function g(){try{let{readConsumerStateSafe:c}=await import('./tracker-JJEYXX45.mjs'),{resolve:p}=await import('path'),{state:d}=await c(p(".")),n=Object.keys(d.links).length;n>0&&b$1.info(`${n} package(s) linked in this project`);}catch{}return await b$1.prompt("What would you like to do?",{type:"select",options:[{label:"init - Set up knarr in this project",value:"init"},{label:"publish - Publish package to the knarr store",value:"publish"},{label:"add - Link a package from the store",value:"add"},{label:"use - Link a local package path",value:"use"},{label:"push - Publish and push to all consumers",value:"push"},{label:"dev - Watch, rebuild, and push continuously",value:"dev"},{label:"list - Show linked packages",value:"list"},{label:"status - Show project status",value:"status"},{label:"help - Show help",value:"--help"}]})||null}a$2(g,"showInteractiveMenu");var k={meta:{name:"knarr",version:"0.0.3",description:"Local npm package development - copies built files into consumer node_modules"},args:{verbose:{type:"boolean",alias:"v",description:"Enable verbose debug logging",default:false},"dry-run":{type:"boolean",description:"Preview changes without writing files",default:false},json:{type:"boolean",description:"Output machine-readable JSON",default:false}},subCommands:{init:a$2(()=>import('./init-XK4B7XYG.mjs').then(e=>e.default),"init"),publish:a$2(()=>import('./publish-TAWTHPSD.mjs').then(e=>e.default),"publish"),add:a$2(()=>import('./add-LZ6CZTHG.mjs').then(e=>e.default),"add"),use:a$2(()=>import('./use-BXAZ5OP3.mjs').then(e=>e.default),"use"),remove:a$2(()=>import('./remove-LOBXHBMC.mjs').then(e=>e.default),"remove"),push:a$2(()=>import('./push-65ZZFZJY.mjs').then(e=>e.default),"push"),dev:a$2(()=>import('./dev-TMWMIT7W.mjs').then(e=>e.default),"dev"),restore:a$2(()=>import('./restore-YHZYT54B.mjs').then(e=>e.default),"restore"),list:a$2(()=>import('./list-GLSA6I67.mjs').then(e=>e.default),"list"),status:a$2(()=>import('./status-FA6UEHEF.mjs').then(e=>e.default),"status"),update:a$2(()=>import('./update-VOUKMOLK.mjs').then(e=>e.default),"update"),clean:a$2(()=>import('./clean-ZD5GPGXQ.mjs').then(e=>e.default),"clean"),gc:a$2(()=>import('./clean-ZD5GPGXQ.mjs').then(e=>e.default),"gc"),doctor:a$2(()=>import('./doctor-AXP7GVBM.mjs').then(e=>e.default),"doctor"),migrate:a$2(()=>import('./migrate-MW4BVLL2.mjs').then(e=>e.default),"migrate"),reset:a$2(()=>import('./reset-EAN5NVGM.mjs').then(e=>e.default),"reset"),rollback:a$2(()=>import('./rollback-U3LQTWH5.mjs').then(e=>e.default),"rollback"),check:a$2(()=>import('./check-YVEJEI2G.mjs').then(e=>e.default),"check")}};a$4(k);
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {b as b$1,a as a$1}from'./chunk-6QHABEBL.mjs';import'./chunk-OPLSUHCD.mjs';import'./chunk-CTJF2EWO.mjs';import'./chunk-SN4TOUQW.mjs';import'./chunk-37AAX47E.mjs';import'./chunk-TEFMLGCB.mjs';import'./chunk-LXGALE74.mjs';import'./chunk-7SDPRKFT.mjs';import'./chunk-EE2UYGFD.mjs';import {a}from'./chunk-MBKCCWSD.mjs';import {b}from'./chunk-BS4VKVYH.mjs';import'./chunk-7HVPEBK5.mjs';import'./chunk-KOHUNKHP.mjs';import'./chunk-GO6F6AGH.mjs';import'./chunk-3KNUBUPH.mjs';import'./chunk-GQYG5FCW.mjs';import'./chunk-NBSJGM2X.mjs';import'./chunk-B3DZ5HVQ.mjs';import'./chunk-2VCW5RWI.mjs';import {resolve}from'path';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';import {b as b$1,a as a$1}from'./chunk-HEDVIVEO.mjs';import'./chunk-OPLSUHCD.mjs';import'./chunk-CTJF2EWO.mjs';import'./chunk-SN4TOUQW.mjs';import'./chunk-37AAX47E.mjs';import'./chunk-TEFMLGCB.mjs';import'./chunk-LXGALE74.mjs';import'./chunk-7SDPRKFT.mjs';import'./chunk-EE2UYGFD.mjs';import {a}from'./chunk-MBKCCWSD.mjs';import {b}from'./chunk-BS4VKVYH.mjs';import'./chunk-7HVPEBK5.mjs';import'./chunk-KOHUNKHP.mjs';import'./chunk-GO6F6AGH.mjs';import'./chunk-3KNUBUPH.mjs';import'./chunk-GQYG5FCW.mjs';import'./chunk-NBSJGM2X.mjs';import'./chunk-B3DZ5HVQ.mjs';import'./chunk-2VCW5RWI.mjs';import {resolve}from'path';globalThis.require=createRequire(import.meta.url);
3
3
  var d={meta:{name:"use",description:"Publish a local package path and link it into this project"},args:{path:{type:"positional",description:"Path to the local package source",required:true},yes:{type:"boolean",alias:"y",description:"Auto-accept prompts (install missing deps, etc.)",default:false}},async run({args:e}){b();let p=new a,a$2=resolve(e.path),s=await b$1(a$2);await a$1({packageArg:s,from:a$2,yes:e.yes,timer:p});}};export{d as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "knarr",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "Copy local npm package builds into consumer node_modules with incremental sync and watch mode.",
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
@@ -10,15 +10,18 @@
10
10
  "exports": {
11
11
  ".": {
12
12
  "types": "./dist/index.d.ts",
13
- "import": "./dist/index.mjs"
13
+ "import": "./dist/index.mjs",
14
+ "require": "./dist/index.mjs"
14
15
  },
15
16
  "./vite": {
16
17
  "types": "./dist/vite-plugin.d.ts",
17
- "import": "./dist/vite-plugin.mjs"
18
+ "import": "./dist/vite-plugin.mjs",
19
+ "require": "./dist/vite-plugin.mjs"
18
20
  },
19
21
  "./webpack": {
20
22
  "types": "./dist/webpack-plugin.d.ts",
21
- "import": "./dist/webpack-plugin.mjs"
23
+ "import": "./dist/webpack-plugin.mjs",
24
+ "require": "./dist/webpack-plugin.mjs"
22
25
  }
23
26
  },
24
27
  "typesVersions": {