smart-registry 0.18.0-canary.8 → 0.19.0-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -2
- package/dist/bin/index.js +11 -7
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -129,11 +129,16 @@ Options:
|
|
|
129
129
|
-o, --output <path> destination directory for json files (default: "./public/r")
|
|
130
130
|
-c, --cwd <cwd> the working directory (default: "./")
|
|
131
131
|
-i, --ignore <pattern> ignore files matching the pattern (default: none)
|
|
132
|
-
-p, --patterns-only generate registry items for only given files/directories (default: false)
|
|
133
|
-
--codemod-radix migrate to unify "@radix-ui/react-*" imports to "radix-ui"
|
|
134
132
|
-v, --version display version
|
|
135
133
|
-h, --help display help
|
|
136
134
|
|
|
135
|
+
With disabled automatic detection:
|
|
136
|
+
-p, --patterns-only generate registry items for only given files/directories (default: false)
|
|
137
|
+
-r, --registry-only generate registry items for only given registry.json (default: false)
|
|
138
|
+
|
|
139
|
+
Codemods:
|
|
140
|
+
--codemod-radix migrate to unify "@radix-ui/react-*" imports to "radix-ui"
|
|
141
|
+
|
|
137
142
|
Author:
|
|
138
143
|
Neeraj Dalal <admin@nrjdalal.com> (https://nrjdalal.com)
|
|
139
144
|
```
|
package/dist/bin/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var ne=Object.defineProperty,oe=Object.defineProperties;var ae=Object.getOwnPropertyDescriptors;var
|
|
2
|
+
var ne=Object.defineProperty,oe=Object.defineProperties;var ae=Object.getOwnPropertyDescriptors;var B=Object.getOwnPropertySymbols;var pe=Object.prototype.hasOwnProperty,ce=Object.prototype.propertyIsEnumerable;var V=(s,t,r)=>t in s?ne(s,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):s[t]=r,x=(s,t)=>{for(var r in t||(t={}))pe.call(t,r)&&V(s,r,t[r]);if(B)for(var r of B(t))ce.call(t,r)&&V(s,r,t[r]);return s},E=(s,t)=>oe(s,ae(t));import z from"node:fs";import v from"node:path";import{parseArgs as be}from"node:util";import R,{existsSync as L}from"node:fs";import{readFile as me}from"node:fs/promises";import J from"node:path";import{detect as le}from"@antfu/ni";async function q(s,{withFallback:t}={withFallback:!1}){let r=await le({programmatic:!0,cwd:s});if(r==="yarn@berry")return"yarn";if(r==="pnpm@6")return"pnpm";if(r==="bun")return"bun";if(r==="deno")return"deno";if(!t)return r!=null?r:"npm";let a=process.env.npm_config_user_agent||"";return a.startsWith("yarn")?"yarn":a.startsWith("pnpm")?"pnpm":a.startsWith("bun")?"bun":"npm"}import{execa as T}from"execa";import{glob as de}from"tinyglobby";var U=async({cwd:s})=>{let t=J.resolve(s,".gitignore"),r=L(t)?(await me(t,"utf8")).split(`
|
|
3
3
|
`).filter(n=>n.trim()&&!n.startsWith("#")).map(n=>n.replace(/^\//,"").replace(/^/,"**/")):[],a=await de(["**/*.ts","**/*.tsx","**/*.js","**/*.jsx"],{cwd:s,ignore:r}),e=new Set,p=a.map(async n=>{let g=J.resolve(s,n),c=await R.promises.readFile(g,"utf-8"),d=c.replace(/import \* as (\w+Primitive) from "@radix-ui\/react-([\w-]+)"/g,(y,u,m)=>(e.add(`@radix-ui/react-${m}`),`import { ${u.replace("Primitive","")} as ${u} } from "radix-ui"`)).replace(/Sheet\s+as\s+SheetPrimitive/g,"Dialog as SheetPrimitive");return/import\s+\{\s+Slot\s+\}\s+from\s+"@radix-ui\/react-slot"/.test(c)&&(d=d.replace(/import\s+\{\s+Slot\s+\}\s+from\s+"@radix-ui\/react-slot"/,()=>(e.add("@radix-ui/react-slot"),"import { Slot as SlotPrimitive } from 'radix-ui'")).replace(/typeof\s+Slot\b/g,"typeof SlotPrimitive.Slot").replace(/\?\s+Slot\s+:/g,"? SlotPrimitive.Slot :").replace(/<Slot\b/g,"<SlotPrimitive.Slot")),R.promises.writeFile(g,d,"utf-8")});await Promise.all(p);let o=J.resolve(s,"registry.json");if(L(o)){let n=await R.promises.readFile(o,"utf-8"),g=JSON.parse(n),c=y=>{for(let u in y)u==="dependencies"||u==="devDependencies"?y[u]=Array.from(new Set(y[u].map(m=>e.has(m)?"radix-ui":m))):typeof y[u]=="object"&&y[u]!==null&&c(y[u])};c(g);let d=JSON.stringify(g,null,2);await R.promises.writeFile(o,d,"utf-8")}let i=await q(s);e.size&&await T(i,[i==="npm"?"uninstall":"remove",...Array.from(e)],{cwd:s}),await T(i,[i==="npm"?"install":"add","radix-ui"],{cwd:s}),console.log(`
|
|
4
|
-
Codemod ran successfully. Please run the command again without the --codemod-radix flag to generate the registry.`)};var G=["registry/**",["blocks/**","components/**","helpers/**","hooks/**","lib/**","ui/**","utils/**"],["src/blocks/**","src/components/**","src/helpers/**","src/hooks/**","src/lib/**","src/ui/**","src/utils/**"]],D={default:["$schema","name","homepage","items"],items:{default:["$schema","name","type","description","title","author","dependencies","devDependencies","registryDependencies","files","tailwind","cssVars","meta","docs","categories"],type:{default:["registry:ui","registry:hook","registry:lib","registry:theme","registry:page","registry:file","registry:component","registry:block"]},files:{default:["type","target","content","path"],type:{default:["registry:block","registry:component","registry:file","registry:page","registry:theme","registry:lib","registry:hook","registry:ui"]}}}};import _ from"node:fs";import N from"node:path";import ge from"strip-json-comments";var H=async s=>{let t={},r=["tsconfig.json","jsconfig.json"].find(a=>_.existsSync(N.resolve(s,a)));if(r){let a=await _.promises.readFile(N.resolve(s,r),"utf8"),{compilerOptions:e}=JSON.parse(ge(a,{trailingCommas:!0}));e.paths&&(t=Object.entries(e.paths).reduce((p,[o,[i]])=>(o.endsWith("*")&&i.endsWith("*")&&(p[o.replace(/\*$/,"")]=i.replace(/\*$/,"")),p),{}))}return t["@/"]||(t["@/"]=_.existsSync(N.resolve(s,"src"))?"./src/":"./"),t=Object.entries(t).sort(([a],[e])=>e.length-a.length).reduce((a,[e,p])=>(a[e]=p,a),{}),t};import K from"node:fs";import fe from"node:path";var Q=async s=>{let t=fe.resolve(s,"registry.json"),r={$schema:"https://ui.shadcn.com/schema/registry.json",name:"nrjdalal",homepage:"https://nrjdalal.com",items:[]};return K.existsSync(t)&&(r=x({},JSON.parse(await K.promises.readFile(t,"utf8")))),r};import X from"node:fs";import Y from"node:path";import{glob as ue}from"tinyglobby";var $=async({cwd:s,patterns:t=["**",".**"],ignore:r=[]})=>{t=Array.isArray(t)?t:[t],t=t.map(e=>e.replace(/^'|'$/g,"").replace(/^"|"$/g,"").trim()),t=[...t,...t.flatMap(e=>e.includes("*")?[]:[e+".**",e+"**"])],t=t.filter(Boolean),r=typeof r=="string"?r.split(",").map(e=>e.trim()):r,r=r.filter(Boolean);let a=await ue(t,{cwd:s,ignore:r.filter(e=>!t.includes(e))});for(let e of t)if(!a.includes(e)&&!e.endsWith("**")&&!e.endsWith(".**"))try{let p=Y.resolve(s,e),o=await X.promises.stat(p);if(o.isDirectory()){let i=(await X.promises.readdir(p)).map(n=>Y.resolve(e,n));a.push(...i)}else o.isFile()&&a.push(e)}catch(p){continue}return[...new Set(a)]};var Z=async({cwd:s,patterns:t,ignore:r,patternsOnly:a})=>{let e=[];if(!a){for(let p of G)if(e=await $({cwd:s,patterns:p,ignore:r}),e.length)break}if(t.length&&(e=e.concat(await $({cwd:s,patterns:t,ignore:r}))),!e.length)throw new Error("No files/directories found to build the registry from!");return e};import ee from"node:fs";import te from"node:path";var F={imports:/import\s+type\s+[\s\S]+?from\s+['"][^'"]+['"]|import\s+['"][^'"]+['"]|import\s+[\s\S]+?from\s+['"][^'"]+['"]/g};var I=async({cwd:s,aliases:t,filepaths:r,resolved:a})=>{a=a!=null?a:new Set;let e={dependencies:[],devDependencies:[],files:[],content:{}};for(let p of r){if(a.has(p))continue;a.add(p),e.files.push(p),e.content[p]||(e.content[p]=await ee.promises.readFile(te.resolve(s,p),"utf8"));let{dependencies:o,devDependencies:i,files:n,transformations:g}=await re({cwd:s,aliases:t,filepath:p,content:e.content[p]});e.content[p]=e.content[p].replace(F.imports,c=>{let d=c.match(/['"](.*)['"]/);return d&&g[d[1]]?c.replace(d[1],g[d[1]].import):c}),n.forEach(c=>e.files.push(c)),o.forEach(c=>e.dependencies.push(c)),i.forEach(c=>e.devDependencies.push(c))}for(let p of e.files){let{dependencies:o,devDependencies:i,files:n,content:g}=await I({cwd:s,aliases:t,filepaths:[p],resolved:a});e.content[p]||(e.content[p]=g[p]||await ee.promises.readFile(te.resolve(s,p),"utf8")),n.forEach(c=>e.files.push(c)),o.forEach(c=>e.dependencies.push(c)),i.forEach(c=>e.devDependencies.push(c))}return e.dependencies=[...new Set(e.dependencies)].sort(),e.devDependencies=[...new Set(e.devDependencies)].sort(),e.files=[...new Set(e.files)].sort(),e};import se from"node:fs";import O from"node:path";import he from"node:path";var
|
|
5
|
-
${P}@${
|
|
4
|
+
Codemod ran successfully. Please run the command again without the --codemod-radix flag to generate the registry.`)};var G=["registry/**",["blocks/**","components/**","helpers/**","hooks/**","lib/**","ui/**","utils/**"],["src/blocks/**","src/components/**","src/helpers/**","src/hooks/**","src/lib/**","src/ui/**","src/utils/**"]],D={default:["$schema","name","homepage","items"],items:{default:["$schema","name","type","description","title","author","dependencies","devDependencies","registryDependencies","files","tailwind","cssVars","meta","docs","categories"],type:{default:["registry:ui","registry:hook","registry:lib","registry:theme","registry:page","registry:file","registry:component","registry:block"]},files:{default:["type","target","content","path"],type:{default:["registry:block","registry:component","registry:file","registry:page","registry:theme","registry:lib","registry:hook","registry:ui"]}}}};import _ from"node:fs";import N from"node:path";import ge from"strip-json-comments";var H=async s=>{let t={},r=["tsconfig.json","jsconfig.json"].find(a=>_.existsSync(N.resolve(s,a)));if(r){let a=await _.promises.readFile(N.resolve(s,r),"utf8"),{compilerOptions:e}=JSON.parse(ge(a,{trailingCommas:!0}));e.paths&&(t=Object.entries(e.paths).reduce((p,[o,[i]])=>(o.endsWith("*")&&i.endsWith("*")&&(p[o.replace(/\*$/,"")]=i.replace(/\*$/,"")),p),{}))}return t["@/"]||(t["@/"]=_.existsSync(N.resolve(s,"src"))?"./src/":"./"),t=Object.entries(t).sort(([a],[e])=>e.length-a.length).reduce((a,[e,p])=>(a[e]=p,a),{}),t};import K from"node:fs";import fe from"node:path";var Q=async s=>{let t=fe.resolve(s,"registry.json"),r={$schema:"https://ui.shadcn.com/schema/registry.json",name:"nrjdalal",homepage:"https://nrjdalal.com",items:[]};return K.existsSync(t)&&(r=x({},JSON.parse(await K.promises.readFile(t,"utf8")))),r};import X from"node:fs";import Y from"node:path";import{glob as ue}from"tinyglobby";var $=async({cwd:s,patterns:t=["**",".**"],ignore:r=[]})=>{t=Array.isArray(t)?t:[t],t=t.map(e=>e.replace(/^'|'$/g,"").replace(/^"|"$/g,"").trim()),t=[...t,...t.flatMap(e=>e.includes("*")?[]:[e+".**",e+"**"])],t=t.filter(Boolean),r=typeof r=="string"?r.split(",").map(e=>e.trim()):r,r=r.filter(Boolean);let a=await ue(t,{cwd:s,ignore:r.filter(e=>!t.includes(e))});for(let e of t)if(!a.includes(e)&&!e.endsWith("**")&&!e.endsWith(".**"))try{let p=Y.resolve(s,e),o=await X.promises.stat(p);if(o.isDirectory()){let i=(await X.promises.readdir(p)).map(n=>Y.resolve(e,n));a.push(...i)}else o.isFile()&&a.push(e)}catch(p){continue}return[...new Set(a)]};var Z=async({cwd:s,patterns:t,ignore:r,patternsOnly:a})=>{let e=[];if(!a){for(let p of G)if(e=await $({cwd:s,patterns:p,ignore:r}),e.length)break}if(t.length&&(e=e.concat(await $({cwd:s,patterns:t,ignore:r}))),!e.length)throw new Error("No files/directories found to build the registry from!");return e};import ee from"node:fs";import te from"node:path";var F={imports:/import\s+type\s+[\s\S]+?from\s+['"][^'"]+['"]|import\s+['"][^'"]+['"]|import\s+[\s\S]+?from\s+['"][^'"]+['"]/g};var I=async({cwd:s,aliases:t,filepaths:r,resolved:a})=>{a=a!=null?a:new Set;let e={dependencies:[],devDependencies:[],files:[],content:{}};for(let p of r){if(a.has(p))continue;a.add(p),e.files.push(p),e.content[p]||(e.content[p]=await ee.promises.readFile(te.resolve(s,p),"utf8"));let{dependencies:o,devDependencies:i,files:n,transformations:g}=await re({cwd:s,aliases:t,filepath:p,content:e.content[p]});e.content[p]=e.content[p].replace(F.imports,c=>{let d=c.match(/['"](.*)['"]/);return d&&g[d[1]]?c.replace(d[1],g[d[1]].import):c}),n.forEach(c=>e.files.push(c)),o.forEach(c=>e.dependencies.push(c)),i.forEach(c=>e.devDependencies.push(c))}for(let p of e.files){let{dependencies:o,devDependencies:i,files:n,content:g}=await I({cwd:s,aliases:t,filepaths:[p],resolved:a});e.content[p]||(e.content[p]=g[p]||await ee.promises.readFile(te.resolve(s,p),"utf8")),n.forEach(c=>e.files.push(c)),o.forEach(c=>e.dependencies.push(c)),i.forEach(c=>e.devDependencies.push(c))}return e.dependencies=[...new Set(e.dependencies)].sort(),e.devDependencies=[...new Set(e.devDependencies)].sort(),e.files=[...new Set(e.files)].sort(),e};import se from"node:fs";import O from"node:path";import he from"node:path";var b=({cwd:s,aliases:t,filepath:r})=>{var o;let a=r;for(let i in t)r=r.replace(t[i].replaceAll("./","").replaceAll("../",""),"");let e=r.startsWith("registry/")?r.replace(/^registry\//,"").replace(/^(?:([^\/]*)\/)?blocks\//,(i,n)=>`blocks/${n?n+"/":""}`).replace(/^(?:([^\/]*)\/)?charts\//,(i,n)=>`charts/${n?n+"/":""}`).replace(/^(?:([^\/]*)\/)?components\/ui\//,(i,n)=>`${n?n+"/":""}ui/`).replace(/^(?:([^\/]*)\/)?components\//,(i,n)=>`components/${n?n+"/":""}`).replace(/^(?:([^\/]*)\/)?hooks\//,(i,n)=>`hooks/${n?n+"/":""}`).replace(/^(?:([^\/]*)\/)?lib\//,(i,n)=>`lib/${n?n+"/":""}`).replace(/^(?:([^\/]*)\/)?ui\//,(i,n)=>`components/ui/${n?n+"/":""}`).replace(/\/default\//,"/").replace(/^default\//,"").replace(/\.\.\//g,"").replace(/\.\//g,"").replace(/^charts\//,"components/charts/"):r.replace(/\/default\//,"/").replace(/^default\//,"").replace(/\.\.\//g,"").replace(/\.\//g,""),p=e.toLowerCase().replace(/^(blocks|components\/charts|components\/ui|components|hooks|lib|utils|helpers)\//,"").replace(/\/(blocks|components\/charts|components\/ui|components|hooks|lib|utils|helpers)\//,"/").replace(/\.[^\/.]+$/,"").replace(/\/index$/,"").replace(/\/page$/,"").replace(/\/route$/,"").replace(/\/\[.*\]$/,"").replace(/(\b\w+)\b\/\1\b/g,"$1").replace(/\//g,"-");return{type:e.endsWith("page.tsx")?"registry:page":((o=e.match(/^(blocks|components\/charts|components\/ui|components|hooks|lib|utils|helpers)/))==null?void 0:o[1].replace("blocks","registry:block").replace("components/charts","registry:component").replace("components/ui","registry:ui").replace("components","registry:component").replace("hooks","registry:hook").replace("lib","registry:lib").replace("utils","registry:lib").replace("helpers","registry:lib"))||"registry:file",name:p,import:"@/"+e.replace(s+he.sep,"").replace(/\.[^/.]+$/,"").replace(/\/index$/,""),target:a.split("/").length>1?e:`~/${e}`,path:r}};var ye=async({cwd:s,current:t,aliases:r})=>{t=t.replace(new RegExp(`^${Object.keys(r).find(e=>t.startsWith(e.replace(/\.\//g,"").replace(/\.\.\//g,"")))}`),r[Object.keys(r).find(e=>t.startsWith(e.replace(/\.\//g,"").replace(/\.\.\//g,"")))]),t=t.replace(/\.\//g,"").replace(/\.\.\//g,"");let a=await $({cwd:s,patterns:t});return t=a.find(e=>e.startsWith(t+"."))||a.find(e=>e.startsWith(t+"/index"))||t,t.replace(s+"/","")},xe=async({cwd:s,filepath:t,current:r})=>{r=O.relative(s,O.resolve(s,O.dirname(t),r));let a=await $({cwd:s,patterns:r});return r=a.find(e=>e.startsWith(r+"."))||a.find(e=>e.startsWith(r+"/index"))||r,r.replace(s+"/","")},re=async({cwd:s,aliases:t,filepath:r,content:a})=>{let e={dependencies:[],devDependencies:[],files:[],transformations:{}},p=a.match(F.imports)||[];if(!p.length)return e;p=p.map(o=>{var i;return(i=o.match(/['"](.*)['"]/))==null?void 0:i[1].replace(/\/\//g,"/")});for(let o of p){let i=o;if(Object.keys(t).some(g=>o.startsWith(g.replace(/\.\//g,"").replace(/\.\.\//g,""))))o=await ye({cwd:s,aliases:t,current:o}),e.transformations[i]=b({cwd:s,aliases:t,filepath:o}),e.files.push(o);else if(o.startsWith("."))o=await xe({cwd:s,filepath:r,current:o}),e.transformations[i]=b({cwd:s,aliases:t,filepath:o}),e.files.push(o);else{let g=O.resolve(s,"package.json"),c={};if(se.existsSync(g)){let d=JSON.parse(await se.promises.readFile(g,"utf8"));c=x({},d.devDependencies)}if(o.startsWith("@")){let d=o.split("/").slice(0,2).join("/");c[d]?e.devDependencies.push(d):e.dependencies.push(d)}else{let d=o.split("/")[0];c[d]?e.devDependencies.push(d):e.dependencies.push(d)}}}return e};var P="smart-registry",C="0.19.0-canary.0";var W={name:"Neeraj Dalal",email:"admin@nrjdalal.com",url:"https://nrjdalal.com"};var ie=`Version:
|
|
5
|
+
${P}@${C}
|
|
6
6
|
|
|
7
7
|
Usage:
|
|
8
8
|
$ ${P} [files/directories] ... [options]
|
|
@@ -14,15 +14,19 @@ Options:
|
|
|
14
14
|
-o, --output <path> destination directory for json files (default: "./public/r")
|
|
15
15
|
-c, --cwd <cwd> the working directory (default: "./")
|
|
16
16
|
-i, --ignore <pattern> ignore files matching the pattern (default: none)
|
|
17
|
+
-v, --version display version
|
|
18
|
+
-h, --help display help
|
|
19
|
+
|
|
20
|
+
With disabled automatic detection:
|
|
17
21
|
-p, --patterns-only generate registry items for only given files/directories (default: false)
|
|
18
22
|
-r, --registry-only generate registry items for only given registry.json (default: false)
|
|
23
|
+
|
|
24
|
+
Codemods:
|
|
19
25
|
--codemod-radix migrate to unify "@radix-ui/react-*" imports to "radix-ui"
|
|
20
|
-
-v, --version display version
|
|
21
|
-
-h, --help display help
|
|
22
26
|
|
|
23
27
|
Author:
|
|
24
|
-
${W.name} <${W.email}> (${W.url})`,
|
|
25
|
-
`),w.files.forEach(l=>delete l.content),u.items.push(w)}catch(f){d.push(m+": "+f.message);continue}u.items.sort((m,f)=>m.name.localeCompare(f.name)).sort((m,f)=>{let h=D.items.type.default;return h.indexOf(m.type)-h.indexOf(f.type)}),await
|
|
28
|
+
${W.name} <${W.email}> (${W.url})`,ve=s=>{try{return be(s)}catch(t){throw new Error(`Error parsing arguments: ${t.message}`)}},we=async()=>{var s,t,r,a,e;try{let{positionals:p,values:o}=ve({allowPositionals:!0,options:{output:{type:"string",short:"o",default:"public/r"},cwd:{type:"string",short:"c"},ignore:{type:"string",short:"i",default:""},"patterns-only":{type:"boolean",short:"p",default:!1},"registry-only":{type:"boolean",short:"r",default:!1},"codemod-radix":{type:"boolean"},help:{type:"boolean",short:"h"},version:{type:"boolean",short:"v"}}});p.length||(o.version&&(console.log(`${P}@${C}`),process.exit(0)),o.help&&(console.log(ie),process.exit(0)));let i=v.resolve((s=o.cwd)!=null?s:process.cwd());o["codemod-radix"]&&(await U({cwd:i}),process.exit(0));let n=await H(i),g=await Q(i),c=o["registry-only"]?[]:await Z({cwd:i,patterns:p,ignore:o.ignore,patternsOnly:o["patterns-only"]}),d=[],y=((t=g.items)==null?void 0:t.map(m=>m.name))||[],u=E(x({},g),{items:[]});for(let m of[...c,...y])try{if((r=u.items)!=null&&r.find(l=>l.name===m||l.name===b({cwd:i,aliases:n,filepath:m}).name)){console.log("- Skipping already processed file:",m);continue}let f=((a=g.items)==null?void 0:a.find(l=>l.name===m||l.name===b({cwd:i,aliases:n,filepath:m}).name))||{},h=await I({cwd:i,aliases:n,filepaths:[...y.includes(m)?[]:[m],...((e=f==null?void 0:f.files)==null?void 0:e.map(l=>l.path))||[]]}),S={dependencies:[...new Set([...h.dependencies,...(f==null?void 0:f.dependencies)||[]])].sort(),devDependencies:[...new Set([...h.devDependencies,...(f==null?void 0:f.devDependencies)||[]])].sort(),registryDependencies:[...new Set([...(f==null?void 0:f.registryDependencies)||[]])].sort()},w=x(E(x(x(x({$schema:"https://ui.shadcn.com/schema/registry-item.json",name:b({cwd:i,aliases:n,filepath:m}).name,type:b({cwd:i,aliases:n,filepath:m}).type||"registry:file"},S.dependencies.length&&{dependencies:S.dependencies}),S.devDependencies.length&&{devDependencies:S.devDependencies}),S.registryDependencies.length&&{registryDependencies:S.registryDependencies}),{files:h.files.map(l=>({type:b({cwd:i,aliases:n,filepath:l}).type||"registry:file",target:b({cwd:i,aliases:n,filepath:l}).target||l,content:h.content[l],path:l})).sort((l,k)=>{if(l.path===m)return-1;if(k.path===m)return 1;let j=D.items.files.type.default;return j.indexOf(l.type)-j.indexOf(k.type)})}),Object.fromEntries(Object.entries(f).filter(([l])=>!["$schema","name","type","dependencies","devDependencies","registryDependencies","files"].includes(l))));w=Object.keys(w).sort((l,k)=>{let j=D.items.default;return j.indexOf(l)-j.indexOf(k)}).reduce((l,k)=>(l[k]=w[k],l),{});let A=v.resolve(i,o.output,w.name+".json");console.log(`- ${v.relative(process.cwd(),v.resolve(i,m)).padEnd(Math.max(...c.map(l=>v.relative(process.cwd(),v.resolve(i,l)).length))+2," ")} ${h.dependencies.length?"\u{1F4E6}"+String(h.dependencies.length).padEnd(2," "):" "} ${h.files.length-1?"\u{1F4C4}"+String(h.files.length).padEnd(2," "):" "} ${v.relative(process.cwd(),A)}`),await z.promises.mkdir(v.dirname(A),{recursive:!0}),await z.promises.writeFile(A,JSON.stringify(w,null,2)+`
|
|
29
|
+
`),w.files.forEach(l=>delete l.content),u.items.push(w)}catch(f){d.push(m+": "+f.message);continue}u.items.sort((m,f)=>m.name.localeCompare(f.name)).sort((m,f)=>{let h=D.items.type.default;return h.indexOf(m.type)-h.indexOf(f.type)}),await z.promises.writeFile(v.resolve(i,o.output,"registry.json"),JSON.stringify(u,null,2)+`
|
|
26
30
|
`),d.length&&(console.log(),d.forEach(m=>console.error(`\x1B[31m- ${m}\x1B[0m`))),process.exit(0)}catch(p){console.error(ie),console.error(`
|
|
27
31
|
${p.message}
|
|
28
32
|
`),process.exit(1)}};we();
|
package/package.json
CHANGED