@teambit/envs 0.0.737 → 0.0.738
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/env-console/env-console.js.map +1 -1
- package/dist/components/env-console/index.js.map +1 -1
- package/dist/components/env-overview/env-overview.js.map +1 -1
- package/dist/components/env-overview/index.js.map +1 -1
- package/dist/components/index.js.map +1 -1
- package/dist/context/context.js.map +1 -1
- package/dist/context/index.js.map +1 -1
- package/dist/env-definition.js.map +1 -1
- package/dist/env-service-list.js.map +1 -1
- package/dist/env.composition.js.map +1 -1
- package/dist/env.fragment.js.map +1 -1
- package/dist/environment.js.map +1 -1
- package/dist/environments.aspect.js.map +1 -1
- package/dist/environments.graphql.js.map +1 -1
- package/dist/environments.main.runtime.js.map +1 -1
- package/dist/envs.cmd.js.map +1 -1
- package/dist/exceptions/env-not-configured-for-component.js.map +1 -1
- package/dist/exceptions/env-not-found-in-runtime.js.map +1 -1
- package/dist/exceptions/env-not-found.js.map +1 -1
- package/dist/exceptions/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime/env-runtime.js.map +1 -1
- package/dist/runtime/envs-execution-result.js.map +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/services/concrete-service.js.map +1 -1
- package/dist/services/index.js.map +1 -1
- package/dist/services/service-handler.js.map +1 -1
- package/dist/services/service.js.map +1 -1
- package/package-tar/teambit-envs-0.0.738.tgz +0 -0
- package/package.json +17 -17
- package/{preview-1652930732694.js → preview-1653227849497.js} +2 -2
- package/package-tar/teambit-envs-0.0.737.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["EnvConsole","counter","setCounter","useState","useEffect","timer","setInterval","previousCounter","clearInterval"],"sources":["env-console.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-unused-vars\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { Box, Text } from 'ink';\nimport React, { useEffect, useState } from 'react';\n\nimport { EnvRuntime } from '../../runtime';\n\nexport type EnvConsoleProps = {\n runtime: EnvRuntime;\n};\n\nexport function EnvConsole() {\n const [counter, setCounter] = useState(0);\n\n useEffect(() => {\n const timer = setInterval(() => {\n setCounter((previousCounter) => previousCounter + 1);\n }, 100);\n\n return () => {\n clearInterval(timer);\n };\n }, []);\n\n return (\n <Box>\n <Text color=\"green\">{counter} tests passed</Text>\n </Box>\n );\n}\n"],"mappings":";;;;;;;;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;AAHA;AACA;AAUO,SAASA,UAAT,GAAsB;EAC3B,MAAM,CAACC,OAAD,EAAUC,UAAV,IAAwB,IAAAC,iBAAA,EAAS,CAAT,CAA9B;EAEA,IAAAC,kBAAA,EAAU,MAAM;IACd,MAAMC,KAAK,GAAGC,WAAW,CAAC,MAAM;MAC9BJ,UAAU,CAAEK,eAAD,IAAqBA,eAAe,GAAG,CAAxC,CAAV;IACD,CAFwB,EAEtB,GAFsB,CAAzB;IAIA,OAAO,MAAM;MACXC,aAAa,CAACH,KAAD,CAAb;IACD,CAFD;EAGD,CARD,EAQG,EARH;EAUA,oBACE,+BAAC,UAAD,qBACE,+BAAC,WAAD;IAAM,KAAK,EAAC;EAAZ,GAAqBJ,OAArB,kBADF,CADF;AAKD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { EnvConsole } from './env-console';\n"],"mappings":";;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["EnvOverview","envDef","id"],"sources":["env-overview.tsx"],"sourcesContent":["import React from 'react';\nimport { Text, Newline } from 'ink';\nimport { EnvDefinition } from '../../env-definition';\n\nexport type EnvOverviewProps = {\n envDef: EnvDefinition;\n};\n\n/**\n * renders an env overview in the terminal.\n */\nexport function EnvOverview({ envDef }: EnvOverviewProps) {\n return (\n <Text>\n <Text bold underline>\n Environment: {envDef.id}\n </Text>\n <Newline />\n </Text>\n );\n}\n"],"mappings":";;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAOA;AACA;AACA;AACO,SAASA,WAAT,CAAqB;EAAEC;AAAF,CAArB,EAAmD;EACxD,oBACE,+BAAC,WAAD,qBACE,+BAAC,WAAD;IAAM,IAAI,MAAV;IAAW,SAAS;EAApB,oBACgBA,MAAM,CAACC,EADvB,CADF,eAIE,+BAAC,cAAD,OAJF,CADF;AAQD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { EnvOverview } from './env-overview';\n"],"mappings":";;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { EnvConsole } from './env-console';\n"],"mappings":";;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["ExecutionContext","constructor","upper","envRuntime","components","id","env","envDefinition","EnvDefinition","apply","name","args","Error"],"sources":["context.ts"],"sourcesContent":["import { EnvDefinition } from '../env-definition';\n\nimport { EnvRuntime, Runtime } from '../runtime';\n\nexport type ServiceMap<T> = {\n [env: string]: T;\n};\n\nexport class ExecutionContext {\n constructor(\n /**\n * upper scope of all environment contexts.\n */\n readonly upper: Runtime,\n\n /**\n * runtime instance of the environment.\n */\n readonly envRuntime: EnvRuntime,\n\n /**\n * components applied in the execution context.\n */\n public components = envRuntime.components\n ) {}\n\n relatedContexts: string[] = [];\n\n /**\n * extension ID of the environment\n */\n get id() {\n return this.envRuntime.id;\n }\n\n /**\n * environment instance.\n */\n get env(): any {\n return this.envRuntime.env;\n }\n\n get envDefinition(): EnvDefinition {\n return new EnvDefinition(this.id, this.env);\n }\n\n apply<T>(name: string, args: any[]): T {\n if (!this.env[name]) {\n throw new Error(`method ${name} not implemented`);\n }\n\n return this.env[name].apply(this.env, ...args);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAQO,MAAMA,gBAAN,CAAuB;EAC5BC,WAAW;EACT;AACJ;AACA;EACaC,KAJA;EAMT;AACJ;AACA;EACaC,UATA;EAWT;AACJ;AACA;EACWC,UAAU,GAAGD,UAAU,CAACC,UAdtB,EAeT;IAAA,KAXSF,KAWT,GAXSA,KAWT;IAAA,KANSC,UAMT,GANSA,UAMT;IAAA,KADOC,UACP,GADOA,UACP;IAAA,yDAE0B,EAF1B;EAAE;;EAIJ;AACF;AACA;EACQ,IAAFC,EAAE,GAAG;IACP,OAAO,KAAKF,UAAL,CAAgBE,EAAvB;EACD;EAED;AACF;AACA;;;EACS,IAAHC,GAAG,GAAQ;IACb,OAAO,KAAKH,UAAL,CAAgBG,GAAvB;EACD;;EAEgB,IAAbC,aAAa,GAAkB;IACjC,OAAO,KAAIC,8BAAJ,EAAkB,KAAKH,EAAvB,EAA2B,KAAKC,GAAhC,CAAP;EACD;;EAEDG,KAAK,CAAIC,IAAJ,EAAkBC,IAAlB,EAAkC;IACrC,IAAI,CAAC,KAAKL,GAAL,CAASI,IAAT,CAAL,EAAqB;MACnB,MAAM,IAAIE,KAAJ,CAAW,UAASF,IAAK,kBAAzB,CAAN;IACD;;IAED,OAAO,KAAKJ,GAAL,CAASI,IAAT,EAAeD,KAAf,CAAqB,KAAKH,GAA1B,EAA+B,GAAGK,IAAlC,CAAP;EACD;;AA5C2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { ExecutionContext } from './context';\n"],"mappings":";;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["EnvDefinition","constructor","id","env","icon","defaultIcon","name","description","toObject"],"sources":["env-definition.ts"],"sourcesContent":["import { Environment } from './environment';\n\n/**\n * API for component development environment.\n */\nexport class EnvDefinition {\n constructor(\n /**\n * id of the env.\n */\n readonly id: string,\n\n /**\n * env instance.\n */\n readonly env: Environment\n ) {}\n\n /**\n * get icon of the env.\n */\n get icon() {\n // TODO: refactor this away from here.\n const defaultIcon = `https://static.bit.dev/extensions-icons/default.svg`;\n return this.env.icon || defaultIcon;\n }\n\n /**\n * get the name of the env.\n */\n get name() {\n return this.env.name;\n }\n\n /**\n * get the description of the env.\n */\n get description() {\n return this.env.description;\n }\n\n toObject() {\n return {\n id: this.id,\n description: this.description,\n name: this.name,\n icon: this.icon,\n };\n }\n}\n"],"mappings":";;;;;;;;;AAEA;AACA;AACA;AACO,MAAMA,aAAN,CAAoB;EACzBC,WAAW;EACT;AACJ;AACA;EACaC,EAJA;EAMT;AACJ;AACA;EACaC,GATA,EAUT;IAAA,KANSD,EAMT,GANSA,EAMT;IAAA,KADSC,GACT,GADSA,GACT;EAAE;EAEJ;AACF;AACA;;;EACU,IAAJC,IAAI,GAAG;IACT;IACA,MAAMC,WAAW,GAAI,qDAArB;IACA,OAAO,KAAKF,GAAL,CAASC,IAAT,IAAiBC,WAAxB;EACD;EAED;AACF;AACA;;;EACU,IAAJC,IAAI,GAAG;IACT,OAAO,KAAKH,GAAL,CAASG,IAAhB;EACD;EAED;AACF;AACA;;;EACiB,IAAXC,WAAW,GAAG;IAChB,OAAO,KAAKJ,GAAL,CAASI,WAAhB;EACD;;EAEDC,QAAQ,GAAG;IACT,OAAO;MACLN,EAAE,EAAE,KAAKA,EADJ;MAELK,WAAW,EAAE,KAAKA,WAFb;MAGLD,IAAI,EAAE,KAAKA,IAHN;MAILF,IAAI,EAAE,KAAKA;IAJN,CAAP;EAMD;;AA3CwB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["EnvServiceList","constructor","env","services","toObject","map","id","service","name","description","data","getDescriptor"],"sources":["env-service-list.ts"],"sourcesContent":["import { EnvDefinition } from './env-definition';\nimport { EnvService } from './services';\n\nexport class EnvServiceList {\n constructor(\n /**\n * environment\n */\n readonly env: EnvDefinition,\n\n /**\n * services available on the env.\n */\n readonly services: [string, EnvService<any>][]\n ) {}\n\n toObject() {\n return {\n env: this.env.toObject(),\n services: this.services.map(([id, service]) => {\n return {\n id,\n name: service.name,\n description: service.description,\n // @ts-ignore\n data: service.getDescriptor(this.env),\n };\n }),\n };\n }\n}\n"],"mappings":";;;;;;;;;;;AAGO,MAAMA,cAAN,CAAqB;EAC1BC,WAAW;EACT;AACJ;AACA;EACaC,GAJA;EAMT;AACJ;AACA;EACaC,QATA,EAUT;IAAA,KANSD,GAMT,GANSA,GAMT;IAAA,KADSC,QACT,GADSA,QACT;EAAE;;EAEJC,QAAQ,GAAG;IACT,OAAO;MACLF,GAAG,EAAE,KAAKA,GAAL,CAASE,QAAT,EADA;MAELD,QAAQ,EAAE,KAAKA,QAAL,CAAcE,GAAd,CAAkB,CAAC,CAACC,EAAD,EAAKC,OAAL,CAAD,KAAmB;QAC7C,OAAO;UACLD,EADK;UAELE,IAAI,EAAED,OAAO,CAACC,IAFT;UAGLC,WAAW,EAAEF,OAAO,CAACE,WAHhB;UAIL;UACAC,IAAI,EAAEH,OAAO,CAACI,aAAR,CAAsB,KAAKT,GAA3B;QALD,CAAP;MAOD,CARS;IAFL,CAAP;EAYD;;AA1ByB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["Logo","height","display","justifyContent","width"],"sources":["env.composition.tsx"],"sourcesContent":["import React from 'react';\n\nexport const Logo = () => (\n <div style={{ height: '100%', display: 'flex', justifyContent: 'center' }}>\n <img style={{ width: 70 }} src=\"https://static.bit.dev/extensions-icons/env.svg\" />\n </div>\n);\n"],"mappings":";;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,IAAI,GAAG,mBAClB;EAAK,KAAK,EAAE;IAAEC,MAAM,EAAE,MAAV;IAAkBC,OAAO,EAAE,MAA3B;IAAmCC,cAAc,EAAE;EAAnD;AAAZ,gBACE;EAAK,KAAK,EAAE;IAAEC,KAAK,EAAE;EAAT,CAAZ;EAA2B,GAAG,EAAC;AAA/B,EADF,CADK"}
|
package/dist/env.fragment.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["EnvFragment","constructor","envs","renderRow","component","title","content","getEnvId","json","env","getEnv","id"],"sources":["env.fragment.ts"],"sourcesContent":["import { ShowFragment, Component } from '@teambit/component';\nimport { EnvsMain } from './environments.main.runtime';\n\nexport class EnvFragment implements ShowFragment {\n constructor(private envs: EnvsMain) {}\n\n readonly title = 'env';\n\n async renderRow(component: Component) {\n return {\n title: this.title,\n content: this.getEnvId(component),\n };\n }\n\n async json(component: Component) {\n return {\n title: this.title,\n json: this.getEnvId(component),\n };\n }\n\n private getEnvId(component: Component) {\n const env = this.envs.getEnv(component);\n return env.id;\n }\n\n weight = 3;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAGO,MAAMA,WAAN,CAA0C;EAC/CC,WAAW,CAASC,IAAT,EAAyB;IAAA,KAAhBA,IAAgB,GAAhBA,IAAgB;IAAA,+CAEnB,KAFmB;IAAA,gDAuB3B,CAvB2B;EAAE;;EAIvB,MAATC,SAAS,CAACC,SAAD,EAAuB;IACpC,OAAO;MACLC,KAAK,EAAE,KAAKA,KADP;MAELC,OAAO,EAAE,KAAKC,QAAL,CAAcH,SAAd;IAFJ,CAAP;EAID;;EAES,MAAJI,IAAI,CAACJ,SAAD,EAAuB;IAC/B,OAAO;MACLC,KAAK,EAAE,KAAKA,KADP;MAELG,IAAI,EAAE,KAAKD,QAAL,CAAcH,SAAd;IAFD,CAAP;EAID;;EAEOG,QAAQ,CAACH,SAAD,EAAuB;IACrC,MAAMK,GAAG,GAAG,KAAKP,IAAL,CAAUQ,MAAV,CAAiBN,SAAjB,CAAZ;IACA,OAAOK,GAAG,CAACE,EAAX;EACD;;AAtB8C"}
|
package/dist/environment.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["hasCompiler","obj","getCompiler"],"sources":["environment.ts"],"sourcesContent":["// TODO: @gilad refactor to an abstract env.\nimport type { Linter, LinterContext } from '@teambit/linter';\nimport type { Formatter, FormatterContext } from '@teambit/formatter';\nimport type { Tester } from '@teambit/tester';\nimport type { Compiler } from '@teambit/compiler';\nimport type { Bundler, BundlerContext, DevServer, DevServerContext } from '@teambit/bundler';\nimport type { BuildTask } from '@teambit/builder';\nimport type { SchemaExtractor } from '@teambit/schema';\nimport type { WebpackConfigTransformer } from '@teambit/webpack';\nimport type { PackageJsonProps } from '@teambit/pkg';\nimport type { EnvPolicyConfigObject } from '@teambit/dependency-resolver';\nimport { ElementsWrapperContext } from '@teambit/elements';\nimport type { Capsule } from '@teambit/isolator';\nimport type { Component } from '@teambit/component';\nimport { EnvPreviewConfig } from '@teambit/preview';\n\nexport type EnvDescriptor = {\n type: string;\n};\n\n/**\n * add a custom type and include all properties from within the environment.\n */\nexport interface Environment {\n /**\n * name of the environment.\n */\n name?: string;\n\n /**\n * description of the environment.\n */\n description?: string;\n\n /**\n * icon of the environment.\n */\n icon?: string;\n\n [key: string]: any; // :TODO need to define an abstract type for service handlers (now using any)\n\n /**\n * Returns the Environment descriptor\n * Required for any task\n */\n __getDescriptor?: () => Promise<EnvDescriptor>;\n\n /**\n * Returns a schema generator instance\n */\n getSchemaExtractor?: (config?: any) => SchemaExtractor;\n\n /**\n * Returns the dev patterns to match doc file\n */\n getDocsDevPatterns?: (component: Component) => string[];\n}\n\nexport interface DependenciesEnv extends Environment {\n /**\n * Returns the list of dependencies\n * Required for any task\n */\n getDependencies?: () => EnvPolicyConfigObject | Promise<EnvPolicyConfigObject>;\n\n /**\n * Returns a list of additional host dependencies\n * this list will be provided as globals on the window after bit preview bundle\n * by default bit will merge this list with the peers from the getDependencies function\n * If you want full control use the getHostDependencies function\n */\n getAdditionalHostDependencies?: () => string[] | Promise<string[]>;\n\n /**\n * Returns a list of host dependencies\n * this list will be provided as globals on the window after bit preview bundle\n * If this is provided, bit won't merge getAdditionalHostDependencies and the peers from getDependencies\n * but give you full control over the list\n *\n * The reason we provided both options is the following:\n * in most cases when you override the deps from you env, you want bit to take your peers\n * however, if we only provide the getHostDependencies, during the env composition, you will get the peers of the\n * original env. which doesn't contain your peers.\n * In that case you might think that we only need the first option of getAdditionalHostDependencies + getDependencies peers\n * but there are cases when you want a peer to your component, but you don't want it as part of the bundle.\n * such an example is react-native env which adds react-native as peer, but you don't want it in the bundle as it's not web compatible\n * so you want full control over it\n */\n getHostDependencies?: () => string[] | Promise<string[]>;\n}\n\nexport type GetNpmIgnoreContext = {\n capsule: Capsule;\n component: Component;\n};\nexport interface PackageEnv extends Environment {\n /**\n * define the package json properties to add to each component.\n * Used by `bit link` to augment package.json with new properties\n */\n getPackageJsonProps?: () => PackageJsonProps;\n\n /**\n * return `.npmignore` entries to be written before packing the component\n */\n getNpmIgnore?: (npmIgnoreContext?: GetNpmIgnoreContext) => string[];\n}\n\nexport interface LinterEnv extends Environment {\n /**\n * Returns & configures the linter to use (ESLint, ...)\n * Required for `bit lint`\n */\n getLinter?: (context: LinterContext, transformers: any[]) => Linter;\n}\n\nexport interface FormatterEnv extends Environment {\n /**\n * Returns & configures the formatter to use (prettier, ...)\n * Required for `bit format`\n */\n getFormatter?: (context: FormatterContext, transformers: any[]) => Formatter;\n}\n\nexport interface PreviewEnv extends Environment {\n /**\n * Returns a paths to a function which mounts a given component to DOM\n * Required for `bit start` & `bit build`\n */\n getMounter?: () => string;\n\n /**\n * Returns a path to a docs template.\n * Required for `bit start` & `bit build`\n */\n getDocsTemplate?: () => string;\n\n /**\n * Returns a bundler for the preview.\n * Required for `bit build` & `bit start`\n */\n getBundler?: (context: BundlerContext, transformers: any[]) => Promise<Bundler>;\n\n /**\n * Returns preview config like the strategy name to use when bundling the components for the preview\n */\n getPreviewConfig?: () => EnvPreviewConfig;\n\n /**\n * Returns a bundler for the env template.\n * this bundler will be used to bundle the docs/compositions (or other preview) apps\n * Required for `bit build` & `bit tag`\n */\n getTemplateBundler?: (context: BundlerContext, transformers?: any[]) => Promise<Bundler>;\n}\n\nexport interface ElementsEnv extends Environment {\n /**\n * Returns a function that gets the context and wrap the component with a web component\n * Required for `bit build`\n */\n getElementsWrapper: (context: ElementsWrapperContext) => string;\n\n /**\n * Returns a bundler for elements.\n * Required for `bit build``\n */\n getElementsBundler: (context: BundlerContext, transformers: any[]) => Promise<Bundler>;\n}\n\nexport type PipeServiceModifiersMap = Record<string, PipeServiceModifier>;\n\nexport interface PipeServiceModifier {\n transformers?: Function[];\n module?: any;\n}\n\nexport interface BuilderEnv extends PreviewEnv {\n /**\n * @deprecated Fatal: a breaking API was introduced. Use getBuildPipe() instead.\n */\n getPipe?: () => BuildTask[];\n\n /**\n * Returns the component build pipeline\n * Either `getBuildPipe`, `getTagPipe`, or `getSnapPipe` is required for `bit build`\n */\n getBuildPipe?: (modifiersMap?: PipeServiceModifiersMap) => BuildTask[];\n\n /**\n * Returns the component tag pipeline\n * Either `getBuildPipe`, `getTagPipe`, or `getSnapPipe` is required for `bit build`\n */\n getTagPipe?: (modifiersMap?: PipeServiceModifiersMap) => BuildTask[];\n\n /**\n * Returns the component snap pipeline\n * Either `getBuildPipe`, `getTagPipe`, or `getSnapPipe` is required for `bit build`\n */\n getSnapPipe?: (modifiersMap?: PipeServiceModifiersMap) => BuildTask[];\n}\n\nexport interface TesterEnv extends Environment {\n /**\n * Returns a tester\n * Required for `bit start` & `bit test`\n */\n getTester?: (path: string, tester: any) => Tester;\n}\n\nexport interface CompilerEnv {\n /**\n * Returns a compiler\n * Required for making and reading dists, especially for `bit compile`\n */\n getCompiler: () => Compiler;\n}\n\nexport function hasCompiler(obj: Environment): obj is CompilerEnv {\n return typeof obj.getCompiler === 'function';\n}\n\nexport interface DevEnv extends PreviewEnv {\n /**\n * Required for `bit start`\n */\n getDevEnvId?: (context?: any) => string;\n\n /**\n * Returns and configures the dev server\n * Required for `bit start`\n */\n getDevServer?: (\n context: DevServerContext,\n transformers: WebpackConfigTransformer[]\n ) => DevServer | Promise<DevServer>;\n}\n"],"mappings":";;;;;;;AAAA;;AAoBA;AACA;AACA;AAoMO,SAASA,WAAT,CAAqBC,GAArB,EAA2D;EAChE,OAAO,OAAOA,GAAG,CAACC,WAAX,KAA2B,UAAlC;AACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["EnvsAspect","Aspect","create","id"],"sources":["environments.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const EnvsAspect = Aspect.create({\n id: 'teambit.envs/envs',\n});\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,UAAU,GAAGC,iBAAA,CAAOC,MAAP,CAAc;EACtCC,EAAE,EAAE;AADkC,CAAd,CAAnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["environmentsSchema","environments","typeDefs","gql","resolvers","Component","env","component","getDescriptor"],"sources":["environments.graphql.ts"],"sourcesContent":["import { Component } from '@teambit/component';\nimport { Schema } from '@teambit/graphql';\nimport gql from 'graphql-tag';\n\nimport { EnvsMain } from './environments.main.runtime';\n\nexport function environmentsSchema(environments: EnvsMain): Schema {\n return {\n typeDefs: gql`\n extend type Component {\n env: ExtensionDescriptor\n }\n\n type ExtensionDescriptor {\n id: String\n icon: String\n }\n `,\n resolvers: {\n Component: {\n env: (component: Component) => {\n return environments.getDescriptor(component);\n },\n },\n },\n };\n}\n"],"mappings":";;;;;;;;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAIO,SAASA,kBAAT,CAA4BC,YAA5B,EAA4D;EACjE,OAAO;IACLC,QAAQ,EAAE,IAAAC,qBAAA,CAAI;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAVS;IAWLC,SAAS,EAAE;MACTC,SAAS,EAAE;QACTC,GAAG,EAAGC,SAAD,IAA0B;UAC7B,OAAON,YAAY,CAACO,aAAb,CAA2BD,SAA3B,CAAP;QACD;MAHQ;IADF;EAXN,CAAP;AAmBD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["environments.main.runtime.ts"],"names":["DEFAULT_ENV","EnvsMain","icon","constructor","config","context","envSlot","logger","serviceSlot","componentMain","createEnvironment","components","createRuntime","getDefaultEnv","defaultEnv","get","Error","EnvDefinition","getCoreEnvsIds","compose","targetEnv","envTransformers","a","reduce","acc","transformer","override","propsToOverride","env","merge","sourceEnv","allNames","Set","keys","o","Object","prototype","getPrototypeOf","name","getOwnPropertyNames","add","forEach","key","fn","includes","bind","getEnvData","component","envsData","state","aspects","EnvsAspect","id","toString","data","getEnvIdFromEnvsData","ignoreVersion","undefined","rawEnvId","envIdWithoutVersion","ComponentID","fromString","toStringWithoutVersion","getEnvId","envIdFromEnvData","withVersion","resolveEnv","withVersionMatch","toArray","find","envId","withVersionMatchId","exactMatch","exactMatchId","EnvNotConfiguredForComponent","getEnv","envDef","getEnvDefinitionByStringId","EnvNotFound","getOrCalculateEnv","err","calculateEnv","getDescriptor","services","matchedEntry","entries","aspectEntry","envIdFromEnvsConfig","getEnvIdFromEnvsConfig","envIdFromEnvsConfigWithoutVersion","getEnvDefinitionById","printWarningIfFirstTime","errMsg","message","envDefFromList","getAllEnvsConfiguredOnComponent","getEnvFromEnvsConfig","getEnvsNotFromEnvsConfig","hasEnvConfigured","Boolean","length","getAllRegisteredEnvs","map","envData","push","calculateEnvFromExtensions","extensions","envsAspect","findCoreExtension","getEnvDefinitionByLegacyExtension","extension","newExtensionId","stringId","getEnvDefinitionByLegacyId","host","getHost","newId","resolveComponentId","getEnvFromComponent","envComponent","getEnvsEnvDefinition","alreadyShownWarning","consoleWarning","isEnvRegistered","isUsingAspectEnv","type","isUsingEnvEnv","registerService","envServices","register","getServices","allServices","currentServices","service","implements","EnvServiceList","registerEnv","Runtime","aggregateByDefs","throwForDuplicateComponents","envsMap","EnvRuntime","idsStr","c","duplications","join","provider","graphql","loggerAspect","cli","createLogger","envs","registerShowFragments","EnvFragment","envsCmd","EnvsCmd","commands","ListEnvsCmd","GetEnvCmd","MainRuntime","Slot","withType","GraphqlAspect","LoggerAspect","ComponentAspect","CLIAspect","addRuntime"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAqBO,MAAMA,WAAW,GAAG,sBAApB;;;AAEA,MAAMC,QAAN,CAAe;AAKpB;AACF;AACA;AACEC,EAAAA,IAAI,GAAG;AACL,WAAQ;AACZ;AACA,WAFI;AAGD;;AAEDC,EAAAA,WAAW;AACT;AACJ;AACA;AACaC,EAAAA,MAJA;AAMT;AACJ;AACA;AACYC,EAAAA,OATC;AAWT;AACJ;AACA;AACYC,EAAAA,OAdC,EAgBDC,MAhBC,EAkBDC,WAlBC,EAoBDC,aApBC,EAqBT;AAAA,SAjBSL,MAiBT,GAjBSA,MAiBT;AAAA,SAZQC,OAYR,GAZQA,OAYR;AAAA,SAPQC,OAOR,GAPQA,OAOR;AAAA,SALQC,MAKR,GALQA,MAKR;AAAA,SAHQC,WAGR,GAHQA,WAGR;AAAA,SADQC,aACR,GADQA,aACR;AAAA,iEAhC4B,EAgC5B;AAAE;AAEJ;AACF;AACA;;;AACyB,QAAjBC,iBAAiB,CAACC,UAAD,EAA4C;AACjE,WAAO,KAAKC,aAAL,CAAmBD,UAAnB,CAAP;AACD;AAED;AACF;AACA;;;AACEE,EAAAA,aAAa,GAAkB;AAC7B,UAAMC,UAAU,GAAG,KAAKR,OAAL,CAAaS,GAAb,CAAiBf,WAAjB,CAAnB;AACA,QAAI,CAACc,UAAL,EAAiB,MAAM,IAAIE,KAAJ,CAAU,0BAAV,CAAN;AAEjB,WAAO,KAAIC,8BAAJ,EAAkBjB,WAAlB,EAA+Bc,UAA/B,CAAP;AACD;;AAEDI,EAAAA,cAAc,GAAa;AACzB,WAAO,CACL,wBADK,EAEL,qBAFK,EAGL,sBAHK,EAIL,4BAJK,EAKL,mBALK,EAML,iBANK,EAOL,kBAPK,EAQL,oBARK,CAAP;AAUD;AAED;AACF;AACA;;;AACEC,EAAAA,OAAO,CAACC,SAAD,EAAyBC,eAAzB,EAA4D;AACjE,UAAMC,CAAC,GAAGD,eAAe,CAACE,MAAhB,CAAuB,CAACC,GAAD,EAAMC,WAAN,KAAsB;AACrDD,MAAAA,GAAG,GAAGC,WAAW,CAACD,GAAD,CAAjB;AACA,aAAOA,GAAP;AACD,KAHS,EAGPJ,SAHO,CAAV;AAKA,WAAOE,CAAP;AACD;AAED;AACF;AACA;;;AACEI,EAAAA,QAAQ,CAACC,eAAD,EAA+C;AACrD,WAAQC,GAAD,IAAsB;AAC3B,aAAO,KAAKC,KAAL,CAAWF,eAAX,EAA4BC,GAA5B,CAAP;AACD,KAFD;AAGD;AAED;AACF;AACA;;;AACEC,EAAAA,KAAK,CAA+CT,SAA/C,EAAuEU,SAAvE,EAAsG;AACzG,UAAMC,QAAQ,GAAG,IAAIC,GAAJ,EAAjB;AACA,UAAMC,IAAI,GAAG,CAAC,MAAD,EAAS,MAAT,EAAiB,aAAjB,CAAb;;AACA,SAAK,IAAIC,CAAC,GAAGJ,SAAb,EAAwBI,CAAC,KAAKC,MAAM,CAACC,SAArC,EAAgDF,CAAC,GAAGC,MAAM,CAACE,cAAP,CAAsBH,CAAtB,CAApD,EAA8E;AAC5E,WAAK,MAAMI,IAAX,IAAmBH,MAAM,CAACI,mBAAP,CAA2BL,CAA3B,CAAnB,EAAkD;AAChDH,QAAAA,QAAQ,CAACS,GAAT,CAAaF,IAAb;AACD;AACF;;AAEDP,IAAAA,QAAQ,CAACU,OAAT,CAAkBC,GAAD,IAAiB;AAChC,YAAMC,EAAE,GAAGb,SAAS,CAACY,GAAD,CAApB;AACA,UAAItB,SAAS,CAACsB,GAAD,CAAb,EAAoB;AACpB,UAAIT,IAAI,CAACW,QAAL,CAAcF,GAAd,CAAJ,EAAwBtB,SAAS,CAACsB,GAAD,CAAT,GAAiBC,EAAjB;;AACxB,UAAI,CAACA,EAAD,IAAO,CAACA,EAAE,CAACE,IAAf,EAAqB;AACnB;AACD;;AACDzB,MAAAA,SAAS,CAACsB,GAAD,CAAT,GAAiBC,EAAE,CAACE,IAAH,CAAQf,SAAR,CAAjB;AACD,KARD;AAUA,WAAOV,SAAP;AACD;;AAED0B,EAAAA,UAAU,CAACC,SAAD,EAAmC;AAC3C,QAAIC,QAAQ,GAAGD,SAAS,CAACE,KAAV,CAAgBC,OAAhB,CAAwBnC,GAAxB,CAA4BoC,2BAAWC,EAAvC,CAAf;;AACA,QAAI,CAACJ,QAAL,EAAe;AACb;AACAA,MAAAA,QAAQ,GAAGD,SAAS,CAACE,KAAV,CAAgBC,OAAhB,CAAwBnC,GAAxB,CAA4B,6BAA5B,CAAX;AACD;;AACD,QAAI,CAACiC,QAAL,EAAe,MAAM,IAAIhC,KAAJ,CAAW,uCAAsC+B,SAAS,CAACK,EAAV,CAAaC,QAAb,EAAwB,EAAzE,CAAN;AACf,WAAOL,QAAQ,CAACM,IAAhB;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACUC,EAAAA,oBAAoB,CAACR,SAAD,EAAuBS,aAAa,GAAG,IAAvC,EAAiE;AAC3F,UAAMR,QAAQ,GAAG,KAAKF,UAAL,CAAgBC,SAAhB,CAAjB;AACA,QAAI,CAACC,QAAL,EAAe,OAAOS,SAAP;AACf,UAAMC,QAAQ,GAAGV,QAAQ,CAACI,EAA1B;AACA,QAAI,CAACM,QAAL,EAAe,OAAOD,SAAP;AACf,QAAI,CAACD,aAAL,EAAoB,OAAOE,QAAP;;AACpB,UAAMC,mBAAmB,GAAGC,yBAAYC,UAAZ,CAAuBH,QAAvB,EAAiCI,sBAAjC,EAA5B;;AACA,WAAOH,mBAAP;AACD;AAED;AACF;AACA;;;AACEI,EAAAA,QAAQ,CAAChB,SAAD,EAA+B;AACrC,UAAMiB,gBAAgB,GAAG,KAAKT,oBAAL,CAA0BR,SAA1B,CAAzB;;AACA,QAAI,CAACiB,gBAAL,EAAuB;AACrB;AACA,YAAM,IAAIhD,KAAJ,CAAW,oBAAmB+B,SAAS,CAACK,EAAV,CAAaC,QAAb,EAAwB,EAAtD,CAAN;AACD;;AACD,UAAMY,WAAW,GAAG,KAAKC,UAAL,CAAgBnB,SAAhB,EAA2BiB,gBAA3B,CAApB;AACA,UAAMG,gBAAgB,GAAG,KAAK7D,OAAL,CAAa8D,OAAb,GAAuBC,IAAvB,CAA4B,CAAC,CAACC,KAAD,CAAD,KAAa;AAChE,aAAO,CAAAL,WAAW,SAAX,IAAAA,WAAW,WAAX,YAAAA,WAAW,CAAEZ,QAAb,QAA4BiB,KAAnC;AACD,KAFwB,CAAzB;AAGA,UAAMC,kBAAkB,GAAGJ,gBAAH,aAAGA,gBAAH,uBAAGA,gBAAgB,CAAG,CAAH,CAA3C;AACA,QAAII,kBAAJ,EAAwB,OAAOA,kBAAP,CAXa,CAarC;;AACA,UAAMC,UAAU,GAAG,KAAKlE,OAAL,CAAa8D,OAAb,GAAuBC,IAAvB,CAA4B,CAAC,CAACC,KAAD,CAAD,KAAa;AAC1D,aAAON,gBAAgB,KAAKM,KAA5B;AACD,KAFkB,CAAnB;AAIA,UAAMG,YAAY,GAAGD,UAAH,aAAGA,UAAH,uBAAGA,UAAU,CAAG,CAAH,CAA/B;AACA,QAAIC,YAAJ,EAAkB,OAAOA,YAAP;AAElB,QAAI,CAACR,WAAL,EAAkB,MAAM,KAAIS,0CAAJ,EAAiCV,gBAAjC,EAAmDjB,SAAS,CAACK,EAAV,CAAaC,QAAb,EAAnD,CAAN;AAClB,WAAOY,WAAW,CAACZ,QAAZ,EAAP;AACD;AAED;AACF;AACA;AACA;;;AACEsB,EAAAA,MAAM,CAAC5B,SAAD,EAAsC;AAC1C,UAAMK,EAAE,GAAG,KAAKW,QAAL,CAAchB,SAAd,CAAX;AACA,UAAM6B,MAAM,GAAG,KAAKC,0BAAL,CAAgCzB,EAAhC,CAAf;;AACA,QAAIwB,MAAJ,EAAY;AACV,aAAOA,MAAP;AACD,KALyC,CAM1C;;;AACA,UAAM,KAAIE,yBAAJ,EAAgB1B,EAAhB,EAAoBL,SAAS,CAACK,EAAV,CAAaC,QAAb,EAApB,CAAN;AACD;AAED;AACF;AACA;AACA;AACA;;;AACE0B,EAAAA,iBAAiB,CAAChC,SAAD,EAAsC;AACrD,QAAI;AACF,aAAO,KAAK4B,MAAL,CAAY5B,SAAZ,CAAP;AACD,KAFD,CAEE,OAAOiC,GAAP,EAAY;AACZ,aAAO,KAAKC,YAAL,CAAkBlC,SAAlB,CAAP;AACD;AACF;AAED;AACF;AACA;;;AACEmC,EAAAA,aAAa,CAACnC,SAAD,EAA0C;AACrD,UAAMC,QAAQ,GAAG,KAAKF,UAAL,CAAgBC,SAAhB,CAAjB;AACA,WAAO;AACLK,MAAAA,EAAE,EAAEJ,QAAQ,CAACI,EADR;AAELlD,MAAAA,IAAI,EAAE8C,QAAQ,CAAC9C,IAFV;AAGLiF,MAAAA,QAAQ,EAAEnC,QAAQ,CAACmC;AAHd,KAAP;AAKD;;AAEDjB,EAAAA,UAAU,CAACnB,SAAD,EAAuBK,EAAvB,EAAmC;AAC3C,UAAMgC,YAAY,GAAGrC,SAAS,CAACE,KAAV,CAAgBC,OAAhB,CAAwBmC,OAAxB,CAAgChB,IAAhC,CAAsCiB,WAAD,IAAiB;AACzE,aAAOlC,EAAE,KAAKkC,WAAW,CAAClC,EAAZ,CAAeC,QAAf,EAAP,IAAoCD,EAAE,KAAKkC,WAAW,CAAClC,EAAZ,CAAeC,QAAf,CAAwB;AAAEG,QAAAA,aAAa,EAAE;AAAjB,OAAxB,CAAlD;AACD,KAFoB,CAArB;AAIA,WAAO4B,YAAP,aAAOA,YAAP,uBAAOA,YAAY,CAAEhC,EAArB;AACD;AAED;AACF;AACA;AACA;AACA;;;AACE6B,EAAAA,YAAY,CAAClC,SAAD,EAAsC;AAChD;AACA,UAAMwC,mBAAmB,GAAG,KAAKC,sBAAL,CAA4BzC,SAA5B,CAA5B;AACA,QAAI0C,iCAAJ;;AACA,QAAIF,mBAAJ,EAAyB;AACvBE,MAAAA,iCAAiC,GAAG7B,yBAAYC,UAAZ,CAAuB0B,mBAAvB,EAA4CzB,sBAA5C,EAApC;AACA,YAAMc,MAAM,GAAG,KAAKC,0BAAL,CAAgCY,iCAAhC,CAAf;;AACA,UAAIb,MAAJ,EAAY;AACV,eAAOA,MAAP;AACD;AACF,KAV+C,CAYhD;AACA;AACA;;;AACA,QAAIa,iCAAJ,EAAuC;AACrC,YAAML,YAAY,GAAGrC,SAAS,CAACE,KAAV,CAAgBC,OAAhB,CAAwBmC,OAAxB,CAAgChB,IAAhC,CAAsCiB,WAAD,IAAiB;AACzE,eACEG,iCAAiC,KAAKH,WAAW,CAAClC,EAAZ,CAAeC,QAAf,EAAtC,IACAoC,iCAAiC,KAAKH,WAAW,CAAClC,EAAZ,CAAeC,QAAf,CAAwB;AAAEG,UAAAA,aAAa,EAAE;AAAjB,SAAxB,CAFxC;AAID,OALoB,CAArB;;AAMA,UAAI4B,YAAJ,EAAkB;AAChB;AACA;AACA,cAAMR,MAAM,GAAG,KAAKc,oBAAL,CAA0BN,YAAY,CAAChC,EAAvC,CAAf;;AACA,YAAIwB,MAAJ,EAAY;AACV,iBAAOA,MAAP;AACD,SANe,CAOhB;;;AACA,aAAKe,uBAAL,CACEP,YAAY,CAAChC,EAAb,CAAgBC,QAAhB,EADF,EAEG,wBAAuB+B,YAAY,CAAChC,EAAb,CAAgBC,QAAhB,EAA2B,4BAA2BN,SAAS,CAACK,EAAV,CAAaC,QAAb,EAAwB,gBAFxG;AAID,OAnBoC,CAoBrC;;;AACA,YAAMuC,MAAM,GAAG,KAAIlB,0CAAJ,EAAiCa,mBAAjC,EAAgExC,SAAS,CAACK,EAAV,CAAaC,QAAb,EAAhE,EAAyFwC,OAAxG;AACA,WAAKF,uBAAL,CAA6BJ,mBAA7B,EAA4DK,MAA5D;AACD,KAtC+C,CAwChD;;;AACA,QAAIE,cAAJ;AACA/C,IAAAA,SAAS,CAACE,KAAV,CAAgBC,OAAhB,CAAwBmC,OAAxB,CAAgChB,IAAhC,CAAsCiB,WAAD,IAAiB;AACpD,YAAMV,MAAM,GAAG,KAAKc,oBAAL,CAA0BJ,WAAW,CAAClC,EAAtC,CAAf;;AACA,UAAIwB,MAAJ,EAAY;AACVkB,QAAAA,cAAc,GAAGlB,MAAjB;AACD;;AACD,aAAO,CAAC,CAACA,MAAT;AACD,KAND;;AAQA,QAAIkB,cAAJ,EAAoB;AAClB,aAAOA,cAAP;AACD;;AACD,WAAO,KAAKjF,aAAL,EAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACEkF,EAAAA,+BAA+B,CAAChD,SAAD,EAAwC;AACrE;AACA;AACA,UAAM6B,MAAM,GAAG,KAAKoB,oBAAL,CAA0BjD,SAA1B,CAAf;;AACA,QAAI6B,MAAJ,EAAY;AACV,aAAO,CAACA,MAAD,CAAP;AACD;;AAED,WAAO,KAAKqB,wBAAL,CAA8BlD,SAA9B,CAAP;AACD;AAED;AACF;AACA;;;AACEmD,EAAAA,gBAAgB,CAACnD,SAAD,EAAgC;AAC9C,WAAOoD,OAAO,CAAC,KAAKJ,+BAAL,CAAqChD,SAArC,EAAgDqD,MAAjD,CAAd;AACD;;AAEDC,EAAAA,oBAAoB,GAAa;AAC/B,WAAO,KAAK/F,OAAL,CAAa8D,OAAb,GAAuBkC,GAAvB,CAA4BC,OAAD,IAAaA,OAAO,CAAC,CAAD,CAA/C,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACEP,EAAAA,oBAAoB,CAACjD,SAAD,EAAkD;AACpE,UAAMwC,mBAAmB,GAAG,KAAKC,sBAAL,CAA4BzC,SAA5B,CAA5B;;AACA,QAAI,CAACwC,mBAAL,EAA0B;AACxB,aAAO9B,SAAP;AACD;;AACD,UAAMgC,iCAAiC,GAAG7B,yBAAYC,UAAZ,CAAuB0B,mBAAvB,EAA4CzB,sBAA5C,EAA1C;;AACA,UAAMc,MAAM,GAAG,KAAKC,0BAAL,CAAgCY,iCAAhC,CAAf;AACA,WAAOb,MAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACEqB,EAAAA,wBAAwB,CAAClD,SAAD,EAAwC;AAC9D,WAAOA,SAAS,CAACE,KAAV,CAAgBC,OAAhB,CAAwBmC,OAAxB,CAAgC9D,MAAhC,CAAuC,CAACC,GAAD,EAAuB8D,WAAvB,KAAuC;AACnF,YAAMV,MAAM,GAAG,KAAKc,oBAAL,CAA0BJ,WAAW,CAAClC,EAAtC,CAAf;AACA,UAAIwB,MAAJ,EAAYpD,GAAG,CAACgF,IAAJ,CAAS5B,MAAT;AACZ,aAAOpD,GAAP;AACD,KAJM,EAIJ,EAJI,CAAP;AAKD;AAED;AACF;AACA;;;AACEiF,EAAAA,0BAA0B,CAACC,UAAD,EAA+C;AACvE;AACA,UAAMC,UAAU,GAAGD,UAAU,CAACE,iBAAX,CAA6BzD,2BAAWC,EAAxC,CAAnB;AACA,UAAMmC,mBAAmB,GAAGoB,UAAH,aAAGA,UAAH,uBAAGA,UAAU,CAAEvG,MAAZ,CAAmBwB,GAA/C;AACA,QAAI6D,iCAAJ;;AAEA,QAAIF,mBAAJ,EAAyB;AACvBE,MAAAA,iCAAiC,GAAG7B,yBAAYC,UAAZ,CAAuB0B,mBAAvB,EAA4CzB,sBAA5C,EAApC;AACA,YAAMc,MAAM,GAAG,KAAKC,0BAAL,CAAgCY,iCAAhC,CAAf;;AACA,UAAIb,MAAJ,EAAY;AACV,eAAOA,MAAP;AACD;AACF;;AAED,UAAMiC,iCAAiC,GAAIC,SAAD,IAA8D;AACtG,YAAMlC,MAAM,GAAGkC,SAAS,CAACC,cAAV,GACX,KAAKrB,oBAAL,CAA0BoB,SAAS,CAACC,cAApC,CADW,GAEX,KAAKlC,0BAAL,CAAgCiC,SAAS,CAACE,QAA1C,CAFJ;AAGA,aAAOpC,MAAP;AACD,KALD,CAduE,CAqBvE;AACA;AACA;;;AACA,QAAIa,iCAAJ,EAAuC;AACrC,YAAML,YAAY,GAAGsB,UAAU,CAACrC,IAAX,CAAiByC,SAAD,IAAe;AAClD,YAAIA,SAAS,CAACC,cAAd,EAA8B;AAC5B,iBACEtB,iCAAiC,KAAKqB,SAAS,CAACC,cAAV,CAAyB1D,QAAzB,EAAtC,IACAoC,iCAAiC,KAAKqB,SAAS,CAACC,cAAV,CAAyB1D,QAAzB,CAAkC;AAAEG,YAAAA,aAAa,EAAE;AAAjB,WAAlC,CAFxC;AAID;;AACD,eAAOiC,iCAAiC,KAAKqB,SAAS,CAACE,QAAvD;AACD,OARoB,CAArB;;AASA,UAAI5B,YAAJ,EAAkB;AAChB;AACA;AACA,cAAMR,MAAM,GAAGiC,iCAAiC,CAACzB,YAAD,CAAhD;;AACA,YAAIR,MAAJ,EAAY;AACV,iBAAOA,MAAP;AACD,SANe,CAOhB;;;AACA,aAAKe,uBAAL,CACEP,YAAY,CAAChC,EAAb,CAAgBC,QAAhB,EADF,EAEG,wBAAuB+B,YAAY,CAAChC,EAAb,CAAgBC,QAAhB,EAA2B,gBAFrD;AAID,OAtBoC,CAuBrC;;;AACA,YAAMuC,MAAM,GAAG,KAAIlB,0CAAJ,EAAiCa,mBAAjC,EAAsDM,OAArE;AACA,WAAKF,uBAAL,CAA6BJ,mBAA7B,EAAkDK,MAAlD;AACD,KAlDsE,CAoDvE;;;AACA,QAAIE,cAAJ;AACAY,IAAAA,UAAU,CAACrC,IAAX,CAAiByC,SAAD,IAAmC;AACjD,YAAMlC,MAAM,GAAGiC,iCAAiC,CAACC,SAAD,CAAhD;;AACA,UAAIlC,MAAJ,EAAY;AACVkB,QAAAA,cAAc,GAAGlB,MAAjB;AACD;;AACD,aAAO,CAAC,CAACA,MAAT;AACD,KAND;;AAQA,QAAIkB,cAAJ,EAAoB;AAClB,aAAOA,cAAP;AACD;;AACD,WAAO,KAAKjF,aAAL,EAAP;AACD;;AAEO2E,EAAAA,sBAAsB,CAACzC,SAAD,EAA2C;AACvE,UAAM4D,UAAU,GAAG5D,SAAS,CAACE,KAAV,CAAgBC,OAAhB,CAAwBnC,GAAxB,CAA4BoC,2BAAWC,EAAvC,CAAnB;AACA,WAAOuD,UAAP,aAAOA,UAAP,uBAAOA,UAAU,CAAEvG,MAAZ,CAAmBwB,GAA1B;AACD;;AAED8D,EAAAA,oBAAoB,CAACtC,EAAD,EAA6C;AAC/D,UAAMwB,MAAM,GACV,KAAKC,0BAAL,CAAgCzB,EAAE,CAACC,QAAH,EAAhC,KACA,KAAKwB,0BAAL,CAAgCzB,EAAE,CAACC,QAAH,CAAY;AAAEG,MAAAA,aAAa,EAAE;AAAjB,KAAZ,CAAhC,CAFF;AAGA,WAAOoB,MAAP;AACD;;AAE+B,QAA1BqC,0BAA0B,CAAC7D,EAAD,EAAgD;AAC9E,UAAM8D,IAAI,GAAG,KAAKzG,aAAL,CAAmB0G,OAAnB,EAAb;AACA,UAAMC,KAAK,GAAG,MAAMF,IAAI,CAACG,kBAAL,CAAwBjE,EAAxB,CAApB;AACA,WAAO,KAAKsC,oBAAL,CAA0B0B,KAA1B,CAAP;AACD;;AAEOvC,EAAAA,0BAA0B,CAACP,KAAD,EAA2C;AAC3E,UAAM1C,GAAG,GAAG,KAAKtB,OAAL,CAAaS,GAAb,CAAiBuD,KAAjB,CAAZ;;AACA,QAAI1C,GAAJ,EAAS;AACP,aAAO,KAAIX,8BAAJ,EAAkBqD,KAAlB,EAAyB1C,GAAzB,CAAP;AACD;;AACD,WAAO6B,SAAP;AACD;;AAED6D,EAAAA,mBAAmB,CAACC,YAAD,EAA0B;AAC3C,UAAM3F,GAAG,GAAG,KAAK8D,oBAAL,CAA0B6B,YAAY,CAACnE,EAAvC,CAAZ;AACA,WAAOxB,GAAP;AACD;AAED;AACF;AACA;;;AACE4F,EAAAA,oBAAoB,GAAkB;AACpC;AACA,WAAO,KAAK3C,0BAAL,CAAgC,kBAAhC,CAAP;AACD;;AAEOc,EAAAA,uBAAuB,CAACrB,KAAD,EAAgBuB,OAAhB,EAAiC;AAC9D,QAAI,CAAC,KAAK4B,mBAAL,CAAyBnD,KAAzB,CAAL,EAAsC;AACpC,WAAKmD,mBAAL,CAAyBnD,KAAzB,IAAkC,IAAlC;AACA,WAAK/D,MAAL,CAAYmH,cAAZ,CAA2B7B,OAA3B;AACD;AACF;AAED;AACF;AACA;;;AACE8B,EAAAA,eAAe,CAACvE,EAAD,EAAa;AAC1B,WAAO+C,OAAO,CAAC,KAAK7F,OAAL,CAAaS,GAAb,CAAiBqC,EAAjB,CAAD,CAAd;AACD;;AAEDwE,EAAAA,gBAAgB,CAAC7E,SAAD,EAAgC;AAC9C,UAAMO,IAAI,GAAG,KAAKR,UAAL,CAAgBC,SAAhB,CAAb;AACA,QAAI,CAACO,IAAL,EAAW,OAAO,KAAP;AACX,WAAOA,IAAI,CAACuE,IAAL,KAAc,QAArB;AACD;;AAEDC,EAAAA,aAAa,CAAC/E,SAAD,EAAgC;AAC3C,UAAMO,IAAI,GAAG,KAAKR,UAAL,CAAgBC,SAAhB,CAAb;AACA,QAAI,CAACO,IAAL,EAAW,OAAO,KAAP;AACX,WAAOA,IAAI,CAACuE,IAAL,KAAc,KAArB;AACD;AAED;AACF;AACA;;;AACEE,EAAAA,eAAe,CAAC,GAAGC,WAAJ,EAAoC;AACjD,SAAKxH,WAAL,CAAiByH,QAAjB,CAA0BD,WAA1B;AACA,WAAO,IAAP;AACD;AAED;AACF;AACA;;;AACEE,EAAAA,WAAW,CAACtG,GAAD,EAAqC;AAC9C,UAAMuG,WAAW,GAAG,KAAK3H,WAAL,CAAiB4D,OAAjB,EAApB;AACA,UAAMe,QAAqC,GAAG,EAA9C;AACAgD,IAAAA,WAAW,CAAC1F,OAAZ,CAAoB,CAAC,CAACW,EAAD,EAAKgF,eAAL,CAAD,KAA2B;AAC7CA,MAAAA,eAAe,CAAC3F,OAAhB,CAAyB4F,OAAD,IAAa;AACnC,YAAI,KAAKC,UAAL,CAAgB1G,GAAhB,EAAqByG,OAArB,CAAJ,EAAmC;AACjClD,UAAAA,QAAQ,CAACqB,IAAT,CAAc,CAACpD,EAAD,EAAKiF,OAAL,CAAd;AACD;AACF,OAJD;AAKD,KAND;AAOA,WAAO,KAAIE,gCAAJ,EAAmB3G,GAAnB,EAAwBuD,QAAxB,CAAP;AACD;;AAEDmD,EAAAA,UAAU,CAAC1G,GAAD,EAAqByG,OAArB,EAA+C;AACvD;AACA,QAAI,CAACA,OAAO,CAACnD,aAAb,EAA4B,OAAO,KAAP;AAC5B,WAAO,CAAC,CAACmD,OAAO,CAACnD,aAAR,CAAsBtD,GAAtB,CAAT;AACD;AAED;AACF;AACA;;;AACE4G,EAAAA,WAAW,CAAC5G,GAAD,EAAmB;AAC5B,WAAO,KAAKtB,OAAL,CAAa2H,QAAb,CAAsBrG,GAAtB,CAAP;AACD,GA5fmB,CA8fpB;;;AACQhB,EAAAA,aAAa,CAACD,UAAD,EAAmC;AACtD,WAAO,KAAI8H,kBAAJ,EAAY,KAAKC,eAAL,CAAqB/H,UAArB,CAAZ,EAA8C,KAAKJ,MAAnD,CAAP;AACD,GAjgBmB,CAmgBpB;;;AACQmI,EAAAA,eAAe,CAAC/H,UAAD,EAAwC;AAC7D,SAAKgI,2BAAL,CAAiChI,UAAjC;AACA,UAAMiI,OAAO,GAAG,EAAhB;AACAjI,IAAAA,UAAU,CAAC8B,OAAX,CAAoBM,SAAD,IAA0B;AAC3C,YAAM6B,MAAM,GAAG,KAAKD,MAAL,CAAY5B,SAAZ,CAAf;AACA,YAAMuB,KAAK,GAAGM,MAAM,CAACxB,EAArB;AACA,YAAMxB,GAAG,GAAGgD,MAAM,CAAChD,GAAnB,CAH2C,CAI3C;;AACA,UAAIgH,OAAO,CAACtE,KAAD,CAAX,EAAoBsE,OAAO,CAACtE,KAAD,CAAP,CAAe3D,UAAf,CAA0B6F,IAA1B,CAA+BzD,SAA/B,EAApB,KAEE6F,OAAO,CAACtE,KAAD,CAAP,GAAiB;AACf3D,QAAAA,UAAU,EAAE,CAACoC,SAAD,CADG;AAEfnB,QAAAA;AAFe,OAAjB;AAIH,KAXD;AAaA,WAAOO,MAAM,CAACF,IAAP,CAAY2G,OAAZ,EAAqBtC,GAArB,CAA0B5D,GAAD,IAAS;AACvC,aAAO,KAAImG,qBAAJ,EAAenG,GAAf,EAAoBkG,OAAO,CAAClG,GAAD,CAAP,CAAad,GAAjC,EAAsCgH,OAAO,CAAClG,GAAD,CAAP,CAAa/B,UAAnD,CAAP;AACD,KAFM,CAAP;AAGD;;AAEOgI,EAAAA,2BAA2B,CAAChI,UAAD,EAA0B;AAC3D,UAAMmI,MAAM,GAAGnI,UAAU,CAAC2F,GAAX,CAAgByC,CAAD,IAAOA,CAAC,CAAC3F,EAAF,CAAKC,QAAL,EAAtB,CAAf;AACA,UAAM2F,YAAY,GAAG,iCAAiBF,MAAjB,CAArB;;AACA,QAAIE,YAAY,CAAC5C,MAAjB,EAAyB;AACvB,YAAM,IAAIpF,KAAJ,CAAW,gCAA+BgI,YAAY,CAACC,IAAb,CAAkB,IAAlB,CAAwB,EAAlE,CAAN;AACD;AACF;;AAMoB,eAARC,QAAQ,CACnB,CAACC,OAAD,EAAUC,YAAV,EAAwBrG,SAAxB,EAAmCsG,GAAnC,CADmB,EAEnBjJ,MAFmB,EAGnB,CAACE,OAAD,EAAUE,WAAV,CAHmB,EAInBH,OAJmB,EAKnB;AACA,UAAME,MAAM,GAAG6I,YAAY,CAACE,YAAb,CAA0BnG,2BAAWC,EAArC,CAAf;AACA,UAAMmG,IAAI,GAAG,IAAItJ,QAAJ,CAAaG,MAAb,EAAqBC,OAArB,EAA8BC,OAA9B,EAAuCC,MAAvC,EAA+CC,WAA/C,EAA4DuC,SAA5D,CAAb;AACAA,IAAAA,SAAS,CAACyG,qBAAV,CAAgC,CAAC,KAAIC,kBAAJ,EAAgBF,IAAhB,CAAD,CAAhC;AACA,UAAMG,OAAO,GAAG,KAAIC,eAAJ,EAAYJ,IAAZ,EAAkBxG,SAAlB,CAAhB;AACA2G,IAAAA,OAAO,CAACE,QAAR,GAAmB,CAAC,KAAIC,mBAAJ,EAAgBN,IAAhB,EAAsBxG,SAAtB,CAAD,EAAmC,KAAI+G,iBAAJ,EAAcP,IAAd,EAAoBxG,SAApB,CAAnC,CAAnB;AACAsG,IAAAA,GAAG,CAACpB,QAAJ,CAAayB,OAAb;AACAP,IAAAA,OAAO,CAAClB,QAAR,CAAiB,yCAAmBsB,IAAnB,CAAjB;AACA,WAAOA,IAAP;AACD;;AAnjBmB;;;gCAATtJ,Q,aACM8J,kB;gCADN9J,Q,WAiiBI,CAAC+J,gBAAKC,QAAL,EAAD,EAA+BD,gBAAKC,QAAL,EAA/B,C;gCAjiBJhK,Q,kBAmiBW,CAACiK,wBAAD,EAAgBC,sBAAhB,EAA8BC,4BAA9B,EAA+CC,gBAA/C,C;;AAmBxBlH,2BAAWmH,UAAX,CAAsBrK,QAAtB","sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, ComponentAspect, ComponentMain, ComponentID, AspectData } from '@teambit/component';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Harmony, Slot, SlotRegistry } from '@teambit/harmony';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { ExtensionDataList, ExtensionDataEntry } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport findDuplications from '@teambit/legacy/dist/utils/array/find-duplications';\nimport { BitId } from '@teambit/legacy-bit-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';\n\nexport type EnvsRegistry = SlotRegistry<Environment>;\n\nexport type EnvsConfig = {\n env: string;\n options: EnvOptions;\n};\n\nexport type EnvOptions = {};\n\nexport type EnvTransformer = (env: Environment) => Environment;\n\nexport type ServiceSlot = SlotRegistry<Array<EnvService<any>>>;\n\nexport type Descriptor = {\n id: string;\n icon: string;\n services?: [];\n};\n\nexport const DEFAULT_ENV = 'teambit.harmony/node';\n\nexport class EnvsMain {\n static runtime = MainRuntime;\n\n private alreadyShownWarning = {};\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 context: 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 serviceSlot: ServiceSlot,\n\n private componentMain: ComponentMain\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 /**\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 ];\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 getEnvData(component: Component): AspectData {\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;\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 /**\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 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 (err) {\n return this.calculateEnv(component);\n }\n }\n\n /**\n * get an environment Descriptor.\n */\n getDescriptor(component: Component): Descriptor | null {\n const envsData = this.getEnvData(component);\n return {\n id: envsData.id,\n icon: envsData.icon,\n services: envsData.services,\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 calculateEnv(component: Component): 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 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 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()} configured on component ${component.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 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 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 getAllRegisteredEnvs(): string[] {\n return this.envSlot.toArray().map((envData) => envData[0]);\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 /**\n * @deprecated DO NOT USE THIS METHOD ANYMORE!!! (PLEASE USE .calculateEnv() instead!)\n */\n calculateEnvFromExtensions(extensions: ExtensionDataList): 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 return envDef;\n }\n }\n\n const getEnvDefinitionByLegacyExtension = (extension: ExtensionDataEntry): EnvDefinition | undefined => {\n const envDef = extension.newExtensionId\n ? this.getEnvDefinitionById(extension.newExtensionId)\n : this.getEnvDefinitionByStringId(extension.stringId);\n return envDef;\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.newExtensionId) {\n return (\n envIdFromEnvsConfigWithoutVersion === extension.newExtensionId.toString() ||\n envIdFromEnvsConfigWithoutVersion === extension.newExtensionId.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 = getEnvDefinitionByLegacyExtension(matchedEntry);\n if (envDef) {\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 let envDefFromList;\n extensions.find((extension: ExtensionDataEntry) => {\n const envDef = getEnvDefinitionByLegacyExtension(extension);\n if (envDef) {\n envDefFromList = envDef;\n }\n return !!envDef;\n });\n\n if (envDefFromList) {\n return envDefFromList;\n }\n return this.getDefaultEnv();\n }\n\n private getEnvIdFromEnvsConfig(component: Component): string | undefined {\n const envsAspect = component.state.aspects.get(EnvsAspect.id);\n return envsAspect?.config.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 async getEnvDefinitionByLegacyId(id: BitId): Promise<EnvDefinition | undefined> {\n const host = this.componentMain.getHost();\n const newId = await host.resolveComponentId(id);\n return this.getEnvDefinitionById(newId);\n }\n\n private 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) {\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]) {\n this.alreadyShownWarning[envId] = true;\n this.logger.consoleWarning(message);\n }\n }\n\n /**\n * determines whether an env is registered.\n */\n 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 * register a new environment service.\n */\n registerService(...envServices: EnvService<any>[]) {\n this.serviceSlot.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.serviceSlot.toArray();\n const services: [string, EnvService<any>][] = [];\n allServices.forEach(([id, currentServices]) => {\n currentServices.forEach((service) => {\n if (this.implements(env, service)) {\n services.push([id, service]);\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 // refactor here\n private createRuntime(components: Component[]): Runtime {\n return new Runtime(this.aggregateByDefs(components), this.logger);\n }\n\n // :TODO can be refactored to few utilities who will make repeating this very easy.\n private aggregateByDefs(components: Component[]): 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 Object.keys(envsMap).map((key) => {\n return new EnvRuntime(key, envsMap[key].env, envsMap[key].components);\n });\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 = [Slot.withType<Environment>(), Slot.withType<EnvService<any>>()];\n\n static dependencies = [GraphqlAspect, LoggerAspect, ComponentAspect, CLIAspect];\n\n static async provider(\n [graphql, loggerAspect, component, cli]: [GraphqlMain, LoggerMain, ComponentMain, CLIMain],\n config: EnvsConfig,\n [envSlot, serviceSlot]: [EnvsRegistry, ServiceSlot],\n context: Harmony\n ) {\n const logger = loggerAspect.createLogger(EnvsAspect.id);\n const envs = new EnvsMain(config, context, envSlot, logger, serviceSlot, component);\n component.registerShowFragments([new EnvFragment(envs)]);\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"]}
|
|
1
|
+
{"version":3,"names":["DEFAULT_ENV","EnvsMain","icon","constructor","config","context","envSlot","logger","serviceSlot","componentMain","createEnvironment","components","createRuntime","getDefaultEnv","defaultEnv","get","Error","EnvDefinition","getCoreEnvsIds","compose","targetEnv","envTransformers","a","reduce","acc","transformer","override","propsToOverride","env","merge","sourceEnv","allNames","Set","keys","o","Object","prototype","getPrototypeOf","name","getOwnPropertyNames","add","forEach","key","fn","includes","bind","getEnvData","component","envsData","state","aspects","EnvsAspect","id","toString","data","getEnvIdFromEnvsData","ignoreVersion","undefined","rawEnvId","envIdWithoutVersion","ComponentID","fromString","toStringWithoutVersion","getEnvId","envIdFromEnvData","withVersion","resolveEnv","withVersionMatch","toArray","find","envId","withVersionMatchId","exactMatch","exactMatchId","EnvNotConfiguredForComponent","getEnv","envDef","getEnvDefinitionByStringId","EnvNotFound","getOrCalculateEnv","err","calculateEnv","getDescriptor","services","matchedEntry","entries","aspectEntry","envIdFromEnvsConfig","getEnvIdFromEnvsConfig","envIdFromEnvsConfigWithoutVersion","getEnvDefinitionById","printWarningIfFirstTime","errMsg","message","envDefFromList","getAllEnvsConfiguredOnComponent","getEnvFromEnvsConfig","getEnvsNotFromEnvsConfig","hasEnvConfigured","Boolean","length","getAllRegisteredEnvs","map","envData","push","calculateEnvFromExtensions","extensions","envsAspect","findCoreExtension","getEnvDefinitionByLegacyExtension","extension","newExtensionId","stringId","getEnvDefinitionByLegacyId","host","getHost","newId","resolveComponentId","getEnvFromComponent","envComponent","getEnvsEnvDefinition","alreadyShownWarning","consoleWarning","isEnvRegistered","isUsingAspectEnv","type","isUsingEnvEnv","registerService","envServices","register","getServices","allServices","currentServices","service","implements","EnvServiceList","registerEnv","Runtime","aggregateByDefs","throwForDuplicateComponents","envsMap","EnvRuntime","idsStr","c","duplications","findDuplications","join","provider","graphql","loggerAspect","cli","createLogger","envs","registerShowFragments","EnvFragment","envsCmd","EnvsCmd","commands","ListEnvsCmd","GetEnvCmd","environmentsSchema","MainRuntime","Slot","withType","GraphqlAspect","LoggerAspect","ComponentAspect","CLIAspect","addRuntime"],"sources":["environments.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, ComponentAspect, ComponentMain, ComponentID, AspectData } from '@teambit/component';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Harmony, Slot, SlotRegistry } from '@teambit/harmony';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { ExtensionDataList, ExtensionDataEntry } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport findDuplications from '@teambit/legacy/dist/utils/array/find-duplications';\nimport { BitId } from '@teambit/legacy-bit-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';\n\nexport type EnvsRegistry = SlotRegistry<Environment>;\n\nexport type EnvsConfig = {\n env: string;\n options: EnvOptions;\n};\n\nexport type EnvOptions = {};\n\nexport type EnvTransformer = (env: Environment) => Environment;\n\nexport type ServiceSlot = SlotRegistry<Array<EnvService<any>>>;\n\nexport type Descriptor = {\n id: string;\n icon: string;\n services?: [];\n};\n\nexport const DEFAULT_ENV = 'teambit.harmony/node';\n\nexport class EnvsMain {\n static runtime = MainRuntime;\n\n private alreadyShownWarning = {};\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 context: 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 serviceSlot: ServiceSlot,\n\n private componentMain: ComponentMain\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 /**\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 ];\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 getEnvData(component: Component): AspectData {\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;\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 /**\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 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 (err) {\n return this.calculateEnv(component);\n }\n }\n\n /**\n * get an environment Descriptor.\n */\n getDescriptor(component: Component): Descriptor | null {\n const envsData = this.getEnvData(component);\n return {\n id: envsData.id,\n icon: envsData.icon,\n services: envsData.services,\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 calculateEnv(component: Component): 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 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 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()} configured on component ${component.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 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 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 getAllRegisteredEnvs(): string[] {\n return this.envSlot.toArray().map((envData) => envData[0]);\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 /**\n * @deprecated DO NOT USE THIS METHOD ANYMORE!!! (PLEASE USE .calculateEnv() instead!)\n */\n calculateEnvFromExtensions(extensions: ExtensionDataList): 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 return envDef;\n }\n }\n\n const getEnvDefinitionByLegacyExtension = (extension: ExtensionDataEntry): EnvDefinition | undefined => {\n const envDef = extension.newExtensionId\n ? this.getEnvDefinitionById(extension.newExtensionId)\n : this.getEnvDefinitionByStringId(extension.stringId);\n return envDef;\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.newExtensionId) {\n return (\n envIdFromEnvsConfigWithoutVersion === extension.newExtensionId.toString() ||\n envIdFromEnvsConfigWithoutVersion === extension.newExtensionId.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 = getEnvDefinitionByLegacyExtension(matchedEntry);\n if (envDef) {\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 let envDefFromList;\n extensions.find((extension: ExtensionDataEntry) => {\n const envDef = getEnvDefinitionByLegacyExtension(extension);\n if (envDef) {\n envDefFromList = envDef;\n }\n return !!envDef;\n });\n\n if (envDefFromList) {\n return envDefFromList;\n }\n return this.getDefaultEnv();\n }\n\n private getEnvIdFromEnvsConfig(component: Component): string | undefined {\n const envsAspect = component.state.aspects.get(EnvsAspect.id);\n return envsAspect?.config.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 async getEnvDefinitionByLegacyId(id: BitId): Promise<EnvDefinition | undefined> {\n const host = this.componentMain.getHost();\n const newId = await host.resolveComponentId(id);\n return this.getEnvDefinitionById(newId);\n }\n\n private 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) {\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]) {\n this.alreadyShownWarning[envId] = true;\n this.logger.consoleWarning(message);\n }\n }\n\n /**\n * determines whether an env is registered.\n */\n 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 * register a new environment service.\n */\n registerService(...envServices: EnvService<any>[]) {\n this.serviceSlot.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.serviceSlot.toArray();\n const services: [string, EnvService<any>][] = [];\n allServices.forEach(([id, currentServices]) => {\n currentServices.forEach((service) => {\n if (this.implements(env, service)) {\n services.push([id, service]);\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 // refactor here\n private createRuntime(components: Component[]): Runtime {\n return new Runtime(this.aggregateByDefs(components), this.logger);\n }\n\n // :TODO can be refactored to few utilities who will make repeating this very easy.\n private aggregateByDefs(components: Component[]): 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 Object.keys(envsMap).map((key) => {\n return new EnvRuntime(key, envsMap[key].env, envsMap[key].components);\n });\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 = [Slot.withType<Environment>(), Slot.withType<EnvService<any>>()];\n\n static dependencies = [GraphqlAspect, LoggerAspect, ComponentAspect, CLIAspect];\n\n static async provider(\n [graphql, loggerAspect, component, cli]: [GraphqlMain, LoggerMain, ComponentMain, CLIMain],\n config: EnvsConfig,\n [envSlot, serviceSlot]: [EnvsRegistry, ServiceSlot],\n context: Harmony\n ) {\n const logger = loggerAspect.createLogger(EnvsAspect.id);\n const envs = new EnvsMain(config, context, envSlot, logger, serviceSlot, component);\n component.registerShowFragments([new EnvFragment(envs)]);\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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"}
|
package/dist/envs.cmd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["ListEnvsCmd","constructor","envs","componentAspect","report","allEnvs","getAllRegisteredEnvs","join","title","chalk","green","GetEnvCmd","showEnv","id","host","component","get","resolveComponentId","Error","env","getEnv","envRuntime","createEnvironment","envExecutionContext","getEnvExecutionContext","services","getServices","allP","map","serviceId","service","render","all","Promise","item","name","getHost","EnvsCmd","components","list","getTable","tableData","getDescriptor","toString","header","value","table","CLITable","fromObject","sort"],"sources":["envs.cmd.tsx"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport React from 'react';\nimport { Text, Newline } from 'ink';\nimport chalk from 'chalk';\nimport { CLITable } from '@teambit/cli-table';\nimport { Command } from '@teambit/cli';\nimport { ComponentMain, ComponentFactory, Component } from '@teambit/component';\nimport { EnvsMain } from './environments.main.runtime';\nimport { EnvOverview } from './components/env-overview';\n\nexport class ListEnvsCmd implements Command {\n name = 'list';\n description = 'list all envs available in the workspace';\n options = [];\n group = 'development';\n\n constructor(private envs: EnvsMain, private componentAspect: ComponentMain) {}\n\n async report() {\n const allEnvs = this.envs.getAllRegisteredEnvs().join('\\n');\n const title = chalk.green('the following envs are available in the workspace:');\n return `${title}\\n${allEnvs}`;\n }\n}\n\nexport class GetEnvCmd implements Command {\n name = 'get <name>';\n description = \"show component's env details\";\n options = [];\n group = 'development';\n\n constructor(private envs: EnvsMain, private componentAspect: ComponentMain) {}\n\n async showEnv(id: string, host: ComponentFactory) {\n const component = await host.get(await host.resolveComponentId(id));\n if (!component) throw new Error(`component for env ${id} was not found`);\n const env = this.envs.getEnv(component);\n const envRuntime = await this.envs.createEnvironment([component]);\n const envExecutionContext = envRuntime.getEnvExecutionContext();\n const services = this.envs.getServices(env);\n const allP = services.services.map(async ([serviceId, service]) => {\n if (service.render)\n return (\n <Text>\n <Text bold underline color=\"cyan\">\n {serviceId}\n </Text>\n <Newline />\n <Newline />\n {await service.render(env, envExecutionContext)}\n </Text>\n );\n return (\n <Text key={serviceId}>\n <Text bold underline>\n {serviceId}\n </Text>\n </Text>\n );\n });\n\n const all = await Promise.all(allP);\n\n return (\n <Text>\n <EnvOverview envDef={env} />\n {all.map((item) => item)}\n </Text>\n );\n }\n\n async render([name]: [string]): Promise<JSX.Element> {\n const host = this.componentAspect.getHost();\n // TODO: think what to do re this line with gilad.\n if (!host) throw new Error('error: workspace not found');\n return this.showEnv(name, host);\n }\n}\n\nexport class EnvsCmd implements Command {\n name = 'envs';\n alias = 'env';\n description = 'list all components envs';\n options = [];\n group = 'development';\n commands: Command[] = [];\n\n constructor(private envs: EnvsMain, private componentAspect: ComponentMain) {}\n\n async render(): Promise<JSX.Element> {\n const host = this.componentAspect.getHost();\n // TODO: think what to do re this line with gilad.\n if (!host) throw new Error('error: workspace not found');\n const components = await host.list();\n // TODO: refactor to a react table\n return <Text>{this.getTable(components)}</Text>;\n }\n\n private getTable(components: Component[]) {\n const tableData = components.map((component) => {\n const env = this.envs.getDescriptor(component);\n return {\n component: component.id.toString(),\n env: env ? env.id : 'N/A',\n };\n });\n\n const header = [\n {\n value: 'component',\n },\n {\n value: 'env',\n },\n ];\n const table = CLITable.fromObject(header, tableData);\n table.sort();\n return table.render();\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["EnvNotConfiguredForComponent","BitError","constructor","id","componentId","suffix"],"sources":["env-not-configured-for-component.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\n\nexport class EnvNotConfiguredForComponent extends BitError {\n constructor(id: string, componentId?: string) {\n const suffix = componentId ? ` for the component ${componentId}` : '';\n super(`environment with ID: \"${id}\" is not configured as extension${suffix}.\nyou probably need to add this environment as a key to your variant in the workspace.jsonc. for example, \"your-variant\": { \"${id}\": {} }\n`);\n }\n}\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,4BAAN,SAA2CC,oBAA3C,CAAoD;EACzDC,WAAW,CAACC,EAAD,EAAaC,WAAb,EAAmC;IAC5C,MAAMC,MAAM,GAAGD,WAAW,GAAI,sBAAqBA,WAAY,EAArC,GAAyC,EAAnE;IACA,MAAO,yBAAwBD,EAAG,mCAAkCE,MAAO;AAC/E,6HAA6HF,EAAG;AAChI,CAFI;EAGD;;AANwD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["EnvNotFoundInRuntime","BitError","constructor","id"],"sources":["env-not-found-in-runtime.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\n\nexport class EnvNotFoundInRuntime extends BitError {\n constructor(private id: string) {\n super(`environment with ID: ${id} was not found configured to any of your components`);\n }\n}\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,oBAAN,SAAmCC,oBAAnC,CAA4C;EACjDC,WAAW,CAASC,EAAT,EAAqB;IAC9B,MAAO,wBAAuBA,EAAG,qDAAjC;IAD8B,KAAZA,EAAY,GAAZA,EAAY;EAE/B;;AAHgD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["EnvNotFound","BitError","constructor","id","componentId","getMessage","compIdDetails"],"sources":["env-not-found.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\n\nexport class EnvNotFound extends BitError {\n constructor(private id: string, private componentId?: string) {\n super(getMessage(id, componentId));\n }\n}\n\nfunction getMessage(id: string, componentId?: string): string {\n const compIdDetails = componentId ? `configured on component ${componentId}` : '';\n return `environment with ID: ${id} ${compIdDetails} was not found`;\n}\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,WAAN,SAA0BC,oBAA1B,CAAmC;EACxCC,WAAW,CAASC,EAAT,EAA6BC,WAA7B,EAAmD;IAC5D,MAAMC,UAAU,CAACF,EAAD,EAAKC,WAAL,CAAhB;IAD4D,KAA1CD,EAA0C,GAA1CA,EAA0C;IAAA,KAAtBC,WAAsB,GAAtBA,WAAsB;EAE7D;;AAHuC;;;;AAM1C,SAASC,UAAT,CAAoBF,EAApB,EAAgCC,WAAhC,EAA8D;EAC5D,MAAME,aAAa,GAAGF,WAAW,GAAI,2BAA0BA,WAAY,EAA1C,GAA8C,EAA/E;EACA,OAAQ,wBAAuBD,EAAG,IAAGG,aAAc,gBAAnD;AACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { EnvNotFoundInRuntime } from './env-not-found-in-runtime';\nexport { EnvNotFound } from './env-not-found';\nexport { EnvNotConfiguredForComponent } from './env-not-configured-for-component';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["EnvsAspect"],"sources":["index.ts"],"sourcesContent":["import { EnvsAspect } from './environments.aspect';\n\nexport { Descriptor, DEFAULT_ENV } from './environments.main.runtime';\nexport * from './environment';\nexport { ExecutionContext } from './context';\nexport { EnvService, ConcreteService } from './services';\nexport { EnvRuntime } from './runtime/env-runtime';\nexport type { EnvsMain, EnvTransformer } from './environments.main.runtime';\nexport { EnvsAspect };\nexport { EnvsExecutionResult } from './runtime/envs-execution-result';\nexport type { EnvServiceList } from './env-service-list';\nexport { EnvDefinition } from './env-definition';\nexport default EnvsAspect;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;eACeA,0B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["EnvRuntime","constructor","id","env","components"],"sources":["env-runtime.ts"],"sourcesContent":["import { Component } from '@teambit/component';\n\nimport { Environment } from '../environment';\n\n/**\n * env runtime is an instance which represent the given env in a\n */\nexport class EnvRuntime {\n constructor(\n /**\n * ID of the wrapping extension.\n */\n readonly id: string,\n\n /**\n * environment\n */\n readonly env: Environment,\n\n /**\n * components to be loaded in the environment\n */\n readonly components: Component[]\n ) {}\n}\n"],"mappings":";;;;;;;AAIA;AACA;AACA;AACO,MAAMA,UAAN,CAAiB;EACtBC,WAAW;EACT;AACJ;AACA;EACaC,EAJA;EAMT;AACJ;AACA;EACaC,GATA;EAWT;AACJ;AACA;EACaC,UAdA,EAeT;IAAA,KAXSF,EAWT,GAXSA,EAWT;IAAA,KANSC,GAMT,GANSA,GAMT;IAAA,KADSC,UACT,GADSA,UACT;EAAE;;AAhBkB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["EnvsExecutionResult","constructor","results","hasErrors","Boolean","errors","length","flatten","map","envResult","getErrorsOfEnv","execError","error","data","push","throwErrorsIfExist","Error","errorsPerEnvs","getEnvErrorsAsString","errorOutput","join","title","env","id","errorsStr","message","stack"],"sources":["envs-execution-result.ts"],"sourcesContent":["import { flatten } from 'lodash';\n\nimport { ServiceExecutionResult } from '../services';\nimport { EnvResult } from './runtime';\n\nexport class EnvsExecutionResult<T extends ServiceExecutionResult> {\n constructor(readonly results: EnvResult<T>[]) {}\n\n hasErrors() {\n return Boolean(this.errors.length);\n }\n\n /**\n * execution errors.\n */\n get errors(): Error[] {\n return flatten(this.results.map((envResult) => this.getErrorsOfEnv(envResult)));\n }\n\n getErrorsOfEnv(envResult: EnvResult<T>): Error[] {\n const execError = envResult.error;\n const errors = envResult.data ? envResult.data.errors || [] : [];\n if (execError) errors.push(execError);\n return errors;\n }\n\n /**\n * if only one error is found, throw it. otherwise, summarize the errors per env and throw the\n * output\n */\n throwErrorsIfExist() {\n if (!this.errors || !this.errors.length) return;\n if (this.errors.length === 1 && this.errors[0] instanceof Error) throw this.errors[0];\n const errorsPerEnvs = this.results.map((envResult) => this.getEnvErrorsAsString(envResult));\n const errorOutput = errorsPerEnvs.join('\\n\\n');\n throw new Error(errorOutput);\n }\n\n getEnvErrorsAsString(envResult: EnvResult<T>): string {\n const errors = this.getErrorsOfEnv(envResult);\n if (!errors.length) return '';\n const title = `found ${errors.length} error(s) for ${envResult.env.id}`;\n const errorsStr = errors.map((error) => `${error.message}\\n${error.stack}`).join('\\n');\n return `${title}\\n${errorsStr}`;\n }\n}\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAKO,MAAMA,mBAAN,CAA4D;EACjEC,WAAW,CAAUC,OAAV,EAAmC;IAAA,KAAzBA,OAAyB,GAAzBA,OAAyB;EAAE;;EAEhDC,SAAS,GAAG;IACV,OAAOC,OAAO,CAAC,KAAKC,MAAL,CAAYC,MAAb,CAAd;EACD;EAED;AACF;AACA;;;EACY,IAAND,MAAM,GAAY;IACpB,OAAO,IAAAE,iBAAA,EAAQ,KAAKL,OAAL,CAAaM,GAAb,CAAkBC,SAAD,IAAe,KAAKC,cAAL,CAAoBD,SAApB,CAAhC,CAAR,CAAP;EACD;;EAEDC,cAAc,CAACD,SAAD,EAAmC;IAC/C,MAAME,SAAS,GAAGF,SAAS,CAACG,KAA5B;IACA,MAAMP,MAAM,GAAGI,SAAS,CAACI,IAAV,GAAiBJ,SAAS,CAACI,IAAV,CAAeR,MAAf,IAAyB,EAA1C,GAA+C,EAA9D;IACA,IAAIM,SAAJ,EAAeN,MAAM,CAACS,IAAP,CAAYH,SAAZ;IACf,OAAON,MAAP;EACD;EAED;AACF;AACA;AACA;;;EACEU,kBAAkB,GAAG;IACnB,IAAI,CAAC,KAAKV,MAAN,IAAgB,CAAC,KAAKA,MAAL,CAAYC,MAAjC,EAAyC;IACzC,IAAI,KAAKD,MAAL,CAAYC,MAAZ,KAAuB,CAAvB,IAA4B,KAAKD,MAAL,CAAY,CAAZ,aAA0BW,KAA1D,EAAiE,MAAM,KAAKX,MAAL,CAAY,CAAZ,CAAN;IACjE,MAAMY,aAAa,GAAG,KAAKf,OAAL,CAAaM,GAAb,CAAkBC,SAAD,IAAe,KAAKS,oBAAL,CAA0BT,SAA1B,CAAhC,CAAtB;IACA,MAAMU,WAAW,GAAGF,aAAa,CAACG,IAAd,CAAmB,MAAnB,CAApB;IACA,MAAM,IAAIJ,KAAJ,CAAUG,WAAV,CAAN;EACD;;EAEDD,oBAAoB,CAACT,SAAD,EAAkC;IACpD,MAAMJ,MAAM,GAAG,KAAKK,cAAL,CAAoBD,SAApB,CAAf;IACA,IAAI,CAACJ,MAAM,CAACC,MAAZ,EAAoB,OAAO,EAAP;IACpB,MAAMe,KAAK,GAAI,SAAQhB,MAAM,CAACC,MAAO,iBAAgBG,SAAS,CAACa,GAAV,CAAcC,EAAG,EAAtE;IACA,MAAMC,SAAS,GAAGnB,MAAM,CAACG,GAAP,CAAYI,KAAD,IAAY,GAAEA,KAAK,CAACa,OAAQ,KAAIb,KAAK,CAACc,KAAM,EAAvD,EAA0DN,IAA1D,CAA+D,IAA/D,CAAlB;IACA,OAAQ,GAAEC,KAAM,KAAIG,SAAU,EAA9B;EACD;;AAvCgE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { Runtime } from './runtime';\nexport { EnvRuntime } from './env-runtime';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["Runtime","constructor","runtimeEnvs","logger","runEnv","envRuntimeId","service","options","envRuntime","find","runtime","id","ComponentID","fromString","withoutVersion","_legacy","toStringWithoutVersion","EnvNotFoundInRuntime","run","runOnce","Error","envsExecutionContext","getEnvExecutionContext","serviceResult","map","env","ExecutionContext","runtimes","errors","contexts","mapSeries","data","err","error","message","consoleFailure","name","push","EnvsExecutionResult"],"sources":["runtime.ts"],"sourcesContent":["import { Logger } from '@teambit/logger';\nimport { ComponentID } from '@teambit/component';\nimport mapSeries from 'p-map-series';\nimport { EnvNotFoundInRuntime } from '../exceptions';\nimport { ExecutionContext } from '../context';\nimport { EnvService, ServiceExecutionResult } from '../services';\nimport { EnvRuntime } from './env-runtime';\nimport { EnvsExecutionResult } from './envs-execution-result';\n\nexport interface EnvResult<T extends ServiceExecutionResult> {\n env: EnvRuntime;\n data?: T;\n error?: Error;\n}\n\nexport class Runtime {\n constructor(\n /**\n * runtime instances of the environments.\n */\n readonly runtimeEnvs: EnvRuntime[],\n\n private logger: Logger\n ) {}\n\n /**\n * execute a service on a specific env.\n */\n runEnv<T>(\n envRuntimeId: string,\n service: EnvService<T>,\n options?: { [key: string]: any }\n ): Promise<EnvsExecutionResult<T>> {\n const envRuntime = this.runtimeEnvs.find((runtime) => {\n const id = ComponentID.fromString(runtime.id);\n const withoutVersion = id._legacy.toStringWithoutVersion();\n return withoutVersion === envRuntimeId;\n });\n if (!envRuntime) throw new EnvNotFoundInRuntime(envRuntimeId);\n return this.run(service, options, [envRuntime]);\n }\n\n /**\n * execute a service once for all environments.\n */\n async runOnce<T>(service: EnvService<T>, options?: { [key: string]: any }): Promise<any> {\n if (!service.runOnce) throw new Error('a service must implement `runOnce()` in order to be executed');\n const envsExecutionContext = this.getEnvExecutionContext();\n const serviceResult = await service.runOnce(envsExecutionContext, options);\n return serviceResult;\n }\n\n getEnvExecutionContext(): ExecutionContext[] {\n const envsExecutionContext = this.runtimeEnvs.map((env) => new ExecutionContext(this, env));\n return envsExecutionContext;\n }\n\n /**\n * execute a service on each one of the environments.\n */\n async run<T>(\n /**\n * environment service to execute.\n */\n service: EnvService<T>,\n\n /**\n * options to proxy to the service upon execution.\n */\n options?: { [key: string]: any },\n runtimes?: EnvRuntime[]\n ): Promise<EnvsExecutionResult<T>> {\n if (!service.run) throw new Error('a service must implement `run()` in order to be executed');\n const errors: Error[] = [];\n const contexts: EnvResult<T>[] = await mapSeries(runtimes || this.runtimeEnvs, async (env) => {\n try {\n // @ts-ignore\n const serviceResult = await service.run(new ExecutionContext(this, env), options);\n\n return {\n env,\n data: serviceResult,\n };\n } catch (err: any) {\n this.logger.error(err.message, err);\n this.logger.consoleFailure(`service \"${service.name}\" of env \"${env.id}\" has failed. error: ${err.message}`);\n errors.push(err);\n return {\n env,\n error: err,\n };\n }\n });\n\n return new EnvsExecutionResult(contexts);\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["concrete-service.ts"],"sourcesContent":["/**\n * please do not use this.\n * @deprecated\n */\nexport interface ConcreteService {\n getPackageJsonProps?: () => Record<string, any>;\n dependencies?: () => any;\n}\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { Service as EnvService, ServiceExecutionResult } from './service';\nexport { ConcreteService } from './concrete-service';\nexport { ServiceHandler } from './service-handler';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["service-handler.ts"],"sourcesContent":["/**\n * definition of the service handler.\n */\nexport interface ServiceHandler {\n identifier: string;\n}\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["service.ts"],"sourcesContent":["import { Component } from '@teambit/component';\nimport { Environment } from '../environment';\n\nexport type EnvContext = {\n components: Component[];\n};\n\nexport interface ServiceExecutionResult {\n errors?: Error[];\n}\n\n/**\n * services allows to reuse and standardize services for development environments.\n * examples for services can be: `linting`, `compilation`, `build`, and others which offer\n * standard services to environments such as `react`, `angular` and `vue` and different compositions of each for\n * more concrete needs.\n *\n * `TData` - type of data returned by the service handler.\n * `TOpts` is the type of options passed to the environment through execution.\n * `TExecResponse` is the execution result of the service.\n */\nexport interface Service<TExecResponse extends ServiceExecutionResult, TData = {}, TOpts = {}> {\n /**\n * name of the service. (e.g. `compile`, `test`, etc.)\n */\n name?: string;\n\n /**\n * description of the env.\n */\n description?: string;\n\n /**\n * create a string to describe to service in the env cli.\n */\n render?(env: Environment, context: EnvContext[]): JSX.Element | Promise<JSX.Element>;\n\n /**\n * get service data from an environment.\n */\n getDescriptor?(environment: Environment, context?: EnvContext[]): TData | undefined | Promise<TData | undefined>;\n\n /**\n * executes a service on a subset of components.\n */\n run?(context: EnvContext, options?: TOpts): Promise<TExecResponse>;\n\n /**\n * run the service only once.\n */\n runOnce?(context: EnvContext[], options?: TOpts): Promise<any>;\n}\n"],"mappings":""}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/envs",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.738",
|
|
4
4
|
"homepage": "https://bit.dev/teambit/envs/envs",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.envs",
|
|
8
8
|
"name": "envs",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.738"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"graphql-tag": "2.12.1",
|
|
@@ -17,21 +17,21 @@
|
|
|
17
17
|
"@babel/runtime": "7.12.18",
|
|
18
18
|
"core-js": "^3.0.0",
|
|
19
19
|
"@teambit/harmony": "0.3.3",
|
|
20
|
-
"@teambit/component": "0.0.
|
|
21
|
-
"@teambit/builder": "0.0.
|
|
22
|
-
"@teambit/bundler": "0.0.
|
|
23
|
-
"@teambit/compiler": "0.0.
|
|
24
|
-
"@teambit/dependency-resolver": "0.0.
|
|
25
|
-
"@teambit/elements": "0.0.
|
|
26
|
-
"@teambit/formatter": "0.0.
|
|
27
|
-
"@teambit/isolator": "0.0.
|
|
28
|
-
"@teambit/linter": "0.0.
|
|
29
|
-
"@teambit/pkg": "0.0.
|
|
30
|
-
"@teambit/preview": "0.0.
|
|
31
|
-
"@teambit/schema": "0.0.
|
|
32
|
-
"@teambit/tester": "0.0.
|
|
33
|
-
"@teambit/webpack": "0.0.
|
|
34
|
-
"@teambit/graphql": "0.0.
|
|
20
|
+
"@teambit/component": "0.0.738",
|
|
21
|
+
"@teambit/builder": "0.0.738",
|
|
22
|
+
"@teambit/bundler": "0.0.738",
|
|
23
|
+
"@teambit/compiler": "0.0.738",
|
|
24
|
+
"@teambit/dependency-resolver": "0.0.738",
|
|
25
|
+
"@teambit/elements": "0.0.191",
|
|
26
|
+
"@teambit/formatter": "0.0.289",
|
|
27
|
+
"@teambit/isolator": "0.0.738",
|
|
28
|
+
"@teambit/linter": "0.0.738",
|
|
29
|
+
"@teambit/pkg": "0.0.738",
|
|
30
|
+
"@teambit/preview": "0.0.738",
|
|
31
|
+
"@teambit/schema": "0.0.738",
|
|
32
|
+
"@teambit/tester": "0.0.738",
|
|
33
|
+
"@teambit/webpack": "0.0.738",
|
|
34
|
+
"@teambit/graphql": "0.0.738",
|
|
35
35
|
"@teambit/cli": "0.0.491",
|
|
36
36
|
"@teambit/legacy-bit-id": "0.0.399",
|
|
37
37
|
"@teambit/logger": "0.0.583",
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.envs_envs@0.0.
|
|
2
|
-
export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.envs_envs@0.0.
|
|
1
|
+
export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.envs_envs@0.0.738/dist/env.composition.js')]
|
|
2
|
+
export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.envs_envs@0.0.738/dist/envs.docs.mdx')]
|
|
Binary file
|