@teambit/generator 0.0.561 → 0.0.562
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.
|
@@ -23,6 +23,11 @@ export declare type GeneratorConfig = {
|
|
|
23
23
|
* array of aspects to include in the list of templates.
|
|
24
24
|
*/
|
|
25
25
|
aspects: string[];
|
|
26
|
+
/**
|
|
27
|
+
* by default core templates are shown.
|
|
28
|
+
* use this to hide them unless `--show-all` flag of `bit templates` was used
|
|
29
|
+
*/
|
|
30
|
+
hideCoreTemplates: boolean;
|
|
26
31
|
};
|
|
27
32
|
export declare class GeneratorMain {
|
|
28
33
|
private componentTemplateSlot;
|
|
@@ -265,12 +265,20 @@ class GeneratorMain {
|
|
|
265
265
|
const getTemplateDescriptor = ({
|
|
266
266
|
id,
|
|
267
267
|
template
|
|
268
|
-
}) =>
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
268
|
+
}) => {
|
|
269
|
+
const shouldBeHidden = () => {
|
|
270
|
+
if (template.hidden) return true;
|
|
271
|
+
if (this.config.hideCoreTemplates && (0, _bit().isCoreAspect)(id)) return true;
|
|
272
|
+
return false;
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
return {
|
|
276
|
+
aspectId: id,
|
|
277
|
+
name: template.name,
|
|
278
|
+
description: template.description,
|
|
279
|
+
hidden: shouldBeHidden()
|
|
280
|
+
};
|
|
281
|
+
};
|
|
274
282
|
|
|
275
283
|
return this.isRunningInsideWorkspace() ? this.getAllComponentTemplatesFlattened().map(getTemplateDescriptor) : this.getAllWorkspaceTemplatesFlattened().map(getTemplateDescriptor);
|
|
276
284
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["generator.main.runtime.ts"],"names":["GeneratorMain","constructor","componentTemplateSlot","workspaceTemplateSlot","config","workspace","envs","aspectLoader","registerComponentTemplate","templates","register","registerWorkspaceTemplate","listTemplates","getTemplateDescriptor","id","template","aspectId","name","description","hidden","isRunningInsideWorkspace","getAllComponentTemplatesFlattened","map","getAllWorkspaceTemplatesFlattened","listComponentTemplates","Boolean","getComponentTemplateByAspect","get","getComponentTemplate","found","find","findTemplateInGlobalScope","aspects","loadAspectsFromGlobalScope","fullAspectId","toString","searchRegisteredWorkspaceTemplate","findTemplateInOtherWorkspace","workspacePath","BitError","harmony","WorkspaceAspect","err","Error","aspectComponentId","resolveComponentId","loadAspects","aspectFullId","generator","GeneratorAspect","getWorkspaceTemplate","registeredTemplate","workspaceTemplate","aspect","fromGlobal","generateComponentTemplate","componentNames","templateName","options","ConsumerNotFound","namespace","scope","defaultScope","InvalidScopeName","componentIds","componentName","fullComponentName","ComponentID","fromObject","componentGenerator","ComponentGenerator","generate","generateWorkspaceTemplate","workspaceName","loadFrom","aspectComponent","workspaceGenerator","WorkspaceGenerator","templatesByAspects","toArray","flatMap","componentTemplates","workspaceTemplates","aspectLoaded","provider","cli","graphql","commands","CreateCmd","TemplatesCmd","NewCmd","componentGeneratorTemplate","workspaceGeneratorTemplate","Slot","withType","CLIAspect","GraphqlAspect","EnvsAspect","AspectLoaderAspect","MainRuntime","addRuntime"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAcO,MAAMA,aAAN,CAAoB;AAEzBC,EAAAA,WAAW,CACDC,qBADC,EAEDC,qBAFC,EAGDC,MAHC,EAIDC,SAJC,EAKDC,IALC,EAMDC,YANC,EAOT;AAAA,SANQL,qBAMR,GANQA,qBAMR;AAAA,SALQC,qBAKR,GALQA,qBAKR;AAAA,SAJQC,MAIR,GAJQA,MAIR;AAAA,SAHQC,SAGR,GAHQA,SAGR;AAAA,SAFQC,IAER,GAFQA,IAER;AAAA,SADQC,YACR,GADQA,YACR;AAAA,0DARqB,KAQrB;AAAE;AAEJ;AACF;AACA;;;AACEC,EAAAA,yBAAyB,CAACC,SAAD,EAAiC;AACxD,SAAKP,qBAAL,CAA2BQ,QAA3B,CAAoCD,SAApC;AACA,WAAO,IAAP;AACD;AAED;AACF;AACA;;;AACEE,EAAAA,yBAAyB,CAACF,SAAD,EAAiC;AACxD,SAAKN,qBAAL,CAA2BO,QAA3B,CAAoCD,SAApC;AACA,WAAO,IAAP;AACD;AAED;AACF;AACA;AACA;;;AACqB,QAAbG,aAAa,GAAkC;AACnD,UAAMC,qBAAqB,GAAG,CAAC;AAC7BC,MAAAA,EAD6B;AAE7BC,MAAAA;AAF6B,KAAD,MAMvB;AACLC,MAAAA,QAAQ,EAAEF,EADL;AAELG,MAAAA,IAAI,EAAEF,QAAQ,CAACE,IAFV;AAGLC,MAAAA,WAAW,EAAEH,QAAQ,CAACG,WAHjB;AAILC,MAAAA,MAAM,EAAEJ,QAAQ,CAACI;AAJZ,KANuB,CAA9B;;AAYA,WAAO,KAAKC,wBAAL,KACH,KAAKC,iCAAL,GAAyCC,GAAzC,CAA6CT,qBAA7C,CADG,GAEH,KAAKU,iCAAL,GAAyCD,GAAzC,CAA6CT,qBAA7C,CAFJ;AAGD;AAED;AACF;AACA;;;AAC8B,QAAtBW,sBAAsB,GAAkC;AAC5D,WAAO,KAAKZ,aAAL,EAAP;AACD;;AAEDQ,EAAAA,wBAAwB,GAAY;AAClC,WAAOK,OAAO,CAAC,KAAKpB,SAAN,CAAd;AACD;AAED;AACF;AACA;;;AACEqB,EAAAA,4BAA4B,CAACV,QAAD,EAAwC;AAClE,WAAO,KAAKd,qBAAL,CAA2ByB,GAA3B,CAA+BX,QAA/B,KAA4C,EAAnD;AACD;AAED;AACF;AACA;;;AACEY,EAAAA,oBAAoB,CAACX,IAAD,EAAeD,QAAf,EAAiE;AACnF,UAAMP,SAAS,GAAG,KAAKY,iCAAL,EAAlB;AACA,UAAMQ,KAAK,GAAGpB,SAAS,CAACqB,IAAV,CAAe,CAAC;AAAEhB,MAAAA,EAAF;AAAMC,MAAAA;AAAN,KAAD,KAAsB;AACjD,UAAIC,QAAQ,IAAIF,EAAE,KAAKE,QAAvB,EAAiC,OAAO,KAAP;AACjC,aAAOD,QAAQ,CAACE,IAAT,KAAkBA,IAAzB;AACD,KAHa,CAAd;AAIA,WAAOY,KAAP,aAAOA,KAAP,uBAAOA,KAAK,CAAEd,QAAd;AACD;AAED;AACF;AACA;AACA;;;AACiC,QAAzBgB,yBAAyB,CAACf,QAAD,EAAmBC,IAAnB,EAA0E;AACvG,UAAMe,OAAO,GAAG,MAAM,KAAKzB,YAAL,CAAkB0B,0BAAlB,CAA6C,CAACjB,QAAD,CAA7C,CAAtB;AACA,UAAMkB,YAAY,GAAGF,OAAO,CAAC,CAAD,CAAP,CAAWlB,EAAX,CAAcqB,QAAd,EAArB;AACA,WAAO,KAAKC,iCAAL,CAAuCnB,IAAvC,EAA6CiB,YAA7C,CAAP;AACD;;AAEiC,QAA5BG,4BAA4B,CAACC,aAAD,EAAwBrB,IAAxB,EAAsCD,QAAtC,EAAyD;AACzF,QAAI,CAACA,QAAL,EACE,MAAM,KAAIuB,oBAAJ,EACH,iGADG,CAAN;AAGF,UAAMC,OAAO,GAAG,MAAM,oBAAQF,aAAR,CAAtB;AACA,QAAIjC,SAAJ;;AACA,QAAI;AACFA,MAAAA,SAAS,GAAGmC,OAAO,CAACb,GAAR,CAAuBc,qBAAgB3B,EAAvC,CAAZ;AACD,KAFD,CAEE,OAAO4B,GAAP,EAAiB;AACjB,YAAM,IAAIC,KAAJ,CAAW,WAAUL,aAAc,+DAAnC,CAAN;AACD;;AACD,UAAMM,iBAAiB,GAAG,MAAMvC,SAAS,CAACwC,kBAAV,CAA6B7B,QAA7B,CAAhC;AACA,UAAMX,SAAS,CAACyC,WAAV,CAAsB,CAAC9B,QAAD,CAAtB,EAAkC,IAAlC,CAAN;AACA,UAAM+B,YAAY,GAAGH,iBAAiB,CAACT,QAAlB,EAArB;AACA,UAAMa,SAAS,GAAGR,OAAO,CAACb,GAAR,CAA2BsB,6BAAgBnC,EAA3C,CAAlB;AACA,WAAOkC,SAAS,CAACZ,iCAAV,CAA4CnB,IAA5C,EAAkD8B,YAAlD,CAAP;AACD;AAED;AACF;AACA;;;AAC4B,QAApBG,oBAAoB,CACxBjC,IADwB,EAExBD,QAFwB,EAG+C;AACvE,UAAMmC,kBAAkB,GAAG,MAAM,KAAKf,iCAAL,CAAuCnB,IAAvC,EAA6CD,QAA7C,CAAjC;;AACA,QAAImC,kBAAJ,EAAwB;AACtB,aAAO;AAAEC,QAAAA,iBAAiB,EAAED;AAArB,OAAP;AACD;;AACD,QAAI,CAACnC,QAAL,EAAe;AACb,YAAM,KAAIuB,oBAAJ,EAAc,aAAYtB,IAAK,yEAA/B,CAAN;AACD;;AACD,UAAMe,OAAO,GAAG,MAAM,KAAKzB,YAAL,CAAkB0B,0BAAlB,CAA6C,CAACjB,QAAD,CAA7C,CAAtB;AACA,UAAMqC,MAAM,GAAGrB,OAAO,CAAC,CAAD,CAAtB;AACA,UAAME,YAAY,GAAGmB,MAAM,CAACvC,EAAP,CAAUqB,QAAV,EAArB;AACA,UAAMmB,UAAU,GAAG,MAAM,KAAKlB,iCAAL,CAAuCnB,IAAvC,EAA6CiB,YAA7C,CAAzB;;AACA,QAAIoB,UAAJ,EAAgB;AACd,aAAO;AAAEF,QAAAA,iBAAiB,EAAEE,UAArB;AAAiCD,QAAAA;AAAjC,OAAP;AACD;;AACD,UAAM,KAAId,oBAAJ,EAAc,aAAYtB,IAAK,iBAA/B,CAAN;AACD;;AAEsC,QAAjCmB,iCAAiC,CAACnB,IAAD,EAAgBD,QAAhB,EAA2E;AAChH,UAAMP,SAAS,GAAG,KAAKc,iCAAL,EAAlB;AACA,UAAMM,KAAK,GAAGpB,SAAS,CAACqB,IAAV,CAAe,CAAC;AAAEhB,MAAAA,EAAF;AAAMC,MAAAA;AAAN,KAAD,KAAsB;AACjD,UAAIC,QAAQ,IAAIC,IAAhB,EAAsB,OAAOD,QAAQ,KAAKF,EAAb,IAAmBG,IAAI,KAAKF,QAAQ,CAACE,IAA5C;AACtB,UAAID,QAAJ,EAAc,OAAOA,QAAQ,KAAKF,EAApB;AACd,UAAIG,IAAJ,EAAU,OAAOA,IAAI,KAAKF,QAAQ,CAACE,IAAzB;AACV,YAAM,IAAI0B,KAAJ,CAAW,uEAAX,CAAN;AACD,KALa,CAAd;AAMA,WAAOd,KAAP,aAAOA,KAAP,uBAAOA,KAAK,CAAEd,QAAd;AACD;;AAE8B,QAAzBwC,yBAAyB,CAC7BC,cAD6B,EAE7BC,YAF6B,EAG7BC,OAH6B,EAIF;AAC3B,QAAI,CAAC,KAAKrD,SAAV,EAAqB,MAAM,KAAIsD,8BAAJ,GAAN;AACrB,UAAM,KAAKb,WAAL,EAAN;AACA,UAAM;AAAEc,MAAAA,SAAF;AAAaP,MAAAA,MAAM,EAAErC;AAArB,QAAkC0C,OAAxC;AACA,UAAM3C,QAAQ,GAAG,KAAKa,oBAAL,CAA0B6B,YAA1B,EAAwCzC,QAAxC,CAAjB;AACA,QAAI,CAACD,QAAL,EAAe,MAAM,KAAIwB,oBAAJ,EAAc,aAAYkB,YAAa,iBAAvC,CAAN;AACf,UAAMI,KAAK,GAAGH,OAAO,CAACG,KAAR,IAAiB,KAAKxD,SAAL,CAAeyD,YAA9C;;AACA,QAAI,CAAC,qCAAiBD,KAAjB,CAAL,EAA8B;AAC5B,YAAM,KAAIE,+BAAJ,EAAqBF,KAArB,CAAN;AACD;;AACD,QAAI,CAACA,KAAL,EAAY,MAAM,KAAItB,oBAAJ,EAAc,6BAAd,CAAN;AAEZ,UAAMyB,YAAY,GAAGR,cAAc,CAAClC,GAAf,CAAoB2C,aAAD,IAAmB;AACzD,YAAMC,iBAAiB,GAAGN,SAAS,GAAI,GAAEA,SAAU,IAAGK,aAAc,EAAjC,GAAqCA,aAAxE;AACA,aAAOE,2BAAYC,UAAZ,CAAuB;AAAEnD,QAAAA,IAAI,EAAEiD;AAAR,OAAvB,EAAoDL,KAApD,CAAP;AACD,KAHoB,CAArB;AAKA,UAAMQ,kBAAkB,GAAG,KAAIC,wCAAJ,EAAuB,KAAKjE,SAA5B,EAAuC2D,YAAvC,EAAqDN,OAArD,EAA8D3C,QAA9D,EAAwE,KAAKT,IAA7E,CAA3B;AACA,WAAO+D,kBAAkB,CAACE,QAAnB,EAAP;AACD;;AAE8B,QAAzBC,yBAAyB,CAACC,aAAD,EAAwBhB,YAAxB,EAA8CC,OAA9C,EAAmE;AAChG,QAAI,KAAKrD,SAAT,EAAoB;AAClB,YAAM,KAAIkC,oBAAJ,EAAa,2EAAb,CAAN;AACD;;AACD,UAAM;AAAEc,MAAAA,MAAM,EAAErC,QAAV;AAAoB0D,MAAAA;AAApB,QAAiChB,OAAvC;AACA,QAAI3C,QAAJ;AACA,QAAI4D,eAAJ;;AACA,QAAID,QAAJ,EAAc;AACZ3D,MAAAA,QAAQ,GAAG,MAAM,KAAKsB,4BAAL,CAAkCqC,QAAlC,EAA4CjB,YAA5C,EAA0DzC,QAA1D,CAAjB;AACD,KAFD,MAEO;AACL,YAAM;AAAEoC,QAAAA,iBAAF;AAAqBC,QAAAA;AAArB,UAAgC,MAAM,KAAKH,oBAAL,CAA0BO,YAA1B,EAAwCzC,QAAxC,CAA5C;AACAD,MAAAA,QAAQ,GAAGqC,iBAAX;AACAuB,MAAAA,eAAe,GAAGtB,MAAlB;AACD;;AACD,QAAI,CAACtC,QAAL,EAAe,MAAM,KAAIwB,oBAAJ,EAAc,aAAYkB,YAAa,iBAAvC,CAAN;AACf,UAAMmB,kBAAkB,GAAG,KAAIC,wCAAJ,EAAuBJ,aAAvB,EAAsCf,OAAtC,EAA+C3C,QAA/C,EAAyD4D,eAAzD,CAA3B;AACA,UAAMrC,aAAa,GAAG,MAAMsC,kBAAkB,CAACL,QAAnB,EAA5B;AAEA,WAAOjC,aAAP;AACD;;AAEOjB,EAAAA,iCAAiC,GAAuD;AAC9F,UAAMyD,kBAAkB,GAAG,KAAK5E,qBAAL,CAA2B6E,OAA3B,EAA3B;AACA,WAAOD,kBAAkB,CAACE,OAAnB,CAA2B,CAAC,CAAClE,EAAD,EAAKmE,kBAAL,CAAD,KAA8B;AAC9D,aAAOA,kBAAkB,CAAC3D,GAAnB,CAAwBP,QAAD,KAAe;AAC3CD,QAAAA,EAD2C;AAE3CC,QAAAA;AAF2C,OAAf,CAAvB,CAAP;AAID,KALM,CAAP;AAMD;;AAEOQ,EAAAA,iCAAiC,GAAuD;AAC9F,UAAMuD,kBAAkB,GAAG,KAAK3E,qBAAL,CAA2B4E,OAA3B,EAA3B;AACA,WAAOD,kBAAkB,CAACE,OAAnB,CAA2B,CAAC,CAAClE,EAAD,EAAKoE,kBAAL,CAAD,KAA8B;AAC9D,aAAOA,kBAAkB,CAAC5D,GAAnB,CAAwBP,QAAD,KAAe;AAC3CD,QAAAA,EAD2C;AAE3CC,QAAAA;AAF2C,OAAf,CAAvB,CAAP;AAID,KALM,CAAP;AAMD;;AAEwB,QAAX+B,WAAW,GAAG;AAC1B,QAAI,KAAKqC,YAAT,EAAuB;AACvB,UAAM,KAAK9E,SAAL,CAAeyC,WAAf,CAA2B,KAAK1C,MAAL,CAAY4B,OAAvC,CAAN;AACA,SAAKmD,YAAL,GAAoB,IAApB;AACD;;AAQoB,eAARC,QAAQ,CACnB,CAAC/E,SAAD,EAAYgF,GAAZ,EAAiBC,OAAjB,EAA0BhF,IAA1B,EAAgCC,YAAhC,CADmB,EAEnBH,MAFmB,EAGnB,CAACF,qBAAD,EAAwBC,qBAAxB,CAHmB,EAInB;AACA,UAAM6C,SAAS,GAAG,IAAIhD,aAAJ,CAChBE,qBADgB,EAEhBC,qBAFgB,EAGhBC,MAHgB,EAIhBC,SAJgB,EAKhBC,IALgB,EAMhBC,YANgB,CAAlB;AAQA,UAAMgF,QAAQ,GAAG,CAAC,KAAIC,mBAAJ,EAAcxC,SAAd,CAAD,EAA2B,KAAIyC,yBAAJ,EAAiBzC,SAAjB,CAA3B,EAAwD,KAAI0C,aAAJ,EAAW1C,SAAX,CAAxD,CAAjB;AACAqC,IAAAA,GAAG,CAAC3E,QAAJ,CAAa,GAAG6E,QAAhB;AACAD,IAAAA,OAAO,CAAC5E,QAAR,CAAiB,mCAAgBsC,SAAhB,CAAjB;AACAA,IAAAA,SAAS,CAACxC,yBAAV,CAAoC,CAACmF,iDAAD,EAA6BC,iDAA7B,CAApC;AACA,WAAO5C,SAAP;AACD;;AA/OwB;;;gCAAdhD,a,WAuNI,CAAC6F,gBAAKC,QAAL,EAAD,EAAuCD,gBAAKC,QAAL,EAAvC,C;gCAvNJ9F,a,kBAyNW,CAACyC,oBAAD,EAAkBsD,gBAAlB,EAA6BC,wBAA7B,EAA4CC,kBAA5C,EAAwDC,uBAAxD,C;gCAzNXlG,a,aA2NMmG,kB;;AAuBnBlD,6BAAgBmD,UAAhB,CAA2BpG,aAA3B","sourcesContent":["import { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { ConsumerNotFound } from '@teambit/legacy/dist/consumer/exceptions';\nimport { Component } from '@teambit/component';\nimport { ComponentID } from '@teambit/component-id';\nimport { loadBit } from '@teambit/bit';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { BitError } from '@teambit/bit-error';\nimport { InvalidScopeName, isValidScopeName } from '@teambit/legacy-bit-id';\nimport AspectLoaderAspect, { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { ComponentTemplate } from './component-template';\nimport { GeneratorAspect } from './generator.aspect';\nimport { CreateCmd, CreateOptions } from './create.cmd';\nimport { TemplatesCmd } from './templates.cmd';\nimport { generatorSchema } from './generator.graphql';\nimport { ComponentGenerator, GenerateResult } from './component-generator';\nimport { WorkspaceGenerator } from './workspace-generator';\nimport { WorkspaceTemplate } from './workspace-template';\nimport { NewCmd, NewOptions } from './new.cmd';\nimport { componentGeneratorTemplate } from './templates/component-generator';\nimport { workspaceGeneratorTemplate } from './templates/workspace-generator';\n\nexport type ComponentTemplateSlot = SlotRegistry<ComponentTemplate[]>;\nexport type WorkspaceTemplateSlot = SlotRegistry<WorkspaceTemplate[]>;\n\nexport type TemplateDescriptor = { aspectId: string; name: string; description?: string; hidden?: boolean };\n\nexport type GeneratorConfig = {\n /**\n * array of aspects to include in the list of templates.\n */\n aspects: string[];\n};\n\nexport class GeneratorMain {\n private aspectLoaded = false;\n constructor(\n private componentTemplateSlot: ComponentTemplateSlot,\n private workspaceTemplateSlot: WorkspaceTemplateSlot,\n private config: GeneratorConfig,\n private workspace: Workspace,\n private envs: EnvsMain,\n private aspectLoader: AspectLoaderMain\n ) {}\n\n /**\n * register a new component template.\n */\n registerComponentTemplate(templates: ComponentTemplate[]) {\n this.componentTemplateSlot.register(templates);\n return this;\n }\n\n /**\n * register a new component template.\n */\n registerWorkspaceTemplate(templates: WorkspaceTemplate[]) {\n this.workspaceTemplateSlot.register(templates);\n return this;\n }\n\n /**\n * list all component templates registered in the workspace or workspace templates in case the\n * workspace is not available\n */\n async listTemplates(): Promise<TemplateDescriptor[]> {\n const getTemplateDescriptor = ({\n id,\n template,\n }: {\n id: string;\n template: WorkspaceTemplate | ComponentTemplate;\n }) => ({\n aspectId: id,\n name: template.name,\n description: template.description,\n hidden: template.hidden,\n });\n return this.isRunningInsideWorkspace()\n ? this.getAllComponentTemplatesFlattened().map(getTemplateDescriptor)\n : this.getAllWorkspaceTemplatesFlattened().map(getTemplateDescriptor);\n }\n\n /**\n * @deprecated use this.listTemplates()\n */\n async listComponentTemplates(): Promise<TemplateDescriptor[]> {\n return this.listTemplates();\n }\n\n isRunningInsideWorkspace(): boolean {\n return Boolean(this.workspace);\n }\n\n /**\n * get all component templates registered by a specific aspect ID.\n */\n getComponentTemplateByAspect(aspectId: string): ComponentTemplate[] {\n return this.componentTemplateSlot.get(aspectId) || [];\n }\n\n /**\n * returns a specific component template.\n */\n getComponentTemplate(name: string, aspectId?: string): ComponentTemplate | undefined {\n const templates = this.getAllComponentTemplatesFlattened();\n const found = templates.find(({ id, template }) => {\n if (aspectId && id !== aspectId) return false;\n return template.name === name;\n });\n return found?.template;\n }\n\n /**\n * in the case the aspect-id is given and this aspect doesn't exist locally, import it to the\n * global scope and load it from the capsule\n */\n async findTemplateInGlobalScope(aspectId: string, name?: string): Promise<WorkspaceTemplate | undefined> {\n const aspects = await this.aspectLoader.loadAspectsFromGlobalScope([aspectId]);\n const fullAspectId = aspects[0].id.toString();\n return this.searchRegisteredWorkspaceTemplate(name, fullAspectId);\n }\n\n async findTemplateInOtherWorkspace(workspacePath: string, name: string, aspectId?: string) {\n if (!aspectId)\n throw new BitError(\n `to load a template from a different workspace, please provide the aspect-id using --aspect flag`\n );\n const harmony = await loadBit(workspacePath);\n let workspace: Workspace;\n try {\n workspace = harmony.get<Workspace>(WorkspaceAspect.id);\n } catch (err: any) {\n throw new Error(`fatal: \"${workspacePath}\" is not a valid Bit workspace, make sure the path is correct`);\n }\n const aspectComponentId = await workspace.resolveComponentId(aspectId);\n await workspace.loadAspects([aspectId], true);\n const aspectFullId = aspectComponentId.toString();\n const generator = harmony.get<GeneratorMain>(GeneratorAspect.id);\n return generator.searchRegisteredWorkspaceTemplate(name, aspectFullId);\n }\n\n /**\n * returns a specific workspace template.\n */\n async getWorkspaceTemplate(\n name: string,\n aspectId?: string\n ): Promise<{ workspaceTemplate: WorkspaceTemplate; aspect?: Component }> {\n const registeredTemplate = await this.searchRegisteredWorkspaceTemplate(name, aspectId);\n if (registeredTemplate) {\n return { workspaceTemplate: registeredTemplate };\n }\n if (!aspectId) {\n throw new BitError(`template \"${name}\" was not found, if this is a custom-template, please use --aspect flag`);\n }\n const aspects = await this.aspectLoader.loadAspectsFromGlobalScope([aspectId]);\n const aspect = aspects[0];\n const fullAspectId = aspect.id.toString();\n const fromGlobal = await this.searchRegisteredWorkspaceTemplate(name, fullAspectId);\n if (fromGlobal) {\n return { workspaceTemplate: fromGlobal, aspect };\n }\n throw new BitError(`template \"${name}\" was not found`);\n }\n\n async searchRegisteredWorkspaceTemplate(name?: string, aspectId?: string): Promise<WorkspaceTemplate | undefined> {\n const templates = this.getAllWorkspaceTemplatesFlattened();\n const found = templates.find(({ id, template }) => {\n if (aspectId && name) return aspectId === id && name === template.name;\n if (aspectId) return aspectId === id;\n if (name) return name === template.name;\n throw new Error(`searchRegisteredWorkspaceTemplate expects to get \"name\" or \"aspectId\"`);\n });\n return found?.template;\n }\n\n async generateComponentTemplate(\n componentNames: string[],\n templateName: string,\n options: CreateOptions\n ): Promise<GenerateResult[]> {\n if (!this.workspace) throw new ConsumerNotFound();\n await this.loadAspects();\n const { namespace, aspect: aspectId } = options;\n const template = this.getComponentTemplate(templateName, aspectId);\n if (!template) throw new BitError(`template \"${templateName}\" was not found`);\n const scope = options.scope || this.workspace.defaultScope;\n if (!isValidScopeName(scope)) {\n throw new InvalidScopeName(scope);\n }\n if (!scope) throw new BitError(`failed finding defaultScope`);\n\n const componentIds = componentNames.map((componentName) => {\n const fullComponentName = namespace ? `${namespace}/${componentName}` : componentName;\n return ComponentID.fromObject({ name: fullComponentName }, scope);\n });\n\n const componentGenerator = new ComponentGenerator(this.workspace, componentIds, options, template, this.envs);\n return componentGenerator.generate();\n }\n\n async generateWorkspaceTemplate(workspaceName: string, templateName: string, options: NewOptions) {\n if (this.workspace) {\n throw new BitError('Error: unable to generate a new workspace inside of an existing workspace');\n }\n const { aspect: aspectId, loadFrom } = options;\n let template: WorkspaceTemplate | undefined;\n let aspectComponent: Component | undefined;\n if (loadFrom) {\n template = await this.findTemplateInOtherWorkspace(loadFrom, templateName, aspectId);\n } else {\n const { workspaceTemplate, aspect } = await this.getWorkspaceTemplate(templateName, aspectId);\n template = workspaceTemplate;\n aspectComponent = aspect;\n }\n if (!template) throw new BitError(`template \"${templateName}\" was not found`);\n const workspaceGenerator = new WorkspaceGenerator(workspaceName, options, template, aspectComponent);\n const workspacePath = await workspaceGenerator.generate();\n\n return workspacePath;\n }\n\n private getAllComponentTemplatesFlattened(): Array<{ id: string; template: ComponentTemplate }> {\n const templatesByAspects = this.componentTemplateSlot.toArray();\n return templatesByAspects.flatMap(([id, componentTemplates]) => {\n return componentTemplates.map((template) => ({\n id,\n template,\n }));\n });\n }\n\n private getAllWorkspaceTemplatesFlattened(): Array<{ id: string; template: WorkspaceTemplate }> {\n const templatesByAspects = this.workspaceTemplateSlot.toArray();\n return templatesByAspects.flatMap(([id, workspaceTemplates]) => {\n return workspaceTemplates.map((template) => ({\n id,\n template,\n }));\n });\n }\n\n private async loadAspects() {\n if (this.aspectLoaded) return;\n await this.workspace.loadAspects(this.config.aspects);\n this.aspectLoaded = true;\n }\n\n static slots = [Slot.withType<ComponentTemplate[]>(), Slot.withType<WorkspaceTemplate[]>()];\n\n static dependencies = [WorkspaceAspect, CLIAspect, GraphqlAspect, EnvsAspect, AspectLoaderAspect];\n\n static runtime = MainRuntime;\n\n static async provider(\n [workspace, cli, graphql, envs, aspectLoader]: [Workspace, CLIMain, GraphqlMain, EnvsMain, AspectLoaderMain],\n config: GeneratorConfig,\n [componentTemplateSlot, workspaceTemplateSlot]: [ComponentTemplateSlot, WorkspaceTemplateSlot]\n ) {\n const generator = new GeneratorMain(\n componentTemplateSlot,\n workspaceTemplateSlot,\n config,\n workspace,\n envs,\n aspectLoader\n );\n const commands = [new CreateCmd(generator), new TemplatesCmd(generator), new NewCmd(generator)];\n cli.register(...commands);\n graphql.register(generatorSchema(generator));\n generator.registerComponentTemplate([componentGeneratorTemplate, workspaceGeneratorTemplate]);\n return generator;\n }\n}\n\nGeneratorAspect.addRuntime(GeneratorMain);\n"]}
|
|
1
|
+
{"version":3,"sources":["generator.main.runtime.ts"],"names":["GeneratorMain","constructor","componentTemplateSlot","workspaceTemplateSlot","config","workspace","envs","aspectLoader","registerComponentTemplate","templates","register","registerWorkspaceTemplate","listTemplates","getTemplateDescriptor","id","template","shouldBeHidden","hidden","hideCoreTemplates","aspectId","name","description","isRunningInsideWorkspace","getAllComponentTemplatesFlattened","map","getAllWorkspaceTemplatesFlattened","listComponentTemplates","Boolean","getComponentTemplateByAspect","get","getComponentTemplate","found","find","findTemplateInGlobalScope","aspects","loadAspectsFromGlobalScope","fullAspectId","toString","searchRegisteredWorkspaceTemplate","findTemplateInOtherWorkspace","workspacePath","BitError","harmony","WorkspaceAspect","err","Error","aspectComponentId","resolveComponentId","loadAspects","aspectFullId","generator","GeneratorAspect","getWorkspaceTemplate","registeredTemplate","workspaceTemplate","aspect","fromGlobal","generateComponentTemplate","componentNames","templateName","options","ConsumerNotFound","namespace","scope","defaultScope","InvalidScopeName","componentIds","componentName","fullComponentName","ComponentID","fromObject","componentGenerator","ComponentGenerator","generate","generateWorkspaceTemplate","workspaceName","loadFrom","aspectComponent","workspaceGenerator","WorkspaceGenerator","templatesByAspects","toArray","flatMap","componentTemplates","workspaceTemplates","aspectLoaded","provider","cli","graphql","commands","CreateCmd","TemplatesCmd","NewCmd","componentGeneratorTemplate","workspaceGeneratorTemplate","Slot","withType","CLIAspect","GraphqlAspect","EnvsAspect","AspectLoaderAspect","MainRuntime","addRuntime"],"mappings":"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","sourcesContent":["import { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { ConsumerNotFound } from '@teambit/legacy/dist/consumer/exceptions';\nimport { Component } from '@teambit/component';\nimport { ComponentID } from '@teambit/component-id';\nimport { isCoreAspect, loadBit } from '@teambit/bit';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { BitError } from '@teambit/bit-error';\nimport { InvalidScopeName, isValidScopeName } from '@teambit/legacy-bit-id';\nimport AspectLoaderAspect, { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { ComponentTemplate } from './component-template';\nimport { GeneratorAspect } from './generator.aspect';\nimport { CreateCmd, CreateOptions } from './create.cmd';\nimport { TemplatesCmd } from './templates.cmd';\nimport { generatorSchema } from './generator.graphql';\nimport { ComponentGenerator, GenerateResult } from './component-generator';\nimport { WorkspaceGenerator } from './workspace-generator';\nimport { WorkspaceTemplate } from './workspace-template';\nimport { NewCmd, NewOptions } from './new.cmd';\nimport { componentGeneratorTemplate } from './templates/component-generator';\nimport { workspaceGeneratorTemplate } from './templates/workspace-generator';\n\nexport type ComponentTemplateSlot = SlotRegistry<ComponentTemplate[]>;\nexport type WorkspaceTemplateSlot = SlotRegistry<WorkspaceTemplate[]>;\n\nexport type TemplateDescriptor = { aspectId: string; name: string; description?: string; hidden?: boolean };\n\nexport type GeneratorConfig = {\n /**\n * array of aspects to include in the list of templates.\n */\n aspects: string[];\n\n /**\n * by default core templates are shown.\n * use this to hide them unless `--show-all` flag of `bit templates` was used\n */\n hideCoreTemplates: boolean;\n};\n\nexport class GeneratorMain {\n private aspectLoaded = false;\n constructor(\n private componentTemplateSlot: ComponentTemplateSlot,\n private workspaceTemplateSlot: WorkspaceTemplateSlot,\n private config: GeneratorConfig,\n private workspace: Workspace,\n private envs: EnvsMain,\n private aspectLoader: AspectLoaderMain\n ) {}\n\n /**\n * register a new component template.\n */\n registerComponentTemplate(templates: ComponentTemplate[]) {\n this.componentTemplateSlot.register(templates);\n return this;\n }\n\n /**\n * register a new component template.\n */\n registerWorkspaceTemplate(templates: WorkspaceTemplate[]) {\n this.workspaceTemplateSlot.register(templates);\n return this;\n }\n\n /**\n * list all component templates registered in the workspace or workspace templates in case the\n * workspace is not available\n */\n async listTemplates(): Promise<TemplateDescriptor[]> {\n const getTemplateDescriptor = ({\n id,\n template,\n }: {\n id: string;\n template: WorkspaceTemplate | ComponentTemplate;\n }) => {\n const shouldBeHidden = () => {\n if (template.hidden) return true;\n if (this.config.hideCoreTemplates && isCoreAspect(id)) return true;\n return false;\n };\n return {\n aspectId: id,\n name: template.name,\n description: template.description,\n hidden: shouldBeHidden(),\n };\n };\n return this.isRunningInsideWorkspace()\n ? this.getAllComponentTemplatesFlattened().map(getTemplateDescriptor)\n : this.getAllWorkspaceTemplatesFlattened().map(getTemplateDescriptor);\n }\n\n /**\n * @deprecated use this.listTemplates()\n */\n async listComponentTemplates(): Promise<TemplateDescriptor[]> {\n return this.listTemplates();\n }\n\n isRunningInsideWorkspace(): boolean {\n return Boolean(this.workspace);\n }\n\n /**\n * get all component templates registered by a specific aspect ID.\n */\n getComponentTemplateByAspect(aspectId: string): ComponentTemplate[] {\n return this.componentTemplateSlot.get(aspectId) || [];\n }\n\n /**\n * returns a specific component template.\n */\n getComponentTemplate(name: string, aspectId?: string): ComponentTemplate | undefined {\n const templates = this.getAllComponentTemplatesFlattened();\n const found = templates.find(({ id, template }) => {\n if (aspectId && id !== aspectId) return false;\n return template.name === name;\n });\n return found?.template;\n }\n\n /**\n * in the case the aspect-id is given and this aspect doesn't exist locally, import it to the\n * global scope and load it from the capsule\n */\n async findTemplateInGlobalScope(aspectId: string, name?: string): Promise<WorkspaceTemplate | undefined> {\n const aspects = await this.aspectLoader.loadAspectsFromGlobalScope([aspectId]);\n const fullAspectId = aspects[0].id.toString();\n return this.searchRegisteredWorkspaceTemplate(name, fullAspectId);\n }\n\n async findTemplateInOtherWorkspace(workspacePath: string, name: string, aspectId?: string) {\n if (!aspectId)\n throw new BitError(\n `to load a template from a different workspace, please provide the aspect-id using --aspect flag`\n );\n const harmony = await loadBit(workspacePath);\n let workspace: Workspace;\n try {\n workspace = harmony.get<Workspace>(WorkspaceAspect.id);\n } catch (err: any) {\n throw new Error(`fatal: \"${workspacePath}\" is not a valid Bit workspace, make sure the path is correct`);\n }\n const aspectComponentId = await workspace.resolveComponentId(aspectId);\n await workspace.loadAspects([aspectId], true);\n const aspectFullId = aspectComponentId.toString();\n const generator = harmony.get<GeneratorMain>(GeneratorAspect.id);\n return generator.searchRegisteredWorkspaceTemplate(name, aspectFullId);\n }\n\n /**\n * returns a specific workspace template.\n */\n async getWorkspaceTemplate(\n name: string,\n aspectId?: string\n ): Promise<{ workspaceTemplate: WorkspaceTemplate; aspect?: Component }> {\n const registeredTemplate = await this.searchRegisteredWorkspaceTemplate(name, aspectId);\n if (registeredTemplate) {\n return { workspaceTemplate: registeredTemplate };\n }\n if (!aspectId) {\n throw new BitError(`template \"${name}\" was not found, if this is a custom-template, please use --aspect flag`);\n }\n const aspects = await this.aspectLoader.loadAspectsFromGlobalScope([aspectId]);\n const aspect = aspects[0];\n const fullAspectId = aspect.id.toString();\n const fromGlobal = await this.searchRegisteredWorkspaceTemplate(name, fullAspectId);\n if (fromGlobal) {\n return { workspaceTemplate: fromGlobal, aspect };\n }\n throw new BitError(`template \"${name}\" was not found`);\n }\n\n async searchRegisteredWorkspaceTemplate(name?: string, aspectId?: string): Promise<WorkspaceTemplate | undefined> {\n const templates = this.getAllWorkspaceTemplatesFlattened();\n const found = templates.find(({ id, template }) => {\n if (aspectId && name) return aspectId === id && name === template.name;\n if (aspectId) return aspectId === id;\n if (name) return name === template.name;\n throw new Error(`searchRegisteredWorkspaceTemplate expects to get \"name\" or \"aspectId\"`);\n });\n return found?.template;\n }\n\n async generateComponentTemplate(\n componentNames: string[],\n templateName: string,\n options: CreateOptions\n ): Promise<GenerateResult[]> {\n if (!this.workspace) throw new ConsumerNotFound();\n await this.loadAspects();\n const { namespace, aspect: aspectId } = options;\n const template = this.getComponentTemplate(templateName, aspectId);\n if (!template) throw new BitError(`template \"${templateName}\" was not found`);\n const scope = options.scope || this.workspace.defaultScope;\n if (!isValidScopeName(scope)) {\n throw new InvalidScopeName(scope);\n }\n if (!scope) throw new BitError(`failed finding defaultScope`);\n\n const componentIds = componentNames.map((componentName) => {\n const fullComponentName = namespace ? `${namespace}/${componentName}` : componentName;\n return ComponentID.fromObject({ name: fullComponentName }, scope);\n });\n\n const componentGenerator = new ComponentGenerator(this.workspace, componentIds, options, template, this.envs);\n return componentGenerator.generate();\n }\n\n async generateWorkspaceTemplate(workspaceName: string, templateName: string, options: NewOptions) {\n if (this.workspace) {\n throw new BitError('Error: unable to generate a new workspace inside of an existing workspace');\n }\n const { aspect: aspectId, loadFrom } = options;\n let template: WorkspaceTemplate | undefined;\n let aspectComponent: Component | undefined;\n if (loadFrom) {\n template = await this.findTemplateInOtherWorkspace(loadFrom, templateName, aspectId);\n } else {\n const { workspaceTemplate, aspect } = await this.getWorkspaceTemplate(templateName, aspectId);\n template = workspaceTemplate;\n aspectComponent = aspect;\n }\n if (!template) throw new BitError(`template \"${templateName}\" was not found`);\n const workspaceGenerator = new WorkspaceGenerator(workspaceName, options, template, aspectComponent);\n const workspacePath = await workspaceGenerator.generate();\n\n return workspacePath;\n }\n\n private getAllComponentTemplatesFlattened(): Array<{ id: string; template: ComponentTemplate }> {\n const templatesByAspects = this.componentTemplateSlot.toArray();\n return templatesByAspects.flatMap(([id, componentTemplates]) => {\n return componentTemplates.map((template) => ({\n id,\n template,\n }));\n });\n }\n\n private getAllWorkspaceTemplatesFlattened(): Array<{ id: string; template: WorkspaceTemplate }> {\n const templatesByAspects = this.workspaceTemplateSlot.toArray();\n return templatesByAspects.flatMap(([id, workspaceTemplates]) => {\n return workspaceTemplates.map((template) => ({\n id,\n template,\n }));\n });\n }\n\n private async loadAspects() {\n if (this.aspectLoaded) return;\n await this.workspace.loadAspects(this.config.aspects);\n this.aspectLoaded = true;\n }\n\n static slots = [Slot.withType<ComponentTemplate[]>(), Slot.withType<WorkspaceTemplate[]>()];\n\n static dependencies = [WorkspaceAspect, CLIAspect, GraphqlAspect, EnvsAspect, AspectLoaderAspect];\n\n static runtime = MainRuntime;\n\n static async provider(\n [workspace, cli, graphql, envs, aspectLoader]: [Workspace, CLIMain, GraphqlMain, EnvsMain, AspectLoaderMain],\n config: GeneratorConfig,\n [componentTemplateSlot, workspaceTemplateSlot]: [ComponentTemplateSlot, WorkspaceTemplateSlot]\n ) {\n const generator = new GeneratorMain(\n componentTemplateSlot,\n workspaceTemplateSlot,\n config,\n workspace,\n envs,\n aspectLoader\n );\n const commands = [new CreateCmd(generator), new TemplatesCmd(generator), new NewCmd(generator)];\n cli.register(...commands);\n graphql.register(generatorSchema(generator));\n generator.registerComponentTemplate([componentGeneratorTemplate, workspaceGeneratorTemplate]);\n return generator;\n }\n}\n\nGeneratorAspect.addRuntime(GeneratorMain);\n"]}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/generator",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.562",
|
|
4
4
|
"homepage": "https://bit.dev/teambit/generator/generator",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.generator",
|
|
8
8
|
"name": "generator",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.562"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"camelcase": "6.2.0",
|
|
@@ -23,19 +23,19 @@
|
|
|
23
23
|
"core-js": "^3.0.0",
|
|
24
24
|
"@teambit/bit-error": "0.0.376",
|
|
25
25
|
"@teambit/component-id": "0.0.380",
|
|
26
|
-
"@teambit/envs": "0.0.
|
|
27
|
-
"@teambit/workspace": "0.0.
|
|
26
|
+
"@teambit/envs": "0.0.562",
|
|
27
|
+
"@teambit/workspace": "0.0.562",
|
|
28
28
|
"@teambit/cli": "0.0.390",
|
|
29
|
-
"@teambit/graphql": "0.0.
|
|
30
|
-
"@teambit/aspect-loader": "0.0.
|
|
31
|
-
"@teambit/bit": "0.0.
|
|
32
|
-
"@teambit/component": "0.0.
|
|
29
|
+
"@teambit/graphql": "0.0.562",
|
|
30
|
+
"@teambit/aspect-loader": "0.0.562",
|
|
31
|
+
"@teambit/bit": "0.0.564",
|
|
32
|
+
"@teambit/component": "0.0.562",
|
|
33
33
|
"@teambit/legacy-bit-id": "0.0.379",
|
|
34
|
-
"@teambit/compiler": "0.0.
|
|
35
|
-
"@teambit/dependency-resolver": "0.0.
|
|
34
|
+
"@teambit/compiler": "0.0.562",
|
|
35
|
+
"@teambit/dependency-resolver": "0.0.562",
|
|
36
36
|
"@teambit/logger": "0.0.475",
|
|
37
|
-
"@teambit/pkg": "0.0.
|
|
38
|
-
"@teambit/ui": "0.0.
|
|
37
|
+
"@teambit/pkg": "0.0.562",
|
|
38
|
+
"@teambit/ui": "0.0.562"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/fs-extra": "9.0.7",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@types/react-dom": "^17.0.5",
|
|
47
47
|
"@types/react": "^17.0.8",
|
|
48
48
|
"@types/node": "12.20.4",
|
|
49
|
-
"@teambit/generator.aspect-docs.generator": "0.0.
|
|
49
|
+
"@teambit/generator.aspect-docs.generator": "0.0.113"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
52
|
"@teambit/legacy": "1.0.176",
|