@clerc/core 0.30.0 → 0.31.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/dist/index.d.ts CHANGED
@@ -240,18 +240,18 @@ type NonNullableParameters<T extends string[] | undefined> = T extends undefined
240
240
  type TransformParameters<C extends Command> = {
241
241
  [Parameter in NonNullableParameters<C["parameters"]>[number] as CamelCase<StripBrackets<Parameter>>]: ParameterType<Parameter>;
242
242
  };
243
- type MakeEventMap<T extends CommandRecord> = {
243
+ type MakeEventMap<T extends Commands> = {
244
244
  [K in keyof T]: [InspectorContext];
245
245
  };
246
246
  type FallbackFlags<C extends Command> = Equals<NonNullableFlag<C>["flags"], {}> extends true ? Dict<any> : NonNullableFlag<C>["flags"];
247
247
  type NonNullableFlag<C extends Command> = TypeFlag<NonNullable<C["flags"]>>;
248
- type ParseFlag<C extends CommandRecord, N extends keyof C> = N extends keyof C ? OmitIndexSignature<NonNullableFlag<C[N]>["flags"]> : FallbackFlags<C[N]>["flags"];
248
+ type ParseFlag<C extends Commands, N extends keyof C> = N extends keyof C ? OmitIndexSignature<NonNullableFlag<C[N]>["flags"]> : FallbackFlags<C[N]>["flags"];
249
249
  type ParseRaw<C extends Command> = NonNullableFlag<C> & {
250
250
  flags: FallbackFlags<C>;
251
251
  parameters: string[];
252
252
  mergedFlags: FallbackFlags<C> & NonNullableFlag<C>["unknownFlags"];
253
253
  };
254
- type ParseParameters<C extends CommandRecord = CommandRecord, N extends keyof C = keyof C> = Equals<TransformParameters<C[N]>, {}> extends true ? N extends keyof C ? TransformParameters<C[N]> : Dict<string | string[] | undefined> : TransformParameters<C[N]>;
254
+ type ParseParameters<C extends Commands = Commands, N extends keyof C = keyof C> = Equals<TransformParameters<C[N]>, {}> extends true ? N extends keyof C ? TransformParameters<C[N]> : Dict<string | string[] | undefined> : TransformParameters<C[N]>;
255
255
 
256
256
  interface Plugin<T extends Clerc = Clerc, U extends Clerc = Clerc> {
257
257
  setup: (cli: T) => U;
@@ -291,15 +291,14 @@ type CommandAlias<N extends string | RootType = string, O extends CommandOptions
291
291
  type CommandWithHandler<N extends string | RootType = string, O extends CommandOptions = CommandOptions> = Command<N, O> & {
292
292
  handler?: HandlerInCommand<HandlerContext<Record<N, Command<N, O>> & Record<never, never>, N>>;
293
293
  };
294
- type CommandRecord = Dict<Command> & {
294
+ type Commands = Dict<Command> & {
295
295
  [Root]?: Command;
296
296
  };
297
297
  interface ParseOptions {
298
298
  argv?: string[];
299
299
  run?: boolean;
300
300
  }
301
- type PossibleInputKind = string | number | boolean | Dict<any>;
302
- interface HandlerContext<C extends CommandRecord = CommandRecord, N extends keyof C = keyof C> {
301
+ interface HandlerContext<C extends Commands = Commands, N extends keyof C = keyof C> {
303
302
  name?: LiteralUnion<N, string>;
304
303
  called?: string | RootType;
305
304
  resolved: boolean;
@@ -317,31 +316,31 @@ interface HandlerContext<C extends CommandRecord = CommandRecord, N extends keyo
317
316
  };
318
317
  cli: Clerc<C>;
319
318
  }
320
- type Handler<C extends CommandRecord = CommandRecord, K extends keyof C = keyof C> = (ctx: HandlerContext<C, K>) => void;
319
+ type Handler<C extends Commands = Commands, K extends keyof C = keyof C> = (ctx: HandlerContext<C, K>) => void;
321
320
  type HandlerInCommand<C extends HandlerContext> = (ctx: {
322
321
  [K in keyof C]: C[K];
323
322
  }) => void;
324
323
  type FallbackType<T, U> = {} extends T ? U : T;
325
- type InspectorContext<C extends CommandRecord = CommandRecord> = HandlerContext<C> & {
324
+ type InspectorContext<C extends Commands = Commands> = HandlerContext<C> & {
326
325
  flags: FallbackType<TypeFlag<NonNullable<C[keyof C]["flags"]>>["flags"], Dict<any>>;
327
326
  };
328
- type Inspector<C extends CommandRecord = CommandRecord> = InspectorFn<C> | InspectorObject<C>;
329
- type InspectorFn<C extends CommandRecord = CommandRecord> = (ctx: InspectorContext<C>, next: () => void) => void;
330
- interface InspectorObject<C extends CommandRecord = CommandRecord> {
327
+ type Inspector<C extends Commands = Commands> = InspectorFn<C> | InspectorObject<C>;
328
+ type InspectorFn<C extends Commands = Commands> = (ctx: InspectorContext<C>, next: () => void) => void;
329
+ interface InspectorObject<C extends Commands = Commands> {
331
330
  enforce?: "pre" | "post";
332
331
  fn: InspectorFn<C>;
333
332
  }
334
333
 
335
334
  declare const Root: unique symbol;
336
335
  type RootType = typeof Root;
337
- declare class Clerc<C extends CommandRecord = {}> {
336
+ declare class Clerc<C extends Commands = {}> {
338
337
  #private;
339
338
  i18n: I18N;
340
339
  private constructor();
341
340
  get _name(): string;
342
341
  get _description(): string;
343
342
  get _version(): string;
344
- get _inspectors(): Inspector<CommandRecord>[];
343
+ get _inspectors(): Inspector<Commands>[];
345
344
  get _commands(): C;
346
345
  /**
347
346
  * Create a new cli
@@ -560,17 +559,17 @@ declare class LocaleNotCalledFirstError extends Error {
560
559
  constructor(t: TranslateFn);
561
560
  }
562
561
 
563
- declare function resolveFlattenCommands(commands: CommandRecord, t: TranslateFn): Map<string[] | typeof Root, CommandAlias<string, CommandOptions<string[], MaybeArray$1<string | typeof Root>, Flags>>>;
564
- declare function resolveCommand(commands: CommandRecord, name: CommandType | string[], t: TranslateFn): [Command<string | RootType> | undefined, string[] | RootType | undefined];
565
- declare function resolveCommandStrict(commands: CommandRecord, name: CommandType | string[], t: TranslateFn): [Command<string | RootType> | undefined, string[] | RootType | undefined];
566
- declare function resolveSubcommandsByParent(commands: CommandRecord, parent: string | string[], depth?: number): Command<string, CommandOptions<string[], MaybeArray$1<string | typeof Root>, Flags>>[];
567
- declare const resolveRootCommands: (commands: CommandRecord) => Command<string, CommandOptions<string[], MaybeArray$1<string | typeof Root>, Flags>>[];
562
+ declare function resolveFlattenCommands(commands: Commands, t: TranslateFn): Map<string[] | typeof Root, CommandAlias<string, CommandOptions<string[], MaybeArray$1<string | typeof Root>, Flags>>>;
563
+ declare function resolveCommand(commands: Commands, name: CommandType | string[], t: TranslateFn): [Command<string | RootType> | undefined, string[] | RootType | undefined];
564
+ declare function resolveCommandStrict(commands: Commands, name: CommandType | string[], t: TranslateFn): [Command<string | RootType> | undefined, string[] | RootType | undefined];
565
+ declare function resolveSubcommandsByParent(commands: Commands, parent: string | string[], depth?: number): Command<string, CommandOptions<string[], MaybeArray$1<string | typeof Root>, Flags>>[];
566
+ declare const resolveRootCommands: (commands: Commands) => Command<string, CommandOptions<string[], MaybeArray$1<string | typeof Root>, Flags>>[];
568
567
  declare function resolveParametersBeforeFlag(argv: string[]): string[];
569
568
  declare const resolveArgv: () => string[];
570
569
  declare function compose(inspectors: Inspector[]): (getCtx: () => InspectorContext) => void;
571
- declare const isInvalidName: (name: CommandType) => boolean;
570
+ declare const isValidName: (name: CommandType) => boolean;
572
571
  declare const withBrackets: (s: string, isOptional?: boolean) => string;
573
572
  declare const formatCommandName: (name: string | string[] | RootType) => string;
574
573
  declare const detectLocale: () => string;
575
574
 
576
- export { Clerc, Command, CommandAlias, CommandCustomProperties, CommandExistsError, CommandNameConflictError, CommandOptions, CommandRecord, CommandType, CommandWithHandler, DescriptionNotSetError, FallbackType, Flag, FlagOptions, Flags, Handler, HandlerContext, HandlerInCommand, I18N, Inspector, InspectorContext, InspectorFn, InspectorObject, InvalidCommandNameError, LocaleNotCalledFirstError, Locales, MakeEventMap, NameNotSetError, NoCommandGivenError, NoSuchCommandError, ParseOptions, Plugin, PossibleInputKind, Root, RootType, TranslateFn, VersionNotSetError, compose, defineCommand, defineHandler, defineInspector, definePlugin, detectLocale, formatCommandName, isInvalidName, resolveArgv, resolveCommand, resolveCommandStrict, resolveFlattenCommands, resolveParametersBeforeFlag, resolveRootCommands, resolveSubcommandsByParent, withBrackets };
575
+ export { Clerc, Command, CommandAlias, CommandCustomProperties, CommandExistsError, CommandNameConflictError, CommandOptions, CommandType, CommandWithHandler, Commands, DescriptionNotSetError, FallbackType, Flag, FlagOptions, Flags, Handler, HandlerContext, HandlerInCommand, I18N, Inspector, InspectorContext, InspectorFn, InspectorObject, InvalidCommandNameError, LocaleNotCalledFirstError, Locales, MakeEventMap, NameNotSetError, NoCommandGivenError, NoSuchCommandError, ParseOptions, Plugin, Root, RootType, TranslateFn, VersionNotSetError, compose, defineCommand, defineHandler, defineInspector, definePlugin, detectLocale, formatCommandName, isValidName, resolveArgv, resolveCommand, resolveCommandStrict, resolveFlattenCommands, resolveParametersBeforeFlag, resolveRootCommands, resolveSubcommandsByParent, withBrackets };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{format as st}from"node:util";class Bt{constructor(){this.listenerMap={},this.wildcardListeners=new Set}on(e,s){return e==="*"?(this.wildcardListeners.add(s),this):(this.listenerMap[e]||(this.listenerMap[e]=new Set),this.listenerMap[e].add(s),this)}emit(e,...s){return this.listenerMap[e]&&(this.wildcardListeners.forEach(r=>r(e,...s)),this.listenerMap[e].forEach(r=>r(...s))),this}off(e,s){var r,o;return e==="**"?(this.listenerMap={},this.wildcardListeners.clear(),this):e==="*"?(s?this.wildcardListeners.delete(s):this.wildcardListeners.clear(),this):(s?(r=this.listenerMap[e])==null||r.delete(s):(o=this.listenerMap[e])==null||o.clear(),this)}}const bt="known-flag",Wt="unknown-flag",xt="argument",{stringify:k}=JSON,Dt=/\B([A-Z])/g,Ot=t=>t.replace(Dt,"-$1").toLowerCase(),{hasOwnProperty:It}=Object.prototype,L=(t,e)=>It.call(t,e),$t=t=>Array.isArray(t),rt=t=>typeof t=="function"?[t,!1]:$t(t)?[t[0],!0]:rt(t.type),Rt=(t,e)=>t===Boolean?e!=="false":e,Pt=(t,e)=>typeof e=="boolean"?e:t===Number&&e===""?Number.NaN:t(e),jt=/[\s.:=]/,Tt=t=>{const e=`Flag name ${k(t)}`;if(t.length===0)throw new Error(`${e} cannot be empty`);if(t.length===1)throw new Error(`${e} must be longer than a character`);const s=t.match(jt);if(s)throw new Error(`${e} cannot contain ${k(s==null?void 0:s[0])}`)},Gt=t=>{const e={},s=(r,o)=>{if(L(e,r))throw new Error(`Duplicate flags named ${k(r)}`);e[r]=o};for(const r in t){if(!L(t,r))continue;Tt(r);const o=t[r],n=[[],...rt(o),o];s(r,n);const i=Ot(r);if(r!==i&&s(i,n),"alias"in o&&typeof o.alias=="string"){const{alias:c}=o,a=`Flag alias ${k(c)} for flag ${k(r)}`;if(c.length===0)throw new Error(`${a} cannot be empty`);if(c.length>1)throw new Error(`${a} must be a single character`);s(c,n)}}return e},qt=(t,e)=>{const s={};for(const r in t){if(!L(t,r))continue;const[o,,n,i]=e[r];if(o.length===0&&"default"in i){let{default:c}=i;typeof c=="function"&&(c=c()),s[r]=c}else s[r]=n?o:o.pop()}return s},R="--",Ht=/[.:=]/,Vt=/^-{1,2}\w/,Jt=t=>{if(!Vt.test(t))return;const e=!t.startsWith(R);let s=t.slice(e?1:2),r;const o=s.match(Ht);if(o){const{index:n}=o;r=s.slice(n+1),s=s.slice(0,n)}return[s,r,e]},Ut=(t,{onFlag:e,onArgument:s})=>{let r;const o=(n,i)=>{if(typeof r!="function")return!0;r(n,i),r=void 0};for(let n=0;n<t.length;n+=1){const i=t[n];if(i===R){o();const a=t.slice(n+1);s==null||s(a,[n],!0);break}const c=Jt(i);if(c){if(o(),!e)continue;const[a,u,p]=c;if(p)for(let d=0;d<a.length;d+=1){o();const E=d===a.length-1;r=e(a[d],E?u:void 0,[n,d+1,E])}else r=e(a,u,[n])}else o(i,[n])&&(s==null||s([i],[n]))}o()},zt=(t,e)=>{for(const[s,r,o]of e.reverse()){if(r){const n=t[s];let i=n.slice(0,r);if(o||(i+=n.slice(r+1)),i!=="-"){t[s]=i;continue}}t.splice(s,1)}},Kt=(t,e=process.argv.slice(2),{ignore:s}={})=>{const r=[],o=Gt(t),n={},i=[];return i[R]=[],Ut(e,{onFlag(c,a,u){const p=L(o,c);if(!(s!=null&&s(p?bt:Wt,c,a))){if(p){const[d,E]=o[c],v=Rt(E,a),$=(et,A)=>{r.push(u),A&&r.push(A),d.push(Pt(E,et||""))};return v===void 0?$:$(v)}L(n,c)||(n[c]=[]),n[c].push(a===void 0?!0:a),r.push(u)}},onArgument(c,a,u){s!=null&&s(xt,e[a[0]])||(i.push(...c),u?(i[R]=c,e.splice(a[0])):r.push(a))}}),zt(e,r),{flags:qt(t,o),unknownFlags:n,_:i}};function T(t){return t!==null&&typeof t=="object"}function G(t,e,s=".",r){if(!T(e))return G(t,{},s,r);const o=Object.assign({},e);for(const n in t){if(n==="__proto__"||n==="constructor")continue;const i=t[n];i!=null&&(r&&r(o,n,i,s)||(Array.isArray(i)&&Array.isArray(o[n])?o[n]=[...i,...o[n]]:T(i)&&T(o[n])?o[n]=G(i,o[n],(s?`${s}.`:"")+n.toString(),r):o[n]=i))}return o}function Zt(t){return(...e)=>e.reduce((s,r)=>G(s,r,"",t),{})}const Qt=Zt(),P=t=>Array.isArray(t)?t:[t],Xt=t=>t.replace(/[-_ ](\w)/g,(e,s)=>s.toUpperCase()),nt=(t,e)=>e.length!==t.length?!1:t.every((s,r)=>s===e[r]),ot=(t,e)=>e.length>t.length?!1:nt(t.slice(0,e.length),e);class it extends Error{constructor(e,s){super(s("core.commandExists",e)),this.commandName=e}}class at extends Error{constructor(e,s){super(s("core.noSuchCommand",e)),this.commandName=e}}class ct extends Error{constructor(e){super(e("core.noCommandGiven"))}}class lt extends Error{constructor(e,s,r){super(r("core.commandNameConflict",e,s)),this.n1=e,this.n2=s}}class ut extends Error{constructor(e){super(e("core.nameNotSet"))}}class ht extends Error{constructor(e){super(e("core.descriptionNotSet"))}}class ft extends Error{constructor(e){super(e("core.versionNotSet"))}}class dt extends Error{constructor(e,s){super(s("core.badNameFormat",e)),this.commandName=e}}class q extends Error{constructor(e){super(e("core.localeMustBeCalledFirst"))}}const pt=typeof Deno!="undefined",Yt=typeof process!="undefined"&&!pt,te=process.versions.electron&&!process.defaultApp;function mt(t,e,s,r){if(s.alias){const o=P(s.alias);for(const n of o){if(n in e)throw new lt(e[n].name,s.name,r);t.set(typeof n=="symbol"?n:n.split(" "),{...s,__isAlias:!0})}}}function H(t,e){const s=new Map;t[h]&&(s.set(h,t[h]),mt(s,t,t[h],e));for(const r of Object.values(t))mt(s,t,r,e),s.set(r.name.split(" "),r);return s}function wt(t,e,s){if(e===h)return[t[h],h];const r=P(e),o=H(t,s);let n,i;return o.forEach((c,a)=>{if(a===h){n=t[h],i=h;return}ot(r,a)&&(!i||i===h||a.length>i.length)&&(n=c,i=a)}),[n,i]}function ee(t,e,s){if(e===h)return[t[h],h];const r=P(e),o=H(t,s);let n,i;return o.forEach((c,a)=>{a===h||i===h||nt(r,a)&&(n=c,i=a)}),[n,i]}function gt(t,e,s=1/0){const r=e===""?[]:Array.isArray(e)?e:e.split(" ");return Object.values(t).filter(o=>{const n=o.name.split(" ");return ot(n,r)&&n.length-r.length<=s})}const se=t=>gt(t,"",1);function Ct(t){const e=[];for(const s of t){if(s.startsWith("-"))break;e.push(s)}return e}const V=()=>Yt?process.argv.slice(te?1:2):pt?Deno.args:[];function Et(t){const e={pre:[],normal:[],post:[]};for(const r of t){const o=typeof r=="object"?r:{fn:r},{enforce:n,fn:i}=o;n==="post"||n==="pre"?e[n].push(i):e.normal.push(i)}const s=[...e.pre,...e.normal,...e.post];return r=>{return o(0);function o(n){const i=s[n];return i(r(),o.bind(null,n+1))}}}const vt=t=>typeof t=="string"&&(t.startsWith(" ")||t.endsWith(" ")),re=(t,e)=>e?`[${t}]`:`<${t}>`,ne="<Root>",_t=t=>Array.isArray(t)?t.join(" "):typeof t=="string"?t:ne,yt=()=>process.env.CLERC_LOCALE?process.env.CLERC_LOCALE:Intl.DateTimeFormat().resolvedOptions().locale,{stringify:F}=JSON;function J(t){const e=[];let s,r;for(const o of t){if(r)throw new Error(`Invalid parameter: Spread parameter ${F(r)} must be last`);const n=o[0],i=o[o.length-1];let c;if(n==="<"&&i===">"&&(c=!0,s))throw new Error(`Invalid parameter: Required parameter ${F(o)} cannot come after optional parameter ${F(s)}`);if(n==="["&&i==="]"&&(c=!1,s=o),c===void 0)throw new Error(`Invalid parameter: ${F(o)}. Must be wrapped in <> (required parameter) or [] (optional parameter)`);let a=o.slice(1,-1);const u=a.slice(-3)==="...";u&&(r=o,a=a.slice(0,-3)),e.push({name:a,required:c,spread:u})}return e}function U(t,e,s){for(let r=0;r<e.length;r+=1){const{name:o,required:n,spread:i}=e[r],c=Xt(o);if(c in t)throw new Error(`Invalid parameter: ${F(o)} is used more than once.`);const a=i?s.slice(r):s[r];if(i&&(r=e.length),n&&(!a||i&&a.length===0))throw new Error(`Missing required parameter ${F(o)}`);t[c]=a}}const oe={en:{"core.commandExists":'Command "%s" exists.',"core.noSuchCommand":"No such command: %s.","core.noCommandGiven":"No command given.","core.commandNameConflict":"Command name %s conflicts with %s. Maybe caused by alias.","core.nameNotSet":"Name not set.","core.descriptionNotSet":"Description not set.","core.versionNotSet":"Version not set.","core.badNameFormat":"Bad name format: %s.","core.localeMustBeCalledFirst":"locale() or fallbackLocale() must be called at first.","core.cliParseMustBeCalled":"cli.parse() must be called."},"zh-CN":{"core.commandExists":'\u547D\u4EE4 "%s" \u5DF2\u5B58\u5728\u3002',"core.noSuchCommand":"\u627E\u4E0D\u5230\u547D\u4EE4: %s\u3002","core.noCommandGiven":"\u6CA1\u6709\u8F93\u5165\u547D\u4EE4\u3002","core.commandNameConflict":"\u547D\u4EE4\u540D\u79F0 %s \u548C %s \u51B2\u7A81\u3002 \u53EF\u80FD\u662F\u7531\u4E8E\u522B\u540D\u5BFC\u81F4\u7684\u3002","core.nameNotSet":"\u672A\u8BBE\u7F6ECLI\u540D\u79F0\u3002","core.descriptionNotSet":"\u672A\u8BBE\u7F6ECLI\u63CF\u8FF0\u3002","core.versionNotSet":"\u672A\u8BBE\u7F6ECLI\u7248\u672C\u3002","core.badNameFormat":"\u9519\u8BEF\u7684\u547D\u4EE4\u540D\u5B57\u683C\u5F0F: %s\u3002","core.localeMustBeCalledFirst":"locale() \u6216 fallbackLocale() \u5FC5\u987B\u5728\u6700\u5F00\u59CB\u8C03\u7528\u3002","core.cliParseMustBeCalled":"cli.parse() \u5FC5\u987B\u88AB\u8C03\u7528\u3002"}};var z=(t,e,s)=>{if(!e.has(t))throw TypeError("Cannot "+s)},l=(t,e,s)=>(z(t,e,"read from private field"),s?s.call(t):e.get(t)),f=(t,e,s)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,s)},m=(t,e,s,r)=>(z(t,e,"write to private field"),r?r.call(t,s):e.set(t,s),s),w=(t,e,s)=>(z(t,e,"access private method"),s),_,y,M,B,b,j,S,W,x,D,O,I,N,K,Mt,Z,Nt,Q,Ft,g,C,X,St,Y,At,tt,kt;const h=Symbol.for("Clerc.Root"),Lt=class{constructor(t,e,s){f(this,K),f(this,Z),f(this,Q),f(this,g),f(this,X),f(this,Y),f(this,tt),f(this,_,""),f(this,y,""),f(this,M,""),f(this,B,[]),f(this,b,{}),f(this,j,new Bt),f(this,S,new Set),f(this,W,void 0),f(this,x,[]),f(this,D,!1),f(this,O,"en"),f(this,I,"en"),f(this,N,{}),this.i18n={add:r=>{m(this,N,Qt(l(this,N),r))},t:(r,...o)=>{const n=l(this,N)[l(this,I)]||l(this,N)[l(this,O)],i=l(this,N)[l(this,O)];return n[r]?st(n[r],...o):i[r]?st(i[r],...o):void 0}},m(this,_,t||l(this,_)),m(this,y,e||l(this,y)),m(this,M,s||l(this,M)),m(this,I,yt()),w(this,Q,Ft).call(this)}get _name(){return l(this,_)}get _description(){return l(this,y)}get _version(){return l(this,M)}get _inspectors(){return l(this,B)}get _commands(){return l(this,b)}static create(t,e,s){return new Lt(t,e,s)}name(t){return w(this,g,C).call(this),m(this,_,t),this}description(t){return w(this,g,C).call(this),m(this,y,t),this}version(t){return w(this,g,C).call(this),m(this,M,t),this}locale(t){if(l(this,D))throw new q(this.i18n.t);return m(this,I,t),this}fallbackLocale(t){if(l(this,D))throw new q(this.i18n.t);return m(this,O,t),this}errorHandler(t){return l(this,x).push(t),this}command(t,e,s={}){w(this,g,C).call(this);const{t:r}=this.i18n,n=(d=>!(typeof d=="string"||d===h))(t),i=n?t.name:t;if(vt(i))throw new dt(i,r);const{handler:c=void 0,...a}=n?t:{name:i,description:e,...s},u=[a.name],p=a.alias?P(a.alias):[];a.alias&&u.push(...p);for(const d of u)if(l(this,S).has(d))throw new it(_t(d),r);return l(this,b)[i]=a,l(this,S).add(a.name),p.forEach(d=>l(this,S).add(d)),n&&c&&this.on(t.name,c),this}on(t,e){return l(this,j).on(t,e),this}use(t){return w(this,g,C).call(this),t.setup(this)}inspector(t){return w(this,g,C).call(this),l(this,B).push(t),this}parse(t=V()){w(this,g,C).call(this);const{argv:e,run:s}=Array.isArray(t)?{argv:t,run:!0}:{argv:V(),...t};return m(this,W,e),w(this,X,St).call(this),s&&this.runMatchedCommand(),this}runMatchedCommand(){try{w(this,tt,kt).call(this)}catch(t){if(l(this,x).length>0)l(this,x).forEach(e=>e(t));else throw t}return this}};let ie=Lt;_=new WeakMap,y=new WeakMap,M=new WeakMap,B=new WeakMap,b=new WeakMap,j=new WeakMap,S=new WeakMap,W=new WeakMap,x=new WeakMap,D=new WeakMap,O=new WeakMap,I=new WeakMap,N=new WeakMap,K=new WeakSet,Mt=function(){return l(this,S).has(h)},Z=new WeakSet,Nt=function(){return Object.prototype.hasOwnProperty.call(this._commands,h)},Q=new WeakSet,Ft=function(){this.i18n.add(oe)},g=new WeakSet,C=function(){m(this,D,!0)},X=new WeakSet,St=function(){const{t}=this.i18n;if(!l(this,_))throw new ut(t);if(!l(this,y))throw new ht(t);if(!l(this,M))throw new ft(t)},Y=new WeakSet,At=function(t){const e=l(this,W),[s,r]=t(),o=!!s,n=Kt((s==null?void 0:s.flags)||{},[...e]),{_:i,flags:c,unknownFlags:a}=n;let u=!o||s.name===h?i:i.slice(s.name.split(" ").length),p=(s==null?void 0:s.parameters)||[];const d=p.indexOf("--"),E=p.slice(d+1)||[],v=Object.create(null);if(d>-1&&E.length>0){p=p.slice(0,d);const A=i["--"];u=u.slice(0,-A.length||void 0),U(v,J(p),u),U(v,J(E),A)}else U(v,J(p),u);const $={...c,...a};return{name:s==null?void 0:s.name,called:Array.isArray(r)?r.join(" "):r,resolved:o,hasRootOrAlias:l(this,K,Mt),hasRoot:l(this,Z,Nt),raw:{...n,parameters:u,mergedFlags:$},parameters:v,flags:c,unknownFlags:a,cli:this}},tt=new WeakSet,kt=function(){w(this,g,C).call(this);const{t}=this.i18n,e=l(this,W);if(!e)throw new Error(t("core.cliParseMustBeCalled"));const s=Ct(e),r=s.join(" "),o=()=>wt(l(this,b),s,t),n=()=>w(this,Y,At).call(this,o),i={enforce:"post",fn:()=>{const[u]=o(),p=n();if(!u)throw r?new at(r,t):new ct(t);l(this,j).emit(u.name,p)}},c=[...l(this,B),i];Et(c)(n)};const ae=t=>t,ce=(t,e,s)=>s,le=(t,e)=>e,ue=(t,e)=>({...t,handler:e});export{ie as Clerc,it as CommandExistsError,lt as CommandNameConflictError,ht as DescriptionNotSetError,dt as InvalidCommandNameError,q as LocaleNotCalledFirstError,ut as NameNotSetError,ct as NoCommandGivenError,at as NoSuchCommandError,h as Root,ft as VersionNotSetError,Et as compose,ue as defineCommand,ce as defineHandler,le as defineInspector,ae as definePlugin,yt as detectLocale,_t as formatCommandName,vt as isInvalidName,V as resolveArgv,wt as resolveCommand,ee as resolveCommandStrict,H as resolveFlattenCommands,Ct as resolveParametersBeforeFlag,se as resolveRootCommands,gt as resolveSubcommandsByParent,re as withBrackets};
1
+ import{format as ie}from"node:util";class Ie{constructor(){this.listenerMap={},this.wildcardListeners=new Set}on(t,r){return t==="*"?(this.wildcardListeners.add(r),this):(this.listenerMap[t]||(this.listenerMap[t]=new Set),this.listenerMap[t].add(r),this)}emit(t,...r){return this.listenerMap[t]&&(this.wildcardListeners.forEach(s=>s(t,...r)),this.listenerMap[t].forEach(s=>s(...r))),this}off(t,r){var s,o;return t==="**"?(this.listenerMap={},this.wildcardListeners.clear(),this):t==="*"?(r?this.wildcardListeners.delete(r):this.wildcardListeners.clear(),this):(r?(s=this.listenerMap[t])==null||s.delete(r):(o=this.listenerMap[t])==null||o.clear(),this)}}const xe="known-flag",Re="unknown-flag",$e="argument",{stringify:S}=JSON,je=/\B([A-Z])/g,qe=e=>e.replace(je,"-$1").toLowerCase(),{hasOwnProperty:Te}=Object.prototype,k=(e,t)=>Te.call(e,t),Ge=e=>Array.isArray(e),ce=e=>typeof e=="function"?[e,!1]:Ge(e)?[e[0],!0]:ce(e.type),He=(e,t)=>e===Boolean?t!=="false":t,Ue=(e,t)=>typeof t=="boolean"?t:e===Number&&t===""?Number.NaN:e(t),Ve=/[\s.:=]/,Je=e=>{const t=`Flag name ${S(e)}`;if(e.length===0)throw new Error(`${t} cannot be empty`);if(e.length===1)throw new Error(`${t} must be longer than a character`);const r=e.match(Ve);if(r)throw new Error(`${t} cannot contain ${S(r==null?void 0:r[0])}`)},ze=e=>{const t={},r=(s,o)=>{if(k(t,s))throw new Error(`Duplicate flags named ${S(s)}`);t[s]=o};for(const s in e){if(!k(e,s))continue;Je(s);const o=e[s],n=[[],...ce(o),o];r(s,n);const a=qe(s);if(s!==a&&r(a,n),"alias"in o&&typeof o.alias=="string"){const{alias:c}=o,i=`Flag alias ${S(c)} for flag ${S(s)}`;if(c.length===0)throw new Error(`${i} cannot be empty`);if(c.length>1)throw new Error(`${i} must be a single character`);r(c,n)}}return t},Ke=(e,t)=>{const r={};for(const s in e){if(!k(e,s))continue;const[o,,n,a]=t[s];if(o.length===0&&"default"in a){let{default:c}=a;typeof c=="function"&&(c=c()),r[s]=c}else r[s]=n?o:o.pop()}return r},R="--",Ze=/[.:=]/,Qe=/^-{1,2}\w/,Xe=e=>{if(!Qe.test(e))return;const t=!e.startsWith(R);let r=e.slice(t?1:2),s;const o=r.match(Ze);if(o){const{index:n}=o;s=r.slice(n+1),r=r.slice(0,n)}return[r,s,t]},Ye=(e,{onFlag:t,onArgument:r})=>{let s;const o=(n,a)=>{if(typeof s!="function")return!0;s(n,a),s=void 0};for(let n=0;n<e.length;n+=1){const a=e[n];if(a===R){o();const i=e.slice(n+1);r==null||r(i,[n],!0);break}const c=Xe(a);if(c){if(o(),!t)continue;const[i,l,m]=c;if(m)for(let h=0;h<i.length;h+=1){o();const E=h===i.length-1;s=t(i[h],E?l:void 0,[n,h+1,E])}else s=t(i,l,[n])}else o(a,[n])&&(r==null||r([a],[n]))}o()},et=(e,t)=>{for(const[r,s,o]of t.reverse()){if(s){const n=e[r];let a=n.slice(0,s);if(o||(a+=n.slice(s+1)),a!=="-"){e[r]=a;continue}}e.splice(r,1)}},tt=(e,t=process.argv.slice(2),{ignore:r}={})=>{const s=[],o=ze(e),n={},a=[];return a[R]=[],Ye(t,{onFlag(c,i,l){const m=k(o,c);if(!(r!=null&&r(m?xe:Re,c,i))){if(m){const[h,E]=o[c],A=He(E,i),_=(T,G)=>{s.push(l),G&&s.push(G),h.push(Ue(E,T||""))};return A===void 0?_:_(A)}k(n,c)||(n[c]=[]),n[c].push(i===void 0?!0:i),s.push(l)}},onArgument(c,i,l){r!=null&&r($e,t[i[0]])||(a.push(...c),l?(a[R]=c,t.splice(i[0])):s.push(i))}}),et(t,s),{flags:Ke(e,o),unknownFlags:n,_:a}};function H(e){return e!==null&&typeof e=="object"}function U(e,t,r=".",s){if(!H(t))return U(e,{},r,s);const o=Object.assign({},t);for(const n in e){if(n==="__proto__"||n==="constructor")continue;const a=e[n];a!=null&&(s&&s(o,n,a,r)||(Array.isArray(a)&&Array.isArray(o[n])?o[n]=[...a,...o[n]]:H(a)&&H(o[n])?o[n]=U(a,o[n],(r?`${r}.`:"")+n.toString(),s):o[n]=a))}return o}function rt(e){return(...t)=>t.reduce((r,s)=>U(r,s,"",e),{})}const st=rt(),$=e=>Array.isArray(e)?e:[e],nt=e=>e.replace(/[-_ ](\w)/g,(t,r)=>r.toUpperCase()),ue=(e,t)=>t.length!==e.length?!1:e.every((r,s)=>r===t[s]),le=(e,t)=>t.length>e.length?!1:ue(e.slice(0,t.length),t),L=JSON.stringify;class he extends Error{constructor(t,r){super(r("core.commandExists",L(t))),this.commandName=t}}class de extends Error{constructor(t,r){super(r("core.noSuchCommand",L(t))),this.commandName=t}}class fe extends Error{constructor(t){super(t("core.noCommandGiven"))}}class me extends Error{constructor(t,r,s){super(s("core.commandNameConflict",L(t),L(r))),this.n1=t,this.n2=r}}class pe extends Error{constructor(t){super(t("core.nameNotSet"))}}class Ce extends Error{constructor(t){super(t("core.descriptionNotSet"))}}class we extends Error{constructor(t){super(t("core.versionNotSet"))}}class Ee extends Error{constructor(t,r){super(r("core.badNameFormat",L(t))),this.commandName=t}}class V extends Error{constructor(t){super(t("core.localeMustBeCalledFirst"))}}const ge=typeof Deno!="undefined",ot=typeof process!="undefined"&&!ge,at=process.versions.electron&&!process.defaultApp;function _e(e,t,r,s){if(r.alias){const o=$(r.alias);for(const n of o){if(n in t)throw new me(t[n].name,r.name,s);e.set(typeof n=="symbol"?n:n.split(" "),{...r,__isAlias:!0})}}}function J(e,t){const r=new Map;e[f]&&(r.set(f,e[f]),_e(r,e,e[f],t));for(const s of Object.values(e))_e(r,e,s,t),r.set(s.name.split(" "),s);return r}function ve(e,t,r){if(t===f)return[e[f],f];const s=$(t),o=J(e,r);let n,a;return o.forEach((c,i)=>{if(i===f){n=e[f],a=f;return}le(s,i)&&(!a||a===f||i.length>a.length)&&(n=c,a=i)}),[n,a]}function it(e,t,r){if(t===f)return[e[f],f];const s=$(t),o=J(e,r);let n,a;return o.forEach((c,i)=>{i===f||a===f||ue(s,i)&&(n=c,a=i)}),[n,a]}function Me(e,t,r=1/0){const s=t===""?[]:Array.isArray(t)?t:t.split(" ");return Object.values(e).filter(o=>{const n=o.name.split(" ");return le(n,s)&&n.length-s.length<=r})}const ct=e=>Me(e,"",1);function Fe(e){const t=[];for(const r of e){if(r.startsWith("-"))break;t.push(r)}return t}const z=()=>ot?process.argv.slice(at?1:2):ge?Deno.args:[];function ye(e){const t={pre:[],normal:[],post:[]};for(const s of e){const o=typeof s=="object"?s:{fn:s},{enforce:n,fn:a}=o;n==="post"||n==="pre"?t[n].push(a):t.normal.push(a)}const r=[...t.pre,...t.normal,...t.post];return s=>{return o(0);function o(n){const a=r[n];return a(s(),o.bind(null,n+1))}}}const ut=/\s\s+/,Be=e=>e===f?!0:!(e.startsWith(" ")||e.endsWith(" "))&&!ut.test(e),lt=(e,t)=>t?`[${e}]`:`<${e}>`,ht="<Root>",Ne=e=>Array.isArray(e)?e.join(" "):typeof e=="string"?e:ht,Ae=()=>process.env.CLERC_LOCALE?process.env.CLERC_LOCALE:Intl.DateTimeFormat().resolvedOptions().locale,{stringify:B}=JSON;function K(e,t){const r=[];let s,o;for(const n of e){if(o)throw new Error(t("core.spreadParameterMustBeLast",B(o)));const a=n[0],c=n[n.length-1];let i;if(a==="<"&&c===">"&&(i=!0,s))throw new Error(t("core.requiredParameterMustBeBeforeOptional",B(n),B(s)));if(a==="["&&c==="]"&&(i=!1,s=n),i===void 0)throw new Error(t("core.parameterMustBeWrappedInBrackets",B(n)));let l=n.slice(1,-1);const m=l.slice(-3)==="...";m&&(o=n,l=l.slice(0,-3)),r.push({name:l,required:i,spread:m})}return r}function Z(e,t,r,s){for(let o=0;o<t.length;o+=1){const{name:n,required:a,spread:c}=t[o],i=nt(n);if(i in e)throw new Error(s("core.parameterIsUsedMoreThanOnce",B(n)));const l=c?r.slice(o):r[o];if(c&&(o=t.length),a&&(!l||c&&l.length===0))throw new Error(s("core.missingRequiredParameter",B(n)));e[i]=l}}const dt={en:{"core.commandExists":'Command "%s" exists.',"core.noSuchCommand":"No such command: %s.","core.noCommandGiven":"No command given.","core.commandNameConflict":"Command name %s conflicts with %s. Maybe caused by alias.","core.nameNotSet":"Name not set.","core.descriptionNotSet":"Description not set.","core.versionNotSet":"Version not set.","core.badNameFormat":"Bad name format: %s.","core.localeMustBeCalledFirst":"locale() or fallbackLocale() must be called at first.","core.cliParseMustBeCalled":"cli.parse() must be called.","core.spreadParameterMustBeLast":"Invalid Parameter: Spread parameter %s must be last.","core.requiredParameterCannotComeAfterOptionalParameter":"Invalid Parameter: Required parameter %s cannot come after optional parameter %s.","core.parameterMustBeWrappedInBrackets":"Invalid Parameter: Parameter %s must be wrapped in <> (required parameter) or [] (optional parameter).","core.parameterIsUsedMoreThanOnce":"Invalid Parameter: Parameter %s is used more than once.","core.missingRequiredParameter":"Missing required parameter %s."},"zh-CN":{"core.commandExists":'\u547D\u4EE4 "%s" \u5DF2\u5B58\u5728\u3002',"core.noSuchCommand":"\u627E\u4E0D\u5230\u547D\u4EE4: %s\u3002","core.noCommandGiven":"\u6CA1\u6709\u8F93\u5165\u547D\u4EE4\u3002","core.commandNameConflict":"\u547D\u4EE4\u540D\u79F0 %s \u548C %s \u51B2\u7A81\u3002 \u53EF\u80FD\u662F\u7531\u4E8E\u522B\u540D\u5BFC\u81F4\u7684\u3002","core.nameNotSet":"\u672A\u8BBE\u7F6ECLI\u540D\u79F0\u3002","core.descriptionNotSet":"\u672A\u8BBE\u7F6ECLI\u63CF\u8FF0\u3002","core.versionNotSet":"\u672A\u8BBE\u7F6ECLI\u7248\u672C\u3002","core.badNameFormat":"\u9519\u8BEF\u7684\u547D\u4EE4\u540D\u5B57\u683C\u5F0F: %s\u3002","core.localeMustBeCalledFirst":"locale() \u6216 fallbackLocale() \u5FC5\u987B\u5728\u6700\u5F00\u59CB\u8C03\u7528\u3002","core.cliParseMustBeCalled":"cli.parse() \u5FC5\u987B\u88AB\u8C03\u7528\u3002","core.spreadParameterMustBeLast":"\u4E0D\u5408\u6CD5\u7684\u53C2\u6570: \u5C55\u5F00\u53C2\u6570 %s \u5FC5\u987B\u5728\u6700\u540E\u3002","core.requiredParameterCannotComeAfterOptionalParameter":"\u4E0D\u5408\u6CD5\u7684\u53C2\u6570: \u5FC5\u586B\u53C2\u6570 %s \u4E0D\u80FD\u5728\u53EF\u9009\u53C2\u6570 %s \u4E4B\u540E\u3002","core.parameterMustBeWrappedInBrackets":"\u4E0D\u5408\u6CD5\u7684\u53C2\u6570: \u53C2\u6570 %s \u5FC5\u987B\u88AB <> (\u5FC5\u586B\u53C2\u6570) \u6216 [] (\u53EF\u9009\u53C2\u6570) \u5305\u88F9\u3002","core.parameterIsUsedMoreThanOnce":"\u4E0D\u5408\u6CD5\u7684\u53C2\u6570: \u53C2\u6570 %s \u88AB\u4F7F\u7528\u4E86\u591A\u6B21\u3002","core.missingRequiredParameter":"\u7F3A\u5C11\u5FC5\u586B\u53C2\u6570 %s\u3002"}};var Q=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)},u=(e,t,r)=>(Q(e,t,"read from private field"),r?r.call(e):t.get(e)),d=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r)},C=(e,t,r,s)=>(Q(e,t,"write to private field"),s?s.call(e,r):t.set(e,r),r),p=(e,t,r)=>(Q(e,t,"access private method"),r),v,M,F,D,W,j,N,P,O,b,I,x,y,X,Se,Y,ke,ee,Le,w,g,te,De,re,We,se,Pe,q,ne,oe,Oe;const f=Symbol.for("Clerc.Root"),be=class{constructor(e,t,r){d(this,X),d(this,Y),d(this,ee),d(this,w),d(this,te),d(this,re),d(this,se),d(this,q),d(this,oe),d(this,v,""),d(this,M,""),d(this,F,""),d(this,D,[]),d(this,W,{}),d(this,j,new Ie),d(this,N,new Set),d(this,P,void 0),d(this,O,[]),d(this,b,!1),d(this,I,"en"),d(this,x,"en"),d(this,y,{}),this.i18n={add:s=>{C(this,y,st(u(this,y),s))},t:(s,...o)=>{const n=u(this,y)[u(this,x)]||u(this,y)[u(this,I)],a=u(this,y)[u(this,I)];return n[s]?ie(n[s],...o):a[s]?ie(a[s],...o):void 0}},C(this,v,e||u(this,v)),C(this,M,t||u(this,M)),C(this,F,r||u(this,F)),C(this,x,Ae()),p(this,ee,Le).call(this)}get _name(){return u(this,v)}get _description(){return u(this,M)}get _version(){return u(this,F)}get _inspectors(){return u(this,D)}get _commands(){return u(this,W)}static create(e,t,r){return new be(e,t,r)}name(e){return p(this,w,g).call(this),C(this,v,e),this}description(e){return p(this,w,g).call(this),C(this,M,e),this}version(e){return p(this,w,g).call(this),C(this,F,e),this}locale(e){if(u(this,b))throw new V(this.i18n.t);return C(this,x,e),this}fallbackLocale(e){if(u(this,b))throw new V(this.i18n.t);return C(this,I,e),this}errorHandler(e){return u(this,O).push(e),this}command(e,t,r={}){return p(this,q,ne).call(this,()=>p(this,te,De).call(this,e,t,r)),this}on(e,t){return u(this,j).on(e,t),this}use(e){return p(this,w,g).call(this),e.setup(this)}inspector(e){return p(this,w,g).call(this),u(this,D).push(e),this}parse(e=z()){p(this,w,g).call(this);const{argv:t,run:r}=Array.isArray(e)?{argv:e,run:!0}:{argv:z(),...e};return C(this,P,[...t]),p(this,re,We).call(this),r&&this.runMatchedCommand(),this}runMatchedCommand(){return p(this,q,ne).call(this,()=>p(this,oe,Oe).call(this)),this}};let ft=be;v=new WeakMap,M=new WeakMap,F=new WeakMap,D=new WeakMap,W=new WeakMap,j=new WeakMap,N=new WeakMap,P=new WeakMap,O=new WeakMap,b=new WeakMap,I=new WeakMap,x=new WeakMap,y=new WeakMap,X=new WeakSet,Se=function(){return u(this,N).has(f)},Y=new WeakSet,ke=function(){return Object.prototype.hasOwnProperty.call(this._commands,f)},ee=new WeakSet,Le=function(){this.i18n.add(dt)},w=new WeakSet,g=function(){C(this,b,!0)},te=new WeakSet,De=function(e,t,r={}){p(this,w,g).call(this);const{t:s}=this.i18n,n=(h=>!(typeof h=="string"||h===f))(e),a=n?e.name:e;if(!Be(a))throw new Ee(a,s);const{handler:c=void 0,...i}=n?e:{name:a,description:t,...r},l=[i.name],m=i.alias?$(i.alias):[];i.alias&&l.push(...m);for(const h of l)if(u(this,N).has(h))throw new he(Ne(h),s);return u(this,W)[a]=i,u(this,N).add(i.name),m.forEach(h=>u(this,N).add(h)),n&&c&&this.on(e.name,c),this},re=new WeakSet,We=function(){const{t:e}=this.i18n;if(!u(this,v))throw new pe(e);if(!u(this,M))throw new Ce(e);if(!u(this,F))throw new we(e)},se=new WeakSet,Pe=function(e){const t=u(this,P),{t:r}=this.i18n,[s,o]=e(),n=!!s,a=tt((s==null?void 0:s.flags)||{},[...t]),{_:c,flags:i,unknownFlags:l}=a;let m=!n||s.name===f?c:c.slice(s.name.split(" ").length),h=(s==null?void 0:s.parameters)||[];const E=h.indexOf("--"),A=h.slice(E+1)||[],_=Object.create(null);if(E>-1&&A.length>0){h=h.slice(0,E);const ae=c["--"];m=m.slice(0,-ae.length||void 0),Z(_,K(h,r),m,r),Z(_,K(A,r),ae,r)}else Z(_,K(h,r),m,r);const T={...i,...l};return{name:s==null?void 0:s.name,called:Array.isArray(o)?o.join(" "):o,resolved:n,hasRootOrAlias:u(this,X,Se),hasRoot:u(this,Y,ke),raw:{...a,parameters:m,mergedFlags:T},parameters:_,flags:i,unknownFlags:l,cli:this}},q=new WeakSet,ne=function(e){try{e()}catch(t){if(u(this,O).length>0)u(this,O).forEach(r=>r(t));else throw t}},oe=new WeakSet,Oe=function(){p(this,w,g).call(this);const{t:e}=this.i18n,t=u(this,P);if(!t)throw new Error(e("core.cliParseMustBeCalled"));const r=Fe(t),s=r.join(" "),o=()=>ve(u(this,W),r,e),n=()=>p(this,se,Pe).call(this,o),a={enforce:"post",fn:()=>{const[l]=o(),m=n();if(!l)throw s?new de(s,e):new fe(e);u(this,j).emit(l.name,m)}},c=[...u(this,D),a];ye(c)(n)};const mt=e=>e,pt=(e,t,r)=>r,Ct=(e,t)=>t,wt=(e,t)=>({...e,handler:t});export{ft as Clerc,he as CommandExistsError,me as CommandNameConflictError,Ce as DescriptionNotSetError,Ee as InvalidCommandNameError,V as LocaleNotCalledFirstError,pe as NameNotSetError,fe as NoCommandGivenError,de as NoSuchCommandError,f as Root,we as VersionNotSetError,ye as compose,wt as defineCommand,pt as defineHandler,Ct as defineInspector,mt as definePlugin,Ae as detectLocale,Ne as formatCommandName,Be as isValidName,z as resolveArgv,ve as resolveCommand,it as resolveCommandStrict,J as resolveFlattenCommands,Fe as resolveParametersBeforeFlag,ct as resolveRootCommands,Me as resolveSubcommandsByParent,lt as withBrackets};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@clerc/core",
3
- "version": "0.30.0",
4
- "author": "Ray <nn_201312@163.com> (https://github.com/so1ve)",
3
+ "version": "0.31.0",
4
+ "author": "Ray <i@mk1.io> (https://github.com/so1ve)",
5
5
  "description": "Clerc core",
6
6
  "keywords": [
7
7
  "cli",
@@ -52,7 +52,7 @@
52
52
  "lite-emit": "^1.4.0",
53
53
  "type-fest": "^3.5.3",
54
54
  "type-flag": "^3.0.0",
55
- "@clerc/utils": "0.30.0"
55
+ "@clerc/utils": "0.31.0"
56
56
  },
57
57
  "scripts": {
58
58
  "build": "puild --minify",