@teambit/envs 1.0.494 → 1.0.496

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"names":["_path","data","require","_findRoot","_interopRequireDefault","_toolboxModules","_fsExtra","_pLocate","_commentJson","_cli","_component","_graphql","_issues","_pMapSeries","_componentIssues","_harmony","_logger","_bitError","_toolboxArray","_lodash","_worker","_componentId","_environments","_environments2","_runtime","_envDefinition","_envServiceList","_envs","_env","_exceptions","_env2","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DEFAULT_ENV","exports","EnvsMain","icon","constructor","config","harmony","envSlot","logger","servicesRegistry","componentMain","loggerMain","workerMain","envJsoncMergeCustomizerSlot","Set","createEnvironment","components","createRuntime","setCoreAspectIds","ids","coreAspectIds","isCoreAspect","id","includes","addFailedToLoadEnvs","failedToLoadEnvs","add","envIds","addFailedToLoadExt","failedToLoadExt","has","resetFailedToLoadEnvs","clear","getFailedToLoadEnvs","Array","from","extId","uniq","getDefaultEnv","defaultEnv","get","Error","EnvDefinition","getCoreEnvsIds","compose","targetEnv","envTransformers","a","reduce","acc","transformer","override","propsToOverride","env","merge","sourceEnv","allNames","prototype","getPrototypeOf","name","getOwnPropertyNames","key","fn","bind","hasEnvManifest","envComponent","legacyFiles","undefined","files","filesystem","envJson","find","file","relative","getEnvManifest","object","parse","contents","toString","resolvedObject","recursivelyMergeWithParentManifest","path","originPath","extends","parentPackageName","parentPath","resolveFrom","parentResolvedPath","findRoot","existsSync","info","parentEnvJsoncPath","map","fileName","join","filePath","consoleWarning","parentStr","readFileSync","parentObject","mergedObject","mergeEnvManifests","parent","child","merged","mergeCustomizer","getAllRegisteredEnvJsoncCustomizers","customizer","oneMerged","hasEnvManifestById","envId","requesting","component","getEnvComponentByEnvId","getEnvData","envsData","state","aspects","EnvsAspect","getEnvIdFromEnvsData","ignoreVersion","rawEnvId","envIdWithoutVersion","ComponentID","fromString","toStringWithoutVersion","getEnvId","envIdFromEnvData","withVersion","resolveEnv","withVersionMatch","toArray","withVersionMatchId","exactMatch","exactMatchId","EnvNotConfiguredForComponent","isUsingCoreEnv","isCoreEnv","getEnv","envDef","getEnvDefinitionByStringId","EnvNotFound","getEnvComponent","host","getHost","newId","resolveComponentId","BitError","getOrCalculateEnv","calculateEnv","getDescriptor","calcDescriptor","opts","componentDescriptor","getComponentEnvDescriptor","envComponentSelfDescriptor","getEnvSelfDescriptor","result","self","isEnvRegistered","getEnvFromComponent","rawServices","getServices","services","toObject","selfDescriptor","getEnvDescriptorFromEnvDef","__getDescriptor","systemDescriptor","type","split","description","matchedEntry","entries","aspectEntry","calculateEnvId","envIdFromEnvsConfig","getEnvIdFromEnvsConfig","envIdFromEnvsConfigWithoutVersion","findFirstEnv","finalId","getEnvDefinitionById","skipWarnings","printWarningIfFirstTime","envDefFromList","getAllEnvsConfiguredOnComponent","getEnvFromEnvsConfig","getEnvsNotFromEnvsConfig","hasEnvConfigured","Boolean","getAllRegisteredEnvsIds","envData","getAllRegisteredEnvs","customizerEntry","getEnvPlugin","EnvPlugin","getEnvIdFromEnvsLegacyExtensions","extensions","envsAspect","findCoreExtension","calculateEnvIdFromExtensions","extension","extensionId","stringId","calculateEnvFromExtensions","getEnvDefinitionByLegacyExtension","isFoundWithoutVersion","pLocate","idWithoutVersion","envDefWithoutVersion","hasManifest","isUsingEnvEnv","finalEnvId","getEnvDefinition","allVersions","all","first","head","getEnvsEnvDefinition","message","alreadyShownWarning","isUsingAspectEnv","isEnv","registerService","envServices","register","allServices","currentServices","service","implements","warn","EnvServiceList","registerEnv","registerEnvJsoncMergeCustomizer","addNonLoadedEnvAsComponentIssues","pMapSeries","envIdStr","foundComp","c","issues","getOrCreate","IssuesClasses","ExternalEnvWithoutVersion","componentId","NonLoadedEnv","Runtime","aggregateByDefs","throwForDuplicateComponents","envsMap","Promise","envAspectDef","getEnvAspectDef","EnvRuntime","resolvedAspects","resolveAspects","MainRuntime","requestedOnly","filterByRuntime","useScopeAspectsCapsule","def","idsStr","duplications","findDuplications","provider","graphql","loggerAspect","cli","worker","context","createLogger","envs","registerShowFragments","EnvFragment","registerAddComponentsIssues","envsCmd","EnvsCmd","commands","ListEnvsCmd","GetEnvCmd","environmentsSchema","Slot","withType","GraphqlAspect","LoggerAspect","ComponentAspect","CLIAspect","WorkerAspect","IssuesAspect","addRuntime"],"sources":["environments.main.runtime.ts"],"sourcesContent":["import { join } from 'path';\nimport findRoot from 'find-root';\nimport { resolveFrom } from '@teambit/toolbox.modules.module-resolver';\nimport { existsSync, readFileSync } from 'fs-extra';\nimport pLocate from 'p-locate';\nimport { parse } from 'comment-json';\nimport { SourceFile } from '@teambit/component.sources';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, ComponentAspect, ComponentMain } from '@teambit/component';\nimport type { EnvPolicyConfigObject } from '@teambit/dependency-resolver';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { IssuesAspect, IssuesMain } from '@teambit/issues';\nimport type { EnvJsoncPatterns } from '@teambit/dev-files';\nimport pMapSeries from 'p-map-series';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { Harmony, Slot, SlotRegistry } from '@teambit/harmony';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport type { AspectDefinition } from '@teambit/aspect-loader';\nimport { ExtensionDataList, ExtensionDataEntry } from '@teambit/legacy.extension-data';\nimport { BitError } from '@teambit/bit-error';\nimport { findDuplications } from '@teambit/toolbox.array.duplications-finder';\nimport { head, uniq } from 'lodash';\nimport { WorkerAspect, WorkerMain } from '@teambit/worker';\nimport { ComponentID } from '@teambit/component-id';\nimport { EnvService } from './services';\nimport { Environment } from './environment';\nimport { EnvsAspect } from './environments.aspect';\nimport { environmentsSchema } from './environments.graphql';\nimport { EnvRuntime, Runtime } from './runtime';\nimport { EnvDefinition } from './env-definition';\nimport { EnvServiceList } from './env-service-list';\nimport { EnvsCmd, GetEnvCmd, ListEnvsCmd } from './envs.cmd';\nimport { EnvFragment } from './env.fragment';\nimport { EnvNotFound, EnvNotConfiguredForComponent } from './exceptions';\nimport { EnvPlugin } from './env.plugin';\n\nexport type EnvJsonc = {\n extends?: string;\n policy?: EnvPolicyConfigObject;\n patterns?: EnvJsoncPatterns;\n};\n\nexport type EnvJsoncMergeCustomizer = (parentObj: EnvJsonc, childObj: EnvJsonc) => Partial<EnvJsonc>;\n\nexport type EnvsRegistry = SlotRegistry<Environment>;\nexport type EnvJsoncMergeCustomizerRegistry = SlotRegistry<EnvJsoncMergeCustomizer>;\n\nexport type EnvsConfig = {\n env: string;\n options: EnvOptions;\n};\n\ntype GetCalcEnvOptions = {\n skipWarnings?: boolean;\n};\n\nexport type EnvOptions = {};\n\nexport type EnvTransformer = (env: Environment) => Environment;\n\nexport type ServicesRegistry = SlotRegistry<Array<EnvService<any>>>;\n\nexport type RegularCompDescriptor = {\n id: string;\n icon?: string;\n type?: string;\n name?: string;\n description?: string;\n};\nexport type EnvCompDescriptorProps = RegularCompDescriptor & {\n services?: {\n env: {\n id: string;\n icon: string;\n name?: string;\n description?: string;\n };\n services: Array<{\n id: string;\n name?: string;\n description?: string;\n data: any;\n }>;\n };\n};\n\nexport type EnvCompDescriptor = EnvCompDescriptorProps & {\n self?: EnvCompDescriptorProps;\n};\n\nexport type Descriptor = RegularCompDescriptor | EnvCompDescriptor;\n\nexport const DEFAULT_ENV = 'teambit.harmony/node';\n\nexport class EnvsMain {\n /**\n * Envs that are failed to load\n */\n private failedToLoadEnvs = new Set<string>();\n /**\n * Extensions that are failed to load\n * We use this as sometime when we couldn't load an extension we don't know if it's an env or not\n * We should ideally take it from the aspect loader aspect, but right now the aspect loader is using envs\n */\n private failedToLoadExt = new Set<string>();\n /**\n * Ids of envs (not neccesrraly loaded successfully)\n */\n public envIds = new Set<string>();\n\n static runtime = MainRuntime;\n\n private alreadyShownWarning = {};\n\n private coreAspectIds: string[] = [];\n\n /**\n * icon of the extension.\n */\n icon() {\n return `<svg width=\"50\" height=\"50\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"25\" cy=\"25\" r=\"20\"/>\n </svg>`;\n }\n\n constructor(\n /**\n * environments extension configuration.\n */\n readonly config: EnvsConfig,\n\n /**\n * harmony context.\n */\n private harmony: Harmony,\n\n /**\n * slot for allowing extensions to register new environment.\n */\n private envSlot: EnvsRegistry,\n\n private logger: Logger,\n\n private servicesRegistry: ServicesRegistry,\n\n private componentMain: ComponentMain,\n\n private loggerMain: LoggerMain,\n\n private workerMain: WorkerMain,\n\n private envJsoncMergeCustomizerSlot: EnvJsoncMergeCustomizerRegistry\n ) {}\n\n /**\n * creates a new runtime environments for a set of components.\n */\n async createEnvironment(components: Component[]): Promise<Runtime> {\n return this.createRuntime(components);\n }\n\n setCoreAspectIds(ids: string[]) {\n this.coreAspectIds = ids;\n }\n isCoreAspect(id: string) {\n return this.coreAspectIds.includes(id);\n }\n\n /**\n *\n * @param id\n */\n /**\n * This function adds an extension ID to a set of failed to load extensions.\n * This mostly used by the aspect loader to add such issues\n * Then it is used to hide different errors that are caused by the same issue.\n * @param {string} id - string - represents the unique identifier of an extension that failed to load.\n */\n addFailedToLoadEnvs(id: string) {\n this.failedToLoadEnvs.add(id);\n this.envIds.add(id);\n }\n\n addFailedToLoadExt(id: string) {\n this.failedToLoadExt.add(id);\n if (this.envIds.has(id)) {\n this.addFailedToLoadEnvs(id);\n }\n }\n\n resetFailedToLoadEnvs() {\n this.failedToLoadEnvs.clear();\n this.failedToLoadExt.clear();\n }\n\n getFailedToLoadEnvs() {\n const failedToLoadEnvs = Array.from(this.failedToLoadEnvs);\n // Add all extensions which are also envs\n for (const extId of this.failedToLoadExt) {\n if (this.envIds.has(extId)) {\n failedToLoadEnvs.push(extId);\n }\n }\n return uniq(failedToLoadEnvs);\n }\n\n /**\n * get the configured default env.\n */\n getDefaultEnv(): EnvDefinition {\n const defaultEnv = this.envSlot.get(DEFAULT_ENV);\n if (!defaultEnv) throw new Error('default env must be set.');\n\n return new EnvDefinition(DEFAULT_ENV, defaultEnv);\n }\n\n getCoreEnvsIds(): string[] {\n return [\n 'teambit.harmony/aspect',\n 'teambit.react/react',\n 'teambit.harmony/node',\n 'teambit.react/react-native',\n 'teambit.html/html',\n 'teambit.mdx/mdx',\n 'teambit.envs/env',\n 'teambit.mdx/readme',\n 'teambit.harmony/bit-custom-aspect',\n ];\n }\n\n /**\n * compose a new environment from a list of environment transformers.\n */\n compose(targetEnv: Environment, envTransformers: EnvTransformer[]) {\n const a = envTransformers.reduce((acc, transformer) => {\n acc = transformer(acc);\n return acc;\n }, targetEnv);\n\n return a;\n }\n\n /**\n * create an env transformer which overrides specific env properties.\n */\n override(propsToOverride: Environment): EnvTransformer {\n return (env: Environment) => {\n return this.merge(propsToOverride, env);\n };\n }\n\n /**\n * compose two environments into one.\n */\n merge<T extends Environment, S extends Environment>(targetEnv: Environment, sourceEnv: Environment): T & S {\n const allNames = new Set<string>();\n const keys = ['icon', 'name', 'description'];\n for (let o = sourceEnv; o !== Object.prototype; o = Object.getPrototypeOf(o)) {\n for (const name of Object.getOwnPropertyNames(o)) {\n allNames.add(name);\n }\n }\n\n allNames.forEach((key: string) => {\n const fn = sourceEnv[key];\n if (targetEnv[key]) return;\n if (keys.includes(key)) targetEnv[key] = fn;\n if (!fn || !fn.bind) {\n return;\n }\n targetEnv[key] = fn.bind(sourceEnv);\n });\n\n return targetEnv as T & S;\n }\n\n /**\n * This function checks if an environment manifest file exists in a given component or set of legacy files.\n * @param {Component} [envComponent] - A component object that represents an environment. It contains information about\n * the files and directories that make up the environment.\n * @param {SourceFile[]} [legacyFiles] - An optional array of SourceFile objects representing the files in the legacy\n * file system. If this parameter is not provided, the function will attempt to retrieve the files from the envComponent\n * parameter.\n * @returns a boolean value indicating whether an `env.jsonc` or `env.json` file exists in the `files` array of either\n * the `envComponent` object or the `legacyFiles` array. If neither `envComponent` nor `legacyFiles` are provided, the\n * function returns `undefined`.\n */\n hasEnvManifest(envComponent?: Component, legacyFiles?: SourceFile[]): boolean | undefined {\n if (!envComponent && !legacyFiles) return undefined;\n // @ts-ignore\n const files = legacyFiles || envComponent.filesystem.files;\n const envJson = files.find((file) => {\n return file.relative === 'env.jsonc' || file.relative === 'env.json';\n });\n\n if (!envJson) return false;\n return true;\n }\n\n getEnvManifest(envComponent?: Component, legacyFiles?: SourceFile[]): EnvJsonc | undefined {\n // TODO: maybe throw an error here?\n if (!envComponent && !legacyFiles) return undefined;\n // @ts-ignore\n const files = legacyFiles || envComponent.filesystem.files;\n const envJson = files.find((file) => {\n return file.relative === 'env.jsonc' || file.relative === 'env.json';\n });\n\n if (!envJson) return undefined;\n\n const object: EnvJsonc = parse(envJson.contents.toString('utf8'), undefined, true);\n const resolvedObject = this.recursivelyMergeWithParentManifest(object, envJson.path);\n return resolvedObject;\n }\n\n recursivelyMergeWithParentManifest(object: EnvJsonc, originPath: string): EnvJsonc {\n if (!object.extends) return object;\n const parentPackageName = object.extends;\n const parentPath = resolveFrom(originPath, [parentPackageName]);\n const parentResolvedPath = findRoot(parentPath);\n if (!parentResolvedPath || !existsSync(parentResolvedPath)) {\n this.logger.info(`failed finding parent manifest for ${parentPackageName} at ${parentResolvedPath}`);\n }\n const parentEnvJsoncPath = ['env.jsonc', 'env.json']\n .map((fileName) => join(parentResolvedPath, fileName))\n .find((filePath) => {\n return existsSync(filePath);\n });\n if (!parentEnvJsoncPath) {\n this.logger.consoleWarning(\n `failed finding parent manifest for ${parentPackageName} at ${parentResolvedPath} referred from ${originPath}`\n );\n return object;\n }\n const parentStr = readFileSync(parentEnvJsoncPath).toString('utf8');\n const parentObject: EnvJsonc = parse(parentStr, undefined, true);\n const mergedObject = this.mergeEnvManifests(parentObject, object);\n if (mergedObject.extends) {\n return this.recursivelyMergeWithParentManifest(mergedObject, parentEnvJsoncPath);\n }\n return mergedObject;\n }\n\n mergeEnvManifests(parent: EnvJsonc, child: EnvJsonc): EnvJsonc {\n let merged: EnvJsonc = {};\n const mergeCustomizer = this.getAllRegisteredEnvJsoncCustomizers();\n for (const customizer of mergeCustomizer) {\n const oneMerged = customizer(parent, child);\n merged = { ...merged, ...oneMerged };\n }\n // Take extends specifically from the parent so we can propagate it to the next parent\n if (parent.extends) {\n merged.extends = parent.extends;\n }\n return merged;\n }\n\n async hasEnvManifestById(envId: string, requesting: string): Promise<boolean | undefined> {\n const component = await this.getEnvComponentByEnvId(envId, requesting);\n return this.hasEnvManifest(component);\n }\n\n getEnvData(component: Component): Descriptor {\n let envsData = component.state.aspects.get(EnvsAspect.id);\n if (!envsData) {\n // TODO: remove this once we re-export old components used to store the data here\n envsData = component.state.aspects.get('teambit.workspace/workspace');\n }\n if (!envsData) throw new Error(`env was not configured on component ${component.id.toString()}`);\n return envsData.data as Descriptor;\n }\n\n /**\n * Return the id of the env as configured in the envs data (without version by default)\n * The reason it's not contain version by default is that we want to take the version from the aspect defined on the component itself\n * As this version is stay up to date during tagging the env along with the component\n * @param component\n * @param ignoreVersion\n */\n private getEnvIdFromEnvsData(component: Component, ignoreVersion = true): string | undefined {\n const envsData = this.getEnvData(component);\n if (!envsData) return undefined;\n const rawEnvId = envsData.id;\n if (!rawEnvId) return undefined;\n if (!ignoreVersion) return rawEnvId;\n const envIdWithoutVersion = ComponentID.fromString(rawEnvId).toStringWithoutVersion();\n return envIdWithoutVersion;\n }\n\n /**\n * get the env id of the given component.\n */\n getEnvId(component: Component): string {\n const envIdFromEnvData = this.getEnvIdFromEnvsData(component);\n if (!envIdFromEnvData) {\n // This should never happen\n throw new Error(`no env found for ${component.id.toString()}`);\n }\n const withVersion = this.resolveEnv(component, envIdFromEnvData);\n const withVersionMatch = this.envSlot.toArray().find(([envId]) => {\n return withVersion?.toString() === envId;\n });\n const withVersionMatchId = withVersionMatch?.[0];\n if (withVersionMatchId) return withVersionMatchId;\n\n // Handle core envs\n const exactMatch = this.envSlot.toArray().find(([envId]) => {\n return envIdFromEnvData === envId;\n });\n\n const exactMatchId = exactMatch?.[0];\n if (exactMatchId) return exactMatchId;\n\n if (!withVersion) throw new EnvNotConfiguredForComponent(envIdFromEnvData, component.id.toString());\n return withVersion.toString();\n }\n\n isUsingCoreEnv(component: Component): boolean {\n const envId = this.getEnvId(component);\n return this.isCoreEnv(envId);\n }\n\n isCoreEnv(envId: string): boolean {\n return this.getCoreEnvsIds().includes(envId);\n }\n\n /**\n * get the env of the given component.\n * In case you are asking for the env during on load you should use calculateEnv instead\n */\n getEnv(component: Component): EnvDefinition {\n const id = this.getEnvId(component);\n const envDef = this.getEnvDefinitionByStringId(id);\n if (envDef) {\n return envDef;\n }\n // Do not allow a non existing env\n throw new EnvNotFound(id, component.id.toString());\n }\n\n /**\n * get the env component of the given component.\n */\n async getEnvComponent(component: Component): Promise<Component> {\n const envId = this.getEnvId(component);\n return this.getEnvComponentByEnvId(envId, component.id.toString());\n }\n\n /**\n * get the env component by the env id.\n */\n async getEnvComponentByEnvId(envId: string, requesting?: string): Promise<Component> {\n const host = this.componentMain.getHost();\n const newId = await host.resolveComponentId(envId);\n const envComponent = await host.get(newId);\n if (!envComponent) {\n throw new BitError(`can't load env. env id is ${envId} used by component ${requesting || 'unknown'}`);\n }\n return envComponent;\n }\n\n /**\n * get the env of the given component.\n * This will try to use the regular getEnv but fallback to the calculate env (in case you are using it during on load)\n * This is safe to be used on onLoad as well\n */\n getOrCalculateEnv(component: Component): EnvDefinition {\n try {\n return this.getEnv(component);\n } catch {\n return this.calculateEnv(component);\n }\n }\n\n /**\n * get an environment Descriptor.\n */\n getDescriptor(component: Component): Descriptor | undefined {\n const envsData = this.getEnvData(component);\n envsData.id = this.resolveEnv(component, envsData.id)?.toString() || envsData.id;\n return envsData;\n }\n\n async calcDescriptor(component: Component, opts: GetCalcEnvOptions = {}): Promise<Descriptor | undefined> {\n const componentDescriptor = await this.getComponentEnvDescriptor(component, opts);\n if (!componentDescriptor) return undefined;\n const envComponentSelfDescriptor = await this.getEnvSelfDescriptor(component);\n const result = envComponentSelfDescriptor\n ? { ...componentDescriptor, self: envComponentSelfDescriptor }\n : componentDescriptor;\n return result;\n }\n\n /**\n * Get env descriptor from the env itself if the component is an env\n * This will be empty for regular component, and will only contain data for env themself\n */\n private async getEnvSelfDescriptor(envComponent: Component): Promise<EnvCompDescriptorProps | undefined> {\n // !important calculate only on the env itself.\n if (!this.isEnvRegistered(envComponent.id.toString())) {\n return undefined;\n }\n\n const envDef = this.getEnvFromComponent(envComponent);\n if (!envDef) return undefined;\n\n const rawServices = this.getServices(envDef);\n const services = rawServices.toObject();\n // const selfDescriptor = (await this.getEnvDescriptorFromEnvDef(envDef)) || {};\n const selfDescriptor = await this.getEnvDescriptorFromEnvDef(envDef);\n\n if (!selfDescriptor) return undefined;\n return {\n ...selfDescriptor,\n services,\n };\n }\n\n /**\n * Get env descriptor from the env that a given component is using\n */\n private async getComponentEnvDescriptor(\n component: Component,\n opts: GetCalcEnvOptions = {}\n ): Promise<RegularCompDescriptor | undefined> {\n const envDef = this.calculateEnv(component, opts);\n return this.getEnvDescriptorFromEnvDef(envDef);\n }\n\n private async getEnvDescriptorFromEnvDef(envDef: EnvDefinition): Promise<RegularCompDescriptor | undefined> {\n if (!envDef.env.__getDescriptor || typeof envDef.env.__getDescriptor !== 'function') {\n return undefined;\n }\n const systemDescriptor = await envDef.env.__getDescriptor();\n\n return {\n type: systemDescriptor.type,\n // Make sure to store the env id in the data without the version\n // The version should always come from the aspect id configured on the component\n id: envDef.id.split('@')[0],\n name: envDef.name,\n icon: envDef.env.icon,\n description: envDef.description,\n };\n }\n\n resolveEnv(component: Component, id: string) {\n const matchedEntry = component.state.aspects.entries.find((aspectEntry) => {\n return id === aspectEntry.id.toString() || id === aspectEntry.id.toString({ ignoreVersion: true });\n });\n\n return matchedEntry?.id;\n }\n\n /**\n * This used to calculate the actual env during the component load.\n * Do not use it to get the env (use getEnv instead)\n * This should be used only during on load\n */\n async calculateEnvId(component: Component): Promise<ComponentID> {\n // Search first for env configured via envs aspect itself\n const envIdFromEnvsConfig = this.getEnvIdFromEnvsConfig(component);\n // if (!envIdFromEnvsConfig) return this.getDefaultEnv();\n const envIdFromEnvsConfigWithoutVersion = envIdFromEnvsConfig\n ? ComponentID.fromString(envIdFromEnvsConfig).toStringWithoutVersion()\n : undefined;\n\n if (envIdFromEnvsConfig && this.isCoreEnv(envIdFromEnvsConfig)) {\n return ComponentID.fromString(envIdFromEnvsConfig);\n }\n\n // in some cases we have the id configured in the teambit.envs/envs but without the version\n // in such cases we won't find it in the slot\n // we search in the component aspect list a matching aspect which is match the id from the teambit.envs/envs\n if (envIdFromEnvsConfigWithoutVersion) {\n const matchedEntry = component.state.aspects.entries.find((aspectEntry) => {\n return (\n envIdFromEnvsConfigWithoutVersion === aspectEntry.id.toString() ||\n envIdFromEnvsConfigWithoutVersion === aspectEntry.id.toString({ ignoreVersion: true })\n );\n });\n\n if (matchedEntry?.id) return matchedEntry?.id;\n }\n\n // in case there is no config in teambit.envs/envs search the aspects for the first env that registered as env\n let ids: string[] = [];\n component.state.aspects.entries.forEach((aspectEntry) => {\n ids.push(aspectEntry.id.toString());\n // ids.push(aspectEntry.id.toString({ ignoreVersion: true }));\n });\n ids = uniq(ids);\n const envId = await this.findFirstEnv(ids);\n const finalId = envId || this.getDefaultEnv().id;\n return ComponentID.fromString(finalId);\n }\n\n /**\n * This used to calculate the actual env during the component load.\n * Do not use it to get the env (use getEnv instead)\n * This should be used only during on load\n */\n calculateEnv(component: Component, opts: GetCalcEnvOptions = {}): EnvDefinition {\n // Search first for env configured via envs aspect itself\n const envIdFromEnvsConfig = this.getEnvIdFromEnvsConfig(component);\n let envIdFromEnvsConfigWithoutVersion;\n if (envIdFromEnvsConfig) {\n envIdFromEnvsConfigWithoutVersion = ComponentID.fromString(envIdFromEnvsConfig).toStringWithoutVersion();\n const envDef = this.getEnvDefinitionByStringId(envIdFromEnvsConfigWithoutVersion);\n if (envDef) {\n this.envIds.add(envDef.id);\n return envDef;\n }\n }\n\n // in some cases we have the id configured in the teambit.envs/envs but without the version\n // in such cases we won't find it in the slot\n // we search in the component aspect list a matching aspect which is match the id from the teambit.envs/envs\n if (envIdFromEnvsConfigWithoutVersion) {\n const matchedEntry = component.state.aspects.entries.find((aspectEntry) => {\n return (\n envIdFromEnvsConfigWithoutVersion === aspectEntry.id.toString() ||\n envIdFromEnvsConfigWithoutVersion === aspectEntry.id.toString({ ignoreVersion: true })\n );\n });\n if (matchedEntry) {\n // during the tag process, the version in the aspect-entry-id is changed and is not the\n // same as it was when it registered to the slot.\n const envDef = this.getEnvDefinitionById(matchedEntry.id);\n if (envDef) {\n this.envIds.add(envDef.id);\n return envDef;\n }\n if (!opts.skipWarnings) {\n // Do not allow a non existing env\n this.printWarningIfFirstTime(\n matchedEntry.id.toString(),\n `environment with ID: ${matchedEntry.id.toString()} configured on component ${component.id.toString()} was not loaded (run \"bit install\")`\n );\n }\n }\n // Do not allow configure teambit.envs/envs on the component without configure the env aspect itself\n // const errMsg = new EnvNotConfiguredForComponent(envIdFromEnvsConfig as string, component.id.toString()).message;\n // this.printWarningIfFirstTime(envIdFromEnvsConfig as string, errMsg);\n }\n\n // in case there is no config in teambit.envs/envs search the aspects for the first env that registered as env\n let envDefFromList;\n component.state.aspects.entries.find((aspectEntry) => {\n const envDef = this.getEnvDefinitionById(aspectEntry.id);\n if (envDef) {\n envDefFromList = envDef;\n }\n return !!envDef;\n });\n\n if (envDefFromList) {\n this.envIds.add(envDefFromList.id);\n return envDefFromList;\n }\n return this.getDefaultEnv();\n }\n\n /**\n * an env can be configured on a component in two ways:\n * 1) explicitly inside \"teambit.envs/envs\". `{ \"teambit.envs/envs\": { \"env\": \"my-env\" } }`\n * 2) the env aspect is set on the variant as any other aspect, e.g. `{ \"my-env\": {} }`\n *\n * this method returns #1 if exists, otherwise, #2.\n */\n getAllEnvsConfiguredOnComponent(component: Component): EnvDefinition[] {\n // if a component has \"envs\" config, use it and ignore other components that are set up\n // in this components which happen to be envs.\n const envDef = this.getEnvFromEnvsConfig(component);\n if (envDef) {\n return [envDef];\n }\n\n return this.getEnvsNotFromEnvsConfig(component);\n }\n\n /**\n * whether a component has an env configured (either by variant or .bitmap).\n */\n hasEnvConfigured(component: Component): boolean {\n return Boolean(this.getAllEnvsConfiguredOnComponent(component).length);\n }\n\n getAllRegisteredEnvsIds(): string[] {\n return this.envSlot.toArray().map((envData) => envData[0]);\n }\n\n getAllRegisteredEnvs(): Environment[] {\n return this.envSlot.toArray().map((envData) => envData[1]);\n }\n\n getAllRegisteredEnvJsoncCustomizers(): EnvJsoncMergeCustomizer[] {\n return this.envJsoncMergeCustomizerSlot.toArray().map((customizerEntry) => customizerEntry[1]);\n }\n\n getEnvPlugin() {\n return new EnvPlugin(this.envSlot, this.servicesRegistry, this.loggerMain, this.workerMain, this.harmony);\n }\n\n /**\n * an env can be configured on a component in two ways:\n * 1) explicitly inside \"teambit.envs/envs\". `{ \"teambit.envs/envs\": { \"env\": \"my-env\" } }`\n * 2) the env aspect is set on the variant as any other aspect, e.g. `{ \"my-env\": {} }`\n *\n * this method returns only #1\n */\n getEnvFromEnvsConfig(component: Component): EnvDefinition | undefined {\n const envIdFromEnvsConfig = this.getEnvIdFromEnvsConfig(component);\n if (!envIdFromEnvsConfig) {\n return undefined;\n }\n const envIdFromEnvsConfigWithoutVersion = ComponentID.fromString(envIdFromEnvsConfig).toStringWithoutVersion();\n const envDef = this.getEnvDefinitionByStringId(envIdFromEnvsConfigWithoutVersion);\n return envDef;\n }\n\n /**\n * an env can be configured on a component in two ways:\n * 1) explicitly inside \"teambit.envs/envs\". `{ \"teambit.envs/envs\": { \"env\": \"my-env\" } }`\n * 2) the env aspect is set on the variant as any other aspect, e.g. `{ \"my-env\": {} }`\n *\n * this method returns only #2\n */\n getEnvsNotFromEnvsConfig(component: Component): EnvDefinition[] {\n return component.state.aspects.entries.reduce((acc: EnvDefinition[], aspectEntry) => {\n const envDef = this.getEnvDefinitionById(aspectEntry.id);\n if (envDef) acc.push(envDef);\n return acc;\n }, []);\n }\n\n getEnvIdFromEnvsLegacyExtensions(extensions: ExtensionDataList): string | undefined {\n const envsAspect = extensions.findCoreExtension(EnvsAspect.id);\n const envIdFromEnvsConfig = envsAspect?.data.id;\n return envIdFromEnvsConfig;\n }\n\n /**\n * @deprecated DO NOT USE THIS METHOD ANYMORE!!! (PLEASE USE .calculateEnvId() instead!)\n */\n async calculateEnvIdFromExtensions(extensions: ExtensionDataList): Promise<string> {\n // Search first for env configured via envs aspect itself\n const envsAspect = extensions.findCoreExtension(EnvsAspect.id);\n const envIdFromEnvsConfig = envsAspect?.config.env;\n\n const envIdFromEnvsConfigWithoutVersion = envIdFromEnvsConfig\n ? ComponentID.fromString(envIdFromEnvsConfig).toStringWithoutVersion()\n : undefined;\n\n if (envIdFromEnvsConfig && this.isCoreEnv(envIdFromEnvsConfig)) {\n return envIdFromEnvsConfig;\n }\n\n // in some cases we have the id configured in the teambit.envs/envs but without the version\n // in such cases we won't find it in the slot\n // we search in the component aspect list a matching aspect which is match the id from the teambit.envs/envs\n if (envIdFromEnvsConfigWithoutVersion) {\n const matchedEntry = extensions.find((extension) => {\n if (extension.extensionId) {\n return (\n envIdFromEnvsConfigWithoutVersion === extension.extensionId.toString() ||\n envIdFromEnvsConfigWithoutVersion === extension.extensionId.toString({ ignoreVersion: true })\n );\n }\n return envIdFromEnvsConfigWithoutVersion === extension.stringId;\n });\n if (matchedEntry?.id) return matchedEntry?.stringId;\n }\n\n // in case there is no config in teambit.envs/envs search the aspects for the first env that registered as env\n const ids: string[] = [];\n extensions.forEach((extension) => {\n if (extension.extensionId) {\n ids.push(extension.extensionId.toString());\n } else {\n ids.push(extension.stringId);\n }\n });\n const envId = await this.findFirstEnv(ids);\n const finalId = envId || this.getDefaultEnv().id;\n return finalId;\n }\n\n /**\n * @deprecated DO NOT USE THIS METHOD ANYMORE!!! (PLEASE USE .calculateEnv() instead!)\n */\n async calculateEnvFromExtensions(extensions: ExtensionDataList): Promise<EnvDefinition> {\n // Search first for env configured via envs aspect itself\n const envsAspect = extensions.findCoreExtension(EnvsAspect.id);\n const envIdFromEnvsConfig = envsAspect?.config.env;\n let envIdFromEnvsConfigWithoutVersion;\n\n if (envIdFromEnvsConfig) {\n envIdFromEnvsConfigWithoutVersion = ComponentID.fromString(envIdFromEnvsConfig).toStringWithoutVersion();\n const envDef = this.getEnvDefinitionByStringId(envIdFromEnvsConfigWithoutVersion);\n if (envDef) {\n this.envIds.add(envDef.id);\n return envDef;\n }\n }\n\n // in some cases we have the id configured in the teambit.envs/envs but without the version\n // in such cases we won't find it in the slot\n // we search in the component aspect list a matching aspect which is match the id from the teambit.envs/envs\n if (envIdFromEnvsConfigWithoutVersion) {\n const matchedEntry = extensions.find((extension) => {\n if (extension.extensionId) {\n return (\n envIdFromEnvsConfigWithoutVersion === extension.extensionId.toString() ||\n envIdFromEnvsConfigWithoutVersion === extension.extensionId.toString({ ignoreVersion: true })\n );\n }\n return envIdFromEnvsConfigWithoutVersion === extension.stringId;\n });\n if (matchedEntry) {\n // during the tag process, the version in the aspect-entry-id is changed and is not the\n // same as it was when it registered to the slot.\n const envDef = this.getEnvDefinitionByLegacyExtension(matchedEntry);\n if (envDef) {\n this.envIds.add(envDef.id);\n return envDef;\n }\n // Do not allow a non existing env\n // this.printWarningIfFirstTime(\n // matchedEntry.id.toString(),\n // `environment with ID: ${matchedEntry.id.toString()} was not found`\n // );\n }\n // Do not allow configure teambit.envs/envs on the component without configure the env aspect itself\n // const errMsg = new EnvNotConfiguredForComponent(envIdFromEnvsConfig).message;\n // this.printWarningIfFirstTime(envIdFromEnvsConfig, errMsg);\n }\n\n // in case there is no config in teambit.envs/envs search the aspects for the first env that registered as env\n const ids: string[] = [];\n extensions.forEach((extension) => {\n if (extension.extensionId) {\n ids.push(extension.extensionId.toString());\n } else {\n ids.push(extension.stringId);\n }\n });\n const envId = await this.findFirstEnv(ids);\n const envDef = envId ? this.getEnvDefinitionByStringId(envId) : undefined;\n\n return envDef || this.getDefaultEnv();\n }\n\n /**\n * This function finds the first environment ID from a list of IDs by checking if it is register as env (to the slot).\n * or contains env.jsonc file\n * @param {string[]} ids - `ids` is an array of string values representing environment IDs. The function `findFirstEnv`\n * takes this array as input and returns a Promise that resolves to a string value representing the first environment ID\n * that matches certain conditions.\n * @returns The `findFirstEnv` function returns a Promise that resolves to a string or undefined. The string represents\n * the ID of the first environment that matches the conditions specified in the function, or undefined if no environment\n * is found.\n */\n private async findFirstEnv(ids: string[]): Promise<string | undefined> {\n let isFoundWithoutVersion = false;\n const envId = await pLocate(ids, async (id) => {\n const idWithoutVersion = id.split('@')[0];\n if (this.isCoreEnv(idWithoutVersion)) return true;\n if (this.isCoreAspect(idWithoutVersion)) return false;\n const envDef = this.getEnvDefinitionByStringId(id);\n if (envDef) return true;\n const envDefWithoutVersion = this.getEnvDefinitionByStringId(idWithoutVersion);\n if (envDefWithoutVersion) {\n isFoundWithoutVersion = true;\n return true;\n }\n const envComponent = await this.getEnvComponentByEnvId(id);\n const hasManifest = this.hasEnvManifest(envComponent);\n if (hasManifest) return true;\n const isUsingEnvEnv = this.isUsingEnvEnv(envComponent);\n return !!isUsingEnvEnv;\n });\n let finalEnvId;\n if (envId) {\n finalEnvId = isFoundWithoutVersion ? envId?.split('@')[0] : envId;\n this.envIds.add(envId);\n }\n return finalEnvId;\n }\n\n private getEnvDefinitionByLegacyExtension(extension: ExtensionDataEntry): EnvDefinition | undefined {\n const envDef = extension.extensionId\n ? this.getEnvDefinitionById(extension.extensionId)\n : this.getEnvDefinitionByStringId(extension.stringId);\n return envDef;\n }\n\n getEnvIdFromEnvsConfig(component: Component): string | undefined {\n const envsAspect = component.state.aspects.get(EnvsAspect.id);\n return envsAspect?.config.env;\n }\n\n getEnvDefinition(id: ComponentID) {\n const allVersions = this.envSlot.toArray();\n const all = allVersions.filter(([envId]) => envId.includes(id.toStringWithoutVersion()));\n const first = head(all);\n if (!first) return undefined;\n const [envId, env] = first;\n return new EnvDefinition(envId, env);\n }\n\n getEnvDefinitionById(id: ComponentID): EnvDefinition | undefined {\n const envDef =\n this.getEnvDefinitionByStringId(id.toString()) ||\n this.getEnvDefinitionByStringId(id.toString({ ignoreVersion: true }));\n return envDef;\n }\n\n public getEnvDefinitionByStringId(envId: string): EnvDefinition | undefined {\n const env = this.envSlot.get(envId);\n if (env) {\n return new EnvDefinition(envId, env as Environment);\n }\n return undefined;\n }\n\n getEnvFromComponent(envComponent: Component): EnvDefinition | undefined {\n const env = this.getEnvDefinitionById(envComponent.id);\n return env;\n }\n\n /**\n * Return the env definition of teambit.envs/env\n */\n getEnvsEnvDefinition(): EnvDefinition {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.getEnvDefinitionByStringId('teambit.envs/env')!;\n }\n\n private printWarningIfFirstTime(envId: string, message: string) {\n if (!this.alreadyShownWarning[envId] && !this.failedToLoadEnvs.has(envId)) {\n this.alreadyShownWarning[envId] = true;\n this.logger.consoleWarning(message);\n this.addFailedToLoadEnvs(envId);\n }\n }\n\n /**\n * determines whether an env is registered.\n */\n public isEnvRegistered(id: string) {\n return Boolean(this.envSlot.get(id));\n }\n\n isUsingAspectEnv(component: Component): boolean {\n const data = this.getEnvData(component);\n if (!data) return false;\n return data.type === 'aspect';\n }\n\n isUsingEnvEnv(component: Component): boolean {\n const data = this.getEnvData(component);\n if (!data) return false;\n return data.type === 'env';\n }\n\n /**\n * Check if the given component is an env component.\n * @param component\n * @returns\n */\n isEnv(component: Component): boolean {\n return (\n this.isUsingEnvEnv(component) ||\n this.isEnvRegistered(component.id.toString()) ||\n this.isEnvRegistered(component.id.toStringWithoutVersion())\n );\n }\n\n /**\n * register a new environment service.\n */\n registerService(...envServices: EnvService<any>[]) {\n this.servicesRegistry.register(envServices);\n return this;\n }\n\n /**\n * get list of services enabled on an env.\n */\n getServices(env: EnvDefinition): EnvServiceList {\n const allServices = this.servicesRegistry.toArray();\n const services: [string, EnvService<any>][] = [];\n allServices.forEach(([id, currentServices]) => {\n currentServices.forEach((service) => {\n try {\n if (this.implements(env, service)) {\n services.push([id, service]);\n }\n } catch {\n this.logger.warn(`failed loading service ${id} for env ${env.id}`);\n }\n });\n });\n return new EnvServiceList(env, services);\n }\n\n implements(env: EnvDefinition, service: EnvService<any>) {\n // TODO: remove this after refactoring everything and remove getDescriptor from being optional.\n if (!service.getDescriptor) return false;\n return !!service.getDescriptor(env);\n }\n\n /**\n * register an environment.\n */\n registerEnv(env: Environment) {\n return this.envSlot.register(env);\n }\n\n /**\n * register an env.jsonc merge customizer.\n */\n registerEnvJsoncMergeCustomizer(customizer: EnvJsoncMergeCustomizer) {\n return this.envJsoncMergeCustomizerSlot.register(customizer);\n }\n\n async addNonLoadedEnvAsComponentIssues(components: Component[]) {\n await pMapSeries(components, async (component) => {\n const envId = await this.calculateEnvId(component);\n const envIdStr = envId.toString();\n if (!this.isEnvRegistered(envIdStr)) {\n this.addFailedToLoadEnvs(envIdStr);\n // If there is no version and the env is not in the workspace this is not valid\n // you can't set external env without version\n if (!envIdStr.includes('@')) {\n const foundComp = components.find((c) => c.id.toStringWithoutVersion() === envIdStr);\n if (!foundComp) {\n component.state.issues.getOrCreate(IssuesClasses.ExternalEnvWithoutVersion).data = {\n envId: envIdStr,\n componentId: component.id.toString(),\n };\n } else {\n component.state.issues.getOrCreate(IssuesClasses.NonLoadedEnv).data = envIdStr;\n }\n } else {\n component.state.issues.getOrCreate(IssuesClasses.NonLoadedEnv).data = envIdStr;\n }\n }\n });\n }\n\n // refactor here\n private async createRuntime(components: Component[]): Promise<Runtime> {\n return new Runtime(await this.aggregateByDefs(components), this.logger);\n }\n\n // :TODO can be refactored to few utilities who will make repeating this very easy.\n private async aggregateByDefs(components: Component[]): Promise<EnvRuntime[]> {\n this.throwForDuplicateComponents(components);\n const envsMap = {};\n components.forEach((component: Component) => {\n const envDef = this.getEnv(component);\n const envId = envDef.id;\n const env = envDef.env;\n // handle config as well when aggregating envs.\n if (envsMap[envId]) envsMap[envId].components.push(component);\n else\n envsMap[envId] = {\n components: [component],\n env,\n };\n });\n\n return Promise.all(\n Object.keys(envsMap).map(async (key) => {\n const envAspectDef = await this.getEnvAspectDef(key);\n return new EnvRuntime(key, envsMap[key].env, envsMap[key].components, envAspectDef);\n })\n );\n }\n\n private async getEnvAspectDef(envId: string): Promise<AspectDefinition> {\n const host = this.componentMain.getHost();\n const id = await host.resolveComponentId(envId);\n // We don't want to filter by runtime here as we want to also get envs that configured as plugins. so they don't\n // contain the runtime path.\n const resolvedAspects = await host.resolveAspects(MainRuntime.name, [id], {\n requestedOnly: true,\n filterByRuntime: false,\n useScopeAspectsCapsule: true,\n });\n const def = resolvedAspects[0];\n\n return def;\n }\n\n private throwForDuplicateComponents(components: Component[]) {\n const idsStr = components.map((c) => c.id.toString());\n const duplications = findDuplications(idsStr);\n if (duplications.length) {\n throw new Error(`found duplicated components: ${duplications.join(', ')}`);\n }\n }\n\n static slots = [\n Slot.withType<Environment>(),\n Slot.withType<EnvService<any>>(),\n Slot.withType<EnvJsoncMergeCustomizerRegistry>(),\n ];\n\n static dependencies = [GraphqlAspect, LoggerAspect, ComponentAspect, CLIAspect, WorkerAspect, IssuesAspect];\n\n static async provider(\n [graphql, loggerAspect, component, cli, worker, issues]: [\n GraphqlMain,\n LoggerMain,\n ComponentMain,\n CLIMain,\n WorkerMain,\n IssuesMain,\n ],\n config: EnvsConfig,\n [envSlot, servicesRegistry, envJsoncMergeCustomizerSlot]: [\n EnvsRegistry,\n ServicesRegistry,\n EnvJsoncMergeCustomizerRegistry,\n ],\n context: Harmony\n ) {\n const logger = loggerAspect.createLogger(EnvsAspect.id);\n const envs = new EnvsMain(\n config,\n context,\n envSlot,\n logger,\n servicesRegistry,\n component,\n loggerAspect,\n worker,\n envJsoncMergeCustomizerSlot\n );\n component.registerShowFragments([new EnvFragment(envs)]);\n if (issues) issues.registerAddComponentsIssues(envs.addNonLoadedEnvAsComponentIssues.bind(envs));\n\n const envsCmd = new EnvsCmd(envs, component);\n envsCmd.commands = [new ListEnvsCmd(envs, component), new GetEnvCmd(envs, component)];\n cli.register(envsCmd);\n graphql.register(environmentsSchema(envs));\n return envs;\n }\n}\n\nEnvsAspect.addRuntime(EnvsMain);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_pLocate","data","_interopRequireDefault","require","_commentJson","_cli","_component","_graphql","_issues","_pMapSeries","_componentIssues","_harmony","_logger","_bitError","_toolboxArray","_lodash","_worker","_componentId","_environments","_environments2","_runtime","_envDefinition","_envServiceList","_envs","_env","_exceptions","_env2","_envJsonc","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DEFAULT_ENV","exports","EnvsMain","icon","constructor","config","harmony","envSlot","logger","servicesRegistry","componentMain","loggerMain","workerMain","envJsoncMergeCustomizerSlot","envJsoncResolverSlot","Set","createEnvironment","components","createRuntime","setCoreAspectIds","ids","coreAspectIds","isCoreAspect","id","includes","addFailedToLoadEnvs","failedToLoadEnvs","add","envIds","addFailedToLoadExt","failedToLoadExt","has","resetFailedToLoadEnvs","clear","getFailedToLoadEnvs","Array","from","extId","uniq","getDefaultEnv","defaultEnv","get","Error","EnvDefinition","getCoreEnvsIds","compose","targetEnv","envTransformers","a","reduce","acc","transformer","override","propsToOverride","env","merge","sourceEnv","allNames","prototype","getPrototypeOf","name","getOwnPropertyNames","key","fn","bind","hasEnvManifest","envComponent","legacyFiles","undefined","files","filesystem","envJson","find","file","relative","getEnvManifest","getEnvData","resolvedEnvJsonc","getOrCalculateEnvManifest","component","envExtendsDeps","calculateEnvManifest","object","parse","contents","toString","extends","resolvedObject","recursivelyMergeWithParentManifest","parentEnvId","resolver","getAllRegisteredEnvJsoncResolvers","parentObject","mergedObject","mergeEnvManifests","parent","child","merged","mergeCustomizer","getAllRegisteredEnvJsoncCustomizers","customizer","oneMerged","hasEnvManifestById","envId","requesting","getEnvComponentByEnvId","envsData","state","aspects","EnvsAspect","getEnvIdFromEnvsData","ignoreVersion","rawEnvId","envIdWithoutVersion","ComponentID","fromString","toStringWithoutVersion","getEnvId","envIdFromEnvData","withVersion","resolveEnv","withVersionMatch","toArray","withVersionMatchId","exactMatch","exactMatchId","EnvNotConfiguredForComponent","isUsingCoreEnv","isCoreEnv","getEnv","envDef","getEnvDefinitionByStringId","EnvNotFound","getEnvComponent","host","getHost","newId","resolveComponentId","BitError","getOrCalculateEnv","calculateEnv","getOrCalculateEnvId","idStr","Promise","resolve","calculateEnvId","getDescriptor","calcDescriptor","opts","componentDescriptor","getComponentEnvDescriptor","envComponentSelfDescriptor","getEnvSelfDescriptor","result","self","isEnvRegistered","getEnvFromComponent","rawServices","getServices","services","toObject","selfDescriptor","getEnvDescriptorFromEnvDef","__getDescriptor","systemDescriptor","type","split","description","matchedEntry","entries","aspectEntry","envIdFromEnvsConfig","getEnvIdFromEnvsConfig","envIdFromEnvsConfigWithoutVersion","findFirstEnv","finalId","getEnvDefinitionById","skipWarnings","printWarningIfFirstTime","envDefFromList","getAllEnvsConfiguredOnComponent","getEnvFromEnvsConfig","getEnvsNotFromEnvsConfig","hasEnvConfigured","Boolean","getAllRegisteredEnvsIds","map","envData","getAllRegisteredEnvs","customizerEntry","getEnvPlugin","EnvPlugin","getEnvIdFromEnvsLegacyExtensions","extensions","envsAspect","findCoreExtension","calculateEnvIdFromExtensions","extension","extensionId","stringId","calculateEnvFromExtensions","getEnvDefinitionByLegacyExtension","isFoundWithoutVersion","pLocate","idWithoutVersion","envDefWithoutVersion","hasManifest","isUsingEnvEnv","finalEnvId","getEnvDefinition","allVersions","all","first","head","getEnvsEnvDefinition","message","alreadyShownWarning","consoleWarning","isUsingAspectEnv","isEnv","registerService","envServices","register","allServices","currentServices","service","implements","warn","EnvServiceList","registerEnv","registerEnvJsoncMergeCustomizer","registerEnvJsoncResolver","getEnvJsoncDetector","EnvJsoncDetector","addNonLoadedEnvAsComponentIssues","pMapSeries","envIdStr","foundComp","c","issues","getOrCreate","IssuesClasses","ExternalEnvWithoutVersion","componentId","NonLoadedEnv","Runtime","aggregateByDefs","throwForDuplicateComponents","envsMap","envAspectDef","getEnvAspectDef","EnvRuntime","resolvedAspects","resolveAspects","MainRuntime","requestedOnly","filterByRuntime","useScopeAspectsCapsule","def","idsStr","duplications","findDuplications","join","provider","graphql","loggerAspect","cli","worker","context","createLogger","envs","registerShowFragments","EnvFragment","registerAddComponentsIssues","envsCmd","EnvsCmd","commands","ListEnvsCmd","GetEnvCmd","environmentsSchema","Slot","withType","GraphqlAspect","LoggerAspect","ComponentAspect","CLIAspect","WorkerAspect","IssuesAspect","addRuntime"],"sources":["environments.main.runtime.ts"],"sourcesContent":["import { Dependency as LegacyDependency } from '@teambit/legacy.consumer-component';\nimport pLocate from 'p-locate';\nimport { parse } from 'comment-json';\nimport { SourceFile } from '@teambit/component.sources';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, ComponentAspect, ComponentMain } from '@teambit/component';\nimport type { EnvPolicyConfigObject } from '@teambit/dependency-resolver';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { IssuesAspect, IssuesMain } from '@teambit/issues';\nimport type { EnvJsoncPatterns } from '@teambit/dev-files';\nimport pMapSeries from 'p-map-series';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { Harmony, Slot, SlotRegistry } from '@teambit/harmony';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport type { AspectDefinition } from '@teambit/aspect-loader';\nimport { ExtensionDataList, ExtensionDataEntry } from '@teambit/legacy.extension-data';\nimport { BitError } from '@teambit/bit-error';\nimport { findDuplications } from '@teambit/toolbox.array.duplications-finder';\nimport { head, uniq } from 'lodash';\nimport { WorkerAspect, WorkerMain } from '@teambit/worker';\nimport { ComponentID } from '@teambit/component-id';\nimport { EnvService } from './services';\nimport { Environment } from './environment';\nimport { EnvsAspect } from './environments.aspect';\nimport { environmentsSchema } from './environments.graphql';\nimport { EnvRuntime, Runtime } from './runtime';\nimport { EnvDefinition } from './env-definition';\nimport { EnvServiceList } from './env-service-list';\nimport { EnvsCmd, GetEnvCmd, ListEnvsCmd } from './envs.cmd';\nimport { EnvFragment } from './env.fragment';\nimport { EnvNotFound, EnvNotConfiguredForComponent } from './exceptions';\nimport { EnvPlugin } from './env.plugin';\nimport { EnvJsoncDetector } from './env-jsonc.detector';\n\nexport type EnvJsonc = {\n extends?: string;\n policy?: EnvPolicyConfigObject;\n patterns?: EnvJsoncPatterns;\n};\n\n/**\n * The resolved env jsonc is the env jsonc after it was resolved from all the parent envs\n */\nexport type ResolvedEnvJsonc = Omit<EnvJsonc, 'extends'>;\n\nexport type EnvJsoncMergeCustomizer = (parentObj: EnvJsonc, childObj: EnvJsonc) => Partial<EnvJsonc>;\nexport type EnvJsoncResolver = (parentId: string, envExtendsDeps?: LegacyDependency[]) => Promise<ResolvedEnvJsonc>;\n\nexport type EnvsRegistry = SlotRegistry<Environment>;\nexport type EnvJsoncMergeCustomizerRegistry = SlotRegistry<EnvJsoncMergeCustomizer>;\nexport type EnvJsoncResolverRegistry = SlotRegistry<EnvJsoncResolver>;\n\nexport type EnvsConfig = {\n env: string;\n options: EnvOptions;\n};\n\ntype GetCalcEnvOptions = {\n skipWarnings?: boolean;\n};\n\nexport type EnvOptions = {};\n\nexport type EnvTransformer = (env: Environment) => Environment;\n\nexport type ServicesRegistry = SlotRegistry<Array<EnvService<any>>>;\n\nexport type RegularCompDescriptor = {\n id: string;\n icon?: string;\n type?: string;\n name?: string;\n description?: string;\n};\nexport type EnvCompDescriptorProps = RegularCompDescriptor & {\n resolvedEnvJsonc?: ResolvedEnvJsonc;\n services?: {\n env: {\n id: string;\n icon: string;\n name?: string;\n description?: string;\n };\n services: Array<{\n id: string;\n name?: string;\n description?: string;\n data: any;\n }>;\n };\n};\n\nexport type EnvCompDescriptor = EnvCompDescriptorProps & {\n self?: EnvCompDescriptorProps;\n};\n\nexport type Descriptor = RegularCompDescriptor | EnvCompDescriptor;\n\nexport const DEFAULT_ENV = 'teambit.harmony/node';\n\nexport class EnvsMain {\n /**\n * Envs that are failed to load\n */\n private failedToLoadEnvs = new Set<string>();\n /**\n * Extensions that are failed to load\n * We use this as sometime when we couldn't load an extension we don't know if it's an env or not\n * We should ideally take it from the aspect loader aspect, but right now the aspect loader is using envs\n */\n private failedToLoadExt = new Set<string>();\n /**\n * Ids of envs (not neccesrraly loaded successfully)\n */\n public envIds = new Set<string>();\n\n static runtime = MainRuntime;\n\n private alreadyShownWarning = {};\n\n private coreAspectIds: string[] = [];\n\n /**\n * icon of the extension.\n */\n icon() {\n return `<svg width=\"50\" height=\"50\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"25\" cy=\"25\" r=\"20\"/>\n </svg>`;\n }\n\n constructor(\n /**\n * environments extension configuration.\n */\n readonly config: EnvsConfig,\n\n /**\n * harmony context.\n */\n private harmony: Harmony,\n\n /**\n * slot for allowing extensions to register new environment.\n */\n private envSlot: EnvsRegistry,\n\n private logger: Logger,\n\n private servicesRegistry: ServicesRegistry,\n\n private componentMain: ComponentMain,\n\n private loggerMain: LoggerMain,\n\n private workerMain: WorkerMain,\n\n private envJsoncMergeCustomizerSlot: EnvJsoncMergeCustomizerRegistry,\n\n private envJsoncResolverSlot: EnvJsoncResolverRegistry\n ) {}\n\n /**\n * creates a new runtime environments for a set of components.\n */\n async createEnvironment(components: Component[]): Promise<Runtime> {\n return this.createRuntime(components);\n }\n\n setCoreAspectIds(ids: string[]) {\n this.coreAspectIds = ids;\n }\n isCoreAspect(id: string) {\n return this.coreAspectIds.includes(id);\n }\n\n /**\n *\n * @param id\n */\n /**\n * This function adds an extension ID to a set of failed to load extensions.\n * This mostly used by the aspect loader to add such issues\n * Then it is used to hide different errors that are caused by the same issue.\n * @param {string} id - string - represents the unique identifier of an extension that failed to load.\n */\n addFailedToLoadEnvs(id: string) {\n this.failedToLoadEnvs.add(id);\n this.envIds.add(id);\n }\n\n addFailedToLoadExt(id: string) {\n this.failedToLoadExt.add(id);\n if (this.envIds.has(id)) {\n this.addFailedToLoadEnvs(id);\n }\n }\n\n resetFailedToLoadEnvs() {\n this.failedToLoadEnvs.clear();\n this.failedToLoadExt.clear();\n }\n\n getFailedToLoadEnvs() {\n const failedToLoadEnvs = Array.from(this.failedToLoadEnvs);\n // Add all extensions which are also envs\n for (const extId of this.failedToLoadExt) {\n if (this.envIds.has(extId)) {\n failedToLoadEnvs.push(extId);\n }\n }\n return uniq(failedToLoadEnvs);\n }\n\n /**\n * get the configured default env.\n */\n getDefaultEnv(): EnvDefinition {\n const defaultEnv = this.envSlot.get(DEFAULT_ENV);\n if (!defaultEnv) throw new Error('default env must be set.');\n\n return new EnvDefinition(DEFAULT_ENV, defaultEnv);\n }\n\n getCoreEnvsIds(): string[] {\n return [\n 'teambit.harmony/aspect',\n 'teambit.react/react',\n 'teambit.harmony/node',\n 'teambit.react/react-native',\n 'teambit.html/html',\n 'teambit.mdx/mdx',\n 'teambit.envs/env',\n 'teambit.mdx/readme',\n 'teambit.harmony/bit-custom-aspect',\n ];\n }\n\n /**\n * compose a new environment from a list of environment transformers.\n */\n compose(targetEnv: Environment, envTransformers: EnvTransformer[]) {\n const a = envTransformers.reduce((acc, transformer) => {\n acc = transformer(acc);\n return acc;\n }, targetEnv);\n\n return a;\n }\n\n /**\n * create an env transformer which overrides specific env properties.\n */\n override(propsToOverride: Environment): EnvTransformer {\n return (env: Environment) => {\n return this.merge(propsToOverride, env);\n };\n }\n\n /**\n * compose two environments into one.\n */\n merge<T extends Environment, S extends Environment>(targetEnv: Environment, sourceEnv: Environment): T & S {\n const allNames = new Set<string>();\n const keys = ['icon', 'name', 'description'];\n for (let o = sourceEnv; o !== Object.prototype; o = Object.getPrototypeOf(o)) {\n for (const name of Object.getOwnPropertyNames(o)) {\n allNames.add(name);\n }\n }\n\n allNames.forEach((key: string) => {\n const fn = sourceEnv[key];\n if (targetEnv[key]) return;\n if (keys.includes(key)) targetEnv[key] = fn;\n if (!fn || !fn.bind) {\n return;\n }\n targetEnv[key] = fn.bind(sourceEnv);\n });\n\n return targetEnv as T & S;\n }\n\n /**\n * This function checks if an environment manifest file exists in a given component or set of legacy files.\n * @param {Component} [envComponent] - A component object that represents an environment. It contains information about\n * the files and directories that make up the environment.\n * @param {SourceFile[]} [legacyFiles] - An optional array of SourceFile objects representing the files in the legacy\n * file system. If this parameter is not provided, the function will attempt to retrieve the files from the envComponent\n * parameter.\n * @returns a boolean value indicating whether an `env.jsonc` or `env.json` file exists in the `files` array of either\n * the `envComponent` object or the `legacyFiles` array. If neither `envComponent` nor `legacyFiles` are provided, the\n * function returns `undefined`.\n */\n hasEnvManifest(envComponent?: Component, legacyFiles?: SourceFile[]): boolean | undefined {\n if (!envComponent && !legacyFiles) return undefined;\n // @ts-ignore\n const files = legacyFiles || envComponent.filesystem.files;\n const envJson = files.find((file) => {\n return file.relative === 'env.jsonc' || file.relative === 'env.json';\n });\n\n if (!envJson) return false;\n return true;\n }\n\n getEnvManifest(envComponent: Component): ResolvedEnvJsonc | undefined {\n const data = this.getEnvData(envComponent) as EnvCompDescriptor;\n if (!data) return undefined;\n return data.resolvedEnvJsonc;\n }\n\n async getOrCalculateEnvManifest(\n component: Component,\n legacyFiles?: SourceFile[],\n envExtendsDeps?: LegacyDependency[]\n ): Promise<ResolvedEnvJsonc | undefined> {\n try {\n return (\n this.getEnvManifest(component) || (await this.calculateEnvManifest(component, legacyFiles, envExtendsDeps))\n );\n } catch {\n return this.calculateEnvManifest(component);\n }\n }\n\n async calculateEnvManifest(\n envComponent?: Component,\n legacyFiles?: SourceFile[],\n envExtendsDeps?: LegacyDependency[]\n ): Promise<EnvJsonc | undefined> {\n // TODO: maybe throw an error here?\n if (!envComponent && !legacyFiles) return undefined;\n // @ts-ignore\n const files = legacyFiles || envComponent.filesystem.files;\n const envJson = files.find((file) => {\n return file.relative === 'env.jsonc' || file.relative === 'env.json';\n });\n\n if (!envJson) return undefined;\n\n const object: EnvJsonc = parse(envJson.contents.toString('utf8'), undefined, true);\n if (!object.extends) return object;\n const resolvedObject = await this.recursivelyMergeWithParentManifest(object, envExtendsDeps);\n\n return resolvedObject;\n }\n\n async recursivelyMergeWithParentManifest(object: EnvJsonc, envExtendsDeps?: LegacyDependency[]): Promise<EnvJsonc> {\n if (!object.extends) return object;\n const parentEnvId = object.extends;\n const resolver = this.getAllRegisteredEnvJsoncResolvers()[0];\n\n const parentObject: EnvJsonc = await resolver(parentEnvId, envExtendsDeps);\n const mergedObject = this.mergeEnvManifests(parentObject, object);\n if (mergedObject.extends) {\n return this.recursivelyMergeWithParentManifest(mergedObject);\n }\n return mergedObject;\n }\n\n mergeEnvManifests(parent: EnvJsonc, child: EnvJsonc): EnvJsonc {\n let merged: EnvJsonc = {};\n const mergeCustomizer = this.getAllRegisteredEnvJsoncCustomizers();\n for (const customizer of mergeCustomizer) {\n const oneMerged = customizer(parent, child);\n merged = { ...merged, ...oneMerged };\n }\n // This is important to make sure we won't keep the extends from the child\n delete child.extends;\n // Take extends specifically from the parent so we can propagate it to the next parent\n if (parent.extends) {\n merged.extends = parent.extends;\n }\n return merged;\n }\n\n async hasEnvManifestById(envId: string, requesting: string): Promise<boolean | undefined> {\n const component = await this.getEnvComponentByEnvId(envId, requesting);\n return this.hasEnvManifest(component);\n }\n\n getEnvData(component: Component): Descriptor {\n let envsData = component.state.aspects.get(EnvsAspect.id);\n if (!envsData) {\n // TODO: remove this once we re-export old components used to store the data here\n envsData = component.state.aspects.get('teambit.workspace/workspace');\n }\n if (!envsData) throw new Error(`env was not configured on component ${component.id.toString()}`);\n return envsData.data as Descriptor;\n }\n\n /**\n * Return the id of the env as configured in the envs data (without version by default)\n * The reason it's not contain version by default is that we want to take the version from the aspect defined on the component itself\n * As this version is stay up to date during tagging the env along with the component\n * @param component\n * @param ignoreVersion\n */\n private getEnvIdFromEnvsData(component: Component, ignoreVersion = true): string | undefined {\n const envsData = this.getEnvData(component);\n if (!envsData) return undefined;\n const rawEnvId = envsData.id;\n if (!rawEnvId) return undefined;\n if (!ignoreVersion) return rawEnvId;\n const envIdWithoutVersion = ComponentID.fromString(rawEnvId).toStringWithoutVersion();\n return envIdWithoutVersion;\n }\n\n /**\n * get the env id of the given component.\n */\n getEnvId(component: Component): string {\n const envIdFromEnvData = this.getEnvIdFromEnvsData(component);\n if (!envIdFromEnvData) {\n // This should never happen\n throw new Error(`no env found for ${component.id.toString()}`);\n }\n const withVersion = this.resolveEnv(component, envIdFromEnvData);\n const withVersionMatch = this.envSlot.toArray().find(([envId]) => {\n return withVersion?.toString() === envId;\n });\n const withVersionMatchId = withVersionMatch?.[0];\n if (withVersionMatchId) return withVersionMatchId;\n\n // Handle core envs\n const exactMatch = this.envSlot.toArray().find(([envId]) => {\n return envIdFromEnvData === envId;\n });\n\n const exactMatchId = exactMatch?.[0];\n if (exactMatchId) return exactMatchId;\n\n if (!withVersion) throw new EnvNotConfiguredForComponent(envIdFromEnvData, component.id.toString());\n return withVersion.toString();\n }\n\n isUsingCoreEnv(component: Component): boolean {\n const envId = this.getEnvId(component);\n return this.isCoreEnv(envId);\n }\n\n isCoreEnv(envId: string): boolean {\n return this.getCoreEnvsIds().includes(envId);\n }\n\n /**\n * get the env of the given component.\n * In case you are asking for the env during on load you should use calculateEnv instead\n */\n getEnv(component: Component): EnvDefinition {\n const id = this.getEnvId(component);\n const envDef = this.getEnvDefinitionByStringId(id);\n if (envDef) {\n return envDef;\n }\n // Do not allow a non existing env\n throw new EnvNotFound(id, component.id.toString());\n }\n\n /**\n * get the env component of the given component.\n */\n async getEnvComponent(component: Component): Promise<Component> {\n const envId = this.getEnvId(component);\n return this.getEnvComponentByEnvId(envId, component.id.toString());\n }\n\n /**\n * get the env component by the env id.\n */\n async getEnvComponentByEnvId(envId: string, requesting?: string): Promise<Component> {\n const host = this.componentMain.getHost();\n const newId = await host.resolveComponentId(envId);\n const envComponent = await host.get(newId);\n if (!envComponent) {\n throw new BitError(`can't load env. env id is ${envId} used by component ${requesting || 'unknown'}`);\n }\n return envComponent;\n }\n\n /**\n * get the env of the given component.\n * This will try to use the regular getEnv but fallback to the calculate env (in case you are using it during on load)\n * This is safe to be used on onLoad as well\n */\n getOrCalculateEnv(component: Component): EnvDefinition {\n try {\n return this.getEnv(component);\n } catch {\n return this.calculateEnv(component);\n }\n }\n\n getOrCalculateEnvId(component: Component): Promise<ComponentID> {\n try {\n const idStr = this.getEnvId(component);\n return Promise.resolve(ComponentID.fromString(idStr));\n } catch {\n return this.calculateEnvId(component);\n }\n }\n\n /**\n * get an environment Descriptor.\n */\n getDescriptor(component: Component): Descriptor | undefined {\n const envsData = this.getEnvData(component);\n envsData.id = this.resolveEnv(component, envsData.id)?.toString() || envsData.id;\n return envsData;\n }\n\n async calcDescriptor(component: Component, opts: GetCalcEnvOptions = {}): Promise<Descriptor | undefined> {\n const componentDescriptor = await this.getComponentEnvDescriptor(component, opts);\n if (!componentDescriptor) return undefined;\n const envComponentSelfDescriptor = await this.getEnvSelfDescriptor(component);\n // const resolvedEnvJsonc = await this.calculateEnvManifest(component);\n const result = componentDescriptor;\n if (envComponentSelfDescriptor) {\n // @ts-ignore\n result.self = envComponentSelfDescriptor;\n }\n // if (resolvedEnvJsonc) {\n // // @ts-ignore\n // result.resolvedEnvJsonc = resolvedEnvJsonc;\n // }\n return result;\n }\n\n /**\n * Get env descriptor from the env itself if the component is an env\n * This will be empty for regular component, and will only contain data for env themself\n */\n private async getEnvSelfDescriptor(envComponent: Component): Promise<EnvCompDescriptorProps | undefined> {\n // !important calculate only on the env itself.\n if (!this.isEnvRegistered(envComponent.id.toString())) {\n return undefined;\n }\n\n const envDef = this.getEnvFromComponent(envComponent);\n if (!envDef) return undefined;\n\n const rawServices = this.getServices(envDef);\n const services = rawServices.toObject();\n // const selfDescriptor = (await this.getEnvDescriptorFromEnvDef(envDef)) || {};\n const selfDescriptor = await this.getEnvDescriptorFromEnvDef(envDef);\n\n if (!selfDescriptor) return undefined;\n return {\n ...selfDescriptor,\n services,\n };\n }\n\n /**\n * Get env descriptor from the env that a given component is using\n */\n private async getComponentEnvDescriptor(\n component: Component,\n opts: GetCalcEnvOptions = {}\n ): Promise<RegularCompDescriptor | undefined> {\n const envDef = this.calculateEnv(component, opts);\n return this.getEnvDescriptorFromEnvDef(envDef);\n }\n\n private async getEnvDescriptorFromEnvDef(envDef: EnvDefinition): Promise<RegularCompDescriptor | undefined> {\n if (!envDef.env.__getDescriptor || typeof envDef.env.__getDescriptor !== 'function') {\n return undefined;\n }\n const systemDescriptor = await envDef.env.__getDescriptor();\n\n return {\n type: systemDescriptor.type,\n // Make sure to store the env id in the data without the version\n // The version should always come from the aspect id configured on the component\n id: envDef.id.split('@')[0],\n name: envDef.name,\n icon: envDef.env.icon,\n description: envDef.description,\n };\n }\n\n resolveEnv(component: Component, id: string) {\n const matchedEntry = component.state.aspects.entries.find((aspectEntry) => {\n return id === aspectEntry.id.toString() || id === aspectEntry.id.toString({ ignoreVersion: true });\n });\n\n return matchedEntry?.id;\n }\n\n /**\n * This used to calculate the actual env during the component load.\n * Do not use it to get the env (use getEnv instead)\n * This should be used only during on load\n */\n async calculateEnvId(component: Component): Promise<ComponentID> {\n // Search first for env configured via envs aspect itself\n const envIdFromEnvsConfig = this.getEnvIdFromEnvsConfig(component);\n // if (!envIdFromEnvsConfig) return this.getDefaultEnv();\n const envIdFromEnvsConfigWithoutVersion = envIdFromEnvsConfig\n ? ComponentID.fromString(envIdFromEnvsConfig).toStringWithoutVersion()\n : undefined;\n\n if (envIdFromEnvsConfig && this.isCoreEnv(envIdFromEnvsConfig)) {\n return ComponentID.fromString(envIdFromEnvsConfig);\n }\n\n // in some cases we have the id configured in the teambit.envs/envs but without the version\n // in such cases we won't find it in the slot\n // we search in the component aspect list a matching aspect which is match the id from the teambit.envs/envs\n if (envIdFromEnvsConfigWithoutVersion) {\n const matchedEntry = component.state.aspects.entries.find((aspectEntry) => {\n return (\n envIdFromEnvsConfigWithoutVersion === aspectEntry.id.toString() ||\n envIdFromEnvsConfigWithoutVersion === aspectEntry.id.toString({ ignoreVersion: true })\n );\n });\n\n if (matchedEntry?.id) return matchedEntry?.id;\n }\n\n // in case there is no config in teambit.envs/envs search the aspects for the first env that registered as env\n let ids: string[] = [];\n component.state.aspects.entries.forEach((aspectEntry) => {\n ids.push(aspectEntry.id.toString());\n // ids.push(aspectEntry.id.toString({ ignoreVersion: true }));\n });\n ids = uniq(ids);\n const envId = await this.findFirstEnv(ids);\n const finalId = envId || this.getDefaultEnv().id;\n return ComponentID.fromString(finalId);\n }\n\n /**\n * This used to calculate the actual env during the component load.\n * Do not use it to get the env (use getEnv instead)\n * This should be used only during on load\n */\n calculateEnv(component: Component, opts: GetCalcEnvOptions = {}): EnvDefinition {\n // Search first for env configured via envs aspect itself\n const envIdFromEnvsConfig = this.getEnvIdFromEnvsConfig(component);\n let envIdFromEnvsConfigWithoutVersion;\n if (envIdFromEnvsConfig) {\n envIdFromEnvsConfigWithoutVersion = ComponentID.fromString(envIdFromEnvsConfig).toStringWithoutVersion();\n const envDef = this.getEnvDefinitionByStringId(envIdFromEnvsConfigWithoutVersion);\n if (envDef) {\n this.envIds.add(envDef.id);\n return envDef;\n }\n }\n\n // in some cases we have the id configured in the teambit.envs/envs but without the version\n // in such cases we won't find it in the slot\n // we search in the component aspect list a matching aspect which is match the id from the teambit.envs/envs\n if (envIdFromEnvsConfigWithoutVersion) {\n const matchedEntry = component.state.aspects.entries.find((aspectEntry) => {\n return (\n envIdFromEnvsConfigWithoutVersion === aspectEntry.id.toString() ||\n envIdFromEnvsConfigWithoutVersion === aspectEntry.id.toString({ ignoreVersion: true })\n );\n });\n if (matchedEntry) {\n // during the tag process, the version in the aspect-entry-id is changed and is not the\n // same as it was when it registered to the slot.\n const envDef = this.getEnvDefinitionById(matchedEntry.id);\n if (envDef) {\n this.envIds.add(envDef.id);\n return envDef;\n }\n if (!opts.skipWarnings) {\n // Do not allow a non existing env\n this.printWarningIfFirstTime(\n matchedEntry.id.toString(),\n `environment with ID: ${matchedEntry.id.toString()} configured on component ${component.id.toString()} was not loaded (run \"bit install\")`\n );\n }\n }\n // Do not allow configure teambit.envs/envs on the component without configure the env aspect itself\n // const errMsg = new EnvNotConfiguredForComponent(envIdFromEnvsConfig as string, component.id.toString()).message;\n // this.printWarningIfFirstTime(envIdFromEnvsConfig as string, errMsg);\n }\n\n // in case there is no config in teambit.envs/envs search the aspects for the first env that registered as env\n let envDefFromList;\n component.state.aspects.entries.find((aspectEntry) => {\n const envDef = this.getEnvDefinitionById(aspectEntry.id);\n if (envDef) {\n envDefFromList = envDef;\n }\n return !!envDef;\n });\n\n if (envDefFromList) {\n this.envIds.add(envDefFromList.id);\n return envDefFromList;\n }\n return this.getDefaultEnv();\n }\n\n /**\n * an env can be configured on a component in two ways:\n * 1) explicitly inside \"teambit.envs/envs\". `{ \"teambit.envs/envs\": { \"env\": \"my-env\" } }`\n * 2) the env aspect is set on the variant as any other aspect, e.g. `{ \"my-env\": {} }`\n *\n * this method returns #1 if exists, otherwise, #2.\n */\n getAllEnvsConfiguredOnComponent(component: Component): EnvDefinition[] {\n // if a component has \"envs\" config, use it and ignore other components that are set up\n // in this components which happen to be envs.\n const envDef = this.getEnvFromEnvsConfig(component);\n if (envDef) {\n return [envDef];\n }\n\n return this.getEnvsNotFromEnvsConfig(component);\n }\n\n /**\n * whether a component has an env configured (either by variant or .bitmap).\n */\n hasEnvConfigured(component: Component): boolean {\n return Boolean(this.getAllEnvsConfiguredOnComponent(component).length);\n }\n\n getAllRegisteredEnvsIds(): string[] {\n return this.envSlot.toArray().map((envData) => envData[0]);\n }\n\n getAllRegisteredEnvs(): Environment[] {\n return this.envSlot.toArray().map((envData) => envData[1]);\n }\n\n getAllRegisteredEnvJsoncCustomizers(): EnvJsoncMergeCustomizer[] {\n return this.envJsoncMergeCustomizerSlot.toArray().map((customizerEntry) => customizerEntry[1]);\n }\n\n getAllRegisteredEnvJsoncResolvers(): EnvJsoncResolver[] {\n return this.envJsoncResolverSlot.toArray().map((resolver) => resolver[1]);\n }\n\n getEnvPlugin() {\n return new EnvPlugin(this.envSlot, this.servicesRegistry, this.loggerMain, this.workerMain, this.harmony);\n }\n\n /**\n * an env can be configured on a component in two ways:\n * 1) explicitly inside \"teambit.envs/envs\". `{ \"teambit.envs/envs\": { \"env\": \"my-env\" } }`\n * 2) the env aspect is set on the variant as any other aspect, e.g. `{ \"my-env\": {} }`\n *\n * this method returns only #1\n */\n getEnvFromEnvsConfig(component: Component): EnvDefinition | undefined {\n const envIdFromEnvsConfig = this.getEnvIdFromEnvsConfig(component);\n if (!envIdFromEnvsConfig) {\n return undefined;\n }\n const envIdFromEnvsConfigWithoutVersion = ComponentID.fromString(envIdFromEnvsConfig).toStringWithoutVersion();\n const envDef = this.getEnvDefinitionByStringId(envIdFromEnvsConfigWithoutVersion);\n return envDef;\n }\n\n /**\n * an env can be configured on a component in two ways:\n * 1) explicitly inside \"teambit.envs/envs\". `{ \"teambit.envs/envs\": { \"env\": \"my-env\" } }`\n * 2) the env aspect is set on the variant as any other aspect, e.g. `{ \"my-env\": {} }`\n *\n * this method returns only #2\n */\n getEnvsNotFromEnvsConfig(component: Component): EnvDefinition[] {\n return component.state.aspects.entries.reduce((acc: EnvDefinition[], aspectEntry) => {\n const envDef = this.getEnvDefinitionById(aspectEntry.id);\n if (envDef) acc.push(envDef);\n return acc;\n }, []);\n }\n\n getEnvIdFromEnvsLegacyExtensions(extensions: ExtensionDataList): string | undefined {\n const envsAspect = extensions.findCoreExtension(EnvsAspect.id);\n const envIdFromEnvsConfig = envsAspect?.data.id;\n return envIdFromEnvsConfig;\n }\n\n /**\n * @deprecated DO NOT USE THIS METHOD ANYMORE!!! (PLEASE USE .calculateEnvId() instead!)\n */\n async calculateEnvIdFromExtensions(extensions: ExtensionDataList): Promise<string> {\n // Search first for env configured via envs aspect itself\n const envsAspect = extensions.findCoreExtension(EnvsAspect.id);\n const envIdFromEnvsConfig = envsAspect?.config.env;\n\n const envIdFromEnvsConfigWithoutVersion = envIdFromEnvsConfig\n ? ComponentID.fromString(envIdFromEnvsConfig).toStringWithoutVersion()\n : undefined;\n\n if (envIdFromEnvsConfig && this.isCoreEnv(envIdFromEnvsConfig)) {\n return envIdFromEnvsConfig;\n }\n\n // in some cases we have the id configured in the teambit.envs/envs but without the version\n // in such cases we won't find it in the slot\n // we search in the component aspect list a matching aspect which is match the id from the teambit.envs/envs\n if (envIdFromEnvsConfigWithoutVersion) {\n const matchedEntry = extensions.find((extension) => {\n if (extension.extensionId) {\n return (\n envIdFromEnvsConfigWithoutVersion === extension.extensionId.toString() ||\n envIdFromEnvsConfigWithoutVersion === extension.extensionId.toString({ ignoreVersion: true })\n );\n }\n return envIdFromEnvsConfigWithoutVersion === extension.stringId;\n });\n if (matchedEntry?.id) return matchedEntry?.stringId;\n }\n\n // in case there is no config in teambit.envs/envs search the aspects for the first env that registered as env\n const ids: string[] = [];\n extensions.forEach((extension) => {\n if (extension.extensionId) {\n ids.push(extension.extensionId.toString());\n } else {\n ids.push(extension.stringId);\n }\n });\n const envId = await this.findFirstEnv(ids);\n const finalId = envId || this.getDefaultEnv().id;\n return finalId;\n }\n\n /**\n * @deprecated DO NOT USE THIS METHOD ANYMORE!!! (PLEASE USE .calculateEnv() instead!)\n */\n async calculateEnvFromExtensions(extensions: ExtensionDataList): Promise<EnvDefinition> {\n // Search first for env configured via envs aspect itself\n const envsAspect = extensions.findCoreExtension(EnvsAspect.id);\n const envIdFromEnvsConfig = envsAspect?.config.env;\n let envIdFromEnvsConfigWithoutVersion;\n\n if (envIdFromEnvsConfig) {\n envIdFromEnvsConfigWithoutVersion = ComponentID.fromString(envIdFromEnvsConfig).toStringWithoutVersion();\n const envDef = this.getEnvDefinitionByStringId(envIdFromEnvsConfigWithoutVersion);\n if (envDef) {\n this.envIds.add(envDef.id);\n return envDef;\n }\n }\n\n // in some cases we have the id configured in the teambit.envs/envs but without the version\n // in such cases we won't find it in the slot\n // we search in the component aspect list a matching aspect which is match the id from the teambit.envs/envs\n if (envIdFromEnvsConfigWithoutVersion) {\n const matchedEntry = extensions.find((extension) => {\n if (extension.extensionId) {\n return (\n envIdFromEnvsConfigWithoutVersion === extension.extensionId.toString() ||\n envIdFromEnvsConfigWithoutVersion === extension.extensionId.toString({ ignoreVersion: true })\n );\n }\n return envIdFromEnvsConfigWithoutVersion === extension.stringId;\n });\n if (matchedEntry) {\n // during the tag process, the version in the aspect-entry-id is changed and is not the\n // same as it was when it registered to the slot.\n const envDef = this.getEnvDefinitionByLegacyExtension(matchedEntry);\n if (envDef) {\n this.envIds.add(envDef.id);\n return envDef;\n }\n // Do not allow a non existing env\n // this.printWarningIfFirstTime(\n // matchedEntry.id.toString(),\n // `environment with ID: ${matchedEntry.id.toString()} was not found`\n // );\n }\n // Do not allow configure teambit.envs/envs on the component without configure the env aspect itself\n // const errMsg = new EnvNotConfiguredForComponent(envIdFromEnvsConfig).message;\n // this.printWarningIfFirstTime(envIdFromEnvsConfig, errMsg);\n }\n\n // in case there is no config in teambit.envs/envs search the aspects for the first env that registered as env\n const ids: string[] = [];\n extensions.forEach((extension) => {\n if (extension.extensionId) {\n ids.push(extension.extensionId.toString());\n } else {\n ids.push(extension.stringId);\n }\n });\n const envId = await this.findFirstEnv(ids);\n const envDef = envId ? this.getEnvDefinitionByStringId(envId) : undefined;\n\n return envDef || this.getDefaultEnv();\n }\n\n /**\n * This function finds the first environment ID from a list of IDs by checking if it is register as env (to the slot).\n * or contains env.jsonc file\n * @param {string[]} ids - `ids` is an array of string values representing environment IDs. The function `findFirstEnv`\n * takes this array as input and returns a Promise that resolves to a string value representing the first environment ID\n * that matches certain conditions.\n * @returns The `findFirstEnv` function returns a Promise that resolves to a string or undefined. The string represents\n * the ID of the first environment that matches the conditions specified in the function, or undefined if no environment\n * is found.\n */\n private async findFirstEnv(ids: string[]): Promise<string | undefined> {\n let isFoundWithoutVersion = false;\n const envId = await pLocate(ids, async (id) => {\n const idWithoutVersion = id.split('@')[0];\n if (this.isCoreEnv(idWithoutVersion)) return true;\n if (this.isCoreAspect(idWithoutVersion)) return false;\n const envDef = this.getEnvDefinitionByStringId(id);\n if (envDef) return true;\n const envDefWithoutVersion = this.getEnvDefinitionByStringId(idWithoutVersion);\n if (envDefWithoutVersion) {\n isFoundWithoutVersion = true;\n return true;\n }\n const envComponent = await this.getEnvComponentByEnvId(id);\n const hasManifest = this.hasEnvManifest(envComponent);\n if (hasManifest) return true;\n const isUsingEnvEnv = this.isUsingEnvEnv(envComponent);\n return !!isUsingEnvEnv;\n });\n let finalEnvId;\n if (envId) {\n finalEnvId = isFoundWithoutVersion ? envId?.split('@')[0] : envId;\n this.envIds.add(envId);\n }\n return finalEnvId;\n }\n\n private getEnvDefinitionByLegacyExtension(extension: ExtensionDataEntry): EnvDefinition | undefined {\n const envDef = extension.extensionId\n ? this.getEnvDefinitionById(extension.extensionId)\n : this.getEnvDefinitionByStringId(extension.stringId);\n return envDef;\n }\n\n getEnvIdFromEnvsConfig(component: Component): string | undefined {\n const envsAspect = component.state.aspects.get(EnvsAspect.id);\n return envsAspect?.config.env;\n }\n\n getEnvDefinition(id: ComponentID) {\n const allVersions = this.envSlot.toArray();\n const all = allVersions.filter(([envId]) => envId.includes(id.toStringWithoutVersion()));\n const first = head(all);\n if (!first) return undefined;\n const [envId, env] = first;\n return new EnvDefinition(envId, env);\n }\n\n getEnvDefinitionById(id: ComponentID): EnvDefinition | undefined {\n const envDef =\n this.getEnvDefinitionByStringId(id.toString()) ||\n this.getEnvDefinitionByStringId(id.toString({ ignoreVersion: true }));\n return envDef;\n }\n\n public getEnvDefinitionByStringId(envId: string): EnvDefinition | undefined {\n const env = this.envSlot.get(envId);\n if (env) {\n return new EnvDefinition(envId, env as Environment);\n }\n return undefined;\n }\n\n getEnvFromComponent(envComponent: Component): EnvDefinition | undefined {\n const env = this.getEnvDefinitionById(envComponent.id);\n return env;\n }\n\n /**\n * Return the env definition of teambit.envs/env\n */\n getEnvsEnvDefinition(): EnvDefinition {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.getEnvDefinitionByStringId('teambit.envs/env')!;\n }\n\n private printWarningIfFirstTime(envId: string, message: string) {\n if (!this.alreadyShownWarning[envId] && !this.failedToLoadEnvs.has(envId)) {\n this.alreadyShownWarning[envId] = true;\n this.logger.consoleWarning(message);\n this.addFailedToLoadEnvs(envId);\n }\n }\n\n /**\n * determines whether an env is registered.\n */\n public isEnvRegistered(id: string) {\n return Boolean(this.envSlot.get(id));\n }\n\n isUsingAspectEnv(component: Component): boolean {\n const data = this.getEnvData(component);\n if (!data) return false;\n return data.type === 'aspect';\n }\n\n isUsingEnvEnv(component: Component): boolean {\n const data = this.getEnvData(component);\n if (!data) return false;\n return data.type === 'env';\n }\n\n /**\n * Check if the given component is an env component.\n * @param component\n * @returns\n */\n isEnv(component: Component): boolean {\n return (\n this.isUsingEnvEnv(component) ||\n this.isEnvRegistered(component.id.toString()) ||\n this.isEnvRegistered(component.id.toStringWithoutVersion())\n );\n }\n\n /**\n * register a new environment service.\n */\n registerService(...envServices: EnvService<any>[]) {\n this.servicesRegistry.register(envServices);\n return this;\n }\n\n /**\n * get list of services enabled on an env.\n */\n getServices(env: EnvDefinition): EnvServiceList {\n const allServices = this.servicesRegistry.toArray();\n const services: [string, EnvService<any>][] = [];\n allServices.forEach(([id, currentServices]) => {\n currentServices.forEach((service) => {\n try {\n if (this.implements(env, service)) {\n services.push([id, service]);\n }\n } catch {\n this.logger.warn(`failed loading service ${id} for env ${env.id}`);\n }\n });\n });\n return new EnvServiceList(env, services);\n }\n\n implements(env: EnvDefinition, service: EnvService<any>) {\n // TODO: remove this after refactoring everything and remove getDescriptor from being optional.\n if (!service.getDescriptor) return false;\n return !!service.getDescriptor(env);\n }\n\n /**\n * register an environment.\n */\n registerEnv(env: Environment) {\n return this.envSlot.register(env);\n }\n\n /**\n * register an env.jsonc merge customizer.\n */\n registerEnvJsoncMergeCustomizer(customizer: EnvJsoncMergeCustomizer) {\n return this.envJsoncMergeCustomizerSlot.register(customizer);\n }\n\n registerEnvJsoncResolver(resolver: EnvJsoncResolver) {\n return this.envJsoncResolverSlot.register(resolver);\n }\n\n getEnvJsoncDetector() {\n return new EnvJsoncDetector();\n }\n\n async addNonLoadedEnvAsComponentIssues(components: Component[]) {\n await pMapSeries(components, async (component) => {\n const envId = await this.calculateEnvId(component);\n const envIdStr = envId.toString();\n if (!this.isEnvRegistered(envIdStr)) {\n this.addFailedToLoadEnvs(envIdStr);\n // If there is no version and the env is not in the workspace this is not valid\n // you can't set external env without version\n if (!envIdStr.includes('@')) {\n const foundComp = components.find((c) => c.id.toStringWithoutVersion() === envIdStr);\n if (!foundComp) {\n component.state.issues.getOrCreate(IssuesClasses.ExternalEnvWithoutVersion).data = {\n envId: envIdStr,\n componentId: component.id.toString(),\n };\n } else {\n component.state.issues.getOrCreate(IssuesClasses.NonLoadedEnv).data = envIdStr;\n }\n } else {\n component.state.issues.getOrCreate(IssuesClasses.NonLoadedEnv).data = envIdStr;\n }\n }\n });\n }\n\n // refactor here\n private async createRuntime(components: Component[]): Promise<Runtime> {\n return new Runtime(await this.aggregateByDefs(components), this.logger);\n }\n\n // :TODO can be refactored to few utilities who will make repeating this very easy.\n private async aggregateByDefs(components: Component[]): Promise<EnvRuntime[]> {\n this.throwForDuplicateComponents(components);\n const envsMap = {};\n components.forEach((component: Component) => {\n const envDef = this.getEnv(component);\n const envId = envDef.id;\n const env = envDef.env;\n // handle config as well when aggregating envs.\n if (envsMap[envId]) envsMap[envId].components.push(component);\n else\n envsMap[envId] = {\n components: [component],\n env,\n };\n });\n\n return Promise.all(\n Object.keys(envsMap).map(async (key) => {\n const envAspectDef = await this.getEnvAspectDef(key);\n return new EnvRuntime(key, envsMap[key].env, envsMap[key].components, envAspectDef);\n })\n );\n }\n\n private async getEnvAspectDef(envId: string): Promise<AspectDefinition> {\n const host = this.componentMain.getHost();\n const id = await host.resolveComponentId(envId);\n // We don't want to filter by runtime here as we want to also get envs that configured as plugins. so they don't\n // contain the runtime path.\n const resolvedAspects = await host.resolveAspects(MainRuntime.name, [id], {\n requestedOnly: true,\n filterByRuntime: false,\n useScopeAspectsCapsule: true,\n });\n const def = resolvedAspects[0];\n\n return def;\n }\n\n private throwForDuplicateComponents(components: Component[]) {\n const idsStr = components.map((c) => c.id.toString());\n const duplications = findDuplications(idsStr);\n if (duplications.length) {\n throw new Error(`found duplicated components: ${duplications.join(', ')}`);\n }\n }\n\n static slots = [\n Slot.withType<Environment>(),\n Slot.withType<EnvService<any>>(),\n Slot.withType<EnvJsoncMergeCustomizerRegistry>(),\n Slot.withType<EnvJsoncResolverRegistry>(),\n ];\n\n static dependencies = [GraphqlAspect, LoggerAspect, ComponentAspect, CLIAspect, WorkerAspect, IssuesAspect];\n\n static async provider(\n [graphql, loggerAspect, component, cli, worker, issues]: [\n GraphqlMain,\n LoggerMain,\n ComponentMain,\n CLIMain,\n WorkerMain,\n IssuesMain,\n ],\n config: EnvsConfig,\n [envSlot, servicesRegistry, envJsoncMergeCustomizerSlot, envJsoncResolverSlot]: [\n EnvsRegistry,\n ServicesRegistry,\n EnvJsoncMergeCustomizerRegistry,\n EnvJsoncResolverRegistry,\n ],\n context: Harmony\n ) {\n const logger = loggerAspect.createLogger(EnvsAspect.id);\n const envs = new EnvsMain(\n config,\n context,\n envSlot,\n logger,\n servicesRegistry,\n component,\n loggerAspect,\n worker,\n envJsoncMergeCustomizerSlot,\n envJsoncResolverSlot\n );\n component.registerShowFragments([new EnvFragment(envs)]);\n if (issues) issues.registerAddComponentsIssues(envs.addNonLoadedEnvAsComponentIssues.bind(envs));\n\n const envsCmd = new EnvsCmd(envs, component);\n envsCmd.commands = [new ListEnvsCmd(envs, component), new GetEnvCmd(envs, component)];\n cli.register(envsCmd);\n graphql.register(environmentsSchema(envs));\n return envs;\n }\n}\n\nEnvsAspect.addRuntime(EnvsMain);\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.envs_envs@1.0.494/dist/env.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.envs_envs@1.0.494/dist/envs.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.envs_envs@1.0.496/dist/env.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.envs_envs@1.0.496/dist/envs.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
package/package.json CHANGED
@@ -1,57 +1,53 @@
1
1
  {
2
2
  "name": "@teambit/envs",
3
- "version": "1.0.494",
3
+ "version": "1.0.496",
4
4
  "homepage": "https://bit.cloud/teambit/envs/envs",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.envs",
8
8
  "name": "envs",
9
- "version": "1.0.494"
9
+ "version": "1.0.496"
10
10
  },
11
11
  "dependencies": {
12
+ "comment-json": "3.0.3",
12
13
  "chalk": "2.4.2",
13
14
  "lodash": "4.17.21",
14
15
  "graphql-tag": "2.12.1",
15
- "comment-json": "3.0.3",
16
- "find-root": "1.1.0",
17
- "fs-extra": "10.0.0",
18
16
  "p-locate": "5.0.0",
19
17
  "p-map-series": "2.1.0",
20
18
  "@teambit/harmony": "0.4.6",
21
19
  "@teambit/bit-error": "0.0.404",
22
20
  "@teambit/component-id": "1.2.2",
23
- "@teambit/component": "1.0.494",
24
- "@teambit/aspect-loader": "1.0.494",
25
- "@teambit/cli": "0.0.1071",
26
- "@teambit/logger": "0.0.1164",
27
- "@teambit/worker": "0.0.1375",
28
- "@teambit/builder": "1.0.494",
29
- "@teambit/bundler": "1.0.494",
30
- "@teambit/compiler": "1.0.494",
31
- "@teambit/dependency-resolver": "1.0.494",
32
- "@teambit/formatter": "1.0.494",
33
- "@teambit/isolator": "1.0.494",
34
- "@teambit/linter": "1.0.494",
35
- "@teambit/pkg": "1.0.494",
36
- "@teambit/preview": "1.0.494",
37
- "@teambit/schema": "1.0.494",
38
- "@teambit/tester": "1.0.494",
39
- "@teambit/typescript": "1.0.494",
40
- "@teambit/webpack": "1.0.494",
41
- "@teambit/graphql": "1.0.494",
21
+ "@teambit/dependency-resolver": "1.0.496",
22
+ "@teambit/component": "1.0.496",
23
+ "@teambit/aspect-loader": "1.0.496",
24
+ "@teambit/cli": "0.0.1073",
25
+ "@teambit/logger": "0.0.1166",
26
+ "@teambit/worker": "0.0.1377",
27
+ "@teambit/builder": "1.0.496",
28
+ "@teambit/bundler": "1.0.496",
29
+ "@teambit/compiler": "1.0.496",
30
+ "@teambit/formatter": "1.0.496",
31
+ "@teambit/isolator": "1.0.496",
32
+ "@teambit/linter": "1.0.496",
33
+ "@teambit/pkg": "1.0.496",
34
+ "@teambit/preview": "1.0.496",
35
+ "@teambit/schema": "1.0.496",
36
+ "@teambit/tester": "1.0.496",
37
+ "@teambit/typescript": "1.0.496",
38
+ "@teambit/webpack": "1.0.496",
39
+ "@teambit/graphql": "1.0.496",
42
40
  "@teambit/component-issues": "0.0.152",
43
- "@teambit/component.sources": "0.0.58",
44
- "@teambit/dev-files": "1.0.494",
45
- "@teambit/issues": "1.0.494",
46
- "@teambit/legacy.extension-data": "0.0.8",
41
+ "@teambit/component.sources": "0.0.60",
42
+ "@teambit/dev-files": "1.0.496",
43
+ "@teambit/issues": "1.0.496",
44
+ "@teambit/legacy.consumer-component": "0.0.9",
45
+ "@teambit/legacy.extension-data": "0.0.10",
47
46
  "@teambit/toolbox.array.duplications-finder": "0.0.2",
48
- "@teambit/toolbox.modules.module-resolver": "0.0.8",
49
47
  "@teambit/cli-table": "0.0.49"
50
48
  },
51
49
  "devDependencies": {
52
50
  "@types/lodash": "4.14.165",
53
- "@types/find-root": "1.1.2",
54
- "@types/fs-extra": "9.0.7",
55
51
  "@types/mocha": "9.1.0",
56
52
  "@teambit/harmony.envs.core-aspect-env": "0.0.63",
57
53
  "@teambit/envs.aspect-docs.envs": "0.0.171"