@teambit/generator 1.0.108 → 1.0.110

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.
@@ -0,0 +1 @@
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["teambit.generator/generator-preview"]=t():e["teambit.generator/generator-preview"]=t()}(self,(()=>(()=>{"use strict";var e={65574:(e,t,n)=>{var o={id:"teambit.generator/generator@1.0.110",homepage:"https://bit.cloud/teambit/generator/generator",exported:!0};function a(){const e=r(n(87363));return a=function(){return e},e}function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Logo=void 0,a.__bit_component=o,r.__bit_component=o;const l=()=>a().default.createElement("div",{style:{height:"100%",display:"flex",justifyContent:"center"}},a().default.createElement("img",{style:{width:70},src:"https://static.bit.dev/extensions-icons/generator-new.svg"}));l.__bit_component=o,t.Logo=l},28859:(e,t,n)=>{var o={id:"teambit.generator/aspect-docs/generator@0.0.169",homepage:"https://bit.cloud/teambit/generator/aspect-docs/generator",exported:!0};Object.defineProperty(t,"__esModule",{value:!0}),t.default=c,l(n(87363));var a=n(40040),r=["components"];function l(e){return e&&e.__esModule?e:{default:e}}function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},p.apply(this,arguments)}function m(e,t){if(null==e)return{};var n,o,a=i(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function i(e,t){if(null==e)return{};var n,o,a={},r=Object.keys(e);for(o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}l.__bit_component=o,p.__bit_component=o,m.__bit_component=o,i.__bit_component=o;var s={},d="wrapper";function c(e){var t=e.components,n=m(e,r);return(0,a.mdx)(d,p({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Generator extension enable generating new components by pre-defined templates"),(0,a.mdx)("h3",null,"Component location"),(0,a.mdx)("p",null,"Component location in the workspace directory tree is defined with the ",(0,a.mdx)("inlineCode",{parentName:"p"},"bit create")," command (see below). For example, a component named ",(0,a.mdx)("inlineCode",{parentName:"p"},"ShoppingCart")," created in the ",(0,a.mdx)("inlineCode",{parentName:"p"},"acme.shopper")," and the namespace ",(0,a.mdx)("inlineCode",{parentName:"p"},"ui")," will be generated in the following directory:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre"},"acme.shopper/ui/shopping-cart\n")),(0,a.mdx)("h3",null,"Component name"),(0,a.mdx)("p",null,"When using templates Bit will use CamelCasing for passing the component-name to the template, but generated file structure should be in kebab-case, for better cross-operating-system compatibility of the component."),(0,a.mdx)("h3",null,"Automatically ",(0,a.mdx)("inlineCode",{parentName:"h3"},"add")," component"),(0,a.mdx)("p",null,"Bit should automatically register the new component to the ",(0,a.mdx)("inlineCode",{parentName:"p"},".bitmap")," file with a symmetrical name to the component-location in the workspace."),(0,a.mdx)("h2",null,"Register a template"),(0,a.mdx)("p",null,"Any aspect (include envs) can register templates. Each template should have a name and a list of files. Each file has a relative-path to the component-dir and template content. See the ",(0,a.mdx)("inlineCode",{parentName:"p"},"component-template.ts")," file for more info about the exact API."),(0,a.mdx)("ul",null,(0,a.mdx)("li",{parentName:"ul"},"Component name should be available as a param for the file-content-template."),(0,a.mdx)("li",{parentName:"ul"},"TBD: An environment must have a default template (if not set, use first template in array?).")),(0,a.mdx)("p",null,"To register a template, use the Generator API: ",(0,a.mdx)("inlineCode",{parentName:"p"},"registerComponentTemplate(templates: ComponentTemplate[])"),"."),(0,a.mdx)("p",null,"To make the templates of an aspect available on a workspace, they need to be added to the workspace.jsonc. For example:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-json"},'"teambit.generator/generator": {\n "aspects": [\n "teambit.harmony/aspect"\n ]\n },\n')),(0,a.mdx)("p",null,"In the example above, the aspect ",(0,a.mdx)("inlineCode",{parentName:"p"},"teambit.harmony/aspect")," is configured to be available for the generator."),(0,a.mdx)("h2",null,"Show all available templates"),(0,a.mdx)("p",null,"Introduce a new command ",(0,a.mdx)("inlineCode",{parentName:"p"},"bit templates"),", which groups all available templates by aspects."),(0,a.mdx)("h2",null,"Hide core templates"),(0,a.mdx)("p",null,"Configure the Generator aspect to hide core templates when running ",(0,a.mdx)("inlineCode",{parentName:"p"},"bit templates"),". They'll be only shown when using ",(0,a.mdx)("inlineCode",{parentName:"p"},"--show-all")," flag."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-json"},'"teambit.generator/generator": {\n "hideCoreTemplates": true\n },\n')),(0,a.mdx)("h2",null,"Generate a template from CLI"),(0,a.mdx)("p",null,"Introduce a ",(0,a.mdx)("inlineCode",{parentName:"p"},"create")," command to use templates."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-sh"},"bit create <template-name> <component-name...> [--scope | -s] [--namespace | -n] [--aspect | -a]\n")),(0,a.mdx)("h3",null,"Args"),(0,a.mdx)("h4",null,(0,a.mdx)("inlineCode",{parentName:"h4"},"<component name>")),(0,a.mdx)("p",null,"Name of the component to create. Will be used as the component's dir name and fed to the component template."),(0,a.mdx)("p",null,(0,a.mdx)("strong",{parentName:"p"},"generated file structure should use kebab-case, while the template itself be in camel case"),"."),(0,a.mdx)("h3",null,"Options"),(0,a.mdx)("h4",null,(0,a.mdx)("inlineCode",{parentName:"h4"},"[--scope | -s]")),(0,a.mdx)("p",null,"Sets the component's scope and base directory. If not defined, use the ",(0,a.mdx)("inlineCode",{parentName:"p"},"defaultScope")," from ",(0,a.mdx)("inlineCode",{parentName:"p"},"teambit.workspace/workspace")," config."),(0,a.mdx)("h4",null,(0,a.mdx)("inlineCode",{parentName:"h4"},"[--namespace | -n]")),(0,a.mdx)("p",null,"Sets the component's namespace and nested dirs inside the scope. If not define, use empty string."),(0,a.mdx)("h4",null,(0,a.mdx)("inlineCode",{parentName:"h4"},"[--aspect | -a]")),(0,a.mdx)("p",null,"Aspect ID that registered this template, required only if there are two templates with the same name from several aspects in the workspace."),(0,a.mdx)("h2",null,"Creating a custom template generator"),(0,a.mdx)("p",null,"See our ",(0,a.mdx)("a",{parentName:"p",href:"https://harmony-docs.bit.dev/extending-bit/creating-a-custom-generator"},"tutorial")," on how to Create your own custom component generator."))}c.__bit_component=o,c.isMDXComponent=!0},44207:(e,t,n)=>{Object.defineProperty(t,"R",{enumerable:!0,get:function(){return o.default}});var o=a(n(28859));function a(e){return e&&e.__esModule?e:{default:e}}a.__bit_component={id:"teambit.generator/aspect-docs/generator@0.0.169",homepage:"https://bit.cloud/teambit/generator/aspect-docs/generator",exported:!0}},40040:e=>{e.exports=MdxJsReact},87363:e=>{e.exports=React}},t={};function n(o){var a=t[o];if(void 0!==a)return a.exports;var r=t[o]={exports:{}};return e[o](r,r.exports,n),r.exports}n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{n.r(o),n.d(o,{compositions:()=>c,compositions_metadata:()=>h,overview:()=>u});var e={};n.r(e),n.d(e,{default:()=>d});var t=n(65574),a=(n(87363),n(40040));const r=TeambitMdxUiMdxScopeContext;var l=n(44207),p=["components"];function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},m.apply(this,arguments)}var i={},s="wrapper";function d(e){var t=e.components,n=function(e,t){if(null==e)return{};var n,o,a=function(e,t){if(null==e)return{};var n,o,a={},r=Object.keys(e);for(o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,p);return(0,a.mdx)(s,m({},i,n,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)(r.MDXScopeProvider,{components:{Generator:l.R},mdxType:"MDXScopeProvider"},(0,a.mdx)(l.R,{mdxType:"Generator"})))}d.isMDXComponent=!0;const c=[t],u=[e],h={compositions:[{displayName:"Logo",identifier:"Logo"}]}})(),o})()));
@@ -8,7 +8,7 @@ import { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';
8
8
  import { ComponentTemplate } from './component-template';
9
9
  import { CreateOptions } from './create.cmd';
10
10
  import { OnComponentCreateSlot } from './generator.main.runtime';
11
- export declare type GenerateResult = {
11
+ export type GenerateResult = {
12
12
  id: ComponentID;
13
13
  dir: string;
14
14
  files: string[];
@@ -20,7 +20,7 @@ export declare type GenerateResult = {
20
20
  dependencies?: string[];
21
21
  installMissingDependencies?: boolean;
22
22
  };
23
- export declare type OnComponentCreateFn = (generateResults: GenerateResult[]) => Promise<void>;
23
+ export type OnComponentCreateFn = (generateResults: GenerateResult[]) => Promise<void>;
24
24
  export declare class ComponentGenerator {
25
25
  private workspace;
26
26
  private componentIds;
@@ -34,7 +34,7 @@ export declare class ComponentGenerator {
34
34
  private onComponentCreateSlot;
35
35
  private aspectId;
36
36
  private envId?;
37
- constructor(workspace: Workspace, componentIds: ComponentID[], options: Partial<CreateOptions>, template: ComponentTemplate, envs: EnvsMain, newComponentHelper: NewComponentHelperMain, tracker: TrackerMain, wsConfigFiles: WorkspaceConfigFilesMain, logger: Logger, onComponentCreateSlot: OnComponentCreateSlot, aspectId: string, envId?: ComponentID | undefined);
37
+ constructor(workspace: Workspace, componentIds: ComponentID[], options: Partial<CreateOptions>, template: ComponentTemplate, envs: EnvsMain, newComponentHelper: NewComponentHelperMain, tracker: TrackerMain, wsConfigFiles: WorkspaceConfigFilesMain, logger: Logger, onComponentCreateSlot: OnComponentCreateSlot, aspectId: string, envId?: ComponentID);
38
38
  generate(): Promise<GenerateResult[]>;
39
39
  private tryLinkToNodeModules;
40
40
  private runOnComponentCreateHook;
@@ -182,7 +182,6 @@ class ComponentGenerator {
182
182
  }));
183
183
  }
184
184
  async generateOneComponent(componentId, componentPath) {
185
- var _config;
186
185
  const name = componentId.name;
187
186
  const namePascalCase = (0, _camelcase().default)(name, {
188
187
  pascalCase: true
@@ -201,7 +200,7 @@ class ComponentGenerator {
201
200
  await this.writeComponentFiles(componentPath, files);
202
201
  const addResults = await this.tracker.track({
203
202
  rootDir: componentPath,
204
- mainFile: mainFile === null || mainFile === void 0 ? void 0 : mainFile.relativePath,
203
+ mainFile: mainFile?.relativePath,
205
204
  componentName: componentId.fullName,
206
205
  defaultScope: this.options.scope
207
206
  });
@@ -213,8 +212,7 @@ class ComponentGenerator {
213
212
  const envBeforeConfigChanges = this.envs.getEnv(component);
214
213
  let config = this.template.config;
215
214
  if (config && typeof config === 'function') {
216
- var _this$template$config;
217
- const boundConfig = (_this$template$config = this.template.config) === null || _this$template$config === void 0 ? void 0 : _this$template$config.bind(this.template);
215
+ const boundConfig = this.template.config?.bind(this.template);
218
216
  config = boundConfig({
219
217
  aspectId: this.aspectId
220
218
  });
@@ -229,7 +227,7 @@ class ComponentGenerator {
229
227
  }
230
228
  };
231
229
  }
232
- const templateEnv = (_config = config) === null || _config === void 0 || (_config = _config[_envs().default.id]) === null || _config === void 0 ? void 0 : _config.env;
230
+ const templateEnv = config?.[_envs().default.id]?.env;
233
231
  if (config && templateEnv && hasEnvConfiguredOriginally) {
234
232
  // remove the env we got from the template.
235
233
  delete config[templateEnv];
@@ -240,9 +238,8 @@ class ComponentGenerator {
240
238
  const configWithEnv = await this.addEnvIfProvidedByFlag(config);
241
239
  if (configWithEnv) this.workspace.bitMap.setEntireConfig(component.id, configWithEnv);
242
240
  const getEnvData = () => {
243
- var _config2;
244
241
  const envFromFlag = this.options.env; // env entered by the user when running `bit create --env`
245
- const envFromTemplate = (_config2 = config) === null || _config2 === void 0 || (_config2 = _config2[_envs().default.id]) === null || _config2 === void 0 ? void 0 : _config2.env;
242
+ const envFromTemplate = config?.[_envs().default.id]?.env;
246
243
  if (envFromFlag) {
247
244
  return {
248
245
  envId: envFromFlag,
@@ -278,9 +275,8 @@ class ComponentGenerator {
278
275
  };
279
276
  }
280
277
  async addEnvIfProvidedByFlag(config) {
281
- var _config3;
282
278
  const userEnv = this.options.env; // env entered by the user when running `bit create --env`
283
- const templateEnv = (_config3 = config) === null || _config3 === void 0 || (_config3 = _config3[_envs().default.id]) === null || _config3 === void 0 ? void 0 : _config3.env;
279
+ const templateEnv = config?.[_envs().default.id]?.env;
284
280
  if (!userEnv || userEnv === templateEnv) {
285
281
  return config;
286
282
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_vinyl","data","_interopRequireDefault","require","_fsExtra","_pMapSeries","_path","_envs","_camelcase","_bitError","_workspaceModules","_sources","_componentIdToPackageName","_dataToPersist","_componentId","obj","__esModule","default","ComponentGenerator","constructor","workspace","componentIds","options","template","envs","newComponentHelper","tracker","wsConfigFiles","logger","onComponentCreateSlot","aspectId","envId","generate","dirsToDeleteIfFailed","generateResults","pMapSeries","componentId","componentPath","getNewComponentPath","path","length","fs","existsSync","join","BitError","hasName","fullName","push","generateOneComponent","err","deleteGeneratedComponents","bitMap","write","ids","map","r","id","tryLinkToNodeModules","runOnComponentCreateHook","tryWriteConfigFiles","linkToNodeModulesByIds","consoleFailure","message","fns","values","Promise","all","fn","shouldWrite","isWorkspaceConfigWriteEnabled","clearComponentCache","writeConfigFiles","clean","silent","dedupe","throw","dirs","dir","absoluteDir","remove","code","_config","name","namePascalCase","camelcase","pascalCase","nameCamelCase","ComponentID","fromString","files","generateFiles","mainFile","find","file","isMain","writeComponentFiles","addResults","track","rootDir","relativePath","componentName","defaultScope","scope","component","get","hasEnvConfiguredOriginally","hasEnvConfigured","isApp","use","toString","envBeforeConfigChanges","getEnv","config","_this$template$config","boundConfig","bind","userEnv","env","isInWorkspace","exists","toStringWithoutVersion","templateEnv","EnvsAspect","Object","keys","undefined","configWithEnv","addEnvIfProvidedByFlag","setEntireConfig","getEnvData","_config2","envFromFlag","envFromTemplate","setBy","packageName","componentIdToPackageName","state","_consumer","envSetBy","isEnv","dependencies","installMissingDependencies","_config3","addEnvToConfig","templateFiles","dataToPersist","DataToPersist","vinylFiles","templateFile","templateFileVinyl","Vinyl","base","contents","Buffer","from","content","AbstractVinyl","fromVinyl","results","v","addManyFiles","addBasePath","persistAllToFS","exports"],"sources":["component-generator.ts"],"sourcesContent":["import Vinyl from 'vinyl';\nimport fs from 'fs-extra';\nimport pMapSeries from 'p-map-series';\nimport path from 'path';\nimport { Workspace } from '@teambit/workspace';\nimport EnvsAspect, { EnvsMain } from '@teambit/envs';\nimport camelcase from 'camelcase';\nimport { BitError } from '@teambit/bit-error';\nimport { Logger } from '@teambit/logger';\nimport { TrackerMain } from '@teambit/tracker';\nimport { linkToNodeModulesByIds } from '@teambit/workspace.modules.node-modules-linker';\nimport { PathOsBasedRelative } from '@teambit/legacy/dist/utils/path';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport DataToPersist from '@teambit/legacy/dist/consumer/component/sources/data-to-persist';\nimport { NewComponentHelperMain } from '@teambit/new-component-helper';\nimport { ComponentID } from '@teambit/component-id';\nimport { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';\n\nimport { ComponentTemplate, ComponentFile, ComponentConfig } from './component-template';\nimport { CreateOptions } from './create.cmd';\nimport { OnComponentCreateSlot } from './generator.main.runtime';\n\nexport type GenerateResult = {\n id: ComponentID;\n dir: string;\n files: string[];\n envId: string;\n envSetBy: string;\n packageName: string;\n isApp?: boolean;\n isEnv?: boolean;\n dependencies?: string[];\n installMissingDependencies?: boolean;\n};\n\nexport type OnComponentCreateFn = (generateResults: GenerateResult[]) => Promise<void>;\n\nexport class ComponentGenerator {\n constructor(\n private workspace: Workspace,\n private componentIds: ComponentID[],\n private options: Partial<CreateOptions>,\n private template: ComponentTemplate,\n private envs: EnvsMain,\n private newComponentHelper: NewComponentHelperMain,\n private tracker: TrackerMain,\n private wsConfigFiles: WorkspaceConfigFilesMain,\n private logger: Logger,\n private onComponentCreateSlot: OnComponentCreateSlot,\n private aspectId: string,\n private envId?: ComponentID\n ) {}\n\n async generate(): Promise<GenerateResult[]> {\n const dirsToDeleteIfFailed: string[] = [];\n const generateResults = await pMapSeries(this.componentIds, async (componentId) => {\n try {\n const componentPath = this.newComponentHelper.getNewComponentPath(\n componentId,\n this.options.path,\n this.componentIds.length\n );\n if (fs.existsSync(path.join(this.workspace.path, componentPath))) {\n throw new BitError(`unable to create a component at \"${componentPath}\", this path already exist`);\n }\n if (await this.workspace.hasName(componentId.fullName)) {\n throw new BitError(\n `unable to create a component \"${componentId.fullName}\", a component with the same name already exist`\n );\n }\n dirsToDeleteIfFailed.push(componentPath);\n return await this.generateOneComponent(componentId, componentPath);\n } catch (err: any) {\n await this.deleteGeneratedComponents(dirsToDeleteIfFailed);\n throw err;\n }\n });\n\n await this.workspace.bitMap.write(`create (${this.componentIds.length} components)`);\n\n const ids = generateResults.map((r) => r.id);\n await this.tryLinkToNodeModules(ids);\n await this.runOnComponentCreateHook(generateResults);\n // We are running this after the runOnComponentCreateHook as it require\n // the env to be installed to work properly, and the hook might install\n // the env.\n await this.tryWriteConfigFiles(ids);\n\n return generateResults;\n }\n\n private async tryLinkToNodeModules(ids: ComponentID[]) {\n try {\n await linkToNodeModulesByIds(\n this.workspace,\n ids.map((id) => id)\n );\n } catch (err: any) {\n this.logger.consoleFailure(\n `failed linking the new components to node_modules, please run \"bit link\" manually. error: ${err.message}`\n );\n }\n }\n\n private async runOnComponentCreateHook(generateResults: GenerateResult[]) {\n const fns = this.onComponentCreateSlot.values();\n if (!fns.length) return;\n await Promise.all(fns.map((fn) => fn(generateResults)));\n }\n\n /**\n * The function `tryWriteConfigFiles` attempts to write workspace config files, and if it fails, it logs an error\n * message.\n * @returns If the condition `!shouldWrite` is true, then nothing is being returned. Otherwise, if the `writeConfigFiles`\n * function is successfully executed, nothing is being returned. If an error occurs during the execution of\n * `writeConfigFiles`, an error message is being returned.\n */\n private async tryWriteConfigFiles(ids: ComponentID[]) {\n const shouldWrite = this.wsConfigFiles.isWorkspaceConfigWriteEnabled();\n if (!shouldWrite) return;\n ids.map((id) => this.workspace.clearComponentCache(id));\n const { err } = await this.wsConfigFiles.writeConfigFiles({\n clean: true,\n silent: true,\n dedupe: true,\n throw: false,\n });\n if (err) {\n this.logger.consoleFailure(\n `failed generating workspace config files, please run \"bit ws-config write\" manually. error: ${err.message}`\n );\n }\n }\n\n private async deleteGeneratedComponents(dirs: string[]) {\n await Promise.all(\n dirs.map(async (dir) => {\n const absoluteDir = path.join(this.workspace.path, dir);\n try {\n await fs.remove(absoluteDir);\n } catch (err: any) {\n if (err.code !== 'ENOENT') {\n // if not exist, it's fine\n throw err;\n }\n }\n })\n );\n }\n\n private async generateOneComponent(componentId: ComponentID, componentPath: string): Promise<GenerateResult> {\n const name = componentId.name;\n const namePascalCase = camelcase(name, { pascalCase: true });\n const nameCamelCase = camelcase(name);\n const aspectId = ComponentID.fromString(this.aspectId);\n\n const files = await this.template.generateFiles({\n name,\n namePascalCase,\n nameCamelCase,\n componentId,\n aspectId,\n envId: this.envId,\n });\n const mainFile = files.find((file) => file.isMain);\n await this.writeComponentFiles(componentPath, files);\n const addResults = await this.tracker.track({\n rootDir: componentPath,\n mainFile: mainFile?.relativePath,\n componentName: componentId.fullName,\n defaultScope: this.options.scope,\n });\n const component = await this.workspace.get(componentId);\n const hasEnvConfiguredOriginally = this.envs.hasEnvConfigured(component);\n if (this.template.isApp) {\n await this.workspace.use(componentId.toString());\n }\n const envBeforeConfigChanges = this.envs.getEnv(component);\n let config = this.template.config;\n if (config && typeof config === 'function') {\n const boundConfig = this.template.config?.bind(this.template);\n config = boundConfig({ aspectId: this.aspectId });\n }\n\n const userEnv = this.options.env;\n\n if (!config && this.envId && !userEnv) {\n const isInWorkspace = this.workspace.exists(this.envId);\n config = {\n [isInWorkspace ? this.envId.toStringWithoutVersion() : this.envId.toString()]: {},\n 'teambit.envs/envs': {\n env: this.envId.toStringWithoutVersion(),\n },\n };\n }\n\n const templateEnv = config?.[EnvsAspect.id]?.env;\n\n if (config && templateEnv && hasEnvConfiguredOriginally) {\n // remove the env we got from the template.\n delete config[templateEnv];\n delete config[EnvsAspect.id].env;\n if (Object.keys(config[EnvsAspect.id]).length === 0) delete config[EnvsAspect.id];\n if (Object.keys(config).length === 0) config = undefined;\n }\n\n const configWithEnv = await this.addEnvIfProvidedByFlag(config);\n if (configWithEnv) this.workspace.bitMap.setEntireConfig(component.id, configWithEnv);\n\n const getEnvData = () => {\n const envFromFlag = this.options.env; // env entered by the user when running `bit create --env`\n const envFromTemplate = config?.[EnvsAspect.id]?.env;\n if (envFromFlag) {\n return {\n envId: envFromFlag,\n setBy: '--env flag',\n };\n }\n if (envFromTemplate) {\n return {\n envId: envFromTemplate,\n setBy: 'template',\n };\n }\n return {\n envId: envBeforeConfigChanges.id,\n setBy: hasEnvConfiguredOriginally ? 'workspace variants' : '<default>',\n };\n };\n const { envId, setBy } = getEnvData();\n return {\n id: componentId,\n dir: componentPath,\n files: addResults.files,\n packageName: componentIdToPackageName(component.state._consumer),\n envId,\n envSetBy: setBy,\n isApp: this.template.isApp,\n isEnv: this.template.isEnv,\n dependencies: this.template.dependencies,\n installMissingDependencies: this.template.installMissingDependencies,\n };\n }\n\n private async addEnvIfProvidedByFlag(config?: ComponentConfig): Promise<ComponentConfig | undefined> {\n const userEnv = this.options.env; // env entered by the user when running `bit create --env`\n const templateEnv = config?.[EnvsAspect.id]?.env;\n if (!userEnv || userEnv === templateEnv) {\n return config;\n }\n config = config || {};\n if (templateEnv) {\n // the component template has an env and the user wants a different env.\n delete config[templateEnv];\n }\n await this.tracker.addEnvToConfig(userEnv, config);\n\n return config;\n }\n\n /**\n * writes the generated template files to the default directory set in the workspace config\n */\n private async writeComponentFiles(\n componentPath: string,\n templateFiles: ComponentFile[]\n ): Promise<PathOsBasedRelative[]> {\n const dataToPersist = new DataToPersist();\n const vinylFiles = templateFiles.map((templateFile) => {\n const templateFileVinyl = new Vinyl({\n base: componentPath,\n path: path.join(componentPath, templateFile.relativePath),\n contents: Buffer.from(templateFile.content),\n });\n return AbstractVinyl.fromVinyl(templateFileVinyl);\n });\n const results = vinylFiles.map((v) => v.path);\n dataToPersist.addManyFiles(vinylFiles);\n dataToPersist.addBasePath(this.workspace.path);\n await dataToPersist.persistAllToFS();\n return results;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_vinyl","data","_interopRequireDefault","require","_fsExtra","_pMapSeries","_path","_envs","_camelcase","_bitError","_workspaceModules","_sources","_componentIdToPackageName","_dataToPersist","_componentId","obj","__esModule","default","ComponentGenerator","constructor","workspace","componentIds","options","template","envs","newComponentHelper","tracker","wsConfigFiles","logger","onComponentCreateSlot","aspectId","envId","generate","dirsToDeleteIfFailed","generateResults","pMapSeries","componentId","componentPath","getNewComponentPath","path","length","fs","existsSync","join","BitError","hasName","fullName","push","generateOneComponent","err","deleteGeneratedComponents","bitMap","write","ids","map","r","id","tryLinkToNodeModules","runOnComponentCreateHook","tryWriteConfigFiles","linkToNodeModulesByIds","consoleFailure","message","fns","values","Promise","all","fn","shouldWrite","isWorkspaceConfigWriteEnabled","clearComponentCache","writeConfigFiles","clean","silent","dedupe","throw","dirs","dir","absoluteDir","remove","code","name","namePascalCase","camelcase","pascalCase","nameCamelCase","ComponentID","fromString","files","generateFiles","mainFile","find","file","isMain","writeComponentFiles","addResults","track","rootDir","relativePath","componentName","defaultScope","scope","component","get","hasEnvConfiguredOriginally","hasEnvConfigured","isApp","use","toString","envBeforeConfigChanges","getEnv","config","boundConfig","bind","userEnv","env","isInWorkspace","exists","toStringWithoutVersion","templateEnv","EnvsAspect","Object","keys","undefined","configWithEnv","addEnvIfProvidedByFlag","setEntireConfig","getEnvData","envFromFlag","envFromTemplate","setBy","packageName","componentIdToPackageName","state","_consumer","envSetBy","isEnv","dependencies","installMissingDependencies","addEnvToConfig","templateFiles","dataToPersist","DataToPersist","vinylFiles","templateFile","templateFileVinyl","Vinyl","base","contents","Buffer","from","content","AbstractVinyl","fromVinyl","results","v","addManyFiles","addBasePath","persistAllToFS","exports"],"sources":["component-generator.ts"],"sourcesContent":["import Vinyl from 'vinyl';\nimport fs from 'fs-extra';\nimport pMapSeries from 'p-map-series';\nimport path from 'path';\nimport { Workspace } from '@teambit/workspace';\nimport EnvsAspect, { EnvsMain } from '@teambit/envs';\nimport camelcase from 'camelcase';\nimport { BitError } from '@teambit/bit-error';\nimport { Logger } from '@teambit/logger';\nimport { TrackerMain } from '@teambit/tracker';\nimport { linkToNodeModulesByIds } from '@teambit/workspace.modules.node-modules-linker';\nimport { PathOsBasedRelative } from '@teambit/legacy/dist/utils/path';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport DataToPersist from '@teambit/legacy/dist/consumer/component/sources/data-to-persist';\nimport { NewComponentHelperMain } from '@teambit/new-component-helper';\nimport { ComponentID } from '@teambit/component-id';\nimport { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';\n\nimport { ComponentTemplate, ComponentFile, ComponentConfig } from './component-template';\nimport { CreateOptions } from './create.cmd';\nimport { OnComponentCreateSlot } from './generator.main.runtime';\n\nexport type GenerateResult = {\n id: ComponentID;\n dir: string;\n files: string[];\n envId: string;\n envSetBy: string;\n packageName: string;\n isApp?: boolean;\n isEnv?: boolean;\n dependencies?: string[];\n installMissingDependencies?: boolean;\n};\n\nexport type OnComponentCreateFn = (generateResults: GenerateResult[]) => Promise<void>;\n\nexport class ComponentGenerator {\n constructor(\n private workspace: Workspace,\n private componentIds: ComponentID[],\n private options: Partial<CreateOptions>,\n private template: ComponentTemplate,\n private envs: EnvsMain,\n private newComponentHelper: NewComponentHelperMain,\n private tracker: TrackerMain,\n private wsConfigFiles: WorkspaceConfigFilesMain,\n private logger: Logger,\n private onComponentCreateSlot: OnComponentCreateSlot,\n private aspectId: string,\n private envId?: ComponentID\n ) {}\n\n async generate(): Promise<GenerateResult[]> {\n const dirsToDeleteIfFailed: string[] = [];\n const generateResults = await pMapSeries(this.componentIds, async (componentId) => {\n try {\n const componentPath = this.newComponentHelper.getNewComponentPath(\n componentId,\n this.options.path,\n this.componentIds.length\n );\n if (fs.existsSync(path.join(this.workspace.path, componentPath))) {\n throw new BitError(`unable to create a component at \"${componentPath}\", this path already exist`);\n }\n if (await this.workspace.hasName(componentId.fullName)) {\n throw new BitError(\n `unable to create a component \"${componentId.fullName}\", a component with the same name already exist`\n );\n }\n dirsToDeleteIfFailed.push(componentPath);\n return await this.generateOneComponent(componentId, componentPath);\n } catch (err: any) {\n await this.deleteGeneratedComponents(dirsToDeleteIfFailed);\n throw err;\n }\n });\n\n await this.workspace.bitMap.write(`create (${this.componentIds.length} components)`);\n\n const ids = generateResults.map((r) => r.id);\n await this.tryLinkToNodeModules(ids);\n await this.runOnComponentCreateHook(generateResults);\n // We are running this after the runOnComponentCreateHook as it require\n // the env to be installed to work properly, and the hook might install\n // the env.\n await this.tryWriteConfigFiles(ids);\n\n return generateResults;\n }\n\n private async tryLinkToNodeModules(ids: ComponentID[]) {\n try {\n await linkToNodeModulesByIds(\n this.workspace,\n ids.map((id) => id)\n );\n } catch (err: any) {\n this.logger.consoleFailure(\n `failed linking the new components to node_modules, please run \"bit link\" manually. error: ${err.message}`\n );\n }\n }\n\n private async runOnComponentCreateHook(generateResults: GenerateResult[]) {\n const fns = this.onComponentCreateSlot.values();\n if (!fns.length) return;\n await Promise.all(fns.map((fn) => fn(generateResults)));\n }\n\n /**\n * The function `tryWriteConfigFiles` attempts to write workspace config files, and if it fails, it logs an error\n * message.\n * @returns If the condition `!shouldWrite` is true, then nothing is being returned. Otherwise, if the `writeConfigFiles`\n * function is successfully executed, nothing is being returned. If an error occurs during the execution of\n * `writeConfigFiles`, an error message is being returned.\n */\n private async tryWriteConfigFiles(ids: ComponentID[]) {\n const shouldWrite = this.wsConfigFiles.isWorkspaceConfigWriteEnabled();\n if (!shouldWrite) return;\n ids.map((id) => this.workspace.clearComponentCache(id));\n const { err } = await this.wsConfigFiles.writeConfigFiles({\n clean: true,\n silent: true,\n dedupe: true,\n throw: false,\n });\n if (err) {\n this.logger.consoleFailure(\n `failed generating workspace config files, please run \"bit ws-config write\" manually. error: ${err.message}`\n );\n }\n }\n\n private async deleteGeneratedComponents(dirs: string[]) {\n await Promise.all(\n dirs.map(async (dir) => {\n const absoluteDir = path.join(this.workspace.path, dir);\n try {\n await fs.remove(absoluteDir);\n } catch (err: any) {\n if (err.code !== 'ENOENT') {\n // if not exist, it's fine\n throw err;\n }\n }\n })\n );\n }\n\n private async generateOneComponent(componentId: ComponentID, componentPath: string): Promise<GenerateResult> {\n const name = componentId.name;\n const namePascalCase = camelcase(name, { pascalCase: true });\n const nameCamelCase = camelcase(name);\n const aspectId = ComponentID.fromString(this.aspectId);\n\n const files = await this.template.generateFiles({\n name,\n namePascalCase,\n nameCamelCase,\n componentId,\n aspectId,\n envId: this.envId,\n });\n const mainFile = files.find((file) => file.isMain);\n await this.writeComponentFiles(componentPath, files);\n const addResults = await this.tracker.track({\n rootDir: componentPath,\n mainFile: mainFile?.relativePath,\n componentName: componentId.fullName,\n defaultScope: this.options.scope,\n });\n const component = await this.workspace.get(componentId);\n const hasEnvConfiguredOriginally = this.envs.hasEnvConfigured(component);\n if (this.template.isApp) {\n await this.workspace.use(componentId.toString());\n }\n const envBeforeConfigChanges = this.envs.getEnv(component);\n let config = this.template.config;\n if (config && typeof config === 'function') {\n const boundConfig = this.template.config?.bind(this.template);\n config = boundConfig({ aspectId: this.aspectId });\n }\n\n const userEnv = this.options.env;\n\n if (!config && this.envId && !userEnv) {\n const isInWorkspace = this.workspace.exists(this.envId);\n config = {\n [isInWorkspace ? this.envId.toStringWithoutVersion() : this.envId.toString()]: {},\n 'teambit.envs/envs': {\n env: this.envId.toStringWithoutVersion(),\n },\n };\n }\n\n const templateEnv = config?.[EnvsAspect.id]?.env;\n\n if (config && templateEnv && hasEnvConfiguredOriginally) {\n // remove the env we got from the template.\n delete config[templateEnv];\n delete config[EnvsAspect.id].env;\n if (Object.keys(config[EnvsAspect.id]).length === 0) delete config[EnvsAspect.id];\n if (Object.keys(config).length === 0) config = undefined;\n }\n\n const configWithEnv = await this.addEnvIfProvidedByFlag(config);\n if (configWithEnv) this.workspace.bitMap.setEntireConfig(component.id, configWithEnv);\n\n const getEnvData = () => {\n const envFromFlag = this.options.env; // env entered by the user when running `bit create --env`\n const envFromTemplate = config?.[EnvsAspect.id]?.env;\n if (envFromFlag) {\n return {\n envId: envFromFlag,\n setBy: '--env flag',\n };\n }\n if (envFromTemplate) {\n return {\n envId: envFromTemplate,\n setBy: 'template',\n };\n }\n return {\n envId: envBeforeConfigChanges.id,\n setBy: hasEnvConfiguredOriginally ? 'workspace variants' : '<default>',\n };\n };\n const { envId, setBy } = getEnvData();\n return {\n id: componentId,\n dir: componentPath,\n files: addResults.files,\n packageName: componentIdToPackageName(component.state._consumer),\n envId,\n envSetBy: setBy,\n isApp: this.template.isApp,\n isEnv: this.template.isEnv,\n dependencies: this.template.dependencies,\n installMissingDependencies: this.template.installMissingDependencies,\n };\n }\n\n private async addEnvIfProvidedByFlag(config?: ComponentConfig): Promise<ComponentConfig | undefined> {\n const userEnv = this.options.env; // env entered by the user when running `bit create --env`\n const templateEnv = config?.[EnvsAspect.id]?.env;\n if (!userEnv || userEnv === templateEnv) {\n return config;\n }\n config = config || {};\n if (templateEnv) {\n // the component template has an env and the user wants a different env.\n delete config[templateEnv];\n }\n await this.tracker.addEnvToConfig(userEnv, config);\n\n return config;\n }\n\n /**\n * writes the generated template files to the default directory set in the workspace config\n */\n private async writeComponentFiles(\n componentPath: string,\n templateFiles: ComponentFile[]\n ): Promise<PathOsBasedRelative[]> {\n const dataToPersist = new DataToPersist();\n const vinylFiles = templateFiles.map((templateFile) => {\n const templateFileVinyl = new Vinyl({\n base: componentPath,\n path: path.join(componentPath, templateFile.relativePath),\n contents: Buffer.from(templateFile.content),\n });\n return AbstractVinyl.fromVinyl(templateFileVinyl);\n });\n const results = vinylFiles.map((v) => v.path);\n dataToPersist.addManyFiles(vinylFiles);\n dataToPersist.addBasePath(this.workspace.path);\n await dataToPersist.persistAllToFS();\n return results;\n }\n}\n"],"mappings":"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"}
@@ -49,7 +49,7 @@ export interface BaseComponentTemplateOptions {
49
49
  /**
50
50
  * ComponentContext represents foundational properties for a component context.
51
51
  */
52
- export declare type ComponentContext = BaseComponentTemplateOptions;
52
+ export type ComponentContext = BaseComponentTemplateOptions;
53
53
  export interface ComponentFile {
54
54
  /**
55
55
  * relative path of the file within the component.
@@ -70,7 +70,7 @@ export interface ConfigContext {
70
70
  */
71
71
  aspectId: string;
72
72
  }
73
- export declare type ComponentConfig = {
73
+ export type ComponentConfig = {
74
74
  [aspectName: string]: any;
75
75
  };
76
76
  export interface ComponentTemplateOptions {
@@ -5,7 +5,7 @@ import type { BaseComponentTemplateOptions } from './component-template';
5
5
  /**
6
6
  * CreateOptions combines foundational properties with additional options for creating a component.
7
7
  */
8
- export declare type CreateOptions = BaseComponentTemplateOptions & {
8
+ export type CreateOptions = BaseComponentTemplateOptions & {
9
9
  env?: string;
10
10
  aspect?: string;
11
11
  };
@@ -1,2 +1,2 @@
1
- import React from 'react';
2
- export declare const Logo: () => React.JSX.Element;
1
+ /// <reference types="react" />
2
+ export declare const Logo: () => JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import { Schema } from '@teambit/graphql';
2
2
  import { GeneratorMain } from './generator.main.runtime';
3
3
  import { CreateOptions } from './create.cmd';
4
- export declare type CreateQueryOptions = CreateOptions & {
4
+ export type CreateQueryOptions = CreateOptions & {
5
5
  templateName: string;
6
6
  };
7
7
  export declare function generatorSchema(generator: GeneratorMain): Schema;
@@ -15,31 +15,31 @@ import { CreateOptions } from './create.cmd';
15
15
  import { GenerateResult, OnComponentCreateFn } from './component-generator';
16
16
  import { WorkspaceTemplate } from './workspace-template';
17
17
  import { NewOptions } from './new.cmd';
18
- export declare type ComponentTemplateSlot = SlotRegistry<ComponentTemplate[]>;
19
- export declare type WorkspaceTemplateSlot = SlotRegistry<WorkspaceTemplate[]>;
20
- export declare type OnComponentCreateSlot = SlotRegistry<OnComponentCreateFn>;
21
- export declare type TemplateDescriptor = {
18
+ export type ComponentTemplateSlot = SlotRegistry<ComponentTemplate[]>;
19
+ export type WorkspaceTemplateSlot = SlotRegistry<WorkspaceTemplate[]>;
20
+ export type OnComponentCreateSlot = SlotRegistry<OnComponentCreateFn>;
21
+ export type TemplateDescriptor = {
22
22
  aspectId: string;
23
23
  titlePrefix?: string;
24
24
  name: string;
25
25
  description?: string;
26
26
  hidden?: boolean;
27
27
  };
28
- declare type TemplateWithId = {
28
+ type TemplateWithId = {
29
29
  id: string;
30
30
  envName?: string;
31
31
  };
32
- declare type WorkspaceTemplateWithId = TemplateWithId & {
32
+ type WorkspaceTemplateWithId = TemplateWithId & {
33
33
  template: WorkspaceTemplate;
34
34
  };
35
- declare type ComponentTemplateWithId = TemplateWithId & {
35
+ type ComponentTemplateWithId = TemplateWithId & {
36
36
  template: ComponentTemplate;
37
37
  };
38
- export declare type GenerateWorkspaceTemplateResult = {
38
+ export type GenerateWorkspaceTemplateResult = {
39
39
  workspacePath: string;
40
40
  appName?: string;
41
41
  };
42
- export declare type GeneratorConfig = {
42
+ export type GeneratorConfig = {
43
43
  /**
44
44
  * array of aspects to include in the list of templates.
45
45
  */
@@ -116,7 +116,7 @@ export declare class GeneratorMain {
116
116
  aspect?: Component;
117
117
  }>;
118
118
  findTemplateInOtherWorkspace(workspacePath: string, name: string, aspectId?: string): Promise<{
119
- workspaceTemplate: WorkspaceTemplate | undefined;
119
+ workspaceTemplate: WorkspaceTemplate;
120
120
  aspect: Component;
121
121
  }>;
122
122
  /**
@@ -415,7 +415,7 @@ class GeneratorMain {
415
415
  if (name) return name === tpl.name;
416
416
  throw new Error(`searchRegisteredWorkspaceTemplate expects to get "name" or "aspectId"`);
417
417
  });
418
- return found === null || found === void 0 ? void 0 : found.template;
418
+ return found?.template;
419
419
  }
420
420
  async generateComponentTemplate(componentNames, templateName, options) {
421
421
  if (!this.workspace) throw new (_workspace().OutsideWorkspaceError)();
@@ -553,7 +553,7 @@ class GeneratorMain {
553
553
  remoteEnvsAspect = globals.remoteEnvsAspect;
554
554
  fullAspectId = globals.fullAspectId;
555
555
  }
556
- const allIds = configEnvs === null || configEnvs === void 0 ? void 0 : configEnvs.concat(ids).concat([aspectId, fullAspectId]).filter(Boolean);
556
+ const allIds = configEnvs?.concat(ids).concat([aspectId, fullAspectId]).filter(Boolean);
557
557
  const envs = await this.loadEnvs(allIds, remoteEnvsAspect);
558
558
  const templates = envs.flatMap(env => {
559
559
  if (!env.env.getGeneratorTemplates) return [];
@@ -1 +1 @@
1
- {"version":3,"names":["_graphql","data","require","_cli","_workspace","_interopRequireWildcard","_envs","_config","_interopRequireDefault","_workspaceConfigFiles","_component","_bit","_harmony","_git","_bitError","_aspectLoader","_tracker","_newComponentHelper","_lodash","_logger","_generator","_create","_templates","_generator2","_componentGenerator","_workspaceGenerator","_new","_templates2","_basic","_starter","_generator3","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","value","_toPropertyKey","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","GeneratorMain","constructor","componentTemplateSlot","workspaceTemplateSlot","onComponentCreateSlot","config","workspace","envs","aspectLoader","newComponentHelper","componentAspect","tracker","logger","git","wsConfigFiles","id","template","shouldBeHidden","hidden","hideCoreTemplates","isCoreAspect","aspectId","name","description","registerComponentTemplate","templates","register","registerWorkspaceTemplate","registerOnComponentCreate","fn","listTemplates","aspect","isRunningInsideWorkspace","getAllComponentTemplatesDescriptorsFlattened","getAllWorkspaceTemplatesDescriptorFlattened","listComponentTemplates","opts","Boolean","getComponentTemplateByAspect","getComponentTemplate","fromEnv","listEnvComponentTemplates","found","findTemplateByAspectIdAndName","getAllComponentTemplatesFlattened","find","idWithoutVersion","split","getGlobalGeneratorEnvs","globalScopeHarmony","components","loadAspectsFromGlobalScope","remoteGenerator","GeneratorAspect","remoteEnvsAspect","EnvsAspect","fullAspectId","toString","restoreGlobals","findWorkspaceTemplateInGlobalScope","fromGlobal","searchRegisteredWorkspaceTemplate","workspaceTemplate","findTemplateInOtherWorkspace","workspacePath","BitError","harmony","loadBit","WorkspaceAspect","err","Error","aspectComponentId","resolveComponentId","loadAspects","aspectComponent","aspectFullId","generator","getWorkspaceTemplate","registeredTemplate","listEnvWorkspaceTemplates","getAllWorkspaceTemplatesFlattened","tpl","generateComponentTemplate","componentNames","templateName","options","OutsideWorkspaceError","namespace","componentConfigLoadingRegistry","ComponentConfig","templateWithId","componentIds","map","componentName","getNewComponentId","scope","envId","getEnvIdFromTemplateWithId","componentGenerator","ComponentGenerator","generate","envIdFromTemplate","env","parsedFromTemplate","ComponentID","tryFromString","resolvedId","resolveEnvIdWithPotentialVersionForConfig","fromString","envName","Promise","resolve","undefined","generateWorkspaceTemplate","workspaceName","loadFrom","workspaceGenerator","WorkspaceGenerator","appName","envTemplates","listEnvComponentTemplateDescriptors","filtered","flattened","getTemplateDescriptor","templatesByAspects","toArray","flatMap","componentTemplates","workspaceTemplates","loadEnvs","getGeneratorStarters","envStarters","starter","componentId","compact","ids","envTemplate","toStringWithoutVersion","titlePrefix","getConfiguredEnvs","configEnvs","includes","globals","allIds","concat","getGeneratorTemplates","tpls","host","getHost","envsAspect","potentialEnvs","getEnvDefinition","aspectLoaded","aspects","provider","cli","graphql","loggerMain","createLogger","commands","CreateCmd","TemplatesCmd","NewCmd","generatorSchema","registerPlugins","StarterPlugin","registerService","GeneratorService","componentGeneratorTemplate","componentGeneratorTemplateStandalone","starterTemplate","starterTemplateStandalone","BasicWorkspaceStarter","exports","Slot","withType","CLIAspect","GraphqlAspect","AspectLoaderAspect","NewComponentHelperAspect","ComponentAspect","TrackerAspect","LoggerAspect","GitAspect","WorkspaceConfigFilesAspect","MainRuntime","addRuntime"],"sources":["generator.main.runtime.ts"],"sourcesContent":["import { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport WorkspaceAspect, { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { EnvDefinition, EnvsAspect, EnvsMain } from '@teambit/envs';\nimport ComponentConfig from '@teambit/legacy/dist/consumer/config';\nimport WorkspaceConfigFilesAspect, { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';\n\nimport ComponentAspect, { ComponentID } from '@teambit/component';\nimport type { ComponentMain, Component } from '@teambit/component';\n\nimport { isCoreAspect, loadBit, restoreGlobals } from '@teambit/bit';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport GitAspect, { GitMain } from '@teambit/git';\nimport { BitError } from '@teambit/bit-error';\nimport AspectLoaderAspect, { AspectLoaderMain } from '@teambit/aspect-loader';\nimport TrackerAspect, { TrackerMain } from '@teambit/tracker';\nimport NewComponentHelperAspect, { NewComponentHelperMain } from '@teambit/new-component-helper';\nimport { compact } from 'lodash';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\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, OnComponentCreateFn } from './component-generator';\nimport { WorkspaceGenerator } from './workspace-generator';\nimport { WorkspaceTemplate } from './workspace-template';\nimport { NewCmd, NewOptions } from './new.cmd';\nimport {\n componentGeneratorTemplate,\n componentGeneratorTemplateStandalone,\n starterTemplate,\n starterTemplateStandalone,\n} from './templates';\nimport { BasicWorkspaceStarter } from './templates/basic';\nimport { StarterPlugin } from './starter.plugin';\nimport { GeneratorService } from './generator.service';\n\nexport type ComponentTemplateSlot = SlotRegistry<ComponentTemplate[]>;\nexport type WorkspaceTemplateSlot = SlotRegistry<WorkspaceTemplate[]>;\nexport type OnComponentCreateSlot = SlotRegistry<OnComponentCreateFn>;\n\nexport type TemplateDescriptor = {\n aspectId: string;\n titlePrefix?: string;\n name: string;\n description?: string;\n hidden?: boolean;\n};\n\ntype TemplateWithId = { id: string; envName?: string };\ntype WorkspaceTemplateWithId = TemplateWithId & { template: WorkspaceTemplate };\ntype ComponentTemplateWithId = TemplateWithId & { template: ComponentTemplate };\ntype AnyTemplateWithId = TemplateWithId & { template: ComponentTemplate | WorkspaceTemplate };\n\nexport type GenerateWorkspaceTemplateResult = { workspacePath: string; appName?: string };\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 /**\n * default envs.\n */\n envs?: string[];\n};\n\nexport class GeneratorMain {\n private aspectLoaded = false;\n constructor(\n private componentTemplateSlot: ComponentTemplateSlot,\n private workspaceTemplateSlot: WorkspaceTemplateSlot,\n private onComponentCreateSlot: OnComponentCreateSlot,\n private config: GeneratorConfig,\n private workspace: Workspace,\n private envs: EnvsMain,\n private aspectLoader: AspectLoaderMain,\n private newComponentHelper: NewComponentHelperMain,\n private componentAspect: ComponentMain,\n private tracker: TrackerMain,\n private logger: Logger,\n private git: GitMain,\n private wsConfigFiles: WorkspaceConfigFilesMain\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 workspace starter.\n */\n registerWorkspaceTemplate(templates: WorkspaceTemplate[]) {\n this.workspaceTemplateSlot.register(templates);\n return this;\n }\n\n registerOnComponentCreate(fn: OnComponentCreateFn) {\n this.onComponentCreateSlot.register(fn);\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({ aspect }: { aspect?: string } = {}): Promise<TemplateDescriptor[]> {\n if (this.isRunningInsideWorkspace()) {\n return this.getAllComponentTemplatesDescriptorsFlattened(aspect);\n }\n return this.getAllWorkspaceTemplatesDescriptorFlattened(aspect);\n }\n\n private getTemplateDescriptor = ({ id, template }: AnyTemplateWithId): TemplateDescriptor => {\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\n /**\n * @deprecated use this.listTemplates()\n */\n async listComponentTemplates(opts: { aspect?: string }): Promise<TemplateDescriptor[]> {\n return this.listTemplates(opts);\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 async getComponentTemplate(name: string, aspectId?: string): Promise<ComponentTemplateWithId | undefined> {\n const fromEnv = await this.listEnvComponentTemplates([], aspectId);\n if (fromEnv && fromEnv.length) {\n const found = this.findTemplateByAspectIdAndName<ComponentTemplateWithId>(aspectId, name, fromEnv);\n if (found) return found;\n }\n // fallback to aspect id not from env if provided\n const templates = await this.getAllComponentTemplatesFlattened();\n const found = this.findTemplateByAspectIdAndName<ComponentTemplateWithId>(aspectId, name, templates);\n return found;\n }\n\n private findTemplateByAspectIdAndName<T>(\n aspectId: string | undefined,\n name: string,\n templates: Array<T>\n ): T | undefined {\n // @ts-ignore (should set T to be extends ComponentTemplateWithId or WorkspaceTemplateWithId)\n const found = templates.find(({ id, template }) => {\n // When doing something like:\n // bit create react-env my-env --aspect teambit.react/react-env\n // we will get the aspectId without version\n // but the env might be loaded from the global scope then it will be with a version\n // so it won't found if we don't look for it like this\n const idWithoutVersion = id.split('@')[0];\n if (aspectId && id !== aspectId && idWithoutVersion !== aspectId) return false;\n return template.name === name;\n });\n return found;\n }\n\n /**\n * Get the generator aspect and the envs aspect from an harmony instance of the global scope\n */\n private async getGlobalGeneratorEnvs(\n aspectId: string\n ): Promise<{ remoteGenerator: GeneratorMain; fullAspectId: string; remoteEnvsAspect: EnvsMain; aspect: any }> {\n const { globalScopeHarmony, components } = await this.aspectLoader.loadAspectsFromGlobalScope([aspectId]);\n const remoteGenerator = globalScopeHarmony.get<GeneratorMain>(GeneratorAspect.id);\n const remoteEnvsAspect = globalScopeHarmony.get<EnvsMain>(EnvsAspect.id);\n const aspect = components[0];\n const fullAspectId = aspect.id.toString();\n restoreGlobals();\n\n return { remoteGenerator, fullAspectId, remoteEnvsAspect, aspect };\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 findWorkspaceTemplateInGlobalScope(\n aspectId: string,\n name?: string\n ): Promise<{ workspaceTemplate?: WorkspaceTemplate; aspect?: Component }> {\n const { remoteGenerator, fullAspectId, remoteEnvsAspect, aspect } = await this.getGlobalGeneratorEnvs(aspectId);\n const fromGlobal = await remoteGenerator.searchRegisteredWorkspaceTemplate.call(\n remoteGenerator,\n name,\n fullAspectId,\n remoteEnvsAspect\n );\n return { workspaceTemplate: fromGlobal, aspect };\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 aspectComponent = await workspace.get(aspectComponentId);\n const aspectFullId = aspectComponentId.toString();\n const generator = harmony.get<GeneratorMain>(GeneratorAspect.id);\n const workspaceTemplate = await generator.searchRegisteredWorkspaceTemplate(name, aspectFullId);\n return { workspaceTemplate, aspect: aspectComponent };\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(\n `template \"${name}\" was not found, please use --aspect flag to load from an env i.e --aspect teambit.react/react-env\\n Learn more about component templates here: https://bit.dev/reference/generator/create-generator`\n );\n }\n\n const { workspaceTemplate, aspect } = await this.findWorkspaceTemplateInGlobalScope(aspectId, name);\n if (workspaceTemplate) {\n return { workspaceTemplate, aspect };\n }\n throw new BitError(\n `template \"${name}\" was not found, please use --aspect flag to load from an env i.e --aspect teambit.react/react-env\\n Learn more about component templates here: https://bit.dev/reference/generator/create-generator`\n );\n }\n\n async searchRegisteredWorkspaceTemplate(\n name?: string,\n aspectId?: string,\n remoteEnvsAspect?: EnvsMain\n ): Promise<WorkspaceTemplate | undefined> {\n let fromEnv;\n\n if (aspectId) {\n fromEnv = await this.listEnvWorkspaceTemplates(aspectId, remoteEnvsAspect);\n }\n const templates = fromEnv && fromEnv.length ? fromEnv : this.getAllWorkspaceTemplatesFlattened();\n const found = templates.find(({ id, template: tpl }) => {\n if (aspectId && name) return aspectId === id && name === tpl.name;\n if (aspectId) return aspectId === id;\n if (name) return name === tpl.name;\n throw new Error(`searchRegisteredWorkspaceTemplate expects to get \"name\" or \"aspectId\"`);\n });\n\n return found?.template;\n }\n\n async generateComponentTemplate(\n componentNames: string[],\n templateName: string,\n options: Partial<CreateOptions>\n ): Promise<GenerateResult[]> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n await this.loadAspects();\n const { namespace, aspect } = options;\n\n const componentConfigLoadingRegistry = ComponentConfig.componentConfigLoadingRegistry;\n\n const templateWithId = await this.getComponentTemplate(templateName, aspect);\n\n ComponentConfig.componentConfigLoadingRegistry = componentConfigLoadingRegistry;\n\n if (!templateWithId) throw new BitError(`template \"${templateName}\" was not found`);\n\n const componentIds = componentNames.map((componentName) =>\n this.newComponentHelper.getNewComponentId(componentName, namespace, options.scope)\n );\n\n const envId = await this.getEnvIdFromTemplateWithId(templateWithId);\n\n const componentGenerator = new ComponentGenerator(\n this.workspace,\n componentIds,\n options,\n templateWithId.template,\n this.envs,\n this.newComponentHelper,\n this.tracker,\n this.wsConfigFiles,\n this.logger,\n this.onComponentCreateSlot,\n templateWithId.id,\n envId\n );\n return componentGenerator.generate();\n }\n\n private async getEnvIdFromTemplateWithId(templateWithId: ComponentTemplateWithId): Promise<ComponentID | undefined> {\n const envIdFromTemplate = templateWithId.template.env;\n if (envIdFromTemplate) {\n const parsedFromTemplate = ComponentID.tryFromString(envIdFromTemplate);\n if (!parsedFromTemplate) {\n throw new BitError(\n `Error: unable to parse envId from template. template name: ${templateWithId.template.name}, envId: ${envIdFromTemplate}`\n );\n }\n const resolvedId = await this.workspace.resolveEnvIdWithPotentialVersionForConfig(parsedFromTemplate);\n return ComponentID.fromString(resolvedId);\n }\n if (templateWithId.envName) {\n return ComponentID.fromString(templateWithId.id);\n }\n return Promise.resolve(undefined);\n }\n\n async generateWorkspaceTemplate(\n workspaceName: string,\n templateName: string,\n options: NewOptions & { aspect?: string; currentDir?: boolean }\n ): Promise<GenerateWorkspaceTemplateResult> {\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 const { workspaceTemplate, aspect } = loadFrom\n ? await this.findTemplateInOtherWorkspace(loadFrom, templateName, aspectId)\n : await this.getWorkspaceTemplate(templateName, aspectId);\n\n if (!workspaceTemplate) throw new BitError(`template \"${templateName}\" was not found`);\n const workspaceGenerator = new WorkspaceGenerator(workspaceName, options, workspaceTemplate, aspect);\n const workspacePath = await workspaceGenerator.generate();\n return { workspacePath, appName: workspaceTemplate.appName };\n }\n\n private async getAllComponentTemplatesDescriptorsFlattened(aspectId?: string): Promise<Array<TemplateDescriptor>> {\n const envTemplates = await this.listEnvComponentTemplateDescriptors([], aspectId);\n if (envTemplates && envTemplates.length) {\n if (!aspectId) return envTemplates;\n const filtered = envTemplates.filter((template) => template.aspectId === aspectId);\n if (filtered.length) return filtered;\n }\n\n const flattened = this.getAllComponentTemplatesFlattened();\n const filtered = aspectId ? flattened.filter((template) => template.id === aspectId) : flattened;\n return filtered.map((template) => this.getTemplateDescriptor(template));\n }\n\n private getAllComponentTemplatesFlattened(): Array<{ id: string; template: ComponentTemplate }> {\n const templatesByAspects = this.componentTemplateSlot.toArray();\n const flattened = templatesByAspects.flatMap(([id, componentTemplates]) => {\n return componentTemplates.map((template) => ({\n id,\n template,\n }));\n });\n return flattened;\n }\n\n private async getAllWorkspaceTemplatesDescriptorFlattened(aspectId?: string): Promise<Array<TemplateDescriptor>> {\n let envTemplates;\n if (aspectId) {\n envTemplates = await this.listEnvWorkspaceTemplates(aspectId);\n }\n\n const templates = envTemplates && envTemplates.length ? envTemplates : this.getAllWorkspaceTemplatesFlattened();\n return templates.map((template) => this.getTemplateDescriptor(template));\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 /**\n * list all starter templates registered by an env.\n */\n async listEnvWorkspaceTemplates(envId: string, remoteEnvsAspect?: EnvsMain): Promise<Array<WorkspaceTemplateWithId>> {\n const envs = await this.loadEnvs([envId], remoteEnvsAspect);\n const workspaceTemplates = envs.flatMap((env) => {\n if (!env.env.getGeneratorStarters) return undefined;\n const envStarters = env.env.getGeneratorStarters();\n return envStarters.map((starter) => {\n const componentId = ComponentID.fromString(env.id);\n return {\n id: componentId.toString(),\n envName: env.name,\n template: starter,\n };\n });\n });\n\n return compact(workspaceTemplates);\n }\n\n /**\n * list all component templates registered by an env.\n */\n async listEnvComponentTemplateDescriptors(ids: string[] = [], aspectId?: string): Promise<TemplateDescriptor[]> {\n const envTemplates = await this.listEnvComponentTemplates(ids, aspectId);\n const templates: TemplateDescriptor[] = envTemplates.map((envTemplate) => {\n const componentId = ComponentID.fromString(envTemplate.id);\n return {\n aspectId: componentId.toStringWithoutVersion(),\n titlePrefix: envTemplate.envName,\n ...envTemplate.template,\n };\n });\n\n return templates;\n }\n\n getConfiguredEnvs(): string[] {\n return this.config.envs ?? [];\n }\n\n async listEnvComponentTemplates(ids: string[] = [], aspectId?: string): Promise<Array<ComponentTemplateWithId>> {\n const configEnvs = this.config.envs || [];\n let remoteEnvsAspect;\n let fullAspectId;\n if (aspectId && !configEnvs.includes(aspectId)) {\n const globals = await this.getGlobalGeneratorEnvs(aspectId);\n remoteEnvsAspect = globals.remoteEnvsAspect;\n fullAspectId = globals.fullAspectId;\n }\n const allIds = configEnvs?.concat(ids).concat([aspectId, fullAspectId]).filter(Boolean);\n const envs = await this.loadEnvs(allIds, remoteEnvsAspect);\n const templates = envs.flatMap((env) => {\n if (!env.env.getGeneratorTemplates) return [];\n const tpls = env.env.getGeneratorTemplates() || [];\n const componentId = ComponentID.fromString(env.id);\n return tpls.map((template) => {\n return {\n id: componentId.toString(),\n envName: env.name,\n template,\n };\n });\n });\n\n return templates;\n }\n\n async loadEnvs(ids: string[] = this.config.envs || [], remoteEnvsAspect?: EnvsMain): Promise<EnvDefinition[]> {\n // In case we have remoteEnvsAspect it means that we are running from the global scope\n // in that case the aspect / env were already loaded before to the global scope harmony instance\n // so no reason to load it here\n if (!remoteEnvsAspect) {\n const host = this.componentAspect.getHost();\n if (!host) return [];\n await host.loadAspects(ids);\n }\n\n const envsAspect = remoteEnvsAspect || this.envs;\n\n const potentialEnvs = ids.map((id) => {\n const componentId = ComponentID.fromString(id);\n return envsAspect.getEnvDefinition(componentId);\n });\n\n return compact(potentialEnvs);\n }\n\n async loadAspects() {\n if (this.aspectLoaded) return;\n await this.workspace.loadAspects(this.config.aspects);\n this.aspectLoaded = true;\n }\n\n static slots = [\n Slot.withType<ComponentTemplate[]>(),\n Slot.withType<WorkspaceTemplate[]>(),\n Slot.withType<OnComponentCreateFn>(),\n ];\n\n static dependencies = [\n WorkspaceAspect,\n CLIAspect,\n GraphqlAspect,\n EnvsAspect,\n AspectLoaderAspect,\n NewComponentHelperAspect,\n ComponentAspect,\n TrackerAspect,\n LoggerAspect,\n GitAspect,\n WorkspaceConfigFilesAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider(\n [\n workspace,\n cli,\n graphql,\n envs,\n aspectLoader,\n newComponentHelper,\n componentAspect,\n tracker,\n loggerMain,\n git,\n wsConfigFiles,\n ]: [\n Workspace,\n CLIMain,\n GraphqlMain,\n EnvsMain,\n AspectLoaderMain,\n NewComponentHelperMain,\n ComponentMain,\n TrackerMain,\n LoggerMain,\n GitMain,\n WorkspaceConfigFilesMain\n ],\n config: GeneratorConfig,\n [componentTemplateSlot, workspaceTemplateSlot, onComponentCreateSlot]: [\n ComponentTemplateSlot,\n WorkspaceTemplateSlot,\n OnComponentCreateSlot\n ]\n ) {\n const logger = loggerMain.createLogger(GeneratorAspect.id);\n const generator = new GeneratorMain(\n componentTemplateSlot,\n workspaceTemplateSlot,\n onComponentCreateSlot,\n config,\n workspace,\n envs,\n aspectLoader,\n newComponentHelper,\n componentAspect,\n tracker,\n logger,\n git,\n wsConfigFiles\n );\n const commands = [new CreateCmd(generator), new TemplatesCmd(generator), new NewCmd(generator)];\n cli.register(...commands);\n graphql.register(generatorSchema(generator));\n aspectLoader.registerPlugins([new StarterPlugin(generator)]);\n envs.registerService(new GeneratorService());\n\n if (generator)\n generator.registerComponentTemplate([\n componentGeneratorTemplate,\n componentGeneratorTemplateStandalone,\n starterTemplate,\n starterTemplateStandalone,\n ]);\n generator.registerWorkspaceTemplate([BasicWorkspaceStarter]);\n\n return generator;\n }\n}\n\nGeneratorAspect.addRuntime(GeneratorMain);\n"],"mappings":";;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,KAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,IAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,WAAA;EAAA,MAAAH,IAAA,GAAAI,uBAAA,CAAAH,OAAA;EAAAE,UAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,MAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,KAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,QAAA;EAAA,MAAAN,IAAA,GAAAO,sBAAA,CAAAN,OAAA;EAAAK,OAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,sBAAA;EAAA,MAAAR,IAAA,GAAAO,sBAAA,CAAAN,OAAA;EAAAO,qBAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAS,WAAA;EAAA,MAAAT,IAAA,GAAAI,uBAAA,CAAAH,OAAA;EAAAQ,UAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAU,KAAA;EAAA,MAAAV,IAAA,GAAAC,OAAA;EAAAS,IAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAW,SAAA;EAAA,MAAAX,IAAA,GAAAC,OAAA;EAAAU,QAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAY,KAAA;EAAA,MAAAZ,IAAA,GAAAO,sBAAA,CAAAN,OAAA;EAAAW,IAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAa,UAAA;EAAA,MAAAb,IAAA,GAAAC,OAAA;EAAAY,SAAA,YAAAA,CAAA;IAAA,OAAAb,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAc,cAAA;EAAA,MAAAd,IAAA,GAAAO,sBAAA,CAAAN,OAAA;EAAAa,aAAA,YAAAA,CAAA;IAAA,OAAAd,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAe,SAAA;EAAA,MAAAf,IAAA,GAAAO,sBAAA,CAAAN,OAAA;EAAAc,QAAA,YAAAA,CAAA;IAAA,OAAAf,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAgB,oBAAA;EAAA,MAAAhB,IAAA,GAAAO,sBAAA,CAAAN,OAAA;EAAAe,mBAAA,YAAAA,CAAA;IAAA,OAAAhB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAiB,QAAA;EAAA,MAAAjB,IAAA,GAAAC,OAAA;EAAAgB,OAAA,YAAAA,CAAA;IAAA,OAAAjB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAkB,QAAA;EAAA,MAAAlB,IAAA,GAAAC,OAAA;EAAAiB,OAAA,YAAAA,CAAA;IAAA,OAAAlB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAmB,WAAA;EAAA,MAAAnB,IAAA,GAAAC,OAAA;EAAAkB,UAAA,YAAAA,CAAA;IAAA,OAAAnB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAoB,QAAA;EAAA,MAAApB,IAAA,GAAAC,OAAA;EAAAmB,OAAA,YAAAA,CAAA;IAAA,OAAApB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAqB,WAAA;EAAA,MAAArB,IAAA,GAAAC,OAAA;EAAAoB,UAAA,YAAAA,CAAA;IAAA,OAAArB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAsB,YAAA;EAAA,MAAAtB,IAAA,GAAAC,OAAA;EAAAqB,WAAA,YAAAA,CAAA;IAAA,OAAAtB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAuB,oBAAA;EAAA,MAAAvB,IAAA,GAAAC,OAAA;EAAAsB,mBAAA,YAAAA,CAAA;IAAA,OAAAvB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAwB,oBAAA;EAAA,MAAAxB,IAAA,GAAAC,OAAA;EAAAuB,mBAAA,YAAAA,CAAA;IAAA,OAAAxB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAyB,KAAA;EAAA,MAAAzB,IAAA,GAAAC,OAAA;EAAAwB,IAAA,YAAAA,CAAA;IAAA,OAAAzB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAA0B,YAAA;EAAA,MAAA1B,IAAA,GAAAC,OAAA;EAAAyB,WAAA,YAAAA,CAAA;IAAA,OAAA1B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAMA,SAAA2B,OAAA;EAAA,MAAA3B,IAAA,GAAAC,OAAA;EAAA0B,MAAA,YAAAA,CAAA;IAAA,OAAA3B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAA4B,SAAA;EAAA,MAAA5B,IAAA,GAAAC,OAAA;EAAA2B,QAAA,YAAAA,CAAA;IAAA,OAAA5B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAA6B,YAAA;EAAA,MAAA7B,IAAA,GAAAC,OAAA;EAAA4B,WAAA,YAAAA,CAAA;IAAA,OAAA7B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAuD,SAAAO,uBAAAuB,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAA9B,wBAAA8B,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAH,UAAA,SAAAG,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAF,OAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAJ,CAAA,UAAAG,CAAA,CAAAE,GAAA,CAAAL,CAAA,OAAAM,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAZ,CAAA,oBAAAY,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAY,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAY,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAZ,CAAA,CAAAY,CAAA,YAAAN,CAAA,CAAAR,OAAA,GAAAE,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAc,GAAA,CAAAjB,CAAA,EAAAM,CAAA,GAAAA,CAAA;AAAA,SAAAY,QAAAlB,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAAM,MAAA,CAAAU,IAAA,CAAAnB,CAAA,OAAAS,MAAA,CAAAW,qBAAA,QAAAC,CAAA,GAAAZ,MAAA,CAAAW,qBAAA,CAAApB,CAAA,GAAAE,CAAA,KAAAmB,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAApB,CAAA,WAAAO,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAE,CAAA,EAAAqB,UAAA,OAAApB,CAAA,CAAAqB,IAAA,CAAAC,KAAA,CAAAtB,CAAA,EAAAkB,CAAA,YAAAlB,CAAA;AAAA,SAAAuB,cAAA1B,CAAA,aAAAE,CAAA,MAAAA,CAAA,GAAAyB,SAAA,CAAAC,MAAA,EAAA1B,CAAA,UAAAC,CAAA,WAAAwB,SAAA,CAAAzB,CAAA,IAAAyB,SAAA,CAAAzB,CAAA,QAAAA,CAAA,OAAAgB,OAAA,CAAAT,MAAA,CAAAN,CAAA,OAAA0B,OAAA,WAAA3B,CAAA,IAAA4B,eAAA,CAAA9B,CAAA,EAAAE,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAO,MAAA,CAAAsB,yBAAA,GAAAtB,MAAA,CAAAuB,gBAAA,CAAAhC,CAAA,EAAAS,MAAA,CAAAsB,yBAAA,CAAA5B,CAAA,KAAAe,OAAA,CAAAT,MAAA,CAAAN,CAAA,GAAA0B,OAAA,WAAA3B,CAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAV,CAAA,EAAAE,CAAA,EAAAO,MAAA,CAAAE,wBAAA,CAAAR,CAAA,EAAAD,CAAA,iBAAAF,CAAA;AAAA,SAAA8B,gBAAAlC,GAAA,EAAAqC,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAArC,GAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAd,GAAA,EAAAqC,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAX,UAAA,QAAAa,YAAA,QAAAC,QAAA,oBAAAzC,GAAA,CAAAqC,GAAA,IAAAC,KAAA,WAAAtC,GAAA;AAAA,SAAAuC,eAAAhC,CAAA,QAAAa,CAAA,GAAAsB,YAAA,CAAAnC,CAAA,uCAAAa,CAAA,GAAAA,CAAA,GAAAuB,MAAA,CAAAvB,CAAA;AAAA,SAAAsB,aAAAnC,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAH,CAAA,GAAAG,CAAA,CAAAqC,MAAA,CAAAC,WAAA,kBAAAzC,CAAA,QAAAgB,CAAA,GAAAhB,CAAA,CAAAe,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAc,CAAA,SAAAA,CAAA,YAAA0B,SAAA,yEAAAxC,CAAA,GAAAqC,MAAA,GAAAI,MAAA,EAAAxC,CAAA;AAuChD,MAAMyC,aAAa,CAAC;EAEzBC,WAAWA,CACDC,qBAA4C,EAC5CC,qBAA4C,EAC5CC,qBAA4C,EAC5CC,MAAuB,EACvBC,SAAoB,EACpBC,IAAc,EACdC,YAA8B,EAC9BC,kBAA0C,EAC1CC,eAA8B,EAC9BC,OAAoB,EACpBC,MAAc,EACdC,GAAY,EACZC,aAAuC,EAC/C;IAAA,KAbQZ,qBAA4C,GAA5CA,qBAA4C;IAAA,KAC5CC,qBAA4C,GAA5CA,qBAA4C;IAAA,KAC5CC,qBAA4C,GAA5CA,qBAA4C;IAAA,KAC5CC,MAAuB,GAAvBA,MAAuB;IAAA,KACvBC,SAAoB,GAApBA,SAAoB;IAAA,KACpBC,IAAc,GAAdA,IAAc;IAAA,KACdC,YAA8B,GAA9BA,YAA8B;IAAA,KAC9BC,kBAA0C,GAA1CA,kBAA0C;IAAA,KAC1CC,eAA8B,GAA9BA,eAA8B;IAAA,KAC9BC,OAAoB,GAApBA,OAAoB;IAAA,KACpBC,MAAc,GAAdA,MAAc;IAAA,KACdC,GAAY,GAAZA,GAAY;IAAA,KACZC,aAAuC,GAAvCA,aAAuC;IAAA5B,eAAA,uBAd1B,KAAK;IAAAA,eAAA,gCAiDI,CAAC;MAAE6B,EAAE;MAAEC;IAA4B,CAAC,KAAyB;MAC3F,MAAMC,cAAc,GAAGA,CAAA,KAAM;QAC3B,IAAID,QAAQ,CAACE,MAAM,EAAE,OAAO,IAAI;QAChC,IAAI,IAAI,CAACb,MAAM,CAACc,iBAAiB,IAAI,IAAAC,mBAAY,EAACL,EAAE,CAAC,EAAE,OAAO,IAAI;QAClE,OAAO,KAAK;MACd,CAAC;MACD,OAAO;QACLM,QAAQ,EAAEN,EAAE;QACZO,IAAI,EAAEN,QAAQ,CAACM,IAAI;QACnBC,WAAW,EAAEP,QAAQ,CAACO,WAAW;QACjCL,MAAM,EAAED,cAAc,CAAC;MACzB,CAAC;IACH,CAAC;EA9CE;;EAEH;AACF;AACA;EACEO,yBAAyBA,CAACC,SAA8B,EAAE;IACxD,IAAI,CAACvB,qBAAqB,CAACwB,QAAQ,CAACD,SAAS,CAAC;IAC9C,OAAO,IAAI;EACb;;EAEA;AACF;AACA;EACEE,yBAAyBA,CAACF,SAA8B,EAAE;IACxD,IAAI,CAACtB,qBAAqB,CAACuB,QAAQ,CAACD,SAAS,CAAC;IAC9C,OAAO,IAAI;EACb;EAEAG,yBAAyBA,CAACC,EAAuB,EAAE;IACjD,IAAI,CAACzB,qBAAqB,CAACsB,QAAQ,CAACG,EAAE,CAAC;IACvC,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;EACE,MAAMC,aAAaA,CAAC;IAAEC;EAA4B,CAAC,GAAG,CAAC,CAAC,EAAiC;IACvF,IAAI,IAAI,CAACC,wBAAwB,CAAC,CAAC,EAAE;MACnC,OAAO,IAAI,CAACC,4CAA4C,CAACF,MAAM,CAAC;IAClE;IACA,OAAO,IAAI,CAACG,2CAA2C,CAACH,MAAM,CAAC;EACjE;EAgBA;AACF;AACA;EACE,MAAMI,sBAAsBA,CAACC,IAAyB,EAAiC;IACrF,OAAO,IAAI,CAACN,aAAa,CAACM,IAAI,CAAC;EACjC;EAEAJ,wBAAwBA,CAAA,EAAY;IAClC,OAAOK,OAAO,CAAC,IAAI,CAAC/B,SAAS,CAAC;EAChC;;EAEA;AACF;AACA;EACEgC,4BAA4BA,CAACjB,QAAgB,EAAuB;IAClE,OAAO,IAAI,CAACnB,qBAAqB,CAACzC,GAAG,CAAC4D,QAAQ,CAAC,IAAI,EAAE;EACvD;;EAEA;AACF;AACA;EACE,MAAMkB,oBAAoBA,CAACjB,IAAY,EAAED,QAAiB,EAAgD;IACxG,MAAMmB,OAAO,GAAG,MAAM,IAAI,CAACC,yBAAyB,CAAC,EAAE,EAAEpB,QAAQ,CAAC;IAClE,IAAImB,OAAO,IAAIA,OAAO,CAACxD,MAAM,EAAE;MAC7B,MAAM0D,KAAK,GAAG,IAAI,CAACC,6BAA6B,CAA0BtB,QAAQ,EAAEC,IAAI,EAAEkB,OAAO,CAAC;MAClG,IAAIE,KAAK,EAAE,OAAOA,KAAK;IACzB;IACA;IACA,MAAMjB,SAAS,GAAG,MAAM,IAAI,CAACmB,iCAAiC,CAAC,CAAC;IAChE,MAAMF,KAAK,GAAG,IAAI,CAACC,6BAA6B,CAA0BtB,QAAQ,EAAEC,IAAI,EAAEG,SAAS,CAAC;IACpG,OAAOiB,KAAK;EACd;EAEQC,6BAA6BA,CACnCtB,QAA4B,EAC5BC,IAAY,EACZG,SAAmB,EACJ;IACf;IACA,MAAMiB,KAAK,GAAGjB,SAAS,CAACoB,IAAI,CAAC,CAAC;MAAE9B,EAAE;MAAEC;IAAS,CAAC,KAAK;MACjD;MACA;MACA;MACA;MACA;MACA,MAAM8B,gBAAgB,GAAG/B,EAAE,CAACgC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;MACzC,IAAI1B,QAAQ,IAAIN,EAAE,KAAKM,QAAQ,IAAIyB,gBAAgB,KAAKzB,QAAQ,EAAE,OAAO,KAAK;MAC9E,OAAOL,QAAQ,CAACM,IAAI,KAAKA,IAAI;IAC/B,CAAC,CAAC;IACF,OAAOoB,KAAK;EACd;;EAEA;AACF;AACA;EACE,MAAcM,sBAAsBA,CAClC3B,QAAgB,EAC4F;IAC5G,MAAM;MAAE4B,kBAAkB;MAAEC;IAAW,CAAC,GAAG,MAAM,IAAI,CAAC1C,YAAY,CAAC2C,0BAA0B,CAAC,CAAC9B,QAAQ,CAAC,CAAC;IACzG,MAAM+B,eAAe,GAAGH,kBAAkB,CAACxF,GAAG,CAAgB4F,4BAAe,CAACtC,EAAE,CAAC;IACjF,MAAMuC,gBAAgB,GAAGL,kBAAkB,CAACxF,GAAG,CAAW8F,kBAAU,CAACxC,EAAE,CAAC;IACxE,MAAMgB,MAAM,GAAGmB,UAAU,CAAC,CAAC,CAAC;IAC5B,MAAMM,YAAY,GAAGzB,MAAM,CAAChB,EAAE,CAAC0C,QAAQ,CAAC,CAAC;IACzC,IAAAC,qBAAc,EAAC,CAAC;IAEhB,OAAO;MAAEN,eAAe;MAAEI,YAAY;MAAEF,gBAAgB;MAAEvB;IAAO,CAAC;EACpE;;EAEA;AACF;AACA;AACA;EACE,MAAM4B,kCAAkCA,CACtCtC,QAAgB,EAChBC,IAAa,EAC2D;IACxE,MAAM;MAAE8B,eAAe;MAAEI,YAAY;MAAEF,gBAAgB;MAAEvB;IAAO,CAAC,GAAG,MAAM,IAAI,CAACiB,sBAAsB,CAAC3B,QAAQ,CAAC;IAC/G,MAAMuC,UAAU,GAAG,MAAMR,eAAe,CAACS,iCAAiC,CAAC1F,IAAI,CAC7EiF,eAAe,EACf9B,IAAI,EACJkC,YAAY,EACZF,gBACF,CAAC;IACD,OAAO;MAAEQ,iBAAiB,EAAEF,UAAU;MAAE7B;IAAO,CAAC;EAClD;EAEA,MAAMgC,4BAA4BA,CAACC,aAAqB,EAAE1C,IAAY,EAAED,QAAiB,EAAE;IACzF,IAAI,CAACA,QAAQ,EACX,MAAM,KAAI4C,oBAAQ,EACf,iGACH,CAAC;IACH,MAAMC,OAAO,GAAG,MAAM,IAAAC,cAAO,EAACH,aAAa,CAAC;IAC5C,IAAI1D,SAAoB;IACxB,IAAI;MACFA,SAAS,GAAG4D,OAAO,CAACzG,GAAG,CAAY2G,oBAAe,CAACrD,EAAE,CAAC;IACxD,CAAC,CAAC,OAAOsD,GAAQ,EAAE;MACjB,MAAM,IAAIC,KAAK,CAAE,WAAUN,aAAc,+DAA8D,CAAC;IAC1G;IACA,MAAMO,iBAAiB,GAAG,MAAMjE,SAAS,CAACkE,kBAAkB,CAACnD,QAAQ,CAAC;IACtE,MAAMf,SAAS,CAACmE,WAAW,CAAC,CAACpD,QAAQ,CAAC,EAAE,IAAI,CAAC;IAC7C,MAAMqD,eAAe,GAAG,MAAMpE,SAAS,CAAC7C,GAAG,CAAC8G,iBAAiB,CAAC;IAC9D,MAAMI,YAAY,GAAGJ,iBAAiB,CAACd,QAAQ,CAAC,CAAC;IACjD,MAAMmB,SAAS,GAAGV,OAAO,CAACzG,GAAG,CAAgB4F,4BAAe,CAACtC,EAAE,CAAC;IAChE,MAAM+C,iBAAiB,GAAG,MAAMc,SAAS,CAACf,iCAAiC,CAACvC,IAAI,EAAEqD,YAAY,CAAC;IAC/F,OAAO;MAAEb,iBAAiB;MAAE/B,MAAM,EAAE2C;IAAgB,CAAC;EACvD;;EAEA;AACF;AACA;EACE,MAAMG,oBAAoBA,CACxBvD,IAAY,EACZD,QAAiB,EACsD;IACvE,MAAMyD,kBAAkB,GAAG,MAAM,IAAI,CAACjB,iCAAiC,CAACvC,IAAI,EAAED,QAAQ,CAAC;IACvF,IAAIyD,kBAAkB,EAAE;MACtB,OAAO;QAAEhB,iBAAiB,EAAEgB;MAAmB,CAAC;IAClD;IACA,IAAI,CAACzD,QAAQ,EAAE;MACb,MAAM,KAAI4C,oBAAQ,EACf,aAAY3C,IAAK,sMACpB,CAAC;IACH;IAEA,MAAM;MAAEwC,iBAAiB;MAAE/B;IAAO,CAAC,GAAG,MAAM,IAAI,CAAC4B,kCAAkC,CAACtC,QAAQ,EAAEC,IAAI,CAAC;IACnG,IAAIwC,iBAAiB,EAAE;MACrB,OAAO;QAAEA,iBAAiB;QAAE/B;MAAO,CAAC;IACtC;IACA,MAAM,KAAIkC,oBAAQ,EACf,aAAY3C,IAAK,sMACpB,CAAC;EACH;EAEA,MAAMuC,iCAAiCA,CACrCvC,IAAa,EACbD,QAAiB,EACjBiC,gBAA2B,EACa;IACxC,IAAId,OAAO;IAEX,IAAInB,QAAQ,EAAE;MACZmB,OAAO,GAAG,MAAM,IAAI,CAACuC,yBAAyB,CAAC1D,QAAQ,EAAEiC,gBAAgB,CAAC;IAC5E;IACA,MAAM7B,SAAS,GAAGe,OAAO,IAAIA,OAAO,CAACxD,MAAM,GAAGwD,OAAO,GAAG,IAAI,CAACwC,iCAAiC,CAAC,CAAC;IAChG,MAAMtC,KAAK,GAAGjB,SAAS,CAACoB,IAAI,CAAC,CAAC;MAAE9B,EAAE;MAAEC,QAAQ,EAAEiE;IAAI,CAAC,KAAK;MACtD,IAAI5D,QAAQ,IAAIC,IAAI,EAAE,OAAOD,QAAQ,KAAKN,EAAE,IAAIO,IAAI,KAAK2D,GAAG,CAAC3D,IAAI;MACjE,IAAID,QAAQ,EAAE,OAAOA,QAAQ,KAAKN,EAAE;MACpC,IAAIO,IAAI,EAAE,OAAOA,IAAI,KAAK2D,GAAG,CAAC3D,IAAI;MAClC,MAAM,IAAIgD,KAAK,CAAE,uEAAsE,CAAC;IAC1F,CAAC,CAAC;IAEF,OAAO5B,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAE1B,QAAQ;EACxB;EAEA,MAAMkE,yBAAyBA,CAC7BC,cAAwB,EACxBC,YAAoB,EACpBC,OAA+B,EACJ;IAC3B,IAAI,CAAC,IAAI,CAAC/E,SAAS,EAAE,MAAM,KAAIgF,kCAAqB,EAAC,CAAC;IACtD,MAAM,IAAI,CAACb,WAAW,CAAC,CAAC;IACxB,MAAM;MAAEc,SAAS;MAAExD;IAAO,CAAC,GAAGsD,OAAO;IAErC,MAAMG,8BAA8B,GAAGC,iBAAe,CAACD,8BAA8B;IAErF,MAAME,cAAc,GAAG,MAAM,IAAI,CAACnD,oBAAoB,CAAC6C,YAAY,EAAErD,MAAM,CAAC;IAE5E0D,iBAAe,CAACD,8BAA8B,GAAGA,8BAA8B;IAE/E,IAAI,CAACE,cAAc,EAAE,MAAM,KAAIzB,oBAAQ,EAAE,aAAYmB,YAAa,iBAAgB,CAAC;IAEnF,MAAMO,YAAY,GAAGR,cAAc,CAACS,GAAG,CAAEC,aAAa,IACpD,IAAI,CAACpF,kBAAkB,CAACqF,iBAAiB,CAACD,aAAa,EAAEN,SAAS,EAAEF,OAAO,CAACU,KAAK,CACnF,CAAC;IAED,MAAMC,KAAK,GAAG,MAAM,IAAI,CAACC,0BAA0B,CAACP,cAAc,CAAC;IAEnE,MAAMQ,kBAAkB,GAAG,KAAIC,wCAAkB,EAC/C,IAAI,CAAC7F,SAAS,EACdqF,YAAY,EACZN,OAAO,EACPK,cAAc,CAAC1E,QAAQ,EACvB,IAAI,CAACT,IAAI,EACT,IAAI,CAACE,kBAAkB,EACvB,IAAI,CAACE,OAAO,EACZ,IAAI,CAACG,aAAa,EAClB,IAAI,CAACF,MAAM,EACX,IAAI,CAACR,qBAAqB,EAC1BsF,cAAc,CAAC3E,EAAE,EACjBiF,KACF,CAAC;IACD,OAAOE,kBAAkB,CAACE,QAAQ,CAAC,CAAC;EACtC;EAEA,MAAcH,0BAA0BA,CAACP,cAAuC,EAAoC;IAClH,MAAMW,iBAAiB,GAAGX,cAAc,CAAC1E,QAAQ,CAACsF,GAAG;IACrD,IAAID,iBAAiB,EAAE;MACrB,MAAME,kBAAkB,GAAGC,wBAAW,CAACC,aAAa,CAACJ,iBAAiB,CAAC;MACvE,IAAI,CAACE,kBAAkB,EAAE;QACvB,MAAM,KAAItC,oBAAQ,EACf,8DAA6DyB,cAAc,CAAC1E,QAAQ,CAACM,IAAK,YAAW+E,iBAAkB,EAC1H,CAAC;MACH;MACA,MAAMK,UAAU,GAAG,MAAM,IAAI,CAACpG,SAAS,CAACqG,yCAAyC,CAACJ,kBAAkB,CAAC;MACrG,OAAOC,wBAAW,CAACI,UAAU,CAACF,UAAU,CAAC;IAC3C;IACA,IAAIhB,cAAc,CAACmB,OAAO,EAAE;MAC1B,OAAOL,wBAAW,CAACI,UAAU,CAAClB,cAAc,CAAC3E,EAAE,CAAC;IAClD;IACA,OAAO+F,OAAO,CAACC,OAAO,CAACC,SAAS,CAAC;EACnC;EAEA,MAAMC,yBAAyBA,CAC7BC,aAAqB,EACrB9B,YAAoB,EACpBC,OAA+D,EACrB;IAC1C,IAAI,IAAI,CAAC/E,SAAS,EAAE;MAClB,MAAM,KAAI2D,oBAAQ,EAAC,2EAA2E,CAAC;IACjG;IACA,MAAM;MAAElC,MAAM,EAAEV,QAAQ;MAAE8F;IAAS,CAAC,GAAG9B,OAAO;IAC9C,MAAM;MAAEvB,iBAAiB;MAAE/B;IAAO,CAAC,GAAGoF,QAAQ,GAC1C,MAAM,IAAI,CAACpD,4BAA4B,CAACoD,QAAQ,EAAE/B,YAAY,EAAE/D,QAAQ,CAAC,GACzE,MAAM,IAAI,CAACwD,oBAAoB,CAACO,YAAY,EAAE/D,QAAQ,CAAC;IAE3D,IAAI,CAACyC,iBAAiB,EAAE,MAAM,KAAIG,oBAAQ,EAAE,aAAYmB,YAAa,iBAAgB,CAAC;IACtF,MAAMgC,kBAAkB,GAAG,KAAIC,wCAAkB,EAACH,aAAa,EAAE7B,OAAO,EAAEvB,iBAAiB,EAAE/B,MAAM,CAAC;IACpG,MAAMiC,aAAa,GAAG,MAAMoD,kBAAkB,CAAChB,QAAQ,CAAC,CAAC;IACzD,OAAO;MAAEpC,aAAa;MAAEsD,OAAO,EAAExD,iBAAiB,CAACwD;IAAQ,CAAC;EAC9D;EAEA,MAAcrF,4CAA4CA,CAACZ,QAAiB,EAAsC;IAChH,MAAMkG,YAAY,GAAG,MAAM,IAAI,CAACC,mCAAmC,CAAC,EAAE,EAAEnG,QAAQ,CAAC;IACjF,IAAIkG,YAAY,IAAIA,YAAY,CAACvI,MAAM,EAAE;MACvC,IAAI,CAACqC,QAAQ,EAAE,OAAOkG,YAAY;MAClC,MAAME,QAAQ,GAAGF,YAAY,CAAC7I,MAAM,CAAEsC,QAAQ,IAAKA,QAAQ,CAACK,QAAQ,KAAKA,QAAQ,CAAC;MAClF,IAAIoG,QAAQ,CAACzI,MAAM,EAAE,OAAOyI,QAAQ;IACtC;IAEA,MAAMC,SAAS,GAAG,IAAI,CAAC9E,iCAAiC,CAAC,CAAC;IAC1D,MAAM6E,QAAQ,GAAGpG,QAAQ,GAAGqG,SAAS,CAAChJ,MAAM,CAAEsC,QAAQ,IAAKA,QAAQ,CAACD,EAAE,KAAKM,QAAQ,CAAC,GAAGqG,SAAS;IAChG,OAAOD,QAAQ,CAAC7B,GAAG,CAAE5E,QAAQ,IAAK,IAAI,CAAC2G,qBAAqB,CAAC3G,QAAQ,CAAC,CAAC;EACzE;EAEQ4B,iCAAiCA,CAAA,EAAuD;IAC9F,MAAMgF,kBAAkB,GAAG,IAAI,CAAC1H,qBAAqB,CAAC2H,OAAO,CAAC,CAAC;IAC/D,MAAMH,SAAS,GAAGE,kBAAkB,CAACE,OAAO,CAAC,CAAC,CAAC/G,EAAE,EAAEgH,kBAAkB,CAAC,KAAK;MACzE,OAAOA,kBAAkB,CAACnC,GAAG,CAAE5E,QAAQ,KAAM;QAC3CD,EAAE;QACFC;MACF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,OAAO0G,SAAS;EAClB;EAEA,MAAcxF,2CAA2CA,CAACb,QAAiB,EAAsC;IAC/G,IAAIkG,YAAY;IAChB,IAAIlG,QAAQ,EAAE;MACZkG,YAAY,GAAG,MAAM,IAAI,CAACxC,yBAAyB,CAAC1D,QAAQ,CAAC;IAC/D;IAEA,MAAMI,SAAS,GAAG8F,YAAY,IAAIA,YAAY,CAACvI,MAAM,GAAGuI,YAAY,GAAG,IAAI,CAACvC,iCAAiC,CAAC,CAAC;IAC/G,OAAOvD,SAAS,CAACmE,GAAG,CAAE5E,QAAQ,IAAK,IAAI,CAAC2G,qBAAqB,CAAC3G,QAAQ,CAAC,CAAC;EAC1E;EAEQgE,iCAAiCA,CAAA,EAAuD;IAC9F,MAAM4C,kBAAkB,GAAG,IAAI,CAACzH,qBAAqB,CAAC0H,OAAO,CAAC,CAAC;IAC/D,OAAOD,kBAAkB,CAACE,OAAO,CAAC,CAAC,CAAC/G,EAAE,EAAEiH,kBAAkB,CAAC,KAAK;MAC9D,OAAOA,kBAAkB,CAACpC,GAAG,CAAE5E,QAAQ,KAAM;QAC3CD,EAAE;QACFC;MACF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACE,MAAM+D,yBAAyBA,CAACiB,KAAa,EAAE1C,gBAA2B,EAA2C;IACnH,MAAM/C,IAAI,GAAG,MAAM,IAAI,CAAC0H,QAAQ,CAAC,CAACjC,KAAK,CAAC,EAAE1C,gBAAgB,CAAC;IAC3D,MAAM0E,kBAAkB,GAAGzH,IAAI,CAACuH,OAAO,CAAExB,GAAG,IAAK;MAC/C,IAAI,CAACA,GAAG,CAACA,GAAG,CAAC4B,oBAAoB,EAAE,OAAOlB,SAAS;MACnD,MAAMmB,WAAW,GAAG7B,GAAG,CAACA,GAAG,CAAC4B,oBAAoB,CAAC,CAAC;MAClD,OAAOC,WAAW,CAACvC,GAAG,CAAEwC,OAAO,IAAK;QAClC,MAAMC,WAAW,GAAG7B,wBAAW,CAACI,UAAU,CAACN,GAAG,CAACvF,EAAE,CAAC;QAClD,OAAO;UACLA,EAAE,EAAEsH,WAAW,CAAC5E,QAAQ,CAAC,CAAC;UAC1BoD,OAAO,EAAEP,GAAG,CAAChF,IAAI;UACjBN,QAAQ,EAAEoH;QACZ,CAAC;MACH,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,IAAAE,iBAAO,EAACN,kBAAkB,CAAC;EACpC;;EAEA;AACF;AACA;EACE,MAAMR,mCAAmCA,CAACe,GAAa,GAAG,EAAE,EAAElH,QAAiB,EAAiC;IAC9G,MAAMkG,YAAY,GAAG,MAAM,IAAI,CAAC9E,yBAAyB,CAAC8F,GAAG,EAAElH,QAAQ,CAAC;IACxE,MAAMI,SAA+B,GAAG8F,YAAY,CAAC3B,GAAG,CAAE4C,WAAW,IAAK;MACxE,MAAMH,WAAW,GAAG7B,wBAAW,CAACI,UAAU,CAAC4B,WAAW,CAACzH,EAAE,CAAC;MAC1D,OAAAjC,aAAA;QACEuC,QAAQ,EAAEgH,WAAW,CAACI,sBAAsB,CAAC,CAAC;QAC9CC,WAAW,EAAEF,WAAW,CAAC3B;MAAO,GAC7B2B,WAAW,CAACxH,QAAQ;IAE3B,CAAC,CAAC;IAEF,OAAOS,SAAS;EAClB;EAEAkH,iBAAiBA,CAAA,EAAa;IAC5B,OAAO,IAAI,CAACtI,MAAM,CAACE,IAAI,IAAI,EAAE;EAC/B;EAEA,MAAMkC,yBAAyBA,CAAC8F,GAAa,GAAG,EAAE,EAAElH,QAAiB,EAA2C;IAC9G,MAAMuH,UAAU,GAAG,IAAI,CAACvI,MAAM,CAACE,IAAI,IAAI,EAAE;IACzC,IAAI+C,gBAAgB;IACpB,IAAIE,YAAY;IAChB,IAAInC,QAAQ,IAAI,CAACuH,UAAU,CAACC,QAAQ,CAACxH,QAAQ,CAAC,EAAE;MAC9C,MAAMyH,OAAO,GAAG,MAAM,IAAI,CAAC9F,sBAAsB,CAAC3B,QAAQ,CAAC;MAC3DiC,gBAAgB,GAAGwF,OAAO,CAACxF,gBAAgB;MAC3CE,YAAY,GAAGsF,OAAO,CAACtF,YAAY;IACrC;IACA,MAAMuF,MAAM,GAAGH,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEI,MAAM,CAACT,GAAG,CAAC,CAACS,MAAM,CAAC,CAAC3H,QAAQ,EAAEmC,YAAY,CAAC,CAAC,CAAC9E,MAAM,CAAC2D,OAAO,CAAC;IACvF,MAAM9B,IAAI,GAAG,MAAM,IAAI,CAAC0H,QAAQ,CAACc,MAAM,EAAEzF,gBAAgB,CAAC;IAC1D,MAAM7B,SAAS,GAAGlB,IAAI,CAACuH,OAAO,CAAExB,GAAG,IAAK;MACtC,IAAI,CAACA,GAAG,CAACA,GAAG,CAAC2C,qBAAqB,EAAE,OAAO,EAAE;MAC7C,MAAMC,IAAI,GAAG5C,GAAG,CAACA,GAAG,CAAC2C,qBAAqB,CAAC,CAAC,IAAI,EAAE;MAClD,MAAMZ,WAAW,GAAG7B,wBAAW,CAACI,UAAU,CAACN,GAAG,CAACvF,EAAE,CAAC;MAClD,OAAOmI,IAAI,CAACtD,GAAG,CAAE5E,QAAQ,IAAK;QAC5B,OAAO;UACLD,EAAE,EAAEsH,WAAW,CAAC5E,QAAQ,CAAC,CAAC;UAC1BoD,OAAO,EAAEP,GAAG,CAAChF,IAAI;UACjBN;QACF,CAAC;MACH,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAOS,SAAS;EAClB;EAEA,MAAMwG,QAAQA,CAACM,GAAa,GAAG,IAAI,CAAClI,MAAM,CAACE,IAAI,IAAI,EAAE,EAAE+C,gBAA2B,EAA4B;IAC5G;IACA;IACA;IACA,IAAI,CAACA,gBAAgB,EAAE;MACrB,MAAM6F,IAAI,GAAG,IAAI,CAACzI,eAAe,CAAC0I,OAAO,CAAC,CAAC;MAC3C,IAAI,CAACD,IAAI,EAAE,OAAO,EAAE;MACpB,MAAMA,IAAI,CAAC1E,WAAW,CAAC8D,GAAG,CAAC;IAC7B;IAEA,MAAMc,UAAU,GAAG/F,gBAAgB,IAAI,IAAI,CAAC/C,IAAI;IAEhD,MAAM+I,aAAa,GAAGf,GAAG,CAAC3C,GAAG,CAAE7E,EAAE,IAAK;MACpC,MAAMsH,WAAW,GAAG7B,wBAAW,CAACI,UAAU,CAAC7F,EAAE,CAAC;MAC9C,OAAOsI,UAAU,CAACE,gBAAgB,CAAClB,WAAW,CAAC;IACjD,CAAC,CAAC;IAEF,OAAO,IAAAC,iBAAO,EAACgB,aAAa,CAAC;EAC/B;EAEA,MAAM7E,WAAWA,CAAA,EAAG;IAClB,IAAI,IAAI,CAAC+E,YAAY,EAAE;IACvB,MAAM,IAAI,CAAClJ,SAAS,CAACmE,WAAW,CAAC,IAAI,CAACpE,MAAM,CAACoJ,OAAO,CAAC;IACrD,IAAI,CAACD,YAAY,GAAG,IAAI;EAC1B;EAwBA,aAAaE,QAAQA,CACnB,CACEpJ,SAAS,EACTqJ,GAAG,EACHC,OAAO,EACPrJ,IAAI,EACJC,YAAY,EACZC,kBAAkB,EAClBC,eAAe,EACfC,OAAO,EACPkJ,UAAU,EACVhJ,GAAG,EACHC,aAAa,CAad,EACDT,MAAuB,EACvB,CAACH,qBAAqB,EAAEC,qBAAqB,EAAEC,qBAAqB,CAInE,EACD;IACA,MAAMQ,MAAM,GAAGiJ,UAAU,CAACC,YAAY,CAACzG,4BAAe,CAACtC,EAAE,CAAC;IAC1D,MAAM6D,SAAS,GAAG,IAAI5E,aAAa,CACjCE,qBAAqB,EACrBC,qBAAqB,EACrBC,qBAAqB,EACrBC,MAAM,EACNC,SAAS,EACTC,IAAI,EACJC,YAAY,EACZC,kBAAkB,EAClBC,eAAe,EACfC,OAAO,EACPC,MAAM,EACNC,GAAG,EACHC,aACF,CAAC;IACD,MAAMiJ,QAAQ,GAAG,CAAC,KAAIC,mBAAS,EAACpF,SAAS,CAAC,EAAE,KAAIqF,yBAAY,EAACrF,SAAS,CAAC,EAAE,KAAIsF,aAAM,EAACtF,SAAS,CAAC,CAAC;IAC/F+E,GAAG,CAACjI,QAAQ,CAAC,GAAGqI,QAAQ,CAAC;IACzBH,OAAO,CAAClI,QAAQ,CAAC,IAAAyI,6BAAe,EAACvF,SAAS,CAAC,CAAC;IAC5CpE,YAAY,CAAC4J,eAAe,CAAC,CAAC,KAAIC,wBAAa,EAACzF,SAAS,CAAC,CAAC,CAAC;IAC5DrE,IAAI,CAAC+J,eAAe,CAAC,KAAIC,8BAAgB,EAAC,CAAC,CAAC;IAE5C,IAAI3F,SAAS,EACXA,SAAS,CAACpD,yBAAyB,CAAC,CAClCgJ,wCAA0B,EAC1BC,kDAAoC,EACpCC,6BAAe,EACfC,uCAAyB,CAC1B,CAAC;IACJ/F,SAAS,CAACjD,yBAAyB,CAAC,CAACiJ,8BAAqB,CAAC,CAAC;IAE5D,OAAOhG,SAAS;EAClB;AACF;AAACiG,OAAA,CAAA7K,aAAA,GAAAA,aAAA;AAAAd,eAAA,CA1gBYc,aAAa,WAkbT,CACb8K,eAAI,CAACC,QAAQ,CAAsB,CAAC,EACpCD,eAAI,CAACC,QAAQ,CAAsB,CAAC,EACpCD,eAAI,CAACC,QAAQ,CAAsB,CAAC,CACrC;AAAA7L,eAAA,CAtbUc,aAAa,kBAwbF,CACpBoE,oBAAe,EACf4G,gBAAS,EACTC,wBAAa,EACb1H,kBAAU,EACV2H,uBAAkB,EAClBC,6BAAwB,EACxBC,oBAAe,EACfC,kBAAa,EACbC,sBAAY,EACZC,cAAS,EACTC,+BAA0B,CAC3B;AAAAtM,eAAA,CApcUc,aAAa,aAscPyL,kBAAW;AAsE9BpI,4BAAe,CAACqI,UAAU,CAAC1L,aAAa,CAAC"}
1
+ {"version":3,"names":["_graphql","data","require","_cli","_workspace","_interopRequireWildcard","_envs","_config","_interopRequireDefault","_workspaceConfigFiles","_component","_bit","_harmony","_git","_bitError","_aspectLoader","_tracker","_newComponentHelper","_lodash","_logger","_generator","_create","_templates","_generator2","_componentGenerator","_workspaceGenerator","_new","_templates2","_basic","_starter","_generator3","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","value","_toPropertyKey","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","GeneratorMain","constructor","componentTemplateSlot","workspaceTemplateSlot","onComponentCreateSlot","config","workspace","envs","aspectLoader","newComponentHelper","componentAspect","tracker","logger","git","wsConfigFiles","id","template","shouldBeHidden","hidden","hideCoreTemplates","isCoreAspect","aspectId","name","description","registerComponentTemplate","templates","register","registerWorkspaceTemplate","registerOnComponentCreate","fn","listTemplates","aspect","isRunningInsideWorkspace","getAllComponentTemplatesDescriptorsFlattened","getAllWorkspaceTemplatesDescriptorFlattened","listComponentTemplates","opts","Boolean","getComponentTemplateByAspect","getComponentTemplate","fromEnv","listEnvComponentTemplates","found","findTemplateByAspectIdAndName","getAllComponentTemplatesFlattened","find","idWithoutVersion","split","getGlobalGeneratorEnvs","globalScopeHarmony","components","loadAspectsFromGlobalScope","remoteGenerator","GeneratorAspect","remoteEnvsAspect","EnvsAspect","fullAspectId","toString","restoreGlobals","findWorkspaceTemplateInGlobalScope","fromGlobal","searchRegisteredWorkspaceTemplate","workspaceTemplate","findTemplateInOtherWorkspace","workspacePath","BitError","harmony","loadBit","WorkspaceAspect","err","Error","aspectComponentId","resolveComponentId","loadAspects","aspectComponent","aspectFullId","generator","getWorkspaceTemplate","registeredTemplate","listEnvWorkspaceTemplates","getAllWorkspaceTemplatesFlattened","tpl","generateComponentTemplate","componentNames","templateName","options","OutsideWorkspaceError","namespace","componentConfigLoadingRegistry","ComponentConfig","templateWithId","componentIds","map","componentName","getNewComponentId","scope","envId","getEnvIdFromTemplateWithId","componentGenerator","ComponentGenerator","generate","envIdFromTemplate","env","parsedFromTemplate","ComponentID","tryFromString","resolvedId","resolveEnvIdWithPotentialVersionForConfig","fromString","envName","Promise","resolve","undefined","generateWorkspaceTemplate","workspaceName","loadFrom","workspaceGenerator","WorkspaceGenerator","appName","envTemplates","listEnvComponentTemplateDescriptors","filtered","flattened","getTemplateDescriptor","templatesByAspects","toArray","flatMap","componentTemplates","workspaceTemplates","loadEnvs","getGeneratorStarters","envStarters","starter","componentId","compact","ids","envTemplate","toStringWithoutVersion","titlePrefix","getConfiguredEnvs","configEnvs","includes","globals","allIds","concat","getGeneratorTemplates","tpls","host","getHost","envsAspect","potentialEnvs","getEnvDefinition","aspectLoaded","aspects","provider","cli","graphql","loggerMain","createLogger","commands","CreateCmd","TemplatesCmd","NewCmd","generatorSchema","registerPlugins","StarterPlugin","registerService","GeneratorService","componentGeneratorTemplate","componentGeneratorTemplateStandalone","starterTemplate","starterTemplateStandalone","BasicWorkspaceStarter","exports","Slot","withType","CLIAspect","GraphqlAspect","AspectLoaderAspect","NewComponentHelperAspect","ComponentAspect","TrackerAspect","LoggerAspect","GitAspect","WorkspaceConfigFilesAspect","MainRuntime","addRuntime"],"sources":["generator.main.runtime.ts"],"sourcesContent":["import { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport WorkspaceAspect, { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { EnvDefinition, EnvsAspect, EnvsMain } from '@teambit/envs';\nimport ComponentConfig from '@teambit/legacy/dist/consumer/config';\nimport WorkspaceConfigFilesAspect, { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';\n\nimport ComponentAspect, { ComponentID } from '@teambit/component';\nimport type { ComponentMain, Component } from '@teambit/component';\n\nimport { isCoreAspect, loadBit, restoreGlobals } from '@teambit/bit';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport GitAspect, { GitMain } from '@teambit/git';\nimport { BitError } from '@teambit/bit-error';\nimport AspectLoaderAspect, { AspectLoaderMain } from '@teambit/aspect-loader';\nimport TrackerAspect, { TrackerMain } from '@teambit/tracker';\nimport NewComponentHelperAspect, { NewComponentHelperMain } from '@teambit/new-component-helper';\nimport { compact } from 'lodash';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\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, OnComponentCreateFn } from './component-generator';\nimport { WorkspaceGenerator } from './workspace-generator';\nimport { WorkspaceTemplate } from './workspace-template';\nimport { NewCmd, NewOptions } from './new.cmd';\nimport {\n componentGeneratorTemplate,\n componentGeneratorTemplateStandalone,\n starterTemplate,\n starterTemplateStandalone,\n} from './templates';\nimport { BasicWorkspaceStarter } from './templates/basic';\nimport { StarterPlugin } from './starter.plugin';\nimport { GeneratorService } from './generator.service';\n\nexport type ComponentTemplateSlot = SlotRegistry<ComponentTemplate[]>;\nexport type WorkspaceTemplateSlot = SlotRegistry<WorkspaceTemplate[]>;\nexport type OnComponentCreateSlot = SlotRegistry<OnComponentCreateFn>;\n\nexport type TemplateDescriptor = {\n aspectId: string;\n titlePrefix?: string;\n name: string;\n description?: string;\n hidden?: boolean;\n};\n\ntype TemplateWithId = { id: string; envName?: string };\ntype WorkspaceTemplateWithId = TemplateWithId & { template: WorkspaceTemplate };\ntype ComponentTemplateWithId = TemplateWithId & { template: ComponentTemplate };\ntype AnyTemplateWithId = TemplateWithId & { template: ComponentTemplate | WorkspaceTemplate };\n\nexport type GenerateWorkspaceTemplateResult = { workspacePath: string; appName?: string };\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 /**\n * default envs.\n */\n envs?: string[];\n};\n\nexport class GeneratorMain {\n private aspectLoaded = false;\n constructor(\n private componentTemplateSlot: ComponentTemplateSlot,\n private workspaceTemplateSlot: WorkspaceTemplateSlot,\n private onComponentCreateSlot: OnComponentCreateSlot,\n private config: GeneratorConfig,\n private workspace: Workspace,\n private envs: EnvsMain,\n private aspectLoader: AspectLoaderMain,\n private newComponentHelper: NewComponentHelperMain,\n private componentAspect: ComponentMain,\n private tracker: TrackerMain,\n private logger: Logger,\n private git: GitMain,\n private wsConfigFiles: WorkspaceConfigFilesMain\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 workspace starter.\n */\n registerWorkspaceTemplate(templates: WorkspaceTemplate[]) {\n this.workspaceTemplateSlot.register(templates);\n return this;\n }\n\n registerOnComponentCreate(fn: OnComponentCreateFn) {\n this.onComponentCreateSlot.register(fn);\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({ aspect }: { aspect?: string } = {}): Promise<TemplateDescriptor[]> {\n if (this.isRunningInsideWorkspace()) {\n return this.getAllComponentTemplatesDescriptorsFlattened(aspect);\n }\n return this.getAllWorkspaceTemplatesDescriptorFlattened(aspect);\n }\n\n private getTemplateDescriptor = ({ id, template }: AnyTemplateWithId): TemplateDescriptor => {\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\n /**\n * @deprecated use this.listTemplates()\n */\n async listComponentTemplates(opts: { aspect?: string }): Promise<TemplateDescriptor[]> {\n return this.listTemplates(opts);\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 async getComponentTemplate(name: string, aspectId?: string): Promise<ComponentTemplateWithId | undefined> {\n const fromEnv = await this.listEnvComponentTemplates([], aspectId);\n if (fromEnv && fromEnv.length) {\n const found = this.findTemplateByAspectIdAndName<ComponentTemplateWithId>(aspectId, name, fromEnv);\n if (found) return found;\n }\n // fallback to aspect id not from env if provided\n const templates = await this.getAllComponentTemplatesFlattened();\n const found = this.findTemplateByAspectIdAndName<ComponentTemplateWithId>(aspectId, name, templates);\n return found;\n }\n\n private findTemplateByAspectIdAndName<T>(\n aspectId: string | undefined,\n name: string,\n templates: Array<T>\n ): T | undefined {\n // @ts-ignore (should set T to be extends ComponentTemplateWithId or WorkspaceTemplateWithId)\n const found = templates.find(({ id, template }) => {\n // When doing something like:\n // bit create react-env my-env --aspect teambit.react/react-env\n // we will get the aspectId without version\n // but the env might be loaded from the global scope then it will be with a version\n // so it won't found if we don't look for it like this\n const idWithoutVersion = id.split('@')[0];\n if (aspectId && id !== aspectId && idWithoutVersion !== aspectId) return false;\n return template.name === name;\n });\n return found;\n }\n\n /**\n * Get the generator aspect and the envs aspect from an harmony instance of the global scope\n */\n private async getGlobalGeneratorEnvs(\n aspectId: string\n ): Promise<{ remoteGenerator: GeneratorMain; fullAspectId: string; remoteEnvsAspect: EnvsMain; aspect: any }> {\n const { globalScopeHarmony, components } = await this.aspectLoader.loadAspectsFromGlobalScope([aspectId]);\n const remoteGenerator = globalScopeHarmony.get<GeneratorMain>(GeneratorAspect.id);\n const remoteEnvsAspect = globalScopeHarmony.get<EnvsMain>(EnvsAspect.id);\n const aspect = components[0];\n const fullAspectId = aspect.id.toString();\n restoreGlobals();\n\n return { remoteGenerator, fullAspectId, remoteEnvsAspect, aspect };\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 findWorkspaceTemplateInGlobalScope(\n aspectId: string,\n name?: string\n ): Promise<{ workspaceTemplate?: WorkspaceTemplate; aspect?: Component }> {\n const { remoteGenerator, fullAspectId, remoteEnvsAspect, aspect } = await this.getGlobalGeneratorEnvs(aspectId);\n const fromGlobal = await remoteGenerator.searchRegisteredWorkspaceTemplate.call(\n remoteGenerator,\n name,\n fullAspectId,\n remoteEnvsAspect\n );\n return { workspaceTemplate: fromGlobal, aspect };\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 aspectComponent = await workspace.get(aspectComponentId);\n const aspectFullId = aspectComponentId.toString();\n const generator = harmony.get<GeneratorMain>(GeneratorAspect.id);\n const workspaceTemplate = await generator.searchRegisteredWorkspaceTemplate(name, aspectFullId);\n return { workspaceTemplate, aspect: aspectComponent };\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(\n `template \"${name}\" was not found, please use --aspect flag to load from an env i.e --aspect teambit.react/react-env\\n Learn more about component templates here: https://bit.dev/reference/generator/create-generator`\n );\n }\n\n const { workspaceTemplate, aspect } = await this.findWorkspaceTemplateInGlobalScope(aspectId, name);\n if (workspaceTemplate) {\n return { workspaceTemplate, aspect };\n }\n throw new BitError(\n `template \"${name}\" was not found, please use --aspect flag to load from an env i.e --aspect teambit.react/react-env\\n Learn more about component templates here: https://bit.dev/reference/generator/create-generator`\n );\n }\n\n async searchRegisteredWorkspaceTemplate(\n name?: string,\n aspectId?: string,\n remoteEnvsAspect?: EnvsMain\n ): Promise<WorkspaceTemplate | undefined> {\n let fromEnv;\n\n if (aspectId) {\n fromEnv = await this.listEnvWorkspaceTemplates(aspectId, remoteEnvsAspect);\n }\n const templates = fromEnv && fromEnv.length ? fromEnv : this.getAllWorkspaceTemplatesFlattened();\n const found = templates.find(({ id, template: tpl }) => {\n if (aspectId && name) return aspectId === id && name === tpl.name;\n if (aspectId) return aspectId === id;\n if (name) return name === tpl.name;\n throw new Error(`searchRegisteredWorkspaceTemplate expects to get \"name\" or \"aspectId\"`);\n });\n\n return found?.template;\n }\n\n async generateComponentTemplate(\n componentNames: string[],\n templateName: string,\n options: Partial<CreateOptions>\n ): Promise<GenerateResult[]> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n await this.loadAspects();\n const { namespace, aspect } = options;\n\n const componentConfigLoadingRegistry = ComponentConfig.componentConfigLoadingRegistry;\n\n const templateWithId = await this.getComponentTemplate(templateName, aspect);\n\n ComponentConfig.componentConfigLoadingRegistry = componentConfigLoadingRegistry;\n\n if (!templateWithId) throw new BitError(`template \"${templateName}\" was not found`);\n\n const componentIds = componentNames.map((componentName) =>\n this.newComponentHelper.getNewComponentId(componentName, namespace, options.scope)\n );\n\n const envId = await this.getEnvIdFromTemplateWithId(templateWithId);\n\n const componentGenerator = new ComponentGenerator(\n this.workspace,\n componentIds,\n options,\n templateWithId.template,\n this.envs,\n this.newComponentHelper,\n this.tracker,\n this.wsConfigFiles,\n this.logger,\n this.onComponentCreateSlot,\n templateWithId.id,\n envId\n );\n return componentGenerator.generate();\n }\n\n private async getEnvIdFromTemplateWithId(templateWithId: ComponentTemplateWithId): Promise<ComponentID | undefined> {\n const envIdFromTemplate = templateWithId.template.env;\n if (envIdFromTemplate) {\n const parsedFromTemplate = ComponentID.tryFromString(envIdFromTemplate);\n if (!parsedFromTemplate) {\n throw new BitError(\n `Error: unable to parse envId from template. template name: ${templateWithId.template.name}, envId: ${envIdFromTemplate}`\n );\n }\n const resolvedId = await this.workspace.resolveEnvIdWithPotentialVersionForConfig(parsedFromTemplate);\n return ComponentID.fromString(resolvedId);\n }\n if (templateWithId.envName) {\n return ComponentID.fromString(templateWithId.id);\n }\n return Promise.resolve(undefined);\n }\n\n async generateWorkspaceTemplate(\n workspaceName: string,\n templateName: string,\n options: NewOptions & { aspect?: string; currentDir?: boolean }\n ): Promise<GenerateWorkspaceTemplateResult> {\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 const { workspaceTemplate, aspect } = loadFrom\n ? await this.findTemplateInOtherWorkspace(loadFrom, templateName, aspectId)\n : await this.getWorkspaceTemplate(templateName, aspectId);\n\n if (!workspaceTemplate) throw new BitError(`template \"${templateName}\" was not found`);\n const workspaceGenerator = new WorkspaceGenerator(workspaceName, options, workspaceTemplate, aspect);\n const workspacePath = await workspaceGenerator.generate();\n return { workspacePath, appName: workspaceTemplate.appName };\n }\n\n private async getAllComponentTemplatesDescriptorsFlattened(aspectId?: string): Promise<Array<TemplateDescriptor>> {\n const envTemplates = await this.listEnvComponentTemplateDescriptors([], aspectId);\n if (envTemplates && envTemplates.length) {\n if (!aspectId) return envTemplates;\n const filtered = envTemplates.filter((template) => template.aspectId === aspectId);\n if (filtered.length) return filtered;\n }\n\n const flattened = this.getAllComponentTemplatesFlattened();\n const filtered = aspectId ? flattened.filter((template) => template.id === aspectId) : flattened;\n return filtered.map((template) => this.getTemplateDescriptor(template));\n }\n\n private getAllComponentTemplatesFlattened(): Array<{ id: string; template: ComponentTemplate }> {\n const templatesByAspects = this.componentTemplateSlot.toArray();\n const flattened = templatesByAspects.flatMap(([id, componentTemplates]) => {\n return componentTemplates.map((template) => ({\n id,\n template,\n }));\n });\n return flattened;\n }\n\n private async getAllWorkspaceTemplatesDescriptorFlattened(aspectId?: string): Promise<Array<TemplateDescriptor>> {\n let envTemplates;\n if (aspectId) {\n envTemplates = await this.listEnvWorkspaceTemplates(aspectId);\n }\n\n const templates = envTemplates && envTemplates.length ? envTemplates : this.getAllWorkspaceTemplatesFlattened();\n return templates.map((template) => this.getTemplateDescriptor(template));\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 /**\n * list all starter templates registered by an env.\n */\n async listEnvWorkspaceTemplates(envId: string, remoteEnvsAspect?: EnvsMain): Promise<Array<WorkspaceTemplateWithId>> {\n const envs = await this.loadEnvs([envId], remoteEnvsAspect);\n const workspaceTemplates = envs.flatMap((env) => {\n if (!env.env.getGeneratorStarters) return undefined;\n const envStarters = env.env.getGeneratorStarters();\n return envStarters.map((starter) => {\n const componentId = ComponentID.fromString(env.id);\n return {\n id: componentId.toString(),\n envName: env.name,\n template: starter,\n };\n });\n });\n\n return compact(workspaceTemplates);\n }\n\n /**\n * list all component templates registered by an env.\n */\n async listEnvComponentTemplateDescriptors(ids: string[] = [], aspectId?: string): Promise<TemplateDescriptor[]> {\n const envTemplates = await this.listEnvComponentTemplates(ids, aspectId);\n const templates: TemplateDescriptor[] = envTemplates.map((envTemplate) => {\n const componentId = ComponentID.fromString(envTemplate.id);\n return {\n aspectId: componentId.toStringWithoutVersion(),\n titlePrefix: envTemplate.envName,\n ...envTemplate.template,\n };\n });\n\n return templates;\n }\n\n getConfiguredEnvs(): string[] {\n return this.config.envs ?? [];\n }\n\n async listEnvComponentTemplates(ids: string[] = [], aspectId?: string): Promise<Array<ComponentTemplateWithId>> {\n const configEnvs = this.config.envs || [];\n let remoteEnvsAspect;\n let fullAspectId;\n if (aspectId && !configEnvs.includes(aspectId)) {\n const globals = await this.getGlobalGeneratorEnvs(aspectId);\n remoteEnvsAspect = globals.remoteEnvsAspect;\n fullAspectId = globals.fullAspectId;\n }\n const allIds = configEnvs?.concat(ids).concat([aspectId, fullAspectId]).filter(Boolean);\n const envs = await this.loadEnvs(allIds, remoteEnvsAspect);\n const templates = envs.flatMap((env) => {\n if (!env.env.getGeneratorTemplates) return [];\n const tpls = env.env.getGeneratorTemplates() || [];\n const componentId = ComponentID.fromString(env.id);\n return tpls.map((template) => {\n return {\n id: componentId.toString(),\n envName: env.name,\n template,\n };\n });\n });\n\n return templates;\n }\n\n async loadEnvs(ids: string[] = this.config.envs || [], remoteEnvsAspect?: EnvsMain): Promise<EnvDefinition[]> {\n // In case we have remoteEnvsAspect it means that we are running from the global scope\n // in that case the aspect / env were already loaded before to the global scope harmony instance\n // so no reason to load it here\n if (!remoteEnvsAspect) {\n const host = this.componentAspect.getHost();\n if (!host) return [];\n await host.loadAspects(ids);\n }\n\n const envsAspect = remoteEnvsAspect || this.envs;\n\n const potentialEnvs = ids.map((id) => {\n const componentId = ComponentID.fromString(id);\n return envsAspect.getEnvDefinition(componentId);\n });\n\n return compact(potentialEnvs);\n }\n\n async loadAspects() {\n if (this.aspectLoaded) return;\n await this.workspace.loadAspects(this.config.aspects);\n this.aspectLoaded = true;\n }\n\n static slots = [\n Slot.withType<ComponentTemplate[]>(),\n Slot.withType<WorkspaceTemplate[]>(),\n Slot.withType<OnComponentCreateFn>(),\n ];\n\n static dependencies = [\n WorkspaceAspect,\n CLIAspect,\n GraphqlAspect,\n EnvsAspect,\n AspectLoaderAspect,\n NewComponentHelperAspect,\n ComponentAspect,\n TrackerAspect,\n LoggerAspect,\n GitAspect,\n WorkspaceConfigFilesAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider(\n [\n workspace,\n cli,\n graphql,\n envs,\n aspectLoader,\n newComponentHelper,\n componentAspect,\n tracker,\n loggerMain,\n git,\n wsConfigFiles,\n ]: [\n Workspace,\n CLIMain,\n GraphqlMain,\n EnvsMain,\n AspectLoaderMain,\n NewComponentHelperMain,\n ComponentMain,\n TrackerMain,\n LoggerMain,\n GitMain,\n WorkspaceConfigFilesMain\n ],\n config: GeneratorConfig,\n [componentTemplateSlot, workspaceTemplateSlot, onComponentCreateSlot]: [\n ComponentTemplateSlot,\n WorkspaceTemplateSlot,\n OnComponentCreateSlot\n ]\n ) {\n const logger = loggerMain.createLogger(GeneratorAspect.id);\n const generator = new GeneratorMain(\n componentTemplateSlot,\n workspaceTemplateSlot,\n onComponentCreateSlot,\n config,\n workspace,\n envs,\n aspectLoader,\n newComponentHelper,\n componentAspect,\n tracker,\n logger,\n git,\n wsConfigFiles\n );\n const commands = [new CreateCmd(generator), new TemplatesCmd(generator), new NewCmd(generator)];\n cli.register(...commands);\n graphql.register(generatorSchema(generator));\n aspectLoader.registerPlugins([new StarterPlugin(generator)]);\n envs.registerService(new GeneratorService());\n\n if (generator)\n generator.registerComponentTemplate([\n componentGeneratorTemplate,\n componentGeneratorTemplateStandalone,\n starterTemplate,\n starterTemplateStandalone,\n ]);\n generator.registerWorkspaceTemplate([BasicWorkspaceStarter]);\n\n return generator;\n }\n}\n\nGeneratorAspect.addRuntime(GeneratorMain);\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { EnvService, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';
2
2
  import { ComponentTemplate } from './component-template';
3
3
  import { WorkspaceTemplate } from './workspace-template';
4
- declare type GeneratorTransformationMap = ServiceTransformationMap & {
4
+ type GeneratorTransformationMap = ServiceTransformationMap & {
5
5
  getGeneratorTemplates: () => ComponentTemplate;
6
6
  getGeneratorStarters: () => WorkspaceTemplate;
7
7
  };
@@ -13,7 +13,7 @@ class GeneratorService {
13
13
  }
14
14
  transform(env, context) {
15
15
  // Old env
16
- if (!(env !== null && env !== void 0 && env.generators)) return undefined;
16
+ if (!env?.generators) return undefined;
17
17
  return {
18
18
  getGeneratorTemplates: () => {
19
19
  if (!env.generators) return undefined;
@@ -1 +1 @@
1
- {"version":3,"names":["GeneratorService","constructor","_defineProperty","transform","env","context","generators","undefined","getGeneratorTemplates","generatorList","compute","getGeneratorStarters","starters","starterList","exports"],"sources":["generator.service.tsx"],"sourcesContent":["import { EnvService, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';\nimport { ComponentTemplate } from './component-template';\nimport { WorkspaceTemplate } from './workspace-template';\n\ntype GeneratorTransformationMap = ServiceTransformationMap & {\n getGeneratorTemplates: () => ComponentTemplate;\n getGeneratorStarters: () => WorkspaceTemplate;\n};\nexport class GeneratorService implements EnvService<any> {\n name = 'generator';\n\n transform(env: Env, context: EnvContext): GeneratorTransformationMap | undefined {\n // Old env\n if (!env?.generators) return undefined;\n return {\n getGeneratorTemplates: () => {\n if (!env.generators) return undefined;\n const generatorList = env.generators()(context);\n return generatorList.compute();\n },\n getGeneratorStarters: () => {\n if (!env.starters) return undefined;\n const starterList = env.starters()(context);\n return starterList.compute();\n },\n };\n }\n}\n"],"mappings":";;;;;;;;;AAQO,MAAMA,gBAAgB,CAA4B;EAAAC,YAAA;IAAAC,eAAA,eAChD,WAAW;EAAA;EAElBC,SAASA,CAACC,GAAQ,EAAEC,OAAmB,EAA0C;IAC/E;IACA,IAAI,EAACD,GAAG,aAAHA,GAAG,eAAHA,GAAG,CAAEE,UAAU,GAAE,OAAOC,SAAS;IACtC,OAAO;MACLC,qBAAqB,EAAEA,CAAA,KAAM;QAC3B,IAAI,CAACJ,GAAG,CAACE,UAAU,EAAE,OAAOC,SAAS;QACrC,MAAME,aAAa,GAAGL,GAAG,CAACE,UAAU,CAAC,CAAC,CAACD,OAAO,CAAC;QAC/C,OAAOI,aAAa,CAACC,OAAO,CAAC,CAAC;MAChC,CAAC;MACDC,oBAAoB,EAAEA,CAAA,KAAM;QAC1B,IAAI,CAACP,GAAG,CAACQ,QAAQ,EAAE,OAAOL,SAAS;QACnC,MAAMM,WAAW,GAAGT,GAAG,CAACQ,QAAQ,CAAC,CAAC,CAACP,OAAO,CAAC;QAC3C,OAAOQ,WAAW,CAACH,OAAO,CAAC,CAAC;MAC9B;IACF,CAAC;EACH;AACF;AAACI,OAAA,CAAAd,gBAAA,GAAAA,gBAAA"}
1
+ {"version":3,"names":["GeneratorService","constructor","_defineProperty","transform","env","context","generators","undefined","getGeneratorTemplates","generatorList","compute","getGeneratorStarters","starters","starterList","exports"],"sources":["generator.service.tsx"],"sourcesContent":["import { EnvService, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';\nimport { ComponentTemplate } from './component-template';\nimport { WorkspaceTemplate } from './workspace-template';\n\ntype GeneratorTransformationMap = ServiceTransformationMap & {\n getGeneratorTemplates: () => ComponentTemplate;\n getGeneratorStarters: () => WorkspaceTemplate;\n};\nexport class GeneratorService implements EnvService<any> {\n name = 'generator';\n\n transform(env: Env, context: EnvContext): GeneratorTransformationMap | undefined {\n // Old env\n if (!env?.generators) return undefined;\n return {\n getGeneratorTemplates: () => {\n if (!env.generators) return undefined;\n const generatorList = env.generators()(context);\n return generatorList.compute();\n },\n getGeneratorStarters: () => {\n if (!env.starters) return undefined;\n const starterList = env.starters()(context);\n return starterList.compute();\n },\n };\n }\n}\n"],"mappings":";;;;;;;;;AAQO,MAAMA,gBAAgB,CAA4B;EAAAC,YAAA;IAAAC,eAAA,eAChD,WAAW;EAAA;EAElBC,SAASA,CAACC,GAAQ,EAAEC,OAAmB,EAA0C;IAC/E;IACA,IAAI,CAACD,GAAG,EAAEE,UAAU,EAAE,OAAOC,SAAS;IACtC,OAAO;MACLC,qBAAqB,EAAEA,CAAA,KAAM;QAC3B,IAAI,CAACJ,GAAG,CAACE,UAAU,EAAE,OAAOC,SAAS;QACrC,MAAME,aAAa,GAAGL,GAAG,CAACE,UAAU,CAAC,CAAC,CAACD,OAAO,CAAC;QAC/C,OAAOI,aAAa,CAACC,OAAO,CAAC,CAAC;MAChC,CAAC;MACDC,oBAAoB,EAAEA,CAAA,KAAM;QAC1B,IAAI,CAACP,GAAG,CAACQ,QAAQ,EAAE,OAAOL,SAAS;QACnC,MAAMM,WAAW,GAAGT,GAAG,CAACQ,QAAQ,CAAC,CAAC,CAACP,OAAO,CAAC;QAC3C,OAAOQ,WAAW,CAACH,OAAO,CAAC,CAAC;MAC9B;IACF,CAAC;EACH;AACF;AAACI,OAAA,CAAAd,gBAAA,GAAAA,gBAAA"}
package/dist/new.cmd.d.ts CHANGED
@@ -4,7 +4,7 @@ import { BaseWorkspaceOptions } from './workspace-template';
4
4
  /**
5
5
  * NewOptions combines foundational properties with additional options for creating a workspace.
6
6
  */
7
- export declare type NewOptions = BaseWorkspaceOptions;
7
+ export type NewOptions = BaseWorkspaceOptions;
8
8
  export declare class NewCmd implements Command {
9
9
  private generator;
10
10
  name: string;
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.generator_generator@1.0.108/dist/generator.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.generator_generator@1.0.108/dist/generator.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.generator_generator@1.0.110/dist/generator.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.generator_generator@1.0.110/dist/generator.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -1,6 +1,6 @@
1
1
  import { EnvContext, EnvHandler } from '@teambit/envs';
2
2
  import { WorkspaceTemplate } from './workspace-template';
3
- export declare type StarterListOptions = {
3
+ export type StarterListOptions = {
4
4
  name?: string;
5
5
  };
6
6
  export declare class StarterList {
@@ -1,6 +1,6 @@
1
1
  import { EnvContext, EnvHandler } from '@teambit/envs';
2
2
  import { ComponentTemplate } from './component-template';
3
- export declare type TemplateListOptions = {
3
+ export type TemplateListOptions = {
4
4
  name?: string;
5
5
  };
6
6
  export declare class TemplateList {
@@ -1,6 +1,6 @@
1
1
  import { Command, CommandOptions } from '@teambit/cli';
2
2
  import { GeneratorMain } from './generator.main.runtime';
3
- export declare type TemplatesOptions = {
3
+ export type TemplatesOptions = {
4
4
  showAll?: boolean;
5
5
  aspect?: string;
6
6
  };
@@ -2,7 +2,7 @@ import { Component } from '@teambit/component';
2
2
  import { ComponentID } from '@teambit/component-id';
3
3
  import { WorkspaceTemplate } from './workspace-template';
4
4
  import { NewOptions } from './new.cmd';
5
- export declare type GenerateResult = {
5
+ export type GenerateResult = {
6
6
  id: ComponentID;
7
7
  dir: string;
8
8
  files: string[];
@@ -25,7 +25,7 @@ export declare class WorkspaceGenerator {
25
25
  private generator;
26
26
  constructor(workspaceName: string, options: NewOptions & {
27
27
  currentDir?: boolean;
28
- }, template: WorkspaceTemplate, aspectComponent?: Component | undefined);
28
+ }, template: WorkspaceTemplate, aspectComponent?: Component);
29
29
  generate(): Promise<string>;
30
30
  private initGit;
31
31
  private setupGitBitmapMergeDriver;
@@ -185,8 +185,7 @@ class WorkspaceGenerator {
185
185
  await this.compileComponents(true);
186
186
  await this.wsConfigFiles.writeConfigFiles({});
187
187
  } catch (err) {
188
- var _this$logger;
189
- (_this$logger = this.logger) === null || _this$logger === void 0 || _this$logger.error(`failed generating a new workspace, will delete the dir ${this.workspacePath}`, err);
188
+ this.logger?.error(`failed generating a new workspace, will delete the dir ${this.workspacePath}`, err);
190
189
  await _fsExtra().default.remove(this.workspacePath);
191
190
  throw err;
192
191
  }
@@ -262,10 +261,9 @@ class WorkspaceGenerator {
262
261
  });
263
262
  }
264
263
  async forkComponentsFromRemote() {
265
- var _this$template, _this$template$import, _this$template2, _this$template2$fork;
266
264
  if (this.options.empty) return;
267
265
  const workspaceContext = this.getWorkspaceContext();
268
- const componentsToFork = ((_this$template = this.template) === null || _this$template === void 0 || (_this$template$import = _this$template.importComponents) === null || _this$template$import === void 0 ? void 0 : _this$template$import.call(_this$template, workspaceContext)) || ((_this$template2 = this.template) === null || _this$template2 === void 0 || (_this$template2$fork = _this$template2.fork) === null || _this$template2$fork === void 0 ? void 0 : _this$template2$fork.call(_this$template2, workspaceContext)) || [];
266
+ const componentsToFork = this.template?.importComponents?.(workspaceContext) || this.template?.fork?.(workspaceContext) || [];
269
267
  if (!componentsToFork.length) return;
270
268
  const componentsToForkRestructured = componentsToFork.map(({
271
269
  id,
@@ -289,10 +287,9 @@ class WorkspaceGenerator {
289
287
  });
290
288
  }
291
289
  async importComponentsFromRemote() {
292
- var _this$template3, _this$template3$impor;
293
290
  if (this.options.empty) return;
294
291
  const workspaceContext = this.getWorkspaceContext();
295
- const componentsToImport = ((_this$template3 = this.template) === null || _this$template3 === void 0 || (_this$template3$impor = _this$template3.import) === null || _this$template3$impor === void 0 ? void 0 : _this$template3$impor.call(_this$template3, workspaceContext)) || [];
292
+ const componentsToImport = this.template?.import?.(workspaceContext) || [];
296
293
  if (!componentsToImport.length) return;
297
294
  await (0, _pMapSeries().default)(componentsToImport, async componentToImport => {
298
295
  await this.importer.import({
@@ -1 +1 @@
1
- {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_bit","_execa","_pMapSeries","_ui","_logger","_workspace","_forking","_consumer","_importer","_compiler","_gitExecutable","_gitNotFound","_path","_git","_install","_workspaceConfigFiles","_generator","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","WorkspaceGenerator","constructor","workspaceName","options","template","aspectComponent","workspacePath","currentDir","process","cwd","resolve","generate","fs","existsSync","Error","ensureDir","chdir","initGit","init","skipGit","writeWorkspaceFiles","reloadBitInWorkspaceDir","workspace","inInstallContext","setupGitBitmapMergeDriver","createComponentsFromRemote","forkComponentsFromRemote","importComponentsFromRemote","clearCache","install","undefined","dedupe","import","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","updateExisting","compileComponents","wsConfigFiles","writeConfigFiles","err","_this$logger","logger","error","remove","gitExecutablePath","getGitExecutablePath","params","execa","exitCodeName","GitNotFound","git","setGitMergeDriver","global","buildUI","uiMain","harmony","get","UIAspect","id","createRuntime","getWorkspaceContext","name","defaultScope","empty","workspaceContext","templateFiles","generateFiles","Promise","all","map","templateFile","outputFile","join","relativePath","content","loadBit","WorkspaceAspect","InstallAspect","loggerMain","LoggerAspect","createLogger","GeneratorAspect","importer","ImporterAspect","forking","ForkingAspect","GitAspect","WorkspaceConfigFilesAspect","generator","create","componentsToCreate","pMapSeries","componentToCreate","generateComponentTemplate","componentName","templateName","aspect","env","path","scope","_this$template","_this$template$import","_this$template2","_this$template2$fork","componentsToFork","importComponents","fork","length","componentsToForkRestructured","targetName","config","targetScope","sourceId","targetId","forkMultipleFromRemote","refactor","_this$template3","_this$template3$impor","componentsToImport","componentToImport","ids","installNpmPackages","writeToPath","bitMap","write","compiler","CompilerAspect","compileOnWorkspace","exports"],"sources":["workspace-generator.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport { loadBit } from '@teambit/bit';\nimport { Harmony } from '@teambit/harmony';\nimport { Component } from '@teambit/component';\nimport execa from 'execa';\nimport pMapSeries from 'p-map-series';\nimport UIAspect, { UiMain } from '@teambit/ui';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { WorkspaceAspect, Workspace } from '@teambit/workspace';\nimport ForkingAspect, { ForkingMain } from '@teambit/forking';\nimport { init } from '@teambit/legacy/dist/api/consumer';\nimport ImporterAspect, { ImporterMain } from '@teambit/importer';\nimport { CompilerAspect, CompilerMain } from '@teambit/compiler';\nimport getGitExecutablePath from '@teambit/legacy/dist/utils/git/git-executable';\nimport GitNotFound from '@teambit/legacy/dist/utils/git/exceptions/git-not-found';\nimport { resolve, join } from 'path';\nimport { ComponentID } from '@teambit/component-id';\nimport GitAspect, { GitMain } from '@teambit/git';\nimport { InstallAspect, InstallMain } from '@teambit/install';\nimport WorkspaceConfigFilesAspect, { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';\n// import { ComponentGenerator } from './component-generator';\nimport { WorkspaceTemplate, WorkspaceContext } from './workspace-template';\nimport { NewOptions } from './new.cmd';\nimport { GeneratorAspect } from './generator.aspect';\nimport { GeneratorMain } from './generator.main.runtime';\n\nexport type GenerateResult = { id: ComponentID; dir: string; files: string[]; envId: string };\n\nexport class WorkspaceGenerator {\n private workspacePath: string;\n private harmony: Harmony;\n private workspace: Workspace;\n private install: InstallMain;\n private importer: ImporterMain;\n private logger?: Logger;\n private forking: ForkingMain;\n private git: GitMain;\n private wsConfigFiles: WorkspaceConfigFilesMain;\n private generator: GeneratorMain;\n\n // private componentGenerator?: ComponentGenerator;\n\n constructor(\n private workspaceName: string,\n private options: NewOptions & { currentDir?: boolean },\n private template: WorkspaceTemplate,\n private aspectComponent?: Component\n ) {\n this.workspacePath = options.currentDir ? process.cwd() : resolve(this.workspaceName);\n }\n\n async generate(): Promise<string> {\n if (!this.options.currentDir && fs.existsSync(this.workspacePath)) {\n throw new Error(`unable to create a workspace at \"${this.workspaceName}\", this path already exist`);\n }\n await fs.ensureDir(this.workspacePath);\n try {\n process.chdir(this.workspacePath);\n await this.initGit();\n await init(this.workspacePath, this.options.skipGit, false, false, false, false, false, false, {});\n await this.writeWorkspaceFiles();\n await this.reloadBitInWorkspaceDir();\n // Setting the workspace to be in install context to prevent errors during the workspace generation\n // the workspace will be in install context until the end of the generation install process\n this.workspace.inInstallContext = true;\n await this.setupGitBitmapMergeDriver();\n await this.createComponentsFromRemote();\n await this.forkComponentsFromRemote();\n await this.importComponentsFromRemote();\n await this.workspace.clearCache();\n await this.install.install(undefined, {\n dedupe: true,\n import: false,\n copyPeerToRuntimeOnRoot: true,\n copyPeerToRuntimeOnComponents: false,\n updateExisting: false,\n });\n\n // compile the components again now that we have the dependencies installed\n await this.compileComponents(true);\n await this.wsConfigFiles.writeConfigFiles({});\n } catch (err: any) {\n this.logger?.error(`failed generating a new workspace, will delete the dir ${this.workspacePath}`, err);\n await fs.remove(this.workspacePath);\n throw err;\n }\n\n return this.workspacePath;\n }\n\n private async initGit() {\n if (this.options.skipGit) return;\n const gitExecutablePath = getGitExecutablePath();\n const params = ['init'];\n try {\n await execa(gitExecutablePath, params);\n } catch (err: any) {\n if (err.exitCodeName === 'ENOENT') {\n throw new GitNotFound(gitExecutablePath, err);\n }\n throw err;\n }\n }\n\n private async setupGitBitmapMergeDriver() {\n if (this.options.skipGit) return;\n await this.git.setGitMergeDriver({ global: false });\n }\n\n private async buildUI() {\n const uiMain = this.harmony.get<UiMain>(UIAspect.id);\n await uiMain.createRuntime({});\n }\n\n private getWorkspaceContext(): WorkspaceContext {\n return {\n name: this.workspaceName,\n defaultScope: this.options.defaultScope,\n empty: this.options.empty,\n aspectComponent: this.aspectComponent,\n template: this.template,\n skipGit: this.options.skipGit,\n };\n }\n\n /**\n * writes the generated template files to the default directory set in the workspace config\n */\n private async writeWorkspaceFiles(): Promise<void> {\n const workspaceContext = this.getWorkspaceContext();\n const templateFiles = await this.template.generateFiles(workspaceContext);\n await Promise.all(\n templateFiles.map(async (templateFile) => {\n await fs.outputFile(join(this.workspacePath, templateFile.relativePath), templateFile.content);\n })\n );\n }\n\n private async reloadBitInWorkspaceDir() {\n this.harmony = await loadBit(this.workspacePath);\n this.workspace = this.harmony.get<Workspace>(WorkspaceAspect.id);\n this.install = this.harmony.get<InstallMain>(InstallAspect.id);\n const loggerMain = this.harmony.get<LoggerMain>(LoggerAspect.id);\n this.logger = loggerMain.createLogger(GeneratorAspect.id);\n this.importer = this.harmony.get<ImporterMain>(ImporterAspect.id);\n this.forking = this.harmony.get<ForkingMain>(ForkingAspect.id);\n this.git = this.harmony.get<GitMain>(GitAspect.id);\n this.wsConfigFiles = this.harmony.get<WorkspaceConfigFilesMain>(WorkspaceConfigFilesAspect.id);\n this.generator = this.harmony.get<GeneratorMain>(GeneratorAspect.id);\n }\n\n private async createComponentsFromRemote() {\n if (this.options.empty || !this.template.create) return;\n const workspaceContext = this.getWorkspaceContext();\n const componentsToCreate = this.template.create(workspaceContext);\n await pMapSeries(componentsToCreate, async (componentToCreate) => {\n return this.generator.generateComponentTemplate(\n [componentToCreate.componentName],\n componentToCreate.templateName,\n {\n aspect: componentToCreate.aspect,\n env: componentToCreate.env,\n path: componentToCreate.path,\n scope: componentToCreate.scope,\n }\n );\n });\n }\n\n private async forkComponentsFromRemote() {\n if (this.options.empty) return;\n const workspaceContext = this.getWorkspaceContext();\n const componentsToFork =\n this.template?.importComponents?.(workspaceContext) || this.template?.fork?.(workspaceContext) || [];\n if (!componentsToFork.length) return;\n const componentsToForkRestructured = componentsToFork.map(({ id, targetName, path, env, config, targetScope }) => ({\n sourceId: id,\n targetId: targetName,\n targetScope,\n path,\n env,\n config,\n }));\n await this.forking.forkMultipleFromRemote(componentsToForkRestructured, {\n scope: this.workspace.defaultScope,\n refactor: true,\n install: false,\n });\n }\n\n private async importComponentsFromRemote() {\n if (this.options.empty) return;\n const workspaceContext = this.getWorkspaceContext();\n const componentsToImport = this.template?.import?.(workspaceContext) || [];\n\n if (!componentsToImport.length) return;\n\n await pMapSeries(componentsToImport, async (componentToImport) => {\n await this.importer.import(\n {\n ids: [componentToImport.id],\n installNpmPackages: false,\n writeConfigFiles: false,\n writeToPath: componentToImport.path,\n },\n []\n );\n });\n\n await this.workspace.bitMap.write('new');\n }\n\n private async compileComponents(clearCache = true) {\n if (clearCache) {\n await this.workspace.clearCache();\n }\n const compiler = this.harmony.get<CompilerMain>(CompilerAspect.id);\n await compiler.compileOnWorkspace();\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_bit","_execa","_pMapSeries","_ui","_logger","_workspace","_forking","_consumer","_importer","_compiler","_gitExecutable","_gitNotFound","_path","_git","_install","_workspaceConfigFiles","_generator","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","WorkspaceGenerator","constructor","workspaceName","options","template","aspectComponent","workspacePath","currentDir","process","cwd","resolve","generate","fs","existsSync","Error","ensureDir","chdir","initGit","init","skipGit","writeWorkspaceFiles","reloadBitInWorkspaceDir","workspace","inInstallContext","setupGitBitmapMergeDriver","createComponentsFromRemote","forkComponentsFromRemote","importComponentsFromRemote","clearCache","install","undefined","dedupe","import","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","updateExisting","compileComponents","wsConfigFiles","writeConfigFiles","err","logger","error","remove","gitExecutablePath","getGitExecutablePath","params","execa","exitCodeName","GitNotFound","git","setGitMergeDriver","global","buildUI","uiMain","harmony","get","UIAspect","id","createRuntime","getWorkspaceContext","name","defaultScope","empty","workspaceContext","templateFiles","generateFiles","Promise","all","map","templateFile","outputFile","join","relativePath","content","loadBit","WorkspaceAspect","InstallAspect","loggerMain","LoggerAspect","createLogger","GeneratorAspect","importer","ImporterAspect","forking","ForkingAspect","GitAspect","WorkspaceConfigFilesAspect","generator","create","componentsToCreate","pMapSeries","componentToCreate","generateComponentTemplate","componentName","templateName","aspect","env","path","scope","componentsToFork","importComponents","fork","length","componentsToForkRestructured","targetName","config","targetScope","sourceId","targetId","forkMultipleFromRemote","refactor","componentsToImport","componentToImport","ids","installNpmPackages","writeToPath","bitMap","write","compiler","CompilerAspect","compileOnWorkspace","exports"],"sources":["workspace-generator.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport { loadBit } from '@teambit/bit';\nimport { Harmony } from '@teambit/harmony';\nimport { Component } from '@teambit/component';\nimport execa from 'execa';\nimport pMapSeries from 'p-map-series';\nimport UIAspect, { UiMain } from '@teambit/ui';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { WorkspaceAspect, Workspace } from '@teambit/workspace';\nimport ForkingAspect, { ForkingMain } from '@teambit/forking';\nimport { init } from '@teambit/legacy/dist/api/consumer';\nimport ImporterAspect, { ImporterMain } from '@teambit/importer';\nimport { CompilerAspect, CompilerMain } from '@teambit/compiler';\nimport getGitExecutablePath from '@teambit/legacy/dist/utils/git/git-executable';\nimport GitNotFound from '@teambit/legacy/dist/utils/git/exceptions/git-not-found';\nimport { resolve, join } from 'path';\nimport { ComponentID } from '@teambit/component-id';\nimport GitAspect, { GitMain } from '@teambit/git';\nimport { InstallAspect, InstallMain } from '@teambit/install';\nimport WorkspaceConfigFilesAspect, { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';\n// import { ComponentGenerator } from './component-generator';\nimport { WorkspaceTemplate, WorkspaceContext } from './workspace-template';\nimport { NewOptions } from './new.cmd';\nimport { GeneratorAspect } from './generator.aspect';\nimport { GeneratorMain } from './generator.main.runtime';\n\nexport type GenerateResult = { id: ComponentID; dir: string; files: string[]; envId: string };\n\nexport class WorkspaceGenerator {\n private workspacePath: string;\n private harmony: Harmony;\n private workspace: Workspace;\n private install: InstallMain;\n private importer: ImporterMain;\n private logger?: Logger;\n private forking: ForkingMain;\n private git: GitMain;\n private wsConfigFiles: WorkspaceConfigFilesMain;\n private generator: GeneratorMain;\n\n // private componentGenerator?: ComponentGenerator;\n\n constructor(\n private workspaceName: string,\n private options: NewOptions & { currentDir?: boolean },\n private template: WorkspaceTemplate,\n private aspectComponent?: Component\n ) {\n this.workspacePath = options.currentDir ? process.cwd() : resolve(this.workspaceName);\n }\n\n async generate(): Promise<string> {\n if (!this.options.currentDir && fs.existsSync(this.workspacePath)) {\n throw new Error(`unable to create a workspace at \"${this.workspaceName}\", this path already exist`);\n }\n await fs.ensureDir(this.workspacePath);\n try {\n process.chdir(this.workspacePath);\n await this.initGit();\n await init(this.workspacePath, this.options.skipGit, false, false, false, false, false, false, {});\n await this.writeWorkspaceFiles();\n await this.reloadBitInWorkspaceDir();\n // Setting the workspace to be in install context to prevent errors during the workspace generation\n // the workspace will be in install context until the end of the generation install process\n this.workspace.inInstallContext = true;\n await this.setupGitBitmapMergeDriver();\n await this.createComponentsFromRemote();\n await this.forkComponentsFromRemote();\n await this.importComponentsFromRemote();\n await this.workspace.clearCache();\n await this.install.install(undefined, {\n dedupe: true,\n import: false,\n copyPeerToRuntimeOnRoot: true,\n copyPeerToRuntimeOnComponents: false,\n updateExisting: false,\n });\n\n // compile the components again now that we have the dependencies installed\n await this.compileComponents(true);\n await this.wsConfigFiles.writeConfigFiles({});\n } catch (err: any) {\n this.logger?.error(`failed generating a new workspace, will delete the dir ${this.workspacePath}`, err);\n await fs.remove(this.workspacePath);\n throw err;\n }\n\n return this.workspacePath;\n }\n\n private async initGit() {\n if (this.options.skipGit) return;\n const gitExecutablePath = getGitExecutablePath();\n const params = ['init'];\n try {\n await execa(gitExecutablePath, params);\n } catch (err: any) {\n if (err.exitCodeName === 'ENOENT') {\n throw new GitNotFound(gitExecutablePath, err);\n }\n throw err;\n }\n }\n\n private async setupGitBitmapMergeDriver() {\n if (this.options.skipGit) return;\n await this.git.setGitMergeDriver({ global: false });\n }\n\n private async buildUI() {\n const uiMain = this.harmony.get<UiMain>(UIAspect.id);\n await uiMain.createRuntime({});\n }\n\n private getWorkspaceContext(): WorkspaceContext {\n return {\n name: this.workspaceName,\n defaultScope: this.options.defaultScope,\n empty: this.options.empty,\n aspectComponent: this.aspectComponent,\n template: this.template,\n skipGit: this.options.skipGit,\n };\n }\n\n /**\n * writes the generated template files to the default directory set in the workspace config\n */\n private async writeWorkspaceFiles(): Promise<void> {\n const workspaceContext = this.getWorkspaceContext();\n const templateFiles = await this.template.generateFiles(workspaceContext);\n await Promise.all(\n templateFiles.map(async (templateFile) => {\n await fs.outputFile(join(this.workspacePath, templateFile.relativePath), templateFile.content);\n })\n );\n }\n\n private async reloadBitInWorkspaceDir() {\n this.harmony = await loadBit(this.workspacePath);\n this.workspace = this.harmony.get<Workspace>(WorkspaceAspect.id);\n this.install = this.harmony.get<InstallMain>(InstallAspect.id);\n const loggerMain = this.harmony.get<LoggerMain>(LoggerAspect.id);\n this.logger = loggerMain.createLogger(GeneratorAspect.id);\n this.importer = this.harmony.get<ImporterMain>(ImporterAspect.id);\n this.forking = this.harmony.get<ForkingMain>(ForkingAspect.id);\n this.git = this.harmony.get<GitMain>(GitAspect.id);\n this.wsConfigFiles = this.harmony.get<WorkspaceConfigFilesMain>(WorkspaceConfigFilesAspect.id);\n this.generator = this.harmony.get<GeneratorMain>(GeneratorAspect.id);\n }\n\n private async createComponentsFromRemote() {\n if (this.options.empty || !this.template.create) return;\n const workspaceContext = this.getWorkspaceContext();\n const componentsToCreate = this.template.create(workspaceContext);\n await pMapSeries(componentsToCreate, async (componentToCreate) => {\n return this.generator.generateComponentTemplate(\n [componentToCreate.componentName],\n componentToCreate.templateName,\n {\n aspect: componentToCreate.aspect,\n env: componentToCreate.env,\n path: componentToCreate.path,\n scope: componentToCreate.scope,\n }\n );\n });\n }\n\n private async forkComponentsFromRemote() {\n if (this.options.empty) return;\n const workspaceContext = this.getWorkspaceContext();\n const componentsToFork =\n this.template?.importComponents?.(workspaceContext) || this.template?.fork?.(workspaceContext) || [];\n if (!componentsToFork.length) return;\n const componentsToForkRestructured = componentsToFork.map(({ id, targetName, path, env, config, targetScope }) => ({\n sourceId: id,\n targetId: targetName,\n targetScope,\n path,\n env,\n config,\n }));\n await this.forking.forkMultipleFromRemote(componentsToForkRestructured, {\n scope: this.workspace.defaultScope,\n refactor: true,\n install: false,\n });\n }\n\n private async importComponentsFromRemote() {\n if (this.options.empty) return;\n const workspaceContext = this.getWorkspaceContext();\n const componentsToImport = this.template?.import?.(workspaceContext) || [];\n\n if (!componentsToImport.length) return;\n\n await pMapSeries(componentsToImport, async (componentToImport) => {\n await this.importer.import(\n {\n ids: [componentToImport.id],\n installNpmPackages: false,\n writeConfigFiles: false,\n writeToPath: componentToImport.path,\n },\n []\n );\n });\n\n await this.workspace.bitMap.write('new');\n }\n\n private async compileComponents(clearCache = true) {\n if (clearCache) {\n await this.workspace.clearCache();\n }\n const compiler = this.harmony.get<CompilerMain>(CompilerAspect.id);\n await compiler.compileOnWorkspace();\n }\n}\n"],"mappings":"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"}
@@ -40,7 +40,7 @@ export interface BaseWorkspaceOptions {
40
40
  /**
41
41
  * WorkspaceContext represents foundational properties for a workspace context.
42
42
  */
43
- export declare type WorkspaceContext = BaseWorkspaceOptions;
43
+ export type WorkspaceContext = BaseWorkspaceOptions;
44
44
  export interface WorkspaceFile {
45
45
  /**
46
46
  * relative path of the file within the workspace.
@@ -102,7 +102,7 @@ export interface ForkComponentInfo extends ImportComponentInfo {
102
102
  /**
103
103
  * @deprecated use ForkComponentInfo instead.
104
104
  */
105
- export declare type ComponentToImport = ForkComponentInfo;
105
+ export type ComponentToImport = ForkComponentInfo;
106
106
  export interface ImportComponentInfo {
107
107
  /**
108
108
  * full component id
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/generator",
3
- "version": "1.0.108",
3
+ "version": "1.0.110",
4
4
  "homepage": "https://bit.cloud/teambit/generator/generator",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.generator",
8
8
  "name": "generator",
9
- "version": "1.0.108"
9
+ "version": "1.0.110"
10
10
  },
11
11
  "dependencies": {
12
12
  "camelcase": "6.2.0",
@@ -17,47 +17,43 @@
17
17
  "graphql-tag": "2.12.1",
18
18
  "lodash": "4.17.21",
19
19
  "execa": "2.1.0",
20
- "core-js": "^3.0.0",
21
- "@babel/runtime": "7.20.0",
22
20
  "@teambit/bit-error": "0.0.404",
23
21
  "@teambit/component-id": "1.2.0",
24
22
  "@teambit/harmony": "0.4.6",
25
23
  "@teambit/git.modules.git-ignore": "1.0.2",
26
- "@teambit/envs": "1.0.107",
27
- "@teambit/logger": "0.0.932",
28
- "@teambit/new-component-helper": "1.0.107",
29
- "@teambit/tracker": "1.0.107",
30
- "@teambit/workspace-config-files": "1.0.107",
31
- "@teambit/workspace.modules.node-modules-linker": "0.0.157",
32
- "@teambit/workspace": "1.0.107",
33
- "@teambit/component": "1.0.107",
34
- "@teambit/cli": "0.0.839",
35
- "@teambit/graphql": "1.0.107",
36
- "@teambit/aspect-loader": "1.0.107",
37
- "@teambit/bit": "1.6.0",
38
- "@teambit/git": "1.0.107",
39
- "@teambit/compiler": "1.0.107",
40
- "@teambit/forking": "1.0.107",
41
- "@teambit/importer": "1.0.107",
42
- "@teambit/install": "1.0.107",
43
- "@teambit/ui": "1.0.107",
44
- "@teambit/config": "0.0.858"
24
+ "@teambit/envs": "1.0.109",
25
+ "@teambit/logger": "0.0.934",
26
+ "@teambit/new-component-helper": "1.0.109",
27
+ "@teambit/tracker": "1.0.109",
28
+ "@teambit/workspace-config-files": "1.0.109",
29
+ "@teambit/workspace.modules.node-modules-linker": "0.0.159",
30
+ "@teambit/workspace": "1.0.109",
31
+ "@teambit/component": "1.0.109",
32
+ "@teambit/cli": "0.0.841",
33
+ "@teambit/graphql": "1.0.109",
34
+ "@teambit/aspect-loader": "1.0.109",
35
+ "@teambit/bit": "1.6.2",
36
+ "@teambit/git": "1.0.109",
37
+ "@teambit/compiler": "1.0.109",
38
+ "@teambit/forking": "1.0.109",
39
+ "@teambit/importer": "1.0.109",
40
+ "@teambit/install": "1.0.109",
41
+ "@teambit/ui": "1.0.109",
42
+ "@teambit/config": "0.0.860"
45
43
  },
46
44
  "devDependencies": {
47
45
  "@types/fs-extra": "9.0.7",
48
- "@types/react": "^17.0.8",
49
46
  "@types/lodash": "4.14.165",
50
47
  "@types/mocha": "9.1.0",
51
- "@types/node": "12.20.4",
52
- "@types/react-dom": "^17.0.5",
53
- "@types/jest": "^26.0.0",
54
- "@types/testing-library__jest-dom": "5.9.5",
48
+ "@types/jest": "^29.2.2",
49
+ "@types/testing-library__jest-dom": "^5.9.5",
50
+ "@teambit/harmony.envs.core-aspect-env": "0.0.14",
55
51
  "@teambit/generator.aspect-docs.generator": "0.0.169"
56
52
  },
57
53
  "peerDependencies": {
58
- "@teambit/legacy": "1.0.624",
59
- "react": "^16.8.0 || ^17.0.0",
60
- "react-dom": "^16.8.0 || ^17.0.0"
54
+ "react": "^17.0.0 || ^18.0.0",
55
+ "@types/react": "^18.2.12",
56
+ "@teambit/legacy": "1.0.624"
61
57
  },
62
58
  "license": "Apache-2.0",
63
59
  "optionalDependencies": {},
@@ -71,7 +67,7 @@
71
67
  },
72
68
  "private": false,
73
69
  "engines": {
74
- "node": ">=12.22.0"
70
+ "node": ">=16.0.0"
75
71
  },
76
72
  "repository": {
77
73
  "type": "git",
@@ -80,12 +76,9 @@
80
76
  "keywords": [
81
77
  "bit",
82
78
  "bit-aspect",
79
+ "bit-core-aspect",
83
80
  "components",
84
81
  "collaboration",
85
- "web",
86
- "react",
87
- "react-components",
88
- "angular",
89
- "angular-components"
82
+ "web"
90
83
  ]
91
84
  }
package/tsconfig.json CHANGED
@@ -1,38 +1,33 @@
1
1
  {
2
2
  "compilerOptions": {
3
3
  "lib": [
4
- "es2019",
5
- "DOM",
6
- "ES6",
7
- "DOM.Iterable",
8
- "ScriptHost"
4
+ "esnext",
5
+ "dom",
6
+ "dom.Iterable"
9
7
  ],
10
- "target": "es2015",
11
- "module": "CommonJS",
12
- "jsx": "react",
13
- "allowJs": true,
14
- "composite": true,
8
+ "target": "es2020",
9
+ "module": "es2020",
10
+ "jsx": "react-jsx",
15
11
  "declaration": true,
16
12
  "sourceMap": true,
17
- "skipLibCheck": true,
18
13
  "experimentalDecorators": true,
19
- "outDir": "dist",
14
+ "skipLibCheck": true,
20
15
  "moduleResolution": "node",
21
16
  "esModuleInterop": true,
22
- "rootDir": ".",
23
17
  "resolveJsonModule": true,
24
- "emitDeclarationOnly": true,
25
- "emitDecoratorMetadata": true,
26
- "allowSyntheticDefaultImports": true,
27
- "strictPropertyInitialization": false,
28
- "strict": true,
29
- "noImplicitAny": false,
30
- "preserveConstEnums": true
18
+ "allowJs": true,
19
+ "outDir": "dist",
20
+ "emitDeclarationOnly": true
31
21
  },
32
22
  "exclude": [
23
+ "artifacts",
24
+ "public",
33
25
  "dist",
26
+ "node_modules",
27
+ "package.json",
34
28
  "esm.mjs",
35
- "package.json"
29
+ "**/*.cjs",
30
+ "./dist"
36
31
  ],
37
32
  "include": [
38
33
  "**/*",
package/types/asset.d.ts CHANGED
@@ -5,12 +5,12 @@ declare module '*.png' {
5
5
  declare module '*.svg' {
6
6
  import type { FunctionComponent, SVGProps } from 'react';
7
7
 
8
- export const ReactComponent: FunctionComponent<SVGProps<SVGSVGElement> & { title?: string }>;
8
+ export const ReactComponent: FunctionComponent<
9
+ SVGProps<SVGSVGElement> & { title?: string }
10
+ >;
9
11
  const src: string;
10
12
  export default src;
11
13
  }
12
-
13
- // @TODO Gilad
14
14
  declare module '*.jpg' {
15
15
  const value: any;
16
16
  export = value;
@@ -27,3 +27,15 @@ declare module '*.bmp' {
27
27
  const value: any;
28
28
  export = value;
29
29
  }
30
+ declare module '*.otf' {
31
+ const value: any;
32
+ export = value;
33
+ }
34
+ declare module '*.woff' {
35
+ const value: any;
36
+ export = value;
37
+ }
38
+ declare module '*.woff2' {
39
+ const value: any;
40
+ export = value;
41
+ }