@idem.agency/idem-ui 0.1.1 → 0.4.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.
Files changed (2) hide show
  1. package/dist/bin.js +29 -7
  2. package/package.json +2 -3
package/dist/bin.js CHANGED
@@ -1,18 +1,40 @@
1
1
  #!/usr/bin/env node
2
- import{access as _e,mkdir as B,readdir as Ae,rm as Oe,writeFile as xe}from"fs/promises";import{dirname as Ne,join as $e}from"path";var s={UnknownCommand:"ERR_UNKNOWN_COMMAND",SlugRequired:"ERR_SLUG_REQUIRED",TooManySlugs:"ERR_TOO_MANY_SLUGS",UnknownOption:"ERR_UNKNOWN_OPTION",VariantNotFound:"ERR_VARIANT_NOT_FOUND",VariantRequired:"ERR_VARIANT_REQUIRED",StorageUnreachable:"ERR_STORAGE_UNREACHABLE",StorageTimeout:"ERR_STORAGE_TIMEOUT",StorageHttp:"ERR_STORAGE_HTTP",StorageEmptyArchive:"ERR_STORAGE_EMPTY_ARCHIVE",StorageNotFound:"ERR_STORAGE_NOT_FOUND",ComponentNotFound:"ERR_COMPONENT_NOT_FOUND",MetaInvalid:"ERR_META_INVALID",ComponentHasNoVariants:"ERR_COMPONENT_HAS_NO_VARIANTS",TargetExists:"ERR_TARGET_EXISTS",WriteFailed:"ERR_WRITE_FAILED",NoFreePort:"ERR_NO_FREE_PORT",Cancelled:"ERR_CANCELLED"},C=class extends Error{constructor(t){super(t.code);this.details=t;this.name=new.target.name,this.code=t.code}code},d=class extends C{exitCode=2},g=class extends C{exitCode=1},S=class extends C{exitCode=1},P=class extends C{exitCode=1},j=class extends C{exitCode=1},h=class extends C{exitCode=130;constructor(){super({code:s.Cancelled})}};function W(){return{exists:async e=>{try{return await _e(e),!0}catch{return!1}},writeFiles:async(e,r)=>{try{await Oe(e,{recursive:!0,force:!0}),await B(e,{recursive:!0});for(let t of r){let o=$e(e,t.path);await B(Ne(o),{recursive:!0}),await xe(o,t.data)}}catch(t){throw new P({code:s.WriteFailed,target:e,reason:t instanceof Error?t.message:String(t)})}},readSubdirs:async(e,r)=>(await Ae(e,{withFileTypes:!0})).filter(o=>o.isDirectory()).map(o=>o.name).filter(o=>!r(o)).toSorted()}}function k(e){return`components/${e}`}function Q(e){return`${k(e)}/meta.json`}function Ie(e,r){return`${k(e)}/${r}`}function K(e,r,t){if(t.thumbnail!==void 0)return e.fileUrl(`${k(r)}/${t.thumbnail}`)}function Y(e){return{async loadComponent(r){let t=await Me(e,r),o=await X(e,r);if(o.length===0)throw new S({code:s.ComponentHasNoVariants,slug:r,name:t.name});let i=o.toSorted().map(n=>({label:n}));return{slug:r,meta:t,variants:i,thumbnailUrl:K(e,r,t)}},async loadVariantFiles(r,t){return e.fetchArchive(Ie(r,t))},async listComponents(){let r=await J(e),t=await Promise.all(r.map(n=>z(e,n))),o=[],i=[];for(let n of t)n.kind==="component"?o.push({slug:n.slug,meta:n.meta}):i.push(n.skipped);return{components:o.toSorted(T),skipped:i.toSorted(T)}},async listAll(){let r=await J(e),t=await Promise.all(r.map(n=>Le(e,n))),o=[],i=[];for(let n of t)n.kind==="component"?o.push(n.component):i.push(n.skipped);return{components:o.toSorted(T),skipped:i.toSorted(T)}}}}async function Me(e,r){let t=await Ue(e,r);return Z(t,r)}function Z(e,r){let t;try{t=JSON.parse(e)}catch{throw new S({code:s.MetaInvalid,slug:r})}if(typeof t!="object"||t===null||Array.isArray(t))throw new S({code:s.MetaInvalid,slug:r});return t}async function J(e){try{return await e.fetchFolders("components")}catch(r){if(r instanceof g&&r.code===s.StorageNotFound)return[];throw r}}async function z(e,r){let t;try{t=await e.fetchFile(Q(r))}catch(o){if(o instanceof g&&o.code===s.StorageNotFound)return{kind:"skipped",skipped:{slug:r,reason:"missing"}};throw o}try{let o=Z(t,r);return{kind:"component",slug:r,meta:o}}catch(o){if(o instanceof S&&o.code===s.MetaInvalid)return{kind:"skipped",skipped:{slug:r,reason:"invalid"}};throw o}}async function Le(e,r){let[t,o]=await Promise.all([z(e,r),X(e,r)]);if(t.kind==="skipped")return t;if(o.length===0)return{kind:"skipped",skipped:{slug:r,reason:"no-variants"}};let i=o.toSorted().map(n=>({label:n}));return{kind:"component",component:{slug:r,meta:t.meta,variants:i,thumbnailUrl:K(e,r,t.meta)}}}function T(e,r){return e.slug.localeCompare(r.slug)}async function Ue(e,r){try{return await e.fetchFile(Q(r))}catch(t){throw t instanceof g&&t.code===s.StorageNotFound?new S({code:s.ComponentNotFound,slug:r}):t}}async function X(e,r){try{return await e.fetchFolders(k(r))}catch(t){if(t instanceof g&&t.code===s.StorageNotFound)return[];throw t}}var I={host:"gitlab.idem.agency",projectId:556,ref:"main"};function ee(e=process.env){return{host:e.IDEM_STORAGE_HOST||I.host,projectId:e.IDEM_STORAGE_PROJECT||I.projectId,ref:e.IDEM_STORAGE_REF||I.ref}}import{gunzipSync as Qe}from"zlib";var Ve={offset:0,length:100},De={offset:124,length:12},He={offset:156,length:1},Ge={offset:345,length:155},qe=["0","\0"];function re(e){let r=[],t=0;for(;t+512<=e.length;){let o=e.subarray(t,t+512);if(Je(o))break;let i=We(o),n=_(o,He),a=t+512;qe.includes(n)&&r.push({name:Be(o),data:e.slice(a,a+i)}),t=a+Math.ceil(i/512)*512}return r}function Be(e){let r=_(e,Ve),t=_(e,Ge);return t===""?r:`${t}/${r}`}function We(e){return parseInt(_(e,De),8)||0}function _(e,r){let t=e.subarray(r.offset,r.offset+r.length),o=t.indexOf(0);return new TextDecoder().decode(o===-1?t:t.subarray(0,o)).trim()}function Je(e){return e.every(r=>r===0)}var te=1e4;function ne(e,r=globalThis.fetch){let t=`https://${e.host}/api/v4/projects/${e.projectId}/repository`;function o(n){return`${t}/files/${encodeURIComponent(n)}/raw?ref=${e.ref}`}return{fileUrl:o,async fetchFile(n){let a=o(n),c=await i(a);if(!c.ok)throw M(c.status,n);return c.text()},async fetchArchive(n){let a=`${t}/archive.tar.gz?sha=${e.ref}&path=${n}`,c=await i(a,{mode:"same-origin"});if(!c.ok)throw M(c.status,n);let m=new Uint8Array(await c.arrayBuffer());if(m.length===0)throw oe(n);let l=[];for(let R of re(Qe(m))){let b=Ke(n,R.name);b!==void 0&&l.push({path:b,data:R.data})}if(l.length===0)throw oe(n);return l},async fetchFolders(n){let a=`${t}/tree?path=${encodeURIComponent(n)}&ref=${e.ref}&per_page=100`,c=await i(a);if(!c.ok)throw M(c.status,n);return(await c.json()).filter(l=>l.type==="tree").map(l=>l.name)}};async function i(n,a={}){try{return await r(n,{...a,signal:AbortSignal.timeout(te)})}catch(c){throw c instanceof Error&&c.name==="TimeoutError"?new g({code:s.StorageTimeout,host:e.host,ms:te}):new g({code:s.StorageUnreachable,host:e.host})}}}function Ke(e,r){let t=`${e}/`,o=r.lastIndexOf(t);if(o!==-1)return r.slice(o+t.length)}function M(e,r){return e===404?new g({code:s.StorageNotFound,path:r}):new g({code:s.StorageHttp,status:e})}function oe(e){return new g({code:s.StorageEmptyArchive,path:e})}function ie(e){return{command:e[0],rest:e.slice(1)}}function v(e){return e.includes("--help")||e.includes("-h")}async function A(e,r,t){if(r!==void 0){let o=e.variants.find(i=>i.label===r);if(!o)throw new d({code:s.VariantNotFound,slug:e.slug,name:e.meta.name,requested:r,available:e.variants.map(i=>i.label)});return o}return e.variants.length===1?e.variants[0]:t.pick(e.slug,e.meta.name,e.variants)}import se from"path";function L(e,r,t){let o=se.resolve(e,r??".");return se.join(o,t)}async function O(e,r,t,o,i,n){let a=L(o,r,e);return await i.exists(a)&&!t&&await n.confirm(a),a}import{parseArgs as Ye}from"util";function ae(e){let r,t;try{({values:r,positionals:t}=Ye({args:e,allowPositionals:!0,options:{variant:{type:"string"},path:{type:"string"},force:{type:"boolean",default:!1}}}))}catch(o){let i=o instanceof Error?o.message:String(o);throw new d({code:s.UnknownOption,detail:i,command:"get"})}if(t.length===0)throw new d({code:s.SlugRequired,command:"get"});if(t.length>1)throw new d({code:s.TooManySlugs,got:t,command:"get"});return{slug:t[0],variant:r.variant,path:r.path,force:r.force}}var U={get:{summary:"\u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442",usage:"idem-ui get <name> [--variant <label>] [--path <dir>] [--force]",flags:[{flag:"--variant <label>",describes:"\u0432\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430"},{flag:"--path <dir>",describes:"\u043A\u0443\u0434\u0430 \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u2014 \u043F\u043E \u0438\u043C\u0435\u043D\u0438)"},{flag:"--force",describes:"\u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0443\u044E \u043F\u0430\u043F\u043A\u0443"}]},list:{summary:"\u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u0435\u0440\u0435\u0447\u0435\u043D\u044C \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u043E\u0432",usage:"idem-ui list",flags:[]},web:{summary:"\u043F\u043E\u0434\u043D\u044F\u0442\u044C \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u0443\u044E \u0432\u0435\u0431-\u0432\u0438\u0442\u0440\u0438\u043D\u0443",usage:"idem-ui web",flags:[]},help:{summary:"\u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0441\u043F\u0440\u0430\u0432\u043A\u0443",usage:"idem-ui help [command]",flags:[]}},w={general:()=>`idem-ui \u2014 \u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043B\u044C\u0449\u0438\u043A \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u043E\u0432.
2
+ import{access as $e,mkdir as W,readdir as Oe,rm as Ae,writeFile as xe}from"fs/promises";import{dirname as Ne,join as Me}from"path";var s={UnknownCommand:"ERR_UNKNOWN_COMMAND",SlugRequired:"ERR_SLUG_REQUIRED",TooManySlugs:"ERR_TOO_MANY_SLUGS",UnknownOption:"ERR_UNKNOWN_OPTION",VariantNotFound:"ERR_VARIANT_NOT_FOUND",VariantRequired:"ERR_VARIANT_REQUIRED",StorageUnreachable:"ERR_STORAGE_UNREACHABLE",StorageTimeout:"ERR_STORAGE_TIMEOUT",StorageHttp:"ERR_STORAGE_HTTP",StorageEmptyArchive:"ERR_STORAGE_EMPTY_ARCHIVE",StorageNotFound:"ERR_STORAGE_NOT_FOUND",StorageQueryRejected:"ERR_STORAGE_QUERY_REJECTED",ComponentNotFound:"ERR_COMPONENT_NOT_FOUND",MetaInvalid:"ERR_META_INVALID",ComponentHasNoVariants:"ERR_COMPONENT_HAS_NO_VARIANTS",TargetExists:"ERR_TARGET_EXISTS",WriteFailed:"ERR_WRITE_FAILED",NoFreePort:"ERR_NO_FREE_PORT",Cancelled:"ERR_CANCELLED"},E=class extends Error{constructor(t){super(t.code);this.details=t;this.name=new.target.name,this.code=t.code}code},f=class extends E{exitCode=2},u=class extends E{exitCode=1},j=class extends E{exitCode=1},O=class extends E{exitCode=1},A=class extends E{exitCode=1},y=class extends E{exitCode=130;constructor(){super({code:s.Cancelled})}};function J(){return{exists:async e=>{try{return await $e(e),!0}catch{return!1}},writeFiles:async(e,r)=>{try{await Ae(e,{recursive:!0,force:!0}),await W(e,{recursive:!0});for(let t of r){let o=Me(e,t.path);await W(Ne(o),{recursive:!0}),await xe(o,t.data)}}catch(t){throw new O({code:s.WriteFailed,target:e,reason:t instanceof Error?t.message:String(t)})}},readSubdirs:async(e,r)=>(await Oe(e,{withFileTypes:!0})).filter(o=>o.isDirectory()).map(o=>o.name).filter(o=>!r(o)).toSorted()}}function F(e){return`components/${e}`}function N(e){return`${F(e)}/meta.json`}function Ie(e,r){return`${F(e)}/${r}`}function Z(e,r,t){if(t.thumbnail!==void 0)return e.fileUrl(`${F(r)}/${t.thumbnail}`)}function z(e){return{async loadComponent(r){let t=await Ue(e,r),o=await De(e,r);if(o.length===0)throw new j({code:s.ComponentHasNoVariants,slug:r,name:t.name});let n=o.toSorted().map(c=>({label:c}));return{slug:r,meta:t,variants:n,thumbnailUrl:Z(e,r,t)}},async loadVariantFiles(r,t){return e.fetchArchive(Ie(r,t))},async listComponents(){let r=await Y(e),t=await K(e,r),o=r.map(i=>ee(i,t.get(N(i)))),n=[],c=[];for(let i of o)i.kind==="component"?n.push({slug:i.slug,meta:i.meta}):c.push(i.skipped);return{components:n.toSorted(x),skipped:c.toSorted(x)}},async listAll(){let r=await Y(e),[t,o]=await Promise.all([K(e,r),e.fetchFoldersBatch(r.map(a=>F(a)))]),n=r.map(a=>Le(e,a,t.get(N(a)),o.get(F(a))??[])),c=[],i=[];for(let a of n)a.kind==="component"?c.push(a.component):i.push(a.skipped);return{components:c.toSorted(x),skipped:i.toSorted(x)}}}}async function Ue(e,r){let t=await Ve(e,r);return X(t,r)}function X(e,r){let t;try{t=JSON.parse(e)}catch{throw new j({code:s.MetaInvalid,slug:r})}if(typeof t!="object"||t===null||Array.isArray(t))throw new j({code:s.MetaInvalid,slug:r});return t}async function Y(e){try{return await e.fetchFolders("components")}catch(r){if(r instanceof u&&r.code===s.StorageNotFound)return[];throw r}}async function K(e,r){return e.fetchFilesBatch(r.map(t=>N(t)))}function ee(e,r){if(r===void 0)return{kind:"skipped",skipped:{slug:e,reason:"missing"}};try{let t=X(r,e);return{kind:"component",slug:e,meta:t}}catch(t){if(t instanceof j&&t.code===s.MetaInvalid)return{kind:"skipped",skipped:{slug:e,reason:"invalid"}};throw t}}function Le(e,r,t,o){let n=ee(r,t);if(n.kind==="skipped")return n;if(o.length===0)return{kind:"skipped",skipped:{slug:r,reason:"no-variants"}};let c=o.toSorted().map(i=>({label:i}));return{kind:"component",component:{slug:r,meta:n.meta,variants:c,thumbnailUrl:Z(e,r,n.meta)}}}function x(e,r){return e.slug.localeCompare(r.slug)}async function Ve(e,r){try{return await e.fetchFile(N(r))}catch(t){throw t instanceof u&&t.code===s.StorageNotFound?new j({code:s.ComponentNotFound,slug:r}):t}}async function De(e,r){try{return await e.fetchFolders(F(r))}catch(t){if(t instanceof u&&t.code===s.StorageNotFound)return[];throw t}}var V={host:"gitlab.idem.agency",projectPath:"barabel/component-storage",ref:"main"};function re(e=process.env){return{host:e.IDEM_STORAGE_HOST||V.host,projectPath:e.IDEM_STORAGE_PROJECT_PATH||V.projectPath,ref:e.IDEM_STORAGE_REF||V.ref}}import{gunzipSync as Ke}from"zlib";var He={offset:0,length:100},Be={offset:124,length:12},Ge={offset:156,length:1},qe={offset:345,length:155},Qe=["0","\0"];function te(e){let r=[],t=0;for(;t+512<=e.length;){let o=e.subarray(t,t+512);if(Ye(o))break;let n=Je(o),c=M(o,Ge),i=t+512;Qe.includes(c)&&r.push({name:We(o),data:e.slice(i,i+n)}),t=i+Math.ceil(n/512)*512}return r}function We(e){let r=M(e,He),t=M(e,qe);return t===""?r:`${t}/${r}`}function Je(e){return parseInt(M(e,Be),8)||0}function M(e,r){let t=e.subarray(r.offset,r.offset+r.length),o=t.indexOf(0);return new TextDecoder().decode(o===-1?t:t.subarray(0,o)).trim()}function Ye(e){return e.every(r=>r===0)}var oe=1e4,Ze=70,ze=25,Xe=`
3
+ query($project: ID!, $ref: String!, $paths: [String!]!) {
4
+ project(fullPath: $project) {
5
+ repository {
6
+ blobs(paths: $paths, ref: $ref) {
7
+ nodes {
8
+ path
9
+ rawTextBlob
10
+ }
11
+ }
12
+ }
13
+ }
14
+ }
15
+ `;function er(e){let r=Array.from({length:e},(n,c)=>c),t=r.map(n=>`$p${n}: String!`),o=r.map(n=>`t${n}: paginatedTree(path: $p${n}, ref: $ref) { nodes { trees { nodes { name } } } }`);return`
16
+ query($project: ID!, $ref: String!, ${t.join(", ")}) {
17
+ project(fullPath: $project) {
18
+ repository {
19
+ ${o.join(`
20
+ `)}
21
+ }
22
+ }
23
+ }
24
+ `}function ie(e,r=globalThis.fetch){let t=encodeURIComponent(e.projectPath),o=`https://${e.host}/api/v4/projects/${t}/repository`;function n(a){return`${o}/files/${encodeURIComponent(a)}/raw?ref=${e.ref}`}return{fileUrl:n,async fetchFile(a){let m=n(a),p=await i(m);if(!p.ok)throw D(p.status,a);return p.text()},async fetchArchive(a){let m=`${o}/archive.tar.gz?sha=${e.ref}&path=${a}`,p=await i(m,{mode:"same-origin"});if(!p.ok)throw D(p.status,a);let g=new Uint8Array(await p.arrayBuffer());if(g.length===0)throw se(a);let d=[];for(let b of te(Ke(g))){let w=rr(a,b.name);w!==void 0&&d.push({path:w,data:b.data})}if(d.length===0)throw se(a);return d},async fetchFolders(a){let m=`${o}/tree?path=${encodeURIComponent(a)}&ref=${e.ref}&per_page=100`,p=[],g="";do{let d=await i(g===""?m:`${m}&page=${encodeURIComponent(g)}`);if(!d.ok)throw D(d.status,a);g=d.headers.get("x-next-page")??"";let b=await d.json();p.push(...b.filter(w=>w.type==="tree").map(w=>w.name))}while(g!=="");return p},async fetchFilesBatch(a){let m=await Promise.all(ne(a,Ze).map(g=>c(Xe,{paths:g}))),p=new Map;for(let g of m)for(let d of g.project.repository.blobs.nodes)p.set(d.path,d.rawTextBlob);return p},async fetchFoldersBatch(a){let m=await Promise.all(ne(a,ze).map(async g=>{let d=await c(er(g.length),tr(g));return{batch:g,data:d}})),p=new Map;for(let{batch:g,data:d}of m)g.forEach((b,w)=>{let $=d.project.repository[`t${w}`];p.set(b,($?.nodes??[]).flatMap(_=>_.trees.nodes.map(k=>k.name)))});return p}};async function c(a,m){let p=await i(`https://${e.host}/api/graphql`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({query:a,variables:{...m,project:e.projectPath,ref:e.ref}})});if(!p.ok)throw new u({code:s.StorageHttp,status:p.status});let g=await p.json(),[d]=g.errors??[];if(d!==void 0)throw new u({code:s.StorageQueryRejected,reason:d.message});return g.data}async function i(a,m={}){try{return await r(a,{...m,signal:AbortSignal.timeout(oe)})}catch(p){throw p instanceof Error&&p.name==="TimeoutError"?new u({code:s.StorageTimeout,host:e.host,ms:oe}):new u({code:s.StorageUnreachable,host:e.host})}}}function rr(e,r){let t=`${e}/`,o=r.lastIndexOf(t);if(o!==-1)return r.slice(o+t.length)}function tr(e){return Object.fromEntries(e.map((r,t)=>[`p${t}`,r]))}function ne(e,r){let t=[];for(let o=0;o<e.length;o+=r)t.push(e.slice(o,o+r));return t}function D(e,r){return e===404?new u({code:s.StorageNotFound,path:r}):new u({code:s.StorageHttp,status:e})}function se(e){return new u({code:s.StorageEmptyArchive,path:e})}function ae(e){return{command:e[0],rest:e.slice(1)}}function v(e){return e.includes("--help")||e.includes("-h")}async function I(e,r,t){if(r!==void 0){let o=e.variants.find(n=>n.label===r);if(!o)throw new f({code:s.VariantNotFound,slug:e.slug,name:e.meta.name,requested:r,available:e.variants.map(n=>n.label)});return o}return e.variants.length===1?e.variants[0]:t.pick(e.slug,e.meta.name,e.variants)}import ce from"path";function H(e,r,t){let o=ce.resolve(e,r??".");return ce.join(o,t)}async function U(e,r,t,o,n,c){let i=H(o,r,e);return await n.exists(i)&&!t&&await c.confirm(i),i}import{parseArgs as or}from"util";function pe(e){let r,t;try{({values:r,positionals:t}=or({args:e,allowPositionals:!0,options:{variant:{type:"string"},path:{type:"string"},force:{type:"boolean",default:!1}}}))}catch(o){let n=o instanceof Error?o.message:String(o);throw new f({code:s.UnknownOption,detail:n,command:"get"})}if(t.length===0)throw new f({code:s.SlugRequired,command:"get"});if(t.length>1)throw new f({code:s.TooManySlugs,got:t,command:"get"});return{slug:t[0],variant:r.variant,path:r.path,force:r.force}}var B={get:{summary:"\u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442",usage:"idem-ui get <name> [--variant <label>] [--path <dir>] [--force]",flags:[{flag:"--variant <label>",describes:"\u0432\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430"},{flag:"--path <dir>",describes:"\u043A\u0443\u0434\u0430 \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u2014 \u043F\u043E \u0438\u043C\u0435\u043D\u0438)"},{flag:"--force",describes:"\u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0443\u044E \u043F\u0430\u043F\u043A\u0443"}]},list:{summary:"\u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u0435\u0440\u0435\u0447\u0435\u043D\u044C \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u043E\u0432",usage:"idem-ui list",flags:[]},web:{summary:"\u043F\u043E\u0434\u043D\u044F\u0442\u044C \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u0443\u044E \u0432\u0435\u0431-\u0432\u0438\u0442\u0440\u0438\u043D\u0443",usage:"idem-ui web",flags:[]},help:{summary:"\u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0441\u043F\u0440\u0430\u0432\u043A\u0443",usage:"idem-ui help [command]",flags:[]}},R={general:()=>`idem-ui \u2014 \u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043B\u044C\u0449\u0438\u043A \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u043E\u0432.
3
25
 
4
26
  \u041A\u043E\u043C\u0430\u043D\u0434\u044B:
5
- ${Object.entries(U).map(([r,{summary:t}])=>` ${r.padEnd(6)} ${t}`).join(`
6
- `)}`,forCommand:e=>{let{summary:r,usage:t,flags:o}=U[e];if(o.length===0)return`\u0414\u043B\u044F \u0447\u0435\u0433\u043E: ${r}
27
+ ${Object.entries(B).map(([r,{summary:t}])=>` ${r.padEnd(6)} ${t}`).join(`
28
+ `)}`,forCommand:e=>{let{summary:r,usage:t,flags:o}=B[e];if(o.length===0)return`\u0414\u043B\u044F \u0447\u0435\u0433\u043E: ${r}
7
29
 
8
- \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435: ${t}`;let i=o.map(({flag:n,describes:a})=>` ${n.padEnd(20)} ${a}`);return`\u0414\u043B\u044F \u0447\u0435\u0433\u043E: ${r}
30
+ \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435: ${t}`;let n=o.map(({flag:c,describes:i})=>` ${c.padEnd(20)} ${i}`);return`\u0414\u043B\u044F \u0447\u0435\u0433\u043E: ${r}
9
31
 
10
32
  \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435: ${t}
11
33
 
12
34
  \u0424\u043B\u0430\u0433\u0438:
13
- ${i.join(`
14
- `)}`},isCommand:e=>e in U};var x=(e,r)=>`${r} (${e})`,p={error:e=>{switch(e.code){case s.UnknownCommand:return`\u041D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430\u044F \u043A\u043E\u043C\u0430\u043D\u0434\u0430 ${e.got}. \u0421\u043F\u0438\u0441\u043E\u043A \u043A\u043E\u043C\u0430\u043D\u0434 \u2014 idem-ui help.`;case s.SlugRequired:return"\u041D\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u043E \u0438\u043C\u044F \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430.";case s.TooManySlugs:return`\u041E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u043C\u044F \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E: ${e.got.join(", ")}`;case s.UnknownOption:return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B: ${e.detail}`;case s.VariantNotFound:return`\u0423 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 ${x(e.slug,e.name)} \u043D\u0435\u0442 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0430 ${e.requested}. \u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435: ${e.available.join(", ")}`;case s.VariantRequired:return`\u0423 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 ${x(e.slug,e.name)} \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043E\u0432: ${e.available.join(", ")}. \u0423\u043A\u0430\u0436\u0438 --variant <label>.`;case s.StorageUnreachable:return`\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0441\u044F \u043A \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0443 ${e.host}. \u041F\u0440\u043E\u0432\u0435\u0440\u044C, \u043F\u043E\u0434\u043D\u044F\u0442 \u043B\u0438 VPN.`;case s.StorageTimeout:return`\u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 ${e.host} \u043D\u0435 \u043E\u0442\u0432\u0435\u0442\u0438\u043B\u043E \u0437\u0430 ${e.ms/1e3} \u0441. \u041F\u0440\u043E\u0432\u0435\u0440\u044C VPN; \u0435\u0441\u043B\u0438 \u043E\u043D \u043F\u043E\u0434\u043D\u044F\u0442 \u2014 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E, GitLab \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D.`;case s.StorageHttp:return`\u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043E\u0442\u0432\u0435\u0442\u0438\u043B\u043E \u043E\u0448\u0438\u0431\u043A\u043E\u0439 ${e.status}. \u041F\u043E\u0434\u043E\u0436\u0434\u0438 \u0438 \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439 \u0441\u043D\u043E\u0432\u0430; \u0435\u0441\u043B\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0441\u044F \u2014 \u0441\u043E\u043E\u0431\u0449\u0438 \u043C\u0435\u0439\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u0443.`;case s.StorageEmptyArchive:return`\u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043E\u0442\u0434\u0430\u043B\u043E \u043F\u0443\u0441\u0442\u043E\u0439 \u0430\u0440\u0445\u0438\u0432 \u0434\u043B\u044F ${e.path}. \u041F\u043E\u0434\u043E\u0436\u0434\u0438 \u0438 \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439 \u0441\u043D\u043E\u0432\u0430; \u0435\u0441\u043B\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0441\u044F \u2014 \u0441\u043E\u043E\u0431\u0449\u0438 \u043C\u0435\u0439\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u0443.`;case s.StorageNotFound:return`\u0412 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043D\u0435\u0442 \u043F\u0443\u0442\u0438 ${e.path}. \u041F\u0440\u043E\u0432\u0435\u0440\u044C \u0438\u043C\u044F.`;case s.ComponentNotFound:return`\u0412 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043D\u0435\u0442 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 ${e.slug}. \u041F\u0440\u043E\u0432\u0435\u0440\u044C \u0438\u043C\u044F.`;case s.MetaInvalid:return`\u041C\u0435\u0442\u0430 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 ${e.slug} \u043D\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u043C JSON-\u043E\u0431\u044A\u0435\u043A\u0442\u043E\u043C. \u0421\u043E\u043E\u0431\u0449\u0438 \u043C\u0435\u0439\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u0443.`;case s.ComponentHasNoVariants:return`\u0423 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 ${x(e.slug,e.name)} \u043D\u0435\u0442 \u043D\u0438 \u043E\u0434\u043D\u043E\u0439 \u043F\u0430\u043F\u043A\u0438-\u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0430. \u0421\u043E\u043E\u0431\u0449\u0438 \u043C\u0435\u0439\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u0443 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430.`;case s.TargetExists:return`\u041F\u0430\u043F\u043A\u0430 ${e.target} \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. \u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044C \u0442\u0440\u0435\u0431\u0443\u0435\u0442 --force.`;case s.WriteFailed:return`\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0432 ${e.target}: ${e.reason}`;case s.NoFreePort:return`\u041D\u0435 \u043D\u0430\u0448\u043B\u043E\u0441\u044C \u0441\u0432\u043E\u0431\u043E\u0434\u043D\u043E\u0433\u043E \u043F\u043E\u0440\u0442\u0430: ${e.tried} \u043F\u043E\u0434\u0440\u044F\u0434 \u0437\u0430\u043D\u044F\u0442\u044B, \u043D\u0430\u0447\u0438\u043D\u0430\u044F \u0441 ${e.start}. \u041E\u0441\u0432\u043E\u0431\u043E\u0434\u0438 \u043F\u043E\u0440\u0442 \u0438\u043B\u0438 \u0437\u0430\u043A\u0440\u043E\u0439 \u043B\u0438\u0448\u043D\u0438\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u044B.`;case s.Cancelled:return"\u041E\u0442\u043C\u0435\u043D\u0435\u043D\u043E"}},tryHelp:e=>`\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u0435\u0435: idem-ui ${e} --help`,variantQuestion:(e,r)=>`\u0412\u044B\u0431\u0435\u0440\u0438 \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 ${x(e,r)}`,componentDescription:e=>{let r=[`\u041A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442: ${e.name}`];return e.description&&r.push(`\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435: ${e.description}`),e.tags&&r.push(`\u0422\u0435\u0433\u0438: ${e.tags.join(", ")}`),r.join(`
35
+ ${n.join(`
36
+ `)}`},isCommand:e=>e in B};var L=(e,r)=>`${r} (${e})`,l={error:e=>{switch(e.code){case s.UnknownCommand:return`\u041D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430\u044F \u043A\u043E\u043C\u0430\u043D\u0434\u0430 ${e.got}. \u0421\u043F\u0438\u0441\u043E\u043A \u043A\u043E\u043C\u0430\u043D\u0434 \u2014 idem-ui help.`;case s.SlugRequired:return"\u041D\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u043E \u0438\u043C\u044F \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430.";case s.TooManySlugs:return`\u041E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u043C\u044F \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E: ${e.got.join(", ")}`;case s.UnknownOption:return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B: ${e.detail}`;case s.VariantNotFound:return`\u0423 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 ${L(e.slug,e.name)} \u043D\u0435\u0442 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0430 ${e.requested}. \u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435: ${e.available.join(", ")}`;case s.VariantRequired:return`\u0423 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 ${L(e.slug,e.name)} \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043E\u0432: ${e.available.join(", ")}. \u0423\u043A\u0430\u0436\u0438 --variant <label>.`;case s.StorageUnreachable:return`\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0441\u044F \u043A \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0443 ${e.host}. \u041F\u0440\u043E\u0432\u0435\u0440\u044C, \u043F\u043E\u0434\u043D\u044F\u0442 \u043B\u0438 VPN.`;case s.StorageTimeout:return`\u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 ${e.host} \u043D\u0435 \u043E\u0442\u0432\u0435\u0442\u0438\u043B\u043E \u0437\u0430 ${e.ms/1e3} \u0441. \u041F\u0440\u043E\u0432\u0435\u0440\u044C VPN; \u0435\u0441\u043B\u0438 \u043E\u043D \u043F\u043E\u0434\u043D\u044F\u0442 \u2014 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E, GitLab \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D.`;case s.StorageHttp:return`\u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043E\u0442\u0432\u0435\u0442\u0438\u043B\u043E \u043E\u0448\u0438\u0431\u043A\u043E\u0439 ${e.status}. \u041F\u043E\u0434\u043E\u0436\u0434\u0438 \u0438 \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439 \u0441\u043D\u043E\u0432\u0430; \u0435\u0441\u043B\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0441\u044F \u2014 \u0441\u043E\u043E\u0431\u0449\u0438 \u043C\u0435\u0439\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u0443.`;case s.StorageEmptyArchive:return`\u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043E\u0442\u0434\u0430\u043B\u043E \u043F\u0443\u0441\u0442\u043E\u0439 \u0430\u0440\u0445\u0438\u0432 \u0434\u043B\u044F ${e.path}. \u041F\u043E\u0434\u043E\u0436\u0434\u0438 \u0438 \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439 \u0441\u043D\u043E\u0432\u0430; \u0435\u0441\u043B\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0441\u044F \u2014 \u0441\u043E\u043E\u0431\u0449\u0438 \u043C\u0435\u0439\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u0443.`;case s.StorageNotFound:return`\u0412 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043D\u0435\u0442 \u043F\u0443\u0442\u0438 ${e.path}. \u041F\u0440\u043E\u0432\u0435\u0440\u044C \u0438\u043C\u044F.`;case s.StorageQueryRejected:return`\u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043E\u0442\u0432\u0435\u0440\u0433\u043B\u043E \u0437\u0430\u043F\u0440\u043E\u0441, \u0441\u0435\u0442\u044C \u043F\u0440\u0438 \u044D\u0442\u043E\u043C \u0446\u0435\u043B\u0430 \u2014 \u0441\u043E\u043E\u0431\u0449\u0438 \u043C\u0435\u0439\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u0443. \u041E\u0442\u0432\u0435\u0442 GitLab: ${e.reason}`;case s.ComponentNotFound:return`\u0412 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043D\u0435\u0442 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 ${e.slug}. \u041F\u0440\u043E\u0432\u0435\u0440\u044C \u0438\u043C\u044F.`;case s.MetaInvalid:return`\u041C\u0435\u0442\u0430 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 ${e.slug} \u043D\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u043C JSON-\u043E\u0431\u044A\u0435\u043A\u0442\u043E\u043C. \u0421\u043E\u043E\u0431\u0449\u0438 \u043C\u0435\u0439\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u0443.`;case s.ComponentHasNoVariants:return`\u0423 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 ${L(e.slug,e.name)} \u043D\u0435\u0442 \u043D\u0438 \u043E\u0434\u043D\u043E\u0439 \u043F\u0430\u043F\u043A\u0438-\u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0430. \u0421\u043E\u043E\u0431\u0449\u0438 \u043C\u0435\u0439\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u0443 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430.`;case s.TargetExists:return`\u041F\u0430\u043F\u043A\u0430 ${e.target} \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. \u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044C \u0442\u0440\u0435\u0431\u0443\u0435\u0442 --force.`;case s.WriteFailed:return`\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0432 ${e.target}: ${e.reason}`;case s.NoFreePort:return`\u041D\u0435 \u043D\u0430\u0448\u043B\u043E\u0441\u044C \u0441\u0432\u043E\u0431\u043E\u0434\u043D\u043E\u0433\u043E \u043F\u043E\u0440\u0442\u0430: ${e.tried} \u043F\u043E\u0434\u0440\u044F\u0434 \u0437\u0430\u043D\u044F\u0442\u044B, \u043D\u0430\u0447\u0438\u043D\u0430\u044F \u0441 ${e.start}. \u041E\u0441\u0432\u043E\u0431\u043E\u0434\u0438 \u043F\u043E\u0440\u0442 \u0438\u043B\u0438 \u0437\u0430\u043A\u0440\u043E\u0439 \u043B\u0438\u0448\u043D\u0438\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u044B.`;case s.Cancelled:return"\u041E\u0442\u043C\u0435\u043D\u0435\u043D\u043E"}},tryHelp:e=>`\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u0435\u0435: idem-ui ${e} --help`,variantQuestion:(e,r)=>`\u0412\u044B\u0431\u0435\u0440\u0438 \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 ${L(e,r)}`,componentDescription:e=>{let r=[`\u041A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442: ${e.name}`];return e.description&&r.push(`\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435: ${e.description}`),e.tags&&r.push(`\u0422\u0435\u0433\u0438: ${e.tags.join(", ")}`),r.join(`
15
37
  `)},overwriteQuestion:e=>`\u041F\u0430\u043F\u043A\u0430 ${e} \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. \u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C?`,pathQuestion:()=>"\u0412 \u043A\u0430\u043A\u0443\u044E \u043F\u0430\u043F\u043A\u0443 \u043F\u043E\u043B\u043E\u0436\u0438\u0442\u044C? (Enter \u2014 \u0442\u0435\u043A\u0443\u0449\u0430\u044F)",chosenVariant:e=>`\u0412\u0430\u0440\u0438\u0430\u043D\u0442: ${e}`,downloading:(e,r)=>`\u0421\u043A\u0430\u0447\u0438\u0432\u0430\u044E ${e}/${r}\u2026`,copied:e=>`\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u0432 ${e}`,note:e=>`
16
38
  P.S.
17
39
  ${e}`,catalogHeader:()=>"\u041A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u044B:",catalogLine:(e,r)=>{let t=`- (${e}) ${r.name}`;return r.description&&(t+=` \u2014 ${r.description}`),r.tags?.length&&(t+=` [${r.tags.join(", ")}]`),t},componentQuestion:()=>"\u0412\u044B\u0431\u0435\u0440\u0438 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442",catalogChoiceLabel:(e,r)=>`(${e}) ${r.name}`,catalogChoiceHint:e=>{let r=[];return e.description&&r.push(e.description),e.tags?.length&&r.push(`\u0422\u0435\u0433\u0438: ${e.tags.join(", ")}`),r.length>0?r.join(`
18
- `):void 0},emptyCatalog:()=>"\u0412 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043D\u0435\u0442 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u043E\u0432",skippedHeader:()=>"\u041F\u0440\u043E\u043F\u0443\u0449\u0435\u043D\u044B \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u044B:",skippedComponent:(e,r)=>{switch(r){case"missing":return`- ${e}: \u043D\u0435\u0442 meta.json.`;case"invalid":return`- ${e}: \u0431\u0438\u0442\u044B\u0439 meta.json.`;case"no-variants":return`- ${e}: \u043D\u0435\u0442 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043E\u0432.`}},cliError:(e,r)=>`error [${e}]: ${r}`,internalError:()=>"\u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u044F\u044F \u043E\u0448\u0438\u0431\u043A\u0430:"};function ce(e){let{catalog:r,picker:t,projectFiles:o,confirmer:i}=e;return async n=>{if(v(n)){console.log(w.forCommand("get"));return}let a=ae(n),c=await r.loadComponent(a.slug);console.log(p.componentDescription(c.meta));let m=await A(c,a.variant,t);console.log(p.chosenVariant(m.label));let l=await O(a.slug,a.path,a.force,process.cwd(),o,i);console.log(p.downloading(a.slug,m.label));let R=await r.loadVariantFiles(a.slug,m.label);await o.writeFiles(l,R),console.log(p.copied(l));let b=c.meta.note?.trim();b&&console.log(p.note(b))}}import{parseArgs as Ze}from"util";function pe(e){try{Ze({args:e,options:{},allowPositionals:!1})}catch(r){let t=r instanceof Error?r.message:String(r);throw new d({code:s.UnknownOption,detail:t,command:"list"})}}import ze from"@inquirer/search";var F=e=>e instanceof Error&&e.name==="ExitPromptError";function Xe(e,r){let t=(r??"").trim().toLowerCase();return e.filter(({slug:o,meta:i})=>`${o} ${i.name}`.toLowerCase().includes(t))}async function me(e){try{return await ze({message:p.componentQuestion(),pageSize:10,source:r=>Xe(e,r).map(({slug:t,meta:o})=>({name:p.catalogChoiceLabel(t,o),value:t,description:p.catalogChoiceHint(o)}))})}catch(r){throw F(r)?new h:r}}import er from"@inquirer/input";async function le(e){try{return await er({message:p.pathQuestion(),default:e})}catch(r){throw F(r)?new h:r}}function de(e){let{catalog:r,picker:t,projectFiles:o,confirmer:i}=e;return async n=>{if(v(n)){console.log(w.forCommand("list"));return}pe(n);let{components:a,skipped:c}=await r.listComponents();if(c.length>0&&(console.error(p.skippedHeader()),c.forEach(({slug:N,reason:$})=>{console.error(p.skippedComponent(N,$))}),console.error("")),!process.stdout.isTTY){a.length>0&&(console.log(p.catalogHeader()),a.forEach(({slug:N,meta:$})=>{console.log(p.catalogLine(N,$))}));return}if(a.length===0){console.log(p.emptyCatalog());return}let m=await me(a),l=await r.loadComponent(m),R=await A(l,void 0,t);console.log(p.chosenVariant(R.label));let b=await le(process.cwd()),G=await O(m,b,!1,process.cwd(),o,i);console.log(p.downloading(m,R.label));let ke=await r.loadVariantFiles(m,R.label);await o.writeFiles(G,ke),console.log(p.copied(G));let q=l.meta.note?.trim();q&&console.log(p.note(q))}}function ge(){return e=>{let r=e[0];if(r!==void 0&&w.isCommand(r)){console.log(w.forCommand(r));return}console.log(w.general())}}import{createServer as sr}from"http";import{fileURLToPath as ar}from"url";import cr from"open";import{createServer as rr}from"net";var tr=e=>new Promise((r,t)=>{let o=rr();o.once("error",i=>{if(i.code==="EADDRINUSE"){r(!1);return}t(i)}),o.listen(e,"127.0.0.1",()=>{o.close(()=>r(!0))})});async function fe(e,r){for(let t=0;t<r;t++){let o=e+t;if(await tr(o))return o}throw new j({code:s.NoFreePort,start:e,tried:r})}var E={BadRequest:"ERR_BAD_REQUEST",NotFound:"ERR_NOT_FOUND",MethodNotAllowed:"ERR_METHOD_NOT_ALLOWED",Internal:"ERR_INTERNAL"},y=class extends Error{constructor(t,o){super(o);this.code=t;this.name="WebRequestError"}};function V(e){switch(e){case"ERR_STORAGE_UNREACHABLE":case"ERR_STORAGE_TIMEOUT":case"ERR_STORAGE_HTTP":case"ERR_STORAGE_EMPTY_ARCHIVE":return 502;case"ERR_COMPONENT_NOT_FOUND":return 404;case"ERR_BAD_REQUEST":return 400;case"ERR_WRITE_FAILED":return 500;default:return 500}}var f={listeningOn:e=>`\u0421\u0435\u0440\u0432\u0435\u0440 \u043D\u0430 ${e}`,error:e=>{switch(e.code){case"ERR_STORAGE_UNREACHABLE":return"\u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E. \u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 VPN.";case"ERR_STORAGE_TIMEOUT":return"\u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043D\u0435 \u043E\u0442\u0432\u0435\u0442\u0438\u043B\u043E \u0432\u043E\u0432\u0440\u0435\u043C\u044F.";case"ERR_STORAGE_HTTP":return"\u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043E\u0442\u0432\u0435\u0442\u0438\u043B\u043E \u043E\u0448\u0438\u0431\u043A\u043E\u0439.";case"ERR_STORAGE_EMPTY_ARCHIVE":return"\u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043E\u0442\u0434\u0430\u043B\u043E \u043F\u0443\u0441\u0442\u043E\u0439 \u0430\u0440\u0445\u0438\u0432.";case"ERR_COMPONENT_NOT_FOUND":return"\u041D\u0435\u0442 \u0442\u0430\u043A\u043E\u0433\u043E \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430.";case"ERR_WRITE_FAILED":return"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u043D\u0430 \u0434\u0438\u0441\u043A.";default:return"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u0437\u0430\u043F\u0440\u043E\u0441."}},internalError:()=>"\u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u044F\u044F \u043E\u0448\u0438\u0431\u043A\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.",badRequest:()=>"\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 \u0437\u0430\u043F\u0440\u043E\u0441.",notFound:()=>"\u041D\u0435\u0442 \u0442\u0430\u043A\u043E\u0433\u043E \u0440\u043E\u0443\u0442\u0430.",methodNotAllowed:()=>"\u041C\u0435\u0442\u043E\u0434 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u044D\u0442\u0438\u043C \u0440\u043E\u0443\u0442\u043E\u043C."};async function ue(e){let r=[];for await(let o of e)r.push(o);let t=Buffer.concat(r).toString("utf8");try{return JSON.parse(t)}catch{throw new y(E.BadRequest,f.badRequest())}}function u(e,r,t){e.writeHead(r,{"Content-Type":"application/json; charset=utf-8"}),e.end(JSON.stringify(t))}function D(e){return typeof e=="string"&&e.length>0}function Ce(e){return async(r,t)=>{let o=await ue(r);if(o===null||typeof o!="object")throw new y(E.BadRequest,f.badRequest());let{slug:i,label:n,path:a}=o;if(!D(i)||!D(n)||!D(a))throw new y(E.BadRequest,f.badRequest());let c=L(process.cwd(),a,i),m=await e.catalog.loadVariantFiles(i,n);await e.projectFiles.writeFiles(c,m),u(t,200,{ok:!0,target:c})}}import H from"path";function he(e){return e==="node_modules"||e.startsWith(".")}function we(e){return async(r,t)=>{let o=process.cwd(),i=new URL(r.url??"/","http://localhost").searchParams.get("path")??"",n=H.resolve(o,i),c=(await e.projectFiles.readSubdirs(n,he)).map(m=>({name:m,path:H.relative(o,H.join(n,m))}));u(t,200,{dirs:c})}}var or=6e4;function Ee(e){let r;return async(t,o)=>{(r===void 0||Date.now()-r.at>=or||nr(t))&&(r={at:Date.now(),listing:e.catalog.listAll()});let i;try{i=await r.listing}catch(n){throw r=void 0,n}u(o,200,i)}}function nr(e){let r=e.headers["cache-control"];return typeof r=="string"&&r.includes("no-cache")}function ye(e,r){if(r instanceof C){u(e,V(r.code),{code:r.code,message:f.error(r.details)});return}if(r instanceof y){u(e,V(r.code),{code:r.code,message:r.message});return}console.error(r),u(e,500,{code:E.Internal,message:f.internalError()})}function Re(e){let r=Ee({catalog:e.catalog}),t=Ce({catalog:e.catalog,projectFiles:e.projectFiles}),o=we({projectFiles:e.projectFiles}),i={"/api/components":{GET:r},"/api/copy":{POST:t},"/api/dirs":{GET:o}};return async(n,a)=>{let c=new URL(n.url??"/","http://localhost").pathname;if(!c.startsWith("/api"))return!1;try{let m=i[c];if(m===void 0)return u(a,404,{code:E.NotFound,message:f.notFound()}),!0;let l=m[n.method??""];if(l===void 0)return u(a,405,{code:E.MethodNotAllowed,message:f.methodNotAllowed()}),!0;await l(n,a)}catch(m){ye(a,m)}return!0}}import ir from"sirv";var Se=e=>ir(e,{single:!0});var pr=4321,mr=3,Fe="127.0.0.1",lr=ar(new URL("./webapp",import.meta.url)),dr=e=>{cr(e).catch(()=>{})};async function be(e){let r=await fe(pr,mr),t=Re(e),o=Se(lr),i=sr((a,c)=>{(async()=>await t(a,c)||o(a,c))()});await new Promise(a=>{i.listen(r,Fe,()=>a())});let n=`http://${Fe}:${r}`;return console.log(f.listeningOn(n)),dr(n),{port:r}}import{parseArgs as gr}from"util";function ve(e){try{gr({args:e,options:{},allowPositionals:!1})}catch(r){let t=r instanceof Error?r.message:String(r);throw new d({code:s.UnknownOption,detail:t,command:"web"})}}function Pe(e){return async r=>{if(v(r)){console.log(w.forCommand("web"));return}ve(r),await be(e)}}import fr from"@inquirer/confirm";function je(e=process.stdin.isTTY===!0){return{confirm:async r=>{if(!e)throw new d({code:s.TargetExists,target:r});let t;try{t=await fr({message:p.overwriteQuestion(r),default:!1})}catch(o){throw F(o)?new h:o}if(!t)throw new h}}}import ur from"@inquirer/select";function Te(e=process.stdin.isTTY===!0){return{pick:async(r,t,o)=>{if(!e)throw new d({code:s.VariantRequired,slug:r,name:t,available:o.map(i=>i.label)});try{return await ur({message:p.variantQuestion(r,t),choices:o.map(i=>{let{label:n}=i;return{name:n,value:i}})})}catch(i){throw F(i)?new h:i}}}}try{let e=Y(ne(ee())),r=Te(),t=W(),o=je(),i=ce({catalog:e,picker:r,projectFiles:t,confirmer:o}),n=de({catalog:e,picker:r,projectFiles:t,confirmer:o}),a=ge(),c=Pe({catalog:e,projectFiles:t}),{command:m,rest:l}=ie(process.argv.slice(2));switch(m){case void 0:case"help":case"--help":case"-h":a(l);break;case"get":await i(l);break;case"list":await n(l);break;case"web":await c(l);break;default:throw new d({code:s.UnknownCommand,got:m})}}catch(e){e instanceof C&&(console.error(p.cliError(e.code,p.error(e.details))),"command"in e.details&&console.error(p.tryHelp(e.details.command)),process.exit(e.exitCode)),console.error(p.internalError()),console.error(e),process.exit(1)}
40
+ `):void 0},emptyCatalog:()=>"\u0412 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043D\u0435\u0442 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u043E\u0432",skippedHeader:()=>"\u041F\u0440\u043E\u043F\u0443\u0449\u0435\u043D\u044B \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u044B:",skippedComponent:(e,r)=>{switch(r){case"missing":return`- ${e}: \u043D\u0435\u0442 meta.json.`;case"invalid":return`- ${e}: \u0431\u0438\u0442\u044B\u0439 meta.json.`;case"no-variants":return`- ${e}: \u043D\u0435\u0442 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043E\u0432.`}},cliError:(e,r)=>`error [${e}]: ${r}`,internalError:()=>"\u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u044F\u044F \u043E\u0448\u0438\u0431\u043A\u0430:"};function me(e){let{catalog:r,picker:t,projectFiles:o,confirmer:n}=e;return async c=>{if(v(c)){console.log(R.forCommand("get"));return}let i=pe(c),a=await r.loadComponent(i.slug);console.log(l.componentDescription(a.meta));let m=await I(a,i.variant,t);console.log(l.chosenVariant(m.label));let p=await U(i.slug,i.path,i.force,process.cwd(),o,n);console.log(l.downloading(i.slug,m.label));let g=await r.loadVariantFiles(i.slug,m.label);await o.writeFiles(p,g),console.log(l.copied(p));let d=a.meta.note?.trim();d&&console.log(l.note(d))}}import{parseArgs as nr}from"util";function le(e){try{nr({args:e,options:{},allowPositionals:!1})}catch(r){let t=r instanceof Error?r.message:String(r);throw new f({code:s.UnknownOption,detail:t,command:"list"})}}import sr from"@inquirer/search";var T=e=>e instanceof Error&&e.name==="ExitPromptError";function ir(e,r){let t=(r??"").trim().toLowerCase();return e.filter(({slug:o,meta:n})=>`${o} ${n.name}`.toLowerCase().includes(t))}async function ge(e){try{return await sr({message:l.componentQuestion(),pageSize:10,source:r=>ir(e,r).map(({slug:t,meta:o})=>({name:l.catalogChoiceLabel(t,o),value:t,description:l.catalogChoiceHint(o)}))})}catch(r){throw T(r)?new y:r}}import ar from"@inquirer/input";async function de(e){try{return await ar({message:l.pathQuestion(),default:e})}catch(r){throw T(r)?new y:r}}function fe(e){let{catalog:r,picker:t,projectFiles:o,confirmer:n}=e;return async c=>{if(v(c)){console.log(R.forCommand("list"));return}le(c);let{components:i,skipped:a}=await r.listComponents();if(a.length>0&&(console.error(l.skippedHeader()),a.forEach(({slug:_,reason:k})=>{console.error(l.skippedComponent(_,k))}),console.error("")),!process.stdout.isTTY){i.length>0&&(console.log(l.catalogHeader()),i.forEach(({slug:_,meta:k})=>{console.log(l.catalogLine(_,k))}));return}if(i.length===0){console.log(l.emptyCatalog());return}let m=await ge(i),p=await r.loadComponent(m),g=await I(p,void 0,t);console.log(l.chosenVariant(g.label));let d=await de(process.cwd()),b=await U(m,d,!1,process.cwd(),o,n);console.log(l.downloading(m,g.label));let w=await r.loadVariantFiles(m,g.label);await o.writeFiles(b,w),console.log(l.copied(b));let $=p.meta.note?.trim();$&&console.log(l.note($))}}function ue(){return e=>{let r=e[0];if(r!==void 0&&R.isCommand(r)){console.log(R.forCommand(r));return}console.log(R.general())}}import{createServer as dr}from"http";import{fileURLToPath as fr}from"url";import ur from"open";import{createServer as cr}from"net";var pr=e=>new Promise((r,t)=>{let o=cr();o.once("error",n=>{if(n.code==="EADDRINUSE"){r(!1);return}t(n)}),o.listen(e,"127.0.0.1",()=>{o.close(()=>r(!0))})});async function he(e,r){for(let t=0;t<r;t++){let o=e+t;if(await pr(o))return o}throw new A({code:s.NoFreePort,start:e,tried:r})}var S={BadRequest:"ERR_BAD_REQUEST",NotFound:"ERR_NOT_FOUND",MethodNotAllowed:"ERR_METHOD_NOT_ALLOWED",Internal:"ERR_INTERNAL"},P=class extends Error{constructor(t,o){super(o);this.code=t;this.name="WebRequestError"}};function G(e){switch(e){case"ERR_STORAGE_UNREACHABLE":case"ERR_STORAGE_TIMEOUT":case"ERR_STORAGE_HTTP":case"ERR_STORAGE_EMPTY_ARCHIVE":return 502;case"ERR_COMPONENT_NOT_FOUND":return 404;case"ERR_BAD_REQUEST":return 400;case"ERR_WRITE_FAILED":return 500;default:return 500}}var h={listeningOn:e=>`\u0421\u0435\u0440\u0432\u0435\u0440 \u043D\u0430 ${e}`,error:e=>{switch(e.code){case"ERR_STORAGE_UNREACHABLE":return"\u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E. \u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 VPN.";case"ERR_STORAGE_TIMEOUT":return"\u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043D\u0435 \u043E\u0442\u0432\u0435\u0442\u0438\u043B\u043E \u0432\u043E\u0432\u0440\u0435\u043C\u044F.";case"ERR_STORAGE_HTTP":return"\u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043E\u0442\u0432\u0435\u0442\u0438\u043B\u043E \u043E\u0448\u0438\u0431\u043A\u043E\u0439.";case"ERR_STORAGE_EMPTY_ARCHIVE":return"\u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043E\u0442\u0434\u0430\u043B\u043E \u043F\u0443\u0441\u0442\u043E\u0439 \u0430\u0440\u0445\u0438\u0432.";case"ERR_COMPONENT_NOT_FOUND":return"\u041D\u0435\u0442 \u0442\u0430\u043A\u043E\u0433\u043E \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430.";case"ERR_WRITE_FAILED":return"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u043D\u0430 \u0434\u0438\u0441\u043A.";default:return"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u0437\u0430\u043F\u0440\u043E\u0441."}},internalError:()=>"\u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u044F\u044F \u043E\u0448\u0438\u0431\u043A\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.",badRequest:()=>"\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 \u0437\u0430\u043F\u0440\u043E\u0441.",notFound:()=>"\u041D\u0435\u0442 \u0442\u0430\u043A\u043E\u0433\u043E \u0440\u043E\u0443\u0442\u0430.",methodNotAllowed:()=>"\u041C\u0435\u0442\u043E\u0434 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u044D\u0442\u0438\u043C \u0440\u043E\u0443\u0442\u043E\u043C."};async function Ce(e){let r=[];for await(let o of e)r.push(o);let t=Buffer.concat(r).toString("utf8");try{return JSON.parse(t)}catch{throw new P(S.BadRequest,h.badRequest())}}function C(e,r,t){e.writeHead(r,{"Content-Type":"application/json; charset=utf-8"}),e.end(JSON.stringify(t))}function q(e){return typeof e=="string"&&e.length>0}function Ee(e){return async(r,t)=>{let o=await Ce(r);if(o===null||typeof o!="object")throw new P(S.BadRequest,h.badRequest());let{slug:n,label:c,path:i}=o;if(!q(n)||!q(c)||!q(i))throw new P(S.BadRequest,h.badRequest());let a=H(process.cwd(),i,n),m=await e.catalog.loadVariantFiles(n,c);await e.projectFiles.writeFiles(a,m),C(t,200,{ok:!0,target:a})}}import Q from"path";function ye(e){return e==="node_modules"||e.startsWith(".")}function we(e){return async(r,t)=>{let o=process.cwd(),n=new URL(r.url??"/","http://localhost").searchParams.get("path")??"",c=Q.resolve(o,n),a=(await e.projectFiles.readSubdirs(c,ye)).map(m=>({name:m,path:Q.relative(o,Q.join(c,m))}));C(t,200,{dirs:a})}}var mr=6e4;function Re(e){let r;return async(t,o)=>{(r===void 0||Date.now()-r.at>=mr||lr(t))&&(r={at:Date.now(),listing:e.catalog.listAll()});let n;try{n=await r.listing}catch(c){throw r=void 0,c}C(o,200,n)}}function lr(e){let r=e.headers["cache-control"];return typeof r=="string"&&r.includes("no-cache")}function Se(e,r){if(r instanceof E){C(e,G(r.code),{code:r.code,message:h.error(r.details)});return}if(r instanceof P){C(e,G(r.code),{code:r.code,message:r.message});return}console.error(r),C(e,500,{code:S.Internal,message:h.internalError()})}function be(e){let r=Re({catalog:e.catalog}),t=Ee({catalog:e.catalog,projectFiles:e.projectFiles}),o=we({projectFiles:e.projectFiles}),n={"/api/components":{GET:r},"/api/copy":{POST:t},"/api/dirs":{GET:o}};return async(c,i)=>{let a=new URL(c.url??"/","http://localhost").pathname;if(!a.startsWith("/api"))return!1;try{let m=n[a];if(m===void 0)return C(i,404,{code:S.NotFound,message:h.notFound()}),!0;let p=m[c.method??""];if(p===void 0)return C(i,405,{code:S.MethodNotAllowed,message:h.methodNotAllowed()}),!0;await p(c,i)}catch(m){Se(i,m)}return!0}}import gr from"sirv";var Pe=e=>gr(e,{single:!0});var hr=4321,Cr=3,je="127.0.0.1",Er=fr(new URL("./webapp",import.meta.url)),yr=e=>{ur(e).catch(()=>{})};async function Te(e){let r=await he(hr,Cr),t=be(e),o=Pe(Er),n=dr((i,a)=>{(async()=>await t(i,a)||o(i,a))()});await new Promise(i=>{n.listen(r,je,()=>i())});let c=`http://${je}:${r}`;return console.log(h.listeningOn(c)),yr(c),{port:r}}import{parseArgs as wr}from"util";function Fe(e){try{wr({args:e,options:{},allowPositionals:!1})}catch(r){let t=r instanceof Error?r.message:String(r);throw new f({code:s.UnknownOption,detail:t,command:"web"})}}function ve(e){return async r=>{if(v(r)){console.log(R.forCommand("web"));return}Fe(r),await Te(e)}}import Rr from"@inquirer/confirm";function _e(e=process.stdin.isTTY===!0){return{confirm:async r=>{if(!e)throw new f({code:s.TargetExists,target:r});let t;try{t=await Rr({message:l.overwriteQuestion(r),default:!1})}catch(o){throw T(o)?new y:o}if(!t)throw new y}}}import Sr from"@inquirer/select";function ke(e=process.stdin.isTTY===!0){return{pick:async(r,t,o)=>{if(!e)throw new f({code:s.VariantRequired,slug:r,name:t,available:o.map(n=>n.label)});try{return await Sr({message:l.variantQuestion(r,t),choices:o.map(n=>{let{label:c}=n;return{name:c,value:n}})})}catch(n){throw T(n)?new y:n}}}}try{let e=z(ie(re())),r=ke(),t=J(),o=_e(),n=me({catalog:e,picker:r,projectFiles:t,confirmer:o}),c=fe({catalog:e,picker:r,projectFiles:t,confirmer:o}),i=ue(),a=ve({catalog:e,projectFiles:t}),{command:m,rest:p}=ae(process.argv.slice(2));switch(m){case void 0:case"help":case"--help":case"-h":i(p);break;case"get":await n(p);break;case"list":await c(p);break;case"web":await a(p);break;default:throw new f({code:s.UnknownCommand,got:m})}}catch(e){e instanceof E&&(console.error(l.cliError(e.code,l.error(e.details))),"command"in e.details&&console.error(l.tryHelp(e.details.command)),process.exit(e.exitCode)),console.error(l.internalError()),console.error(e),process.exit(1)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idem.agency/idem-ui",
3
- "version": "0.1.1",
3
+ "version": "0.4.0",
4
4
  "description": "CLI-копировальщик компонентов из хранилища idem",
5
5
  "type": "module",
6
6
  "author": "idem.agency",
@@ -51,6 +51,5 @@
51
51
  "typescript": "5.9.3",
52
52
  "vite": "^7.3.1",
53
53
  "vitest": "4.0.17"
54
- },
55
- "gitHead": "e9e4968c30769ca32610785ec0a0e4dc9a3b6420"
54
+ }
56
55
  }